xtel-3.3.0.orig/0040755001424500142340000000000007242250363012277 5ustar ericpersoxtel-3.3.0.orig/pixmaps/0040755001424500142340000000000007242250361013756 5ustar ericpersoxtel-3.3.0.orig/pixmaps/Imakefile0100444001424500142340000000011006703332541015554 0ustar ericpersoXCOMM $Id: Imakefile,v 1.2 1996/10/17 09:21:52 pierre Exp $ depend:: xtel-3.3.0.orig/pixmaps/annul.xpm0100444001424500142340000000315506703332541015622 0ustar ericperso/* XPM */ static char * annul_xpm[] = { /* width height ncolors chars_per_pixel */ "62 22 5 1", /* colors */ " c none", ". c black", "X c #FCFCFC", "o c #986430", "O c #643000", /* pixels */ " .......................................................... ", " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XooooooooooXooooooooooooooooooXXoooooooXoooXooooooooooooooOO.", ".XooooooooooXoooooooooooooooooooXoooooooXooooooooooooooooooOO.", ".XoooooooooXoXooXXXooXXXooXooXooXooXXooXXXoXXooXXooXXXoooooOO.", ".XoooooooooXoXooXooXoXooXoXooXooXooooXooXoooXoXooXoXooXooooOO.", ".XooooooooXXXXXoXooXoXooXoXooXooXooXXXooXoooXoXooXoXooXooooOO.", ".XooooooooXoooXoXooXoXooXoXooXooXoXooXooXoooXoXooXoXooXooooOO.", ".XooooooooXoooXoXooXoXooXooXXXooXooXXXoooXooXooXXooXooXooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.", " .OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO. ", " .......................................................... "}; xtel-3.3.0.orig/pixmaps/annul_on.xpm0100444001424500142340000000316506703332541016317 0ustar ericperso/* XPM */ static char * annul_on_xpm[] = { /* width height ncolors chars_per_pixel */ "62 22 5 1", /* colors */ " s None c none", ". c black", "X c #643000", "o c white", "O c #986430", /* pixels */ " .......................................................... ", " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", ".XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOoOOOOOOOOOOOOOOOOOOooOOOOOOOoOOOoOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOoOOOOOOOOOOOOOOOOOOOoOOOOOOOoOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOoOoOOoooOOoooOOoOOoOOoOOooOOoooOooOOooOOoooOOOOOOo.", ".XXOOOOOOOOoOoOOoOOoOoOOoOoOOoOOoOOOOoOOoOOOoOoOOoOoOOoOOOOOo.", ".XXOOOOOOOoooooOoOOoOoOOoOoOOoOOoOOoooOOoOOOoOoOOoOoOOoOOOOOo.", ".XXOOOOOOOoOOOoOoOOoOoOOoOoOOoOOoOoOOoOOoOOOoOoOOoOoOOoOOOOOo.", ".XXOOOOOOOoOOOoOoOOoOoOOoOOoooOOoOOoooOOOoOOoOOooOOoOOoOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", " .oooooooooooooooooooooooooooooooooooooooooooooooooooooooooo. ", " .......................................................... "}; xtel-3.3.0.orig/pixmaps/camera.xpm0100444001424500142340000000347206703332541015737 0ustar ericperso/* XPM */ static char * camera_xpm[] = { /*ÀÁ*/ "39 39 6 1", /*blank39.xpm*/ " c #B0B0B0", ". c black", "X c #757575", "o c #BEBEBE", "O c #CFCF00", "+ c #FFFF00", /**/ " ", " ", " ", " ", " ", " ", " ", " ", " ", " ............................. ", " . XX. ", " . .oooooooooooooooooooooooo.XX. ", " . ooooooooooooooooooooooooooXX. ", " . ooooooooooooooooooooooooooXX. ", " . ooXXXXooooooooooooooXXXXooXX. ", " . oXX...Xoo.........oXX...XoXX. ", " . oX. . . o.OOOOOXXXoX. . . XX. ", " . oX..X.. o.O+++OooXoX..X.. XX. ", " . oX. . . o.O+++OooXoX. . . XX. ", " . ooX... o.XXXXXXXXooX... XX. ", " . ooo oooooooooooooo oXX. ", " . ooooooooooooooooooooooooooXX. ", " . ooooooooooooooooooooooooooXX. ", " . ooooo XXooooXX. ", " . oooo ooooooo. ooooooo.ooooXX. ", " . oooo ooo. oooooo. oooXXoooXX. ", " . .oo oo. oooooooooo. oo.oo.XX. ", " .XXXX.XXXXXXXXXXXXXXXXXX.XXXXX. ", " .XXXX.XXX...XX...XX...XX.XXXXX. ", " ............................. ", " ", " ", " ", " ", " ", " ", " ", " ", " "}; xtel-3.3.0.orig/pixmaps/cassete.xpm0100444001424500142340000000166306703332541016136 0ustar ericperso/* XPM */ static char *cassete_xpm[] = { /* width height ncolors chars_per_pixel */ "31 21 6 1", /* colors */ "` c #000000", "a c #757575", "b c #BEBEBE", "c c #CFCF00", "d c None", "e c #FFFF00", /* pixels */ "d`````````````````````````````d", "`dddddddddddddddddddddddddddaa`", "`d`bbbbbbbbbbbbbbbbbbbbbbbb`aa`", "`dbbbbbbbbbbbbbbbbbbbbbbbbbbaa`", "`dbbbbbbbbbbbbbbbbbbbbbbbbbbaa`", "`dbbaaaabbbbbbbbbbbbbbaaaabbaa`", "`dbaa```abb`````````baa```abaa`", "`dba`d`d`db`cccccaadba`d`d`daa`", "`dba``a``db`ceeecbbdba``a``daa`", "`dba`d`d`db`ceeecbbdba`d`d`daa`", "`dbba```ddb`ddddddddbba```ddaa`", "`dbbbddddbbbbbbbbbbbbbbddddbaa`", "`dbbbbbbbbbbbbbbbbbbbbbbbbbbaa`", "`dbbbbbbbbbbbbbbbbbbbbbbbbbbaa`", "`dbbbbbdddddddddddddddaabbbbaa`", "`dbbbbdbbbbbbb`dbbbbbbb`bbbbaa`", "`dbbbbdbbb`dbbbbbb`dbbbaabbbaa`", "`d`bbdbb`dbbbbbbbbbb`dbb`bb`aa`", "`aaaa`aaaaaaaaaaaaaaaaaa`aaaaa`", "`aaaa`aaa```aa```aa```aa`aaaaa`", "d`````````````````````````````d" }; xtel-3.3.0.orig/pixmaps/correc.xpm0100444001424500142340000000315606703332541015763 0ustar ericperso/* XPM */ static char * correc_xpm[] = { /* width height ncolors chars_per_pixel */ "62 22 5 1", /* colors */ " c none", ". c black", "X c white", "o c #986430", "O c #643000", /* pixels */ " .......................................................... ", " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XooooooooXXXooooooooooooooooooooooooooooXoooXoooooooooooooOO.", ".XoooooooXoooXoooooooooooooooooooooooooooXoooooooooooooooooOO.", ".XoooooooXooooooXXooXoXXoXoXXooXXoooXXooXXXoXXooXXooXXXooooOO.", ".XoooooooXoooooXooXoXXoooXXoooXooXoXooXooXoooXoXooXoXooXoooOO.", ".XoooooooXoooooXooXoXooooXooooXXXXoXoooooXoooXoXooXoXooXoooOO.", ".XoooooooXoooXoXooXoXooooXooooXooooXooXooXoooXoXooXoXooXoooOO.", ".XooooooooXXXoooXXooXooooXoooooXXoooXXooooXooXooXXooXooXoooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.", " .OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO. ", " .......................................................... "}; xtel-3.3.0.orig/pixmaps/correc_on.xpm0100444001424500142340000000316606703332541016460 0ustar ericperso/* XPM */ static char * correc_on_xpm[] = { /* width height ncolors chars_per_pixel */ "62 22 5 1", /* colors */ " s None c none", ". c black", "X c #643000", "o c white", "O c #986430", /* pixels */ " .......................................................... ", " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", ".XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOoooOOOOOOOOOOOOOOOOOOOOOOOOOOOOoOOOoOOOOOOOOOOOOOOo.", ".XXOOOOOOoOOOoOOOOOOOOOOOOOOOOOOOOOOOOOOOoOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOoOOOOOOooOOoOooOoOooOOooOOOooOOoooOooOOooOOoooOOOOOo.", ".XXOOOOOOoOOOOOoOOoOooOOOooOOOoOOoOoOOoOOoOOOoOoOOoOoOOoOOOOo.", ".XXOOOOOOoOOOOOoOOoOoOOOOoOOOOooooOoOOOOOoOOOoOoOOoOoOOoOOOOo.", ".XXOOOOOOoOOOoOoOOoOoOOOOoOOOOoOOOOoOOoOOoOOOoOoOOoOoOOoOOOOo.", ".XXOOOOOOOoooOOOooOOoOOOOoOOOOOooOOOooOOOOoOOoOOooOOoOOoOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", " .oooooooooooooooooooooooooooooooooooooooooooooooooooooooooo. ", " .......................................................... "}; xtel-3.3.0.orig/pixmaps/cxfin.xpm0100444001424500142340000000315306703332541015612 0ustar ericperso/* XPM */ static char * cxfin_xpm[] = { /* width height ncolors chars_per_pixel */ "62 22 5 1", /* colors */ " c none", ". c black", "X c white", "o c #986430", "O c #643000", /* pixels */ " .......................................................... ", " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XooooooooooooooooooooooooooooooooooooooooooXooooooooooooooOO.", ".XooooooooXXXoooooooooooooooooooooooooooooooXoXXXXooXooooooOO.", ".XoooooooXoooXoooooooooooooooooooooooooooooXooXooooooooooooOO.", ".XoooooooXooooooXXooXXXooXXXoooXXooXoooXoooXooXooooXXoXXXooOO.", ".XoooooooXoooooXooXoXooXoXooXoXooXooXoXoooXoooXXXoooXoXooXoOO.", ".XoooooooXoooooXooXoXooXoXooXoXXXXoooXooooXoooXoooooXoXooXoOO.", ".XoooooooXoooXoXooXoXooXoXooXoXoooooXoXooXooooXoooooXoXooXoOO.", ".XooooooooXXXoooXXooXooXoXooXooXXooXoooXoXooooXoooooXoXooXoOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.", " .OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO. ", " .......................................................... "}; xtel-3.3.0.orig/pixmaps/cxfin_on.xpm0100444001424500142340000000316506703332541016311 0ustar ericperso/* XPM */ static char * cxfin_on_xpm[] = { /* width height ncolors chars_per_pixel */ "62 22 5 1", /* colors */ " s None c none", ". c black", "X c #643000", "o c white", "O c #986430", /* pixels */ " .......................................................... ", " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", ".XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOoOOOOOOOOOOOOOOOo.", ".XXOOOOOOOoooOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOoOooooOOoOOOOOOOo.", ".XXOOOOOOoOOOoOOOOOOOOOOOOOOOOOOOOOOOOOOOOOoOOoOOOOOOOOOOOOOo.", ".XXOOOOOOoOOOOOOooOOoooOOoooOOOooOOoOOOoOOOoOOoOOOOooOoooOOOo.", ".XXOOOOOOoOOOOOoOOoOoOOoOoOOoOoOOoOOoOoOOOoOOOoooOOOoOoOOoOOo.", ".XXOOOOOOoOOOOOoOOoOoOOoOoOOoOooooOOOoOOOOoOOOoOOOOOoOoOOoOOo.", ".XXOOOOOOoOOOoOoOOoOoOOoOoOOoOoOOOOOoOoOOoOOOOoOOOOOoOoOOoOOo.", ".XXOOOOOOOoooOOOooOOoOOoOoOOoOOooOOoOOOoOoOOOOoOOOOOoOoOOoOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", " .oooooooooooooooooooooooooooooooooooooooooooooooooooooooooo. ", " .......................................................... "}; xtel-3.3.0.orig/pixmaps/disk_read.xpm0100444001424500142340000000353506703332541016434 0ustar ericperso/* XPM */ static char * disk_read_xpm[] = { /*Filename: blank39.xpm Size:39x39*/ "39 39 7 1", /**/ " c #B0B0B0", ". c navy blue", "X c black", "o c yellow", "O c white", "+ c slate grey", "@ c red", /**/ " ", " ", " ", " ", " ...XXXXXXXXXXXXXXXXXXXXXX... ", " ....XooooooooooooooooooooX.... ", " ....XooooooooooooooooooooX.... ", " .XO.XooooooooooooooooooooX.... ", " .X+.XOOOOOOOOOOOOOOOOOOOOX.... ", " .XX.XOOOOOOOOOOOOOOOOOOOOX.... ", " ....XOOOOOOOOOOOOOOOOOOOOX.... ", " ....XOOOOOOOOOO@OOOOOOOOOX.... ", " ....XOOOOOOOOO@@@OOOOOOOOX.... ", " ....XOOOOOOOO@@@@@OOOOOOOX.... ", " ....XOOOOOOO@@@@@@@OOOOOOX.... ", " ....XOOOOOO@@@@@@@@@OOOOOX.... ", " ....XOOOOO@@@@@@@@@@@OOOOX.... ", " ....XOOOO@@@@@@@@@@@@@OOOX.... ", " ....XOOO@@@@@@@@@@@@@@@OOX.... ", " ....XOO@@@@@@@@@@@@@@@@@OX.... ", " ....XOOOOO@@@@@@@@@@@OOOOX.... ", " .....XXXXX@@@@@@@@@@@XXXX..... ", " ..........@@@@@@@@@@@......... ", " ..........@@@@@@@@@@@......... ", " ..........@@@@@@@@@@@......... ", " ......++++@@@@@@@@@@@++....... ", " .....+....@@@@@@@@@@@+++...... ", " .....+....@@@@@@@@@@@+++...... ", " .....+....@@@@@@@@@@@+++...... ", " .....+.....+O+++++++++++...... ", " .....+.....+O+++++++++++...... ", " .....+.....+O+++++++++++...... ", " ....+++++++++++++++++++...... ", " ...XXXXXXXXXXXXXXXXXXX..... ", " ", " ", " ", " ", " "}; xtel-3.3.0.orig/pixmaps/disk_write.xpm0100444001424500142340000000353606703332541016654 0ustar ericperso/* XPM */ static char * disk_write_xpm[] = { /*Filename: blank39.xpm Size:39x39*/ "39 39 7 1", /**/ " c #B0B0B0", ". c navy blue", "X c black", "o c yellow", "O c white", "+ c slate grey", "@ c red", /**/ " ", " ", " ", " ", " ...XXXXXXXXXXXXXXXXXXXXXX... ", " ....XooooooooooooooooooooX.... ", " ....XooooooooooooooooooooX.... ", " .XO.XooooooooooooooooooooX.... ", " .X+.XOOOOOOOOOOOOOOOOOOOOX.... ", " .XX.XOOOOOOOOOOOOOOOOOOOOX.... ", " ....XOOOOOOOOOOOOOOOOOOOOX.... ", " ....XOOOO@@@@@@@@@@@OOOOOX.... ", " ....XOOOO@@@@@@@@@@@OOOOOX.... ", " ....XOOOO@@@@@@@@@@@OOOOOX.... ", " ....XOOOO@@@@@@@@@@@OOOOOX.... ", " ....XOOOO@@@@@@@@@@@OOOOOX.... ", " ....XOOOO@@@@@@@@@@@OOOOOX.... ", " ....XOOOO@@@@@@@@@@@OOOOOX.... ", " ....XOOOO@@@@@@@@@@@OOOOOX.... ", " ....XOOOO@@@@@@@@@@@OOOOOX.... ", " ....XOOOO@@@@@@@@@@@OOOOOX.... ", " .....X@@@@@@@@@@@@@@@@@XX..... ", " .......@@@@@@@@@@@@@@@........ ", " ........@@@@@@@@@@@@@......... ", " .........@@@@@@@@@@@.......... ", " ......++++@@@@@@@@@++++....... ", " .....+.....@@@@@@@++++++...... ", " .....+.....+@@@@@+++++++...... ", " .....+.....+O@@@++++++++...... ", " .....+.....+O+@+++++++++...... ", " .....+.....+O+++++++++++...... ", " .....+.....+O+++++++++++...... ", " ....+++++++++++++++++++...... ", " ...XXXXXXXXXXXXXXXXXXX..... ", " ", " ", " ", " ", " "}; xtel-3.3.0.orig/pixmaps/door_run.xpm0100444001424500142340000000353306703332541016334 0ustar ericperso/* XPM */ static char * door_run_xpm[] = { /*Filename: blank39.xpm Size:39x39*/ "39 39 7 1", /**/ " c #B0B0B0", ". c sky blue", "X c black", "o c white", "O c orange", "+ c gold", "@ c firebrick", /**/ " ", " ", " ", " ................................ ", " .XXXXXXXXXXXXX.................. ", " .XXooooooooooX.................. ", " .XOX+o+o+o+o+X.................. ", " .X@OXo+o+o+o+X...XXX............ ", " .XO@OXo+o+o+oX...XXXX........... ", " .X@O@OXo+o+o+X..XXXXX........... ", " .XO@O@OXo+o+oX..XXXXX........... ", " .X@O@O@X+o+o+X...XXX............ ", " .XO@O@OXo+o+oXXXX...XXXXX....... ", " .X@O@O@X+o+o+XXXXXXXXXXXXX...... ", " .XO@O@OXo+o+oX...XXXXX..XX...... ", " .X@O@O@X+o+o+X.....XXX..XX...... ", " .XO@OXOXo+o+oX.....XXX...XX..... ", " .X@O@X@X+o+o+X.....XXX...XX..... ", " .XO@O@OXo+o+oX.....XXX.......... ", " .X@O@O@Xo+oo+X....XXXX.......... ", " .XO@O@OX+++++X...XXXXXX...XX.... ", " .XXO@O@XXXXXXX...XX..XXX.XXXX... ", " ...XO@OX+o+o+o...XX...XXXXX.X... ", " ....XO@Xo+o+o+o.XX.....XXX...... ", " .....XOX+o+o+o+oXX.............. ", " ......XXo+o+o+o+XX.............. ", " ........+o+o+o+XXX+............. ", " .........+o+o+o+o+o+o+.......... ", " ..........+o+o+o+o+o+o+......... ", " ...........+o+o+o+o+o+o+o+...... ", " ............+o+o+o+o+o+o+o+..... ", " .............+o+o+o+o+o+o+o+.... ", " ..............+o+o+o+o+o+o+o+... ", " .............+o+o+o+o+o+o+o+o+.. ", " ................................ ", " ", " ", " ", " "}; xtel-3.3.0.orig/pixmaps/envoi.xpm0100444001424500142340000000315306703332541015623 0ustar ericperso/* XPM */ static char * envoi_xpm[] = { /* width height ncolors chars_per_pixel */ "62 22 5 1", /* colors */ " c none", ". c black", "X c white", "o c #00B800", "O c #006400", /* pixels */ " .......................................................... ", " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooXXXXooooooooooooooooooXoooooooooooooooooooooooooooOO.", ".XoooooooXoooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooXooooXXXooXoooXooXXooXXoooooooooooooooooooooooooooOO.", ".XoooooooXXXooXooXooXoXooXooXooXoooooooooooooooooooooooooooOO.", ".XoooooooXooooXooXooXoXooXooXooXoooooooooooooooooooooooooooOO.", ".XoooooooXooooXooXoooXoooXooXooXoooooooooooooooooooooooooooOO.", ".XoooooooXXXXoXooXoooXooooXXoooXoooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.", " .OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO. ", " .......................................................... "}; xtel-3.3.0.orig/pixmaps/envoi_on.xpm0100444001424500142340000000316506703332541016322 0ustar ericperso/* XPM */ static char * envoi_on_xpm[] = { /* width height ncolors chars_per_pixel */ "62 22 5 1", /* colors */ " s None c none", ". c black", "X c #006400", "o c white", "O c #00B800", /* pixels */ " .......................................................... ", " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", ".XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOooooOOOOOOOOOOOOOOOOOOoOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOoOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOoOOOOoooOOoOOOoOOooOOooOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOoooOOoOOoOOoOoOOoOOoOOoOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOoOOOOoOOoOOoOoOOoOOoOOoOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOoOOOOoOOoOOOoOOOoOOoOOoOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOooooOoOOoOOOoOOOOooOOOoOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", " .oooooooooooooooooooooooooooooooooooooooooooooooooooooooooo. ", " .......................................................... "}; xtel-3.3.0.orig/pixmaps/film.xpm0100444001424500142340000000352706703332541015437 0ustar ericperso/* XPM */ static char * film_xpm[] = { /*Filename: blank39.xpm Size:39x39*/ "39 39 7 1", /**/ " c #B0B0B0", ". c black", "X c white", "o c grey", "O c slate grey", "+ c cyan", "@ c sea green", /**/ " ", " ", " ", " ", " ", " ............ ", " ...Xoo.OOOOXooO... ", " ..XoooooO....ooooooO.. ", " .XoXXXXoooXXXXoooXXXXoO. ", " .Xo.OOOOXo.OOOOXo.OOOOXoO. ", " .XoO....ooO....ooO....ooO. ", " .oXXoooooooXXXXoooooooXOO. ", " .ooXXXooo.OOOOXooooXXOO. ", " ..oooXXXO....XXXXXOO.. ", " .o..OooooooooooooO..O... ", " ...o..............O....... ", " ..+@...o..o..o..O...+@.@.o... ", " .O.@@.+@..........+@.+@.+@...o. ", " .O..@.+@.@+@.@+@.@+@.@..+@.@+... ", " .o.o...@.@+@.@@@.@@...O.@@.@+@.. ", " .oO..o..............O..O...@+@@. ", " .XXO...o..o..o..O...Ooo....@.o. ", " ..XXXO..........Oooo.. ...... ", " ...XXXXXXXXXXXo... ..o..@. ", " ............ ..o...+@. ", " ....+@.+@. ", " .o.@+@.@.. ", " ...@@...o. ", " ..o..o... ", " .+..... ", " .+@.. ", " ..@. ", " .... ", " .o. ", " .. ", " ", " ", " ", " "}; xtel-3.3.0.orig/pixmaps/guide.xpm0100444001424500142340000000315306703332541015600 0ustar ericperso/* XPM */ static char * guide_xpm[] = { /* width height ncolors chars_per_pixel */ "62 22 5 1", /* colors */ " c none", ". c black", "X c white", "o c #986430", "O c #643000", /* pixels */ " .......................................................... ", " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XooooooooXXXooooooooXooooXooooooooooooooooooooooooooooooooOO.", ".XoooooooXoooXooooooooooooXooooooooooooooooooooooooooooooooOO.", ".XoooooooXoooooXooXoXXooXXXooXXooooooooooooooooooooooooooooOO.", ".XoooooooXooXXoXooXooXoXooXoXooXoooooooooooooooooooooooooooOO.", ".XoooooooXoooXoXooXooXoXooXoXXXXoooooooooooooooooooooooooooOO.", ".XoooooooXoooXoXooXooXoXooXoXooooooooooooooooooooooooooooooOO.", ".XooooooooXXXoooXXXooXooXXXooXXooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.", " .OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO. ", " .......................................................... "}; xtel-3.3.0.orig/pixmaps/guide_on.xpm0100444001424500142340000000316506703332541016277 0ustar ericperso/* XPM */ static char * guide_on_xpm[] = { /* width height ncolors chars_per_pixel */ "62 22 5 1", /* colors */ " s None c none", ". c black", "X c #643000", "o c white", "O c #986430", /* pixels */ " .......................................................... ", " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", ".XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOoooOOOOOOOOoOOOOoOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOoOOOoOOOOOOOOOOOOoOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOoOOOOOoOOoOooOOoooOOooOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOoOOooOoOOoOOoOoOOoOoOOoOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOoOOOoOoOOoOOoOoOOoOooooOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOoOOOoOoOOoOOoOoOOoOoOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOoooOOOoooOOoOOoooOOooOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", " .oooooooooooooooooooooooooooooooooooooooooooooooooooooooooo. ", " .......................................................... "}; xtel-3.3.0.orig/pixmaps/next.xpm0100444001424500142340000000333306703332541015461 0ustar ericperso/* XPM */ static char * next_xpm[] = { /*ø */ "54 28 4 1", /**/ " c #AEA6A2", ". c black", "X c #555151", "o c white", /*ø¨*/ " ", " ", " ", " .X ... ", " ... .XX ", " .XX.X .XX ", " .XXX.. .XX ", " .XXXXX.X .XX ", " .XXXXXX.. .XX ", " .XXXXXXXXo.XX ", " .XXXXXXXo .XX ", " .XXXXXoo .XX ", " .XXXoo .XX ", " .Xoo .XX ", " oo .oo ", " ", " ", " .. . . ", " .. . . ", " . . . .. . . ... ", " . . . . . . . . ", " . . . .... . . ", " . . . . . . . ", " . .. . . . . . ", " . .. .. . . .. ", " ", " ", " "}; xtel-3.3.0.orig/pixmaps/nouveau.xpm0100444001424500142340000000365706703332541016176 0ustar ericperso/* XPM */ static char * nouveau_xpm[] = { /*Filename: blank39.xpm Size:39x39*/ "39 39 12 1", /**/ " c #B0B0B0", ". c black", "X c dark slate grey", "o c lemon chiffon", "O c grey", "+ c slate grey", "@ c white", "# c peru", "$ c orange", "% c gold", "& c yellow", "* c sea green", /**/ " ", " ", " ", " ", " ....... ", " XoO+X.. ", " XoO+X.. ", " OX+O++XX............+ ", " .Xo@@oOO++XX......... ", " +..XX...............+ ", " .#$%%%%%%%$%%%$$##. ", " .$%&&&&&&&&&%&%%$$. ", " .$%&&&&&&&%&&&%%$$. ", " .$%&&&&&&&&&%&%%$$. ", " .$%&&&&&&&%&&&%%$$. ", " .$%&&&&&&&&&%&%%$$. ", " .$%&&&&&&&%&&&%%$$. ", " .$%&&&&&&&&&%&%%$$. ", " .$%&&&&&&&%&&&%%$$. ", " .$%&&&&&&&&&%&%%$$. ", " .$%&&&&&&&%&&&%%***+++++++++++ ", " .$%&&&&&&&&&%&%%..************+ ", " .$%&&&&&&&%&&&%%..************+ ", " .$%&&&&&&&&&%&%%..************+ ", " .$%&&&&&&&%&&&%%..************+ ", " .$%&&&&&&&&&%&%%..************+ ", " .$%&&&&&&&%&&&%%..************+ ", " .$%&&&&&&&&&%&%%..************+ ", " .$%&&&&&&&%&&&%%*.*++*+++*+++*+ ", " .$%&&&&&&&&&%&%%*.*@+*+@+*+@+*+ ", " .$%&&&&&&&%&&&%%*.*++*+++*+++*+ ", " .$%&&&&&&&&&%&%%..************+ ", " .$%&&&&&&&%&&&%%***++++++++++++ ", " OX+O++XX............+ ", " .Xo@@oOO++XX......... ", " +..XX...............+ ", " ", " ", " "}; xtel-3.3.0.orig/pixmaps/pf.xpm0100444001424500142340000000667606703332541015125 0ustar ericperso/* XPM */ static char *pf_xpm[] = { /* width height ncolors chars_per_pixel */ "48 61 15 1", /* colors */ "` c #71545B", "a c #C0CEBC", "b c #3D3035", "c c #5E504B", "d c #544241", "e c #ABAD9B", "f c #B5BDA8", "g c #A59E8B", "h c #AFB5A5", "i c #918170", "j c #B8C0B0", "k c #B1B79F", "l c #9D8D7A", "m c #73655E", "n c #847468", /* pixels */ "ggggggegeeeeeeeeeeheehhhkkhhkfkkfkhkkkkkfkkkkkkb", "ggggeeegeeeehhehhehhhhhehkhkfkkhkkfkhfkfkfkffkka", "ggggeeeeeeehhhhhhhhhheeeehhhhkhfkfhkhhhfkhkfhhkb", "geeeeeeeeeeeeekhheheeglnnnlhhkkfhhhkkfhhfhfkfkka", "ggeeeeeehheeheeeeglnccccddcccmnghhhhhkffhffhffhb", "eeeeeeeheheekeegncccc``cccddddccghhhhffffffffffa", "eeeeeeeeeeeeeel``ccddcccddddddddciekkjffffhhfffb", "eeeeeehhhehegnccddbddddcccdddddddcigehffjfhhhhfa", "eeeheeehhegmcddddddbddddcdddccdddddcnghhffffhfhb", "eeeehheeegccddddbbbbbddddddddcdddddddcghfhjjjjfa", "eeheeheeg`ccddbdbbbbbbddddddddddddddddnehhfjfjfb", "eeheeeeencddddbdbbbdbbbbdcddddddddddddcgffhfjjja", "eeekeeei`dddbdbbbbbbbdbddddcdddddbdddddmkhffjffb", "eeheeeecddddbbbbbbbbbbdbddddcccddbdddddcehfjfjfa", "hehhehgdddbbbbbbbbbbbbddddcc``ddddbdddddnkjjfffb", "eeeeheldddddbbbdbbddddddd```c``cddddddddcgffjjja", "eehkhendddbdbbbbdddddcddcc```n``c`cdddddcihjjjjb", "eekhhhnddbbbdbbddcddccdccnniinnm`n`ccd`cc`hfjfja", "ehkkeeiddbbbbbdccddddcc`nniiiinninn`cc`ccckjjjjb", "ekkkhhiddbbbbdd`cdddccnigehkglilinnnc`ccccejjjja", "hkhhheiddbbbdddc`dccc`llgehfeglglili`cccccejjjjb", "khhhkelddbddbd```cc``nlggkhkkggggggln`cdccejjjja", "ehhkhhgdddbbdd`nm``nnlggekhelgggggglncccccejjaab", "hhhhheedddddcnnninniillgekegeegggggliccccmejjjja", "hhkkkkh`dddd`nnnililiilgffkhkkheggglicccccejjaab", "kkkhhke`cddd`nnn`````nlgekkkhhehgggglcdccckjjaja", "hhhkhkl`cddcmnm`nnnn`c`mlgeeegggeggliddccnfjjjab", "hkkkhhi``ddc`nn``c``n```nlgglnmnllgllcccmejaaaja", "kkfhkknm``d`mnn`cccd``ccnllln`cccmnlldccgjjjjajb", "ehhkfkn``cc`nilinnn`mn``nlglnnnlllnniccckjajjaja", "khfkhhl`c```nilliinnnllnnlgin`dcnniiiccljjajaaab", "hhhhkhg`````nnlgllilllliiiglln`c``niicnhjjjajjja", "kkhkhhk``cmmnilgggllggllilglliiiniilichjjajjjaab", "kkkffhhn````nilgggggggllilglgliillgglejjjjjjaaaa", "khkhffhl````nnigggeeggliiggggeggggggljajaaajjaab", "hkkhfffen`m`nnilggggglinigglgeeeeegggjajjjaajaja", "hkkhkhhhhe``mnnllggglninieelgggeggglejajjajaaajb", "hhkkhfhfhh```nnilllllnccniiillegegglkjjjajjaajja", "khhhfhffhh`m`nnnnillll`c`mniggggggglfajjjjjaaajb", "khhhkffhfhm`mnnniiiillin`ilggggggllejjaaaaajjaaa", "hhkhhfhhhe```nniinnnnilgllllllgllllhjjaajajjjajb", "hhhkkhffhgc``nniliinnnnniillliilliljjjaaajjajjja", "hkehkhfkki`c`nnniiilnillliinnnilliljjaaaajjaajab", "ekhkhkhken``c`nniniiinnnilllllllliljajjjajjaaaja", "heehkeennnc````mnnnillnnnnilllllilejjaajjaajajjb", "eeeheencin```cc`nnnnilllllllliiiiifjjjjjjajjaaja", "eeheendnin`c``cc`mnniilllllliiiiigjjajjjjjajjjjb", "eeeegddniiccc`ccc`mniillgllliniiifjjjjjjjaajjjja", "eeencddnii`cccccccccmniilliinnnnhjjjjjjjajjjjjjb", "eg`ddddgiilcdcc```ccc`nniinnnnnejjjjjjjaaajjjjja", "ncdddddgelegcccdcccccc```nnn`nhjjjjjjjjjjjjjjjjb", "dddddddlhggh`ccccccccccccccc`ejjjffjjfjjjjjjjjja", "ddbddddhjhghhccccccddcdccc``lhjjjjfjjjjfjfjffjjb", "dddbdddjajgehgccdcdcddcc``nngkfhjfjjjjfffjjfjfja", "bddddddjajeehhmccdcddcdcmnnliehfjfjhfffffjhhfjjb", "bbdddddhajeekjeccccccc`nnnieiehhhjfhfhffhfhhhjha", "dbbdbddeajhfkfflnn````nnniiegemnehfhfhjhhjhfhfhb", "bdddbddljjffhfjhlinnnnnnninlgenccngkhhhhhjhhfhfa", "bdbdbddnjfehkjengiiinnnninnieeecdccnehhehjkkhhhb", "dbddddddhheennmcnigginnni`nlehfcdddccneeehhhhhha", "bbddbdddggn`nigniliglnninciehehgddddddcieeeeeeeb" }; xtel-3.3.0.orig/pixmaps/phone.xpm0100444001424500142340000000351106703332541015612 0ustar ericperso/* XPM */ static char * phone_xpm[] = { /*Filename: blank39.xpm Size:39x39*/ "39 39 6 1", /**/ " c #B0B0B0", ". c black", "X c white", "o c yellow", "O c #808000", "+ c #C0C0C0", /**/ " ", " ", " ", " ", " ", " ", " ...... ", " ..Xooooo... ", " .oooXXXXXooo... ", " .ooooOO..oXXXooo.. ", " .ooooOO.Xo.oooXXooo.. ", " ..ooOOO.o+O.ooooXXooo.. ", " .o..O...o+O.Ooo..OXXooo. ", " .ooO.+ooo+O.OO.Xo.OoXooo. ", " .O.+ooooooo...o+O.OoXooo. ", " .+ooXXOooooo.o+O.OooXooo. ", " .+oooO.XXOooooo+O.OooXoooX. ", " .+ooXXOoO.XXOooooo.OoooXXXO. ", " .+oooO.XXOoO.ooooo+.Oooo+OOO. ", " .+ooXXOoO.XXOooooo+O.Oooo+OOO. ", " .+oooO.XXOoO.ooooo+OO..ooo+OOO. ", " .+XXooooO.XXOooooo+OOO.OOoo+OO.. ", " .+XXXXooooO.ooooo+OOOO.OoOO...O. ", " .+ooXXXXoooooooo+OOOOOO.ooo+OOO. ", " .+ooooXXXXooooo+OOOOOOO..ooOOO. ", " .+ooooooXXXXoo+OOOOOOOOO...... ", " ..++ooooooXXX+OOOOOOOOOOO.. ", " ..++ooooooXOOOOOOOOOO.. ", " ..++oooooOOOOOOOO.. ", " ..++oooOOOOOO.. ", " ..++oOOOO.. ", " ..+OO.. ", " ... ", " ", " ", " ", " ", " ", " "}; xtel-3.3.0.orig/pixmaps/play.xpm0100444001424500142340000000333506703332541015452 0ustar ericperso/* XPM */ static char * play_xpm[] = { /*81*/ "54 28 4 1", /*`0*/ " c #AEA6A2", ". c black", "X c #555151", "o c white", /*81*/ " ", " ", " .X ", " ... ", " .XX.X ", " .XXX.. ", " .XXXXX.X ", " .XXXXXX.. ", " .XXXXXXXXo ", " .XXXXXXXo ", " .XXXXXoo ", " .XXXoo ", " .Xoo ", " oo ", " ", " ", " .... . ", " . . . ", " . . . ... . . ", " .... . . . . ", " . . ... . . ", " . . . . . . ", " . . . . .. ", " . . .. . . ", " . ", " . ", " ", " "}; xtel-3.3.0.orig/pixmaps/prev.xpm0100444001424500142340000000333506703332542015462 0ustar ericperso/* XPM */ static char * prev_xpm[] = { /*È */ "54 28 4 1", /*è */ " c #AEA6A2", ". c black", "X c #555151", "o c white", /*è */ " ", " ", " ", " ... .. ", " .XX ..o ", " .XX ..XXo ", " .XX ..XXXo ", " .XX ..XXXXXo ", " .XX ..XXXXXXo ", " .XX.XXXXXXXXo ", " .XX XXXXXXXo ", " .XX XXXXXo ", " .XX XXXXo ", " .XX XXo ", " .oo o ", " ", " ", " .... ", " . . ", " . . . . .. . . ", " .... .. . . . . ", " . . .... . . ", " . . . . . ", " . . . . . ", " . . .. . ", " ", " ", " "}; xtel-3.3.0.orig/pixmaps/printer.xpm0100444001424500142340000000354006703332542016167 0ustar ericperso/* XPM */ static char * printer_xpm[] = { /*Filename: blank39.xpm Size:39x39*/ "39 39 7 1", /**/ " c #B0B0B0", ". c black", "X c white", "o c dark slate grey", "O c gray50", "+ c yellow", "@ c sienna", /**/ " ", " ", " ", " ", " ", " .................... ", " .XXXXXXXXXXXXXXXXXX. ", " .XXXXXXXXXXXXXXXXXX.. ", " .XXoooooooooooooXXX.. ", " .XXXXXXXXXXXXXXXXXX.O. ", " .XXoooooooooooooXXX.O. ", " .XXXXXXXXXXXXXXXXXX.OO. ", " .XXoooooooooooooXXX.OO. ", " .XXXXXXXXXXXXXXXXXX..... ", " .XXooooooooooooXXXX. ", " .XXXXXXXXXXXXXXXXXX. ", " ...XXXXXXXXXXXXXXXXXX...... ", " .+.XXXXXXXXXXXXXXXXXX.@+@+.. ", " .+@....................o@+.+. ", " .+@ooooooooooooooooooooo@+.+@. ", " .+@+@+@+@+@+@+@+@+@+@+@+@+.+@+. ", " ...........................+@+@. ", " .@+@+@+@+@+@+@+@+@+@+@+@+@.@+@+. ", " .+@+@+@+@+@+@+@........X@+.+@+@. ", " .@+@+@+@+@+@+@+.oooooooX+@.@+@+. ", " .+@+@+@+@+@+@+@.oooooooX@+.+@+@. ", " .@+@+@+@+@+@+@+.oooooooX+@.@+@. ", " .+@+@+@+@+@+@+@.XXXXXXXX@+.+@.oo ", " .@+@+@+@+@+@+@+@+@+@+@+@+@.@.oo ", " .+@+@+@+@+@+@+@+@+@+@+@+@+..oo ", " ...........................oo ", " oooooooooooooooooooooooooo ", " oooooooooooooooooooooooo ", " ", " ", " ", " ", " ", " "}; xtel-3.3.0.orig/pixmaps/printera.xpm0100444001424500142340000000356406703332542016336 0ustar ericperso/* XPM */ static char *printera_xpm[] = { /* width height ncolors chars_per_pixel */ "39 39 7 1", /* colors */ "` c #000000", "a c #7F7F7F", "b c #A0522D", "c c #2F4F4F", "d c #B0B0B0", "e c #FFFFFF", "f c #FFFF00", /* pixels */ "ddddddddddddddddddddddddddddddddddddddd", "ddddddddddddddddddddddddddddddddddddddd", "ddddddddddddddddddddddddddddddddddddddd", "ddddddddddddddddddddddddddddddddddddddd", "ddddddddddddddddddddddddddddddddddddddd", "ddddddddddddddd````````````````````dddd", "ddddddddddddddd`eeeeeeeeeeeeeeeeee`dddd", "dddddddddddddd`ee`eeee``````eeeee``dddd", "dddddddddddddd`ee`eeeee`eee``eeee``dddd", "ddddddddddddd`ee`e`eeee`eeee`eee`a`dddd", "ddddddddddddd`ee`e`eeee`eee``eee`a`dddd", "dddddddddddd`ee`eee`eee`````eee`aa`dddd", "dddddddddddd`ee`````eee`eeee`ee`aa`dddd", "ddddddddddd`eee`eee`eee`eeee`e`````dddd", "ddddddddddd`ee`eeeee`ee`eee``e`dddddddd", "dddddddddd`ee```eee`````````e`ddddddddd", "dddddddd```eeeeeeeeeeeeeeeeee``````dddd", "ddddddd`f`eeeeeeeeeeeeeeeeee`bfbf``dddd", "dddddd`fb````````````````````cbf`f`dddd", "ddddd`fbcccccccccccccccccccccbf`fb`dddd", "dddd`fbfbfbfbfbfbfbfbfbfbfbfbf`fbf`dddd", "ddd```````````````````````````fbfb`dddd", "ddd`bfbfbfbfbfbfbfbfbfbfbfbfb`bfbf`dddd", "ddd`fbfbfbfbfbfbfb````````ebf`fbfb`dddd", "ddd`bfbfbfbfbfbfbf`cccccccefb`bfbf`dddd", "ddd`fbfbfbfbfbfbfb`cccccccebf`fbfb`dddd", "ddd`bfbfbfbfbfbfbf`cccccccefb`bfb`ddddd", "ddd`fbfbfbfbfbfbfb`eeeeeeeebf`fb`ccdddd", "ddd`bfbfbfbfbfbfbfbfbfbfbfbfb`b`ccddddd", "ddd`fbfbfbfbfbfbfbfbfbfbfbfbf``ccdddddd", "ddd```````````````````````````ccddddddd", "dddddccccccccccccccccccccccccccdddddddd", "ddddddccccccccccccccccccccccccddddddddd", "ddddddddddddddddddddddddddddddddddddddd", "ddddddddddddddddddddddddddddddddddddddd", "ddddddddddddddddddddddddddddddddddddddd", "ddddddddddddddddddddddddddddddddddddddd", "ddddddddddddddddddddddddddddddddddddddd", "ddddddddddddddddddddddddddddddddddddddd" }; xtel-3.3.0.orig/pixmaps/repet.xpm0100444001424500142340000000315306703332542015623 0ustar ericperso/* XPM */ static char * repet_xpm[] = { /* width height ncolors chars_per_pixel */ "62 22 5 1", /* colors */ " c none", ". c black", "X c white", "o c #986430", "O c #643000", /* pixels */ " .......................................................... ", " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooXoooooooooXoooooooooooooooooooooooooooooooOO.", ".XoooooooXXXXoooXoooooooooXooooXoooXooXoooXooooooooooooooooOO.", ".XoooooooXoooXoooooooooooooooooXooooooXooooooooooooooooooooOO.", ".XoooooooXoooXooXXooXXXoooXXooXXXoXXoXXXoXXooXXooXXXoooooooOO.", ".XoooooooXXXXooXooXoXooXoXooXooXoooXooXoooXoXooXoXooXooooooOO.", ".XoooooooXoXoooXXXXoXooXoXXXXooXoooXooXoooXoXooXoXooXooooooOO.", ".XoooooooXooXooXooooXooXoXoooooXoooXooXoooXoXooXoXooXooooooOO.", ".XoooooooXoooXooXXXoXXXoooXXXoooXooXoooXooXooXXooXooXooooooOO.", ".XooooooooooooooooooXooooooooooooooooooooooooooooooooooooooOO.", ".XooooooooooooooooooXooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.", " .OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO. ", " .......................................................... "}; xtel-3.3.0.orig/pixmaps/repet_on.xpm0100444001424500142340000000316506703332542016322 0ustar ericperso/* XPM */ static char * repet_on_xpm[] = { /* width height ncolors chars_per_pixel */ "62 22 5 1", /* colors */ " s None c none", ". c black", "X c #643000", "o c white", "O c #986430", /* pixels */ " .......................................................... ", " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", ".XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo.", ".XXOOOOOOOOOOOOOOoOOOOOOOOOoOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOooooOOOoOOOOOOOOOoOOOOoOOOoOOoOOOoOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOoOOOoOOOOOOOOOOOOOOOOOoOOOOOOoOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOoOOOoOOooOOoooOOOooOOoooOooOoooOooOOooOOoooOOOOOOOOo.", ".XXOOOOOOooooOOoOOoOoOOoOoOOoOOoOOOoOOoOOOoOoOOoOoOOoOOOOOOOo.", ".XXOOOOOOoOoOOOooooOoOOoOooooOOoOOOoOOoOOOoOoOOoOoOOoOOOOOOOo.", ".XXOOOOOOoOOoOOoOOOOoOOoOoOOOOOoOOOoOOoOOOoOoOOoOoOOoOOOOOOOo.", ".XXOOOOOOoOOOoOOoooOoooOOOoooOOOoOOoOOOoOOoOOooOOoOOoOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOoOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOoOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", " .oooooooooooooooooooooooooooooooooooooooooooooooooooooooooo. ", " .......................................................... "}; xtel-3.3.0.orig/pixmaps/retour.xpm0100444001424500142340000000315406703332542016025 0ustar ericperso/* XPM */ static char * retour_xpm[] = { /* width height ncolors chars_per_pixel */ "62 22 5 1", /* colors */ " c none", ". c black", "X c white", "o c #986430", "O c #643000", /* pixels */ " .......................................................... ", " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooXXXXooooooooXoooooooooooooooooooooooooooooooooooooOO.", ".XoooooooXoooXoooooooXoooooooooooooooooooooooooooooooooooooOO.", ".XoooooooXoooXooXXooXXXooXXooXooXoXoXXoooooooooooooooooooooOO.", ".XoooooooXXXXooXooXooXooXooXoXooXoXXoooooooooooooooooooooooOO.", ".XoooooooXoXoooXXXXooXooXooXoXooXoXooooooooooooooooooooooooOO.", ".XoooooooXooXooXoooooXooXooXoXooXoXooooooooooooooooooooooooOO.", ".XoooooooXoooXooXXooooXooXXoooXXXoXooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.", " .OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO. ", " .......................................................... "}; xtel-3.3.0.orig/pixmaps/retour_on.xpm0100444001424500142340000000316606703332542016524 0ustar ericperso/* XPM */ static char * retour_on_xpm[] = { /* width height ncolors chars_per_pixel */ "62 22 5 1", /* colors */ " s None c none", ". c black", "X c #643000", "o c white", "O c #986430", /* pixels */ " .......................................................... ", " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", ".XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOooooOOOOOOOOoOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOoOOOoOOOOOOOoOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOoOOOoOOooOOoooOOooOOoOOoOoOooOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOooooOOoOOoOOoOOoOOoOoOOoOooOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOoOoOOOooooOOoOOoOOoOoOOoOoOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOoOOoOOoOOOOOoOOoOOoOoOOoOoOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOoOOOoOOooOOOOoOOooOOOoooOoOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", " .oooooooooooooooooooooooooooooooooooooooooooooooooooooooooo. ", " .......................................................... "}; xtel-3.3.0.orig/pixmaps/rewind.xpm0100444001424500142340000000333706703332542016000 0ustar ericperso/* XPM */ static char * rewind_xpm[] = { /*ð */ "54 28 4 1", /*ð¨*/ " c #AEA6A2", ". c black", "X c white", "o c #555151", /*è¨*/ " ", " ", " ", " .. .. ", " ..X ..X ", " ..ooX ..ooX ", " ..oooX ..oooX ", " ..oooooX ..oooooX ", " ..ooooooX ..ooooooX ", " .ooooooooX.ooooooooX ", " oooooooX oooooooX ", " oooooX oooooX ", " ooooX ooooX ", " ooX ooX ", " X X ", " ", " ", " .... . . ", " . . . ", " . . .. . . . . . .. .. . ", " .... . . . . . . .. . . .. ", " . . .... . . . . . . . . ", " . . . . . . . . . . . ", " . . . . . . . . . . .. ", " . . .. . . . . . .. . ", " ", " ", " "}; xtel-3.3.0.orig/pixmaps/sommaire.xpm0100444001424500142340000000315606703332542016323 0ustar ericperso/* XPM */ static char * sommaire_xpm[] = { /* width height ncolors chars_per_pixel */ "62 22 5 1", /* colors */ " c none", ". c black", "X c white", "o c #986430", "O c #643000", /* pixels */ " .......................................................... ", " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XooooooooXXXoooooooooooooooooooooooooooooXooooooooooooooooOO.", ".XoooooooXoooXoooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooXooooooXXooXXXoXXooXXXoXXoooXXooXXoXoXXooXXoooooooOO.", ".XooooooooXXXooXooXoXooXooXoXooXooXooooXooXoXXoooXooXooooooOO.", ".XoooooooooooXoXooXoXooXooXoXooXooXooXXXooXoXooooXXXXooooooOO.", ".XoooooooXoooXoXooXoXooXooXoXooXooXoXooXooXoXooooXoooooooooOO.", ".XooooooooXXXoooXXooXooXooXoXooXooXooXXXooXoXoooooXXoooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.", " .OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO. ", " .......................................................... "}; xtel-3.3.0.orig/pixmaps/sommaire_on.xpm0100444001424500142340000000317006703332542017013 0ustar ericperso/* XPM */ static char * sommaire_on_xpm[] = { /* width height ncolors chars_per_pixel */ "62 22 5 1", /* colors */ " s None c none", ". c black", "X c #643000", "o c white", "O c #986430", /* pixels */ " .......................................................... ", " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", ".XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOoooOOOOOOOOOOOOOOOOOOOOOOOOOOOOOoOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOoOOOoOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOoOOOOOOooOOoooOooOOoooOooOOOooOOooOoOooOOooOOOOOOOOo.", ".XXOOOOOOOoooOOoOOoOoOOoOOoOoOOoOOoOOOOoOOoOooOOOoOOoOOOOOOOo.", ".XXOOOOOOOOOOoOoOOoOoOOoOOoOoOOoOOoOOoooOOoOoOOOOooooOOOOOOOo.", ".XXOOOOOOoOOOoOoOOoOoOOoOOoOoOOoOOoOoOOoOOoOoOOOOoOOOOOOOOOOo.", ".XXOOOOOOOoooOOOooOOoOOoOOoOoOOoOOoOOoooOOoOoOOOOOooOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", " .oooooooooooooooooooooooooooooooooooooooooooooooooooooooooo. ", " .......................................................... "}; xtel-3.3.0.orig/pixmaps/stop.xpm0100444001424500142340000000333106703332542015467 0ustar ericperso/* XPM */ static char * stop_xpm[] = { /*€‰*/ "54 28 4 1", /*è */ " c #AEA6A2", ". c black", "X c red", "o c white", /*Ф*/ " ", " ", " ............ ", " .XXXXXXXXXXo ", " .XXXXXXXXXXo ", " .XXXXXXXXXXo ", " .XXXXXXXXXXo ", " .XXXXXXXXXXo ", " .XXXXXXXXXXo ", " .XXXXXXXXXXo ", " .XXXXXXXXXXo ", " .XXXXXXXXXXo ", " .XXXXXXXXXXo ", " .ooooooooooo ", " ", " ", " ", " ... . ", " . . . ", " . ... ... . .. ", " ... . . . .. . ", " . . . . . . ", " . . . . . . . ", " . . . . . .. . ", " ... .. ... . .. ", " . ", " . ", " "}; xtel-3.3.0.orig/pixmaps/suite.xpm0100444001424500142340000000315306703332542015635 0ustar ericperso/* XPM */ static char * suite_xpm[] = { /* width height ncolors chars_per_pixel */ "62 22 5 1", /* colors */ " c none", ". c black", "X c white", "o c #986430", "O c #643000", /* pixels */ " .......................................................... ", " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XooooooooXXXooooooooXooXooooooooooooooooooooooooooooooooooOO.", ".XoooooooXoooXooooooooooXooooooooooooooooooooooooooooooooooOO.", ".XoooooooXoooooXooXoXXoXXXooXXoooooooooooooooooooooooooooooOO.", ".XooooooooXXXooXooXooXooXooXooXooooooooooooooooooooooooooooOO.", ".XoooooooooooXoXooXooXooXooXXXXooooooooooooooooooooooooooooOO.", ".XoooooooXoooXoXooXooXooXooXoooooooooooooooooooooooooooooooOO.", ".XooooooooXXXoooXXXooXoooXooXXoooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XoooooooooooooooooooooooooooooooooooooooooooooooooooooooooOO.", ".XOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.", " .OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO. ", " .......................................................... "}; xtel-3.3.0.orig/pixmaps/suite_on.xpm0100444001424500142340000000316506703332542016334 0ustar ericperso/* XPM */ static char * suite_on_xpm[] = { /* width height ncolors chars_per_pixel */ "62 22 5 1", /* colors */ " s None c none", ". c black", "X c #643000", "o c white", "O c #986430", /* pixels */ " .......................................................... ", " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", ".XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOoooOOOOOOOOoOOoOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOoOOOoOOOOOOOOOOoOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOoOOOOOoOOoOooOoooOOooOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOoooOOoOOoOOoOOoOOoOOoOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOoOoOOoOOoOOoOOooooOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOoOOOoOoOOoOOoOOoOOoOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOoooOOOoooOOoOOOoOOooOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", ".XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo.", " .oooooooooooooooooooooooooooooooooooooooooooooooooooooooooo. ", " .......................................................... "}; xtel-3.3.0.orig/pixmaps/xtel.xpm0100444001424500142340000001073106703332542015460 0ustar ericperso/* XPM */ static char *xtel_xpm[] = { /* width height ncolors chars_per_pixel */ "63 63 15 1", /* colors */ "` c #5D6C6F", "a c #78796F", "b c #301B1B", "c c #27181C", "d c #B2A78D", "e c #190A11", "f c #250F16", "g c #445051", "h c #201010", "i c #59483E", "j c #3F2A27", "k c #24396C", "l c #635E57", "m c #978B76", "n c #231E2E", /* pixels */ "aamammammmmmmmmmmmmmmmmmmmmmmammmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm", "aaammmmmmmmmmmmmmmmmmmmmmmmmmmmmamllllliilllammmmmmmmmmmmmmmmmm", "aaaaaammmmmmmmmmmmmmmmmmmmmmmmmmmiijiilililalllliaamammmmmmmmmm", "aaillillllallammmmmmmmmmaaalalallailllliiaalliiijjjjammmmmmmmmm", "aiiiilllilaallaaalillllilllliijjjjjjjjbbjjjijbbbbbbbbbmmmmmmmdm", "aiiiiiiiiiiiiijjjjbbbbbjjijjbbbcbfbbbbbbbcbccccbbccbcbmmmmmmmmm", "aiiiiiijbjjjbbbbbbbbbbbbbccbbbcbbbcbcbccfchfcccbcbbbbjmmmmmmmmm", "ljiiiiibfcbfbbcbfcbbcccfffccccccccbcccbcccbnnbbffhhbbbmmmmmmmmm", "iiiiiiibhffbbcccccfhfcccbbbbbbccfcfhfhhfhhhffhehhccbbbmmdmmmmmm", "iiiiiiibbbbbbjbbcchhhhffhhhffffcffccccccnjnnjneccccccbmmdmmmddm", "iiiiiiibffhhehhhhfffcccnjjngggg``ll``lgggg`glgccccccbbddmdddddd", "iiiiiiifffhhhcjjggggg`l````aaaaaaaaaaa`aa````gfbbbcccbddddddddd", "iiiiiiibffhhhggggl````aaaaaaaaamaaaaaaaa`````gccbbcccbddddddddd", "ijiiiiibffhhfgl``a```aaaaaaaammmmaaaaaaaa````lbbcccccbddddddddd", "ijiiiiibfhhhfgl````aa``aaaaaaama``aaaaaaaa```gbccbccbbddddddddd", "iniiiiibffhhfg`````aa`aaaaaaaaaaaaaaaaaaa````lncccbbbbddddddddd", "ijiiiiibchfhfg`````aa`aaaaaaaaaaaaaaaaaa``a``gnccccbcbddddddddd", "ijiiiiibchhffgll``````a`aaaaaaaaaaaaaaaa`````gjccccccbddddddddd", "ijiiiiibcffhhgl```aaa``aaaaaaaaaaaaa`aaaa````ljccccfcbddddddddd", "ijiiiiijfhhfhil```a`a`a`aaaaaaaaaaaaaaaa````lgncccccbbddddddddd", "ijiiiiibchfhfgg````````````aaaaaa`a`````````lgncccfccbddddddmmm", "ijiiiiijfhhhhgglll`a``````aa`aaa`aaa`a`a````ggjcffffcbdddammdmm", "iiiiiiibchhhhgl````````````aaa`````a````````ggjcffffcbddammdddm", "ljiiiiijfhhhhggg````````a``a``````````a`````ggnchfffcbddimmdddd", "ijiiiiibchhhhgggg``l```````a`````````````````gjcfhfccbdiiamddda", "ijiiiiijfhhhhggggl`l```````a```````````l`g`gggnfffffccdiiamddmd", "ijjiiiijfhhhhjgggggl``````````````````glgl`g`gnchhfffcdjiammmmd", "ijiiiiijfhhhhjkg`gg```l`l````````````ll`glglggnfhhffcbdiilmammd", "iiiiiijjfhhhhnggllggg``l`g````````l``lggggggggnchhffccdlilammdd", "ijijiijifhhhhbgggg``gg`l`g`lll`````llggggg`gggnhhhfhccddjilmmdd", "ijiijijichehhckigggggggggglgllll`l`l`ggg``ggggbhhffhccdddmmmmdm", "iiigiigifehehcgggggglglglgglgg``l`gggglgggggggcfhhhffbdddmmmddd", "iijiiigifhhhecggggggigggg`gggllg`gggggggiggkggchhffhfcdddmmdddd", "iijjgiiifhehecgggggggggggggggggggggggggggggggjhfhhffhcddmmmdddd", "miiijiijfehhhcnggggggggiilggggigggggggjjnbbbbcbcfcffffddmmmdddm", "mjiijjjjfeeeecggjggggggjgjgggjjjbcbbbbbbccccccfccfffcbddmmddddm", "djjjjjjjfheeehnjjjbbcbbcfccbccccccccccbcbbfhhhhhfhfccbdamdddddd", "bjjjjjjjfeeeefccccbcbbcfbcfcccfhheehhhhhfhhhhfcchhhhhfjmmdmdddd", "fbbjnbjjfhehhffcfccccfheeehhhhhhhhhcbcfhhhhhhhhehhhhhflmmmddddd", "ffbjjjjjeheheeehhhhhhhfccbbhhehhhhehheeeehheeehehhhhhfmimdddddd", "bbbbjjnjfhfhhccfheheheheheeeheeehhheheeehheheeeheeehhbamdlamddd", "nbjbjjjneheeeeeeeeeeeeeheheeeeeeheheheeeeeeeeehhfcbbjciamddddmm", "nbcnbjnjfeeeeeeeeeeehefeeeeeheeeeeeehfccbbbjjjiiigjnbbiaaammmmm", "nbfnnjjjfeeeeeeeeeeeeeeeeeehffccbjjbjjjijijbcfbbbbbcbfiaaaammmm", "nbcfbcbjfeeeeeeeffcbbjjjjjjiijjjbbbjiiibfiiijffccbbccbbllaaaamm", "nnnffnjjeeejjjjijjiijbbbcjllibbiijbfjjjjbiiilfhbfffffcfjlallama", "nbnnfenjeeebbcbjiibbcfijbbjbjbfillibfjbjffjjbfbfhhffheefhhbilaa", "nnnnneebeeehccfjjjbccfbbffiijbfbjjbffheffcfffffhffbcfehfheeeeeh", "nnnccceebeehhfccfcccfcfffffbcefhheehhhfffjchchhfeehhjfhfhhnnfee", "nnnnnffeeeeehfhfchifebeeeeeehcffffhfhheefeeffegfehfeeeeehfcnnnn", "nnnnnnfeeeeefffffhhhjfhcfhhefeehhfjfhffefheeehhhfenfehhehehnnkk", "nnnnnnnffeeeefffeeeeeechfbfhjceheheehfffffcffffffhehfffhfhfffkk", "nkkkknnnnnfeefhhchhlheheeeehhhjfhfjefhfeejehhfhhfhfhffffffhhffk", "kkknkknnnneeeefeeehhhgcejbhheheehehfhbhjcehefhffhffffffcbchffck", "kkkkknknnnnceffhheeeeeefhffffhhhfeeeeehhhhhhhfcbhffcccebcbfefek", "kkkkkkknnnnneeefhihhjfhhhheeeehfhhhhhcnbhfcccccbnnbeefeefefeffk", "kkkkkkkkkknnfnffeeefffffhffccbhehfccccbnnfeeefeeeeeeeeeeeefnnkk", "kkkkkkkkkkknfefcfccbchfcjbcbccncfeeeeeeeeeeefeeeefnnkkkkkkkkkkk", "kkkkkkkkkkknneecfehffffbjbfffefeeeeeeeeeennkkkkkkkkkkkkkkkkkkkk", "kkkkkkkkkkkknceffbfffeecbffeeeennnkkkkkkkkkkkkkkkkkkkkkkkkkkkkk", "kkkkkkkkkkkkneeeeeeeeennnkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk", "kkkkkkkkkkkkknnnnkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk", "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk" }; xtel-3.3.0.orig/Videotex/0040755001424500142340000000000007242250361014064 5ustar ericpersoxtel-3.3.0.orig/Videotex/Imakefile0100444001424500142340000000117306703332507015676 0ustar ericpersoXCOMM XCOMM Imakefile du widget Videotex XCOMM XCOMM Auteur : Pierre FICHEUX XCOMM $Id: Imakefile,v 1.6 1998/10/02 14:48:59 pierre Exp $ XCOMM #include "../Config.tmpl" #ifndef NO_TVR TVRSRCS= tvr_jpg.c tvr_hdr.c TVROBJS= tvr_jpg.o tvr_hdr.o JPEGLIB= -ljpeg DEPENDFLAGS= -I/usr/local/include #endif SRCS= Videotex.c $(TVRSRCS) xvdt.c OBJS= Videotex.o $(TVROBJS) HDRS= Videotex.h VideotexP.h $(TVRSRCS) NormalLibraryTarget(Videotex,$(OBJS)) NormalProgramTarget(xvdt, Videotex.o $(TVROBJS) xvdt.o ../inet.o, , $(JPEGLIB) XawClientLibs, ) NormalLintTarget($(SRCS)) depend:: Videotex.h VideotexP.h $(WHDRS) DependTarget() xtel-3.3.0.orig/Videotex/Videotex.c0100444001424500142340000052322307241354414016024 0ustar ericperso/* * xtel - Emulateur MINITEL sous X11 * * Copyright (C) 1991-1996 Lectra Systemes & Pierre Ficheux * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ static char rcsid[] = "$Id: Videotex.c,v 1.28 2001/02/11 00:13:00 pierre Exp $"; /* * Widget Videotex: VideotexWidgetClass */ #include #include #include #include #include #include "VideotexP.h" #ifdef __STDC__ static void nulle(void); static void touche_clavier(Widget w, XKeyEvent *pevent, String *params, Cardinal nb_params); static void emission_commande(Widget w, XEvent *event, String *params, Cardinal nb_params); static void reconnaissance_commande(Widget w, XButtonEvent *event, String *params, Cardinal nb_params); static void conversion_ascii_page(Widget w, XButtonEvent *event, String *params, Cardinal nb_params); static void init_fonctions_affichage(VideotexWidget w, int nb_plans); static void clipping_local(VideotexWidget w); static void affiche_indicateur_connexion(VideotexWidget w); static void fixe_les_couleurs_version_couleur(VideotexWidget w); static void fixe_les_couleurs_version_monochrome(VideotexWidget w); static void affiche_fond_pour_clignotement_version_monochrome(VideotexWidget w, int i, int x, int y, unsigned int l, unsigned int h); static void affiche_fond_pour_clignotement_version_couleur(VideotexWidget w, int i, int x, int y, unsigned int l, unsigned int h); static void affiche_caractere_avec_fond_version_couleur(VideotexWidget w, int car); static void affiche_caractere_avec_fond_version_monochrome(VideotexWidget w, int car); static void j_affiche_la_chaine_couleur(VideotexWidget w, Drawable d, GC gc, register int x, register int y, register char *s, register int l); static void affiche_chaine_avec_fond_version_couleur(VideotexWidget w, register char *s, register int l, register int x, register int y); static void affiche_chaine_avec_fond_version_monochrome(VideotexWidget w, register char *s, register int l, register int x, register int y); static void affiche_caractere_sans_fond_version_couleur(VideotexWidget w, int car); static void affiche_caractere_sans_fond_version_monochrome(VideotexWidget w, int car); static void traite_debordement(VideotexWidget w); static void caractere_suivant(VideotexWidget w); static int re_affiche_caractere(VideotexWidget w, int indice_rangee, register struct attribut *patt); static void affiche_caractere_normal_en_mode_repetition(VideotexWidget w, int c); static void affiche_caractere_normal(VideotexWidget w, int c); static void repetition_caractere_sauve(VideotexWidget w, int rep); static void reaffiche_rectangle_ecran(VideotexWidget w, int r1, int c1, int r2, int c2); static void init_attributs(VideotexWidget w); static void sauve_les_attributs_du_caractere(VideotexWidget w, int c0, int c1); static void recopie_les_attributs_delimiteur_explicite(VideotexWidget w, int strchr); static void recopie_les_attributs_delimiteur_graphique(VideotexWidget w, int strchr); static void recopie_les_attributs_si_ecriture_sur_delimiteur_explicite(VideotexWidget w, int strchr); static void recopie_les_attributs_si_ecriture_sur_delimiteur_graphique(VideotexWidget w, int strchr); static void reaffiche_zone(VideotexWidget w, int strchr); static void traitement_delimiteur_graphique(VideotexWidget w); static void traitement_delimiteur_explicite(VideotexWidget w, int c); static void selection_attributs_zone_accueil(VideotexWidget w); static void fixe_attribut_de_rangee_masquage(VideotexWidget w, int masquage, int colonne_depart); static int accentue(register struct attribut *p); static int fixe_les_attributs_d_un_bloc(VideotexWidget w, int r, int c, int h); static int maj_si_ecrasement(VideotexWidget w, int r, int c, int taille); static void clignotement(VideotexWidget w, int c); static XtTimerCallbackProc clignote(VideotexWidget w, XtIntervalId *id); static int init_couleurs(VideotexWidget w); static void couleur_caractere(VideotexWidget w, int couleur); static void couleur_fond(VideotexWidget w, int couleur); static void affiche_curseur(VideotexWidget w, int force); static XtTimerCallbackProc clignote_curseur(VideotexWidget w, XtIntervalId *id); static void curseur_actif(VideotexWidget w); static void curseur_inactif(VideotexWidget w); static void efface_rectangle_ecran(VideotexWidget w, int, int, int, int); static void remplissage_ligne(VideotexWidget w); static void selection_fonte(VideotexWidget w, int f); static void selection_jeu(VideotexWidget w, int jeu); static void inversion(VideotexWidget w, int c); static void masquage(VideotexWidget w, int masque); static void demasquer_le_plein_ecran(VideotexWidget w); static void masquer_le_plein_ecran(VideotexWidget w); static void demasque_un_caractere(VideotexWidget w, int r, int c); static void masque_un_caractere(VideotexWidget w, int r, int c); static void scroll_haut(VideotexWidget w, int rangee, int n); static void scroll_bas(VideotexWidget w, int rangee, int n); static void scroll_droite (VideotexWidget w, int colonne, int n); static void scroll_gauche (VideotexWidget w, int colonne, int n); static void sonnerie(VideotexWidget w); static void soulignement(VideotexWidget w, int lignage); static void taille_caractere(VideotexWidget w, int taille); static void sauve_avant_rangee_0(VideotexWidget w); static void rangee_suivante(VideotexWidget w); static void colonne_suivante(VideotexWidget w); static void rangee_precedente(VideotexWidget w); static void colonne_precedente(VideotexWidget w); static void attributs_caractere_par_defaut(VideotexWidget w); static void attributs_serie_par_defaut(VideotexWidget w); static void Initialize(Widget greq, Widget gnew, ArgList args, Cardinal *num_args); static void Realize(Widget gw, XtValueMask *valueMask, XSetWindowAttributes *attrs); static void Destroy(Widget w); static void Redisplay(Widget w, XEvent *pevent, Region region); static void Resize(Widget gw); static Boolean SetValues(Widget current, Widget request, Widget new, ArgList args, Cardinal *num_args); static int atoni(char *str, int n); static void csi_positionnement (VideotexWidget w, int r, int c); static void csi_insertion_caractere (VideotexWidget, int); static void csi_insertion_rangee (VideotexWidget, int); static void csi_suppression_caractere (VideotexWidget, int); static void csi_suppression_rangee (VideotexWidget, int); static void traite_csi (VideotexWidget w); static int g2_vers_g0 (int c); /* DRCS */ static void init_DRCS (VideotexWidget w); static void alloc_DRCS (VideotexWidget w); static void init_US (VideotexWidget w); static void cree_bitmap_X (char *pt, register unsigned int l, char **pt_rangement); static void cree_bitmap_DRCS (VideotexWidget w, int car); static void affiche_chaine_drcs_version_monochrome (VideotexWidget w, Drawable d, GC gc, register int x, register int y, char *s, register int l); static void affiche_chaine_drcs_version_couleur (VideotexWidget w, Drawable d, GC gc, register int x, register int y, char *s, register int l); static void libere (struct position *); /* TVR */ #ifndef NO_TVR extern Boolean decode_header_tvr (VideotexWidget, int *); extern void decode_jpeg_tvr (VideotexWidget); extern void init_tvr (VideotexWidget); extern void libere_couleurs_tvr (VideotexWidget); #endif #else static void nulle( ); static void touche_clavier( ); static void emission_commande( ); static void reconnaissance_commande( ); static void conversion_ascii_page( ); static void init_fonctions_affichage( ); static void clipping_local( ); static void affiche_indicateur_connexion( ); static void fixe_les_couleurs_version_couleur( ); static void fixe_les_couleurs_version_monochrome( ); static void affiche_fond_pour_clignotement_version_monochrome( ); static void affiche_fond_pour_clignotement_version_couleur( ); static void affiche_caractere_avec_fond_version_couleur( ); static void affiche_caractere_avec_fond_version_monochrome( ); static void j_affiche_la_chaine_couleur( ); static void affiche_chaine_avec_fond_version_couleur( ); static void affiche_chaine_avec_fond_version_monochrome( ); static void affiche_caractere_sans_fond_version_couleur( ); static void affiche_caractere_sans_fond_version_monochrome( ); static void traite_debordement( ); static void caractere_suivant( ); static int re_affiche_caractere( ); static void affiche_caractere_normal_en_mode_repetition( ); static void affiche_caractere_normal( ); static void repetition_caractere_sauve( ); static void reaffiche_rectangle_ecran( ); static void init_attributs( ); static void sauve_les_attributs_du_caractere( ); static void recopie_les_attributs_delimiteur_explicite( ); static void recopie_les_attributs_delimiteur_graphique( ); static void recopie_les_attributs_si_ecriture_sur_delimiteur_explicite( ); static void recopie_les_attributs_si_ecriture_sur_delimiteur_graphique( ); static void reaffiche_zone( ); static void traitement_delimiteur_graphique( ); static void traitement_delimiteur_explicite( ); static void selection_attributs_zone_accueil( ); static void fixe_attribut_de_rangee_masquage( ); static int accentue( ); static int fixe_les_attributs_d_un_bloc( ); static int maj_si_ecrasement( ); static void clignotement( ); static XtTimerCallbackProc clignote( ); static int init_couleurs( ); static void couleur_caractere( ); static void couleur_fond( ); static void affiche_curseur( ); static XtTimerCallbackProc clignote_curseur( ); static void curseur_actif( ); static void curseur_inactif( ); static void efface_rectangle_ecran( ); static void remplissage_ligne( ); static void selection_fonte( ); static void selection_jeu( ); static void inversion( ); static void masquage( ); static void demasquer_le_plein_ecran( ); static void masquer_le_plein_ecran( ); static void demasque_un_caractere( ); static void masque_un_caractere( ); static void scroll_haut( ); static void scroll_bas( ); static void scroll_droite ( ); static void scroll_gauche ( ); static void sonnerie( ); static void soulignement( ); static void taille_caractere( ); static void sauve_avant_rangee_0( ); static void rangee_suivante( ); static void colonne_suivante( ); static void rangee_precedente( ); static void colonne_precedente( ); static void attributs_caractere_par_defaut( ); static void attributs_serie_par_defaut( ); static void Initialize( ); static void Realize( ); static void Destroy( ); static void Redisplay( ); static void Resize( ); static Boolean SetValues( ); static void scroll_droite ( ); static int atoni( ); static void csi_positionnement ( ); static void csi_insertion_caractere ( ); static void csi_insertion_rangee ( ); static void csi_suppression_caractere ( ); static void csi_suppression_rangee ( ); static void traite_csi ( ); static int g2_vers_g0 ( ); /* DRCS */ static void init_DRCS (); static void alloc_DRCS (); static void init_US (); static void cree_bitmap_X (); static void cree_bitmap_DRCS (); static void affiche_chaine_drcs_version_monochrome (); static void affiche_chaine_drcs_version_couleur (); static void libere (); /* TVR */ #ifndef NO_TVR extern Boolean decode_header_tvr (); extern void init_tvr (); extern void libere_couleurs_tvr (); #endif #endif /* __STDC__ */ static void erreur_videotex ( ); /**************************************************************** * * Full class record constant * ****************************************************************/ /* Private Data */ #define offset(field) XtOffsetOf(VideotexRec, field) static XtResource resources[] = { {XtNpetiteFonte, XtCPetiteFonte, XtRBoolean, sizeof(Boolean), offset(videotex.petite_fonte), XtRImmediate, (XtPointer)False}, {XtNnGris, XtCNGris, XtRBoolean, sizeof(Boolean), offset(videotex.niveaux_de_gris), XtRImmediate, (XtPointer)False}, {XtNconnecte, XtCConnecte, XtRBoolean, sizeof(Boolean), offset(videotex.connecte), XtRImmediate, (XtPointer)False}, {XtNfdConnexion, XtCFdConnexion, XtRInt, sizeof (int), offset(videotex.fd_connexion), XtRImmediate, (XtPointer) -1}, {XtNcommandeDeconnexion, XtCCommandeDeconnexion, XtRString, sizeof(String), offset(videotex.commande_deconnexion), XtRString, NULL}, {XtNenregCallback, XtCCallback, XtRCallback, sizeof(XtPointer), offset(videotex.callback_enreg), XtRCallback, (XtPointer)NULL}, {XtNmodeCallback, XtCCallback, XtRCallback, sizeof(XtPointer), offset(videotex.callback_mode), XtRCallback, (XtPointer)NULL}, {XtNmodefrCallback, XtCCallback, XtRCallback, sizeof(XtPointer), offset(videotex.callback_modefr), XtRCallback, (XtPointer)NULL}, {XtNmodeVideotex, XtCModeVideotex, XtRBoolean, sizeof(Boolean), offset(videotex.mode_videotex), XtRImmediate, (XtPointer)True}, {XtNenqROM, XtCEnqROM, XtRString, sizeof(String), offset(videotex.enqrom), XtRString, "Cv2"}, /* Fontes G0, petite */ {XtNfonteG0no_p, XtCFont, XtRFontStruct, sizeof(XFontStruct *), offset(videotex.fonte_g0_no_p), XtRString, XtDefaultFont}, {XtNfonteG0dl_p, XtCFont, XtRFontStruct, sizeof(XFontStruct *), offset(videotex.fonte_g0_dl_p), XtRString, XtDefaultFont}, {XtNfonteG0dh_p, XtCFont, XtRFontStruct, sizeof(XFontStruct *), offset(videotex.fonte_g0_dh_p), XtRString, XtDefaultFont}, {XtNfonteG0dt_p, XtCFont, XtRFontStruct, sizeof(XFontStruct *), offset(videotex.fonte_g0_dt_p), XtRString, XtDefaultFont}, /* Fontes G0 souligne */ {XtNfonteG0nos_p, XtCFont, XtRFontStruct, sizeof(XFontStruct *), offset(videotex.fonte_g0_nos_p), XtRString, XtDefaultFont}, {XtNfonteG0dls_p, XtCFont, XtRFontStruct, sizeof(XFontStruct *), offset(videotex.fonte_g0_dls_p), XtRString, XtDefaultFont}, {XtNfonteG0dhs_p, XtCFont, XtRFontStruct, sizeof(XFontStruct *), offset(videotex.fonte_g0_dhs_p), XtRString, XtDefaultFont}, {XtNfonteG0dts_p, XtCFont, XtRFontStruct, sizeof(XFontStruct *), offset(videotex.fonte_g0_dts_p), XtRString, XtDefaultFont}, /* Fonte G1/G1 mosaique */ {XtNfonteG1_p, XtCFont, XtRFontStruct, sizeof(XFontStruct *), offset(videotex.fonte_g1_p), XtRString, XtDefaultFont}, {XtNfonteG1s_p, XtCFont, XtRFontStruct, sizeof(XFontStruct *), offset(videotex.fonte_g1s_p), XtRString, XtDefaultFont}, /* Fontes G0, grande */ {XtNfonteG0no_g, XtCFont, XtRFontStruct, sizeof(XFontStruct *), offset(videotex.fonte_g0_no_g), XtRString, XtDefaultFont}, {XtNfonteG0dl_g, XtCFont, XtRFontStruct, sizeof(XFontStruct *), offset(videotex.fonte_g0_dl_g), XtRString, XtDefaultFont}, {XtNfonteG0dh_g, XtCFont, XtRFontStruct, sizeof(XFontStruct *), offset(videotex.fonte_g0_dh_g), XtRString, XtDefaultFont}, {XtNfonteG0dt_g, XtCFont, XtRFontStruct, sizeof(XFontStruct *), offset(videotex.fonte_g0_dt_g), XtRString, XtDefaultFont}, /* Fontes G0 souligne */ {XtNfonteG0nos_g, XtCFont, XtRFontStruct, sizeof(XFontStruct *), offset(videotex.fonte_g0_nos_g), XtRString, XtDefaultFont}, {XtNfonteG0dls_g, XtCFont, XtRFontStruct, sizeof(XFontStruct *), offset(videotex.fonte_g0_dls_g), XtRString, XtDefaultFont}, {XtNfonteG0dhs_g, XtCFont, XtRFontStruct, sizeof(XFontStruct *), offset(videotex.fonte_g0_dhs_g), XtRString, XtDefaultFont}, {XtNfonteG0dts_g, XtCFont, XtRFontStruct, sizeof(XFontStruct *), offset(videotex.fonte_g0_dts_g), XtRString, XtDefaultFont}, /* Fonte G1/G1 mosaique */ {XtNfonteG1_g, XtCFont, XtRFontStruct, sizeof(XFontStruct *), offset(videotex.fonte_g1_g), XtRString, XtDefaultFont}, {XtNfonteG1s_g, XtCFont, XtRFontStruct, sizeof(XFontStruct *), offset(videotex.fonte_g1s_g), XtRString, XtDefaultFont}, }; #undef offset static void Initialize(), Realize(), Destroy(), Resize(), Redisplay(); static Boolean SetValues(); /* * Table de correspondance entre la position d'un caractere de G2 * dans la fonte G0 (les caracteres de G2 sont maintenant dans G0 entre 0 et 31 * ce qui permet d'economiser le chargement de 4 fontes... */ static struct { int indice_g2; int indice_g0; } table_g2_g0[] = { {35, 0}, {36, 36}, {38, 35}, {44, 1}, {45, 2}, {46, 3}, {47, 4}, {48, 5}, {49, 6}, {56, 7}, {60, 8}, {61, 9}, {62, 10}, {65, 11}, {66, 12}, {67, 13}, {72, 14}, {75, 15}, {106, 16}, {122, 17}, {123, 18}, {39, 19}, {-1, 0} }; #ifdef USE_MOTIF static char defaultVideotexTranslations [] = "\ : reconnaissance-commande() \n\ : conversion-ascii-page() \n\ Return: emission-commande(A) \n\ osfPageUp: emission-commande(B) \n\ osfInsert: emission-commande(C) \n\ osfEndLine: emission-commande(D) \n\ osfDelete: emission-commande(E) \n\ osfBeginLine: emission-commande(F) \n\ CtrlS: nulle() \n\ CtrlH: emission-commande(G) \n\ osfPageDown: emission-commande(H) \n\ : touche-clavier() \ "; #else static char defaultVideotexTranslations [] = "\ : reconnaissance-commande() \n\ : conversion-ascii-page() \n\ Return: emission-commande(A) \n\ Prior: emission-commande(B) \n\ Insert: emission-commande(C) \n\ End: emission-commande(D) \n\ Delete: emission-commande(E) \n\ Home: emission-commande(F) \n\ CtrlS: nulle() \n\ CtrlH: emission-commande(G) \n\ Next: emission-commande(H) \n\ : touche-clavier() \ "; #endif /* USE_MOTIF */ static XtActionsRec videotexActionsTable [] = { {"nulle", (XtActionProc)nulle}, {"touche-clavier", (XtActionProc)touche_clavier}, {"emission-commande", (XtActionProc)emission_commande}, {"reconnaissance-commande", (XtActionProc)reconnaissance_commande}, {"conversion-ascii-page", (XtActionProc)conversion_ascii_page} }; static struct { char *nom; char *alias; char *code; } commandes_minitel[] = { {"envoi", "", "A"}, {"retour", "", "B"}, {"repetition", "", "C"}, {"guide", "", "D"}, {"annulation", "annul.", "E"}, {"sommaire", "", "F"}, {"correction", "correc.", "G"}, {"suite", "", "H"}, {"connexion/fin", "cx/fin", "I"} }; VideotexClassRec videotexClassRec = { { #define superclass (&widgetClassRec) /* superclass */ (WidgetClass)superclass, /* class_name */ "Videotex", /* widget_size */ sizeof(VideotexRec), /* class_initialize */ NULL, /* class_part_initialize */ NULL, /* class_inited */ FALSE, /* initialize */ Initialize, /* initialize_hook */ NULL, /* realize */ Realize, /* actions */ videotexActionsTable, /* num_actions */ XtNumber(videotexActionsTable), /* resources */ resources, /* num_resources */ XtNumber(resources), /* xrm_class */ NULLQUARK, /* compress_motion */ TRUE, /* compress_exposure */ TRUE, /* compress_enterleave */ TRUE, /* visible_interest */ FALSE, /* destroy */ Destroy, /* resize */ Resize, /* expose */ Redisplay, /* set_values */ SetValues, /* set_values_hook */ NULL, /* set_values_almost */ NULL, /* get_values_hook */ NULL, /* accept_focus */ NULL, /* version */ XtVersion, /* callback_private */ NULL, /* tm_table */ defaultVideotexTranslations, /* query_geometry */ NULL/*XtInheritQueryGeometry*/, /* display_accelerator */ XtInheritDisplayAccelerator, /* extension */ NULL }, }; WidgetClass videotexWidgetClass = (WidgetClass)&videotexClassRec; /* tableaux des attributs initiaux */ static struct attribut attributs_initiaux[40]; /* pointeurs de fonction */ static void (*fonctions_affiche_caractere_avec_fond[])() = { affiche_caractere_avec_fond_version_couleur, affiche_caractere_avec_fond_version_monochrome }; static void (*fonctions_affiche_caractere_sans_fond[])() = { affiche_caractere_sans_fond_version_couleur, affiche_caractere_sans_fond_version_monochrome }; static void (*fonctions_affiche_chaine_avec_fond[])() = { affiche_chaine_avec_fond_version_couleur, affiche_chaine_avec_fond_version_monochrome }; static void (*fonctions_affiche_chaine_drcs[])() = { affiche_chaine_drcs_version_couleur, affiche_chaine_drcs_version_monochrome }; static void (*fonctions_affiche_fond_pour_clignotement[])() = { affiche_fond_pour_clignotement_version_couleur, affiche_fond_pour_clignotement_version_monochrome }; /* declaration des couleurs utilisees pour un ecran couleurs */ static char *nom_couleur[] = { "black", "red", "green", "yellow", "blue", "magenta", "cyan", "white" }; /* Niveaux de gris pour un ecran 16 niveaux */ static char *nom_niveau[] = { "black", "grey63", "grey76", "grey88", "grey57", "grey69", "grey82", "white" }; /* * Pour DRCS */ static unsigned char masktable[] = { 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80 }; static void calcul_flag_drcs (w) VideotexWidget w; { register VideotexPart *pv = &w->videotex; pv->flag_drcs = (((pv->flag_GP1_dans_G0 && pv->jeu_courant == G0) || (pv->flag_GP10_dans_G1 && pv->jeu_courant == G1)) && pv->rangee > 0); } static void alloc_DRCS (w) VideotexWidget w; { register int i; register VideotexPart *pv = &w->videotex; pv->flag_GP1_dans_G0 = pv->flag_GP10_dans_G1 = False; pv->chargement_set = False; if (!(pv->bits_bitmap = (char*)calloc (1, 160))) { erreur_videotex ("alloc_DRCS: erreur calloc bits_bitmap\n"); exit (1); } for (i = 0 ; i != 94 ; i++) { if (!(pv->jeu_GP1[i] = (char*)calloc (1, 14))) { erreur_videotex ("alloc_DRCS: erreur calloc jeu_GP1[%d]\n", i); exit (1); } if (!(pv->jeu_GP10[i] = (char*)calloc (1, 14))) { erreur_videotex ("alloc_DRCS: erreur calloc jeu_GP10[%d]\n", i); exit (1); } } for (i = 0 ; i != 94 ; i++) pv->affichage_GP1[i] = pv->affichage_GP10[i] = NULL; } static void init_DRCS (w) VideotexWidget w; { register int i; register VideotexPart *pv = &w->videotex; pv->flag_GP1_dans_G0 = pv->flag_GP10_dans_G1 = False; pv->chargement_set = False; memset (pv->bits_bitmap, 0, 160); for (i = 0 ; i != 94 ; i++) { memset (pv->jeu_GP1[i], 0, 14); memset (pv->jeu_GP10[i], 0, 14); } for (i = 0 ; i != 94 ; i++) { if (pv->affichage_GP1[i]) { libere (pv->affichage_GP1[i]); pv->affichage_GP1[i] = NULL; } if (pv->affichage_GP10[i]) { libere (pv->affichage_GP10[i]); pv->affichage_GP10[i] = NULL; } } } static void init_US (w) VideotexWidget w; { register VideotexPart *pv = &w->videotex; pv->etat = EtatUS; pv->rangee_sauve = pv->rangee; pv->colonne_sauve = pv->colonne; pv->a_recevoir = 2; pv->code_DRCS_courant = 0; } /* * Creation d'un bitmap X a partir de donnees binaires * * - pt : pointeur des donnees * - l : largeur en bits (8, 16, 32) * - pt_rangement : adresse de rangement du resultat */ static void cree_bitmap_X (pt, l, pt_rangement) char *pt; register unsigned int l; char **pt_rangement; { register char c, i, *ptc = *pt_rangement; register unsigned char mask; /* Conversion en bitmap X */ c = 0; mask = 0x80; for (i = 0 ; i != l ; i++) { int ind = (i & 7); if (*pt & mask) c |= masktable[ind]; mask >>= 1; if (ind == 7) { *ptc++ = c & 255; pt++; c = 0; mask = 0x80; } } *pt_rangement = ptc; } /* * Fonction de creation de bitmap a partir des sextets DRCS * Voir la gestion des tailles de caracteres... */ static void cree_bitmap_DRCS (w, car) VideotexWidget w; int car; { register VideotexPart *pv = &w->videotex; int decalage, nb_lignes; register int i, j, k, isex, dh, dl; int d, idata; char c, *pt_bitmap, *pt_sextet; unsigned char mask, oldmask, data[4]; Boolean petit = pv->petite_fonte; if (!car) return; isex = d = 0; dh = (pv->taille_caractere == DOUBLE_HAUTEUR || pv->taille_caractere == DOUBLE_GRANDEUR ? 1 : 0); dl = (pv->taille_caractere == DOUBLE_LARGEUR || pv->taille_caractere == DOUBLE_GRANDEUR ? 1 : 0); pv->largeur_bitmap = (petit ? 8 : 16); pv->hauteur_bitmap = (petit ? 10 : 20); pv->largeur_bitmap <<= dl; pv->hauteur_bitmap <<= dh; mask = oldmask = (petit ? (dl ? 0xc0 : 0x80) : (dl ? 0xf0 : 0xc0)); decalage = (petit ? 1 : 2); nb_lignes = (petit ? 1 : 2); decalage <<= dl; nb_lignes <<= dh; memset (pv->bits_bitmap, 0, 160); pt_bitmap = pv->bits_bitmap; if (pv->jeu_courant == G0) pt_sextet = pv->jeu_GP1[car - '!']; else pt_sextet = pv->jeu_GP10[car - '!']; /* On calcule a partir de la fonte 8x10 */ for (i = 0 ; i != 10 ; i++) { /* calcul de la valeur sur 8 bits */ c = ((*(pt_sextet+isex) & (0x3f >> d)) << (d+2)) | (*(pt_sextet+isex+1) >> (4-d)); memset (data, 0, 4); idata = 0; mask = oldmask; k = nb_lignes; /* Extension en fonction de la taille du caractere (sur 16 ou 32 bits) */ for (j = 0 ; j != 8 ; j++) { if (c & (0x80 >> j)) data[idata] |= mask; mask >>= decalage; if (mask == 0) { mask = oldmask; idata++; } } while (k--) cree_bitmap_X (data, pv->largeur_bitmap, &pt_bitmap); isex++; d += 2; if (d > 4) { d = 0; isex++; } } } static void memorise_affichage (w, car, x, y) VideotexWidget w; char car; int x, y; { register VideotexPart *pv = &w->videotex; struct position **ppaf = (pv->jeu_courant == G0 ? &pv->affichage_GP1[car - '!'] : &pv->affichage_GP10[car - '!']); register struct position *paf = *ppaf, *pafp = NULL; int r, c; r = (y + pv->descent_fonte_base - 1) / pv->hauteur_fonte_base; c = 1 + (x / pv->largeur_fonte_base); /* Verifie que la position n'est pas deja presente */ while (paf && (paf->rangee != r || paf->colonne != c)) { pafp = paf; paf = paf->suivant; } if (!paf) { struct position *newpaf = (struct position *)calloc(1, sizeof(struct position)); if (!newpaf) { erreur_videotex ("memorise_affichage: erreur calloc pour caractere %x en %d %d\n", car, x, y); return; } newpaf->rangee = r; newpaf->colonne = c; newpaf->x = x; newpaf->y = y; if (pafp) pafp->suivant = newpaf; else *ppaf = newpaf; } } static void affiche_chaine_drcs_version_monochrome (w, d, gc, x, y, s, l) VideotexWidget w; Drawable d; GC gc; register int x, y; register char *s; register int l; { register char *p, cp = 0; register VideotexPart *pv = &w->videotex; register int y_drcs; Pixmap pixmap_drcs_courant; /* On suppose que: * * - indice_couleur_fond != indice_couleur_caractere (teste dans l'appelant) * - le fond est trace */ for (p = s ; (p-s) < l ; p++) { if (*p == ' ' || *p == 0x7f) { /* A priori, rien a faire pour le ' ' */ if (*p == 0x7f) { XSetStipple(XtDisplay(w), gc, pv->pixmap[pv->indice_couleur_caractere]); XFillRectangle(XtDisplay(w), d, gc, x, y - pv->xfs_courante->ascent, pv->xfs_courante->max_bounds.width, pv->xfs_courante->ascent + pv->xfs_courante->descent); } x += pv->xfs_courante->max_bounds.width; } else { /* Creation du caractere */ if (*p != cp) cree_bitmap_DRCS (w, *p); cp = *p; y_drcs = y + pv->descent_fonte_base - pv->hauteur_bitmap; if (!(pixmap_drcs_courant = XCreateBitmapFromData (XtDisplay(w), XtWindow(w), pv->bits_bitmap, pv->largeur_bitmap, pv->hauteur_bitmap))) { erreur_videotex ("affiche_chaine_drcs_version_monochrome: erreur creation pixmap_drcs_courant\n"); return; } /* Clipping sur le Pixmap du caractere */ XSetClipOrigin (XtDisplay(w), gc, x, y_drcs); XSetClipMask (XtDisplay(w), gc, pixmap_drcs_courant); XSetStipple (XtDisplay(w), gc, pv->pixmap[pv->indice_couleur_caractere]); XFillRectangle (XtDisplay(w), d, gc, x, y_drcs, pv->largeur_bitmap, pv->hauteur_bitmap); XFlush (XtDisplay(w)); XFreePixmap (XtDisplay(w), pixmap_drcs_courant); /* memorise l'affichage */ if (d == XtWindow(w)) memorise_affichage (w, *p, x, y); x += pv->largeur_bitmap; } } XSetClipRectangles(XtDisplay(w), gc, 0, 0, pv->r_clipping_normal, 3, YXBanded); } static void affiche_chaine_drcs_version_couleur (w, d, gc, x, y, s, l) VideotexWidget w; Drawable d; GC gc; register int x, y; register char *s; register int l; { register char *p, cp = 0; register VideotexPart *pv = &w->videotex; register int y_drcs; Pixmap pixmap_drcs_courant; for (p = s ; (p-s) < l ; p++) { if (*p == ' ' || *p == 0x7f) { XDrawImageString(XtDisplay(w), d, gc, x, y, p, 1); x += pv->xfs_courante->max_bounds.width; } else { /* Creation du caractere */ if (*p != cp) cree_bitmap_DRCS (w, *p); y_drcs = y + pv->descent_fonte_base - pv->hauteur_bitmap; cp = *p; if (!(pixmap_drcs_courant = XCreatePixmapFromBitmapData (XtDisplay(w), d, pv->bits_bitmap, pv->largeur_bitmap, pv->hauteur_bitmap, pv->couleurs[pv->indice_couleur_caractere].pixel, pv->couleurs[pv->indice_couleur_fond].pixel, DisplayPlanes(XtDisplay(w), DefaultScreen(XtDisplay(w)))))) { erreur_videotex ("affiche_chaine_drcs_version_couleur: erreur creation pixmap_drcs_courant\n"); return; } /* ecrit le caractere */ XCopyArea (XtDisplay(w), pixmap_drcs_courant, d, gc, 0, 0, pv->largeur_bitmap, pv->hauteur_bitmap, x, y_drcs); XFreePixmap (XtDisplay(w), pixmap_drcs_courant); /* memorise l'affichage */ if (d == XtWindow(w)) memorise_affichage (w, *p, x, y); x += pv->largeur_bitmap; } } } static void re_affiche_DRCS (w) VideotexWidget w; { register struct position *paf; register VideotexPart *pv = &w->videotex; for (paf = (pv->numero_jeu_DRCS_a_charger ? pv->affichage_GP10[pv->code_DRCS_courant] : pv->affichage_GP1[pv->code_DRCS_courant]) ; paf ; paf = paf->suivant) reaffiche_rectangle_ecran (w, paf->rangee, paf->colonne, paf->rangee, paf->colonne); } /* fonction nulle */ static void nulle () {} /* Affichage d'erreur */ static void erreur_videotex (fmt, p1, p2, p3) char *fmt; int p1, p2, p3; { fprintf (stderr, "videotexWidget: "); fprintf (stderr, fmt, p1, p2, p3); fflush (stderr); } /* Conversion G2 -> G0 */ static int g2_vers_g0 (c) int c; { register int i; c &= 0x7f; for (i = 0 ; table_g2_g0[i].indice_g2 > 0 ; i++) { if (table_g2_g0[i].indice_g2 == c) return (table_g2_g0[i].indice_g0); } return (0); } /* Conversion G0 -> G2 */ static int g0_vers_g2 (c) int c; { register int i; c &= 0x7f; for (i = 0 ; table_g2_g0[i].indice_g2 > 0 ; i++) { if (table_g2_g0[i].indice_g0 == c) return (table_g2_g0[i].indice_g2); } return (0); } /* * Action touche clavier ==> emission vers le fd de connexion ou bien * affichage On simule le comportement du Minitel (defaut => Majuscule, shift * => minuscule) */ static void touche_clavier(w, pevent, params, nb_params) Widget w; XKeyEvent *pevent; String *params; Cardinal nb_params; { char buf[2]; KeySym ks; VideotexWidget vw = (VideotexWidget) w; register VideotexPart *pv = &vw->videotex; if ((XLookupString(pevent, &buf[0], 1, &ks, 0) != 0) && ((pevent->state & Mod1Mask) == 0) && pv->mode_videotex) { if ((pevent->state & (ShiftMask | LockMask)) == 0) buf[0] = toupper(buf[0]); else buf[0] = tolower(buf[0]); buf[1] = 0; if (pv->connecte && pv->fd_connexion > 0) { write(pv->fd_connexion, buf, 1); } else { videotexDecode(w, buf[0]); } } } /* * fonction associee aux actions sur les touches minitel (raccourcis clavier) */ /* ARGSUSED */ static void emission_commande(w, event, params, nb_params) Widget w; XEvent *event; String *params; Cardinal nb_params; { VideotexWidget vw = (VideotexWidget) w; register VideotexPart *pv = &vw->videotex; if (pv->connecte && pv->fd_connexion > 0) { write(pv->fd_connexion, "\023", 1); write(pv->fd_connexion, params[0], 1); XtCallCallbackList(w, pv->callback_enreg, (XtPointer)"\023"); XtCallCallbackList(w, pv->callback_enreg, (XtPointer)params[0]); } } /* Reconnaissance de commande Minitel dans la page courante */ /* ARGSUSED */ static void reconnaissance_commande(w, event, params, nb_params) Widget w; XButtonEvent *event; String *params; Cardinal nb_params; { register int i, j; int rang, col; char chaine[40]; VideotexWidget vw = (VideotexWidget) w; register VideotexPart *pv = &vw->videotex; if (pv->connecte && pv->fd_connexion > 0) { rang = event->y / pv->hauteur_fonte_base; col = 1 + (event->x / pv->largeur_fonte_base); /* recherche de la chaine */ /* * On fait un & avec 0x7f car le haut d'un caractere double hauteur * est caracterise par le MSB a 1... */ for (i = col - 1; i >= 0 && pv->attributs[rang][i].jeu == G0 && (isalnum(pv->attributs[rang][i].code[0] & 0x7f) || ((pv->attributs[rang][i].code[0] & 0x7f) == '.') || ((pv->attributs[rang][i].code[0] & 0x7f) == '/')); i--); /* copie */ i++; for (j = 0; i < 40 && pv->attributs[rang][i].jeu == G0 && (isalnum(pv->attributs[rang][i].code[0] & 0x7f) || ((pv->attributs[rang][i].code[0] & 0x7f) == '.') || ((pv->attributs[rang][i].code[0] & 0x7f) == '/')); j++) { chaine[j] = tolower(pv->attributs[rang][i].code[0] & 0x7f); i += (pv->attributs[rang][i].taille_caractere == NORMALE || pv->attributs[rang][i].taille_caractere == DOUBLE_HAUTEUR ? 1 : 2); } chaine[j] = 0; /* Emission de la commande (si elle est reconnue) */ if (j != 0) { for (i = 0; i != 9; i++) { if (strcmp(commandes_minitel[i].nom, chaine) == 0 || strcmp(commandes_minitel[i].alias, chaine) == 0) { //printf ("reconnaissance commande: %s\n", commandes_minitel[i].code); write(pv->fd_connexion, "\023", 1); write(pv->fd_connexion, commandes_minitel[i].code, 1); XtCallCallbackList(w, pv->callback_enreg, (XtPointer)"\023"); XtCallCallbackList(w, pv->callback_enreg, (XtPointer)commandes_minitel[i].code); return; } } /* * Si ce n'est pas une commande et que c'est alpha-numerique, * emission de la chaine */ if (!isalnum(chaine[0])) return; /* Repasse la chaine en majuscules */ for (i = 0; i != strlen(chaine); i++) chaine[i] = toupper(chaine[i]); write(pv->fd_connexion, chaine, strlen(chaine)); } } } /* * Affiche une approximation ASCII de la page courante sur la sortie standard * (stdout). */ static void conversion_ascii_page(w, event, params, nb_params) Widget w; XButtonEvent *event; String *params; Cardinal nb_params; { videotexConversionAscii (w, stdout); } /* Init des fonctions d'affichage */ static void init_fonctions_affichage (w, nb_plans) VideotexWidget w; int nb_plans; { register VideotexPart *pv = &w->videotex; register int i = (nb_plans == 1); pv->affiche_caractere_avec_fond = fonctions_affiche_caractere_avec_fond[i]; pv->affiche_chaine_avec_fond = fonctions_affiche_chaine_avec_fond[i]; pv->affiche_chaine_drcs = fonctions_affiche_chaine_drcs[i]; pv->affiche_caractere_sans_fond = fonctions_affiche_caractere_sans_fond[i]; } /* Clipping local a la rangee */ static void clipping_local(w) VideotexWidget w; { register VideotexPart *pv = &w->videotex; XRectangle clip[2]; int n = 1; clip[0].x = 0; clip[0].y = pv->rangee * pv->hauteur_fonte_base; clip[0].width = pv->largeur_ecran; clip[0].height = pv->hauteur_fonte_base; if (pv->rangee == 0) { clip[0].width -= 2 * pv->largeur_fonte_base; clip[1].x = pv->largeur_ecran - pv->largeur_fonte_base; clip[1].y = 0; clip[1].width = pv->largeur_fonte_base; clip[1].height = pv->hauteur_fonte_base; n = 2; } XSetClipRectangles(XtDisplay(w), pv->gc, 0, 0, clip, n, YXBanded); } /* * Affichage de l'indicateur de connexion F ou C */ static void affiche_indicateur_connexion(w) VideotexWidget w; { register VideotexPart *pv = &w->videotex; XDrawImageString(XtDisplay(w), XtWindow(w), pv->gc_indicateur, pv->largeur_ecran - 2 * pv->largeur_fonte_base, pv->ascent_fonte_base, (w->videotex.connecte ? "C" : "F"), 1); (*pv->draw_image_string_sauve) (XtDisplay(w), pv->ecran_sauve, pv->gc_indicateur, pv->largeur_ecran - 2 * pv->largeur_fonte_base, pv->ascent_fonte_base, (w->videotex.connecte ? "C" : "F"), 1); } /* * Pour fixer les couleurs/pixmaps avant ecriture... */ static void fixe_les_couleurs_version_couleur(w) VideotexWidget w; { register VideotexPart *pv = &w->videotex; if (pv->inversion == POSITIF) { pv->indice_couleur_caractere = pv->couleur_caractere - CARACTERE_NOIR; pv->indice_couleur_fond = pv->couleur_fond - FOND_NOIR; } else { pv->indice_couleur_caractere = pv->couleur_fond - 16 - CARACTERE_NOIR; pv->indice_couleur_fond = pv->couleur_caractere + 16 - FOND_NOIR; } if (pv->indice_couleur_caractere != pv->indice_couleur_caractere_precedent) XSetForeground(XtDisplay(w), pv->gc, pv->couleurs[pv->indice_couleur_caractere].pixel); if (pv->indice_couleur_fond != pv->indice_couleur_fond_precedent) XSetBackground(XtDisplay(w), pv->gc, pv->couleurs[pv->indice_couleur_fond].pixel); pv->indice_couleur_caractere_precedent = pv->indice_couleur_caractere; pv->indice_couleur_fond_precedent = pv->indice_couleur_fond; } static void fixe_les_couleurs_version_monochrome(w) VideotexWidget w; { register VideotexPart *pv = &w->videotex; if (pv->inversion == POSITIF) { pv->indice_couleur_caractere = pv->couleur_caractere - CARACTERE_NOIR; pv->indice_couleur_fond = pv->couleur_fond - FOND_NOIR; } else { pv->indice_couleur_caractere = pv->couleur_fond - 16 - CARACTERE_NOIR; pv->indice_couleur_fond = pv->couleur_caractere + 16 - FOND_NOIR; } } /* * Affiche le fond pour le clignotement */ static void affiche_fond_pour_clignotement_version_monochrome(w, i, x, y, l, h) VideotexWidget w; int i, x, y; unsigned int l, h; { register VideotexPart *pv = &w->videotex; XSetStipple(XtDisplay(w), pv->gc, pv->pixmap[i]); XFillRectangle(XtDisplay(w), XtWindow(w), pv->gc, x, y, l, h); } static void affiche_fond_pour_clignotement_version_couleur(w, i, x, y, l, h) VideotexWidget w; int i, x, y; unsigned int l, h; { register VideotexPart *pv = &w->videotex; XSetForeground(XtDisplay(w), pv->gc, pv->couleurs[i].pixel); XFillRectangle(XtDisplay(w), XtWindow(w), pv->gc, x, y, l, h); } /* * Affiche un caractere en x_courant, y_courant avec le fond */ static void affiche_caractere_avec_fond_version_couleur(w, car) VideotexWidget w; char car; { register VideotexPart *pv = &w->videotex; char taille = pv->taille_caractere; void (*sauve_la_chaine_drcs)(); sauve_la_chaine_drcs = (pv->flag_bs ? (void (*) ()) nulle : affiche_chaine_drcs_version_couleur); car &= 0x7F; fixe_les_couleurs_version_couleur(w); /* * On commence par tester si l'on n'est pas en derniere colonne, double * largeur */ if ((pv->x_courant / pv->largeur_fonte_base) == 39) { if (taille == DOUBLE_LARGEUR) taille_caractere(w, NORMALE); else if (taille == DOUBLE_GRANDEUR) taille_caractere(w, DOUBLE_HAUTEUR); } /* ecrit le caractere dans ecran_demasquage */ if (pv->flag_drcs) { (*pv->affiche_chaine_drcs) (w, pv->ecran_demasquage, pv->gc, pv->x_courant, pv->y_courant, (char*)&car, 1); } else { XDrawImageString(XtDisplay(w), pv->ecran_demasquage, pv->gc, pv->x_courant, pv->y_courant, (char *)&car, 1); } XDrawImageString(XtDisplay(w), pv->ecran_masquage, pv->gc, pv->x_courant, pv->y_courant, " ", 1); if (pv->masquage == MASQUAGE) { /* ecrit le caractere dans win si le demasquage p.e. est valide */ if (!pv->masquage_plein_ecran) { if (pv->flag_drcs) { (*pv->affiche_chaine_drcs) (w, XtWindow(w), pv->gc, pv->x_courant, pv->y_courant, (char*)&car, 1); (*sauve_la_chaine_drcs) (w, pv->ecran_sauve, pv->gc, pv->x_courant, pv->y_courant, (char*)&car, 1); } else { XDrawImageString(XtDisplay(w), XtWindow(w), pv->gc, pv->x_courant, pv->y_courant, (char *) &car, 1); (*pv->draw_image_string_sauve) (XtDisplay(w), pv->ecran_sauve, pv->gc, pv->x_courant, pv->y_courant, (char *)&car, 1); } } } else { if (pv->flag_drcs) { (*pv->affiche_chaine_drcs) (w, XtWindow(w), pv->gc, pv->x_courant, pv->y_courant, (char *)&car, 1); (*sauve_la_chaine_drcs) (w, pv->ecran_sauve, pv->gc, pv->x_courant, pv->y_courant, (char *)&car, 1); (*pv->affiche_chaine_drcs) (w, pv->ecran_masquage, pv->gc, pv->x_courant, pv->y_courant, (char *)&car, 1); } else { XDrawImageString(XtDisplay(w), XtWindow(w), pv->gc, pv->x_courant, pv->y_courant, (char *)&car, 1); (*pv->draw_image_string_sauve) (XtDisplay(w), pv->ecran_sauve, pv->gc, pv->x_courant, pv->y_courant, (char *)&car, 1); XDrawImageString(XtDisplay(w), pv->ecran_masquage, pv->gc, pv->x_courant, pv->y_courant, (char *)&car, 1); } } if (taille != pv->taille_caractere) taille_caractere(w, taille); } static void affiche_caractere_avec_fond_version_monochrome(w, car) VideotexWidget w; char car; { register VideotexPart *pv = &w->videotex; char taille = pv->taille_caractere; void (*sauve_la_chaine_drcs)(); sauve_la_chaine_drcs = (pv->flag_bs ? (void (*) ()) nulle : affiche_chaine_drcs_version_monochrome); car &= 0x7F; fixe_les_couleurs_version_monochrome(w); /* * commence par tester si on n'est pas en derniere colonne, double * largeur */ if ((pv->x_courant / pv->largeur_fonte_base) == 39) { if (taille == DOUBLE_LARGEUR) taille_caractere(w, NORMALE); else if (taille == DOUBLE_GRANDEUR) taille_caractere(w, DOUBLE_HAUTEUR); } /* * On ecrit les fond dans les 3 ecrans ! */ /* fixe le stipple de fond */ XSetStipple(XtDisplay(w), pv->gc, pv->pixmap[pv->indice_couleur_fond]); /* affiche le fond sur les 3 ecrans */ XFillRectangle(XtDisplay(w), XtWindow(w), pv->gc, pv->x_courant, pv->y_courant - pv->xfs_courante->ascent, pv->xfs_courante->max_bounds.width, pv->xfs_courante->ascent + pv->xfs_courante->descent); (*pv->fill_rectangle_sauve) (XtDisplay(w), pv->ecran_sauve, pv->gc, pv->x_courant, pv->y_courant - pv->xfs_courante->ascent, pv->xfs_courante->max_bounds.width, pv->xfs_courante->ascent + pv->xfs_courante->descent); XFillRectangle(XtDisplay(w), pv->ecran_masquage, pv->gc, pv->x_courant, pv->y_courant - pv->xfs_courante->ascent, pv->xfs_courante->max_bounds.width, pv->xfs_courante->ascent + pv->xfs_courante->descent); XFillRectangle(XtDisplay(w), pv->ecran_demasquage, pv->gc, pv->x_courant, pv->y_courant - pv->xfs_courante->ascent, pv->xfs_courante->max_bounds.width, pv->xfs_courante->ascent + pv->xfs_courante->descent); /* * ecriture des caracteres */ if (pv->indice_couleur_fond != pv->indice_couleur_caractere) { if (pv->flag_drcs) { affiche_chaine_drcs_version_monochrome (w, pv->ecran_demasquage, pv->gc, pv->x_courant, pv->y_courant, (char *) &car, 1); } else { /* fixe le stipple caractere */ XSetStipple(XtDisplay(w), pv->gc, pv->pixmap[pv->indice_couleur_caractere]); /* ecrit le caractere dans ecran_demasquage */ XDrawString(XtDisplay(w), pv->ecran_demasquage, pv->gc, pv->x_courant, pv->y_courant, (char *) &car, 1); } /* * Si il y a masquage : * * - on affiche a l'ecran si l'on a valide l'attribut de demasquage * plein ecran par contre, on n'ecrit pas dans pv->ecran_masquage * * - on affiche dans aucun des 2 si l'attribut de demasquage p.e n'est * pas valide * * Si il n'y a pas masquage : * * - on affiche a l'ecran et dans ecran_masquage */ if (pv->masquage == MASQUAGE) { /* ecrit le caractere dans win si le demasquage p.e. est valide */ if (!pv->masquage_plein_ecran) { if (pv->flag_drcs) { affiche_chaine_drcs_version_monochrome (w, XtWindow(w), pv->gc, pv->x_courant, pv->y_courant, (char *) &car, 1); (*sauve_la_chaine_drcs) (w, pv->ecran_sauve, pv->gc, pv->x_courant, pv->y_courant, (char *) &car, 1); } else { XDrawString(XtDisplay(w), XtWindow(w), pv->gc, pv->x_courant, pv->y_courant, (char *) &car, 1); (*pv->draw_string_sauve) (XtDisplay(w), pv->ecran_sauve, pv->gc, pv->x_courant, pv->y_courant, (char *) &car, 1); } } } else { if (pv->flag_drcs) { affiche_chaine_drcs_version_monochrome (w, XtWindow(w), pv->gc, pv->x_courant, pv->y_courant, (char *) &car, 1); (*sauve_la_chaine_drcs) (w, pv->ecran_sauve, pv->gc, pv->x_courant, pv->y_courant, (char *) &car, 1); affiche_chaine_drcs_version_monochrome (w, pv->ecran_masquage, pv->gc, pv->x_courant, pv->y_courant, (char *) &car, 1); } else { XDrawString(XtDisplay(w), XtWindow(w), pv->gc, pv->x_courant, pv->y_courant, (char *) &car, 1); (*pv->draw_string_sauve) (XtDisplay(w), pv->ecran_sauve, pv->gc, pv->x_courant, pv->y_courant, (char *) &car, 1); XDrawString(XtDisplay(w), pv->ecran_masquage, pv->gc, pv->x_courant, pv->y_courant, (char *) &car, 1); } } } if (taille != pv->taille_caractere) taille_caractere(w, taille); } /* * Affiche une chaine avec le fond (utilise par la repetition de caractere) */ static void j_affiche_la_chaine_couleur(w, d, gc, x, y, s, l) VideotexWidget w; Drawable d; GC gc; register int x, y; register char *s; register int l; { register VideotexPart *pv = &w->videotex; Boolean flag_double = (pv->taille_caractere == DOUBLE_HAUTEUR || pv->taille_caractere == DOUBLE_GRANDEUR); fixe_les_couleurs_version_couleur(w); if (flag_double) clipping_local(w); if (pv->flag_drcs) affiche_chaine_drcs_version_couleur (w, d, gc, x, y, s, l); else XDrawImageString(XtDisplay(w), d, gc, x, y, s, l); if (flag_double && pv->etat == EtatREP) { if (pv->rangee) { char cf = pv->couleur_fond; pv->rangee--; clipping_local(w); pv->couleur_fond = pv->attributs[pv->rangee][pv->colonne - 2].couleur_fond; fixe_les_couleurs_version_couleur(w); if (pv->flag_drcs) affiche_chaine_drcs_version_couleur (w, d, gc, x, y, s, l); else XDrawImageString(XtDisplay(w), d, gc, x, y, s, l); pv->couleur_fond = cf; pv->rangee++; } XSetClipRectangles(XtDisplay(w), gc, 0, 0, pv->r_clipping_normal, 3, YXBanded); } } static void affiche_chaine_avec_fond_version_couleur(w, s, l, x, y) VideotexWidget w; register char *s; register int l, x, y; { register VideotexPart *pv = &w->videotex; register int sl; char c = '\0'; void (*sauve_la_chaine) (); sauve_la_chaine = (pv->flag_bs ? (void (*) ()) nulle : j_affiche_la_chaine_couleur); fixe_les_couleurs_version_couleur(w); /* * Si la chaine est en double largeur et que le dernier caractere * commence en colonne 39, on affiche un caractere de moins et on affiche * le dernier a part en passant par la fonction d'affichage de caractere * unique */ sl = l * pv->largeur_caractere; if (((x / pv->largeur_fonte_base) + sl) > 40) { c = s[--l]; s[l] = '\0'; } /* ecrit le caractere dans ecran_demasquage */ j_affiche_la_chaine_couleur(w, pv->ecran_demasquage, pv->gc, x, y, s, l); /* ecrit des blancs dans ecran_masquage */ j_affiche_la_chaine_couleur(w, pv->ecran_masquage, pv->gc, x, y, Ligne_blanche, l); if (pv->masquage == MASQUAGE) { /* ecrit le caractere dans win si le demasquage p.e. est valide */ if (!pv->masquage_plein_ecran) { j_affiche_la_chaine_couleur(w, XtWindow(w), pv->gc, x, y, s, l); (*sauve_la_chaine) (w, pv->ecran_sauve, pv->gc, x, y, s, l); } } else { j_affiche_la_chaine_couleur(w, XtWindow(w), pv->gc, x, y, s, l); (*sauve_la_chaine) (w, pv->ecran_sauve, pv->gc, x, y, s, l); j_affiche_la_chaine_couleur(w, pv->ecran_masquage, pv->gc, x, y, s, l); } /* * Si il reste un caractere a afficher en derniere colonne on appelle * affiche_caractere_version_couleur() qui possede tous les tests * appropries pour la double largeur */ if (c) { int sx = pv->x_courant, sy = pv->y_courant; pv->x_courant = pv->largeur_ecran - pv->largeur_fonte_base; pv->y_courant = y; affiche_caractere_avec_fond_version_couleur(w, c); pv->x_courant = sx; pv->y_courant = sy; } } static void affiche_chaine_avec_fond_version_monochrome(w, s, l, x, y) VideotexWidget w; register char *s; register int l, x, y; { register VideotexPart *pv = &w->videotex; register int sl; char c = '\0'; register int largeur = l * pv->xfs_courante->max_bounds.width; char flag_double = (pv->taille_caractere == DOUBLE_HAUTEUR || pv->taille_caractere == DOUBLE_GRANDEUR); void (*sauve_la_chaine_drcs) (); sauve_la_chaine_drcs = (pv->flag_bs ? (void (*) ()) nulle : affiche_chaine_drcs_version_monochrome); fixe_les_couleurs_version_monochrome(w); sl = l * pv->largeur_caractere; if (((x / pv->largeur_fonte_base) + sl) > 40) { c = s[--l]; s[l] = '\0'; } /* * On ecrit les fond dans les 3 ecrans ! */ /* fixe le stipple de fond */ XSetStipple(XtDisplay(w), pv->gc, pv->pixmap[pv->indice_couleur_fond]); if (flag_double) clipping_local(w); XFillRectangle(XtDisplay(w), XtWindow(w), pv->gc, x, y - pv->xfs_courante->ascent, largeur, pv->xfs_courante->ascent + pv->xfs_courante->descent); (*pv->fill_rectangle_sauve) (XtDisplay(w), pv->ecran_sauve, pv->gc, x, y - pv->xfs_courante->ascent, largeur, pv->xfs_courante->ascent + pv->xfs_courante->descent); XFillRectangle(XtDisplay(w), pv->ecran_masquage, pv->gc, x, y - pv->xfs_courante->ascent, largeur, pv->xfs_courante->ascent + pv->xfs_courante->descent); XFillRectangle(XtDisplay(w), pv->ecran_demasquage, pv->gc, x, y - pv->xfs_courante->ascent, largeur, pv->xfs_courante->ascent + pv->xfs_courante->descent); if (flag_double && pv->etat == EtatREP) { if (pv->rangee) { char cf = pv->couleur_fond; pv->rangee--; clipping_local(w); pv->couleur_fond = pv->attributs[pv->rangee][pv->colonne - 2].couleur_fond; fixe_les_couleurs_version_monochrome(w); XSetStipple(XtDisplay(w), pv->gc, pv->pixmap[pv->indice_couleur_fond]); XFillRectangle(XtDisplay(w), XtWindow(w), pv->gc, x, y - pv->xfs_courante->ascent, largeur, pv->xfs_courante->ascent + pv->xfs_courante->descent); (*pv->fill_rectangle_sauve) (XtDisplay(w), pv->ecran_sauve, pv->gc, x, y - pv->xfs_courante->ascent, largeur, pv->xfs_courante->ascent + pv->xfs_courante->descent); XFillRectangle(XtDisplay(w), pv->ecran_masquage, pv->gc, x, y - pv->xfs_courante->ascent, largeur, pv->xfs_courante->ascent + pv->xfs_courante->descent); XFillRectangle(XtDisplay(w), pv->ecran_demasquage, pv->gc, x, y - pv->xfs_courante->ascent, largeur, pv->xfs_courante->ascent + pv->xfs_courante->descent); pv->couleur_fond = cf; fixe_les_couleurs_version_monochrome(w); pv->rangee++; } XSetClipRectangles(XtDisplay(w), pv->gc, 0, 0, pv->r_clipping_normal, 3, YXBanded); } /* * ecriture des caracteres */ if (pv->indice_couleur_fond != pv->indice_couleur_caractere) { if (pv->flag_drcs){ affiche_chaine_drcs_version_monochrome (w, pv->ecran_demasquage, pv->gc, x, y, s, l); } else { /* fixe le stipple caractere */ XSetStipple(XtDisplay(w), pv->gc, pv->pixmap[pv->indice_couleur_caractere]); /* ecrit le caractere dans ecran_demasquage */ XDrawString(XtDisplay(w), pv->ecran_demasquage, pv->gc, x, y, s, l); } /* * Si il y a masquage : * * - on affiche a l'ecran si l'on a valide l'attribut de demasquage * plein ecran par contre, on n'ecrit pas dans ecran_masquage * * - on affiche dans aucun des 2 si l'attribut de demasquage p.e n'est * pas valide * * Si il n'y a pas masquage : * * - on affiche a l'ecran et dans ecran_masquage */ if (pv->masquage == MASQUAGE) { /* ecrit le caractere dans win si le demasquage p.e. est valide */ if (!pv->masquage_plein_ecran) { if (pv->flag_drcs) { affiche_chaine_drcs_version_monochrome (w, XtWindow(w), pv->gc, x, y, s, l); (*sauve_la_chaine_drcs) (w, pv->ecran_sauve, pv->gc, x, y, s, l); } else { XDrawString(XtDisplay(w), XtWindow(w), pv->gc, x, y, s, l); (*pv->draw_string_sauve) (XtDisplay(w), pv->ecran_sauve, pv->gc, x, y, s, l); } } } else { if (pv->flag_drcs) { affiche_chaine_drcs_version_monochrome(w, XtWindow(w), pv->gc, x, y, s, l); (*sauve_la_chaine_drcs) (w, pv->ecran_sauve, pv->gc, x, y, s, l); affiche_chaine_drcs_version_monochrome (w, pv->ecran_masquage, pv->gc, x, y, s, l); } else { XDrawString(XtDisplay(w), XtWindow(w), pv->gc, x, y, s, l); (*pv->draw_string_sauve) (XtDisplay(w), pv->ecran_sauve, pv->gc, x, y, s, l); XDrawString(XtDisplay(w), pv->ecran_masquage, pv->gc, x, y, s, l); } } } if (c) { int sx = pv->x_courant, sy = pv->y_courant; pv->x_courant = pv->largeur_ecran - pv->largeur_fonte_base; pv->y_courant = y; affiche_caractere_avec_fond_version_monochrome(w, c); pv->x_courant = sx; pv->y_courant = sy; } } /* * Idem sans le fond */ static void affiche_caractere_sans_fond_version_couleur(w, car) VideotexWidget w; char car; { register VideotexPart *pv = &w->videotex; char taille = pv->taille_caractere; car &= 0x7F; fixe_les_couleurs_version_couleur(w); /* * commence par tester si on n'est pas en derniere colonne, double * largeur */ if ((pv->x_courant / pv->largeur_fonte_base) == 39) { if (taille == DOUBLE_LARGEUR) taille_caractere(w, NORMALE); else if (taille == DOUBLE_GRANDEUR) taille_caractere(w, DOUBLE_HAUTEUR); } /* ecrit toujours dans l'ecran de demasquage */ XDrawString(XtDisplay(w), pv->ecran_demasquage, pv->gc, pv->x_courant, pv->y_courant, (char *) &car, 1); if (pv->masquage == MASQUAGE) { /* ecrit le caractere dans win si le demasquage p.e. est valide */ if (!pv->masquage_plein_ecran) { XDrawString(XtDisplay(w), XtWindow(w), pv->gc, pv->x_courant, pv->y_courant, (char *) &car, 1); (*pv->draw_string_sauve) (XtDisplay(w), pv->ecran_sauve, pv->gc, pv->x_courant, pv->y_courant, (char *) &car, 1); } } else { XDrawString(XtDisplay(w), XtWindow(w), pv->gc, pv->x_courant, pv->y_courant, (char *) &car, 1); (*pv->draw_string_sauve) (XtDisplay(w), pv->ecran_sauve, pv->gc, pv->x_courant, pv->y_courant, (char *) &car, 1); XDrawString(XtDisplay(w), pv->ecran_masquage, pv->gc, pv->x_courant, pv->y_courant, (char *) &car, 1); } if (taille != pv->taille_caractere) taille_caractere(w, taille); } static void affiche_caractere_sans_fond_version_monochrome(w, car) VideotexWidget w; char car; { register VideotexPart *pv = &w->videotex; char taille = pv->taille_caractere; car &= 0x7F; fixe_les_couleurs_version_monochrome(w); /* * commence par tester si on n'est pas en derniere colonne, double * largeur */ if ((pv->x_courant / pv->largeur_fonte_base) == 39) { if (taille == DOUBLE_LARGEUR) taille_caractere(w, NORMALE); else if (taille == DOUBLE_GRANDEUR) taille_caractere(w, DOUBLE_HAUTEUR); } if (pv->indice_couleur_fond != pv->indice_couleur_caractere) { /* fixe le stipple caractere */ XSetStipple(XtDisplay(w), pv->gc, pv->pixmap[pv->indice_couleur_caractere]); /* ecrit toujours dans l'ecran de demasquage */ XDrawString(XtDisplay(w), pv->ecran_demasquage, pv->gc, pv->x_courant, pv->y_courant, (char *) &car, 1); if (pv->masquage == MASQUAGE) { /* ecrit le caractere dans win si le demasquage p.e. est valide */ if (!pv->masquage_plein_ecran) { XDrawString(XtDisplay(w), XtWindow(w), pv->gc, pv->x_courant, pv->y_courant, (char *) &car, 1); (*pv->draw_string_sauve) (XtDisplay(w), pv->ecran_sauve, pv->gc, pv->x_courant, pv->y_courant, (char *) &car, 1); } } else { XDrawString(XtDisplay(w), XtWindow(w), pv->gc, pv->x_courant, pv->y_courant, (char *) &car, 1); (*pv->draw_string_sauve) (XtDisplay(w), pv->ecran_sauve, pv->gc, pv->x_courant, pv->y_courant, (char *) &car, 1); XDrawString(XtDisplay(w), pv->ecran_masquage, pv->gc, pv->x_courant, pv->y_courant, (char *) &car, 1); } } if (taille != pv->taille_caractere) taille_caractere(w, taille); } /* * Fonction de traitement du debordement (colonne > 40) */ static void traite_debordement(w) VideotexWidget w; { register VideotexPart *pv = &w->videotex; pv->x_courant = 0; pv->y_courant += pv->xfs_courante->ascent + pv->xfs_courante->descent; /* * Nouveau calcul de la position de fin de repetition */ if (w->videotex.etat == EtatREP) { pv->x_fin_repetition = pv->repetition * pv->xfs_courante->max_bounds.width; if ((int) pv->x_fin_repetition > (int) pv->largeur_ecran) pv->x_fin_repetition = pv->largeur_ecran; } if (pv->jeu_courant == G1) { #ifdef NOTDEF /* * On fixe la couleur de fond a NOIR, jusqu'a ce qu'un nouveau * delimiteur la re-valide */ pv->valeur_couleur_fond = pv->couleur_fond; pv->a_valider_si_delimiteur |= BIT_COULEUR_FOND; couleur_fond(FOND_NOIR); #endif } else { /* * Jeu G0 ==> RAZ de tous les attributs serie */ couleur_fond(w, FOND_NOIR); soulignement(w, FIN_LIGNAGE); masquage(w, DEMASQUAGE); } /* * En derniere rangee ? */ if (pv->y_courant >= 25 * pv->hauteur_fonte_base) { /* * FP, 18-FEB-93: correction des bugs de recalcul qui deconnaient en * dble hauteur */ if (!pv->mode_scroll) pv->y_courant = (pv->hauteur_caractere + 1) * pv->hauteur_fonte_base - pv->descent_fonte_base; else { scroll_haut(w, 1, 1); if (pv->hauteur_caractere > 1) scroll_haut(w, 1, 1); pv->y_courant = 25 * pv->hauteur_fonte_base - pv->descent_fonte_base; } } /* on doit recalculer la valeur de la rangee */ pv->rangee = (pv->y_courant + pv->descent_fonte_base - 1) / pv->hauteur_fonte_base; } /* * Passe au caractere suivant */ static void caractere_suivant(w) VideotexWidget w; { register VideotexPart *pv = &w->videotex; /* colonne suivante => calcul du nouvel x_courant d'affichage */ pv->x_courant += pv->xfs_courante->max_bounds.width; /* test de debordement */ if (pv->x_courant >= 40 * pv->largeur_fonte_base) { /* * Si l'on est en cours de repetition, on affiche la chaine a * afficher */ if (pv->etat == EtatREP && !pv->flag_G2) { /* repetition */ (*pv->affiche_chaine_avec_fond) (w, pv->chaine_repetition, pv->indice_repetition, pv->x_courant_repetition, pv->y_courant); pv->indice_repetition = 0; } if (pv->rangee != 0) { traite_debordement(w); pv->x_courant_repetition = pv->x_courant; } else /* reste sur la meme position */ pv->x_courant -= pv->xfs_courante->max_bounds.width; } /* calcul de la colonne en fonction de x_courant */ pv->colonne = 1 + (pv->x_courant / pv->largeur_fonte_base); } /* * Re-affiche un caractere en lisant ses attributs dans le tableau * "attributs" */ static int re_affiche_caractere(w, indice_rangee, patt) VideotexWidget w; register char indice_rangee; register struct attribut *patt; { register VideotexPart *pv = &w->videotex; register int y_re_affichage, l; char c = patt->code[0] & 0x7f; l = (patt->taille_caractere == NORMALE || patt->taille_caractere == DOUBLE_HAUTEUR) ? 1 : 2; /* * On optimise le re-affichage dans le cas d'une repetition : ce n'est * pas la peine de re-afficher un caractere si on doit afficher plus tard * a sa position... */ if (pv->etat == EtatREP) { if ((pv->x_courant + l * pv->largeur_fonte_base) <= pv->x_fin_repetition) { /* * on ne re-affiche pas, mais on met a jour * x_courant_re_affichage */ pv->x_courant_re_affichage += l * pv->largeur_fonte_base; return (l); } } /* * Si un des attributs de caractere est modifie, affiche le buffer */ if (pv->p_attribut_re_affichage->inversion != patt->inversion || pv->p_attribut_re_affichage->taille_caractere != patt->taille_caractere || pv->p_attribut_re_affichage->couleur_caractere != patt->couleur_caractere || pv->p_attribut_re_affichage->jeu != patt->jeu) { /* * Fixe les attributs d'affichage */ inversion(w, pv->p_attribut_re_affichage->inversion); taille_caractere(w, pv->p_attribut_re_affichage->taille_caractere); couleur_caractere(w, pv->p_attribut_re_affichage->couleur_caractere); selection_jeu(w, pv->p_attribut_re_affichage->jeu); /* * Si c'est le haut d'un caractere double hauteur, decale le y */ if (pv->p_attribut_re_affichage->code[0] & 0x80) y_re_affichage = pv->y_courant + pv->hauteur_fonte_base; else y_re_affichage = pv->y_courant; (*pv->affiche_chaine_avec_fond) (w, pv->chaine_a_re_afficher, pv->indice_re_affichage, pv->x_courant_re_affichage, y_re_affichage); /* prepare un nouveau buffer */ pv->indice_re_affichage = 0; pv->x_courant_re_affichage = pv->x_courant; pv->p_attribut_re_affichage = patt; } /* * on bufferise les caracteres (sauf pour les caracteres accentues) */ /* Caractere de G2 ou caractere accentue */ if (patt->jeu == G2) { if ((c < 65 || c > 67) && (c != 72) && (c != 75)) { pv->chaine_a_re_afficher[pv->indice_re_affichage++] = c; } else { /* caractere accentue */ register int y_courant_sauve = pv->y_courant; /* Si c'est le haut d'un caractere... */ if (patt->code[0] & 0x80) { y_courant_sauve = pv->y_courant; pv->y_courant += pv->hauteur_fonte_base; } /* * Fixe les attributs d'affichage */ inversion(w, patt->inversion); taille_caractere(w, patt->taille_caractere); couleur_caractere(w, patt->couleur_caractere); /* Affiche l'accent, puis le caractere */ selection_jeu(w, patt->jeu); (*pv->affiche_caractere_avec_fond) (w, g2_vers_g0(c)); selection_jeu(w, G0); (*pv->affiche_caractere_sans_fond) (w, patt->code[1]); pv->y_courant = y_courant_sauve; } } else pv->chaine_a_re_afficher[pv->indice_re_affichage++] = c; return (l); } /* * Affiche un caractere "normal" (avec fond et non accentue) */ static void affiche_caractere_normal_en_mode_repetition(w, c) VideotexWidget w; char c; { register VideotexPart *pv = &w->videotex; sauve_les_attributs_du_caractere(w, c, 0); pv->chaine_repetition[pv->indice_repetition++] = c & 0x7f; caractere_suivant(w); } static void affiche_caractere_normal(w, c) VideotexWidget w; char c; { register VideotexPart *pv = &w->videotex; sauve_les_attributs_du_caractere(w, c, 0); (*pv->affiche_caractere_avec_fond) (w, c); caractere_suivant(w); } /* * Repetition du dernier caractere imprimable (G0, G1, G2) * * On optimise en bufferisant les caracteres a repeter jusqu'a rencontre d'un * delimiteur ou d'une fin de rangee ==> a ce moment la, on affiche le buffer * (on ne bufferise pas les caracteres accentues car c'est trop chiant a * traiter et qu'en plus, on repete rarement 50 fois un caractere accentue !) */ static void repetition_caractere_sauve(w, rep) VideotexWidget w; register char rep; { register char flag_ecriture_sur_texte; register VideotexPart *pv = &w->videotex; /* * FP, 16-FEB-93: on commence par regler un petit probleme de taille: si * on est en double hauteur et qu'on passe en ligne 1 et qu'on affiche un * caractere, le minitel passe en simple hauteur */ if (pv->rangee <= 1 && pv->taille_caractere != NORMALE) { if (pv->taille_caractere == DOUBLE_HAUTEUR) taille_caractere(w, NORMALE); else if (pv->taille_caractere == DOUBLE_GRANDEUR) taille_caractere(w, DOUBLE_LARGEUR); } /* maintenant on peut traiter la repetition */ pv->indice_repetition = 0; pv->x_courant_repetition = pv->x_courant; pv->repetition = rep; /* * Calcul de la position de fin de repetition */ pv->x_fin_repetition = pv->x_courant + pv->repetition * pv->xfs_courante->max_bounds.width; if ((int) pv->x_fin_repetition > (int) pv->largeur_ecran) pv->x_fin_repetition = pv->largeur_ecran; if (pv->flag_G2) { /* signe diacritique sauf accent */ if ((pv->accent_sauve < 65 || pv->accent_sauve > 67) && (pv->accent_sauve != 72) && (pv->accent_sauve != 75)) { selection_jeu(w, G2); while (pv->repetition--) { if (pv->attributs[pv->rangee][pv->colonne - 1].f.delimiteur) { /* * ecriture sur un delimiteur : - affiche la chaine - * traite l'ecriture */ (*pv->affiche_chaine_avec_fond) (w, pv->chaine_repetition, pv->indice_repetition, pv->x_courant_repetition, pv->y_courant); pv->x_courant_repetition += pv->indice_repetition * pv->xfs_courante->max_bounds.width; pv->indice_repetition = 0; /* on a ecrit sur le delimiteur */ if (pv->attributs[pv->rangee][pv->colonne - 1].f.delimiteur == DELIMITEUR_EXPLICITE) recopie_les_attributs_si_ecriture_sur_delimiteur_explicite(w, pv->colonne - 1); else recopie_les_attributs_si_ecriture_sur_delimiteur_graphique(w, pv->colonne - 1); reaffiche_zone(w, pv->colonne - 1); } affiche_caractere_normal_en_mode_repetition(w, g2_vers_g0 (pv->accent_sauve)); } if (pv->indice_repetition) { (*pv->affiche_chaine_avec_fond) (w, pv->chaine_repetition, pv->indice_repetition, pv->x_courant_repetition, pv->y_courant); } selection_jeu(w, G0); } /* caractere accentue */ else { while (pv->repetition--) { /* test d'ecriture sur delimiteur */ if (pv->attributs[pv->rangee][pv->colonne - 1].f.delimiteur) { /* on a ecrit sur le delimiteur */ if (pv->attributs[pv->rangee][pv->colonne - 1].f.delimiteur == DELIMITEUR_EXPLICITE) recopie_les_attributs_si_ecriture_sur_delimiteur_explicite(w, pv->colonne - 1); else recopie_les_attributs_si_ecriture_sur_delimiteur_graphique(w, pv->colonne - 1); reaffiche_zone(w, pv->colonne - 1); } selection_jeu(w, G2); (*pv->affiche_caractere_avec_fond) (w, g2_vers_g0 (pv->accent_sauve)); selection_jeu(w, G0); sauve_les_attributs_du_caractere(w, pv->accent_sauve, pv->caractere_sauve); (*pv->affiche_caractere_sans_fond) (w, pv->caractere_sauve); caractere_suivant(w); } } } else { if (pv->caractere_sauve == ' ' && pv->a_valider_si_delimiteur) { /* delimiteur explicite (blanc) ? */ traitement_delimiteur_explicite(w, pv->caractere_sauve); pv->x_courant_repetition = pv->x_courant; pv->repetition--; } else if (pv->jeu_courant == G1) { /* caractere graphique ? */ traitement_delimiteur_graphique(w); } while (pv->repetition--) { flag_ecriture_sur_texte = 0; /* * Si on est en mode graphique, on teste si on devra modifier la * zone texte la + proche */ if (pv->jeu_courant == G1) { if (pv->colonne != 40) { flag_ecriture_sur_texte = ((pv->attributs[pv->rangee][pv->colonne - 1].jeu != G1 && (pv->attributs[pv->rangee][pv->colonne - 1].couleur_fond != pv->couleur_fond || pv->attributs[pv->rangee][pv->colonne - 1].soulignement == DEBUT_LIGNAGE)) || (pv->attributs[pv->rangee][pv->colonne].jeu != G1 && (pv->attributs[pv->rangee][pv->colonne].couleur_fond != pv->couleur_fond || pv->attributs[pv->rangee][pv->colonne].soulignement == DEBUT_LIGNAGE))); } else { flag_ecriture_sur_texte = 0; } } if (pv->attributs[pv->rangee][pv->colonne - 1].f.delimiteur) { /* * Ecriture sur un delimiteur : - affiche la chaine - traite * l'ecriture */ (*pv->affiche_chaine_avec_fond) (w, pv->chaine_repetition, pv->indice_repetition, pv->x_courant_repetition, pv->y_courant); pv->x_courant_repetition += pv->indice_repetition * pv->xfs_courante->max_bounds.width; pv->indice_repetition = 0; /* on a ecrit sur le delimiteur */ if (pv->attributs[pv->rangee][pv->colonne - 1].f.delimiteur == DELIMITEUR_EXPLICITE) recopie_les_attributs_si_ecriture_sur_delimiteur_explicite(w, pv->colonne - 1); else recopie_les_attributs_si_ecriture_sur_delimiteur_graphique(w, pv->colonne - 1); reaffiche_zone(w, pv->colonne - 1); } /* * En cas de semi-graphique, on peut re-valider la couleur de * fond annulee par un depassement sur la rangee suivante */ if (pv->jeu_courant == G1) traitement_delimiteur_graphique(w); affiche_caractere_normal_en_mode_repetition(w, pv->caractere_sauve); /* Modification de la zone texte */ if (flag_ecriture_sur_texte) { recopie_les_attributs_delimiteur_graphique(w, pv->colonne - 1); if (pv->flag_quelque_chose_a_reafficher) reaffiche_zone(w, pv->colonne - 1); pv->attributs[pv->rangee][pv->colonne - 2].f.delimiteur = DELIMITEUR_GRAPHIQUE; } } /* affiche le dernier buffer */ if (pv->indice_repetition) { (*pv->affiche_chaine_avec_fond) (w, pv->chaine_repetition, pv->indice_repetition, pv->x_courant_repetition, pv->y_courant); } } } /* * reaffiche_rectangle_ecran * * Efface et reaffiche le contenu d'une portion d'ecran dont on passe les * coordonnees FP, 23-FEB-93 */ static void reaffiche_rectangle_ecran(w, r1, c1, r2, c2) VideotexWidget w; int r1, c1, r2, c2; { register VideotexPart *pv = &w->videotex; register struct attribut *p; int i, j, x, y; char chaine[41]; char old_rangee = pv->rangee; char old_inversion = pv->inversion; char old_couleur_caractere = pv->couleur_caractere; char old_couleur_fond = pv->couleur_fond; char old_masquage = pv->masquage; char old_soulignement = pv->soulignement; char old_clignotement = pv->clignotement; char old_jeu_courant = pv->jeu_courant; char old_taille_caractere = pv->taille_caractere; char old_insertion = pv->insertion; int old_x_courant = pv->x_courant; int old_y_courant = pv->y_courant; Boolean old_flag_drcs = pv->flag_drcs; pv->indice_couleur_caractere_precedent = -1; pv->indice_couleur_fond_precedent = -1; pv->xfs_courante = NULL; /* reaffiche la zone */ for (pv->rangee = r1; pv->rangee <= r2; pv->rangee++) { /* on clippe sur la rangee pour les double hauteur */ clipping_local(w); for (i = c1 - 1; i < c2;) { /* * On reaffiche une suite de caracteres du meme type (memes * attributs). Un traitement particulier est effectue pour les * double hauteur: - Si on est sur la partie superieure de * caractere double hauteur, on n'affiche qu'un espace de la * couleur du fond - Si on est sur la partie inferieur de * caracteres double hauteur, on affiche le caractere complet. * Cette routine sera a modifier par la suite pour pouvoir * traiter les caracteres double hauteur avec deux couleurs de * fond. * */ p = &pv->attributs[pv->rangee][i]; pv->inversion = p->inversion; pv->couleur_caractere = p->couleur_caractere; pv->couleur_fond = p->couleur_fond; pv->masquage = p->masquage; pv->soulignement = p->f.delimiteur ? FIN_LIGNAGE : p->soulignement; pv->clignotement = p->clignotement; pv->flag_drcs = p->drcs; if ((p->taille_caractere == DOUBLE_HAUTEUR || p->taille_caractere == DOUBLE_GRANDEUR) && pv->rangee <= 1) { pv->rangee += 2; taille_caractere(w, p->taille_caractere); pv->rangee -= 2; } else taille_caractere(w, p->taille_caractere); /* positionne la fonte * aussi en fonction du * soulignement */ selection_jeu(w, p->jeu); x = i * pv->largeur_fonte_base; y = (pv->rangee + 1) * pv->hauteur_fonte_base - pv->descent_fonte_base; if ((pv->taille_caractere == DOUBLE_HAUTEUR || pv->taille_caractere == DOUBLE_GRANDEUR) && (p->code[0] & 0x80)) y += pv->hauteur_fonte_base; j = 0; if (!accentue(p)) { do { /* * si on est en haut d'un caractere double hauteur on * affiche juste le fond */ if (pv->jeu_courant == G2) chaine[j++] = g2_vers_g0 (p->code[0] & 0x7f); else chaine[j++] = p->code[0] & 0x7f; if (p->taille_caractere == DOUBLE_LARGEUR || p->taille_caractere == DOUBLE_GRANDEUR) p++, i++; p++, i++; } while (i < c2 && p->inversion == pv->inversion && p->couleur_caractere == pv->couleur_caractere && p->couleur_fond == pv->couleur_fond && p->taille_caractere == pv->taille_caractere && p->masquage == pv->masquage && p->soulignement == pv->soulignement && p->clignotement == pv->clignotement && p->jeu == pv->jeu_courant && !accentue(p)); chaine[j] = '\0'; } else { /* Caractere accentue */ pv->x_courant = x; pv->y_courant = y; (*pv->affiche_caractere_avec_fond) (w, g2_vers_g0 (p->code[0] & 0x7f)); selection_jeu(w, G0); (*pv->affiche_caractere_sans_fond) (w, p->code[1]); if (p->taille_caractere == DOUBLE_LARGEUR || p->taille_caractere == DOUBLE_GRANDEUR) p++, i++; p++, i++; } /* si on a une chaine a afficher, c'est parti mon kiki */ if (j) (*pv->affiche_chaine_avec_fond) (w, chaine, j, x, y); } } /* restaure tous les parametres courants */ pv->rangee = old_rangee; pv->inversion = old_inversion; pv->couleur_caractere = old_couleur_caractere; pv->couleur_fond = old_couleur_fond; pv->masquage = old_masquage; pv->soulignement = old_soulignement; pv->clignotement = old_clignotement; pv->jeu_courant = old_jeu_courant; pv->taille_caractere = old_taille_caractere; pv->insertion = old_insertion; pv->x_courant = old_x_courant; pv->y_courant = old_y_courant; pv->flag_drcs = old_flag_drcs; pv->indice_couleur_caractere_precedent = -1; pv->indice_couleur_fond_precedent = -1; pv->xfs_courante = NULL; soulignement(w, pv->soulignement); taille_caractere(w, pv->taille_caractere); selection_jeu(w, pv->jeu_courant); /* selection de la bonne fonte courante */ XSetClipRectangles(XtDisplay(w), pv->gc, 0, 0, pv->r_clipping_normal, 3, YXBanded); } /* * fonctions de traitement des attributs */ /* * Initialisation des attributs */ static void init_attributs(w) VideotexWidget w; { register int i; for (i = 0; i != 40; i++) { attributs_initiaux[i].code[0] = ' '; attributs_initiaux[i].code[1] = 0; attributs_initiaux[i].inversion = POSITIF; attributs_initiaux[i].couleur_caractere = CARACTERE_BLANC; attributs_initiaux[i].taille_caractere = NORMALE; attributs_initiaux[i].jeu = G1; attributs_initiaux[i].couleur_fond = FOND_NOIR; attributs_initiaux[i].masquage = DEMASQUAGE; attributs_initiaux[i].soulignement = FIN_LIGNAGE; attributs_initiaux[i].clignotement = LETTRES_FIXES; attributs_initiaux[i].drcs = False; attributs_initiaux[i].f.delimiteur = 0; attributs_initiaux[i].f.position = POS_BG; } for (i = 0; i != 25; i++) memcpy(w->videotex.attributs[i], attributs_initiaux, 40 * sizeof(struct attribut)); } /* * sauve_les_attributs_du_caractere * * Ecrit dans la matrice le caractere courant avec ses attributs en le repetant * plusieurs fois si c'est un double taille */ static void sauve_les_attributs_du_caractere(w, c0, c1) VideotexWidget w; char c0, c1; { register VideotexPart *pv = &w->videotex; register struct attribut *p; int taille = pv->taille_caractere, dont_touch; if (pv->flag_insertion && pv->rangee) scroll_droite(w, pv->colonne, 1); /* si on est en derniere colonne, on n'autorise pas la double largeur */ if (pv->colonne == 40) { if (taille == DOUBLE_LARGEUR) taille = NORMALE; else if (taille == DOUBLE_GRANDEUR) taille = DOUBLE_HAUTEUR; } /* * on fait tout de suite une mise a jour autour si on ecrase un bout de * caractere */ dont_touch = maj_si_ecrasement(w, pv->rangee, pv->colonne, pv->taille_caractere); if (!dont_touch) { if (taille == DOUBLE_LARGEUR) maj_si_ecrasement(w, pv->rangee, pv->colonne + 1, pv->taille_caractere); else if (taille == DOUBLE_HAUTEUR) maj_si_ecrasement(w, pv->rangee - 1, pv->colonne, pv->taille_caractere); else if (taille == DOUBLE_GRANDEUR) { maj_si_ecrasement(w, pv->rangee - 1, pv->colonne + 1, pv->taille_caractere); maj_si_ecrasement(w, pv->rangee - 1, pv->colonne, pv->taille_caractere); maj_si_ecrasement(w, pv->rangee, pv->colonne + 1, pv->taille_caractere); } } /* Sauve les attributs par rangee */ p = &pv->attributs[pv->rangee][pv->colonne - 1]; p->soulignement = pv->soulignement; p->couleur_fond = pv->couleur_fond; p->jeu = pv->jeu_courant; if (p->jeu == G2) p->code[0] = g0_vers_g2 (c0); /* on sauve le vrai code */ else p->code[0] = c0; if (c1) { p->code[1] = c1; p->jeu = G2; } p->inversion = pv->inversion; p->couleur_caractere = pv->couleur_caractere; p->taille_caractere = taille; p->f.delimiteur = 0; p->drcs = pv->flag_drcs; if (p->jeu == G0 && p->code[0] == ' ') p->clignotement = LETTRES_FIXES; else p->clignotement = pv->clignotement; /* Recopie des attributs en cas de double hauteur/taille */ if (taille == DOUBLE_HAUTEUR) { pv->attributs[pv->rangee - 1][pv->colonne - 1] = *p; p = &pv->attributs[pv->rangee - 1][pv->colonne - 1]; p->code[0] |= 0x80; p->f.position = POS_HG; if (pv->colonne > 1) { p->couleur_fond = (p - 1)->couleur_fond; p->soulignement = (p - 1)->soulignement; p->masquage = (p - 1)->masquage; } else { p->couleur_fond = FOND_NOIR; p->soulignement = FIN_LIGNAGE; p->masquage = DEMASQUAGE; } } else if (taille == DOUBLE_LARGEUR) { pv->attributs[pv->rangee][pv->colonne] = pv->attributs[pv->rangee][pv->colonne - 1]; pv->attributs[pv->rangee][pv->colonne].f.position = POS_BD; } else if (taille == DOUBLE_GRANDEUR) { pv->attributs[pv->rangee - 1][pv->colonne - 1] = pv->attributs[pv->rangee - 1][pv->colonne] = pv->attributs[pv->rangee][pv->colonne] = pv->attributs[pv->rangee][pv->colonne - 1]; pv->attributs[pv->rangee][pv->colonne].f.position = POS_BD; p = &pv->attributs[pv->rangee - 1][pv->colonne - 1]; p->code[0] |= 0x80; p->f.position = POS_HG; (p + 1)->code[0] |= 0x80; (p + 1)->f.position = POS_HD; if (pv->colonne > 1) { (p + 1)->couleur_fond = p->couleur_fond = (p - 1)->couleur_fond; (p + 1)->soulignement = p->soulignement = (p - 1)->soulignement; (p + 1)->masquage = p->masquage = (p - 1)->masquage; } else { (p + 1)->couleur_fond = p->couleur_fond = FOND_NOIR; (p + 1)->soulignement = p->soulignement = FIN_LIGNAGE; (p + 1)->masquage = p->masquage = DEMASQUAGE; } } } /* * Ces fonctions sont appelees si l'on ecrit sur un zone existante : * * - avec un delimiteur explicite (blanc), ce qui valide les attributs serie * - avec un semi-graphique, ce qui valide seulement la couleur de fond */ static void recopie_les_attributs_delimiteur_explicite(w, index) VideotexWidget w; char index; { register VideotexPart *pv = &w->videotex; register char i = index; /* * Si l'on ecrit sur une zone non vide avec un autre delimiteur, les * attributs serie deviennent ceux a valider */ pv->flag_quelque_chose_a_reafficher = False; /* fixe l'attribut de masquage pour toute la rangee */ fixe_attribut_de_rangee_masquage(w, pv->masquage, pv->colonne); /* * Un delimiteur explicite valide les attributs serie Tout semi-graphique * est un delimiteur pour une zone texte */ while (pv->attributs[pv->rangee][i].jeu != G1 && !pv->attributs[pv->rangee][i].f.delimiteur && i < 40) { pv->attributs[pv->rangee][i].couleur_fond = pv->couleur_fond; pv->attributs[pv->rangee][i].soulignement = pv->soulignement; if (pv->attributs[pv->rangee][i].taille_caractere == DOUBLE_LARGEUR || pv->attributs[pv->rangee][i].taille_caractere == DOUBLE_GRANDEUR) { pv->attributs[pv->rangee][i + 1].couleur_fond = pv->couleur_fond; pv->attributs[pv->rangee][i + 1].soulignement = pv->soulignement; } i += ((pv->attributs[pv->rangee][i].taille_caractere == NORMALE || pv->attributs[pv->rangee][i].taille_caractere == DOUBLE_HAUTEUR) ? 1 : 2); } if (i != index) pv->flag_quelque_chose_a_reafficher = True; /* Si la zone n'etait pas vide, specifie un delimiteur graphique */ if (i < 40 && i >= pv->colonne && pv->attributs[pv->rangee][i].jeu == G1) { pv->attributs[pv->rangee][i].f.delimiteur = DELIMITEUR_GRAPHIQUE; } } static void recopie_les_attributs_delimiteur_graphique(w, index) VideotexWidget w; char index; { register VideotexPart *pv = &w->videotex; register char i = index; /* * Si l'on ecrit sur une zone non vide avec un autre delimiteur, les * attributs serie deviennent ceux a valider */ pv->flag_quelque_chose_a_reafficher = 0; /* * Un caractere graphique est un delimiteur pour la couleur de fond */ while (pv->attributs[pv->rangee][i].jeu != G1 && !pv->attributs[pv->rangee][i].f.delimiteur && i < 40) { pv->attributs[pv->rangee][i].couleur_fond = pv->couleur_fond; pv->attributs[pv->rangee][i].soulignement = FIN_LIGNAGE; if (pv->attributs[pv->rangee][i].taille_caractere == DOUBLE_LARGEUR || pv->attributs[pv->rangee][i].taille_caractere == DOUBLE_GRANDEUR) { pv->attributs[pv->rangee][i + 1].couleur_fond = pv->couleur_fond; pv->attributs[pv->rangee][i + 1].soulignement = pv->soulignement; } i += ((pv->attributs[pv->rangee][i].taille_caractere == NORMALE || pv->attributs[pv->rangee][i].taille_caractere == DOUBLE_HAUTEUR) ? 1 : 2); } if (i != index) { pv->flag_quelque_chose_a_reafficher = 1; } } /* * Ces fonctions sont appelees si l'on ecrit sur un delimiteur : * * - explicite (blanc) * - semi-graphique */ static void recopie_les_attributs_si_ecriture_sur_delimiteur_explicite(w, index) VideotexWidget w; char index; { register VideotexPart *pv = &w->videotex; register char i = index; char cf, soul, masq; /* * Si l'on ecrit sur un delimiteur explicite, les attributs serie * deviennent immediatement ceux a gauche du delimiteur et ce jusqu'au * prochain delimiteur */ /* recopie les attributs serie de gauche jusqu'au prochain delimiteur */ cf = (index ? pv->attributs[pv->rangee][index - 1].couleur_fond : FOND_NOIR); soul = (index ? pv->attributs[pv->rangee][index - 1].soulignement : FIN_LIGNAGE); masq = (index ? pv->attributs[pv->rangee][index - 1].masquage : DEMASQUAGE); /* fixe l'attribut de masquage pour toute la rangee */ fixe_attribut_de_rangee_masquage(w, masq, index + 1); /* copie */ do { pv->attributs[pv->rangee][i].couleur_fond = cf; pv->attributs[pv->rangee][i].soulignement = soul; i += ((pv->attributs[pv->rangee][i].taille_caractere == NORMALE || pv->attributs[pv->rangee][i].taille_caractere == DOUBLE_HAUTEUR) ? 1 : 2); } while (!pv->attributs[pv->rangee][i].f.delimiteur && pv->attributs[pv->rangee][i].jeu != G1 && i < 40); /* on n'a plus de delimiteur a cet endroit */ pv->attributs[pv->rangee][index].f.delimiteur = 0; } static void recopie_les_attributs_si_ecriture_sur_delimiteur_graphique(w, index) VideotexWidget w; char index; { register VideotexPart *pv = &w->videotex; register char i = index; do { pv->attributs[pv->rangee][i].couleur_fond = pv->couleur_fond; pv->attributs[pv->rangee][i].soulignement = FIN_LIGNAGE; i += ((pv->attributs[pv->rangee][i].taille_caractere == NORMALE || pv->attributs[pv->rangee][i].taille_caractere == DOUBLE_HAUTEUR) ? 1 : 2); } while (pv->attributs[pv->rangee][i].jeu != G1 && !pv->attributs[pv->rangee][i].f.delimiteur && i < 40); /* on n'a plus de delimiteur a cet endroit */ pv->attributs[pv->rangee][index].f.delimiteur = 0; } /* * Reaffiche une zone sur laquelle on a modifie les attributs serie */ static void reaffiche_zone(w, index) VideotexWidget w; char index; { register VideotexPart *pv = &w->videotex; register char i, n; register int y_re_affichage; int x_courant_sauve; char couleur_caractere_sauve, inversion_sauve, taille_caractere_sauve, jeu_sauve; char couleur_fond_sauve, soulignement_sauve, masquage_sauve; clipping_local (w); /* * Si l'on ecrit sur un delimiteur, les attributs serie deviennent * immediatement ceux a gauche du delimiteur et ce jusqu'au prochain * delimiteur */ x_courant_sauve = pv->x_courant; pv->indice_re_affichage = 0; inversion_sauve = pv->inversion; couleur_caractere_sauve = pv->couleur_caractere; taille_caractere_sauve = pv->taille_caractere; jeu_sauve = pv->jeu_courant; soulignement_sauve = pv->soulignement; masquage_sauve = pv->masquage; couleur_fond_sauve = pv->couleur_fond; pv->x_courant = index * pv->largeur_fonte_base; /* pv->x_courant -= pv->xfs_courante->min_bounds.width; */ i = index; pv->p_attribut_re_affichage = (struct attribut *) & pv->attributs[pv->rangee][i]; /* fixe immediatement les attributs serie */ soulignement(w, pv->p_attribut_re_affichage->soulignement); couleur_fond(w, pv->p_attribut_re_affichage->couleur_fond); masquage(w, pv->p_attribut_re_affichage->masquage); pv->x_courant_re_affichage = pv->x_courant; /* copie */ do { i += (n = re_affiche_caractere(w, pv->rangee, &pv->attributs[pv->rangee][i])); pv->x_courant += n * pv->largeur_fonte_base; } while (!pv->attributs[pv->rangee][i].f.delimiteur && i < 40 && pv->attributs[pv->rangee][i].jeu != G1); /* affiche le dernier buffer si il existe */ if (pv->indice_re_affichage) { /* * Fixe les attributs d'affichage */ inversion(w, pv->p_attribut_re_affichage->inversion); couleur_caractere(w, pv->p_attribut_re_affichage->couleur_caractere); taille_caractere(w, pv->p_attribut_re_affichage->taille_caractere); selection_jeu(w, pv->p_attribut_re_affichage->jeu); /* affiche le buffer */ if (pv->p_attribut_re_affichage->code[0] & 0x80) y_re_affichage = pv->y_courant + pv->hauteur_fonte_base; else y_re_affichage = pv->y_courant; (*pv->affiche_chaine_avec_fond) (w, pv->chaine_a_re_afficher, pv->indice_re_affichage, pv->x_courant_re_affichage, y_re_affichage); pv->indice_re_affichage = 0; } pv->x_courant = x_courant_sauve; /* restaure tous les attributs */ inversion(w, inversion_sauve); taille_caractere(w, taille_caractere_sauve); soulignement(w, soulignement_sauve); selection_jeu(w, jeu_sauve); couleur_caractere(w, couleur_caractere_sauve); couleur_fond(w, couleur_fond_sauve); masquage(w, masquage_sauve); XSetClipRectangles(XtDisplay(w), pv->gc, 0, 0, pv->r_clipping_normal, 3, YXBanded); } /* * Fonctions de traitement des delimiteurs */ static void traitement_delimiteur_graphique(w) VideotexWidget w; { register VideotexPart *pv = &w->videotex; if (pv->a_valider_si_delimiteur & BIT_COULEUR_FOND) { couleur_fond(w, pv->valeur_couleur_fond); pv->a_valider_si_delimiteur &= ~BIT_COULEUR_FOND; } } static void traitement_delimiteur_explicite(w, c) VideotexWidget w; register char c; { register VideotexPart *pv = &w->videotex; register int largeur_delimiteur; register char soulignement_sauve = FIN_LIGNAGE, rs, cs; char depassement_rangee_suivante = 0; couleur_fond(w, pv->valeur_couleur_fond); soulignement(w, pv->valeur_lignage); if ((pv->a_valider_si_delimiteur & BIT_MASQUAGE) && pv->valeur_masquage == DEMASQUAGE) { masquage(w, pv->valeur_masquage); fixe_attribut_de_rangee_masquage(w, pv->valeur_masquage, pv->colonne); } if (pv->soulignement == DEBUT_LIGNAGE) { soulignement_sauve = DEBUT_LIGNAGE; soulignement(w, FIN_LIGNAGE); } rs = pv->rangee; cs = pv->colonne; /* faire les mises a jour si ecrasement de caracteres */ affiche_caractere_normal(w, c); if (pv->colonne < cs) depassement_rangee_suivante = 1; if (soulignement_sauve == DEBUT_LIGNAGE) soulignement(w, DEBUT_LIGNAGE); /* largeur du delimiteur */ largeur_delimiteur = (pv->taille_caractere == NORMALE || pv->taille_caractere == DOUBLE_HAUTEUR) ? 1 : 2; if (!depassement_rangee_suivante) { /* masquage demande : seul le blanc est un delimiteur */ if ((pv->a_valider_si_delimiteur & BIT_MASQUAGE) && pv->valeur_masquage == MASQUAGE) { masquage(w, MASQUAGE); fixe_attribut_de_rangee_masquage(w, pv->valeur_masquage, pv->colonne); } /* * Dans le cas de G0, on doit fixer l'attribut sur le caractere * suivant (dans le cas ou la sequence de definition de l'attribut * n'est suivie d'aucun affichage) */ if (pv->colonne < 40) pv->attributs[pv->rangee][pv->colonne - 1].soulignement = pv->soulignement; /* On a maintenant un delimiteur a cet endroit */ pv->attributs[pv->rangee][pv->colonne - 1 - largeur_delimiteur].f.delimiteur = DELIMITEUR_EXPLICITE; pv->attributs[pv->rangee][pv->colonne - 2].f.delimiteur = DELIMITEUR_EXPLICITE; pv->attributs[pv->rangee][pv->colonne - 1 - largeur_delimiteur].soulignement = soulignement_sauve; pv->attributs[pv->rangee][pv->colonne - 2].soulignement = soulignement_sauve; pv->attributs[pv->rangee][pv->colonne - 1 - largeur_delimiteur].f.position = POS_BG; /* * Recopie des attributs sur les cellules voisines Schemas en * fonction des indices : * * col-2 col-1 * .-----------. * |DT DH| DT | * | | | rangee-1 * |-----+-----| * |TN DL|DL DT| * |DH DT| | rangee * `-----------' * * TN=taille normale, DL=double largeur, DH=double hauteur, DT=double * taille * * Le bit 7 a 1 indique le haut d'un caractere double taille/hauteur. */ if (pv->taille_caractere == DOUBLE_HAUTEUR) { struct attribut *p = &pv->attributs[pv->rangee - 1][pv->colonne - 2]; *p = pv->attributs[pv->rangee][pv->colonne - 2]; p->code[0] = 0x20 | 0x80; p->soulignement = FIN_LIGNAGE; p->f.position = POS_HG; } else if (pv->taille_caractere == DOUBLE_LARGEUR) { pv->attributs[pv->rangee][pv->colonne - 2] = pv->attributs[pv->rangee][pv->colonne - 3]; pv->attributs[pv->rangee][pv->colonne - 2].f.position = POS_BD; } else if (pv->taille_caractere == DOUBLE_GRANDEUR) { pv->attributs[pv->rangee - 1][pv->colonne - 3] = pv->attributs[pv->rangee - 1][pv->colonne - 2] = pv->attributs[pv->rangee][pv->colonne - 2] = pv->attributs[pv->rangee][pv->colonne - 3]; pv->attributs[pv->rangee - 1][pv->colonne - 3].code[0] = 0x20 | 0x80; pv->attributs[pv->rangee - 1][pv->colonne - 2].code[0] = 0x20 | 0x80; pv->attributs[pv->rangee - 1][pv->colonne - 3].soulignement = FIN_LIGNAGE; pv->attributs[pv->rangee - 1][pv->colonne - 2].soulignement = FIN_LIGNAGE; pv->attributs[pv->rangee - 1][pv->colonne - 3].f.position = POS_HG; pv->attributs[pv->rangee - 1][pv->colonne - 2].f.position = POS_HD; pv->attributs[pv->rangee][pv->colonne - 2].f.position = POS_BD; } /* modifie la zone d'accueil */ recopie_les_attributs_delimiteur_explicite(w, pv->colonne - 1); /* reaffiche */ if (pv->flag_quelque_chose_a_reafficher == 1) { reaffiche_zone(w, pv->colonne - 1); if (pv->taille_caractere == DOUBLE_HAUTEUR || pv->taille_caractere == DOUBLE_GRANDEUR) { char sauve_taille = pv->taille_caractere; pv->rangee--; Y_COURANT recopie_les_attributs_delimiteur_explicite(w, pv->colonne - 1); reaffiche_zone(w, pv->colonne - 1); pv->rangee++; Y_COURANT if (pv->rangee == 2 && (sauve_taille == DOUBLE_HAUTEUR || sauve_taille == DOUBLE_GRANDEUR)) { taille_caractere(w, sauve_taille); selection_jeu(w, pv->jeu_courant); } } } /* * maintenant qu'on a fait le premier reaffichage on met la taille * normale au delimiteur */ pv->attributs[pv->rangee][pv->colonne - 1 - largeur_delimiteur].taille_caractere = NORMALE; pv->attributs[pv->rangee][pv->colonne - 1 - largeur_delimiteur].f.position = POS_BG; pv->attributs[pv->rangee][pv->colonne - 2].taille_caractere = NORMALE; pv->attributs[pv->rangee][pv->colonne - 2].f.position = POS_BG; if (pv->taille_caractere == DOUBLE_HAUTEUR || pv->taille_caractere == DOUBLE_GRANDEUR) { pv->attributs[pv->rangee - 1][pv->colonne - 1 - largeur_delimiteur].taille_caractere = NORMALE; pv->attributs[pv->rangee - 1][pv->colonne - 1 - largeur_delimiteur].code[0] &= 0x7f; pv->attributs[pv->rangee - 1][pv->colonne - 1 - largeur_delimiteur].f.position = POS_BG; pv->attributs[pv->rangee - 1][pv->colonne - 2].taille_caractere = NORMALE; pv->attributs[pv->rangee - 1][pv->colonne - 2].code[0] &= 0x7f; pv->attributs[pv->rangee - 1][pv->colonne - 2].f.position = POS_BG; } } else { /* On a maintenant un delimiteur a cet endroit */ pv->attributs[rs][40 - largeur_delimiteur].f.delimiteur = DELIMITEUR_EXPLICITE; pv->attributs[rs][40 - largeur_delimiteur].f.position = POS_BG; if (pv->taille_caractere == DOUBLE_HAUTEUR) { pv->attributs[rs - 1][39] = pv->attributs[rs][39]; pv->attributs[rs - 1][39].f.position = POS_HG; } else if (pv->taille_caractere == DOUBLE_LARGEUR) { pv->attributs[rs][39] = pv->attributs[rs][38]; pv->attributs[rs][39].f.position = POS_BD; } else if (pv->taille_caractere == DOUBLE_GRANDEUR) { pv->attributs[rs - 1][38] = pv->attributs[rs - 1][39] = pv->attributs[rs][39] = pv->attributs[rs][38]; pv->attributs[rs][39].f.position = POS_BD; pv->attributs[rs - 1][38].f.position = POS_HG; pv->attributs[rs - 1][38].f.position = POS_HD; } } pv->a_valider_si_delimiteur = 0; } /* * Lecture des attributs de la zone d'accueil apres deplacement */ static void selection_attributs_zone_accueil(w) VideotexWidget w; { register VideotexPart *pv = &w->videotex; if (pv->jeu_courant != G1) { /* correction FP, 17-FEB-93: la colonne etait incorrecte */ if (pv->colonne > 1) { if (pv->attributs[pv->rangee][pv->colonne - 2].jeu != G1) soulignement(w, pv->attributs[pv->rangee][pv->colonne - 2].soulignement); else soulignement(w, FIN_LIGNAGE); couleur_fond(w, pv->attributs[pv->rangee][pv->colonne - 2].couleur_fond); } else { soulignement(w, FIN_LIGNAGE); couleur_fond(w, FOND_NOIR); } } /* l'attribut de masquage est defini sur la rangee a partir du delimiteur */ if (pv->colonne > 1) masquage(w, pv->attributs[pv->rangee][pv->colonne - 2].masquage); else masquage(w, DEMASQUAGE); calcul_flag_drcs ((VideotexWidget)w); } /* * Le masquage est valide sur la rangee a partir du delimiteur de zone et * jusqu'a son annulation (ou la fin de la rangee) */ static void fixe_attribut_de_rangee_masquage(w, masquage, colonne_depart) VideotexWidget w; int masquage, colonne_depart; { register VideotexPart *pv = &w->videotex; register int i; for (i = colonne_depart - 1; i < 40; i++) { /* Modification de ecran_masque et ecran_demasque */ if (masquage == MASQUAGE && pv->attributs[pv->rangee][i].masquage == DEMASQUAGE) masque_un_caractere(w, pv->rangee, i); else if (masquage == DEMASQUAGE && pv->attributs[pv->rangee][i].masquage == MASQUAGE) demasque_un_caractere(w, pv->rangee, i); pv->attributs[pv->rangee][i].masquage = masquage; } } /* * retourne TRUE si le caractere pointe par p est un accentue (G2+accent) FP, * 22-FEB-93 */ static int accentue(p) register struct attribut *p; { register unsigned char c; c = p->code[0] & 0x7f; return (p->jeu != G2 || ((c < 65 || c > 67) && c != 72 && c != 75)) ? FALSE : TRUE; } /* * parcours toute une colonne en mettant a jour les attributs pour chaque ligne * commencant a la colonne c en se basant sur les attributs immediatement a * sa gauche. (on met a jour couleur de fond, soulignement et masquage) * retourne le numero de colonne maximum sur lequel des modifs on ete * effectuees */ static int fixe_les_attributs_d_un_bloc (w, r, c, h) VideotexWidget w; int r, c, h; { register VideotexPart *pv = &w->videotex; register struct attribut *p; char couleur_fond, soulignement, c1, flag_g1, masquage; int max_c1; if (c > 40) return 40; max_c1 = c; for (; h > 0; h--, r++) { /* prends les attributs a gauche */ if (c == 1) { couleur_fond = FOND_NOIR; soulignement = FIN_LIGNAGE; masquage = DEMASQUAGE; } else { couleur_fond = pv->attributs[r][c - 2].couleur_fond; /* * Un caractere graphique est un delimiteur pour la couleur de * fond, mais pas pour le lignage... */ flag_g1 = (pv->attributs[r][c - 2].jeu == G1); soulignement = pv->attributs[r][c - 2].soulignement; masquage = pv->attributs[r][c - 2].masquage; } /* * Parcours le reste de la ligne jusqu'au prochain graphique ou * delimiteur */ p = &pv->attributs[r][c - 1]; for (c1 = c; c1 <= 40 && p->jeu != G1 && p->f.delimiteur == 0 ; c1++, p++) { p->couleur_fond = couleur_fond; if (!flag_g1) p->soulignement = soulignement; } if (c1 > max_c1) { max_c1 = c1; } /* mise a jour du masquage pour la rangee */ fixe_attribut_de_rangee_masquage(w, masquage, c); } return max_c1 - 1; } /* * maj_si_ecrasement * * Fait une mise a jour autour de la position d'ecriture si on ecrase un bout de * caractere. Retourne 0, sauf si on ecrase la partie en bas a gauche d'une * caractere qui fait la meme taille que celui qu'on va afficher. Dans ce cas * ca ne sert a rien de bricoler la zone autour. * */ static int maj_si_ecrasement(w, r, c, taille) VideotexWidget w; int r, c, taille; { register VideotexPart *pv = &w->videotex; register struct attribut *p; char t; if (r < 1 || r > 24 || c < 1 || c > 40) return 0; p = &pv->attributs[r][c - 1]; t = p->taille_caractere; switch (p->f.position) { case POS_HD: /* haut a droite: double grandeur */ p--; p->taille_caractere = NORMALE; p->code[0] &= 0x7f; p->f.position = POS_BG; p = &pv->attributs[r + 1][c - 2]; p->taille_caractere = NORMALE; p->code[0] &= 0x7f; p->f.position = POS_BG; p++; p->taille_caractere = NORMALE; p->code[0] &= 0x7f; p->f.position = POS_BG; break; case POS_HG: /* haut a gauche: double hauteur ou double * grandeur */ if (t == DOUBLE_GRANDEUR) { p++; p->taille_caractere = NORMALE; p->code[0] &= 0x7f; p->f.position = POS_BG; } p = &pv->attributs[r + 1][c - 1]; p->taille_caractere = NORMALE; p->code[0] &= 0x7f; p->f.position = POS_BG; if (t == DOUBLE_GRANDEUR) { p++; p->taille_caractere = NORMALE; p->code[0] &= 0x7f; p->f.position = POS_BG; } break; case POS_BD: /* bas a droite: double largeur ou double * grandeur */ p--; p->taille_caractere = NORMALE; p->code[0] &= 0x7f; p->f.position = POS_BG; if (t == DOUBLE_GRANDEUR) { p = &pv->attributs[r - 1][c - 2]; p->taille_caractere = NORMALE; p->code[0] &= 0x7f; p->f.position = POS_BG; p++; p->taille_caractere = NORMALE; p->code[0] &= 0x7f; p->f.position = POS_BG; } break; case POS_BG: if (t == NORMALE) break; #ifdef NOTDEF if (t == taille) return 1; /* dont_touch */ #endif if (t == DOUBLE_LARGEUR || t == DOUBLE_GRANDEUR) p++; else /* double hauteur */ p = &pv->attributs[r - 1][c - 1]; p->taille_caractere = NORMALE; p->code[0] &= 0x7f; p->f.position = POS_BG; if (t == DOUBLE_GRANDEUR) { p = &pv->attributs[r - 1][c - 1]; p->taille_caractere = NORMALE; p->code[0] &= 0x7f; p->f.position = POS_BG; p++; p->taille_caractere = NORMALE; p->code[0] &= 0x7f; p->f.position = POS_BG; } break; } return 0; } /* * fonctions de traitement du clignotement */ static void clignotement(w, c) VideotexWidget w; char c; { w->videotex.clignotement = c; } static XtTimerCallbackProc clignote(w, id) VideotexWidget w; XtIntervalId *id; { register VideotexPart *pv = &w->videotex; register int i, j, jdebut; int x1, y1; unsigned int l, h; char cc_courante, cf_courante, inversion; int reaff_curseur = FALSE; /* * On recherche dans la page les caracteres ayant l'attribut de * clignotement et non masques */ for (i = 0; i < 25; i++) { for (j = 0; j < 40;) { if (pv->attributs[i][j].clignotement == LETTRES_CLIGNOTANTES && pv->attributs[i][j].masquage != MASQUAGE) { cf_courante = pv->attributs[i][j].couleur_fond; cc_courante = pv->attributs[i][j].couleur_caractere; inversion = pv->attributs[i][j].inversion; jdebut = j; /* * On decoupe la zone clignotante par morceaux de meme * couleur de fond. * */ for (;;) { /* teste si on a ecrase le curseur clignotant */ if (i == pv->rangee && (j + 1) == pv->colonne) reaff_curseur = TRUE; /* teste si on est arrive en fin de zone */ if (++j == 40 || pv->attributs[i][j].clignotement != LETTRES_CLIGNOTANTES || (pv->attributs[i][j].inversion == POSITIF && pv->attributs[i][j].couleur_fond != cf_courante) || (pv->attributs[i][j].inversion == NEGATIF && pv->attributs[i][j].couleur_caractere != cc_courante)) break; } /* Trace la zone */ l = (j - jdebut) * pv->largeur_fonte_base; y1 = i * pv->hauteur_fonte_base; x1 = jdebut * pv->largeur_fonte_base; h = pv->hauteur_fonte_base; /* On affiche un coup le fond, un coup le caractere... */ if ((pv->flip_flop && inversion == POSITIF) || (!pv->flip_flop && inversion == NEGATIF)) XCopyArea(XtDisplay(w), pv->ecran_masquage, XtWindow(w), pv->gc, x1, y1, l, h, x1, y1); else (*pv->affiche_fond_pour_clignotement) (w, (pv->attributs[i][jdebut].inversion == POSITIF ? cf_courante - FOND_NOIR : cc_courante + 16 - FOND_NOIR), x1, y1, l, h); } else j++; } } /* enfin on flushe l'affichage */ XFlush (XtDisplay(w)); pv->flip_flop ^= 1; /* necessaire, on se demande pourquoi... */ pv->indice_couleur_caractere_precedent = -1; if (reaff_curseur == TRUE) (*pv->fonction_affichage_curseur) (w, 1); XtAppAddTimeOut(XtWidgetToApplicationContext((Widget)w), (unsigned long) 1000, (XtTimerCallbackProc) clignote, (caddr_t)w); } /* * fonctions de traitement des couleurs */ static int init_couleurs(w) /* initialisation des couleurs */ VideotexWidget w; { register VideotexPart *pv = &w->videotex; register int i, classe_visual = DirectColor; XVisualInfo xvi; int screen = DefaultScreen(XtDisplay(w)); int nplanes = DisplayPlanes(XtDisplay(w), screen); Window root = DefaultRootWindow(XtDisplay(w)); /* Couleur ou niveaux de gris ? */ if (nplanes > 1) { /* Niveaux de gris ? */ while (!XMatchVisualInfo(XtDisplay(w), screen, nplanes, classe_visual, &xvi)) classe_visual--; /* 16 niveaux */ if ((nplanes == 4 && classe_visual <= GrayScale) || w->videotex.niveaux_de_gris == True) { for (i = 0; i != 8; i++) { if (!XParseColor(XtDisplay(w), w->core.colormap, nom_niveau[i], &pv->couleurs[i])) { printf("erreur XParseColor sur %s\n", nom_niveau[i]); return (0); } if (!XAllocColor(XtDisplay(w), w->core.colormap, &pv->couleurs[i])) { printf("erreur XParseColor sur %s\n", nom_niveau[i]); return (0); } } } /* Sinon on utilise les couleurs */ else { for (i = 0; i != 8; i++) { if (!XParseColor(XtDisplay(w), w->core.colormap, nom_couleur[i], &pv->couleurs[i])) { printf("erreur XParseColor sur %s\n", nom_couleur[i]); return (0); } if (!XAllocColor(XtDisplay(w), w->core.colormap, &pv->couleurs[i])) { printf("erreur XParseColor sur %s\n", nom_couleur[i]); return (0); } } } } else { /* * monochrome => creation des pixmaps */ if (!(pv->pixmap[0] = XCreateBitmapFromData(XtDisplay(w), root, black_bits, black_width, black_height))) { erreur_videotex ("Erreur chargement pixmap black\n"); return (0); } if (!(pv->pixmap[1] = XCreateBitmapFromData(XtDisplay(w), root, unx1_bits, unx1_width, unx1_height))) { erreur_videotex ("Erreur chargement pixmap unx1\n"); return (0); } if (!(pv->pixmap[2] = XCreateBitmapFromData(XtDisplay(w), root, light_gray_bits, light_gray_width, light_gray_height))) { erreur_videotex ("Erreur chargement pixmap light_gray\n"); return (0); } if (!(pv->pixmap[3] = XCreateBitmapFromData(XtDisplay(w), root, gray3_bits, gray3_width, gray3_height))) { erreur_videotex ("Erreur chargement pixmap gray3\n"); return (0); } if (!(pv->pixmap[4] = XCreateBitmapFromData(XtDisplay(w), root, flipped_gray_bits, flipped_gray_width, flipped_gray_height))) { erreur_videotex ("Erreur chargement pixmap flipped_gray\n"); return (0); } if (!(pv->pixmap[5] = XCreateBitmapFromData(XtDisplay(w), root, gray_bits, gray_width, gray_height))) { erreur_videotex ("Erreur chargement pixmap gray\n"); return (0); } if (!(pv->pixmap[6] = XCreateBitmapFromData(XtDisplay(w), root, dimple1_bits, dimple1_width, dimple1_height))) { erreur_videotex ("Erreur chargement pixmap dimple1\n"); return (0); } if (!(pv->pixmap[7] = XCreateBitmapFromData(XtDisplay(w), root, white_bits, white_width, white_height))) { erreur_videotex ("Erreur chargement pixmap white\n"); return (0); } } return (1); } /* * fixe la couleur d'un caractere (attribut par caractere) */ static void couleur_caractere(w, couleur) VideotexWidget w; char couleur; { #ifdef DEBUG printf("\nCouleur caractere = %s\n", nom_couleur[couleur - CARACTERE_NOIR]); #endif w->videotex.couleur_caractere = couleur; } /* * fixe la couleur de fond (attribut par rangee) */ static void couleur_fond(w, couleur) VideotexWidget w; char couleur; { #ifdef DEBUG printf("\nCouleur fond = %s\n", nom_couleur[couleur - FOND_NOIR]); #endif w->videotex.couleur_fond = couleur; } /* * fonctions de traitement du curseur */ /* * Affiche le curseur uniquement si phase_curseur est a 1 ou si force est a 1 */ static void affiche_curseur(w, force) VideotexWidget w; int force; { register VideotexPart *pv = &w->videotex; register struct attribut *pt = &pv->attributs[pv->rangee][pv->colonne - 1]; unsigned long col; if ((pv->jeu_courant != G1) && (pv->phase_curseur || force == 1)) { /* calcul de la couleur du curseur */ if (DisplayPlanes(XtDisplay(w), DefaultScreen(XtDisplay(w))) > 1) { col = pv->couleurs[pt->couleur_fond - FOND_NOIR].pixel ^ pv->couleurs[pt->couleur_caractere - CARACTERE_NOIR].pixel; if (col == 0) col = pv->couleurs[0].pixel ^ pv->couleurs[7].pixel; XSetForeground(XtDisplay(w), pv->gc_curseur, col); } XGrabServer(XtDisplay(w)); XFillRectangle(XtDisplay(w), XtWindow(w), pv->gc_curseur, pv->x_courant, pv->y_courant - pv->ascent_fonte_base, pv->largeur_fonte_base, pv->hauteur_fonte_base); (*pv->fill_rectangle_sauve) (XtDisplay(w), pv->ecran_sauve, pv->gc_curseur, pv->x_courant, pv->y_courant - pv->ascent_fonte_base, pv->largeur_fonte_base, pv->hauteur_fonte_base); XUngrabServer(XtDisplay(w)); } } /* * Change la phase du curseur toutes les 1/2 secondes pour le faire clignoter */ static XtTimerCallbackProc clignote_curseur(w, id) VideotexWidget w; XtIntervalId *id; { register VideotexPart *pv = &w->videotex; (*pv->fonction_affichage_curseur) (w, 1); pv->phase_curseur ^= 1; XtAppAddTimeOut(XtWidgetToApplicationContext((Widget)w), (unsigned long) 500, (XtTimerCallbackProc) clignote_curseur, (caddr_t)w); } /* * Active ou desactive le curseur */ static void curseur_actif(w) VideotexWidget w; { w->videotex.fonction_affichage_curseur = affiche_curseur; } static void curseur_inactif(w) VideotexWidget w; { w->videotex.fonction_affichage_curseur = nulle; } /* * Efface l'ecran */ static void efface_rectangle_ecran (w, r1, c1, r2, c2) VideotexWidget w; int r1, c1, r2, c2; { register VideotexPart *pv = &w->videotex; int x, y, l, h; register int r, c; if (r1 < 0 || r1 > 24 || r2 < 0 || r2 > 24 || c1 < 1 || c1 > 40 || c2 < 1 || c2 > 40) return; affiche_indicateur_connexion(w); pv->indice_couleur_caractere_precedent = pv->indice_couleur_fond_precedent = -1; (*pv->fonction_affichage_curseur) (w, 0); x = (c1 - 1) * pv->largeur_fonte_base; y = r1 * pv->hauteur_fonte_base; l = (c2 - c1 + 1) * pv->largeur_fonte_base; h = (r2 - r1 + 1) * pv->hauteur_fonte_base; /* Efface a l'ecran... */ (*pv->fill_rectangle_sauve) (XtDisplay(w), pv->ecran_sauve, pv->gc_pixmap, x, y, l, h); XFillRectangle(XtDisplay(w), pv->ecran_masquage, pv->gc_pixmap, x, y, l, h); XFillRectangle(XtDisplay(w), pv->ecran_demasquage, pv->gc_pixmap, x, y, l, h); XClearArea(XtDisplay(w), XtWindow(w), x, y, l, h, False); (*pv->fonction_affichage_curseur) (w, 0); /* et dans les attributs */ for (r = r1 ; r <= r2 ; r++) { for (c = c1 ; c <= c2 ; c++) { memcpy ((char*)&pv->attributs[r][c-1], (char*)&attributs_initiaux[0], sizeof(struct attribut)); } } } /* * Remplissage de la ligne (Sur ^X) */ static void remplissage_ligne(w) VideotexWidget w; { register VideotexPart *pv = &w->videotex; register int i; struct attribut attr; /* prise en compte des attributs courants */ attr.code[0] = ' '; attr.code[1] = 0; attr.inversion = pv->inversion; attr.couleur_caractere = pv->couleur_caractere; attr.taille_caractere = NORMALE; attr.jeu = pv->jeu_courant; attr.clignotement = pv->clignotement; attr.drcs = pv->flag_drcs; attr.f.delimiteur = 0; attr.f.position = POS_BG; /* lecture de la couleur de fond si G1 et a valider */ if ((pv->jeu_courant == G1) && (pv->a_valider_si_delimiteur & BIT_COULEUR_FOND)) { couleur_fond(w, pv->valeur_couleur_fond); pv->a_valider_si_delimiteur &= ~BIT_COULEUR_FOND; } /* * lecture de la couleur de fond, du masquage et du soulignement a gauche * du curseur */ if (pv->jeu_courant == G0) { if (pv->colonne > 1) { attr.couleur_fond = pv->attributs[pv->rangee][pv->colonne - 2].couleur_fond; attr.soulignement = pv->attributs[pv->rangee][pv->colonne - 2].soulignement; attr.masquage = pv->attributs[pv->rangee][pv->colonne - 2].masquage; } else { attr.couleur_fond = FOND_NOIR; attr.soulignement = FIN_LIGNAGE; attr.masquage = DEMASQUAGE; } } else { attr.couleur_fond = pv->couleur_fond; attr.masquage = pv->masquage; attr.soulignement = pv->soulignement; } /* recopie les attributs sur toute la rangee et re-affiche */ for (i = pv->colonne; i <= 40; i++) memcpy(&pv->attributs[pv->rangee][i - 1], &attr, sizeof(struct attribut)); reaffiche_rectangle_ecran (w, pv->rangee, pv->colonne, pv->rangee, 40); /* Test de double hauteur */ if ((pv->taille_caractere == DOUBLE_HAUTEUR || pv->taille_caractere == DOUBLE_GRANDEUR) && pv->rangee > 1) { /* on prends la couleur de fond du caractere immediatement a gauche */ if (pv->colonne > 1) { attr.couleur_fond = pv->attributs[pv->rangee - 1][pv->colonne - 2].couleur_fond; attr.soulignement = pv->attributs[pv->rangee - 1][pv->colonne - 2].soulignement; attr.masquage = pv->attributs[pv->rangee - 1][pv->colonne - 2].masquage; } else { attr.couleur_fond = FOND_NOIR; attr.soulignement = FIN_LIGNAGE; attr.masquage = DEMASQUAGE; } /* Marque le haut du caractere double hauteur */ attr.code[0] |= 0x80; /* on remplit la rangee et on re-affiche */ for (i = pv->colonne; i <= 40; i++) memcpy(&pv->attributs[pv->rangee - 1][i - 1], &attr, sizeof(struct attribut)); reaffiche_rectangle_ecran (w, pv->rangee-1, pv->colonne, pv->rangee-1, 40); } } /* * Traitement fontes utilisees pour le decodage videotex */ /* * Selection des fontes G0, G1, ou G2 suite aux appels S1, S0, ou SS2) */ static void selection_fonte(w, f) VideotexWidget w; char f; { register VideotexPart *pv = &w->videotex; register XFontStruct *xfs_sauve = pv->xfs_courante; pv->jeu_courant = f; pv->xfs_courante = pv->fontes[12 * (pv->soulignement - FIN_LIGNAGE) + 4 * f + pv->taille_caractere - NORMALE]; if (pv->xfs_courante == xfs_sauve) return; XSetFont(XtDisplay(w), pv->gc, pv->xfs_courante->fid); XSetFont(XtDisplay(w), pv->gc_curseur, pv->xfs_courante->fid); } /* * Selection du jeu de caractere */ static void selection_jeu(w, jeu) VideotexWidget w; char jeu; { #ifdef DEBUG printf("\nSelection du jeu %d\n", jeu); #endif selection_fonte(w, jeu); } /* * fonction d'inversion */ static void inversion(w, c) VideotexWidget w; char c; { w->videotex.inversion = c; #ifdef DEBUG printf("\ninversion =\n", c); #endif } static void masquage(w, masque) VideotexWidget w; char masque; { w->videotex.masquage = masque; } /* * Fonction de demasquage du plein ecran */ static void demasquer_le_plein_ecran(w) VideotexWidget w; { register VideotexPart *pv = &w->videotex; XCopyArea(XtDisplay(w), pv->ecran_demasquage, XtWindow(w), pv->gc, 0, pv->hauteur_fonte_base, pv->largeur_ecran, pv->hauteur_ecran - pv->hauteur_fonte_base, 0, pv->hauteur_fonte_base); (*pv->copy_area_sauve) (XtDisplay(w), pv->ecran_demasquage, pv->ecran_sauve, pv->gc, 0, pv->hauteur_fonte_base, pv->largeur_ecran, pv->hauteur_ecran - pv->hauteur_fonte_base, 0, pv->hauteur_fonte_base); } static void masquer_le_plein_ecran(w) VideotexWidget w; { register VideotexPart *pv = &w->videotex; XCopyArea(XtDisplay(w), pv->ecran_masquage, XtWindow(w), pv->gc, 0, pv->hauteur_fonte_base, pv->largeur_ecran, pv->hauteur_ecran - pv->hauteur_fonte_base, 0, pv->hauteur_fonte_base); (*pv->copy_area_sauve) (XtDisplay(w), pv->ecran_masquage, pv->ecran_sauve, pv->gc, 0, pv->hauteur_fonte_base, pv->largeur_ecran, pv->hauteur_ecran - pv->hauteur_fonte_base, 0, pv->hauteur_fonte_base); } /* * Masquage/demasquage d'une rangee */ static void demasque_un_caractere(w, r, c) VideotexWidget w; char r, c; { register VideotexPart *pv = &w->videotex; int x, y, width, height, coefy, coefx; coefy = (pv->attributs[r][c - 1].taille_caractere == NORMALE || pv->attributs[r][c - 1].taille_caractere == DOUBLE_LARGEUR ? 1 : 2); coefx = (pv->attributs[r][c - 1].taille_caractere == NORMALE || pv->attributs[r][c - 1].taille_caractere == DOUBLE_HAUTEUR ? 1 : 2); x = (c - 1) * pv->largeur_fonte_base; y = (r + 1 - coefy) * pv->hauteur_fonte_base; width = pv->largeur_fonte_base * coefx; height = pv->hauteur_fonte_base * coefy; XCopyArea(XtDisplay(w), pv->ecran_demasquage, pv->ecran_masquage, pv->gc, x, y, width, height, x, y); } static void masque_un_caractere(w, r, c) VideotexWidget w; char r, c; { register VideotexPart *pv = &w->videotex; int x, y, width, height, coefy, coefx; coefy = (pv->attributs[r][c - 1].taille_caractere == NORMALE || pv->attributs[r][c - 1].taille_caractere == DOUBLE_LARGEUR ? 1 : 2); coefx = (pv->attributs[r][c - 1].taille_caractere == NORMALE || pv->attributs[r][c - 1].taille_caractere == DOUBLE_HAUTEUR ? 1 : 2); x = (c - 1) * pv->largeur_fonte_base; y = (r + 1 - coefy) * pv->hauteur_fonte_base; width = pv->largeur_fonte_base * coefx; height = pv->hauteur_fonte_base * coefy; XCopyArea(XtDisplay(w), pv->ecran_masquage, pv->ecran_demasquage, pv->gc, x, y, width, height, x, y); } /* * fonctions de scrolling haut/bas/droite/gauche */ /* Vers le haut */ static void scroll_haut(w, rangee, n) VideotexWidget w; int rangee, n; { register VideotexPart *pv = &w->videotex; register int i, y, h; y = rangee * pv->hauteur_fonte_base; h = n * pv->hauteur_fonte_base; XCopyArea(XtDisplay(w), XtWindow(w), XtWindow(w), pv->gc, 0, y + h, pv->largeur_ecran, pv->hauteur_ecran - y - h, 0, y); XClearArea(XtDisplay(w), XtWindow(w), 0, pv->hauteur_ecran - h, pv->largeur_ecran, h, False); (*pv->copy_area_sauve) (XtDisplay(w), pv->ecran_sauve, pv->ecran_sauve, pv->gc, 0, y + h, pv->largeur_ecran, pv->hauteur_ecran - y - h, 0, y); (*pv->fill_rectangle_sauve) (XtDisplay(w), pv->ecran_sauve, pv->gc_pixmap, 0, pv->hauteur_ecran - h, pv->largeur_ecran, h); XCopyArea(XtDisplay(w), pv->ecran_masquage, pv->ecran_masquage, pv->gc, 0, y + h, pv->largeur_ecran, pv->hauteur_ecran - y - h, 0, y); XFillRectangle(XtDisplay(w), pv->ecran_masquage, pv->gc_pixmap, 0, pv->hauteur_ecran - h, pv->largeur_ecran, h); XCopyArea(XtDisplay(w), pv->ecran_demasquage, pv->ecran_demasquage, pv->gc, 0, y + h, pv->largeur_ecran, pv->hauteur_ecran - y - h, 0, y); XFillRectangle(XtDisplay(w), pv->ecran_demasquage, pv->gc_pixmap, 0, pv->hauteur_ecran - h, pv->largeur_ecran, h); /* scroll des attributs */ for (i = rangee+n ; i < 25; i++) memcpy(pv->attributs[i - n], pv->attributs[i], 40 * sizeof(struct attribut)); for (i = 0 ; i != n ; i++) memcpy(pv->attributs[24-i], attributs_initiaux, 40 * sizeof(struct attribut)); } /* Vers le bas */ static void scroll_bas(w, rangee, n) VideotexWidget w; int rangee, n; { register VideotexPart *pv = &w->videotex; register int i, y, h; y = rangee * pv->hauteur_fonte_base; h = n * pv->hauteur_fonte_base; XCopyArea(XtDisplay(w), XtWindow(w), XtWindow(w), pv->gc, 0, y, pv->largeur_ecran, pv->hauteur_ecran - y, 0, y + h); XClearArea(XtDisplay(w), XtWindow(w), 0, y, pv->largeur_ecran, h, False); (*pv->copy_area_sauve) (XtDisplay(w), pv->ecran_sauve, pv->ecran_sauve, pv->gc, 0, y, pv->largeur_ecran, pv->hauteur_ecran - y, 0, y + h); (*pv->fill_rectangle_sauve) (XtDisplay(w), pv->ecran_sauve, pv->gc_pixmap, 0, y, pv->largeur_ecran, h); XCopyArea(XtDisplay(w), pv->ecran_masquage, pv->ecran_masquage, pv->gc, 0, y, pv->largeur_ecran, pv->hauteur_ecran - y, 0, y + h); XFillRectangle(XtDisplay(w), pv->ecran_masquage, pv->gc_pixmap, 0, y, pv->largeur_ecran, h); XCopyArea(XtDisplay(w), pv->ecran_demasquage, pv->ecran_demasquage, pv->gc, 0, y, pv->largeur_ecran, pv->hauteur_ecran - y, 0, y + h); XFillRectangle(XtDisplay(w), pv->ecran_demasquage, pv->gc_pixmap, 0, y, pv->largeur_ecran, h); /* scroll des attributs */ for (i = 24; i >= rangee + n ; i--) memcpy(pv->attributs[i], pv->attributs[i - n], 40 * sizeof(struct attribut)); for (i = 0 ; i != n ; i++) memcpy(pv->attributs[rangee+i], attributs_initiaux, 40 * sizeof(struct attribut)); } /* Vers la droite */ static void scroll_droite (w, colonne, n) VideotexWidget w; int colonne, n; { register VideotexPart *pv = &w->videotex; register int i; int r, x, y, wi; r = pv->rangee; x = (colonne - 1) * pv->largeur_fonte_base; y = pv->rangee * pv->hauteur_fonte_base; wi = n * pv->largeur_fonte_base; /* Scroll de la rangee ecran */ XCopyArea(XtDisplay(w), XtWindow(w), XtWindow(w), pv->gc, x, y, pv->largeur_ecran - x, pv->hauteur_fonte_base, x + wi, y); XClearArea(XtDisplay(w), XtWindow(w), x, y, wi, pv->hauteur_fonte_base, False); (*pv->copy_area_sauve) (XtDisplay(w), pv->ecran_sauve, pv->ecran_sauve, pv->gc, x, y, pv->largeur_ecran - x, pv->hauteur_fonte_base, x + wi, y); (*pv->fill_rectangle_sauve) (XtDisplay(w), pv->ecran_sauve, pv->gc_pixmap, x, y, wi, pv->hauteur_fonte_base); XCopyArea(XtDisplay(w), pv->ecran_masquage, pv->ecran_masquage, pv->gc, x, y, pv->largeur_ecran - x, pv->hauteur_fonte_base, x + wi, y); XFillRectangle(XtDisplay(w), pv->ecran_masquage, pv->gc_pixmap, x, y, wi, pv->hauteur_fonte_base); XCopyArea(XtDisplay(w), pv->ecran_demasquage, pv->ecran_demasquage, pv->gc, x, y, pv->largeur_ecran - x, pv->hauteur_fonte_base, x + wi, y); XFillRectangle(XtDisplay(w), pv->ecran_demasquage, pv->gc_pixmap, x, y, wi, pv->hauteur_fonte_base); /* Scroll des attributs */ for (i = 40 ; i >= colonne + n ; i--) memcpy ((char*)&pv->attributs[r][i-1], (char*)&pv->attributs[r][i-n-1], sizeof(struct attribut)); for (i = 0 ; i != n ; i++) memcpy ((char*)&pv->attributs[r][i], (char*)&attributs_initiaux[0], sizeof(struct attribut)); } /* Vers la gauche */ static void scroll_gauche (w, colonne, n) VideotexWidget w; int colonne, n; { register VideotexPart *pv = &w->videotex; register int i; int r, x, y, wi; r = pv->rangee; x = (colonne - 1) * pv->largeur_fonte_base; y = pv->rangee * pv->hauteur_fonte_base; wi = n * pv->largeur_fonte_base; /* Scroll de la rangee ecran */ XCopyArea(XtDisplay(w), XtWindow(w), XtWindow(w), pv->gc, x + wi, y, pv->largeur_ecran - x - wi, pv->hauteur_fonte_base, x, y); XClearArea(XtDisplay(w), XtWindow(w), pv->largeur_ecran - wi, y, wi, pv->hauteur_fonte_base, False); (*pv->copy_area_sauve) (XtDisplay(w), pv->ecran_sauve, pv->ecran_sauve, pv->gc, x + wi, y, pv->largeur_ecran - x - wi, pv->hauteur_fonte_base, x, y); (*pv->fill_rectangle_sauve) (XtDisplay(w), pv->ecran_sauve, pv->gc_pixmap, pv->largeur_ecran - wi, y, wi, pv->hauteur_fonte_base); XCopyArea(XtDisplay(w), pv->ecran_masquage, pv->ecran_masquage, pv->gc, x + wi, y, pv->largeur_ecran - x - wi, pv->hauteur_fonte_base, x, y); XFillRectangle(XtDisplay(w), pv->ecran_masquage, pv->gc_pixmap, pv->largeur_ecran - wi, y, wi, pv->hauteur_fonte_base); XCopyArea(XtDisplay(w), pv->ecran_demasquage, pv->ecran_demasquage, pv->gc, x + wi, y, pv->largeur_ecran - x - wi, pv->hauteur_fonte_base, x, y); XFillRectangle(XtDisplay(w), pv->ecran_demasquage, pv->gc_pixmap, pv->largeur_ecran - wi, y, wi, pv->hauteur_fonte_base); /* Scroll des attributs */ for (i = colonne + n ; i <= 40 ; i++) memcpy ((char*)&pv->attributs[r][i-n-1], (char*)&pv->attributs[r][i-1], sizeof(struct attribut)); for (i = 0 ; i != n ; i++) memcpy ((char*)&pv->attributs[r][39-i], (char*)&attributs_initiaux[0], sizeof(struct attribut)); } /* * fonction de sonnerie */ static void sonnerie(w) VideotexWidget w; { XBell(XtDisplay(w), 0); } static void soulignement(w, lignage) VideotexWidget w; char lignage; { register VideotexPart *pv = &w->videotex; #ifdef DEBUG printf("\nsoulignement = %d\n", lignage); #endif if (pv->soulignement == lignage) return; pv->soulignement = lignage; selection_fonte(w, pv->jeu_courant); } /* * change la taille des caracteres */ static void taille_caractere(w, taille) VideotexWidget w; char taille; { register VideotexPart *pv = &w->videotex; if (pv->taille_caractere == taille) return; if ((taille == DOUBLE_HAUTEUR || taille == DOUBLE_GRANDEUR) && pv->rangee <= 1) return; pv->taille_caractere = taille; selection_fonte(w, pv->jeu_courant); switch (taille) { case DOUBLE_LARGEUR: pv->largeur_caractere = 2; break; case DOUBLE_HAUTEUR: pv->hauteur_caractere = 2; break; case DOUBLE_GRANDEUR: pv->hauteur_caractere = pv->largeur_caractere = 2; break; default: pv->largeur_caractere = pv->hauteur_caractere = 1; break; } } /* sauvegarde avant rangee 0 */ static void sauve_avant_rangee_0(w) VideotexWidget w; { register VideotexPart *pv = &w->videotex; pv->derniere_rangee_avant_0 = pv->rangee; pv->derniere_colonne_avant_0 = pv->colonne; pv->inversion_avant_0 = pv->inversion; pv->couleur_caractere_avant_0 = pv->couleur_caractere; pv->taille_caractere_avant_0 = pv->taille_caractere; pv->jeu_avant_0 = pv->jeu_courant; /* Acces en rangee 0 ==> RAZ des flags G'1 dans G0 et G'10 */ pv->flag_GP1_dans_G0 = pv->flag_GP10_dans_G1 = pv->flag_drcs = False; } /* * Fonctions de deplacement par rangee, colonne : utilisees par LF, VT, BS, * HT * * L'ecriture d'un caractere apres deplacement se fait avec les attributs serie * de la zone d'accueil jusqu'a ce qu'un delimiteur explicite (blanc ou * semi-graphique) permette la validation des attributs serie (couleur_fond, * lignage, masquage). * */ static void rangee_suivante(w) VideotexWidget w; { register VideotexPart *pv = &w->videotex; if (pv->rangee != 0) { pv->rangee++; if (pv->rangee > 24) { if (!pv->mode_scroll) { pv->rangee = 1; if (pv->hauteur_caractere > 1) taille_caractere(w, NORMALE); } else { scroll_haut(w, 1, 1); if (pv->hauteur_caractere > 1) scroll_haut(w, 1, 1); pv->rangee = 24; } } } else { /* * On est en rangee 0 ==> on restitue la derniere position avant la * rangee 0 * * restitue la position et les attributs caractere */ pv->rangee = pv->derniere_rangee_avant_0; pv->colonne = pv->derniere_colonne_avant_0; couleur_caractere(w, pv->couleur_caractere_avant_0); inversion(w, pv->inversion_avant_0); taille_caractere(w, pv->taille_caractere_avant_0); selection_jeu(w, pv->jeu_avant_0); X_COURANT; } selection_attributs_zone_accueil(w); Y_COURANT; } static void colonne_suivante(w) VideotexWidget w; { register VideotexPart *pv = &w->videotex; pv->colonne++; if (pv->colonne > 40) { pv->colonne = pv->largeur_caractere; rangee_suivante(w); } selection_attributs_zone_accueil(w); X_COURANT; } static void rangee_precedente(w) VideotexWidget w; { register VideotexPart *pv = &w->videotex; pv->rangee--; if (pv->rangee < 1) { if (!pv->mode_scroll) pv->rangee = 25 - pv->hauteur_caractere; else { scroll_bas(w, 1, 1); pv->rangee = 1; } } selection_attributs_zone_accueil(w); Y_COURANT; } static void colonne_precedente(w) VideotexWidget w; { register VideotexPart *pv = &w->videotex; pv->colonne--; if (pv->colonne < 1) { pv->colonne = 41 - pv->largeur_caractere; rangee_precedente(w); } selection_attributs_zone_accueil(w); X_COURANT; } /* * fixe les attributs caractere par defaut : - couleur caractere = blanc - * pas d'inversion - taille caractere = normale - fonte G0 */ static void attributs_caractere_par_defaut(w) VideotexWidget w; { inversion(w, POSITIF); couleur_caractere(w, CARACTERE_BLANC); taille_caractere(w, NORMALE); clignotement(w, LETTRES_FIXES); selection_jeu(w, G0); } /* * fixe les attributs serie (rangee) par defaut : - couleur fond = noir * pas de masquage, pas de soulignement */ static void attributs_serie_par_defaut(w) VideotexWidget w; { register VideotexPart *pv = &w->videotex; couleur_fond(w, FOND_NOIR); soulignement(w, FIN_LIGNAGE); masquage(w, DEMASQUAGE); pv->valeur_couleur_fond = FOND_NOIR; pv->valeur_lignage = FIN_LIGNAGE; pv->valeur_masquage = DEMASQUAGE; } /* * Traitement CSI */ static int atoni(str, n) char *str; int n; { char buf[10]; if (!n) return (1); n = n > 9 ? 9 : n; (void)strncpy (buf, str, n); buf[n] = 0; return (atoi(buf)); } /* positionnement CSI */ static void csi_positionnement (w, r, c) VideotexWidget w; int r, c; { register VideotexPart *pv = &w->videotex; (*pv->fonction_affichage_curseur) (w, 0); if (r > 25) r = 25; if (r < 1) r = 1; if (c > 40) c = 40; if (c < 1) c = 1; pv->rangee = r; pv->colonne = c; X_COURANT; Y_COURANT; (*pv->fonction_affichage_curseur) (w, 0); } /* Insertion/suppression CSI */ static void csi_insertion_caractere (w, n) VideotexWidget w; int n; { register VideotexPart *pv = &w->videotex; n = (n > 40 - pv->colonne ? 40 - pv->colonne : n); scroll_droite (w, pv->colonne, n); } static void csi_insertion_rangee (w, n) VideotexWidget w; int n; { register VideotexPart *pv = &w->videotex; n = (n > 24 - pv->rangee ? 24 - pv->rangee : n); scroll_bas (w, pv->rangee, n); } static void csi_suppression_caractere (w, n) VideotexWidget w; int n; { register VideotexPart *pv = &w->videotex; n = (n > 40 - pv->colonne ? 40 - pv->colonne : n); scroll_gauche (w, pv->colonne, n); } static void csi_suppression_rangee (w, n) VideotexWidget w; int n; { register VideotexPart *pv = &w->videotex; n = (n > 24 - pv->rangee ? 24 - pv->rangee : n); scroll_haut (w, pv->rangee, n); } /* Traite les positionnement + de debut/fin d'insertion */ static void traite_csi (w) VideotexWidget w; { register VideotexPart *pv = &w->videotex; register int l = pv->nb_csi; register char *csi = pv->buffer_csi, *p; switch (*(csi+l-1)) { case 'h' : /* Debut insertion */ pv->flag_insertion = True; break; case 'l' : /* Fin insertion */ pv->flag_insertion = False; break; case 'A' : /* Vers le haut */ csi_positionnement (w, pv->rangee - atoni (csi, l-1), pv->colonne); break; case 'B' : /* Vers le bas */ csi_positionnement (w, pv->rangee + atoni (csi, l-1), pv->colonne); break; case 'C' : /* vers droite */ csi_positionnement (w, pv->rangee, pv->colonne + atoni (csi, l-1)); break; case 'D' : /* vers gauche */ csi_positionnement (w, pv->rangee, pv->colonne - atoni (csi, l-1)); break; case 'H' : /* Positionnement absolu */ p = strchr (csi, ';'); if (p) { *p = 0; csi_positionnement (w, atoi (csi), atoni (p+1, csi-p+l-2)); } break; /* * Insertion/suppression */ case '@' : /* Insertion de caractere */ if (pv->flag_insertion && pv->rangee) csi_insertion_caractere (w, atoni (csi, l-1)); break; case 'P' : /* Suppression de caractere */ if (pv->flag_insertion && pv->rangee) csi_suppression_caractere (w, atoni (csi, l-1)); break; case 'L' : /* Insertion de rangee */ if (pv->flag_insertion && pv->rangee) csi_insertion_rangee (w, atoni (csi, l-1)); break; case 'M' : /* Suppression de rangee */ if (pv->flag_insertion && pv->rangee) csi_suppression_rangee (w, atoni (csi, l-1)); break; /* * Effacement sur ecran */ case 'J' : switch (*csi) { case 'J' : case '0' : /* Effacement depuis le curseur --> fin ecran */ efface_rectangle_ecran (w, pv->rangee, pv->colonne, pv->rangee, 40); efface_rectangle_ecran (w, pv->rangee+1, 1, 24, 40); break; case '1' : /* Effacement depuis le debut ecran --> curseur */ efface_rectangle_ecran (w, 1, 1, pv->rangee-1, 40); efface_rectangle_ecran (w, pv->rangee, 1, pv->rangee, pv->colonne); break; case '2' : /* Effacement de tout l'ecran */ efface_rectangle_ecran (w, 1, 1, 24, 40); break; default : break; } break; /* * Effacement sur rangee */ case 'K' : switch (*csi) { case 'K' : case '0' : /* Effacement depuis le curseur --> fin rangee */ efface_rectangle_ecran (w, pv->rangee, pv->colonne, pv->rangee, 40); break; case '1' : /* Effacement depuis le debut --> curseur */ efface_rectangle_ecran (w, pv->rangee, 1, pv->rangee, pv->colonne); break; case '2' : /* Effacement de toute la rangee */ efface_rectangle_ecran (w, pv->rangee, 1, pv->rangee, 40); break; default : break; } break; default : /* Non traite */ break; } /* RAZ du buffer CSI */ memset (csi, 0, 10); pv->nb_csi = 0; } /* * Methodes du Widget */ static void Initialize(greq, gnew, args, num_args) Widget greq, gnew; ArgList args; Cardinal *num_args; { register int i; XWindowAttributes attrib; VideotexWidget w = (VideotexWidget) gnew; register VideotexPart *pv = &w->videotex; int nplanes = DisplayPlanes(XtDisplay(w), DefaultScreen(XtDisplay(w))); XGCValues values; unsigned long r, g, b; Visual *visual = DefaultVisual (XtDisplay(w), DefaultScreen(XtDisplay(w))); /* * Chargement des fontes */ if (pv->petite_fonte) { if (pv->fonte_g0_no_p->max_bounds.width != 8) erreur_videotex ("Warning: largeur petite fonte = %d (8 conseille)\n", pv->fonte_g0_no_p->max_bounds.width); if (pv->fonte_g0_no_p->ascent+pv->fonte_g0_no_p->descent != 10) erreur_videotex ("Warning: hauteur petite fonte = %d (10 conseille)\n", pv->fonte_g0_no_p->ascent+pv->fonte_g0_no_p->descent); pv->fontes[0] = pv->fonte_g0_no_p; pv->fontes[1] = pv->fonte_g0_dh_p; pv->fontes[2] = pv->fonte_g0_dl_p; pv->fontes[3] = pv->fonte_g0_dt_p; pv->fontes[4] = pv->fonte_g1_p; pv->fontes[12] = pv->fonte_g0_nos_p; pv->fontes[13] = pv->fonte_g0_dhs_p; pv->fontes[14] = pv->fonte_g0_dls_p; pv->fontes[15] = pv->fonte_g0_dts_p; pv->fontes[16] = pv->fonte_g1s_p; } else { if (pv->fonte_g0_no_g->max_bounds.width != 16) erreur_videotex ("Warning: largeur grande fonte = %d (16 conseille)\n", pv->fonte_g0_no_p->max_bounds.width); if (pv->fonte_g0_no_g->ascent+pv->fonte_g0_no_g->descent != 20) erreur_videotex ("Warning: hauteur grande fonte = %d (20 conseille)\n", pv->fonte_g0_no_g->ascent+pv->fonte_g0_no_g->descent); pv->fontes[0] = pv->fonte_g0_no_g; pv->fontes[1] = pv->fonte_g0_dh_g; pv->fontes[2] = pv->fonte_g0_dl_g; pv->fontes[3] = pv->fonte_g0_dt_g; pv->fontes[4] = pv->fonte_g1_g; pv->fontes[12] = pv->fonte_g0_nos_g; pv->fontes[13] = pv->fonte_g0_dhs_g; pv->fontes[14] = pv->fonte_g0_dls_g; pv->fontes[15] = pv->fonte_g0_dts_g; pv->fontes[16] = pv->fonte_g1s_g; } for (i = 0 ; i != 24 ; i++) { if (i >= 5 && i <= 7) pv->fontes[i] = pv->fontes[4]; else if (i >= 17 && i <= 19) pv->fontes[i] = pv->fontes[16]; else if ((i >= 8 && i <= 11) || (i >= 20 && i <= 23)) pv->fontes[i] = pv->fontes[i-8]; else ; } /* Init de la structure */ pv->gc = XCreateGC (XtDisplay(gnew), RootWindowOfScreen(XtScreen(gnew)), 0, NULL); pv->rangee = 1; pv->colonne = 1; pv->couleur_caractere = CARACTERE_BLANC; pv->couleur_fond = FOND_NOIR; pv->taille_caractere = NORMALE; pv->inversion = POSITIF; pv->masquage = DEMASQUAGE; pv->soulignement = FIN_LIGNAGE; pv->clignotement = LETTRES_FIXES; pv->jeu_courant = G0; pv->largeur_caractere = 1; pv->hauteur_caractere = 1; pv->derniere_colonne_avant_0 = 1; pv->indice_couleur_caractere_precedent = -1; pv->indice_couleur_fond_precedent = -1; pv->indice_couleur_caractere = -1; pv->indice_couleur_fond = -1; pv->inversion_avant_0 = POSITIF; pv->couleur_caractere_avant_0 = CARACTERE_BLANC; pv->taille_caractere_avant_0 = NORMALE; pv->jeu_avant_0 = G0; pv->masquage_plein_ecran = True; pv->fonction_affichage_curseur = nulle; pv->hauteur_fonte_base = pv->fontes[0]->ascent + pv->fontes[0]->descent; pv->largeur_fonte_base = pv->fontes[0]->max_bounds.width; pv->descent_fonte_base = pv->fontes[0]->descent; pv->ascent_fonte_base = pv->fontes[0]->ascent; pv->largeur_ecran = pv->largeur_fonte_base * 40; pv->hauteur_ecran = pv->hauteur_fonte_base * 25; pv->flag_drcs = False; pv->filtrage = pv->pro2 = pv->pro1 = pv->plein_ecran = False; pv->phase_curseur = pv->flip_flop = 0; pv->flag_sauvegarde = False; pv->xfs_courante = NULL; pv->nb_a_ignorer = 0; pv->etat = EtatNormal; pv->mode_scroll = False; pv->mode_videotex = True; pv->flag_insertion = False; pv->nb_csi = 0; memset (pv->buffer_csi, 0, 10); /* Creation des Pixmaps */ if (!(pv->ecran_masquage = XCreatePixmap(XtDisplay(w), RootWindowOfScreen(XtScreen(w)), pv->largeur_ecran, pv->hauteur_ecran, nplanes))) { erreur_videotex ("Erreur creation pixmap ecran_masquage\n"); exit(1); } if (!(pv->ecran_demasquage = XCreatePixmap(XtDisplay(w), RootWindowOfScreen(XtScreen(w)), pv->largeur_ecran, pv->hauteur_ecran, nplanes))) { erreur_videotex ("Erreur creation pixmap pv->ecran_demasquage\n"); exit(1); } if (!(pv->ecran_sauve = XCreatePixmap(XtDisplay(w), RootWindowOfScreen(XtScreen(w)), pv->largeur_ecran, pv->hauteur_ecran, nplanes))) { erreur_videotex ("Erreur creation pixmap pv->ecran_sauve\n"); exit(1); } /* fontes G0 dans gc */ XSetFont(XtDisplay(w), pv->gc, pv->fontes[0]->fid); /* Chargement des couleurs */ if (!init_couleurs(w)) exit(1); /* GC du curseur */ values.function = GXxor; pv->gc_curseur = XtGetGC(gnew, (unsigned) GCFunction, &values); /* GC indicateur de connexion */ values.font = pv->fontes[0]->fid; pv->gc_indicateur = XtGetGC(gnew, GCFont, &values); /* GC pour la RAZ des pixmaps */ values.fill_style = FillSolid; values.foreground = pv->couleurs[0].pixel; pv->gc_pixmap = XtGetGC(gnew, GCForeground | GCFillStyle, &values); /* init des couleurs dans les GC */ if (nplanes > 1) { XSetForeground(XtDisplay(w), pv->gc, pv->couleurs[7].pixel); XSetBackground(XtDisplay(w), pv->gc, pv->couleurs[0].pixel); XSetForeground(XtDisplay(w), pv->gc_indicateur, pv->couleurs[0].pixel); XSetBackground(XtDisplay(w), pv->gc_indicateur, pv->couleurs[7].pixel); } else { XSetForeground(XtDisplay(w), pv->gc_curseur, WhitePixel(XtDisplay(w), DefaultScreen(XtDisplay(w)))); XSetForeground(XtDisplay(w), pv->gc_indicateur, BlackPixel(XtDisplay(w), DefaultScreen(XtDisplay(w)))); XSetBackground(XtDisplay(w), pv->gc_indicateur, WhitePixel(XtDisplay(w), DefaultScreen(XtDisplay(w)))); } /* Init des pixmaps */ XFillRectangle(XtDisplay(w), pv->ecran_masquage, pv->gc_pixmap, 0, 0, pv->largeur_ecran, pv->hauteur_ecran); XFillRectangle(XtDisplay(w), pv->ecran_demasquage, pv->gc_pixmap, 0, 0, pv->largeur_ecran, pv->hauteur_ecran); XFillRectangle(XtDisplay(w), pv->ecran_sauve, pv->gc_pixmap, 0, 0, pv->largeur_ecran, pv->hauteur_ecran); /* Init des attributs par rangee */ init_attributs(w); /* * Init des pointeurs de fonctions d'affichage suivant monochrome/couleur */ i = (nplanes == 1); /* Pour l'affichage en monochrome */ if (i) XSetFillStyle(XtDisplay(w), pv->gc, FillOpaqueStippled); init_fonctions_affichage(w, i); pv->affiche_fond_pour_clignotement = fonctions_affiche_fond_pour_clignotement[i]; XGetWindowAttributes(XtDisplay(w), DefaultRootWindow(XtDisplay(w)), &attrib); pv->flag_bs = (attrib.backing_store != NotUseful ? True : False); if (pv->flag_bs) { pv->draw_string_sauve = pv->draw_image_string_sauve = pv->fill_rectangle_sauve = pv->copy_area_sauve = (int (*) ()) nulle; } else { pv->draw_string_sauve = XDrawString; pv->draw_image_string_sauve = XDrawImageString; pv->fill_rectangle_sauve = XFillRectangle; pv->copy_area_sauve = XCopyArea; } /* * Fixe le clipping : il ne faut pas ecraser l'indicateur de connexion * (C/F) */ pv->r_clipping_normal[0].width = pv->largeur_ecran - 2 * pv->largeur_fonte_base; pv->r_clipping_normal[0].height = pv->hauteur_fonte_base; pv->r_clipping_normal[0].x = 0; pv->r_clipping_normal[0].y = 0; pv->r_clipping_normal[1].width = pv->largeur_fonte_base; pv->r_clipping_normal[1].height = pv->hauteur_fonte_base; pv->r_clipping_normal[1].x = pv->largeur_ecran - pv->largeur_fonte_base; pv->r_clipping_normal[1].y = 0; pv->r_clipping_normal[2].width = pv->largeur_ecran; pv->r_clipping_normal[2].height = pv->hauteur_ecran - pv->hauteur_fonte_base; pv->r_clipping_normal[2].x = 0; pv->r_clipping_normal[2].y = pv->hauteur_fonte_base; XSetClipRectangles(XtDisplay(w), pv->gc, 0, 0, pv->r_clipping_normal, 3, Unsorted); XtAppAddTimeOut(XtWidgetToApplicationContext((Widget)w), (unsigned long) 1000, (XtTimerCallbackProc)clignote, (XtPointer)w); XtAppAddTimeOut(XtWidgetToApplicationContext((Widget)w), (unsigned long) 500, (XtTimerCallbackProc)clignote_curseur, (XtPointer)w); alloc_DRCS (w); videotexInit (gnew); if (w->core.width == 0) w->core.width = pv->largeur_ecran; if (w->core.height == 0) w->core.height = pv->hauteur_ecran; w->core.background_pixel = pv->couleurs[0].pixel; /* Calcul des decalages et nombre de bits (seulement en couleur > 256) */ if (nplanes > 8) { /* Calcul des decalages */ r = pv->red_mask = visual->red_mask; g = pv->green_mask = visual->green_mask; b = pv->blue_mask = visual->blue_mask; pv->nb_bits_rouge = 0; pv->nb_bits_vert = 0; pv->nb_bits_bleu = 0; pv->decalage_rouge = 0; pv->decalage_vert = 0; pv->decalage_bleu = 0; while (!(r & 1)) { r >>= 1; pv->decalage_rouge++; } while (r & 1) { r >>= 1; pv->nb_bits_rouge++; } while (!(g & 1)) { g >>= 1; pv->decalage_vert++; } while (g & 1) { g >>= 1; pv->nb_bits_vert++; } while (!(b & 1)) { b >>= 1; pv->decalage_bleu++; } while (b & 1) { b >>= 1; pv->nb_bits_bleu++; } } pv->last_color = 0; XFlush(XtDisplay(w)); } static void Realize(gw, valueMask, attrs) Widget gw; XtValueMask *valueMask; XSetWindowAttributes *attrs; { XtCreateWindow(gw, (unsigned) InputOutput, (Visual *) CopyFromParent, *valueMask, attrs); } static void libere (p) struct position *p; { register struct position *ps; while (p) { ps = p->suivant; free (p); p = ps; } } static void Destroy(w) Widget w; { VideotexWidget vw = (VideotexWidget)w; register VideotexPart *pv = &vw->videotex; register int i; XFreeGC (XtDisplay(w), pv->gc); XtReleaseGC(w, pv->gc_curseur); XtReleaseGC(w, pv->gc_indicateur); XtReleaseGC(w, pv->gc_pixmap); XFreePixmap(XtDisplay(w), pv->ecran_masquage); XFreePixmap(XtDisplay(w), pv->ecran_demasquage); XFreePixmap(XtDisplay(w), pv->ecran_sauve); free (pv->bits_bitmap); for (i = 0 ; i != 94 ; i++) { free (pv->jeu_GP1[i]); free (pv->jeu_GP10[i]); libere (pv->affichage_GP1[i]); libere (pv->affichage_GP10[i]); } } static void Redisplay(w, pevent, region) Widget w; XEvent *pevent; Region region; { VideotexWidget vw = (VideotexWidget) w; register VideotexPart *pv = &vw->videotex; if (pv->flag_bs) { XCopyArea(XtDisplay(w), pv->ecran_sauve, XtWindow(w), pv->gc, 0, 0, pv->largeur_ecran, pv->hauteur_ecran, 0, 0); } else { XCopyArea(XtDisplay(w), pv->ecran_sauve, XtWindow(w), pv->gc, pevent->xexpose.x, pevent->xexpose.y, pevent->xexpose.width, pevent->xexpose.height, pevent->xexpose.x, pevent->xexpose.y); } XDrawImageString(XtDisplay(w), XtWindow(w), pv->gc_indicateur, pv->largeur_ecran - 2 * pv->largeur_fonte_base, pv->ascent_fonte_base, (vw->videotex.connecte ? "C" : "F"), 1); } static void Resize(gw) Widget gw; {} /* ARGSUSED */ static Boolean SetValues(current, request, new, args, num_args) Widget current, request, new; ArgList args; Cardinal *num_args; { register int i; Boolean redisplay = False; VideotexWidget cvw = (VideotexWidget)current; VideotexWidget nvw = (VideotexWidget)new; for (i = 0 ; i < *num_args ; i++) { if (strcmp (args[i].name, XtNconnecte) == 0) { /* Demande de deconnexion if (cvw->videotex.connecte && !nvw->videotex.connecte && cvw->videotex.commande_deconnexion && cvw->videotex.fd_connexion > 0) write(cvw->videotex.fd_connexion, cvw->videotex.commande_deconnexion, strlen(cvw->videotex.commande_deconnexion));*/ /* Modification de l'etat connecte/deconnecte */ if (cvw->videotex.connecte != nvw->videotex.connecte) { affiche_indicateur_connexion (nvw); if (!cvw->videotex.connecte && nvw->videotex.connecte) { // write(cvw->videotex.fd_connexion, "\x13\x53", 2); } } redisplay = True; } else if (strcmp (args[i].name, XtNfdConnexion) || strcmp (args[i].name, XtNfdConnexion)) { redisplay = True; } } return (redisplay); } /* * Fonctions publiques */ /* * fonction d'init */ void videotexInit (w) Widget w; { VideotexWidget vw = (VideotexWidget) w; register VideotexPart *pv = &vw->videotex; register int i; pv->rangee = 1; pv->colonne = 1; X_COURANT Y_COURANT pv->largeur_caractere = pv->hauteur_caractere = 1; pv->derniere_rangee_avant_0 = 1; pv->derniere_colonne_avant_0 = 1; pv->indice_couleur_caractere_precedent = pv->indice_couleur_fond_precedent = -1; /* charge les attributs par defaut */ attributs_caractere_par_defaut(vw); attributs_serie_par_defaut(vw); /* * On re-initialise le tableau des attributs par rangee */ for (i = 0; i != 25; i++) memcpy(pv->attributs[i], attributs_initiaux, 40 * sizeof(struct attribut)); init_DRCS (vw); #ifndef NO_TVR init_tvr (vw); #endif } /* * Fonction de decodage */ void videotexDecode(w, car) Widget w; char car; { register int i; int nr, nc; VideotexWidget vw = (VideotexWidget) w; register VideotexPart *pv = &vw->videotex; Boolean fin; unsigned char c = (unsigned char)car; do { fin = True; if (c == NUL) return; if (pv->nb_a_ignorer) { pv->nb_a_ignorer--; return; } pv->flag_sauvegarde = True; /* * Maintenant on traite le caractere recu */ switch (pv->etat) { /* * Pas de caracteres de controle en cours... */ case EtatNormal: if (c < ' ') { /* * Caractere de controle */ switch (c) { /* * Positionnement: - separateur de sous articles - * initialisation/interruption d'un chargement de fonte * DRCS */ case US: init_US(vw); break; case ESC: /* echappement */ pv->etat = EtatESC; /* a priori, on attend un seul caractere... */ pv->a_recevoir = 1; break; case SO: /* hors code : selection G1 */ /* * Le passage hors-code invalide le soulignement la * couleur de fond devient la derniere couleur de fond * validee par un delimiteur, le masquage est conserve. * * Les attributs de taille et d'inversion ne sont pas * utilisable en mode semi-graphiques, et seront annules * lors du retour en code => dans notre cas, on les * annule des maintenant */ (*pv->fonction_affichage_curseur) (w, 0); soulignement(vw, FIN_LIGNAGE); couleur_fond(vw, pv->valeur_couleur_fond); pv->valeur_lignage = FIN_LIGNAGE; pv->a_valider_si_delimiteur &= ~(BIT_LIGNAGE | BIT_COULEUR_FOND); inversion(vw, POSITIF); taille_caractere(vw, NORMALE); /* on plus de caractere de G2 a repeter */ pv->flag_G2 = False; /* selectionne la fonte G1 */ selection_jeu(vw, G1); calcul_flag_drcs((VideotexWidget)w); /* * Si on vient de remettre a zero les attributs serie * (par US), le prochain caractere de G1 sera un * delimiteur */ (*pv->fonction_affichage_curseur) (w, 0); break; case SI: /* en code : selection G0 */ /* * Le retour en code invalide l'inversion et fixe la * taille normale Invalide egalement le lignage. */ pv->valeur_lignage = FIN_LIGNAGE; pv->a_valider_si_delimiteur &= ~BIT_LIGNAGE; soulignement(vw, FIN_LIGNAGE); inversion(vw, POSITIF); taille_caractere(vw, NORMALE); selection_jeu(vw, G0); calcul_flag_drcs(vw); selection_attributs_zone_accueil(vw); (*pv->fonction_affichage_curseur) (w, 0); break; case REP: /* repetition du dernier caractere imprimable */ pv->etat = EtatREP; (*pv->fonction_affichage_curseur) (w, 0); break; case SYN: /* semble etre plus souvent utilise que * SS2... */ case SS2: /* appel G2 */ /* * on utilise G2 seulement a partir de G0 sauf en mode * DRCS */ if (pv->jeu_courant == G0 || pv->flag_drcs) { if (!pv->flag_drcs) { /* Le caractere a repeter fait partie de G2 */ pv->flag_G2 = True; selection_jeu(vw, G2); } (*pv->fonction_affichage_curseur) (w, 0); pv->etat = EtatSS2; pv->a_recevoir = 2; } break; case CR: /* retour chariot */ (*pv->fonction_affichage_curseur) (w, 0); pv->colonne = 1; selection_attributs_zone_accueil(vw); X_COURANT; (*pv->fonction_affichage_curseur) (w, 0); break; /* * RS et FF sont les separateurs explicites d'articles */ case RS: /* retour curseur en 1, 1 */ case FF: /* idem + effacement d'ecran */ (*pv->fonction_affichage_curseur) (w, 0); pv->rangee = pv->derniere_rangee_avant_0 = 1; pv->colonne = pv->derniere_colonne_avant_0 = 1; pv->largeur_caractere = pv->hauteur_caractere = 1; X_COURANT; Y_COURANT; (*pv->fonction_affichage_curseur) (w, 0); pv->a_valider_si_delimiteur = 0; pv->valeur_couleur_fond = FOND_NOIR; pv->valeur_lignage = FIN_LIGNAGE; pv->valeur_masquage = DEMASQUAGE; attributs_caractere_par_defaut(vw); couleur_fond(vw, FOND_NOIR); soulignement(vw, FIN_LIGNAGE); masquage(vw, DEMASQUAGE); /* Si FF, efface l'ecran */ if (c == FF) { efface_rectangle_ecran (vw, 1, 1, 24, 40); #ifndef NO_TVR libere_couleurs_tvr (vw); #endif } pv->flag_GP1_dans_G0 = pv->flag_GP10_dans_G1 = pv->flag_drcs = False; pv->flag_insertion = False; /* A verifier */ break; /* * Codes de positionnement curseur : LF, HT, VT, BS */ case LF: /* interligne */ (*pv->fonction_affichage_curseur) (w, 0); rangee_suivante(vw); (*pv->fonction_affichage_curseur) (w, 0); break; case HT: /* tabulation horizontale */ (*pv->fonction_affichage_curseur) (w, 0); colonne_suivante(vw); (*pv->fonction_affichage_curseur) (w, 0); break; case VT: /* tabulation verticale */ if (pv->rangee != 0) { (*pv->fonction_affichage_curseur) (w, 0); rangee_precedente(vw); (*pv->fonction_affichage_curseur) (w, 0); } break; case BS: /* retour arriere */ (*pv->fonction_affichage_curseur) (w, 0); colonne_precedente(vw); (*pv->fonction_affichage_curseur) (w, 0); break; case SEP: /* separateur de code */ pv->etat = EtatSEP; break; case CAN: /* annulation de la ligne */ remplissage_ligne(vw); break; case DC1: /* XON : curseur actif */ if (pv->fonction_affichage_curseur == (void (*) ()) nulle) { curseur_actif(vw); (*pv->fonction_affichage_curseur) (w, 0); } break; case DC4: /* XOFF : curseur inactif */ if (pv->fonction_affichage_curseur != (void (*) ()) nulle) { (*pv->fonction_affichage_curseur) (w, 0); curseur_inactif(vw); } break; case BEL: sonnerie(vw); break; default: break; } } else { /* * Caractere Imprimable */ if (pv->rangee <= 1 && pv->taille_caractere != NORMALE) { if (pv->taille_caractere == DOUBLE_HAUTEUR) taille_caractere(vw, NORMALE); else if (pv->taille_caractere == DOUBLE_GRANDEUR) taille_caractere(vw, DOUBLE_LARGEUR); } /* le caractere a repeter ne sera plus de la fonte G2 */ pv->flag_G2 = False; pv->caractere_sauve = c; /* * On teste si on ecrase un double taille (double largeur, * double hauteur). si oui, on transforme les autres * caracteres de ce double taille en espaces de la couleur * d'encre courante, non inverses */ #ifdef NOTDEF p = &pv->attributs[pv->rangee][pv->colonne - 1]; if (p->taille_caractere != NORMALE) { } #endif /* * Le blanc (delimiteur explicite) permet de valider les * attributs serie : * * - couleur de fond - lignage - masquage * */ if (c == ' ' && pv->a_valider_si_delimiteur) { (*pv->fonction_affichage_curseur) (w, 0); traitement_delimiteur_explicite(vw, c); (*pv->fonction_affichage_curseur) (w, 0); } else if (pv->jeu_courant == G1) { (*pv->fonction_affichage_curseur) (w, 0); traitement_delimiteur_graphique(vw); affiche_caractere_normal(vw, c); /* colonne est au caractere suivant */ i = fixe_les_attributs_d_un_bloc(vw, pv->rangee, pv->colonne, 1); if (i >= pv->colonne) reaffiche_rectangle_ecran(vw, pv->rangee, pv->colonne, pv->rangee, i); (*pv->fonction_affichage_curseur) (w, 0); } else { (*pv->fonction_affichage_curseur) (w, 0); selection_attributs_zone_accueil(vw); sauve_les_attributs_du_caractere(vw, c, 0); i = fixe_les_attributs_d_un_bloc(vw, pv->rangee, pv->colonne + 1, 1); reaffiche_rectangle_ecran(vw, pv->rangee, pv->colonne, pv->rangee, i); if (pv->taille_caractere == DOUBLE_HAUTEUR || pv->taille_caractere == DOUBLE_GRANDEUR) { i = fixe_les_attributs_d_un_bloc(vw, pv->rangee - 1, pv->colonne + 1, 1); reaffiche_rectangle_ecran(vw, pv->rangee - 1, pv->colonne, pv->rangee - 1, i); } caractere_suivant(vw); (*pv->fonction_affichage_curseur) (w, 0); } } break; /* * Positionnement en cours ou init d'un chargement de fonte DRCS */ case EtatUS: /* Reception ligne */ if (pv->a_recevoir == 2) { pv->erreur_US = 0; if (c >= 64 && c <= (64 + 24)) { /* positionnement absolu */ if (c == 64 && pv->rangee != 0) { /* on va en pv->rangee 0 ==> sauve */ sauve_avant_rangee_0(vw); } pv->rangee = c - 64; } else if (c >= '0' && c <= '9') { /* positionnement * relatif */ if (c == '0' && pv->rangee != 0) { /* on va en rangee 0 ==> sauve */ sauve_avant_rangee_0(vw); } pv->rangee = c - '0'; /* * En-tete chargement DRCS ou chargement de formes DRCS */ } else if (c == 0x23) { /* # ==> detection de l'en-tete */ pv->etat = EtatDetectionEnTeteDRCS; } else { pv->rangee = c - 64; pv->erreur_US = 1; } pv->a_recevoir--; } else { /* reception de la colonne */ /* en cas d'erreur ==> filtre */ if (c > 64 && c <= (64 + 40)) /* positionnement absolu */ pv->colonne = c - 64; else if (c >= '0' && c <= '9') { /* positionnement * relatif */ pv->rangee = pv->rangee * 10 + c - '0'; pv->colonne = 1; } else pv->erreur_US = 2; /* en cas d'erreur on n'accepte pas le positionnement */ if (pv->erreur_US) { pv->rangee = pv->rangee_sauve; pv->colonne = pv->colonne_sauve; pv->etat = EtatNormal; break; } /* * on n'enleve le curseur que maintenant pour eviter les * problemes */ nr = pv->rangee; nc = pv->colonne; pv->rangee = pv->rangee_sauve; pv->colonne = pv->colonne_sauve; (*pv->fonction_affichage_curseur) (w, 0); pv->rangee = nr; pv->colonne = nc; X_COURANT; Y_COURANT; /* * US initialise les attributs par caractere */ attributs_caractere_par_defaut(vw); pv->a_valider_si_delimiteur = 0; pv->valeur_couleur_fond = FOND_NOIR; pv->valeur_lignage = FIN_LIGNAGE; pv->valeur_masquage = DEMASQUAGE; selection_attributs_zone_accueil(vw); (*pv->fonction_affichage_curseur) (w, 0); pv->etat = EtatNormal; } break; case EtatESC: /* ESC en cours */ if (pv->filtrage) { // printf ("Filtrage 0x%02x %c (%d)\n", c, c, pv->a_recevoir); pv->a_recevoir--; } /* ISO-2022: Attente fin (c != 0x2x) */ else if (pv->iso2022) { // printf ("ISO-2022: 0x%02x %c\n", c, c); if ((c & 0x70) != 0x20) { /* OK */ pv->a_recevoir = 0; pv->iso2022 = False; } } else if (pv->plein_ecran) { if (pv->a_recevoir == 1) { if (c == 0x58) { /* masquage plein ecran (etat initial * du MINITEL) */ pv->masquage_plein_ecran = True; /* masquer le plein ecran */ masquer_le_plein_ecran(vw); } else if (c == 0x5f) { /* demasquage plein ecran */ pv->masquage_plein_ecran = False; /* Demasquer ... */ demasquer_le_plein_ecran(vw); } pv->plein_ecran = 0; } pv->a_recevoir--; } else if (pv->pro1) { switch (c) { case 0x7b: /* type Minitel: ENQROM */ /* * Type Minitel emule (Minitel 2 ou Minitel TVR) */ if (vw->videotex.connecte && vw->videotex.fd_connexion > 0 && vw->videotex.enqrom) { write(vw->videotex.fd_connexion, "\001", 1); write(vw->videotex.fd_connexion, vw->videotex.enqrom, strlen(vw->videotex.enqrom)); write(vw->videotex.fd_connexion, "\004", 1); } break; case 0x67: /* deconnexion MODEM */ if (vw->videotex.connecte && vw->videotex.commande_deconnexion) write(vw->videotex.fd_connexion, vw->videotex.commande_deconnexion, strlen(vw->videotex.commande_deconnexion)); break; case 0x70 : /* Status terminal */ if (vw->videotex.connecte) write (vw->videotex.fd_connexion, "\x1b\x3a\x71\x4a", 4); else write (vw->videotex.fd_connexion, "\x1b\x3a\x71\x42", 4); break; default: printf ("Sequence PRO1 %x filtrée\n", c); break; } pv->pro1 = False; pv->a_recevoir--; } else if (pv->pro2) { if (pv->a_recevoir == 2) { if (c == 0x69) { /* validation de fonction ecran : * START */ pv->valeur_fonction = 1; } else if (c == 0x6a) { /* invalidation de fonction * ecran : STOP */ pv->valeur_fonction = 0; } else if ( (c == '1') || ( c == '2' ) ) { if ( c == '2' ) { pv->passage_teleinfo = 2; } else { pv->passage_teleinfo = 1; } } else; /* les autres fonctions sont filtrees... */ } else { /* pv->a_recevoir = 1 , a modifier */ if (c == 0x43) { /* mode rouleau */ pv->mode_scroll = pv->valeur_fonction; } else if (c == 0x45) { /* saisie_en_minuscule=valeur; */ } else if (c == '}' && pv->passage_teleinfo) { if ( pv->passage_teleinfo == 1 ) { XtCallCallbackList(w, pv->callback_mode, NULL); } else { XtCallCallbackList(w, pv->callback_modefr, NULL); } } else ; /* les autres fonctions sont filtrees... */ pv->pro2 = pv->passage_teleinfo = False; } pv->a_recevoir--; } else if (pv->chargement_set) { if (c != ' ') { if (c == '@') { pv->flag_GP1_dans_G0 = False; } else if (c == 'c') { pv->flag_GP10_dans_G1 = False; } else if (c == 'B') { pv->flag_GP1_dans_G0 = True; } else if (c == 'C') { pv->flag_GP10_dans_G1 = True; } calcul_flag_drcs(vw); #ifdef DEBUG_DRCS printf("G'1 dans G0 = %d G'10 dans G1 = %d, flag_drcs = %d\n", pv->flag_GP1_dans_G0, pv->flag_GP10_dans_G1, pv->flag_drcs); #endif pv->a_recevoir = 0; pv->chargement_set = False; } } else if (pv->a_recevoir == 1) { /* filtrage des codes non significatifs */ if ((c > 0x34 && c < 0x3A && c != 0x39) /* c == 0x22 || c == 0x29 || c == 0x28 pour DRCS */ ) { pv->a_recevoir = 1; pv->filtrage = True; break; } else if (c == 0x39) { /* PRO1 */ pv->a_recevoir = 1; pv->pro1 = True; break; } else if (c == 0x20) { /* IAN */ //printf ("IAN\n"); pv->iso2022 = True; break; } else if (c == 0x21) { /* Connexion OK */ //printf ("Connexion OK\n"); pv->iso2022 = True; break; } else if (c == 0x22) { /* Erreur connexion */ //printf ("Connexion echouee\n"); pv->iso2022 = True; break; } else if (c == 0x5b) { /* CSI */ pv->a_recevoir = 1; pv->etat = EtatCSI; break; } else if (c == 0x3b) { /* PRO3 */ pv->a_recevoir = 3; pv->filtrage = True; break; } else if (c == 0x23) { pv->plein_ecran = True; pv->a_recevoir = 2; break; } else if (c == 0x3a) { /* PRO2 */ pv->pro2 = 1; pv->a_recevoir = 2; break; } else if (c == '(' || c == ')') { pv->a_recevoir = 1; pv->chargement_set = True; break; } else if (c >= 0x24 && c <= 0x2f) { /* Autre ISO-2022 */ printf ("ISO2022 0x%02x\n", c); pv->iso2022 = True; break; } #ifndef NO_TVR else if (c == 'p') { int type_header; decode_header_tvr (vw, &type_header); if (type_header) decode_jpeg_tvr (vw); pv->filtrage = False; pv->etat = EtatNormal; break; } #endif /* NO_TVR */ /* * Attributs */ if (c >= CARACTERE_NOIR && c <= CARACTERE_BLANC) couleur_caractere(vw, c); else if (c >= FOND_NOIR && c <= FOND_BLANC) { pv->a_valider_si_delimiteur |= BIT_COULEUR_FOND; pv->valeur_couleur_fond = c; } else if (c >= NORMALE && c <= DOUBLE_GRANDEUR && pv->jeu_courant != G1) taille_caractere(vw, c); else if (c == DEBUT_LIGNAGE || c == FIN_LIGNAGE) { pv->valeur_lignage = c; if (pv->jeu_courant == G1) soulignement(vw, c); else pv->a_valider_si_delimiteur |= BIT_LIGNAGE; } else if ((c == POSITIF || c == NEGATIF) && pv->jeu_courant != G1) inversion(vw, c); else if (c == MASQUAGE || c == DEMASQUAGE) { pv->valeur_masquage = c; pv->a_valider_si_delimiteur |= BIT_MASQUAGE; } else if (c == LETTRES_FIXES || c == LETTRES_CLIGNOTANTES) clignotement(vw, c); /* Incrustation, fond transparent non traites... */ pv->a_recevoir--; } /* test de fin de reception */ if (pv->a_recevoir == 0) { /* on repositionne l'automate en mode normal */ pv->filtrage = False; pv->etat = EtatNormal; } break; case EtatSS2: /* appel a G2 */ if (pv->a_recevoir == 2) { /* premier caractere */ pv->accent_sauve = c; /* signes de G2 */ if ((c < 65 || c > 67) && (c != 72) && (c != 75)) { Boolean inhibe = (pv->flag_drcs && pv->jeu_courant == G0); char jeu = pv->jeu_courant == G0; /* * Si on est en DRCS et G0, on force l'affichage du * caractere de G2 en inhibant flag_drcs */ if (inhibe) { pv->flag_drcs = False; /* On selectionne la fonte G2 */ selection_jeu(vw, G2); } affiche_caractere_normal(vw, g2_vers_g0(c)); /* On remet le flag */ if (inhibe) { pv->flag_drcs = True; selection_jeu(vw, jeu); } (*pv->fonction_affichage_curseur) (w, 0); pv->a_recevoir = 0; pv->etat = EtatNormal; } else { pv->a_recevoir--; } selection_jeu(vw, G0); } else { /* * Cas du DRCS * * si G1 ==> affiche accent + X si G0 ==> affiche seulement X */ if (pv->flag_drcs) { if (pv->jeu_courant == G1) affiche_caractere_normal(vw, g2_vers_g0 (pv->accent_sauve)); affiche_caractere_normal(vw, c); } else { /* * On affiche en meme temps l'accent et le caractere, * cela permet de resoudre les problemes de curseur * clignotant */ pv->caractere_sauve = c; selection_attributs_zone_accueil(vw); sauve_les_attributs_du_caractere(vw, pv->accent_sauve, c); selection_jeu(vw, G2); (*pv->affiche_caractere_avec_fond) (vw, g2_vers_g0(pv->accent_sauve)); selection_jeu(vw, G0); (*pv->affiche_caractere_sans_fond) (vw, c); i = fixe_les_attributs_d_un_bloc(vw, pv->rangee, pv->colonne + 1, 1); reaffiche_rectangle_ecran(vw, pv->rangee, pv->colonne, pv->rangee, i); if (pv->taille_caractere == DOUBLE_HAUTEUR || pv->taille_caractere == DOUBLE_GRANDEUR) { i = fixe_les_attributs_d_un_bloc(vw, pv->rangee - 1, pv->colonne + 1, 1); reaffiche_rectangle_ecran(vw, pv->rangee - 1, pv->colonne, pv->rangee - 1, i); } caractere_suivant(vw); } (*pv->fonction_affichage_curseur) (w, 0); pv->etat = EtatNormal; } break; case EtatREP: /* Repetition en cours */ if (c > 64) { /* Si on est en rangee 0 */ if (pv->rangee == 0) repetition_caractere_sauve(vw, ((c - 64 > 39 - pv->colonne) ? 39 - pv->colonne : c - 64)); else repetition_caractere_sauve(vw, c - 64); } (*pv->fonction_affichage_curseur) (w, 0); pv->etat = EtatNormal; /* retour en mode normal */ break; case EtatSEP: pv->etat = EtatNormal; if (c < ' ') fin = False; break; /* * En cours de sequence CSI */ case EtatCSI: pv->buffer_csi[pv->nb_csi] = c; pv->nb_csi++; /* Fin de la sequence sur une lettre */ if (isalpha(c)) { pv->etat = EtatNormal; /* CSI non disponible en rangee 0 */ if (pv->rangee > 0) traite_csi (vw); else { /* filtre la sequence */ pv->etat = EtatNormal; pv->nb_csi = 0; } } /* * Caractere de controle ==> on abandonne et on continue le * decodage en etat normal */ else if (c < ' ') { pv->etat = EtatNormal; pv->nb_csi = 0; fin = False; } break; /* * Chargement d'une fonte DRCS */ case EtatDetectionEnTeteDRCS: /* Un blanc detecte ==> traitement de l'en-tete DRCS */ if (c == ' ') { pv->etat = EtatChargementEnTeteDRCS; pv->filtrage = False; pv->a_recevoir = 4; } /* si != ' ', l'automate passe en mode d'attente de B1 */ else { pv->etat = EtatAttenteB1; pv->code_DRCS_courant = c - '!'; pv->jeu_DRCS_courant = (pv->numero_jeu_DRCS_a_charger ? pv->jeu_GP10 : pv->jeu_GP1); } break; case EtatChargementEnTeteDRCS: /* * L'en-tete est : * * US 23 20 20 20 42 49 pour G'1 43 pour G'10 * * Une en-tete non reconnue est filtree */ if (!pv->filtrage) { if (pv->a_recevoir == 1) { if (c == 0x49) { pv->numero_jeu_DRCS_a_charger = pv->numero_jeu_DRCS_prevu; #ifdef DEBUG_DRCS printf("jeu a charger = %d\n", pv->numero_jeu_DRCS_a_charger); #endif } pv->etat = EtatNormal; break; } else if (pv->a_recevoir == 2) { if (c == 0x42 || c == 0x43) pv->numero_jeu_DRCS_prevu = (c == 0x42 ? 0 : 1); else pv->filtrage = True; } else { if (c != ' ') pv->filtrage = True; } } pv->a_recevoir--; /* si filtage */ if (pv->a_recevoir == 0) { pv->etat = EtatNormal; pv->filtrage = False; } break; case EtatChargementFonteDRCS: /* US ==> interruption du chargement */ if (c == US) { /* Re-affiche */ re_affiche_DRCS(vw); init_US(vw); } /* Lecture des pattern */ else if (pv->a_recevoir > 0) { switch (c) { case B1: /* Si B1, interruption du chargement */ #ifdef DEBUG_CHRG_DRCS printf("B1 d'interruption !!!\n"); #endif /* complete par des vides */ for (i = 14 - pv->a_recevoir; i != 14; i++) pv->jeu_DRCS_courant[pv->code_DRCS_courant][i] = 0; #ifdef DEBUG_CHRG_DRCS printf("%x (%c): %d slices completees par des vides !\n", pv->code_DRCS_courant, pv->code_DRCS_courant + ' ', pv->a_recevoir); #endif /* Re-affiche */ re_affiche_DRCS(vw); /* A priori, charge le suivant */ pv->code_DRCS_courant++; pv->a_recevoir = 14; return; default: /* Charge le caractere */ pv->jeu_DRCS_courant[pv->code_DRCS_courant][14 - pv->a_recevoir] = c & 0x3f; #ifdef DEBUG_CHRG_DRCS printf("charge: %x (%c) code[%d] = %x %c\n", pv->code_DRCS_courant, pv->code_DRCS_courant + '!', 14 - pv->a_recevoir, pv->jeu_DRCS_courant[pv->code_DRCS_courant][14 - pv->a_recevoir], c); #endif break; } if (--pv->a_recevoir == 0) re_affiche_DRCS(vw); } /* + que 14, on filtre en attendant B1 */ else { if (c == B1) { pv->code_DRCS_courant++; pv->a_recevoir = 14; } else { pv->etat = EtatAttenteB1; } } break; /* * Attente du caractere B1 (0x30) de debut de chargement */ case EtatAttenteB1: if (c == B1) { #ifdef DEBUG_CHRG_DRCS printf("B1 recu !\n"); #endif pv->etat = EtatChargementFonteDRCS; pv->a_recevoir = 14; } else if (c == US) { /* Re-affiche */ re_affiche_DRCS(vw); init_US(vw); /* Interruption du telechargement */ } break; default: /* erreur */ break; } } while (!fin); } /* Retourne le Pixmap de sauvegarde */ Pixmap videotexPixmapEcranSauve (w) Widget w; { VideotexWidget vw = (VideotexWidget)w; return (vw->videotex.ecran_sauve); } /* Sauve l'ecran */ void videotexSauveEcran (w) Widget w; { VideotexWidget vw = (VideotexWidget)w; register VideotexPart *pv = &vw->videotex; if (pv->flag_bs) { if (pv->flag_sauvegarde) { XCopyArea(XtDisplay(w), XtWindow(w), pv->ecran_sauve, pv->gc, 0, 0, pv->largeur_ecran, pv->hauteur_ecran, 0, 0); XFlush(XtDisplay(w)); pv->flag_sauvegarde = False; } } } /* * Affiche une approximation ASCII de la page courante sur la sortie standard * (stdout). Version amelioree par Jean-Pierre.Demailly@ujf-grenoble.fr */ void videotexConversionAscii (w, fp) Widget w; FILE *fp; { int l, c, d, e, large; VideotexWidget vw = (VideotexWidget)w; register VideotexPart *pv = &vw->videotex; static char code_accent[] = "12300004005"; static char code_lettre[] = "10203000400000500000600000"; static char ascii_etendu[] = "àáâäaccccçèéêëeìíîïiòóôöoùúûüu"; for (l = 1; l != 25; l++) { large = 0; for (c = 0; c != 40; c++) { if (pv->attributs[l][c].code[0] > ' ') { if ((pv->attributs[l][c].taille_caractere & DOUBLE_LARGEUR) == DOUBLE_LARGEUR) large = 1-large; else large = 0; if (pv->attributs[l][c].jeu == G0) { if (large) d = ' '; else d = pv->attributs[l][c].code[0]; if (d == 0x7f) d = ' '; putc(d, fp); } else if (pv->attributs[l][c].jeu == G2) { d = pv->attributs[l][c].code[0]; e = pv->attributs[l][c].code[1]; if (d == '0') d = '°'; else if (d == '.' && e == '\0') d = '»'; else { d = d - 'A'; e = e - 'a'; if (d >= 0 && d<=10 && e>=0 && e<26) { d = code_accent[d] - '0'; e = code_lettre[e] - '0'; if ( d == 0 || e == 0 ) d = pv->attributs[l][c].code[1]; else d = ascii_etendu[5*e+d-6]; } else d = pv->attributs[l][c].code[1]; } if (large) putc(' ', fp); else putc(d, fp); } else putc(' ', fp); } else putc(' ', fp); } putc('\n', fp); } } /* * Dump PPM de l'ecran videotex sur un fichier */ void videotexDumpScreen (Widget w, FILE *fp) { XImage *xim; register int x, y; unsigned long v; XColor color; VideotexWidget vw = (VideotexWidget)w; register VideotexPart *pv = &vw->videotex; int nplanes, screen; screen = DefaultScreen(XtDisplay(w)); nplanes = DisplayPlanes(XtDisplay(w), screen); XBell (XtDisplay(w), 0); fprintf (fp, "P6\n%d %d\n255\n", pv->largeur_ecran, pv->hauteur_ecran); xim = XGetImage (XtDisplay(w), XtWindow(w), 0, 0, pv->largeur_ecran, pv->hauteur_ecran, AllPlanes, XYPixmap); for (y = 0 ; y < pv->hauteur_ecran ; y++) { for (x = 0; x < pv->largeur_ecran ; x++) { v = XGetPixel (xim, x, y); if (nplanes > 8) { fprintf (fp, "%c%c%c", ((v & pv->red_mask) >> pv->decalage_rouge) << (8 - pv->nb_bits_rouge), ((v & pv->green_mask) >> pv->decalage_vert) << (8 - pv->nb_bits_vert),((v & pv->blue_mask) >> pv->decalage_bleu) << (8 - pv->nb_bits_bleu)) ; } else { register int i; for (i = 0 ; i != pv->last_color ; i++) { if (pv->color_cache[i].pixel == v) break; } if (i == pv->last_color) { color.pixel = v; XQueryColor (XtDisplay(w), DefaultColormap (XtDisplay(w), screen), &color); pv->color_cache[i].red = color.red; pv->color_cache[i].green = color.green; pv->color_cache[i].blue = color.blue; pv->color_cache[i].pixel = v; pv->last_color++; if (pv->last_color > 256) { fprintf (stderr, "color_cache: Too many colors...\n"); pv->last_color--; } } else { color.red = pv->color_cache[i].red; color.green = pv->color_cache[i].green; color.blue = pv->color_cache[i].blue; } fprintf (fp, "%c%c%c", color.red >> 8, color.green >> 8, color.blue >> 8); } } } XDestroyImage (xim); XBell (XtDisplay(w), 0); XFlush (XtDisplay(w)); } xtel-3.3.0.orig/Videotex/Videotex.h0100444001424500142340000001004707241354450016024 0ustar ericperso/* * xtel - Emulateur MINITEL sous X11 * * Copyright (C) 1991-1996 Lectra Systemes & Pierre Ficheux * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ident "$Id: Videotex.h,v 1.8 2001/02/11 00:13:28 pierre Exp $" #ifndef _XtVideotex_h #define _XtVideotex_h #include /*********************************************************************** * * Videotex Widget * ***********************************************************************/ /* Parameters: Name Class RepType Default Value ---- ----- ------- ------------- petiteFonte PetiteFonte Boolean False nGris NGris Boolean False connecte Connecte Boolean False fdConnexion FdConnexion int -1 commandeDeconnexion CommandeDeconnexion String NULL modeCallback ModeCallback Callback NULL enregCallback EnregCallback Callback NULL modeVideotex ModeVideotex Boolean True enqROM EnqROM String Cv1 */ #define XtNpetiteFonte "petiteFonte" #define XtNconnecte "connecte" #define XtNcommandeDeconnexion "commandeDeconnexion" #define XtNnGris "nGris" #define XtNfdConnexion "fdConnexion" #define XtNmodeCallback "modeCallback" #define XtNmodefrCallback "modefrCallback" #define XtNenregCallback "enregCallback" #define XtNmodeVideotex "modeVideotex" #define XtNenqROM "enqROM" #define XtNfonteG0no_p "fonteG0no_p" #define XtNfonteG0dl_p "fonteG0dl_p" #define XtNfonteG0dh_p "fonteG0dh_p" #define XtNfonteG0dt_p "fonteG0dt_p" #define XtNfonteG0nos_p "fonteG0nos_p" #define XtNfonteG0dls_p "fonteG0dls_p" #define XtNfonteG0dhs_p "fonteG0dhs_p" #define XtNfonteG0dts_p "fonteG0dts_p" #define XtNfonteG1_p "fonteG1_p" #define XtNfonteG1s_p "fonteG1s_p" #define XtNfonteG0no_g "fonteG0no_g" #define XtNfonteG0dl_g "fonteG0dl_g" #define XtNfonteG0dh_g "fonteG0dh_g" #define XtNfonteG0dt_g "fonteG0dt_g" #define XtNfonteG0nos_g "fonteG0nos_g" #define XtNfonteG0dls_g "fonteG0dls_g" #define XtNfonteG0dhs_g "fonteG0dhs_g" #define XtNfonteG0dts_g "fonteG0dts_g" #define XtNfonteG1_g "fonteG1_g" #define XtNfonteG1s_g "fonteG1s_g" #define XtCPetiteFonte "PetiteFonte" #define XtCConnecte "Connecte" #define XtCCommandeDeconnexion "CommandeDeconnexion" #define XtCNGris "NGris" #define XtCFdConnexion "FDConnexion" #define XtCModeCallback "ModeCallback" #define XtCEnregCallback "EnregCallback" #define XtCModeVideotex "ModeVideotex" #define XtCModeVideotex "ModeVideotex" #define XtCEnqROM "EnqROM" typedef struct _VideotexRec *VideotexWidget; /* completely defined in VideotexPrivate.h */ typedef struct _VideotexClassRec *VideotexWidgetClass; /* completely defined in VideotexPrivate.h */ extern WidgetClass videotexWidgetClass; /* * Fonctions publiques */ #ifdef __STDC__ extern void videotexInit(Widget w); extern void videotexDecode(Widget w, int c); extern Pixmap videotexPixmapEcranSauve (Widget w); extern void videotexSauveEcran (Widget w); extern void videotexConversionAscii (Widget w, FILE* fp); extern void videotexDumpScreen (Widget w, FILE* fp); #else extern void videotexDecode (); extern void videotexInit (); extern Pixmap videotexPixmapEcranSauve (); extern void videotexSauveEcran (); extern void videotexAfficheTelephone (); extern void videotexEffaceTelephone (); extern void videotexConversionAscii (); extern void videotexDumpScreen (); #endif /* __STDC__ */ #endif /* _XtVideotex_h */ /* DON'T ADD STUFF AFTER THIS #endif */ xtel-3.3.0.orig/Videotex/Videotex.ms0100444001424500142340000001522106703332511016207 0ustar ericperso\" \" Doc du widget Videotex (macros ms) \" $Id: Videotex.ms,v 1.3 1996/10/31 13:00:03 pierre Exp $ \" .if n \{ .nr LL 79n .ll 79n .nr FL 79n .nr LT 79n .\} .nr PS 11 .de Ds .LP .in +0.6i .LP .. .de De .in -0.6i .. .de Nf .cs R 20 \s-2 .nf .. .de Fi \s+2 .fi .cs R .. \" \" .ce 7 \s+5\fBWidget Videotex\fP\s-5 .sp Octobre 1996 .sp \fIPierre Ficheux\fP .sp LECTRA SYSTEMES .sp 0 Service Recherche et Développement .sp 0 Z.I. Marticot 33610 CESTAS .sp E-mail: pierre@rd.lectra.fr .sp 4 .NH Présentation .PP Le widget \fBVideotex\fP permet de créer dans une application X utilisant la librairie des \fIIntrinsics\fP (Xt) un écran d'émulation vidéotex (compatible Minitel 2). L'émulation fonctionne sur un écran couleur, monochrome ou à niveaux de gris. .PP Le mode \fI80 colonnes\fP (mode \fItélé-informatique\fP) du minitel n'est pas géré par le widget (il doit être géré dans l'application). On peut utiliser ce widget dans une application MOTIF si l'on compile avec le flag \fI-DUSE_MOTIF\fP. La différence réside principalement dans la définition des \fIKeySyms\fP (qui sont spéciaux sous MOTIF). .PP Le programme suivant (présent sur le répertoire \fIVideotex\fP) peut être considéré comme un émulateur minimal (décodage d'un fichier vidéotex) : .sp .Nf /* * Test du widget Videotex */ #include #include #include #include #include #include "Videotex.h" Widget toplevel, form, vdts; XtAppContext app_context; static void Fin (w, client_data, pevent) Widget w; caddr_t client_data; XButtonEvent *pevent; { exit (0); } static void Decode (w, client_data, pevent) Widget w; caddr_t client_data; XButtonEvent *pevent; { char c; int fd; fd = open (client_data, O_RDONLY); if (fd > 0) { XtVaSetValues (w, XtNfdConnexion, fd, NULL); videotexDecode (w, 12); while (read (fd, &c, 1) > 0) videotexDecode (w, c); close (fd); } else { perror (client_data); exit (1); } } main (ac, av) int ac; char **av; { if (ac == 1) { fprintf (stderr, "Usage: xvdt fichier_videotex\n"); exit (1); } toplevel = XtAppInitialize(&app_context, "XVdt", NULL, 0, &ac, av, NULL, NULL, 0); form = XtCreateManagedWidget ("form", formWidgetClass, toplevel, NULL, 0); vdts = XtCreateManagedWidget ("vdts", videotexWidgetClass, form, NULL, 0); XtAddEventHandler (vdts, ExposureMask, False, Decode, (caddr_t)av[1]); XtAddEventHandler (vdts, ButtonPressMask, False, Fin, NULL); XtRealizeWidget(toplevel); XtAppMainLoop (app_context); } .Fi .NH La classe Videotex .NH 2 Introduction .PP Le widget Videotex implémente la classe \fBvideotexWidgetClass\fP. La structure du widget est conforme à la structure standard des widgets Xt: .sp .IP "Videotex.c" 2i le source du widget .IP "VideotexP.h" 2i le fichier d'en-tête \fIprivé\fP du widget .IP "Videotex.h" 2i le fichier d'en-tête \fIpublic\fP du widget .sp .PP Le widget Vidéotex peut donc être utilisé dans une application \fIOSF-Motif\fP ou bien \fIAthena (Xaw)\fP. .PP Le widget utilise des fontes spécifiques (fontes vidéotex) fournies dans la distribution de \fIxtel-3.0\fP sur le repertoire \fPfonts\fI. .sp .NH 2 Les ressources du widget .PP .IN "Panner widget" "resources" .ps 9 .nr PS 9 .vs 11 .nr VS 11 .TS H expand; lw(1.5i) lw(1.5i) lw(1i) lw(2i). _ .sp 3p .TB Name Class Type Default Value .sp 3p _ .TH .R .sp 3p petiteFonte PetiteFonte Boolean False nGris NGris Boolean False connecte Connecte Boolean False fdConnexion FdConnexion int -1 commandeDeconnexion CommandeDeconnexion String NULL modeCallback ModeCallback Callback NULL enregCallback EnregCallback Callback NULL modeVideotex ModeVideotex Boolean True enqROM EnqROM String Cv1 .sp 3p _ .TE .ps 11 .nr PS 11 .vs 13 .nr VS 13 .Ac .IP petiteFonte 2i utilisation de la fonte 8x10 points à la place de la fonte 16x20. .sp .IP nGris 2i l'émulation utilise des niveaux de gris à la place des couleurs (sauf sur un écran monochrome bien sûr !) .sp .IP connecte 2i indique au widget si il est connecté à la ligne ou non .sp .IP fdConnexion 2i valeur du \fIfile-descriptor\fP Unix associé à la connexion .sp .IP commandeDeconnexion 2i chaine de caractères à envoyer sur le \fIdescripteur de fichier\fP précédent sur une demande de déconnexion modem. .sp .IP modeCallback 2i callback appelé lors du passage en mode télé-informatique .sp .IP enregCallback 2i callback appelé si l'on veut enregistrer les commandes Minitel (SUITE, ENVOI, etc...) .sp .IP modeVideotex 2i mode de fonctionnement (Vidéotex si True) .sp .IP enqROM 2i identificateur à renvoyer sur un ENQROM (le widget ajoute SOH et EOT) .sp .NH 2 Les actions du widget .sp .PP Le widget \fBVideotex\fP reconnait les actions suivantes dans le cas de l'utilisation du toolkit Athena : .sp .Nf : reconnaissance-commande() : conversion-ascii-page() Return: emission-commande(A) Prior: emission-commande(B) Insert: emission-commande(C) End: emission-commande(D) Delete: emission-commande(E) Home: emission-commande(F) CtrlH: emission-commande(G) Next: emission-commande(H) .Fi .PP Il reconnait les actions suivantes dans le cas de MOTIF : .sp .Nf : reconnaissance-commande() : conversion-ascii-page() Return: emission-commande(A) osfPageUp: emission-commande(B) osfInsert: emission-commande(C) osfEndLine: emission-commande(D) osfDelete: emission-commande(E) osfBeginLine: emission-commande(F) CtrlH: emission-commande(G) osfPageDown: emission-commande(H) .Fi .sp .IP reconnaissance-commande() 2i le clic avec le bouton 1 dans une zone de l'écran Vidéotex retourne la chaine de caractères complète pointée par la souris (on tente de reconnaitre les commandes du Minitel \fIENVOI\fP, \fIRETOUR\fP, ...) .sp .IP emission_commande(chaine) 2i permet d'associer des touches du clavier aux commandes du clavier minitel .sp .NH 2 Les fonctions publiques du widget .sp .PP .FD 0 void videotexInit(\fIw\fP) .br Widget \fIw\fP; .FN .IP \fIw\fP 1i spécifie le widget Videotex .PP Initialise l'émulation dans le widget .sp 2 .FD 0 void videotexDecode(\fIw\fP, \fIc\fP) .br Widget \fIw\fP; .br char \fIc\fP; .FN .IP \fIw\fP 1i spécifie le widget Videotex .IP \fIc\fP 1i le caractère à décoder .PP Effectue le décodage du caractère \fIc\fP dans l'écran du widget Videotex \fIw\fP .sp 2 .FD 0 Pixmap videotexPixmapEcranSauve (\fIw\fP) .br Widget \fIw\fP; .FN .IP \fIw\fP 1i spécifie le widget Videotex .PP Retourne le \fIPixmap\fP de sauvegarde de l'écran (utilisé si le serveur X ne fait pas de \fIbacking-store\fP) .sp 2 .FD 0 void videotexSauveEcran (\fIw\fP) .br Widget \fIw\fP; .FN .IP \fIw\fP 1i spécifie le widget Videotex .PP Force la sauvegarde de l'écran vidéotex xtel-3.3.0.orig/Videotex/VideotexP.h0100444001424500142340000003133007241354524016144 0ustar ericperso/* * xtel - Emulateur MINITEL sous X11 * * Copyright (C) 1991-1996 Lectra Systemes & Pierre Ficheux * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ident "$Id: VideotexP.h,v 1.9 2001/02/11 00:14:12 pierre Exp $" #ifndef _VideotexP_h #define _VideotexP_h /* * constantes et structures propres a l'emulation Videotex */ /* Pixmaps standards*/ #include #include #include #include #include #include #include /* Pixmaps locaux */ #define unx1_width 16 #define unx1_height 16 static char unx1_bits[] = { 0xff, 0xff, 0x55, 0x55, 0xff, 0xff, 0x55, 0x55, 0xff, 0xff, 0x55, 0x55, 0xff, 0xff, 0x55, 0x55, 0xff, 0xff, 0x55, 0x55, 0xff, 0xff, 0x55, 0x55, 0xff, 0xff, 0x55, 0x55, 0xff, 0xff, 0x55, 0x55}; #define white_width 16 #define white_height 16 static char white_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}; /* * Codes et commandes VIDEOTEX */ /* Fonctions de mise en page */ #define CR 13 #define LF 10 #define US 31 #define RS 30 #define FF 12 #define HT 9 #define VT 11 #define BS 8 #define CAN 24 #define REP 18 #define NUL 0 #define BEL 7 #define DEL 127 #define ESC 27 #define B1 48 /* pour DRCS */ /* attributs de visualisation */ /* couleurs de caracteres */ #define CARACTERE_NOIR 64 #define CARACTERE_ROUGE 65 #define CARACTERE_VERT 66 #define CARACTERE_JAUNE 67 #define CARACTERE_BLEU 68 #define CARACTERE_MAGENTA 69 #define CARACTERE_CYAN 70 #define CARACTERE_BLANC 71 /* couleur de fond */ #define FOND_NOIR 80 #define FOND_ROUGE 81 #define FOND_VERT 82 #define FOND_JAUNE 83 #define FOND_BLEU 84 #define FOND_MAGENTA 85 #define FOND_CYAN 86 #define FOND_BLANC 87 /* taille des caracteres */ #define NORMALE 76 #define DOUBLE_HAUTEUR 77 #define DOUBLE_LARGEUR 78 #define DOUBLE_GRANDEUR 79 /* clignotement */ #define LETTRES_FIXES 73 #define LETTRES_CLIGNOTANTES 72 /* masquage */ #define MASQUAGE 88 #define DEMASQUAGE 95 /* soulignement */ #define FIN_LIGNAGE 89 #define DEBUT_LIGNAGE 90 /* inversion de fond */ #define POSITIF 92 #define NEGATIF 93 /* selection de jeu */ #define SO 14 #define SI 15 #define SYN 22 #define SS2 25 /* Caracteres de controle non imprimables */ #define SOH 1 #define STX 2 #define ETX 3 #define EOT 4 #define ENQ 5 #define DC1 17 #define SEP 19 #define DC4 20 #define SUB 26 #define DELIMITEUR_EXPLICITE 1 #define DELIMITEUR_GRAPHIQUE 2 #define BIT_COULEUR_FOND 1 #define BIT_LIGNAGE 2 #define BIT_MASQUAGE 4 /* position par rapport a l'origine du caractere */ #define POS_BG 0 /* bas a gauche (toutes tailles) */ #define POS_HG 1 /* haut a gauche (double hauteur, double taille) */ #define POS_BD 2 /* bas a droite (double largeur, double taille) */ #define POS_HD 3 /* haut a droite (double taille) */ /* fontes */ #define G0 0 #define G1 1 #define G2 2 #define Ligne_blanche " " /* * Macro de calcul du x, y de trace courant en fonction de la * position rangee, colonne */ #define Y_COURANT pv->y_courant = (pv->rangee + 1) * pv->hauteur_fonte_base - pv->descent_fonte_base; #define X_COURANT pv->x_courant = (pv->colonne - 1) * pv->largeur_fonte_base; /* * Structure de definition des attributs */ struct attribut { char code[2]; /* code du caractere */ char inversion; /* attribut d'inversion */ char couleur_caractere; /* attribut de couleur de caractere */ char taille_caractere; /* attribut de taille de caractere */ char jeu; /* jeu de caractere (G0, G1, G2) */ char couleur_fond; /* attribut de couleur de fond */ char masquage; /* attribut de masquage */ char soulignement; /* attribut de lignage */ Boolean drcs; /* DRCS ? */ char clignotement; /* attribut de clignotement */ struct { char position; /* position si >taille normale: BG (bas gauche), HG, BD, HD */ char delimiteur;/* indique si c'est un delimiteur */ } f; }; typedef enum { EtatNormal, EtatESC, EtatUS, EtatREP, EtatSS2, EtatDetectionEnTeteDRCS, EtatChargementEnTeteDRCS, EtatChargementFonteDRCS, EtatAttenteB1, EtatCSI, EtatSEP } etatAutomate; struct position { char rangee; char colonne; int x; int y; struct position *suivant; }; /* Structures de definition du widget */ #include "Videotex.h" #include /* New fields for the videotex widget instance record */ typedef struct { /* resources */ Boolean petite_fonte; /* petite fonte (8x10) ? */ Boolean niveaux_de_gris; /* ecran en niveaux de gris ? */ Boolean connecte; /* Minitel connecte ? */ int fd_connexion; /* connexion */ String commande_deconnexion; /* Commande de deconnexion */ Boolean mode_videotex; /* Mode Videotex ? */ String enqrom; /* Reponse a ENQROM */ /* Fontes */ XFontStruct *fonte_g0_no_p; /* Petite taille */ XFontStruct *fonte_g0_dl_p; XFontStruct *fonte_g0_dh_p; XFontStruct *fonte_g0_dt_p; XFontStruct *fonte_g0_nos_p; XFontStruct *fonte_g0_dls_p; XFontStruct *fonte_g0_dhs_p; XFontStruct *fonte_g0_dts_p; XFontStruct *fonte_g1_p; XFontStruct *fonte_g1s_p; XFontStruct *fonte_g0_no_g; /* Grande taille */ XFontStruct *fonte_g0_dl_g; XFontStruct *fonte_g0_dh_g; XFontStruct *fonte_g0_dt_g; XFontStruct *fonte_g0_nos_g; XFontStruct *fonte_g0_dls_g; XFontStruct *fonte_g0_dhs_g; XFontStruct *fonte_g0_dts_g; XFontStruct *fonte_g1_g; XFontStruct *fonte_g1s_g; /* Callbacks */ XtCallbackList callback_mode; /* Chgmt de mode (Videotex/Tele) */ XtCallbackList callback_modefr; /* Chgmt de mode (Videotex/Tele Fr) */ XtCallbackList callback_enreg; /* fonction d'enregistrement des commandes */ /* Private data */ etatAutomate etat; /* etat de l'automate (ESC, US, REP, SS2) */ char a_recevoir; /* nombre de caractere a recevoir */ char rangee; /* rangee (ligne) courante */ char colonne; /* colonne courante */ char caractere_sauve; /* caractere imprimable courant */ char accent_sauve; /* accent courant */ Boolean flag_G2; /* vrai si caractere a sauver est de G2 */ char couleur_caractere; /* couleur courante du caractere */ char couleur_fond; /* couleur courante du fond */ char taille_caractere; /* taille courante caractere */ char insertion; /* attribut d'insertion ignore */ char inversion; /* pas d'inversion de couleurs */ char masquage; /* attribut de masquage ignore */ char soulignement; /* lignage */ char clignotement; /* clignotement */ char jeu_courant; /* jeu de caracteres */ char largeur_caractere; /* increment horizontal */ char hauteur_caractere; /* increment vertical */ int x_courant, y_courant; /* coordonnees courantes d'affichage */ char hauteur_fonte_base; /* caracteristiques de la fonte de base */ char largeur_fonte_base; /* largeur de la fonte initiale */ char descent_fonte_base; /* descent */ char ascent_fonte_base; /* ascent, ascent+descent = hauteur */ struct attribut attributs[25][40]; /* attributs des caracteres */ Dimension largeur_ecran, hauteur_ecran; /* dimensions de l'ecran en pixels */ Boolean flag_bs; /* flag de backing store */ Boolean flag_sauvegarde; /* flag de sauvegarde ecran */ char derniere_rangee_avant_0; char derniere_colonne_avant_0; char indice_couleur_caractere_precedent; char indice_couleur_fond_precedent; char indice_couleur_caractere; char indice_couleur_fond; XFontStruct *fontes[24]; /* liste des fontes utilisees */ XFontStruct *xfs_courante; /* fonte courante */ XRectangle r_clipping_normal[3]; /* rectangle de clipping = ecran - indicateur cx/fin */ XColor couleurs[8]; /* liste des definitions de couleurs */ Pixmap pixmap[8]; /* Si ecran monochrome */ Pixmap ecran_masquage; /* pour masquage/demasquage */ Pixmap ecran_demasquage; Pixmap ecran_sauve; /* si pas de backing-store */ GC gc; /* les contextes graphiques */ GC gc_curseur; GC gc_indicateur; GC gc_pixmap; char a_valider_si_delimiteur; char inversion_avant_0; char couleur_caractere_avant_0; char taille_caractere_avant_0; char jeu_avant_0; Boolean filtrage, pro2, pro1, plein_ecran, iso2022; char erreur_US, valeur_fonction; Boolean passage_teleinfo; char colonne_sauve, rangee_sauve; char valeur_couleur_fond, valeur_lignage, valeur_masquage; char mode_scroll; Boolean masquage_plein_ecran; /* vrai si masquage plein ecran (defaut) */ char nb_a_ignorer; char chaine_repetition[40]; char repetition; int indice_repetition; int x_courant_repetition; int x_fin_repetition; struct attribut *p_attribut_re_affichage; char chaine_a_re_afficher[40]; int indice_re_affichage; int x_courant_re_affichage; Boolean flag_quelque_chose_a_reafficher; char flip_flop; int phase_curseur; Boolean flag_insertion; char buffer_csi[10]; int nb_csi; /* Pointeurs de fonctions d'affichage */ void (*fonction_affichage_curseur)(); void (*affiche_caractere_avec_fond)(); void (*affiche_caractere_sans_fond)(); void (*affiche_chaine_avec_fond)(); void (*affiche_fond_pour_clignotement)(); int (*draw_string_sauve)(); int (*draw_image_string_sauve)(); int (*fill_rectangle_sauve)(); int (*copy_area_sauve)(); /* Drcs extension */ Boolean chargement_set; Boolean flag_GP1_dans_G0; Boolean flag_GP10_dans_G1; char code_DRCS_courant; int numero_jeu_DRCS_a_charger; int numero_jeu_DRCS_prevu; char **jeu_DRCS_courant; char *jeu_GP1[94]; char *jeu_GP10[94]; char *bits_bitmap; Boolean flag_drcs; unsigned int largeur_bitmap, hauteur_bitmap; struct position *affichage_GP1[94]; struct position *affichage_GP10[94]; struct position *affichage_DRCS_courant; void (*affiche_chaine_drcs)(); int nb_bits_rouge; int nb_bits_vert; int nb_bits_bleu; int decalage_rouge; int decalage_vert; int decalage_bleu; unsigned long red_mask; unsigned long green_mask; unsigned long blue_mask; XColor color_cache[256]; int last_color; #ifndef NO_TVR int (*fonctions_lecture_headers[5][5])(); double x_photo, y_photo; double w_photo, h_photo; int x_image, y_image; double offset_x_image, offset_y_image; int w_image, h_image; int longueur_data_jpeg; XRectangle rectangle_photo; #endif /* NO_TVR */ } VideotexPart; /* Full instance record declaration */ typedef struct _VideotexRec { CorePart core; VideotexPart videotex; } VideotexRec; /* New fields for the Videotex widget class record */ typedef struct {int dummy;} VideotexClassPart; /* Full class record declaration. */ typedef struct _VideotexClassRec { CoreClassPart core_class; VideotexClassPart videotex_class; } VideotexClassRec; /* Class pointer. */ extern VideotexClassRec videotexClassRec; #endif /* _VideotexP_h */ xtel-3.3.0.orig/Videotex/tvr_hdr.c0100444001424500142340000002245506703332511015702 0ustar ericperso/* * xtel - Emulateur MINITEL sous X11 * * Copyright (C) 1991-1996 Lectra Systemes & Pierre Ficheux * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ static char rcsid[] = "$Id: tvr_hdr.c,v 1.3 1997/02/21 16:55:58 pierre Exp $"; /* * Decodage des headers Teletel vitesse rapide */ #ifndef NO_TVR #include #include #include #include #include "VideotexP.h" typedef enum { LectureEntetePhoto, LectureLongueurHeader, LectureTypeHeader, LectureRangeeHeader, LectureColonneHeader } etatLecture; static char *entete_photo = "#@\177"; void init_tvr (); extern void decode_jpeg_tvr(); /* * Lecture des types de base: booleen, reel, entier */ static Boolean lecture_booleen (w, pb) VideotexWidget w; Boolean *pb; { char c; int n = 3; register VideotexPart *pv = &w->videotex; for (;;) { if (read (pv->fd_connexion, &c, 1) < 0) return False; n--; switch (n) { case 2 : if (c != 0x45) return False; break; case 1 : if (c != 1) return False; break; default : if (c == 0 || c == 1) { *pb = (Boolean)c; return True; } else return False; } } } static Boolean lecture_reel (w, pd, pn) VideotexWidget w; double *pd; int *pn; { int n, l=0, v=0, signe=1, nb_bits, masque; double terme = 1.0; char c; register VideotexPart *pv = &w->videotex; *pn = 0; *pd = 0.0; n = 2; for (;;) { if (read (pv->fd_connexion, &c, 1) < 0) return False; if (!l) { n--; switch (n) { case 1 : if (c != 0x42) return False; break; case 0 : l = c; /* nouvelle longueur */ nb_bits = 7 * l - 1; masque = 1 << nb_bits; *pn = l + 2; break; default : *pn = 0; return False; } } else { v <<= 7; v |= (c & 0x7f); if (l == 1) { /* Signe */ if (v & masque) { v = -v & ~(masque >> 1); signe = -1; } masque >>= 1; } if (!--l) break;; } } /* Decodage de la valeur */ while (nb_bits--) { if (v & masque) *pd += terme; terme /= 2.0; masque >>= 1; } *pd *= signe; return True; } static Boolean lecture_entier (w, pi, pn) VideotexWidget w; int *pi, *pn; { int n, l=0, l_init, v=0, signe=1; char c; register VideotexPart *pv = &w->videotex; *pi = *pn = 0; n = 2; for (;;) { if (read (pv->fd_connexion, &c, 1) < 0) return False; if (!l) { n--; switch (n) { case 1 : if (c != 0x40) return False; break; case 0 : l = l_init = c; /* nouvelle longueur */ *pn = l + 2; break; default : *pn = 0; return False; } } else { if (l == l_init && (c & 0x40)) { signe = -1; c &= 0x3f; } v <<= 7; v |= (c & 0x7f); if (!--l) { *pi = (v * signe); return True; } } } } /* * Lecture des headers */ static int lecture_header_non_implementee (w) VideotexWidget w; { fprintf (stderr, "Header non implementee.\n"); return 0; } static int lecture_header_reset (w) VideotexWidget w; { Boolean b; #ifdef DEBUG printf ("lecture_header_reset\n"); #endif if (lecture_booleen (w, &b) == True) { if (b == True) init_tvr (w); return 3; } else return 0; } static int lecture_header_position_photo (w) VideotexWidget w; { int n=0, i; register VideotexPart *pv = &w->videotex; if (lecture_reel (w, &pv->x_photo, &i) == False) return 0; n += i; if (lecture_reel (w, &pv->y_photo, &i) == False) return 0; n += i; #ifdef DEBUG printf ("lecture_header_position_photo %g %g\n", pv->x_photo, pv->y_photo); #endif return n; } static int lecture_header_taille_photo (w) VideotexWidget w; { int n=0, i; register VideotexPart *pv = &w->videotex; if (lecture_reel (w, &pv->w_photo, &i) == False) return 0; n += i; if (lecture_reel (w, &pv->h_photo, &i) == False) return 0; n += i; #ifdef DEBUG printf ("lecture_header_taille_photo %g %g\n", pv->w_photo, pv->h_photo); #endif return n; } static int lecture_header_position_image (w) VideotexWidget w; { int n=0, i; register VideotexPart *pv = &w->videotex; if (lecture_entier (w, &pv->x_image, &i) == False) return 0; n += i; if (lecture_entier (w, &pv->y_image, &i) == False) return 0; n += i; if (lecture_reel (w, &pv->offset_x_image, &i) == False) return 0; n += i; if (lecture_reel (w, &pv->offset_y_image, &i) == False) return 0; n += i; #ifdef DEBUG printf ("lecture_header_position_image %d %d %g %g\n", pv->x_image, pv->y_image, pv->offset_x_image, pv->offset_y_image); #endif return n; } static int lecture_header_taille_image (w) VideotexWidget w; { int n=0, i; register VideotexPart *pv = &w->videotex; if (lecture_entier (w, &pv->w_image, &i) == False) return 0; n += i; if (lecture_entier (w, &pv->h_image, &i) == False) return 0; n += i; #ifdef DEBUG printf ("lecture_header_taille_image %d %d\n", pv->w_image, pv->h_image); #endif return n; } Boolean match (fd, s) int fd; char *s; { char c; while (read (fd, &c, 1) > 0) { if (c == *s) { s++; if (!*s) return True; } else return False; } return False; } int get_header_length (fd) int fd; { char c; int l = 0; while (read (fd, &c, 1) > 0) { l <<= 5; l |= (c & 0x1f); if (!(c & 0x20)) return l; } } void init_tvr (w) VideotexWidget w; { register int i, j; register VideotexPart *pv = &w->videotex; for (i = 0 ; i != 5 ; i++) for (j = 0 ; j != 5 ; j++) pv->fonctions_lecture_headers[i][j] = lecture_header_non_implementee; pv->fonctions_lecture_headers[0][0] = lecture_header_reset; pv->fonctions_lecture_headers[1][2] = lecture_header_position_photo; pv->fonctions_lecture_headers[1][3] = lecture_header_taille_photo; pv->fonctions_lecture_headers[1][4] = lecture_header_position_image; pv->fonctions_lecture_headers[2][1] = lecture_header_taille_image; pv->x_photo = pv->y_photo = 0.0; pv->w_photo = 1.0; pv->h_photo = 0.75; pv->x_image = pv->y_image = 0; pv->offset_x_image = 0.0; pv->offset_y_image = 0.75; pv->w_image = 320; pv->h_image = 250; pv->rectangle_photo.x = 0; pv->rectangle_photo.y = pv->hauteur_fonte_base; pv->rectangle_photo.width = pv->largeur_ecran; pv->rectangle_photo.height = pv->hauteur_ecran; } Boolean decode_header_tvr (w, ptype) VideotexWidget w; int *ptype; { char c; etatLecture etat = LectureEntetePhoto; int longueur_header, i, j, n; register VideotexPart *pv = &w->videotex; *ptype = 0; if (!match (pv->fd_connexion, "#@\177")) return False; longueur_header = get_header_length (pv->fd_connexion); etat = LectureTypeHeader; while (read (pv->fd_connexion, &c, 1) > 0) { switch (etat) { case LectureTypeHeader : longueur_header--; /* Photo header */ if (c == 0x50 || c == 0x51) etat = LectureRangeeHeader; /* Photo data */ else if (c == 0x52 || c == 0x53) { if (longueur_header) { /* Calcul de la zone d'affichage photographique */ pv->rectangle_photo.x = pv->largeur_ecran * (pv->x_photo + pv->offset_x_image) - (pv->petite_fonte ? pv->x_image : pv->x_image << 1); pv->rectangle_photo.y = pv->hauteur_ecran - (pv->largeur_ecran * (pv->y_photo + pv->offset_y_image) - (pv->petite_fonte ? pv->y_image : pv->y_image << 1)); pv->rectangle_photo.width = (pv->petite_fonte ? pv->w_image : pv->w_image << 1); pv->rectangle_photo.height = (pv->petite_fonte ? pv->h_image : pv->h_image << 1); /* Decodage JPEG */ pv->longueur_data_jpeg = longueur_header; *ptype = 1; } return True; } else { fprintf (stderr, "decode_header_tvr: type header %02x inconnu\n", c & 255); return False; } break; case LectureRangeeHeader : i = c - 0x20; longueur_header--; etat = LectureColonneHeader; break; case LectureColonneHeader : j = c - 0x30; longueur_header--; n = (*pv->fonctions_lecture_headers[i][j])(w); if (n >= 0) { longueur_header -= n; if (longueur_header == 0) return True; else etat = LectureRangeeHeader; } else { fprintf (stderr, "decode_header_tvr: erreur lecture header [%d][%d]\n", i, j); return False; } break; default : fprintf (stderr, "decode_header_tvr: etat %d inconnu\n", etat); return False; } } return False; } #endif /* NO_TVR */ xtel-3.3.0.orig/Videotex/tvr_jpg.c0100444001424500142340000005706006703332511015705 0ustar ericperso/* * xtel - Emulateur MINITEL sous X11 * * Copyright (C) 1991-1996 Lectra Systemes & Pierre Ficheux * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ static char rcsid[] = "$Id: tvr_jpg.c,v 1.5 1997/07/03 08:18:06 pierre Exp $"; /* * Interface JPEG du mode Teletel vitesse rapide */ #ifndef NO_TVR #include #include #include #include #include #include #include #include "VideotexP.h" #define TVRMESSAGE(code,string) string, typedef enum { JMSG_FIRSTADDONCODE=1000, JERR_TVR_X11_COLORSPACE, JERR_TVR_PHOTO_HDR, JERR_TVR_X11_ALLOC_COLOR, JERR_TVR_X11_ALLOC_IMAGE, JMSG_LASTADDONCODE } ADDON_MESSAGE_CODE; static const char * const tvr_message_table[] = { TVRMESSAGE(JMSG_FIRSTADDONCODE, NULL) TVRMESSAGE(JERR_TVR_X11_COLORSPACE, "X11 output must be RGB") TVRMESSAGE(JERR_TVR_PHOTO_HDR, "Not a TVR Photo header") TVRMESSAGE(JERR_TVR_X11_ALLOC_COLOR, "Can't allocate color %d/%d/%d\n") TVRMESSAGE(JERR_TVR_X11_ALLOC_IMAGE, "Can't allocate XImage data\n") NULL }; #include "jpeglib.h" #include "jerror.h" /* get library error codes too */ static int nb_bits_rouge; static int nb_bits_vert; static int nb_bits_bleu; static int decalage_rouge; static int decalage_vert; static int decalage_bleu; static unsigned long red_mask; static unsigned long green_mask; static unsigned long blue_mask; static int last_color; static unsigned long pixels[256]; static Boolean last_was_full_screen; typedef struct { unsigned short red, green, blue; } RGBColor; /* * For 12-bit JPEG data, we either downscale the values to 8 bits * (to write standard byte-per-sample PPM/PGM files), or output * nonstandard word-per-sample PPM/PGM files. Downscaling is done * if PPM_NORAWWORD is defined (this can be done in the Makefile * or in jconfig.h). * (When the core library supports data precision reduction, a cleaner * implementation will be to ask for that instead.) */ #if BITS_IN_JSAMPLE == 8 #define BYTESPERSAMPLE 1 #else #ifdef PPM_NORAWWORD #define BYTESPERSAMPLE 1 #else #define BYTESPERSAMPLE 2 #endif #endif /* * Object interface for djpeg's output file encoding modules */ typedef struct djpeg_dest_struct * djpeg_dest_ptr; struct djpeg_dest_struct { /* start_output is called after jpeg_start_decompress finishes. * The color map will be ready at this time, if one is needed. */ JMETHOD(void, start_output, (j_decompress_ptr cinfo, djpeg_dest_ptr dinfo)); /* Emit the specified number of pixel rows from the buffer. */ JMETHOD(void, put_pixel_rows, (j_decompress_ptr cinfo, djpeg_dest_ptr dinfo, JDIMENSION rows_supplied)); /* Finish up at the end of the image. */ JMETHOD(void, finish_output, (j_decompress_ptr cinfo, djpeg_dest_ptr dinfo)); /* Output pixel-row buffer. Created by module init or start_output. * Width is cinfo->output_width * cinfo->output_components; * height is buffer_height. */ JSAMPARRAY buffer; JDIMENSION buffer_height; }; /* Private version of data destination object */ typedef struct { struct djpeg_dest_struct pub; /* public fields */ /* Usually these two pointers point to the same place: */ char *iobuffer; /* fwrite's I/O buffer */ JSAMPROW pixrow; /* decompressor output buffer */ size_t buffer_width; /* width of I/O buffer */ JDIMENSION samples_per_row; /* JSAMPLEs per output row */ /* X11 fields */ Display *display; int screen, nplanes; GC gc; Window win, win_sauve; Colormap cmap; XImage *ximage; XImage *ximage_double; char *ximage_data, *pimage_data, *ximage_data_double; short *pimage_data_short; unsigned int *pimage_data_int; RGBColor colors[256]; Boolean flag_double, flag_bs; int modulo; int x_photo, y_photo; } x11_dest_struct; typedef x11_dest_struct * x11_dest_ptr; /* Expanded data source object for stdio input */ typedef struct { struct jpeg_source_mgr pub; /* public fields */ int infile; JOCTET * buffer; /* start of buffer */ boolean start_of_file; /* have we gotten any data yet? */ int data_length; } my_source_mgr; typedef my_source_mgr * my_src_ptr; #define INPUT_BUF_SIZE 1 /* choose an efficiently fread'able size */ /* * Initialize source --- called by jpeg_read_header * before any data is actually read. */ #if JPEG_LIB_VERSION >= 61 METHODDEF(void) #else METHODDEF void #endif init_source (j_decompress_ptr cinfo) { my_src_ptr src = (my_src_ptr) cinfo->src; /* We reset the empty-input-file flag for each image, * but we don't clear the input buffer. * This is correct behavior for reading a series of images from one source. */ src->start_of_file = TRUE; } /* * Fill the input buffer --- called whenever buffer is emptied. */ #if JPEG_LIB_VERSION >= 61 METHODDEF(boolean) #else METHODDEF boolean #endif fill_input_buffer (j_decompress_ptr cinfo) { my_src_ptr src = (my_src_ptr) cinfo->src; size_t nbytes; if ((src->data_length)-- == 0) { char c; if (match (src->infile, "\033p#@\177")) { src->data_length = get_header_length (src->infile); read (src->infile, &c, 1); /* Type header */ } else ERREXIT(cinfo, JERR_TVR_PHOTO_HDR); } nbytes = read(src->infile, src->buffer, INPUT_BUF_SIZE); if (nbytes <= 0) { if (src->start_of_file) /* Treat empty input file as fatal error */ ERREXIT(cinfo, JERR_INPUT_EMPTY); WARNMS(cinfo, JWRN_JPEG_EOF); /* Insert a fake EOI marker */ src->buffer[0] = (JOCTET) 0xFF; src->buffer[1] = (JOCTET) JPEG_EOI; nbytes = 2; } src->pub.next_input_byte = src->buffer; src->pub.bytes_in_buffer = nbytes; src->start_of_file = FALSE; return TRUE; } /* * Skip data --- used to skip over a potentially large amount of * uninteresting data (such as an APPn marker). */ #if JPEG_LIB_VERSION >= 61 METHODDEF(void) #else METHODDEF void #endif skip_input_data (j_decompress_ptr cinfo, long num_bytes) { my_src_ptr src = (my_src_ptr) cinfo->src; /* Just a dumb implementation for now. Could use fseek() except * it doesn't work on pipes. Not clear that being smart is worth * any trouble anyway --- large skips are infrequent. */ if (num_bytes > 0) { while (num_bytes > (long) src->pub.bytes_in_buffer) { num_bytes -= (long) src->pub.bytes_in_buffer; (void) fill_input_buffer(cinfo); /* note we assume that fill_input_buffer will never return FALSE, * so suspension need not be handled. */ } src->pub.next_input_byte += (size_t) num_bytes; src->pub.bytes_in_buffer -= (size_t) num_bytes; } } /* * An additional method that can be provided by data source modules is the * resync_to_restart method for error recovery in the presence of RST markers. * For the moment, this source module just uses the default resync method * provided by the JPEG library. That method assumes that no backtracking * is possible. */ /* * Terminate source --- called by jpeg_finish_decompress * after all data has been read. Often a no-op. * * NB: *not* called by jpeg_abort or jpeg_destroy; surrounding * application must deal with any cleanup that should happen even * for error exit. */ #if JPEG_LIB_VERSION >= 61 METHODDEF(void) #else METHODDEF void #endif term_source (j_decompress_ptr cinfo) { /* no work necessary here */ } /* * Prepare for input from a stdio stream. * The caller must have already opened the stream, and is responsible * for closing it after finishing decompression. */ #if JPEG_LIB_VERSION >= 61 LOCAL(void) #else LOCAL void #endif jpeg_fd_src (j_decompress_ptr cinfo, int infile, int l) { my_src_ptr src; /* The source object and input buffer are made permanent so that a series * of JPEG images can be read from the same file by calling jpeg_stdio_src * only before the first one. (If we discarded the buffer at the end of * one image, we'd likely lose the start of the next one.) * This makes it unsafe to use this manager and a different source * manager serially with the same JPEG object. Caveat programmer. */ if (cinfo->src == NULL) { /* first time for this JPEG object? */ cinfo->src = (struct jpeg_source_mgr *) (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_PERMANENT, sizeof(my_source_mgr)); src = (my_src_ptr) cinfo->src; src->buffer = (JOCTET *) (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_PERMANENT, INPUT_BUF_SIZE * sizeof(JOCTET)); } src = (my_src_ptr) cinfo->src; src->pub.init_source = init_source; src->pub.fill_input_buffer = fill_input_buffer; src->pub.skip_input_data = skip_input_data; src->pub.resync_to_restart = jpeg_resync_to_restart; /* use default method */ src->pub.term_source = term_source; src->infile = infile; src->pub.bytes_in_buffer = 0; /* forces fill_input_buffer on first read */ src->pub.next_input_byte = NULL; /* until buffer loaded */ src->data_length = l; } /* * Write some pixel data */ #if JPEG_LIB_VERSION >= 61 METHODDEF(void) #else METHODDEF void #endif put_pixel_rows (j_decompress_ptr cinfo, djpeg_dest_ptr dinfo, JDIMENSION rows_supplied) { x11_dest_ptr dest = (x11_dest_ptr) dinfo; register char * bufferptr; register int pixval; register JSAMPROW ptr; register JDIMENSION col; XColor color; register int i, mod; register unsigned short red, green, blue; ptr = dest->pub.buffer[0]; bufferptr = dest->iobuffer; for (col = cinfo->output_width; col > 0; col--) { /* 256 colors */ if (dest->nplanes == 8) { register JSAMPROW color_map0 = cinfo->colormap[0]; register JSAMPROW color_map1 = cinfo->colormap[1]; register JSAMPROW color_map2 = cinfo->colormap[2]; pixval = GETJSAMPLE(*ptr++); color.red = (unsigned short)GETJSAMPLE(color_map0[pixval]) << 8; color.green = (unsigned short)GETJSAMPLE(color_map1[pixval]) << 8; color.blue = (unsigned short)GETJSAMPLE(color_map2[pixval]) << 8; for (i = 0 ; i != last_color ; i++) { if (color.red == dest->colors[i].red && color.green == dest->colors[i].green && color.blue == dest->colors[i].blue) break; } if (i == last_color) { dest->colors[last_color].red = color.red; dest->colors[last_color].green = color.green; dest->colors[last_color].blue = color.blue; if (cinfo->err->trace_level) fprintf (stderr, "put_demapped_rgb: allocation %d %d %d ", color.red, color.green, color.blue); if (!XAllocColor (dest->display, dest->cmap, &color)) { ERREXIT3(cinfo, JERR_TVR_X11_ALLOC_COLOR, color.red >> 8, color.green >> 8, color.blue >> 8); } if (cinfo->err->trace_level) printf ("==> %d\n", color.pixel); *(dest->pimage_data++) = pixels[last_color] = color.pixel; (last_color)++; } else { *(dest->pimage_data++) = pixels[i]; } } /* > 256 colors */ else { red = (unsigned short)GETJOCTET(*ptr++); green = (unsigned short)GETJOCTET(*ptr++); blue = (unsigned short)GETJOCTET(*ptr++); /* 16 M colors */ if (dest->nplanes == 24) { *(dest->pimage_data_int++) = ((((unsigned int)red) << decalage_rouge) & red_mask) | ((((unsigned int)green) << decalage_vert) & green_mask) | (((unsigned int)blue) & blue_mask); } /* 32K or 65K colors */ else if (dest->nplanes == 16 || dest->nplanes == 15) { red = red >> (8 - nb_bits_rouge); green = green >> (8 - nb_bits_vert); blue = blue >> (8 - nb_bits_bleu); *(dest->pimage_data_short++) = ((((unsigned short)red) << decalage_rouge) & red_mask) | ((((unsigned short)green) << decalage_vert) & green_mask) | (((unsigned short)blue) & blue_mask); } } } if (cinfo->err->trace_level) printf ("put_demapped_rgb: output_scanline = %d\n", cinfo->output_scanline); mod = dest->modulo; if ((cinfo->output_scanline % mod == 0) && cinfo->output_scanline) { if (cinfo->err->trace_level) printf ("put_demapped_rgb: %d\n", cinfo->output_scanline); if (dest->flag_double) { register unsigned int x, y; /* Duplique l'image en doublant la taille */ for (y = 0 ; y < (mod << 1) ; y+=2) { for (x = 0 ; x < dest->ximage_double->width ; x+=2) { register unsigned long pixel = XGetPixel (dest->ximage, x/2, y/2); XPutPixel (dest->ximage_double, x, y, pixel); XPutPixel (dest->ximage_double, x, y+1, pixel); XPutPixel (dest->ximage_double, x+1, y, pixel); XPutPixel (dest->ximage_double, x+1, y+1, pixel); } } XPutImage (dest->display, dest->win, dest->gc, dest->ximage_double, 0, 0, dest->x_photo, dest->y_photo + ((cinfo->output_scanline - mod) << 1), cinfo->output_width << 1, mod << 1); if (!dest->flag_bs) XCopyArea (dest->display, dest->win, dest->win_sauve, dest->gc, dest->x_photo, dest->y_photo + ((cinfo->output_scanline - mod) << 1), cinfo->output_width << 1, mod << 1, dest->x_photo, dest->y_photo + ((cinfo->output_scanline - mod) << 1)); } else { XPutImage (dest->display, dest->win, dest->gc, dest->ximage, 0, 0, dest->x_photo, dest->y_photo + (cinfo->output_scanline - mod), cinfo->output_width, mod); if (!dest->flag_bs) XCopyArea (dest->display, dest->win, dest->win_sauve, dest->gc, dest->x_photo, dest->y_photo + (cinfo->output_scanline - mod), cinfo->output_width, mod, dest->x_photo, dest->y_photo + (cinfo->output_scanline - mod)); } dest->pimage_data = dest->ximage_data; dest->pimage_data_short = (short*) dest->ximage_data; dest->pimage_data_int = (unsigned int*) dest->ximage_data; /* Recalcul du modulo */ if (cinfo->output_height - cinfo->output_scanline < mod) dest->modulo = cinfo->output_height - cinfo->output_scanline; } } /* * Startup: write the file header. */ #if JPEG_LIB_VERSION >= 61 METHODDEF(void) #else METHODDEF void #endif start_output_x11 (j_decompress_ptr cinfo, djpeg_dest_ptr dinfo) { x11_dest_ptr dest = (x11_dest_ptr) dinfo; /* Emit file header */ switch (cinfo->out_color_space) { case JCS_RGB: /* Creation de l'image */ if (!(dest->ximage_data = (char*) calloc (1, sizeof(unsigned int) * cinfo->output_width * 8))) { ERREXIT(cinfo, JERR_TVR_X11_ALLOC_IMAGE); } if (dest->flag_double) { if (!(dest->ximage_data_double = (char*) calloc (1, sizeof(unsigned int) * cinfo->output_width * 2 * 16))) { perror ("start_output_x11: calloc ximage_data"); exit (1); } } /* Pointeurs char, short, int */ dest->pimage_data = dest->ximage_data; dest->pimage_data_short = (short*) dest->ximage_data; dest->pimage_data_int = (unsigned int*) dest->ximage_data; dest->ximage = XCreateImage(dest->display, DefaultVisual (dest->display, dest->screen), dest->nplanes, ZPixmap, 0, dest->ximage_data, cinfo->output_width, 8, 8 * sizeof(unsigned int), 0) ; #ifdef __i386__ dest->ximage->byte_order = LSBFirst; #else dest->ximage->byte_order = MSBFirst; #endif if (dest->flag_double) { dest->ximage_double = XCreateImage(dest->display, DefaultVisual (dest->display, dest->screen), dest->nplanes, ZPixmap, 0, dest->ximage_data_double, cinfo->output_width << 1, 16, 8 * sizeof(unsigned int), 0) ; #ifdef __i386__ dest->ximage_double->byte_order = LSBFirst; #else dest->ximage_double->byte_order = MSBFirst; #endif } break; default: ERREXIT(cinfo, JERR_TVR_X11_COLORSPACE); } } /* * Finish up at the end of the file. */ #if JPEG_LIB_VERSION >= 61 METHODDEF(void) #else METHODDEF void #endif finish_output_x11 (j_decompress_ptr cinfo, djpeg_dest_ptr dinfo) { x11_dest_ptr dest = (x11_dest_ptr) dinfo; XFlush (dest->display); XDestroyImage (dest->ximage); if (dest->flag_double) XDestroyImage (dest->ximage_double); } /* * The module selection routine for X format output. */ #if JPEG_LIB_VERSION >= 61 GLOBAL(djpeg_dest_ptr) #else GLOBAL djpeg_dest_ptr #endif jinit_write_x11 (j_decompress_ptr cinfo, VideotexWidget w) { x11_dest_ptr dest; unsigned long r, g, b; Visual *visual; register VideotexPart *pv = &w->videotex; /* Create module interface object, fill in method pointers */ dest = (x11_dest_ptr) (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, sizeof(x11_dest_struct)); dest->pub.start_output = start_output_x11; dest->pub.finish_output = finish_output_x11; /* Calculate output image dimensions so we can allocate space */ jpeg_calc_output_dimensions(cinfo); /* Create physical I/O buffer. Note we make this near on a PC. */ dest->samples_per_row = cinfo->output_width * cinfo->out_color_components; dest->buffer_width = dest->samples_per_row * (BYTESPERSAMPLE * sizeof(char)); dest->iobuffer = (char *) (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, dest->buffer_width); if (cinfo->quantize_colors || BITS_IN_JSAMPLE != 8 || sizeof(JSAMPLE) != sizeof(char)) { /* When quantizing, we need an output buffer for colormap indexes * that's separate from the physical I/O buffer. We also need a * separate buffer if pixel format translation must take place. */ dest->pub.buffer = (*cinfo->mem->alloc_sarray) ((j_common_ptr) cinfo, JPOOL_IMAGE, cinfo->output_width * cinfo->output_components, (JDIMENSION) 1); } else { /* We will fwrite() directly from decompressor output buffer. */ /* Synthesize a JSAMPARRAY pointer structure */ /* Cast here implies near->far pointer conversion on PCs */ dest->pixrow = (JSAMPROW) dest->iobuffer; dest->pub.buffer = & dest->pixrow; } dest->pub.buffer_height = 1; dest->pub.put_pixel_rows = put_pixel_rows; dest->display = XtDisplay(w); dest->screen = DefaultScreen(dest->display); dest->gc = pv->gc; dest->win = XtWindow(w); dest->flag_bs = pv->flag_bs; dest->win_sauve = pv->ecran_sauve; dest->nplanes = DisplayPlanes (dest->display, dest->screen); dest->cmap = w->core.colormap; dest->flag_double = !pv->petite_fonte; dest->modulo = 8; dest->x_photo = pv->rectangle_photo.x; dest->y_photo = pv->rectangle_photo.y; /* * Calcul des decalages et nb bits si + de 256 couleurs */ if (dest->nplanes > 8) { visual = DefaultVisual (dest->display, dest->screen); r = red_mask = visual->red_mask; g = green_mask = visual->green_mask; b = blue_mask = visual->blue_mask; nb_bits_rouge = 0; nb_bits_vert = 0; nb_bits_bleu = 0; decalage_rouge = 0; decalage_vert = 0; decalage_bleu = 0; while (!(r & 1)) { r >>= 1; decalage_rouge++; } while (r & 1) { r >>= 1; nb_bits_rouge++; } while (!(g & 1)) { g >>= 1; decalage_vert++; } while (g & 1) { g >>= 1; nb_bits_vert++; } while (!(b & 1)) { b >>= 1; decalage_bleu++; } while (b & 1) { b >>= 1; nb_bits_bleu++; } } /* Liberation eventuelle des couleurs precedentes */ if (last_was_full_screen) { XFreeColors (dest->display, dest->cmap, pixels, last_color, 0); last_color = 0; } last_was_full_screen = (cinfo->output_width == 320 && cinfo->output_height == 240); return (djpeg_dest_ptr) dest; } /* * Marker processor for COM markers. * This replaces the library's built-in processor, which just skips the marker. * We want to print out the marker as text, if possible. * Note this code relies on a non-suspending data source. */ #if JPEG_LIB_VERSION >= 61 LOCAL(unsigned int) #else LOCAL unsigned int #endif jpeg_getc (j_decompress_ptr cinfo) /* Read next byte */ { struct jpeg_source_mgr * datasrc = cinfo->src; if (datasrc->bytes_in_buffer == 0) { if (! (*datasrc->fill_input_buffer) (cinfo)) ERREXIT(cinfo, JERR_CANT_SUSPEND); } datasrc->bytes_in_buffer--; return GETJOCTET(*datasrc->next_input_byte++); } #if JPEG_LIB_VERSION >= 61 METHODDEF(boolean) #else METHODDEF boolean #endif COM_handler (j_decompress_ptr cinfo) { boolean traceit = (cinfo->err->trace_level >= 1); INT32 length; unsigned int ch; unsigned int lastch = 0; length = jpeg_getc(cinfo) << 8; length += jpeg_getc(cinfo); length -= 2; /* discount the length word itself */ if (traceit) fprintf(stderr, "COM_handler: Comment, length %ld:\n", (long) length); while (--length >= 0) { ch = jpeg_getc(cinfo); if (traceit) { /* Emit the character in a readable form. * Nonprintables are converted to \nnn form, * while \ is converted to \\. * Newlines in CR, CR/LF, or LF form will be printed as one newline. */ if (ch == '\r') { fprintf(stderr, "\n"); } else if (ch == '\n') { if (lastch != '\r') fprintf(stderr, "\n"); } else if (ch == '\\') { fprintf(stderr, "\\\\"); } else if (isprint(ch)) { putc(ch, stderr); } else { fprintf(stderr, "\\%03o", ch); } lastch = ch; } } if (traceit) fprintf(stderr, "\n"); return TRUE; } /* Fonction de decodage */ void decode_jpeg_tvr (w) VideotexWidget w; { char c; struct jpeg_decompress_struct cinfo; struct jpeg_error_mgr jerr; djpeg_dest_ptr dest_mgr = NULL; int input_file; JDIMENSION num_scanlines; register VideotexPart *pv = &w->videotex; /* Initialize the JPEG decompression object with default error handling. */ cinfo.err = jpeg_std_error(&jerr); cinfo.err->trace_level = 0; jpeg_create_decompress(&cinfo); /* Add some application-specific error messages */ jerr.addon_message_table = tvr_message_table; jerr.first_addon_message = JMSG_FIRSTADDONCODE; jerr.last_addon_message = JMSG_LASTADDONCODE; /* Insert custom COM marker processor. */ jpeg_set_marker_processor(&cinfo, JPEG_COM, COM_handler); /* Specify data source for decompression */ jpeg_fd_src(&cinfo, pv->fd_connexion, pv->longueur_data_jpeg); /* Read file header, set default decompression parameters */ (void) jpeg_read_header(&cinfo, TRUE); if (DisplayPlanes(XtDisplay(w), DefaultScreen(XtDisplay(w))) <= 8) { /* 50 couleurs */ cinfo.desired_number_of_colors = 50; cinfo.quantize_colors = TRUE; } else cinfo.quantize_colors = FALSE; /* Initialize the output module now to let it override any crucial * option settings (for instance, GIF wants to force color quantization). */ dest_mgr = jinit_write_x11(&cinfo, w); /* Start decompressor */ jpeg_start_decompress(&cinfo); /* Write output file header */ (*dest_mgr->start_output) (&cinfo, dest_mgr); /* Process data */ while (cinfo.output_scanline < cinfo.output_height) { num_scanlines = jpeg_read_scanlines(&cinfo, dest_mgr->buffer, dest_mgr->buffer_height); (*dest_mgr->put_pixel_rows) (&cinfo, dest_mgr, num_scanlines); } /* Finish decompression and release memory. * I must do it in this order because output module has allocated memory * of lifespan JPOOL_IMAGE; it needs to finish before releasing memory. */ (*dest_mgr->finish_output) (&cinfo, dest_mgr); jpeg_finish_decompress(&cinfo); jpeg_destroy_decompress(&cinfo); } /* liberation des couleurs forcee a cause de l'effacement d'ecran */ void libere_couleurs_tvr (w) VideotexWidget w; { if (last_color) { XFreeColors (XtDisplay(w), w->core.colormap, pixels, last_color, 0); last_color = 0; } } #endif /* NO_TVR */ xtel-3.3.0.orig/Videotex/xvdt.c0100444001424500142340000001010207006250515015201 0ustar ericperso/* * xtel - Emulateur MINITEL sous X11 * * Copyright (C) 1991-1994 Lectra Systemes & Pierre Ficheux * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ static char rcsid[] = "$Id: xvdt.c,v 1.5 1998/10/02 14:51:37 pierre Exp $"; /* * Test du widget Videotex */ #include #include #include #include #include #include "Videotex.h" extern char *basename (); static Widget toplevel, form, vdts; static XtAppContext app_context; static Colormap new_cmap; static int fd; static XtInputId input_id; static char *xteld_serveur, *xteld_service; static void Fin (w, client_data, pevent) Widget w; caddr_t client_data; XButtonEvent *pevent; { if (xteld_serveur) { XtRemoveInput (input_id); close (fd); } exit (0); } void read_the_server (client_data, fid, id) XtPointer client_data; /* non utilise */ int *fid; XtInputId *id; { unsigned char c; if (read (*fid, &c, 1) > 0) videotexDecode (vdts, c); } static void OpenConnection (w, client_data, pevent) Widget w; caddr_t client_data; XButtonEvent *pevent; { char c; if ((fd = c_clientbyname (xteld_serveur, xteld_service)) < 0) { fprintf (stderr, "OpenConnection: Erreur de connexion au serveur %s, service%s.\n", xteld_serveur, xteld_service); exit (1); } XtVaSetValues (vdts, XtNfdConnexion, fd, NULL); input_id = XtAppAddInput (app_context, fd, (XtPointer)XtInputReadMask, (XtInputCallbackProc)read_the_server, NULL); } static void Decode (w, client_data, pevent) Widget w; caddr_t client_data; XButtonEvent *pevent; { char c; fd = open (client_data, O_RDONLY); if (fd > 0) { XtVaSetValues (w, XtNfdConnexion, fd, NULL); videotexDecode (w, 12); while (read (fd, &c, 1) > 0) videotexDecode (w, c); close (fd); } else { perror (client_data); exit (1); } } static void Usage (char *s) { fprintf (stderr, "%s: [-p] [-s serveur] [-S service] [fichier]\n", s); exit (1); } main (ac, av) int ac; char **av; { char *filename, *progname, *cp; Boolean private_cmap = False; int i; progname = basename(av[0]); toplevel = XtAppInitialize(&app_context, "XVdt", NULL, 0, &ac, av, NULL, NULL, 0); if (ac < 2) Usage (progname); /* Lecture de la ligne de commande */ while (--ac) { if ((cp = *++av) == NULL) break; if (*cp == '-' && *++cp) { switch(*cp) { case 'p' : ++av; private_cmap = True; break; case 's' : xteld_serveur = *++av; break; case 'S': xteld_service = *++av; break; default: Usage (progname); } } else { break; } } filename = cp; if (xteld_serveur && !xteld_service) xteld_service = "xtel"; if (private_cmap) { new_cmap = XCopyColormapAndFree (XtDisplay(toplevel), DefaultColormapOfScreen ( XtScreen( toplevel)) ); XtVaSetValues (toplevel, XtNcolormap, new_cmap, NULL); } form = XtCreateManagedWidget ("form", formWidgetClass, toplevel, NULL, 0); vdts = XtVaCreateManagedWidget ("vdts", videotexWidgetClass, form, XtNenqROM, "Cv1", XtNconnecte, True, NULL); if (xteld_serveur) XtAddEventHandler (vdts, ExposureMask, False, OpenConnection, (caddr_t)NULL); else XtAddEventHandler (vdts, ExposureMask, False, Decode, (caddr_t)filename); XtAddEventHandler (vdts, ButtonPressMask, False, Fin, NULL); XtRealizeWidget(toplevel); XtAppMainLoop (app_context); } xtel-3.3.0.orig/Widgets/0040755001424500142340000000000007242250361013703 5ustar ericpersoxtel-3.3.0.orig/Widgets/Imakefile0100444001424500142340000000107306703332512015510 0ustar ericpersoXCOMM XCOMM Imakefile widgets XpmButton + XpmToggle + Timer XCOMM XCOMM Auteur : Pierre FICHEUX XCOMM $Id: Imakefile,v 1.3 1996/10/28 13:34:30 pierre Exp $ XCOMM #include "../Config.tmpl" #ifdef MOTIF SRCS= Timer.c XpmButton.c OBJS= Timer.o XpmButton.o HDRS= Timer.h TimerP.h XpmButton.h XpmButtonP.h #else SRCS= Timer.c XpmButton.c XpmToggle.c OBJS= Timer.o XpmButton.o XpmToggle.o HDRS= Timer.h TimerP.h XpmButton.h XpmButtonP.h XpmToggle.h XpmToggleP.h #endif NormalLibraryTarget(Widgets, $(OBJS)) NormalLintTarget($(SRCS)) depend:: $(SRCS) $(HDRS) DependTarget() xtel-3.3.0.orig/Widgets/Timer.c0100444001424500142340000002264406703332512015132 0ustar ericperso/* * Copyright (C) 1995 Pierre Ficheux (pierre@rd.lectra.fr) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ static char rcsid[] = "$Id: Timer.c,v 1.6 1997/02/21 17:03:36 pierre Exp $"; /* * Timer, a digital clock/timer widget */ #include #include #include #include #include #include #include "TimerP.h" /**************************************************************** * * Full class record constant * ****************************************************************/ /* Private Data */ static char defaultTranslations[] = ""; #define offset(field) XtOffsetOf(TimerRec, field) static XtResource resources[] = { {XtNfont, XtCFont, XtRFontStruct, sizeof(XFontStruct *), offset(timer.font),XtRString, XtDefaultFont}, {XtNclockForeground, XtCClockForeground, XtRPixel, sizeof(Pixel), offset(timer.clock_foreground), XtRString, XtDefaultForeground}, {XtNtimerForeground, XtCTimerForeground, XtRPixel, sizeof(Pixel), offset(timer.timer_foreground), XtRString, XtDefaultForeground}, {XtNmargin, XtCBorderWidth, XtRDimension, sizeof(Dimension), offset(timer.margin), XtRImmediate, (XtPointer)2}, {XtNtimerMode, XtCTimerMode, XtRBoolean, sizeof(Boolean), offset(timer.timer_mode), XtRImmediate, (XtPointer)False}, {XtNcountDown, XtCCountDown, XtRBoolean, sizeof(Boolean), offset(timer.count_down), XtRImmediate, (XtPointer)False}, {XtNmin, XtCMin, XtRInt, sizeof (int), offset(timer.min), XtRImmediate, (XtPointer) 0}, {XtNsec, XtCSec, XtRInt, sizeof (int), offset(timer.sec), XtRImmediate, (XtPointer) 0}, }; #undef offset static void SetTimer(), DrawValue(); static XtTimerCallbackProc RefreshTimer(); static Boolean SetValues(); static void Initialize(), Redisplay(); static void Destroy(); static void ClassInitialize(); static void Realize(), Resize(); TimerClassRec timerClassRec = { { #define superclass (&widgetClassRec) (WidgetClass)superclass, /* superclass */ "Timer", /* class_name */ sizeof(TimerRec), /* size */ ClassInitialize, /* class_initialize */ NULL, /* class_part_initialize */ FALSE, /* class_inited */ Initialize, /* initialize */ NULL, /* initialize_hook */ Realize, /* realize */ NULL, /* actions */ 0, /* num_actions */ resources, /* resources */ XtNumber(resources), /* resource_count */ NULLQUARK, /* xrm_class */ FALSE, /* compress_motion */ TRUE, /* compress_exposure */ TRUE, /* compress_enterleave */ FALSE, /* visible_interest */ Destroy, /* destroy */ Resize, /* resize */ Redisplay, /* expose */ SetValues, /* set_values */ NULL, /* set_values_hook */ XtInheritSetValuesAlmost, /* set_values_almost */ NULL, /* get_values_hook */ NULL, /* accept_focus */ XtVersion, /* version */ NULL, /* callback_private */ defaultTranslations, /* tm_table */ XtInheritQueryGeometry, /* query_geometry */ XtInheritDisplayAccelerator, /* display_accelerator */ NULL /* extension */ }, /* CoreClass fields initialization */ }; /* for public consumption */ WidgetClass timerWidgetClass = (WidgetClass) &timerClassRec; /**************************************************************** * * Private Procedures * ****************************************************************/ /* ARGSUSED */ static void Initialize(request, new, args, num_args) Widget request, new; ArgList args; /* unused */ Cardinal *num_args; /* unused */ { TimerWidget tw = (TimerWidget) new; XGCValues values; values.foreground = tw->timer.clock_foreground; values.background = tw->core.background_pixel; values.font = tw->timer.font->fid; tw->timer.clock_GC = XtGetGC((Widget)tw, (unsigned) GCForeground | GCBackground | GCFont, &values); values.foreground = tw->timer.timer_foreground; tw->timer.timer_GC = XtGetGC((Widget)tw, (unsigned) GCForeground | GCBackground | GCFont, &values); tw->timer.state = TimerOff; tw->timer.min_init = tw->timer.min; tw->timer.sec_init = tw->timer.sec; SetTimer (tw, True); tw->core.width = 2 * tw->timer.margin + 5 * tw->timer.font->max_bounds.width; tw->core.height = 2 * tw->timer.margin + tw->timer.font->max_bounds.ascent + tw->timer.font->max_bounds.descent; } /*************************** * * Action Procedures * ***************************/ /* * Repaint the widget window */ /************************ * * REDISPLAY (DRAW) * ************************/ /* ARGSUSED */ static void Redisplay(w, event, region) Widget w; XEvent *event; Region region; { TimerWidget tw = (TimerWidget) w; /* If clock mode, start now */ if (!tw->timer.timer_mode && tw->timer.state != TimerOn) { tw->timer.id = XtAppAddTimeOut(XtWidgetToApplicationContext((Widget)tw), (unsigned long) 1000, (XtTimerCallbackProc) RefreshTimer, (XtPointer)tw); tw->timer.state = TimerOn; } DrawValue (tw); } static void Destroy(w) Widget w; { TimerWidget tw = (TimerWidget) w; XtReleaseGC (w, tw->timer.timer_GC); XtReleaseGC (w, tw->timer.clock_GC); } /* * Set specified arguments into widget */ /* ARGSUSED */ static Boolean SetValues (current, request, new) Widget current, request, new; { TimerWidget curtw = (TimerWidget) current; TimerWidget newtw = (TimerWidget) new; Boolean redisplay = False; if (curtw->timer.min != newtw->timer.min) newtw->timer.min_init = newtw->timer.min; if (curtw->timer.sec != newtw->timer.sec) newtw->timer.sec_init = newtw->timer.sec; /* From timer to clock, force re-init */ if (curtw->timer.timer_mode && !newtw->timer.timer_mode) SetTimer (newtw, True); if (curtw->timer.font != newtw->timer.font || curtw->timer.clock_foreground != newtw->timer.clock_foreground || curtw->timer.timer_foreground != newtw->timer.timer_foreground || curtw->timer.margin != newtw->timer.margin || curtw->timer.min != newtw->timer.min || curtw->timer.sec != newtw->timer.sec || curtw->timer.count_down != newtw->timer.count_down || curtw->timer.timer_mode != newtw->timer.timer_mode) { if (newtw->timer.timer_mode == False) timerResetTimer (curtw); redisplay = True; } return (redisplay); } static void ClassInitialize() { } static void Realize(w, valueMask, attributes) Widget w; Mask *valueMask; XSetWindowAttributes *attributes; { XtCreateWindow(w, (unsigned) InputOutput, (Visual *) CopyFromParent, *valueMask, attributes); } static void Resize(w) Widget w; { } static void DrawValue(tw) TimerWidget tw; { XDrawImageString(XtDisplay((Widget)tw), XtWindow((Widget)tw), (tw->timer.timer_mode ? tw->timer.timer_GC : tw->timer.clock_GC), tw->timer.margin, tw->timer.margin + tw->timer.font->max_bounds.ascent, tw->timer.value, strlen(tw->timer.value)); } static void SetTimer(tw, init) TimerWidget tw; Boolean init; { time_t t = time(0); struct tm *tm; /* Timer mode */ if (tw->timer.timer_mode) { sprintf (tw->timer.value, "%02d:%02d", tw->timer.min, tw->timer.sec); if (tw->timer.count_down) { if (tw->timer.sec == 0) { if (tw->timer.min > 0) { tw->timer.min--; tw->timer.sec = 60; } else { timerStopTimer ((Widget)tw); tw->timer.sec++; } } tw->timer.sec--; } else { tw->timer.sec++; if (tw->timer.sec == 60) { tw->timer.sec = 0; tw->timer.min++; } } } /* Clock mode */ else { tm = localtime (&t); if (tm->tm_sec == 0 || init) sprintf (tw->timer.value, "%02d:%02d", tm->tm_hour, tm->tm_min); } } static XtTimerCallbackProc RefreshTimer(tw, id) TimerWidget tw; XtIntervalId *id; { if (tw->timer.state == TimerOn) { tw->timer.id = XtAppAddTimeOut(XtWidgetToApplicationContext((Widget)tw), (unsigned long) 1000, (XtTimerCallbackProc) RefreshTimer, (XtPointer)tw); SetTimer (tw, False); DrawValue (tw); } } /* * Public functions */ void timerStartTimer (w) Widget w; { TimerWidget tw = (TimerWidget)w; if (tw->timer.timer_mode && tw->timer.state == TimerOff) { tw->timer.id = XtAppAddTimeOut(XtWidgetToApplicationContext((Widget)tw), (unsigned long) 1000, (XtTimerCallbackProc) RefreshTimer, (XtPointer)tw); tw->timer.state = TimerOn; } } void timerStopTimer (w) Widget w; { TimerWidget tw = (TimerWidget)w; if (tw->timer.timer_mode && tw->timer.state == TimerOn) { tw->timer.state = TimerOff; XtRemoveTimeOut (tw->timer.id); } } void timerResetTimer (w) Widget w; { TimerWidget tw = (TimerWidget)w; if (tw->timer.timer_mode) { if (tw->timer.state == TimerOn) timerStopTimer (w); tw->timer.min = tw->timer.min_init; tw->timer.sec = tw->timer.sec_init; SetTimer (tw, False); DrawValue (tw); } } xtel-3.3.0.orig/Widgets/Timer.h0100444001424500142340000000352506703332512015134 0ustar ericperso/* * Copyright (C) 1995 Pierre Ficheux (pierre@rd.lectra.fr) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ident "$Id: Timer.h,v 1.2 1997/01/08 14:43:20 pierre Exp $" #ifndef _Timer_h #define _Timer_h /* Timer widget resources: Name Class RepType Default Value ---- ----- ------- ------------- */ #define XtNclockForeground "clockForeground" #define XtNtimerForeground "timerForeground" #define XtNmargin "margin" #define XtNmin "min" #define XtNsec "sec" #define XtNtimerMode "timerMode" #define XtNcountDown "countDown" #define XtCClockForeground "ClockForeground" #define XtCTimerForeground "TimerForeground" #define XtCMin "Min" #define XtCSec "Sec" #define XtCTimerMode "TimerMode" #define XtCCountDown "CountDown" extern WidgetClass timerWidgetClass; typedef struct _TimerClassRec *TimerWidgetClass; typedef struct _TimerRec *TimerWidget; /* Public functions */ #ifdef _STDC_ void timerStartTimer (Widget w); void timerStopTimer (Widget w); void timerResetTimer (Widget w); #else void timerStartTimer (); void timerStopTimer (); void timerResetTimer (); #endif /* _STDC_ */ #endif /* _Timer_h */ /* DON'T ADD STUFF AFTER THIS */ xtel-3.3.0.orig/Widgets/TimerP.h0100444001424500142340000000450506703332512015253 0ustar ericperso/* * Copyright (C) 1995 Pierre Ficheux (pierre@rd.lectra.fr) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ident "$Id: TimerP.h,v 1.2 1997/01/08 14:43:29 pierre Exp $" /* * TimerP.h - Private definitions for Timer widget */ #ifndef _TimerP_h #define _TimerP_h #include "Timer.h" /*********************************************************************** * * Timer Widget Private Data * ***********************************************************************/ typedef enum { TimerOff, TimerOn } timerState; /************************************ * * Class structure * ***********************************/ /* New fields for the Timer widget class record */ typedef struct _TimerClass { int makes_compiler_happy; /* not used */ } TimerClassPart; /* Full class record declaration */ typedef struct _TimerClassRec { CoreClassPart core_class; TimerClassPart timer_class; } TimerClassRec; extern TimerClassRec timerClassRec; /*************************************** * * Instance (widget) structure * **************************************/ /* New fields for the Timer widget record */ typedef struct { /* resources */ XFontStruct *font; Pixel clock_foreground; Pixel timer_foreground; Dimension margin; int min; int sec; Boolean timer_mode; Boolean count_down; /* private state */ int min_init, sec_init; GC clock_GC; GC timer_GC; timerState state; XtIntervalId id; char value[256]; } TimerPart; /* Full widget declaration */ typedef struct _TimerRec { CorePart core; TimerPart timer; } TimerRec; #endif /* _XawTimerP_h */ xtel-3.3.0.orig/Widgets/XpmButton.c0100444001424500142340000004352606703332512016014 0ustar ericperso/* * Copyright (C) 1995 Pierre Ficheux (pierre@rd.lectra.fr) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ static char rcsid[] = "$Id: XpmButton.c,v 1.6 1997/07/08 10:13:59 pierre Exp $"; /* * XpmButton, a simple push/toggle button widget with a nice * XPM Pixmap inside... */ #include #include #include #include #ifndef USE_MOTIF #include #endif #include #include "XpmButtonP.h" /**************************************************************** * * Full class record constant * ****************************************************************/ /* Private Data */ static char defaultTranslations[] = ": set() \n\ : notify() unset() \n\ : enter() \n\ : leave()"; #define offset(field) XtOffsetOf(XpmButtonRec, field) static XtResource resources[] = { {XtNcallback, XtCCallback, XtRCallback, sizeof(XtPointer), offset(xpmbutton.callback), XtRCallback, (XtPointer)NULL}, {XtNpixmap1, XtCPixmap, XtRPixmap, sizeof(Pixmap), offset(xpmbutton.pixmap1), XtRImmediate, (XtPointer)None}, {XtNpixmap2, XtCPixmap, XtRPixmap, sizeof(Pixmap), offset(xpmbutton.pixmap2), XtRImmediate, (XtPointer)None}, {XtNshape1, XtCPixshape, XtRPixshape, sizeof(Pixshape), offset(xpmbutton.shape1), XtRImmediate, (XtPointer)None}, {XtNshape2, XtCPixshape, XtRPixshape, sizeof(Pixshape), offset(xpmbutton.shape2), XtRImmediate, (XtPointer)None}, {XtNunsensitiveBitmap, XtCPixmap, XtRPixmap, sizeof(Pixmap), offset(xpmbutton.unsensitive_bitmap), XtRImmediate, (XtPointer)None}, {XtNhelpFont, XtCFont, XtRFontStruct, sizeof(XFontStruct *), offset(xpmbutton.help_font),XtRString, XtDefaultFont}, {XtNhelpString, XtCHelpString, XtRString, sizeof(String), offset(xpmbutton.help_string), XtRString, NULL}, {XtNhelpBackground, XtCHelpBackground, XtRPixel, sizeof(Pixel), offset(xpmbutton.help_background), XtRString, XtDefaultBackground}, {XtNhelpForeground, XtCHelpForeground, XtRPixel, sizeof(Pixel), offset(xpmbutton.help_foreground), XtRString, XtDefaultForeground}, {XtNshadowColor1, XtCShadowColor, XtRPixel, sizeof(Pixel), offset(xpmbutton.shadow_color1), XtRString, XtDefaultForeground}, {XtNshadowColor2, XtCShadowColor, XtRPixel, sizeof(Pixel), offset(xpmbutton.shadow_color2), XtRString, XtDefaultForeground}, {XtNshadowThickness, XtCShadowThickness, XtRDimension, sizeof(Dimension), offset(xpmbutton.shadow_thickness), XtRImmediate, (XtPointer)0}, }; #undef offset static Boolean SetValues(); static void Initialize(), Redisplay(), Set(), Unset(); static void Enter(), Leave(), Notify(); static void Destroy(); static void ClassInitialize(); static void Realize(), Resize(); static void MyCvtStringToPixmap(); static void MyCvtStringToShapemask(); static XtActionsRec actionsList[] = { {"set", Set}, {"unset", Unset}, {"notify", Notify}, {"enter", Enter}, {"leave", Leave}, }; static XtConvertArgRec myScreenConvertArg[] = { {XtBaseOffset, (XtPointer) XtOffset(Widget, core.screen), sizeof(Screen *)} }; XpmButtonClassRec xpmButtonClassRec = { { /* core_class fields */ #ifdef USE_MOTIF #define superclass (&xmPrimitiveClassRec) #else #define superclass (&simpleClassRec) #endif (WidgetClass)superclass, /* superclass */ "XpmButton", /* class_name */ sizeof(XpmButtonRec), /* size */ ClassInitialize, /* class_initialize */ NULL, /* class_part_initialize */ FALSE, /* class_inited */ Initialize, /* initialize */ NULL, /* initialize_hook */ Realize, /* realize */ actionsList, /* actions */ XtNumber(actionsList), /* num_actions */ resources, /* resources */ XtNumber(resources), /* resource_count */ NULLQUARK, /* xrm_class */ FALSE, /* compress_motion */ TRUE, /* compress_exposure */ TRUE, /* compress_enterleave */ FALSE, /* visible_interest */ Destroy, /* destroy */ Resize, /* resize */ Redisplay, /* expose */ SetValues, /* set_values */ NULL, /* set_values_hook */ XtInheritSetValuesAlmost, /* set_values_almost */ NULL, /* get_values_hook */ NULL, /* accept_focus */ XtVersion, /* version */ NULL, /* callback_private */ defaultTranslations, /* tm_table */ XtInheritQueryGeometry, /* query_geometry */ XtInheritDisplayAccelerator, /* display_accelerator */ NULL /* extension */ }, /* CoreClass fields initialization */ #ifdef USE_MOTIF { /* primitive_class record */ /* Primitive border_highlight */ NULL, /* Primitive border_unhighlight */ NULL, /* translations */ XtInheritTranslations, /* arm_and_activate */ NULL, /* get resources */ NULL, /* num get_resources */ 0, /* extension */ NULL, }, #else { XtInheritChangeSensitive /* change_sensitive */ }, /* XpmButtonClass fields initialization */ #endif /* USE_MOTIF */ }; /* for public consumption */ WidgetClass xpmButtonWidgetClass = (WidgetClass) &xpmButtonClassRec; /**************************************************************** * * Private Procedures * ****************************************************************/ /* ARGSUSED */ static void Initialize(request, new, args, num_args) Widget request, new; ArgList args; /* unused */ Cardinal *num_args; /* unused */ { XpmButtonWidget xbw = (XpmButtonWidget) new; int rab, width, height; Window root; XGCValues values; XpmAttributes xpma; xpma.colormap = new->core.colormap; xpma.valuemask = XpmColormap; /* If no Pixmap defined, use the default ;-) */ if (xbw->xpmbutton.pixmap1 == None) { fprintf (stderr, "xpmButtonWidget: Warning, no Pixmap defined, using default.\n"); XpmCreatePixmapFromData (XtDisplay(new), RootWindowOfScreen(XtScreen(new)), default_xpm, &xbw->xpmbutton.pixmap1, NULL, &xpma); XpmCreatePixmapFromData (XtDisplay(new), RootWindowOfScreen(XtScreen(new)), default_on_xpm, &xbw->xpmbutton.pixmap2, NULL, &xpma); } if (xbw->xpmbutton.pixmap2 == None) xbw->xpmbutton.pixmap2 = xbw->xpmbutton.pixmap1; if (xbw->xpmbutton.shape2 == None) xbw->xpmbutton.shape2 = xbw->xpmbutton.shape1; xbw->xpmbutton.set = FALSE; xbw->xpmbutton.help_armed = FALSE; XGetGeometry (XtDisplay(xbw), xbw->xpmbutton.pixmap1, &root, &rab, &rab, (unsigned int *)&width, (unsigned int *)&height, (unsigned int *)&rab, (unsigned int *)&rab); xbw->core.width = width + 2 * xbw->xpmbutton.shadow_thickness; xbw->core.height = height + 2 * xbw->xpmbutton.shadow_thickness; xbw->xpmbutton.normal_GC = XCreateGC (XtDisplay(new), RootWindowOfScreen(XtScreen(new)), 0, NULL); values.foreground = xbw->xpmbutton.shadow_color1; xbw->xpmbutton.color1_GC = XtGetGC(new, (unsigned) GCForeground, &values); values.foreground = xbw->xpmbutton.shadow_color2; xbw->xpmbutton.color2_GC = XtGetGC(new, (unsigned) GCForeground, &values); /* Create the Help window ? */ if (xbw->xpmbutton.help_string) { int ws, hs; XSetWindowAttributes attr; XGCValues values; attr.override_redirect = True; attr.background_pixel = xbw->xpmbutton.help_background; ws = XTextWidth (xbw->xpmbutton.help_font, xbw->xpmbutton.help_string, strlen (xbw->xpmbutton.help_string))+4; hs = xbw->xpmbutton.help_font->ascent+xbw->xpmbutton.help_font->descent+4; xbw->xpmbutton.help_window = XCreateWindow (XtDisplay(new), RootWindowOfScreen(XtScreen(new)), 0, 0, ws, hs, 1, DisplayPlanes(XtDisplay(new), DefaultScreen(XtDisplay(new))), CopyFromParent, CopyFromParent, CWOverrideRedirect|CWBackPixel, &attr); values.foreground = xbw->xpmbutton.help_foreground; values.background = xbw->xpmbutton.help_background; values.font = xbw->xpmbutton.help_font->fid; xbw->xpmbutton.help_GC = XtGetGC((Widget)xbw, (unsigned) GCForeground | GCBackground | GCFont, &values); } } /*************************** * * Action Procedures * ***************************/ static void DrawPixmap (w, pixmap, shape) Widget w; Pixmap pixmap, shape; { XpmButtonWidget xbw = (XpmButtonWidget)w; GC gc = xbw->xpmbutton.normal_GC; register int st = xbw->xpmbutton.shadow_thickness; register int ww = w->core.width-2*st; register int hh = w->core.height-2*st; if (XtIsRealized(w) && pixmap != None) { XClearWindow(XtDisplay(w), XtWindow(w)); if (!XtIsSensitive (w)) { if (xbw->xpmbutton.unsensitive_bitmap != None) XSetClipMask(XtDisplay(w), gc, xbw->xpmbutton.unsensitive_bitmap); } else { if (shape != None) { XSetClipMask(XtDisplay(w), gc, shape); } else { XSetClipMask(XtDisplay(w), gc, (Pixmap)None); } } /* Draws the pixmap */ XCopyArea(XtDisplay(w), pixmap, XtWindow(w), gc, 0, 0, ww, hh, st, st); /* Draws the shadows */ if (st) { XPoint poly1[6]; XPoint poly2[6]; poly1[0].x = 0; poly1[0].y = 0; poly1[1].x = ww+2*st; poly1[1].y = 0; poly1[2].x = ww+st; poly1[2].y = st; poly1[3].x = st; poly1[3].y = st; poly1[4].x = st; poly1[4].y = hh+st; poly1[5].x = 0; poly1[5].y = hh+2*st; poly2[0].x = 0; poly2[0].y = hh+2*st; poly2[1].x = ww+2*st; poly2[1].y = hh+2*st; poly2[2].x = ww+2*st; poly2[2].y = 0; poly2[3].x = ww+st; poly2[3].y = st; poly2[4].x = ww+st; poly2[4].y = hh+st; poly2[5].x = st; poly2[5].y = hh+st; if (xbw->xpmbutton.set) { XFillPolygon (XtDisplay(w), XtWindow(w), xbw->xpmbutton.color2_GC, poly1, 6, Nonconvex, CoordModeOrigin); XFillPolygon (XtDisplay(w), XtWindow(w), xbw->xpmbutton.color1_GC, poly2, 6, Nonconvex, CoordModeOrigin); } else { XFillPolygon (XtDisplay(w), XtWindow(w), xbw->xpmbutton.color1_GC, poly1, 6, Nonconvex, CoordModeOrigin); XFillPolygon (XtDisplay(w), XtWindow(w), xbw->xpmbutton.color2_GC, poly2, 6, Nonconvex, CoordModeOrigin); } } } } static XtTimerCallbackProc hide_help (w, id) Widget w; XtIntervalId *id; { XpmButtonWidget xbw = (XpmButtonWidget)w; if (xbw->xpmbutton.help_string) XUnmapWindow (XtDisplay(w), xbw->xpmbutton.help_window); } static XtTimerCallbackProc show_help (w, id) Widget w; XtIntervalId *id; { XpmButtonWidget xbw = (XpmButtonWidget)w; Window dummy_w; int dummy, x_root, y_root; XQueryPointer (XtDisplay(w), XtWindow(w), &dummy_w, &dummy_w, &x_root, &y_root, &dummy, &dummy, (unsigned int *)&dummy); XMoveWindow (XtDisplay(w), xbw->xpmbutton.help_window, x_root, y_root+10); XRaiseWindow (XtDisplay(w), xbw->xpmbutton.help_window); XMapWindow (XtDisplay(w), xbw->xpmbutton.help_window); XDrawImageString (XtDisplay(w), xbw->xpmbutton.help_window, xbw->xpmbutton.help_GC, 2, xbw->xpmbutton.help_font->max_bounds.ascent+2, xbw->xpmbutton.help_string, strlen(xbw->xpmbutton.help_string)); } static void arm_help (xbw) XpmButtonWidget xbw; { if (xbw->xpmbutton.help_string && !xbw->xpmbutton.help_armed) { xbw->xpmbutton.id = XtAppAddTimeOut (XtWidgetToApplicationContext((Widget)xbw), (unsigned long)1000, (XtTimerCallbackProc)show_help, (XtPointer)xbw); xbw->xpmbutton.help_armed = TRUE; } } static void disarm_help (xbw) XpmButtonWidget xbw; { if (xbw->xpmbutton.help_string && xbw->xpmbutton.help_armed) { XtRemoveTimeOut (xbw->xpmbutton.id); XUnmapWindow (XtDisplay(xbw), xbw->xpmbutton.help_window); xbw->xpmbutton.help_armed = FALSE; } } /* ARGSUSED */ static void Enter(w, event, params, num_params) Widget w; XEvent *event; String *params; /* unused */ Cardinal *num_params; /* unused */ { arm_help ((XpmButtonWidget)w); } /* ARGSUSED */ static void Leave(w, event, params, num_params) Widget w; XEvent *event; String *params; /* unused */ Cardinal *num_params; /* unused */ { disarm_help ((XpmButtonWidget)w); Unset (w, event, params, num_params); } /* ARGSUSED */ static void Set(w, event, params, num_params) Widget w; XEvent *event; String *params; /* unused */ Cardinal *num_params; /* unused */ { XpmButtonWidget xbw = (XpmButtonWidget)w; if (xbw->xpmbutton.set) return; disarm_help (xbw); xbw->xpmbutton.set = TRUE; if (XtIsRealized(w)) DrawPixmap (w, xbw->xpmbutton.pixmap2, xbw->xpmbutton.shape2); } /* ARGSUSED */ static void Unset(w, event, params, num_params) Widget w; XEvent *event; String *params; /* unused */ Cardinal *num_params; { XpmButtonWidget xbw = (XpmButtonWidget)w; if (!xbw->xpmbutton.set) return; xbw->xpmbutton.set = FALSE; if (XtIsRealized(w)) DrawPixmap (w, xbw->xpmbutton.pixmap1, xbw->xpmbutton.shape1); } /* ARGSUSED */ static void Notify(w,event,params,num_params) Widget w; XEvent *event; String *params; /* unused */ Cardinal *num_params; /* unused */ { XpmButtonWidget xbw = (XpmButtonWidget)w; if (xbw->xpmbutton.set) XtCallCallbackList(w, xbw->xpmbutton.callback, (XtPointer) NULL); } /* * Repaint the widget window */ /************************ * * REDISPLAY (DRAW) * ************************/ /* ARGSUSED */ static void Redisplay(w, event, region) Widget w; XEvent *event; Region region; { XpmButtonWidget xbw = (XpmButtonWidget)w; if (xbw->xpmbutton.set) DrawPixmap (w, xbw->xpmbutton.pixmap2, xbw->xpmbutton.shape2); else DrawPixmap (w, xbw->xpmbutton.pixmap1, xbw->xpmbutton.shape1); } static void Destroy(w) Widget w; { XpmButtonWidget xbw = (XpmButtonWidget) w; XFreeGC (XtDisplay(w), xbw->xpmbutton.normal_GC); XtReleaseGC (w, xbw->xpmbutton.color1_GC); XtReleaseGC (w, xbw->xpmbutton.color2_GC); XtReleaseGC (w, xbw->xpmbutton.help_GC); XDestroyWindow (XtDisplay(w), xbw->xpmbutton.help_window); } /* * Set specified arguments into widget */ /* ARGSUSED */ static Boolean SetValues (current, request, new) Widget current, request, new; { XpmButtonWidget curxbw = (XpmButtonWidget) current; XpmButtonWidget newxbw = (XpmButtonWidget) new; Boolean redisplay = False; Window root; int rab, width, height; if (curxbw->xpmbutton.pixmap1 != newxbw->xpmbutton.pixmap1) { XGetGeometry (XtDisplay(newxbw), newxbw->xpmbutton.pixmap1, &root, &rab, &rab, (unsigned int *)&width, (unsigned int *)&height, (unsigned int *)&rab, (unsigned int *)&rab); newxbw->core.width = width + 2 * newxbw->xpmbutton.shadow_thickness; newxbw->core.height = height + 2 * newxbw->xpmbutton.shadow_thickness; redisplay = True; } return (redisplay || (XtIsSensitive(current) != XtIsSensitive(new))); } static void ClassInitialize() { XtAddConverter (XtRString, XtRPixmap, MyCvtStringToPixmap, myScreenConvertArg, XtNumber(myScreenConvertArg)); XtAddConverter (XtRString, XtRPixshape, MyCvtStringToShapemask, myScreenConvertArg, XtNumber(myScreenConvertArg)); } static void Realize(w, valueMask, attributes) Widget w; Mask *valueMask; XSetWindowAttributes *attributes; { XtCreateWindow(w, (unsigned) InputOutput, (Visual *) CopyFromParent, *valueMask, attributes); } static void Resize(w) Widget w; {} /* * Converter function (XPM filename to Pixmap) */ #define done(address, type) \ { (*toVal).size = sizeof(type); (*toVal).addr = (caddr_t) address; } static void MyCvtStringToPixmap (args, num_args, fromVal, toVal) XrmValuePtr args; Cardinal *num_args; XrmValuePtr fromVal; XrmValuePtr toVal; { int res; static Pixmap pixm, shapem; char *name = (char *)fromVal->addr; Screen *screen; Display *dpy; unsigned int width, height; int xhot, yhot; if (*num_args != 1) XtErrorMsg("wrongParameters","MyCvtStringToPixmap","XtToolkitError", "String to pixmap conversion needs screen argument", (String *)NULL, (Cardinal *)NULL); if (strcmp(name, "None") == 0) { pixm = None; done(&pixm, Pixmap); return; } if (strcmp(name, "ParentRelative") == 0) { pixm = ParentRelative; done(&pixm, Pixmap); return; } screen = *((Screen **) args[0].addr); dpy = DisplayOfScreen(screen); if (strstr (name, ".xpm")) res = XpmReadFileToPixmap(DisplayOfScreen(screen), RootWindowOfScreen(screen), name, &pixm, &shapem, NULL); else res = XReadBitmapFile (DisplayOfScreen(screen), RootWindowOfScreen(screen), name, &width, &height, &pixm, &xhot, &yhot); if (res) { XtStringConversionWarning (name, "Pixmap"); return; } else { done (&pixm, Pixmap); } } /*ARGSUSED*/ static void MyCvtStringToShapemask (args, num_args, fromVal, toVal) XrmValuePtr args; Cardinal *num_args; XrmValuePtr fromVal; XrmValuePtr toVal; { int res; static Pixmap pixm, shapem; char *name = (char *)fromVal->addr; Screen *screen; Display *dpy; if (*num_args != 1) XtErrorMsg("wrongParameters","MyCvtStringToShapemask","XtToolkitError", "String to Shapemask conversion needs screen argument", (String *)NULL, (Cardinal *)NULL); if (strcmp(name, "None") == 0) { shapem = None; done(&shapem, Pixmap); return; } if (strcmp(name, "ParentRelative") == 0) { shapem = ParentRelative; done(&shapem, Pixmap); return; } screen = *((Screen **) args[0].addr); dpy = DisplayOfScreen(screen); res = XpmReadFileToPixmap(DisplayOfScreen(screen), RootWindowOfScreen(screen), name, &pixm, &shapem, NULL ); if (res) { XtStringConversionWarning (name, "Pixmap"); return; } else { done (&shapem, Pixmap); } } xtel-3.3.0.orig/Widgets/XpmButton.h0100444001424500142340000000513606703332512016014 0ustar ericperso/* * Copyright (C) 1995 Pierre Ficheux (pierre@rd.lectra.fr) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ident "$Id: XpmButton.h,v 1.1 1996/09/14 22:27:47 pierre Exp $" #ifndef _XpmButton_h #define _XpmButton_h #include /* XpmButton widget resources: Name Class RepType Default Value ---- ----- ------- ------------- pixmap2 Pixmap Pixmap None pixmap1 Pixmap Pixmap None shape2 Pixshape Pixshape None shape1 Pixshape Pixshape None shadowColor1 ShadowColor Pixel DefaultForeground shadowColor2 ShadowColor Pixel DefaultForeground shadowThickness ShadowThickness Dimension 0 helpString HelpString String NULL helpForeground HelpForeground Pixel DefaultForeground helpBackground HelpBackground Pixel DefaultBackground helpFont Font XFontStruct * XtDefaultFont unsensitiveBitmap Pixmap Pixmap None callback Callback XtCallbackList NULL */ #define XtNpixmap2 "pixmap2" #define XtNpixmap1 "pixmap1" #define XtNshape2 "shape2" #define XtNshape1 "shape1" #define XtNunsensitiveBitmap "unsensitiveBitmap" #define XtNhelpFont "helpFont" #define XtNhelpString "helpString" #define XtNhelpBackground "helpBackground" #define XtNhelpForeground "helpForeground" #define XtNshadowColor1 "shadowColor1" #define XtNshadowColor2 "shadowColor2" #define XtNshadowThickness "shadowThickness" #define XtCPixshape "Pixshape" #define XtCHelpString "HelpString" #define XtRPixshape "Pixshape" #define XtCShadowColor "ShadowColor" #define XtCShadowThickness "ShadowThickness" #define XtCHelpBackground "HelpBackground" #define XtCHelpForeground "HelpForeground" extern WidgetClass xpmButtonWidgetClass; typedef struct _XpmButtonClassRec *XpmButtonWidgetClass; typedef struct _XpmButtonRec *XpmButtonWidget; typedef Pixmap Pixshape; #endif /* _XpmButton_h */ /* DON'T ADD STUFF AFTER THIS */ xtel-3.3.0.orig/Widgets/XpmButtonP.h0100444001424500142340000001614606703332512016137 0ustar ericperso/* * Copyright (C) 1995 Pierre Ficheux (pierre@rd.lectra.fr) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ident "$Id: XpmButtonP.h,v 1.1 1996/09/14 22:27:47 pierre Exp $" /* * XpmButtonP.h - Private definitions for XpmButton widget */ #ifndef _XpmButtonP_h #define _XpmButtonP_h #ifdef USE_MOTIF #include #else #include #endif #include #include "XpmButton.h" /* XPM */ static char * default_xpm[] = { "31 56 10 1", " c white", ". c sienna", "X c peru", "o c wheat", "O c black", "+ c lemon chiffon", "@ c slate grey", "# c red", "$ c tan", "% c green", " .......XX ", " ..XXXXX...XX ", " ..XX........X. ", " .XXX..oooooo.... ", " XX.XoooooooooX . ", " ....oOOOooOOOoX.. ", " .X..o O oo O oX... ", " .X.ooO+OooO+OoX.X. ", " ..X.ooo++Oo+++oX.XX. ", " ..X.Xoo+++Oo+oX...X.. ", " ..X.X@@oooooo@X...XX. ", " OO.XX..Xoo#OO#oX.XX......", " OOO..XX....Xoo##ooX..XXXX...", " O....XX...X..XooooXX.....XX..", "O...............@@@.....oooOXX.", " ..O...XXX..o@@...X..OoooO..", " O..O...XX...o..XX..X..oooooO.", " O.OXX.XX...oo.XX.o.X.$ooooooO", " O..XX..o..o.o....o..X..ooooooo", "O.X....o.XXoo..oooo..X.O$oooooo", "O.OO.Oo....oo.oo+++o.XXXO$ooooo", " O .OO%o+++oooo+++++o..XOO$$ooo", " . %%%%++++oO++++++%%..OOO$$oo", " O%%%%%%%oO+++%%%%%%%%O$O$$oo", " %%%%%%%%%O%%%%%%%%%%%O$OO$$o", " %%%%%%%%%%O%%%%%%%%%%%O$$..$$", " %%%%%%%%%%%%%%%%%%%%%%O$$.X.$", " %%%%%%%%%%%%%%%%%%%%%O$..X..", " %%%%%%%%%%%%%%%%%%%O$$..XX.", " O%%%OO$OO%%%%%%%%OO$$...X.", " OOO$$$$$OO%%%%%OO$$$.X.X.", " OXO$$ooo$$OOOOO$$$o..X...", " OX.$ooooo$$$$$$$$oo..XX..", " OOX.$ooooooo$oooooo..X.XX.", " OXX. $oooooooooooooo.XX....", " O ... $oooooooooooooo..O.X..", " .O.O $oooooOooooooo.XO..XX.", " . .$$ooo$$O$$ooooo...O.OXX", " . $oooooOOooooooo@....OO.", " $oooooooooooooooO..XX.O", " OoooooooooooooooooO..OX ", " OooooooooooooooooooOX OO ", " O%ooooooooooooooooooo. O ", " O%%%%%%oooooooooooooooO ", " Oo%%%%%%%%%%%%ooooooooO ", " Ooo%%%%%%%%%%%%%%%%%%oO ", " Ooooo%%%%%%%%%%%%%%%%%O ", " Ooooo%%%%%%%%%%%%%ooooO ", " Oooooo%%%%%%%%ooooooooO ", " Oooooo%%%%%%ooooooooooO ", " Oooooooo%%%ooooooooooO ", " OoooooooO+oooooooooooO ", " OoooooooOoooooooooooO ", " OooooooOoooooooooooO ", " OoooooOoooooooooooO ", " OoooooOoooooooooooO "}; /* XPM */ static char *default_on_xpm[] = { "31 56 10 1", " c white", ". c sienna", "X c peru", "o c wheat", "O c black", "+ c lemon chiffon", "@ c slate grey", "# c red", "$ c tan", "% c magenta", " .......XX ", " ..XXXXX...XX ", " ..XX........X. ", " .XXX..oooooo.... ", " XX.XoooooooooX . ", " ....oOOOooOOOoX.. ", " .X..o O oo O oX... ", " .X.ooO+OooO+OoX.X. ", " ..X.ooo++Oo+++oX.XX. ", " ..X.Xoo+++Oo+oX...X.. ", " ..X.X@@oooooo@X...XX. ", " OO.XX..Xoo#OO#oX.XX......", " OOO..XX....Xoo##ooX..XXXX...", " O....XX...X..XooooXX.....XX..", "O...............@@@.....oooOXX.", " ..O...XXX..o@@...X..OoooO..", " O..O...XX...o..XX..X..oooooO.", " O.OXX.XX...oo.XX.o.X.$ooooooO", " O..XX..o..o.o....o..X..ooooooo", "O.X....o.XXoo..oooo..X.O$oooooo", "O.OO.Oo....oo.oo+++o.XXXO$ooooo", " O .OOoo+++oooo+++++o..XOO$$ooo", " . O+++++++oO+++++++o..OOO$$oo", " O+++++++oO++++%%++++oO$O$$oo", " O%%+++++oO+++%##%+++oO$OO$$o", " O###+++++oO+o+%OO%++ooO$$..$$", " OO%%+++oooOoo++%%+++ooO$$.X.$", " OO++oooooOooo+++++ooOO$..X..", " OOooooOO$O$ooooooooO$$..XX.", " OOOOOO$OO$$$$ooo$OO$$...X.", " OOO$$$$$OO$$$$OOO$$$.X.X.", " OXO$$ooo$$OOOOO$$$o..X...", " OX.$ooooo$$$$$$$$oo..XX..", " OOX.$ooooooo$oooooo..X.XX.", " OXX. $oooooooooooooo.XX....", " O ... $oooooooooooooo..O.X..", " .O.O $oooooOooooooo.XO..XX.", " . .$$ooo$$O$$ooooo...O.OXX", " . $oooooOOooooooo@....OO.", " $oooooooooooooooO..XX.O", " OoooooooooooooooooO..OX ", " O+oooooooooooooooooOX OO ", " Oo++oooooooo+++++++oO. O ", " Ooooo++......+$$oooo++O ", " Ooooo$OO....O$$oooooooO ", " Oooooo$$O..OO$ooooooooO ", " Oooooo$$O.OO$$ooooooooO ", " Ooooooo$OOO$$oooooooooO ", " Ooooooo+$O$$+oooooooooO ", " Ooooooo+$O$+ooooooooooO ", " Oooooooo+O+ooooooooooO ", " OoooooooO+oooooooooooO ", " OoooooooOoooooooooooO ", " OooooooOoooooooooooO ", " OoooooOoooooooooooO ", " OoooooOoooooooooooO "}; /*********************************************************************** * * XpmButton Widget Private Data * ***********************************************************************/ /************************************ * * Class structure * ***********************************/ /* New fields for the XpmButton widget class record */ typedef struct _XpmButtonClass { int makes_compiler_happy; /* not used */ } XpmButtonClassPart; /* Full class record declaration */ typedef struct _XpmButtonClassRec { CoreClassPart core_class; #ifdef USE_MOTIF XmPrimitiveClassPart primitive_class; #else SimpleClassPart simple_class; #endif XpmButtonClassPart xpmbutton_class; } XpmButtonClassRec; extern XpmButtonClassRec xpmButtonClassRec; /*************************************** * * Instance (widget) structure * **************************************/ /* New fields for the XpmButton widget record */ typedef struct { /* resources */ XtCallbackList callback; Pixmap pixmap1; Pixmap pixmap2; Pixmap shape1; Pixmap shape2; Pixmap unsensitive_bitmap; XFontStruct *help_font; String help_string; Pixel help_background; Pixel help_foreground; Pixel shadow_color1; Pixel shadow_color2; Dimension shadow_thickness; /* private state */ GC normal_GC; GC color1_GC; GC color2_GC; GC help_GC; Pixmap stipple; Window help_window; XtIntervalId id; Boolean set; Boolean help_armed; } XpmButtonPart; /* Full widget declaration */ typedef struct _XpmButtonRec { CorePart core; #ifdef USE_MOTIF XmPrimitivePart primitive; #else SimplePart simple; #endif XpmButtonPart xpmbutton; } XpmButtonRec; #endif /* _XawXpmButtonP_h */ xtel-3.3.0.orig/Widgets/XpmToggle.c0100444001424500142340000004232506703332512015756 0ustar ericperso/* Copyright (c) 1989, 1994 X Consortium Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Except as contained in this notice, the name of the X Consortium shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from the X Consortium. */ /* * XpmToggle.c - XpmToggle button widget * * Adapted by Pierre Ficheux (pierre@rd.lectra.fr) from * Chris D. Peterson * MIT X Consortium * kit@expo.lcs.mit.edu * * Date: January 12, 1989 * */ static char rcsid[] = "$Id: XpmToggle.c,v 1.1 1996/09/14 22:27:47 pierre Exp $"; #include #include #include #include #include #include #include "XpmToggleP.h" /**************************************************************** * * Full class record constant * ****************************************************************/ /* Private Data */ /* * The order of toggle and notify are important, as the state has * to be set when we call the notify proc. */ static char defaultTranslations[] = ",: toggle() notify()"; #define offset(field) XtOffsetOf(XpmToggleRec, field) static XtResource resources[] = { {XtNstate, XtCState, XtRBoolean, sizeof(Boolean), offset(xpmbutton.set), XtRString, "off"}, {XtNradioGroup, XtCWidget, XtRWidget, sizeof(Widget), offset(xpmtoggle.widget), XtRWidget, (XtPointer) NULL }, {XtNradioData, XtCRadioData, XtRPointer, sizeof(XtPointer), offset(xpmtoggle.radio_data), XtRPointer, (XtPointer) NULL }, }; #undef offset static void XpmToggle(), Initialize(), Notify(), XpmToggleSet(); static void XpmToggleDestroy(), ClassInit(); static Boolean SetValues(); /* Functions for handling the Radio Group. */ static RadioGroup * GetRadioGroup(); static void CreateRadioGroup(), AddToRadioGroup(), TurnOffRadioSiblings(); static void RemoveFromRadioGroup(); static XtActionsRec actionsList[] = { {"toggle", XpmToggle}, {"notify", Notify}, {"set", XpmToggleSet}, }; #define SuperClass ((XpmButtonWidgetClass)&xpmButtonClassRec) XpmToggleClassRec xpmToggleClassRec = { { (WidgetClass) SuperClass, /* superclass */ "XpmToggle", /* class_name */ sizeof(XpmToggleRec), /* size */ ClassInit, /* class_initialize */ NULL, /* class_part_initialize */ FALSE, /* class_inited */ Initialize, /* initialize */ NULL, /* initialize_hook */ XtInheritRealize, /* realize */ actionsList, /* actions */ XtNumber(actionsList), /* num_actions */ resources, /* resources */ XtNumber(resources), /* resource_count */ NULLQUARK, /* xrm_class */ FALSE, /* compress_motion */ TRUE, /* compress_exposure */ TRUE, /* compress_enterleave */ FALSE, /* visible_interest */ NULL, /* destroy */ XtInheritResize, /* resize */ XtInheritExpose, /* expose */ SetValues, /* set_values */ NULL, /* set_values_hook */ XtInheritSetValuesAlmost, /* set_values_almost */ NULL, /* get_values_hook */ NULL, /* accept_focus */ XtVersion, /* version */ NULL, /* callback_private */ defaultTranslations, /* tm_table */ XtInheritQueryGeometry, /* query_geometry */ XtInheritDisplayAccelerator, /* display_accelerator */ NULL /* extension */ }, /* CoreClass fields initialization */ { XtInheritChangeSensitive /* change_sensitive */ }, /* SimpleClass fields initialization */ { 0 /* field not used */ }, /* XpmButtonClass fields initialization */ { NULL, /* Set Procedure. */ NULL, /* Unset Procedure. */ NULL /* extension. */ } /* XpmToggleClass fields initialization */ }; /* for public consumption */ WidgetClass xpmToggleWidgetClass = (WidgetClass) &xpmToggleClassRec; /**************************************************************** * * Private Procedures * ****************************************************************/ static void ClassInit() { XtActionList actions; Cardinal num_actions; Cardinal i; XpmToggleWidgetClass class = (XpmToggleWidgetClass) xpmToggleWidgetClass; static XtConvertArgRec parentCvtArgs[] = { {XtBaseOffset, (XtPointer)XtOffsetOf(WidgetRec, core.parent), sizeof(Widget)} }; XawInitializeWidgetSet(); XtSetTypeConverter(XtRString, XtRWidget, XmuNewCvtStringToWidget, parentCvtArgs, XtNumber(parentCvtArgs), XtCacheNone, (XtDestructor)NULL); /* * Find the set and unset actions in the xpmbutton widget's action table. */ XtGetActionList(xpmButtonWidgetClass, &actions, &num_actions); for (i = 0 ; i < num_actions ; i++) { if (streq(actions[i].string, "set")) class->xpmtoggle_class.Set = actions[i].proc; if (streq(actions[i].string, "unset")) class->xpmtoggle_class.Unset = actions[i].proc; if ( (class->xpmtoggle_class.Set != NULL) && (class->xpmtoggle_class.Unset != NULL) ) { XtFree((char *) actions); return; } } /* We should never get here. */ XtError("Aborting, due to errors resolving bindings in the XpmToggle widget."); } /*ARGSUSED*/ static void Initialize(request, new, args, num_args) Widget request, new; ArgList args; Cardinal *num_args; { XpmToggleWidget tw = (XpmToggleWidget) new; XpmToggleWidget tw_req = (XpmToggleWidget) request; tw->xpmtoggle.radio_group = NULL; if (tw->xpmtoggle.radio_data == NULL) tw->xpmtoggle.radio_data = (XtPointer) new->core.name; if (tw->xpmtoggle.widget != NULL) { if ( GetRadioGroup(tw->xpmtoggle.widget) == NULL) CreateRadioGroup(new, tw->xpmtoggle.widget); else AddToRadioGroup( GetRadioGroup(tw->xpmtoggle.widget), new); } XtAddCallback(new, XtNdestroyCallback, XpmToggleDestroy, (XtPointer)NULL); /* * Command widget assumes that the widget is unset, so we only * have to handle the case where it needs to be set. * * If this widget is in a radio group then it may cause another * widget to be unset, thus calling the notify proceedure. * * I want to set the toggle if the user set the state to "On" in * the resource group, reguardless of what my ancestors did. */ if (tw_req->xpmbutton.set) XpmToggleSet(new, (XEvent *)NULL, (String *)NULL, (Cardinal *)0); } /************************************************************ * * Action Procedures * ************************************************************/ /* ARGSUSED */ static void XpmToggleSet(w,event,params,num_params) Widget w; XEvent *event; String *params; /* unused */ Cardinal *num_params; /* unused */ { XpmToggleWidgetClass class = (XpmToggleWidgetClass) w->core.widget_class; TurnOffRadioSiblings(w); class->xpmtoggle_class.Set(w, event, NULL, 0); } /* ARGSUSED */ static void XpmToggle(w,event,params,num_params) Widget w; XEvent *event; String *params; /* unused */ Cardinal *num_params; /* unused */ { XpmToggleWidget tw = (XpmToggleWidget)w; XpmToggleWidgetClass class = (XpmToggleWidgetClass) w->core.widget_class; if (tw->xpmbutton.set) class->xpmtoggle_class.Unset(w, event, NULL, 0); else XpmToggleSet(w, event, params, num_params); } /* ARGSUSED */ static void Notify(w,event,params,num_params) Widget w; XEvent *event; String *params; /* unused */ Cardinal *num_params; /* unused */ { XpmToggleWidget tw = (XpmToggleWidget) w; long antilint = tw->xpmbutton.set; XtCallCallbacks( w, XtNcallback, (XtPointer) antilint ); } /************************************************************ * * Set specified arguments into widget * ***********************************************************/ /* ARGSUSED */ static Boolean SetValues (current, request, new, args, num_args) Widget current, request, new; ArgList args; Cardinal *num_args; { XpmToggleWidget oldtw = (XpmToggleWidget) current; XpmToggleWidget tw = (XpmToggleWidget) new; XpmToggleWidget rtw = (XpmToggleWidget) request; if (oldtw->xpmtoggle.widget != tw->xpmtoggle.widget) xpmToggleChangeRadioGroup(new, tw->xpmtoggle.widget); if (!tw->core.sensitive && oldtw->core.sensitive && rtw->xpmbutton.set) tw->xpmbutton.set = True; if (oldtw->xpmbutton.set != tw->xpmbutton.set) { tw->xpmbutton.set = oldtw->xpmbutton.set; XpmToggle(new, (XEvent *)NULL, (String *)NULL, (Cardinal *)0); } return(FALSE); } /* Function Name: XpmToggleDestroy * Description: Destroy Callback for toggle widget. * Arguments: w - the toggle widget that is being destroyed. * junk, grabage - not used. * Returns: none. */ /* ARGSUSED */ static void XpmToggleDestroy(w, junk, garbage) Widget w; XtPointer junk, garbage; { RemoveFromRadioGroup(w); } /************************************************************ * * Below are all the private procedures that handle * radio toggle buttons. * ************************************************************/ /* Function Name: GetRadioGroup * Description: Gets the radio group associated with a give toggle * widget. * Arguments: w - the toggle widget who's radio group we are getting. * Returns: the radio group associated with this toggle group. */ static RadioGroup * GetRadioGroup(w) Widget w; { XpmToggleWidget tw = (XpmToggleWidget) w; if (tw == NULL) return(NULL); return( tw->xpmtoggle.radio_group ); } /* Function Name: CreateRadioGroup * Description: Creates a radio group. give two widgets. * Arguments: w1, w2 - the toggle widgets to add to the radio group. * Returns: none. * * NOTE: A pointer to the group is added to each widget's radio_group * field. */ static void CreateRadioGroup(w1, w2) Widget w1, w2; { char error_buf[BUFSIZ]; XpmToggleWidget tw1 = (XpmToggleWidget) w1; XpmToggleWidget tw2 = (XpmToggleWidget) w2; if ( (tw1->xpmtoggle.radio_group != NULL) || (tw2->xpmtoggle.radio_group != NULL) ) { (void) sprintf(error_buf, "%s %s", "XpmToggle Widget Error - Attempting", "to create a new toggle group, when one already exists."); XtWarning(error_buf); } AddToRadioGroup( (RadioGroup *)NULL, w1 ); AddToRadioGroup( GetRadioGroup(w1), w2 ); } /* Function Name: AddToRadioGroup * Description: Adds a toggle to the radio group. * Arguments: group - any element of the radio group the we are adding to. * w - the new toggle widget to add to the group. * Returns: none. */ static void AddToRadioGroup(group, w) RadioGroup * group; Widget w; { XpmToggleWidget tw = (XpmToggleWidget) w; RadioGroup * local; local = (RadioGroup *) XtMalloc( sizeof(RadioGroup) ); local->widget = w; tw->xpmtoggle.radio_group = local; if (group == NULL) { /* Creating new group. */ group = local; group->next = NULL; group->prev = NULL; return; } local->prev = group; /* Adding to previous group. */ if ((local->next = group->next) != NULL) local->next->prev = local; group->next = local; } /* Function Name: TurnOffRadioSiblings * Description: Deactivates all radio siblings. * Arguments: widget - a toggle widget. * Returns: none. */ static void TurnOffRadioSiblings(w) Widget w; { RadioGroup * group; XpmToggleWidgetClass class = (XpmToggleWidgetClass) w->core.widget_class; if ( (group = GetRadioGroup(w)) == NULL) /* Punt if there is no group */ return; /* Go to the top of the group. */ for ( ; group->prev != NULL ; group = group->prev ); while ( group != NULL ) { XpmToggleWidget local_tog = (XpmToggleWidget) group->widget; if ( local_tog->xpmbutton.set ) { class->xpmtoggle_class.Unset(group->widget, NULL, NULL, 0); Notify( group->widget, (XEvent *)NULL, (String *)NULL, (Cardinal *)0); } group = group->next; } } /* Function Name: RemoveFromRadioGroup * Description: Removes a toggle from a RadioGroup. * Arguments: w - the toggle widget to remove. * Returns: none. */ static void RemoveFromRadioGroup(w) Widget w; { RadioGroup * group = GetRadioGroup(w); if (group != NULL) { if (group->prev != NULL) (group->prev)->next = group->next; if (group->next != NULL) (group->next)->prev = group->prev; XtFree((char *) group); } } /************************************************************ * * Public Routines * ************************************************************/ /* Function Name: xpmToggleChangeRadioGroup * Description: Allows a toggle widget to change radio groups. * Arguments: w - The toggle widget to change groups. * radio_group - any widget in the new group. * Returns: none. */ void #if NeedFunctionPrototypes xpmToggleChangeRadioGroup(Widget w, Widget radio_group) #else xpmToggleChangeRadioGroup(w, radio_group) Widget w, radio_group; #endif { XpmToggleWidget tw = (XpmToggleWidget) w; RadioGroup * group; RemoveFromRadioGroup(w); /* * If the toggle that we are about to add is set then we will * unset all toggles in the new radio group. */ if ( tw->xpmbutton.set && radio_group != NULL ) xpmToggleUnsetCurrent(radio_group); if (radio_group != NULL) if ((group = GetRadioGroup(radio_group)) == NULL) CreateRadioGroup(w, radio_group); else AddToRadioGroup(group, w); } /* Function Name: xpmToggleGetCurrent * Description: Returns the RadioData associated with the toggle * widget that is currently active in a toggle group. * Arguments: w - any toggle widget in the toggle group. * Returns: The XtNradioData associated with the toggle widget. */ XtPointer #if NeedFunctionPrototypes xpmToggleGetCurrent(Widget w) #else xpmToggleGetCurrent(w) Widget w; #endif { RadioGroup * group; if ( (group = GetRadioGroup(w)) == NULL) return(NULL); for ( ; group->prev != NULL ; group = group->prev); while ( group != NULL ) { XpmToggleWidget local_tog = (XpmToggleWidget) group->widget; if ( local_tog->xpmbutton.set ) return( local_tog->xpmtoggle.radio_data ); group = group->next; } return(NULL); } /* Function Name: xpmToggleSetCurrent * Description: Sets the XpmToggle widget associated with the * radio_data specified. * Arguments: radio_group - any toggle widget in the toggle group. * radio_data - radio data of the toggle widget to set. * Returns: none. */ void #if NeedFunctionPrototypes xpmToggleSetCurrent(Widget radio_group, XtPointer radio_data) #else xpmToggleSetCurrent(radio_group, radio_data) Widget radio_group; XtPointer radio_data; #endif { RadioGroup * group; XpmToggleWidget local_tog; /* Special case of no radio group. */ if ( (group = GetRadioGroup(radio_group)) == NULL) { local_tog = (XpmToggleWidget) radio_group; if ( (local_tog->xpmtoggle.radio_data == radio_data) ) if (!local_tog->xpmbutton.set) { XpmToggleSet((Widget) local_tog, (XEvent *)NULL, (String *)NULL, (Cardinal *)0); Notify((Widget) local_tog, (XEvent *)NULL, (String *)NULL, (Cardinal *)0); } return; } /* * find top of radio_roup */ for ( ; group->prev != NULL ; group = group->prev); /* * search for matching radio data. */ while ( group != NULL ) { local_tog = (XpmToggleWidget) group->widget; if ( (local_tog->xpmtoggle.radio_data == radio_data) ) { if (!local_tog->xpmbutton.set) { /* if not already set. */ XpmToggleSet((Widget) local_tog, (XEvent *)NULL, (String *)NULL, (Cardinal *)0); Notify((Widget) local_tog, (XEvent *)NULL, (String *)NULL, (Cardinal *)0); } return; /* found it, done */ } group = group->next; } } /* Function Name: xpmToggleUnsetCurrent * Description: Unsets all XpmToggles in the radio_group specified. * Arguments: radio_group - any toggle widget in the toggle group. * Returns: none. */ void #if NeedFunctionPrototypes xpmToggleUnsetCurrent(Widget radio_group) #else xpmToggleUnsetCurrent(radio_group) Widget radio_group; #endif { XpmToggleWidgetClass class; XpmToggleWidget local_tog = (XpmToggleWidget) radio_group; /* Special Case no radio group. */ if (local_tog->xpmbutton.set) { class = (XpmToggleWidgetClass) local_tog->core.widget_class; class->xpmtoggle_class.Unset(radio_group, NULL, NULL, 0); Notify(radio_group, (XEvent *)NULL, (String *)NULL, (Cardinal *)0); } if ( GetRadioGroup(radio_group) == NULL) return; TurnOffRadioSiblings(radio_group); } xtel-3.3.0.orig/Widgets/XpmToggle.h0100444001424500142340000001277406703332512015770 0ustar ericperso/* Copyright (c) 1989, 1994 X Consortium Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Except as contained in this notice, the name of the X Consortium shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from the X Consortium. */ /* * XpmToggle.h - Public definitions for XpmToggle widget * * Adapted by Pierre Ficheux (pierre@rd.lectra.fr) from * Chris D. Peterson * MIT X Consortium * kit@expo.lcs.mit.edu * * Date: January 12, 1989 */ #ident "$Id: XpmToggle.h,v 1.1 1996/09/14 22:27:47 pierre Exp $" #ifndef _XpmToggle_h #define _XpmToggle_h /*********************************************************************** * * XpmToggle Widget * ***********************************************************************/ #include "XpmButton.h" /* Resources: Name Class RepType Default Value ---- ----- ------- ------------- radioGroup RadioGroup Widget NULL + radioData RadioData Pointer (XPointer) Widget ++ state State Boolean Off background Background Pixel XtDefaultBackground bitmap Pixmap Pixmap None border BorderColor Pixel XtDefaultForeground borderWidth BorderWidth Dimension 1 callback Callback Pointer NULL cursor Cursor Cursor None destroyCallback Callback Pointer NULL font Font XFontStructx* XtDefaultFont foreground Foreground Pixel XtDefaultForeground height Height Dimension text height highlightThickness Thickness Dimension 2 insensitiveBorder Insensitive Pixmap Gray internalHeight Height Dimension 2 internalWidth Width Dimension 4 justify Justify XtJustify XtJustifyCenter label Label String NULL mappedWhenManaged MappedWhenManaged Boolean True resize Resize Boolean True sensitive Sensitive Boolean True width Width Dimension text width x Position Position 0 y Position Position 0 + To use the toggle as a radio toggle button, set this resource to point to any other widget in the radio group. ++ This is the data returned from a call to XtXpmToggleGetCurrent, by default this is set to the name of toggle widget. */ /* * These should be in StringDefs.h but aren't so we will define * them here if they are needed. */ #define XtCWidget "Widget" #define XtCState "State" #define XtCRadioGroup "RadioGroup" #define XtCRadioData "RadioData" #ifndef _XtStringDefs_h_ #define XtRWidget "Widget" #endif #define XtNstate "state" #define XtNradioGroup "radioGroup" #define XtNradioData "radioData" extern WidgetClass xpmToggleWidgetClass; typedef struct _XpmToggleClassRec *XpmToggleWidgetClass; typedef struct _XpmToggleRec *XpmToggleWidget; /************************************************************ * * Public Functions * ************************************************************/ _XFUNCPROTOBEGIN /* Function Name: XawToggleChangeRadioGroup * Description: Allows a toggle widget to change radio lists. * Arguments: w - The toggle widget to change lists. * radio_group - any widget in the new list. * Returns: none. */ extern void xpmToggleChangeRadioGroup( #if NeedFunctionPrototypes Widget /* w */, Widget /* radio_group */ #endif ); /* Function Name: xpmToggleGetCurrent * Description: Returns the RadioData associated with the toggle * widget that is currently active in a toggle list. * Arguments: radio_group - any toggle widget in the toggle list. * Returns: The XtNradioData associated with the toggle widget. */ extern XtPointer xpmToggleGetCurrent( #if NeedFunctionPrototypes Widget /* radio_group */ #endif ); /* Function Name: xpmToggleSetCurrent * Description: Sets the XpmToggle widget associated with the * radio_data specified. * Arguments: radio_group - any toggle widget in the toggle list. * radio_data - radio data of the toggle widget to set. * Returns: none. */ extern void xpmToggleSetCurrent( #if NeedFunctionPrototypes Widget /* radio_group */, XtPointer /* radio_data */ #endif ); /* Function Name: xpmToggleUnsetCurrent * Description: Unsets all XpmToggles in the radio_group specified. * Arguments: radio_group - any toggle widget in the toggle list. * Returns: none. */ extern void xpmToggleUnsetCurrent( #if NeedFunctionPrototypes Widget /* radio_group */ #endif ); _XFUNCPROTOEND #endif /* _XpmToggle_h */ xtel-3.3.0.orig/Widgets/XpmToggleP.h0100444001424500142340000000632406703332512016102 0ustar ericperso/* Copyright (c) 1989 X Consortium Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Except as contained in this notice, the name of the X Consortium shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from the X Consortium. */ /* * XpmToggleP.h - Private definitions for XpmToggle widget * * Adapted by Pierre Ficheux (pierre@rd.lectra.fr) from * Chris D. Peterson * MIT X Consortium * kit@expo.lcs.mit.edu * * Date: January 12, 1989 * */ #ident "$Id: XpmToggleP.h,v 1.1 1996/09/14 22:27:47 pierre Exp $" #ifndef _XpmToggleP_h #define _XpmToggleP_h #include #include "XpmToggle.h" #include "XpmButtonP.h" /*********************************************************************** * * XpmToggle Widget Private Data * ***********************************************************************/ #define streq(a, b) ( strcmp((a), (b)) == 0 ) typedef struct _RadioGroup { struct _RadioGroup *prev, *next; /* Pointers to other elements in group. */ Widget widget; /* Widget corrosponding to this element. */ } RadioGroup; /************************************ * * Class structure * ***********************************/ /* New fields for the XpmToggle widget class record */ typedef struct _XpmToggleClass { XtActionProc Set; XtActionProc Unset; XtPointer extension; } XpmToggleClassPart; /* Full class record declaration */ typedef struct _XpmToggleClassRec { CoreClassPart core_class; SimpleClassPart simple_class; XpmButtonClassPart xpmbutton_class; XpmToggleClassPart xpmtoggle_class; } XpmToggleClassRec; extern XpmToggleClassRec xpmToggleClassRec; /*************************************** * * Instance (widget) structure * **************************************/ /* New fields for the XpmToggle widget record */ typedef struct { /* resources */ Widget widget; XtPointer radio_data; /* private data */ RadioGroup * radio_group; } XpmTogglePart; /* Full widget declaration */ typedef struct _XpmToggleRec { CorePart core; SimplePart simple; XpmButtonPart xpmbutton; XpmTogglePart xpmtoggle; } XpmToggleRec; #endif /* _XpmTogleP_h */ xtel-3.3.0.orig/MANIFEST0100444001424500142340000000572307240075030013424 0ustar ericpersopixmaps/Imakefile pixmaps/annul.xpm pixmaps/annul_on.xpm pixmaps/camera.xpm pixmaps/cassete.xpm pixmaps/correc.xpm pixmaps/correc_on.xpm pixmaps/cxfin.xpm pixmaps/cxfin_on.xpm pixmaps/disk_read.xpm pixmaps/disk_write.xpm pixmaps/door_run.xpm pixmaps/envoi.xpm pixmaps/envoi_on.xpm pixmaps/film.xpm pixmaps/guide.xpm pixmaps/guide_on.xpm pixmaps/next.xpm pixmaps/nouveau.xpm pixmaps/pf.xpm pixmaps/phone.xpm pixmaps/play.xpm pixmaps/prev.xpm pixmaps/printer.xpm pixmaps/printera.xpm pixmaps/repet.xpm pixmaps/repet_on.xpm pixmaps/retour.xpm pixmaps/retour_on.xpm pixmaps/rewind.xpm pixmaps/sommaire.xpm pixmaps/sommaire_on.xpm pixmaps/stop.xpm pixmaps/suite.xpm pixmaps/suite_on.xpm pixmaps/xtel.xpm Videotex/Imakefile Videotex/Videotex.c Videotex/Videotex.h Videotex/Videotex.ms Videotex/VideotexP.h Videotex/tvr_hdr.c Videotex/tvr_jpg.c Videotex/xvdt.c Widgets/Imakefile Widgets/Timer.c Widgets/Timer.h Widgets/TimerP.h Widgets/XpmButton.c Widgets/XpmButton.h Widgets/XpmButtonP.h Widgets/XpmToggle.c Widgets/XpmToggle.h Widgets/XpmToggleP.h MANIFEST bitmaps/Imakefile bitmaps/aide.bit bitmaps/lecteur.bit bitmaps/lectra.bit bitmaps/pf.bit bitmaps/play.bit bitmaps/rewind.bit bitmaps/stop.bit bitmaps/submenu.xbm bitmaps/teleph.xbm bitmaps/teleph_mask.xbm bitmaps/unsensitiveb.xbm bitmaps/unsensitiveh.xbm bitmaps/unx1 bitmaps/white bitmaps/wind.bit bitmaps/xtel.bit bitmaps/zero.bit COPYING COPYRIGHT LISEZMOI.txt HISTOIRE.txt README_IMINITEL.txt xm.c Xsra/Dir.c Xsra/Draw.c Xsra/Imakefile Xsra/Path.c Xsra/SFinternal.h Xsra/SelFile.c Xsra/xstat.h Imakefile XTel-color exemples/lion.vdt exemples/meteo.vdt exemples/truf.vdt exemples/visage06.vdt exemples/immo.vdt exemples/visage01.vdt exemples/hendrix.vdt exemples/madonna.vdt exemples/atari.vdt exemples/courtoisie.vdt exemples/arkanoid.vdt exemples/fruits.vdt exemples/iminitel.vdt XTel-msg.ad XTel.ad XTelm-msg.ad XTelm.ad bouton.c config.c copyright.c demon.h dial.c global.h globald.h imprime.c ian.c inet.c lecteur.c ligne.c misc.c patchlevel.h procedure.c fonts/Imakefile fonts/Synonyms.list fonts/fonts.alias fonts/g016x10.bdf fonts/g016x20.bdf fonts/g016x40.bdf fonts/g032x20.bdf fonts/g032x40.bdf fonts/g08x10.bdf fonts/g08x20.bdf fonts/g0s16x10.bdf fonts/g0s16x20.bdf fonts/g0s16x40.bdf fonts/g0s32x20.bdf fonts/g0s32x40.bdf fonts/g0s8x10.bdf fonts/g0s8x20.bdf fonts/g116x20.bdf fonts/g18x10.bdf fonts/g1s16x20.bdf fonts/g1s8x10.bdf fonts/g216x10.bdf fonts/g216x20.bdf fonts/g216x40.bdf fonts/g232x20.bdf fonts/g232x40.bdf fonts/g28x10.bdf fonts/g28x20.bdf fonts/g2s16x10.bdf fonts/g2s16x20.bdf fonts/g2s16x40.bdf fonts/g2s32x20.bdf fonts/g2s32x40.bdf fonts/g2s8x10.bdf fonts/g2s8x20.bdf fonts/xteldigit.bdf protocoles.c teleinfo.c version.c xaw.c Config.tmpl xtel.c xtel.gif xtel.h xtel.lignes xtel.man xtel.services xteld.man xteld.c modem.c mdmdetect.c modem.list FAQ.txt make_xtel_lignes.sh iminitel/Imakefile iminitel/chat-iminitel iminitel/connect_iminitel.sh iminitel/iminitel iminitel/install_iminitel.sh iminitel/ip-up.iminitel iminitel/ip-down.iminitel xtel-3.3.0.orig/bitmaps/0040755001424500142340000000000007242250361013734 5ustar ericpersoxtel-3.3.0.orig/bitmaps/Imakefile0100444001424500142340000000010706703332515015541 0ustar ericpersoXCOMM $Id: Imakefile,v 1.2 1996/10/17 09:22:16 pierre Exp $ depend:: xtel-3.3.0.orig/bitmaps/aide.bit0100444001424500142340000000103206703332515015330 0ustar ericperso#ident "$Id: aide.bit,v 1.2 1997/07/31 08:06:42 pierre Exp $" #define aide_width 29 #define aide_height 16 static char aide_bits[] = { 0x0f, 0x80, 0x00, 0x00, 0x1e, 0x80, 0x00, 0x00, 0x3c, 0x40, 0x00, 0x00, 0x78, 0x20, 0x00, 0x00, 0x78, 0x10, 0x00, 0x10, 0xf0, 0x08, 0x01, 0x10, 0xe0, 0x09, 0x01, 0x10, 0xc0, 0x05, 0xe3, 0x11, 0xc0, 0x02, 0x31, 0x13, 0x40, 0x07, 0x11, 0x12, 0x20, 0x0f, 0xf1, 0x13, 0x20, 0x1e, 0x11, 0x10, 0x10, 0x1e, 0x11, 0x10, 0x08, 0x3c, 0x31, 0x13, 0x04, 0x78, 0xe6, 0x11, 0x02, 0xf0, 0x00, 0x00}; xtel-3.3.0.orig/bitmaps/lecteur.bit0100444001424500142340000000345506703332515016104 0ustar ericperso#ident "$Id: lecteur.bit,v 1.1 1994/08/30 15:54:04 pierre Exp $" #define lecteur_width 45 #define lecteur_height 45 static char lecteur_bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0xf8, 0x00, 0xe0, 0x03, 0x04, 0x04, 0x06, 0x03, 0x18, 0x0c, 0x04, 0x84, 0x01, 0x0c, 0x86, 0x30, 0x04, 0x84, 0x00, 0x08, 0x82, 0x20, 0x04, 0x44, 0x02, 0x12, 0x81, 0x40, 0x04, 0x44, 0x04, 0x11, 0x01, 0x40, 0x04, 0x24, 0x70, 0xa0, 0xc0, 0x81, 0x04, 0x24, 0xf8, 0xa0, 0xe0, 0x83, 0x04, 0x24, 0xf8, 0xa0, 0xee, 0xbb, 0x04, 0x24, 0xf8, 0xa0, 0xe0, 0x83, 0x04, 0x24, 0x70, 0xa0, 0xc0, 0x81, 0x04, 0x44, 0x04, 0x11, 0x01, 0xc0, 0x04, 0x44, 0x02, 0x12, 0x81, 0xc0, 0x04, 0xc4, 0x00, 0x08, 0x82, 0xa0, 0x04, 0xc4, 0x01, 0x0c, 0x86, 0x70, 0x04, 0x44, 0x06, 0x03, 0x18, 0x4c, 0x04, 0x44, 0xf8, 0x00, 0xe0, 0x43, 0x04, 0x44, 0x00, 0x00, 0x00, 0x40, 0x04, 0x84, 0x00, 0x00, 0x00, 0x40, 0x04, 0x84, 0x00, 0x00, 0x00, 0x40, 0x04, 0x84, 0x00, 0x00, 0x00, 0x20, 0x04, 0x84, 0x00, 0x00, 0x00, 0x20, 0x04, 0x84, 0x00, 0x00, 0x00, 0x20, 0x04, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0xe0, 0xf7, 0xfb, 0xfd, 0x04, 0x04, 0x20, 0x14, 0x0a, 0x85, 0x04, 0x04, 0xa0, 0xd6, 0x2a, 0xad, 0x04, 0x04, 0x60, 0xd5, 0x4a, 0xd5, 0x04, 0x04, 0xa0, 0xd6, 0x2a, 0xad, 0x04, 0x04, 0x20, 0x14, 0x0a, 0x85, 0x04, 0x04, 0xe0, 0xf7, 0xfb, 0xfd, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x04, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; xtel-3.3.0.orig/bitmaps/lectra.bit0100444001424500142340000000110006703332515015674 0ustar ericperso#ident "$Id: lectra.bit,v 1.1 1994/08/30 15:54:04 pierre Exp $" #define lectra_width 24 #define lectra_height 23 static char lectra_bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0xf1, 0x2f, 0x54, 0x01, 0x28, 0x54, 0xf1, 0x2b, 0x54, 0x01, 0x2a, 0x54, 0xf1, 0x2a, 0x54, 0x81, 0x2a, 0x54, 0xf1, 0x2a, 0x54, 0x01, 0x2a, 0x54, 0xf1, 0x2b, 0x54, 0x01, 0x28, 0x54, 0xf1, 0x2b, 0x54, 0x01, 0x2a, 0x54, 0xff, 0x2a, 0x54, 0x80, 0x2a, 0xd4, 0xff, 0x2a, 0x14, 0x00, 0x2a, 0xf4, 0xff, 0x2b, 0x04, 0x00, 0x28, 0xfc, 0xff, 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; xtel-3.3.0.orig/bitmaps/pf.bit0100444001424500142340000001574706703332515015055 0ustar ericperso#ident "$Id: pf.bit,v 1.1 1994/08/30 15:54:04 pierre Exp $" #define pf_width 84 #define pf_height 102 static char pf_bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x40, 0xff, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x17, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x80, 0xef, 0xff, 0xff, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0xe0, 0xfe, 0xff, 0xff, 0x01, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0xdd, 0x7f, 0xff, 0xff, 0x07, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x20, 0xfe, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0xf0, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xf0, 0x00, 0x00, 0xb0, 0xff, 0xff, 0xef, 0xfe, 0xff, 0x01, 0x00, 0xf0, 0x00, 0x00, 0xf4, 0xff, 0xff, 0xff, 0xef, 0xff, 0x07, 0x00, 0xf0, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0xf0, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0xf0, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0xf0, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0xf0, 0x00, 0x40, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0xf0, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0xf0, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0x3f, 0x00, 0xf0, 0x00, 0xc0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0x7f, 0x00, 0xf0, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xef, 0x00, 0xf0, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xbf, 0xdf, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xed, 0xf6, 0xff, 0x01, 0xf0, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xb7, 0xba, 0xff, 0x7d, 0x01, 0xf0, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x5f, 0xe9, 0xea, 0xff, 0x01, 0xf0, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x55, 0x42, 0x75, 0xef, 0x01, 0xf0, 0x00, 0xe0, 0xff, 0xdf, 0x7f, 0x07, 0xa8, 0xda, 0xff, 0x03, 0xf0, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x01, 0x40, 0xaa, 0x7b, 0x03, 0xf0, 0x00, 0xe0, 0xff, 0xff, 0x7f, 0x05, 0x00, 0xa4, 0xff, 0x03, 0xf0, 0x00, 0xc0, 0xff, 0xb7, 0x77, 0x00, 0x20, 0x91, 0xde, 0x01, 0xf0, 0x00, 0xe0, 0xff, 0xff, 0x5d, 0x01, 0x00, 0x40, 0xff, 0x03, 0xf0, 0x00, 0xc0, 0xff, 0xd7, 0x5f, 0x10, 0x08, 0x84, 0xfe, 0x02, 0xf0, 0x00, 0xe0, 0xff, 0x6d, 0x2b, 0x02, 0x00, 0x90, 0xbe, 0x03, 0xf0, 0x00, 0xc0, 0xff, 0x5b, 0x95, 0x00, 0x02, 0x41, 0xef, 0x03, 0xf0, 0x00, 0xc0, 0x7f, 0x97, 0x22, 0x00, 0x00, 0x00, 0xfe, 0x01, 0xf0, 0x00, 0x80, 0xff, 0x35, 0x95, 0x00, 0x00, 0xa8, 0xfe, 0x03, 0xf0, 0x00, 0xc0, 0x7f, 0xeb, 0xbb, 0x02, 0x00, 0x02, 0xdd, 0x01, 0xf0, 0x00, 0xe0, 0xff, 0xfe, 0xfe, 0x04, 0x00, 0x00, 0xff, 0x01, 0xf0, 0x00, 0xc0, 0xbe, 0xd5, 0xef, 0x13, 0x40, 0x20, 0x7e, 0x01, 0xf0, 0x00, 0xe0, 0xff, 0xbf, 0xfa, 0x0f, 0x88, 0x80, 0xfe, 0x00, 0xf0, 0x00, 0x60, 0x7f, 0xf5, 0xaf, 0x57, 0xf2, 0x0b, 0x7f, 0x00, 0xf0, 0x00, 0xe0, 0xdf, 0xfd, 0xff, 0x2f, 0xfd, 0x5f, 0x5e, 0x00, 0xf0, 0x00, 0xa0, 0x7f, 0xa9, 0xff, 0x0f, 0x5c, 0xaa, 0x3e, 0x00, 0xf0, 0x00, 0xe0, 0xdd, 0xe5, 0x9a, 0x16, 0x75, 0x71, 0x3f, 0x00, 0xf0, 0x00, 0xc0, 0x7f, 0x11, 0x95, 0x2e, 0xfe, 0x56, 0x16, 0x00, 0xf0, 0x00, 0x60, 0xf7, 0x42, 0x2d, 0x09, 0xf4, 0x4f, 0x1d, 0x00, 0xf0, 0x00, 0xc0, 0xaf, 0x95, 0x12, 0x5a, 0xe9, 0x3d, 0x0f, 0x00, 0xf0, 0x00, 0xc0, 0x7d, 0x01, 0x44, 0x24, 0x94, 0x56, 0x06, 0x00, 0xf0, 0x00, 0x40, 0xef, 0x4a, 0x00, 0x09, 0xa9, 0x94, 0x02, 0x00, 0xf0, 0x00, 0x80, 0x7f, 0x05, 0x12, 0x52, 0x20, 0x01, 0x01, 0x00, 0xf0, 0x00, 0x80, 0xb5, 0x09, 0x80, 0x14, 0x42, 0x92, 0x00, 0x00, 0xf0, 0x00, 0x80, 0xff, 0x22, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0xed, 0x8d, 0x90, 0x2a, 0x11, 0x44, 0x00, 0x00, 0xf0, 0x00, 0x00, 0xbe, 0x22, 0x44, 0x05, 0x04, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0xe8, 0x17, 0x40, 0x15, 0x01, 0x20, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x78, 0x25, 0xc9, 0x0e, 0x00, 0x80, 0x00, 0x00, 0xf0, 0x00, 0x00, 0xe8, 0x9b, 0xa0, 0x57, 0x05, 0x22, 0x00, 0x00, 0xf0, 0x00, 0x00, 0xf8, 0x56, 0xca, 0xbf, 0x29, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x68, 0xab, 0x20, 0x6f, 0x01, 0x48, 0x00, 0x00, 0xf0, 0x00, 0x00, 0xf8, 0xad, 0x8d, 0x9c, 0x40, 0x02, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x68, 0xab, 0x2a, 0x29, 0x12, 0x10, 0x00, 0x00, 0xf0, 0x00, 0x00, 0xf8, 0x55, 0x57, 0x00, 0x80, 0x24, 0x00, 0x00, 0xf0, 0x00, 0x00, 0xd8, 0x97, 0xfc, 0x4b, 0x55, 0x12, 0x00, 0x00, 0xf0, 0x00, 0x00, 0xf8, 0x2a, 0xb5, 0x56, 0x12, 0x09, 0x00, 0x00, 0xf0, 0x00, 0x00, 0xbc, 0x57, 0xa9, 0xb4, 0xad, 0x04, 0x00, 0x00, 0xf0, 0x00, 0x00, 0xf4, 0xad, 0xaa, 0x09, 0x55, 0x08, 0x00, 0x00, 0xf0, 0x00, 0x00, 0xfc, 0x5b, 0xa5, 0x57, 0x82, 0x12, 0x00, 0x00, 0xf0, 0x00, 0x00, 0xdf, 0xbe, 0x4a, 0xad, 0x28, 0x04, 0x00, 0x00, 0xf0, 0x00, 0xc0, 0xf5, 0xb7, 0x15, 0x52, 0x41, 0x05, 0x00, 0x00, 0xf0, 0x00, 0xe0, 0xfe, 0x7f, 0x55, 0x14, 0x2a, 0x09, 0x00, 0x00, 0xf0, 0x00, 0x70, 0xfd, 0xed, 0x95, 0x40, 0x48, 0x02, 0x00, 0x00, 0xf0, 0x00, 0x78, 0xfd, 0xbf, 0x57, 0x8a, 0x52, 0x05, 0x00, 0x00, 0xf0, 0x00, 0x7c, 0x75, 0xff, 0x5a, 0x20, 0xaa, 0x02, 0x00, 0x00, 0xf0, 0x00, 0x6e, 0xfd, 0xff, 0xaf, 0x8a, 0xaa, 0x02, 0x00, 0x00, 0xf0, 0x00, 0x7f, 0xf9, 0xff, 0xbf, 0x24, 0xb5, 0x00, 0x00, 0x00, 0xf0, 0x80, 0xbf, 0xf2, 0x77, 0x7b, 0x55, 0x6d, 0x00, 0x00, 0x00, 0xf0, 0xe0, 0x3f, 0xe4, 0xfd, 0xdf, 0x55, 0x35, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0x7f, 0xc0, 0xff, 0xff, 0x6f, 0x0f, 0x00, 0x00, 0x00, 0xf0, 0xfe, 0x7f, 0x84, 0xff, 0xff, 0xff, 0x05, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x7f, 0x00, 0xff, 0xff, 0xbd, 0x07, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x3f, 0x00, 0xff, 0xee, 0xff, 0x03, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x3f, 0x00, 0xfe, 0xff, 0x7f, 0x03, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x3f, 0x00, 0xfe, 0xff, 0xdf, 0x02, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x3f, 0x00, 0xdc, 0xff, 0x77, 0x05, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x3f, 0x00, 0xf8, 0xff, 0xdf, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x3f, 0x00, 0xf8, 0x7f, 0xab, 0x04, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x7f, 0x00, 0xf0, 0xfb, 0x35, 0x04, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x3f, 0x00, 0xa0, 0xde, 0xae, 0x40, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x7f, 0x00, 0x40, 0xf7, 0x55, 0xc2, 0x03, 0x00, 0x00, 0xf0, 0xff, 0x7f, 0x00, 0x80, 0x54, 0x57, 0xc0, 0x0f, 0x00, 0x00, 0xf0, 0xff, 0x7f, 0x00, 0x00, 0xd5, 0xaa, 0x82, 0x3f, 0x00, 0x00, 0xf0, 0xff, 0x7f, 0x00, 0xbc, 0x54, 0x6b, 0x81, 0xff, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x00, 0x3f, 0xd1, 0x6a, 0x80, 0xff, 0x03, 0x00, 0xf0, 0xff, 0xff, 0xe0, 0x51, 0x20, 0x75, 0x01, 0xff, 0x0f, 0x00, 0xf0, 0xff, 0xff, 0x5c, 0xa9, 0xca, 0x6a, 0x00, 0xff, 0x1f, 0x00, 0xf0, 0xff, 0xff, 0x0f, 0x52, 0x93, 0x7a, 0x00, 0xff, 0xff, 0x00, 0xf0}; xtel-3.3.0.orig/bitmaps/play.bit0100444001424500142340000000052106703332515015375 0ustar ericperso#ident "$Id: play.bit,v 1.1 1994/08/30 15:54:04 pierre Exp $" #define play_width 16 #define play_height 16 static char play_bits[] = { 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x78, 0x00, 0x98, 0x01, 0x18, 0x02, 0x18, 0x0c, 0x18, 0x30, 0x18, 0x60, 0x18, 0x78, 0x18, 0x1f, 0xd8, 0x07, 0xf8, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00}; xtel-3.3.0.orig/bitmaps/rewind.bit0100444001424500142340000000053106703332515015721 0ustar ericperso#ident "$Id: rewind.bit,v 1.1 1994/08/30 15:54:04 pierre Exp $" #define rewind_width 16 #define rewind_height 16 static char rewind_bits[] = { 0x00, 0x00, 0x00, 0x00, 0x80, 0x10, 0xc0, 0x18, 0xc0, 0x18, 0xe0, 0x1c, 0xb0, 0x16, 0x90, 0x12, 0x98, 0x13, 0xb0, 0x16, 0xe0, 0x1c, 0xe0, 0x1c, 0xc0, 0x18, 0x80, 0x10, 0x00, 0x00, 0x00, 0x00}; xtel-3.3.0.orig/bitmaps/stop.bit0100444001424500142340000000052106703332515015415 0ustar ericperso#ident "$Id: stop.bit,v 1.1 1994/08/30 15:54:04 pierre Exp $" #define stop_width 16 #define stop_height 16 static char stop_bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0x18, 0x10, 0x18, 0x10, 0x18, 0x10, 0x18, 0x10, 0x18, 0x10, 0x18, 0x10, 0x18, 0x10, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; xtel-3.3.0.orig/bitmaps/submenu.xbm0100444001424500142340000000026206703332515016120 0ustar ericperso#define submenu_width 8 #define submenu_height 15 static char submenu_bits[] = { 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f, 0x7f, 0xff, 0x7f, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01}; xtel-3.3.0.orig/bitmaps/teleph.xbm0100444001424500142340000000056306703332515015727 0ustar ericperso#define teleph_width 22 #define teleph_height 15 static unsigned char teleph_bits[] = { 0x00, 0x00, 0xc0, 0xf0, 0xff, 0xc1, 0xf8, 0xff, 0xc3, 0xfc, 0xff, 0xc7, 0x9e, 0x31, 0xcf, 0x9e, 0x3f, 0xcf, 0x9e, 0x3f, 0xcf, 0xc0, 0x7f, 0xc0, 0xc0, 0xea, 0xc0, 0xe0, 0xff, 0xc0, 0xe0, 0xea, 0xc0, 0xe0, 0xff, 0xc0, 0xe0, 0xea, 0xc0, 0xe0, 0xff, 0xc0, 0x00, 0x00, 0xc0}; xtel-3.3.0.orig/bitmaps/teleph_mask.xbm0100444001424500142340000000060206703332515016734 0ustar ericperso#define teleph_mask_width 22 #define teleph_mask_height 15 static unsigned char teleph_mask_bits[] = { 0xf0, 0xff, 0xc1, 0xf8, 0xff, 0xc3, 0xfc, 0xff, 0xc7, 0xfe, 0xff, 0xcf, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xdf, 0xf0, 0xff, 0xc1, 0xf0, 0xff, 0xc1, 0xf0, 0xff, 0xc1, 0xf0, 0xff, 0xc1, 0xf0, 0xff, 0xc1, 0xf0, 0xff, 0xc1, 0xf0, 0xff, 0xc1}; xtel-3.3.0.orig/bitmaps/unsensitiveb.xbm0100444001424500142340000000225306703332515017162 0ustar ericperso#define unsensitiveb_width 62 #define unsensitiveb_height 22 static unsigned char unsensitiveb_bits[] = { 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0x1d, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0x2e, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0x3b, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x37, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0x1d, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0x2e, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0x3b, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x37, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0x1d, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0x2e, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0x3b, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x37, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0x1d, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0x2e, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0x3b, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x37, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0x1d, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0x2e, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0x3b, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x37, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0x1d, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0x2e, }; xtel-3.3.0.orig/bitmaps/unsensitiveh.xbm0100444001424500142340000000335706703332515017176 0ustar ericperso#define unsensitiveh_width 45 #define unsensitiveh_height 45 static unsigned char unsensitiveh_bits[] = { 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0x1d, 0x77, 0x77, 0x77, 0x77, 0x77, 0x17, 0xee, 0xee, 0xee, 0xee, 0xee, 0x0e, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0x1b, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0x1d, 0x77, 0x77, 0x77, 0x77, 0x77, 0x17, 0xee, 0xee, 0xee, 0xee, 0xee, 0x0e, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0x1b, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0x1d, 0x77, 0x77, 0x77, 0x77, 0x77, 0x17, 0xee, 0xee, 0xee, 0xee, 0xee, 0x0e, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0x1b, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0x1d, 0x77, 0x77, 0x77, 0x77, 0x77, 0x17, 0xee, 0xee, 0xee, 0xee, 0xee, 0x0e, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0x1b, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0x1d, 0x77, 0x77, 0x77, 0x77, 0x77, 0x17, 0xee, 0xee, 0xee, 0xee, 0xee, 0x0e, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0x1b, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0x1d, 0x77, 0x77, 0x77, 0x77, 0x77, 0x17, 0xee, 0xee, 0xee, 0xee, 0xee, 0x0e, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0x1b, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0x1d, 0x77, 0x77, 0x77, 0x77, 0x77, 0x17, 0xee, 0xee, 0xee, 0xee, 0xee, 0x0e, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0x1b, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0x1d, 0x77, 0x77, 0x77, 0x77, 0x77, 0x17, 0xee, 0xee, 0xee, 0xee, 0xee, 0x0e, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0x1b, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0x1d, 0x77, 0x77, 0x77, 0x77, 0x77, 0x17, 0xee, 0xee, 0xee, 0xee, 0xee, 0x0e, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0x1b, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0x1d, 0x77, 0x77, 0x77, 0x77, 0x77, 0x17, 0xee, 0xee, 0xee, 0xee, 0xee, 0x0e, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0x1b, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0x1d, 0x77, 0x77, 0x77, 0x77, 0x77, 0x17, 0xee, 0xee, 0xee, 0xee, 0xee, 0x0e, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0x1b, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0x1d, }; xtel-3.3.0.orig/bitmaps/unx10100444001424500142340000000051506703332515014551 0ustar ericperso#ident "$Id: unx1,v 1.1 1994/09/07 18:20:28 pierre Exp $" #define unx1_width 16 #define unx1_height 16 static char unx1_bits[] = { 0xff, 0xff, 0x55, 0x55, 0xff, 0xff, 0x55, 0x55, 0xff, 0xff, 0x55, 0x55, 0xff, 0xff, 0x55, 0x55, 0xff, 0xff, 0x55, 0x55, 0xff, 0xff, 0x55, 0x55, 0xff, 0xff, 0x55, 0x55, 0xff, 0xff, 0x55, 0x55}; xtel-3.3.0.orig/bitmaps/white0100444001424500142340000000052106703332515014773 0ustar ericperso#ident "$Id: white,v 1.1 1994/08/30 15:54:15 pierre Exp $" #define white_width 16 #define white_height 16 static char white_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}; xtel-3.3.0.orig/bitmaps/wind.bit0100444001424500142340000000052106703332515015371 0ustar ericperso#ident "$Id: wind.bit,v 1.1 1994/08/30 15:54:04 pierre Exp $" #define wind_width 16 #define wind_height 16 static char wind_bits[] = { 0x00, 0x00, 0x00, 0x00, 0x08, 0x01, 0x18, 0x03, 0x18, 0x03, 0x38, 0x07, 0x68, 0x0d, 0x48, 0x09, 0xc8, 0x19, 0x68, 0x0d, 0x28, 0x05, 0x38, 0x07, 0x18, 0x03, 0x08, 0x01, 0x00, 0x00, 0x00, 0x00}; xtel-3.3.0.orig/bitmaps/xtel.bit0100444001424500142340000000344106703332515015410 0ustar ericperso#ident "$Id: xtel.bit,v 1.1 1994/08/30 15:54:04 pierre Exp $" #define xtel_width 45 #define xtel_height 45 static char xtel_bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x03, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x07, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x07, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x07, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x07, 0xfc, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x7c, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x7c, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x7c, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x7c, 0x80, 0x07, 0x40, 0xc0, 0x07, 0x7c, 0x00, 0x0f, 0x40, 0xc0, 0x07, 0x7c, 0x00, 0x1e, 0x20, 0xc0, 0x07, 0x7c, 0x00, 0x3c, 0x10, 0xc0, 0x07, 0x7c, 0x00, 0x3c, 0x08, 0xc0, 0x07, 0x7c, 0x00, 0x78, 0x04, 0xc0, 0x07, 0x7c, 0x00, 0xf0, 0x04, 0xc0, 0x07, 0x7c, 0x00, 0xe0, 0x02, 0xc0, 0x07, 0x7c, 0x00, 0x60, 0x01, 0xc0, 0x07, 0x7c, 0x00, 0xa0, 0x03, 0xc0, 0x07, 0x7c, 0x00, 0x90, 0x07, 0xc0, 0x07, 0x7c, 0x00, 0x10, 0x0f, 0xc0, 0x07, 0x7c, 0x00, 0x08, 0x0f, 0xc0, 0x07, 0x7c, 0x00, 0x04, 0x1e, 0xc0, 0x07, 0x7c, 0x00, 0x02, 0x3c, 0xc0, 0x07, 0x7c, 0x00, 0x01, 0x78, 0xc0, 0x07, 0x7c, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x7c, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x7c, 0x00, 0x00, 0x00, 0xc0, 0x07, 0xfc, 0x00, 0x00, 0x00, 0xe0, 0x06, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x06, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x07, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x07, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x07, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x07, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x07, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00, 0x04, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x07, 0x3c, 0xf4, 0xff, 0xff, 0x1f, 0x06, 0x3c, 0xf4, 0xff, 0xff, 0x1f, 0x06, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; xtel-3.3.0.orig/bitmaps/zero.bit0100444001424500142340000000052106703332515015407 0ustar ericperso#ident "$Id: zero.bit,v 1.1 1994/08/30 15:54:04 pierre Exp $" #define zero_width 16 #define zero_height 16 static char zero_bits[] = { 0x00, 0x00, 0x00, 0x00, 0x06, 0x21, 0x86, 0x31, 0x86, 0x31, 0xc6, 0x39, 0x66, 0x2d, 0x26, 0x25, 0x36, 0x27, 0x66, 0x2d, 0x46, 0x29, 0xc6, 0x39, 0x86, 0x31, 0x06, 0x21, 0x00, 0x00, 0x00, 0x00}; xtel-3.3.0.orig/COPYING0100444001424500142340000004307606703332476013346 0ustar ericperso GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS Appendix: How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 19yy This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) 19yy name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. xtel-3.3.0.orig/COPYRIGHT0100444001424500142340000000150306703332504013563 0ustar ericperso/* * xtel - Emulateur MINITEL sous X11 * * Copyright (C) 1991-1994 Lectra Systemes & Pierre Ficheux * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ xtel-3.3.0.orig/LISEZMOI.txt0100644001424500142340000005243406703332505014300 0ustar ericperso XTel 3.2 Emulateur Minitel sous X11 Pierre Ficheux (pierre@alienor.fr) Septembre 1998 ---------------------------------------------------------------------------- * 0 - Préambule * 1 -Présentation o 1.1 - But o 1.2 - Description des répertoires o 1.3 - Méthode de simulation des couleurs en monochrome * 2 - Génération * 3 - Installation et configuration o 3.1 - Introduction o 3.2 - Installation du démon xteld o 3.2 - Détection/configuration des modems o 3.3 - Installation du client xtel o 3.4 - Utilisation de xteld avec HyperTerminal® sous Window$ * 4 - Remarque sur l'utilisation * 5 - Bugs et limitations 0. Préambule Par PITIE, lisez ce fichier avant de vous poser (ou de ME poser) des question sur l'installation ! Merci à ceux qui m'ont transmis leurs remarques et problèmes sur les versions 2.2/2.3/2.4/3.0/3.1 et/ou contribué à l'évolution et la diffusion de XTEL avec entre-autres : * Michel Fingerhut (Michel.Fingerhut@ircam.fr) * Laurent.Ghys (Laurent.Ghys@ircam.fr) * Christophe De Traversay * Christophe Wolfhugel (wolf@pasteur.fr) * René Cougnenc + * Remy Card (card@ibp.fr) * Eric Dumas (dumas@freenix.fr) * Daniel Roche (dan@rd.lectra.fr), conseiller artistique pour les icônes :-) Je tiens a remercier particulièrement : * Bernard Fouche (CPIO S.A.) et Florent Pillet (ex CPIO S.A.) pour les multiples corrections de bugs concernant le décodage Vidéotex. * Pierre Beyssac pour: o l'amélioration du demon xteld o l'intégration du code pour utiliser le Minitel 2 comme o le code d'utilisation du démon syslogd * Bertrand Petit pour son floppy de pages d'exemples DRCS. * Sylvain Meunier pour: o les bases du code d'émulation télé-informatique o les bases des macros de conversion des fontes BDF en OpenWindows Une pensée spéciale pour René Cougnenc, R.I.P ;-( Pour connaitre les différences entre les versions, voir le fichier HISTOIRE. Pour voir ce que donne un écran XTEL, vous pouvez visualiser le fichier xtel.gif. 1. Présentation 1.1 But XTEL permet d'émuler un Minitel 1B, 2 ou TVR (Télétel Vitesse Rapide) sur un terminal X, ou une station de travail couleur, monochrome ou à niveaux de gris. Il est utilisable en réseau, c'est a dire qu'une des machines du réseau commande les MODEMS et dialogue avec les services Télétel, les utilisateurs de XTEL dialoguent avec cette machine "serveur" par socket internet (utilisation d'un service TCP et du super-démon "inetd"). La version 2.4 et > permet également une utilisation en "local". Cela permet d'utiliser XTEL sur des machines autonomes sur lequel aucun package TCP/IP n'est installé. XTEL utilise alors des sockets "unix" (AF_UNIX). On peut générer XTEL avec 2 toolkits (interfaces graphiques) possibles : * Toolkit Athena (gratuit, livré avec X11) * Toolkit OSF-Motif (produit commercial) L'émulation "Télétel Vitesse Rapide" nécessite de modifier le fichier "Config.tmpl" pour commenter la ligne: #define NO_TVR L'émulation n'est pas disponible par défaut car elle est très peu utilisée vu que les serveurs TVR (3623) sont assez peu nombreux et que la modulation est spécifique à FT... A ma connaissance, les seuls modems supportant cette modulation sont les Djinn Flash vendus par FT et fabriqués par la société bordelaise COM1. Cette émulation nécessite également la "libjpeg" (du JPEG independent group). Cette librairie est disponible sur ftp.uu.net:/graphics/jpeg. Elle normalement présente sur la majorité des distributions LINUX. J'utilise XTEL sur Linux (xtel et xteld), SunOS 4.1.3, System V 3.2, SVR4... J'ai personnellement testé la partie xtel sur: * Linux 1.0, 1.2, 2.0 * Lectra LS/UX SVR4.0 * SunOS 4.1.1 et + * Solaris 2.3 et + * SGI Irix 5.3 Pour la partie xteld (en particulier la gestion des lignes séries), je n'ai *vraiment* testé que sur System V 3.2, SVR4, Solaris et Linux. 1.2 Description des répertoires ./ le source de XTEL + des exemples de fichiers de configuration (xtel.lignes, xtel.services) ./Videotexle widget de décodage Vidéotex ./Widgets les autres widgets spéciaux utilisées par XTEL ./Xsra le sélecteur de fichier pour Athena (venant de SRA, Tokyo, Japon, et déja utilisé dans GhostView, Pixmap, etc...) ./fonts les fontes ./bitmaps bitmaps particuliers à XTEL ./pixmaps pixmaps (.xpm) particuliers à XTEL ./exemplesquelques pages vidéotex, DRCS et TVR 1.3 Méthode de simulation des couleurs en monochrome Sur un écran monochrome (1 plan mémoire), on simule les 8 couleurs du MINITEL en utilisant des "pixmaps" et en les affectant au "stipple" d'écriture (XSetStipple). On passe ainsi la couleur standard d'écriture (le blanc) au travers d'une "passoire" ce qui simule des niveaux de gris (si on utilise la version "petit écran" de XTEL, option -p, certains affichages, de caractères en particulier, ne sont pas tres lisibles). 2 Génération La génération de XTEL utilise le système des "Imakefile". Les options de configurations sont dans le fichier "Config.tmpl". A partir du fichier "Imakefile" fourni sur la distribution, vous pouvez alors générer un "Makefile" par : xmkmf Puis pour générer la disribution XTEL : make Xtel Si tout se passe bien (!!!), vous devez avoir après le "make all" : * xtel, client XTEL * xteld, démon lance sur la machine "serveur" * les fontes, fonts/*.snf si X11R4, fonts/*.pcf si X11R5 ou + 3 Installation et configuration Cette partie décrit point par point l'installation de Xtel. Si vous utilisez une archive binaire au format RPM de RedHat Software, vous n'avez normalement qu'à installer l'archive par la commande: rpm -ivh nom_archive_RPM_xtel 3.1 Introduction La configuration de XTEL se décompose en : * installation et configuration du démon "xteld" sur la machine serveur (ou bien sur la machine locale dans le cas de la version sans réseau) * installation du client "xtel" sur toutes les machines du réseau désirant l'utiliser * dans le cas d'une installation avec réseau : 1. ajouter la ligne : xtel 1313/tcp dans le fichier "/etc/services" (ajout d'un nouveau service TCP). 2. ajouter la ligne : xtel stream tcp nowait root /usr/X11R6/bin/xteld xteld dans le fichier "/usr/etc/inetd.conf" (ou "/etc/inetd.conf"), pour informer le super-démon "inetd" que l'on a créé un nouveau demon "xteld" (ATTENTION, sur certains systèmes, les champs doivent être séparés par des TAB et non des blancs). Le chemin d'accès absolu à "xteld" varie bien évidemment suivant les systèmes. 3. forcer "inetd" à relire le fichier "inetd.conf" par : kill -1 le_pid_de_inetd * Dans le cas d'une installation sans réseau : 1. ajouter le lancement automatique du démon "xteld" dans le(s) fichier(s) de démarrage de votre système (/etc/rc, ou autre, ça dépend du système) 2. le premier coup, vous pouvez lancer le démon à la main en faisant: xteld en tant que root. ATTENTION, ne *jamais* lancer "xteld" à la main dans le cas d'une installation avec réseau ! 3.2 Installation du démon xteld Cette installation s'effectue sur la machine serveur (supportant le(s) Modem(s)) . Si la machine serveur est également celle sur laquelle vous générez XTEL, vous pouvez créer la règle d'installation par : #define INSTALLDEMON dans le fichier "Config.tmpl", puis un: make install L'installation du démon xteld se décompose en 1. copier le programme "xteld" sur le répertoire $(BINDIR) (/usr/X11R6/bin sous XFree86-3.1.x). 2. copier les fichier "xtel.lignes" et "xtel.services" sur le répertoire $(LIBDIR)/xtel (/usr/X11R6/lib/X11/xtel sous XFree86-3.1.x). Le fichier "xtel.lignes" définit les lignes "tty" utilisables par "xteld". Une ligne du fichier définit une ligne "tty" : [device,]nom_tty[:rtscts],[vitesse,][nb de bits,][parité,]chat_script,délai_connexion [device,]nom_tty[:rtscts],[vitesse,][nb de bits,][parite,]chat_script,délai_connexion device nom symbolique du device associé à cette configuration de la ligne physique. Ce nom est choisi par l'utilisateur (par exemple v23, tvr) et sera utilisé dans le fichier "xtel.services" nom_tty nom du tty (/dev/cuax sur Linux), avec éventuellement le flag "rtscts" de contrôle de flux hardware (pour TVR par exemple) vitesse vitesse en bauds de la lignes. Les valeurs supportées sont: 50, 75 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400. nb de bits nombre de bits. Les valeurs supportées sont: 5, 6, 7, 8. parite parité. Les valeurs supportées sont E (pair), O (impair), N (sans parite). chat_script Description du chat-script entre xteld et le modem. La syntaxe du chat-script est similaire à celle utilisée par UUCP. L'intérêt du chat-script est de permettre une phase d'initialisation du modem avant la composition du numéro (par exemple, passer le modem en modem V.23 - et non pas en automode - avant de composer ==> augmentation de la vitesse de connexion). Si le chat-script est remplacé par la chaîne: minitel2 la ligne utilisera un Minitel 2 comme modem (idem pour un minitel1, mais il faudra alors composer les numéros a la main...) Les séquences reconnues par le chat-script sont : \n émet un LF \r CR \t VT \d tempo de 1 s \a bip (^G) \T remplace par le numéro de téléphone courant \xyz émet le caractère code en DECIMAL par xyz (3 digits OBLIGATOIRES) \xab émet le caractère en HEXADECIMAL (2 digits) délai_connexion délai maxi d'attente de la chaîne ci-dessus en secondes L'ancienne syntaxe (sans la notion de device) est toujours supportées (elle est détectée par la présence d'un '/' en debut de ligne) exemples: le_v23,/dev/cua0,1200,7,E,\dat\r OK atdt\T\r CONNECT,30 - nom du device = le_v23 - ligne /dev/cua1, 1200 bauds, 7 bits, parité paire - le chat-script décrit la conversation suivante (to chat = converser) xteld émet Modem doit répondre \d Delai de 1s pour attendre le démarrage du soft du modem (SOUVENT NECESSAIRE) at + CR OK atdt + numéro téléphone + CR CONNECT - délai maxi = 30 s le_tvr,/dev/cua2:rtscts,9600,8,N,\dat\r OK at+xm3\r OK atdt\T\r CONNECT,30 - config en Télétel Vitesse Rapide (avec contrôle de flux hard RTS/CTS sur la ligne) /dev/cua1,minitel2,30 - ligne /dev/cua1 - on utilise un Minitel 2 comme modem, délai maxi = 30s Le fichier "xtel.services" définit les services accessibles aux utilisateurs de XTEL. Une ligne du fichier définit un service : [Device,]Nom_du_service,numéro_de_téléphone[liste_d_utilisateurs] Device Device utilise (doit être défini dans "xtel.lignes") Nom_du_service Chaine de caractères affichée dans le menu "Services" de "xtel" numéro_de_téléphone[:nom] numéro du service liste_d_utilisateurs liste des utilisateurs autorisés et des temps maxis de connexion pour un service donné (optionnel, syntaxe "user=delai") exemples : le_v23,Annuaire electronique,3611,=180 le_v23,Teletel 1,3613,pierre=120:olivier le_v23,Méteo,3615:METEO le_tvr,Teletel TVR,3623 le_v23,Direct,0,pierre@pcpf:@pcwin Dans cet exemple le service d'\fIAnnuaire\fP est autorisé à tous pendant 180 secondes (=180). Le \fITélétel1\fP est accessible à l'utilisateurs pierre pendant 120 secondes (pierre=120), il n'y a pas de limite d'accès pour l'utilisateur olivier. L'accès au 3615 est limité au service METEO. Le service Direct n'est accessible qu'à l'utiisateur 'pierre' sur la machine 'pcpf', et à tous les utilisateurs de la machine de nom 'pcwin'. La dernière ligne "Direct,0" permet de fournir aux utilisateurs l'accès à la composition directe des numéros (dangereux car certains services Télétel sont hors de prix ! ==> à protéger). La configuration de ces 2 fichiers est de sous responsabilité de l'administrateur système suivant le budget téléphonique alloué ! 3.3 Détection/configuration des modems Si vous utilisez l'installation sous LINUX par RPM (voir http://www.alienor.fr/~pierre/xtel/tele.html), la procédure doit détecter automatiquement le modem (si celui-ci fait partie de la liste bien sûr). La liste (modem.list) est localisée dans le répertoire /usr/X11R6/lib/X11/xtel ou bien par Internet (dernière version à jour) sur l'URL http://www.alienor.fr/~pierre/xtel/modem.list. Si vous êtes sous LINUX, vous pouvez les modems détecter après l'installation et générer du coup un fichier xtel.lignes. Pour cela taper: make_xtel_lignes Si vous n'êtes pas sous LINUX, vous pouvez toujours utiliser le programme mdmdetect pour tenter de détecter le type de modem présent sur une ligne série donnée (vous pouvez aussi adapter le script make_xtel_lignes à votre système). pierre@pcpf % mdmdetect -h Usage: mdmdetect [-d] [-l modem_list] [-b builder] [-q] tty_device Voici quelques exemples d'utilisation: * Récupération de la liste des constructeurs connus: pierre@pcpf % mdmdetect -q Hayes COM1 Olitec USR Kortex * Détection sur la ligne cua1 en utilisation la liste locale et sachant que le modem est de marque COM1 root@pcpf # mdmdetect -b COM1 cua1 . PC-Card-MC218 , 38400 \dat&fm1e0&k3f3\r-OK Le programme renvoit alors 4 paramètres: 1. le nom du modem 2. le séparateur à utiliser dans le fichier xtel.lignes (souvent la virgule) 3. la vitesse à utiliser dans le fichier xtel.lignes 4. la chaine d'initialisation du modem Notez que les blancs sont systématiquement remplacés par le caractère - (moins). La ligne correspondante dans xtel.lignes est: # COM1 PC Card MC218 modem0,/dev/cua1,38400,7,E,\dat&fm1e0&k3f3\r OK atdt\T\r CONNECT,30 * Même détection en utilisant une liste sur Internet: root@pcpf # mdmdetect -l http://www.alienor.fr/~pierre/xtel/modem.list -b COM1 cua1 Appel de pcpf...OK . PC-MCIA-MC218 , 38400 \dat&fm1e0&k3f3\r-OK Notez que mdmdetect ne fonctionne PAS (pour l'instant) à travers un proxy. 3.3 Installation du client xtel Cette installation doit être effectuée sur chaque machine du réseau désirant utiliser XTEL. Elle se decompose en : * configuration du fichier de ressources, qui permet de définir l'aspect et le comportement de "xtel" : o nom du serveur (ressource "serveur") ! localhost ==> serveur local *serveur: localhost o format de la commande d'impression de page (ressource "commandeImpression") *commandeImpression: xwdtopnm %s | pnmflip -r90 | pnmtops | lpr On utilise le package PBMPLUS pour convertir la fenêtre d'émulation du format XWD --> POSTSCRIPT (voir fichier "imprime.c"). o nom du service (ressource "nomService") *nomService: xtel à priori, pas de raison de changer ... o taille de la fenêtre d'émulation (ressource "petiteFonte") *petiteFonte: False par défaut, on utilise la grande fonte (émulation sur 640x500 pixels). * installation, qui est effectuée par : make install qui installe : o xtel sur $(BINDIR) (et xteld si INSTALLDEMON est defini) o XTel (ou XTelm si version Motif) sur $(LIBDIR)/app-defaults o les fontes sur $(LIBDIR)/fonts/xtel o xtel.lignes et xtel.services si INSTALLDEMON est defini * ajout du nom du service "xtel", par ajout de la ligne: xtel 1313/tcp dans le fichier "/etc/services" (ajout d'un nouveau service TCP). Ceci n'est vrai que dans la version reseau. * information au serveur X de la présence de nouvelles fontes sur $(LIBDIR)/fonts/xtel par exemple avec : xset +fp /usr/X11R6/lib/X11/fonts/xtel A T T E N T I O N ! Si vous installez XTEL sur XFree-86 (version 2 ou 3), vous pouvez (et même devez) indiquer au serveur le répertoire des fontes XTEL. Pour XFree86-2.1: ajouter le path des fontes XTEL dans le "FontPath" : FontPath "/usr/X386/lib/X11/fonts/misc/,/usr/X386/lib/X11/fonts/75dpi/,/usr/X386/lib/X11/fonts/xtel/" Pour XFree86-3.1: ajouter une ligne du type : FontPath "/usr/X11R6/lib/X11/fonts/xtel/" bien sûr, il faut relancer le serveur... * installation du manuel par : make install.man L'INSTALLATION DE XTEL EST TERMINEE !!! Remarques : * Si vous disposez d'un écran couleur, et d'un window-manager supportant les icônes au format XPM (fvwm par exemple), vous pouvez utiliser le fichier "xtel.xpm" comme icône. Pour celà, il faut ajouter les lignes suivantes dans le .fvwm : Style "xtel" Icon xtel.xpm Pour tvtwm : # indispensable pour inhiber l'icone initial de XTEL ForceIcons Icons { "xtel" "xtel.xpm" } * Si vous utilisez AIX (pauvre de vous !), il semble qu'il faille définir NO_TERMIO dans le fichier "Config.tmpl" Utilisation de xteld avec HyperTerminal® sous Window$ Il est possible d'utiliser le démon xteld comme serveur de modem comme pour le programme HyperTerminal® Private Edition développé par Hilgraeve. Pour installer ce système il faut: * Coté UNIX ajouter un service xtelw (par exemple) sur un port différent de celui du client xtel standard (utiliser par exemple le port 1314 à la place du 1313). La différence avec l'installation du paragraphe 3.1 est l'option -H à ajouter à l'appel de xteld dans le fichier /etc/inetd.conf: xtelw stream tcp nowait root /usr/X11R6/bin/xteld xteld -H La modif du fichier /etc/services sera du type: xtelw 1314/tcp * Coté HyperTerminal, définir une connexion nommé "xtel" (par exemple) et utilisant une connexion de type 'TCP/IP (Winsock)' sur l'adresse du serveur UNIX et le port 1314. Une explication détaillé de l'installation est disponible sur http://www.alienor.fr/~pierre/xtel/hyper.html. Cette méthode permet d'utiliser le serveur UNIX à la fois pour des clients xtel UNIX et pour des clients HyperTerminal® Windows. 4 Remarque sur l'utilisation Lorsqu'un utilisateur est connecté a un service, "xteld" crée un fichier ".xtel-nom_utilisateur" sur le répertoire /tmp. Ce fichier contient des infos sur la connexion (pid du démon, nom de ligne, nom de service). Les caractéristiques de la connexion (heure, durée, service, ...) sont sauvées sur un fichier de "log" (par défaut $(LIBDIR)/xtel/xtel.log). 5 Bugs et limitations * Les séquence CSI ne sont pas entièrement traitées (XTEL ne traite que les positionnements et les débuts/fins d'insertion...) * Le décodage VIDEOTEX est relativement complexe et il reste certainement des bugs de decodage. Si vous en trouvez un, merci de m'envoyer un mail explicitant le bug (service Télétel, moyen de parvenir à la page et surtout la page incriminée en pièce jointe). * Le TVR n'est certainement pas géré complètement...mais ce n'est pas grave car le TVR est d'ores et déja enterré ! (le flag de compilation NO_TVR est actif par défaut et les versions binaires sont compilées ainsi) Je suis bien entendu à l'écoute de toutes les remarques constructives. Ave feune, Pierre Ficheux E-mail: pierre@alienor.fr WWW : http://www.alienor.fr/~pierre xtel-3.3.0.orig/HISTOIRE.txt0100644001424500142340000000430006703332505014260 0ustar ericperso1985/1986, l'ancêtre Pierre Ficheux, appelé scientifique du contingent s'ennuie ferme et écrit donc son premier émulateur Minitel sur Sinclair QL en assembleur 68000 ;-) 1991, version 2.2 Première version distribuée par la machine geocub de la fac de Bordeaux 1992, version 2.3 * Accès sécurisés par utilisateur (Michel Fingerhut) * Création et mise a jour d'un fichier de log * Procédures de connexion * Caractères accentués dans les menus * Traitement de l'attribut de clignotement * Amélioration du dialogue xteld/modem * Traitement des terminaux à 16 niveaux de gris * Fonction d'approximation de page vidéotex sur la sortie standard * Correction de quelques bugs de decodage... 1993, version 2.4 * Beaucoup de corrections de décodage (Florent Pillet / CPIO S.A.) ! * Code pour utiliser un Minitel 2 comme modem (Pierre Beyssac / SYSECA) (je n'ai pas personnellement teste ce code car je n'ai pas de M2) * Support pour SVR4 (pas complètement testé au niveau des liaisons série car notre portage de SVR4 a encore quelques problèmes...) * Sélecteur de fichier pour la version Athena * Possibilité d'utiliser xtel/xteld en local (sans package TCP/IP). * Emulation du mode télé-informatique du M1B 1994, version 3.0 * L'écran Vidéotex est devenu un Widget (donc utilisable dans d'autres applis que XTel...) * Emulation du Minitel 2 (extension graphique DRCS) * Quelques modifications sur les fontes * Encore des améliorations du démon (integration de syslog, modif pour M2 et FreeBSD ==> Pierre Beyssac) * globalement, nettoyage du code pour rassembler les références externes (global.h, globald.h) et prototyper un peu plus... 1996, version 3.1 * Relookage pour avoir une interface + jolie * Supression de ce %(**& d'UIL sous Motif * Ajout du support TVR (Télétel Vitesse Rapide) * Extension des procédures * Support pour protocoles de téléchargement * Support pour accès Minitel par TCP/IP 1998, version 3.2 * Amélioration de la procédure d'installation (détection auto des modems) * Support Xteld pour HyperTerminal PE 3.0/4.0 sous Win$ Pierre Ficheux E-mail: pierre@alienor.fr WWW : http://www.alienor.fr/~pierre xtel-3.3.0.orig/README_IMINITEL.txt0100644001424500142340000000636607241610731015275 0ustar ericperso [I-Minitel] et Xtel-3.3 Pierre Ficheux (pierre@alienor.fr) Février 2001 1. Qu'est-ce qu' I-Minitel ? I-Minitel est un nouveau point d'accès rapide mis en place par France Telecom. Cet accès n'utilise plus l'ancienne modulation V.23 (1200/75 bps) mais un accès centralisé PPP sur le numéro unique 3622. Nous rappelons que le protocole PPP (Point to Point Protocol) est celui utilisé pour les connexions Interne sur les fournisseurs d'accès habituels. Ce point d'accès vous permet d'utiliser les services Minitel au débit maxi de votre modem Internet (56 kbps et plus). Le réseau IP I-Minitel est cependant complètement indépendant du réseau Internet et l'accès à I-Minitel sera exclusivement disponible à travers cette connexion PPP même si vous disposez d'une connexion Internet permanente. Lorsque la page d'accès du 3622 apparait, il suffit d'entrer le code habituel du service (SNCF, METEO, etc...). L'annuaire electronique est également disponible à travers le 3622 en utilisant le code PAGESJAUNES. Pour en savoir plus sur le produit I-Minitel, veuillez consulter le site http://www.i-minitel.com. 2. I-Minitel et Xtel Depuis sa conception en 1991, Xtel utilise une technique similaire à celle de la technologie I-Minitel aujourd'hui à savoir l'accès à un service Minitel à travers une connexion TCP/IP. Dans le cas de Xtel, le client xtel effectue une connection TCP vers le serveur xteld, ce dernier effectuant la connexion effective au service Minitel (le plus souvent par modem). Dans le cas de I-Minitel, la connexion au service est TCP/IP d'un bout à l'autre et la machine supportant xteld aura un role de routeur d'accès aux services I-Minitel. En particuliers: * Le premier client xtel initialise la connexion PPP de xteld vers le serveur 3622. xteld mets alors en place la route vers le serveur I-Minitel * Les clients suivants utiliseront cette route sans avoir à rappeler le 3622 * La deconnexion du dernier client provoquera la coupure de la connexion PPP * Le client peut être un poste Windows équipé d'un émulateur de type HyperTerminal compatible TCP/IP Pour effectuer la connexion PPP, xteld utilise le programme standard pppd. L'accès I-Iminitel est défini dans le fichier xtel.services par une ligne du type: @iminitel,I-Minitel,connect_iminitel:7516 Le paramètre connect_iminitel correspond à un shell-script de lancement de la connexion PPP. Ce script est localisé au même endroit que le fichier xtel.services (répertoire /usr/X11R6/lib/X11/xtel). Les fichiers de configuration pppd sont les suivants: /etc/ppp/ip-up.iminitel Script d'initialisation de la route I-Minitel, exécuté à la connexion /etc/ppp/ip-down.iminitelScript exécuté lors de la coupure de connexion I-Minitel Chat-script de composition, contient le numéro /etc/ppp/chat-iminitel d'appel 3622 et les caractéristiques de la connexion PPP (login/password) /etc/ppp/peers/iminitel Script de lancement de pppd, contient le nom de la ligne série utilisée (par défaut ttyS0) xtel-3.3.0.orig/xm.c0100444001424500142340000010664706767425761013121 0ustar ericperso/* * xtel - Emulateur MINITEL sous X11 * * Copyright (C) 1991-1996 Lectra Systemes & Pierre Ficheux * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ static char rcsid[] = "$Id: xm.c,v 1.17 1999/09/14 11:05:21 pierre Exp $"; /* * Couche Toolkit OSF-MOTIF */ #include "xtel.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "pixmaps/pf.xpm" #include "bitmaps/unsensitiveh.xbm" #include "bitmaps/unsensitiveb.xbm" #include "pixmaps/rewind.xpm" #include "pixmaps/prev.xpm" #include "pixmaps/stop.xpm" #include "pixmaps/play.xpm" #include "pixmaps/next.xpm" #include "pixmaps/disk_write.xpm" #include "pixmaps/disk_read.xpm" #include "pixmaps/printera.xpm" #include "pixmaps/printer.xpm" #include "pixmaps/door_run.xpm" #include "pixmaps/nouveau.xpm" #include "pixmaps/camera.xpm" #include "pixmaps/film.xpm" #include "pixmaps/phone.xpm" #include "pixmaps/cassete.xpm" #include "pixmaps/envoi.xpm" #include "pixmaps/retour.xpm" #include "pixmaps/annul.xpm" #include "pixmaps/guide.xpm" #include "pixmaps/repet.xpm" #include "pixmaps/sommaire.xpm" #include "pixmaps/suite.xpm" #include "pixmaps/correc.xpm" #include "pixmaps/cxfin.xpm" #include "pixmaps/envoi_on.xpm" #include "pixmaps/retour_on.xpm" #include "pixmaps/annul_on.xpm" #include "pixmaps/guide_on.xpm" #include "pixmaps/repet_on.xpm" #include "pixmaps/sommaire_on.xpm" #include "pixmaps/suite_on.xpm" #include "pixmaps/correc_on.xpm" #include "pixmaps/cxfin_on.xpm" #include "bitmaps/teleph.xbm" #include "bitmaps/aide.bit" #include "bitmaps/lecteur.bit" #include "bitmaps/zero.bit" #include "bitmaps/wind.bit" #include "bitmaps/rewind.bit" #include "bitmaps/play.bit" #include "bitmaps/stop.bit" #include "Timer.h" #include "XpmButton.h" #define XmStringDefCreate(s) XmStringLtoRCreate((s),XmSTRING_DEFAULT_CHARSET) #define K_Charge 0 #define K_Sauve 1 static char buf[256]; static Arg args[10]; static int n; static char *toolkit = "OSF/Motif"; static Widget lecteur, compteur_lecteur_page, compteur_lecteur_caractere; static Widget stop_lecteur, play_lecteur, bouton_lecteur; static Widget boite_haut; static Widget rc_lecteur, menu_protocole, bouton_aide, menu_aide; static Widget quitte_lecteur; static Widget compteur_lecteur; static Widget compteur_lecteur_titre; static Widget menu_type_arret_page; static Widget clavier_lecteur, btn_lecteur; static Widget fem, em, top; static Widget forme_base, paned_base, menu_compose, menu_procedure, menu_impression; static Widget selecteur_fichier, boite_saisie, confirmation_sortie, message_erreur; static Widget barre_menu, menu_enregistrement; static void Ouverture_boite_saisie (); static void Validation_selecteur_fichier (); static void Composition_service (); static void Appel_procedure (); static void Ouverture_selecteur_fichier (); static void Annulation_selecteur_fichier (); static void Validation_boite_saisie (); static void Annulation_boite_saisie (); static void Ouverture_confirmation_sortie (); static void Validation_confirmation_sortie (); static void Annulation_confirmation_sortie (); static void Validation_message_erreur (); static void Affiche_menu_clavier (); static void Valide_le_bouton_stop(); static void Affiche_copyright (); /* A DEPLACER */ Widget la_cassete; #if XmREVISION > 1 #define XTPOINTER XtPointer #else #define XTPOINTER caddr_t #endif static XtActionsRec actions_touches[] = { {"affiche_menu_clavier", Affiche_menu_clavier} }; static XrmOptionDescRec options[] = { {"-serveur", "*serveur", XrmoptionSepArg, NULL}, {"-service", "*nomService", XrmoptionSepArg, NULL}, {"-petit", "*petiteFonte", XrmoptionNoArg, "True"}, {"-ng", "*nGris", XrmoptionNoArg, "True"}, {"-br", "*boutonRaccrocher", XrmoptionNoArg, "True"}, {"-low", "*lowMemory", XrmoptionNoArg, "True"}, {"-private", "*privateColormap", XrmoptionNoArg, "True"}, }; /* Callback de selection du type d'arret */ static void menu_type_arret_page_cb (w, choice, call_data) Widget w; int choice; XtPointer call_data; { flag_arret_a_chaque_page = True; switch (choice) { case 0 : flag_arret_a_chaque_page = False; break; case 1 : type_de_fin_page = ARRET_FF; break; case 2 : type_de_fin_page = ARRET_SUITE; break; case 3 : type_de_fin_page = ARRET_SUITE | ARRET_FF; break; default : break; } } /* * Creation d'une entree menu (type PushButtonWidget) */ static Widget create_menu_entry (parent, name, sensitive, cb, call_data) Widget parent; char *name; Boolean sensitive; void *cb; XTPOINTER call_data; { Widget entry; entry = XtVaCreateManagedWidget (name, xmPushButtonWidgetClass, parent, XtNsensitive, sensitive, NULL); XtAddCallback (entry, XmNactivateCallback, (XtCallbackProc)cb, call_data); return (entry); } static Widget create_bitmap_label (parent, name, bits, width, height) Widget parent; char *name; char *bits; int width, height; { Widget w; Pixmap pixmap; Display *dpy = XtDisplay(parent); int screen = DefaultScreen (dpy); long bg; XtVaGetValues (parent, XtNbackground, &bg, NULL); if ((pixmap = XCreatePixmapFromBitmapData (dpy, DefaultRootWindow(dpy), bits, width, height, black_pixel /*BlackPixel (dpy, screen)*/, bg, DisplayPlanes(dpy, screen)))) { w = XtVaCreateManagedWidget (name, xmLabelWidgetClass, parent, XmNlabelType, XmPIXMAP, XmNlabelPixmap, pixmap, XtNmappedWhenManaged, False, NULL); return (w); } else { fprintf (stderr, "create_bitmap_label: %s: can't create X bitmap\n", name); return (NULL); } } /* * PushButton avec Pixmap XPM */ static Widget create_pixmap_button (parent, name, sensitive, class, arm_cb, disarm_cb, arm_call_data, disarm_call_data, xpm_data, unsensitive_xpm_data) Widget parent; char *name; Boolean sensitive; WidgetClass class; void *arm_cb, *disarm_cb; XTPOINTER arm_call_data, disarm_call_data; char *xpm_data[], *unsensitive_xpm_data[]; { Widget w; Pixmap pixmap, unsensitive_pixmap; XpmAttributes xpma; XtVaGetValues (parent, XtNcolormap, &xpma.colormap, NULL); xpma.valuemask = XpmColormap; XpmCreatePixmapFromData (XtDisplay(parent), DefaultRootWindow(XtDisplay(parent)), xpm_data, &pixmap, NULL, &xpma); if (pixmap) { w = XtVaCreateManagedWidget (name, class, parent, XmNsensitive, sensitive, XmNlabelType, XmPIXMAP, XmNlabelPixmap, pixmap, NULL); if (unsensitive_xpm_data) { XpmCreatePixmapFromData (XtDisplay(parent), DefaultRootWindow(XtDisplay(parent)), unsensitive_xpm_data, &unsensitive_pixmap, NULL, &xpma); XtVaSetValues (w, XmNlabelInsensitivePixmap, unsensitive_pixmap, NULL); } if (arm_cb) XtAddCallback (w, XmNarmCallback, (XtCallbackProc)arm_cb, arm_call_data); if (disarm_cb) XtAddCallback (w, XmNdisarmCallback, (XtCallbackProc)disarm_cb, disarm_call_data); return (w); } else { fprintf (stderr, "create_pixmap_button: %s: can't create Xpm pixmap\n", name); return (NULL); } } static Widget create_xpm_button (parent, name, class, cb, call_data, pixmap1_data, pixmap2_data, shape1_data, shape2_data, unsensitive_bitmap) Widget parent; char *name; WidgetClass class; void *cb; XtPointer call_data; char *pixmap1_data[], *pixmap2_data[]; char *shape1_data[], *shape2_data[]; Pixmap unsensitive_bitmap; { Widget w; Pixmap pixmap1 = None, pixmap2 = None, shape1 = None, shape2 = None; XpmAttributes xpma; XtVaGetValues (parent, XtNcolormap, &xpma.colormap, NULL); xpma.valuemask = XpmColormap; if (pixmap1_data) XpmCreatePixmapFromData (XtDisplay(parent), DefaultRootWindow(XtDisplay(parent)), pixmap1_data, &pixmap1, &shape1, &xpma); if (pixmap2_data) XpmCreatePixmapFromData (XtDisplay(parent), DefaultRootWindow(XtDisplay(parent)), pixmap2_data, &pixmap2, &shape2, &xpma); w = XtVaCreateManagedWidget (name, class, parent, XtNpixmap1, pixmap1, XtNpixmap2, pixmap2, XtNshape1, shape1, XtNshape2, shape2, XtNunsensitiveBitmap, unsensitive_bitmap, NULL); if (cb) XtAddCallback (w, XtNcallback, (XtCallbackProc)cb, call_data); return (w); } /* * PushButton avec Bitmap X */ static Widget create_bitmap_button (parent, name, class, arm_cb, disarm_cb, arm_call_data, disarm_call_data, bits, width, height) Widget parent; char *name; WidgetClass class; void *arm_cb, *disarm_cb; XTPOINTER arm_call_data, disarm_call_data; char *bits; int width, height; { Widget w; Pixmap pixmap; Display *dpy = XtDisplay(parent); int screen = DefaultScreen (dpy); long fg, bg; XtVaGetValues (parent, XtNbackground, &bg, XtNforeground, &fg, NULL); if ((pixmap = XCreatePixmapFromBitmapData (dpy, DefaultRootWindow(dpy), bits, width, height, fg, bg, DisplayPlanes(dpy, screen)))) { w = XtVaCreateManagedWidget (name, class, parent, XmNlabelType, XmPIXMAP, XmNlabelPixmap, pixmap, XtNforeground, fg, XtNbackground, bg, NULL); if (arm_cb) XtAddCallback (w, XmNarmCallback, (XtCallbackProc)arm_cb, arm_call_data); if (disarm_cb) XtAddCallback (w, XmNdisarmCallback, (XtCallbackProc)disarm_cb, disarm_call_data); return (w); } else { fprintf (stderr, "create_bitmap_button: %s: can't create bitmap\n", name); return (NULL); } } /* * Affichage du popup-menu clavier */ void Affiche_menu_clavier (w, pevent, params, nb_params) Widget w; XButtonEvent *pevent; String *params; Cardinal nb_params; { #ifndef DONT_USE_POPUP XmMenuPosition(menu_clavier, pevent); XtManageChild (menu_clavier); #endif } /* * Initialisation du toolkit */ Widget init_toolkit (pargc, argv) int *pargc; char **argv; { #ifdef DEBUG printf ("Initialisation du toolkit\n"); #endif toolkit_utilise = toolkit; top = XtAppInitialize(&app_context, "XTelm", options, XtNumber(options), pargc, argv, NULL, NULL, 0); #ifndef DONT_USE_POPUP XtAppAddActions(app_context, actions_touches, XtNumber(actions_touches)); #endif return (top); } /* * Initialisation des widgets */ Widget init_widgets (topLevel) Widget topLevel; { register int i; Widget entry; XpmAttributes xpma; #ifndef LOW_MEMORY Pixmap unsensitive_pixmap_h, unsensitive_pixmap_b, pixmap_k7; #endif int type_arret; #ifdef DEBUG printf ("Initialisation des widgets\n"); #endif low_memory = rsc_xtel.lowMemory; /* Contenant de base */ forme_base = XtVaCreateManagedWidget ("forme_base", xmRowColumnWidgetClass, topLevel, XmNorientation, XmVERTICAL, XmNentryAlignment, XmALIGNMENT_CENTER, NULL); /* Barre de menu */ n = 0; XtSetArg (args[n], XmNmenuHelpWidget, bouton_aide); n++; barre_menu = XmCreateMenuBar (forme_base, "barre_menu", args, n); /* Menu "Fichier" */ menu_fichier = XmCreatePulldownMenu (barre_menu, "menu_fichier", NULL, 0); menu_impression = XmCreatePulldownMenu (topLevel, "menu_impression", NULL, 0); menu_terminal = XmCreatePulldownMenu (topLevel, "menu_terminal", NULL, 0); XtVaCreateManagedWidget ("bouton_fichier", xmCascadeButtonWidgetClass, barre_menu, XmNsubMenuId, menu_fichier, NULL); create_menu_entry (menu_fichier, "bouton_sauve", True, Ouverture_selecteur_fichier, (XTPOINTER)K_Sauve); entry = create_menu_entry (menu_fichier, "bouton_charge", True, Ouverture_selecteur_fichier, (XTPOINTER)K_Charge); XtVaCreateManagedWidget ("bouton_imprime", xmCascadeButtonWidgetClass, menu_fichier, XmNsubMenuId, menu_impression, NULL); create_menu_entry (menu_impression, "bouton_impression_ascii", True, imprime_page_courante_ascii, NULL); create_menu_entry (menu_impression, "bouton_impression_videotex", True, imprime_page_courante_videotex, NULL); XtVaCreateManagedWidget ("bouton_terminal", xmCascadeButtonWidgetClass, menu_fichier, XmNsubMenuId, menu_terminal, NULL); create_menu_entry (menu_terminal, "videotex", False, selection_mode_emulation, (XTPOINTER)"V"); create_menu_entry (menu_terminal, "teleinfo_ascii", True, selection_mode_emulation, (XTPOINTER)"A"); create_menu_entry (menu_terminal, "teleinfo_fr", True, selection_mode_emulation, (XTPOINTER)"F"); if (rsc_xtel.boutonRaccrocher) create_menu_entry (menu_fichier, "raccrocher", False, raccrocher, NULL); XtVaCreateManagedWidget ("separateur_fichier", xmSeparatorGadgetClass, menu_fichier, NULL); create_menu_entry (menu_fichier, "bouton_quitte", True, Ouverture_confirmation_sortie, NULL); /* Menu "Enregistrement" */ menu_enregistrement = XmCreatePulldownMenu (barre_menu, "menu_enregistrement", NULL, 0); XtVaCreateManagedWidget ("bouton_enregistrement", xmCascadeButtonWidgetClass, barre_menu, XmNsubMenuId, menu_enregistrement, NULL); create_menu_entry (menu_enregistrement, "bouton_nouveau", True, nouvel_enregistrement, NULL); bouton_demarre = create_menu_entry (menu_enregistrement, "bouton_demarre", True, demarre_enregistrement, NULL); bouton_arrete = create_menu_entry (menu_enregistrement, "bouton_arrete", False, arrete_enregistrement, NULL); bouton_lecteur = create_menu_entry (menu_enregistrement, "bouton_lecteur", False, debut_lecteur, NULL); /* Creation du menu "Services" */ if (nb_services != 0) { menu_compose = XmCreatePulldownMenu (barre_menu, "menu_compose", NULL, 0); bouton_compose = XtVaCreateManagedWidget ("bouton_compose", xmCascadeButtonWidgetClass, barre_menu, XmNsubMenuId, menu_compose, NULL); for (i = 0 ; i != nb_services ; i++) { n = 0; XtSetArg (args[n], XmNlabelString, XmStringCreate (entree_compose[i], XmSTRING_DEFAULT_CHARSET)); n++; entry = XtVaCreateManagedWidget (entree_compose[i], xmPushButtonGadgetClass, menu_compose, NULL); if (i == nb_services-1 && !strcmp (entree_compose[i], "Direct")) XtAddCallback(entry, XmNactivateCallback, Ouverture_boite_saisie, NULL); else XtAddCallback(entry, XmNactivateCallback, Composition_service, (XTPOINTER)i); } } /* Creation du menu Procedures */ if (nb_procedures != 0) { menu_procedure = XmCreatePulldownMenu (barre_menu, "menu_procedure", NULL, 0); bouton_procedure = XtVaCreateManagedWidget ("bouton_procedure", xmCascadeButtonWidgetClass, barre_menu, XmNsubMenuId, menu_procedure, NULL); for (i = 0 ; i != nb_procedures ; i++) { entry = create_menu_entry (menu_procedure, "proc", True, Appel_procedure, (XTPOINTER)i); XtVaSetValues (entry, XmNlabelString, XmStringCreate (procedures[i].nom, XmSTRING_DEFAULT_CHARSET), NULL); } } /* Menu des protocoles */ if (nb_protocoles) { menu_protocole = XmCreatePulldownMenu (barre_menu, "menu_protocole", NULL, 0); bouton_proto = XtVaCreateManagedWidget ("bouton_proto", xmCascadeButtonWidgetClass, barre_menu, XmNsubMenuId, menu_protocole, NULL); for (i = 0 ; i != nb_protocoles ; i++) { entry = create_menu_entry (menu_protocole, "proto", True, Selection_telechargement, (XTPOINTER)i); XtVaSetValues (entry, XmNlabelString, XmStringCreate (protocoles[i].nom, XmSTRING_DEFAULT_CHARSET), NULL); } XtVaCreateManagedWidget ("blanc_tele", xmSeparatorGadgetClass, menu_protocole, NULL); /* Bouton d'interruption de protocole */ stop_tele = create_menu_entry (menu_protocole, "stop_tele", True, Stop_telechargement, (XTPOINTER)NULL); } /* Aide */ menu_aide = XmCreatePulldownMenu (barre_menu, "menu_aide", NULL, 0); bouton_aide = create_bitmap_button (barre_menu, "bouton_aide", xmCascadeButtonWidgetClass, NULL, NULL, NULL, NULL, aide_bits, aide_width, aide_height); XtVaSetValues (bouton_aide, XmNsubMenuId, menu_aide, NULL); create_menu_entry (menu_aide, "a_propos", True, Affiche_copyright, NULL); XtVaSetValues (barre_menu, XmNmenuHelpWidget, bouton_aide, NULL); XtManageChild (barre_menu); paned_base = XtVaCreateManagedWidget ("paned_base", xmRowColumnWidgetClass, forme_base, XmNorientation, (rsc_xtel.petiteFonte ? XmHORIZONTAL : XmVERTICAL), XmNentryAlignment, XmALIGNMENT_CENTER, NULL); /* Calcul des Pixmaps de masquage des boutons */ unsensitive_pixmap_h = XCreateBitmapFromData (XtDisplay(topLevel), DefaultRootWindow(XtDisplay(topLevel)), unsensitiveh_bits, unsensitiveh_width, unsensitiveh_height); unsensitive_pixmap_b = XCreateBitmapFromData (XtDisplay(topLevel), DefaultRootWindow(XtDisplay(topLevel)), unsensitiveb_bits, unsensitiveb_width, unsensitiveb_height); if (rsc_xtel.petiteFonte) boite_haut = XtVaCreateManagedWidget ("boite_haut", xmRowColumnWidgetClass, paned_base, XmNorientation, XmVERTICAL, XmNnumColumns, 2, XmNpacking, XmPACK_COLUMN, NULL); else boite_haut = XtVaCreateManagedWidget ("boite_haut", xmRowColumnWidgetClass, paned_base, XmNorientation, XmHORIZONTAL, NULL); (void)create_xpm_button (boite_haut, "btn_sauve", xpmButtonWidgetClass, Ouverture_selecteur_fichier, (XTPOINTER)K_Sauve, disk_write_xpm, None, None, None, unsensitive_pixmap_h); (void)create_xpm_button (boite_haut, "btn_charge", xpmButtonWidgetClass, Ouverture_selecteur_fichier, (XTPOINTER)K_Charge, disk_read_xpm, None, None, None, unsensitive_pixmap_h); (void)create_xpm_button (boite_haut, "btn_imprime_ascii", xpmButtonWidgetClass, imprime_page_courante_ascii, NULL, printera_xpm, None, None, None, unsensitive_pixmap_h); (void)create_xpm_button (boite_haut, "btn_imprime", xpmButtonWidgetClass, imprime_page_courante_videotex, NULL, printer_xpm, None, None, None, unsensitive_pixmap_h); (void)create_xpm_button (boite_haut, "btn_nouveau", xpmButtonWidgetClass, nouvel_enregistrement, NULL, nouveau_xpm, None, None, None, unsensitive_pixmap_h); (void)create_xpm_button (boite_haut, "btn_enregistre", xpmButtonWidgetClass, change_enregistrement, NULL, camera_xpm, None, None, None, unsensitive_pixmap_h); btn_lecteur = create_xpm_button (boite_haut, "btn_lecteur", xpmButtonWidgetClass, debut_lecteur, NULL, film_xpm, None, None, None, unsensitive_pixmap_h); /* Appel direct */ if (nb_services >= 1 && strcmp (entree_compose[nb_services-1], "Direct") == 0) btn_direct = create_xpm_button (boite_haut, "btn_direct", xpmButtonWidgetClass, Ouverture_boite_saisie, NULL, phone_xpm, None, None, None, unsensitive_pixmap_h); (void)create_xpm_button (boite_haut, "btn_quitte", xpmButtonWidgetClass, Ouverture_confirmation_sortie, NULL, door_run_xpm, None, None, None, unsensitive_pixmap_h); /* Cassette */ XtVaGetValues (boite_haut, XtNcolormap, &xpma.colormap, NULL); xpma.valuemask = XpmColormap; XpmCreatePixmapFromData (XtDisplay(boite_haut), DefaultRootWindow(XtDisplay(boite_haut)), cassete_xpm, &pixmap_k7, NULL, &xpma); la_cassete = XtVaCreateManagedWidget ("la_cassete", xmLabelWidgetClass, boite_haut, XmNlabelType, XmPIXMAP, XmNmappedWhenManaged, False, XmNlabelPixmap, pixmap_k7, NULL); teleph = create_bitmap_label (boite_haut, "teleph", teleph_bits, teleph_width, teleph_height); /* Timer */ if (!rsc_xtel.petiteFonte) timer_minitel = XtVaCreateManagedWidget ("timer_minitel", timerWidgetClass, boite_haut, NULL); /* * Creation du lecteur */ n = 0; XtSetArg(args[n], XtNiconPixmap, XCreateBitmapFromData(XtDisplay(topLevel), XtScreen(topLevel)->root, lecteur_bits, lecteur_width, lecteur_height)); n++; XtSetArg(args[n], XmNtransient, False); n++; lecteur = XmCreateFormDialog (topLevel, "lecteur", args, n); n = 0; XtSetArg(args[n], XmNsensitive, True); n++; rc_lecteur = XmCreateRowColumn (lecteur, "rc_lecteur", args, n); XtManageChild (rc_lecteur); n = 0; XtSetArg(args[n], XmNorientation, XmHORIZONTAL); n++; clavier_lecteur = XmCreateRadioBox (rc_lecteur, "clavier_lecteur", args, n); XtManageChild (clavier_lecteur); /* Les boutons de commandes */ create_pixmap_button (clavier_lecteur, "zero_lecteur", True, xmToggleButtonWidgetClass, Rewind_lecteur, Valide_le_bouton_stop, NULL, NULL, rewind_xpm, NULL); create_pixmap_button (clavier_lecteur, "rewind_lecteur", True, xmToggleButtonWidgetClass, Rewind_lecteur, Valide_le_bouton_stop, NULL, NULL, prev_xpm, NULL); stop_lecteur = create_pixmap_button (clavier_lecteur, "stop_lecteur", True, xmToggleButtonWidgetClass, Stop_lecteur, NULL, NULL, NULL, stop_xpm, NULL); play_lecteur = create_pixmap_button (clavier_lecteur, "play_lecteur", True, xmToggleButtonWidgetClass, Play_lecteur, NULL, NULL, NULL, play_xpm, NULL); create_pixmap_button (clavier_lecteur, "wind_lecteur", True, xmToggleButtonWidgetClass, Wind_lecteur, Valide_le_bouton_stop, NULL, NULL, next_xpm, NULL); XtVaSetValues (stop_lecteur, XmNset, True, NULL); /* Compteurs */ n = 0; XtSetArg(args[n], XmNx, 10); n++; XtSetArg(args[n], XmNy, 40); n++; XtSetArg(args[n], XmNspacing, 10); n++; XtSetArg(args[n], XmNorientation, XmHORIZONTAL); n++; compteur_lecteur = XmCreateRowColumn (rc_lecteur, "compteur_lecteur", args, n); XtManageChild (compteur_lecteur); compteur_lecteur_titre = XmCreateLabel (compteur_lecteur, "compteur_lecteur_titre", NULL, 0); compteur_lecteur_caractere = XmCreateLabel (compteur_lecteur, "compteur_lecteur_caractere", NULL, 0); compteur_lecteur_page = XmCreateLabel (compteur_lecteur, "compteur_lecteur_page", NULL, 0); XtManageChild (compteur_lecteur_titre); XtManageChild (compteur_lecteur_caractere); XtManageChild (compteur_lecteur_page); /* Condition d'arret */ type_arret = atoi(rsc_xtel.typeArret); if (type_arret < 0 || type_arret > 3) type_arret = 3; menu_type_arret_page = XmVaCreateSimpleOptionMenu (rc_lecteur, "menu_type_arret_page", NULL, 0, type_arret, (XtCallbackProc)menu_type_arret_page_cb, XmVaPUSHBUTTON, NULL, 0, NULL, NULL, XmVaPUSHBUTTON, NULL, 0, NULL, NULL, XmVaPUSHBUTTON, NULL, 0, NULL, NULL, XmVaPUSHBUTTON, NULL, 0, NULL, NULL, NULL); XtManageChild (menu_type_arret_page); menu_type_arret_page_cb (menu_type_arret_page, type_arret, 0); /* Bouton 'Quitte' */ n = 0; XtSetArg(args[n], XmNx, 10); n++; XtSetArg(args[n], XmNy, 120); n++; XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); n++; XtSetArg(args[n], XmNtopWidget, rc_lecteur); n++; XtSetArg(args[n], XmNbottomAttachment, XmATTACH_FORM); n++; XtSetArg(args[n], XmNbottomOffset, 10); n++; quitte_lecteur = XmCreatePushButton (lecteur, "quitte_lecteur", args, n); XtManageChild (quitte_lecteur); XtAddCallback(quitte_lecteur, XmNactivateCallback, (XtCallbackProc)fin_lecteur, NULL); /* * Ecran Videotex */ entry = paned_base; n = 0; XtSetArg (args[n], XtNcommandeDeconnexion, CHAINE_COMMANDE_FIN); n++; if (rsc_xtel.nGris) { XtSetArg (args[n], XtNnGris, True); n++; } if (rsc_xtel.petiteFonte) { XtSetArg (args[n], XtNpetiteFonte, True); n++; entry = XtVaCreateManagedWidget ("pem", xmRowColumnWidgetClass, paned_base, XmNorientation, XmVERTICAL, NULL); } /* Id de ROM */ #ifdef NO_TVR XtSetArg (args[n], XtNenqROM, "Cv1"); #else XtSetArg (args[n], XtNenqROM, "Pv4"); #endif n++; fem = XmCreateFrame (entry, "f_ecran_minitel", NULL, 0); XtManageChild (fem); em = XtCreateManagedWidget ("ecran_minitel", videotexWidgetClass, fem, args, n); /* Timer */ if (rsc_xtel.petiteFonte && !low_memory) timer_minitel = XtVaCreateManagedWidget ("timer_minitel", timerWidgetClass, entry, NULL); /* Popup-menu du clavier Minitel */ n = 0; XtSetArg (args[n], XmNwhichButton, 2); n++; menu_clavier = XmCreatePopupMenu (em, "menu_clavier", args, n); create_menu_entry (menu_clavier, "videotex", False, selection_mode_emulation, (XTPOINTER)"V"); create_menu_entry (menu_clavier, "teleinfo_ascii", True, selection_mode_emulation, (XTPOINTER)"A"); create_menu_entry (menu_clavier, "teleinfo_fr", True, selection_mode_emulation, (XTPOINTER)"F"); create_menu_entry (menu_clavier, "envoi", False, commandes, (XTPOINTER)"A"); create_menu_entry (menu_clavier, "retour", False, commandes, (XTPOINTER)"B"); create_menu_entry (menu_clavier, "repetition", False, commandes, (XTPOINTER)"C"); create_menu_entry (menu_clavier, "guide", False, commandes, (XTPOINTER)"D"); create_menu_entry (menu_clavier, "annulation", False, commandes, (XTPOINTER)"E"); create_menu_entry (menu_clavier, "sommaire", False, commandes, (XTPOINTER)"F"); create_menu_entry (menu_clavier, "correction", False, commandes, (XTPOINTER)"G"); create_menu_entry (menu_clavier, "suite", False, commandes, (XTPOINTER)"H"); XtVaCreateManagedWidget ("blanc", xmSeparatorGadgetClass, menu_clavier, XmNheight, 20, NULL); create_menu_entry (menu_clavier, "connexion_fin", False, commandes, (XTPOINTER)"I"); /* Bouton "Raccrocher" ? */ if (rsc_xtel.boutonRaccrocher) create_menu_entry (menu_clavier, "raccrocher", False, raccrocher, NULL); boite_bas = XtVaCreateManagedWidget ("boite_bas", xmRowColumnWidgetClass, paned_base, XmNorientation, (rsc_xtel.petiteFonte ? XmVERTICAL : XmHORIZONTAL), NULL); (void)create_xpm_button (boite_bas, "btn_envoi", xpmButtonWidgetClass, (XtCallbackProc)commandes, (XtPointer)"A", envoi_xpm, envoi_on_xpm, envoi_xpm, envoi_on_xpm, unsensitive_pixmap_b); (void)create_xpm_button (boite_bas, "btn_retour", xpmButtonWidgetClass, (XtCallbackProc)commandes, (XtPointer)"B", retour_xpm, retour_on_xpm, retour_xpm, retour_on_xpm, unsensitive_pixmap_b); (void)create_xpm_button (boite_bas, "btn_repetition", xpmButtonWidgetClass, (XtCallbackProc)commandes, (XtPointer)"C", repet_xpm, repet_on_xpm, repet_xpm, repet_on_xpm, unsensitive_pixmap_b); (void)create_xpm_button (boite_bas, "btn_guide", xpmButtonWidgetClass, (XtCallbackProc)commandes, (XtPointer)"D", guide_xpm, guide_on_xpm, guide_xpm, guide_on_xpm, unsensitive_pixmap_b); (void)create_xpm_button (boite_bas, "btn_annulation", xpmButtonWidgetClass, (XtCallbackProc)commandes, (XtPointer)"E", annul_xpm, annul_on_xpm, annul_xpm, annul_on_xpm, unsensitive_pixmap_b); (void)create_xpm_button (boite_bas, "btn_sommaire", xpmButtonWidgetClass, (XtCallbackProc)commandes, (XtPointer)"F", sommaire_xpm, sommaire_on_xpm, sommaire_xpm, sommaire_on_xpm, unsensitive_pixmap_b); (void)create_xpm_button (boite_bas, "btn_correction", xpmButtonWidgetClass, (XtCallbackProc)commandes, (XtPointer)"G", correc_xpm, correc_on_xpm, correc_xpm, correc_on_xpm, unsensitive_pixmap_b); (void)create_xpm_button (boite_bas, "btn_suite", xpmButtonWidgetClass, (XtCallbackProc)commandes, (XtPointer)"H", suite_xpm, suite_on_xpm, suite_xpm, suite_on_xpm, unsensitive_pixmap_b); (void)create_xpm_button (boite_bas, "btn_connexion_fin", xpmButtonWidgetClass, (XtCallbackProc)commandes, (XtPointer)"I", cxfin_xpm, cxfin_on_xpm, cxfin_xpm, cxfin_on_xpm, unsensitive_pixmap_b); return (em); } /* * fonctions utilisees pour la gestion des menus deroulants */ /* * Traitement des selecteurs de fichiers */ static void Ouverture_selecteur_fichier (w, flag, call_data) Widget w; int *flag; XtPointer call_data; { /* Creation du selecteur */ n = 0; XtSetArg (args[n], XmNdialogStyle, XmDIALOG_FULL_APPLICATION_MODAL); n++; selecteur_fichier = XmCreateFileSelectionDialog (top, "selecteur_fichier", args, n); XtAddCallback(selecteur_fichier, XmNokCallback, Validation_selecteur_fichier, (XtPointer)flag); XtAddCallback(selecteur_fichier, XmNcancelCallback, Annulation_selecteur_fichier, NULL); XtUnmanageChild (XmSelectionBoxGetChild (selecteur_fichier, XmDIALOG_HELP_BUTTON)); XtManageChild (selecteur_fichier); } static void Validation_selecteur_fichier (w, flag, call_data) Widget w; int flag; XtPointer call_data; { Widget text_w; text_w = XmSelectionBoxGetChild(selecteur_fichier, XmDIALOG_TEXT); if (flag == K_Sauve) { strcpy (nom_fichier_sauve, XmTextGetString(text_w)); Sauve (); XtDestroyWidget (selecteur_fichier); } else { strcpy (nom_fichier_charge, XmTextGetString(text_w)); XtDestroyWidget (selecteur_fichier); debut_lecteur (); Charge (); } } static void Annulation_selecteur_fichier (w, client_data, call_data) Widget w; XtPointer client_data, call_data; { XtDestroyWidget (selecteur_fichier); } /* * Traitement de la boite de saisie */ static void Ouverture_boite_saisie (w, client_data, call_data) Widget w; XtPointer client_data, call_data; { /* Creation de la boite de saisie */ n = 0; XtSetArg (args[n], XmNdialogStyle, XmDIALOG_FULL_APPLICATION_MODAL); n++; boite_saisie = XmCreatePromptDialog (top, "boite_saisie", args, n); XtAddCallback(boite_saisie, XmNokCallback, Validation_boite_saisie, NULL); XtAddCallback(boite_saisie, XmNcancelCallback, Annulation_boite_saisie, NULL); XtUnmanageChild (XmSelectionBoxGetChild (boite_saisie, XmDIALOG_HELP_BUTTON)); XtManageChild (boite_saisie); } static void Validation_boite_saisie (w, client_data, call_data) Widget w; XtPointer client_data, call_data; { Widget text_w; text_w = XmSelectionBoxGetChild(boite_saisie, XmDIALOG_TEXT); init_xtel (); connexion_service (XmTextGetString(text_w)); XtDestroyWidget (boite_saisie); } static void Annulation_boite_saisie (w, client_data, call_data) Widget w; XtPointer client_data, call_data; { XtDestroyWidget (boite_saisie); } /* * Composition d'un service */ /* ARGSUSED */ static void Composition_service (w, numero_choisi, call_data) Widget w; int numero_choisi; XtPointer call_data; { /* composition */ #ifdef DEBUG printf ("service uucp %s\n", definition_services[numero_choisi].nom_uucp); #endif init_xtel (); sprintf (buf, "\001%s", definition_services[numero_choisi].nom_service); connexion_service (buf); } /* * Appel d'une procedure */ /* ARGSUSED */ static void Appel_procedure (w, numero_procedure, call_data) Widget w; int numero_procedure; XtPointer call_data; { /* composition */ #ifdef DEBUG printf ("Procedure numero %%d\n", numero_procedure); #endif /*chat_courant = procedures[numero_procedure].chat;*/ start_procedure (numero_procedure); init_xtel (); /* Si M1, on compose a la main... */ if (!nb_services) connexion_service (NULL); else connexion_service (procedures[numero_procedure].service); } /* * Traitement de la boite de confirmation de sortie */ static void Ouverture_confirmation_sortie (w, client_data, call_data) Widget w; XtPointer client_data, call_data; { /* Creation de la boite */ n = 0; XtSetArg (args[n], XmNdialogStyle, XmDIALOG_FULL_APPLICATION_MODAL); n++; confirmation_sortie = XmCreateQuestionDialog (top, "confirmation_sortie", args, n); XtAddCallback(confirmation_sortie, XmNokCallback, Validation_confirmation_sortie, NULL); XtAddCallback(confirmation_sortie, XmNcancelCallback, Annulation_confirmation_sortie, NULL); XtUnmanageChild (XmMessageBoxGetChild (confirmation_sortie, XmDIALOG_HELP_BUTTON)); XtManageChild (confirmation_sortie); } /* ARGSUSED */ static void Validation_confirmation_sortie (w, client_data, call_data) Widget w; XtPointer client_data, call_data; { Boolean flag_connexion; XtVaGetValues (ecran_minitel, XtNconnecte, &flag_connexion, NULL); /* Si on est connecte, on deconnecte et on quitte */ if (flag_connexion) { write (socket_xteld, CHAINE_COMMANDE_FIN, 1); sortie_violente = True; } else ce_n_est_qu_un_au_revoir (); } /* ARGSUSED */ static void Annulation_confirmation_sortie (w, client_data, call_data) Widget w; XtPointer client_data, call_data; { XtDestroyWidget (confirmation_sortie); } /* * Traitement de la boite d'erreur */ static void Validation_message_erreur (w, client_data, call_data) Widget w; XtPointer client_data, call_data; { XtDestroyWidget (message_erreur); } /* * Affichage du copyright */ static void Affiche_copyright (w, client_data, call_data) Widget w; XtPointer client_data, call_data; { Pixmap pixmap_pf; if (!flag_copyright_affiche) { XpmAttributes xpma; XtVaGetValues (w, XtNcolormap, &xpma.colormap, NULL); xpma.valuemask = XpmColormap; XpmCreatePixmapFromData (XtDisplay(top), XtWindow(top), pf_xpm, &pixmap_pf, NULL, &xpma); affiche_copyright (top, xmFormWidgetClass, pixmap_pf); } } /* * Affichage d'une erreur donnee par code_erreur */ void affiche_erreur(s, code_erreur) char *s; int code_erreur; { if (code_erreur != 0) sprintf (buf, "%s : %s", s, sys_errlist[code_erreur]); else { if (s[0] == '[') strcpy (buf, rsc_xtel.erreur[s[1]-'0']); else strcpy (buf, s); } /* Creation de la boite */ n = 0; XtSetArg (args[n], XmNdialogStyle, XmDIALOG_FULL_APPLICATION_MODAL); n++; XtSetArg (args[n], XmNmessageString, XmStringDefCreate(buf)); n++; message_erreur = XmCreateErrorDialog (top, "message_erreur", args, n); XtAddCallback(message_erreur, XmNokCallback, Validation_message_erreur, NULL); XtUnmanageChild (XmMessageBoxGetChild(message_erreur, XmDIALOG_CANCEL_BUTTON)); XtUnmanageChild (XmMessageBoxGetChild(message_erreur, XmDIALOG_HELP_BUTTON)); XtManageChild (message_erreur); } #ifdef NOTDEF /* Maintenant dans bouton.c */ /* Traitement de l'enregistrement */ static void demarre_enregistrement (w, client_data, call_data) Widget w; XtPointer client_data, call_data; { flag_enregistrement = 1; XtSetSensitive (bouton_demarre, False); XtSetSensitive (bouton_arrete, True); XtMapWidget (la_cassete); } static void arrete_enregistrement (w, client_data, call_data) Widget w; XtPointer client_data, call_data; { flag_enregistrement = 0; XtSetSensitive (bouton_demarre, True); XtSetSensitive (bouton_arrete, False); XtUnmapWidget (la_cassete); } static void change_enregistrement (w, client_data, call_data) Widget w; XtPointer client_data, call_data; { if (flag_enregistrement) Arrete_enregistrement (w, NULL, NULL); else Demarre_enregistrement (w, NULL, NULL); } static void nouvel_enregistrement (w, client_data, call_data) Widget w; XtPointer client_data, call_data; { cpt_buffer = 0; taille_zone_enregistrement = 1000; zone_enregistrement = realloc (zone_enregistrement, taille_zone_enregistrement); } #endif /* NOTDEF */ /* * Fonctions du lecteur */ void activation_bouton_stop () { XmToggleButtonSetState (stop_lecteur, True, True); } /* Force le bouton STOP valide si appel de stop_rapide() */ static void Valide_le_bouton_stop (w, client_data, call_data) Widget w; XtPointer client_data, call_data; { activation_bouton_stop (); } /* validation/invalidation */ void lecteur_valide (flag) char flag; { XtSetSensitive (bouton_lecteur, flag); XtSetSensitive (btn_lecteur, flag); } /* Affiche/efface le lecteur */ void efface_lecteur () { XtUnmanageChild (lecteur); } void affiche_lecteur () { XtManageChild (lecteur); } /* Affiche les compteurs */ void affiche_compteur_lecteur_caractere () { sprintf (buf, "%05d", numero_caractere_courant); n = 0; XtSetArg (args[n], XmNlabelString, XmStringDefCreate(buf)); n++; XtSetValues (compteur_lecteur_caractere, args, n); } void affiche_compteur_lecteur_page () { sprintf (buf, "%03d", numero_page_courante); n = 0; XtSetArg (args[n], XmNlabelString, XmStringDefCreate(buf)); n++; XtSetValues (compteur_lecteur_page, args, n); } xtel-3.3.0.orig/Xsra/0040755001424500142340000000000007242250361013212 5ustar ericpersoxtel-3.3.0.orig/Xsra/Dir.c0100444001424500142340000000766407077630137014115 0ustar ericperso/* * Copyright 1989 Software Research Associates, Inc., Tokyo, Japan * * 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 Software Research Associates not be used * in advertising or publicity pertaining to distribution of the software * without specific, written prior permission. Software Research Associates * makes no representations about the suitability of this software for any * purpose. It is provided "as is" without express or implied warranty. * * SOFTWARE RESEARCH ASSOCIATES DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, * IN NO EVENT SHALL SOFTWARE RESEARCH ASSOCIATES BE LIABLE FOR ANY SPECIAL, * INDIRECT 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 SOFTWARE. * * Author: Erik M. van der Poel * Software Research Associates, Inc., Tokyo, Japan * erik@sra.co.jp */ static char rcsid[] = "$Id: Dir.c,v 1.1 1994/08/30 15:42:31 pierre Exp $"; #include #ifdef SEL_FILE_IGNORE_CASE #include #endif /* def SEL_FILE_IGNORE_CASE */ #include "SFinternal.h" #if defined(SVR4) || defined(SYSV) || defined(USG) #include #else /* defined(SVR4) || defined(SYSV) || defined(USG) */ #include #define dirent direct #endif /* defined(SVR4) || defined(SYSV) || defined(USG) */ #include #if defined(SVR4) || defined(SYSV) || defined(USG) extern void qsort(); #endif /* defined(SVR4) || defined(SYSV) || defined(USG) */ #ifdef SEL_FILE_IGNORE_CASE int SFcompareEntries(p, q) SFEntry *p; SFEntry *q; { register char *r, *s; register char c1, c2; r = p->real; s = q->real; c1 = *r++; if (islower(c1)) { c1 = toupper(c1); } c2 = *s++; if (islower(c2)) { c2 = toupper(c2); } while (c1 == c2) { if (!c1) { return strcmp(p->real, q->real); } c1 = *r++; if (islower(c1)) { c1 = toupper(c1); } c2 = *s++; if (islower(c2)) { c2 = toupper(c2); } } return c1 - c2; } #else /* def SEL_FILE_IGNORE_CASE */ int SFcompareEntries(p, q) SFEntry *p; SFEntry *q; { return strcmp(p->real, q->real); } #endif /* def SEL_FILE_IGNORE_CASE */ int SFgetDir(dir) SFDir *dir; { SFEntry *result = NULL; int alloc = 0; int i; DIR *dirp; struct dirent *dp; char *str; int len; int maxChars; struct stat statBuf; maxChars = strlen(dir->dir) - 1; dir->entries = NULL; dir->nEntries = 0; dir->nChars = 0; result = NULL; i = 0; dirp = opendir("."); if (!dirp) { return 1; } (void) stat(".", &statBuf); dir->mtime = statBuf.st_mtime; (void) readdir(dirp); /* throw away "." */ #ifndef S_IFLNK (void) readdir(dirp); /* throw away ".." */ #endif /* ndef S_IFLNK */ while (dp = readdir(dirp)) { if (i >= alloc) { alloc = 2 * (alloc + 1); result = (SFEntry *) XtRealloc((char *) result, (unsigned) (alloc * sizeof(SFEntry))); } result[i].statDone = 0; str = dp->d_name; len = strlen(str); result[i].real = XtMalloc((unsigned) (len + 2)); (void) strcat(strcpy(result[i].real, str), " "); if (len > maxChars) { maxChars = len; } result[i].shown = result[i].real; i++; } #if defined(SVR4) || defined(SYSV) || defined(USG) qsort((char *) result, (unsigned) i, sizeof(SFEntry), SFcompareEntries); #else /* defined(SVR4) || defined(SYSV) || defined(USG) */ qsort((char *) result, i, sizeof(SFEntry), SFcompareEntries); #endif /* defined(SVR4) || defined(SYSV) || defined(USG) */ dir->entries = result; dir->nEntries = i; dir->nChars = maxChars + 1; closedir(dirp); return 0; } xtel-3.3.0.orig/Xsra/Draw.c0100444001424500142340000004075406703332514014262 0ustar ericperso/* * Copyright 1989 Software Research Associates, Inc., Tokyo, Japan * * 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 Software Research Associates not be used * in advertising or publicity pertaining to distribution of the software * without specific, written prior permission. Software Research Associates * makes no representations about the suitability of this software for any * purpose. It is provided "as is" without express or implied warranty. * * SOFTWARE RESEARCH ASSOCIATES DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, * IN NO EVENT SHALL SOFTWARE RESEARCH ASSOCIATES BE LIABLE FOR ANY SPECIAL, * INDIRECT 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 SOFTWARE. * * Author: Erik M. van der Poel * Software Research Associates, Inc., Tokyo, Japan * erik@sra.co.jp */ static char rcsid[] = "$Id: Draw.c,v 1.1 1994/08/30 15:42:31 pierre Exp $"; #include #include "SFinternal.h" #include "xstat.h" #include #include #define SF_DEFAULT_FONT "9x15" #define ABS(x) (((x) < 0) ? (-(x)) : (x)) typedef struct { char *fontname; } TextData, *textPtr; int SFcharWidth, SFcharAscent, SFcharHeight; int SFcurrentInvert[3] = { -1, -1, -1 }; static GC SFlineGC, SFscrollGC, SFinvertGC, SFtextGC; static XtResource textResources[] = { {XtNfont, XtCFont, XtRString, sizeof (char *), XtOffset(textPtr, fontname), XtRString, SF_DEFAULT_FONT}, }; static XFontStruct *SFfont; static int SFcurrentListY; static XtIntervalId SFscrollTimerId; SFinitFont() { TextData *data; data = XtNew(TextData); XtGetApplicationResources(selFileForm, (XtPointer) data, textResources, XtNumber(textResources), (Arg *) NULL, 0); SFfont = XLoadQueryFont(SFdisplay, data->fontname); if (!SFfont) { SFfont = XLoadQueryFont(SFdisplay, SF_DEFAULT_FONT); if (!SFfont) { char sbuf[256]; (void) sprintf(sbuf, "XsraSelFile: can't get font %s", SF_DEFAULT_FONT); XtAppError(SFapp, sbuf); } } SFcharWidth = (SFfont->max_bounds.width + SFfont->min_bounds.width) / 2; SFcharAscent = SFfont->max_bounds.ascent; SFcharHeight = SFcharAscent + SFfont->max_bounds.descent; } SFcreateGC() { XGCValues gcValues; XRectangle rectangles[1]; gcValues.foreground = SFfore; SFlineGC = XtGetGC( selFileLists[0], (XtGCMask) GCForeground | 0, &gcValues ); SFscrollGC = XtGetGC( selFileLists[0], (XtGCMask) 0, &gcValues ); gcValues.function = GXinvert; gcValues.plane_mask = (SFfore ^ SFback); SFinvertGC = XtGetGC( selFileLists[0], (XtGCMask) GCFunction | GCPlaneMask | 0, &gcValues ); gcValues.foreground = SFfore; gcValues.background = SFback; gcValues.font = SFfont->fid; SFtextGC = XCreateGC( SFdisplay, XtWindow(selFileLists[0]), (unsigned long) GCForeground | GCBackground | GCFont | 0, &gcValues ); rectangles[0].x = SFlineToTextH + SFbesideText; rectangles[0].y = 0; rectangles[0].width = SFcharsPerEntry * SFcharWidth; rectangles[0].height = SFupperY + 1; XSetClipRectangles( SFdisplay, SFtextGC, 0, 0, rectangles, 1, Unsorted ); } SFclearList(n, doScroll) int n; int doScroll; { SFDir *dir; SFcurrentInvert[n] = -1; XClearWindow(SFdisplay, XtWindow(selFileLists[n])); XDrawSegments(SFdisplay, XtWindow(selFileLists[n]), SFlineGC, SFsegs, 2); if (doScroll) { dir = &(SFdirs[SFdirPtr + n]); if ((SFdirPtr + n < SFdirEnd) && dir->nEntries && dir->nChars) { XawScrollbarSetThumb( selFileVScrolls[n], (float) (((double) dir->vOrigin) / dir->nEntries), (float) (((double) ((dir->nEntries < SFlistSize) ? dir->nEntries : SFlistSize)) / dir->nEntries) ); XawScrollbarSetThumb( selFileHScrolls[n], (float) (((double) dir->hOrigin) / dir->nChars), (float) (((double) ((dir->nChars < SFcharsPerEntry) ? dir->nChars : SFcharsPerEntry)) / dir->nChars) ); } else { XawScrollbarSetThumb(selFileVScrolls[n], (float) 0.0, (float) 1.0); XawScrollbarSetThumb(selFileHScrolls[n], (float) 0.0, (float) 1.0); } } } static SFdeleteEntry(dir, entry) SFDir *dir; SFEntry *entry; { register SFEntry *e; register SFEntry *end; int n; int idx; idx = entry - dir->entries; if (idx < dir->beginSelection) { dir->beginSelection--; } if (idx <= dir->endSelection) { dir->endSelection--; } if (dir->beginSelection > dir->endSelection) { dir->beginSelection = dir->endSelection = -1; } if (idx < dir->vOrigin) { dir->vOrigin--; } XtFree(entry->real); end = &(dir->entries[dir->nEntries - 1]); for (e = entry; e < end; e++) { *e = *(e + 1); } if (!(--dir->nEntries)) { return; } n = dir - &(SFdirs[SFdirPtr]); if ((n < 0) || (n > 2)) { return; } XawScrollbarSetThumb( selFileVScrolls[n], (float) (((double) dir->vOrigin) / dir->nEntries), (float) (((double) ((dir->nEntries < SFlistSize) ? dir->nEntries : SFlistSize)) / dir->nEntries) ); } static SFwriteStatChar(name, last, statBuf) char *name; int last; struct stat *statBuf; { name[last] = SFstatChar(statBuf); } static int SFstatAndCheck(dir, entry) SFDir *dir; SFEntry *entry; { struct stat statBuf; char save; int last; /* * must be restored before returning */ save = *(dir->path); *(dir->path) = 0; if (!SFchdir(SFcurrentPath)) { last = strlen(entry->real) - 1; entry->real[last] = 0; entry->statDone = 1; if ( (!stat(entry->real, &statBuf)) #ifdef S_IFLNK || (!lstat(entry->real, &statBuf)) #endif /* ndef S_IFLNK */ ) { if (SFfunc) { char *shown; shown = NULL; if (SFfunc(entry->real, &shown, &statBuf)) { if (shown) { int len; len = strlen(shown); entry->shown = XtMalloc( (unsigned) (len + 2) ); (void) strcpy(entry->shown, shown); SFwriteStatChar( entry->shown, len, &statBuf ); entry->shown[len + 1] = 0; } } else { SFdeleteEntry(dir, entry); *(dir->path) = save; return 1; } } SFwriteStatChar(entry->real, last, &statBuf); } else { entry->real[last] = ' '; } } *(dir->path) = save; return 0; } static SFdrawStrings(w, dir, from, to) register Window w; register SFDir *dir; register int from; register int to; { register int i; register SFEntry *entry; int x; x = SFtextX - dir->hOrigin * SFcharWidth; if (dir->vOrigin + to >= dir->nEntries) { to = dir->nEntries - dir->vOrigin - 1; } for (i = from; i <= to; i++) { entry = &(dir->entries[dir->vOrigin + i]); if (!(entry->statDone)) { if (SFstatAndCheck(dir, entry)) { if (dir->vOrigin + to >= dir->nEntries) { to = dir->nEntries - dir->vOrigin - 1; } i--; continue; } } XDrawImageString( SFdisplay, w, SFtextGC, x, SFtextYoffset + i * SFentryHeight, entry->shown, strlen(entry->shown) ); if (dir->vOrigin + i == dir->beginSelection) { XDrawLine( SFdisplay, w, SFlineGC, SFlineToTextH + 1, SFlowerY + i * SFentryHeight, SFlineToTextH + SFentryWidth - 2, SFlowerY + i * SFentryHeight ); } if ( (dir->vOrigin + i >= dir->beginSelection) && (dir->vOrigin + i <= dir->endSelection) ) { SFcompletionSegs[0].y1 = SFcompletionSegs[1].y1 = SFlowerY + i * SFentryHeight; SFcompletionSegs[0].y2 = SFcompletionSegs[1].y2 = SFlowerY + (i + 1) * SFentryHeight - 1; XDrawSegments( SFdisplay, w, SFlineGC, SFcompletionSegs, 2 ); } if (dir->vOrigin + i == dir->endSelection) { XDrawLine( SFdisplay, w, SFlineGC, SFlineToTextH + 1, SFlowerY + (i + 1) * SFentryHeight - 1, SFlineToTextH + SFentryWidth - 2, SFlowerY + (i + 1) * SFentryHeight - 1 ); } } } SFdrawList(n, doScroll) int n; int doScroll; { SFDir *dir; Window w; SFclearList(n, doScroll); if (SFdirPtr + n < SFdirEnd) { dir = &(SFdirs[SFdirPtr + n]); w = XtWindow(selFileLists[n]); XDrawImageString( SFdisplay, w, SFtextGC, SFtextX - dir->hOrigin * SFcharWidth, SFlineToTextV + SFaboveAndBelowText + SFcharAscent, dir->dir, strlen(dir->dir) ); SFdrawStrings(w, dir, 0, SFlistSize - 1); } } SFdrawLists(doScroll) int doScroll; { int i; for (i = 0; i < 3; i++) { SFdrawList(i, doScroll); } } static SFinvertEntry(n) register int n; { XFillRectangle( SFdisplay, XtWindow(selFileLists[n]), SFinvertGC, SFlineToTextH, SFcurrentInvert[n] * SFentryHeight + SFlowerY, SFentryWidth, SFentryHeight ); } static unsigned long SFscrollTimerInterval() { static int maxVal = 200; static int varyDist = 50; static int minDist = 50; int t; int dist; if (SFcurrentListY < SFlowerY) { dist = SFlowerY - SFcurrentListY; } else if (SFcurrentListY > SFupperY) { dist = SFcurrentListY - SFupperY; } else { return (unsigned long) 1; } t = maxVal - ((maxVal / varyDist) * (dist - minDist)); if (t < 1) { t = 1; } if (t > maxVal) { t = maxVal; } return (unsigned long) t; } static void SFscrollTimer(n) int n; { SFDir *dir; int save; dir = &(SFdirs[SFdirPtr + n]); save = dir->vOrigin; if (SFcurrentListY < SFlowerY) { if (dir->vOrigin > 0) { SFvSliderMovedCallback(selFileVScrolls[n], n, dir->vOrigin - 1); } } else if (SFcurrentListY > SFupperY) { if (dir->vOrigin < dir->nEntries - SFlistSize) { SFvSliderMovedCallback(selFileVScrolls[n], n, dir->vOrigin + 1); } } if (dir->vOrigin != save) { if (dir->nEntries) { XawScrollbarSetThumb( selFileVScrolls[n], (float) (((double) dir->vOrigin) / dir->nEntries), (float) (((double) ((dir->nEntries < SFlistSize) ? dir->nEntries : SFlistSize)) / dir->nEntries) ); } } if (SFbuttonPressed) { SFscrollTimerId = XtAppAddTimeOut(SFapp, SFscrollTimerInterval(), SFscrollTimer, (XtPointer) n); } } static int SFnewInvertEntry(n, event) register int n; register XMotionEvent *event; { register int x, y; register int new; static int SFscrollTimerAdded = 0; x = event->x; y = event->y; if (SFdirPtr + n >= SFdirEnd) { return -1; } else if ( (x >= 0) && (x <= SFupperX) && (y >= SFlowerY) && (y <= SFupperY) ) { register SFDir *dir = &(SFdirs[SFdirPtr + n]); if (SFscrollTimerAdded) { SFscrollTimerAdded = 0; XtRemoveTimeOut(SFscrollTimerId); } new = (y - SFlowerY) / SFentryHeight; if (dir->vOrigin + new >= dir->nEntries) { return -1; } return new; } else { if (SFbuttonPressed) { SFcurrentListY = y; if (!SFscrollTimerAdded) { SFscrollTimerAdded = 1; SFscrollTimerId = XtAppAddTimeOut(SFapp, SFscrollTimerInterval(), SFscrollTimer, (XtPointer) n); } } return -1; } } /* ARGSUSED */ void SFenterList(w, n, event) Widget w; register int n; register XEnterWindowEvent *event; { register int new; /* sanity */ if (SFcurrentInvert[n] != -1) { SFinvertEntry(n); SFcurrentInvert[n] = -1; } new = SFnewInvertEntry(n, (XMotionEvent *) event); if (new != -1) { SFcurrentInvert[n] = new; SFinvertEntry(n); } } /* ARGSUSED */ void SFleaveList(w, n, event) Widget w; register int n; XEvent *event; { if (SFcurrentInvert[n] != -1) { SFinvertEntry(n); SFcurrentInvert[n] = -1; } } /* ARGSUSED */ void SFmotionList(w, n, event) Widget w; register int n; register XMotionEvent *event; { register int new; new = SFnewInvertEntry(n, event); if (new != SFcurrentInvert[n]) { if (SFcurrentInvert[n] != -1) { SFinvertEntry(n); } SFcurrentInvert[n] = new; if (new != -1) { SFinvertEntry(n); } } } /* ARGSUSED */ void SFvFloatSliderMovedCallback(w, n, fnew) Widget w; int n; float *fnew; { int new; new = (*fnew) * SFdirs[SFdirPtr + n].nEntries; SFvSliderMovedCallback(w, n, new); } /* ARGSUSED */ void SFvSliderMovedCallback(w, n, new) Widget w; int n; int new; { int old; register Window win; SFDir *dir; dir = &(SFdirs[SFdirPtr + n]); old = dir->vOrigin; dir->vOrigin = new; if (old == new) { return; } win = XtWindow(selFileLists[n]); if (ABS(new - old) < SFlistSize) { if (new > old) { XCopyArea( SFdisplay, win, win, SFscrollGC, SFlineToTextH, SFlowerY + (new - old) * SFentryHeight, SFentryWidth + SFlineToTextH, (SFlistSize - (new - old)) * SFentryHeight, SFlineToTextH, SFlowerY ); XClearArea( SFdisplay, win, SFlineToTextH, SFlowerY + (SFlistSize - (new - old)) * SFentryHeight, SFentryWidth + SFlineToTextH, (new - old) * SFentryHeight, False ); SFdrawStrings(win, dir, SFlistSize - (new - old), SFlistSize - 1); } else { XCopyArea( SFdisplay, win, win, SFscrollGC, SFlineToTextH, SFlowerY, SFentryWidth + SFlineToTextH, (SFlistSize - (old - new)) * SFentryHeight, SFlineToTextH, SFlowerY + (old - new) * SFentryHeight ); XClearArea( SFdisplay, win, SFlineToTextH, SFlowerY, SFentryWidth + SFlineToTextH, (old - new) * SFentryHeight, False ); SFdrawStrings(win, dir, 0, old - new); } } else { XClearArea( SFdisplay, win, SFlineToTextH, SFlowerY, SFentryWidth + SFlineToTextH, SFlistSize * SFentryHeight, False ); SFdrawStrings(win, dir, 0, SFlistSize - 1); } } /* ARGSUSED */ void SFvAreaSelectedCallback(w, n, pnew) Widget w; int n; int pnew; { SFDir *dir; int new; dir = &(SFdirs[SFdirPtr + n]); new = dir->vOrigin + (((double) pnew) / SFvScrollHeight) * dir->nEntries; if (new > dir->nEntries - SFlistSize) { new = dir->nEntries - SFlistSize; } if (new < 0) { new = 0; } if (dir->nEntries) { float f; f = ((double) new) / dir->nEntries; XawScrollbarSetThumb( w, f, (float) (((double) ((dir->nEntries < SFlistSize) ? dir->nEntries : SFlistSize)) / dir->nEntries) ); } SFvSliderMovedCallback(w, n, new); } /* ARGSUSED */ void SFhSliderMovedCallback(w, n, new) Widget w; int n; float *new; { SFDir *dir; int save; dir = &(SFdirs[SFdirPtr + n]); save = dir->hOrigin; dir->hOrigin = (*new) * dir->nChars; if (dir->hOrigin == save) { return; } SFdrawList(n, SF_DO_NOT_SCROLL); } /* ARGSUSED */ void SFhAreaSelectedCallback(w, n, pnew) Widget w; int n; int pnew; { SFDir *dir; int new; dir = &(SFdirs[SFdirPtr + n]); new = dir->hOrigin + (((double) pnew) / SFhScrollWidth) * dir->nChars; if (new > dir->nChars - SFcharsPerEntry) { new = dir->nChars - SFcharsPerEntry; } if (new < 0) { new = 0; } if (dir->nChars) { float f; f = ((double) new) / dir->nChars; XawScrollbarSetThumb( w, f, (float) (((double) ((dir->nChars < SFcharsPerEntry) ? dir->nChars : SFcharsPerEntry)) / dir->nChars) ); SFhSliderMovedCallback(w, n, &f); } } /* ARGSUSED */ void SFpathSliderMovedCallback(w, client_data, new) Widget w; XtPointer client_data; float *new; { SFDir *dir; int n; XawTextPosition pos; int SFdirPtrSave; SFdirPtrSave = SFdirPtr; SFdirPtr = (*new) * SFdirEnd; if (SFdirPtr == SFdirPtrSave) { return; } SFdrawLists(SF_DO_SCROLL); n = 2; while (SFdirPtr + n >= SFdirEnd) { n--; } dir = &(SFdirs[SFdirPtr + n]); pos = dir->path - SFcurrentPath; if (!strncmp(SFcurrentPath, SFstartDir, strlen(SFstartDir))) { pos -= strlen(SFstartDir); if (pos < 0) { pos = 0; } } XawTextSetInsertionPoint(selFileField, pos); } /* ARGSUSED */ void SFpathAreaSelectedCallback(w, client_data, pnew) Widget w; XtPointer client_data; int pnew; { int new; float f; new = SFdirPtr + (((double) pnew) / SFpathScrollWidth) * SFdirEnd; if (new > SFdirEnd - 3) { new = SFdirEnd - 3; } if (new < 0) { new = 0; } f = ((double) new) / SFdirEnd; XawScrollbarSetThumb( w, f, (float) (((double) ((SFdirEnd < 3) ? SFdirEnd : 3)) / SFdirEnd) ); SFpathSliderMovedCallback(w, (XtPointer) NULL, &f); } Boolean SFworkProc() { register SFDir *dir; register SFEntry *entry; for (dir = &(SFdirs[SFdirEnd - 1]); dir >= SFdirs; dir--) { if (!(dir->nEntries)) { continue; } for ( entry = &(dir->entries[dir->nEntries - 1]); entry >= dir->entries; entry-- ) { if (!(entry->statDone)) { (void) SFstatAndCheck(dir, entry); return False; } } } SFworkProcAdded = 0; return True; } xtel-3.3.0.orig/Xsra/Imakefile0100444001424500142340000000044006703332514015016 0ustar ericpersoXCOMM XCOMM Imakefile du selecteur de fichier Xsra XCOMM XCOMM $Id: Imakefile,v 1.2 1994/08/30 15:45:27 pierre Exp $ XCOMM SRCS= Dir.c Draw.c Path.c SelFile.c OBJS= Dir.o Draw.o Path.o SelFile.o NormalLibraryTarget(Xsra,$(OBJS)) depend:: xstat.h SFinternal.h $(SRCS) DependTarget() xtel-3.3.0.orig/Xsra/Path.c0100444001424500142340000004370306703332514014256 0ustar ericperso/* * Copyright 1989 Software Research Associates, Inc., Tokyo, Japan * * 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 Software Research Associates not be used * in advertising or publicity pertaining to distribution of the software * without specific, written prior permission. Software Research Associates * makes no representations about the suitability of this software for any * purpose. It is provided "as is" without express or implied warranty. * * SOFTWARE RESEARCH ASSOCIATES DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, * IN NO EVENT SHALL SOFTWARE RESEARCH ASSOCIATES BE LIABLE FOR ANY SPECIAL, * INDIRECT 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 SOFTWARE. * * Author: Erik M. van der Poel * Software Research Associates, Inc., Tokyo, Japan * erik@sra.co.jp */ static char rcsid[] = "$Id: Path.c,v 1.1 1994/08/30 15:42:31 pierre Exp $"; #include #ifdef SEL_FILE_IGNORE_CASE #include #endif /* def SEL_FILE_IGNORE_CASE */ #include #include #include "SFinternal.h" #include "xstat.h" #include #if defined(lectra) && defined(SYSV) #include #endif #if defined(SVR4) || defined(SYSV) || defined(USG) extern uid_t getuid(); extern void qsort(); #endif /* defined(SVR4) || defined(SYSV) || defined(USG) */ typedef struct { char *name; char *dir; } SFLogin; SFDir *SFdirs = NULL; int SFdirEnd; int SFdirPtr; int SFbuttonPressed = 0; static int SFdoNotTouchDirPtr = 0; static int SFdoNotTouchVorigin = 0; static SFDir SFrootDir, SFhomeDir; static SFLogin *SFlogins; static int SFtwiddle = 0; int SFchdir(path) char *path; { int result; result = 0; if (strcmp(path, SFcurrentDir)) { result = chdir(path); if (!result) { (void) strcpy(SFcurrentDir, path); } } return result; } static SFfree(i) int i; { register SFDir *dir; register int j; dir = &(SFdirs[i]); for (j = dir->nEntries - 1; j >= 0; j--) { if (dir->entries[j].shown != dir->entries[j].real) { XtFree(dir->entries[j].shown); } XtFree(dir->entries[j].real); } XtFree((char *) dir->entries); XtFree(dir->dir); dir->dir = NULL; } static SFunreadableDir(dir) SFDir *dir; { char *cannotOpen = " "; dir->entries = (SFEntry *) XtMalloc(sizeof(SFEntry)); dir->entries[0].statDone = 1; dir->entries[0].real = XtMalloc((unsigned) (strlen(cannotOpen) + 1)); (void) strcpy(dir->entries[0].real, cannotOpen); dir->entries[0].shown = dir->entries[0].real; dir->nEntries = 1; dir->nChars = strlen(cannotOpen); } #ifdef SEL_FILE_IGNORE_CASE static SFstrncmp(p, q, n) register char *p, *q; register int n; { register char c1, c2; char *psave, *qsave; int nsave; psave = p; qsave = q; nsave = n; c1 = *p++; if (islower(c1)) { c1 = toupper(c1); } c2 = *q++; if (islower(c2)) { c2 = toupper(c2); } while ((--n >= 0) && (c1 == c2)) { if (!c1) { return strncmp(psave, qsave, nsave); } c1 = *p++; if (islower(c1)) { c1 = toupper(c1); } c2 = *q++; if (islower(c2)) { c2 = toupper(c2); } } if (n < 0) { return strncmp(psave, qsave, nsave); } return c1 - c2; } #endif /* def SEL_FILE_IGNORE_CASE */ static SFreplaceText(dir, str) SFDir *dir; char *str; { int len; *(dir->path) = 0; len = strlen(str); if (str[len - 1] == '/') { (void) strcat(SFcurrentPath, str); } else { (void) strncat(SFcurrentPath, str, len - 1); } if (strncmp(SFcurrentPath, SFstartDir, strlen(SFstartDir))) { SFsetText(SFcurrentPath); } else { SFsetText(&(SFcurrentPath[strlen(SFstartDir)])); } SFtextChanged(); } static void SFexpand(str) char *str; { int len; int cmp; char *name, *growing; SFDir *dir; SFEntry *entry, *max; len = strlen(str); dir = &(SFdirs[SFdirEnd - 1]); if (dir->beginSelection == -1) { str = strcpy(XtMalloc((unsigned) (strlen(str) + 1)), str); SFreplaceText(dir, str); XtFree(str); return; } else if (dir->beginSelection == dir->endSelection) { SFreplaceText(dir, dir->entries[dir->beginSelection].shown); return; } max = &(dir->entries[dir->endSelection + 1]); name = dir->entries[dir->beginSelection].shown; (void) strcpy((growing = XtMalloc((unsigned) (strlen(name) + 1))), name); cmp = 0; while (!cmp) { entry = &(dir->entries[dir->beginSelection]); while (entry < max) { if (cmp = strncmp(growing, entry->shown, len)) { break; } entry++; } len++; } /* * SFreplaceText() expects filename */ growing[len - 2] = ' '; growing[len - 1] = 0; SFreplaceText(dir, growing); XtFree(growing); } static int SFfindFile(dir, str) SFDir *dir; register char *str; { register int i, last, max; register char *name, save; SFEntry *entries; int len; int begin, end; int result; len = strlen(str); if (str[len - 1] == ' ') { SFexpand(str); return 1; } else if (str[len - 1] == '/') { len--; } max = dir->nEntries; entries = dir->entries; i = 0; while (i < max) { name = entries[i].shown; last = strlen(name) - 1; save = name[last]; name[last] = 0; #ifdef SEL_FILE_IGNORE_CASE result = SFstrncmp(str, name, len); #else /* def SEL_FILE_IGNORE_CASE */ result = strncmp(str, name, len); #endif /* def SEL_FILE_IGNORE_CASE */ name[last] = save; if (result <= 0) { break; } i++; } begin = i; while (i < max) { name = entries[i].shown; last = strlen(name) - 1; save = name[last]; name[last] = 0; #ifdef SEL_FILE_IGNORE_CASE result = SFstrncmp(str, name, len); #else /* def SEL_FILE_IGNORE_CASE */ result = strncmp(str, name, len); #endif /* def SEL_FILE_IGNORE_CASE */ name[last] = save; if (result) { break; } i++; } end = i; if (begin != end) { if ( (dir->beginSelection != begin) || (dir->endSelection != end - 1) ) { dir->changed = 1; dir->beginSelection = begin; if (str[strlen(str) - 1] == '/') { dir->endSelection = begin; } else { dir->endSelection = end - 1; } } } else { if (dir->beginSelection != -1) { dir->changed = 1; dir->beginSelection = -1; dir->endSelection = -1; } } if ( SFdoNotTouchVorigin || ((begin > dir->vOrigin) && (end < dir->vOrigin + SFlistSize)) ) { SFdoNotTouchVorigin = 0; return 0; } i = begin - 1; if (i > max - SFlistSize) { i = max - SFlistSize; } if (i < 0) { i = 0; } if (dir->vOrigin != i) { dir->vOrigin = i; dir->changed = 1; } return 0; } static SFunselect() { SFDir *dir; dir = &(SFdirs[SFdirEnd - 1]); if (dir->beginSelection != -1) { dir->changed = 1; } dir->beginSelection = -1; dir->endSelection = -1; } static int SFcompareLogins(p, q) SFLogin *p, *q; { return strcmp(p->name, q->name); } static SFgetHomeDirs() { struct passwd *pw; struct stat statBuf; int alloc; int i; SFEntry *entries = NULL; #ifndef HOME_ON_DEMAND /* by Y.Kawabe */ int len; #endif /* HOME_ON_DEMAND */ int maxChars; alloc = 0; i = 0; maxChars = -1; if (pw = getpwuid((int) getuid())) { if ( (!stat(pw->pw_dir, &statBuf)) && (S_ISDIR (statBuf.st_mode)) ) { alloc = 1; i = 1; entries = (SFEntry *) XtMalloc(sizeof(SFEntry)); SFlogins = (SFLogin *) XtMalloc(sizeof(SFLogin)); entries[0].real = XtMalloc(3); (void) strcpy(entries[0].real, "~"); entries[0].shown = entries[0].real; entries[0].statDone = 1; SFlogins[0].name = ""; SFlogins[0].dir = XtMalloc((unsigned) (strlen(pw->pw_dir) + 1)); (void) strcpy(SFlogins[0].dir, pw->pw_dir); maxChars = 1; } } #ifndef HOME_ON_DEMAND /* by Y.Kawabe */ (void) setpwent(); while ((pw = getpwent()) && (*(pw->pw_name))) { if ( (!stat(pw->pw_dir, &statBuf)) && (S_ISDIR (statBuf.st_mode)) ) { if (i >= alloc) { alloc *= 2; entries = (SFEntry *) XtRealloc( (char *) entries, (unsigned) (alloc * sizeof(SFEntry)) ); SFlogins = (SFLogin *) XtRealloc( (char *) SFlogins, (unsigned) (alloc * sizeof(SFLogin)) ); } len = strlen(pw->pw_name); entries[i].real = XtMalloc((unsigned) (len + 3)); (void) strcat(strcpy(entries[i].real, "~"), pw->pw_name); entries[i].shown = entries[i].real; entries[i].statDone = 1; if (len > maxChars) { maxChars = len; } SFlogins[i].name = XtMalloc((unsigned) (strlen(pw->pw_name) + 1)); (void) strcpy(SFlogins[i].name, pw->pw_name); SFlogins[i].dir = XtMalloc((unsigned) (strlen(pw->pw_dir) + 1)); (void) strcpy(SFlogins[i].dir, pw->pw_dir); i++; } } #endif /* HOME_ON_DEMAND */ SFhomeDir.dir = XtMalloc(1) ; SFhomeDir.dir[0] = 0 ; SFhomeDir.path = SFcurrentPath ; SFhomeDir.entries = entries ; SFhomeDir.nEntries = i ; SFhomeDir.vOrigin = 0 ; /* :-) */ SFhomeDir.nChars = maxChars + 2 ; SFhomeDir.hOrigin = 0 ; SFhomeDir.changed = 1 ; SFhomeDir.beginSelection = -1 ; SFhomeDir.endSelection = -1 ; #if defined(SVR4) || defined(SYSV) || defined(USG) qsort((char *) entries, (unsigned)i, sizeof(SFEntry), SFcompareEntries); qsort((char *) SFlogins, (unsigned)i, sizeof(SFLogin), SFcompareLogins); #else /* defined(SVR4) || defined(SYSV) || defined(USG) */ qsort((char *) entries, i, sizeof(SFEntry), SFcompareEntries); qsort((char *) SFlogins, i, sizeof(SFLogin), SFcompareLogins); #endif /* defined(SVR4) || defined(SYSV) || defined(USG) */ for (i--; i >= 0; i--) { (void) strcat(entries[i].real, "/"); } } static int SFfindHomeDir(begin, end) char *begin, *end; { char save; char *theRest; int i; save = *end; *end = 0; for (i = SFhomeDir.nEntries - 1; i >= 0; i--) { if (!strcmp(SFhomeDir.entries[i].real, begin)) { *end = save; theRest = XtMalloc((unsigned) (strlen(end) + 1)); (void) strcpy(theRest, end); (void) strcat(strcat(strcpy(SFcurrentPath, SFlogins[i].dir), "/"), theRest); XtFree(theRest); SFsetText(SFcurrentPath); SFtextChanged(); return 1; } } #ifdef HOME_ON_DEMAND /* by Y.Kawabe */ if (*(++begin)) { struct passwd *pwd; char user[256]; int i = 0; while (*begin && *begin != '/' && i < sizeof(user)) user[i++] = *begin++; user[i] = '\0'; if (pwd = getpwnam(user)) { theRest = XtMalloc((unsigned) (strlen(end) + 1)); (void) strcpy(theRest, end); (void) strcat(strcat(strcpy(SFcurrentPath, pwd->pw_dir), "/"), theRest); XtFree(theRest); SFsetText(SFcurrentPath); SFtextChanged(); return 1; } } #endif /* HOME_ON_DEMAND */ *end = save; return 0; } SFupdatePath() { static int alloc; static int wasTwiddle = 0; char *begin, *end; int i, j; int len; int prevChange; int SFdirPtrSave, SFdirEndSave; SFDir *dir; if (!SFdirs) { SFdirs = (SFDir *) XtMalloc((alloc = 10) * sizeof(SFDir)); dir = &(SFdirs[0]); dir->dir = XtMalloc(2); (void) strcpy(dir->dir, "/"); (void) SFchdir("/"); (void) SFgetDir(dir); for (j = 1; j < alloc; j++) { SFdirs[j].dir = NULL; } dir->path = SFcurrentPath + 1; dir->vOrigin = 0; dir->hOrigin = 0; dir->changed = 1; dir->beginSelection = -1; dir->endSelection = -1; SFgetHomeDirs(); } SFdirEndSave = SFdirEnd; SFdirEnd = 1; SFdirPtrSave = SFdirPtr; SFdirPtr = 0; begin = NULL; if (SFcurrentPath[0] == '~') { if (!SFtwiddle) { SFtwiddle = 1; dir = &(SFdirs[0]); SFrootDir = *dir; *dir = SFhomeDir; dir->changed = 1; } end = SFcurrentPath; SFdoNotTouchDirPtr = 1; wasTwiddle = 1; } else { if (SFtwiddle) { SFtwiddle = 0; dir = &(SFdirs[0]); *dir = SFrootDir; dir->changed = 1; } end = SFcurrentPath + 1; } i = 0; prevChange = 0; while (*end) { while (*end++ == '/') { ; } end--; begin = end; while ((*end) && (*end++ != '/')) { ; } if ((end - SFcurrentPath <= SFtextPos) && (*(end - 1) == '/')) { SFdirPtr = i - 1; if (SFdirPtr < 0) { SFdirPtr = 0; } } if (*begin) { if (*(end - 1) == '/') { char save = *end; if (SFtwiddle) { if (SFfindHomeDir(begin, end)) { return; } } *end = 0; i++; SFdirEnd++; if (i >= alloc) { SFdirs = (SFDir *) XtRealloc( (char *) SFdirs, (unsigned) ((alloc *= 2) * sizeof(SFDir)) ); for (j = alloc / 2; j < alloc; j++) { SFdirs[j].dir = NULL; } } dir = &(SFdirs[i]); if ( (!(dir->dir)) || prevChange || strcmp(dir->dir, begin) ) { if (dir->dir) { SFfree(i); } prevChange = 1; len = strlen(begin) + 1; dir->dir = XtMalloc((unsigned) len); (void) strcpy(dir->dir, begin); dir->path = end; dir->vOrigin = 0; dir->hOrigin = 0; dir->changed = 1; dir->beginSelection = -1; dir->endSelection = -1; (void) SFfindFile(dir - 1, begin); if ( SFchdir(SFcurrentPath) || SFgetDir(dir) ) { SFunreadableDir(dir); break; } } *end = save; if (!save) { SFunselect(); } } else { if (SFfindFile(&(SFdirs[SFdirEnd-1]), begin)) { return; } } } else { SFunselect(); } } if ((end == SFcurrentPath + 1) && (!SFtwiddle)) { SFunselect(); } for (i = SFdirEnd; i < alloc; i++) { if (SFdirs[i].dir) { SFfree(i); } } if (SFdoNotTouchDirPtr) { if (wasTwiddle) { wasTwiddle = 0; SFdirPtr = SFdirEnd - 2; if (SFdirPtr < 0) { SFdirPtr = 0; } } else { SFdirPtr = SFdirPtrSave; } SFdoNotTouchDirPtr = 0; } if ((SFdirPtr != SFdirPtrSave) || (SFdirEnd != SFdirEndSave)) { XawScrollbarSetThumb( selFileHScroll, (float) (((double) SFdirPtr) / SFdirEnd), (float) (((double) ((SFdirEnd < 3) ? SFdirEnd : 3)) / SFdirEnd) ); } if (SFdirPtr != SFdirPtrSave) { SFdrawLists(SF_DO_SCROLL); } else { for (i = 0; i < 3; i++) { if (SFdirPtr + i < SFdirEnd) { if (SFdirs[SFdirPtr + i].changed) { SFdirs[SFdirPtr + i].changed = 0; SFdrawList(i, SF_DO_SCROLL); } } else { SFclearList(i, SF_DO_SCROLL); } } } } SFsetText(path) char *path; { XawTextBlock text; text.firstPos = 0; text.length = strlen(path); text.ptr = path; text.format = FMT8BIT; XawTextReplace(selFileField, 0, strlen(SFtextBuffer), &text); XawTextSetInsertionPoint(selFileField, strlen(SFtextBuffer)); } /* ARGSUSED */ void SFbuttonPressList(w, n, event) Widget w; int n; XButtonPressedEvent *event; { SFbuttonPressed = 1; } /* ARGSUSED */ void SFbuttonReleaseList(w, n, event) Widget w; int n; XButtonReleasedEvent *event; { SFDir *dir; SFbuttonPressed = 0; if (SFcurrentInvert[n] != -1) { if (n < 2) { SFdoNotTouchDirPtr = 1; } SFdoNotTouchVorigin = 1; dir = &(SFdirs[SFdirPtr + n]); SFreplaceText( dir, dir->entries[dir->vOrigin + SFcurrentInvert[n]].shown ); SFmotionList(w, n, event); } } static int SFcheckDir(n, dir) int n; SFDir *dir; { struct stat statBuf; int i; if ( (!stat(".", &statBuf)) && (statBuf.st_mtime != dir->mtime) ) { /* * If the pointer is currently in the window that we are about * to update, we must warp it to prevent the user from * accidentally selecting the wrong file. */ if (SFcurrentInvert[n] != -1) { XWarpPointer( SFdisplay, None, XtWindow(selFileLists[n]), 0, 0, 0, 0, 0, 0 ); } for (i = dir->nEntries - 1; i >= 0; i--) { if (dir->entries[i].shown != dir->entries[i].real) { XtFree(dir->entries[i].shown); } XtFree(dir->entries[i].real); } XtFree((char *) dir->entries); if (SFgetDir(dir)) { SFunreadableDir(dir); } if (dir->vOrigin > dir->nEntries - SFlistSize) { dir->vOrigin = dir->nEntries - SFlistSize; } if (dir->vOrigin < 0) { dir->vOrigin = 0; } if (dir->hOrigin > dir->nChars - SFcharsPerEntry) { dir->hOrigin = dir->nChars - SFcharsPerEntry; } if (dir->hOrigin < 0) { dir->hOrigin = 0; } dir->beginSelection = -1; dir->endSelection = -1; SFdoNotTouchVorigin = 1; if ((dir + 1)->dir) { (void) SFfindFile(dir, (dir + 1)->dir); } else { (void) SFfindFile(dir, dir->path); } if (!SFworkProcAdded) { (void) XtAppAddWorkProc(SFapp, SFworkProc, NULL); SFworkProcAdded = 1; } return 1; } return 0; } static int SFcheckFiles(dir) SFDir *dir; { int from, to; int result; char old, new; int i; char *str; int last; struct stat statBuf; result = 0; from = dir->vOrigin; to = dir->vOrigin + SFlistSize; if (to > dir->nEntries) { to = dir->nEntries; } for (i = from; i < to; i++) { str = dir->entries[i].real; last = strlen(str) - 1; old = str[last]; str[last] = 0; if (stat(str, &statBuf)) { new = ' '; } else { new = SFstatChar(&statBuf); } str[last] = new; if (new != old) { result = 1; } } return result; } void SFdirModTimer() { static int n = -1; static int f = 0; char save; SFDir *dir; if ((!SFtwiddle) && (SFdirPtr < SFdirEnd)) { n++; if ((n > 2) || (SFdirPtr + n >= SFdirEnd)) { n = 0; f++; if ((f > 2) || (SFdirPtr + f >= SFdirEnd)) { f = 0; } } dir = &(SFdirs[SFdirPtr + n]); save = *(dir->path); *(dir->path) = 0; if (SFchdir(SFcurrentPath)) { *(dir->path) = save; /* * force a re-read */ *(dir->dir) = 0; SFupdatePath(); } else { *(dir->path) = save; if ( SFcheckDir(n, dir) || ((f == n) && SFcheckFiles(dir)) ) { SFdrawList(n, SF_DO_SCROLL); } } } SFdirModTimerId = XtAppAddTimeOut(SFapp, (unsigned long) 1000, SFdirModTimer, (XtPointer) NULL); } /* Return a single character describing what kind of file STATBUF is. */ char SFstatChar (statBuf) struct stat *statBuf; { if (S_ISDIR (statBuf->st_mode)) { return '/'; } else if (S_ISREG (statBuf->st_mode)) { return S_ISXXX (statBuf->st_mode) ? '*' : ' '; #ifdef S_ISSOCK } else if (S_ISSOCK (statBuf->st_mode)) { return '='; #endif } else { return ' '; } } xtel-3.3.0.orig/Xsra/SFinternal.h0100444001424500142340000000667006703332514015436 0ustar ericperso/* * Copyright 1989 Software Research Associates, Inc., Tokyo, Japan * * 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 Software Research Associates not be used * in advertising or publicity pertaining to distribution of the software * without specific, written prior permission. Software Research Associates * makes no representations about the suitability of this software for any * purpose. It is provided "as is" without express or implied warranty. * * SOFTWARE RESEARCH ASSOCIATES DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, * IN NO EVENT SHALL SOFTWARE RESEARCH ASSOCIATES BE LIABLE FOR ANY SPECIAL, * INDIRECT 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 SOFTWARE. * * Author: Erik M. van der Poel * Software Research Associates, Inc., Tokyo, Japan * erik@sra.co.jp */ #ident "$Id: SFinternal.h,v 1.1 1994/08/30 15:42:31 pierre Exp $" #include #include #include #include #include #define SEL_FILE_CANCEL -1 #define SEL_FILE_OK 0 #define SEL_FILE_NULL 1 #define SEL_FILE_TEXT 2 #define SF_DO_SCROLL 1 #define SF_DO_NOT_SCROLL 0 typedef struct { int statDone; char *real; char *shown; } SFEntry; typedef struct { char *dir; char *path; SFEntry *entries; int nEntries; int vOrigin; int nChars; int hOrigin; int changed; int beginSelection; int endSelection; time_t mtime; } SFDir; extern int SFstatus; extern char SFcurrentPath[], SFstartDir[], SFcurrentDir[]; extern Widget selFile, selFileCancel, selFileField, selFileForm, selFileHScroll, selFileHScrolls[], selFileLists[], selFileOK, selFilePrompt, selFileVScrolls[]; extern Display *SFdisplay; extern int SFcharWidth, SFcharHeight, SFcharAscent; extern SFDir *SFdirs; extern int SFdirEnd, SFdirPtr; extern Pixel SFfore, SFback; extern Atom SFwmDeleteWindow; extern XSegment SFsegs[], SFcompletionSegs[]; extern XawTextPosition SFtextPos; extern void SFenterList(), SFleaveList(), SFmotionList(), SFbuttonPressList(), SFbuttonReleaseList(); extern void SFvSliderMovedCallback(), SFvFloatSliderMovedCallback(), SFhSliderMovedCallback(), SFpathSliderMovedCallback(), SFvAreaSelectedCallback(), SFhAreaSelectedCallback(), SFpathAreaSelectedCallback(); extern int SFupperX, SFlowerY, SFupperY; extern int SFtextX, SFtextYoffset; extern int SFentryWidth, SFentryHeight; extern int SFlineToTextH, SFlineToTextV; extern int SFbesideText, SFaboveAndBelowText; extern int SFcharsPerEntry; extern int SFlistSize; extern int SFcurrentInvert[]; extern int SFworkProcAdded; extern Boolean SFworkProc(); extern XtAppContext SFapp; extern int SFpathScrollWidth, SFvScrollHeight, SFhScrollWidth; extern char SFtextBuffer[]; extern int SFbuttonPressed; extern int SFcompareEntries(); extern void SFdirModTimer(); extern char SFstatChar(); extern XtIntervalId SFdirModTimerId; extern int (*SFfunc)(); xtel-3.3.0.orig/Xsra/SelFile.c0100444001424500142340000005157706703332514014715 0ustar ericperso/* * Copyright 1989 Software Research Associates, Inc., Tokyo, Japan * * 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 Software Research Associates not be used * in advertising or publicity pertaining to distribution of the software * without specific, written prior permission. Software Research Associates * makes no representations about the suitability of this software for any * purpose. It is provided "as is" without express or implied warranty. * * SOFTWARE RESEARCH ASSOCIATES DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, * IN NO EVENT SHALL SOFTWARE RESEARCH ASSOCIATES BE LIABLE FOR ANY SPECIAL, * INDIRECT 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 SOFTWARE. * * Author: Erik M. van der Poel * Software Research Associates, Inc., Tokyo, Japan * erik@sra.co.jp */ static char rcsid[] = "$Id: SelFile.c,v 1.4 1998/02/24 13:42:15 pierre Exp $"; /* * Author's address: * * erik@sra.co.jp * OR * erik%sra.co.jp@uunet.uu.net * OR * erik%sra.co.jp@mcvax.uucp * OR * try junet instead of co.jp * OR * Erik M. van der Poel * Software Research Associates, Inc. * 1-1-1 Hirakawa-cho, Chiyoda-ku * Tokyo 102 Japan. TEL +81-3-234-2692 */ #include #include /* BSD 4.3 errno.h does not declare errno */ extern int errno; extern int sys_nerr; #ifndef __FreeBSD__ #ifndef __GLIBC__ extern char *sys_errlist[]; #endif #endif #include #include #include #include #include #include #include #include #include #include #include "SFinternal.h" #ifndef MAXPATHLEN #define MAXPATHLEN 1024 #endif /* ndef MAXPATHLEN */ #if !defined(SVR4) && !defined(SYSV) && !defined(USG) extern char *getwd(); #endif /* !defined(SVR4) && !defined(SYSV) && !defined(USG) */ int SFstatus = SEL_FILE_NULL; char SFstartDir[MAXPATHLEN], SFcurrentPath[MAXPATHLEN], SFcurrentDir[MAXPATHLEN]; Widget selFile, selFileCancel, selFileField, selFileForm, selFileHScroll, selFileHScrolls[3], selFileLists[3], selFileOK, selFilePrompt, selFileVScrolls[3]; Display *SFdisplay; Pixel SFfore, SFback; Atom SFwmDeleteWindow; XSegment SFsegs[2], SFcompletionSegs[2]; XawTextPosition SFtextPos; int SFupperX, SFlowerY, SFupperY; int SFtextX, SFtextYoffset; int SFentryWidth, SFentryHeight; int SFlineToTextH = 3; int SFlineToTextV = 3; int SFbesideText = 3; int SFaboveAndBelowText = 2; int SFcharsPerEntry = 15; int SFlistSize = 10; int SFworkProcAdded = 0; XtAppContext SFapp; int SFpathScrollWidth, SFvScrollHeight, SFhScrollWidth; char SFtextBuffer[MAXPATHLEN]; XtIntervalId SFdirModTimerId; int (*SFfunc)(); static char *oneLineTextEditTranslations = "\ Return: redraw-display()\n\ CtrlM: redraw-display()\n\ "; /* ARGSUSED */ static void SFexposeList(w, n, event) Widget w; int n; XExposeEvent *event; { if ((event->type == NoExpose) || event->count) { return; } SFdrawList(n, SF_DO_NOT_SCROLL); } /* ARGSUSED */ static void SFmodVerifyCallback(w, client_data, event) Widget w; XtPointer client_data; XKeyPressedEvent *event; { char buf[2]; if ( (XLookupString(event, buf, 2, NULL, NULL) == 1) && ((*buf) == '\r') ) { SFstatus = SEL_FILE_OK; } else { SFstatus = SEL_FILE_TEXT; } } /* ARGSUSED */ static void SFokCallback(w) Widget w; { SFstatus = SEL_FILE_OK; } static XtCallbackRec SFokSelect[] = { { SFokCallback, (XtPointer) NULL }, { NULL, (XtPointer) NULL }, }; /* ARGSUSED */ static void SFcancelCallback(w) Widget w; { SFstatus = SEL_FILE_CANCEL; } static XtCallbackRec SFcancelSelect[] = { { SFcancelCallback, (XtPointer) NULL }, { NULL, (XtPointer) NULL }, }; /* ARGSUSED */ static void SFdismissAction(w, event, params, num_params) Widget w; XEvent *event; String *params; Cardinal *num_params; { if (event->type == ClientMessage && event->xclient.data.l[0] != SFwmDeleteWindow) return; SFstatus = SEL_FILE_CANCEL; } static char *wmDeleteWindowTranslation = "\ WM_PROTOCOLS: SelFileDismiss()\n\ "; static XtActionsRec actions[] = { {"SelFileDismiss", SFdismissAction}, }; static void SFcreateWidgets(toplevel, prompt, ok, cancel) Widget toplevel; char *prompt; char *ok; char *cancel; { int i, n; int listWidth, listHeight; int listSpacing = 10; int scrollThickness = 15; int hScrollX, hScrollY; int vScrollX, vScrollY; Cursor xtermCursor, sbRightArrowCursor, dotCursor; Arg arglist[20]; i = 0; XtSetArg(arglist[i], XtNtransientFor, toplevel); i++; selFile = XtAppCreateShell("selFile", "SelFile", transientShellWidgetClass, SFdisplay, arglist, i); /* Add WM_DELETE_WINDOW protocol */ XtAppAddActions(XtWidgetToApplicationContext(selFile), actions, XtNumber(actions)); XtOverrideTranslations(selFile, XtParseTranslationTable(wmDeleteWindowTranslation)); i = 0; XtSetArg(arglist[i], XtNdefaultDistance, 30); i++; selFileForm = XtCreateManagedWidget("selFileForm", formWidgetClass, selFile, arglist, i); i = 0; XtSetArg(arglist[i], XtNlabel, prompt); i++; XtSetArg(arglist[i], XtNresizable, True); i++; XtSetArg(arglist[i], XtNtop, XtChainTop); i++; XtSetArg(arglist[i], XtNbottom, XtChainTop); i++; XtSetArg(arglist[i], XtNleft, XtChainLeft); i++; XtSetArg(arglist[i], XtNright, XtChainLeft); i++; XtSetArg(arglist[i], XtNborderWidth, 0); i++; selFilePrompt = XtCreateManagedWidget("selFilePrompt", labelWidgetClass, selFileForm, arglist, i); i = 0; XtSetArg(arglist[i], XtNforeground, &SFfore); i++; XtSetArg(arglist[i], XtNbackground, &SFback); i++; XtGetValues(selFilePrompt, arglist, i); SFinitFont(); SFentryWidth = SFbesideText + SFcharsPerEntry * SFcharWidth + SFbesideText; SFentryHeight = SFaboveAndBelowText + SFcharHeight + SFaboveAndBelowText; listWidth = SFlineToTextH + SFentryWidth + SFlineToTextH + 1 + scrollThickness; listHeight = SFlineToTextV + SFentryHeight + SFlineToTextV + 1 + SFlineToTextV + SFlistSize * SFentryHeight + SFlineToTextV + 1 + scrollThickness; SFpathScrollWidth = 3 * listWidth + 2 * listSpacing + 4; hScrollX = -1; hScrollY = SFlineToTextV + SFentryHeight + SFlineToTextV + 1 + SFlineToTextV + SFlistSize * SFentryHeight + SFlineToTextV; SFhScrollWidth = SFlineToTextH + SFentryWidth + SFlineToTextH; vScrollX = SFlineToTextH + SFentryWidth + SFlineToTextH; vScrollY = SFlineToTextV + SFentryHeight + SFlineToTextV; SFvScrollHeight = SFlineToTextV + SFlistSize * SFentryHeight + SFlineToTextV; SFupperX = SFlineToTextH + SFentryWidth + SFlineToTextH - 1; SFlowerY = SFlineToTextV + SFentryHeight + SFlineToTextV + 1 + SFlineToTextV; SFupperY = SFlineToTextV + SFentryHeight + SFlineToTextV + 1 + SFlineToTextV + SFlistSize * SFentryHeight - 1; SFtextX = SFlineToTextH + SFbesideText; SFtextYoffset = SFlowerY + SFaboveAndBelowText + SFcharAscent; SFsegs[0].x1 = 0; SFsegs[0].y1 = vScrollY; SFsegs[0].x2 = vScrollX - 1; SFsegs[0].y2 = vScrollY; SFsegs[1].x1 = vScrollX; SFsegs[1].y1 = 0; SFsegs[1].x2 = vScrollX; SFsegs[1].y2 = vScrollY - 1; SFcompletionSegs[0].x1 = SFcompletionSegs[0].x2 = SFlineToTextH; SFcompletionSegs[1].x1 = SFcompletionSegs[1].x2 = SFlineToTextH + SFentryWidth - 1; i = 0; XtSetArg(arglist[i], XtNwidth, 3 * listWidth + 2 * listSpacing + 4); i++; XtSetArg(arglist[i], XtNborderColor, SFfore); i++; XtSetArg(arglist[i], XtNfromVert, selFilePrompt); i++; XtSetArg(arglist[i], XtNvertDistance, 10); i++; XtSetArg(arglist[i], XtNresizable, True); i++; XtSetArg(arglist[i], XtNtop, XtChainTop); i++; XtSetArg(arglist[i], XtNbottom, XtChainTop); i++; XtSetArg(arglist[i], XtNleft, XtChainLeft); i++; XtSetArg(arglist[i], XtNright, XtChainLeft); i++; XtSetArg(arglist[i], XtNstring, SFtextBuffer); i++; XtSetArg(arglist[i], XtNlength, MAXPATHLEN); i++; XtSetArg(arglist[i], XtNeditType, XawtextEdit); i++; XtSetArg(arglist[i], XtNwrap, XawtextWrapWord); i++; XtSetArg(arglist[i], XtNresize, XawtextResizeHeight); i++; XtSetArg(arglist[i], XtNuseStringInPlace, True); i++; selFileField = XtCreateManagedWidget("selFileField", asciiTextWidgetClass, selFileForm, arglist, i); XtOverrideTranslations(selFileField, XtParseTranslationTable(oneLineTextEditTranslations)); XtSetKeyboardFocus(selFileForm, selFileField); i = 0; XtSetArg(arglist[i], XtNorientation, XtorientHorizontal); i++; XtSetArg(arglist[i], XtNwidth, SFpathScrollWidth); i++; XtSetArg(arglist[i], XtNheight, scrollThickness); i++; XtSetArg(arglist[i], XtNborderColor, SFfore); i++; XtSetArg(arglist[i], XtNfromVert, selFileField); i++; XtSetArg(arglist[i], XtNvertDistance, 30); i++; XtSetArg(arglist[i], XtNtop, XtChainTop); i++; XtSetArg(arglist[i], XtNbottom, XtChainTop); i++; XtSetArg(arglist[i], XtNleft, XtChainLeft); i++; XtSetArg(arglist[i], XtNright, XtChainLeft); i++; selFileHScroll = XtCreateManagedWidget("selFileHScroll", scrollbarWidgetClass, selFileForm, arglist, i); XtAddCallback(selFileHScroll, XtNjumpProc, SFpathSliderMovedCallback, (XtPointer) NULL); XtAddCallback(selFileHScroll, XtNscrollProc, SFpathAreaSelectedCallback, (XtPointer) NULL); i = 0; XtSetArg(arglist[i], XtNwidth, listWidth); i++; XtSetArg(arglist[i], XtNheight, listHeight); i++; XtSetArg(arglist[i], XtNborderColor, SFfore); i++; XtSetArg(arglist[i], XtNfromVert, selFileHScroll); i++; XtSetArg(arglist[i], XtNvertDistance, 10); i++; XtSetArg(arglist[i], XtNtop, XtChainTop); i++; XtSetArg(arglist[i], XtNbottom, XtChainTop); i++; XtSetArg(arglist[i], XtNleft, XtChainLeft); i++; XtSetArg(arglist[i], XtNright, XtChainLeft); i++; selFileLists[0] = XtCreateManagedWidget("selFileList1", compositeWidgetClass, selFileForm, arglist, i); i = 0; XtSetArg(arglist[i], XtNwidth, listWidth); i++; XtSetArg(arglist[i], XtNheight, listHeight); i++; XtSetArg(arglist[i], XtNborderColor, SFfore); i++; XtSetArg(arglist[i], XtNfromHoriz, selFileLists[0]); i++; XtSetArg(arglist[i], XtNfromVert, selFileHScroll); i++; XtSetArg(arglist[i], XtNhorizDistance, listSpacing); i++; XtSetArg(arglist[i], XtNvertDistance, 10); i++; XtSetArg(arglist[i], XtNtop, XtChainTop); i++; XtSetArg(arglist[i], XtNbottom, XtChainTop); i++; XtSetArg(arglist[i], XtNleft, XtChainLeft); i++; XtSetArg(arglist[i], XtNright, XtChainLeft); i++; selFileLists[1] = XtCreateManagedWidget("selFileList2", compositeWidgetClass, selFileForm, arglist, i); i = 0; XtSetArg(arglist[i], XtNwidth, listWidth); i++; XtSetArg(arglist[i], XtNheight, listHeight); i++; XtSetArg(arglist[i], XtNborderColor, SFfore); i++; XtSetArg(arglist[i], XtNfromHoriz, selFileLists[1]); i++; XtSetArg(arglist[i], XtNfromVert, selFileHScroll); i++; XtSetArg(arglist[i], XtNhorizDistance, listSpacing); i++; XtSetArg(arglist[i], XtNvertDistance, 10); i++; XtSetArg(arglist[i], XtNtop, XtChainTop); i++; XtSetArg(arglist[i], XtNbottom, XtChainTop); i++; XtSetArg(arglist[i], XtNleft, XtChainLeft); i++; XtSetArg(arglist[i], XtNright, XtChainLeft); i++; selFileLists[2] = XtCreateManagedWidget("selFileList3", compositeWidgetClass, selFileForm, arglist, i); for (n = 0; n < 3; n++) { i = 0; XtSetArg(arglist[i], XtNx, vScrollX); i++; XtSetArg(arglist[i], XtNy, vScrollY); i++; XtSetArg(arglist[i], XtNwidth, scrollThickness); i++; XtSetArg(arglist[i], XtNheight, SFvScrollHeight); i++; XtSetArg(arglist[i], XtNborderColor, SFfore); i++; selFileVScrolls[n] = XtCreateManagedWidget("selFileVScroll", scrollbarWidgetClass, selFileLists[n], arglist, i); XtAddCallback(selFileVScrolls[n], XtNjumpProc, SFvFloatSliderMovedCallback, (XtPointer) n); XtAddCallback(selFileVScrolls[n], XtNscrollProc, SFvAreaSelectedCallback, (XtPointer) n); i = 0; XtSetArg(arglist[i], XtNorientation, XtorientHorizontal); i++; XtSetArg(arglist[i], XtNx, hScrollX); i++; XtSetArg(arglist[i], XtNy, hScrollY); i++; XtSetArg(arglist[i], XtNwidth, SFhScrollWidth); i++; XtSetArg(arglist[i], XtNheight, scrollThickness); i++; XtSetArg(arglist[i], XtNborderColor, SFfore); i++; selFileHScrolls[n] = XtCreateManagedWidget("selFileHScroll", scrollbarWidgetClass, selFileLists[n], arglist, i); XtAddCallback(selFileHScrolls[n], XtNjumpProc, SFhSliderMovedCallback, (XtPointer) n); XtAddCallback(selFileHScrolls[n], XtNscrollProc, SFhAreaSelectedCallback, (XtPointer) n); } i = 0; XtSetArg(arglist[i], XtNlabel, ok); i++; XtSetArg(arglist[i], XtNresizable, True); i++; XtSetArg(arglist[i], XtNcallback, SFokSelect); i++; XtSetArg(arglist[i], XtNborderColor, SFfore); i++; XtSetArg(arglist[i], XtNfromVert, selFileLists[0]); i++; XtSetArg(arglist[i], XtNvertDistance, 30); i++; XtSetArg(arglist[i], XtNtop, XtChainTop); i++; XtSetArg(arglist[i], XtNbottom, XtChainTop); i++; XtSetArg(arglist[i], XtNleft, XtChainLeft); i++; XtSetArg(arglist[i], XtNright, XtChainLeft); i++; selFileOK = XtCreateManagedWidget("selFileOK", commandWidgetClass, selFileForm, arglist, i); i = 0; XtSetArg(arglist[i], XtNlabel, cancel); i++; XtSetArg(arglist[i], XtNresizable, True); i++; XtSetArg(arglist[i], XtNcallback, SFcancelSelect); i++; XtSetArg(arglist[i], XtNborderColor, SFfore); i++; XtSetArg(arglist[i], XtNfromHoriz, selFileOK); i++; XtSetArg(arglist[i], XtNfromVert, selFileLists[0]); i++; XtSetArg(arglist[i], XtNhorizDistance, 30); i++; XtSetArg(arglist[i], XtNvertDistance, 30); i++; XtSetArg(arglist[i], XtNtop, XtChainTop); i++; XtSetArg(arglist[i], XtNbottom, XtChainTop); i++; XtSetArg(arglist[i], XtNleft, XtChainLeft); i++; XtSetArg(arglist[i], XtNright, XtChainLeft); i++; selFileCancel = XtCreateManagedWidget("selFileCancel", commandWidgetClass, selFileForm, arglist, i); XtSetMappedWhenManaged(selFile, False); XtRealizeWidget(selFile); /* Add WM_DELETE_WINDOW protocol */ SFwmDeleteWindow = XInternAtom(SFdisplay, "WM_DELETE_WINDOW", False); XSetWMProtocols(SFdisplay, XtWindow(selFile), &SFwmDeleteWindow, 1); SFcreateGC(); xtermCursor = XCreateFontCursor(SFdisplay, XC_xterm); sbRightArrowCursor = XCreateFontCursor(SFdisplay, XC_sb_right_arrow); dotCursor = XCreateFontCursor(SFdisplay, XC_dot); XDefineCursor(SFdisplay, XtWindow(selFileForm), xtermCursor); XDefineCursor(SFdisplay, XtWindow(selFileField), xtermCursor); for (n = 0; n < 3; n++) { XDefineCursor(SFdisplay, XtWindow(selFileLists[n]), sbRightArrowCursor); } XDefineCursor(SFdisplay, XtWindow(selFileOK), dotCursor); XDefineCursor(SFdisplay, XtWindow(selFileCancel), dotCursor); for (n = 0; n < 3; n++) { XtAddEventHandler(selFileLists[n], ExposureMask, True, SFexposeList, (XtPointer) n); XtAddEventHandler(selFileLists[n], EnterWindowMask, False, SFenterList, (XtPointer) n); XtAddEventHandler(selFileLists[n], LeaveWindowMask, False, SFleaveList, (XtPointer) n); XtAddEventHandler(selFileLists[n], PointerMotionMask, False, SFmotionList, (XtPointer) n); XtAddEventHandler(selFileLists[n], ButtonPressMask, False, SFbuttonPressList, (XtPointer) n); XtAddEventHandler(selFileLists[n], ButtonReleaseMask, False, SFbuttonReleaseList, (XtPointer) n); } XtAddEventHandler(selFileField, KeyPressMask, False, SFmodVerifyCallback, (XtPointer) NULL); SFapp = XtWidgetToApplicationContext(selFile); } /* position widget under the cursor */ void SFpositionWidget(w) Widget w; { Arg args[3]; Cardinal num_args; Dimension width, height, b_width; int x, y, max_x, max_y; Window root, child; int dummyx, dummyy; unsigned int dummymask; XQueryPointer(XtDisplay(w), XtWindow(w), &root, &child, &x, &y, &dummyx, &dummyy, &dummymask); num_args = 0; XtSetArg(args[num_args], XtNwidth, &width); num_args++; XtSetArg(args[num_args], XtNheight, &height); num_args++; XtSetArg(args[num_args], XtNborderWidth, &b_width); num_args++; XtGetValues(w, args, num_args); width += 2 * b_width; height += 2 * b_width; x -= ( (Position) width/2 ); if (x < 0) x = 0; if ( x > (max_x = (Position) (XtScreen(w)->width - width)) ) x = max_x; y -= ( (Position) height/2 ); if (y < 0) y = 0; if ( y > (max_y = (Position) (XtScreen(w)->height - height)) ) y = max_y; num_args = 0; XtSetArg(args[num_args], XtNx, x); num_args++; XtSetArg(args[num_args], XtNy, y); num_args++; XtSetValues(w, args, num_args); } FILE * SFopenFile(name, mode, prompt, failed) char *name; char *mode; char *prompt; char *failed; { Arg args[1]; FILE *fp; SFchdir(SFstartDir); if ((fp = fopen(name, mode)) == NULL) { char *buf; if (errno <= sys_nerr) { buf = XtMalloc(strlen(failed) + strlen(sys_errlist[errno]) + strlen(prompt) + 2); strcpy(buf, failed); strcat(buf, sys_errlist[errno]); strcat(buf, "\n"); strcat(buf, prompt); } else { buf = XtMalloc(strlen(failed) + strlen(prompt) + 2); strcpy(buf, failed); strcat(buf, "\n"); strcat(buf, prompt); } XtSetArg(args[0], XtNlabel, buf); XtSetValues(selFilePrompt, args, 1); XtFree(buf); return NULL; } return fp; } SFtextChanged() { if ((SFtextBuffer[0] == '/') || (SFtextBuffer[0] == '~')) { (void) strcpy(SFcurrentPath, SFtextBuffer); SFtextPos = XawTextGetInsertionPoint(selFileField); } else { (void) strcat(strcpy(SFcurrentPath, SFstartDir), SFtextBuffer); SFtextPos = XawTextGetInsertionPoint(selFileField) + strlen(SFstartDir); } if (!SFworkProcAdded) { (void) XtAppAddWorkProc(SFapp, SFworkProc, NULL); SFworkProcAdded = 1; } SFupdatePath(); } static char * SFgetText() { return strcpy(XtMalloc((unsigned) (strlen(SFtextBuffer) + 1)), SFtextBuffer); } static SFprepareToReturn() { SFstatus = SEL_FILE_NULL; XtRemoveGrab(selFile); XtUnmapWidget(selFile); XtRemoveTimeOut(SFdirModTimerId); if (SFchdir(SFstartDir)) { XtAppError( SFapp, "XsraSelFile: can't return to current directory" ); } } FILE * XsraSelFile(toplevel, prompt, ok, cancel, failed, init_path, mode, show_entry, name_return) Widget toplevel; char *prompt; char *ok; char *cancel; char *failed; char *init_path; char *mode; int (*show_entry)(); char **name_return; { static int firstTime = 1; int i; Arg arglist[20]; XEvent event; FILE *fp; if (!prompt) { prompt = "Pathname:"; } if (!ok) { ok = "OK"; } if (!cancel) { cancel = "Cancel"; } if (firstTime) { firstTime = 0; SFdisplay = XtDisplay(toplevel); SFcreateWidgets(toplevel, prompt, ok, cancel); } else { i = 0; XtSetArg(arglist[i], XtNlabel, prompt); i++; XtSetValues(selFilePrompt, arglist, i); i = 0; XtSetArg(arglist[i], XtNlabel, ok); i++; XtSetValues(selFileOK, arglist, i); i = 0; XtSetArg(arglist[i], XtNlabel, cancel); i++; XtSetValues(selFileCancel, arglist, i); } SFpositionWidget(selFile); XtMapWidget(selFile); #if defined(SVR4) || defined(SYSV) || defined(USG) if (!getcwd(SFstartDir, MAXPATHLEN)) { #else /* defined(SVR4) || defined(SYSV) || defined(USG) */ if (!getwd(SFstartDir)) { #endif /* defined(SVR4) || defined(SYSV) || defined(USG) */ XtAppError(SFapp, "XsraSelFile: can't get current directory"); } (void) strcat(SFstartDir, "/"); (void) strcpy(SFcurrentDir, SFstartDir); if (init_path) { if (init_path[0] == '/') { (void) strcpy(SFcurrentPath, init_path); if (strncmp( SFcurrentPath, SFstartDir, strlen(SFstartDir) )) { SFsetText(SFcurrentPath); } else { SFsetText(&(SFcurrentPath[strlen(SFstartDir)])); } } else { (void) strcat(strcpy(SFcurrentPath, SFstartDir), init_path); SFsetText(&(SFcurrentPath[strlen(SFstartDir)])); } } else { (void) strcpy(SFcurrentPath, SFstartDir); } SFfunc = show_entry; SFtextChanged(); XtAddGrab(selFile, True, True); SFdirModTimerId = XtAppAddTimeOut(SFapp, (unsigned long) 1000, SFdirModTimer, (XtPointer) NULL); while (1) { XtAppNextEvent(SFapp, &event); XtDispatchEvent(&event); switch (SFstatus) { case SEL_FILE_TEXT: SFstatus = SEL_FILE_NULL; SFtextChanged(); break; case SEL_FILE_OK: *name_return = SFgetText(); if (fp = SFopenFile(*name_return, mode, prompt, failed)) { SFprepareToReturn(); return fp; } SFstatus = SEL_FILE_NULL; break; case SEL_FILE_CANCEL: SFprepareToReturn(); return NULL; case SEL_FILE_NULL: break; } } } xtel-3.3.0.orig/Xsra/xstat.h0100444001424500142340000000107006703332514014521 0ustar ericperso#ident "$Id: xstat.h,v 1.1 1994/08/30 15:42:31 pierre Exp $" #include #if !defined(S_ISDIR) && defined(S_IFDIR) #define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) #endif #if !defined(S_ISREG) && defined(S_IFREG) #define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) #endif #if !defined(S_ISSOCK) && defined(S_IFSOCK) #define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK) #endif #ifndef S_IXUSR #define S_IXUSR 0100 #endif #ifndef S_IXGRP #define S_IXGRP 0010 #endif #ifndef S_IXOTH #define S_IXOTH 0001 #endif #define S_ISXXX(m) ((m) & (S_IXUSR | S_IXGRP | S_IXOTH)) xtel-3.3.0.orig/Imakefile0100444001424500142340000001457607242010075014112 0ustar ericpersoXCOMM XCOMM Imakefile pour Xtel XCOMM XCOMM Auteur : Pierre FICHEUX XCOMM $Id: Imakefile,v 1.29 2001/02/10 23:54:28 pierre Exp $ XCOMM #define IHaveSubdirs #define PassCDebugFlags 'CDEBUGFLAGS=$(CDEBUGFLAGS)' #define PassDependFlags 'DEPENDFLAGS=$(DEPENDFLAGS)' #include "Config.tmpl" BITMAPSDIR= bitmaps PIXMAPSDIR= pixmaps XTELDIR=$(LIBDIR)/xtel WIDGETS=Widgets LWIDGETS=-L$(WIDGETS) -l$(WIDGETS) XSRA=Xsra LXSRA=-L$(XSRA) -l$(XSRA) #ifdef NO_NETWORK NETWORKCFLAGS = -DNO_NETWORK #endif #ifdef NO_TERMIO TERMIOCFLAGS = -DNO_TERMIO #else #if defined(USE_TERMIOS) || defined(__FreeBSD__) TERMIOCFLAGS = -DUSE_TERMIOS #endif #endif #ifdef NO_SEL_FILE SELFILECFLAGS = -DNO_SEL_FILE XSRA= LXSRA= #endif #ifdef MOTIF MOTIFCFLAGS= -DUSE_MOTIF POPUPFLAGS= -DDONT_USE_POPUP XPMLIB= -lXpm #else #ifdef LOW_MEMORY LOWMCFLAGS= -DLOW_MEMORY BITMAPSDIR= PIXMAPSDIR= WIDGETS= LWIDGETS= #endif /* LOW_MEMORY */ /* NO_XPM ==> LOW_MEMORY */ #if defined(NO_XPM) XPMLIB= XPMCFLAGS= -DNO_XPM LOWMCFLAGS= -DLOW_MEMORY BITMAPSDIR= PIXMAPSDIR= WIDGETS= LWIDGETS= #else XPMLIB= -lXpm #endif /* NO_XPM */ #endif /* MOTIF */ #ifdef SYSLOG SYSLOGCFLAGS= -DUSE_SYSLOG #endif #ifdef NO_TVR TVRCFLAGS= -DNO_TVR #else JPEGLIB= -ljpeg #endif #ifdef WINDAUBE WINCFLAGS= -DWINDAUBE #endif #ifdef DEBUG_XTELD XTELDFLAGS= -DDEBUG_XTELD #endif #ifdef DONT_USE_POPUP POPUPFLAGS= -DDONT_USE_POPUP #endif #ifdef __svr4__ #define SVR4 SVR4CFLAGS= -DSVR4 #endif XTELCFLAGS = $(NETWORKCFLAGS) $(TERMIOCFLAGS) $(SELFILECFLAGS) $(LOWMCFLAGS) $(XPMCFLAGS) $(MOTIFCFLAGS) $(SYSLOGCFLAGS) $(TVRCFLAGS) $(WINCFLAGS) $(XTELDFLAGS) $(POPUPFLAGS) DEPENDFLAGS = $(XTELCFLAGS) XTELLIGNES = xtel.lignes XTELSERVICES = xtel.services CONF_DEFINES = '-DFICHIER_DEFINITION_LIGNES="$(LIBDIR)/xtel/$(XTELLIGNES)"' \ '-DFICHIER_DEFINITION_SERVICES="$(LIBDIR)/xtel/$(XTELSERVICES)"' TELE_DEFINES = '-DXTERM_PATH="$(BINDIR)/xterm"' XTELD_DEFINES = '-DFICHIER_LOG="$(LIBDIR)/xtel/xtel.log"' \ '-DXTEL_LIBDIR="$(LIBDIR)/xtel"' MDM_DEFINES = '-DMDM_LIST="$(LIBDIR)/xtel/modem.list"' #ifdef i386BsdArchitecture DIAL_DEFINES = '-DFICHIER_LCK="/var/spool/lock/LCK..%s"' #else #ifdef SVR4 DIAL_DEFINES = '-DFICHIER_LCK="/var/spool/locks/LK.%3.3lu.%3.3lu.%3.3lu"' #ifdef lectra EXTRA_LOAD_FLAGS = -L/usr/ucblib -lsmallucb -lgen #else EXTRA_LOAD_FLAGS = -L/usr/ucblib -lucb -lgen #endif /* lectra */ #else #ifdef LinuxArchitecture #ifdef REDHAT DIAL_DEFINES = '-DFICHIER_LCK="/var/lock/LCK..%s"' #else DIAL_DEFINES = '-DFICHIER_LCK="/usr/spool/uucp/LCK..%s"' #endif /* REDHAT */ #else DIAL_DEFINES = '-DFICHIER_LCK="/usr/spool/locks/LCK..%s"' #endif /* LinuxArchitecture */ #endif /* SVR4 */ #endif /* i386BsdArchitecture */ #ifdef PURE PURIFY= purify EXTRA_LOAD_FLAGS= CDEBUGFLAGS= -g $(XTELCFLAGS) $(SVR4CFLAGS) #ifndef ComplexPurifyTarget #define ComplexPurifyTarget(program) @@\ PROGRAM = program @@\ @@\ pure:program @@\ @@\ program: $(OBJS) $(LOCAL_LIBRARIES) @@\ @echo "linking $@" @@\ -@if [ ! -w $@ ]; then $(RM) $@; else exit 0; fi @@\ $(PURIFY) $(CC) -o $@ $(OBJS) $(LDOPTIONS) $(LDLIBS) $(LDFLAGS) @@\ @@\ @@\ clean:: @@\ $(RM) program #endif /* ComplexPurifyTarget */ #else CDEBUGFLAGS= -O $(XTELCFLAGS) $(SVR4CFLAGS) #endif /* PURE */ INCLUDES= -IWidgets -IVideotex #ifdef MOTIF TOOLKITSRCS= xm.c TOOLKITOBJS= xm.o LDLIBS= -LVideotex -lVideotex $(LWIDGETS) $(JPEGLIB) XmClientLibs $(XPMLIB) $(XTOOLLIB) $(XLIB) $(SYSLIBS) $(EXTRA_LIBRARIES) $(XMEXTRA_LIBS) #else TOOLKITSRCS= xaw.c TOOLKITOBJS= xaw.o LDLIBS= -LVideotex -lVideotex $(LWIDGETS) $(JPEGLIB) $(LXSRA) $(XPMLIB) XawClientLibs $(EXTRA_LIBRARIES) #endif XTELCSRCS= xtel.c ligne.c bouton.c inet.c imprime.c lecteur.c procedure.c \ teleinfo.c copyright.c protocoles.c misc.c version.c XTELCOBJS= xtel.o ligne.o bouton.o inet.o imprime.o lecteur.o procedure.o \ teleinfo.o copyright.o protocoles.o misc.o version.o DEMONSRCS= xteld.c config.c dial.c misc.c inet.c ian.c modem.c version.c DEMONOBJS= xteld.o config.o dial.o misc.o inet.o ian.o modem.o version.o MDMSRCS= mdmdetect.c modem.c misc.c MDMOBJS= mdmdetect.o modem.o misc.o SRCS = $(XTELCSRCS) $(TOOLKITSRCS) OBJS = $(XTELCOBJS) $(TOOLKITOBJS) HEADERS = xtel.h demon.h patchlevel.h global.h PROGRAMS = xtel xteld mdmdetect SUBDIRS= Videotex $(WIDGETS) $(XSRA) fonts $(BITMAPSDIR) $(PIXMAPSDIR) iminitel #if !defined(MOTIF) && !defined(NO_SEL_FILE) NamedMakeSubdirs(all, Xsra) #endif NamedMakeSubdirs(all, Videotex) #if !(defined(NO_XPM) || defined(LOW_MEMORY)) NamedMakeSubdirs(all, Widgets) #endif Xtel:: @echo "" @echo "Building Xtel" @echo "" @echo "" $(MAKE) Makefiles $(MAKE) clean $(MAKE) -k depend $(MAKE) $(WORLDOPTS) @echo "" @date @echo Xtel built suck cesse foule y @echo "" AllTarget($(PROGRAMS)) depend:: $(SRCS) $(HEADERS) #if defined(PURE) && defined(SparcArchitecture) ComplexPurifyTarget(xtel) #else ComplexProgramTarget(xtel) #endif xteld : $(DEMONOBJS) $(CC) -o xteld $(DEMONOBJS) $(EXTRA_LIBRARIES) $(EXTRA_LOAD_FLAGS) mdmdetect : $(MDMOBJS) $(CC) -o mdmdetect $(MDMOBJS) $(EXTRA_LIBRARIES) $(EXTRA_LOAD_FLAGS) $(MDMOBJS) $(DEMONOBJS): globald.h demon.h clean:: rm -f xteld mdmdetect InstallManPage(xteld,$(MANDIR)) #ifdef INSTALLDEMON InstallProgram(xteld, $(BINDIR)) InstallProgramWithFlags(mdmdetect, $(BINDIR), $(INSTUIDFLAGS)) InstallNamedProg(make_xtel_lignes.sh,make_xtel_lignes,$(BINDIR)) install:: @if [ -r $(LIBDIR)/xtel/$(XTELLIGNES) ]; then \ cp $(LIBDIR)/xtel/$(XTELLIGNES) $(LIBDIR)/xtel/$(XTELLIGNES).old; fi @if [ -r $(LIBDIR)/xtel/$(XTELSERVICES) ]; then \ cp $(LIBDIR)/xtel/$(XTELSERVICES) $(LIBDIR)/xtel/$(XTELSERVICES).old; fi InstallNonExecFile($(XTELLIGNES), $(LIBDIR)/xtel) InstallNonExecFile($(XTELSERVICES), $(LIBDIR)/xtel) InstallNonExecFile(modem.list, $(LIBDIR)/xtel) #endif SpecialObjectRule(teleinfo.o, teleinfo.c, $(TELE_DEFINES)) SpecialObjectRule(config.o, config.c, $(CONF_DEFINES)) SpecialObjectRule(dial.o, dial.c, $(DIAL_DEFINES)) SpecialObjectRule(mdmdetect.o, mdmdetect.c, $(MDM_DEFINES) $(DIAL_DEFINES)) SpecialObjectRule(xteld.o, xteld.c, $(XTELD_DEFINES)) #ifdef MOTIF InstallAppDefaults(XTelm) InstallAppDefaults(XTelm-msg) #else InstallAppDefaults(XTel) InstallAppDefaults(XTel-msg) #endif NamedMakeSubdirs(all, fonts) NamedTargetSubdirs(depend, $(SUBDIRS),"depending", PassDependFlags, depend) xtel-3.3.0.orig/XTel-color0100444001424500142340000000064306703332513014207 0ustar ericperso! $Id: XTel-color,v 1.3 1995/04/11 14:07:13 pierre Exp $ #ifdef COLOR *menu_clavier*foreground: chocolate *menu_clavier*background: brown *menu_clavier*envoi*foreground: DarkOliveGreen *menu_clavier*connexion_fin*foreground: red *menu_clavier*raccrocher*foreground: red *menu_clavier*videotex*foreground: white *menu_clavier*teleinfo_ascii*foreground: white *menu_clavier*teleinfo_fr*foreground: white #endif xtel-3.3.0.orig/exemples/0040755001424500142340000000000007242250361014117 5ustar ericpersoxtel-3.3.0.orig/exemples/lion.vdt0100644001424500142340000000224006703332527015600 0ustar ericperso ACCP\]~66_]~\@S/_BBCZ_DSH+@ZP,CPY_DS'4CP_@S*CAC}S D}#@_ _D" CT_P B]~XDAC}] __}G?]C}G?S @__,]{_@P_C_] WEBC__DS5JFT($$DS5JCP_T_P "M] XFBCK_DS*0#B@%CP_@SZT_P ]C XGBC"OS DZ"Y+FT,DS'Z!CPY_@SXP C]C_XHDCO_S DH CP_@SXIEC+S D%@@CP!JFC+'EPM]C CREDIT LYONNAIS,FPC_FQC]LLE POUVOIR DE DIRE OUI!:iCAA :jCWKF~[VJD}X] Z\F{ULDX] CUgD{TMDZ] SN]D RNTC"MQM@]{D_P_PMD*__OKC_TUDT XP_F{NKCTPDP_ZF{MJF}D_[F{LJF}D_[F{KJF}D_[F{JJF}D_[F{IJF}D_[F{HJF}D_[F{GJF}D_[F{FJF}D_[F{EJF}D_[F{DKF_[AP_ BJ5 B_BP_/ /J5 *%_*%CP_J?_J5_O5_J5_O5_O5DP_J?/J5_/%_J5_J5_J5D_EPT/P*//*%//%/*%//%/*%@T5FQ@T/*//*%//%/*%//%/*%HPB] NumBero d'abonnBe: T5IPF_]Agence}_]Compte 5D JPS @ B.J BJP ]GSUITEKQ@9QD _@99D{LPB_]Code confidentielT5MPS @ B.E GJP ]GENVOINQ@9QD _@9_D{QH]C`QH?@A fJSSY_@ .JMSSY_@ .EXAPG gJSSY_@ xtel-3.3.0.orig/exemples/meteo.vdt0100644001424500142340000000247006703332527015755 0ustar ericperso X D7#7#47#"k#j#!6#i_  X D5 5 57# j j#!5 jGZ_ CAX Dqpap1#s0bp2#q2sq_ DAX Du0j`zj B B up_ EAX D5 j ij#kj j*p0up_ FA _fZ xP aP rP JXI/XTM/ H}WJ/ /VUM/ G} H\UL/ /TVM/ F} G\SN/ /RWM/ E} F\QCN/QP/PEN/PQ/PXM/ D} E\OGN/OR/NIN/NS/NYM/ C} D\MKN/MT/LMN/LU/LZM/ B} C\ BLh\KON/KV/Kg\JQN/JW/J[M/ } B\ Jf\ISN/IX/Ie\HUN/HY/ M/H^} M\Hd\ N\GWN/GZ/G^}Gc\ N\# _V]##UZ#/oUc" *5TW"/E/#+o?!jSXM} zRX]{K0QXj:IwPX"JwOXkI}tNWjK%_CMV#M!LT+O]}KT|~}tzLJXk}~G|pZ I[x~B}uH]uG]`pZ XBF]P P P PTA F]OZ P P P P PNA F]OZ P P PJA F]OZ P PGA F]OZ FAZ FpOASE] M GGBSE]NM}GL FCSA]VDSA]VESA]VBhM]M M  M M M M E E  E E E T T  T T E E  E O O DTAM]MBetBeo du dBepartement:ETA]DEPT + N0.E FENVOINYCWh|p pPB EW5QXCj:BW?!RXC]{CW}~SXCGTWC"/CW#UZC#/oW%XUAMenu principal F]SUITE # XIDF]Le magazine PLAGE Gironde reprend tapezPEFO]PLAGE ZL Pour les heures et coefficients des marBees :XEFO]MAREEXAGL xtel-3.3.0.orig/exemples/truf.vdt0100644001424500142340000000630606703332527015626 0ustar ericperso AAT g T g T g T g T g T g T g T g T g T g T g T gT g T g T g T g T g T g T g T g T g T g T g T gGA A`gP                 Ih              JFN@VARBOTEX VSYSTEMEEGT/ T/ T/ @T_ T~ GT/ T_E @T/ T~ T_ T/ T/ T/ T~T~LC@WLa Wsolution Wmicro-serveur Wsur NWMacELT/ T/ T/ T/ T_C @T\ T/ T/T_ T\ T~T~ GT\@T~T/ T~T~ T/ T__ GT/ T~T~NC@V NOUVELLE ADRESSE... V NOUVEAUX TARIFS !!!ETT/ T/ T/ T/ T__ @T/ T/ T/ T~~ GT/ T/ T/ T__ @T/ T/ T/ T/ T~T~T~T~T~T~QE@SLA SCONFIGURATION NSCOMPLETEL,SH@SAa Spartir SdeUHM@S9 S685 SF SH.TE[T/ T/ T/ T/ T_E @T/T_T_T_T_ T/ GT~ T__ @T/ T~T~T~T/ T~T~OZ@VChoix V. W4QZ@Vau VsommaireS[@Vpour VplusTY@Vd'informationsBAQ  U  R  V  S MY@V_MVY@V~MNX@V} V} V} V} V} V} V} V}Ng@V{ V{ V{ V{ V{ V{ V{ V{ W T  W Q  W U  W R  W V  W S W S  W V  W R  W U  W Q  W T Nb@V_B V~B V} V{IBV    V  V  V  V    V  V    V  W  V QWV  V  V  V  V QDS  S     Od@W}V W GA`E A`BGG`B A`BGJ`BGGA`BGM`BGJA`BGP`BGMA`BGS`BGPA`BGV`BGSA`BGY`BGVA`BG\`BGYA`BG_`BG\A`BGb`BG_A`BGe`BGbA`BGh`A`CGA`E A`BGG`B A`BGJ`BGGA`BGM`BGJA`BGP`BGMA`BGS`BGPA`BGV`BGSA`BGY`BGVA`BG\`BGYA`BG_`BG\A`BGb`BG_A`BGe`BGbA`BGh`A`CGA`E A`BGG`B A`BGJ`BGGA`BGM`BGJA`BGP`BGMA`BGS`BGPA`BGV`BGSA`BGY`BGVA`BG\`BGYA`BG_`BG\A`BGb`BG_A`BGe`BGbA`BGh`A`CGA`E A`BGG`B A`BGJ`BGGA`BGM`BGJA`BGP`BGMA`BGS`BGPA`BGV`BGSA`BGY`BGVA`BG\`BGYA`BG_`BG\A`BGb`BG_A`BGe`BGbA`BGh`A`CGA`E A`BGG`B A`BGJ`BGGA`BGM`BGJA`BGP`BGMA`BGS`BGPA`BGV`BGSA`BGY`BGVA`BG\`BGYA`BG_`BG\A`BGb`BG_A`BGe`BGbA`BGh`A`CAAW T  W Q  W U  W R  W V  W S  W V  W R  W U  W Q  W T @A bXAV                WA g A`gQ gHAQ R@j fj fj SA`gS ~y`gV R@jR SV RjR SV RjR SA`gU R@jP SU RjP SU RjP SXN@QVotre choix : .B +}W ENVOI HB@Q_B Q{1G} Q~B O@QARBOTEX NQSYSTEME LQ_B Q{2G}JVQ~B M@QGRAPHITEXJZ@QLA REFERENCE S_B S{3G} S~B O@SCLIC BASICNF@SLA DERNIERE CREATION TECHNOTRUFFE V_B V{4G} V~B O@VCREATEX NVSYSTEME LR_B R{5G}RVR~BPZ@RCONTACTSRZM@RDOCUMENTATION LU_B U{6G} U~BTF@UTELECHARGEMENT NUMACL, les BVF@Usofts en ligne ]S H\IP B C'UU@P HC~INTLRMuF@ VU@PBC/> />@ T_W @GUIDE U^Bpour nousV^BcontacterXBG10H:I18X\L@.BX\L@xtel-3.3.0.orig/exemples/visage06.vdt0100644001424500142340000000666306703332527016300 0ustar ericperso@A Chargement en cours ... # BI#!!00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000# CI#!!00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000AAAA) C( B g K!"#$% V H&'()*+,-./0 S F123 45 6789:;< R H=> C? @A BC Q GD CEFGHIJK S DLM DNUEOP R KQUFR R Dr DSUHT Q Ds UVUWXYUEZ Q Dt[\ ]U^_`abUUcde R DufghUUUijkUUylmn R Co pqrUGzUUs R CtuvwxyUF{}Up R Cz {|}~UE!|~U" R #$%&'()UUUv*+,-./ S 01U23456UUw789:x;< R C=U>?@ABCUEDEF R GHIJKLMUUNOPUqQRS S TUVWXYUDZ [\ T C]UG^_ X D`UDabcd X EeUUUfghijk W FlUUmnUUUo W(@)cAAAA# BI#!!0@@@@@@@@@BmU`0@@@@@@@ENs}Kp0@@@@@EJh}o{o|P0@@@@@@@@BiUJbp0@@@@@@@`dDbpu0@@@@@@@@@snov`0@@DCKgstxyUWjP0ADJl@q{`p@@AA`0@QABD@@@@FfVKp0PccOC@jA@DBj]P0{SU^bA}FXC@HB0}wbf_EjmB`PBA0~oP_JzEJpNAPV0U@jk|LbJXd`RAP0@BAXkc]RK@xc@`0@@@@@@B@PBAPl0@@@@@@\RGCqXK0@PXOCmixCPX0bXvR@@@@C`CA0BpUEni`xHDB@R`0uur@@H0adJ`DC`H@@P`h0@`A@lhQB@Da`X0QD@cHP@PP@b@a0@`AP`DA@HA0iTHaD@`@@@@B@P0rbzUFbd@IPP@@`0@@@@pFB`TBbDE0cP@`@@@@B@A@`0Ph`dVB0HA@XJA@HB@PPH0CA@@@QJC`DE@H0@b`AEHd@@@JA@P0QplD@A@BB@@A@P0@HC@`FA`@D@@D0@`P@@@Dd`@D@H0D@@@@@@@@PHiUp0HADPBPP@@ku^{p0EBjH@@bauGk}p0@H@@@@Q@hOGv~p0D@`HDPnDPVNoUp0BPD@jESZop0@Fb`P@@`DLB`t0@R@aPD@@@D@FH0@PJH@@PAA@@@H0AQXAHPtPHr|_^p0~oc~oop0@E@@`HAP`ICTx0ouU[ku|_K{}__p0|OCxOS~w~p0H@LEDbhAAplOCp0DHBDPHBE`HFA@P0@@@@@@DCApXGAp0@ATW{]`0{wPP`0~oaTJ@M0z|E@`0B@@HB```HD0@@@XOSxqXvYw[p0@@@@PNCp^Cb\`0Cpl_Gp|_Ws}Wp0~{}uv~{p0k]}~{}upx0to{~wp0hHWr{}kq}GBp0Gp~OWv~w}p0~~oSx{}}p0tH@@@@nw~EP0@PDBjow~o{~W`0[v}[v}o[w}_p0{O[~~oG`rKw{np0@@@A@XJiuVjw{p0`DB@p]Sz~wp0@@HB@H@@Ujk}p0AQDxOG{}e~p0oMc`pBC`hMC|p0P@@@Q`\GApzUU0G@pLA@R@bMp\o0@`PHHDAD@D0_w\Os\{Nst~Gp0_{G^Cxp0^o}]oow~~y}^`0WOs|Os|Os|0P@a@L@`TB`\EA`0D@@@@@@@J@CPX0Gp|OA`HBA@PEAP0|@@@@@@@@@CQp0t~WrtoEqVUE`0uww{}~op0C`p@BA@x@D0AXTE@`HA@@@|0SLf@pD@``F@{A0EQPREBThJEF0w{oWv~owwzo]p0# CI#!!0C~wwop0|OCpxNC@pHB0CCE@xEA@jMANpP0`Ka@@@@@@@@ApP0Ap|_Gs}~p0Oc{}~OO}vO{_p0sOaty~Cp|Oc|p0@@@BAE|KA@@Bp0WrlEBxoEPrKu|`0~DAPJp0{cCU@Op0{W^bsAp0u`vDCh|0Os|Op0{~os|Ocx|P0@H@HHA@D@X@XH0@PLC@pLGap\GAp0}~C@pLC@p0|C@pD0wwl|_0xoGp|OCx~Oc|_`0w~u|oGQ|KAp0Fp^@r^_w~{p0{~W|K{}wop0{}UVk}~{p0\FC@aFz}_ZoOWp0|^Ou}n{}ok`p0xOCp~LA@`@@@N0Ap\G@pLC@P0pLC`xOAp~GuOp0@@DCEq}sp0oogSp_Wp0o~kow}~p0@PH}]Fk}w}p0}}ksu_kMy~`0Osx|OGax|^Ce`0@Aap~OGw{x|_Op0OGsx~GCphMC`h0IMC`0@@@@@@@@@@@OP0_s|Gp|G@~KhW0oq|gp|OCp|G@p0sxyP0q{OgEB`|EVp0y]|{w]_oop0WzcuOo}}{p0s}OjW^{p0s~mu0{~_owmnv^G`0EhNap\gIwWkx0~~OC`xHCP0AQjow__s|_Ap0p0zow_no~p0@PFB{__kp0vBk]Unnp0Kuu^p0[kst~KcP\JC`X0OQtJ@PX0^k`p0}Oq|OApLA0}~w_{o_zk}P0xNC``LA@XJA@P0_s|_Cp\C@PD0~}{}~jkt]`0wzk}Uj{uUkjp0VjkEuVngWznUUp0hMSxzog~_uz{p0Oqt_Cp|G@pLA@P0wok}U_k}}oj_p0j}UVjy}^kw}]op0Uvk}k~P0n{]VnouW~}U~p0}}nooU{{oP0pHC@pHC@pHC@p0}_r|wGq|_Gp0~o}w~o~kwU`0uou~{Wop0pLC@xNC`xNA`x0Os|Os|~Ocx|0{0@@@@A`@P0DAPA@@@P@@@H0A@@DA@HB@@H0@@@@@@@@@@@B0{|0op0_w}~`0o}o}`0w{p0op0{{_p0_}~p0_p0AABB00 00Tapez SUITECBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBXBxtel-3.3.0.orig/exemples/immo.vdt0100644001424500142340000001776006703332527015615 0ustar ericpersoXA)cW gh h h h h h h h h h h h h h h h h h h h h h h# BI#!00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000# CI#!00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ZZCB(@DMIMMOBILIERTBA]M 3  2  1 \Studio Place VictoireMFAMFerme dans les LandesTFAMChateau du MBedocA]D_IB\D}  {C\D}  {D\D}  {E\D}  {F\D}  {G\D}  {H]( BD>II\(@D}  {J\D}  {K\D}  {L\D}  {M\D}  {N\D}  {O]( BD>IP\(@D}  {Q\D}  {R\D}  {S\D}  {T\D}  {U\D}  {V]D~I# BI#>0p@@@@@@@@@@pZZ ] Une SBelection Cabinet B B]p#@aRQ 0E!2B@Bs!3BB!4@@BB"1@P@<p#@bl\RÿØÿàJFIFHHÿÛC    $.' ",#(7),01444'9=82<.342ÿÛC  2!!22222222222222222222222222222222222222222222222222ÿÀ<P"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?¿€¾+9nYãŒÿõÿJ»á»qöwI&N79!FLö¥ÔT*PM¿ú­ÚAsu*ÜJŠŠQÄFEV•³€cÈîO Çzó[÷Ž¡sjÝÙi0jº*ÌÈ«Íæ–r(䜎>¾†™y¦_iªÍugr»Nß•wn>ŠAÁ?w:tcZ½þ×äØÙ‡ŠÁQòðRI†\öÜz0¥µ– ™¶neakn¹³Œå²7ÝŸî§}§ÕȪqÛúÐ…'×úò8Š‚3‚3Md#×ó¯C—KK”-{i_ÝÇà[ õ+×É=ÉÇLc&çÃÖÓ4ßbš_-ÊC &“¡UÆåº} g(ɧqm€ûøÙ†ã¯9ü:c½U·'œõ¹¦Ii,ÈÒ@Ë ˆÞU“ä܇$}}+*æŽ;£UQ— ¶8î{q“ôÍJ“½ò÷3ÛžZ­#žy?ejÞ 6ò˜ìâûQE#9ç†ÏÌyÇ~v­§†òÖ)<Ã’.á Œ¡þ˜õã¥j®fÚ-]C;iO+E(„íÃà‚Fk°ðö‰ j¾ïJ¶›PVœ,¤aÈ#æ7(Á?…r³ëPM¤Ë§×ÏŸ2È0vríÁéÒºoø¦òËIm&ÏDšñQžY&Žår `ƒÏ®1Þ“kŸä6ÿw£êJ<'cèõˆ$º†ñìÒY.\,™Æw.qÐF1ÍjðkvV–>&ÔÌ*Òm7;&Û*/`@ãð}ˆõl.‹ü$>b©§ä62 ãƒW¥yÛV³-dv“a`y%#èó¬ç8ÆÖòg¿ðDQÇâ8 ’FÕ­'’k¯²¹{RŒb †Vàgãq æ²|Uãt5àŽØ W qÛ‚V$ÉUÙǶçÔô®ŽæöHt‹»nHµÛ¶À[zõlp2~ö+ñ$â;×{‹´ÒH!¸-¯ŒÿU:•#ÍiÁÎV±j×@šÏLw¹¼šK©#ÞÄ6Æ>§½rú¦ž–Íp,‹lŒ$`ò¹îÇ·NõÐêž.– b}4µ–XbNVë²ÎÒ¿AéY£]2êð\Íb!‰'Ü#4„`N89Á® ^Ùë-Ÿ™Öý’V¶¾‡8'°hÇ•22’1å!|l ­0¯lLQ²ƒp£FS¬sÈöë^×oâ5}JK(#¿µ¸H|ÿ.îÝ¡%wmÈÏl‘úמ|@b¾'ÑОig¯šOë]´áË#’U\ÑÉ,¶okm*Û,ZƒNæví+±¶í$ûôµ¥.¸Ò_>w†ÂXá[’prq–ÆFzb¹4¤ÑÎeõëò×M¥êÖéûîÓWŽ9%ýçÙ¥e†Emm£;ÆN3Ç>õ¤fœ¯.ÄÊ—–']g¡ß¿ƒZóþ)¾Ä¶Å’ÅI @1œ{uàâ¤Ô- Öu‚@¿Úëm?f¸S(yIäç×Ú…Ô³»Ð­Ç‰¦¿žÚèD–6fäî„’ásòc<}yœ/ sÁúVšÅm) q3õ«À’ãžõÏ(¥¢7ŒŸSJÞçGÏCÍwZâ‹Ý2îÛaÛ'!™ˆäƒž¦¼Ò&%Óžâ½gÄPªêw ¹zS%$åØ=£O—¹ãבMl¯º1 ¡@Ü®wg*ߟZm”--æîÜòçlg Àg‘ž_ô®Æî5˜âA»+¸çëXò[Ç!Wwjw¶„´+LCÉÇ ÍœûÏëPÞÈÏ*¹Æq:õÀ|©“‚­ExKHÀôEÈø§}¶§ÿÙp#@ASI]p#@aRQ 0E!2B@B s!3BB!4@@BB"1@P@<p#@bcXRÿØÿàJFIFHHÿÛC    $.' ",#(7),01444'9=82<.342ÿÛC  2!!22222222222222222222222222222222222222222222222222ÿÀ<P"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?Ìòé¦:¹åûS+Õ±æ”]*»¥h:UwZV=Ò¡hX®îÄâ´þÎäo1±BqœTÉŠÃ:å_àñÀï×ÏR¬aêinF¶ÍÜõaŸÂ£ò«jxÙâH¶ØÊ•Á 3×5X[åqÈt䦮LãfPÓÄ£“Í'—îoLÕäÒŠÄÌänÀÆCž~´N¤!¤˜£ KdY[³£9äôó*äœ:ñYÖ—ñNè%”E€23|ß)ÈÇÞôþ}*7¾Ž&)l†@­ˆÖ^^NôôÊñ´”¹y®u,4ùy¬h²6ÔÉ$àÜÓÛM—˺’B‘­· Xä3žˆs×ò÷§èË~ á„Eaâ.æÊ!=={ž8éW—Uðø·ŠÝƶ`bÊ–‘‚»‰'æº:ú±ö¬jãjÙ{4’êßéòüï},ô§„Œµo²3ôí*ïR˜ÛÙ[Iq7tŒgoûÄð¿RE`ëz•ž–ÆÒáÔµ<•ò­ x`sŽ ŸÆÙþgø»VßÄMkÄVú Z|¶é¡Y¼æ 4ëWL{ǘã¨# à÷ÏJòÈ¢•#µ‘RÝ#¥ª§ï.¥û $z‘¨ÃªZ1+å]EÄðsøô88üGQVUY F¹Î¥yìw×ß›ä(³“’ùHãå#Óïß­u¶zט!•ƒ,NêH”coàã¨ôa×*ê›÷¶"­6Ö‡Eon±)Û&òÀePsÁÇáS²2º£Äí»ñ’§Œà积¦*-.úÓRšKX›xu2¨e;O©ÈäíÍ\½Ûh¥]Â(ÉnNnÙïWRÍ9]zþ†QÒÊÇ”™þÌèêòÁ@ ‚6òG>£ó®§BÓ®&ÐíõBðy72¾Ó$^k!\òœ(6íÙ9ã×Ï'w·Uˆ†*X0VÈÊöÈ$û{ãë]‡âø´ûEµšŒ~RX€9J\ç$`aˆ¯2T¤£xnzXYRö«Úü'¤ "Îx¥»Ëu¨n_³5ä¾jFªX?È1ÿãêÂÕ_ɘáDUpA¸ôô?_ƹ3âÉ¥•f³ðö¡0€ žs‚1µO÷Z‘µ_¾ï'Ãsöìg{iÛ G8|ÏåX:S“¼µ=hãhSMAÛÉ/øˆ×·¦„onyŸÚ1#]ª¹†@‡æ`ç§­v÷÷Òê¿cžäGº]yà>P*¬‘Á”#¯üôcžüW+$©o˜8nrüc8ú×e(J0Qg“НNU\¡¶–û’+ Ói[û:ЕS¸ÎñéY¦k4’<ÊÁHùþqÁöãüjŲµûˆbŽæhÔòb¤ÈÎz ©§dÙÉ*‰ì\´–KDá‘]°Ì Ï_N¿Ë­uz^©muXO3,Å3Æ0Ý”Ô×Þ³bÐ/ï-áû>—t’©&Y¦‚EB¸ $`;ŽH=qõ]QÓô æØ;Þ LN.a3×)÷Ñæ¹®¦· v½“8KKvêV¹ íj7bOë]¾—àí:I!¸hu¥*r<çŽ>}° ~•ÉëY /ä@£úR wVs“¨Üƒê$"¶¨ªËgb9š=ÌjzŒ PÜIkoUŠ/µ…P¡Bq€õïžM$7ÌšåÒ^^%Õë¬ÓywGk:Œpô¾zW…5åÔæ=ó“’ÍÉãÜÔ¿m½‘Y^úé”ÊqùW3¡Qý¯ÏüÁÖ‘ê·:g†cÑcÒn5¶µŠéï*’ntA;N 1ÀúÖ|v¿àfÛ ½Ó’^yfcúâ¼Ô*§ÎT1Î~nsRµìò*Æ ÆŸÝ.¿W°“ZÍýö3uF‹Ä^°qöM%bp8t±?›søÕ£ãý1Ô(¤„}ਠüxÒ¼·;¦T$NM6à¥e^€÷£ê”›ÔŽfú¬¾03CºÊXß9 ª^,aà ÉüëÕ'Žúýîõ=vÅïú¸ll‹¦IÏ RIç'$ñ“X–6ðÊ$’XÄ…@Àbp*³d©$Ǭ{zycoê9«8SnÃæ?ÿÙp#@ASP]p#@aRQ 0E!2B@Bs!3BB!4@@BB"1@P@<p#@bnNRÿØÿàJFIFHHÿÛC    $.' ",#(7),01444'9=82<.342ÿÛC  2!!22222222222222222222222222222222222222222222222222ÿÀ<P"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?Iõ¼Ö[Xˆ”‚ólýæîÜúÿJ§µH]«Œ ž§Ö¬‰¦|Øùvü  ŽœÕ›M:}JèCS+WÍp ã¶O¯q%x×»3¶r ?ÎkFÿH¾Òåòïmü–Á9.¥qõ› ÕµÃIåJŒ±ã8ÏåïÓƒC©kµ¨rÉßAÁ¯ëVí¬fº¶º¸„nK`¦@3yôíëšc!EfÚNÐN=p+cÃ?o¿†úÚ‹m,+‹æ" mf#H$sÛ׊Ç]Òµ(Óçnæ2Æ}je‡Š”ÃåÊÑ’c$ gfܬm¹¢I1Ð? tÝ5t`ôv-Yh^ÚÁ+Ko ´¹ùÔ”ØÆÞ¹ü‡JoŠÃöPHí´e–#$é½Ë8@;rÄõü*å¶¡}±òNÅ'w<ãÐt® â,×¢úÛN»Ä«u¸ÃFêÖ풹߼@öÈ®:Ó”‘µ4¤ìušn”/æÙæE_¼3’G¨=1[ÃKÑ­Š—¶weÿ¦Î÷È ŸÃµP·Óî#Ãn‰îÍþSW½¹…-Ò`¶Pì%ŸË,:{€?Z+TåNWÑv q»JÚ˜~9¹Óõ]z×K±€Ä-"dq´‰æ±nÌnù0 `žLг§M×±Ý ½R8 KvWc˜ùÊŒ½:ÌÑ•¥Ötéâ¶içi×cÌb×ö·rO#ޭꚤš‹$°ŠP-D±£@äY”Î26–׃×5àÔ›”œŸSÔ„TU¸tóuo+Chð-¬`»IFÛ@?;)þHÀÎjÿ‡ã:f£wº|Aã¶Ssð˜¨@®z“·ÐÍ6ëQþÔ†.æöÜêfA$Iq#cr3´VãwVMÌú‘Öu5Ôròý™”É`e›r¹¼ŽkwŠ”à£.„ª rS#Äz•þŸâÍsO´"Æ;¤Q„V¨0F=iú<:æ¡h."½µYcó&`Y°œÀÇjƒUšVñD²=Ì·²\ÙFÒ3Ň—Œ'ùT õ8眒hš²èsjð–%ŠåQÜGØ<Œ¯QùT:Ókâx{8ßcÕt]KTÔ<;§Ý\ ƒÉß‚©ãðýkÄþ$jk¨ë×¢1¢2!!&F€7#såîÈäíÝÓ=3^Ÿ¦ß¤ih±9’Ûvü±Ëƒüó^cñëLÖ¥²¹²Ô­Þus¤UqÌÜ€FÆ ã¶+¶ÜÔT®s'j®'¢ÇtŸ:Å]:.â± îã8ÎqœW7âBßPu¼*öäÞ²\«¶Le1•ùNëÍXÐ`¶t½ºÔ×uÄ“;!¹ ¾Ì,ŒôÊàþ>µÍiÜN¶(ñAÆwó0ĺk;Äzû’jäž.sM=cB0i£OÂ×7/¯X)KwÙ¸Fùp¥U dN ‘Ö™öPÞ4»ŒO"쾊=Ê?½¸Œý Ýõ®èºgö7ïõ -Þ …Ö‰á‘B|£'ÂØx?Ž.–Ú†¡¬,ž|ÖqIq#5“Êç¿üÝ3Ú¹›ÜÝt:ý#Q7ih±°¸¸ÒÑÒ@L å¹'çÉ9PWŒuç¥W³”ÜÛiI w;>ö(T˜È©btçwç4h»`¹“]eIn6hávÚ3Žà5oO·R4“½Í¬f[¸UšÀµ;˜ñüexg#­Jk¡¦ç)«Þ—Õ|?2y±}«O· #m "9XÀ#Œ¯<ûþU|+-Æ›¨%>Ñn“-X…%Wp;ƒëíš‹ÅFF—EmfSNË|)€î8¶ãÛŸZ³á‹±-ÒJ¯šHܪï”À ’ ÉéW}•ýû477 ¤[KÑŒÉ$.ïݿ̌œ ‚@ÉC $tÍp^<¸ÒçÖ&“OŒÉ8¼r¸Žõ9ÆH8‘ÚƒK¦\CF«Ê¡Ë¡‰ç»À#Ü;W ­_Ϩ[[În¦–Ž4¹Á— ’C0ò^€ŠÚœß/)¼š=Jo_"0„Å(#¢?7äßýzÆ ˧IºD–7'þZ©Ò½J&#¿J³æ±]§qÐŒŠâpìj¨Åž:mnJmf„€3ÊõÇNž˜¨\j1XÒ-„ð¸{äW­Í¡é—¬|Ë(•‰ûч?‡ËkzTlÅ i6àðÇ5 jK ŽKkªm’×rg#€È§ôª²Ú%Äk´4#?2’=0OóÅtRF‰´6I=F1ÒªKˆ×h‚9Ï5)êO±±„Ðiñ9”êR£œ‚²ªñÓ×·áQ,–ÊÒ ëré¹—r yɧ¯N榼³³Ûuœä€UqÿÖ¬ m`I\”`5Ñ~¿‘›N%Ÿí ·^Kp®J°Îc§éUä½ Ù…¼ml´`g¨8õäóîj¼ðƄǂWý¦&¨º„Ë(Á=O5Ñ&-YÿÙp#@ASXA)cDW(@T GSBelectionnez votre choix ... + ENVOI xtel-3.3.0.orig/exemples/visage01.vdt0100644001424500142340000000620206703332527016260 0ustar ericperso@A AA) C( BDI!"#$% &'()QG*+ J&,PF-. M/OF0 O1NE*2 P3ME456 P7LD89:;C <=> ?@A GD BKD2 C CDEFGIJ ED KKD CC LMFOP DD QKDR C STEWXY DD ZJD[ C \]N_`abcdef D gJD CChijklmnopqr D sJDt CuvwIx D yzID{ C|}D~C!" D #ID$ C %C&'() CD *ID+, C -G./0 D 1JE234C 56789:;<=> D? @JEABCC DEFGHIJ CD KLIEM C C/LNOPQ RD SIDTU C DVWXYZ[ CD \ID]^ C Dy}D_ CD \ID`a C CbcEd CD eIDf C CgFhij Dk lIDm C n oFpqr> D stI# BI#!!0xx0w`p0os|g`p0xP@@UBd0O`pD0@p0w|G@pD0|_@p0w|Cp0{~0{||N0}Oq|OApLA0|p0~Ocx~NC`xL0w|Gp\C@P0ospxOC`xOCp|0Os|_Cp|G@pD0|OC`pLB@`0_w|Gq|OApLA0Os{|~Ow~0BdC@@H@@@F@@Pp0@@@@@@@@DBA0w|_Cp\G@pLA@P0{|Ocz~`0{m|UCTWMriu0ApH@xNC@pH@@H0@@@@@B@``0@@@@@@@@@PDGAp0@@@@@D@@DXGAzp0@@@HD@A@pNC|~0@@@@@@@A@@@@@P0@@BIWOw~_p0@@@@@DCj}_{p0w_w}Ow}_p0Bp|OCq|Gs|_Wp0q~Ogy_p0Op0k{p0DOwp0|C@P@@@p0pNcj_{p0@@@@@HA@hDCj}P0_s|Gs|_Gq|OGp0@@@@@@D@@P`DB`0wr}_[u~op0|C@P@@@p0~o~p0@@B@`HB@pLC@x0Cp|OApLG@pDA@P0@@@@`@B@`HB@`0APhFWeq^_W{~p0_s}Ow~p0#WW0~hEP0}\0tOCp~OSxNiT@`0_w}_s|Gp0`HB@pHB@`HB@`0ur|_sh@@@Q_p0wh@@@Czu0Gx|C@P@@@p0p~E~p0{|xDBJjOc|n0@@@@@PH@@@@AAp0@e]Up`@@@B@p0_{|zH@@@@@@F0@@@@@@@@@P@A@p0@@@FEr}__p0@@@@@HA@hNC`|0Cq|OGp|_Gq|OGp0@@@A@@DCApLGAp0~cP`@B@PHC@x0p@@@@A`xOCpOAp0@P@@@PLC@p\Wp0o}p0xJC@`e^}p0Cp|OJu_op0pNC`|Os|p0B@@@@@LGp0Ap}p0|Oc|~Oc|Osx0Gw\AplC@pDC@p0@@@P@AA`xFC`X0Ap\GAp\C@pLC@p0}O{p0@H_p0os|Ocx}OCpz0@PD0_}Os|Op0XFC`@DC@PH0@pLC@PDA0w}_p0w~op0# CI#!!0z}P0pNC@`@@@`0_w_w_p0@@@@@@A@`HB@`0Os|_Gp|GApLC@P0{}p0w[_{p0{`0zOShtMBhtJiQj`0w_s|Os|op0`@@@NCy{`0@@@@@@@@A@xTC0}_w|Oq|_Gp0{op0uZiT~oWzW{P0PJA@hDB`pDC`P0@P@A@PDA@P@A0@@@@`HBA@HB@q0@@@@@@@@`HB@P0@@@@@@@@@B@|G`0Cp|OAp\C@pDA0|O{p0sxpH@@@@B@`0tx@G_qx0aPAPO{|J0q\C@H@@@@@BEP0Wp|_Ou~_p0~{p0o~_{}osp~0`DB0@@@@@@HA@`0@P@A@`DCApLA@p0pNCp~Oczp0@@A@H@B@PH@@`0CpL0w|Oq|_Cp\C@P0pNK~_o~op0@Hcj_w|_Ex[hP0As_gsPzDBkup0xg\u`pLOOp0ow~_{u~oWzu0xDB@PH@@`0@PLA@PDA@`0}}Op0OnuPhEb`0w{p0wtxDB@@P0xOB`@@LGGwp0@@@@`HB@@@@@`0@@@@@B@PNC`|0Os|Os|_Gq|_Gp0os`0THC@pH@@@@@@`0Gq|OAp|G@pLC@P0Wp0oAp`PNop0@q\p0o{{op0@H@@`@@@@@@@`0Gq|_Gq|_Gq|_Gp0{o}~`0@@@@P@@@hLIBh0pHC@`LC`pL{~0wW~Nk|~0PDC@`DB0@@@@@@D@@PL0TECax\OCQx|_Op0os~O{}op0Gq|_Gq|_Gs}_p0|OCpxOC`|NCpx0@@@A@PLC@pLCAp0{~os~Os|~`0A`|OCq|Ow}op0@@B@pLC@xNC`xP0@@@@@@@@@@@DA0Ws|__w}_s}_p0xOCp|NCp|OGp0@`H0Ap\OGp|OCp\OAp0_c}~GsxOcyp0_{}p0xNGbt^KA`HBHd0@@@@@@@@@@@`H0_w}_s}Oq|Gp0AA00] Choco Kle 29 Avr Aa 20:36  XAxtel-3.3.0.orig/exemples/hendrix.vdt0100644001424500142340000000620306703332527016303 0ustar ericperso@A E[FMEnfinG[FMdisponible...J[MP C X 2 V D TK[F] Version 2.1 XYE,`]HendrixAA( BWBAF!"#$%&'ICAE( F)HDAE D*+,-HEAD. C/0123HFAD4 5 678GGAD9 D:;<=GHAE>?@ ABCDEFGIADGHIJ K LMNGJADOPQRST UVWGKACXYZ[\]^ _`HLADabcd efghIMACijk lmnoHNACpCqr stuvFOAwxyz{|}~) C!GPA"#$%&'()*+,GQA-./012C34567ERA89:;<D=>?@)ACSABCDECFGHIJKLCTAMNOPQRST UVWXYUAZ[\]^_` a bcdefgVAhijEklmnopqrCWARstuXAW(@)c# BI#!0oxy0jdPB@@`0xMCPP0[EA@B0}[At`A0z|_@P0~Ku|CAP0~os~|OC`p0_{|Gp|OCp0@@@@@@@B@P|w_`0@@@@Apmo]mo0@CSz_~~[__op0Ap|GAx\Gy~_w~p0~OCt~OCh|Nc`p0@@@A@dHNesrSWp0uWnww]nzWBp0}__nOoffj0{zs{qWp@AAp0tww~mk`ow_]`0`LB@pHB@pLC@x0Aq@PHDP@@@@`0@pDCCql]Oc}_P0xBr_^IzTQwBxP0Os|oOw~_p0xMS`|OC`|Ocx~`0@@@@@@@CBPhYM`0Cp|_OzwWwV_j`0w[ooiP0_x}W^wyaD0@@@@`NCa~oWjsP0@PtPFE`qLbFqd0@@B@pDA@tG`Pz0VEqX@@@@dFA@h0MviUj{QkkADhH0RZSERE}Wwv|ofp0jrlK]uk]}}wp0{w{|OCx|0lOfA@QUz@YPV0~osx}P0wYQnBapYRZh@P0hIb|CDz_AqJSE`0ZF@pMA@\FAp^C`0pHA``FcLMCp`V0}{}kTtT`ATPA0XOCfi~}OYUJp0@PFCPw^g|lE@p0z|cXtKN_bm}EP0JP@daOWE}UJbXp0@x^Mc`~_DilWGp0C`xFA`ZNVBcAmp0P@@@C@P@AXDQ`0HC``DC@aJR`PF0@@@@@@@@@@@x_0UpL@@`0QxoGq|OCp|_Gp0Gw{~_Jw^{w~P0cfM`JLGp[J_nzp0q@PPp@@@@HA0GaTXD@|0zi|~od0`HBCp0B@@HP@`R@@`@B0@@@@@@DAhPDA@P0@O_p0GLGz~oS}uU}}p0@H@@@ZOU_p0@@@@EEpGO_zoP0@@@@`BBTzZvobP0C@PFA@PB@`@A0@@@@@@@@@X\TiP0`@@`D`TOAF]s\p0oq}O@yNGaxlCpP0og~_o{oo~p0xnCx}OSj~owp0xN@pvA`|M`ZWBp0yG\UEp\F@\@`P0Zfm|[oyw[g|~Op0x{NqlCAxKstw`0w}_W|Gp0uK}}[w[{m~}p0p|Kr|oc~op0pL@pLI`^blGbl0OQx_CpxDA@MCDp0~o{Wg~}nGap0SrdmehnF`XWBXP0_w~o{~P0~~wgmwks|_Xp0_W_}~{}~}kkp0{_~k}o`0}o}O{~g|P0@@ChOp0`B@@B@r@pnStiP0Nso|}FlGGs|\B`0hOCh~Cr\sdMq~ZZ# CI#!0Wu|oCq|GGp\Gcp0z_kR|mkwvooS~`0W}}}[u|_W`0ow}~om}omP0_i_W{_~p0]o}G_p0cxg\{Gyo\s~P0w}_w}}_w|~op0xNC|Og}~os~p0BPLGApHb@ZF0~MzO_wgcup0Ap|Ny{Osl}Ep|`0nNstNc|zocjp0_u|_Og}_w}~Wp0u}mkmmW~o}p0k|_s~_K}~Oq|0~_w||Oz~op0Oy~_cx]MSt\oip0@ABH~OKp|O{p0Sw|OphP@LcHp0W{sv_}Oq|OCp0_q|_ChNAPLB`|0w_{e_wvS|]_p0}[Vg{ZoekZwhn0O{|o{~g{_wp0~Oc|~os~op0}}OslGy~Ocp0IyNcBp|[b~w}P0vIZD}DQB`hd[R0ApLB@P@@@@@`d0~Ns{o_Vs|wG`0Cx\C@PB@pDC`l0~}wuwo}~p0vicpfOB`hkZ{z`0w}o[fok^wmp0slEq~OgxOq|p0u_s}__s}Ks}P0~ocqt~Vbph|UWP0FLsdXJJhjfHUB0@A`XEE@mDUTHU0Cp\G@xFA`H@@`0~Og}o~wxG`0C||{fp|C`D@dop0}[g{_]~z`}v~p0M~uwjknpj_^~mp0Eqn[mqm{VumwVp0~_g}O{~oog~~P0zgKrXuHcTSFq`0_}_w_{~[p0}_Wp{Oap|oKp|0Z]J@F@B0TD@ED@D@@A0V@@@aPD0G`xN@hG[QlA0g|vUrkzZ_KFs\P0_w~gr~]p0oZ__U}[{nwmp0njgil[WWGvtwp0Zv|[GtTMmR|jl`0~_Osx^OX|}{p0q`JC`pGA}~}p0Ms|C@hmoP0z}_{__vp0lGCp|OcX~Ocx0BHT@@@@@@`AH0@@@DL@`M@AA@@`0@@@@@H@@@@jBL0D@BA@PDC{AQbP0{~gu{n]K{j_p0n}o[v}_{|okp0wu_}~o~`0_U~mg{op0gpj[Cohom{p0]~_oo~p0oG{noo_p0@@@CBsnUk\wz{p0@@A@nO^mo}p0@@@@@@BxoWp0@B`@@@@@gG^n`0@@@@@@LEGO{p0@@Dacoz~}p0o__zW^{op0s}_Ss~o_u|P0I]U~g~J|[p0_s~w||_OpZZ@A] Logicos Ile 30 Aou Aa 23:00  XAxtel-3.3.0.orig/exemples/madonna.vdt0100644001424500142340000000624106703332527016261 0ustar ericperso@A AA( BT!"#BAU$%CAN&'FDAG()*+,-./0EAE123456789:;FAG<=C>?@CABCGACDEOFHACAGHLIJKIADLMNOIPQRS'JADTU VWXYZ[\]^_`abcdeKADfgh ijklmnopqrsLADtuvwxhyz{|}~) C!"#$%&MAL'(')*+,-./0NAK12 3456789: OAC;E<=>?@AB CDEFGPACHIDJKLMNO CPQRQACSTUVWXYZ[\ ]^ _`abRACcdefEg h Ci jSACCkHl DmnTAO].op]'qUArsLtuEVAuvwSWAxyzRXA{|}R(@)c# BI#!0X\M_OGwp0|p|otp0^o}{z0~f_oWkgp0}GC\Aop0~J@`P0{o}Op0WKhP0}kp~oKs}|}p0|Cq~OstG{p0s|~nkxjoVv~p0D@@@`@REQRkWkP0Gp|C@p@@rOA~`0s|Gp0}~}zjnxp0wou~Wp0_c~{op0{~^I@pgnwvp0`P@@@@B`|GbxO0{uynGzp0_e|_C`zOCx`0]ZiE`lNApL0{Vwz]wu{{}zp0w}W{}o{op0Gq~_cxG{~_g}p0f|kH{MOdxnOzyP0w~_VwVctC]Hp0GLsDxOCxOp0_w}_w}p0`HCpOp0M`lEAbvw~p0v~{_p0|Ow|_{p0VK~O]xwsp0}_k|p0u|OIphcFpNWbxP0|_q~oCp0_}_|p0izLPJaPcEHgHq0_s~OUpMPR0}{|geLCtt0w_y|OBp0W{~Ok}p0y^Kb|_kx~_sx0IP`ET@BAHHR`B0GplKaT@bJPRAB0|Sq\SP0_{}_ox}_gz0JfhtKi{_WzWp0AXFbzc_]|ep0|s{}s{G|p0O{|o{o{`0hPBHHA@@P@`@H0Bj@AB@HD0op]RAPED@BBD0WvvoJiHI@`0~~{]UKp0_o]}m`0k_}}z{~p0}{{k{{owp0{{w~z{wk[`0o__[{wjkP0wwO}o_p0uw{w~{p0~qy}ug^Y_ep0ou|oA|NqKIOJ``0m}~wp0_k_]_{p0i}Cx}OsOfOp0o{~o{~Os~0@@@@@@@`@H@@Ap0@@@@@@@@@@CPp0aAF@D@D0wUXcI@D0m~vvRuT@@`@@@`0^}^}uw|oo}kp0udDDqJcB|osuP0Gp_BTRh@jjhShP0~~_{}_APMC@P0RzW`~O{o~Oq~p0tNg}w~~s|_Ip0_s}O{_~_sp0oY_w_w~[y~p0Os|~Og{~{p0Gc}p0{[kp0|Jc~mop0@@@@@HC@xOc~p0@@@@@@@@@@U_p0@@@@@@DM_p0@PTKO~{_spp0t~C`LC`~Os~`0~O@@@`T@B@@@T0EDFPT@@@@A@PHZZ# CI#!0QT@aD@DD@@DA0o{[uwwm}{P0cMQxJCPvLclz`0{~w}~}wJr|qEP0_}_}oP0g~{o}nwq}~0x^Gq|NCpxOC`x0}_p|C@P0|Ocxop0NCy_sSp0@@@@@HC@@@B`qP0Oiy^Wa\oIX|fA`0x^st]gIr}gjz~`0DQdYFPhYBQhPJ0WdmoByhUFQTnj`0~Ocx|Mc`lXA``0Vlw`0xN@`pNB`tNBpJ0CpD@@@@@@@@@U0|0z@@@@@@HB@P0~Ob@@@@@@HB@A0B`XR@`DD@`DH0n_rZnCFt]ccpl`0JADeHRJI@T@@@P0MD`@TIJBd|jICP0ow}~_k{~_cy|0~im0zm~u{w}}jEp0RKIXjW[mo~{A`0P@M@@R@tFjDpP0zKB@@``YLq\nUP0@@@@ACc\LFB@P0@`@D@A@`HbA@P0@P@A@pXJAS@DD0YNC@`0@@@A@`HA@P@AF0SZtoWs}_O|sp0DBStO|~s|~P0~Ocx~Ocx~Ogx~0s~_{Ovz[Kp0b~S}o_p0ZHATGxBP@\Cpz0hP@@xABDVTHL0m@l@L@tB@GhV@p0WVn{TqZsRaM@BP0VKTiVWOsumNnJ`0E@XF@@@B@@@A@P0]wMOQ`]FSdPNG0_k|}_owhYp0~Osx~Os|~Os|0UPmWBbUEEPYQD`0U_zimeVXiajiP0W_^uruVef|~jC`0_}_wSS[{~_p0kKO}}p0xCwwp0{sC|_p0oMYSsWW}kwo~p0@@@@`DApBNcZ}0jyuOKplJVpHRA0Id@djJf`Dh@@D0@@C`XgD\At0@PFA@PDA@hU@@`0GCe@@PDB@@@@`0Ou|_OslhHQ@PBP0Os|Os|Os|`0ERHJBPTRAPdbDp0vgVon[UWv_p0eUtsKwp0`DCPtNcpog~p0E@PHH0HAdHJX@pP@D0@PDAHxlCBpmwgp0Iqp0@LB`pOC`~OC|~0@@HBA@PD@@E[}p0@PhDBplW_p0@@@@@@@@@@DCAp0@@@@@@@@@Oop0@PLCAp|Gp0_}kkp0}y|]Wp0xNCp|_o{~w`0}m^p0CPlGAqTCBPDA@`0}}}v_WWp0@P@B`HB@`HC@p0Wwnnorm]Jy|mGp0~u_~o__p0pNC@pHB@D@AXbP0KP\RAUTECALIWp0~wwo}pZZ@A] Logicos Ile 31 Aou Aa 11:11  XAxtel-3.3.0.orig/exemples/atari.vdt0100644001424500142340000000172106703332530015734 0ustar ericpersoW         GP/gQ               UGAWD_?Y___' __?Y___' ^__?Y___' G^__?Y___' _G^__?Y___' __G^__?Y___' \\\D\\\Y/# SPP\\P$LZEZAPY,'#Z#Y#! PXT@h@# CI#!0@@@@@@@@@@@CGp0@@@@@@@@@@DGGp0@@@@@@LO_y{p0@@\_{{{pa`0~~Osp@@@@\0@@@@@@@@@@DOKP0SE@]MT Q U R V S W XKD_\XKDP\XKD\\XKD_\VTC0P !' 0 ?! P T!P _' 0 T'P ?! P T?! P_' T_% P? T5 _BPPFWWB\FXABN{WABN{VABN{UABN{@h@# CI#'0@@@@@@LOOR@Ap0@@L___XhP}~`0o~|@\{o~xCp0~LDO_lDp0F{`GO{|0|NC@`0@@@@@@@@Ab0@@@@@@X`@@D@t0@P\h`@H@H0|`DFV@DJ0KwsBGw[AB0xA|TtP@PXP0Pd@SNL0pXC{[0~O@@|OC`0@O|0[_|0x`_@P0Mg~~t@_CPLA0@LCEPCO}Mypp0@@D~`@Sp`0@JA0@@@@GBI@PD@bG0@@@@@pPHB@`D@p0@@@@`TDaHREA`0@@@@DA@PDA@Px0@@@@^DQD^EAHQ0XAB N{XKD\XAB N{XKD\XAB N{XKD\XKT  \XKT  \XKT  \XKT  \XKT  \XKT  \XKT  \XKT  \XKT  \XKT  \XKT  \XKT  \XKT  \XKT  \XKT  \XKT  \XKT  \XKT  \XKT  \XKT  \XKT  \XKT  \XKT  \XKT  \:jCRKT ZQDV _RKP PDV _ P ODV _ P NDV _ P MDV _ P LDV _ P KDV _ P JDV _ P IDV _ P HDV _ P GDV _ P FDV _ P FDU _GDU _HDF]~_GDMU COURTOISIEKDDV _]ID@V 52, Av. Aristide BriandJD@V 92220 BagneuxMD@V TBel:(1) 45 36 01 02ND@V Fax:(1) 45 36 04 05OD@V TBelex: 306 022PDDV code: COURTOISIE@h@# CI#B0@@@@O``HB@`HB0@@@@CaD`HB@QC`0@@@@@`JB`hHB@`0@@@@Ap`HAp@HAp0@@@@@hHB@hJB@`0@@@@Cp`HC``HCp0UC@]W Info BedDiteur . GUIDEVC@]W Plan d'DaccAes . SUITEWC@]W Sinon .D SOMMAIRE@hxtel-3.3.0.orig/exemples/arkanoid.vdt0100644001424500142340000000503706703332530016430 0ustar ericperso@A # CI#!0UzmWju^k@`0}UjeVjUZh0yTjERhUJ`0@Cq~s}wx|0@LOC`dGC``AA``0@@LGAp|OAp\C0~_ygf@@X`0~_ygF@@X0n_y{`F@@X0s|_Gp|OGq|p0@@@@@@@@@@LGAp0@@@@@@@@@Op0@@@@@@@@@LC`x0xNC`xNC`xNC`x0xNC00Ap\C0Ap\GAp\GAp\GAp0^giz^giz^gX|0^giz^gh@_t0@Ow}@Giz^giz^`0^giz^giz^giz^`0@@@@Aq|Owqy^p0@@@@pC0@@A`Yv]gYv@GX0@@@L{Nsl{@s`C0@@@@xOc|}Gjz~`0^giz^giz^gX|0@Ow}@F`tFcQhM0FcQhMAh@_t0@Ow}@CPZMF`tF`0MF`tFcP@_t0@Ow}@AhtZCPZM0ZCPZMF`@_t0AA WA) CB3 4 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 4 5 6 7888:8898888888888888888:889888; 6 5 4 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 5 4 3)cTa@U5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5) CCcSCOREDbU+,,,,,F- A. /00000F1G 2P 0000ScU$ $ $LcLOGOEBET!"#FQ!"#CU!"#GR!"#ET!"#FQ!"#CU!"#GR!"#ET!"#FQ!"#FBFQ!"#CU!"#GR!"#ET!"#FQ!"#CU!"#GR!"#ET!"#FQ!"#CU!"#GBCU!"#GR!"#ET!"#FQ!"#CU!"#GR!"#ET!"#FQ!"#CU!"#GR!"#HBGR!"#ET!"#FQ!"#CU!"#GR!"#ET!"#FQ!"#CU!"#GR!"#ET!"#XA@U*C)('P&             WP$ $ $ $ $ $ $ $ $ $ $ $ $ $ $   $ $  $  $  $  $  $  $  $  $  $  $  $  $ $ $ $ $ $ $ $ $ $ $ $ $ $  $  $   $  $  $  $  $  $  $  $  $  $  $  $  $  $  $  $   UAF= >U`F= >UAF? @U`F? @UAFA BU`FA BUAF= >U`F= >UAF? @U`F? @UAFA BU`FA BUAF= >U`F= >UAF? @U`F? @UAFA BU`FA BUAF= >U`F= >UAF? @U`F? @UAFA BU`FA BScU@$G$@$G$@$G$@$G$@$G$ XA@U*C)('P&            WO% %  %  %  %  %  %  %  %  %  %  %  %  %  %   XA WU% %  %  %  %  %  %  %  %  %  %  %  %  %  %   XFWR% %  %  %  %  %  %  %  %  %  %  %  %  %  %   WR% %  %  %  %  %  %  %  %  %  %  %  %  %  %  %   QHOGAME OVERRIDimage courtoisie00] Graphix Ile 15 Mar Aa 16:36  XAxtel-3.3.0.orig/exemples/fruits.vdt0100644001424500142340000001513606703332530016155 0ustar ericperso # BI#!00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000# CI#!00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ZZ (@AAp#@FQ 0Ep#@e{MRÿØÿàJFIFHHÿÛC  $" &0P40,,0bFJ:Ptfzxrfpn€¸œ€ˆ®Šnp Ú¢®¾ÄÎÐÎ|šâòàÈð¸ÊÎÆÿÛC"$$0*0^44^Æ„p„ÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÿÀð@"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?Š–Š*QEQK@ E-(œÒrKpb¦HKc'J•-ן—?ZËÚWÒ’¯uëŠk[zfmä;2¥`ÛúqQ´L¼‘ÅTjÆAfGE- „Å¥¢˜ Š)h ¢–Š(£¸ ¥£´”´RÐQKŠ((¥¢€ŠZ((¥¢€ŠZC@ E-´R¢ŠZJ\QF 3ÔÒ“²¸]ÜÄÕ¨¡ éDQíV®IK]JŒo«T qO˜À¤Ï5‹“5Hx¥Å3v[ny§r)©…ÛMdéÅ•Jï¢~5bɲƒýž+ ›¤£ŠR8¦£dSë&5Fïõªì¥e88Ï8§Sê*'*ÍòýÑüXëY½‹[•æšX#f@K…ýMAd8isœæ®î pBg°=j ¥ùòஈUóß@±,Š‚<Œ:dQ<|€ã4Ôfá€cŒTé9çŸz‡v=äÊr´ê¢fi¬;øñ(oï þ5¹1ùk ýó*¯÷WŸÇšÒîOR²µ*]èW&‘O5ÓbÛ¾„¯ó¾ü}©„’y$ŸSR.)‡ƒI2¹RØ|C,kÁ`¦vl“ÀÇjÆSƒ[:|ê `ç#Û­8ÚúŠMÛB³¡SÍ1¦ÿApz¡ÇáÚ¬\…WÊœ†çéYw,A tn´ºØ%¬nDNy AÒŠ² ñR#~¡ìñPÑ¢dåRjþ“±®¸É =ë+5,´Nx"’уÕXÖÔcRË"¨à⩎ÔTßmYb(ë÷ºŸz‰:Ó“WÐ#¶¥Î (_¸>”Uœãh¥¢€ŠZ(*(¢€ Z( n†bÐÔv’l“¡«.øÙ}Eg粨®3v'íVGJ˶Ÿzõù‡Zщ÷(Ϲü†˜üT~Jî, 늖Š^¥Ü„¹P26ô#¨÷¨]Œ®cuã$‡Ö®;ÒÁ9#šN7Ôi‘GÇ÷OééSb€(4Þ‚¸SIàÒš‚y„jM!^ÄwºN=O ®~i|É™údç§s—Œ«6Âܱ=‡¥g2Ûƒ…/!ö®šjÄ.䓽:A†áJCM­Û$F¥4ÁN©hÕ=42n:T"¤@sÒ¥”‹$õ'½Sœ,âŽjÔŒ` H"ó-îŽ?„üèŽâ›÷J#¥-"Ó±Z34Š)).jͪ+±,pª¹«ß4r¯}»‡áS-…rÒH¾k)P?_Ztc­Cà·­ZrÂ¥"›²,ÀÔRÑZ˜ ¢–ŠJ1KEAE%¤ÒÒR Ôâ€Tn“Ë—#£sVÌ€v&£˜¬±à«àÔ9Eõ •b£:ŠÕ·¹VQÍb0u?tÓ☩ààÔJÕÒ$›…Hk"Þô†àÕĸõãb²~cR. 3Ï JëHÓ ›v*è›u5¤rqTeºÁÂò}ª…ÅÔ™ØÀ¨>µJ Žåé5<±X“põ=ênBî bx…QŽN0ëÎN)fl¦W-·¿¥l ‰kRÕÈCØlg¯5N7è«…SéLƒ÷’|çŽäÒ*{õÍRÓB’/˜’H¹9ö5›4{$*9ÇJ´¬ÍîNãèF 6=Ï),Bžþµ£b±\Fãª0ü)všÔp¹,YOz§9O0‘ÓùÒ–šŽ/¡i»­=Ü.Ò£~íß}h’òV^6šÎÍ•r&|ÖºˆìˆîÊXÖjÒ*úšÑyG”àtâ­hLÙ)ýª5éN¦Ð´†ŒÑÉè3ABU½<´ü ßJ#ÎK|ª:ŸéWÐF–¸El¹ç<ð*dúAÖÛèx©Þâ;Dò]‡ =*($åU“.¿/\gÒ³®fi§w<zzS‰2eñªßê†>µr+„”à#¨jÂŒÀàÕû‰ÒhÓ †ÇQWb._óá'jgëRV 3Ƶm¿w'”r‘‘íHeŠZ\QŠ©š3MȪ÷2ç÷kÓøªnšà±Ä}=icç95^3ÍYB¿c6ÄÉð⡑ƒš™ldjœË) 6g8¬âµ$|r<ÔßgŠqÊàúŽ*¤PÈ9#~àdqDôÙB{y-ùûÉëQ,ì½ ¶¤¦¸¬[¸„O…œÕÓ—>Œi’-ô«üT¦úGÈÍTU_â'è)ïÆùrEkÉŤM˜'5d,r 1ëTAD ˜÷ô«/ɺ0~™ªW±NÅvQ°ëƒš’)Il:®\·Þê)ÊØ"‚–¨·y ¢Œ 2HéT{U›‰Â[©à Õ@j¬Jv.Zí ¹ã9¦Ï1Î ’A#Ú¡I0 ž©¥ùÇ} N¯Fg'v[Ž@`Ø®i®GB¾€Õuù› • ›k¡ õ<¬kbG;"ŒÏ"¤”yQIÁ þtC3¼¼làp5"©q»‡¡¯m á$S„~ô{ ±Æ1Vc´…¸æ6#†ÎA5^âmÛk¡ Êö&i¦P «=¨ÍHê\äO°¦˜¤”oÊ´º$cTp8a•ôÎ)þSylHÆ9¨©§rYgÍWu íOóXD %@|eyíP¬a2ª½2J{3GeC±båRÖ¡qe.11!ã8Æj®iK1]»‰_JmZB¹4$&¯]Ù´0yˆû”ñ“Ö³UŠž*ÒÊÓpNJ¯ šWBê ÒÓÆgcŒ÷¬µ8<ÖŒw äðKƒ•#µ5¨£¨ô´ Èi0¤úUC“×½M!ùqëQ5d r68©cz®*D5-\CÓÒ¦?TFÆ*PøÅa$•@N:TñÂxb0=*¨œj{ß)R0E8ÅnÄó¤I´Í,% •Ϲ=)—r™%ëÀ¨âƒŒñ]ŠÜÒ1аmåÓúUY ‡*ǧ§zº·B(Ï“ëT%}ížõ¦ƒ‚rÇ´ ‘6•^F?:Í«¶S"‚¯Œö¡nSZå;æ%F)â.8lÓîÑVs±Hž=j4nx¡‚­ÜÙϵW­fÀ*S;‡µU ±ÉÎH1K™$K)ÒÐØÜp03Ò’¬‘ˑҤPIä“õ¦/Jzš†k·- ÀÂŒµf&8 óþM¦OÖ¬Äù#±†²:giuSÓ5!”²aù±ïMW^:dv#ûÒ ˜S4­rf®… œÐT‹u‘×óªÒÂ=j…ÁhÇZ„¹ŒÔ¦Ü2ŒQØu5J‚I9¤®¸«+¶YûV-à1Éö¦I9#å'8ü1Qv qNÀJ`b›ÔzT{#x*|V•œÑýœ†ü©‚å|¶Œ 8<)ˆÏ#øœG’W'·±£‡áŽ?º¥0õ¤2D!äù”|ƯÁm¶eSò†éšÍC†´á’Œ/Ì0wzcÒ€5è rõ¥Å`IÚ£ÅI'Jeb‚["”pii)’H­Ž´¾gjˆœTnÆ—-ÄX3b¢’~8<š„šmZ‚…Í(<ÓiEYiŠX÷ ÞŸSOI™4Ni•Ç$lÜ. ¥BO˜ŽÕ=——æ ÈÇ­QÁ“¯z<Ç{h>7“ø{Q8T*x,Ú®Q‚n/Ó¥'˜ÄòM&îFä‘Âä>†¬í*ª\d)䊆&<ò:UÅÃçå’ycÓ“¹²¥ó¬åÔíV9Ç\S¨0;ù£ró·kAâÝÀúÖkÆëÔä{wªŒ›1œ9XÌ`:Ó¦’HÇ¥´ìH­SÆý?Ã5X‘i5 ÆFŠ9aN@Çù5b<Ð\V|-ŸO­^¶ÀpIõŒ‘OT-Ò2ò¾™¬»°ÅA#ŠØ®÷Ý&àà  zÕX#þñ:ÇZPijr6e“ŠY«aI>¦¬Ín>_æM2[GHÃãørÜô®•$ÄV¢Šz&þ^Õbvo“ñ5am×9ffϧ,qPJW`¢¹ÝFÞ€Dm"aÁu?˜¨g‚DùŽwaýjГ'Û5 lýH£žKp2ÇZ¹_JSn¦AŽÔél°\/™NÞkkÝ\ uåTžàRÒ‚dAç"ŒSŒŒT*jŽAÜVrCsIšni «±‹SÒITXJ(¢¬ ¥¤¢€—4ÚZCNÃÕ°ÀÒùÈÏ£¢‹ãËÆiE3½HK4†¤ˆx«pç¹ Û½S^µ:‘ÇNõ›:u&ÈÎ@#±íTf‘PÊ„“Ò§VP£­úU6ˆ»’[‚xâˆé«"¢º² Š ‘V–ÜŽù§ù2)º‰¸÷)N=ªá´ÏAJ¶N)Á£ÚD±Z7ÛבO–?1Èô¦J[kŒÚš(²zš§rêpÇ~jo(®2;*¬ W¡Áõ«‘Kü'v"¡¤idÆMAÆ|cNìíŒF“ÔŠÚ’I(8=r)š†œ%]È>aÓÞ¡IBVg=H$Îr¬ÚG’[ðÉ!db`Ž¢®Â› Ús÷L‡Ÿ•j»˜ u©$nÆ–Ñ7H@+(èÏ–Bç­,d ·uðuCiW94o 2b¹SŽ è}éÉ–c9ÆGzxÇ;©ï­^5,¹dýEV·—ËÈ"¶Œ¯±jæ]‹ÔÕ2rzÒË!•ù<*«a0 ÀFWÝ3Ó «r¾Ô$uíTÕy­i® Oo3&@î1[zn~ËÏ÷Ž+&ÒÒIØmØô¿kj‹ÑZÕçH¦‘S”¨ÙqXÚÅ‘L"¤4„SLŠÓJÔ¤RT˜bšF*R)Œ*“†RÒS£o¥S%jÇOSŠCH*7:…˜_‰CÇÔVlGšÑ³oœVvÔÙ=G ó1Š/ DTõ _ 7f«J3š™®Ur\¹Žt/σڤÅ>`œzši­¯s(­Ó”óM¥™H±sšÐ´—5–¦¤Y ô8©N̶®;nÀ»|¬};ÖlTý)’ÌÌ959j­ÈÛAÝ8à=M6”R)Fxõ«pï`U9n·¿¥g}KRй ®Ý².)Y<£¹*jX‚²‚qžôKÛòþUrŠ”lÌï¨‘È XR+8¶Ù>µj)3^t“‹&Q,¬›Û!y‘‘#û¿ýjÕ‘€e*à ðiF§+º3hÁÚ‚HU'€\û¦fL€ ðǸ«ZE* cüG­wÂZRK°oëÞ¥M>0y{bºHC#c]ª¸©))i†EFËV¦2Öm ¬V˜V¬¦•©°ÊäRS¨ÈæÈȦ2æ¥"ФÀ€©§D>cô§Hƒõ«½Ð%¨ìQŠ.hÅEÍP‰Ö®ÀH Õ00jÌGQ&h™¨’ž $œ©5 m…äÓä`#¬jMËB%¡?Þ?ïe6wÌ­Ž™¡NEu[DDXìRH)‘ «A4„ÓKR°\kHÆXÒ1Å,÷œ÷­:9jO·ŠÔ q@Zǘ»ˆ£&¦@A☚•Ô6Re¸¥!@”ÈHÇJ¬¼TËÅB›Ø¥fG9ù”Ò$¥ 2á€**<Òå¾â“4â¸Vžiï!ÆAâ²7Òž—ƒƒÏ½gìuÐÁšñº¾9©ø¬(%i/"bÄe‡¾{×u(òÆÄ1´RÒV‚¸¥¤  ŒROÅ&) ˆ­0ŠœŠc MTL*g ¨cE!ãIHc¦‘RbŠiŒT Š~3PQ³Ú§Ãw¤Õµa¶§AòMUÍH£³l´É ;Ò^Ì"‹ŽµÊ;sôª“‰&}ÍÓ°ô¢0»»"R»*žNhƒÅL j ]<È‹ WÍ;u4Âõ4«{ÒÑ–¤Ç–¦—ô¦p#@oPRí4»O¥;!967­(È Ž¢²—n)ÝbÜNA©BÕsdtî*ôR«Ž sÎ6Ø»œ8 RÖ{SS§L𮢠vM£€zÓPl®knd2NYIÀàT»tašÙÈ©v­\o¡ H¼ÏAVWM,¿ë뎔C«Ñä.)ªiÙV-.ðX³09…]¢’´±"QKILŠZJËÅ&)Ø¥Å#"šEKŠB´]Ó5Ž®Í4ÇRÐŒtÓ«¦:<¯j\£¹GË4žY«þOµOµ¡s<ÄOjoÙ›9V ƒÚž°Jj!r„1L8'?…Oä>cÇ¥]àt£e¨W)y>Ô¾Oµ\)íI²€©äŠ<‘W6Rl¢ÀQh}ª#µh˜é†*\£¹œ`ö¤0Ö‡•Iå \¡s;É4y'Ò´¼‘@„{QÊ;™†{R®A­aö§¬Ú…s5ýÀ5b8¥n¸ü*ú¾ßL¨€u_Î’‚fW‚ ½zÔÞUL6ÿy:vSûËùÕˆ¯äJp„zTÛ—ûËùѹ¼¿" ñÒ›½?¼¿ÓûËùШ¦ïOï¯çFôþúÿßB¤¤óûéÿ} O2?ùèŸ÷РâŠo›üôOûèQæÇÿ=þúÿÙp#@ASxtel-3.3.0.orig/exemples/iminitel.vdt0100644001424500142340000000155107240075011016442 0ustar ericperso[?32h@A e T RA$ DG$ (h0 4 XA5 G7i#457ijjhs45 M  CA%G$%* %%%***",$% MO3622 hVD#gHA]FZ G 1V @E-mail,V Internet HW]FZ G 7V @Bourse GIA]FZ G 2V @A la Une IIW]FZ G 8V @MBetBeo HJA]FZ G 3V @Automobile GJW]FZ G 9V @Tourisme EKA]FZ G 4V @Sorties, culture KW]FZ G10V @Boutiques DLA]FZ G 5FY GSpBecial MontagneV LW]FZ G11V @Annuaires DMA]FZ G 6V @Transport aBerien MW]FZ G12V @Autres thAemes hD`gPBcode du service :.U gD`` Z M]G Envoi UHTapez votre question puisZ ] Guide V D. L'annuaire du tBelBephone]FZP CPAGESJAUNESV D. L'ACTUALITE DU MINITEL W\]FZ GEXTRAV F (c)P france telecomP 2000X^FFin V @Cx/FinPS.TPSPSG !!0EPSG......................PSGxtel-3.3.0.orig/XTel-msg.ad0100444001424500142340000000570407241352367014254 0ustar ericperso! $Id: XTel-msg.ad,v 1.8 2001/02/10 23:55:35 pierre Exp $ ! Messages XTel*videotex*label: Vidéotex XTel*teleinfo_ascii*label: Téléinfo ASCII XTel*teleinfo_fr*label: Téléinfo FR XTel*envoi*label: ENVOI Return XTel*retour*label: RETOUR PgUp XTel*repetition*label: REPETITION Insert XTel*guide*label: GUIDE End XTel*annulation*label: ANNULATION Delete XTel*sommaire*label: SOMMAIRE Home XTel*correction*label: CORRECTION Ctrl-H XTel*suite*label: SUITE PgDown XTel*connexion_fin*label: CONNEXION/FIN XTel*raccrocher*label: Raccrocher XTel*bouton_fichier.label: Fichier XTel*bouton_compose.label: Services XTel*bouton_enregistrement.label: Enregistrement XTel*bouton_procedure.label: Procédures XTel*bouton_proto.label: Téléchargement XTel*stop_tele.label: Interrompre XTel*sauve*label: Sauve l'enregistrement XTel*charge*label: Charge l'enregistrement XTel*imprime*label: Imprime la page... XTel*imp_ascii.label: En ASCII XTel*imp_videotex.label: En Vidéotex XTel*terminal.label: Terminal XTel*quitte*label: Quitte XTel*nouveau*label: Nouvel enregistrement XTel*demarre*label: Démarre XTel*arrete*label: Arrête XTel*a_propos.label: A propos... XTel*compteur_lecteur_titre*label: Compteur/Page: XTel*compteur_lecteur_caractere*label: 00000 XTel*compteur_lecteur_page*label: 001 XTel*titre_arret_lecteur*label: Arrêt lecture sur : XTel*type_arret_lecteur*label: Pas d'arrêt XTel*arret_none.label: Pas d'arrêt XTel*arret_form_feed.label: Form Feed XTel*arret_suite.label: SUITE XTel*arret_suite_ou_ff.label: SUITE ou Form Feed XTel*quitte_lecteur*label: Quitte XTel*boite_saisie*ok_boite_saisie*label: Ok XTel*boite_saisie*annule_boite_saisie*label: Annule XTel*confirmation_sortie*label : Etes-vous sûr ? XTel*confirmation_sortie*ok_confirmation_sortie*label: Ok XTel*confirmation_sortie*annule_confirmation_sortie*label: Gasp ! XTel*message_erreur*ok_message_erreur*label: Ok XTel*btn_sauve.helpString: Sauver un enregistrement XTel*btn_charge.helpString: Charger un enregistrement XTel*btn_imprime_ascii.helpString: Imprimer la page courante en ASCII XTel*btn_imprime.helpString: Imprimer la page courante en Vidéotex XTel*btn_quitte.helpString: Quitter Xtel XTel*btn_nouveau.helpString: Effacer l'enregistrement courant XTel*btn_enregistre.helpString: Démarrer/Arrèter l'enregistrement XTel*btn_lecteur.helpString: Ouvrir le lecteur d'enregistrement XTel*btn_direct.helpString: Composer un numéro direct XTel*string1: Sauve l'enregistrement XTel*string2: Charge l'enregistrement XTel*string3: Ok XTel*string4: Annule XTel*string5: Erreur: XTel*string6: Numéro à composer : XTel*erreur1: Aucun MODEM disponible ! XTel*erreur2: Erreur de connexion MODEM ! XTel*erreur3: Pas de device correspondant ! XTel*erreur4: Erreur connexion PPP (timeout) ! xtel-3.3.0.orig/XTel.ad0100444001424500142340000001441607213026125013455 0ustar ericperso!!!! !! !! Fichier de ressources pour XTEL (Version Athena) !! !! Pierre Ficheux, Lectra - Systemes R & D !! !! $Id: XTel.ad,v 1.11 1999/09/14 11:49:38 pierre Exp $ !! !!!!! XTel*serveur: localhost XTel*commandeImpression: pnmflip -r90 %s | pnmtops | lpr -h XTel*commandeImpressionAscii: a2ps %s | lpr -h XTel*petiteFonte: False XTel*nomService: xtel XTel*font: -*-helvetica-medium-r-*-*-14-*-*-*-*-*-iso8859-1 ! Type d'arret: 0=Pas d'arret, 1=Form Feed, 2=SUITE, 3=SUITE ou Form Feed XTel*typeArret: 0 XTel*Text*width: 180 XTel*Text*translations: #override\n\ Down: no-op() \n\ CtrlM: no-op() \n\ CtrlN: no-op() \n\ CtrlO: no-op() \n\ CtrlY: no-op() \n\ CtrlJ: no-op() XTel*Dialog*Accelerators: #override \n\ Return: set() notify() unset() XTel*forme_base.background: gray80 XTel*bouton_fichier*background: gray80 XTel*bouton_enregistrement*background: gray80 XTel*bouton_compose*background: gray80 XTel*bouton_procedure*background: gray80 XTel*bouton_proto*background: gray80 XTel*bouton_aide*background: gray80 XTel*popup_impression*background: gray80 XTel*menu_terminal*background: gray80 XTel*popup_saisie*background: gray80 XTel*popup_sortie*background: gray80 XTel*popup_lecteur*background: gray80 XTel*Information*background: gray80 *selFileForm*background: gray80 XTel*paned_base*showGrip: False XTel*pem*background: gray65 ! Boite Haut XTel*boite_haut*shadowThickness: 1 XTel*boite_haut*shadowColor1: #d0d0d0 XTel*boite_haut*shadowColor2: #606060 XTel*boite_haut*borderWidth: 0 XTel*boite_haut*background: gray65 XTel*btn_lecteur.sensitive: False XTel*glue.height: 5 XTel*timer_minitel.clockForeground: green XTel*timer_minitel.timerForeground: red XTel*timer_minitel.font: xteldigit XTel*boite_haut.la_cassete.shadowThickness: 0 ! Boite bas XTel*boite_bas*background: gray65 XTel*boite_bas*borderWidth: 0 ! ! noms des boutons du clavier minitel ! XTel*menu_clavier*SmeBSB*sensitive: False XTel*menu_clavier*blanc*height: 20 XTel*menu_clavier*teleinfo_ascii*sensitive: True XTel*menu_clavier*teleinfo_fr*sensitive: True ! XTel*MenuButton.borderWidth: 0 ! XTel*menu_proto*blanc_tele.height: 10 XTel*stop_tele.foreground: red ! XTel*imprime*rightMargin: 12 XTel*terminal*rightMargin: 12 XTel*menu_fichier.translations: #override\n\ : PopupSousMenu(popup_impression) PopupSousMenu2(menu_terminal)\n\ : PopdownSousMenu(popup_impression) PopdownSousMenu2(menu_terminal) XTel*popup_impression.translations: #override\n\ : PopdownSousMenu(popup_impression) \n\ XTel*menu_terminal.translations: #override\n\ : PopdownSousMenu2(menu_terminal) \n\ XTel*quitte.foreground: red XTel*menu_fichier*blanc*height: 10 ! XTel*menu_terminal*videotex*sensitive: False XTel*menu_terminal*teleinfo_ascii*sensitive: True XTel*menu_terminal*teleinfo_fr*sensitive: True ! XTel*arrete*sensitive: False XTel*lecteur*sensitive: False ! ! Lecteur ! XTel*forme_lecteur*vertDistance: 10 XTel*popup_lecteur*iconName: Lecteur XTel*Toggle*translations: #override\n\ : highlight(WhenUnset)\n\ : unhighlight()\n\ ,: set() notify() XTel*suite_arret_page*translations: #override\n\ : highlight(WhenUnset)\n\ : unhighlight() XTel*ff_arret_page*translations: #override\n\ : highlight(WhenUnset)\n\ : unhighlight() ! XTel*forme_lecteur*shadowThickness: 1 XTel*forme_lecteur*shadowColor1: #d0d0d0 XTel*forme_lecteur*shadowColor2: #606060 XTel*helpBackground: yellow XTel*helpFont: -*-helvetica-medium-r-*-*-14-*-*-*-*-*-iso8859-1 XTel*rewind_lecteur*fromHoriz: zero_lecteur XTel*stop_lecteur*state: True XTel*stop_lecteur*fromHoriz: rewind_lecteur XTel*play_lecteur*fromHoriz: stop_lecteur XTel*wind_lecteur*fromHoriz: play_lecteur ! XTel*compteur_lecteur_titre*borderWidth: 0 XTel*compteur_lecteur_page*borderWidth: 0 XTel*compteur_lecteur_caractere*borderWidth: 0 XTel*compteur_lecteur_titre*fromVert: zero_lecteur XTel*compteur_lecteur_caractere*fromHoriz: compteur_lecteur_titre XTel*compteur_lecteur_caractere*fromVert: rewind_lecteur XTel*compteur_lecteur_page*fromHoriz: compteur_lecteur_caractere XTel*compteur_lecteur_page*fromVert: zero_lecteur ! XTel*titre_arret_lecteur*borderWidth: 0 XTel*titre_arret_lecteur*fromVert: compteur_lecteur_page XTel*titre_arret_lecteur*fromVert: compteur_lecteur_page XTel*type_arret_lecteur*borderWidth: 1 XTel*type_arret_lecteur*fromVert: compteur_lecteur_page XTel*type_arret_lecteur*fromHoriz: titre_arret_lecteur ! XTel*quitte_lecteur*fromVert: titre_arret_lecteur ! ! Boite de saisie ! XTel*boite_saisie*value: XTel*boite_saisie*maximumLength: 40 XTel*ok_boite_saisie*horizDistance: 40 XTel*annule_boite_saisie*fromHoriz: ok_boite_saisie ! XTel*ok_confirmation_sortie*horizDistance: 20 XTel*annule_confirmation_sortie*fromHoriz: ok_confirmation_sortie ! XTel*message_erreur*ok_message_erreur*horizDistance: 60 ! Pour utiliser le popup-menu, decommenter les lignes suivantes. !XTel*ecran_minitel*translations: #override\n\ ! : XawPositionSimpleMenu(menu_clavier) MenuPopup(menu_clavier) XTel*type_arret_lecteur*translations: #override\n\ : XawPositionSimpleMenu(arret_lecteur_popup) MenuPopup(arret_lecteur_popup) ! ! Fontes Videotex ! XTel*ecran_minitel.fonteG0no_p: minig0_8x10 XTel*ecran_minitel.fonteG0dh_p: minig0_8x20 XTel*ecran_minitel.fonteG0dl_p: minig0_16x10 XTel*ecran_minitel.fonteG0dt_p: minig0_16x20 XTel*ecran_minitel.fonteG1_p: minig1_8x10 XTel*ecran_minitel.fonteG0nos_p: minig0s_8x10 XTel*ecran_minitel.fonteG0dhs_p: minig0s_8x20 XTel*ecran_minitel.fonteG0dls_p: minig0s_16x10 XTel*ecran_minitel.fonteG0dts_p: minig0s_16x20 XTel*ecran_minitel.fonteG1s_p: minig1s_8x10 XTel*ecran_minitel.fonteG0no_g: minig0_16x20 XTel*ecran_minitel.fonteG0dh_g: minig0_16x40 XTel*ecran_minitel.fonteG0dl_g: minig0_32x20 XTel*ecran_minitel.fonteG0dt_g: minig0_32x40 XTel*ecran_minitel.fonteG1_g: minig1_16x20 XTel*ecran_minitel.fonteG0nos_g: minig0s_16x20 XTel*ecran_minitel.fonteG0dhs_g: minig0s_16x40 XTel*ecran_minitel.fonteG0dls_g: minig0s_32x20 XTel*ecran_minitel.fonteG0dts_g: minig0s_32x40 XTel*ecran_minitel.fonteG1s_g: minig1s_16x20 ! Messages #include "XTel-msg" xtel-3.3.0.orig/XTelm-msg.ad0100444001424500142340000001110607241352421014411 0ustar ericperso! $Id: XTelm-msg.ad,v 1.8 2001/02/10 23:56:01 pierre Exp $ ! Messages XTelm*confirmation_sortie.dialogTitle: Quitter... XTelm*confirmation_sortie.messageString: Etes-vous sûr ? XTelm*confirmation_sortie.cancelLabelString: Gasp ! XTelm*selecteur_fichier.cancelLabelString: Annuler XTelm*selecteur_fichier.filterLabelString: Filtre XTelm*selecteur_fichier.fileListLabelString: Fichiers XTelm*selecteur_fichier.applyLabelString: Appliquer XTelm*selecteur_fichier.dirListLabelString: Répertoires XTelm*bouton_fichier.labelString: Fichier XTelm*bouton_fichier.mnemonic: F XTelm*bouton_enregistrement.labelString: Enregistrement XTelm*bouton_enregistrement.mnemonic: E XTelm*bouton_compose.labelString: Services XTelm*bouton_compose.mnemonic: S XTelm*bouton_procedure.labelString: Procédures XTelm*bouton_procedure.mnemonic: P XTelm*bouton_charge.labelString: Charge enregistrement XTelm*bouton_charge.acceleratorText: Ctrl-C XTelm*bouton_charge.accelerator: CtrlC XTelm*bouton_sauve.labelString: Sauve enregistrement XTelm*bouton_sauve.acceleratorText: Ctrl-S XTelm*bouton_sauve.accelerator: CtrlS XTelm*bouton_imprime.labelString: Imprime XTelm*bouton_impression_ascii.labelString: En ASCII XTelm*bouton_impression_videotex.labelString: En Vidéotex XTelm*bouton_terminal.labelString: Terminal XTelm*bouton_quitte.labelString: Quitte XTelm*bouton_quitte.acceleratorText: Ctrl-Q XTelm*bouton_quitte.accelerator: CtrlQ XTelm*bouton_nouveau.labelString: Nouvel enregistrement XTelm*bouton_nouveau.acceleratorText: Ctrl-N XTelm*bouton_nouveau.accelerator: CtrlN XTelm*bouton_demarre.labelString: Démarre XTelm*bouton_demarre.acceleratorText: Ctrl-D XTelm*bouton_demarre.accelerator: CtrlD XTelm*bouton_arrete.labelString: Arrête XTelm*bouton_arrete.acceleratorText: Ctrl-A XTelm*bouton_arrete.accelerator: CtrlA XTelm*bouton_lecteur.labelString: Lecteur XTelm*bouton_lecteur.acceleratorText: Ctrl-L XTelm*bouton_lecteur.accelerator: CtrlL XTelm*bouton_proto.labelString: Téléchargement XTelm*stop_tele.labelString: Interrompre XTelm*a_propos.labelString: A propos... XTelm*lecteur.title: Lecteur XTelm*compteur_lecteur_titre.labelString: Compteur/Page XTelm*compteur_lecteur_caractere.labelString: 00000 XTelm*compteur_lecteur_page.labelString: 001 XTelm*menu_type_arret_page.labelString: Arrêt lecture sur : XTelm*button_0.labelString: Pas d'arrêt XTelm*button_1.labelString: Form Feed XTelm*button_2.labelString: SUITE XTelm*button_3.labelString: SUITE ou Form Feed XTelm*quitte_lecteur.labelString: Quitte XTelm*boite_saisie*dialogTitle: Direct... XTelm*boite_saisie.selectionLabelString: Numéro à composer XTelm*videotex.labelString: Vidéotex XTelm*teleinfo_ascii.labelString: Téléinfo ASCII XTelm*teleinfo_fr.labelString: Téléinfo FR XTelm*envoi.labelString: Envoi XTelm*envoi.acceleratorText: Return XTelm*retour.labelString: Retour XTelm*retour.acceleratorText: PagePréc XTelm*repetition.labelString: Répètition XTelm*repetition.acceleratorText: Inser XTelm*guide.labelString: Guide XTelm*guide.acceleratorText: Fin XTelm*annulation.labelString: Annulation XTelm*annulation.acceleratorText: Suppr XTelm*sommaire.labelString: Sommaire XTelm*sommaire.acceleratorText: Home XTelm*correction.labelString: Correction XTelm*correction.acceleratorText: Ctrl-H XTelm*suite.labelString: Suite XTelm*suite.acceleratorText: PageSuiv XTelm*connexion_fin.labelString: Connexion/Fin XTelm*raccrocher.labelString: Raccrocher XTelm*btn_envoi.labelString: Envoi XTelm*btn_retour.labelString: Retour XTelm*btn_repetition.labelString: Répètition XTelm*btn_guide.labelString: Guide XTelm*btn_annulation.labelString: Annulation XTelm*btn_sommaire.labelString: Sommaire XTelm*btn_correction.labelString: Correction XTelm*btn_suite.labelString: Suite XTelm*btn_connexion_fin.labelString: Connexion/Fin XTelm*btn_sauve.helpString: Sauver un enregistrement XTelm*btn_charge.helpString: Charger un enregistrement XTelm*btn_imprime_ascii.helpString: Imprimer la page courante en ASCII XTelm*btn_imprime.helpString: Imprimer la page courante en Vidéotex XTelm*btn_quitte.helpString: Quitter Xtel XTelm*btn_nouveau.helpString: Effacer l'enregistrement courant XTelm*btn_enregistre.helpString: Démarrer/Arrèter l'enregistrement XTelm*btn_lecteur.helpString: Ouvrir le lecteur d'enregistrement XTelm*btn_direct.helpString: Composer un numéro direct XTelm*erreur1: Aucun modem disponible ! XTelm*erreur2: Erreur de connexion MODEM ! XTelm*erreur3: Pas de device correspondant ! XTelm*erreur4: Erreur connexion PPP (timeout) ! xtel-3.3.0.orig/XTelm.ad0100444001424500142340000000572006767375352013656 0ustar ericperso!!!!! !! !! Fichier de ressources pour XTel (Version Motif) !! !! Pierre Ficheux !! !! $Id: XTelm.ad,v 1.10 1999/09/14 07:36:10 pierre Exp $ !! !!!!! XTelm*serveur: localhost XTelm*commandeImpression: pnmflip -r90 %s | pnmtops | lpr -h XTelm*commandeImpressionAscii: a2ps %s | lpr -h XTelm*petiteFonte: False XTelm*nomService: xtel ! Type d'arret: 0=Pas d'arret, 1=Form Feed, 2=SUITE, 3=SUITE ou Form Feed XTelm*typeArret: 0 XTelm*shadowThickness: 1 XTelm*background: gray65 XTelm*foreground: black XTelm*menu_clavier*background: #986430 XTelm*paned_base*traversalOn: False XTelm*fontList: -*-helvetica-medium-r-*-*-14-*-*-*-*-*-iso8859-1 XTelm*XmTextField.background: #bcb5ba XTelm*XmText.background: #bcb5ba ! Pour utiliser le popup-menu, decommenter les lignes suivantes. !XTelm*ecran_minitel.translations: #override \n\ ! : affiche_menu_clavier() XTelm*timer_minitel.background: gray65 XTelm*timer_minitel.borderWidth: 0 XTelm*timer_minitel.clockForeground: green XTelm*timer_minitel.timerForeground: red XTelm*timer_minitel.font: xteldigit XTelm*helpBackground: yellow XTelm*helpFont: -*-helvetica-medium-r-*-*-12-*-*-*-*-*-iso8859-1 XTelm*boite_haut*shadowThickness: 1 XTelm*boite_haut*shadowColor1: #d0d0d0 XTelm*boite_haut*shadowColor2: #606060 XTelm*boite_haut*marginHeight: 0 XTelm*boite_haut*marginWidth: 0 XTelm*boite_haut*entryBorder: 0 XTelm*boite_bas*shadowThickness: 0 XTelm*boite_bas*marginHeight: 0 XTelm*boite_bas*marginWidth: 0 XTelm*boite_bas*entryBorder: 0 XTelm*boite_bas*spacing: 5 XTelm*btn_lecteur.sensitive: False XTelm*rc_lecteur*fontList: -*-helvetica-medium-r-*-*-12-*-*-*-*-*-iso8859-1 XTelm*clavier_lecteur*shadowThickness: 1 XTelm*clavier_lecteur*indicatorOn: False XTelm*bouton_quitte.background: red XTelm*stop_tele.background: red XTelm*menu_proto*blanc_tele.height: 10 XTelm*menu_clavier*blanc.height: 20 ! Boutons Minitel XTelm*boite_bas*btn_connexion_fin.foreground: red ! Fontes Videotex XTelm*ecran_minitel.fonteG0no_p: minig0_8x10 XTelm*ecran_minitel.fonteG0dh_p: minig0_8x20 XTelm*ecran_minitel.fonteG0dl_p: minig0_16x10 XTelm*ecran_minitel.fonteG0dt_p: minig0_16x20 XTelm*ecran_minitel.fonteG1_p: minig1_8x10 XTelm*ecran_minitel.fonteG0nos_p: minig0s_8x10 XTelm*ecran_minitel.fonteG0dhs_p: minig0s_8x20 XTelm*ecran_minitel.fonteG0dls_p: minig0s_16x10 XTelm*ecran_minitel.fonteG0dts_p: minig0s_16x20 XTelm*ecran_minitel.fonteG1s_p: minig1s_8x10 XTelm*ecran_minitel.fonteG0no_g: minig0_16x20 XTelm*ecran_minitel.fonteG0dh_g: minig0_16x40 XTelm*ecran_minitel.fonteG0dl_g: minig0_32x20 XTelm*ecran_minitel.fonteG0dt_g: minig0_32x40 XTelm*ecran_minitel.fonteG1_g: minig1_16x20 XTelm*ecran_minitel.fonteG0nos_g: minig0s_16x20 XTelm*ecran_minitel.fonteG0dhs_g: minig0s_16x40 XTelm*ecran_minitel.fonteG0dls_g: minig0s_32x20 XTelm*ecran_minitel.fonteG0dts_g: minig0s_32x40 XTelm*ecran_minitel.fonteG1s_g: minig1s_16x20 ! Messages #include "XTelm-msg" xtel-3.3.0.orig/bouton.c0100444001424500142340000001561106767433031013756 0ustar ericperso/* * xtel - Emulateur MINITEL sous X11 * * Copyright (C) 1991-1996 Lectra Systemes & Pierre Ficheux * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ static char rcsid[] = "$Id: bouton.c,v 1.10 1999/09/14 11:48:41 pierre Exp $"; /* * fonctions associees aux boutons */ #include "xtel.h" #include #include #include #include #include #include /* * Evenements actives lorsque la souris entre/sort dans/d'un widget */ void evenement_entre_widget (w, client_data, pevent) Widget w; char *client_data; XEvent *pevent; { /* fixe le focus sur le widget courant */ XSetInputFocus (XtDisplay (w), XtWindow (w), RevertToNone, CurrentTime); } /* * fonction associe aux boutons minitel */ void commandes (w, code, call_data) Widget w; char *code; XtPointer call_data; { Boolean flag_connexion; #ifdef DEBUG printf ("Code envoye : %c\n", *code); #endif XtVaGetValues (ecran_minitel, XtNconnecte, &flag_connexion, NULL); if (nb_services == 0 && !flag_connexion) { connexion_service (NULL); } else { write (socket_xteld, "\023", 1); write (socket_xteld, code, 1); enregistre_caractere (ecran_minitel, NULL, "\023"); enregistre_caractere (ecran_minitel, NULL, code); } /* Retablit le focus sur l'ecran minitel */ XSetInputFocus (XtDisplay (ecran_minitel), XtWindow (ecran_minitel), RevertToNone, CurrentTime); } void raccrocher (w, code, call_data) Widget w; char *code; XtPointer call_data; { Boolean flag_connexion; XtVaGetValues (ecran_minitel, XtNconnecte, &flag_connexion, NULL); if (flag_connexion) write (socket_xteld, CHAINE_COMMANDE_FIN, 1); } /* * Chargement/sauvegarde d'un enregistrement */ int Charge () { static struct stat statb; if (strlen(nom_fichier_charge) == 0) return -1; if (stat (nom_fichier_charge, &statb) < 0) { affiche_erreur (xtel_basename(nom_fichier_charge), errno); return -1; } /* Prepare l'ecran */ videotexInit (ecran_minitel); videotexDecode (ecran_minitel, 0x0c); /* Lecteur */ raz_lecteur (); lecteur_valide (True); return 0; } void Sauve() { int fd; #ifdef DEBUG printf ("Sauvegarde de %d caracteres\n", cpt_buffer); #endif if (strlen(nom_fichier_sauve) == 0) return; printf ("Sauvegarde de %d caracteres\n", cpt_buffer); unlink (nom_fichier_sauve); if ((fd = open (nom_fichier_sauve, O_WRONLY | O_CREAT, 0666)) < 0) { affiche_erreur (xtel_basename(nom_fichier_sauve), errno); return; } if (write (fd, zone_enregistrement, cpt_buffer) != cpt_buffer) { affiche_erreur ("write", errno); } close (fd); } /* * Fixe l'acces au menu de composition */ void composition_valide (flag) int flag; { if (nb_services > 0) { XtSetSensitive (bouton_compose, flag); if (nb_procedures != 0) XtSetSensitive (bouton_procedure, flag); #ifndef LOW_MEMORY if (!low_memory && btn_direct) XtSetSensitive (btn_direct, flag); #endif /* LOW_MEMORY */ } } /* * Fixe l'acces au popup-menu des touches MINITEL */ void clavier_minitel_valide (flag) int flag; { register int i; Widget w; char buf[256]; /* Valide la sensibilite du clavier Minitel */ for (i = 4; i < 14 ; i++) { if ((w = XtNameToWidget (menu_clavier, touches[i].nom)) == NULL) { fprintf (stderr, "erreur XtNameToWidget %s\n", touches[i].nom); return; } if (nb_services == 0 && i == 13) XtSetSensitive (w, True); else XtSetSensitive (w, flag); #ifndef LOW_MEMORY if (!low_memory) { /* Boutons icones */ if (strcmp (touches[i].nom, "blanc") != 0) { sprintf (buf, "btn_%s", touches[i].nom); if ((w = XtNameToWidget (boite_bas, buf)) == NULL) { fprintf (stderr, "erreur XtNameToWidget %s\n", buf); return; } if (nb_services == 0 && i == 13) XtSetSensitive (w, True); else XtSetSensitive (w, flag); } } #endif /* LOW_MEMORY */ } if (rsc_xtel.boutonRaccrocher) { if ((w = XtNameToWidget (menu_clavier, "raccrocher")) == NULL) { fprintf (stderr, "erreur XtNameToWidget raccrocher\n"); return; } XtSetSensitive (w, flag); if ((w = XtNameToWidget (menu_fichier, "raccrocher")) == NULL) { fprintf (stderr, "erreur XtNameToWidget raccrocher\n"); return; } XtSetSensitive (w, flag); } /* Protocoles */ if (nb_protocoles) XtSetSensitive (bouton_proto, flag); } /* Fixe la partie mode d'emulation */ void mise_a_jour_mode_emulation (flag_invalide) char flag_invalide; { register int i; Widget w; for (i = 0 ; i != 3; i++) { if ((w = XtNameToWidget (menu_terminal, touches[i].nom)) == NULL) { fprintf (stderr, "erreur XtNameToWidget %s\n", touches[i].nom); return; } if (i == mode_emulation || flag_invalide) XtSetSensitive (w, False); else XtSetSensitive (w, True); /* Idem pour popup-menu */ if ((w = XtNameToWidget (menu_clavier, touches[i].nom)) == NULL) { fprintf (stderr, "erreur XtNameToWidget %s\n", touches[i].nom); return; } if (i == mode_emulation || flag_invalide) XtSetSensitive (w, False); else XtSetSensitive (w, True); } } /* Traitement de l'enregistrement */ void demarre_enregistrement (w, client_data, call_data) Widget w; XtPointer client_data, call_data; { if (!flag_enregistrement) { flag_enregistrement = 1; XtSetSensitive (bouton_demarre, False); XtSetSensitive (bouton_arrete, True); #ifndef LOW_MEMORY if (!low_memory) XtMapWidget (la_cassete); #endif } } void arrete_enregistrement (w, client_data, call_data) Widget w; XtPointer client_data, call_data; { if (flag_enregistrement) { flag_enregistrement = 0; XtSetSensitive (bouton_demarre, True); XtSetSensitive (bouton_arrete, False); #ifndef LOW_MEMORY if (!low_memory) XtUnmapWidget (la_cassete); #endif } } void change_enregistrement (w, client_data, call_data) Widget w; XtPointer client_data, call_data; { if (flag_enregistrement) arrete_enregistrement (w, NULL, NULL); else demarre_enregistrement (w, NULL, NULL); } void nouvel_enregistrement (w, client_data, call_data) Widget w; XtPointer client_data, call_data; { cpt_buffer = 0; taille_zone_enregistrement = 1000; zone_enregistrement = realloc (zone_enregistrement, taille_zone_enregistrement); } xtel-3.3.0.orig/config.c0100444001424500142340000001771006703332515013712 0ustar ericperso/* * xtel - Emulateur MINITEL sous X11 * * Copyright (C) 1991-1996 Lectra Systemes & Pierre Ficheux * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ static char rcsid[] = "$Id: config.c,v 1.14 1998/10/16 08:49:01 pierre Exp $"; /* * fonctions de lecture de la configuration */ #include #include #include #ifdef USE_SYSLOG #include #endif /* USE_SYSLOG */ #ifdef NO_TERMIO #include #else #ifdef USE_TERMIOS #include #include #else #include #endif /* USE_TERMIOS */ #endif /* NO_TERMIO */ #include "demon.h" #include "globald.h" static char buf[2048], buf1[2048]; static Boolean flag_old_config; struct couple { char *chaine; int valeur; }; static struct couple vitesses_possibles[] = { {"50", B50}, {"75", B75}, {"110", B110}, {"134", B134}, {"150", B150}, {"200", B200}, {"300", B300}, {"600", B600}, {"1200", B1200}, {"1800", B1800}, {"2400", B2400}, {"4800", B4800}, {"9600", B9600}, {"19200", B19200}, {"38400", B38400} }; static struct couple tailles_possibles[] = { {"5", CS5}, {"6", CS6}, {"7", CS7}, {"8", CS8} }; static struct couple parites_possibles[] = { {"E", PAIR}, {"O", IMPAIR}, {"N", SANS} }; static int valeur_couple (couples, nb_couples, chaine, valeur_defaut) struct couple couples[]; int nb_couples; char *chaine; int valeur_defaut; { register int i; for (i = 0 ; i != nb_couples ; i++) { if (strcmp (couples[i].chaine, chaine) == 0) return couples[i].valeur; } return valeur_defaut; } static int get_separator (char *s, char *sep) { int r; register char *p = s; #ifdef DEBUG_XTELD log_debug ("get_separator: *p = %c %x", *p, *p); #endif /* Cas particulier des lignes @pipe/@tcp de xtel.services */ if (*p == '@') { *sep = ','; return 0; } while (*p && ((*p >= 'a' && *p <= 'z') || (*p >= 'A' && *p <= 'Z') || (*p >= '0' && *p <= '9') || *p == '_' || *p == '-')) { #ifdef DEBUG_XTELD log_debug ("get_separator: *p = %c", *p); #endif p++; } if (*p) { *sep = *p; r = 0; } else r = -1; #ifdef DEBUG_XTELD log_debug ("get_separator: buf= %s sep= %c", s, *sep); #endif return r; } /* * lecture des services disponibles */ lecture_services () { FILE *fp; int i = 0; char sep[2] = {0, 0}; if ((fp = fopen (FICHIER_DEFINITION_SERVICES, "r")) == NULL) { sprintf (buf, "Erreur a l'ouverture du fichier %s", FICHIER_DEFINITION_SERVICES); log_err (buf); return -1; } #ifdef DEBUG_XTELD log_debug ("==> Lecture des services <=="); #endif /* lecture des services */ while (fgets (buf, sizeof(buf), fp) != NULL && i < MAX_SERVICES) { if (buf[0] == '#' || buf[0] == '\n') continue; buf[strlen(buf)-1] = 0; /* Lecture separateur */ if (sep[0] == 0) { if (get_separator (buf, sep) < 0) { log_err ("lecture_services: erreur lecture separateur"); return -1; } } strcpy (buf1, next_token (buf, sep)); if (!flag_old_config) { definition_services[i].device = strdup (buf1); strcpy (buf1, next_token (NULL, sep)); } else definition_services[i].device = NULL; definition_services[i].nom_service = strdup (buf1); strcpy (buf1, next_token (NULL, sep)); definition_services[i].nom_uucp = strdup (buf1); /* lecture des autorisations */ strcpy (buf1, next_token (NULL, sep)); definition_services[i].autorisations = strdup (buf1); #ifdef DEBUG_XTELD1 if (!flag_old_config) log_debug ("SERVICES: %s %s %s %s", definition_services[i].device, definition_services[i].nom_service, definition_services[i].nom_uucp, definition_services[i].autorisations); else log_debug ("SERVICES: %s %s %s", definition_services[i].nom_service, definition_services[i].nom_uucp, definition_services[i].autorisations); #endif i++; } fclose (fp); return (i); } /* * lecture des lignes disponibles */ lecture_configuration_lignes () { FILE *fp; register int i; char *p, sep[2] = {0, 0}; if ((fp = fopen (FICHIER_DEFINITION_LIGNES, "r")) == NULL) { sprintf (buf, "Erreur a l'ouverture du fichier %s", FICHIER_DEFINITION_LIGNES); log_err (buf); return (-1); } #ifdef DEBUG_XTELD log_debug ("==> Lecture des lignes <=="); #endif /* lecture des definition de lignes */ i = 0; while (fgets (buf, sizeof(buf), fp) != 0 && i < MAX_LIGNES) { if (buf[0] == '#' || buf[0] == '\n') continue; /* Lecture separateur */ if (sep[0] == 0) { if (get_separator (buf, sep) < 0) { log_err ("lecture_configuration_lignes: erreur lecture separateur"); return -1; } } /* * Si la ligne commence par un '/', on considere que l'on a un fichier * utilisant l'ancienne structure */ if (buf[0] == '/') { #ifdef DEBUG_XTELD log_debug ("Ancienne syntaxe !"); #endif flag_old_config = True; definition_lignes[i].device = NULL; definition_lignes[i].speed = B1200; definition_lignes[i].cs = CS7; definition_lignes[i].parity = PAIR; } strcpy (buf1, next_token (buf, sep)); if (!flag_old_config) { definition_lignes[i].device = strdup (buf1); strcpy (buf1, next_token (NULL, sep)); } /* Stocke le nom symbolique et lit les flags eventuels */ if ((p = strchr (buf1, ':'))) { *p = 0; definition_lignes[i].nom = strdup (buf1); if (!strcmp (p+1, "rtscts")) { definition_lignes[i].flags = FLAG_RTS_CTS; } } else definition_lignes[i].nom = strdup (buf1); strcpy (buf1, next_token (NULL, sep)); /* Lecture vitesse + taille caractere + parite */ if (!flag_old_config) { definition_lignes[i].speed = valeur_couple (vitesses_possibles, 15, buf1, B1200); strcpy (buf1, next_token (NULL, sep)); /* Nb bits */ definition_lignes[i].cs = valeur_couple (tailles_possibles, 4, buf1, CS7); strcpy (buf1, next_token (NULL, sep)); /* Parite */ definition_lignes[i].parity = valeur_couple (parites_possibles, 3, buf1, PAIR); strcpy (buf1, next_token (NULL, sep)); } /* * Cas particulier: la ligne utilise un Minitel 1/2 comme modem... * (le chat-script est defini a l'avance) */ if (strcmp (buf1, "minitel2") == 0) { definition_lignes[i].chat = (char *)calloc (1, strlen (CHAT_M2) + 1); strcpy (definition_lignes[i].chat, CHAT_M2); definition_lignes[i].type_dialer = DIALER_M2; } else if (strcmp (buf1, "minitel1") == 0) { definition_lignes[i].chat = (char *)calloc (1, strlen (CHAT_M1) + 1); strcpy (definition_lignes[i].chat, CHAT_M1); definition_lignes[i].type_dialer = DIALER_M1; flag_m1 = 1; } else { definition_lignes[i].chat = (char *)calloc (1, strlen (buf1) + 1); strcpy (definition_lignes[i].chat, buf1); definition_lignes[i].type_dialer = DIALER_MODEM; } definition_lignes[i].delai = atoi (next_token (NULL, "\n")); #ifdef DEBUG_XTELD1 if (!flag_old_config) log_debug ("LIGNES: %s %s %d %d %d >%s< %d", definition_lignes[i].device, definition_lignes[i].nom, definition_lignes[i].speed, definition_lignes[i].cs, definition_lignes[i].parity, definition_lignes[i].chat, definition_lignes[i].delai); else log_debug ("LIGNES: %s %s %d", definition_lignes[i].nom, definition_lignes[i].chat, definition_lignes[i].delai); #endif i++; } fclose (fp); return (i); } xtel-3.3.0.orig/copyright.c0100444001424500142340000001306507241352475014461 0ustar ericperso/* * xtel - Emulateur MINITEL sous X11 * * Copyright (C) 1991-1996 Lectra Systemes & Pierre Ficheux * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ static char rcsid[] = "$Id: copyright.c,v 1.9 2001/02/10 23:56:45 pierre Exp $"; #include "xtel.h" #include "patchlevel.h" #include #ifndef NO_XPM #define H_COPYRIGHT 260 #else #include "bitmaps/pf.bit" #define H_COPYRIGHT 300 #endif #define W_COPYRIGHT 320 static char *sockets = "Internet"; static Display *display; static GC gc_copyright; static int screen; static Widget popup_copyright, forme_copyright; static Pixmap pixmap_pf; static XFontStruct *load_query_font (nom) char *nom; { XFontStruct *xfs; if ((xfs = XLoadQueryFont (display, nom)) == NULL) { fprintf (stderr, "fonte \"%s\" introuvable, remplacee par \"fixed\"...\n", nom); xfs = XLoadQueryFont (display, "fixed"); } return (xfs); } /* Affiche une chaine */ static void affiche_chaine_centree (w, s, xfs, y) Widget w; char *s; XFontStruct *xfs; int y; { int x; XSetFont (display, gc_copyright, xfs->fid); x = (W_COPYRIGHT - XTextWidth (xfs, s, strlen(s))) / 2; XDrawString (display, XtWindow(w), gc_copyright, x, y, s, strlen(s)); } /* Affiche et Efface le copyright */ static void Expose_copyright (w, client_data, pevent) Widget w; XtPointer client_data; XExposeEvent *pevent; { char buf[256]; XFontStruct *xfs_titre, *xfs_6x10, *xfs_9x15; int y = 0, on_s_en_fout; unsigned int w_pf, h_pf; Window root; /* * Affiche les infos dont la photo de l'auteur pour les filles... */ XSetFillStyle (display, gc_copyright, FillSolid); xfs_titre = load_query_font ("-adobe-times-bold-r-*-*-*-240-100-100-p-*-*-*"); xfs_6x10 = load_query_font ("6x10"); xfs_9x15 = load_query_font ("9x15"); if (prototype_xtel == 0) { if (PATCHLEVEL != 0) sprintf (buf, "XTel %d.%d.%d", version_xtel, revision_xtel, PATCHLEVEL); else sprintf (buf, "XTel %d.%d", version_xtel, revision_xtel); } else { if (PATCHLEVEL != 0) sprintf (buf, "XTel %d.%d.%db%d [beta]", version_xtel, revision_xtel, PATCHLEVEL, prototype_xtel); else sprintf (buf, "XTel %d.%db%d [beta]", version_xtel, revision_xtel, prototype_xtel); } y += 30; affiche_chaine_centree (w, buf, xfs_titre, y); y += 25; affiche_chaine_centree (w, "par", xfs_6x10, y); y+= 15; #if defined(NO_XPM) XSetFillStyle (display, gc_copyright, FillOpaqueStippled); XSetStipple (display, gc_copyright, pixmap_pf); XSetTSOrigin (display, gc_copyright, (W_COPYRIGHT - pf_width)/2, y); XFillRectangle (display, XtWindow(w), gc_copyright, (W_COPYRIGHT - pf_width)/2, y, pf_width, pf_height); XSetFillStyle (display, gc_copyright, FillSolid); y += (pf_height + 20); #else XGetGeometry (display, pixmap_pf, &root, &on_s_en_fout, &on_s_en_fout, &w_pf, &h_pf, (unsigned int*)&on_s_en_fout, (unsigned int*)&on_s_en_fout); XCopyArea (display, pixmap_pf, XtWindow(w), gc_copyright, 0, 0, w_pf, h_pf, (W_COPYRIGHT - w_pf)/2, y); y += (h_pf + 20); #endif affiche_chaine_centree (w, "Pierre Ficheux", xfs_9x15, y); y += 30; affiche_chaine_centree (w, "(pierre@alienor.fr)", xfs_6x10, y); y += 30; sprintf (buf, "toolkit %s, sockets %s", toolkit_utilise, sockets); affiche_chaine_centree (w, buf, xfs_6x10, y); y += 20; affiche_chaine_centree (w, "- clic ! -", xfs_9x15, y); XFreeFont (display, xfs_titre); XFreeFont (display, xfs_6x10); XFreeFont (display, xfs_9x15); } static void Efface_copyright (w, client_data, pevent) Widget w; XtPointer client_data; XButtonEvent *pevent; { if (flag_copyright_affiche) { XtPopdown (popup_copyright); XtDestroyWidget (popup_copyright); XtDestroyWidget (forme_copyright); XFreeGC (display, gc_copyright); XFreePixmap (display, pixmap_pf); flag_copyright_affiche = False; } } /* * Fonction publique d'affichage */ affiche_copyright (w, classe_forme, pixmap) Widget w; WidgetClass classe_forme; Pixmap pixmap; { pixmap_pf = pixmap; popup_copyright = XtCreatePopupShell ("Information", applicationShellWidgetClass, w, NULL, 0); forme_copyright = XtVaCreateManagedWidget ("forme_copyright", classe_forme, popup_copyright, XtNwidth, W_COPYRIGHT, XtNheight, H_COPYRIGHT, NULL); XtPopup (popup_copyright, XtGrabNone); display = XtDisplay (forme_copyright); screen = DefaultScreen (display); /* GC pour le copyright */ gc_copyright = XCreateGC (display, XtWindow(forme_copyright), 0, NULL); XCopyGC (display, DefaultGC (display, screen), ~0, gc_copyright); XSetForeground (display, gc_copyright, black_pixel); XSetBackground (display, gc_copyright, white_pixel); flag_copyright_affiche = True; XtAddEventHandler (forme_copyright, ButtonPressMask, False, (XtEventHandler)Efface_copyright, NULL); XtAddEventHandler (forme_copyright, ExposureMask, False, (XtEventHandler)Expose_copyright, (XtPointer)NULL); } xtel-3.3.0.orig/demon.h0100444001424500142340000001036607241352554013557 0ustar ericperso/* * xtel - Emulateur MINITEL sous X11 * * Copyright (C) 1991-1996 Lectra Systemes & Pierre Ficheux * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ident "$Id: demon.h,v 1.11 2001/02/10 23:57:32 pierre Exp $" #ifndef _demon_h #define _demon_h /* * Constantes du demon XTELD */ #define MAX_SERVICES 20 #define MAX_LIGNES 10 #define DELAI_DECONNEXION 120 #define PAIR 0 #define IMPAIR 1 #define SANS 2 /* Types de dialer */ #define DIALER_MODEM 0 #define DIALER_M1 1 #define DIALER_M2 2 /* chat-script pour Minitel 1/2 */ #define CHAT_M1 "\\x1b\\x39\\x68 \\x13S" #define CHAT_M2 "\\x1b\\x3b\\x60\\x58\\x54\\x1b\\x3b\\x61\\x5c\\x53\\x0101\\x04\\x02\\TC\\x03\\d\\x1b\\x3b\\x5201 \\x13S" /* Flags */ #define FLAG_RTS_CTS 1 /* Definition des symboles si NO_TERMIO */ #ifdef NO_TERMIO #define CS5 0 #define CS6 1 #define CS7 2 #define CS8 3 #endif /* NO_TERMIO */ /* IAN */ #define IAN_DE_GARDE 3 #define IAN_D_ENTREE 2 #define IAN_DE_FIN 1 /* Types de client */ #define CLIENT_XTEL 0 #define CLIENT_W_HYPER 1 /* Taille maxi de saisie */ #define IN_SIZE 40 /* Code Videotex d'initialisation du mode HyperTerminal */ #define INIT1_HYPER "\033:2~\n\033[?{\014\016\033P\030\n\030\n\030\n\030\n\030\n\030\n\030\n\030\n\030\n\030\n\030\n\030\n\030\n\030\n\030\n\030\n\030\n\030\n\030\n\030\n\030\n\030\n\030\n\030\nCBMS DService Minitel (Xteld %d.%d.%d)L" #define INIT2_HYPER "\037UB\033FVOTRE CHOIX:\033D\033R ..\033F\033P PUIS \033D\033S ENVOI \012\037WB\033D\033S SUITE \033F\033P PAGE SUIVANTE\012\037XB\033D\033S RETOUR \033F\033P PAGE PRECEDENTE\012\037UO" #define INIT3_HYPER "\037UB\033FNUMERO:\033D\033R ....................\033F\033P + \033D\033S ENVOI" /* * Structure de definition des services */ struct definition_service { char *device; /* device utilise */ char *nom_service; char *nom_uucp; char *autorisations; }; /* * Structure de definition des lignes */ struct definition_ligne { char *device; /* device associe a la ligne */ char *nom; /* nom : /dev/ttyxx */ char flags; /* Flags: RTS/CTS... */ int speed; /* vitesse: B1200, B4800, ... */ int cs; /* character size: CS7, CS8 */ int parity; /* parite: EVEN, ODD, NONE */ char *chat; /* chat-script */ char type_dialer; /* type du dialer */ int delai; /* timeout du dialogue Modem */ }; /* * Protocole de dialogue XTEL <--> XTELD */ #define VALEUR_COMMANDE_DEMANDE_CONNEXION 128 #define VALEUR_COMMANDE_FIN 129 #define VALEUR_COMMANDE_SERVICE_SUIVANT 130 #define VALEUR_COMMANDE_NOM_UUCP 131 #define VALEUR_COMMANDE_CONNEXION_M1 132 #define VALEUR_TEMPS_MAXI 133 #define CHAINE_COMMANDE_DEMANDE_CONNEXION "\200" #define CHAINE_COMMANDE_FIN "\201" #define CHAINE_COMMANDE_SERVICE_SUIVANT "\202" #define CHAINE_COMMANDE_NOM_UUCP "\203" #define CHAINE_COMMANDE_CONNEXION_M1 "\204" #define VALEUR_REPONSE_CONNEXION 128 #define VALEUR_REPONSE_DECONNEXION 129 #define VALEUR_REPONSE_PLUS_DE_SERVICE 130 #define VALEUR_REPONSE_DEBUT_ERREUR 131 #define VALEUR_REPONSE_FIN_ERREUR 132 #define CHAINE_REPONSE_CONNEXION "\200" #define CHAINE_REPONSE_DECONNEXION "\201" #define CHAINE_REPONSE_PLUS_DE_SERVICE "\202" #define CHAINE_REPONSE_DEBUT_ERREUR "\203" #define CHAINE_REPONSE_FIN_ERREUR "\204" #define CHAINE_TEMPS_MAXI "\205" #ifdef NO_NETWORK #define XTEL_UNIX_PATH "/tmp/.xtel" /* Nom des sockets unix utilisees */ #endif /* NO_NETWORK */ /* Fichier d'état I-Minitel */ #define IMINITEL_FILE "/tmp/.iminitel" #define IMINITEL_TIMEOUT 45 /* Base /proc */ #define PROC_BASE "/proc" #endif /* _demon_h */ xtel-3.3.0.orig/dial.c0100444001424500142340000001243206703332516013353 0ustar ericperso/* * xtel - Emulateur MINITEL sous X11 * * Copyright (C) 1991-1994 Lectra Systemes & Pierre Ficheux * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * */ static char rcsid[] = "$Id: dial.c,v 1.17 1998/10/02 15:00:49 pierre Exp $"; /* * Composition des numeros telephoniques */ /* Contributions: * * Michel Fingerhut IRCAM Paris * * - code Ultrix pour les ioctl * * - Traitement du fichier de log * - Acces proteges aux services * * Pierre Beyssac SYSECA * * - code 386BSD * - traitement de l'hexa dans les chat-scripts * - traitement du Minitel 2 */ #include #include #include #include #include #ifdef SVR4 #include #endif /* SVR4 */ #include #ifdef USE_SYSLOG #include #endif /* USE_SYSLOG */ #include "demon.h" #include "globald.h" static char nom_lck[256]; extern char type_client; /* * fonction UNDIAL */ void myundial (fd) int fd; { if (unlink (nom_lck) < 0) { erreur_a_xtel (nom_lck, errno); } restore_tty (fd); close (fd); } /* * Fonction DIAL */ mydial (telno, device) char *telno, *device; { char buf[80], erreur; struct stat statb; int fdlck, fd; for (numero_ligne = 0 ; numero_ligne != nb_lignes && definition_lignes[numero_ligne].type_dialer != DIALER_M1 ; numero_ligne++) ; /* Minitel 1 ==> force la ligne */ if (numero_ligne != nb_lignes) nb_lignes = numero_ligne + 1; else numero_ligne = 0; while (numero_ligne < nb_lignes) { /* * Recherche la premiere ligne non deja utilise par un programme UUCP */ for (;;) { #ifdef SVR4 if (stat (definition_lignes[numero_ligne].nom, &statb) != 0) { erreur_a_xtel ("mydial()", errno); return (-1); } sprintf (nom_lck, FICHIER_LCK, (unsigned long) major(statb.st_dev), (unsigned long) major(statb.st_rdev), (unsigned long) minor(statb.st_rdev)); #else sprintf (nom_lck, FICHIER_LCK, &definition_lignes[numero_ligne].nom[5]); #endif /* SVR4 */ #ifdef DEBUG_XTELD log_debug( "ligne= %s, device= %s, lock= %s", definition_lignes[numero_ligne].nom, definition_lignes[numero_ligne].device, nom_lck); #endif /* Si le lock existe */ if (stat (nom_lck, &statb) == 0) { if (numero_ligne == nb_lignes-1) { /* Dommage, c'etait la derniere :-( */ erreur_a_xtel ("[0] Aucun MODEM disponible !", 0); return (-1); } } else { /* Sinon, on verifie que le device corresponde */ if (device == NULL || strcmp (device, definition_lignes[numero_ligne].device) == 0) break; else { if (numero_ligne == nb_lignes - 1) { #ifdef DEBUG_XTELD log_debug ("%s != %s", device, definition_lignes[numero_ligne].device); #endif erreur_a_xtel ("[2] Pas de device correspondant !", 0); return -1; } } } once_again: numero_ligne++; } #ifdef DEBUG_XTELD log_debug ("creation de %s", nom_lck); #endif /* on cree un fichier semaphore LCK..ttyxx */ if ((fdlck = open (nom_lck, O_WRONLY|O_EXCL|O_CREAT, 0644)) < 0) { erreur_a_xtel (nom_lck, errno); return (-1); } /* on ecrit le PID dedans */ sprintf (buf, "%10d\n", getpid ()); write (fdlck, buf, strlen (buf)); close (fdlck); #ifdef DEBUG_XTELD log_debug ("Ouverture de la ligne %s", definition_lignes[numero_ligne].nom); #endif /* ouvre la ligne */ if ((fd = open (definition_lignes[numero_ligne].nom, O_RDWR|O_NDELAY)) < 0) { /* Derniere ligne, on passe l'erreur */ if (numero_ligne == nb_lignes-1) { erreur_a_xtel (definition_lignes[numero_ligne].nom, errno); return (-1); } /* Sinon on essaye la ligne suivante */ else { unlink (nom_lck); goto once_again; /* aller a, jacta est */ } } /* Init des parametres de la ligne */ init_tty (fd, definition_lignes[numero_ligne].speed, definition_lignes[numero_ligne].cs, definition_lignes[numero_ligne].parity, definition_lignes[numero_ligne].flags, definition_lignes[numero_ligne].type_dialer); #ifdef DEBUG_XTELD log_debug ("Dialogue Modem..."); #endif erreur = do_chat (fd, definition_lignes[numero_ligne].chat, (unsigned long)definition_lignes[numero_ligne].delai, telno, NULL, 0); /* * Test de l'erreur en sortie */ if (!erreur) { #ifdef ultrix term.c_cflag &= ~CLOCAL; ioctl (fd, TCSETA, &term); #endif return (fd); } else { /* * Sortie en timeout => efface le fichier semaphore */ if (unlink (nom_lck) < 0) { erreur_a_xtel (nom_lck, errno); } close (fd); numero_ligne++; } } /* * Erreur connexion ! */ erreur_a_xtel ("[1] Erreur de connexion MODEM !", 0); close (fd); return (-1); } xtel-3.3.0.orig/global.h0100444001424500142340000002037707241352703013714 0ustar ericperso/* * xtel - Emulateur MINITEL sous X11 * * Copyright (C) 1991-1996 Lectra Systemes & Pierre Ficheux * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ident "$Id: global.h,v 1.14 2001/02/10 23:58:59 pierre Exp $" #ifndef _global_h #define _global_h #ifndef EXTERN #define EXTERN extern #endif /* * Fonctions */ #ifdef __STDC__ /* xtel.c */ void init_xtel(void); void sauve_l_ecran(Widget w, XEvent *pevent, String *params, Cardinal nb_params); int main(int argc, char **argv); void Usage (void); void create_teleph_cursor (Widget); void affiche_telephone (void); void efface_telephone (void); /* ligne.c */ void ce_n_est_qu_un_au_revoir(void); void fonction_lecture_ligne(XtPointer client_data, int *fid, XtInputId *id); void connexion_service(char *service); void enregistre_caractere (Widget w, XtPointer client_data, char *s); /* bouton.c */ void evenement_entre_widget(Widget w, char *client_data, XEvent *pevent); void commandes(Widget w, char *code, XtPointer call_data); int Charge(void); void Sauve(void); void composition_valide(int flag); void clavier_minitel_valide(int flag); void mise_a_jour_mode_emulation(int flag_invalide); void raccrocher (Widget w, char *code, XtPointer call_data); void demarre_enregistrement (Widget w, XtPointer client_data, XtPointer call_data); void arrete_enregistrement (Widget w, XtPointer client_data, XtPointer call_data); void nouvel_enregistrement (Widget w, XtPointer client_data, XtPointer call_data); void change_enregistrement (Widget w, XtPointer client_data, XtPointer call_data); /* inet.c */ int c_clientbyname(char *host, char *name); int c_clientbyport(char *host, int port); /* imprime.c */ void imprime_page_courante_ascii(Widget w, XtPointer client_data, XtPointer call_data); void imprime_page_courante_videotex(Widget w, XtPointer client_data, XtPointer call_data); /* lecteur.c */ void stop_rapide(void); void fonction_lecture_fichier_courant(XtPointer client_data, int *fid, XtInputId *id); void fin_lecteur(Widget w, XtPointer client_data, XtPointer call_data); void Play_lecteur(Widget w, XtPointer client_data, XtPointer call_data); void Stop_lecteur(Widget w, XtPointer client_data, XtPointer call_data); void Zero_lecteur(Widget w, XtPointer client_data, XtPointer call_data); void Rewind_lecteur(Widget w, XtPointer client_data, XtPointer call_data); void Wind_lecteur(Widget w, XtPointer client_data, XtPointer call_data); void raz_lecteur(void); void debut_lecteur(void); /* procedure.c */ int init_procedures(char *); void start_procedure (int); void start_procedure (int); void run_procedure (char, int); void display_procedures (void); int get_proc_index (char *); /* teleinfo.c */ void teleinfo(char *nom); char conversion_teleinfo_fr(int car,int m); void fonction_lecture_teleinfo(XtPointer client_data, int *fid, XtInputId *id); void zigouille_xterm_teleinfo(void); void selection_mode_emulation(Widget w, char *mode, XtPointer call_data); void clear_reception ( void ) ; int test_retour_videotex ( char car , int m ) ; /* copyright.c */ int affiche_copyright(Widget w, WidgetClass classe_forme, Pixmap pixmap); /* xm.c/xaw.c */ Widget init_toolkit(int *pargc, char **argv); Widget init_widgets(Widget topLevel); void affiche_erreur(char *s, int code_erreur); void lecteur_valide(int flag); void efface_lecteur(void); void affiche_lecteur(void); void affiche_compteur_lecteur_caractere(void); void affiche_compteur_lecteur_page(void); void activation_bouton_stop(void); /* protocoles.c */ int init_protocoles (char *nom, struct protocole *proto); void Selection_telechargement(Widget w, int protocole, XtPointer call_data); void Stop_telechargement(Widget w, XtPointer client_data, XtPointer call_data); /* misc.c */ char *xtel_basename(char *s); char *next_token(char *, char *); char *build_name(char *); int check_existing_process (char *name); #else void init_xtel(); void sauve_l_ecran(); int main(); void Usage(); void create_teleph_cursor(); void affiche_telephone(); void efface_telephone(); void ce_n_est_qu_un_au_revoir(); void fonction_lecture_ligne(); void connexion_service(); void enregistre_caractere (); void evenement_entre_widget(); void commandes(); char *xtel_basename(); int Charge(); void Sauve(); void composition_valide(); void clavier_minitel_valide(); void mise_a_jour_mode_emulation(); void raccrocher(); void demarre_enregistrement (); void arrete_enregistrement (); void nouvel_enregistrement (); void change_enregistrement (); int c_clientbyname(); int c_clientbyport(); void imprime_page_courante_ascii(); void imprime_page_courante_videotex(); void stop_rapide(); void fonction_lecture_fichier_courant(); void fin_lecteur(); void Play_lecteur(); void Stop_lecteur(); void Zero_lecteur(); void Rewind_lecteur(); void Wind_lecteur(); void raz_lecteur(); void debut_lecteur(); int init_procedures(); void start_procedure(); void start_procedure(); void run_procedure(); void display_procedures(); int get_proc_index(); void teleinfo(); char conversion_teleinfo_fr(); void fonction_lecture_teleinfo(); void zigouille_xterm_teleinfo(); void selection_mode_emulation(); int affiche_copyright(); Widget init_toolkit(); Widget init_widgets(); void affiche_erreur(); void lecteur_valide(); void efface_lecteur(); void affiche_lecteur(); void affiche_compteur_lecteur_caractere(); void affiche_compteur_lecteur_page(); void activation_bouton_stop(); int init_protocoles (); void Selection_telechargement(); void Stop_telechargement(); char *next_token(); char *build_name(); #endif /* __STDC__ */ /* * Variables */ #ifndef __FreeBSD__ #ifndef __GLIBC__ extern char *sys_errlist[]; #endif #endif /* xtel.c */ #ifdef NO_NETWORK EXTERN struct sockaddr_un unaddr; #endif /* NO_NETWORK */ EXTERN Widget ecran_minitel; /* Widget Videotex */ EXTERN unsigned int cpt_buffer; /* nb de caracteres courant */ EXTERN Boolean flag_enregistrement; EXTERN Boolean flag_arret_a_chaque_page; EXTERN char type_de_fin_page; EXTERN char sortie_violente; /* Quit en cours de connexion */ EXTERN int nb_procedures; EXTERN struct procedure procedures[MAXPROC]; EXTERN struct chat *chat_courant; EXTERN char *serveur_xtel; EXTERN char *zone_enregistrement; EXTERN unsigned int taille_zone_enregistrement; EXTERN char *toolkit_utilise; EXTERN struct definition_service definition_services[MAX_SERVICES]; EXTERN int socket_xteld; EXTERN String entree_compose[MAX_SERVICES]; EXTERN int nb_services; EXTERN char mode_emulation; EXTERN struct definition_touche touches[]; EXTERN XtAppContext app_context; EXTERN char nom_fichier_sauve[256]; EXTERN char nom_fichier_charge[256]; EXTERN char numero_courant[256]; EXTERN ressources_xtel rsc_xtel; EXTERN int nb_protocoles; EXTERN struct protocole protocoles[MAXPROTO]; EXTERN unsigned long black_pixel, white_pixel; /* bouton.c */ EXTERN long position_courante_fichier; EXTERN unsigned int numero_page_courante; EXTERN unsigned int numero_caractere_courant; /* lecteur.c */ EXTERN char lecteur_play; /* ligne.c */ EXTERN XtInputId input_id; /* teleinfo.c */ EXTERN XtInputId input_id_teleinfo; EXTERN int fd_teleinfo; EXTERN int pid_teleinfo; /* xm.c/xaw.c */ EXTERN char *toolkit_utilise; EXTERN Widget bouton_compose; EXTERN Widget bouton_procedure; EXTERN Widget menu_clavier; EXTERN Widget menu_terminal; EXTERN Widget menu_fichier; EXTERN Widget boite_bas; EXTERN Widget btn_direct; EXTERN Widget timer_minitel; EXTERN WidgetClass classe_forme_copyright; EXTERN Widget stop_tele; EXTERN Widget bouton_proto; EXTERN Widget teleph; EXTERN Widget bouton_demarre, bouton_arrete; EXTERN Widget la_cassete; /* copyright.c */ EXTERN Boolean flag_copyright_affiche; EXTERN Boolean low_memory; /* version.c */ extern char version_xtel; extern char revision_xtel; extern char prototype_xtel; #endif xtel-3.3.0.orig/globald.h0100444001424500142340000000503006703332537014052 0ustar ericperso/* * xtel - Emulateur MINITEL sous X11 * * Copyright (C) 1991-1996 Lectra Systemes & Pierre Ficheux * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ident "$Id: globald.h,v 1.9 1998/10/02 15:02:56 pierre Exp $" #ifndef _globald_h #define _globald_h typedef char Boolean; #define True 1 #define False 0 #ifndef EXTERN #define EXTERN extern #endif /* * Variables */ #ifndef __FreeBSD__ #ifndef __GLIBC__ extern char *sys_errlist[]; #endif #endif EXTERN struct definition_ligne definition_lignes[MAX_LIGNES]; EXTERN struct definition_service definition_services[MAX_SERVICES]; EXTERN Boolean flag_m1; EXTERN int fd_modem; EXTERN int nb_lignes; EXTERN char numero_ligne; extern char version_xtel; extern char revision_xtel; /* * Fonctions */ #ifdef __STDC__ /* xteld.c */ void erreur_a_xtel(char *s, int code_erreur); int service_autorise(int indice_service, int *); void appel_service(char *service_teletel); int main(int ac, char **av); /* dial.c */ void myundial(int fd); int mydial(char *telno, char *device); /* config.c */ int lecture_services(void); int lecture_configuration_lignes(void); /* misc.c */ char *next_token(char *, char *); char *build_name(char *); char *xtel_basename(char *s); /* ian.c */ int ian_valide (int, char); void ian_init (char*); /* modem.c */ void init_tty (int, int, int, int, int, int); void restore_tty (int); int do_chat (int, char*, unsigned long, char*, char*, int); void init_debug (char*); void close_debug (void); #else void erreur_a_xtel(); int service_autorise(); void appel_service(); int main(); void myundial(); int mydial(); int lecture_services(); int lecture_configuration_lignes(); char *next_token(); char *build_name(); int ian_valide (); void ian_init (); char *xtel_basename(); void init_tty (); void restore_tty (); int do_chat (); void init_debug (); void close_debug (); FILE *get_fp_console (); #endif /* __STDC__ */ #endif xtel-3.3.0.orig/imprime.c0100444001424500142340000000336706703332537014116 0ustar ericperso/* * xtel - Emulateur MINITEL sous X11 * * Copyright (C) 1991-1996 Lectra Systemes & Pierre Ficheux * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ static char rcsid[] = "$Id: imprime.c,v 1.6 1998/10/02 15:04:32 pierre Exp $"; #include "xtel.h" /* * Imprime la page courante */ static void imprime_page_courante (mode) int mode; { FILE *fp; char cmd[256], n[256]; sprintf (n, "/tmp/xtel%d.ppm", getpid()); if ((fp = fopen (n, "w")) == NULL) { perror (n); exit (1); } if (mode == VIDEOTEX) { videotexDumpScreen (ecran_minitel, fp); sprintf (cmd, rsc_xtel.commandeImpression, n); } else { /* ASCII */ videotexConversionAscii (ecran_minitel, fp); sprintf (cmd, rsc_xtel.commandeImpressionAscii, n); } fclose (fp); system (cmd); unlink (n); } void imprime_page_courante_ascii (w, client_data, call_data) Widget w; XtPointer client_data, call_data; { imprime_page_courante (ASCII); } void imprime_page_courante_videotex (w, client_data, call_data) Widget w; XtPointer client_data, call_data; { imprime_page_courante (VIDEOTEX); } xtel-3.3.0.orig/ian.c0100444001424500142340000000736206703332537013222 0ustar ericperso/* * xtel - Emulateur MINITEL sous X11 * * Copyright (C) 1991-1996 Lectra Systemes & Pierre Ficheux * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ static char rcsid[] = "$Id: ian.c,v 1.2 1998/10/02 15:03:46 pierre Exp $"; /* * Support IAN (Eric Delaunay, delaunay@lix.polytechnique.fr) */ #include #include "demon.h" #include "globald.h" struct ian { char *service; /* numéro de téléphone du service */ char *garde; /* code émis avant la page de garde Teletel */ char *entree1; /* code émis lors de l'entrée dans le service */ char *entree2; /* autre possibilité */ }; static struct ian IAN[] = { { "3612", "\033 0", "\033!\001\0010", "\033\"0" }, { "3613", "\033 !0", "\033!\001\0010", "\033\"0" }, { "3614", "\033 \"0", "\033!\001\0010", "\033\"0" }, { "3615", "\033 #0", "\033!\001\0010", "\033\"0" }, { "3616", "\033 $0", "\033!\001\0010", "\033\"0" }, { "3617", "\033 %0", "\033!\001\0010", "\033\"0" }, { "3618", "\033 &0", "\033!\001\0010", "\033\"0" }, { "3619", "\033 '0", "\033!\001\0010", "\033\"0" }, { "3621", "service:\021", "tablie", "LIB" } }; static int ian_courant; static char *ian_ptr1, *ian_ptr2; int ian_n1, ian_n2; /* * initialise la détéction des IAN */ void ian_init( telno ) char *telno; { int i; ian_courant = -1; for( i = 0 ; i < sizeof(IAN)/sizeof(IAN[0]) ; i++ ) { if (!strcmp( IAN[i].service, telno )) { ian_courant = i; ian_ptr1 = ian_ptr2 = NULL; #ifdef DEBUG_XTELD log_debug( "Prêt pour détection des IAN (service %s)", IAN[i].service ); #endif break; } } #ifdef DEBUG_XTELD if (ian_courant < 0) log_debug( "IAN non déterminé pour le numéro : %s", telno ); #endif } /* * détection des IAN */ int ian_valide( type_ian, c ) int type_ian; char c; { if (ian_courant < 0) return 1; if (!ian_ptr1) { switch (type_ian) { case IAN_DE_GARDE: case IAN_DE_FIN: #ifdef DEBUG_XTELD log_debug( "attente IAN de garde [%d]", IAN_DE_GARDE ); #endif ian_ptr1 = IAN[ian_courant].garde; ian_n1 = 0; ian_ptr2 = NULL; ian_n2 = 0; break; case IAN_D_ENTREE: #ifdef DEBUG_XTELD log_debug( "attente IAN d'entrée [%d]", IAN_D_ENTREE ); #endif ian_ptr1 = IAN[ian_courant].entree1; ian_n1 = 0; ian_ptr2 = IAN[ian_courant].entree2; ian_n2 = 0; break; default: log_err ("attente IAN inconnu !"); return 1; /* retourne IAN valide pour déconnecter le modem */ } } if (ian_ptr1[ian_n1] == c || ian_ptr1[ian_n1] == '\001') { if (ian_ptr1[++ian_n1] == 0) { #ifdef DEBUG_XTELD log_debug( "IAN ptr1 reçu" ); #endif ian_ptr1 = ian_ptr2 = NULL; return 1; /* IAN détecté */ } } else ian_n1 = 0; /* caractère faux : on recommence au début de la chaîne */ if (ian_ptr2) { if (ian_ptr2[ian_n2] == c || ian_ptr2[ian_n2] == '\001') { if (ian_ptr2[++ian_n2] == 0) { #ifdef DEBUG_XTELD log_debug( "IAN ptr1 reçu" ); #endif ian_ptr1 = ian_ptr2 = NULL; return 2; /* IAN détecté */ } } else ian_n2 = 0; /* caractère faux : on recommence au début de la chaîne */ } return 0; /* IAN pas trouvé */ } xtel-3.3.0.orig/inet.c0100444001424500142340000000550307242200053013367 0ustar ericperso/* * xtel - Emulateur MINITEL sous X11 * * Copyright (C) 1991-1996 Lectra Systemes & Pierre Ficheux * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* * * Routines standard de creation de sockets cote client. * * Permet de creer des socket tcp sur un service donne). * * D'apres Ronan KERYELL (Ecole Normale Superieure, Paris) * keryell@ens.fr */ static char rcsid[] = "$Id: inet.c,v 1.5 2001/02/13 09:36:43 pierre Exp $"; #include #define _TYPE #include #include #include #include #if defined(SVR4) || defined(hpux) #define bcopy(src,dest,len) (memcpy(dest,src,len)) #endif #ifndef u_short #define u_short ushort #endif c_socket (host, port) char *host; int port; { int sock; struct sockaddr_in addr; struct hostent *hp; /* Recupere l'adresse de l'hote cible */ if (!(hp = gethostbyname (host))){ perror("gethostbyname"); return (-1); } /* Et on cree la socket */ if ((sock = socket(AF_INET, SOCK_STREAM,0)) < 0){ perror("socket"); return (-1); } /* Preparons l'adresse pour le connect */ /* Le type d'adresse */ addr.sin_family = hp->h_addrtype; /* Le port (recupere dans le getservbyname) */ addr.sin_port = port; /* L'adresse de l'hote cible */ bcopy(hp->h_addr, (caddr_t)&addr.sin_addr, hp->h_length); /* Et zoup : on se connecte */ if (connect(sock, (struct sockaddr *)&addr, sizeof(addr)) < 0) { perror("connect"); return (-1); } /* Ok ! : on a une socket en tcp de bon gout */ return (sock); } /* * Cree une socket vers un hote donne, sur un service donne, * * Ex : sock = c_clientbyname("aneth", "courier") * */ c_clientbyname (host, name) char *host, *name; { struct servent *sv; /* Description du service recherche (essentiellement, le numero de port) */ if (!(sv = getservbyname (name, "tcp"))) { perror ("getservbyname"); return (-1); } return (c_socket (host, sv->s_port)); } /* * Cree une socket vers un hote donne, sur un port donne, * * Ex : sock = c_clientbyport ("aneth", 1313) * */ c_clientbyport (host, port) char *host; int port; { return (c_socket (host, htons(port))); } xtel-3.3.0.orig/lecteur.c0100444001424500142340000002465707241353074014121 0ustar ericperso/* * xtel - Emulateur MINITEL sous X11 * * Copyright (C) 1991-1996 Lectra Systemes & Pierre Ficheux * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ static char rcsid[] = "$Id: lecteur.c,v 1.4 2001/02/11 00:01:00 pierre Exp $"; /* * Fonctions du lecteur */ #include "xtel.h" #include #include static XtInputId input_id_lecteur; static int fd_fichier_lu; static Boolean flag_arret_a_decoder, flag_sep; /* * Stop automatique, en cas de fin de fichier, fin de lecteur, etc... */ void stop_rapide () { #ifdef DEBUG printf ("stop rapide !\n"); #endif affiche_compteur_lecteur_caractere (); /* Passe en stop et note la position */ lecteur_play = 0; position_courante_fichier = lseek (fd_fichier_lu, 0L, 1); XtRemoveInput (input_id_lecteur); if (mode_emulation != MODE_VIDEOTEX) input_id_teleinfo = XtAppAddInput(app_context, fd_teleinfo, (XtPointer)XtInputReadMask, (XtInputCallbackProc)fonction_lecture_teleinfo, NULL); mise_a_jour_mode_emulation (0); /* active le bouton stop */ activation_bouton_stop (); } /* * Fonction de lecture du fichier */ /* ARGSUSED */ void fonction_lecture_fichier_courant (client_data, fid, id) XtPointer client_data; /* non utilise */ int *fid; XtInputId *id; { char c; if (read (*fid, &c, 1) == 1) { /* Test de la commande SUITE */ if (flag_sep && c != 'H') flag_sep = False; else if ((type_de_fin_page & ARRET_SUITE) && c == 19) flag_sep = True; /* Test de fin de page */ if ((c == 0x0c && (type_de_fin_page & ARRET_FF)) || (c == 'H' && flag_sep && (type_de_fin_page & ARRET_SUITE))) { /* On s'arrete ? */ if (flag_arret_a_chaque_page) { stop_rapide (); position_courante_fichier = lseek (fd_fichier_lu, 0L, 1); flag_arret_a_decoder = (c == 0x0c ? True : False); flag_sep = False; return; } else { numero_page_courante++; affiche_compteur_lecteur_page (); } } if (mode_emulation != MODE_VIDEOTEX) { int retour_videotex = test_retour_videotex ( c,3) ; if ( ( retour_videotex == 1 ) || ( retour_videotex == 2 ) ) { mode_emulation = MODE_VIDEOTEX; kill (pid_teleinfo, SIGKILL); close (fd_teleinfo); } else { if (mode_emulation == MODE_TELEINFO_FR) c = conversion_teleinfo_fr (c,3); write (fd_teleinfo, &c, 1); } } else { /* decodage */ videotexDecode (ecran_minitel, c); } /* caractere suivant */ numero_caractere_courant++; if ((numero_caractere_courant % 100) == 0) affiche_compteur_lecteur_caractere (); } /* fin du fichier */ else { stop_rapide (); position_courante_fichier = lseek (fd_fichier_lu, 0L, 1); } } /* * Callback du bouton "quitte_lecteur" */ void fin_lecteur (w, client_data, call_data) Widget w; XtPointer client_data, call_data; { if (lecteur_play) { stop_rapide (); } position_courante_fichier = lseek (fd_fichier_lu, 0L, 1); #ifdef DEBUG printf ("position avant quit = %ld\n", position_courante_fichier); #endif close (fd_fichier_lu); fd_fichier_lu = 0; efface_lecteur (); composition_valide (True); } /* * Callback du bouton "play_lecteur" */ void Play_lecteur (w, client_data, call_data) Widget w; XtPointer client_data, call_data; { if (!lecteur_play) { #ifdef DEBUG printf ("Play\n"); #endif /* * On vient de s'arreter sur FF ou SUITE */ if (flag_arret_a_decoder) { /* Arret sur FF */ if (type_de_fin_page & ARRET_FF) videotexDecode (ecran_minitel, 0x0c); numero_page_courante++; numero_caractere_courant++; affiche_compteur_lecteur_caractere (); affiche_compteur_lecteur_page (); flag_arret_a_decoder = False; } lecteur_play = 1; if (mode_emulation != MODE_VIDEOTEX) XtRemoveInput (input_id_teleinfo); mise_a_jour_mode_emulation (1); input_id_lecteur = XtAppAddInput(app_context, fd_fichier_lu, (XtPointer)XtInputReadMask, (XtInputCallbackProc)fonction_lecture_fichier_courant, NULL); } } /* * Callback du bouton "stop_lecteur" */ void Stop_lecteur (w, client_data, call_data) Widget w; XtPointer client_data, call_data; { if (lecteur_play) { #ifdef DEBUG printf ("Stop\n"); #endif affiche_compteur_lecteur_caractere (); /* Passe en stop et note la position */ lecteur_play = 0; position_courante_fichier = lseek (fd_fichier_lu, 0L, 1); XtRemoveInput (input_id_lecteur); if (mode_emulation != MODE_VIDEOTEX) input_id_teleinfo = XtAppAddInput(app_context, fd_teleinfo, (XtPointer)XtInputReadMask, (XtInputCallbackProc)fonction_lecture_teleinfo, NULL); } } /* * Callback du bouton "zero_lecteur" */ void Zero_lecteur (w, client_data, call_data) Widget w; XtPointer client_data, call_data; { #ifdef DEBUG printf ("Zero\n"); #endif if (lecteur_play) { stop_rapide(); } videotexInit (ecran_minitel); /* revient en debut */ lseek (fd_fichier_lu, 0L, 0); position_courante_fichier = 0L; numero_page_courante = 1; numero_caractere_courant = 0; clear_reception () ; affiche_compteur_lecteur_caractere (); affiche_compteur_lecteur_page (); } /* * Callback du bouton "rewind_lecteur" */ void Rewind_lecteur (w, client_data, call_data) Widget w; XtPointer client_data, call_data; { unsigned int numero_caractere = 0, numero_page = 1; char c; #ifdef DEBUG printf ("Rewind\n"); #endif if (lecteur_play) { stop_rapide(); } /* revient en debut */ lseek (fd_fichier_lu, 0L, 0); /* Deja en page 1 ==> repointe le debut du fichier */ if (numero_page_courante == 1) { #ifdef DEBUG printf ("deja en page 1 !!!\n"); #endif numero_caractere_courant = 0; affiche_compteur_lecteur_caractere (); position_courante_fichier = 0L; flag_arret_a_decoder = False; return; } /* * Lecture du fichier jusqu'au FF ou SUITE precedant la * page courante */ while (read (fd_fichier_lu, &c, 1) > 0) { if (flag_sep && c != 'H') flag_sep = False; else if ((type_de_fin_page & ARRET_SUITE) && c == 19) flag_sep = True; /* page suivante */ if ((c == 0x0c && (type_de_fin_page & ARRET_FF)) || (c == 'H' && flag_sep && (type_de_fin_page & ARRET_SUITE))) { /* si l'on est sur la page precedant la page courante */ if (numero_page == numero_page_courante-1) { numero_page_courante--; numero_caractere_courant = numero_caractere; affiche_compteur_lecteur_page (); affiche_compteur_lecteur_caractere (); position_courante_fichier = lseek (fd_fichier_lu, 0L, 1); flag_arret_a_decoder = (c == 0x0c ? True : False); return; } numero_page++; } numero_caractere++; } /* * il n'y a pas de FF ni SUITE dans la page ==> pointe le debut */ position_courante_fichier = lseek (fd_fichier_lu, 0L, 0); flag_arret_a_decoder = False; } /* * Callback du bouton "wind_lecteur" */ void Wind_lecteur (w, client_data, call_data) Widget w; XtPointer client_data, call_data; { char c; unsigned int numero_sauve = numero_caractere_courant; #ifdef DEBUG printf ("Wind\n"); #endif if (lecteur_play) { stop_rapide(); } /* * Lecture du fichier --> prochain FF ou SUITE */ while (read (fd_fichier_lu, &c, 1) > 0) { numero_caractere_courant++; /* * Si FF ou SUITE trouve, on stoppe car on est sur la nouvelle page courante */ if (flag_sep && c != 'H') flag_sep = False; else if ((type_de_fin_page & ARRET_SUITE) && c == 19) flag_sep = True; /* page suivante */ if ((c == 0x0c && (type_de_fin_page & ARRET_FF)) || (c == 'H' && flag_sep && (type_de_fin_page & ARRET_SUITE))) { numero_page_courante++; affiche_compteur_lecteur_page (); position_courante_fichier = lseek (fd_fichier_lu, 0L, 1); flag_arret_a_decoder = (c == 0x0c ? True : False); return; } } #ifdef DEBUG printf ("derniere page, revient en %ld !\n", position_courante_fichier); #endif lseek (fd_fichier_lu, position_courante_fichier, 0); numero_caractere_courant = numero_sauve; flag_arret_a_decoder = False; } /* * Remise a zero du lecteur : * * - ouvre le nouveau fichier si le lecteur est affiche * - position_courante = debut * - init compteurs */ void raz_lecteur () { #ifdef DEBUG printf ("raz lecteur\n"); #endif /* on est en train de lire ==> stop !!! */ if (lecteur_play) { stop_rapide(); } /* debut du fichier */ numero_page_courante = 1; numero_caractere_courant = 0; position_courante_fichier = 0L; /* si le lecteur est affiche ==> fichier en cours */ if (fd_fichier_lu > 0) { /* ferme le fichier */ close (fd_fichier_lu); /* ouvre le nouveau */ if ((fd_fichier_lu = open (nom_fichier_charge, O_RDONLY)) < 0) { affiche_erreur (xtel_basename(nom_fichier_charge), errno); return; } /* init du compteur */ affiche_compteur_lecteur_caractere (); affiche_compteur_lecteur_page (); } else ;/* le fichier sera ouvert par "debut_lecteur()" */ } /* * Ouverture du lecteur */ void debut_lecteur () { if ((fd_fichier_lu = open (nom_fichier_charge, O_RDONLY)) < 0) { affiche_erreur (xtel_basename(nom_fichier_charge), errno); return; } XtVaSetValues (ecran_minitel, XtNfdConnexion, fd_fichier_lu, NULL); #ifdef DEBUG printf ("positionne en %ld\n", position_courante_fichier); #endif lseek (fd_fichier_lu, position_courante_fichier, 0); /* * Affiche le lecteur */ affiche_lecteur (); affiche_compteur_lecteur_caractere (); affiche_compteur_lecteur_page (); composition_valide (False); } /* * Callback des boutons "oui/non_arret_page_lecteur" */ #if 0 void arret_a_chaque_page (w, flag, call_data) Widget w; Boolean flag; XtPointer call_data; { flag_arret_a_chaque_page = flag; } void type_fin_page (w, type, state) Widget w; int type; Boolean state; { if (state) type_de_fin_page |= type; else type_de_fin_page &= ~type; } #endif xtel-3.3.0.orig/ligne.c0100444001424500142340000001711507241353136013542 0ustar ericperso/* * xtel - Emulateur MINITEL sous X11 * * Copyright (C) 1991-1996 Lectra Systemes & Pierre Ficheux * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ static char rcsid[] = "$Id: ligne.c,v 1.11 2001/02/11 00:01:34 pierre Exp $"; /* * fonctions de traitement de la ligne MODEM */ #include "xtel.h" #include #include #include #include #include "Timer.h" static char erreur, compte_erreur, message_erreur[80]; static char buf_temps_maxi[4]; static int temps_maxi; static XtIntervalId bip_id; /* Signale la deconnexion dans 30 s */ static XtTimerCallbackProc bip_bip (w, id) Widget w; XtIntervalId *id; { XKeyboardControl kb; XKeyboardState kbs; Display *display = XtDisplay(ecran_minitel); int pitch[3] = {200, 400, 500}; int duration[3] = { 50, 100, 100}, i; XGetKeyboardControl (display, &kbs); for (i = 0; i < 3; i++) { kb.bell_pitch = pitch[i]; kb.bell_duration = duration[i]; XChangeKeyboardControl(display, KBBellPitch | KBBellDuration, &kb); XBell(display, 100); XFlush(display); /* Pas de usleep() sur HP/UX < 10.10 ??? */ #ifdef hpux sleep (1); #else usleep(100000L); #endif } kb.bell_pitch = kbs.bell_pitch; kb.bell_duration = kbs.bell_duration; XChangeKeyboardControl (display, KBBellPitch | KBBellDuration, &kb); } /* Pour quitter... */ void ce_n_est_qu_un_au_revoir () { if (mode_emulation != MODE_VIDEOTEX) zigouille_xterm_teleinfo (); XFlush (XtDisplay(ecran_minitel)); printf ("Bye...\n"); exit (0); } /* * Enregistre un caractere dans la zone d'enregistrement */ void enregistre_caractere (w, client_data, s) Widget w; XtPointer client_data; char *s; { if (flag_enregistrement) { /* * Si il ne reste plue de place dans la zone * d'enregistrement, alloue 1000 octets de + */ if (cpt_buffer && !(cpt_buffer % 1000)) { taille_zone_enregistrement += 1000; zone_enregistrement = realloc (zone_enregistrement, taille_zone_enregistrement); } *(zone_enregistrement+cpt_buffer) = *s; cpt_buffer++; } } /* * fonction de lecture de la ligne */ /* ARGSUSED */ void fonction_lecture_ligne(client_data, fid, id) XtPointer client_data; /* non utilise */ int *fid; XtInputId *id; { unsigned char c; Boolean flag_connexion; int n; XtVaGetValues (ecran_minitel, XtNconnecte, &flag_connexion, NULL); n = read (*fid, &c, 1); if (flag_connexion) { /* Deconnexion supposee */ if (n <= 0 || c == VALEUR_REPONSE_DECONNEXION) { XtVaSetValues (ecran_minitel, XtNconnecte, False, NULL); #ifndef LOW_MEMORY if (!low_memory) { timerResetTimer (timer_minitel); XtVaSetValues (timer_minitel, XtNtimerMode, False, NULL); } #endif flag_connexion = False; /* invalide les boutons */ clavier_minitel_valide (False); /* valide la composition et le lecteur */ composition_valide (True); if (nom_fichier_charge[0] != 0) lecteur_valide (True); XFlush (XtDisplay(ecran_minitel)); XtVaSetValues (ecran_minitel, XtNfdConnexion, -1, NULL); XtRemoveInput (input_id); if (bip_id) { XtRemoveTimeOut (bip_id); bip_id = 0; } close (socket_xteld); if (sortie_violente) ce_n_est_qu_un_au_revoir (); } else { if (nb_procedures) run_procedure (c, socket_xteld); enregistre_caractere (ecran_minitel, NULL, &c); efface_telephone (); /* decodage */ if (mode_emulation != MODE_VIDEOTEX) { int retour_videotex = test_retour_videotex ( c,1) ; if ( ( retour_videotex == 1 ) || ( retour_videotex == 2 ) ) { selection_mode_emulation (ecran_minitel, "V", NULL); return; } else { if (mode_emulation == MODE_TELEINFO_FR) c = conversion_teleinfo_fr (c,1); write (fd_teleinfo, &c, 1); } } else { videotexDecode (ecran_minitel, c); } } } /* Non connecte */ else { if (erreur) { if (c == VALEUR_REPONSE_FIN_ERREUR) { erreur = 0; if (!flag_connexion) { /* efface le petit telephone */ efface_telephone (); /* valide la composition et le lecteur */ composition_valide (True); if (nom_fichier_charge[0] != 0) lecteur_valide (True); XtVaSetValues (ecran_minitel, XtNfdConnexion, -1, NULL); XtRemoveInput (input_id); close (socket_xteld); } affiche_erreur (message_erreur, message_erreur[compte_erreur-1]); } else message_erreur[compte_erreur++] = c; } else { if (c == VALEUR_REPONSE_CONNEXION) { XtVaSetValues (ecran_minitel, XtNconnecte, True, NULL); #ifndef LOW_MEMORY if (!low_memory) { if (temps_maxi > 0) { XtVaSetValues (timer_minitel, XtNtimerMode, True, XtNcountDown, True, XtNmin, temps_maxi/60, XtNsec, temps_maxi%60, NULL); temps_maxi = 0; } else XtVaSetValues (timer_minitel, XtNtimerMode, True, XtNcountDown, False, XtNmin, 0, XtNsec, 0, NULL); timerResetTimer (timer_minitel); timerStartTimer (timer_minitel); } #endif efface_telephone (); flag_connexion = True; /* valide les boutons MINITEL */ clavier_minitel_valide (True); XFlush (XtDisplay(ecran_minitel)); } else if (c == VALEUR_REPONSE_DEBUT_ERREUR) { erreur = 1; compte_erreur = 0; } /* VALEUR_TEMPS_MAXI, puis longueur + temps_maxi */ else if (c == VALEUR_TEMPS_MAXI) { read (*fid, &c, 1); read (*fid, buf_temps_maxi, c); buf_temps_maxi[c] = 0; temps_maxi = atoi(buf_temps_maxi); if (temps_maxi > 30) bip_id = XtAppAddTimeOut (XtWidgetToApplicationContext(ecran_minitel), (unsigned long) (temps_maxi - 30) * 1000, (XtTimerCallbackProc) bip_bip, NULL); } } } } /* * Connexion a un service */ void connexion_service (service) char *service; { char l; struct passwd *pw; #ifdef DEBUG printf ("connexion au service %s\n", service); #endif /* affiche le petit telephone */ affiche_telephone (); /* invalide la composition et le lecteur */ composition_valide (False); lecteur_valide (False); /* Ouvre la socket serveur */ if ((socket_xteld = c_clientbyname(rsc_xtel.serveur, rsc_xtel.nomService)) < 0) { fprintf (stderr, "Erreur de connexion au serveur XTEL...\n"); return; } /* Transmet le nom d'utilisateur */ if ((pw = getpwuid(getuid())) == NULL) { perror ("getpwuid"); return; } l = strlen (pw->pw_name); write (socket_xteld, &l, 1); write (socket_xteld, pw->pw_name, l); /* nouvelle entree = socket XTELD */ XtVaSetValues (ecran_minitel, XtNfdConnexion, socket_xteld, NULL); input_id = XtAppAddInput(app_context, socket_xteld, (XtPointer)XtInputReadMask, (XtInputCallbackProc)fonction_lecture_ligne, NULL); /* commande de connexion a XTELD */ if (!service) { write (socket_xteld, CHAINE_COMMANDE_CONNEXION_M1, 1); } else { write (socket_xteld, CHAINE_COMMANDE_DEMANDE_CONNEXION, 1); l = strlen (service); write (socket_xteld, &l, 1); write (socket_xteld, service, l); } } xtel-3.3.0.orig/misc.c0100444001424500142340000000340407234410621013366 0ustar ericperso/* * xtel - Emulateur MINITEL sous X11 * * Copyright (C) 1991-1996 Lectra Systemes & Pierre Ficheux * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ static char rcsid[] = "$Id: misc.c,v 1.4 1998/10/02 15:05:24 pierre Exp $"; #include #include #include static char buf[256]; /* * Construit un nom codee ISO-8859 a partir de sequences ASCII * ex: T\351l\351tel --> Télétel */ char *build_name (s) char *s; { register int i = 0, ii = 0; int x; char *ss; memset (buf, 0, 256); while (*(s+i)) { if (*(s+i) == '\\') { sscanf (s+i+1, "%o", &x); buf[ii++] = (char)x; i += 4; } else { buf[ii++] = *(s+i); i++; } } ss = calloc (1, i+1); strcpy (ss, buf); return ss; } /* Retourne le token suivant */ char *next_token (s, tok) char *s, *tok; { char *pt = strtok (s, tok); if (pt) return pt; else return ""; } /* Fonction 'basename' */ char *xtel_basename (s) char *s; { register int i; for (i = strlen(s)-1 ; s[i] != 0 && s[i] != '/' && i >= 0 ; i--); return (s+i+1); } xtel-3.3.0.orig/patchlevel.h0100444001424500142340000000002507237312301014562 0ustar ericperso#define PATCHLEVEL 0 xtel-3.3.0.orig/procedure.c0100444001424500142340000001362606703332542014437 0ustar ericperso/* * xtel - Emulateur MINITEL sous X11 * * Copyright (C) 1991-1996 Lectra Systemes & Pierre Ficheux * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ static char rcsid[] = "$Id: procedure.c,v 1.5 1998/10/02 15:06:18 pierre Exp $"; #include #include #include #include #include "xtel.h" static int iproc = -1; static char *current_wait; static struct d *current_pd; static struct keyword keywords[] = { { "procedure", 'P', P_PROC }, { "service", 'S', P_SERV }, { "waitfor", 'A', P_WAIT }, { "transmit", 'E', P_TRAN }, { "record", 'R', P_REC }, { "write", 'W', P_WRI }, { "hangup", 'H', P_HUP }, { "exit", 'X', P_EXI }, { "asciidump", 'd', P_ADMP }, { "ppmdump", 'D', P_PDMP }, { NULL, 0, 0 } }; /* Lecture d'une commande et de son parametre */ static char *get_keyword (s, pi) char *s; int *pi; { register int i = 0; char *tok, *p; tok = next_token (s, " "); while (keywords[i].mnemonic) { if (!strcmp (keywords[i].mnemonic, tok) || keywords[i].alias == *tok) { *pi = i; p = next_token (NULL, "\n"); return p; } i++; } return NULL; } #define NEW(s) ((s *)calloc (1, sizeof(s))) /* Lecture et initialisation des procedures */ init_procedures (file) char *file; { char buf[256]; char *s, type; int i; struct d *pd = NULL, *pdprev = NULL; FILE *fp = fopen (file, "r"); if (!fp) return 0; while (fgets (buf, 256, fp) != NULL) { if (buf[0] == '#' || buf[0] == '\n') continue; buf[strlen(buf)-1] = 0; s = get_keyword (buf, &i); if (s) { if ((type = keywords[i].type) == P_PROC && iproc < MAXPROC-1) { if (pd) { free (pd); pd = NULL; pdprev->suivant = NULL; } procedures[++iproc].nom = build_name (s); procedures[iproc].d = pd = pdprev = NEW(struct d); } else if (type == P_SERV) { procedures[iproc].service = strdup (s); } else { pd->type = type; pd->suivant = NEW(struct d); switch (type) { case P_WAIT : (pd->p).attente = strdup (s); break; case P_TRAN : (pd->p).emission = strdup (s); break; case P_REC : (pd->p).state = (!strcmp (s, "on") ? 1 : 0); break; case P_WRI : case P_ADMP : case P_PDMP : (pd->p).filename = strdup (s); break; default: break; } pdprev = pd; pd = pd->suivant; } } else printf ("<%s> non reconnu !\n", buf); } current_pd = NULL; current_wait = NULL; fclose (fp); return iproc+1; } void start_procedure (n) int n; { current_pd = procedures[n].d; } int get_proc_index (name) char *name; { register int i; if (!name) return -1; for (i = 0 ; i <= iproc ; i++) { if (!strcmp (procedures[i].nom, name)) return i; } return -1; } void run_procedure (c, fd) char c; int fd; { char *p; while (current_pd) { if (current_pd->type == P_WAIT) { /* Attente en cours ? */ if (!current_wait) current_wait = (current_pd->p).attente; if (c == *current_wait) { current_wait++; if (*current_wait == 0) { current_wait = NULL; /* Ok, continue la procedure */ } else return; } else { current_wait = NULL; /* No good ==> RAZ */ return; } } else { switch (current_pd->type) { case P_TRAN : p = (current_pd->p).emission; while (*p) { if ((*p == '\\') && (*(p+1) >= 'A' && *(p+1) <= 'I')) { /* Commande ENVOI, etc... */ write (fd, "\023", 1); write (fd, p+1, 1); p += 2; } else write (fd, p++, 1); } break; case P_REC : if ((current_pd->p).state) demarre_enregistrement (NULL, NULL, NULL); else arrete_enregistrement (NULL, NULL, NULL); break; case P_WRI : strcpy (nom_fichier_sauve, (current_pd->p).filename); Sauve (); break; case P_ADMP : { FILE *fp = fopen ((current_pd->p).filename, "w"); if (fp) { videotexConversionAscii (ecran_minitel, fp); fclose (fp); } else fprintf (stderr, "run_procedure: %s: %s\n", (current_pd->p).filename, sys_errlist[errno]); } break; case P_PDMP : { FILE *fp = fopen ((current_pd->p).filename, "w"); if (fp) { videotexDumpScreen (ecran_minitel, fp); fclose (fp); } else fprintf (stderr, "run_procedure: %s: %s\n", (current_pd->p).filename, sys_errlist[errno]); } break; case P_HUP : write (fd, CHAINE_COMMANDE_FIN, 1); break; case P_EXI : ce_n_est_qu_un_au_revoir (); break; default : break; } } current_pd = current_pd->suivant; } } void display_procedures () { register int i; register struct d *pd; for (i = 0 ; i <= iproc ; i++ ) { printf ("procedure [%s] service [%s] :\n", procedures[i].nom, procedures[i].service); for (pd = procedures[i].d ; pd ; pd = pd->suivant) { switch (pd->type) { case P_WAIT : printf ("\tP_WAIT [%s]\n", (pd->p).attente); break; case P_TRAN : printf ("\tP_TRAN [%s]\n", (pd->p).emission); break; case P_REC : printf ("\tP_REC [%d]\n", (pd->p).state); break; case P_WRI : printf ("\tP_WRI [%s]\n", (pd->p).filename); break; case P_HUP : printf ("\tP_HUP\n"); break; case P_EXI : printf ("\tP_EXI\n"); break; default: break; } } } } xtel-3.3.0.orig/fonts/0040755001424500142340000000000007242250362013427 5ustar ericpersoxtel-3.3.0.orig/fonts/Imakefile0100444001424500142340000000645606703332534015251 0ustar ericpersoXCOMM XCOMM Imakefile pour les fontes XTEL XCOMM $Id: Imakefile,v 1.4 1996/09/22 16:58:55 pierre Exp $ XCOMM #include "../Config.tmpl" SRCS= g08x10.bdf g08x20.bdf g016x10.bdf g016x20.bdf g032x20.bdf g016x40.bdf \ g032x40.bdf \ g18x10.bdf g116x20.bdf \ g1s8x10.bdf g1s16x20.bdf \ g0s8x10.bdf g0s8x20.bdf g0s16x10.bdf g0s16x20.bdf g0s32x20.bdf \ g0s16x40.bdf g0s32x40.bdf xteldigit.bdf #if defined(OPENWINDOWS) || defined(OPEN_WINDOWS) FONTINSTDIR = /usr/openwin/lib/fonts/xtel /* * Definition des macros OW */ #ifndef OWFontTarget #define OWFontTarget(basename) @@\ basename.fb: basename.bdf @@\ convertfont -b -o basename -d . $? #endif /* OWFontTarget */ #ifndef MakeOWFonts #define MakeOWFonts() @@\ all:: Synonyms.list $(OBJS) @@\ touch Compat.list @@\ bldfamily -d . @@\ @@\ clean:: @@\ $(RM) *.fb *.ff Compat.list Families.list #endif /* MakeOWFonts */ #ifndef InstallOWFonts #define InstallOWFonts(dest) @@\ InstallMultipleFlags($(OBJS),dest,$(INSTDATFLAGS)) @@\ @@\ install:: @@\ $(INSTALL) -c $(INSTDATFLAGS) Compat.list Families.list dest @@\ cp *.ff dest #endif /* InstallOWFonts */ #ifndef InstallOWFontAliases #define InstallOWFontAliases(dest) @@\ install:: @@\ $(INSTALL) -c $(INSTDATFLAGS) Synonyms.list dest #endif /* InstallOWFontAliases */ OBJS= g08x10.fb g08x20.fb g016x10.fb g016x20.fb g032x20.fb g016x40.fb \ g032x40.fb g18x10.fb g116x20.fb \ g1s8x10.fb g1s16x20.fb \ g0s8x10.fb g0s8x20.fb g0s16x10.fb g0s16x20.fb g0s32x20.fb g0s16x40.fb \ g0s32x40.fb xteldigit.fb MakeOWFonts() OWFontTarget(g08x10) OWFontTarget(g08x20) OWFontTarget(g016x10) OWFontTarget(g016x20) OWFontTarget(g032x20) OWFontTarget(g016x40) OWFontTarget(g032x40) OWFontTarget(g18x10) OWFontTarget(g116x20) OWFontTarget(g1s8x10) OWFontTarget(g1s16x20) OWFontTarget(g0s8x10) OWFontTarget(g0s8x20) OWFontTarget(g0s16x10) OWFontTarget(g0s16x20) OWFontTarget(g0s32x20) OWFontTarget(g0s16x40) OWFontTarget(g0s32x40) OWFontTarget(xteldigit) InstallOWFonts($(FONTINSTDIR)) InstallOWFontAliases($(FONTINSTDIR)) #else FONTINSTDIR = $(FONTDIR)/xtel MKFONTDIR = mkfontdir #if (ProjectX < 5) FONTC = bdftosnf OBJS= g08x10.snf g08x20.snf g016x10.snf g016x20.snf g032x20.snf g016x40.snf \ g032x40.snf \ g18x10.snf g116x20.snf \ g1s8x10.snf g1s16x20.snf \ g0s8x10.snf g0s8x20.snf g0s16x10.snf g0s16x20.snf g0s32x20.snf \ g0s16x40.snf g0s32x40.snf xteldigit.snf #else FONTC = bdftopcf OBJS= FontObj(g08x10) FontObj(g08x20) FontObj(g016x10) FontObj(g016x20) FontObj(g032x20) FontObj(g016x40) \ FontObj(g032x40) \ FontObj(g18x10) FontObj(g116x20) \ FontObj(g1s8x10) FontObj(g1s16x20) \ FontObj(g0s8x10) FontObj(g0s8x20) FontObj(g0s16x10) FontObj(g0s16x20) FontObj(g0s32x20) \ FontObj(g0s16x40) FontObj(g0s32x40) FontObj(xteldigit) #endif MakeFonts() FontTarget(g08x10) FontTarget(g08x20) FontTarget(g016x10) FontTarget(g016x20) FontTarget(g032x20) FontTarget(g016x40) FontTarget(g032x40) FontTarget(g18x10) FontTarget(g116x20) FontTarget(g1s8x10) FontTarget(g1s16x20) FontTarget(g0s8x10) FontTarget(g0s8x20) FontTarget(g0s16x10) FontTarget(g0s16x20) FontTarget(g0s32x20) FontTarget(g0s16x40) FontTarget(g0s32x40) FontTarget(xteldigit) InstallFonts($(FONTINSTDIR)) InstallFontAliases($(FONTINSTDIR)) #endif depend:: xtel-3.3.0.orig/fonts/Synonyms.list0100444001424500142340000000326706703332534016171 0ustar ericperso/minig0_8x10 /-lectra-minitel-medium-r-normal--10-100-75-75-c-80-iso2022-0 _FontDirectorySYN /minig0_8x20 /-lectra-minitel-medium-r-normal--20-200-75-75-c-80-iso2022-0 _FontDirectorySYN /minig0_16x10 /-lectra-minitel-medium-r-normal--10-100-75-75-c-160-iso2022-0 _FontDirectorySYN /minig0_16x20 /-lectra-minitel-medium-r-normal--20-200-75-75-c-160-iso2022-0 _FontDirectorySYN /minig0_32x20 /-lectra-minitel-medium-r-normal--20-200-75-75-c-320-iso2022-0 _FontDirectorySYN /minig0_16x40 /-lectra-minitel-medium-r-normal--40-400-75-75-c-160-iso2022-0 _FontDirectorySYN /minig0_32x40 /-lectra-minitel-medium-r-normal--40-400-75-75-c-320-iso2022-0 _FontDirectorySYN /minig1_8x10 /-lectra-minitel-medium-r-normal--10-100-75-75-c-80-iso2022-1 _FontDirectorySYN /minig1_16x20 /-lectra-minitel-medium-r-normal--20-200-75-75-c-160-iso2022-1 _FontDirectorySYN /minig0s_8x10 /-lectra-minitel-medium-r-normal--10-100-75-75-c-80-iso2022-0s _FontDirectorySYN /minig0s_8x20 /-lectra-minitel-medium-r-normal--20-200-75-75-c-80-iso2022-0s _FontDirectorySYN /minig0s_16x10 /-lectra-minitel-medium-r-normal--10-100-75-75-c-160-iso2022-0s _FontDirectorySYN /minig0s_16x20 /-lectra-minitel-medium-r-normal--20-200-75-75-c-160-iso2022-0s _FontDirectorySYN /minig0s_32x20 /-lectra-minitel-medium-r-normal--20-200-75-75-c-320-iso2022-0s _FontDirectorySYN /minig0s_16x40 /-lectra-minitel-medium-r-normal--40-400-75-75-c-160-iso2022-0s _FontDirectorySYN /minig0s_32x40 /-lectra-minitel-medium-r-normal--40-400-75-75-c-320-iso2022-0s _FontDirectorySYN /minig1s_8x10 /-lectra-minitel-medium-r-normal--10-100-75-75-c-80-iso2022-1s _FontDirectorySYN /minig1s_16x20 /-lectra-minitel-medium-r-normal--20-200-75-75-c-160-iso2022-1s _FontDirectorySYN xtel-3.3.0.orig/fonts/fonts.alias0100444001424500142340000000252306703332534015573 0ustar ericpersominig0_8x10 -Lectra-Minitel-Medium-R-Normal--10-100-75-75-C-80-ISO2022-0 minig0_8x20 -Lectra-Minitel-Medium-R-Normal--20-200-75-75-C-80-ISO2022-0 minig0_16x10 -Lectra-Minitel-Medium-R-Normal--10-100-75-75-C-160-ISO2022-0 minig0_16x20 -Lectra-Minitel-Medium-R-Normal--20-200-75-75-C-160-ISO2022-0 minig0_32x20 -Lectra-Minitel-Medium-R-Normal--20-200-75-75-C-320-ISO2022-0 minig0_16x40 -Lectra-Minitel-Medium-R-Normal--40-400-75-75-C-160-ISO2022-0 minig0_32x40 -Lectra-Minitel-Medium-R-Normal--40-400-75-75-C-320-ISO2022-0 minig1_8x10 -Lectra-Minitel-Medium-R-Normal--10-100-75-75-C-80-ISO2022-1 minig1_16x20 -Lectra-Minitel-Medium-R-Normal--20-200-75-75-C-160-ISO2022-1 minig0s_8x10 -Lectra-Minitel-Medium-R-Normal--10-100-75-75-C-80-ISO2022-0S minig0s_8x20 -Lectra-Minitel-Medium-R-Normal--20-200-75-75-C-80-ISO2022-0S minig0s_16x10 -Lectra-Minitel-Medium-R-Normal--10-100-75-75-C-160-ISO2022-0S minig0s_16x20 -Lectra-Minitel-Medium-R-Normal--20-200-75-75-C-160-ISO2022-0S minig0s_32x20 -Lectra-Minitel-Medium-R-Normal--20-200-75-75-C-320-ISO2022-0S minig0s_16x40 -Lectra-Minitel-Medium-R-Normal--40-400-75-75-C-160-ISO2022-0S minig0s_32x40 -Lectra-Minitel-Medium-R-Normal--40-400-75-75-C-320-ISO2022-0S minig1s_8x10 -Lectra-Minitel-Medium-R-Normal--10-100-75-75-C-80-ISO2022-1S minig1s_16x20 -Lectra-Minitel-Medium-R-Normal--20-200-75-75-C-160-ISO2022-1S xtel-3.3.0.orig/fonts/g016x10.bdf0100444001424500142340000003706706703332534015125 0ustar ericpersoSTARTFONT 2.1 COMMENT $Id: g016x10.bdf,v 1.2 1995/02/10 17:53:37 pierre Exp $ FONT -Lectra-Minitel-Medium-R-Normal--10-100-75-75-C-160-ISO2022-0 SIZE 10 75 75 FONTBOUNDINGBOX 16 10 0 -2 STARTPROPERTIES 19 FONTNAME_REGISTRY "" FOUNDRY "Lectra" FAMILY_NAME "Minitel" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 10 POINT_SIZE 100 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "C" AVERAGE_WIDTH 80 CHARSET_REGISTRY "ISO2022-0" CHARSET_ENCODING "1" FONT_ASCENT 8 FONT_DESCENT 2 DEFAULT_CHAR 32 COPYRIGHT "Copyright 1991 Lectra-Systemes" ENDPROPERTIES CHARS 116 STARTCHAR C000 ENCODING 0 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0F00 30C0 3000 3000 FF00 3000 3000 FFC0 0000 ENDCHAR STARTCHAR C001 ENCODING 1 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 0C00 3C00 FFFF 3C00 0C00 0000 0000 ENDCHAR STARTCHAR C002 ENCODING 2 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 00C0 03F0 0FFC 00C0 00C0 00C0 00C0 00C0 00C0 ENDCHAR STARTCHAR C003 ENCODING 3 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 0030 003C FFFF 003C 0030 0000 0000 ENDCHAR STARTCHAR C004 ENCODING 4 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 00C0 00C0 00C0 00C0 00C0 00C0 0FFC 03F0 00C0 ENDCHAR STARTCHAR C005 ENCODING 5 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 3C00 C300 C300 3C00 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C006 ENCODING 6 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0C00 0C00 FFC0 0C00 0C00 FFC0 0000 0000 ENDCHAR STARTCHAR C007 ENCODING 7 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 00C0 0000 3FFF 0000 00C0 0000 0000 0000 ENDCHAR STARTCHAR C008 ENCODING 8 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 C030 C0C0 C0C0 C30C C33C 0CCC 0CFF 300C 0000 ENDCHAR STARTCHAR C009 ENCODING 9 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 C030 C0C0 C0C0 C33C C3C3 0C0F 0C30 30FF 0000 ENDCHAR STARTCHAR C010 ENCODING 10 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 FC0C 0C30 3C30 0CCC FCFC 03CC 03FF 0C0C 0000 ENDCHAR STARTCHAR C011 ENCODING 11 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0F00 03C0 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C012 ENCODING 12 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 003C 00F0 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C013 ENCODING 13 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 03F0 0F3C 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C014 ENCODING 14 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0F3C 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C015 ENCODING 15 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 03C0 0FC0 ENDCHAR STARTCHAR C016 ENCODING 16 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0FFF 30C0 C0C0 C0FC C0C0 30C0 0FFF 0000 0000 ENDCHAR STARTCHAR C017 ENCODING 17 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 3F3F C0C3 C0FF C0C0 3F3F 0000 0000 ENDCHAR STARTCHAR C018 ENCODING 18 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0F00 30C0 C0C0 C300 CF00 C0F0 CC30 F3C0 0000 ENDCHAR STARTCHAR C019 ENCODING 19 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 3F00 C0C0 F000 3F00 C0C0 C0C0 3F00 03C0 C0C0 3F00 ENDCHAR STARTCHAR C032 ENCODING 32 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C033 ENCODING 33 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 00c0 00c0 00c0 00c0 00c0 00c0 0000 00c0 0000 0000 ENDCHAR STARTCHAR C034 ENCODING 34 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0330 0330 0330 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C035 ENCODING 35 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0c30 0c30 3ffc 0c30 0c30 3ffc 0c30 0c30 0000 0000 ENDCHAR STARTCHAR C036 ENCODING 36 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 00c0 03fc 0cc0 03f0 00cc 0ff0 00c0 0000 0000 ENDCHAR STARTCHAR C037 ENCODING 37 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0c0c 3330 0c30 00c0 030c 0333 0c0c 0000 0000 ENDCHAR STARTCHAR C038 ENCODING 38 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0fc0 3000 0c00 0f00 30cc 3030 0fcc 0000 0000 ENDCHAR STARTCHAR C039 ENCODING 39 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 00f0 00c0 0300 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C040 ENCODING 40 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0030 00c0 00c0 0300 0300 0300 00c0 00c0 0030 0000 ENDCHAR STARTCHAR C041 ENCODING 41 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0300 00c0 00c0 0030 0030 0030 00c0 00c0 0300 0000 ENDCHAR STARTCHAR C042 ENCODING 42 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 00c0 00c0 3ccf 03f0 00c0 0330 0c0c 0000 0000 ENDCHAR STARTCHAR C043 ENCODING 43 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 00c0 00c0 00c0 3fff 00c0 00c0 00c0 0000 0000 ENDCHAR STARTCHAR C044 ENCODING 44 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 03c0 0300 0c00 0000 ENDCHAR STARTCHAR C045 ENCODING 45 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 0000 3fff 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C046 ENCODING 46 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 03c0 03c0 0000 0000 ENDCHAR STARTCHAR C047 ENCODING 47 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0003 000c 0030 0030 00c0 0300 0c00 0c00 3000 c000 ENDCHAR STARTCHAR C048 ENCODING 48 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0ff0 300c 300c 300c 300c 300c 300c 0ff0 0000 0000 ENDCHAR STARTCHAR C049 ENCODING 49 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 00c0 03c0 00c0 00c0 00c0 00c0 00c0 00c0 0000 0000 ENDCHAR STARTCHAR C050 ENCODING 50 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0ff0 300c 000c 0030 00c0 0300 0c00 3ffc 0000 0000 ENDCHAR STARTCHAR C051 ENCODING 51 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0ff0 300c 000c 03f0 000c 000c 300c 0ff0 0000 0000 ENDCHAR STARTCHAR C052 ENCODING 52 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 00f0 00f0 0330 0330 0c30 3ffc 0030 00fc 0000 0000 ENDCHAR STARTCHAR C053 ENCODING 53 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 3ffc 3000 3000 3ff0 000c 000c 300c 0ff0 0000 0000 ENDCHAR STARTCHAR C054 ENCODING 54 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 03f0 0c00 3000 3ff0 300c 300c 300c 0ff0 0000 0000 ENDCHAR STARTCHAR C055 ENCODING 55 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 3ffc 300c 0030 0030 00c0 00c0 0300 0300 0000 0000 ENDCHAR STARTCHAR C056 ENCODING 56 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0ff0 300c 300c 0ff0 300c 300c 300c 0ff0 0000 0000 ENDCHAR STARTCHAR C057 ENCODING 57 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0ff0 300c 300c 300c 0ffc 000c 0030 0fc0 0000 0000 ENDCHAR STARTCHAR C058 ENCODING 58 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 03c0 03c0 0000 0000 03c0 03c0 0000 0000 ENDCHAR STARTCHAR C059 ENCODING 59 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 03c0 03c0 0000 0000 03c0 0300 0c00 0000 ENDCHAR STARTCHAR C060 ENCODING 60 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 003c 03c0 3c00 03c0 003c 0000 0000 0000 ENDCHAR STARTCHAR C061 ENCODING 61 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 3fff 0000 0000 3fff 0000 0000 0000 ENDCHAR STARTCHAR C062 ENCODING 62 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 3c00 03c0 003c 03c0 3c00 0000 0000 0000 ENDCHAR STARTCHAR C063 ENCODING 63 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0ff0 300c 000c 0030 00c0 00c0 0000 00c0 0000 0000 ENDCHAR STARTCHAR C064 ENCODING 64 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 03f0 0c0c 30c3 3333 30cc 0c00 03f0 0000 0000 ENDCHAR STARTCHAR C065 ENCODING 65 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 1ffe 3fff 3003 3003 3fff 3003 3003 0000 0000 ENDCHAR STARTCHAR C066 ENCODING 66 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 3ffc 3003 3003 3ffc 3003 3003 3ffc 0000 0000 ENDCHAR STARTCHAR C067 ENCODING 67 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 03fc 0c03 3000 3000 3000 0c03 03fc 0000 0000 ENDCHAR STARTCHAR C068 ENCODING 68 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 3ff0 300c 3003 3003 3003 300c 3ff0 0000 0000 ENDCHAR STARTCHAR C069 ENCODING 69 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 3fff 3000 3000 3ff0 3000 3000 3fff 0000 0000 ENDCHAR STARTCHAR C070 ENCODING 70 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 3fff 3000 3000 3ff0 3000 3000 3000 0000 0000 ENDCHAR STARTCHAR C071 ENCODING 71 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 03fc 0c03 3000 303f 3003 0c03 03ff 0000 0000 ENDCHAR STARTCHAR C072 ENCODING 72 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 3003 3003 3003 3fff 3003 3003 3003 0000 0000 ENDCHAR STARTCHAR C073 ENCODING 73 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0ffc 00c0 00c0 00c0 00c0 00c0 0ffc 0000 0000 ENDCHAR STARTCHAR C074 ENCODING 74 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 00fc 000c 000c 000c 300c 300c 0ff0 0000 0000 ENDCHAR STARTCHAR C075 ENCODING 75 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 300c 3030 30c0 3f00 30c0 3030 300c 0000 0000 ENDCHAR STARTCHAR C076 ENCODING 76 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 3000 3000 3000 3000 3000 3000 3ffc 0000 0000 ENDCHAR STARTCHAR C077 ENCODING 77 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 3003 3c0f 3333 30c3 3003 3003 3003 0000 0000 ENDCHAR STARTCHAR C078 ENCODING 78 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 3003 3c03 3303 30c3 3033 300f 3003 0000 0000 ENDCHAR STARTCHAR C079 ENCODING 79 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 03f0 0c0c 3003 3003 3003 0c0c 03f0 0000 0000 ENDCHAR STARTCHAR C080 ENCODING 80 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 3ffc 3003 3003 3ffc 3000 3000 3000 0000 0000 ENDCHAR STARTCHAR C081 ENCODING 81 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 03f0 0c0c 3003 3003 3003 0c0c 03f0 003f 0000 ENDCHAR STARTCHAR C082 ENCODING 82 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 3ffc 3003 3003 3ffc 3030 300c 3003 0000 0000 ENDCHAR STARTCHAR C083 ENCODING 83 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0ffc 3003 3000 0ffc 0003 3003 0ffc 0000 0000 ENDCHAR STARTCHAR C084 ENCODING 84 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 3fff 00c0 00c0 00c0 00c0 00c0 00c0 0000 0000 ENDCHAR STARTCHAR C085 ENCODING 85 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 3003 3003 3003 3003 3003 3003 0ffc 0000 0000 ENDCHAR STARTCHAR C086 ENCODING 86 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 3c0f 0c0c 0c0c 0330 0330 00c0 00c0 0000 0000 ENDCHAR STARTCHAR C087 ENCODING 87 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 3003 3003 3003 30c3 3333 3c0f 3003 0000 0000 ENDCHAR STARTCHAR C088 ENCODING 88 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 3003 0c0c 0330 00c0 0330 0c0c 3003 0000 0000 ENDCHAR STARTCHAR C089 ENCODING 89 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 3003 0c0c 0330 00c0 00c0 00c0 00c0 0000 0000 ENDCHAR STARTCHAR C090 ENCODING 90 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 3fff 000c 0030 00c0 0300 0c00 3fff 0000 0000 ENDCHAR STARTCHAR C091 ENCODING 91 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 00fc 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00fc 0000 ENDCHAR STARTCHAR C092 ENCODING 92 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP c000 3000 0c00 0c00 0300 00c0 0030 0030 000c 0003 ENDCHAR STARTCHAR C093 ENCODING 93 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0fc0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 0fc0 0000 ENDCHAR STARTCHAR C094 ENCODING 94 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 00c0 0330 0c0c 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C095 ENCODING 95 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 ffff ENDCHAR STARTCHAR C096 ENCODING 96 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 0000 0000 ffff 0000 0000 0000 0000 ENDCHAR STARTCHAR C097 ENCODING 97 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 0fff 3003 3003 300f 0ff3 0000 0000 ENDCHAR STARTCHAR C098 ENCODING 98 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 3000 3000 3000 3ffc 3003 3003 3003 3ffc 0000 0000 ENDCHAR STARTCHAR C099 ENCODING 99 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 0ffc 3000 3000 3000 0ffc 0000 0000 ENDCHAR STARTCHAR C100 ENCODING 100 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0003 0003 0003 0fff 3003 3003 3003 0fff 0000 0000 ENDCHAR STARTCHAR C101 ENCODING 101 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 0ffc 3003 3fff 3000 0ffc 0000 0000 ENDCHAR STARTCHAR C102 ENCODING 102 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 03fc 0c00 0c00 3fc0 0c00 0c00 0c00 0c00 0000 0000 ENDCHAR STARTCHAR C103 ENCODING 103 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 0fff 3003 3003 3003 0fff 0003 0ffc ENDCHAR STARTCHAR C104 ENCODING 104 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 3000 3000 3000 3ffc 3003 3003 3003 3003 0000 0000 ENDCHAR STARTCHAR C105 ENCODING 105 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 00c0 00c0 0000 0fc0 00c0 00c0 00c0 0ffc 0000 0000 ENDCHAR STARTCHAR C106 ENCODING 106 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 000c 000c 0000 03fc 000c 000c 000c 000c 000c 0ff0 ENDCHAR STARTCHAR C107 ENCODING 107 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 3000 3000 3000 303c 30c0 3f00 30c0 303c 0000 0000 ENDCHAR STARTCHAR C108 ENCODING 108 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 03c0 00c0 00c0 00c0 00c0 00c0 00c0 03f0 0000 0000 ENDCHAR STARTCHAR C109 ENCODING 109 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 3f3c 30c3 30c3 30c3 3003 0000 0000 ENDCHAR STARTCHAR C110 ENCODING 110 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 33fc 3c03 3003 3003 3003 0000 0000 ENDCHAR STARTCHAR C111 ENCODING 111 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 0ffc 3003 3003 3003 0ffc 0000 0000 ENDCHAR STARTCHAR C112 ENCODING 112 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 3ffc 3003 3003 3003 3ffc 3000 3000 ENDCHAR STARTCHAR C113 ENCODING 113 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 0fff 3003 3003 3003 0fff 0003 0003 ENDCHAR STARTCHAR C114 ENCODING 114 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 0cfc 0f00 0c00 0c00 0c00 0000 0000 ENDCHAR STARTCHAR C115 ENCODING 115 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 0ffc 3000 0ff0 000c 3ff0 0000 0000 ENDCHAR STARTCHAR C116 ENCODING 116 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0300 0300 0300 3ffc 0300 0300 0300 00fc 0000 0000 ENDCHAR STARTCHAR C117 ENCODING 117 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 3003 3003 3003 300f 0ff3 0000 0000 ENDCHAR STARTCHAR C118 ENCODING 118 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 3c0f 0c0c 0330 0330 00c0 0000 0000 ENDCHAR STARTCHAR C119 ENCODING 119 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 3003 30c3 30c3 30c3 0f3c 0000 0000 ENDCHAR STARTCHAR C120 ENCODING 120 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 3c0f 0330 00c0 0330 3c0f 0000 0000 ENDCHAR STARTCHAR C121 ENCODING 121 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 300c 300c 300c 300c 0ffc 000c 0ff0 ENDCHAR STARTCHAR C122 ENCODING 122 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 3ffc 0030 03c0 0c00 3ffc 0000 0000 ENDCHAR STARTCHAR C123 ENCODING 123 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP c000 c000 c000 c000 c000 c000 c000 c000 c000 c000 ENDCHAR STARTCHAR C124 ENCODING 124 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 ENDCHAR STARTCHAR C125 ENCODING 125 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 ENDCHAR STARTCHAR C126 ENCODING 126 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP ffff 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C127 ENCODING 127 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ENDCHAR ENDFONT xtel-3.3.0.orig/fonts/g016x20.bdf0100444001424500142340000005234006703332534015115 0ustar ericpersoSTARTFONT 2.1 COMMENT $Id: g016x20.bdf,v 1.3 1995/02/10 17:53:37 pierre Exp $ FONT -Lectra-Minitel-Medium-R-Normal--20-200-75-75-C-160-ISO2022-0 SIZE 20 75 75 FONTBOUNDINGBOX 16 20 0 -2 STARTPROPERTIES 19 FONTNAME_REGISTRY "" FOUNDRY "Lectra" FAMILY_NAME "Minitel" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 20 POINT_SIZE 200 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "C" AVERAGE_WIDTH 80 CHARSET_REGISTRY "ISO2022-0" CHARSET_ENCODING "1" FONT_ASCENT 18 FONT_DESCENT 2 DEFAULT_CHAR 32 COPYRIGHT "Copyright 1991 Lectra-Systemes" ENDPROPERTIES CHARS 116 STARTCHAR C000 ENCODING 0 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0F00 0F00 30C0 30C0 3000 3000 3000 3000 FF00 FF00 3000 3000 3000 3000 FFC0 FFC0 0000 0000 ENDCHAR STARTCHAR C001 ENCODING 1 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0C00 0C00 3C00 3C00 FFFF FFFF 3C00 3C00 0C00 0C00 0000 0000 0000 0000 ENDCHAR STARTCHAR C002 ENCODING 2 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 00C0 00C0 03F0 03F0 0FFC 0FFC 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 ENDCHAR STARTCHAR C003 ENCODING 3 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0030 0030 003C 003C FFFF FFFF 003C 003C 0030 0030 0000 0000 0000 0000 ENDCHAR STARTCHAR C004 ENCODING 4 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 0FFC 0FFC 03F0 03F0 00C0 00C0 ENDCHAR STARTCHAR C005 ENCODING 5 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3C00 3C00 C300 C300 C300 C300 3C00 3C00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C006 ENCODING 6 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0C00 0C00 0C00 0C00 FFC0 FFC0 0C00 0C00 0C00 0C00 FFC0 FFC0 0000 0000 0000 0000 ENDCHAR STARTCHAR C007 ENCODING 7 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 00C0 00C0 0000 0000 3FFF 3FFF 0000 0000 00C0 00C0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C008 ENCODING 8 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 C030 C030 C0C0 C0C0 C0C0 C0C0 C30C C30C C33C C33C 0CCC 0CCC 0CFF 0CFF 300C 300C 0000 0000 ENDCHAR STARTCHAR C009 ENCODING 9 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 C030 C030 C0C0 C0C0 C0C0 C0C0 C33C C33C C3C3 C3C3 0C0F 0C0F 0C30 0C30 30FF 30FF 0000 0000 ENDCHAR STARTCHAR C010 ENCODING 10 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 FC0C FC0C 0C30 0C30 3C30 3C30 0CCC 0CCC FCFC FCFC 03CC 03CC 03FF 03FF 0C0C 0C0C 0000 0000 ENDCHAR STARTCHAR C011 ENCODING 11 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0F00 0F00 03C0 03C0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C012 ENCODING 12 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 003C 003C 00F0 00F0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C013 ENCODING 13 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 03F0 03F0 0F3C 0F3C 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C014 ENCODING 14 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0F3C 0F3C 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C015 ENCODING 15 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 03C0 03C0 0FC0 0FC0 ENDCHAR STARTCHAR C016 ENCODING 16 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0FFF 0FFF 30C0 30C0 C0C0 C0C0 C0FC C0FC C0C0 C0C0 30C0 30C0 0FFF 0FFF 0000 0000 0000 0000 ENDCHAR STARTCHAR C017 ENCODING 17 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 3F3F 3F3F C0C3 C0C3 C0FF C0FF C0C0 C0C0 3F3F 3F3F 0000 0000 0000 0000 ENDCHAR STARTCHAR C018 ENCODING 18 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0F00 0F00 30C0 30C0 C0C0 C0C0 C300 C300 CF00 CF00 C0F0 C0F0 CC30 CC30 F3C0 F3C0 0000 0000 ENDCHAR STARTCHAR C019 ENCODING 19 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F00 3F00 C0C0 C0C0 F000 F000 3F00 3F00 C0C0 C0C0 C0C0 C0C0 3F00 3F00 03C0 03C0 C0C0 C0C0 3F00 3F00 ENDCHAR STARTCHAR C032 ENCODING 32 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C033 ENCODING 33 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 0000 0000 00c0 00c0 0000 0000 0000 0000 ENDCHAR STARTCHAR C034 ENCODING 34 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0330 0330 0330 0330 0330 0330 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C035 ENCODING 35 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0c30 0c30 0c30 0c30 3ffc 3ffc 0c30 0c30 0c30 0c30 3ffc 3ffc 0c30 0c30 0c30 0c30 0000 0000 0000 0000 ENDCHAR STARTCHAR C036 ENCODING 36 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 00c0 00c0 03fc 03fc 0cc0 0cc0 03f0 03f0 00cc 00cc 0ff0 0ff0 00c0 00c0 0000 0000 0000 0000 ENDCHAR STARTCHAR C037 ENCODING 37 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0c0c 0c0c 3330 3330 0c30 0c30 00c0 00c0 030c 030c 0333 0333 0c0c 0c0c 0000 0000 0000 0000 ENDCHAR STARTCHAR C038 ENCODING 38 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0fc0 0fc0 3000 3000 0c00 0c00 0f00 0f00 30cc 30cc 3030 3030 0fcc 0fcc 0000 0000 0000 0000 ENDCHAR STARTCHAR C039 ENCODING 39 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 00f0 00f0 00c0 00c0 0300 0300 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C040 ENCODING 40 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0030 0030 00c0 00c0 00c0 00c0 0300 0300 0300 0300 0300 0300 00c0 00c0 00c0 00c0 0030 0030 0000 0000 ENDCHAR STARTCHAR C041 ENCODING 41 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0300 0300 00c0 00c0 00c0 00c0 0030 0030 0030 0030 0030 0030 00c0 00c0 00c0 00c0 0300 0300 0000 0000 ENDCHAR STARTCHAR C042 ENCODING 42 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 00c0 00c0 00c0 00c0 3ccf 3ccf 03f0 03f0 00c0 00c0 0330 0330 0c0c 0c0c 0000 0000 0000 0000 ENDCHAR STARTCHAR C043 ENCODING 43 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 00c0 00c0 00c0 00c0 00c0 00c0 3fff 3fff 00c0 00c0 00c0 00c0 00c0 00c0 0000 0000 0000 0000 ENDCHAR STARTCHAR C044 ENCODING 44 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 03c0 03c0 0300 0300 0c00 0c00 0000 0000 ENDCHAR STARTCHAR C045 ENCODING 45 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 3fff 3fff 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C046 ENCODING 46 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 03c0 03c0 03c0 03c0 0000 0000 0000 0000 ENDCHAR STARTCHAR C047 ENCODING 47 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0003 0003 000c 000c 0030 0030 0030 0030 00c0 00c0 0300 0300 0c00 0c00 0c00 0c00 3000 3000 c000 c000 ENDCHAR STARTCHAR C048 ENCODING 48 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0ff0 0ff0 300c 300c 300c 300c 300c 300c 300c 300c 300c 300c 300c 300c 0ff0 0ff0 0000 0000 0000 0000 ENDCHAR STARTCHAR C049 ENCODING 49 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 00c0 00c0 03c0 03c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 0000 0000 0000 0000 ENDCHAR STARTCHAR C050 ENCODING 50 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0ff0 0ff0 300c 300c 000c 000c 0030 0030 00c0 00c0 0300 0300 0c00 0c00 3ffc 3ffc 0000 0000 0000 0000 ENDCHAR STARTCHAR C051 ENCODING 51 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0ff0 0ff0 300c 300c 000c 000c 03f0 03f0 000c 000c 000c 000c 300c 300c 0ff0 0ff0 0000 0000 0000 0000 ENDCHAR STARTCHAR C052 ENCODING 52 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 00f0 00f0 00f0 00f0 0330 0330 0330 0330 0c30 0c30 3ffc 3ffc 0030 0030 00fc 00fc 0000 0000 0000 0000 ENDCHAR STARTCHAR C053 ENCODING 53 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3ffc 3ffc 3000 3000 3000 3000 3ff0 3ff0 000c 000c 000c 000c 300c 300c 0ff0 0ff0 0000 0000 0000 0000 ENDCHAR STARTCHAR C054 ENCODING 54 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 03f0 03f0 0c00 0c00 3000 3000 3ff0 3ff0 300c 300c 300c 300c 300c 300c 0ff0 0ff0 0000 0000 0000 0000 ENDCHAR STARTCHAR C055 ENCODING 55 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3ffc 3ffc 300c 300c 0030 0030 0030 0030 00c0 00c0 00c0 00c0 0300 0300 0300 0300 0000 0000 0000 0000 ENDCHAR STARTCHAR C056 ENCODING 56 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0ff0 0ff0 300c 300c 300c 300c 0ff0 0ff0 300c 300c 300c 300c 300c 300c 0ff0 0ff0 0000 0000 0000 0000 ENDCHAR STARTCHAR C057 ENCODING 57 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0ff0 0ff0 300c 300c 300c 300c 300c 300c 0ffc 0ffc 000c 000c 0030 0030 0fc0 0fc0 0000 0000 0000 0000 ENDCHAR STARTCHAR C058 ENCODING 58 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 03c0 03c0 03c0 03c0 0000 0000 0000 0000 03c0 03c0 03c0 03c0 0000 0000 0000 0000 ENDCHAR STARTCHAR C059 ENCODING 59 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 03c0 03c0 03c0 03c0 0000 0000 0000 0000 03c0 03c0 0300 0300 0c00 0c00 0000 0000 ENDCHAR STARTCHAR C060 ENCODING 60 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 003c 003c 03c0 03c0 3c00 3c00 03c0 03c0 003c 003c 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C061 ENCODING 61 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 3fff 3fff 0000 0000 0000 0000 3fff 3fff 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C062 ENCODING 62 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 3c00 3c00 03c0 03c0 003c 003c 03c0 03c0 3c00 3c00 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C063 ENCODING 63 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0ff0 0ff0 300c 300c 000c 000c 0030 0030 00c0 00c0 00c0 00c0 0000 0000 00c0 00c0 0000 0000 0000 0000 ENDCHAR STARTCHAR C064 ENCODING 64 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 03f0 03f0 0c0c 0c0c 30c3 30c3 3333 3333 30cc 30cc 0c00 0c00 03f0 03f0 0000 0000 0000 0000 ENDCHAR STARTCHAR C065 ENCODING 65 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0ffc 1ffe 3003 3003 3003 3003 3fff 3fff 3003 3003 3003 3003 3003 3003 0000 0000 0000 0000 ENDCHAR STARTCHAR C066 ENCODING 66 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 3ffc 3ffc 3003 3003 3003 3003 3ffc 3ffc 3003 3003 3003 3003 3ffc 3ffc 0000 0000 0000 0000 ENDCHAR STARTCHAR C067 ENCODING 67 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 03fc 03fc 0c03 0c03 3000 3000 3000 3000 3000 3000 0c03 0c03 03fc 03fc 0000 0000 0000 0000 ENDCHAR STARTCHAR C068 ENCODING 68 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 3ff0 3ff0 300c 300c 3003 3003 3003 3003 3003 3003 300c 300c 3ff0 3ff0 0000 0000 0000 0000 ENDCHAR STARTCHAR C069 ENCODING 69 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 3fff 3fff 3000 3000 3000 3000 3ff0 3ff0 3000 3000 3000 3000 3fff 3fff 0000 0000 0000 0000 ENDCHAR STARTCHAR C070 ENCODING 70 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 3fff 3fff 3000 3000 3000 3000 3ff0 3ff0 3000 3000 3000 3000 3000 3000 0000 0000 0000 0000 ENDCHAR STARTCHAR C071 ENCODING 71 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 03fc 03fc 0c03 0c03 3000 3000 303f 303f 3003 3003 0c03 0c03 03ff 03ff 0000 0000 0000 0000 ENDCHAR STARTCHAR C072 ENCODING 72 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 3003 3003 3003 3003 3003 3003 3fff 3fff 3003 3003 3003 3003 3003 3003 0000 0000 0000 0000 ENDCHAR STARTCHAR C073 ENCODING 73 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0ffc 0ffc 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 0ffc 0ffc 0000 0000 0000 0000 ENDCHAR STARTCHAR C074 ENCODING 74 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 00fc 00fc 000c 000c 000c 000c 000c 000c 300c 300c 300c 300c 0ff0 0ff0 0000 0000 0000 0000 ENDCHAR STARTCHAR C075 ENCODING 75 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 300c 300c 3030 3030 30c0 30c0 3f00 3f00 30c0 30c0 3030 3030 300c 300c 0000 0000 0000 0000 ENDCHAR STARTCHAR C076 ENCODING 76 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3ffc 3ffc 0000 0000 0000 0000 ENDCHAR STARTCHAR C077 ENCODING 77 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 3003 3003 3c0f 3c0f 3333 3333 30c3 30c3 3003 3003 3003 3003 3003 3003 0000 0000 0000 0000 ENDCHAR STARTCHAR C078 ENCODING 78 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 3003 3003 3c03 3c03 3303 3303 30c3 30c3 3033 3033 300f 300f 3003 3003 0000 0000 0000 0000 ENDCHAR STARTCHAR C079 ENCODING 79 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 03f0 03f0 0c0c 0c0c 3003 3003 3003 3003 3003 3003 0c0c 0c0c 03f0 03f0 0000 0000 0000 0000 ENDCHAR STARTCHAR C080 ENCODING 80 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 3ffc 3ffc 3003 3003 3003 3003 3ffc 3ffc 3000 3000 3000 3000 3000 3000 0000 0000 0000 0000 ENDCHAR STARTCHAR C081 ENCODING 81 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 03f0 03f0 0c0c 0c0c 3003 3003 3003 3003 3003 3003 0c0c 0c0c 03f0 03f0 003f 003f 0000 0000 ENDCHAR STARTCHAR C082 ENCODING 82 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 3ffc 3ffc 3003 3003 3003 3003 3ffc 3ffc 3030 3030 300c 300c 3003 3003 0000 0000 0000 0000 ENDCHAR STARTCHAR C083 ENCODING 83 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0ffc 0ffc 3003 3003 3000 3000 0ffc 0ffc 0003 0003 3003 3003 0ffc 0ffc 0000 0000 0000 0000 ENDCHAR STARTCHAR C084 ENCODING 84 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 3fff 3fff 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 0000 0000 0000 0000 ENDCHAR STARTCHAR C085 ENCODING 85 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 0ffc 0ffc 0000 0000 0000 0000 ENDCHAR STARTCHAR C086 ENCODING 86 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 3c0f 3c0f 0c0c 0c0c 0c0c 0c0c 0330 0330 0330 0330 00c0 00c0 00c0 00c0 0000 0000 0000 0000 ENDCHAR STARTCHAR C087 ENCODING 87 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 3003 3003 3003 3003 3003 3003 30c3 30c3 3333 3333 3c0f 3c0f 3003 3003 0000 0000 0000 0000 ENDCHAR STARTCHAR C088 ENCODING 88 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 3003 3003 0c0c 0c0c 0330 0330 00c0 00c0 0330 0330 0c0c 0c0c 3003 3003 0000 0000 0000 0000 ENDCHAR STARTCHAR C089 ENCODING 89 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 3003 3003 0c0c 0c0c 0330 0330 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 0000 0000 0000 0000 ENDCHAR STARTCHAR C090 ENCODING 90 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 3fff 3fff 000c 000c 0030 0030 00c0 00c0 0300 0300 0c00 0c00 3fff 3fff 0000 0000 0000 0000 ENDCHAR STARTCHAR C091 ENCODING 91 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 00fc 00fc 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00fc 00fc 0000 0000 ENDCHAR STARTCHAR C092 ENCODING 92 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP c000 c000 3000 3000 0c00 0c00 0c00 0c00 0300 0300 00c0 00c0 0030 0030 0030 0030 000c 000c 0003 0003 ENDCHAR STARTCHAR C093 ENCODING 93 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0fc0 0fc0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 0fc0 0fc0 0000 0000 ENDCHAR STARTCHAR C094 ENCODING 94 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 00c0 00c0 0330 0330 0c0c 0c0c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C095 ENCODING 95 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ffff ENDCHAR STARTCHAR C096 ENCODING 96 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ffff ffff 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C097 ENCODING 97 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0fff 0fff 3003 3003 3003 3003 300f 300f 0ff3 0ff3 0000 0000 0000 0000 ENDCHAR STARTCHAR C098 ENCODING 98 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3000 3000 3000 3000 3000 3000 3ffc 3ffc 3003 3003 3003 3003 3003 3003 3ffc 3ffc 0000 0000 0000 0000 ENDCHAR STARTCHAR C099 ENCODING 99 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0ffc 0ffc 3000 3000 3000 3000 3000 3000 0ffc 0ffc 0000 0000 0000 0000 ENDCHAR STARTCHAR C100 ENCODING 100 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0003 0003 0003 0003 0003 0003 0fff 0fff 3003 3003 3003 3003 3003 3003 0fff 0fff 0000 0000 0000 0000 ENDCHAR STARTCHAR C101 ENCODING 101 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0ffc 0ffc 3003 3003 3fff 3fff 3000 3000 0ffc 0ffc 0000 0000 0000 0000 ENDCHAR STARTCHAR C102 ENCODING 102 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 03fc 03fc 0c00 0c00 0c00 0c00 3fc0 3fc0 0c00 0c00 0c00 0c00 0c00 0c00 0c00 0c00 0000 0000 0000 0000 ENDCHAR STARTCHAR C103 ENCODING 103 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0fff 0fff 3003 3003 3003 3003 3003 3003 0fff 0fff 0003 0003 0ffc 0ffc ENDCHAR STARTCHAR C104 ENCODING 104 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3000 3000 3000 3000 3000 3000 3ffc 3ffc 3003 3003 3003 3003 3003 3003 3003 3003 0000 0000 0000 0000 ENDCHAR STARTCHAR C105 ENCODING 105 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 00c0 00c0 00c0 00c0 0000 0000 0fc0 0fc0 00c0 00c0 00c0 00c0 00c0 00c0 0ffc 0ffc 0000 0000 0000 0000 ENDCHAR STARTCHAR C106 ENCODING 106 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 000c 000c 000c 000c 0000 0000 03fc 03fc 000c 000c 000c 000c 000c 000c 000c 000c 000c 000c 0ff0 0ff0 ENDCHAR STARTCHAR C107 ENCODING 107 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3000 3000 3000 3000 3000 3000 303c 303c 30c0 30c0 3f00 3f00 30c0 30c0 303c 303c 0000 0000 0000 0000 ENDCHAR STARTCHAR C108 ENCODING 108 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 03c0 03c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 03f0 03f0 0000 0000 0000 0000 ENDCHAR STARTCHAR C109 ENCODING 109 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 3f3c 3f3c 30c3 30c3 30c3 30c3 30c3 30c3 3003 3003 0000 0000 0000 0000 ENDCHAR STARTCHAR C110 ENCODING 110 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 33fc 33fc 3c03 3c03 3003 3003 3003 3003 3003 3003 0000 0000 0000 0000 ENDCHAR STARTCHAR C111 ENCODING 111 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0ffc 0ffc 3003 3003 3003 3003 3003 3003 0ffc 0ffc 0000 0000 0000 0000 ENDCHAR STARTCHAR C112 ENCODING 112 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 3ffc 3ffc 3003 3003 3003 3003 3003 3003 3ffc 3ffc 3000 3000 3000 3000 ENDCHAR STARTCHAR C113 ENCODING 113 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0fff 0fff 3003 3003 3003 3003 3003 3003 0fff 0fff 0003 0003 0003 0003 ENDCHAR STARTCHAR C114 ENCODING 114 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0cfc 0cfc 0f00 0f00 0c00 0c00 0c00 0c00 0c00 0c00 0000 0000 0000 0000 ENDCHAR STARTCHAR C115 ENCODING 115 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0ffc 0ffc 3000 3000 0ff0 0ff0 000c 000c 3ff0 3ff0 0000 0000 0000 0000 ENDCHAR STARTCHAR C116 ENCODING 116 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0300 0300 0300 0300 0300 0300 3ffc 3ffc 0300 0300 0300 0300 0300 0300 00fc 00fc 0000 0000 0000 0000 ENDCHAR STARTCHAR C117 ENCODING 117 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 3003 3003 3003 3003 3003 3003 300f 300f 0ff3 0ff3 0000 0000 0000 0000 ENDCHAR STARTCHAR C118 ENCODING 118 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 3c0f 3c0f 0c0c 0c0c 0330 0330 0330 0330 00c0 00c0 0000 0000 0000 0000 ENDCHAR STARTCHAR C119 ENCODING 119 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 3003 3003 30c3 30c3 30c3 30c3 30c3 30c3 0f3c 0f3c 0000 0000 0000 0000 ENDCHAR STARTCHAR C120 ENCODING 120 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 3c0f 3c0f 0330 0330 00c0 00c0 0330 0330 3c0f 3c0f 0000 0000 0000 0000 ENDCHAR STARTCHAR C121 ENCODING 121 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 300c 300c 300c 300c 300c 300c 300c 300c 0ffc 0ffc 000c 000c 0ff0 0ff0 ENDCHAR STARTCHAR C122 ENCODING 122 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 3ffc 3ffc 0030 0030 03c0 03c0 0c00 0c00 3ffc 3ffc 0000 0000 0000 0000 ENDCHAR STARTCHAR C123 ENCODING 123 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP c000 c000 c000 c000 c000 c000 c000 c000 c000 c000 c000 c000 c000 c000 c000 c000 c000 c000 c000 c000 ENDCHAR STARTCHAR C124 ENCODING 124 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 ENDCHAR STARTCHAR C125 ENCODING 125 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 ENDCHAR STARTCHAR C126 ENCODING 126 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP ffff ffff 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C127 ENCODING 127 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ENDCHAR ENDFONT xtel-3.3.0.orig/fonts/g016x40.bdf0100444001424500142340000010106106703332534015112 0ustar ericpersoSTARTFONT 2.1 COMMENT $Id: g016x40.bdf,v 1.2 1995/02/10 17:53:37 pierre Exp $ FONT -Lectra-Minitel-Medium-R-Normal--40-400-75-75-C-160-ISO2022-0 SIZE 40 75 75 FONTBOUNDINGBOX 16 40 0 -2 STARTPROPERTIES 19 FONTNAME_REGISTRY "" FOUNDRY "Lectra" FAMILY_NAME "Minitel" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 40 POINT_SIZE 400 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "C" AVERAGE_WIDTH 160 CHARSET_REGISTRY "ISO2022-0" CHARSET_ENCODING "1" FONT_ASCENT 38 FONT_DESCENT 2 DEFAULT_CHAR 32 COPYRIGHT "Copyright 1991 Lectra-Systemes" ENDPROPERTIES CHARS 116 STARTCHAR C000 ENCODING 0 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0F00 0F00 0F00 0F00 30C0 30C0 30C0 30C0 3000 3000 3000 3000 3000 3000 3000 3000 FF00 FF00 FF00 FF00 3000 3000 3000 3000 3000 3000 3000 3000 FFC0 FFC0 FFC0 FFC0 0000 0000 0000 0000 ENDCHAR STARTCHAR C001 ENCODING 1 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0C00 0C00 0C00 0C00 3C00 3C00 3C00 3C00 FFFF FFFF FFFF FFFF 3C00 3C00 3C00 3C00 0C00 0C00 0C00 0C00 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C002 ENCODING 2 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 00C0 00C0 00C0 00C0 03F0 03F0 03F0 03F0 0FFC 0FFC 0FFC 0FFC 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 ENDCHAR STARTCHAR C003 ENCODING 3 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0030 0030 0030 0030 003C 003C 003C 003C FFFF FFFF FFFF FFFF 003C 003C 003C 003C 0030 0030 0030 0030 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C004 ENCODING 4 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 0FFC 0FFC 0FFC 0FFC 03F0 03F0 03F0 03F0 00C0 00C0 00C0 00C0 ENDCHAR STARTCHAR C005 ENCODING 5 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 3C00 3C00 3C00 3C00 C300 C300 C300 C300 C300 C300 C300 C300 3C00 3C00 3C00 3C00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C006 ENCODING 6 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 FFC0 FFC0 FFC0 FFC0 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 FFC0 FFC0 FFC0 FFC0 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C007 ENCODING 7 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 00C0 00C0 00C0 00C0 0000 0000 0000 0000 3FFF 3FFF 3FFF 3FFF 0000 0000 0000 0000 00C0 00C0 00C0 00C0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C008 ENCODING 8 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 C030 C030 C030 C030 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C30C C30C C30C C30C C33C C33C C33C C33C 0CCC 0CCC 0CCC 0CCC 0CFF 0CFF 0CFF 0CFF 300C 300C 300C 300C 0000 0000 0000 0000 ENDCHAR STARTCHAR C009 ENCODING 9 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 C030 C030 C030 C030 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C33C C33C C33C C33C C3C3 C3C3 C3C3 C3C3 0C0F 0C0F 0C0F 0C0F 0C30 0C30 0C30 0C30 30FF 30FF 30FF 30FF 0000 0000 0000 0000 ENDCHAR STARTCHAR C010 ENCODING 10 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 FC0C FC0C FC0C FC0C 0C30 0C30 0C30 0C30 3C30 3C30 3C30 3C30 0CCC 0CCC 0CCC 0CCC FCFC FCFC FCFC FCFC 03CC 03CC 03CC 03CC 03FF 03FF 03FF 03FF 0C0C 0C0C 0C0C 0C0C 0000 0000 0000 0000 ENDCHAR STARTCHAR C011 ENCODING 11 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0F00 0F00 0F00 0F00 03C0 03C0 03C0 03C0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C012 ENCODING 12 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 003C 003C 003C 003C 00F0 00F0 00F0 00F0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C013 ENCODING 13 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 03F0 03F0 03F0 03F0 0F3C 0F3C 0F3C 0F3C 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C014 ENCODING 14 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0F3C 0F3C 0F3C 0F3C 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C015 ENCODING 15 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 03C0 03C0 03C0 03C0 0FC0 0FC0 0FC0 0FC0 ENDCHAR STARTCHAR C016 ENCODING 16 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0FFF 0FFF 0FFF 0FFF 30C0 30C0 30C0 30C0 C0C0 C0C0 C0C0 C0C0 C0FC C0FC C0FC C0FC C0C0 C0C0 C0C0 C0C0 30C0 30C0 30C0 30C0 0FFF 0FFF 0FFF 0FFF 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C017 ENCODING 17 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3F3F 3F3F 3F3F 3F3F C0C3 C0C3 C0C3 C0C3 C0FF C0FF C0FF C0FF C0C0 C0C0 C0C0 C0C0 3F3F 3F3F 3F3F 3F3F 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C018 ENCODING 18 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0F00 0F00 0F00 0F00 30C0 30C0 30C0 30C0 C0C0 C0C0 C0C0 C0C0 C300 C300 C300 C300 CF00 CF00 CF00 CF00 C0F0 C0F0 C0F0 C0F0 CC30 CC30 CC30 CC30 F3C0 F3C0 F3C0 F3C0 0000 0000 0000 0000 ENDCHAR STARTCHAR C019 ENCODING 19 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 3F00 3F00 3F00 3F00 C0C0 C0C0 C0C0 C0C0 F000 F000 F000 F000 3F00 3F00 3F00 3F00 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 3F00 3F00 3F00 3F00 03C0 03C0 03C0 03C0 C0C0 C0C0 C0C0 C0C0 3F00 3F00 3F00 3F00 ENDCHAR STARTCHAR C032 ENCODING 32 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C033 ENCODING 33 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 0000 0000 0000 0000 00c0 00c0 00c0 00c0 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C034 ENCODING 34 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0330 0330 0330 0330 0330 0330 0330 0330 0330 0330 0330 0330 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C035 ENCODING 35 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0c30 0c30 0c30 0c30 0c30 0c30 0c30 0c30 3ffc 3ffc 3ffc 3ffc 0c30 0c30 0c30 0c30 0c30 0c30 0c30 0c30 3ffc 3ffc 3ffc 3ffc 0c30 0c30 0c30 0c30 0c30 0c30 0c30 0c30 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C036 ENCODING 36 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 00c0 00c0 00c0 00c0 03fc 03fc 03fc 03fc 0cc0 0cc0 0cc0 0cc0 03f0 03f0 03f0 03f0 00cc 00cc 00cc 00cc 0ff0 0ff0 0ff0 0ff0 00c0 00c0 00c0 00c0 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C037 ENCODING 37 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0c0c 0c0c 0c0c 0c0c 3330 3330 3330 3330 0c30 0c30 0c30 0c30 00c0 00c0 00c0 00c0 030c 030c 030c 030c 0333 0333 0333 0333 0c0c 0c0c 0c0c 0c0c 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C038 ENCODING 38 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0fc0 0fc0 0fc0 0fc0 3000 3000 3000 3000 0c00 0c00 0c00 0c00 0f00 0f00 0f00 0f00 30cc 30cc 30cc 30cc 3030 3030 3030 3030 0fcc 0fcc 0fcc 0fcc 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C039 ENCODING 39 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 00f0 00f0 00f0 00f0 00c0 00c0 00c0 00c0 0300 0300 0300 0300 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C040 ENCODING 40 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0030 0030 0030 0030 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 0300 0300 0300 0300 0300 0300 0300 0300 0300 0300 0300 0300 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 0030 0030 0030 0030 0000 0000 0000 0000 ENDCHAR STARTCHAR C041 ENCODING 41 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0300 0300 0300 0300 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 0030 0030 0030 0030 0030 0030 0030 0030 0030 0030 0030 0030 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 0300 0300 0300 0300 0000 0000 0000 0000 ENDCHAR STARTCHAR C042 ENCODING 42 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 3ccf 3ccf 3ccf 3ccf 03f0 03f0 03f0 03f0 00c0 00c0 00c0 00c0 0330 0330 0330 0330 0c0c 0c0c 0c0c 0c0c 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C043 ENCODING 43 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 3fff 3fff 3fff 3fff 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C044 ENCODING 44 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 03c0 03c0 03c0 03c0 0300 0300 0300 0300 0c00 0c00 0c00 0c00 0000 0000 0000 0000 ENDCHAR STARTCHAR C045 ENCODING 45 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3fff 3fff 3fff 3fff 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C046 ENCODING 46 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 03c0 03c0 03c0 03c0 03c0 03c0 03c0 03c0 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C047 ENCODING 47 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0003 0003 0003 0003 000c 000c 000c 000c 0030 0030 0030 0030 0030 0030 0030 0030 00c0 00c0 00c0 00c0 0300 0300 0300 0300 0c00 0c00 0c00 0c00 0c00 0c00 0c00 0c00 3000 3000 3000 3000 c000 c000 c000 c000 ENDCHAR STARTCHAR C048 ENCODING 48 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0ff0 0ff0 0ff0 0ff0 300c 300c 300c 300c 300c 300c 300c 300c 300c 300c 300c 300c 300c 300c 300c 300c 300c 300c 300c 300c 300c 300c 300c 300c 0ff0 0ff0 0ff0 0ff0 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C049 ENCODING 49 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 00c0 00c0 00c0 00c0 03c0 03c0 03c0 03c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C050 ENCODING 50 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0ff0 0ff0 0ff0 0ff0 300c 300c 300c 300c 000c 000c 000c 000c 0030 0030 0030 0030 00c0 00c0 00c0 00c0 0300 0300 0300 0300 0c00 0c00 0c00 0c00 3ffc 3ffc 3ffc 3ffc 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C051 ENCODING 51 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0ff0 0ff0 0ff0 0ff0 300c 300c 300c 300c 000c 000c 000c 000c 03f0 03f0 03f0 03f0 000c 000c 000c 000c 000c 000c 000c 000c 300c 300c 300c 300c 0ff0 0ff0 0ff0 0ff0 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C052 ENCODING 52 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 00f0 00f0 00f0 00f0 00f0 00f0 00f0 00f0 0330 0330 0330 0330 0330 0330 0330 0330 0c30 0c30 0c30 0c30 3ffc 3ffc 3ffc 3ffc 0030 0030 0030 0030 00fc 00fc 00fc 00fc 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C053 ENCODING 53 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 3ffc 3ffc 3ffc 3ffc 3000 3000 3000 3000 3000 3000 3000 3000 3ff0 3ff0 3ff0 3ff0 000c 000c 000c 000c 000c 000c 000c 000c 300c 300c 300c 300c 0ff0 0ff0 0ff0 0ff0 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C054 ENCODING 54 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 03f0 03f0 03f0 03f0 0c00 0c00 0c00 0c00 3000 3000 3000 3000 3ff0 3ff0 3ff0 3ff0 300c 300c 300c 300c 300c 300c 300c 300c 300c 300c 300c 300c 0ff0 0ff0 0ff0 0ff0 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C055 ENCODING 55 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 3ffc 3ffc 3ffc 3ffc 300c 300c 300c 300c 0030 0030 0030 0030 0030 0030 0030 0030 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 0300 0300 0300 0300 0300 0300 0300 0300 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C056 ENCODING 56 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0ff0 0ff0 0ff0 0ff0 300c 300c 300c 300c 300c 300c 300c 300c 0ff0 0ff0 0ff0 0ff0 300c 300c 300c 300c 300c 300c 300c 300c 300c 300c 300c 300c 0ff0 0ff0 0ff0 0ff0 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C057 ENCODING 57 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0ff0 0ff0 0ff0 0ff0 300c 300c 300c 300c 300c 300c 300c 300c 300c 300c 300c 300c 0ffc 0ffc 0ffc 0ffc 000c 000c 000c 000c 0030 0030 0030 0030 0fc0 0fc0 0fc0 0fc0 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C058 ENCODING 58 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 03c0 03c0 03c0 03c0 03c0 03c0 03c0 03c0 0000 0000 0000 0000 0000 0000 0000 0000 03c0 03c0 03c0 03c0 03c0 03c0 03c0 03c0 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C059 ENCODING 59 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 03c0 03c0 03c0 03c0 03c0 03c0 03c0 03c0 0000 0000 0000 0000 0000 0000 0000 0000 03c0 03c0 03c0 03c0 0300 0300 0300 0300 0c00 0c00 0c00 0c00 0000 0000 0000 0000 ENDCHAR STARTCHAR C060 ENCODING 60 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 003c 003c 003c 003c 03c0 03c0 03c0 03c0 3c00 3c00 3c00 3c00 03c0 03c0 03c0 03c0 003c 003c 003c 003c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C061 ENCODING 61 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3fff 3fff 3fff 3fff 0000 0000 0000 0000 0000 0000 0000 0000 3fff 3fff 3fff 3fff 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C062 ENCODING 62 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 3c00 3c00 3c00 3c00 03c0 03c0 03c0 03c0 003c 003c 003c 003c 03c0 03c0 03c0 03c0 3c00 3c00 3c00 3c00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C063 ENCODING 63 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0ff0 0ff0 0ff0 0ff0 300c 300c 300c 300c 000c 000c 000c 000c 0030 0030 0030 0030 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 0000 0000 0000 0000 00c0 00c0 00c0 00c0 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C064 ENCODING 64 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 03f0 03f0 03f0 03f0 0c0c 0c0c 0c0c 0c0c 30c3 30c3 30c3 30c3 3333 3333 3333 3333 30cc 30cc 30cc 30cc 0c00 0c00 0c00 0c00 03f0 03f0 03f0 03f0 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C065 ENCODING 65 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0ffc 1ffe 3fff 3003 3003 3003 3003 3003 3003 3003 3003 3003 3fff 3fff 3fff 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C066 ENCODING 66 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 3ffc 3ffc 3ffc 3ffc 3003 3003 3003 3003 3003 3003 3003 3003 3ffc 3ffc 3ffc 3ffc 3003 3003 3003 3003 3003 3003 3003 3003 3ffc 3ffc 3ffc 3ffc 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C067 ENCODING 67 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 03fc 03fc 03fc 03fc 0c03 0c03 0c03 0c03 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 0c03 0c03 0c03 0c03 03fc 03fc 03fc 03fc 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C068 ENCODING 68 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 3ff0 3ff0 3ff0 3ff0 300c 300c 300c 300c 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 300c 300c 300c 300c 3ff0 3ff0 3ff0 3ff0 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C069 ENCODING 69 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 3fff 3fff 3fff 3fff 3000 3000 3000 3000 3000 3000 3000 3000 3ff0 3ff0 3ff0 3ff0 3000 3000 3000 3000 3000 3000 3000 3000 3fff 3fff 3fff 3fff 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C070 ENCODING 70 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 3fff 3fff 3fff 3fff 3000 3000 3000 3000 3000 3000 3000 3000 3ff0 3ff0 3ff0 3ff0 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C071 ENCODING 71 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 03fc 03fc 03fc 03fc 0c03 0c03 0c03 0c03 3000 3000 3000 3000 303f 303f 303f 303f 3003 3003 3003 3003 0c03 0c03 0c03 0c03 03ff 03ff 03ff 03ff 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C072 ENCODING 72 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3fff 3fff 3fff 3fff 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C073 ENCODING 73 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0ffc 0ffc 0ffc 0ffc 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 0ffc 0ffc 0ffc 0ffc 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C074 ENCODING 74 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 00fc 00fc 00fc 00fc 000c 000c 000c 000c 000c 000c 000c 000c 000c 000c 000c 000c 300c 300c 300c 300c 300c 300c 300c 300c 0ff0 0ff0 0ff0 0ff0 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C075 ENCODING 75 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 300c 300c 300c 300c 3030 3030 3030 3030 30c0 30c0 30c0 30c0 3f00 3f00 3f00 3f00 30c0 30c0 30c0 30c0 3030 3030 3030 3030 300c 300c 300c 300c 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C076 ENCODING 76 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3ffc 3ffc 3ffc 3ffc 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C077 ENCODING 77 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 3003 3003 3003 3003 3c0f 3c0f 3c0f 3c0f 3333 3333 3333 3333 30c3 30c3 30c3 30c3 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C078 ENCODING 78 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 3003 3003 3003 3003 3c03 3c03 3c03 3c03 3303 3303 3303 3303 30c3 30c3 30c3 30c3 3033 3033 3033 3033 300f 300f 300f 300f 3003 3003 3003 3003 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C079 ENCODING 79 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 03f0 03f0 03f0 03f0 0c0c 0c0c 0c0c 0c0c 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 0c0c 0c0c 0c0c 0c0c 03f0 03f0 03f0 03f0 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C080 ENCODING 80 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 3ffc 3ffc 3ffc 3ffc 3003 3003 3003 3003 3003 3003 3003 3003 3ffc 3ffc 3ffc 3ffc 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C081 ENCODING 81 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 03f0 03f0 03f0 03f0 0c0c 0c0c 0c0c 0c0c 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 0c0c 0c0c 0c0c 0c0c 03f0 03f0 03f0 03f0 003f 003f 003f 003f 0000 0000 0000 0000 ENDCHAR STARTCHAR C082 ENCODING 82 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 3ffc 3ffc 3ffc 3ffc 3003 3003 3003 3003 3003 3003 3003 3003 3ffc 3ffc 3ffc 3ffc 3030 3030 3030 3030 300c 300c 300c 300c 3003 3003 3003 3003 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C083 ENCODING 83 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0ffc 0ffc 0ffc 0ffc 3003 3003 3003 3003 3000 3000 3000 3000 0ffc 0ffc 0ffc 0ffc 0003 0003 0003 0003 3003 3003 3003 3003 0ffc 0ffc 0ffc 0ffc 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C084 ENCODING 84 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 3fff 3fff 3fff 3fff 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C085 ENCODING 85 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 0ffc 0ffc 0ffc 0ffc 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C086 ENCODING 86 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 3c0f 3c0f 3c0f 3c0f 0c0c 0c0c 0c0c 0c0c 0c0c 0c0c 0c0c 0c0c 0330 0330 0330 0330 0330 0330 0330 0330 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C087 ENCODING 87 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 30c3 30c3 30c3 30c3 3333 3333 3333 3333 3c0f 3c0f 3c0f 3c0f 3003 3003 3003 3003 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C088 ENCODING 88 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 3003 3003 3003 3003 0c0c 0c0c 0c0c 0c0c 0330 0330 0330 0330 00c0 00c0 00c0 00c0 0330 0330 0330 0330 0c0c 0c0c 0c0c 0c0c 3003 3003 3003 3003 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C089 ENCODING 89 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 3003 3003 3003 3003 0c0c 0c0c 0c0c 0c0c 0330 0330 0330 0330 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C090 ENCODING 90 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 3fff 3fff 3fff 3fff 000c 000c 000c 000c 0030 0030 0030 0030 00c0 00c0 00c0 00c0 0300 0300 0300 0300 0c00 0c00 0c00 0c00 3fff 3fff 3fff 3fff 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C091 ENCODING 91 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 00fc 00fc 00fc 00fc 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00fc 00fc 00fc 00fc 0000 0000 0000 0000 ENDCHAR STARTCHAR C092 ENCODING 92 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP c000 c000 c000 c000 3000 3000 3000 3000 0c00 0c00 0c00 0c00 0c00 0c00 0c00 0c00 0300 0300 0300 0300 00c0 00c0 00c0 00c0 0030 0030 0030 0030 0030 0030 0030 0030 000c 000c 000c 000c 0003 0003 0003 0003 ENDCHAR STARTCHAR C093 ENCODING 93 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0fc0 0fc0 0fc0 0fc0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 0fc0 0fc0 0fc0 0fc0 0000 0000 0000 0000 ENDCHAR STARTCHAR C094 ENCODING 94 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 00c0 00c0 00c0 00c0 0330 0330 0330 0330 0c0c 0c0c 0c0c 0c0c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C095 ENCODING 95 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ffff ENDCHAR STARTCHAR C096 ENCODING 96 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ffff ffff ffff ffff 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C097 ENCODING 97 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0fff 0fff 0fff 0fff 3003 3003 3003 3003 3003 3003 3003 3003 300f 300f 300f 300f 0ff3 0ff3 0ff3 0ff3 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C098 ENCODING 98 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3ffc 3ffc 3ffc 3ffc 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3ffc 3ffc 3ffc 3ffc 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C099 ENCODING 99 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0ffc 0ffc 0ffc 0ffc 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 0ffc 0ffc 0ffc 0ffc 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C100 ENCODING 100 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0fff 0fff 0fff 0fff 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 0fff 0fff 0fff 0fff 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C101 ENCODING 101 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0ffc 0ffc 0ffc 0ffc 3003 3003 3003 3003 3fff 3fff 3fff 3fff 3000 3000 3000 3000 0ffc 0ffc 0ffc 0ffc 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C102 ENCODING 102 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 03fc 03fc 03fc 03fc 0c00 0c00 0c00 0c00 0c00 0c00 0c00 0c00 3fc0 3fc0 3fc0 3fc0 0c00 0c00 0c00 0c00 0c00 0c00 0c00 0c00 0c00 0c00 0c00 0c00 0c00 0c00 0c00 0c00 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C103 ENCODING 103 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0fff 0fff 0fff 0fff 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 0fff 0fff 0fff 0fff 0003 0003 0003 0003 0ffc 0ffc 0ffc 0ffc ENDCHAR STARTCHAR C104 ENCODING 104 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3ffc 3ffc 3ffc 3ffc 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C105 ENCODING 105 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 0000 0000 0000 0000 0fc0 0fc0 0fc0 0fc0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 0ffc 0ffc 0ffc 0ffc 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C106 ENCODING 106 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 000c 000c 000c 000c 000c 000c 000c 000c 0000 0000 0000 0000 03fc 03fc 03fc 03fc 000c 000c 000c 000c 000c 000c 000c 000c 000c 000c 000c 000c 000c 000c 000c 000c 000c 000c 000c 000c 0ff0 0ff0 0ff0 0ff0 ENDCHAR STARTCHAR C107 ENCODING 107 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 303c 303c 303c 303c 30c0 30c0 30c0 30c0 3f00 3f00 3f00 3f00 30c0 30c0 30c0 30c0 303c 303c 303c 303c 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C108 ENCODING 108 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 03c0 03c0 03c0 03c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 03f0 03f0 03f0 03f0 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C109 ENCODING 109 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3f3c 3f3c 3f3c 3f3c 30c3 30c3 30c3 30c3 30c3 30c3 30c3 30c3 30c3 30c3 30c3 30c3 3003 3003 3003 3003 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C110 ENCODING 110 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 33fc 33fc 33fc 33fc 3c03 3c03 3c03 3c03 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C111 ENCODING 111 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0ffc 0ffc 0ffc 0ffc 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 0ffc 0ffc 0ffc 0ffc 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C112 ENCODING 112 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3ffc 3ffc 3ffc 3ffc 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3ffc 3ffc 3ffc 3ffc 3000 3000 3000 3000 3000 3000 3000 3000 ENDCHAR STARTCHAR C113 ENCODING 113 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0fff 0fff 0fff 0fff 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 0fff 0fff 0fff 0fff 0003 0003 0003 0003 0003 0003 0003 0003 ENDCHAR STARTCHAR C114 ENCODING 114 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0cfc 0cfc 0cfc 0cfc 0f00 0f00 0f00 0f00 0c00 0c00 0c00 0c00 0c00 0c00 0c00 0c00 0c00 0c00 0c00 0c00 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C115 ENCODING 115 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0ffc 0ffc 0ffc 0ffc 3000 3000 3000 3000 0ff0 0ff0 0ff0 0ff0 000c 000c 000c 000c 3ff0 3ff0 3ff0 3ff0 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C116 ENCODING 116 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0300 0300 0300 0300 0300 0300 0300 0300 0300 0300 0300 0300 3ffc 3ffc 3ffc 3ffc 0300 0300 0300 0300 0300 0300 0300 0300 0300 0300 0300 0300 00fc 00fc 00fc 00fc 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C117 ENCODING 117 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 300f 300f 300f 300f 0ff3 0ff3 0ff3 0ff3 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C118 ENCODING 118 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3c0f 3c0f 3c0f 3c0f 0c0c 0c0c 0c0c 0c0c 0330 0330 0330 0330 0330 0330 0330 0330 00c0 00c0 00c0 00c0 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C119 ENCODING 119 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3003 3003 3003 3003 30c3 30c3 30c3 30c3 30c3 30c3 30c3 30c3 30c3 30c3 30c3 30c3 0f3c 0f3c 0f3c 0f3c 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C120 ENCODING 120 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3c0f 3c0f 3c0f 3c0f 0330 0330 0330 0330 00c0 00c0 00c0 00c0 0330 0330 0330 0330 3c0f 3c0f 3c0f 3c0f 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C121 ENCODING 121 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 300c 300c 300c 300c 300c 300c 300c 300c 300c 300c 300c 300c 300c 300c 300c 300c 0ffc 0ffc 0ffc 0ffc 000c 000c 000c 000c 0ff0 0ff0 0ff0 0ff0 ENDCHAR STARTCHAR C122 ENCODING 122 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3ffc 3ffc 3ffc 3ffc 0030 0030 0030 0030 03c0 03c0 03c0 03c0 0c00 0c00 0c00 0c00 3ffc 3ffc 3ffc 3ffc 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C123 ENCODING 123 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 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 c000 c000 c000 c000 c000 c000 c000 c000 c000 c000 c000 c000 ENDCHAR STARTCHAR C124 ENCODING 124 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 00c0 ENDCHAR STARTCHAR C125 ENCODING 125 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 ENDCHAR STARTCHAR C126 ENCODING 126 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP ffff ffff ffff ffff 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C127 ENCODING 127 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ENDCHAR ENDFONT xtel-3.3.0.orig/fonts/g032x20.bdf0100444001424500142340000007444006703332534015120 0ustar ericpersoSTARTFONT 2.1 COMMENT $Id: g032x20.bdf,v 1.3 1995/02/10 17:53:37 pierre Exp $ FONT -Lectra-Minitel-Medium-R-Normal--20-200-75-75-C-320-ISO2022-0 SIZE 20 75 75 FONTBOUNDINGBOX 32 20 0 -2 STARTPROPERTIES 19 FONTNAME_REGISTRY "" FOUNDRY "Lectra" FAMILY_NAME "Minitel" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 20 POINT_SIZE 200 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "C" AVERAGE_WIDTH 80 CHARSET_REGISTRY "ISO2022-0" CHARSET_ENCODING "1" FONT_ASCENT 18 FONT_DESCENT 2 DEFAULT_CHAR 32 COPYRIGHT "Copyright 1991 Lectra-Systemes" ENDPROPERTIES CHARS 116 STARTCHAR C000 ENCODING 0 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00FF0000 00FF0000 0F00F000 0F00F000 0F000000 0F000000 0F000000 0F000000 FFFF0000 FFFF0000 0F000000 0F000000 0F000000 0F000000 FFFFF000 FFFFF000 00000000 00000000 ENDCHAR STARTCHAR C001 ENCODING 1 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00F00000 00F00000 0FF00000 0FF00000 FFFFFFFF FFFFFFFF 0FF00000 0FF00000 00F00000 00F00000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C002 ENCODING 2 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0000F000 0000F000 000FFF00 000FFF00 00FFFFF0 00FFFFF0 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 ENDCHAR STARTCHAR C003 ENCODING 3 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000F00 00000F00 00000FF0 00000FF0 FFFFFFFF FFFFFFFF 00000FF0 00000FF0 00000F00 00000F00 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C004 ENCODING 4 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 00FFFFF0 00FFFFF0 000FFF00 000FFF00 0000F000 0000F000 ENDCHAR STARTCHAR C005 ENCODING 5 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 0FF00000 0FF00000 F00F0000 F00F0000 F00F0000 F00F0000 0FF00000 0FF00000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C006 ENCODING 6 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00F00000 00F00000 00F00000 00F00000 FFFFF000 FFFFF000 00F00000 00F00000 00F00000 00F00000 FFFFF000 FFFFF000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C007 ENCODING 7 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 0000F000 0000F000 00000000 00000000 0FFFFFFF 0FFFFFFF 00000000 00000000 0000F000 0000F000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C008 ENCODING 8 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 F0000F00 F0000F00 F000F000 F000F000 F000F000 F000F000 F00F00F0 F00F00F0 F00F0FF0 F00F0FF0 00F0F0F0 00F0F0F0 00F0FFFF 00F0FFFF 0F0000F0 0F0000F0 00000000 00000000 ENDCHAR STARTCHAR C009 ENCODING 9 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 F0000F00 F0000F00 F000F000 F000F000 F000F000 F000F000 F00F0FF0 F00F0FF0 F00FF00F F00FF00F 00F000FF 00F000FF 00F00F00 00F00F00 0F00FFFF 0F00FFFF 00000000 00000000 ENDCHAR STARTCHAR C010 ENCODING 10 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 FFF000F0 FFF000F0 00F00F00 00F00F00 0FF00F00 0FF00F00 00F0F0F0 00F0F0F0 FFF0FFF0 FFF0FFF0 000FF0F0 000FF0F0 000FFFFF 000FFFFF 00F000F0 00F000F0 00000000 00000000 ENDCHAR STARTCHAR C011 ENCODING 11 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00FF0000 00FF0000 000FF000 000FF000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C012 ENCODING 12 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000FF0 00000FF0 0000FF00 0000FF00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C013 ENCODING 13 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 000FFF00 000FFF00 00FF0FF0 00FF0FF0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C014 ENCODING 14 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00FF0FF0 00FF0FF0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C015 ENCODING 15 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 000FF000 000FF000 00FFF000 00FFF000 ENDCHAR STARTCHAR C016 ENCODING 16 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00FFFFFF 00FFFFFF 0F00F000 0F00F000 F000F000 F000F000 F000FFF0 F000FFF0 F000F000 F000F000 0F00F000 0F00F000 00FFFFFF 00FFFFFF 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C017 ENCODING 17 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 0FFF0FFF 0FFF0FFF F000F00F F000F00F F000FFFF F000FFFF F000F000 F000F000 0FFF0FFF 0FFF0FFF 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C018 ENCODING 18 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00FF0000 00FF0000 0F00F000 0F00F000 F000F000 F000F000 F00F0000 F00F0000 F0FF0000 F0FF0000 F000FF00 F000FF00 F0F00F00 F0F00F00 FF0FF000 FF0FF000 00000000 00000000 ENDCHAR STARTCHAR C019 ENCODING 19 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 0FFF0000 0FFF0000 F000F000 F000F000 FF000000 FF000000 0FFF0000 0FFF0000 F000F000 F000F000 F000F000 F000F000 0FFF0000 0FFF0000 000FF000 000FF000 F000F000 F000F000 0FFF0000 0FFF0000 ENDCHAR STARTCHAR C032 ENCODING 32 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C033 ENCODING 33 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 00000000 00000000 0000f000 0000f000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C034 ENCODING 34 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 000f0f00 000f0f00 000f0f00 000f0f00 000f0f00 000f0f00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C035 ENCODING 35 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00f00f00 00f00f00 00f00f00 00f00f00 0ffffff0 0ffffff0 00f00f00 00f00f00 00f00f00 00f00f00 0ffffff0 0ffffff0 00f00f00 00f00f00 00f00f00 00f00f00 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C036 ENCODING 36 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0000f000 0000f000 000ffff0 000ffff0 00f0f000 00f0f000 000fff00 000fff00 0000f0f0 0000f0f0 00ffff00 00ffff00 0000f000 0000f000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C037 ENCODING 37 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00f000f0 00f000f0 0f0f0f00 0f0f0f00 00f00f00 00f00f00 0000f000 0000f000 000f00f0 000f00f0 000f0f0f 000f0f0f 00f000f0 00f000f0 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C038 ENCODING 38 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00fff000 00fff000 0f000000 0f000000 00f00000 00f00000 00ff0000 00ff0000 0f00f0f0 0f00f0f0 0f000f00 0f000f00 00fff0f0 00fff0f0 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C039 ENCODING 39 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 0000ff00 0000ff00 0000f000 0000f000 000f0000 000f0000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C040 ENCODING 40 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000f00 00000f00 0000f000 0000f000 0000f000 0000f000 000f0000 000f0000 000f0000 000f0000 000f0000 000f0000 0000f000 0000f000 0000f000 0000f000 00000f00 00000f00 00000000 00000000 ENDCHAR STARTCHAR C041 ENCODING 41 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 000f0000 000f0000 0000f000 0000f000 0000f000 0000f000 00000f00 00000f00 00000f00 00000f00 00000f00 00000f00 0000f000 0000f000 0000f000 0000f000 000f0000 000f0000 00000000 00000000 ENDCHAR STARTCHAR C042 ENCODING 42 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0000f000 0000f000 0000f000 0000f000 0ff0f0ff 0ff0f0ff 000fff00 000fff00 0000f000 0000f000 000f0f00 000f0f00 00f000f0 00f000f0 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C043 ENCODING 43 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0fffffff 0fffffff 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C044 ENCODING 44 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 000ff000 000ff000 000f0000 000f0000 00f00000 00f00000 00000000 00000000 ENDCHAR STARTCHAR C045 ENCODING 45 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0fffffff 0fffffff 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C046 ENCODING 46 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 000ff000 000ff000 000ff000 000ff000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C047 ENCODING 47 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 0000000f 0000000f 000000f0 000000f0 00000f00 00000f00 00000f00 00000f00 0000f000 0000f000 000f0000 000f0000 00f00000 00f00000 00f00000 00f00000 0f000000 0f000000 f0000000 f0000000 ENDCHAR STARTCHAR C048 ENCODING 48 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00ffff00 00ffff00 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 00ffff00 00ffff00 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C049 ENCODING 49 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 0000f000 0000f000 000ff000 000ff000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C050 ENCODING 50 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00ffff00 00ffff00 0f0000f0 0f0000f0 000000f0 000000f0 00000f00 00000f00 0000f000 0000f000 000f0000 000f0000 00f00000 00f00000 0ffffff0 0ffffff0 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C051 ENCODING 51 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00ffff00 00ffff00 0f0000f0 0f0000f0 000000f0 000000f0 000fff00 000fff00 000000f0 000000f0 000000f0 000000f0 0f0000f0 0f0000f0 00ffff00 00ffff00 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C052 ENCODING 52 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 0000ff00 0000ff00 0000ff00 0000ff00 000f0f00 000f0f00 000f0f00 000f0f00 00f00f00 00f00f00 0ffffff0 0ffffff0 00000f00 00000f00 0000fff0 0000fff0 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C053 ENCODING 53 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 0ffffff0 0ffffff0 0f000000 0f000000 0f000000 0f000000 0fffff00 0fffff00 000000f0 000000f0 000000f0 000000f0 0f0000f0 0f0000f0 00ffff00 00ffff00 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C054 ENCODING 54 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 000fff00 000fff00 00f00000 00f00000 0f000000 0f000000 0fffff00 0fffff00 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 00ffff00 00ffff00 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C055 ENCODING 55 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 0ffffff0 0ffffff0 0f0000f0 0f0000f0 00000f00 00000f00 00000f00 00000f00 0000f000 0000f000 0000f000 0000f000 000f0000 000f0000 000f0000 000f0000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C056 ENCODING 56 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00ffff00 00ffff00 0f0000f0 0f0000f0 0f0000f0 0f0000f0 00ffff00 00ffff00 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 00ffff00 00ffff00 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C057 ENCODING 57 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00ffff00 00ffff00 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 00fffff0 00fffff0 000000f0 000000f0 00000f00 00000f00 00fff000 00fff000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C058 ENCODING 58 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 000ff000 000ff000 000ff000 000ff000 00000000 00000000 00000000 00000000 000ff000 000ff000 000ff000 000ff000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C059 ENCODING 59 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 000ff000 000ff000 000ff000 000ff000 00000000 00000000 00000000 00000000 000ff000 000ff000 000f0000 000f0000 00f00000 00f00000 00000000 00000000 ENDCHAR STARTCHAR C060 ENCODING 60 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000ff0 00000ff0 000ff000 000ff000 0ff00000 0ff00000 000ff000 000ff000 00000ff0 00000ff0 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C061 ENCODING 61 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 0fffffff 0fffffff 00000000 00000000 00000000 00000000 0fffffff 0fffffff 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C062 ENCODING 62 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 0ff00000 0ff00000 000ff000 000ff000 00000ff0 00000ff0 000ff000 000ff000 0ff00000 0ff00000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C063 ENCODING 63 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00ffff00 00ffff00 0f0000f0 0f0000f0 000000f0 000000f0 00000f00 00000f00 0000f000 0000f000 0000f000 0000f000 00000000 00000000 0000f000 0000f000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C064 ENCODING 64 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 000fff00 000fff00 00f000f0 00f000f0 0f00f00f 0f00f00f 0f0f0f0f 0f0f0f0f 0f00f0f0 0f00f0f0 00f00000 00f00000 000fff00 000fff00 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C065 ENCODING 65 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 03fffffc 07fffffe 0f00000f 0f00000f 0f00000f 0f00000f 0fffffff 0fffffff 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C066 ENCODING 66 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0ffffff0 0ffffff0 0f00000f 0f00000f 0f00000f 0f00000f 0ffffff0 0ffffff0 0f00000f 0f00000f 0f00000f 0f00000f 0ffffff0 0ffffff0 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C067 ENCODING 67 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 000ffff0 000ffff0 00f0000f 00f0000f 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 00f0000f 00f0000f 000ffff0 000ffff0 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C068 ENCODING 68 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0fffff00 0fffff00 0f0000f0 0f0000f0 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f0000f0 0f0000f0 0fffff00 0fffff00 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C069 ENCODING 69 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0fffffff 0fffffff 0f000000 0f000000 0f000000 0f000000 0fffff00 0fffff00 0f000000 0f000000 0f000000 0f000000 0fffffff 0fffffff 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C070 ENCODING 70 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0fffffff 0fffffff 0f000000 0f000000 0f000000 0f000000 0fffff00 0fffff00 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C071 ENCODING 71 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 000ffff0 000ffff0 00f0000f 00f0000f 0f000000 0f000000 0f000fff 0f000fff 0f00000f 0f00000f 00f0000f 00f0000f 000fffff 000fffff 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C072 ENCODING 72 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0fffffff 0fffffff 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C073 ENCODING 73 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00fffff0 00fffff0 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 00fffff0 00fffff0 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C074 ENCODING 74 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0000fff0 0000fff0 000000f0 000000f0 000000f0 000000f0 000000f0 000000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 00ffff00 00ffff00 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C075 ENCODING 75 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0f0000f0 0f0000f0 0f000f00 0f000f00 0f00f000 0f00f000 0fff0000 0fff0000 0f00f000 0f00f000 0f000f00 0f000f00 0f0000f0 0f0000f0 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C076 ENCODING 76 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0ffffff0 0ffffff0 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C077 ENCODING 77 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0f00000f 0f00000f 0ff000ff 0ff000ff 0f0f0f0f 0f0f0f0f 0f00f00f 0f00f00f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C078 ENCODING 78 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0f00000f 0f00000f 0ff0000f 0ff0000f 0f0f000f 0f0f000f 0f00f00f 0f00f00f 0f000f0f 0f000f0f 0f0000ff 0f0000ff 0f00000f 0f00000f 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C079 ENCODING 79 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 000fff00 000fff00 00f000f0 00f000f0 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 00f000f0 00f000f0 000fff00 000fff00 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C080 ENCODING 80 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0ffffff0 0ffffff0 0f00000f 0f00000f 0f00000f 0f00000f 0ffffff0 0ffffff0 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C081 ENCODING 81 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 000fff00 000fff00 00f000f0 00f000f0 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 00f000f0 00f000f0 000fff00 000fff00 00000fff 00000fff 00000000 00000000 ENDCHAR STARTCHAR C082 ENCODING 82 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0ffffff0 0ffffff0 0f00000f 0f00000f 0f00000f 0f00000f 0ffffff0 0ffffff0 0f000f00 0f000f00 0f0000f0 0f0000f0 0f00000f 0f00000f 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C083 ENCODING 83 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00fffff0 00fffff0 0f00000f 0f00000f 0f000000 0f000000 00fffff0 00fffff0 0000000f 0000000f 0f00000f 0f00000f 00fffff0 00fffff0 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C084 ENCODING 84 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0fffffff 0fffffff 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C085 ENCODING 85 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 00fffff0 00fffff0 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C086 ENCODING 86 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0ff000ff 0ff000ff 00f000f0 00f000f0 00f000f0 00f000f0 000f0f00 000f0f00 000f0f00 000f0f00 0000f000 0000f000 0000f000 0000f000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C087 ENCODING 87 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00f00f 0f00f00f 0f0f0f0f 0f0f0f0f 0ff000ff 0ff000ff 0f00000f 0f00000f 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C088 ENCODING 88 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0f00000f 0f00000f 00f000f0 00f000f0 000f0f00 000f0f00 0000f000 0000f000 000f0f00 000f0f00 00f000f0 00f000f0 0f00000f 0f00000f 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C089 ENCODING 89 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0f00000f 0f00000f 00f000f0 00f000f0 000f0f00 000f0f00 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C090 ENCODING 90 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0fffffff 0fffffff 000000f0 000000f0 00000f00 00000f00 0000f000 0000f000 000f0000 000f0000 00f00000 00f00000 0fffffff 0fffffff 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C091 ENCODING 91 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 0000fff0 0000fff0 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000fff0 0000fff0 00000000 00000000 ENDCHAR STARTCHAR C092 ENCODING 92 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP f0000000 f0000000 0f000000 0f000000 00f00000 00f00000 00f00000 00f00000 000f0000 000f0000 0000f000 0000f000 00000f00 00000f00 00000f00 00000f00 000000f0 000000f0 0000000f 0000000f ENDCHAR STARTCHAR C093 ENCODING 93 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00fff000 00fff000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 00fff000 00fff000 00000000 00000000 ENDCHAR STARTCHAR C094 ENCODING 94 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 0000f000 0000f000 000f0f00 000f0f00 00f000f0 00f000f0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C095 ENCODING 95 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ffffffff ENDCHAR STARTCHAR C096 ENCODING 96 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ffffffff ffffffff 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C097 ENCODING 97 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00ffffff 00ffffff 0f00000f 0f00000f 0f00000f 0f00000f 0f0000ff 0f0000ff 00ffff0f 00ffff0f 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C098 ENCODING 98 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0ffffff0 0ffffff0 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0ffffff0 0ffffff0 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C099 ENCODING 99 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00fffff0 00fffff0 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 00fffff0 00fffff0 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C100 ENCODING 100 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 00ffffff 00ffffff 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 00ffffff 00ffffff 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C101 ENCODING 101 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00fffff0 00fffff0 0f00000f 0f00000f 0fffffff 0fffffff 0f000000 0f000000 00fffff0 00fffff0 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C102 ENCODING 102 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 000ffff0 000ffff0 00f00000 00f00000 00f00000 00f00000 0ffff000 0ffff000 00f00000 00f00000 00f00000 00f00000 00f00000 00f00000 00f00000 00f00000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C103 ENCODING 103 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00ffffff 00ffffff 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 00ffffff 00ffffff 0000000f 0000000f 00fffff0 00fffff0 ENDCHAR STARTCHAR C104 ENCODING 104 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0ffffff0 0ffffff0 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C105 ENCODING 105 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 0000f000 0000f000 0000f000 0000f000 00000000 00000000 00fff000 00fff000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 00fffff0 00fffff0 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C106 ENCODING 106 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 000000f0 000000f0 000000f0 000000f0 00000000 00000000 000ffff0 000ffff0 000000f0 000000f0 000000f0 000000f0 000000f0 000000f0 000000f0 000000f0 000000f0 000000f0 00ffff00 00ffff00 ENDCHAR STARTCHAR C107 ENCODING 107 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000ff0 0f000ff0 0f00f000 0f00f000 0fff0000 0fff0000 0f00f000 0f00f000 0f000ff0 0f000ff0 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C108 ENCODING 108 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 000ff000 000ff000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 000fff00 000fff00 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C109 ENCODING 109 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 0fff0ff0 0fff0ff0 0f00f00f 0f00f00f 0f00f00f 0f00f00f 0f00f00f 0f00f00f 0f00000f 0f00000f 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C110 ENCODING 110 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 0f0ffff0 0f0ffff0 0ff0000f 0ff0000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C111 ENCODING 111 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00fffff0 00fffff0 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 00fffff0 00fffff0 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C112 ENCODING 112 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 0ffffff0 0ffffff0 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0ffffff0 0ffffff0 0f000000 0f000000 0f000000 0f000000 ENDCHAR STARTCHAR C113 ENCODING 113 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00ffffff 00ffffff 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 00ffffff 00ffffff 0000000f 0000000f 0000000f 0000000f ENDCHAR STARTCHAR C114 ENCODING 114 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00f0fff0 00f0fff0 00ff0000 00ff0000 00f00000 00f00000 00f00000 00f00000 00f00000 00f00000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C115 ENCODING 115 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00fffff0 00fffff0 0f000000 0f000000 00ffff00 00ffff00 000000f0 000000f0 0fffff00 0fffff00 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C116 ENCODING 116 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 000f0000 000f0000 000f0000 000f0000 000f0000 000f0000 0ffffff0 0ffffff0 000f0000 000f0000 000f0000 000f0000 000f0000 000f0000 0000fff0 0000fff0 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C117 ENCODING 117 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f0000ff 0f0000ff 00ffff0f 00ffff0f 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C118 ENCODING 118 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 0ff000ff 0ff000ff 00f000f0 00f000f0 000f0f00 000f0f00 000f0f00 000f0f00 0000f000 0000f000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C119 ENCODING 119 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 0f00000f 0f00000f 0f00f00f 0f00f00f 0f00f00f 0f00f00f 0f00f00f 0f00f00f 00ff0ff0 00ff0ff0 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C120 ENCODING 120 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 0ff000ff 0ff000ff 000f0f00 000f0f00 0000f000 0000f000 000f0f00 000f0f00 0ff000ff 0ff000ff 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C121 ENCODING 121 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 00fffff0 00fffff0 000000f0 000000f0 00ffff00 00ffff00 ENDCHAR STARTCHAR C122 ENCODING 122 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 0ffffff0 0ffffff0 00000f00 00000f00 000ff000 000ff000 00f00000 00f00000 0ffffff0 0ffffff0 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C123 ENCODING 123 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 ENDCHAR STARTCHAR C124 ENCODING 124 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 ENDCHAR STARTCHAR C125 ENCODING 125 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f ENDCHAR STARTCHAR C126 ENCODING 126 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP ffffffff ffffffff 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C127 ENCODING 127 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ENDCHAR ENDFONT xtel-3.3.0.orig/fonts/g032x40.bdf0100444001424500142340000014526006703332535015122 0ustar ericpersoSTARTFONT 2.1 COMMENT $Id: g032x40.bdf,v 1.2 1995/02/10 17:53:37 pierre Exp $ FONT -Lectra-Minitel-Medium-R-Normal--40-400-75-75-C-320-ISO2022-0 SIZE 40 75 75 FONTBOUNDINGBOX 32 40 0 -2 STARTPROPERTIES 19 FONTNAME_REGISTRY "" FOUNDRY "Lectra" FAMILY_NAME "Minitel" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 40 POINT_SIZE 400 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "C" AVERAGE_WIDTH 80 CHARSET_REGISTRY "ISO2022-0" CHARSET_ENCODING "1" FONT_ASCENT 38 FONT_DESCENT 2 DEFAULT_CHAR 32 COPYRIGHT "Copyright 1991 Lectra-Systemes" ENDPROPERTIES CHARS 116 STARTCHAR C000 ENCODING 0 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00FF0000 00FF0000 00FF0000 00FF0000 0F00F000 0F00F000 0F00F000 0F00F000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 FFFF0000 FFFF0000 FFFF0000 FFFF0000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 FFFFF000 FFFFF000 FFFFF000 FFFFF000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C001 ENCODING 1 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00F00000 00F00000 00F00000 00F00000 0FF00000 0FF00000 0FF00000 0FF00000 FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 0FF00000 0FF00000 0FF00000 0FF00000 00F00000 00F00000 00F00000 00F00000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C002 ENCODING 2 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0000F000 0000F000 0000F000 0000F000 000FFF00 000FFF00 000FFF00 000FFF00 00FFFFF0 00FFFFF0 00FFFFF0 00FFFFF0 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 ENDCHAR STARTCHAR C003 ENCODING 3 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000F00 00000F00 00000F00 00000F00 00000FF0 00000FF0 00000FF0 00000FF0 FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000FF0 00000FF0 00000FF0 00000FF0 00000F00 00000F00 00000F00 00000F00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C004 ENCODING 4 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 00FFFFF0 00FFFFF0 00FFFFF0 00FFFFF0 000FFF00 000FFF00 000FFF00 000FFF00 0000F000 0000F000 0000F000 0000F000 ENDCHAR STARTCHAR C005 ENCODING 5 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 0FF00000 0FF00000 0FF00000 0FF00000 F00F0000 F00F0000 F00F0000 F00F0000 F00F0000 F00F0000 F00F0000 F00F0000 0FF00000 0FF00000 0FF00000 0FF00000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C006 ENCODING 6 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 FFFFF000 FFFFF000 FFFFF000 FFFFF000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 FFFFF000 FFFFF000 FFFFF000 FFFFF000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C007 ENCODING 7 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000F000 0000F000 0000F000 0000F000 00000000 00000000 00000000 00000000 0FFFFFFF 0FFFFFFF 0FFFFFFF 0FFFFFFF 00000000 00000000 00000000 00000000 0000F000 0000F000 0000F000 0000F000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C008 ENCODING 8 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 F0000F00 F0000F00 F0000F00 F0000F00 F000F000 F000F000 F000F000 F000F000 F000F000 F000F000 F000F000 F000F000 F00F00F0 F00F00F0 F00F00F0 F00F00F0 F00F0FF0 F00F0FF0 F00F0FF0 F00F0FF0 00F0F0F0 00F0F0F0 00F0F0F0 00F0F0F0 00F0FFFF 00F0FFFF 00F0FFFF 00F0FFFF 0F0000F0 0F0000F0 0F0000F0 0F0000F0 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C009 ENCODING 9 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 F0000F00 F0000F00 F0000F00 F0000F00 F000F000 F000F000 F000F000 F000F000 F000F000 F000F000 F000F000 F000F000 F00F0FF0 F00F0FF0 F00F0FF0 F00F0FF0 F00FF00F F00FF00F F00FF00F F00FF00F 00F000FF 00F000FF 00F000FF 00F000FF 00F00F00 00F00F00 00F00F00 00F00F00 0F00FFFF 0F00FFFF 0F00FFFF 0F00FFFF 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C010 ENCODING 10 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 FFF000F0 FFF000F0 FFF000F0 FFF000F0 00F00F00 00F00F00 00F00F00 00F00F00 0FF00F00 0FF00F00 0FF00F00 0FF00F00 00F0F0F0 00F0F0F0 00F0F0F0 00F0F0F0 FFF0FFF0 FFF0FFF0 FFF0FFF0 FFF0FFF0 000FF0F0 000FF0F0 000FF0F0 000FF0F0 000FFFFF 000FFFFF 000FFFFF 000FFFFF 00F000F0 00F000F0 00F000F0 00F000F0 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C011 ENCODING 11 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00FF0000 00FF0000 00FF0000 00FF0000 000FF000 000FF000 000FF000 000FF000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C012 ENCODING 12 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000FF0 00000FF0 00000FF0 00000FF0 0000FF00 0000FF00 0000FF00 0000FF00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C013 ENCODING 13 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 000FFF00 000FFF00 000FFF00 000FFF00 00FF0FF0 00FF0FF0 00FF0FF0 00FF0FF0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C014 ENCODING 14 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00FF0FF0 00FF0FF0 00FF0FF0 00FF0FF0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C015 ENCODING 15 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 000FF000 000FF000 000FF000 000FF000 00FFF000 00FFF000 00FFF000 00FFF000 ENDCHAR STARTCHAR C016 ENCODING 16 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00FFFFFF 00FFFFFF 00FFFFFF 00FFFFFF 0F00F000 0F00F000 0F00F000 0F00F000 F000F000 F000F000 F000F000 F000F000 F000FFF0 F000FFF0 F000FFF0 F000FFF0 F000F000 F000F000 F000F000 F000F000 0F00F000 0F00F000 0F00F000 0F00F000 00FFFFFF 00FFFFFF 00FFFFFF 00FFFFFF 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C017 ENCODING 17 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0FFF0FFF 0FFF0FFF 0FFF0FFF 0FFF0FFF F000F00F F000F00F F000F00F F000F00F F000FFFF F000FFFF F000FFFF F000FFFF F000F000 F000F000 F000F000 F000F000 0FFF0FFF 0FFF0FFF 0FFF0FFF 0FFF0FFF 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C018 ENCODING 18 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00FF0000 00FF0000 00FF0000 00FF0000 0F00F000 0F00F000 0F00F000 0F00F000 F000F000 F000F000 F000F000 F000F000 F00F0000 F00F0000 F00F0000 F00F0000 F0FF0000 F0FF0000 F0FF0000 F0FF0000 F000FF00 F000FF00 F000FF00 F000FF00 F0F00F00 F0F00F00 F0F00F00 F0F00F00 FF0FF000 FF0FF000 FF0FF000 FF0FF000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C019 ENCODING 19 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 0FFF0000 0FFF0000 0FFF0000 0FFF0000 F000F000 F000F000 F000F000 F000F000 FF000000 FF000000 FF000000 FF000000 0FFF0000 0FFF0000 0FFF0000 0FFF0000 F000F000 F000F000 F000F000 F000F000 F000F000 F000F000 F000F000 F000F000 0FFF0000 0FFF0000 0FFF0000 0FFF0000 000FF000 000FF000 000FF000 000FF000 F000F000 F000F000 F000F000 F000F000 0FFF0000 0FFF0000 0FFF0000 0FFF0000 ENDCHAR STARTCHAR C032 ENCODING 32 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C033 ENCODING 33 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 00000000 00000000 00000000 00000000 0000f000 0000f000 0000f000 0000f000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C034 ENCODING 34 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 000f0f00 000f0f00 000f0f00 000f0f00 000f0f00 000f0f00 000f0f00 000f0f00 000f0f00 000f0f00 000f0f00 000f0f00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C035 ENCODING 35 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00f00f00 00f00f00 00f00f00 00f00f00 00f00f00 00f00f00 00f00f00 00f00f00 0ffffff0 0ffffff0 0ffffff0 0ffffff0 00f00f00 00f00f00 00f00f00 00f00f00 00f00f00 00f00f00 00f00f00 00f00f00 0ffffff0 0ffffff0 0ffffff0 0ffffff0 00f00f00 00f00f00 00f00f00 00f00f00 00f00f00 00f00f00 00f00f00 00f00f00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C036 ENCODING 36 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0000f000 0000f000 0000f000 0000f000 000ffff0 000ffff0 000ffff0 000ffff0 00f0f000 00f0f000 00f0f000 00f0f000 000fff00 000fff00 000fff00 000fff00 0000f0f0 0000f0f0 0000f0f0 0000f0f0 00ffff00 00ffff00 00ffff00 00ffff00 0000f000 0000f000 0000f000 0000f000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C037 ENCODING 37 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00f000f0 00f000f0 00f000f0 00f000f0 0f0f0f00 0f0f0f00 0f0f0f00 0f0f0f00 00f00f00 00f00f00 00f00f00 00f00f00 0000f000 0000f000 0000f000 0000f000 000f00f0 000f00f0 000f00f0 000f00f0 000f0f0f 000f0f0f 000f0f0f 000f0f0f 00f000f0 00f000f0 00f000f0 00f000f0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C038 ENCODING 38 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00fff000 00fff000 00fff000 00fff000 0f000000 0f000000 0f000000 0f000000 00f00000 00f00000 00f00000 00f00000 00ff0000 00ff0000 00ff0000 00ff0000 0f00f0f0 0f00f0f0 0f00f0f0 0f00f0f0 0f000f00 0f000f00 0f000f00 0f000f00 00fff0f0 00fff0f0 00fff0f0 00fff0f0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C039 ENCODING 39 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 0000ff00 0000ff00 0000ff00 0000ff00 0000f000 0000f000 0000f000 0000f000 000f0000 000f0000 000f0000 000f0000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C040 ENCODING 40 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000f00 00000f00 00000f00 00000f00 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 000f0000 000f0000 000f0000 000f0000 000f0000 000f0000 000f0000 000f0000 000f0000 000f0000 000f0000 000f0000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 00000f00 00000f00 00000f00 00000f00 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C041 ENCODING 41 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 000f0000 000f0000 000f0000 000f0000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 00000f00 00000f00 00000f00 00000f00 00000f00 00000f00 00000f00 00000f00 00000f00 00000f00 00000f00 00000f00 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 000f0000 000f0000 000f0000 000f0000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C042 ENCODING 42 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0ff0f0ff 0ff0f0ff 0ff0f0ff 0ff0f0ff 000fff00 000fff00 000fff00 000fff00 0000f000 0000f000 0000f000 0000f000 000f0f00 000f0f00 000f0f00 000f0f00 00f000f0 00f000f0 00f000f0 00f000f0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C043 ENCODING 43 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0fffffff 0fffffff 0fffffff 0fffffff 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C044 ENCODING 44 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 000ff000 000ff000 000ff000 000ff000 000f0000 000f0000 000f0000 000f0000 00f00000 00f00000 00f00000 00f00000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C045 ENCODING 45 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0fffffff 0fffffff 0fffffff 0fffffff 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C046 ENCODING 46 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 000ff000 000ff000 000ff000 000ff000 000ff000 000ff000 000ff000 000ff000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C047 ENCODING 47 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 0000000f 0000000f 0000000f 0000000f 000000f0 000000f0 000000f0 000000f0 00000f00 00000f00 00000f00 00000f00 00000f00 00000f00 00000f00 00000f00 0000f000 0000f000 0000f000 0000f000 000f0000 000f0000 000f0000 000f0000 00f00000 00f00000 00f00000 00f00000 00f00000 00f00000 00f00000 00f00000 0f000000 0f000000 0f000000 0f000000 f0000000 f0000000 f0000000 f0000000 ENDCHAR STARTCHAR C048 ENCODING 48 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00ffff00 00ffff00 00ffff00 00ffff00 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 00ffff00 00ffff00 00ffff00 00ffff00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C049 ENCODING 49 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 0000f000 0000f000 0000f000 0000f000 000ff000 000ff000 000ff000 000ff000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C050 ENCODING 50 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00ffff00 00ffff00 00ffff00 00ffff00 0f0000f0 0f0000f0 0f0000f0 0f0000f0 000000f0 000000f0 000000f0 000000f0 00000f00 00000f00 00000f00 00000f00 0000f000 0000f000 0000f000 0000f000 000f0000 000f0000 000f0000 000f0000 00f00000 00f00000 00f00000 00f00000 0ffffff0 0ffffff0 0ffffff0 0ffffff0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C051 ENCODING 51 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00ffff00 00ffff00 00ffff00 00ffff00 0f0000f0 0f0000f0 0f0000f0 0f0000f0 000000f0 000000f0 000000f0 000000f0 000fff00 000fff00 000fff00 000fff00 000000f0 000000f0 000000f0 000000f0 000000f0 000000f0 000000f0 000000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 00ffff00 00ffff00 00ffff00 00ffff00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C052 ENCODING 52 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 0000ff00 0000ff00 0000ff00 0000ff00 0000ff00 0000ff00 0000ff00 0000ff00 000f0f00 000f0f00 000f0f00 000f0f00 000f0f00 000f0f00 000f0f00 000f0f00 00f00f00 00f00f00 00f00f00 00f00f00 0ffffff0 0ffffff0 0ffffff0 0ffffff0 00000f00 00000f00 00000f00 00000f00 0000fff0 0000fff0 0000fff0 0000fff0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C053 ENCODING 53 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 0ffffff0 0ffffff0 0ffffff0 0ffffff0 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0fffff00 0fffff00 0fffff00 0fffff00 000000f0 000000f0 000000f0 000000f0 000000f0 000000f0 000000f0 000000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 00ffff00 00ffff00 00ffff00 00ffff00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C054 ENCODING 54 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 000fff00 000fff00 000fff00 000fff00 00f00000 00f00000 00f00000 00f00000 0f000000 0f000000 0f000000 0f000000 0fffff00 0fffff00 0fffff00 0fffff00 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 00ffff00 00ffff00 00ffff00 00ffff00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C055 ENCODING 55 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 0ffffff0 0ffffff0 0ffffff0 0ffffff0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 00000f00 00000f00 00000f00 00000f00 00000f00 00000f00 00000f00 00000f00 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 000f0000 000f0000 000f0000 000f0000 000f0000 000f0000 000f0000 000f0000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C056 ENCODING 56 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00ffff00 00ffff00 00ffff00 00ffff00 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 00ffff00 00ffff00 00ffff00 00ffff00 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 00ffff00 00ffff00 00ffff00 00ffff00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C057 ENCODING 57 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00ffff00 00ffff00 00ffff00 00ffff00 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 00fffff0 00fffff0 00fffff0 00fffff0 000000f0 000000f0 000000f0 000000f0 00000f00 00000f00 00000f00 00000f00 00fff000 00fff000 00fff000 00fff000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C058 ENCODING 58 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 000ff000 000ff000 000ff000 000ff000 000ff000 000ff000 000ff000 000ff000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 000ff000 000ff000 000ff000 000ff000 000ff000 000ff000 000ff000 000ff000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C059 ENCODING 59 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 000ff000 000ff000 000ff000 000ff000 000ff000 000ff000 000ff000 000ff000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 000ff000 000ff000 000ff000 000ff000 000f0000 000f0000 000f0000 000f0000 00f00000 00f00000 00f00000 00f00000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C060 ENCODING 60 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000ff0 00000ff0 00000ff0 00000ff0 000ff000 000ff000 000ff000 000ff000 0ff00000 0ff00000 0ff00000 0ff00000 000ff000 000ff000 000ff000 000ff000 00000ff0 00000ff0 00000ff0 00000ff0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C061 ENCODING 61 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0fffffff 0fffffff 0fffffff 0fffffff 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0fffffff 0fffffff 0fffffff 0fffffff 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C062 ENCODING 62 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0ff00000 0ff00000 0ff00000 0ff00000 000ff000 000ff000 000ff000 000ff000 00000ff0 00000ff0 00000ff0 00000ff0 000ff000 000ff000 000ff000 000ff000 0ff00000 0ff00000 0ff00000 0ff00000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C063 ENCODING 63 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00ffff00 00ffff00 00ffff00 00ffff00 0f0000f0 0f0000f0 0f0000f0 0f0000f0 000000f0 000000f0 000000f0 000000f0 00000f00 00000f00 00000f00 00000f00 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 00000000 00000000 00000000 00000000 0000f000 0000f000 0000f000 0000f000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C064 ENCODING 64 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 000fff00 000fff00 000fff00 000fff00 00f000f0 00f000f0 00f000f0 00f000f0 0f00f00f 0f00f00f 0f00f00f 0f00f00f 0f0f0f0f 0f0f0f0f 0f0f0f0f 0f0f0f0f 0f00f0f0 0f00f0f0 0f00f0f0 0f00f0f0 00f00000 00f00000 00f00000 00f00000 000fff00 000fff00 000fff00 000fff00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C065 ENCODING 65 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 01fffff8 07fffffe 07fffffe 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0fffffff 0fffffff 0fffffff 0fffffff 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C066 ENCODING 66 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0ffffff0 0ffffff0 0ffffff0 0ffffff0 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0ffffff0 0ffffff0 0ffffff0 0ffffff0 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0ffffff0 0ffffff0 0ffffff0 0ffffff0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C067 ENCODING 67 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 000ffff0 000ffff0 000ffff0 000ffff0 00f0000f 00f0000f 00f0000f 00f0000f 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 00f0000f 00f0000f 00f0000f 00f0000f 000ffff0 000ffff0 000ffff0 000ffff0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C068 ENCODING 68 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0fffff00 0fffff00 0fffff00 0fffff00 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0fffff00 0fffff00 0fffff00 0fffff00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C069 ENCODING 69 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0fffffff 0fffffff 0fffffff 0fffffff 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0fffff00 0fffff00 0fffff00 0fffff00 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0fffffff 0fffffff 0fffffff 0fffffff 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C070 ENCODING 70 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0fffffff 0fffffff 0fffffff 0fffffff 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0fffff00 0fffff00 0fffff00 0fffff00 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C071 ENCODING 71 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 000ffff0 000ffff0 000ffff0 000ffff0 00f0000f 00f0000f 00f0000f 00f0000f 0f000000 0f000000 0f000000 0f000000 0f000fff 0f000fff 0f000fff 0f000fff 0f00000f 0f00000f 0f00000f 0f00000f 00f0000f 00f0000f 00f0000f 00f0000f 000fffff 000fffff 000fffff 000fffff 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C072 ENCODING 72 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0fffffff 0fffffff 0fffffff 0fffffff 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C073 ENCODING 73 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00fffff0 00fffff0 00fffff0 00fffff0 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 00fffff0 00fffff0 00fffff0 00fffff0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C074 ENCODING 74 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0000fff0 0000fff0 0000fff0 0000fff0 000000f0 000000f0 000000f0 000000f0 000000f0 000000f0 000000f0 000000f0 000000f0 000000f0 000000f0 000000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 00ffff00 00ffff00 00ffff00 00ffff00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C075 ENCODING 75 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f000f00 0f000f00 0f000f00 0f000f00 0f00f000 0f00f000 0f00f000 0f00f000 0fff0000 0fff0000 0fff0000 0fff0000 0f00f000 0f00f000 0f00f000 0f00f000 0f000f00 0f000f00 0f000f00 0f000f00 0f0000f0 0f0000f0 0f0000f0 0f0000f0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C076 ENCODING 76 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0ffffff0 0ffffff0 0ffffff0 0ffffff0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C077 ENCODING 77 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0f00000f 0f00000f 0f00000f 0f00000f 0ff000ff 0ff000ff 0ff000ff 0ff000ff 0f0f0f0f 0f0f0f0f 0f0f0f0f 0f0f0f0f 0f00f00f 0f00f00f 0f00f00f 0f00f00f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C078 ENCODING 78 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0f00000f 0f00000f 0f00000f 0f00000f 0ff0000f 0ff0000f 0ff0000f 0ff0000f 0f0f000f 0f0f000f 0f0f000f 0f0f000f 0f00f00f 0f00f00f 0f00f00f 0f00f00f 0f000f0f 0f000f0f 0f000f0f 0f000f0f 0f0000ff 0f0000ff 0f0000ff 0f0000ff 0f00000f 0f00000f 0f00000f 0f00000f 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C079 ENCODING 79 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 000fff00 000fff00 000fff00 000fff00 00f000f0 00f000f0 00f000f0 00f000f0 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 00f000f0 00f000f0 00f000f0 00f000f0 000fff00 000fff00 000fff00 000fff00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C080 ENCODING 80 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0ffffff0 0ffffff0 0ffffff0 0ffffff0 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0ffffff0 0ffffff0 0ffffff0 0ffffff0 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C081 ENCODING 81 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 000fff00 000fff00 000fff00 000fff00 00f000f0 00f000f0 00f000f0 00f000f0 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 00f000f0 00f000f0 00f000f0 00f000f0 000fff00 000fff00 000fff00 000fff00 00000fff 00000fff 00000fff 00000fff 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C082 ENCODING 82 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0ffffff0 0ffffff0 0ffffff0 0ffffff0 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0ffffff0 0ffffff0 0ffffff0 0ffffff0 0f000f00 0f000f00 0f000f00 0f000f00 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f00000f 0f00000f 0f00000f 0f00000f 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C083 ENCODING 83 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00fffff0 00fffff0 00fffff0 00fffff0 0f00000f 0f00000f 0f00000f 0f00000f 0f000000 0f000000 0f000000 0f000000 00fffff0 00fffff0 00fffff0 00fffff0 0000000f 0000000f 0000000f 0000000f 0f00000f 0f00000f 0f00000f 0f00000f 00fffff0 00fffff0 00fffff0 00fffff0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C084 ENCODING 84 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0fffffff 0fffffff 0fffffff 0fffffff 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C085 ENCODING 85 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 00fffff0 00fffff0 00fffff0 00fffff0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C086 ENCODING 86 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0ff000ff 0ff000ff 0ff000ff 0ff000ff 00f000f0 00f000f0 00f000f0 00f000f0 00f000f0 00f000f0 00f000f0 00f000f0 000f0f00 000f0f00 000f0f00 000f0f00 000f0f00 000f0f00 000f0f00 000f0f00 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C087 ENCODING 87 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00f00f 0f00f00f 0f00f00f 0f00f00f 0f0f0f0f 0f0f0f0f 0f0f0f0f 0f0f0f0f 0ff000ff 0ff000ff 0ff000ff 0ff000ff 0f00000f 0f00000f 0f00000f 0f00000f 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C088 ENCODING 88 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0f00000f 0f00000f 0f00000f 0f00000f 00f000f0 00f000f0 00f000f0 00f000f0 000f0f00 000f0f00 000f0f00 000f0f00 0000f000 0000f000 0000f000 0000f000 000f0f00 000f0f00 000f0f00 000f0f00 00f000f0 00f000f0 00f000f0 00f000f0 0f00000f 0f00000f 0f00000f 0f00000f 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C089 ENCODING 89 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0f00000f 0f00000f 0f00000f 0f00000f 00f000f0 00f000f0 00f000f0 00f000f0 000f0f00 000f0f00 000f0f00 000f0f00 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C090 ENCODING 90 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0fffffff 0fffffff 0fffffff 0fffffff 000000f0 000000f0 000000f0 000000f0 00000f00 00000f00 00000f00 00000f00 0000f000 0000f000 0000f000 0000f000 000f0000 000f0000 000f0000 000f0000 00f00000 00f00000 00f00000 00f00000 0fffffff 0fffffff 0fffffff 0fffffff 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C091 ENCODING 91 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 0000fff0 0000fff0 0000fff0 0000fff0 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000fff0 0000fff0 0000fff0 0000fff0 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C092 ENCODING 92 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP f0000000 f0000000 f0000000 f0000000 0f000000 0f000000 0f000000 0f000000 00f00000 00f00000 00f00000 00f00000 00f00000 00f00000 00f00000 00f00000 000f0000 000f0000 000f0000 000f0000 0000f000 0000f000 0000f000 0000f000 00000f00 00000f00 00000f00 00000f00 00000f00 00000f00 00000f00 00000f00 000000f0 000000f0 000000f0 000000f0 0000000f 0000000f 0000000f 0000000f ENDCHAR STARTCHAR C093 ENCODING 93 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00fff000 00fff000 00fff000 00fff000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 00fff000 00fff000 00fff000 00fff000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C094 ENCODING 94 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 0000f000 0000f000 0000f000 0000f000 000f0f00 000f0f00 000f0f00 000f0f00 00f000f0 00f000f0 00f000f0 00f000f0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C095 ENCODING 95 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ffffffff ENDCHAR STARTCHAR C096 ENCODING 96 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C097 ENCODING 97 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00ffffff 00ffffff 00ffffff 00ffffff 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f0000ff 0f0000ff 0f0000ff 0f0000ff 00ffff0f 00ffff0f 00ffff0f 00ffff0f 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C098 ENCODING 98 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0ffffff0 0ffffff0 0ffffff0 0ffffff0 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0ffffff0 0ffffff0 0ffffff0 0ffffff0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C099 ENCODING 99 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00fffff0 00fffff0 00fffff0 00fffff0 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 00fffff0 00fffff0 00fffff0 00fffff0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C100 ENCODING 100 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 00ffffff 00ffffff 00ffffff 00ffffff 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 00ffffff 00ffffff 00ffffff 00ffffff 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C101 ENCODING 101 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00fffff0 00fffff0 00fffff0 00fffff0 0f00000f 0f00000f 0f00000f 0f00000f 0fffffff 0fffffff 0fffffff 0fffffff 0f000000 0f000000 0f000000 0f000000 00fffff0 00fffff0 00fffff0 00fffff0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C102 ENCODING 102 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 000ffff0 000ffff0 000ffff0 000ffff0 00f00000 00f00000 00f00000 00f00000 00f00000 00f00000 00f00000 00f00000 0ffff000 0ffff000 0ffff000 0ffff000 00f00000 00f00000 00f00000 00f00000 00f00000 00f00000 00f00000 00f00000 00f00000 00f00000 00f00000 00f00000 00f00000 00f00000 00f00000 00f00000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C103 ENCODING 103 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00ffffff 00ffffff 00ffffff 00ffffff 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 00ffffff 00ffffff 00ffffff 00ffffff 0000000f 0000000f 0000000f 0000000f 00fffff0 00fffff0 00fffff0 00fffff0 ENDCHAR STARTCHAR C104 ENCODING 104 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0ffffff0 0ffffff0 0ffffff0 0ffffff0 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C105 ENCODING 105 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 00000000 00000000 00000000 00000000 00fff000 00fff000 00fff000 00fff000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 00fffff0 00fffff0 00fffff0 00fffff0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C106 ENCODING 106 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 000000f0 000000f0 000000f0 000000f0 000000f0 000000f0 000000f0 000000f0 00000000 00000000 00000000 00000000 000ffff0 000ffff0 000ffff0 000ffff0 000000f0 000000f0 000000f0 000000f0 000000f0 000000f0 000000f0 000000f0 000000f0 000000f0 000000f0 000000f0 000000f0 000000f0 000000f0 000000f0 000000f0 000000f0 000000f0 000000f0 00ffff00 00ffff00 00ffff00 00ffff00 ENDCHAR STARTCHAR C107 ENCODING 107 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000ff0 0f000ff0 0f000ff0 0f000ff0 0f00f000 0f00f000 0f00f000 0f00f000 0fff0000 0fff0000 0fff0000 0fff0000 0f00f000 0f00f000 0f00f000 0f00f000 0f000ff0 0f000ff0 0f000ff0 0f000ff0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C108 ENCODING 108 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 000ff000 000ff000 000ff000 000ff000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 000fff00 000fff00 000fff00 000fff00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C109 ENCODING 109 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0fff0ff0 0fff0ff0 0fff0ff0 0fff0ff0 0f00f00f 0f00f00f 0f00f00f 0f00f00f 0f00f00f 0f00f00f 0f00f00f 0f00f00f 0f00f00f 0f00f00f 0f00f00f 0f00f00f 0f00000f 0f00000f 0f00000f 0f00000f 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C110 ENCODING 110 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0f0ffff0 0f0ffff0 0f0ffff0 0f0ffff0 0ff0000f 0ff0000f 0ff0000f 0ff0000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C111 ENCODING 111 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00fffff0 00fffff0 00fffff0 00fffff0 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 00fffff0 00fffff0 00fffff0 00fffff0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C112 ENCODING 112 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0ffffff0 0ffffff0 0ffffff0 0ffffff0 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0ffffff0 0ffffff0 0ffffff0 0ffffff0 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 0f000000 ENDCHAR STARTCHAR C113 ENCODING 113 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00ffffff 00ffffff 00ffffff 00ffffff 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 00ffffff 00ffffff 00ffffff 00ffffff 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f ENDCHAR STARTCHAR C114 ENCODING 114 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00f0fff0 00f0fff0 00f0fff0 00f0fff0 00ff0000 00ff0000 00ff0000 00ff0000 00f00000 00f00000 00f00000 00f00000 00f00000 00f00000 00f00000 00f00000 00f00000 00f00000 00f00000 00f00000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C115 ENCODING 115 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00fffff0 00fffff0 00fffff0 00fffff0 0f000000 0f000000 0f000000 0f000000 00ffff00 00ffff00 00ffff00 00ffff00 000000f0 000000f0 000000f0 000000f0 0fffff00 0fffff00 0fffff00 0fffff00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C116 ENCODING 116 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 000f0000 000f0000 000f0000 000f0000 000f0000 000f0000 000f0000 000f0000 000f0000 000f0000 000f0000 000f0000 0ffffff0 0ffffff0 0ffffff0 0ffffff0 000f0000 000f0000 000f0000 000f0000 000f0000 000f0000 000f0000 000f0000 000f0000 000f0000 000f0000 000f0000 0000fff0 0000fff0 0000fff0 0000fff0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C117 ENCODING 117 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f0000ff 0f0000ff 0f0000ff 0f0000ff 00ffff0f 00ffff0f 00ffff0f 00ffff0f 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C118 ENCODING 118 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0ff000ff 0ff000ff 0ff000ff 0ff000ff 00f000f0 00f000f0 00f000f0 00f000f0 000f0f00 000f0f00 000f0f00 000f0f00 000f0f00 000f0f00 000f0f00 000f0f00 0000f000 0000f000 0000f000 0000f000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C119 ENCODING 119 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0f00000f 0f00000f 0f00000f 0f00000f 0f00f00f 0f00f00f 0f00f00f 0f00f00f 0f00f00f 0f00f00f 0f00f00f 0f00f00f 0f00f00f 0f00f00f 0f00f00f 0f00f00f 00ff0ff0 00ff0ff0 00ff0ff0 00ff0ff0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C120 ENCODING 120 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0ff000ff 0ff000ff 0ff000ff 0ff000ff 000f0f00 000f0f00 000f0f00 000f0f00 0000f000 0000f000 0000f000 0000f000 000f0f00 000f0f00 000f0f00 000f0f00 0ff000ff 0ff000ff 0ff000ff 0ff000ff 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C121 ENCODING 121 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 0f0000f0 00fffff0 00fffff0 00fffff0 00fffff0 000000f0 000000f0 000000f0 000000f0 00ffff00 00ffff00 00ffff00 00ffff00 ENDCHAR STARTCHAR C122 ENCODING 122 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0ffffff0 0ffffff0 0ffffff0 0ffffff0 00000f00 00000f00 00000f00 00000f00 000ff000 000ff000 000ff000 000ff000 00f00000 00f00000 00f00000 00f00000 0ffffff0 0ffffff0 0ffffff0 0ffffff0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C123 ENCODING 123 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 f0000000 ENDCHAR STARTCHAR C124 ENCODING 124 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 0000f000 ENDCHAR STARTCHAR C125 ENCODING 125 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f 0000000f ENDCHAR STARTCHAR C126 ENCODING 126 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C127 ENCODING 127 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ENDCHAR ENDFONT xtel-3.3.0.orig/fonts/g08x10.bdf0100444001424500142340000003144506703332535015041 0ustar ericpersoSTARTFONT 2.1 COMMENT $Id: g08x10.bdf,v 1.3 1995/02/10 17:53:37 pierre Exp $ FONT -Lectra-Minitel-Medium-R-Normal--10-100-75-75-C-80-ISO2022-0 SIZE 10 75 75 FONTBOUNDINGBOX 8 10 0 -2 STARTPROPERTIES 19 FONTNAME_REGISTRY "" FOUNDRY "Lectra" FAMILY_NAME "Minitel" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 10 POINT_SIZE 100 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "C" AVERAGE_WIDTH 80 CHARSET_REGISTRY "ISO2022-0" CHARSET_ENCODING "1" FONT_ASCENT 8 FONT_DESCENT 2 DEFAULT_CHAR 32 COPYRIGHT "Copyright 1991 Lectra-Systemes" ENDPROPERTIES CHARS 116 STARTCHAR C000 ENCODING 0 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 30 48 40 40 f0 40 40 f8 00 ENDCHAR STARTCHAR C001 ENCODING 1 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 20 60 FF 60 20 00 00 ENDCHAR STARTCHAR C002 ENCODING 2 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 08 1C 3E 08 08 08 08 08 08 ENDCHAR STARTCHAR C003 ENCODING 3 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 04 06 FF 06 04 00 00 ENDCHAR STARTCHAR C004 ENCODING 4 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 08 08 08 08 08 08 3E 1C 08 ENDCHAR STARTCHAR C005 ENCODING 5 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 60 90 90 60 00 00 00 00 00 00 ENDCHAR STARTCHAR C006 ENCODING 6 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 20 20 F8 20 20 F8 00 00 ENDCHAR STARTCHAR C007 ENCODING 7 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 08 00 7F 00 08 00 00 00 ENDCHAR STARTCHAR C008 ENCODING 8 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 84 88 88 92 96 2a 2f 42 00 ENDCHAR STARTCHAR C009 ENCODING 9 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 84 88 88 96 99 23 24 4f 00 ENDCHAR STARTCHAR C010 ENCODING 10 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 e2 24 64 2a ee 1a 1f 22 00 ENDCHAR STARTCHAR C011 ENCODING 11 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 30 18 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C012 ENCODING 12 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 06 0C 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C013 ENCODING 13 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 1C 36 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C014 ENCODING 14 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 36 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C015 ENCODING 15 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 18 38 ENDCHAR STARTCHAR C016 ENCODING 16 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 3F 48 88 8E 88 48 3F 00 00 ENDCHAR STARTCHAR C017 ENCODING 17 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 77 89 8F 88 77 00 00 ENDCHAR STARTCHAR C018 ENCODING 18 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 30 48 88 90 b0 8c a4 d8 00 ENDCHAR STARTCHAR C019 ENCODING 19 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 70 88 c0 70 88 88 70 18 88 70 ENDCHAR STARTCHAR C040 ENCODING 32 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR ! ENCODING 33 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 08 08 08 08 08 08 00 08 00 00 ENDCHAR STARTCHAR " ENCODING 34 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 14 14 14 00 00 00 00 00 00 00 ENDCHAR STARTCHAR # ENCODING 35 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 24 24 7e 24 24 7e 24 24 00 00 ENDCHAR STARTCHAR $ ENCODING 36 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 08 1e 28 1c 0a 3c 08 00 00 ENDCHAR STARTCHAR % ENCODING 37 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 22 54 24 08 12 15 22 00 00 ENDCHAR STARTCHAR & ENCODING 38 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 38 40 20 30 4a 44 3a 00 00 ENDCHAR STARTCHAR ' ENCODING 39 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 0c 08 10 00 00 00 00 00 00 00 ENDCHAR STARTCHAR ( ENCODING 40 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 04 08 08 10 10 10 08 08 04 00 ENDCHAR STARTCHAR ) ENCODING 41 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 10 08 08 04 04 04 08 08 10 00 ENDCHAR STARTCHAR * ENCODING 42 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 08 08 6b 1c 08 14 22 00 00 ENDCHAR STARTCHAR + ENCODING 43 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 08 08 08 7f 08 08 08 00 00 ENDCHAR STARTCHAR , ENCODING 44 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 18 10 20 00 ENDCHAR STARTCHAR - ENCODING 45 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 7f 00 00 00 00 00 ENDCHAR STARTCHAR . ENCODING 46 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 18 18 00 00 ENDCHAR STARTCHAR / ENCODING 47 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 01 02 04 04 08 10 20 20 40 80 ENDCHAR STARTCHAR 0 ENCODING 48 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 3c 42 42 42 42 42 42 3c 00 00 ENDCHAR STARTCHAR 1 ENCODING 49 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 08 18 08 08 08 08 08 08 00 00 ENDCHAR STARTCHAR 2 ENCODING 50 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 3c 42 02 04 08 10 20 7e 00 00 ENDCHAR STARTCHAR 3 ENCODING 51 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 3c 42 02 1c 02 02 42 3c 00 00 ENDCHAR STARTCHAR 4 ENCODING 52 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 0c 0c 14 14 24 7e 04 0e 00 00 ENDCHAR STARTCHAR 5 ENCODING 53 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 7e 40 40 7c 02 02 42 3c 00 00 ENDCHAR STARTCHAR 6 ENCODING 54 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 1c 20 40 7c 42 42 42 3c 00 00 ENDCHAR STARTCHAR 7 ENCODING 55 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 7e 42 04 04 08 08 10 10 00 00 ENDCHAR STARTCHAR 8 ENCODING 56 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 3c 42 42 3c 42 42 42 3c 00 00 ENDCHAR STARTCHAR 9 ENCODING 57 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 3c 42 42 42 3e 02 04 38 00 00 ENDCHAR STARTCHAR : ENCODING 58 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 18 18 00 00 18 18 00 00 ENDCHAR STARTCHAR ; ENCODING 59 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 18 18 00 00 18 10 20 00 ENDCHAR STARTCHAR < ENCODING 60 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 06 18 60 18 06 00 00 00 ENDCHAR STARTCHAR = ENCODING 61 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 7f 00 00 7f 00 00 00 ENDCHAR STARTCHAR > ENCODING 62 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 60 18 06 18 60 00 00 00 ENDCHAR STARTCHAR ? ENCODING 63 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 3c 42 02 04 08 08 00 08 00 00 ENDCHAR STARTCHAR @ ENCODING 64 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 1c 22 49 55 4a 20 1c 00 00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 3e 41 41 7f 41 41 41 00 00 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 7e 41 41 7e 41 41 7e 00 00 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 1e 21 40 40 40 21 1e 00 00 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 7c 42 41 41 41 42 7c 00 00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 7f 40 40 7c 40 40 7f 00 00 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 7f 40 40 7c 40 40 40 00 00 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 1e 21 40 47 41 21 1f 00 00 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 41 41 41 7f 41 41 41 00 00 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 3e 08 08 08 08 08 3e 00 00 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 0e 02 02 02 42 42 3c 00 00 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 42 44 48 70 48 44 42 00 00 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 40 40 40 40 40 40 7e 00 00 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 41 63 55 49 41 41 41 00 00 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 41 61 51 49 45 43 41 00 00 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 1c 22 41 41 41 22 1c 00 00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 7e 41 41 7e 40 40 40 00 00 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 1c 22 41 41 41 22 1c 07 00 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 7e 41 41 7e 44 42 41 00 00 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 3e 41 40 3e 01 41 3e 00 00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 7f 08 08 08 08 08 08 00 00 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 41 41 41 41 41 41 3e 00 00 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 63 22 22 14 14 08 08 00 00 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 41 41 41 49 55 63 41 00 00 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 41 22 14 08 14 22 41 00 00 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 41 22 14 08 08 08 08 00 00 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 7f 02 04 08 10 20 7f 00 00 ENDCHAR STARTCHAR [ ENCODING 91 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 0e 08 08 08 08 08 08 08 0e 00 ENDCHAR STARTCHAR \ ENCODING 92 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 80 40 20 20 10 08 04 04 02 01 ENDCHAR STARTCHAR ] ENCODING 93 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 38 08 08 08 08 08 08 08 38 00 ENDCHAR STARTCHAR ^ ENCODING 94 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 08 14 22 00 00 00 00 00 00 00 ENDCHAR STARTCHAR _ ENCODING 95 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 ff ENDCHAR STARTCHAR ` ENCODING 96 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 ff 00 00 00 00 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 3f 41 41 43 3d 00 00 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 40 40 40 7e 41 41 41 7e 00 00 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 3e 40 40 40 3e 00 00 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 01 01 01 3f 41 41 41 3f 00 00 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 3e 41 7f 40 3e 00 00 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 1e 20 20 78 20 20 20 20 00 00 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 3f 41 41 41 3f 01 3e ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 40 40 40 7e 41 41 41 41 00 00 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 08 08 00 38 08 08 08 3e 00 00 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 02 02 00 1e 02 02 02 02 02 3c ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 40 40 40 46 48 70 48 46 00 00 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 18 08 08 08 08 08 08 1c 00 00 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 76 49 49 49 41 00 00 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 5e 61 41 41 41 00 00 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 3e 41 41 41 3e 00 00 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 7e 41 41 41 7e 40 40 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 3f 41 41 41 3f 01 01 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 2e 30 20 20 20 00 00 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 3e 40 3c 02 7c 00 00 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 10 10 10 7e 10 10 10 0e 00 00 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 41 41 41 43 3d 00 00 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 63 22 14 14 08 00 00 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 41 49 49 49 36 00 00 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 63 14 08 14 63 00 00 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 42 42 42 42 3e 02 3c ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 7e 04 18 20 7e 00 00 ENDCHAR STARTCHAR { ENCODING 123 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 80 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR | ENCODING 124 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 08 08 08 08 08 08 08 08 08 08 ENDCHAR STARTCHAR } ENCODING 125 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 01 01 01 01 01 01 01 01 01 01 ENDCHAR STARTCHAR C126 ENCODING 126 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP ff 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C127 ENCODING 127 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP ff ff ff ff ff ff ff ff ff ff ENDCHAR ENDFONT xtel-3.3.0.orig/fonts/g08x20.bdf0100444001424500142340000004072506703332535015043 0ustar ericpersoSTARTFONT 2.1 COMMENT $Id: g08x20.bdf,v 1.3 1995/02/10 17:53:37 pierre Exp $ FONT -Lectra-Minitel-Medium-R-Normal--20-200-75-75-C-80-ISO2022-0 SIZE 20 75 75 FONTBOUNDINGBOX 8 20 0 -2 STARTPROPERTIES 19 FONTNAME_REGISTRY "" FOUNDRY "Lectra" FAMILY_NAME "Minitel" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 20 POINT_SIZE 200 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "C" AVERAGE_WIDTH 80 CHARSET_REGISTRY "ISO2022-0" CHARSET_ENCODING "1" FONT_ASCENT 18 FONT_DESCENT 2 DEFAULT_CHAR 32 COPYRIGHT "Copyright 1991 Lectra-Systemes" ENDPROPERTIES CHARS 116 STARTCHAR C000 ENCODING 0 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 30 30 48 48 40 40 40 40 F0 F0 40 40 40 40 F8 F8 00 00 ENDCHAR STARTCHAR C001 ENCODING 1 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 20 20 60 60 FF FF 60 60 20 20 00 00 00 00 ENDCHAR STARTCHAR C002 ENCODING 2 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 08 08 1C 1C 3E 3E 08 08 08 08 08 08 08 08 08 08 08 08 ENDCHAR STARTCHAR C003 ENCODING 3 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 04 04 06 06 FF FF 06 06 04 04 00 00 00 00 ENDCHAR STARTCHAR C004 ENCODING 4 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 08 08 08 08 08 08 08 08 08 08 08 08 3E 3E 1C 1C 08 08 ENDCHAR STARTCHAR C005 ENCODING 5 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 60 60 90 90 90 90 60 60 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C006 ENCODING 6 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 20 20 20 20 F8 F8 20 20 20 20 F8 F8 00 00 00 00 ENDCHAR STARTCHAR C007 ENCODING 7 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 08 08 00 00 7F 7F 00 00 08 08 00 00 00 00 00 00 ENDCHAR STARTCHAR C008 ENCODING 8 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 84 84 88 88 88 88 92 92 96 96 2A 2A 2F 2F 42 42 00 00 ENDCHAR STARTCHAR C009 ENCODING 9 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 84 84 88 88 88 88 96 96 99 99 23 23 24 24 4F 4F 00 00 ENDCHAR STARTCHAR C010 ENCODING 10 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 E2 E2 24 24 64 64 2A 2A EE EE 1A 1A 1F 1F 22 22 00 00 ENDCHAR STARTCHAR C011 ENCODING 11 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 30 30 18 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C012 ENCODING 12 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 06 06 0C 0C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C013 ENCODING 13 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 1C 1C 36 36 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C014 ENCODING 14 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 36 36 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C015 ENCODING 15 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 18 18 38 38 ENDCHAR STARTCHAR C016 ENCODING 16 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 3F 3F 48 48 88 88 8E 8E 88 88 48 48 3F 3F 00 00 00 00 ENDCHAR STARTCHAR C017 ENCODING 17 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 77 77 89 89 8F 8F 88 88 77 77 00 00 00 00 ENDCHAR STARTCHAR C018 ENCODING 18 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 30 30 48 48 88 88 90 90 B0 B0 8C 8C A4 A4 D8 D8 00 00 ENDCHAR STARTCHAR C019 ENCODING 19 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 70 70 88 88 C0 C0 70 70 88 88 88 88 70 70 18 18 88 88 70 70 ENDCHAR STARTCHAR C032 ENCODING 32 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C033 ENCODING 33 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 08 08 08 08 08 08 08 08 08 08 08 08 00 00 08 08 00 00 00 00 ENDCHAR STARTCHAR C034 ENCODING 34 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 14 14 14 14 14 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C035 ENCODING 35 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 24 24 24 24 7e 7e 24 24 24 24 7e 7e 24 24 24 24 00 00 00 00 ENDCHAR STARTCHAR C036 ENCODING 36 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 08 08 1e 1e 28 28 1c 1c 0a 0a 3c 3c 08 08 00 00 00 00 ENDCHAR STARTCHAR C037 ENCODING 37 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 22 22 54 54 24 24 08 08 12 12 15 15 22 22 00 00 00 00 ENDCHAR STARTCHAR C038 ENCODING 38 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 38 38 40 40 20 20 30 30 4a 4a 44 44 3a 3a 00 00 00 00 ENDCHAR STARTCHAR C039 ENCODING 39 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 0c 0c 08 08 10 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C040 ENCODING 40 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 04 04 08 08 08 08 10 10 10 10 10 10 08 08 08 08 04 04 00 00 ENDCHAR STARTCHAR C041 ENCODING 41 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 10 10 08 08 08 08 04 04 04 04 04 04 08 08 08 08 10 10 00 00 ENDCHAR STARTCHAR C042 ENCODING 42 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 08 08 08 08 6b 6b 1c 1c 08 08 14 14 22 22 00 00 00 00 ENDCHAR STARTCHAR C043 ENCODING 43 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 08 08 08 08 08 08 7f 7f 08 08 08 08 08 08 00 00 00 00 ENDCHAR STARTCHAR C044 ENCODING 44 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 18 18 10 10 20 20 00 00 ENDCHAR STARTCHAR C045 ENCODING 45 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 00 00 7f 7f 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C046 ENCODING 46 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 18 18 18 18 00 00 00 00 ENDCHAR STARTCHAR C047 ENCODING 47 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 01 01 02 02 04 04 04 04 08 08 10 10 20 20 20 20 40 40 80 80 ENDCHAR STARTCHAR C048 ENCODING 48 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 3c 3c 42 42 42 42 42 42 42 42 42 42 42 42 3c 3c 00 00 00 00 ENDCHAR STARTCHAR C049 ENCODING 49 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 08 08 18 18 08 08 08 08 08 08 08 08 08 08 08 08 00 00 00 00 ENDCHAR STARTCHAR C050 ENCODING 50 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 3c 3c 42 42 02 02 04 04 08 08 10 10 20 20 7e 7e 00 00 00 00 ENDCHAR STARTCHAR C051 ENCODING 51 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 3c 3c 42 42 02 02 1c 1c 02 02 02 02 42 42 3c 3c 00 00 00 00 ENDCHAR STARTCHAR C052 ENCODING 52 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 0c 0c 0c 0c 14 14 14 14 24 24 7e 7e 04 04 0e 0e 00 00 00 00 ENDCHAR STARTCHAR C053 ENCODING 53 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 7e 7e 40 40 40 40 7c 7c 02 02 02 02 42 42 3c 3c 00 00 00 00 ENDCHAR STARTCHAR C054 ENCODING 54 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 1c 1c 20 20 40 40 7c 7c 42 42 42 42 42 42 3c 3c 00 00 00 00 ENDCHAR STARTCHAR C055 ENCODING 55 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 7e 7e 42 42 04 04 04 04 08 08 08 08 10 10 10 10 00 00 00 00 ENDCHAR STARTCHAR C056 ENCODING 56 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 3c 3c 42 42 42 42 3c 3c 42 42 42 42 42 42 3c 3c 00 00 00 00 ENDCHAR STARTCHAR C057 ENCODING 57 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 3c 3c 42 42 42 42 42 42 3e 3e 02 02 04 04 38 38 00 00 00 00 ENDCHAR STARTCHAR C058 ENCODING 58 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 18 18 18 18 00 00 00 00 18 18 18 18 00 00 00 00 ENDCHAR STARTCHAR C059 ENCODING 59 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 18 18 18 18 00 00 00 00 18 18 10 10 20 20 00 00 ENDCHAR STARTCHAR C060 ENCODING 60 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 06 06 18 18 60 60 18 18 06 06 00 00 00 00 00 00 ENDCHAR STARTCHAR C061 ENCODING 61 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 7f 7f 00 00 00 00 7f 7f 00 00 00 00 00 00 ENDCHAR STARTCHAR C062 ENCODING 62 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 60 60 18 18 06 06 18 18 60 60 00 00 00 00 00 00 ENDCHAR STARTCHAR C063 ENCODING 63 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 3c 3c 42 42 02 02 04 04 08 08 08 08 00 00 08 08 00 00 00 00 ENDCHAR STARTCHAR C064 ENCODING 64 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 1c 1c 22 22 49 49 55 55 4a 4a 20 20 1c 1c 00 00 00 00 ENDCHAR STARTCHAR C065 ENCODING 65 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 3e 7f 41 41 41 41 7f 7f 41 41 41 41 41 41 00 00 00 00 ENDCHAR STARTCHAR C066 ENCODING 66 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 7e 7e 41 41 41 41 7e 7e 41 41 41 41 7e 7e 00 00 00 00 ENDCHAR STARTCHAR C067 ENCODING 67 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 1e 1e 21 21 40 40 40 40 40 40 21 21 1e 1e 00 00 00 00 ENDCHAR STARTCHAR C068 ENCODING 68 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 7c 7c 42 42 41 41 41 41 41 41 42 42 7c 7c 00 00 00 00 ENDCHAR STARTCHAR C069 ENCODING 69 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 7f 7f 40 40 40 40 7c 7c 40 40 40 40 7f 7f 00 00 00 00 ENDCHAR STARTCHAR C070 ENCODING 70 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 7f 7f 40 40 40 40 7c 7c 40 40 40 40 40 40 00 00 00 00 ENDCHAR STARTCHAR C071 ENCODING 71 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 1e 1e 21 21 40 40 47 47 41 41 21 21 1f 1f 00 00 00 00 ENDCHAR STARTCHAR C072 ENCODING 72 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 41 41 41 41 41 41 7f 7f 41 41 41 41 41 41 00 00 00 00 ENDCHAR STARTCHAR C073 ENCODING 73 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 3e 3e 08 08 08 08 08 08 08 08 08 08 3e 3e 00 00 00 00 ENDCHAR STARTCHAR C074 ENCODING 74 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 0e 0e 02 02 02 02 02 02 42 42 42 42 3c 3c 00 00 00 00 ENDCHAR STARTCHAR C075 ENCODING 75 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 42 42 44 44 48 48 70 70 48 48 44 44 42 42 00 00 00 00 ENDCHAR STARTCHAR C076 ENCODING 76 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 40 40 40 40 40 40 40 40 40 40 40 40 7e 7e 00 00 00 00 ENDCHAR STARTCHAR C077 ENCODING 77 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 41 41 63 63 55 55 49 49 41 41 41 41 41 41 00 00 00 00 ENDCHAR STARTCHAR C078 ENCODING 78 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 41 41 61 61 51 51 49 49 45 45 43 43 41 41 00 00 00 00 ENDCHAR STARTCHAR C079 ENCODING 79 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 1c 1c 22 22 41 41 41 41 41 41 22 22 1c 1c 00 00 00 00 ENDCHAR STARTCHAR C080 ENCODING 80 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 7e 7e 41 41 41 41 7e 7e 40 40 40 40 40 40 00 00 00 00 ENDCHAR STARTCHAR C081 ENCODING 81 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 1c 1c 22 22 41 41 41 41 41 41 22 22 1c 1c 07 07 00 00 ENDCHAR STARTCHAR C082 ENCODING 82 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 7e 7e 41 41 41 41 7e 7e 44 44 42 42 41 41 00 00 00 00 ENDCHAR STARTCHAR C083 ENCODING 83 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 3e 3e 41 41 40 40 3e 3e 01 01 41 41 3e 3e 00 00 00 00 ENDCHAR STARTCHAR C084 ENCODING 84 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 7f 7f 08 08 08 08 08 08 08 08 08 08 08 08 00 00 00 00 ENDCHAR STARTCHAR C085 ENCODING 85 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 41 41 41 41 41 41 41 41 41 41 41 41 3e 3e 00 00 00 00 ENDCHAR STARTCHAR C086 ENCODING 86 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 63 63 22 22 22 22 14 14 14 14 08 08 08 08 00 00 00 00 ENDCHAR STARTCHAR C087 ENCODING 87 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 41 41 41 41 41 41 49 49 55 55 63 63 41 41 00 00 00 00 ENDCHAR STARTCHAR C088 ENCODING 88 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 41 41 22 22 14 14 08 08 14 14 22 22 41 41 00 00 00 00 ENDCHAR STARTCHAR C089 ENCODING 89 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 41 41 22 22 14 14 08 08 08 08 08 08 08 08 00 00 00 00 ENDCHAR STARTCHAR C090 ENCODING 90 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 7f 7f 02 02 04 04 08 08 10 10 20 20 7f 7f 00 00 00 00 ENDCHAR STARTCHAR C091 ENCODING 91 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 0e 0e 08 08 08 08 08 08 08 08 08 08 08 08 08 08 0e 0e 00 00 ENDCHAR STARTCHAR C092 ENCODING 92 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 80 80 40 40 20 20 20 20 10 10 08 08 04 04 04 04 02 02 01 01 ENDCHAR STARTCHAR C093 ENCODING 93 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 38 38 08 08 08 08 08 08 08 08 08 08 08 08 08 08 38 38 00 00 ENDCHAR STARTCHAR C094 ENCODING 94 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 08 08 14 14 22 22 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C095 ENCODING 95 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ENDCHAR STARTCHAR C096 ENCODING 96 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C097 ENCODING 97 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 3f 3f 41 41 41 41 43 43 3d 3d 00 00 00 00 ENDCHAR STARTCHAR C098 ENCODING 98 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 40 40 40 40 40 40 7e 7e 41 41 41 41 41 41 7e 7e 00 00 00 00 ENDCHAR STARTCHAR C099 ENCODING 99 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 3e 3e 40 40 40 40 40 40 3e 3e 00 00 00 00 ENDCHAR STARTCHAR C100 ENCODING 100 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 01 01 01 01 01 01 3f 3f 41 41 41 41 41 41 3f 3f 00 00 00 00 ENDCHAR STARTCHAR C101 ENCODING 101 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 3e 3e 41 41 7f 7f 40 40 3e 3e 00 00 00 00 ENDCHAR STARTCHAR C102 ENCODING 102 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 1e 1e 20 20 20 20 78 78 20 20 20 20 20 20 20 20 00 00 00 00 ENDCHAR STARTCHAR C103 ENCODING 103 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 3f 3f 41 41 41 41 41 41 3f 3f 01 01 3e 3e ENDCHAR STARTCHAR C104 ENCODING 104 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 40 40 40 40 40 40 7e 7e 41 41 41 41 41 41 41 41 00 00 00 00 ENDCHAR STARTCHAR C105 ENCODING 105 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 08 08 08 08 00 00 38 38 08 08 08 08 08 08 3e 3e 00 00 00 00 ENDCHAR STARTCHAR C106 ENCODING 106 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 02 02 02 02 00 00 1e 1e 02 02 02 02 02 02 02 02 02 02 3c 3c ENDCHAR STARTCHAR C107 ENCODING 107 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 40 40 40 40 40 40 46 46 48 48 70 70 48 48 46 46 00 00 00 00 ENDCHAR STARTCHAR C108 ENCODING 108 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 18 18 08 08 08 08 08 08 08 08 08 08 08 08 1c 1c 00 00 00 00 ENDCHAR STARTCHAR C109 ENCODING 109 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 76 76 49 49 49 49 49 49 41 41 00 00 00 00 ENDCHAR STARTCHAR C110 ENCODING 110 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 5e 5e 61 61 41 41 41 41 41 41 00 00 00 00 ENDCHAR STARTCHAR C111 ENCODING 111 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 3e 3e 41 41 41 41 41 41 3e 3e 00 00 00 00 ENDCHAR STARTCHAR C112 ENCODING 112 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 7e 7e 41 41 41 41 41 41 7e 7e 40 40 40 40 ENDCHAR STARTCHAR C113 ENCODING 113 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 3f 3f 41 41 41 41 41 41 3f 3f 01 01 01 01 ENDCHAR STARTCHAR C114 ENCODING 114 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 2e 2e 30 30 20 20 20 20 20 20 00 00 00 00 ENDCHAR STARTCHAR C115 ENCODING 115 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 3e 3e 40 40 3c 3c 02 02 7c 7c 00 00 00 00 ENDCHAR STARTCHAR C116 ENCODING 116 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 10 10 10 10 10 10 7e 7e 10 10 10 10 10 10 0e 0e 00 00 00 00 ENDCHAR STARTCHAR C117 ENCODING 117 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 41 41 41 41 41 41 43 43 3d 3d 00 00 00 00 ENDCHAR STARTCHAR C118 ENCODING 118 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 63 63 22 22 14 14 14 14 08 08 00 00 00 00 ENDCHAR STARTCHAR C119 ENCODING 119 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 41 41 49 49 49 49 49 49 36 36 00 00 00 00 ENDCHAR STARTCHAR C120 ENCODING 120 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 63 63 14 14 08 08 14 14 63 63 00 00 00 00 ENDCHAR STARTCHAR C121 ENCODING 121 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 42 42 42 42 42 42 42 42 3e 3e 02 02 3c 3c ENDCHAR STARTCHAR C122 ENCODING 122 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 7e 7e 04 04 18 18 20 20 7e 7e 00 00 00 00 ENDCHAR STARTCHAR C123 ENCODING 123 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR C124 ENCODING 124 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 ENDCHAR STARTCHAR C125 ENCODING 125 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 ENDCHAR STARTCHAR C126 ENCODING 126 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C127 ENCODING 127 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ENDCHAR ENDFONT xtel-3.3.0.orig/fonts/g0s16x10.bdf0100444001424500142340000003707206703332535015305 0ustar ericpersoSTARTFONT 2.1 COMMENT $Id: g0s16x10.bdf,v 1.2 1995/02/10 17:53:37 pierre Exp $ FONT -Lectra-Minitel-Medium-R-Normal--10-100-75-75-C-160-ISO2022-0S SIZE 10 75 75 FONTBOUNDINGBOX 16 10 0 -2 STARTPROPERTIES 19 FONTNAME_REGISTRY "" FOUNDRY "Lectra" FAMILY_NAME "Minitel" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 10 POINT_SIZE 100 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "C" AVERAGE_WIDTH 80 CHARSET_REGISTRY "ISO2022-0S" CHARSET_ENCODING "1" FONT_ASCENT 8 FONT_DESCENT 2 DEFAULT_CHAR 32 COPYRIGHT "Copyright 1991 Lectra-Systemes" ENDPROPERTIES CHARS 116 STARTCHAR C000 ENCODING 0 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0F00 30C0 3000 3000 FF00 3000 3000 FFC0 ffff ENDCHAR STARTCHAR C001 ENCODING 1 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 0C00 3C00 FFFF 3C00 0C00 0000 ffff ENDCHAR STARTCHAR C002 ENCODING 2 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 00C0 03F0 0FFC 00C0 00C0 00C0 00C0 00C0 ffff ENDCHAR STARTCHAR C003 ENCODING 3 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 0030 003C FFFF 003C 0030 0000 ffff ENDCHAR STARTCHAR C004 ENCODING 4 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 00C0 00C0 00C0 00C0 00C0 00C0 0FFC 03F0 ffff ENDCHAR STARTCHAR C005 ENCODING 5 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 3C00 C300 C300 3C00 0000 0000 0000 0000 0000 ffff ENDCHAR STARTCHAR C006 ENCODING 6 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0C00 0C00 FFC0 0C00 0C00 FFC0 0000 ffff ENDCHAR STARTCHAR C007 ENCODING 7 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 00C0 0000 3FFF 0000 00C0 0000 0000 ffff ENDCHAR STARTCHAR C008 ENCODING 8 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 C030 C0C0 C0C0 C30C C33C 0CCC 0CFF 300C ffff ENDCHAR STARTCHAR C009 ENCODING 9 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 C030 C0C0 C0C0 C33C C3C3 0C0F 0C30 30FF ffff ENDCHAR STARTCHAR C010 ENCODING 10 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 FC0C 0C30 3C30 0CCC FCFC 03CC 03FF 0C0C ffff ENDCHAR STARTCHAR C011 ENCODING 11 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0F00 03C0 0000 0000 0000 0000 0000 0000 ffff ENDCHAR STARTCHAR C012 ENCODING 12 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 003C 00F0 0000 0000 0000 0000 0000 0000 ffff ENDCHAR STARTCHAR C013 ENCODING 13 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 03F0 0F3C 0000 0000 0000 0000 0000 0000 ffff ENDCHAR STARTCHAR C014 ENCODING 14 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0F3C 0000 0000 0000 0000 0000 0000 0000 ffff ENDCHAR STARTCHAR C015 ENCODING 15 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 03C0 ffff ENDCHAR STARTCHAR C016 ENCODING 16 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0FFF 30C0 C0C0 C0FC C0C0 30C0 0FFF 0000 ffff ENDCHAR STARTCHAR C017 ENCODING 17 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 3F3F C0C3 C0FF C0C0 3F3F 0000 ffff ENDCHAR STARTCHAR C018 ENCODING 18 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0F00 30C0 C0C0 C300 CF00 C0F0 CC30 F3C0 ffff ENDCHAR STARTCHAR C019 ENCODING 19 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 3F00 C0C0 F000 3F00 C0C0 C0C0 3F00 03C0 C0C0 ffff ENDCHAR STARTCHAR C032 ENCODING 32 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C033 ENCODING 33 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 00C0 00C0 00C0 00C0 00C0 00C0 0000 00C0 0000 FFFF ENDCHAR STARTCHAR C034 ENCODING 34 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0330 0330 0330 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C035 ENCODING 35 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0C30 0C30 3FFC 0C30 0C30 3FFC 0C30 0C30 0000 FFFF ENDCHAR STARTCHAR C036 ENCODING 36 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 00C0 03FC 0CC0 03F0 00CC 0FF0 00C0 0000 FFFF ENDCHAR STARTCHAR C037 ENCODING 37 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0C0C 3330 0C30 00C0 030C 0333 0C0C 0000 FFFF ENDCHAR STARTCHAR C038 ENCODING 38 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0FC0 3000 0C00 0F00 30CC 3030 0FCC 0000 FFFF ENDCHAR STARTCHAR C039 ENCODING 39 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 00F0 00C0 0300 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C040 ENCODING 40 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0030 00C0 00C0 0300 0300 0300 00C0 00C0 0030 FFFF ENDCHAR STARTCHAR C041 ENCODING 41 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0300 00C0 00C0 0030 0030 0030 00C0 00C0 0300 FFFF ENDCHAR STARTCHAR C042 ENCODING 42 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 00C0 00C0 3CCF 03F0 00C0 0330 0C0C 0000 FFFF ENDCHAR STARTCHAR C043 ENCODING 43 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 00C0 00C0 00C0 3FFF 00C0 00C0 00C0 0000 FFFF ENDCHAR STARTCHAR C044 ENCODING 44 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 03C0 0300 0C00 FFFF ENDCHAR STARTCHAR C045 ENCODING 45 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 0000 3FFF 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C046 ENCODING 46 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 03C0 03C0 0000 FFFF ENDCHAR STARTCHAR C047 ENCODING 47 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0003 000C 0030 0030 00C0 0300 0C00 0C00 3000 FFFF ENDCHAR STARTCHAR C048 ENCODING 48 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0FF0 300C 300C 300C 300C 300C 300C 0FF0 0000 FFFF ENDCHAR STARTCHAR C049 ENCODING 49 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 00C0 03C0 00C0 00C0 00C0 00C0 00C0 00C0 0000 FFFF ENDCHAR STARTCHAR C050 ENCODING 50 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0FF0 300C 000C 0030 00C0 0300 0C00 3FFC 0000 FFFF ENDCHAR STARTCHAR C051 ENCODING 51 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0FF0 300C 000C 03F0 000C 000C 300C 0FF0 0000 FFFF ENDCHAR STARTCHAR C052 ENCODING 52 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 00F0 00F0 0330 0330 0C30 3FFC 0030 00FC 0000 FFFF ENDCHAR STARTCHAR C053 ENCODING 53 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 3FFC 3000 3000 3FF0 000C 000C 300C 0FF0 0000 FFFF ENDCHAR STARTCHAR C054 ENCODING 54 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 03F0 0C00 3000 3FF0 300C 300C 300C 0FF0 0000 FFFF ENDCHAR STARTCHAR C055 ENCODING 55 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 3FFC 300C 0030 0030 00C0 00C0 0300 0300 0000 FFFF ENDCHAR STARTCHAR C056 ENCODING 56 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0FF0 300C 300C 0FF0 300C 300C 300C 0FF0 0000 FFFF ENDCHAR STARTCHAR C057 ENCODING 57 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0FF0 300C 300C 300C 0FFC 000C 0030 0FC0 0000 FFFF ENDCHAR STARTCHAR C058 ENCODING 58 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 03C0 03C0 0000 0000 03C0 03C0 0000 FFFF ENDCHAR STARTCHAR C059 ENCODING 59 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 03C0 03C0 0000 0000 03C0 0300 0C00 FFFF ENDCHAR STARTCHAR C060 ENCODING 60 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 003C 03C0 3C00 03C0 003C 0000 0000 FFFF ENDCHAR STARTCHAR C061 ENCODING 61 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 3FFF 0000 0000 3FFF 0000 0000 FFFF ENDCHAR STARTCHAR C062 ENCODING 62 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 3C00 03C0 003C 03C0 3C00 0000 0000 FFFF ENDCHAR STARTCHAR C063 ENCODING 63 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0FF0 300C 000C 0030 00C0 00C0 0000 00C0 0000 FFFF ENDCHAR STARTCHAR C064 ENCODING 64 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 03F0 0C0C 30C3 3333 30CC 0C00 03F0 0000 FFFF ENDCHAR STARTCHAR C065 ENCODING 65 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 1ffe 3fff 3003 3003 3fff 3003 3003 0000 FFFF ENDCHAR STARTCHAR C066 ENCODING 66 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 3FFC 3003 3003 3FFC 3003 3003 3FFC 0000 FFFF ENDCHAR STARTCHAR C067 ENCODING 67 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 03FC 0C03 3000 3000 3000 0C03 03FC 0000 FFFF ENDCHAR STARTCHAR C068 ENCODING 68 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 3FF0 300C 3003 3003 3003 300C 3FF0 0000 FFFF ENDCHAR STARTCHAR C069 ENCODING 69 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 3FFF 3000 3000 3FF0 3000 3000 3FFF 0000 FFFF ENDCHAR STARTCHAR C070 ENCODING 70 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 3FFF 3000 3000 3FF0 3000 3000 3000 0000 FFFF ENDCHAR STARTCHAR C071 ENCODING 71 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 03FC 0C03 3000 303F 3003 0C03 03FF 0000 FFFF ENDCHAR STARTCHAR C072 ENCODING 72 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 3003 3003 3003 3FFF 3003 3003 3003 0000 FFFF ENDCHAR STARTCHAR C073 ENCODING 73 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0FFC 00C0 00C0 00C0 00C0 00C0 0FFC 0000 FFFF ENDCHAR STARTCHAR C074 ENCODING 74 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 00FC 000C 000C 000C 300C 300C 0FF0 0000 FFFF ENDCHAR STARTCHAR C075 ENCODING 75 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 300C 3030 30C0 3F00 30C0 3030 300C 0000 FFFF ENDCHAR STARTCHAR C076 ENCODING 76 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 3000 3000 3000 3000 3000 3000 3FFC 0000 FFFF ENDCHAR STARTCHAR C077 ENCODING 77 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 3003 3C0F 3333 30C3 3003 3003 3003 0000 FFFF ENDCHAR STARTCHAR C078 ENCODING 78 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 3003 3C03 3303 30C3 3033 300F 3003 0000 FFFF ENDCHAR STARTCHAR C079 ENCODING 79 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 03F0 0C0C 3003 3003 3003 0C0C 03F0 0000 FFFF ENDCHAR STARTCHAR C080 ENCODING 80 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 3FFC 3003 3003 3FFC 3000 3000 3000 0000 FFFF ENDCHAR STARTCHAR C081 ENCODING 81 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 03F0 0C0C 3003 3003 3003 0C0C 03F0 003F FFFF ENDCHAR STARTCHAR C082 ENCODING 82 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 3FFC 3003 3003 3FFC 3030 300C 3003 0000 FFFF ENDCHAR STARTCHAR C083 ENCODING 83 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0FFC 3003 3000 0FFC 0003 3003 0FFC 0000 FFFF ENDCHAR STARTCHAR C084 ENCODING 84 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 3FFF 00C0 00C0 00C0 00C0 00C0 00C0 0000 FFFF ENDCHAR STARTCHAR C085 ENCODING 85 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 3003 3003 3003 3003 3003 3003 0FFC 0000 FFFF ENDCHAR STARTCHAR C086 ENCODING 86 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 3C0F 0C0C 0C0C 0330 0330 00C0 00C0 0000 FFFF ENDCHAR STARTCHAR C087 ENCODING 87 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 3003 3003 3003 30C3 3333 3C0F 3003 0000 FFFF ENDCHAR STARTCHAR C088 ENCODING 88 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 3003 0C0C 0330 00C0 0330 0C0C 3003 0000 FFFF ENDCHAR STARTCHAR C089 ENCODING 89 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 3003 0C0C 0330 00C0 00C0 00C0 00C0 0000 FFFF ENDCHAR STARTCHAR C090 ENCODING 90 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 3FFF 000C 0030 00C0 0300 0C00 3FFF 0000 FFFF ENDCHAR STARTCHAR C091 ENCODING 91 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 00FC 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00FC FFFF ENDCHAR STARTCHAR C092 ENCODING 92 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP C000 3000 0C00 0C00 0300 00C0 0030 0030 000C FFFF ENDCHAR STARTCHAR C093 ENCODING 93 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0FC0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 0FC0 FFFF ENDCHAR STARTCHAR C094 ENCODING 94 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 00C0 0330 0C0C 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C095 ENCODING 95 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C096 ENCODING 96 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 0000 0000 FFFF 0000 0000 0000 FFFF ENDCHAR STARTCHAR C097 ENCODING 97 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 0FFF 3003 3003 300F 0FF3 0000 FFFF ENDCHAR STARTCHAR C098 ENCODING 98 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 3000 3000 3000 3FFC 3003 3003 3003 3FFC 0000 FFFF ENDCHAR STARTCHAR C099 ENCODING 99 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 0FFC 3000 3000 3000 0FFC 0000 FFFF ENDCHAR STARTCHAR C100 ENCODING 100 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0003 0003 0003 0FFF 3003 3003 3003 0FFF 0000 FFFF ENDCHAR STARTCHAR C101 ENCODING 101 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 0FFC 3003 3FFF 3000 0FFC 0000 FFFF ENDCHAR STARTCHAR C102 ENCODING 102 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 03FC 0C00 0C00 3FC0 0C00 0C00 0C00 0C00 0000 FFFF ENDCHAR STARTCHAR C103 ENCODING 103 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 0FFF 3003 3003 3003 0FFF 0003 FFFF ENDCHAR STARTCHAR C104 ENCODING 104 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 3000 3000 3000 3FFC 3003 3003 3003 3003 0000 FFFF ENDCHAR STARTCHAR C105 ENCODING 105 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 00C0 00C0 0000 0FC0 00C0 00C0 00C0 0FFC 0000 FFFF ENDCHAR STARTCHAR C106 ENCODING 106 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 000C 000C 0000 03FC 000C 000C 000C 000C 000C FFFF ENDCHAR STARTCHAR C107 ENCODING 107 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 3000 3000 3000 303C 30C0 3F00 30C0 303C 0000 FFFF ENDCHAR STARTCHAR C108 ENCODING 108 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 03C0 00C0 00C0 00C0 00C0 00C0 00C0 03F0 0000 FFFF ENDCHAR STARTCHAR C109 ENCODING 109 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 3F3C 30C3 30C3 30C3 3003 0000 FFFF ENDCHAR STARTCHAR C110 ENCODING 110 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 33FC 3C03 3003 3003 3003 0000 FFFF ENDCHAR STARTCHAR C111 ENCODING 111 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 0FFC 3003 3003 3003 0FFC 0000 FFFF ENDCHAR STARTCHAR C112 ENCODING 112 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 3FFC 3003 3003 3003 3FFC 3000 FFFF ENDCHAR STARTCHAR C113 ENCODING 113 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 0FFF 3003 3003 3003 0FFF 0003 FFFF ENDCHAR STARTCHAR C114 ENCODING 114 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 0CFC 0F00 0C00 0C00 0C00 0000 FFFF ENDCHAR STARTCHAR C115 ENCODING 115 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 0FFC 3000 0FF0 000C 3FF0 0000 FFFF ENDCHAR STARTCHAR C116 ENCODING 116 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0300 0300 0300 3FFC 0300 0300 0300 00FC 0000 FFFF ENDCHAR STARTCHAR C117 ENCODING 117 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 3003 3003 3003 300F 0FF3 0000 FFFF ENDCHAR STARTCHAR C118 ENCODING 118 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 3C0F 0C0C 0330 0330 00C0 0000 FFFF ENDCHAR STARTCHAR C119 ENCODING 119 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 3003 30C3 30C3 30C3 0F3C 0000 FFFF ENDCHAR STARTCHAR C120 ENCODING 120 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 3C0F 0330 00C0 0330 3C0F 0000 FFFF ENDCHAR STARTCHAR C121 ENCODING 121 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 300C 300C 300C 300C 0FFC 000C FFFF ENDCHAR STARTCHAR C122 ENCODING 122 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 3FFC 0030 03C0 0C00 3FFC 0000 FFFF ENDCHAR STARTCHAR C123 ENCODING 123 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP C000 C000 C000 C000 C000 C000 C000 C000 C000 FFFF ENDCHAR STARTCHAR C124 ENCODING 124 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 FFFF ENDCHAR STARTCHAR C125 ENCODING 125 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0003 0003 0003 0003 0003 0003 0003 0003 0003 FFFF ENDCHAR STARTCHAR C126 ENCODING 126 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP FFFF 0000 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C127 ENCODING 127 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ENDCHAR ENDFONT xtel-3.3.0.orig/fonts/g0s16x20.bdf0100444001424500142340000005237306703332535015307 0ustar ericpersoSTARTFONT 2.1 COMMENT $Id: g0s16x20.bdf,v 1.2 1995/02/10 17:53:37 pierre Exp $ FONT -Lectra-Minitel-Medium-R-Normal--20-200-75-75-C-160-ISO2022-0S SIZE 20 75 75 FONTBOUNDINGBOX 16 20 0 -2 STARTPROPERTIES 19 FONTNAME_REGISTRY "" FOUNDRY "Lectra" FAMILY_NAME "Minitel" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 20 POINT_SIZE 200 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "C" AVERAGE_WIDTH 80 CHARSET_REGISTRY "ISO2022-0S" CHARSET_ENCODING "1" FONT_ASCENT 18 FONT_DESCENT 2 DEFAULT_CHAR 32 COPYRIGHT "Copyright 1991 Lectra-Systemes" ENDPROPERTIES CHARS 116 STARTCHAR C000 ENCODING 0 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0F00 0F00 30C0 30C0 3000 3000 3000 3000 FF00 FF00 3000 3000 3000 3000 FFC0 FFC0 0000 ffff ENDCHAR STARTCHAR C001 ENCODING 1 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0C00 0C00 3C00 3C00 FFFF FFFF 3C00 3C00 0C00 0C00 0000 0000 0000 ffff ENDCHAR STARTCHAR C002 ENCODING 2 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 00C0 00C0 03F0 03F0 0FFC 0FFC 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 ffff ENDCHAR STARTCHAR C003 ENCODING 3 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0030 0030 003C 003C FFFF FFFF 003C 003C 0030 0030 0000 0000 0000 ffff ENDCHAR STARTCHAR C004 ENCODING 4 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 0FFC 0FFC 03F0 03F0 00C0 ffff ENDCHAR STARTCHAR C005 ENCODING 5 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3C00 3C00 C300 C300 C300 C300 3C00 3C00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ffff ENDCHAR STARTCHAR C006 ENCODING 6 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0C00 0C00 0C00 0C00 FFC0 FFC0 0C00 0C00 0C00 0C00 FFC0 FFC0 0000 0000 0000 ffff ENDCHAR STARTCHAR C007 ENCODING 7 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 00C0 00C0 0000 0000 3FFF 3FFF 0000 0000 00C0 00C0 0000 0000 0000 0000 0000 ffff ENDCHAR STARTCHAR C008 ENCODING 8 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 C030 C030 C0C0 C0C0 C0C0 C0C0 C30C C30C C33C C33C 0CCC 0CCC 0CFF 0CFF 300C 300C 0000 ffff ENDCHAR STARTCHAR C009 ENCODING 9 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 C030 C030 C0C0 C0C0 C0C0 C0C0 C33C C33C C3C3 C3C3 0C0F 0C0F 0C30 0C30 30FF 30FF 0000 ffff ENDCHAR STARTCHAR C010 ENCODING 10 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 FC0C FC0C 0C30 0C30 3C30 3C30 0CCC 0CCC FCFC FCFC 03CC 03CC 03FF 03FF 0C0C 0C0C 0000 ffff ENDCHAR STARTCHAR C011 ENCODING 11 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0F00 0F00 03C0 03C0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ffff ENDCHAR STARTCHAR C012 ENCODING 12 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 003C 003C 00F0 00F0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ffff ENDCHAR STARTCHAR C013 ENCODING 13 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 03F0 03F0 0F3C 0F3C 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ffff ENDCHAR STARTCHAR C014 ENCODING 14 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0F3C 0F3C 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ffff ENDCHAR STARTCHAR C015 ENCODING 15 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 03C0 03C0 0FC0 ffff ENDCHAR STARTCHAR C016 ENCODING 16 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0FFF 0FFF 30C0 30C0 C0C0 C0C0 C0FC C0FC C0C0 C0C0 30C0 30C0 0FFF 0FFF 0000 0000 0000 ffff ENDCHAR STARTCHAR C017 ENCODING 17 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 3F3F 3F3F C0C3 C0C3 C0FF C0FF C0C0 C0C0 3F3F 3F3F 0000 0000 0000 ffff ENDCHAR STARTCHAR C018 ENCODING 18 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0F00 0F00 30C0 30C0 C0C0 C0C0 C300 C300 CF00 CF00 C0F0 C0F0 CC30 CC30 F3C0 F3C0 0000 ffff ENDCHAR STARTCHAR C019 ENCODING 19 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F00 3F00 C0C0 C0C0 F000 F000 3F00 3F00 C0C0 C0C0 C0C0 C0C0 3F00 3F00 03C0 03C0 C0C0 C0C0 3F00 ffff ENDCHAR STARTCHAR C032 ENCODING 32 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C033 ENCODING 33 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 0000 0000 00C0 00C0 0000 0000 0000 FFFF ENDCHAR STARTCHAR C034 ENCODING 34 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0330 0330 0330 0330 0330 0330 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C035 ENCODING 35 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0C30 0C30 0C30 0C30 3FFC 3FFC 0C30 0C30 0C30 0C30 3FFC 3FFC 0C30 0C30 0C30 0C30 0000 0000 0000 FFFF ENDCHAR STARTCHAR C036 ENCODING 36 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 00C0 00C0 03FC 03FC 0CC0 0CC0 03F0 03F0 00CC 00CC 0FF0 0FF0 00C0 00C0 0000 0000 0000 FFFF ENDCHAR STARTCHAR C037 ENCODING 37 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0C0C 0C0C 3330 3330 0C30 0C30 00C0 00C0 030C 030C 0333 0333 0C0C 0C0C 0000 0000 0000 FFFF ENDCHAR STARTCHAR C038 ENCODING 38 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0FC0 0FC0 3000 3000 0C00 0C00 0F00 0F00 30CC 30CC 3030 3030 0FCC 0FCC 0000 0000 0000 FFFF ENDCHAR STARTCHAR C039 ENCODING 39 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 00F0 00F0 00C0 00C0 0300 0300 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C040 ENCODING 40 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0030 0030 00C0 00C0 00C0 00C0 0300 0300 0300 0300 0300 0300 00C0 00C0 00C0 00C0 0030 0030 0000 FFFF ENDCHAR STARTCHAR C041 ENCODING 41 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0300 0300 00C0 00C0 00C0 00C0 0030 0030 0030 0030 0030 0030 00C0 00C0 00C0 00C0 0300 0300 0000 FFFF ENDCHAR STARTCHAR C042 ENCODING 42 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 00C0 00C0 00C0 00C0 3CCF 3CCF 03F0 03F0 00C0 00C0 0330 0330 0C0C 0C0C 0000 0000 0000 FFFF ENDCHAR STARTCHAR C043 ENCODING 43 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 00C0 00C0 00C0 00C0 00C0 00C0 3FFF 3FFF 00C0 00C0 00C0 00C0 00C0 00C0 0000 0000 0000 FFFF ENDCHAR STARTCHAR C044 ENCODING 44 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 03C0 03C0 0300 0300 0C00 0C00 0000 FFFF ENDCHAR STARTCHAR C045 ENCODING 45 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 3FFF 3FFF 0000 0000 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C046 ENCODING 46 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 03C0 03C0 03C0 03C0 0000 0000 0000 FFFF ENDCHAR STARTCHAR C047 ENCODING 47 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0003 0003 000C 000C 0030 0030 0030 0030 00C0 00C0 0300 0300 0C00 0C00 0C00 0C00 3000 3000 C000 FFFF ENDCHAR STARTCHAR C048 ENCODING 48 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0FF0 0FF0 300C 300C 300C 300C 300C 300C 300C 300C 300C 300C 300C 300C 0FF0 0FF0 0000 0000 0000 FFFF ENDCHAR STARTCHAR C049 ENCODING 49 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 00C0 00C0 03C0 03C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 0000 0000 0000 FFFF ENDCHAR STARTCHAR C050 ENCODING 50 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0FF0 0FF0 300C 300C 000C 000C 0030 0030 00C0 00C0 0300 0300 0C00 0C00 3FFC 3FFC 0000 0000 0000 FFFF ENDCHAR STARTCHAR C051 ENCODING 51 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0FF0 0FF0 300C 300C 000C 000C 03F0 03F0 000C 000C 000C 000C 300C 300C 0FF0 0FF0 0000 0000 0000 FFFF ENDCHAR STARTCHAR C052 ENCODING 52 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 00F0 00F0 00F0 00F0 0330 0330 0330 0330 0C30 0C30 3FFC 3FFC 0030 0030 00FC 00FC 0000 0000 0000 FFFF ENDCHAR STARTCHAR C053 ENCODING 53 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3FFC 3FFC 3000 3000 3000 3000 3FF0 3FF0 000C 000C 000C 000C 300C 300C 0FF0 0FF0 0000 0000 0000 FFFF ENDCHAR STARTCHAR C054 ENCODING 54 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 03F0 03F0 0C00 0C00 3000 3000 3FF0 3FF0 300C 300C 300C 300C 300C 300C 0FF0 0FF0 0000 0000 0000 FFFF ENDCHAR STARTCHAR C055 ENCODING 55 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3FFC 3FFC 300C 300C 0030 0030 0030 0030 00C0 00C0 00C0 00C0 0300 0300 0300 0300 0000 0000 0000 FFFF ENDCHAR STARTCHAR C056 ENCODING 56 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0FF0 0FF0 300C 300C 300C 300C 0FF0 0FF0 300C 300C 300C 300C 300C 300C 0FF0 0FF0 0000 0000 0000 FFFF ENDCHAR STARTCHAR C057 ENCODING 57 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0FF0 0FF0 300C 300C 300C 300C 300C 300C 0FFC 0FFC 000C 000C 0030 0030 0FC0 0FC0 0000 0000 0000 FFFF ENDCHAR STARTCHAR C058 ENCODING 58 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 03C0 03C0 03C0 03C0 0000 0000 0000 0000 03C0 03C0 03C0 03C0 0000 0000 0000 FFFF ENDCHAR STARTCHAR C059 ENCODING 59 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 03C0 03C0 03C0 03C0 0000 0000 0000 0000 03C0 03C0 0300 0300 0C00 0C00 0000 FFFF ENDCHAR STARTCHAR C060 ENCODING 60 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 003C 003C 03C0 03C0 3C00 3C00 03C0 03C0 003C 003C 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C061 ENCODING 61 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 3FFF 3FFF 0000 0000 0000 0000 3FFF 3FFF 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C062 ENCODING 62 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 3C00 3C00 03C0 03C0 003C 003C 03C0 03C0 3C00 3C00 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C063 ENCODING 63 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0FF0 0FF0 300C 300C 000C 000C 0030 0030 00C0 00C0 00C0 00C0 0000 0000 00C0 00C0 0000 0000 0000 FFFF ENDCHAR STARTCHAR C064 ENCODING 64 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 03F0 03F0 0C0C 0C0C 30C3 30C3 3333 3333 30CC 30CC 0C00 0C00 03F0 03F0 0000 0000 0000 FFFF ENDCHAR STARTCHAR C065 ENCODING 65 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0ffc 1ffe 3003 3003 3003 3003 3fff 3fff 3003 3003 3003 3003 3003 3003 0000 0000 0000 FFFF ENDCHAR STARTCHAR C066 ENCODING 66 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 3FFC 3FFC 3003 3003 3003 3003 3FFC 3FFC 3003 3003 3003 3003 3FFC 3FFC 0000 0000 0000 FFFF ENDCHAR STARTCHAR C067 ENCODING 67 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 03FC 03FC 0C03 0C03 3000 3000 3000 3000 3000 3000 0C03 0C03 03FC 03FC 0000 0000 0000 FFFF ENDCHAR STARTCHAR C068 ENCODING 68 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 3FF0 3FF0 300C 300C 3003 3003 3003 3003 3003 3003 300C 300C 3FF0 3FF0 0000 0000 0000 FFFF ENDCHAR STARTCHAR C069 ENCODING 69 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 3FFF 3FFF 3000 3000 3000 3000 3FF0 3FF0 3000 3000 3000 3000 3FFF 3FFF 0000 0000 0000 FFFF ENDCHAR STARTCHAR C070 ENCODING 70 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 3FFF 3FFF 3000 3000 3000 3000 3FF0 3FF0 3000 3000 3000 3000 3000 3000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C071 ENCODING 71 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 03FC 03FC 0C03 0C03 3000 3000 303F 303F 3003 3003 0C03 0C03 03FF 03FF 0000 0000 0000 FFFF ENDCHAR STARTCHAR C072 ENCODING 72 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 3003 3003 3003 3003 3003 3003 3FFF 3FFF 3003 3003 3003 3003 3003 3003 0000 0000 0000 FFFF ENDCHAR STARTCHAR C073 ENCODING 73 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0FFC 0FFC 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 0FFC 0FFC 0000 0000 0000 FFFF ENDCHAR STARTCHAR C074 ENCODING 74 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 00FC 00FC 000C 000C 000C 000C 000C 000C 300C 300C 300C 300C 0FF0 0FF0 0000 0000 0000 FFFF ENDCHAR STARTCHAR C075 ENCODING 75 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 300C 300C 3030 3030 30C0 30C0 3F00 3F00 30C0 30C0 3030 3030 300C 300C 0000 0000 0000 FFFF ENDCHAR STARTCHAR C076 ENCODING 76 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3FFC 3FFC 0000 0000 0000 FFFF ENDCHAR STARTCHAR C077 ENCODING 77 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 3003 3003 3C0F 3C0F 3333 3333 30C3 30C3 3003 3003 3003 3003 3003 3003 0000 0000 0000 FFFF ENDCHAR STARTCHAR C078 ENCODING 78 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 3003 3003 3C03 3C03 3303 3303 30C3 30C3 3033 3033 300F 300F 3003 3003 0000 0000 0000 FFFF ENDCHAR STARTCHAR C079 ENCODING 79 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 03F0 03F0 0C0C 0C0C 3003 3003 3003 3003 3003 3003 0C0C 0C0C 03F0 03F0 0000 0000 0000 FFFF ENDCHAR STARTCHAR C080 ENCODING 80 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 3FFC 3FFC 3003 3003 3003 3003 3FFC 3FFC 3000 3000 3000 3000 3000 3000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C081 ENCODING 81 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 03F0 03F0 0C0C 0C0C 3003 3003 3003 3003 3003 3003 0C0C 0C0C 03F0 03F0 003F 003F 0000 FFFF ENDCHAR STARTCHAR C082 ENCODING 82 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 3FFC 3FFC 3003 3003 3003 3003 3FFC 3FFC 3030 3030 300C 300C 3003 3003 0000 0000 0000 FFFF ENDCHAR STARTCHAR C083 ENCODING 83 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0FFC 0FFC 3003 3003 3000 3000 0FFC 0FFC 0003 0003 3003 3003 0FFC 0FFC 0000 0000 0000 FFFF ENDCHAR STARTCHAR C084 ENCODING 84 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 3FFF 3FFF 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 0000 0000 0000 FFFF ENDCHAR STARTCHAR C085 ENCODING 85 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 0FFC 0FFC 0000 0000 0000 FFFF ENDCHAR STARTCHAR C086 ENCODING 86 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 3C0F 3C0F 0C0C 0C0C 0C0C 0C0C 0330 0330 0330 0330 00C0 00C0 00C0 00C0 0000 0000 0000 FFFF ENDCHAR STARTCHAR C087 ENCODING 87 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 3003 3003 3003 3003 3003 3003 30C3 30C3 3333 3333 3C0F 3C0F 3003 3003 0000 0000 0000 FFFF ENDCHAR STARTCHAR C088 ENCODING 88 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 3003 3003 0C0C 0C0C 0330 0330 00C0 00C0 0330 0330 0C0C 0C0C 3003 3003 0000 0000 0000 FFFF ENDCHAR STARTCHAR C089 ENCODING 89 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 3003 3003 0C0C 0C0C 0330 0330 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 0000 0000 0000 FFFF ENDCHAR STARTCHAR C090 ENCODING 90 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 3FFF 3FFF 000C 000C 0030 0030 00C0 00C0 0300 0300 0C00 0C00 3FFF 3FFF 0000 0000 0000 FFFF ENDCHAR STARTCHAR C091 ENCODING 91 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 00FC 00FC 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00FC 00FC 0000 FFFF ENDCHAR STARTCHAR C092 ENCODING 92 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP C000 C000 3000 3000 0C00 0C00 0C00 0C00 0300 0300 00C0 00C0 0030 0030 0030 0030 000C 000C 0003 FFFF ENDCHAR STARTCHAR C093 ENCODING 93 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0FC0 0FC0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 0FC0 0FC0 0000 FFFF ENDCHAR STARTCHAR C094 ENCODING 94 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 00C0 00C0 0330 0330 0C0C 0C0C 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C095 ENCODING 95 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C096 ENCODING 96 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 FFFF FFFF 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C097 ENCODING 97 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0FFF 0FFF 3003 3003 3003 3003 300F 300F 0FF3 0FF3 0000 0000 0000 FFFF ENDCHAR STARTCHAR C098 ENCODING 98 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3000 3000 3000 3000 3000 3000 3FFC 3FFC 3003 3003 3003 3003 3003 3003 3FFC 3FFC 0000 0000 0000 FFFF ENDCHAR STARTCHAR C099 ENCODING 99 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0FFC 0FFC 3000 3000 3000 3000 3000 3000 0FFC 0FFC 0000 0000 0000 FFFF ENDCHAR STARTCHAR C100 ENCODING 100 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0003 0003 0003 0003 0003 0003 0FFF 0FFF 3003 3003 3003 3003 3003 3003 0FFF 0FFF 0000 0000 0000 FFFF ENDCHAR STARTCHAR C101 ENCODING 101 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0FFC 0FFC 3003 3003 3FFF 3FFF 3000 3000 0FFC 0FFC 0000 0000 0000 FFFF ENDCHAR STARTCHAR C102 ENCODING 102 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 03FC 03FC 0C00 0C00 0C00 0C00 3FC0 3FC0 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0000 0000 0000 FFFF ENDCHAR STARTCHAR C103 ENCODING 103 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0FFF 0FFF 3003 3003 3003 3003 3003 3003 0FFF 0FFF 0003 0003 0FFC FFFF ENDCHAR STARTCHAR C104 ENCODING 104 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3000 3000 3000 3000 3000 3000 3FFC 3FFC 3003 3003 3003 3003 3003 3003 3003 3003 0000 0000 0000 FFFF ENDCHAR STARTCHAR C105 ENCODING 105 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 00C0 00C0 00C0 00C0 0000 0000 0FC0 0FC0 00C0 00C0 00C0 00C0 00C0 00C0 0FFC 0FFC 0000 0000 0000 FFFF ENDCHAR STARTCHAR C106 ENCODING 106 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 000C 000C 000C 000C 0000 0000 03FC 03FC 000C 000C 000C 000C 000C 000C 000C 000C 000C 000C 0FF0 FFFF ENDCHAR STARTCHAR C107 ENCODING 107 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3000 3000 3000 3000 3000 3000 303C 303C 30C0 30C0 3F00 3F00 30C0 30C0 303C 303C 0000 0000 0000 FFFF ENDCHAR STARTCHAR C108 ENCODING 108 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 03C0 03C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 03F0 03F0 0000 0000 0000 FFFF ENDCHAR STARTCHAR C109 ENCODING 109 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 3F3C 3F3C 30C3 30C3 30C3 30C3 30C3 30C3 3003 3003 0000 0000 0000 FFFF ENDCHAR STARTCHAR C110 ENCODING 110 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 33FC 33FC 3C03 3C03 3003 3003 3003 3003 3003 3003 0000 0000 0000 FFFF ENDCHAR STARTCHAR C111 ENCODING 111 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0FFC 0FFC 3003 3003 3003 3003 3003 3003 0FFC 0FFC 0000 0000 0000 FFFF ENDCHAR STARTCHAR C112 ENCODING 112 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 3FFC 3FFC 3003 3003 3003 3003 3003 3003 3FFC 3FFC 3000 3000 3000 FFFF ENDCHAR STARTCHAR C113 ENCODING 113 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0FFF 0FFF 3003 3003 3003 3003 3003 3003 0FFF 0FFF 0003 0003 0003 FFFF ENDCHAR STARTCHAR C114 ENCODING 114 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0CFC 0CFC 0F00 0F00 0C00 0C00 0C00 0C00 0C00 0C00 0000 0000 0000 FFFF ENDCHAR STARTCHAR C115 ENCODING 115 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0FFC 0FFC 3000 3000 0FF0 0FF0 000C 000C 3FF0 3FF0 0000 0000 0000 FFFF ENDCHAR STARTCHAR C116 ENCODING 116 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0300 0300 0300 0300 0300 0300 3FFC 3FFC 0300 0300 0300 0300 0300 0300 00FC 00FC 0000 0000 0000 FFFF ENDCHAR STARTCHAR C117 ENCODING 117 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 3003 3003 3003 3003 3003 3003 300F 300F 0FF3 0FF3 0000 0000 0000 FFFF ENDCHAR STARTCHAR C118 ENCODING 118 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 3C0F 3C0F 0C0C 0C0C 0330 0330 0330 0330 00C0 00C0 0000 0000 0000 FFFF ENDCHAR STARTCHAR C119 ENCODING 119 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 3003 3003 30C3 30C3 30C3 30C3 30C3 30C3 0F3C 0F3C 0000 0000 0000 FFFF ENDCHAR STARTCHAR C120 ENCODING 120 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 3C0F 3C0F 0330 0330 00C0 00C0 0330 0330 3C0F 3C0F 0000 0000 0000 FFFF ENDCHAR STARTCHAR C121 ENCODING 121 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 300C 300C 300C 300C 300C 300C 300C 300C 0FFC 0FFC 000C 000C 0FF0 FFFF ENDCHAR STARTCHAR C122 ENCODING 122 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 3FFC 3FFC 0030 0030 03C0 03C0 0C00 0C00 3FFC 3FFC 0000 0000 0000 FFFF ENDCHAR STARTCHAR C123 ENCODING 123 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP C000 C000 C000 C000 C000 C000 C000 C000 C000 C000 C000 C000 C000 C000 C000 C000 C000 C000 C000 FFFF ENDCHAR STARTCHAR C124 ENCODING 124 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 FFFF ENDCHAR STARTCHAR C125 ENCODING 125 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 FFFF ENDCHAR STARTCHAR C126 ENCODING 126 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FFFF FFFF 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C127 ENCODING 127 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ENDCHAR ENDFONT xtel-3.3.0.orig/fonts/g0s16x40.bdf0100444001424500142340000010113706703332535015302 0ustar ericpersoSTARTFONT 2.1 COMMENT $Id: g0s16x40.bdf,v 1.2 1995/02/10 17:53:37 pierre Exp $ FONT -Lectra-Minitel-Medium-R-Normal--40-400-75-75-C-160-ISO2022-0S SIZE 40 75 75 FONTBOUNDINGBOX 16 40 0 -2 STARTPROPERTIES 19 FONTNAME_REGISTRY "" FOUNDRY "Lectra" FAMILY_NAME "Minitel" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 40 POINT_SIZE 400 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "C" AVERAGE_WIDTH 80 CHARSET_REGISTRY "ISO2022-0S" CHARSET_ENCODING "1" FONT_ASCENT 38 FONT_DESCENT 2 DEFAULT_CHAR 32 COPYRIGHT "Copyright 1991 Lectra-Systemes" ENDPROPERTIES CHARS 116 STARTCHAR C000 ENCODING 0 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0F00 0F00 0F00 0F00 30C0 30C0 30C0 30C0 3000 3000 3000 3000 3000 3000 3000 3000 FF00 FF00 FF00 FF00 3000 3000 3000 3000 3000 3000 3000 3000 FFC0 FFC0 FFC0 FFC0 0000 0000 0000 ffff ENDCHAR STARTCHAR C001 ENCODING 1 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0C00 0C00 0C00 0C00 3C00 3C00 3C00 3C00 FFFF FFFF FFFF FFFF 3C00 3C00 3C00 3C00 0C00 0C00 0C00 0C00 0000 0000 0000 0000 0000 0000 0000 ffff ENDCHAR STARTCHAR C002 ENCODING 2 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 00C0 00C0 00C0 00C0 03F0 03F0 03F0 03F0 0FFC 0FFC 0FFC 0FFC 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 ffff ENDCHAR STARTCHAR C003 ENCODING 3 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0030 0030 0030 0030 003C 003C 003C 003C FFFF FFFF FFFF FFFF 003C 003C 003C 003C 0030 0030 0030 0030 0000 0000 0000 0000 0000 0000 0000 ffff ENDCHAR STARTCHAR C004 ENCODING 4 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 0FFC 0FFC 0FFC 0FFC 03F0 03F0 03F0 03F0 00C0 00C0 00C0 ffff ENDCHAR STARTCHAR C005 ENCODING 5 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 3C00 3C00 3C00 3C00 C300 C300 C300 C300 C300 C300 C300 C300 3C00 3C00 3C00 3C00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ffff ENDCHAR STARTCHAR C006 ENCODING 6 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 FFC0 FFC0 FFC0 FFC0 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 FFC0 FFC0 FFC0 FFC0 0000 0000 0000 0000 0000 0000 0000 ffff ENDCHAR STARTCHAR C007 ENCODING 7 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 00C0 00C0 00C0 00C0 0000 0000 0000 0000 3FFF 3FFF 3FFF 3FFF 0000 0000 0000 0000 00C0 00C0 00C0 00C0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ffff ENDCHAR STARTCHAR C008 ENCODING 8 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 C030 C030 C030 C030 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C30C C30C C30C C30C C33C C33C C33C C33C 0CCC 0CCC 0CCC 0CCC 0CFF 0CFF 0CFF 0CFF 300C 300C 300C 300C 0000 0000 0000 ffff ENDCHAR STARTCHAR C009 ENCODING 9 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 C030 C030 C030 C030 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C33C C33C C33C C33C C3C3 C3C3 C3C3 C3C3 0C0F 0C0F 0C0F 0C0F 0C30 0C30 0C30 0C30 30FF 30FF 30FF 30FF 0000 0000 0000 ffff ENDCHAR STARTCHAR C010 ENCODING 10 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 FC0C FC0C FC0C FC0C 0C30 0C30 0C30 0C30 3C30 3C30 3C30 3C30 0CCC 0CCC 0CCC 0CCC FCFC FCFC FCFC FCFC 03CC 03CC 03CC 03CC 03FF 03FF 03FF 03FF 0C0C 0C0C 0C0C 0C0C 0000 0000 0000 ffff ENDCHAR STARTCHAR C011 ENCODING 11 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0F00 0F00 0F00 0F00 03C0 03C0 03C0 03C0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ffff ENDCHAR STARTCHAR C012 ENCODING 12 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 003C 003C 003C 003C 00F0 00F0 00F0 00F0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ffff ENDCHAR STARTCHAR C013 ENCODING 13 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 03F0 03F0 03F0 03F0 0F3C 0F3C 0F3C 0F3C 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ffff ENDCHAR STARTCHAR C014 ENCODING 14 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0F3C 0F3C 0F3C 0F3C 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ffff ENDCHAR STARTCHAR C015 ENCODING 15 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 03C0 03C0 03C0 03C0 0FC0 0FC0 0FC0 ffff ENDCHAR STARTCHAR C016 ENCODING 16 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0FFF 0FFF 0FFF 0FFF 30C0 30C0 30C0 30C0 C0C0 C0C0 C0C0 C0C0 C0FC C0FC C0FC C0FC C0C0 C0C0 C0C0 C0C0 30C0 30C0 30C0 30C0 0FFF 0FFF 0FFF 0FFF 0000 0000 0000 0000 0000 0000 0000 ffff ENDCHAR STARTCHAR C017 ENCODING 17 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3F3F 3F3F 3F3F 3F3F C0C3 C0C3 C0C3 C0C3 C0FF C0FF C0FF C0FF C0C0 C0C0 C0C0 C0C0 3F3F 3F3F 3F3F 3F3F 0000 0000 0000 0000 0000 0000 0000 ffff ENDCHAR STARTCHAR C018 ENCODING 18 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0F00 0F00 0F00 0F00 30C0 30C0 30C0 30C0 C0C0 C0C0 C0C0 C0C0 C300 C300 C300 C300 CF00 CF00 CF00 CF00 C0F0 C0F0 C0F0 C0F0 CC30 CC30 CC30 CC30 F3C0 F3C0 F3C0 F3C0 0000 0000 0000 ffff ENDCHAR STARTCHAR C019 ENCODING 19 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 3F00 3F00 3F00 3F00 C0C0 C0C0 C0C0 C0C0 F000 F000 F000 F000 3F00 3F00 3F00 3F00 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 3F00 3F00 3F00 3F00 03C0 03C0 03C0 03C0 C0C0 C0C0 C0C0 C0C0 3F00 3F00 3F00 ffff ENDCHAR STARTCHAR C032 ENCODING 32 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C033 ENCODING 33 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 0000 0000 0000 0000 00C0 00C0 00C0 00C0 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C034 ENCODING 34 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0330 0330 0330 0330 0330 0330 0330 0330 0330 0330 0330 0330 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C035 ENCODING 35 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0C30 0C30 0C30 0C30 0C30 0C30 0C30 0C30 3FFC 3FFC 3FFC 3FFC 0C30 0C30 0C30 0C30 0C30 0C30 0C30 0C30 3FFC 3FFC 3FFC 3FFC 0C30 0C30 0C30 0C30 0C30 0C30 0C30 0C30 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C036 ENCODING 36 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 00C0 00C0 00C0 00C0 03FC 03FC 03FC 03FC 0CC0 0CC0 0CC0 0CC0 03F0 03F0 03F0 03F0 00CC 00CC 00CC 00CC 0FF0 0FF0 0FF0 0FF0 00C0 00C0 00C0 00C0 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C037 ENCODING 37 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0C0C 0C0C 0C0C 0C0C 3330 3330 3330 3330 0C30 0C30 0C30 0C30 00C0 00C0 00C0 00C0 030C 030C 030C 030C 0333 0333 0333 0333 0C0C 0C0C 0C0C 0C0C 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C038 ENCODING 38 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0FC0 0FC0 0FC0 0FC0 3000 3000 3000 3000 0C00 0C00 0C00 0C00 0F00 0F00 0F00 0F00 30CC 30CC 30CC 30CC 3030 3030 3030 3030 0FCC 0FCC 0FCC 0FCC 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C039 ENCODING 39 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 00F0 00F0 00F0 00F0 00C0 00C0 00C0 00C0 0300 0300 0300 0300 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C040 ENCODING 40 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0030 0030 0030 0030 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 0300 0300 0300 0300 0300 0300 0300 0300 0300 0300 0300 0300 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 0030 0030 0030 0030 0000 0000 0000 FFFF ENDCHAR STARTCHAR C041 ENCODING 41 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0300 0300 0300 0300 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 0030 0030 0030 0030 0030 0030 0030 0030 0030 0030 0030 0030 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 0300 0300 0300 0300 0000 0000 0000 FFFF ENDCHAR STARTCHAR C042 ENCODING 42 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 3CCF 3CCF 3CCF 3CCF 03F0 03F0 03F0 03F0 00C0 00C0 00C0 00C0 0330 0330 0330 0330 0C0C 0C0C 0C0C 0C0C 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C043 ENCODING 43 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 3FFF 3FFF 3FFF 3FFF 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C044 ENCODING 44 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 03C0 03C0 03C0 03C0 0300 0300 0300 0300 0C00 0C00 0C00 0C00 0000 0000 0000 FFFF ENDCHAR STARTCHAR C045 ENCODING 45 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3FFF 3FFF 3FFF 3FFF 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C046 ENCODING 46 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C047 ENCODING 47 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0003 0003 0003 0003 000C 000C 000C 000C 0030 0030 0030 0030 0030 0030 0030 0030 00C0 00C0 00C0 00C0 0300 0300 0300 0300 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 3000 3000 3000 3000 C000 C000 C000 FFFF ENDCHAR STARTCHAR C048 ENCODING 48 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0FF0 0FF0 0FF0 0FF0 300C 300C 300C 300C 300C 300C 300C 300C 300C 300C 300C 300C 300C 300C 300C 300C 300C 300C 300C 300C 300C 300C 300C 300C 0FF0 0FF0 0FF0 0FF0 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C049 ENCODING 49 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 00C0 00C0 00C0 00C0 03C0 03C0 03C0 03C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C050 ENCODING 50 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0FF0 0FF0 0FF0 0FF0 300C 300C 300C 300C 000C 000C 000C 000C 0030 0030 0030 0030 00C0 00C0 00C0 00C0 0300 0300 0300 0300 0C00 0C00 0C00 0C00 3FFC 3FFC 3FFC 3FFC 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C051 ENCODING 51 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0FF0 0FF0 0FF0 0FF0 300C 300C 300C 300C 000C 000C 000C 000C 03F0 03F0 03F0 03F0 000C 000C 000C 000C 000C 000C 000C 000C 300C 300C 300C 300C 0FF0 0FF0 0FF0 0FF0 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C052 ENCODING 52 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 00F0 00F0 00F0 00F0 00F0 00F0 00F0 00F0 0330 0330 0330 0330 0330 0330 0330 0330 0C30 0C30 0C30 0C30 3FFC 3FFC 3FFC 3FFC 0030 0030 0030 0030 00FC 00FC 00FC 00FC 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C053 ENCODING 53 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 3FFC 3FFC 3FFC 3FFC 3000 3000 3000 3000 3000 3000 3000 3000 3FF0 3FF0 3FF0 3FF0 000C 000C 000C 000C 000C 000C 000C 000C 300C 300C 300C 300C 0FF0 0FF0 0FF0 0FF0 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C054 ENCODING 54 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 03F0 03F0 03F0 03F0 0C00 0C00 0C00 0C00 3000 3000 3000 3000 3FF0 3FF0 3FF0 3FF0 300C 300C 300C 300C 300C 300C 300C 300C 300C 300C 300C 300C 0FF0 0FF0 0FF0 0FF0 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C055 ENCODING 55 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 3FFC 3FFC 3FFC 3FFC 300C 300C 300C 300C 0030 0030 0030 0030 0030 0030 0030 0030 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 0300 0300 0300 0300 0300 0300 0300 0300 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C056 ENCODING 56 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0FF0 0FF0 0FF0 0FF0 300C 300C 300C 300C 300C 300C 300C 300C 0FF0 0FF0 0FF0 0FF0 300C 300C 300C 300C 300C 300C 300C 300C 300C 300C 300C 300C 0FF0 0FF0 0FF0 0FF0 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C057 ENCODING 57 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0FF0 0FF0 0FF0 0FF0 300C 300C 300C 300C 300C 300C 300C 300C 300C 300C 300C 300C 0FFC 0FFC 0FFC 0FFC 000C 000C 000C 000C 0030 0030 0030 0030 0FC0 0FC0 0FC0 0FC0 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C058 ENCODING 58 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 0000 0000 0000 0000 0000 0000 0000 0000 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C059 ENCODING 59 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 0000 0000 0000 0000 0000 0000 0000 0000 03C0 03C0 03C0 03C0 0300 0300 0300 0300 0C00 0C00 0C00 0C00 0000 0000 0000 FFFF ENDCHAR STARTCHAR C060 ENCODING 60 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 003C 003C 003C 003C 03C0 03C0 03C0 03C0 3C00 3C00 3C00 3C00 03C0 03C0 03C0 03C0 003C 003C 003C 003C 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C061 ENCODING 61 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3FFF 3FFF 3FFF 3FFF 0000 0000 0000 0000 0000 0000 0000 0000 3FFF 3FFF 3FFF 3FFF 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C062 ENCODING 62 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 3C00 3C00 3C00 3C00 03C0 03C0 03C0 03C0 003C 003C 003C 003C 03C0 03C0 03C0 03C0 3C00 3C00 3C00 3C00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C063 ENCODING 63 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0FF0 0FF0 0FF0 0FF0 300C 300C 300C 300C 000C 000C 000C 000C 0030 0030 0030 0030 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 0000 0000 0000 0000 00C0 00C0 00C0 00C0 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C064 ENCODING 64 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 03F0 03F0 03F0 03F0 0C0C 0C0C 0C0C 0C0C 30C3 30C3 30C3 30C3 3333 3333 3333 3333 30CC 30CC 30CC 30CC 0C00 0C00 0C00 0C00 03F0 03F0 03F0 03F0 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C065 ENCODING 65 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0ffc 1ffe 3fff 3003 3003 3003 3003 3003 3003 3003 3003 3003 3fff 3fff 3fff 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C066 ENCODING 66 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 3FFC 3FFC 3FFC 3FFC 3003 3003 3003 3003 3003 3003 3003 3003 3FFC 3FFC 3FFC 3FFC 3003 3003 3003 3003 3003 3003 3003 3003 3FFC 3FFC 3FFC 3FFC 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C067 ENCODING 67 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 03FC 03FC 03FC 03FC 0C03 0C03 0C03 0C03 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 0C03 0C03 0C03 0C03 03FC 03FC 03FC 03FC 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C068 ENCODING 68 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 3FF0 3FF0 3FF0 3FF0 300C 300C 300C 300C 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 300C 300C 300C 300C 3FF0 3FF0 3FF0 3FF0 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C069 ENCODING 69 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 3FFF 3FFF 3FFF 3FFF 3000 3000 3000 3000 3000 3000 3000 3000 3FF0 3FF0 3FF0 3FF0 3000 3000 3000 3000 3000 3000 3000 3000 3FFF 3FFF 3FFF 3FFF 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C070 ENCODING 70 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 3FFF 3FFF 3FFF 3FFF 3000 3000 3000 3000 3000 3000 3000 3000 3FF0 3FF0 3FF0 3FF0 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C071 ENCODING 71 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 03FC 03FC 03FC 03FC 0C03 0C03 0C03 0C03 3000 3000 3000 3000 303F 303F 303F 303F 3003 3003 3003 3003 0C03 0C03 0C03 0C03 03FF 03FF 03FF 03FF 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C072 ENCODING 72 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3FFF 3FFF 3FFF 3FFF 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C073 ENCODING 73 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0FFC 0FFC 0FFC 0FFC 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 0FFC 0FFC 0FFC 0FFC 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C074 ENCODING 74 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 00FC 00FC 00FC 00FC 000C 000C 000C 000C 000C 000C 000C 000C 000C 000C 000C 000C 300C 300C 300C 300C 300C 300C 300C 300C 0FF0 0FF0 0FF0 0FF0 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C075 ENCODING 75 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 300C 300C 300C 300C 3030 3030 3030 3030 30C0 30C0 30C0 30C0 3F00 3F00 3F00 3F00 30C0 30C0 30C0 30C0 3030 3030 3030 3030 300C 300C 300C 300C 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C076 ENCODING 76 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3FFC 3FFC 3FFC 3FFC 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C077 ENCODING 77 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 3003 3003 3003 3003 3C0F 3C0F 3C0F 3C0F 3333 3333 3333 3333 30C3 30C3 30C3 30C3 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C078 ENCODING 78 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 3003 3003 3003 3003 3C03 3C03 3C03 3C03 3303 3303 3303 3303 30C3 30C3 30C3 30C3 3033 3033 3033 3033 300F 300F 300F 300F 3003 3003 3003 3003 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C079 ENCODING 79 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 03F0 03F0 03F0 03F0 0C0C 0C0C 0C0C 0C0C 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 0C0C 0C0C 0C0C 0C0C 03F0 03F0 03F0 03F0 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C080 ENCODING 80 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 3FFC 3FFC 3FFC 3FFC 3003 3003 3003 3003 3003 3003 3003 3003 3FFC 3FFC 3FFC 3FFC 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C081 ENCODING 81 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 03F0 03F0 03F0 03F0 0C0C 0C0C 0C0C 0C0C 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 0C0C 0C0C 0C0C 0C0C 03F0 03F0 03F0 03F0 003F 003F 003F 003F 0000 0000 0000 FFFF ENDCHAR STARTCHAR C082 ENCODING 82 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 3FFC 3FFC 3FFC 3FFC 3003 3003 3003 3003 3003 3003 3003 3003 3FFC 3FFC 3FFC 3FFC 3030 3030 3030 3030 300C 300C 300C 300C 3003 3003 3003 3003 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C083 ENCODING 83 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0FFC 0FFC 0FFC 0FFC 3003 3003 3003 3003 3000 3000 3000 3000 0FFC 0FFC 0FFC 0FFC 0003 0003 0003 0003 3003 3003 3003 3003 0FFC 0FFC 0FFC 0FFC 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C084 ENCODING 84 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 3FFF 3FFF 3FFF 3FFF 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C085 ENCODING 85 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 0FFC 0FFC 0FFC 0FFC 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C086 ENCODING 86 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 3C0F 3C0F 3C0F 3C0F 0C0C 0C0C 0C0C 0C0C 0C0C 0C0C 0C0C 0C0C 0330 0330 0330 0330 0330 0330 0330 0330 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C087 ENCODING 87 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 30C3 30C3 30C3 30C3 3333 3333 3333 3333 3C0F 3C0F 3C0F 3C0F 3003 3003 3003 3003 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C088 ENCODING 88 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 3003 3003 3003 3003 0C0C 0C0C 0C0C 0C0C 0330 0330 0330 0330 00C0 00C0 00C0 00C0 0330 0330 0330 0330 0C0C 0C0C 0C0C 0C0C 3003 3003 3003 3003 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C089 ENCODING 89 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 3003 3003 3003 3003 0C0C 0C0C 0C0C 0C0C 0330 0330 0330 0330 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C090 ENCODING 90 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 3FFF 3FFF 3FFF 3FFF 000C 000C 000C 000C 0030 0030 0030 0030 00C0 00C0 00C0 00C0 0300 0300 0300 0300 0C00 0C00 0C00 0C00 3FFF 3FFF 3FFF 3FFF 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C091 ENCODING 91 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 00FC 00FC 00FC 00FC 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00FC 00FC 00FC 00FC 0000 0000 0000 FFFF ENDCHAR STARTCHAR C092 ENCODING 92 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP C000 C000 C000 C000 3000 3000 3000 3000 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0300 0300 0300 0300 00C0 00C0 00C0 00C0 0030 0030 0030 0030 0030 0030 0030 0030 000C 000C 000C 000C 0003 0003 0003 FFFF ENDCHAR STARTCHAR C093 ENCODING 93 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0FC0 0FC0 0FC0 0FC0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 0FC0 0FC0 0FC0 0FC0 0000 0000 0000 FFFF ENDCHAR STARTCHAR C094 ENCODING 94 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 00C0 00C0 00C0 00C0 0330 0330 0330 0330 0C0C 0C0C 0C0C 0C0C 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C095 ENCODING 95 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C096 ENCODING 96 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 FFFF FFFF FFFF FFFF 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C097 ENCODING 97 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0FFF 0FFF 0FFF 0FFF 3003 3003 3003 3003 3003 3003 3003 3003 300F 300F 300F 300F 0FF3 0FF3 0FF3 0FF3 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C098 ENCODING 98 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3FFC 3FFC 3FFC 3FFC 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3FFC 3FFC 3FFC 3FFC 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C099 ENCODING 99 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0FFC 0FFC 0FFC 0FFC 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 0FFC 0FFC 0FFC 0FFC 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C100 ENCODING 100 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0FFF 0FFF 0FFF 0FFF 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 0FFF 0FFF 0FFF 0FFF 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C101 ENCODING 101 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0FFC 0FFC 0FFC 0FFC 3003 3003 3003 3003 3FFF 3FFF 3FFF 3FFF 3000 3000 3000 3000 0FFC 0FFC 0FFC 0FFC 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C102 ENCODING 102 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 03FC 03FC 03FC 03FC 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 3FC0 3FC0 3FC0 3FC0 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C103 ENCODING 103 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0FFF 0FFF 0FFF 0FFF 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 0FFF 0FFF 0FFF 0FFF 0003 0003 0003 0003 0FFC 0FFC 0FFC FFFF ENDCHAR STARTCHAR C104 ENCODING 104 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3FFC 3FFC 3FFC 3FFC 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C105 ENCODING 105 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 0000 0000 0000 0000 0FC0 0FC0 0FC0 0FC0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 0FFC 0FFC 0FFC 0FFC 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C106 ENCODING 106 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 000C 000C 000C 000C 000C 000C 000C 000C 0000 0000 0000 0000 03FC 03FC 03FC 03FC 000C 000C 000C 000C 000C 000C 000C 000C 000C 000C 000C 000C 000C 000C 000C 000C 000C 000C 000C 000C 0FF0 0FF0 0FF0 FFFF ENDCHAR STARTCHAR C107 ENCODING 107 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 303C 303C 303C 303C 30C0 30C0 30C0 30C0 3F00 3F00 3F00 3F00 30C0 30C0 30C0 30C0 303C 303C 303C 303C 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C108 ENCODING 108 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 03C0 03C0 03C0 03C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 03F0 03F0 03F0 03F0 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C109 ENCODING 109 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3F3C 3F3C 3F3C 3F3C 30C3 30C3 30C3 30C3 30C3 30C3 30C3 30C3 30C3 30C3 30C3 30C3 3003 3003 3003 3003 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C110 ENCODING 110 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 33FC 33FC 33FC 33FC 3C03 3C03 3C03 3C03 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C111 ENCODING 111 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0FFC 0FFC 0FFC 0FFC 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 0FFC 0FFC 0FFC 0FFC 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C112 ENCODING 112 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3FFC 3FFC 3FFC 3FFC 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3FFC 3FFC 3FFC 3FFC 3000 3000 3000 3000 3000 3000 3000 FFFF ENDCHAR STARTCHAR C113 ENCODING 113 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0FFF 0FFF 0FFF 0FFF 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 0FFF 0FFF 0FFF 0FFF 0003 0003 0003 0003 0003 0003 0003 FFFF ENDCHAR STARTCHAR C114 ENCODING 114 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0CFC 0CFC 0CFC 0CFC 0F00 0F00 0F00 0F00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C115 ENCODING 115 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0FFC 0FFC 0FFC 0FFC 3000 3000 3000 3000 0FF0 0FF0 0FF0 0FF0 000C 000C 000C 000C 3FF0 3FF0 3FF0 3FF0 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C116 ENCODING 116 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0300 0300 0300 0300 0300 0300 0300 0300 0300 0300 0300 0300 3FFC 3FFC 3FFC 3FFC 0300 0300 0300 0300 0300 0300 0300 0300 0300 0300 0300 0300 00FC 00FC 00FC 00FC 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C117 ENCODING 117 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 3003 300F 300F 300F 300F 0FF3 0FF3 0FF3 0FF3 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C118 ENCODING 118 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3C0F 3C0F 3C0F 3C0F 0C0C 0C0C 0C0C 0C0C 0330 0330 0330 0330 0330 0330 0330 0330 00C0 00C0 00C0 00C0 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C119 ENCODING 119 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3003 3003 3003 3003 30C3 30C3 30C3 30C3 30C3 30C3 30C3 30C3 30C3 30C3 30C3 30C3 0F3C 0F3C 0F3C 0F3C 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C120 ENCODING 120 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3C0F 3C0F 3C0F 3C0F 0330 0330 0330 0330 00C0 00C0 00C0 00C0 0330 0330 0330 0330 3C0F 3C0F 3C0F 3C0F 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C121 ENCODING 121 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 300C 300C 300C 300C 300C 300C 300C 300C 300C 300C 300C 300C 300C 300C 300C 300C 0FFC 0FFC 0FFC 0FFC 000C 000C 000C 000C 0FF0 0FF0 0FF0 FFFF ENDCHAR STARTCHAR C122 ENCODING 122 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3FFC 3FFC 3FFC 3FFC 0030 0030 0030 0030 03C0 03C0 03C0 03C0 0C00 0C00 0C00 0C00 3FFC 3FFC 3FFC 3FFC 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C123 ENCODING 123 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 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 C000 C000 C000 C000 C000 C000 C000 C000 C000 C000 C000 FFFF ENDCHAR STARTCHAR C124 ENCODING 124 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 FFFF ENDCHAR STARTCHAR C125 ENCODING 125 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 0003 FFFF ENDCHAR STARTCHAR C126 ENCODING 126 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP FFFF FFFF FFFF FFFF 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C127 ENCODING 127 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ENDCHAR ENDFONT xtel-3.3.0.orig/fonts/g0s32x20.bdf0100444001424500142340000007447606703332535015315 0ustar ericpersoSTARTFONT 2.1 COMMENT $Id: g0s32x20.bdf,v 1.2 1995/02/10 17:53:37 pierre Exp $ FONT -Lectra-Minitel-Medium-R-Normal--20-200-75-75-C-320-ISO2022-0S SIZE 20 75 75 FONTBOUNDINGBOX 32 20 0 -2 STARTPROPERTIES 19 FONTNAME_REGISTRY "" FOUNDRY "Lectra" FAMILY_NAME "Minitel" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 20 POINT_SIZE 200 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "C" AVERAGE_WIDTH 80 CHARSET_REGISTRY "ISO2022-0S" CHARSET_ENCODING "1" FONT_ASCENT 18 FONT_DESCENT 2 DEFAULT_CHAR 32 COPYRIGHT "Copyright 1991 Lectra-Systemes" ENDPROPERTIES CHARS 116 STARTCHAR C000 ENCODING 0 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00FF0000 00FF0000 0F00F000 0F00F000 0F000000 0F000000 0F000000 0F000000 FFFF0000 FFFF0000 0F000000 0F000000 0F000000 0F000000 FFFFF000 FFFFF000 00000000 ffffffff ENDCHAR STARTCHAR C001 ENCODING 1 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00F00000 00F00000 0FF00000 0FF00000 FFFFFFFF FFFFFFFF 0FF00000 0FF00000 00F00000 00F00000 00000000 00000000 00000000 ffffffff ENDCHAR STARTCHAR C002 ENCODING 2 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0000F000 0000F000 000FFF00 000FFF00 00FFFFF0 00FFFFF0 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 ffffffff ENDCHAR STARTCHAR C003 ENCODING 3 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000F00 00000F00 00000FF0 00000FF0 FFFFFFFF FFFFFFFF 00000FF0 00000FF0 00000F00 00000F00 00000000 00000000 00000000 ffffffff ENDCHAR STARTCHAR C004 ENCODING 4 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 00FFFFF0 00FFFFF0 000FFF00 000FFF00 0000F000 ffffffff ENDCHAR STARTCHAR C005 ENCODING 5 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 0FF00000 0FF00000 F00F0000 F00F0000 F00F0000 F00F0000 0FF00000 0FF00000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ffffffff ENDCHAR STARTCHAR C006 ENCODING 6 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00F00000 00F00000 00F00000 00F00000 FFFFF000 FFFFF000 00F00000 00F00000 00F00000 00F00000 FFFFF000 FFFFF000 00000000 00000000 00000000 ffffffff ENDCHAR STARTCHAR C007 ENCODING 7 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 0000F000 0000F000 00000000 00000000 0FFFFFFF 0FFFFFFF 00000000 00000000 0000F000 0000F000 00000000 00000000 00000000 00000000 00000000 ffffffff ENDCHAR STARTCHAR C008 ENCODING 8 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 F0000F00 F0000F00 F000F000 F000F000 F000F000 F000F000 F00F00F0 F00F00F0 F00F0FF0 F00F0FF0 00F0F0F0 00F0F0F0 00F0FFFF 00F0FFFF 0F0000F0 0F0000F0 00000000 ffffffff ENDCHAR STARTCHAR C009 ENCODING 9 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 F0000F00 F0000F00 F000F000 F000F000 F000F000 F000F000 F00F0FF0 F00F0FF0 F00FF00F F00FF00F 00F000FF 00F000FF 00F00F00 00F00F00 0F00FFFF 0F00FFFF 00000000 ffffffff ENDCHAR STARTCHAR C010 ENCODING 10 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 FFF000F0 FFF000F0 00F00F00 00F00F00 0FF00F00 0FF00F00 00F0F0F0 00F0F0F0 FFF0FFF0 FFF0FFF0 000FF0F0 000FF0F0 000FFFFF 000FFFFF 00F000F0 00F000F0 00000000 ffffffff ENDCHAR STARTCHAR C011 ENCODING 11 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00FF0000 00FF0000 000FF000 000FF000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ffffffff ENDCHAR STARTCHAR C012 ENCODING 12 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000FF0 00000FF0 0000FF00 0000FF00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ffffffff ENDCHAR STARTCHAR C013 ENCODING 13 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 000FFF00 000FFF00 00FF0FF0 00FF0FF0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ffffffff ENDCHAR STARTCHAR C014 ENCODING 14 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00FF0FF0 00FF0FF0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ffffffff ENDCHAR STARTCHAR C015 ENCODING 15 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 000FF000 000FF000 00FFF000 ffffffff ENDCHAR STARTCHAR C016 ENCODING 16 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00FFFFFF 00FFFFFF 0F00F000 0F00F000 F000F000 F000F000 F000FFF0 F000FFF0 F000F000 F000F000 0F00F000 0F00F000 00FFFFFF 00FFFFFF 00000000 00000000 00000000 ffffffff ENDCHAR STARTCHAR C017 ENCODING 17 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 0FFF0FFF 0FFF0FFF F000F00F F000F00F F000FFFF F000FFFF F000F000 F000F000 0FFF0FFF 0FFF0FFF 00000000 00000000 00000000 ffffffff ENDCHAR STARTCHAR C018 ENCODING 18 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00FF0000 00FF0000 0F00F000 0F00F000 F000F000 F000F000 F00F0000 F00F0000 F0FF0000 F0FF0000 F000FF00 F000FF00 F0F00F00 F0F00F00 FF0FF000 FF0FF000 00000000 ffffffff ENDCHAR STARTCHAR C019 ENCODING 19 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 0FFF0000 0FFF0000 F000F000 F000F000 FF000000 FF000000 0FFF0000 0FFF0000 F000F000 F000F000 F000F000 F000F000 0FFF0000 0FFF0000 000FF000 000FF000 F000F000 F000F000 0FFF0000 ffffffff ENDCHAR STARTCHAR C032 ENCODING 32 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C033 ENCODING 33 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 00000000 00000000 0000F000 0000F000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C034 ENCODING 34 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 000F0F00 000F0F00 000F0F00 000F0F00 000F0F00 000F0F00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C035 ENCODING 35 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00F00F00 00F00F00 00F00F00 00F00F00 0FFFFFF0 0FFFFFF0 00F00F00 00F00F00 00F00F00 00F00F00 0FFFFFF0 0FFFFFF0 00F00F00 00F00F00 00F00F00 00F00F00 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C036 ENCODING 36 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0000F000 0000F000 000FFFF0 000FFFF0 00F0F000 00F0F000 000FFF00 000FFF00 0000F0F0 0000F0F0 00FFFF00 00FFFF00 0000F000 0000F000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C037 ENCODING 37 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00F000F0 00F000F0 0F0F0F00 0F0F0F00 00F00F00 00F00F00 0000F000 0000F000 000F00F0 000F00F0 000F0F0F 000F0F0F 00F000F0 00F000F0 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C038 ENCODING 38 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00FFF000 00FFF000 0F000000 0F000000 00F00000 00F00000 00FF0000 00FF0000 0F00F0F0 0F00F0F0 0F000F00 0F000F00 00FFF0F0 00FFF0F0 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C039 ENCODING 39 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 0000FF00 0000FF00 0000F000 0000F000 000F0000 000F0000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C040 ENCODING 40 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000F00 00000F00 0000F000 0000F000 0000F000 0000F000 000F0000 000F0000 000F0000 000F0000 000F0000 000F0000 0000F000 0000F000 0000F000 0000F000 00000F00 00000F00 00000000 FFFFFFFF ENDCHAR STARTCHAR C041 ENCODING 41 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 000F0000 000F0000 0000F000 0000F000 0000F000 0000F000 00000F00 00000F00 00000F00 00000F00 00000F00 00000F00 0000F000 0000F000 0000F000 0000F000 000F0000 000F0000 00000000 FFFFFFFF ENDCHAR STARTCHAR C042 ENCODING 42 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0000F000 0000F000 0000F000 0000F000 0FF0F0FF 0FF0F0FF 000FFF00 000FFF00 0000F000 0000F000 000F0F00 000F0F00 00F000F0 00F000F0 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C043 ENCODING 43 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0FFFFFFF 0FFFFFFF 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C044 ENCODING 44 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 000FF000 000FF000 000F0000 000F0000 00F00000 00F00000 00000000 FFFFFFFF ENDCHAR STARTCHAR C045 ENCODING 45 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0FFFFFFF 0FFFFFFF 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C046 ENCODING 46 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 000FF000 000FF000 000FF000 000FF000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C047 ENCODING 47 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 0000000F 0000000F 000000F0 000000F0 00000F00 00000F00 00000F00 00000F00 0000F000 0000F000 000F0000 000F0000 00F00000 00F00000 00F00000 00F00000 0F000000 0F000000 F0000000 FFFFFFFF ENDCHAR STARTCHAR C048 ENCODING 48 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00FFFF00 00FFFF00 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 00FFFF00 00FFFF00 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C049 ENCODING 49 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 0000F000 0000F000 000FF000 000FF000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C050 ENCODING 50 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00FFFF00 00FFFF00 0F0000F0 0F0000F0 000000F0 000000F0 00000F00 00000F00 0000F000 0000F000 000F0000 000F0000 00F00000 00F00000 0FFFFFF0 0FFFFFF0 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C051 ENCODING 51 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00FFFF00 00FFFF00 0F0000F0 0F0000F0 000000F0 000000F0 000FFF00 000FFF00 000000F0 000000F0 000000F0 000000F0 0F0000F0 0F0000F0 00FFFF00 00FFFF00 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C052 ENCODING 52 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 0000FF00 0000FF00 0000FF00 0000FF00 000F0F00 000F0F00 000F0F00 000F0F00 00F00F00 00F00F00 0FFFFFF0 0FFFFFF0 00000F00 00000F00 0000FFF0 0000FFF0 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C053 ENCODING 53 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 0FFFFFF0 0FFFFFF0 0F000000 0F000000 0F000000 0F000000 0FFFFF00 0FFFFF00 000000F0 000000F0 000000F0 000000F0 0F0000F0 0F0000F0 00FFFF00 00FFFF00 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C054 ENCODING 54 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 000FFF00 000FFF00 00F00000 00F00000 0F000000 0F000000 0FFFFF00 0FFFFF00 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 00FFFF00 00FFFF00 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C055 ENCODING 55 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 0FFFFFF0 0FFFFFF0 0F0000F0 0F0000F0 00000F00 00000F00 00000F00 00000F00 0000F000 0000F000 0000F000 0000F000 000F0000 000F0000 000F0000 000F0000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C056 ENCODING 56 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00FFFF00 00FFFF00 0F0000F0 0F0000F0 0F0000F0 0F0000F0 00FFFF00 00FFFF00 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 00FFFF00 00FFFF00 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C057 ENCODING 57 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00FFFF00 00FFFF00 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 00FFFFF0 00FFFFF0 000000F0 000000F0 00000F00 00000F00 00FFF000 00FFF000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C058 ENCODING 58 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 000FF000 000FF000 000FF000 000FF000 00000000 00000000 00000000 00000000 000FF000 000FF000 000FF000 000FF000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C059 ENCODING 59 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 000FF000 000FF000 000FF000 000FF000 00000000 00000000 00000000 00000000 000FF000 000FF000 000F0000 000F0000 00F00000 00F00000 00000000 FFFFFFFF ENDCHAR STARTCHAR C060 ENCODING 60 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000FF0 00000FF0 000FF000 000FF000 0FF00000 0FF00000 000FF000 000FF000 00000FF0 00000FF0 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C061 ENCODING 61 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 0FFFFFFF 0FFFFFFF 00000000 00000000 00000000 00000000 0FFFFFFF 0FFFFFFF 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C062 ENCODING 62 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 0FF00000 0FF00000 000FF000 000FF000 00000FF0 00000FF0 000FF000 000FF000 0FF00000 0FF00000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C063 ENCODING 63 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00FFFF00 00FFFF00 0F0000F0 0F0000F0 000000F0 000000F0 00000F00 00000F00 0000F000 0000F000 0000F000 0000F000 00000000 00000000 0000F000 0000F000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C064 ENCODING 64 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 000FFF00 000FFF00 00F000F0 00F000F0 0F00F00F 0F00F00F 0F0F0F0F 0F0F0F0F 0F00F0F0 0F00F0F0 00F00000 00F00000 000FFF00 000FFF00 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C065 ENCODING 65 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 03fffffc 07fffffe 0f00000f 0f00000f 0f00000f 0f00000f 0fffffff 0fffffff 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C066 ENCODING 66 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0FFFFFF0 0FFFFFF0 0F00000F 0F00000F 0F00000F 0F00000F 0FFFFFF0 0FFFFFF0 0F00000F 0F00000F 0F00000F 0F00000F 0FFFFFF0 0FFFFFF0 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C067 ENCODING 67 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 000FFFF0 000FFFF0 00F0000F 00F0000F 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 00F0000F 00F0000F 000FFFF0 000FFFF0 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C068 ENCODING 68 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0FFFFF00 0FFFFF00 0F0000F0 0F0000F0 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F0000F0 0F0000F0 0FFFFF00 0FFFFF00 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C069 ENCODING 69 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0FFFFFFF 0FFFFFFF 0F000000 0F000000 0F000000 0F000000 0FFFFF00 0FFFFF00 0F000000 0F000000 0F000000 0F000000 0FFFFFFF 0FFFFFFF 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C070 ENCODING 70 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0FFFFFFF 0FFFFFFF 0F000000 0F000000 0F000000 0F000000 0FFFFF00 0FFFFF00 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C071 ENCODING 71 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 000FFFF0 000FFFF0 00F0000F 00F0000F 0F000000 0F000000 0F000FFF 0F000FFF 0F00000F 0F00000F 00F0000F 00F0000F 000FFFFF 000FFFFF 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C072 ENCODING 72 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0FFFFFFF 0FFFFFFF 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C073 ENCODING 73 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00FFFFF0 00FFFFF0 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 00FFFFF0 00FFFFF0 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C074 ENCODING 74 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0000FFF0 0000FFF0 000000F0 000000F0 000000F0 000000F0 000000F0 000000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 00FFFF00 00FFFF00 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C075 ENCODING 75 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0F0000F0 0F0000F0 0F000F00 0F000F00 0F00F000 0F00F000 0FFF0000 0FFF0000 0F00F000 0F00F000 0F000F00 0F000F00 0F0000F0 0F0000F0 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C076 ENCODING 76 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0FFFFFF0 0FFFFFF0 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C077 ENCODING 77 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0F00000F 0F00000F 0FF000FF 0FF000FF 0F0F0F0F 0F0F0F0F 0F00F00F 0F00F00F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C078 ENCODING 78 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0F00000F 0F00000F 0FF0000F 0FF0000F 0F0F000F 0F0F000F 0F00F00F 0F00F00F 0F000F0F 0F000F0F 0F0000FF 0F0000FF 0F00000F 0F00000F 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C079 ENCODING 79 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 000FFF00 000FFF00 00F000F0 00F000F0 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 00F000F0 00F000F0 000FFF00 000FFF00 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C080 ENCODING 80 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0FFFFFF0 0FFFFFF0 0F00000F 0F00000F 0F00000F 0F00000F 0FFFFFF0 0FFFFFF0 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C081 ENCODING 81 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 000FFF00 000FFF00 00F000F0 00F000F0 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 00F000F0 00F000F0 000FFF00 000FFF00 00000FFF 00000FFF 00000000 FFFFFFFF ENDCHAR STARTCHAR C082 ENCODING 82 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0FFFFFF0 0FFFFFF0 0F00000F 0F00000F 0F00000F 0F00000F 0FFFFFF0 0FFFFFF0 0F000F00 0F000F00 0F0000F0 0F0000F0 0F00000F 0F00000F 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C083 ENCODING 83 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00FFFFF0 00FFFFF0 0F00000F 0F00000F 0F000000 0F000000 00FFFFF0 00FFFFF0 0000000F 0000000F 0F00000F 0F00000F 00FFFFF0 00FFFFF0 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C084 ENCODING 84 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0FFFFFFF 0FFFFFFF 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C085 ENCODING 85 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 00FFFFF0 00FFFFF0 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C086 ENCODING 86 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0FF000FF 0FF000FF 00F000F0 00F000F0 00F000F0 00F000F0 000F0F00 000F0F00 000F0F00 000F0F00 0000F000 0000F000 0000F000 0000F000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C087 ENCODING 87 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00F00F 0F00F00F 0F0F0F0F 0F0F0F0F 0FF000FF 0FF000FF 0F00000F 0F00000F 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C088 ENCODING 88 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0F00000F 0F00000F 00F000F0 00F000F0 000F0F00 000F0F00 0000F000 0000F000 000F0F00 000F0F00 00F000F0 00F000F0 0F00000F 0F00000F 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C089 ENCODING 89 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0F00000F 0F00000F 00F000F0 00F000F0 000F0F00 000F0F00 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C090 ENCODING 90 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0FFFFFFF 0FFFFFFF 000000F0 000000F0 00000F00 00000F00 0000F000 0000F000 000F0000 000F0000 00F00000 00F00000 0FFFFFFF 0FFFFFFF 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C091 ENCODING 91 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 0000FFF0 0000FFF0 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000FFF0 0000FFF0 00000000 FFFFFFFF ENDCHAR STARTCHAR C092 ENCODING 92 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP F0000000 F0000000 0F000000 0F000000 00F00000 00F00000 00F00000 00F00000 000F0000 000F0000 0000F000 0000F000 00000F00 00000F00 00000F00 00000F00 000000F0 000000F0 0000000F FFFFFFFF ENDCHAR STARTCHAR C093 ENCODING 93 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00FFF000 00FFF000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 00FFF000 00FFF000 00000000 FFFFFFFF ENDCHAR STARTCHAR C094 ENCODING 94 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 0000F000 0000F000 000F0F00 000F0F00 00F000F0 00F000F0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C095 ENCODING 95 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C096 ENCODING 96 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF FFFFFFFF 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C097 ENCODING 97 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00FFFFFF 00FFFFFF 0F00000F 0F00000F 0F00000F 0F00000F 0F0000FF 0F0000FF 00FFFF0F 00FFFF0F 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C098 ENCODING 98 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0FFFFFF0 0FFFFFF0 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0FFFFFF0 0FFFFFF0 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C099 ENCODING 99 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00FFFFF0 00FFFFF0 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 00FFFFF0 00FFFFF0 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C100 ENCODING 100 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 00FFFFFF 00FFFFFF 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 00FFFFFF 00FFFFFF 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C101 ENCODING 101 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00FFFFF0 00FFFFF0 0F00000F 0F00000F 0FFFFFFF 0FFFFFFF 0F000000 0F000000 00FFFFF0 00FFFFF0 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C102 ENCODING 102 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 000FFFF0 000FFFF0 00F00000 00F00000 00F00000 00F00000 0FFFF000 0FFFF000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C103 ENCODING 103 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00FFFFFF 00FFFFFF 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 00FFFFFF 00FFFFFF 0000000F 0000000F 00FFFFF0 FFFFFFFF ENDCHAR STARTCHAR C104 ENCODING 104 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0FFFFFF0 0FFFFFF0 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C105 ENCODING 105 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 0000F000 0000F000 0000F000 0000F000 00000000 00000000 00FFF000 00FFF000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 00FFFFF0 00FFFFF0 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C106 ENCODING 106 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 000000F0 000000F0 000000F0 000000F0 00000000 00000000 000FFFF0 000FFFF0 000000F0 000000F0 000000F0 000000F0 000000F0 000000F0 000000F0 000000F0 000000F0 000000F0 00FFFF00 FFFFFFFF ENDCHAR STARTCHAR C107 ENCODING 107 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000FF0 0F000FF0 0F00F000 0F00F000 0FFF0000 0FFF0000 0F00F000 0F00F000 0F000FF0 0F000FF0 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C108 ENCODING 108 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 000FF000 000FF000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 000FFF00 000FFF00 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C109 ENCODING 109 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 0FFF0FF0 0FFF0FF0 0F00F00F 0F00F00F 0F00F00F 0F00F00F 0F00F00F 0F00F00F 0F00000F 0F00000F 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C110 ENCODING 110 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 0F0FFFF0 0F0FFFF0 0FF0000F 0FF0000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C111 ENCODING 111 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00FFFFF0 00FFFFF0 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 00FFFFF0 00FFFFF0 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C112 ENCODING 112 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 0FFFFFF0 0FFFFFF0 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0FFFFFF0 0FFFFFF0 0F000000 0F000000 0F000000 FFFFFFFF ENDCHAR STARTCHAR C113 ENCODING 113 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00FFFFFF 00FFFFFF 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 00FFFFFF 00FFFFFF 0000000F 0000000F 0000000F FFFFFFFF ENDCHAR STARTCHAR C114 ENCODING 114 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00F0FFF0 00F0FFF0 00FF0000 00FF0000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C115 ENCODING 115 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00FFFFF0 00FFFFF0 0F000000 0F000000 00FFFF00 00FFFF00 000000F0 000000F0 0FFFFF00 0FFFFF00 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C116 ENCODING 116 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 000F0000 000F0000 000F0000 000F0000 000F0000 000F0000 0FFFFFF0 0FFFFFF0 000F0000 000F0000 000F0000 000F0000 000F0000 000F0000 0000FFF0 0000FFF0 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C117 ENCODING 117 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F0000FF 0F0000FF 00FFFF0F 00FFFF0F 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C118 ENCODING 118 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 0FF000FF 0FF000FF 00F000F0 00F000F0 000F0F00 000F0F00 000F0F00 000F0F00 0000F000 0000F000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C119 ENCODING 119 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 0F00000F 0F00000F 0F00F00F 0F00F00F 0F00F00F 0F00F00F 0F00F00F 0F00F00F 00FF0FF0 00FF0FF0 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C120 ENCODING 120 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 0FF000FF 0FF000FF 000F0F00 000F0F00 0000F000 0000F000 000F0F00 000F0F00 0FF000FF 0FF000FF 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C121 ENCODING 121 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 00FFFFF0 00FFFFF0 000000F0 000000F0 00FFFF00 FFFFFFFF ENDCHAR STARTCHAR C122 ENCODING 122 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 0FFFFFF0 0FFFFFF0 00000F00 00000F00 000FF000 000FF000 00F00000 00F00000 0FFFFFF0 0FFFFFF0 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C123 ENCODING 123 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 FFFFFFFF ENDCHAR STARTCHAR C124 ENCODING 124 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 FFFFFFFF ENDCHAR STARTCHAR C125 ENCODING 125 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F FFFFFFFF ENDCHAR STARTCHAR C126 ENCODING 126 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP FFFFFFFF FFFFFFFF 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C127 ENCODING 127 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ENDCHAR ENDFONT xtel-3.3.0.orig/fonts/g0s32x40.bdf0100444001424500142340000014533706703332536015313 0ustar ericpersoSTARTFONT 2.1 COMMENT $Id: g0s32x40.bdf,v 1.2 1995/02/10 17:53:37 pierre Exp $ FONT -Lectra-Minitel-Medium-R-Normal--40-400-75-75-C-320-ISO2022-0S SIZE 40 75 75 FONTBOUNDINGBOX 32 40 0 -2 STARTPROPERTIES 19 FONTNAME_REGISTRY "" FOUNDRY "Lectra" FAMILY_NAME "Minitel" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 40 POINT_SIZE 400 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "C" AVERAGE_WIDTH 80 CHARSET_REGISTRY "ISO2022-0S" CHARSET_ENCODING "1" FONT_ASCENT 38 FONT_DESCENT 2 DEFAULT_CHAR 32 COPYRIGHT "Copyright 1991 Lectra-Systemes" ENDPROPERTIES CHARS 116 STARTCHAR C000 ENCODING 0 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00FF0000 00FF0000 00FF0000 00FF0000 0F00F000 0F00F000 0F00F000 0F00F000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 FFFF0000 FFFF0000 FFFF0000 FFFF0000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 FFFFF000 FFFFF000 FFFFF000 FFFFF000 00000000 00000000 00000000 ffffffff ENDCHAR STARTCHAR C001 ENCODING 1 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00F00000 00F00000 00F00000 00F00000 0FF00000 0FF00000 0FF00000 0FF00000 FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 0FF00000 0FF00000 0FF00000 0FF00000 00F00000 00F00000 00F00000 00F00000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ffffffff ENDCHAR STARTCHAR C002 ENCODING 2 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0000F000 0000F000 0000F000 0000F000 000FFF00 000FFF00 000FFF00 000FFF00 00FFFFF0 00FFFFF0 00FFFFF0 00FFFFF0 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 ffffffff ENDCHAR STARTCHAR C003 ENCODING 3 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000F00 00000F00 00000F00 00000F00 00000FF0 00000FF0 00000FF0 00000FF0 FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000FF0 00000FF0 00000FF0 00000FF0 00000F00 00000F00 00000F00 00000F00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ffffffff ENDCHAR STARTCHAR C004 ENCODING 4 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 00FFFFF0 00FFFFF0 00FFFFF0 00FFFFF0 000FFF00 000FFF00 000FFF00 000FFF00 0000F000 0000F000 0000F000 ffffffff ENDCHAR STARTCHAR C005 ENCODING 5 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 0FF00000 0FF00000 0FF00000 0FF00000 F00F0000 F00F0000 F00F0000 F00F0000 F00F0000 F00F0000 F00F0000 F00F0000 0FF00000 0FF00000 0FF00000 0FF00000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ffffffff ENDCHAR STARTCHAR C006 ENCODING 6 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 FFFFF000 FFFFF000 FFFFF000 FFFFF000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 FFFFF000 FFFFF000 FFFFF000 FFFFF000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ffffffff ENDCHAR STARTCHAR C007 ENCODING 7 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000F000 0000F000 0000F000 0000F000 00000000 00000000 00000000 00000000 0FFFFFFF 0FFFFFFF 0FFFFFFF 0FFFFFFF 00000000 00000000 00000000 00000000 0000F000 0000F000 0000F000 0000F000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ffffffff ENDCHAR STARTCHAR C008 ENCODING 8 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 F0000F00 F0000F00 F0000F00 F0000F00 F000F000 F000F000 F000F000 F000F000 F000F000 F000F000 F000F000 F000F000 F00F00F0 F00F00F0 F00F00F0 F00F00F0 F00F0FF0 F00F0FF0 F00F0FF0 F00F0FF0 00F0F0F0 00F0F0F0 00F0F0F0 00F0F0F0 00F0FFFF 00F0FFFF 00F0FFFF 00F0FFFF 0F0000F0 0F0000F0 0F0000F0 0F0000F0 00000000 00000000 00000000 ffffffff ENDCHAR STARTCHAR C009 ENCODING 9 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 F0000F00 F0000F00 F0000F00 F0000F00 F000F000 F000F000 F000F000 F000F000 F000F000 F000F000 F000F000 F000F000 F00F0FF0 F00F0FF0 F00F0FF0 F00F0FF0 F00FF00F F00FF00F F00FF00F F00FF00F 00F000FF 00F000FF 00F000FF 00F000FF 00F00F00 00F00F00 00F00F00 00F00F00 0F00FFFF 0F00FFFF 0F00FFFF 0F00FFFF 00000000 00000000 00000000 ffffffff ENDCHAR STARTCHAR C010 ENCODING 10 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 FFF000F0 FFF000F0 FFF000F0 FFF000F0 00F00F00 00F00F00 00F00F00 00F00F00 0FF00F00 0FF00F00 0FF00F00 0FF00F00 00F0F0F0 00F0F0F0 00F0F0F0 00F0F0F0 FFF0FFF0 FFF0FFF0 FFF0FFF0 FFF0FFF0 000FF0F0 000FF0F0 000FF0F0 000FF0F0 000FFFFF 000FFFFF 000FFFFF 000FFFFF 00F000F0 00F000F0 00F000F0 00F000F0 00000000 00000000 00000000 ffffffff ENDCHAR STARTCHAR C011 ENCODING 11 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00FF0000 00FF0000 00FF0000 00FF0000 000FF000 000FF000 000FF000 000FF000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ffffffff ENDCHAR STARTCHAR C012 ENCODING 12 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000FF0 00000FF0 00000FF0 00000FF0 0000FF00 0000FF00 0000FF00 0000FF00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ffffffff ENDCHAR STARTCHAR C013 ENCODING 13 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 000FFF00 000FFF00 000FFF00 000FFF00 00FF0FF0 00FF0FF0 00FF0FF0 00FF0FF0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ffffffff ENDCHAR STARTCHAR C014 ENCODING 14 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00FF0FF0 00FF0FF0 00FF0FF0 00FF0FF0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ffffffff ENDCHAR STARTCHAR C015 ENCODING 15 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 000FF000 000FF000 000FF000 000FF000 00FFF000 00FFF000 00FFF000 ffffffff ENDCHAR STARTCHAR C016 ENCODING 16 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00FFFFFF 00FFFFFF 00FFFFFF 00FFFFFF 0F00F000 0F00F000 0F00F000 0F00F000 F000F000 F000F000 F000F000 F000F000 F000FFF0 F000FFF0 F000FFF0 F000FFF0 F000F000 F000F000 F000F000 F000F000 0F00F000 0F00F000 0F00F000 0F00F000 00FFFFFF 00FFFFFF 00FFFFFF 00FFFFFF 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ffffffff ENDCHAR STARTCHAR C017 ENCODING 17 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0FFF0FFF 0FFF0FFF 0FFF0FFF 0FFF0FFF F000F00F F000F00F F000F00F F000F00F F000FFFF F000FFFF F000FFFF F000FFFF F000F000 F000F000 F000F000 F000F000 0FFF0FFF 0FFF0FFF 0FFF0FFF 0FFF0FFF 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ffffffff ENDCHAR STARTCHAR C018 ENCODING 18 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00FF0000 00FF0000 00FF0000 00FF0000 0F00F000 0F00F000 0F00F000 0F00F000 F000F000 F000F000 F000F000 F000F000 F00F0000 F00F0000 F00F0000 F00F0000 F0FF0000 F0FF0000 F0FF0000 F0FF0000 F000FF00 F000FF00 F000FF00 F000FF00 F0F00F00 F0F00F00 F0F00F00 F0F00F00 FF0FF000 FF0FF000 FF0FF000 FF0FF000 00000000 00000000 00000000 ffffffff ENDCHAR STARTCHAR C019 ENCODING 19 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 0FFF0000 0FFF0000 0FFF0000 0FFF0000 F000F000 F000F000 F000F000 F000F000 FF000000 FF000000 FF000000 FF000000 0FFF0000 0FFF0000 0FFF0000 0FFF0000 F000F000 F000F000 F000F000 F000F000 F000F000 F000F000 F000F000 F000F000 0FFF0000 0FFF0000 0FFF0000 0FFF0000 000FF000 000FF000 000FF000 000FF000 F000F000 F000F000 F000F000 F000F000 0FFF0000 0FFF0000 0FFF0000 ffffffff ENDCHAR STARTCHAR C032 ENCODING 32 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C033 ENCODING 33 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 00000000 00000000 00000000 00000000 0000F000 0000F000 0000F000 0000F000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C034 ENCODING 34 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 000F0F00 000F0F00 000F0F00 000F0F00 000F0F00 000F0F00 000F0F00 000F0F00 000F0F00 000F0F00 000F0F00 000F0F00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C035 ENCODING 35 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00F00F00 00F00F00 00F00F00 00F00F00 00F00F00 00F00F00 00F00F00 00F00F00 0FFFFFF0 0FFFFFF0 0FFFFFF0 0FFFFFF0 00F00F00 00F00F00 00F00F00 00F00F00 00F00F00 00F00F00 00F00F00 00F00F00 0FFFFFF0 0FFFFFF0 0FFFFFF0 0FFFFFF0 00F00F00 00F00F00 00F00F00 00F00F00 00F00F00 00F00F00 00F00F00 00F00F00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C036 ENCODING 36 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0000F000 0000F000 0000F000 0000F000 000FFFF0 000FFFF0 000FFFF0 000FFFF0 00F0F000 00F0F000 00F0F000 00F0F000 000FFF00 000FFF00 000FFF00 000FFF00 0000F0F0 0000F0F0 0000F0F0 0000F0F0 00FFFF00 00FFFF00 00FFFF00 00FFFF00 0000F000 0000F000 0000F000 0000F000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C037 ENCODING 37 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00F000F0 00F000F0 00F000F0 00F000F0 0F0F0F00 0F0F0F00 0F0F0F00 0F0F0F00 00F00F00 00F00F00 00F00F00 00F00F00 0000F000 0000F000 0000F000 0000F000 000F00F0 000F00F0 000F00F0 000F00F0 000F0F0F 000F0F0F 000F0F0F 000F0F0F 00F000F0 00F000F0 00F000F0 00F000F0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C038 ENCODING 38 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00FFF000 00FFF000 00FFF000 00FFF000 0F000000 0F000000 0F000000 0F000000 00F00000 00F00000 00F00000 00F00000 00FF0000 00FF0000 00FF0000 00FF0000 0F00F0F0 0F00F0F0 0F00F0F0 0F00F0F0 0F000F00 0F000F00 0F000F00 0F000F00 00FFF0F0 00FFF0F0 00FFF0F0 00FFF0F0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C039 ENCODING 39 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 0000FF00 0000FF00 0000FF00 0000FF00 0000F000 0000F000 0000F000 0000F000 000F0000 000F0000 000F0000 000F0000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C040 ENCODING 40 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000F00 00000F00 00000F00 00000F00 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 000F0000 000F0000 000F0000 000F0000 000F0000 000F0000 000F0000 000F0000 000F0000 000F0000 000F0000 000F0000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 00000F00 00000F00 00000F00 00000F00 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C041 ENCODING 41 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 000F0000 000F0000 000F0000 000F0000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 00000F00 00000F00 00000F00 00000F00 00000F00 00000F00 00000F00 00000F00 00000F00 00000F00 00000F00 00000F00 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 000F0000 000F0000 000F0000 000F0000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C042 ENCODING 42 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0FF0F0FF 0FF0F0FF 0FF0F0FF 0FF0F0FF 000FFF00 000FFF00 000FFF00 000FFF00 0000F000 0000F000 0000F000 0000F000 000F0F00 000F0F00 000F0F00 000F0F00 00F000F0 00F000F0 00F000F0 00F000F0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C043 ENCODING 43 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0FFFFFFF 0FFFFFFF 0FFFFFFF 0FFFFFFF 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C044 ENCODING 44 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 000FF000 000FF000 000FF000 000FF000 000F0000 000F0000 000F0000 000F0000 00F00000 00F00000 00F00000 00F00000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C045 ENCODING 45 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0FFFFFFF 0FFFFFFF 0FFFFFFF 0FFFFFFF 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C046 ENCODING 46 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 000FF000 000FF000 000FF000 000FF000 000FF000 000FF000 000FF000 000FF000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C047 ENCODING 47 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 0000000F 0000000F 0000000F 0000000F 000000F0 000000F0 000000F0 000000F0 00000F00 00000F00 00000F00 00000F00 00000F00 00000F00 00000F00 00000F00 0000F000 0000F000 0000F000 0000F000 000F0000 000F0000 000F0000 000F0000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 0F000000 0F000000 0F000000 0F000000 F0000000 F0000000 F0000000 FFFFFFFF ENDCHAR STARTCHAR C048 ENCODING 48 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00FFFF00 00FFFF00 00FFFF00 00FFFF00 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 00FFFF00 00FFFF00 00FFFF00 00FFFF00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C049 ENCODING 49 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 0000F000 0000F000 0000F000 0000F000 000FF000 000FF000 000FF000 000FF000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C050 ENCODING 50 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00FFFF00 00FFFF00 00FFFF00 00FFFF00 0F0000F0 0F0000F0 0F0000F0 0F0000F0 000000F0 000000F0 000000F0 000000F0 00000F00 00000F00 00000F00 00000F00 0000F000 0000F000 0000F000 0000F000 000F0000 000F0000 000F0000 000F0000 00F00000 00F00000 00F00000 00F00000 0FFFFFF0 0FFFFFF0 0FFFFFF0 0FFFFFF0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C051 ENCODING 51 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00FFFF00 00FFFF00 00FFFF00 00FFFF00 0F0000F0 0F0000F0 0F0000F0 0F0000F0 000000F0 000000F0 000000F0 000000F0 000FFF00 000FFF00 000FFF00 000FFF00 000000F0 000000F0 000000F0 000000F0 000000F0 000000F0 000000F0 000000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 00FFFF00 00FFFF00 00FFFF00 00FFFF00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C052 ENCODING 52 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 0000FF00 0000FF00 0000FF00 0000FF00 0000FF00 0000FF00 0000FF00 0000FF00 000F0F00 000F0F00 000F0F00 000F0F00 000F0F00 000F0F00 000F0F00 000F0F00 00F00F00 00F00F00 00F00F00 00F00F00 0FFFFFF0 0FFFFFF0 0FFFFFF0 0FFFFFF0 00000F00 00000F00 00000F00 00000F00 0000FFF0 0000FFF0 0000FFF0 0000FFF0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C053 ENCODING 53 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 0FFFFFF0 0FFFFFF0 0FFFFFF0 0FFFFFF0 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0FFFFF00 0FFFFF00 0FFFFF00 0FFFFF00 000000F0 000000F0 000000F0 000000F0 000000F0 000000F0 000000F0 000000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 00FFFF00 00FFFF00 00FFFF00 00FFFF00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C054 ENCODING 54 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 000FFF00 000FFF00 000FFF00 000FFF00 00F00000 00F00000 00F00000 00F00000 0F000000 0F000000 0F000000 0F000000 0FFFFF00 0FFFFF00 0FFFFF00 0FFFFF00 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 00FFFF00 00FFFF00 00FFFF00 00FFFF00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C055 ENCODING 55 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 0FFFFFF0 0FFFFFF0 0FFFFFF0 0FFFFFF0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 00000F00 00000F00 00000F00 00000F00 00000F00 00000F00 00000F00 00000F00 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 000F0000 000F0000 000F0000 000F0000 000F0000 000F0000 000F0000 000F0000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C056 ENCODING 56 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00FFFF00 00FFFF00 00FFFF00 00FFFF00 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 00FFFF00 00FFFF00 00FFFF00 00FFFF00 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 00FFFF00 00FFFF00 00FFFF00 00FFFF00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C057 ENCODING 57 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00FFFF00 00FFFF00 00FFFF00 00FFFF00 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 00FFFFF0 00FFFFF0 00FFFFF0 00FFFFF0 000000F0 000000F0 000000F0 000000F0 00000F00 00000F00 00000F00 00000F00 00FFF000 00FFF000 00FFF000 00FFF000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C058 ENCODING 58 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 000FF000 000FF000 000FF000 000FF000 000FF000 000FF000 000FF000 000FF000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 000FF000 000FF000 000FF000 000FF000 000FF000 000FF000 000FF000 000FF000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C059 ENCODING 59 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 000FF000 000FF000 000FF000 000FF000 000FF000 000FF000 000FF000 000FF000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 000FF000 000FF000 000FF000 000FF000 000F0000 000F0000 000F0000 000F0000 00F00000 00F00000 00F00000 00F00000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C060 ENCODING 60 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000FF0 00000FF0 00000FF0 00000FF0 000FF000 000FF000 000FF000 000FF000 0FF00000 0FF00000 0FF00000 0FF00000 000FF000 000FF000 000FF000 000FF000 00000FF0 00000FF0 00000FF0 00000FF0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C061 ENCODING 61 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0FFFFFFF 0FFFFFFF 0FFFFFFF 0FFFFFFF 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0FFFFFFF 0FFFFFFF 0FFFFFFF 0FFFFFFF 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C062 ENCODING 62 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0FF00000 0FF00000 0FF00000 0FF00000 000FF000 000FF000 000FF000 000FF000 00000FF0 00000FF0 00000FF0 00000FF0 000FF000 000FF000 000FF000 000FF000 0FF00000 0FF00000 0FF00000 0FF00000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C063 ENCODING 63 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00FFFF00 00FFFF00 00FFFF00 00FFFF00 0F0000F0 0F0000F0 0F0000F0 0F0000F0 000000F0 000000F0 000000F0 000000F0 00000F00 00000F00 00000F00 00000F00 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 00000000 00000000 00000000 00000000 0000F000 0000F000 0000F000 0000F000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C064 ENCODING 64 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 000FFF00 000FFF00 000FFF00 000FFF00 00F000F0 00F000F0 00F000F0 00F000F0 0F00F00F 0F00F00F 0F00F00F 0F00F00F 0F0F0F0F 0F0F0F0F 0F0F0F0F 0F0F0F0F 0F00F0F0 0F00F0F0 0F00F0F0 0F00F0F0 00F00000 00F00000 00F00000 00F00000 000FFF00 000FFF00 000FFF00 000FFF00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C065 ENCODING 65 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 01fffff8 07fffffe 07fffffe 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0fffffff 0fffffff 0fffffff 0fffffff 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 0f00000f 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C066 ENCODING 66 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0FFFFFF0 0FFFFFF0 0FFFFFF0 0FFFFFF0 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0FFFFFF0 0FFFFFF0 0FFFFFF0 0FFFFFF0 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0FFFFFF0 0FFFFFF0 0FFFFFF0 0FFFFFF0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C067 ENCODING 67 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 000FFFF0 000FFFF0 000FFFF0 000FFFF0 00F0000F 00F0000F 00F0000F 00F0000F 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 00F0000F 00F0000F 00F0000F 00F0000F 000FFFF0 000FFFF0 000FFFF0 000FFFF0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C068 ENCODING 68 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0FFFFF00 0FFFFF00 0FFFFF00 0FFFFF00 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0FFFFF00 0FFFFF00 0FFFFF00 0FFFFF00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C069 ENCODING 69 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0FFFFFFF 0FFFFFFF 0FFFFFFF 0FFFFFFF 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0FFFFF00 0FFFFF00 0FFFFF00 0FFFFF00 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0FFFFFFF 0FFFFFFF 0FFFFFFF 0FFFFFFF 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C070 ENCODING 70 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0FFFFFFF 0FFFFFFF 0FFFFFFF 0FFFFFFF 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0FFFFF00 0FFFFF00 0FFFFF00 0FFFFF00 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C071 ENCODING 71 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 000FFFF0 000FFFF0 000FFFF0 000FFFF0 00F0000F 00F0000F 00F0000F 00F0000F 0F000000 0F000000 0F000000 0F000000 0F000FFF 0F000FFF 0F000FFF 0F000FFF 0F00000F 0F00000F 0F00000F 0F00000F 00F0000F 00F0000F 00F0000F 00F0000F 000FFFFF 000FFFFF 000FFFFF 000FFFFF 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C072 ENCODING 72 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0FFFFFFF 0FFFFFFF 0FFFFFFF 0FFFFFFF 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C073 ENCODING 73 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00FFFFF0 00FFFFF0 00FFFFF0 00FFFFF0 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 00FFFFF0 00FFFFF0 00FFFFF0 00FFFFF0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C074 ENCODING 74 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0000FFF0 0000FFF0 0000FFF0 0000FFF0 000000F0 000000F0 000000F0 000000F0 000000F0 000000F0 000000F0 000000F0 000000F0 000000F0 000000F0 000000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 00FFFF00 00FFFF00 00FFFF00 00FFFF00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C075 ENCODING 75 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F000F00 0F000F00 0F000F00 0F000F00 0F00F000 0F00F000 0F00F000 0F00F000 0FFF0000 0FFF0000 0FFF0000 0FFF0000 0F00F000 0F00F000 0F00F000 0F00F000 0F000F00 0F000F00 0F000F00 0F000F00 0F0000F0 0F0000F0 0F0000F0 0F0000F0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C076 ENCODING 76 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0FFFFFF0 0FFFFFF0 0FFFFFF0 0FFFFFF0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C077 ENCODING 77 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0F00000F 0F00000F 0F00000F 0F00000F 0FF000FF 0FF000FF 0FF000FF 0FF000FF 0F0F0F0F 0F0F0F0F 0F0F0F0F 0F0F0F0F 0F00F00F 0F00F00F 0F00F00F 0F00F00F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C078 ENCODING 78 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0F00000F 0F00000F 0F00000F 0F00000F 0FF0000F 0FF0000F 0FF0000F 0FF0000F 0F0F000F 0F0F000F 0F0F000F 0F0F000F 0F00F00F 0F00F00F 0F00F00F 0F00F00F 0F000F0F 0F000F0F 0F000F0F 0F000F0F 0F0000FF 0F0000FF 0F0000FF 0F0000FF 0F00000F 0F00000F 0F00000F 0F00000F 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C079 ENCODING 79 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 000FFF00 000FFF00 000FFF00 000FFF00 00F000F0 00F000F0 00F000F0 00F000F0 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 00F000F0 00F000F0 00F000F0 00F000F0 000FFF00 000FFF00 000FFF00 000FFF00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C080 ENCODING 80 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0FFFFFF0 0FFFFFF0 0FFFFFF0 0FFFFFF0 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0FFFFFF0 0FFFFFF0 0FFFFFF0 0FFFFFF0 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C081 ENCODING 81 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 000FFF00 000FFF00 000FFF00 000FFF00 00F000F0 00F000F0 00F000F0 00F000F0 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 00F000F0 00F000F0 00F000F0 00F000F0 000FFF00 000FFF00 000FFF00 000FFF00 00000FFF 00000FFF 00000FFF 00000FFF 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C082 ENCODING 82 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0FFFFFF0 0FFFFFF0 0FFFFFF0 0FFFFFF0 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0FFFFFF0 0FFFFFF0 0FFFFFF0 0FFFFFF0 0F000F00 0F000F00 0F000F00 0F000F00 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F00000F 0F00000F 0F00000F 0F00000F 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C083 ENCODING 83 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00FFFFF0 00FFFFF0 00FFFFF0 00FFFFF0 0F00000F 0F00000F 0F00000F 0F00000F 0F000000 0F000000 0F000000 0F000000 00FFFFF0 00FFFFF0 00FFFFF0 00FFFFF0 0000000F 0000000F 0000000F 0000000F 0F00000F 0F00000F 0F00000F 0F00000F 00FFFFF0 00FFFFF0 00FFFFF0 00FFFFF0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C084 ENCODING 84 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0FFFFFFF 0FFFFFFF 0FFFFFFF 0FFFFFFF 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C085 ENCODING 85 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 00FFFFF0 00FFFFF0 00FFFFF0 00FFFFF0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C086 ENCODING 86 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0FF000FF 0FF000FF 0FF000FF 0FF000FF 00F000F0 00F000F0 00F000F0 00F000F0 00F000F0 00F000F0 00F000F0 00F000F0 000F0F00 000F0F00 000F0F00 000F0F00 000F0F00 000F0F00 000F0F00 000F0F00 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C087 ENCODING 87 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00F00F 0F00F00F 0F00F00F 0F00F00F 0F0F0F0F 0F0F0F0F 0F0F0F0F 0F0F0F0F 0FF000FF 0FF000FF 0FF000FF 0FF000FF 0F00000F 0F00000F 0F00000F 0F00000F 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C088 ENCODING 88 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0F00000F 0F00000F 0F00000F 0F00000F 00F000F0 00F000F0 00F000F0 00F000F0 000F0F00 000F0F00 000F0F00 000F0F00 0000F000 0000F000 0000F000 0000F000 000F0F00 000F0F00 000F0F00 000F0F00 00F000F0 00F000F0 00F000F0 00F000F0 0F00000F 0F00000F 0F00000F 0F00000F 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C089 ENCODING 89 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0F00000F 0F00000F 0F00000F 0F00000F 00F000F0 00F000F0 00F000F0 00F000F0 000F0F00 000F0F00 000F0F00 000F0F00 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C090 ENCODING 90 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0FFFFFFF 0FFFFFFF 0FFFFFFF 0FFFFFFF 000000F0 000000F0 000000F0 000000F0 00000F00 00000F00 00000F00 00000F00 0000F000 0000F000 0000F000 0000F000 000F0000 000F0000 000F0000 000F0000 00F00000 00F00000 00F00000 00F00000 0FFFFFFF 0FFFFFFF 0FFFFFFF 0FFFFFFF 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C091 ENCODING 91 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 0000FFF0 0000FFF0 0000FFF0 0000FFF0 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000FFF0 0000FFF0 0000FFF0 0000FFF0 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C092 ENCODING 92 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP F0000000 F0000000 F0000000 F0000000 0F000000 0F000000 0F000000 0F000000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 000F0000 000F0000 000F0000 000F0000 0000F000 0000F000 0000F000 0000F000 00000F00 00000F00 00000F00 00000F00 00000F00 00000F00 00000F00 00000F00 000000F0 000000F0 000000F0 000000F0 0000000F 0000000F 0000000F FFFFFFFF ENDCHAR STARTCHAR C093 ENCODING 93 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00FFF000 00FFF000 00FFF000 00FFF000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 00FFF000 00FFF000 00FFF000 00FFF000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C094 ENCODING 94 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 0000F000 0000F000 0000F000 0000F000 000F0F00 000F0F00 000F0F00 000F0F00 00F000F0 00F000F0 00F000F0 00F000F0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C095 ENCODING 95 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C096 ENCODING 96 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C097 ENCODING 97 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00FFFFFF 00FFFFFF 00FFFFFF 00FFFFFF 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F0000FF 0F0000FF 0F0000FF 0F0000FF 00FFFF0F 00FFFF0F 00FFFF0F 00FFFF0F 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C098 ENCODING 98 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0FFFFFF0 0FFFFFF0 0FFFFFF0 0FFFFFF0 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0FFFFFF0 0FFFFFF0 0FFFFFF0 0FFFFFF0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C099 ENCODING 99 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00FFFFF0 00FFFFF0 00FFFFF0 00FFFFF0 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 00FFFFF0 00FFFFF0 00FFFFF0 00FFFFF0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C100 ENCODING 100 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 00FFFFFF 00FFFFFF 00FFFFFF 00FFFFFF 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 00FFFFFF 00FFFFFF 00FFFFFF 00FFFFFF 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C101 ENCODING 101 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00FFFFF0 00FFFFF0 00FFFFF0 00FFFFF0 0F00000F 0F00000F 0F00000F 0F00000F 0FFFFFFF 0FFFFFFF 0FFFFFFF 0FFFFFFF 0F000000 0F000000 0F000000 0F000000 00FFFFF0 00FFFFF0 00FFFFF0 00FFFFF0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C102 ENCODING 102 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 000FFFF0 000FFFF0 000FFFF0 000FFFF0 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 0FFFF000 0FFFF000 0FFFF000 0FFFF000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C103 ENCODING 103 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00FFFFFF 00FFFFFF 00FFFFFF 00FFFFFF 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 00FFFFFF 00FFFFFF 00FFFFFF 00FFFFFF 0000000F 0000000F 0000000F 0000000F 00FFFFF0 00FFFFF0 00FFFFF0 FFFFFFFF ENDCHAR STARTCHAR C104 ENCODING 104 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0FFFFFF0 0FFFFFF0 0FFFFFF0 0FFFFFF0 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C105 ENCODING 105 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 00000000 00000000 00000000 00000000 00FFF000 00FFF000 00FFF000 00FFF000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 00FFFFF0 00FFFFF0 00FFFFF0 00FFFFF0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C106 ENCODING 106 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 000000F0 000000F0 000000F0 000000F0 000000F0 000000F0 000000F0 000000F0 00000000 00000000 00000000 00000000 000FFFF0 000FFFF0 000FFFF0 000FFFF0 000000F0 000000F0 000000F0 000000F0 000000F0 000000F0 000000F0 000000F0 000000F0 000000F0 000000F0 000000F0 000000F0 000000F0 000000F0 000000F0 000000F0 000000F0 000000F0 000000F0 00FFFF00 00FFFF00 00FFFF00 FFFFFFFF ENDCHAR STARTCHAR C107 ENCODING 107 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000FF0 0F000FF0 0F000FF0 0F000FF0 0F00F000 0F00F000 0F00F000 0F00F000 0FFF0000 0FFF0000 0FFF0000 0FFF0000 0F00F000 0F00F000 0F00F000 0F00F000 0F000FF0 0F000FF0 0F000FF0 0F000FF0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C108 ENCODING 108 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 000FF000 000FF000 000FF000 000FF000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 000FFF00 000FFF00 000FFF00 000FFF00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C109 ENCODING 109 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0FFF0FF0 0FFF0FF0 0FFF0FF0 0FFF0FF0 0F00F00F 0F00F00F 0F00F00F 0F00F00F 0F00F00F 0F00F00F 0F00F00F 0F00F00F 0F00F00F 0F00F00F 0F00F00F 0F00F00F 0F00000F 0F00000F 0F00000F 0F00000F 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C110 ENCODING 110 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0F0FFFF0 0F0FFFF0 0F0FFFF0 0F0FFFF0 0FF0000F 0FF0000F 0FF0000F 0FF0000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C111 ENCODING 111 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00FFFFF0 00FFFFF0 00FFFFF0 00FFFFF0 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 00FFFFF0 00FFFFF0 00FFFFF0 00FFFFF0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C112 ENCODING 112 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0FFFFFF0 0FFFFFF0 0FFFFFF0 0FFFFFF0 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0FFFFFF0 0FFFFFF0 0FFFFFF0 0FFFFFF0 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 0F000000 FFFFFFFF ENDCHAR STARTCHAR C113 ENCODING 113 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00FFFFFF 00FFFFFF 00FFFFFF 00FFFFFF 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 00FFFFFF 00FFFFFF 00FFFFFF 00FFFFFF 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F FFFFFFFF ENDCHAR STARTCHAR C114 ENCODING 114 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00F0FFF0 00F0FFF0 00F0FFF0 00F0FFF0 00FF0000 00FF0000 00FF0000 00FF0000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C115 ENCODING 115 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00FFFFF0 00FFFFF0 00FFFFF0 00FFFFF0 0F000000 0F000000 0F000000 0F000000 00FFFF00 00FFFF00 00FFFF00 00FFFF00 000000F0 000000F0 000000F0 000000F0 0FFFFF00 0FFFFF00 0FFFFF00 0FFFFF00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C116 ENCODING 116 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 000F0000 000F0000 000F0000 000F0000 000F0000 000F0000 000F0000 000F0000 000F0000 000F0000 000F0000 000F0000 0FFFFFF0 0FFFFFF0 0FFFFFF0 0FFFFFF0 000F0000 000F0000 000F0000 000F0000 000F0000 000F0000 000F0000 000F0000 000F0000 000F0000 000F0000 000F0000 0000FFF0 0000FFF0 0000FFF0 0000FFF0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C117 ENCODING 117 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F00000F 0F0000FF 0F0000FF 0F0000FF 0F0000FF 00FFFF0F 00FFFF0F 00FFFF0F 00FFFF0F 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C118 ENCODING 118 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0FF000FF 0FF000FF 0FF000FF 0FF000FF 00F000F0 00F000F0 00F000F0 00F000F0 000F0F00 000F0F00 000F0F00 000F0F00 000F0F00 000F0F00 000F0F00 000F0F00 0000F000 0000F000 0000F000 0000F000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C119 ENCODING 119 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0F00000F 0F00000F 0F00000F 0F00000F 0F00F00F 0F00F00F 0F00F00F 0F00F00F 0F00F00F 0F00F00F 0F00F00F 0F00F00F 0F00F00F 0F00F00F 0F00F00F 0F00F00F 00FF0FF0 00FF0FF0 00FF0FF0 00FF0FF0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C120 ENCODING 120 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0FF000FF 0FF000FF 0FF000FF 0FF000FF 000F0F00 000F0F00 000F0F00 000F0F00 0000F000 0000F000 0000F000 0000F000 000F0F00 000F0F00 000F0F00 000F0F00 0FF000FF 0FF000FF 0FF000FF 0FF000FF 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C121 ENCODING 121 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 0F0000F0 00FFFFF0 00FFFFF0 00FFFFF0 00FFFFF0 000000F0 000000F0 000000F0 000000F0 00FFFF00 00FFFF00 00FFFF00 FFFFFFFF ENDCHAR STARTCHAR C122 ENCODING 122 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0FFFFFF0 0FFFFFF0 0FFFFFF0 0FFFFFF0 00000F00 00000F00 00000F00 00000F00 000FF000 000FF000 000FF000 000FF000 00F00000 00F00000 00F00000 00F00000 0FFFFFF0 0FFFFFF0 0FFFFFF0 0FFFFFF0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C123 ENCODING 123 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 F0000000 FFFFFFFF ENDCHAR STARTCHAR C124 ENCODING 124 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 FFFFFFFF ENDCHAR STARTCHAR C125 ENCODING 125 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F 0000000F FFFFFFFF ENDCHAR STARTCHAR C126 ENCODING 126 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C127 ENCODING 127 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ENDCHAR ENDFONT xtel-3.3.0.orig/fonts/g0s8x10.bdf0100444001424500142340000003145006703332536015221 0ustar ericpersoSTARTFONT 2.1 COMMENT $Id: g0s8x10.bdf,v 1.2 1995/02/10 17:53:37 pierre Exp $ FONT -Lectra-Minitel-Medium-R-Normal--10-100-75-75-C-80-ISO2022-0S SIZE 10 75 75 FONTBOUNDINGBOX 8 10 0 -2 STARTPROPERTIES 19 FONTNAME_REGISTRY "" FOUNDRY "Lectra" FAMILY_NAME "Minitel" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 10 POINT_SIZE 100 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "C" AVERAGE_WIDTH 80 CHARSET_REGISTRY "ISO2022-0S" CHARSET_ENCODING "1" FONT_ASCENT 8 FONT_DESCENT 2 DEFAULT_CHAR 32 COPYRIGHT "Copyright 1991 Lectra-Systemes" ENDPROPERTIES CHARS 116 STARTCHAR C000 ENCODING 0 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 30 48 40 40 f0 40 40 f8 ff ENDCHAR STARTCHAR C001 ENCODING 1 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 20 60 FF 60 20 00 ff ENDCHAR STARTCHAR C002 ENCODING 2 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 08 1C 3E 08 08 08 08 08 ff ENDCHAR STARTCHAR C003 ENCODING 3 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 04 06 FF 06 04 00 ff ENDCHAR STARTCHAR C004 ENCODING 4 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 08 08 08 08 08 08 3E 1C ff ENDCHAR STARTCHAR C005 ENCODING 5 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 60 90 90 60 00 00 00 00 00 ff ENDCHAR STARTCHAR C006 ENCODING 6 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 20 20 F8 20 20 F8 00 ff ENDCHAR STARTCHAR C007 ENCODING 7 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 08 00 7F 00 08 00 00 ff ENDCHAR STARTCHAR C008 ENCODING 8 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 84 88 88 92 96 2a 2f 42 ff ENDCHAR STARTCHAR C009 ENCODING 9 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 84 88 88 96 99 23 24 4f ff ENDCHAR STARTCHAR C010 ENCODING 10 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 e2 24 64 2a ee 1a 1f 22 ff ENDCHAR STARTCHAR C011 ENCODING 11 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 30 18 00 00 00 00 00 00 ff ENDCHAR STARTCHAR C012 ENCODING 12 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 06 0C 00 00 00 00 00 00 ff ENDCHAR STARTCHAR C013 ENCODING 13 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 1C 36 00 00 00 00 00 00 ff ENDCHAR STARTCHAR C014 ENCODING 14 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 36 00 00 00 00 00 00 00 ff ENDCHAR STARTCHAR C015 ENCODING 15 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 18 ff ENDCHAR STARTCHAR C016 ENCODING 16 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 3F 48 88 8E 88 48 3F 00 ff ENDCHAR STARTCHAR C017 ENCODING 17 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 77 89 8F 88 77 00 ff ENDCHAR STARTCHAR C018 ENCODING 18 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 30 48 88 90 b0 8c a4 d8 ff ENDCHAR STARTCHAR C019 ENCODING 19 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 70 88 c0 70 88 88 70 18 88 ff ENDCHAR STARTCHAR C040 ENCODING 32 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 ff ENDCHAR STARTCHAR ! ENCODING 33 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 08 08 08 08 08 08 00 08 00 ff ENDCHAR STARTCHAR " ENCODING 34 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 14 14 14 00 00 00 00 00 00 ff ENDCHAR STARTCHAR # ENCODING 35 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 24 24 7e 24 24 7e 24 24 00 ff ENDCHAR STARTCHAR $ ENCODING 36 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 08 1e 28 1c 0a 3c 08 00 ff ENDCHAR STARTCHAR % ENCODING 37 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 22 54 24 08 12 15 22 00 ff ENDCHAR STARTCHAR & ENCODING 38 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 38 40 20 30 4a 44 3a 00 ff ENDCHAR STARTCHAR ' ENCODING 39 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 0c 08 10 00 00 00 00 00 00 ff ENDCHAR STARTCHAR ( ENCODING 40 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 04 08 08 10 10 10 08 08 04 ff ENDCHAR STARTCHAR ) ENCODING 41 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 10 08 08 04 04 04 08 08 10 ff ENDCHAR STARTCHAR * ENCODING 42 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 08 08 6b 1c 08 14 22 00 ff ENDCHAR STARTCHAR + ENCODING 43 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 08 08 08 7f 08 08 08 00 ff ENDCHAR STARTCHAR , ENCODING 44 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 18 10 20 ff ENDCHAR STARTCHAR - ENCODING 45 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 7f 00 00 00 00 ff ENDCHAR STARTCHAR . ENCODING 46 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 18 18 00 ff ENDCHAR STARTCHAR / ENCODING 47 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 01 02 04 04 08 10 20 20 40 ff ENDCHAR STARTCHAR 0 ENCODING 48 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 3c 42 42 42 42 42 42 3c 00 ff ENDCHAR STARTCHAR 1 ENCODING 49 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 08 18 08 08 08 08 08 08 00 ff ENDCHAR STARTCHAR 2 ENCODING 50 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 3c 42 02 04 08 10 20 7e 00 ff ENDCHAR STARTCHAR 3 ENCODING 51 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 3c 42 02 1c 02 02 42 3c 00 ff ENDCHAR STARTCHAR 4 ENCODING 52 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 0c 0c 14 14 24 7e 04 0e 00 ff ENDCHAR STARTCHAR 5 ENCODING 53 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 7e 40 40 7c 02 02 42 3c 00 ff ENDCHAR STARTCHAR 6 ENCODING 54 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 1c 20 40 7c 42 42 42 3c 00 ff ENDCHAR STARTCHAR 7 ENCODING 55 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 7e 42 04 04 08 08 10 10 00 ff ENDCHAR STARTCHAR 8 ENCODING 56 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 3c 42 42 3c 42 42 42 3c 00 ff ENDCHAR STARTCHAR 9 ENCODING 57 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 3c 42 42 42 3e 02 04 38 00 ff ENDCHAR STARTCHAR : ENCODING 58 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 18 18 00 00 18 18 00 ff ENDCHAR STARTCHAR ; ENCODING 59 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 18 18 00 00 18 10 20 ff ENDCHAR STARTCHAR < ENCODING 60 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 06 18 60 18 06 00 00 ff ENDCHAR STARTCHAR = ENCODING 61 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 7f 00 00 7f 00 00 ff ENDCHAR STARTCHAR > ENCODING 62 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 60 18 06 18 60 00 00 ff ENDCHAR STARTCHAR ? ENCODING 63 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 3c 42 02 04 08 08 00 08 00 ff ENDCHAR STARTCHAR @ ENCODING 64 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 1c 22 49 55 4a 20 1c 00 ff ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 3e 41 41 7f 41 41 41 00 ff ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 7e 41 41 7e 41 41 7e 00 ff ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 1e 21 40 40 40 21 1e 00 ff ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 7c 42 41 41 41 42 7c 00 ff ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 7f 40 40 7c 40 40 7f 00 ff ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 7f 40 40 7c 40 40 40 00 ff ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 1e 21 40 47 41 21 1f 00 ff ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 41 41 41 7f 41 41 41 00 ff ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 3e 08 08 08 08 08 3e 00 ff ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 0e 02 02 02 42 42 3c 00 ff ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 42 44 48 70 48 44 42 00 ff ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 40 40 40 40 40 40 7e 00 ff ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 41 63 55 49 41 41 41 00 ff ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 41 61 51 49 45 43 41 00 ff ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 1c 22 41 41 41 22 1c 00 ff ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 7e 41 41 7e 40 40 40 00 ff ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 1c 22 41 41 41 22 1c 07 ff ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 7e 41 41 7e 44 42 41 00 ff ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 3e 41 40 3e 01 41 3e 00 ff ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 7f 08 08 08 08 08 08 00 ff ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 41 41 41 41 41 41 3e 00 ff ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 63 22 22 14 14 08 08 00 ff ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 41 41 41 49 55 63 41 00 ff ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 41 22 14 08 14 22 41 00 ff ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 41 22 14 08 08 08 08 00 ff ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 7f 02 04 08 10 20 7f 00 ff ENDCHAR STARTCHAR [ ENCODING 91 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 0e 08 08 08 08 08 08 08 0e ff ENDCHAR STARTCHAR \ ENCODING 92 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 80 40 20 20 10 08 04 04 02 ff ENDCHAR STARTCHAR ] ENCODING 93 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 38 08 08 08 08 08 08 08 38 ff ENDCHAR STARTCHAR ^ ENCODING 94 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 08 14 22 00 00 00 00 00 00 ff ENDCHAR STARTCHAR _ ENCODING 95 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 ff ENDCHAR STARTCHAR ` ENCODING 96 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 ff 00 00 00 ff ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 3f 41 41 43 3d 00 ff ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 40 40 40 7e 41 41 41 7e 00 ff ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 3e 40 40 40 3e 00 ff ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 01 01 01 3f 41 41 41 3f 00 ff ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 3e 41 7f 40 3e 00 ff ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 1e 20 20 78 20 20 20 20 00 ff ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 3f 41 41 41 3f 01 ff ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 40 40 40 7e 41 41 41 41 00 ff ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 08 08 00 38 08 08 08 3e 00 ff ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 02 02 00 1e 02 02 02 02 02 ff ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 40 40 40 46 48 70 48 46 00 ff ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 18 08 08 08 08 08 08 1c 00 ff ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 76 49 49 49 41 00 ff ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 5e 61 41 41 41 00 ff ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 3e 41 41 41 3e 00 ff ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 7e 41 41 41 7e 40 ff ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 3f 41 41 41 3f 01 ff ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 2e 30 20 20 20 00 ff ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 3e 40 3c 02 7c 00 ff ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 10 10 10 7e 10 10 10 0e 00 ff ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 41 41 41 43 3d 00 ff ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 63 22 14 14 08 00 ff ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 41 49 49 49 36 00 ff ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 63 14 08 14 63 00 ff ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 42 42 42 42 3e 02 ff ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 7e 04 18 20 7e 00 ff ENDCHAR STARTCHAR { ENCODING 123 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 80 80 80 80 80 80 80 80 80 ff ENDCHAR STARTCHAR | ENCODING 124 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 08 08 08 08 08 08 08 08 08 ff ENDCHAR STARTCHAR } ENCODING 125 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 01 01 01 01 01 01 01 01 01 ff ENDCHAR STARTCHAR C127 ENCODING 126 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP ff 00 00 00 00 00 00 00 00 ff ENDCHAR STARTCHAR C127 ENCODING 127 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP ff ff ff ff ff ff ff ff ff ff ENDCHAR ENDFONT xtel-3.3.0.orig/fonts/g0s8x20.bdf0100444001424500142340000004076006703332536015226 0ustar ericpersoSTARTFONT 2.1 COMMENT $Id: g0s8x20.bdf,v 1.2 1995/02/10 17:53:37 pierre Exp $ FONT -Lectra-Minitel-Medium-R-Normal--20-200-75-75-C-80-ISO2022-0S SIZE 20 75 75 FONTBOUNDINGBOX 8 20 0 -2 STARTPROPERTIES 19 FONTNAME_REGISTRY "" FOUNDRY "Lectra" FAMILY_NAME "Minitel" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 20 POINT_SIZE 200 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "C" AVERAGE_WIDTH 80 CHARSET_REGISTRY "ISO2022-0S" CHARSET_ENCODING "1" FONT_ASCENT 18 FONT_DESCENT 2 DEFAULT_CHAR 32 COPYRIGHT "Copyright 1991 Lectra-Systemes" ENDPROPERTIES CHARS 116 STARTCHAR C000 ENCODING 0 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 30 30 48 48 40 40 40 40 F0 F0 40 40 40 40 F8 F8 00 ff ENDCHAR STARTCHAR C001 ENCODING 1 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 20 20 60 60 FF FF 60 60 20 20 00 00 00 ff ENDCHAR STARTCHAR C002 ENCODING 2 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 08 08 1C 1C 3E 3E 08 08 08 08 08 08 08 08 08 08 08 ff ENDCHAR STARTCHAR C003 ENCODING 3 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 04 04 06 06 FF FF 06 06 04 04 00 00 00 ff ENDCHAR STARTCHAR C004 ENCODING 4 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 08 08 08 08 08 08 08 08 08 08 08 08 3E 3E 1C 1C 08 ff ENDCHAR STARTCHAR C005 ENCODING 5 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 60 60 90 90 90 90 60 60 00 00 00 00 00 00 00 00 00 00 00 ff ENDCHAR STARTCHAR C006 ENCODING 6 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 20 20 20 20 F8 F8 20 20 20 20 F8 F8 00 00 00 ff ENDCHAR STARTCHAR C007 ENCODING 7 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 08 08 00 00 7F 7F 00 00 08 08 00 00 00 00 00 ff ENDCHAR STARTCHAR C008 ENCODING 8 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 84 84 88 88 88 88 92 92 96 96 2A 2A 2F 2F 42 42 00 ff ENDCHAR STARTCHAR C009 ENCODING 9 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 84 84 88 88 88 88 96 96 99 99 23 23 24 24 4F 4F 00 ff ENDCHAR STARTCHAR C010 ENCODING 10 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 E2 E2 24 24 64 64 2A 2A EE EE 1A 1A 1F 1F 22 22 00 ff ENDCHAR STARTCHAR C011 ENCODING 11 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 30 30 18 18 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ENDCHAR STARTCHAR C012 ENCODING 12 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 06 06 0C 0C 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ENDCHAR STARTCHAR C013 ENCODING 13 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 1C 1C 36 36 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ENDCHAR STARTCHAR C014 ENCODING 14 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 36 36 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ENDCHAR STARTCHAR C015 ENCODING 15 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 18 18 38 ff ENDCHAR STARTCHAR C016 ENCODING 16 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 3F 3F 48 48 88 88 8E 8E 88 88 48 48 3F 3F 00 00 00 ff ENDCHAR STARTCHAR C017 ENCODING 17 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 77 77 89 89 8F 8F 88 88 77 77 00 00 00 ff ENDCHAR STARTCHAR C018 ENCODING 18 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 30 30 48 48 88 88 90 90 B0 B0 8C 8C A4 A4 D8 D8 00 ff ENDCHAR STARTCHAR C019 ENCODING 19 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 70 70 88 88 C0 C0 70 70 88 88 88 88 70 70 18 18 88 88 70 ff ENDCHAR STARTCHAR C032 ENCODING 32 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF ENDCHAR STARTCHAR C033 ENCODING 33 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 08 08 08 08 08 08 08 08 08 08 08 08 00 00 08 08 00 00 00 FF ENDCHAR STARTCHAR C034 ENCODING 34 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 14 14 14 14 14 14 00 00 00 00 00 00 00 00 00 00 00 00 00 FF ENDCHAR STARTCHAR C035 ENCODING 35 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 24 24 24 24 7E 7E 24 24 24 24 7E 7E 24 24 24 24 00 00 00 FF ENDCHAR STARTCHAR C036 ENCODING 36 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 08 08 1E 1E 28 28 1C 1C 0A 0A 3C 3C 08 08 00 00 00 FF ENDCHAR STARTCHAR C037 ENCODING 37 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 22 22 54 54 24 24 08 08 12 12 15 15 22 22 00 00 00 FF ENDCHAR STARTCHAR C038 ENCODING 38 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 38 38 40 40 20 20 30 30 4A 4A 44 44 3A 3A 00 00 00 FF ENDCHAR STARTCHAR C039 ENCODING 39 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 0C 0C 08 08 10 10 00 00 00 00 00 00 00 00 00 00 00 00 00 FF ENDCHAR STARTCHAR C040 ENCODING 40 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 04 04 08 08 08 08 10 10 10 10 10 10 08 08 08 08 04 04 00 FF ENDCHAR STARTCHAR C041 ENCODING 41 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 10 10 08 08 08 08 04 04 04 04 04 04 08 08 08 08 10 10 00 FF ENDCHAR STARTCHAR C042 ENCODING 42 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 08 08 08 08 6B 6B 1C 1C 08 08 14 14 22 22 00 00 00 FF ENDCHAR STARTCHAR C043 ENCODING 43 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 08 08 08 08 08 08 7F 7F 08 08 08 08 08 08 00 00 00 FF ENDCHAR STARTCHAR C044 ENCODING 44 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 18 18 10 10 20 20 00 FF ENDCHAR STARTCHAR C045 ENCODING 45 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 00 00 7F 7F 00 00 00 00 00 00 00 00 00 FF ENDCHAR STARTCHAR C046 ENCODING 46 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 18 18 18 18 00 00 00 FF ENDCHAR STARTCHAR C047 ENCODING 47 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 01 01 02 02 04 04 04 04 08 08 10 10 20 20 20 20 40 40 80 FF ENDCHAR STARTCHAR C048 ENCODING 48 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 3C 3C 42 42 42 42 42 42 42 42 42 42 42 42 3C 3C 00 00 00 FF ENDCHAR STARTCHAR C049 ENCODING 49 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 08 08 18 18 08 08 08 08 08 08 08 08 08 08 08 08 00 00 00 FF ENDCHAR STARTCHAR C050 ENCODING 50 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 3C 3C 42 42 02 02 04 04 08 08 10 10 20 20 7E 7E 00 00 00 FF ENDCHAR STARTCHAR C051 ENCODING 51 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 3C 3C 42 42 02 02 1C 1C 02 02 02 02 42 42 3C 3C 00 00 00 FF ENDCHAR STARTCHAR C052 ENCODING 52 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 0C 0C 0C 0C 14 14 14 14 24 24 7E 7E 04 04 0E 0E 00 00 00 FF ENDCHAR STARTCHAR C053 ENCODING 53 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 7E 7E 40 40 40 40 7C 7C 02 02 02 02 42 42 3C 3C 00 00 00 FF ENDCHAR STARTCHAR C054 ENCODING 54 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 1C 1C 20 20 40 40 7C 7C 42 42 42 42 42 42 3C 3C 00 00 00 FF ENDCHAR STARTCHAR C055 ENCODING 55 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 7E 7E 42 42 04 04 04 04 08 08 08 08 10 10 10 10 00 00 00 FF ENDCHAR STARTCHAR C056 ENCODING 56 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 3C 3C 42 42 42 42 3C 3C 42 42 42 42 42 42 3C 3C 00 00 00 FF ENDCHAR STARTCHAR C057 ENCODING 57 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 3C 3C 42 42 42 42 42 42 3E 3E 02 02 04 04 38 38 00 00 00 FF ENDCHAR STARTCHAR C058 ENCODING 58 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 18 18 18 18 00 00 00 00 18 18 18 18 00 00 00 FF ENDCHAR STARTCHAR C059 ENCODING 59 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 18 18 18 18 00 00 00 00 18 18 10 10 20 20 00 FF ENDCHAR STARTCHAR C060 ENCODING 60 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 06 06 18 18 60 60 18 18 06 06 00 00 00 00 00 FF ENDCHAR STARTCHAR C061 ENCODING 61 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 7F 7F 00 00 00 00 7F 7F 00 00 00 00 00 FF ENDCHAR STARTCHAR C062 ENCODING 62 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 60 60 18 18 06 06 18 18 60 60 00 00 00 00 00 FF ENDCHAR STARTCHAR C063 ENCODING 63 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 3C 3C 42 42 02 02 04 04 08 08 08 08 00 00 08 08 00 00 00 FF ENDCHAR STARTCHAR C064 ENCODING 64 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 1C 1C 22 22 49 49 55 55 4A 4A 20 20 1C 1C 00 00 00 FF ENDCHAR STARTCHAR C065 ENCODING 65 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 3e 7f 41 41 41 41 7f 7f 41 41 41 41 41 41 00 00 00 FF ENDCHAR STARTCHAR C066 ENCODING 66 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 7E 7E 41 41 41 41 7E 7E 41 41 41 41 7E 7E 00 00 00 FF ENDCHAR STARTCHAR C067 ENCODING 67 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 1E 1E 21 21 40 40 40 40 40 40 21 21 1E 1E 00 00 00 FF ENDCHAR STARTCHAR C068 ENCODING 68 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 7C 7C 42 42 41 41 41 41 41 41 42 42 7C 7C 00 00 00 FF ENDCHAR STARTCHAR C069 ENCODING 69 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 7F 7F 40 40 40 40 7C 7C 40 40 40 40 7F 7F 00 00 00 FF ENDCHAR STARTCHAR C070 ENCODING 70 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 7F 7F 40 40 40 40 7C 7C 40 40 40 40 40 40 00 00 00 FF ENDCHAR STARTCHAR C071 ENCODING 71 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 1E 1E 21 21 40 40 47 47 41 41 21 21 1F 1F 00 00 00 FF ENDCHAR STARTCHAR C072 ENCODING 72 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 41 41 41 41 41 41 7F 7F 41 41 41 41 41 41 00 00 00 FF ENDCHAR STARTCHAR C073 ENCODING 73 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 3E 3E 08 08 08 08 08 08 08 08 08 08 3E 3E 00 00 00 FF ENDCHAR STARTCHAR C074 ENCODING 74 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 0E 0E 02 02 02 02 02 02 42 42 42 42 3C 3C 00 00 00 FF ENDCHAR STARTCHAR C075 ENCODING 75 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 42 42 44 44 48 48 70 70 48 48 44 44 42 42 00 00 00 FF ENDCHAR STARTCHAR C076 ENCODING 76 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 40 40 40 40 40 40 40 40 40 40 40 40 7E 7E 00 00 00 FF ENDCHAR STARTCHAR C077 ENCODING 77 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 41 41 63 63 55 55 49 49 41 41 41 41 41 41 00 00 00 FF ENDCHAR STARTCHAR C078 ENCODING 78 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 41 41 61 61 51 51 49 49 45 45 43 43 41 41 00 00 00 FF ENDCHAR STARTCHAR C079 ENCODING 79 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 1C 1C 22 22 41 41 41 41 41 41 22 22 1C 1C 00 00 00 FF ENDCHAR STARTCHAR C080 ENCODING 80 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 7E 7E 41 41 41 41 7E 7E 40 40 40 40 40 40 00 00 00 FF ENDCHAR STARTCHAR C081 ENCODING 81 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 1C 1C 22 22 41 41 41 41 41 41 22 22 1C 1C 07 07 00 FF ENDCHAR STARTCHAR C082 ENCODING 82 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 7E 7E 41 41 41 41 7E 7E 44 44 42 42 41 41 00 00 00 FF ENDCHAR STARTCHAR C083 ENCODING 83 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 3E 3E 41 41 40 40 3E 3E 01 01 41 41 3E 3E 00 00 00 FF ENDCHAR STARTCHAR C084 ENCODING 84 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 7F 7F 08 08 08 08 08 08 08 08 08 08 08 08 00 00 00 FF ENDCHAR STARTCHAR C085 ENCODING 85 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 41 41 41 41 41 41 41 41 41 41 41 41 3E 3E 00 00 00 FF ENDCHAR STARTCHAR C086 ENCODING 86 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 63 63 22 22 22 22 14 14 14 14 08 08 08 08 00 00 00 FF ENDCHAR STARTCHAR C087 ENCODING 87 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 41 41 41 41 41 41 49 49 55 55 63 63 41 41 00 00 00 FF ENDCHAR STARTCHAR C088 ENCODING 88 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 41 41 22 22 14 14 08 08 14 14 22 22 41 41 00 00 00 FF ENDCHAR STARTCHAR C089 ENCODING 89 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 41 41 22 22 14 14 08 08 08 08 08 08 08 08 00 00 00 FF ENDCHAR STARTCHAR C090 ENCODING 90 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 7F 7F 02 02 04 04 08 08 10 10 20 20 7F 7F 00 00 00 FF ENDCHAR STARTCHAR C091 ENCODING 91 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 0E 0E 08 08 08 08 08 08 08 08 08 08 08 08 08 08 0E 0E 00 FF ENDCHAR STARTCHAR C092 ENCODING 92 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 80 80 40 40 20 20 20 20 10 10 08 08 04 04 04 04 02 02 01 FF ENDCHAR STARTCHAR C093 ENCODING 93 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 38 38 08 08 08 08 08 08 08 08 08 08 08 08 08 08 38 38 00 FF ENDCHAR STARTCHAR C094 ENCODING 94 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 08 08 14 14 22 22 00 00 00 00 00 00 00 00 00 00 00 00 00 FF ENDCHAR STARTCHAR C095 ENCODING 95 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF ENDCHAR STARTCHAR C096 ENCODING 96 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 FF FF 00 00 00 00 00 00 00 FF ENDCHAR STARTCHAR C097 ENCODING 97 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 3F 3F 41 41 41 41 43 43 3D 3D 00 00 00 FF ENDCHAR STARTCHAR C098 ENCODING 98 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 40 40 40 40 40 40 7E 7E 41 41 41 41 41 41 7E 7E 00 00 00 FF ENDCHAR STARTCHAR C099 ENCODING 99 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 3E 3E 40 40 40 40 40 40 3E 3E 00 00 00 FF ENDCHAR STARTCHAR C100 ENCODING 100 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 01 01 01 01 01 01 3F 3F 41 41 41 41 41 41 3F 3F 00 00 00 FF ENDCHAR STARTCHAR C101 ENCODING 101 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 3E 3E 41 41 7F 7F 40 40 3E 3E 00 00 00 FF ENDCHAR STARTCHAR C102 ENCODING 102 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 1E 1E 20 20 20 20 78 78 20 20 20 20 20 20 20 20 00 00 00 FF ENDCHAR STARTCHAR C103 ENCODING 103 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 3F 3F 41 41 41 41 41 41 3F 3F 01 01 3E FF ENDCHAR STARTCHAR C104 ENCODING 104 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 40 40 40 40 40 40 7E 7E 41 41 41 41 41 41 41 41 00 00 00 FF ENDCHAR STARTCHAR C105 ENCODING 105 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 08 08 08 08 00 00 38 38 08 08 08 08 08 08 3E 3E 00 00 00 FF ENDCHAR STARTCHAR C106 ENCODING 106 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 02 02 02 02 00 00 1E 1E 02 02 02 02 02 02 02 02 02 02 3C FF ENDCHAR STARTCHAR C107 ENCODING 107 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 40 40 40 40 40 40 46 46 48 48 70 70 48 48 46 46 00 00 00 FF ENDCHAR STARTCHAR C108 ENCODING 108 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 18 18 08 08 08 08 08 08 08 08 08 08 08 08 1C 1C 00 00 00 FF ENDCHAR STARTCHAR C109 ENCODING 109 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 76 76 49 49 49 49 49 49 41 41 00 00 00 FF ENDCHAR STARTCHAR C110 ENCODING 110 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 5E 5E 61 61 41 41 41 41 41 41 00 00 00 FF ENDCHAR STARTCHAR C111 ENCODING 111 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 3E 3E 41 41 41 41 41 41 3E 3E 00 00 00 FF ENDCHAR STARTCHAR C112 ENCODING 112 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 7E 7E 41 41 41 41 41 41 7E 7E 40 40 40 FF ENDCHAR STARTCHAR C113 ENCODING 113 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 3F 3F 41 41 41 41 41 41 3F 3F 01 01 01 FF ENDCHAR STARTCHAR C114 ENCODING 114 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 2E 2E 30 30 20 20 20 20 20 20 00 00 00 FF ENDCHAR STARTCHAR C115 ENCODING 115 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 3E 3E 40 40 3C 3C 02 02 7C 7C 00 00 00 FF ENDCHAR STARTCHAR C116 ENCODING 116 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 10 10 10 10 10 10 7E 7E 10 10 10 10 10 10 0E 0E 00 00 00 FF ENDCHAR STARTCHAR C117 ENCODING 117 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 41 41 41 41 41 41 43 43 3D 3D 00 00 00 FF ENDCHAR STARTCHAR C118 ENCODING 118 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 63 63 22 22 14 14 14 14 08 08 00 00 00 FF ENDCHAR STARTCHAR C119 ENCODING 119 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 41 41 49 49 49 49 49 49 36 36 00 00 00 FF ENDCHAR STARTCHAR C120 ENCODING 120 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 63 63 14 14 08 08 14 14 63 63 00 00 00 FF ENDCHAR STARTCHAR C121 ENCODING 121 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 42 42 42 42 42 42 42 42 3E 3E 02 02 3C FF ENDCHAR STARTCHAR C122 ENCODING 122 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 7E 7E 04 04 18 18 20 20 7E 7E 00 00 00 FF ENDCHAR STARTCHAR C123 ENCODING 123 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 FF ENDCHAR STARTCHAR C124 ENCODING 124 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 FF ENDCHAR STARTCHAR C125 ENCODING 125 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 FF ENDCHAR STARTCHAR C126 ENCODING 126 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF ENDCHAR STARTCHAR C127 ENCODING 127 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ENDCHAR ENDFONT xtel-3.3.0.orig/fonts/g116x20.bdf0100444001424500142340000005655006703332536015127 0ustar ericpersoSTARTFONT 2.1 COMMENT $Id: g116x20.bdf,v 1.1 1994/08/30 15:35:05 pierre Exp $ FONT -Lectra-Minitel-Medium-R-Normal--20-200-75-75-C-160-ISO2022-1 SIZE 20 75 75 FONTBOUNDINGBOX 16 20 0 -2 STARTPROPERTIES 19 FONTNAME_REGISTRY "" FOUNDRY "Lectra" FAMILY_NAME "Minitel" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 20 POINT_SIZE 200 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "C" AVERAGE_WIDTH 80 CHARSET_REGISTRY "ISO2022-1" CHARSET_ENCODING "1" FONT_ASCENT 18 FONT_DESCENT 2 DEFAULT_CHAR 0 COPYRIGHT "Copyright 1991 Lectra-Systemes" ENDPROPERTIES CHARS 128 STARTCHAR C000 ENCODING 0 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C001 ENCODING 1 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C002 ENCODING 2 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C003 ENCODING 3 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C004 ENCODING 4 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C005 ENCODING 5 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C006 ENCODING 6 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C007 ENCODING 7 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C008 ENCODING 8 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C009 ENCODING 9 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C010 ENCODING 10 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C011 ENCODING 11 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C012 ENCODING 12 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C013 ENCODING 13 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C014 ENCODING 14 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C015 ENCODING 15 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C016 ENCODING 16 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C017 ENCODING 17 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C018 ENCODING 18 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C019 ENCODING 19 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C020 ENCODING 20 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C021 ENCODING 21 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C022 ENCODING 22 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C023 ENCODING 23 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C024 ENCODING 24 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C025 ENCODING 25 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C026 ENCODING 26 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C027 ENCODING 27 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C028 ENCODING 28 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C029 ENCODING 29 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C030 ENCODING 30 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C031 ENCODING 31 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C032 ENCODING 32 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C033 ENCODING 33 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FF00 FF00 FF00 FF00 FF00 FF00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C034 ENCODING 34 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 00FF 00FF 00FF 00FF 00FF 00FF 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C035 ENCODING 35 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FFFF FFFF FFFF FFFF FFFF FFFF 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C036 ENCODING 36 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C037 ENCODING 37 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C038 ENCODING 38 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 00FF 00FF 00FF 00FF 00FF 00FF FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C039 ENCODING 39 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FFFF FFFF FFFF FFFF FFFF FFFF FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C040 ENCODING 40 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C041 ENCODING 41 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FF00 FF00 FF00 FF00 FF00 FF00 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C042 ENCODING 42 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C043 ENCODING 43 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FFFF FFFF FFFF FFFF FFFF FFFF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C044 ENCODING 44 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C045 ENCODING 45 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FF00 FF00 FF00 FF00 FF00 FF00 FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C046 ENCODING 46 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 00FF 00FF 00FF 00FF 00FF 00FF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C047 ENCODING 47 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C048 ENCODING 48 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 FF00 FF00 FF00 FF00 FF00 FF00 ENDCHAR STARTCHAR C049 ENCODING 49 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FF00 FF00 FF00 FF00 FF00 FF00 0000 0000 0000 0000 0000 0000 0000 0000 FF00 FF00 FF00 FF00 FF00 FF00 ENDCHAR STARTCHAR C050 ENCODING 50 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 00FF 00FF 00FF 00FF 00FF 00FF 0000 0000 0000 0000 0000 0000 0000 0000 FF00 FF00 FF00 FF00 FF00 FF00 ENDCHAR STARTCHAR C051 ENCODING 51 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FFFF FFFF FFFF FFFF FFFF FFFF 0000 0000 0000 0000 0000 0000 0000 0000 FF00 FF00 FF00 FF00 FF00 FF00 ENDCHAR STARTCHAR C052 ENCODING 52 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 ENDCHAR STARTCHAR C053 ENCODING 53 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 ENDCHAR STARTCHAR C054 ENCODING 54 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 00FF 00FF 00FF 00FF 00FF 00FF FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 ENDCHAR STARTCHAR C055 ENCODING 55 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FFFF FFFF FFFF FFFF FFFF FFFF FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 ENDCHAR STARTCHAR C056 ENCODING 56 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF FF00 FF00 FF00 FF00 FF00 FF00 ENDCHAR STARTCHAR C057 ENCODING 57 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FF00 FF00 FF00 FF00 FF00 FF00 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF FF00 FF00 FF00 FF00 FF00 FF00 ENDCHAR STARTCHAR C058 ENCODING 58 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF FF00 FF00 FF00 FF00 FF00 FF00 ENDCHAR STARTCHAR C059 ENCODING 59 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FFFF FFFF FFFF FFFF FFFF FFFF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF FF00 FF00 FF00 FF00 FF00 FF00 ENDCHAR STARTCHAR C060 ENCODING 60 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FF00 FF00 FF00 FF00 FF00 FF00 ENDCHAR STARTCHAR C061 ENCODING 61 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FF00 FF00 FF00 FF00 FF00 FF00 FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FF00 FF00 FF00 FF00 FF00 FF00 ENDCHAR STARTCHAR C062 ENCODING 62 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 00FF 00FF 00FF 00FF 00FF 00FF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FF00 FF00 FF00 FF00 FF00 FF00 ENDCHAR STARTCHAR C063 ENCODING 63 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FF00 FF00 FF00 FF00 FF00 FF00 ENDCHAR STARTCHAR C064 ENCODING 64 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00FF 00FF 00FF 00FF 00FF 00FF ENDCHAR STARTCHAR C065 ENCODING 65 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FF00 FF00 FF00 FF00 FF00 FF00 0000 0000 0000 0000 0000 0000 0000 0000 00FF 00FF 00FF 00FF 00FF 00FF ENDCHAR STARTCHAR C066 ENCODING 66 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 00FF 00FF 00FF 00FF 00FF 00FF 0000 0000 0000 0000 0000 0000 0000 0000 00FF 00FF 00FF 00FF 00FF 00FF ENDCHAR STARTCHAR C067 ENCODING 67 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FFFF FFFF FFFF FFFF FFFF FFFF 0000 0000 0000 0000 0000 0000 0000 0000 00FF 00FF 00FF 00FF 00FF 00FF ENDCHAR STARTCHAR C068 ENCODING 68 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 00FF 00FF 00FF 00FF 00FF 00FF ENDCHAR STARTCHAR C069 ENCODING 69 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 00FF 00FF 00FF 00FF 00FF 00FF ENDCHAR STARTCHAR C070 ENCODING 70 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 00FF 00FF 00FF 00FF 00FF 00FF FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 00FF 00FF 00FF 00FF 00FF 00FF ENDCHAR STARTCHAR C071 ENCODING 71 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FFFF FFFF FFFF FFFF FFFF FFFF FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 00FF 00FF 00FF 00FF 00FF 00FF ENDCHAR STARTCHAR C072 ENCODING 72 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF ENDCHAR STARTCHAR C073 ENCODING 73 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FF00 FF00 FF00 FF00 FF00 FF00 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF ENDCHAR STARTCHAR C074 ENCODING 74 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF ENDCHAR STARTCHAR C075 ENCODING 75 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FFFF FFFF FFFF FFFF FFFF FFFF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF ENDCHAR STARTCHAR C076 ENCODING 76 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF 00FF 00FF 00FF 00FF 00FF 00FF ENDCHAR STARTCHAR C077 ENCODING 77 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FF00 FF00 FF00 FF00 FF00 FF00 FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF 00FF 00FF 00FF 00FF 00FF 00FF ENDCHAR STARTCHAR C078 ENCODING 78 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 00FF 00FF 00FF 00FF 00FF 00FF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF 00FF 00FF 00FF 00FF 00FF 00FF ENDCHAR STARTCHAR C079 ENCODING 79 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF 00FF 00FF 00FF 00FF 00FF 00FF ENDCHAR STARTCHAR C080 ENCODING 80 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 FFFF FFFF FFFF FFFF FFFF FFFF ENDCHAR STARTCHAR C081 ENCODING 81 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FF00 FF00 FF00 FF00 FF00 FF00 0000 0000 0000 0000 0000 0000 0000 0000 FFFF FFFF FFFF FFFF FFFF FFFF ENDCHAR STARTCHAR C082 ENCODING 82 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 00FF 00FF 00FF 00FF 00FF 00FF 0000 0000 0000 0000 0000 0000 0000 0000 FFFF FFFF FFFF FFFF FFFF FFFF ENDCHAR STARTCHAR C083 ENCODING 83 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FFFF FFFF FFFF FFFF FFFF FFFF 0000 0000 0000 0000 0000 0000 0000 0000 FFFF FFFF FFFF FFFF FFFF FFFF ENDCHAR STARTCHAR C084 ENCODING 84 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FFFF FFFF FFFF FFFF FFFF FFFF ENDCHAR STARTCHAR C085 ENCODING 85 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FFFF FFFF FFFF FFFF FFFF FFFF ENDCHAR STARTCHAR C086 ENCODING 86 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 00FF 00FF 00FF 00FF 00FF 00FF FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FFFF FFFF FFFF FFFF FFFF FFFF ENDCHAR STARTCHAR C087 ENCODING 87 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FFFF FFFF FFFF FFFF FFFF FFFF FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FFFF FFFF FFFF FFFF FFFF FFFF ENDCHAR STARTCHAR C088 ENCODING 88 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF FFFF FFFF FFFF FFFF FFFF FFFF ENDCHAR STARTCHAR C089 ENCODING 89 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FF00 FF00 FF00 FF00 FF00 FF00 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF FFFF FFFF FFFF FFFF FFFF FFFF ENDCHAR STARTCHAR C090 ENCODING 90 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF FFFF FFFF FFFF FFFF FFFF FFFF ENDCHAR STARTCHAR C091 ENCODING 91 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FFFF FFFF FFFF FFFF FFFF FFFF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF FFFF FFFF FFFF FFFF FFFF FFFF ENDCHAR STARTCHAR C092 ENCODING 92 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF ENDCHAR STARTCHAR C093 ENCODING 93 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FF00 FF00 FF00 FF00 FF00 FF00 FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF ENDCHAR STARTCHAR C094 ENCODING 94 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 00FF 00FF 00FF 00FF 00FF 00FF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF ENDCHAR STARTCHAR C095 ENCODING 95 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF ENDCHAR STARTCHAR C096 ENCODING 96 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00FF 00FF 00FF 00FF 00FF 00FF ENDCHAR STARTCHAR C097 ENCODING 97 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FF00 FF00 FF00 FF00 FF00 FF00 0000 0000 0000 0000 0000 0000 0000 0000 00FF 00FF 00FF 00FF 00FF 00FF ENDCHAR STARTCHAR C098 ENCODING 98 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 00FF 00FF 00FF 00FF 00FF 00FF 0000 0000 0000 0000 0000 0000 0000 0000 00FF 00FF 00FF 00FF 00FF 00FF ENDCHAR STARTCHAR C099 ENCODING 99 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FFFF FFFF FFFF FFFF FFFF FFFF 0000 0000 0000 0000 0000 0000 0000 0000 00FF 00FF 00FF 00FF 00FF 00FF ENDCHAR STARTCHAR C100 ENCODING 100 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 00FF 00FF 00FF 00FF 00FF 00FF ENDCHAR STARTCHAR C101 ENCODING 101 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 00FF 00FF 00FF 00FF 00FF 00FF ENDCHAR STARTCHAR C102 ENCODING 102 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 00FF 00FF 00FF 00FF 00FF 00FF FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 00FF 00FF 00FF 00FF 00FF 00FF ENDCHAR STARTCHAR C103 ENCODING 103 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FFFF FFFF FFFF FFFF FFFF FFFF FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 00FF 00FF 00FF 00FF 00FF 00FF ENDCHAR STARTCHAR C104 ENCODING 104 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF ENDCHAR STARTCHAR C105 ENCODING 105 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FF00 FF00 FF00 FF00 FF00 FF00 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF ENDCHAR STARTCHAR C106 ENCODING 106 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF ENDCHAR STARTCHAR C107 ENCODING 107 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FFFF FFFF FFFF FFFF FFFF FFFF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF ENDCHAR STARTCHAR C108 ENCODING 108 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF 00FF 00FF 00FF 00FF 00FF 00FF ENDCHAR STARTCHAR C109 ENCODING 109 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FF00 FF00 FF00 FF00 FF00 FF00 FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF 00FF 00FF 00FF 00FF 00FF 00FF ENDCHAR STARTCHAR C110 ENCODING 110 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 00FF 00FF 00FF 00FF 00FF 00FF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF 00FF 00FF 00FF 00FF 00FF 00FF ENDCHAR STARTCHAR C111 ENCODING 111 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF 00FF 00FF 00FF 00FF 00FF 00FF ENDCHAR STARTCHAR C112 ENCODING 112 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 FFFF FFFF FFFF FFFF FFFF FFFF ENDCHAR STARTCHAR C113 ENCODING 113 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FF00 FF00 FF00 FF00 FF00 FF00 0000 0000 0000 0000 0000 0000 0000 0000 FFFF FFFF FFFF FFFF FFFF FFFF ENDCHAR STARTCHAR C114 ENCODING 114 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 00FF 00FF 00FF 00FF 00FF 00FF 0000 0000 0000 0000 0000 0000 0000 0000 FFFF FFFF FFFF FFFF FFFF FFFF ENDCHAR STARTCHAR C115 ENCODING 115 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FFFF FFFF FFFF FFFF FFFF FFFF 0000 0000 0000 0000 0000 0000 0000 0000 FFFF FFFF FFFF FFFF FFFF FFFF ENDCHAR STARTCHAR C116 ENCODING 116 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FFFF FFFF FFFF FFFF FFFF FFFF ENDCHAR STARTCHAR C117 ENCODING 117 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FFFF FFFF FFFF FFFF FFFF FFFF ENDCHAR STARTCHAR C118 ENCODING 118 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 00FF 00FF 00FF 00FF 00FF 00FF FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FFFF FFFF FFFF FFFF FFFF FFFF ENDCHAR STARTCHAR C119 ENCODING 119 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FFFF FFFF FFFF FFFF FFFF FFFF FF00 FF00 FF00 FF00 FF00 FF00 FF00 FF00 FFFF FFFF FFFF FFFF FFFF FFFF ENDCHAR STARTCHAR C120 ENCODING 120 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF FFFF FFFF FFFF FFFF FFFF FFFF ENDCHAR STARTCHAR C121 ENCODING 121 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FF00 FF00 FF00 FF00 FF00 FF00 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF FFFF FFFF FFFF FFFF FFFF FFFF ENDCHAR STARTCHAR C122 ENCODING 122 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF FFFF FFFF FFFF FFFF FFFF FFFF ENDCHAR STARTCHAR C123 ENCODING 123 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FFFF FFFF FFFF FFFF FFFF FFFF 00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF FFFF FFFF FFFF FFFF FFFF FFFF ENDCHAR STARTCHAR C124 ENCODING 124 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF ENDCHAR STARTCHAR C125 ENCODING 125 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FF00 FF00 FF00 FF00 FF00 FF00 FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF ENDCHAR STARTCHAR C126 ENCODING 126 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 00FF 00FF 00FF 00FF 00FF 00FF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF ENDCHAR STARTCHAR C127 ENCODING 127 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF ENDCHAR ENDFONT xtel-3.3.0.orig/fonts/g18x10.bdf0100444001424500142340000003455006703332536015043 0ustar ericpersoSTARTFONT 2.1 COMMENT $Id: g18x10.bdf,v 1.1 1994/08/30 15:35:05 pierre Exp $ FONT -Lectra-Minitel-Medium-R-Normal--10-100-75-75-C-80-ISO2022-1 SIZE 10 75 75 FONTBOUNDINGBOX 8 10 0 -2 STARTPROPERTIES 19 FONTNAME_REGISTRY "" FOUNDRY "Schumacher" FAMILY_NAME "Minitel" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 10 POINT_SIZE 100 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "C" AVERAGE_WIDTH 80 CHARSET_REGISTRY "ISO2022-1" CHARSET_ENCODING "1" FONT_ASCENT 8 FONT_DESCENT 2 DEFAULT_CHAR 0 COPYRIGHT "Copyright 1991 Lectra-Systemes" ENDPROPERTIES CHARS 128 STARTCHAR C000 ENCODING 0 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C001 ENCODING 1 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C002 ENCODING 2 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C003 ENCODING 3 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C004 ENCODING 4 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C005 ENCODING 5 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C006 ENCODING 6 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C007 ENCODING 7 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C008 ENCODING 8 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C009 ENCODING 9 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C010 ENCODING 10 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C011 ENCODING 11 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C012 ENCODING 12 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C013 ENCODING 13 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C014 ENCODING 14 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C015 ENCODING 15 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C016 ENCODING 16 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C017 ENCODING 17 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C018 ENCODING 18 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C019 ENCODING 19 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C020 ENCODING 20 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C021 ENCODING 21 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C022 ENCODING 22 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C023 ENCODING 23 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C024 ENCODING 24 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C025 ENCODING 25 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C026 ENCODING 26 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C027 ENCODING 27 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C028 ENCODING 28 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C029 ENCODING 29 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C030 ENCODING 30 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C031 ENCODING 31 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C032 ENCODING 32 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C033 ENCODING 33 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP f0 f0 f0 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C034 ENCODING 34 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 0f 0f 0f 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C035 ENCODING 35 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP ff ff ff 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C036 ENCODING 36 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 f0 f0 f0 f0 00 00 00 ENDCHAR STARTCHAR C037 ENCODING 37 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP f0 f0 f0 f0 f0 f0 f0 00 00 00 ENDCHAR STARTCHAR C038 ENCODING 38 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 0f 0f 0f f0 f0 f0 f0 00 00 00 ENDCHAR STARTCHAR C039 ENCODING 39 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP ff ff ff f0 f0 f0 f0 00 00 00 ENDCHAR STARTCHAR C040 ENCODING 40 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 0f 0f 0f 0f 00 00 00 ENDCHAR STARTCHAR C041 ENCODING 41 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP f0 f0 f0 0f 0f 0f 0f 00 00 00 ENDCHAR STARTCHAR C042 ENCODING 42 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 0f 0f 0f 0f 0f 0f 0f 00 00 00 ENDCHAR STARTCHAR C043 ENCODING 43 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP ff ff ff 0f 0f 0f 0f 00 00 00 ENDCHAR STARTCHAR C044 ENCODING 44 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 ff ff ff ff 00 00 00 ENDCHAR STARTCHAR C045 ENCODING 45 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP f0 f0 f0 ff ff ff ff 00 00 00 ENDCHAR STARTCHAR C046 ENCODING 46 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 0f 0f 0f ff ff ff ff 00 00 00 ENDCHAR STARTCHAR C047 ENCODING 47 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP ff ff ff ff ff ff ff 00 00 00 ENDCHAR STARTCHAR C048 ENCODING 48 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 f0 f0 f0 ENDCHAR STARTCHAR C049 ENCODING 49 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP f0 f0 f0 00 00 00 00 f0 f0 f0 ENDCHAR STARTCHAR C050 ENCODING 50 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 0f 0f 0f 00 00 00 00 f0 f0 f0 ENDCHAR STARTCHAR C051 ENCODING 51 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP ff ff ff 00 00 00 00 f0 f0 f0 ENDCHAR STARTCHAR C052 ENCODING 52 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 f0 f0 f0 f0 f0 f0 f0 ENDCHAR STARTCHAR C053 ENCODING 53 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ENDCHAR STARTCHAR C054 ENCODING 54 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 0f 0f 0f f0 f0 f0 f0 f0 f0 f0 ENDCHAR STARTCHAR C055 ENCODING 55 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP ff ff ff f0 f0 f0 f0 f0 f0 f0 ENDCHAR STARTCHAR C056 ENCODING 56 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 0f 0f 0f 0f f0 f0 f0 ENDCHAR STARTCHAR C057 ENCODING 57 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP f0 f0 f0 0f 0f 0f 0f f0 f0 f0 ENDCHAR STARTCHAR C058 ENCODING 58 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 0f 0f 0f 0f 0f 0f 0f f0 f0 f0 ENDCHAR STARTCHAR C059 ENCODING 59 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP ff ff ff 0f 0f 0f 0f f0 f0 f0 ENDCHAR STARTCHAR C060 ENCODING 60 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 ff ff ff ff f0 f0 f0 ENDCHAR STARTCHAR C061 ENCODING 61 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP f0 f0 f0 ff ff ff ff f0 f0 f0 ENDCHAR STARTCHAR C062 ENCODING 62 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 0f 0f 0f ff ff ff ff f0 f0 f0 ENDCHAR STARTCHAR C063 ENCODING 63 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP ff ff ff ff ff ff ff f0 f0 f0 ENDCHAR STARTCHAR C064 ENCODING 64 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 0f 0f 0f ENDCHAR STARTCHAR C065 ENCODING 65 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP f0 f0 f0 00 00 00 00 0f 0f 0f ENDCHAR STARTCHAR C066 ENCODING 66 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 0f 0f 0f 00 00 00 00 0f 0f 0f ENDCHAR STARTCHAR C067 ENCODING 67 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP ff ff ff 00 00 00 00 0f 0f 0f ENDCHAR STARTCHAR C068 ENCODING 68 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 f0 f0 f0 f0 0f 0f 0f ENDCHAR STARTCHAR C069 ENCODING 69 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP f0 f0 f0 f0 f0 f0 f0 0f 0f 0f ENDCHAR STARTCHAR C070 ENCODING 70 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 0f 0f 0f f0 f0 f0 f0 0f 0f 0f ENDCHAR STARTCHAR C071 ENCODING 71 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP ff ff ff f0 f0 f0 f0 0f 0f 0f ENDCHAR STARTCHAR C072 ENCODING 72 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 0f 0f 0f 0f 0f 0f 0f ENDCHAR STARTCHAR C073 ENCODING 73 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP f0 f0 f0 0f 0f 0f 0f 0f 0f 0f ENDCHAR STARTCHAR C074 ENCODING 74 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ENDCHAR STARTCHAR C075 ENCODING 75 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP ff ff ff 0f 0f 0f 0f 0f 0f 0f ENDCHAR STARTCHAR C076 ENCODING 76 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 ff ff ff ff 0f 0f 0f ENDCHAR STARTCHAR C077 ENCODING 77 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP f0 f0 f0 ff ff ff ff 0f 0f 0f ENDCHAR STARTCHAR C078 ENCODING 78 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 0f 0f 0f ff ff ff ff 0f 0f 0f ENDCHAR STARTCHAR C079 ENCODING 79 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP ff ff ff ff ff ff ff 0f 0f 0f ENDCHAR STARTCHAR C080 ENCODING 80 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 ff ff ff ENDCHAR STARTCHAR C081 ENCODING 81 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP f0 f0 f0 00 00 00 00 ff ff ff ENDCHAR STARTCHAR C082 ENCODING 82 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 0f 0f 0f 00 00 00 00 ff ff ff ENDCHAR STARTCHAR C083 ENCODING 83 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP ff ff ff 00 00 00 00 ff ff ff ENDCHAR STARTCHAR C084 ENCODING 84 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 f0 f0 f0 f0 ff ff ff ENDCHAR STARTCHAR C085 ENCODING 85 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP f0 f0 f0 f0 f0 f0 f0 ff ff ff ENDCHAR STARTCHAR C086 ENCODING 86 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 0f 0f 0f f0 f0 f0 f0 ff ff ff ENDCHAR STARTCHAR C087 ENCODING 87 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP ff ff ff f0 f0 f0 f0 ff ff ff ENDCHAR STARTCHAR C088 ENCODING 88 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 0f 0f 0f 0f ff ff ff ENDCHAR STARTCHAR C089 ENCODING 89 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP f0 f0 f0 0f 0f 0f 0f ff ff ff ENDCHAR STARTCHAR C090 ENCODING 90 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 0f 0f 0f 0f 0f 0f 0f ff ff ff ENDCHAR STARTCHAR C091 ENCODING 91 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP ff ff ff 0f 0f 0f 0f ff ff ff ENDCHAR STARTCHAR C092 ENCODING 92 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 ff ff ff ff ff ff ff ENDCHAR STARTCHAR C093 ENCODING 93 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP f0 f0 f0 ff ff ff ff ff ff ff ENDCHAR STARTCHAR C094 ENCODING 94 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 0f 0f 0f ff ff ff ff ff ff ff ENDCHAR STARTCHAR C095 ENCODING 95 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP ff ff ff ff ff ff ff ff ff ff ENDCHAR STARTCHAR C096 ENCODING 96 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 0f 0f 0f ENDCHAR STARTCHAR C097 ENCODING 97 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP f0 f0 f0 00 00 00 00 0f 0f 0f ENDCHAR STARTCHAR C098 ENCODING 98 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 0f 0f 0f 00 00 00 00 0f 0f 0f ENDCHAR STARTCHAR C099 ENCODING 99 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP ff ff ff 00 00 00 00 0f 0f 0f ENDCHAR STARTCHAR C100 ENCODING 100 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 f0 f0 f0 f0 0f 0f 0f ENDCHAR STARTCHAR C101 ENCODING 101 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP f0 f0 f0 f0 f0 f0 f0 0f 0f 0f ENDCHAR STARTCHAR C102 ENCODING 102 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 0f 0f 0f f0 f0 f0 f0 0f 0f 0f ENDCHAR STARTCHAR C103 ENCODING 103 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP ff ff ff f0 f0 f0 f0 0f 0f 0f ENDCHAR STARTCHAR C104 ENCODING 104 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 0f 0f 0f 0f 0f 0f 0f ENDCHAR STARTCHAR C105 ENCODING 105 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP f0 f0 f0 0f 0f 0f 0f 0f 0f 0f ENDCHAR STARTCHAR C106 ENCODING 106 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ENDCHAR STARTCHAR C107 ENCODING 107 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP ff ff ff 0f 0f 0f 0f 0f 0f 0f ENDCHAR STARTCHAR C108 ENCODING 108 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 ff ff ff ff 0f 0f 0f ENDCHAR STARTCHAR C109 ENCODING 109 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP f0 f0 f0 ff ff ff ff 0f 0f 0f ENDCHAR STARTCHAR C110 ENCODING 110 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 0f 0f 0f ff ff ff ff 0f 0f 0f ENDCHAR STARTCHAR C111 ENCODING 111 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP ff ff ff ff ff ff ff 0f 0f 0f ENDCHAR STARTCHAR C112 ENCODING 112 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 ff ff ff ENDCHAR STARTCHAR C113 ENCODING 113 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP f0 f0 f0 00 00 00 00 ff ff ff ENDCHAR STARTCHAR C114 ENCODING 114 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 0f 0f 0f 00 00 00 00 ff ff ff ENDCHAR STARTCHAR C115 ENCODING 115 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP ff ff ff 00 00 00 00 ff ff ff ENDCHAR STARTCHAR C116 ENCODING 116 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 f0 f0 f0 f0 ff ff ff ENDCHAR STARTCHAR C117 ENCODING 117 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP f0 f0 f0 f0 f0 f0 f0 ff ff ff ENDCHAR STARTCHAR C118 ENCODING 118 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 0f 0f 0f f0 f0 f0 f0 ff ff ff ENDCHAR STARTCHAR C119 ENCODING 119 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP ff ff ff f0 f0 f0 f0 ff ff ff ENDCHAR STARTCHAR C120 ENCODING 120 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 0f 0f 0f 0f ff ff ff ENDCHAR STARTCHAR C121 ENCODING 121 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP f0 f0 f0 0f 0f 0f 0f ff ff ff ENDCHAR STARTCHAR C122 ENCODING 122 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 0f 0f 0f 0f 0f 0f 0f ff ff ff ENDCHAR STARTCHAR C123 ENCODING 123 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP ff ff ff 0f 0f 0f 0f ff ff ff ENDCHAR STARTCHAR C124 ENCODING 124 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 ff ff ff ff ff ff ff ENDCHAR STARTCHAR C125 ENCODING 125 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP f0 f0 f0 ff ff ff ff ff ff ff ENDCHAR STARTCHAR C126 ENCODING 126 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 0f 0f 0f ff ff ff ff ff ff ff ENDCHAR STARTCHAR C127 ENCODING 127 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP ff ff ff ff ff ff ff ff ff ff ENDCHAR ENDFONT xtel-3.3.0.orig/fonts/g1s16x20.bdf0100444001424500142340000005655306703332536015315 0ustar ericpersoSTARTFONT 2.1 COMMENT $Id: g1s16x20.bdf,v 1.1 1994/08/30 15:35:05 pierre Exp $ FONT -Lectra-Minitel-Medium-R-Normal--20-200-75-75-C-160-ISO2022-1S SIZE 20 75 75 FONTBOUNDINGBOX 16 20 0 -2 STARTPROPERTIES 19 FONTNAME_REGISTRY "" FOUNDRY "Lectra" FAMILY_NAME "Minitel" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 20 POINT_SIZE 200 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "C" AVERAGE_WIDTH 80 CHARSET_REGISTRY "ISO2022-1S" CHARSET_ENCODING "1" FONT_ASCENT 18 FONT_DESCENT 2 DEFAULT_CHAR 0 COPYRIGHT "Copyright 1991 Lectra-Systemes" ENDPROPERTIES CHARS 128 STARTCHAR C000 ENCODING 0 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C001 ENCODING 1 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C002 ENCODING 2 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C003 ENCODING 3 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C004 ENCODING 4 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C005 ENCODING 5 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C006 ENCODING 6 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C007 ENCODING 7 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C008 ENCODING 8 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C009 ENCODING 9 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C010 ENCODING 10 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C011 ENCODING 11 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C012 ENCODING 12 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C013 ENCODING 13 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C014 ENCODING 14 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C015 ENCODING 15 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C016 ENCODING 16 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C017 ENCODING 17 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C018 ENCODING 18 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C019 ENCODING 19 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C020 ENCODING 20 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C021 ENCODING 21 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C022 ENCODING 22 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C023 ENCODING 23 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C024 ENCODING 24 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C025 ENCODING 25 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C026 ENCODING 26 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C027 ENCODING 27 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C028 ENCODING 28 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C029 ENCODING 29 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C030 ENCODING 30 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C031 ENCODING 31 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C032 ENCODING 32 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C033 ENCODING 33 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F00 3F00 3F00 3F00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C034 ENCODING 34 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 003F 003F 003F 003F 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C035 ENCODING 35 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F3F 3F3F 3F3F 3F3F 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C036 ENCODING 36 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 3F00 3F00 3F00 3F00 3F00 3F00 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C037 ENCODING 37 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F00 3F00 3F00 3F00 0000 0000 3F00 3F00 3F00 3F00 3F00 3F00 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C038 ENCODING 38 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 003F 003F 003F 003F 0000 0000 3F00 3F00 3F00 3F00 3F00 3F00 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C039 ENCODING 39 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F3F 3F3F 3F3F 3F3F 0000 0000 3F00 3F00 3F00 3F00 3F00 3F00 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C040 ENCODING 40 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 003F 003F 003F 003F 003F 003F 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C041 ENCODING 41 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F00 3F00 3F00 3F00 0000 0000 003F 003F 003F 003F 003F 003F 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C042 ENCODING 42 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 003F 003F 003F 003F 0000 0000 003F 003F 003F 003F 003F 003F 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C043 ENCODING 43 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F3F 3F3F 3F3F 3F3F 0000 0000 003F 003F 003F 003F 003F 003F 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C044 ENCODING 44 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 3F3F 3F3F 3F3F 3F3F 3F3F 3F3F 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C045 ENCODING 45 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F00 3F00 3F00 3F00 0000 0000 3F3F 3F3F 3F3F 3F3F 3F3F 3F3F 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C046 ENCODING 46 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 003F 003F 003F 003F 0000 0000 3F3F 3F3F 3F3F 3F3F 3F3F 3F3F 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C047 ENCODING 47 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F3F 3F3F 3F3F 3F3F 0000 0000 3F3F 3F3F 3F3F 3F3F 3F3F 3F3F 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C048 ENCODING 48 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3F00 3F00 3F00 3F00 0000 0000 ENDCHAR STARTCHAR C049 ENCODING 49 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F00 3F00 3F00 3F00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3F00 3F00 3F00 3F00 0000 0000 ENDCHAR STARTCHAR C050 ENCODING 50 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 003F 003F 003F 003F 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3F00 3F00 3F00 3F00 0000 0000 ENDCHAR STARTCHAR C051 ENCODING 51 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F3F 3F3F 3F3F 3F3F 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3F00 3F00 3F00 3F00 0000 0000 ENDCHAR STARTCHAR C052 ENCODING 52 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 3F00 3F00 3F00 3F00 3F00 3F00 0000 0000 3F00 3F00 3F00 3F00 0000 0000 ENDCHAR STARTCHAR C053 ENCODING 53 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F00 3F00 3F00 3F00 0000 0000 3F00 3F00 3F00 3F00 3F00 3F00 0000 0000 3F00 3F00 3F00 3F00 0000 0000 ENDCHAR STARTCHAR C054 ENCODING 54 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 003F 003F 003F 003F 0000 0000 3F00 3F00 3F00 3F00 3F00 3F00 0000 0000 3F00 3F00 3F00 3F00 0000 0000 ENDCHAR STARTCHAR C055 ENCODING 55 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F3F 3F3F 3F3F 3F3F 0000 0000 3F00 3F00 3F00 3F00 3F00 3F00 0000 0000 3F00 3F00 3F00 3F00 0000 0000 ENDCHAR STARTCHAR C056 ENCODING 56 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 003F 003F 003F 003F 003F 003F 0000 0000 3F00 3F00 3F00 3F00 0000 0000 ENDCHAR STARTCHAR C057 ENCODING 57 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F00 3F00 3F00 3F00 0000 0000 003F 003F 003F 003F 003F 003F 0000 0000 3F00 3F00 3F00 3F00 0000 0000 ENDCHAR STARTCHAR C058 ENCODING 58 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 003F 003F 003F 003F 0000 0000 003F 003F 003F 003F 003F 003F 0000 0000 3F00 3F00 3F00 3F00 0000 0000 ENDCHAR STARTCHAR C059 ENCODING 59 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F3F 3F3F 3F3F 3F3F 0000 0000 003F 003F 003F 003F 003F 003F 0000 0000 3F00 3F00 3F00 3F00 0000 0000 ENDCHAR STARTCHAR C060 ENCODING 60 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 3F3F 3F3F 3F3F 3F3F 3F3F 3F3F 0000 0000 3F00 3F00 3F00 3F00 0000 0000 ENDCHAR STARTCHAR C061 ENCODING 61 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F00 3F00 3F00 3F00 0000 0000 3F3F 3F3F 3F3F 3F3F 3F3F 3F3F 0000 0000 3F00 3F00 3F00 3F00 0000 0000 ENDCHAR STARTCHAR C062 ENCODING 62 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 003F 003F 003F 003F 0000 0000 3F3F 3F3F 3F3F 3F3F 3F3F 3F3F 0000 0000 3F00 3F00 3F00 3F00 0000 0000 ENDCHAR STARTCHAR C063 ENCODING 63 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F3F 3F3F 3F3F 3F3F 0000 0000 3F3F 3F3F 3F3F 3F3F 3F3F 3F3F 0000 0000 3F00 3F00 3F00 3F00 0000 0000 ENDCHAR STARTCHAR C064 ENCODING 64 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003F 003F 003F 003F 0000 0000 ENDCHAR STARTCHAR C065 ENCODING 65 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F00 3F00 3F00 3F00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003F 003F 003F 003F 0000 0000 ENDCHAR STARTCHAR C066 ENCODING 66 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 003F 003F 003F 003F 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003F 003F 003F 003F 0000 0000 ENDCHAR STARTCHAR C067 ENCODING 67 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F3F 3F3F 3F3F 3F3F 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003F 003F 003F 003F 0000 0000 ENDCHAR STARTCHAR C068 ENCODING 68 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 3F00 3F00 3F00 3F00 3F00 3F00 0000 0000 003F 003F 003F 003F 0000 0000 ENDCHAR STARTCHAR C069 ENCODING 69 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F00 3F00 3F00 3F00 0000 0000 3F00 3F00 3F00 3F00 3F00 3F00 0000 0000 003F 003F 003F 003F 0000 0000 ENDCHAR STARTCHAR C070 ENCODING 70 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 003F 003F 003F 003F 0000 0000 3F00 3F00 3F00 3F00 3F00 3F00 0000 0000 003F 003F 003F 003F 0000 0000 ENDCHAR STARTCHAR C071 ENCODING 71 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F3F 3F3F 3F3F 3F3F 0000 0000 3F00 3F00 3F00 3F00 3F00 3F00 0000 0000 003F 003F 003F 003F 0000 0000 ENDCHAR STARTCHAR C072 ENCODING 72 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 003F 003F 003F 003F 003F 003F 0000 0000 003F 003F 003F 003F 0000 0000 ENDCHAR STARTCHAR C073 ENCODING 73 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F00 3F00 3F00 3F00 0000 0000 003F 003F 003F 003F 003F 003F 0000 0000 003F 003F 003F 003F 0000 0000 ENDCHAR STARTCHAR C074 ENCODING 74 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 003F 003F 003F 003F 0000 0000 003F 003F 003F 003F 003F 003F 0000 0000 003F 003F 003F 003F 0000 0000 ENDCHAR STARTCHAR C075 ENCODING 75 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F3F 3F3F 3F3F 3F3F 0000 0000 003F 003F 003F 003F 003F 003F 0000 0000 003F 003F 003F 003F 0000 0000 ENDCHAR STARTCHAR C076 ENCODING 76 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 3F3F 3F3F 3F3F 3F3F 3F3F 3F3F 0000 0000 003F 003F 003F 003F 0000 0000 ENDCHAR STARTCHAR C077 ENCODING 77 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F00 3F00 3F00 3F00 0000 0000 3F3F 3F3F 3F3F 3F3F 3F3F 3F3F 0000 0000 003F 003F 003F 003F 0000 0000 ENDCHAR STARTCHAR C078 ENCODING 78 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 003F 003F 003F 003F 0000 0000 3F3F 3F3F 3F3F 3F3F 3F3F 3F3F 0000 0000 003F 003F 003F 003F 0000 0000 ENDCHAR STARTCHAR C079 ENCODING 79 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F3F 3F3F 3F3F 3F3F 0000 0000 3F3F 3F3F 3F3F 3F3F 3F3F 3F3F 0000 0000 003F 003F 003F 003F 0000 0000 ENDCHAR STARTCHAR C080 ENCODING 80 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3F3F 3F3F 3F3F 3F3F 0000 0000 ENDCHAR STARTCHAR C081 ENCODING 81 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F00 3F00 3F00 3F00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3F3F 3F3F 3F3F 3F3F 0000 0000 ENDCHAR STARTCHAR C082 ENCODING 82 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 003F 003F 003F 003F 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3F3F 3F3F 3F3F 3F3F 0000 0000 ENDCHAR STARTCHAR C083 ENCODING 83 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F3F 3F3F 3F3F 3F3F 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3F3F 3F3F 3F3F 3F3F 0000 0000 ENDCHAR STARTCHAR C084 ENCODING 84 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 3F00 3F00 3F00 3F00 3F00 3F00 0000 0000 3F3F 3F3F 3F3F 3F3F 0000 0000 ENDCHAR STARTCHAR C085 ENCODING 85 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F00 3F00 3F00 3F00 0000 0000 3F00 3F00 3F00 3F00 3F00 3F00 0000 0000 3F3F 3F3F 3F3F 3F3F 0000 0000 ENDCHAR STARTCHAR C086 ENCODING 86 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 003F 003F 003F 003F 0000 0000 3F00 3F00 3F00 3F00 3F00 3F00 0000 0000 3F3F 3F3F 3F3F 3F3F 0000 0000 ENDCHAR STARTCHAR C087 ENCODING 87 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F3F 3F3F 3F3F 3F3F 0000 0000 3F00 3F00 3F00 3F00 3F00 3F00 0000 0000 3F3F 3F3F 3F3F 3F3F 0000 0000 ENDCHAR STARTCHAR C088 ENCODING 88 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 003F 003F 003F 003F 003F 003F 0000 0000 3F3F 3F3F 3F3F 3F3F 0000 0000 ENDCHAR STARTCHAR C089 ENCODING 89 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F00 3F00 3F00 3F00 0000 0000 003F 003F 003F 003F 003F 003F 0000 0000 3F3F 3F3F 3F3F 3F3F 0000 0000 ENDCHAR STARTCHAR C090 ENCODING 90 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 003F 003F 003F 003F 0000 0000 003F 003F 003F 003F 003F 003F 0000 0000 3F3F 3F3F 3F3F 3F3F 0000 0000 ENDCHAR STARTCHAR C091 ENCODING 91 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F3F 3F3F 3F3F 3F3F 0000 0000 003F 003F 003F 003F 003F 003F 0000 0000 3F3F 3F3F 3F3F 3F3F 0000 0000 ENDCHAR STARTCHAR C092 ENCODING 92 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 3F3F 3F3F 3F3F 3F3F 3F3F 3F3F 0000 0000 3F3F 3F3F 3F3F 3F3F 0000 0000 ENDCHAR STARTCHAR C093 ENCODING 93 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F00 3F00 3F00 3F00 0000 0000 3F3F 3F3F 3F3F 3F3F 3F3F 3F3F 0000 0000 3F3F 3F3F 3F3F 3F3F 0000 0000 ENDCHAR STARTCHAR C094 ENCODING 94 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 003F 003F 003F 003F 0000 0000 3F3F 3F3F 3F3F 3F3F 3F3F 3F3F 0000 0000 3F3F 3F3F 3F3F 3F3F 0000 0000 ENDCHAR STARTCHAR C095 ENCODING 95 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F3F 3F3F 3F3F 3F3F 0000 0000 3F3F 3F3F 3F3F 3F3F 3F3F 3F3F 0000 0000 3F3F 3F3F 3F3F 3F3F 0000 0000 ENDCHAR STARTCHAR C096 ENCODING 96 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003F 003F 003F 003F 0000 0000 ENDCHAR STARTCHAR C097 ENCODING 97 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F00 3F00 3F00 3F00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003F 003F 003F 003F 0000 0000 ENDCHAR STARTCHAR C098 ENCODING 98 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 003F 003F 003F 003F 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003F 003F 003F 003F 0000 0000 ENDCHAR STARTCHAR C099 ENCODING 99 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F3F 3F3F 3F3F 3F3F 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003F 003F 003F 003F 0000 0000 ENDCHAR STARTCHAR C100 ENCODING 100 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 3F00 3F00 3F00 3F00 3F00 3F00 0000 0000 003F 003F 003F 003F 0000 0000 ENDCHAR STARTCHAR C101 ENCODING 101 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F00 3F00 3F00 3F00 0000 0000 3F00 3F00 3F00 3F00 3F00 3F00 0000 0000 003F 003F 003F 003F 0000 0000 ENDCHAR STARTCHAR C102 ENCODING 102 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 003F 003F 003F 003F 0000 0000 3F00 3F00 3F00 3F00 3F00 3F00 0000 0000 003F 003F 003F 003F 0000 0000 ENDCHAR STARTCHAR C103 ENCODING 103 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F3F 3F3F 3F3F 3F3F 0000 0000 3F00 3F00 3F00 3F00 3F00 3F00 0000 0000 003F 003F 003F 003F 0000 0000 ENDCHAR STARTCHAR C104 ENCODING 104 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 003F 003F 003F 003F 003F 003F 0000 0000 003F 003F 003F 003F 0000 0000 ENDCHAR STARTCHAR C105 ENCODING 105 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F00 3F00 3F00 3F00 0000 0000 003F 003F 003F 003F 003F 003F 0000 0000 003F 003F 003F 003F 0000 0000 ENDCHAR STARTCHAR C106 ENCODING 106 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 003F 003F 003F 003F 0000 0000 003F 003F 003F 003F 003F 003F 0000 0000 003F 003F 003F 003F 0000 0000 ENDCHAR STARTCHAR C107 ENCODING 107 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F3F 3F3F 3F3F 3F3F 0000 0000 003F 003F 003F 003F 003F 003F 0000 0000 003F 003F 003F 003F 0000 0000 ENDCHAR STARTCHAR C108 ENCODING 108 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 3F3F 3F3F 3F3F 3F3F 3F3F 3F3F 0000 0000 003F 003F 003F 003F 0000 0000 ENDCHAR STARTCHAR C109 ENCODING 109 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F00 3F00 3F00 3F00 0000 0000 3F3F 3F3F 3F3F 3F3F 3F3F 3F3F 0000 0000 003F 003F 003F 003F 0000 0000 ENDCHAR STARTCHAR C110 ENCODING 110 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 003F 003F 003F 003F 0000 0000 3F3F 3F3F 3F3F 3F3F 3F3F 3F3F 0000 0000 003F 003F 003F 003F 0000 0000 ENDCHAR STARTCHAR C111 ENCODING 111 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F3F 3F3F 3F3F 3F3F 0000 0000 3F3F 3F3F 3F3F 3F3F 3F3F 3F3F 0000 0000 003F 003F 003F 003F 0000 0000 ENDCHAR STARTCHAR C112 ENCODING 112 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3F3F 3F3F 3F3F 3F3F 0000 0000 ENDCHAR STARTCHAR C113 ENCODING 113 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F00 3F00 3F00 3F00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3F3F 3F3F 3F3F 3F3F 0000 0000 ENDCHAR STARTCHAR C114 ENCODING 114 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 003F 003F 003F 003F 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3F3F 3F3F 3F3F 3F3F 0000 0000 ENDCHAR STARTCHAR C115 ENCODING 115 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F3F 3F3F 3F3F 3F3F 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3F3F 3F3F 3F3F 3F3F 0000 0000 ENDCHAR STARTCHAR C116 ENCODING 116 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 3F00 3F00 3F00 3F00 3F00 3F00 0000 0000 3F3F 3F3F 3F3F 3F3F 0000 0000 ENDCHAR STARTCHAR C117 ENCODING 117 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F00 3F00 3F00 3F00 0000 0000 3F00 3F00 3F00 3F00 3F00 3F00 0000 0000 3F3F 3F3F 3F3F 3F3F 0000 0000 ENDCHAR STARTCHAR C118 ENCODING 118 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 003F 003F 003F 003F 0000 0000 3F00 3F00 3F00 3F00 3F00 3F00 0000 0000 3F3F 3F3F 3F3F 3F3F 0000 0000 ENDCHAR STARTCHAR C119 ENCODING 119 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F3F 3F3F 3F3F 3F3F 0000 0000 3F00 3F00 3F00 3F00 3F00 3F00 0000 0000 3F3F 3F3F 3F3F 3F3F 0000 0000 ENDCHAR STARTCHAR C120 ENCODING 120 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 003F 003F 003F 003F 003F 003F 0000 0000 3F3F 3F3F 3F3F 3F3F 0000 0000 ENDCHAR STARTCHAR C121 ENCODING 121 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F00 3F00 3F00 3F00 0000 0000 003F 003F 003F 003F 003F 003F 0000 0000 3F3F 3F3F 3F3F 3F3F 0000 0000 ENDCHAR STARTCHAR C122 ENCODING 122 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 003F 003F 003F 003F 0000 0000 003F 003F 003F 003F 003F 003F 0000 0000 3F3F 3F3F 3F3F 3F3F 0000 0000 ENDCHAR STARTCHAR C123 ENCODING 123 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F3F 3F3F 3F3F 3F3F 0000 0000 003F 003F 003F 003F 003F 003F 0000 0000 3F3F 3F3F 3F3F 3F3F 0000 0000 ENDCHAR STARTCHAR C124 ENCODING 124 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 3F3F 3F3F 3F3F 3F3F 3F3F 3F3F 0000 0000 3F3F 3F3F 3F3F 3F3F 0000 0000 ENDCHAR STARTCHAR C125 ENCODING 125 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F00 3F00 3F00 3F00 0000 0000 3F3F 3F3F 3F3F 3F3F 3F3F 3F3F 0000 0000 3F3F 3F3F 3F3F 3F3F 0000 0000 ENDCHAR STARTCHAR C126 ENCODING 126 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 003F 003F 003F 003F 0000 0000 3F3F 3F3F 3F3F 3F3F 3F3F 3F3F 0000 0000 3F3F 3F3F 3F3F 3F3F 0000 0000 ENDCHAR STARTCHAR C127 ENCODING 127 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3F3F 3F3F 3F3F 3F3F 0000 0000 3F3F 3F3F 3F3F 3F3F 3F3F 3F3F 0000 0000 3F3F 3F3F 3F3F 3F3F 0000 0000 ENDCHAR ENDFONT xtel-3.3.0.orig/fonts/g1s8x10.bdf0100444001424500142340000003454706703332536015234 0ustar ericpersoSTARTFONT 2.1 COMMENT $Id: g1s8x10.bdf,v 1.1 1994/08/30 15:35:05 pierre Exp $ FONT -Lectra-Minitel-Medium-R-Normal--10-100-75-75-C-80-ISO2022-1S SIZE 10 75 75 FONTBOUNDINGBOX 8 10 0 -2 STARTPROPERTIES 19 FONTNAME_REGISTRY "" FOUNDRY "Lectra" FAMILY_NAME "Minitel" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 10 POINT_SIZE 100 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "C" AVERAGE_WIDTH 80 CHARSET_REGISTRY "ISO2022-1S" CHARSET_ENCODING "1" FONT_ASCENT 8 FONT_DESCENT 2 DEFAULT_CHAR 0 COPYRIGHT "Copyright 1991 Lectra-Systemes" ENDPROPERTIES CHARS 128 STARTCHAR C000 ENCODING 0 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C001 ENCODING 1 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C002 ENCODING 2 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C003 ENCODING 3 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C004 ENCODING 4 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C005 ENCODING 5 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C006 ENCODING 6 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C007 ENCODING 7 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C008 ENCODING 8 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C009 ENCODING 9 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C010 ENCODING 10 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C011 ENCODING 11 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C012 ENCODING 12 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C013 ENCODING 13 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C014 ENCODING 14 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C015 ENCODING 15 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C016 ENCODING 16 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C017 ENCODING 17 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C018 ENCODING 18 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C019 ENCODING 19 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C020 ENCODING 20 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C021 ENCODING 21 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C022 ENCODING 22 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C023 ENCODING 23 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C024 ENCODING 24 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C025 ENCODING 25 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C026 ENCODING 26 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C027 ENCODING 27 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C028 ENCODING 28 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C029 ENCODING 29 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C030 ENCODING 30 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C031 ENCODING 31 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C032 ENCODING 32 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C033 ENCODING 33 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 70 70 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C034 ENCODING 34 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 07 07 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C035 ENCODING 35 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 77 77 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C036 ENCODING 36 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 70 70 70 00 00 00 00 ENDCHAR STARTCHAR C037 ENCODING 37 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 70 70 00 70 70 70 00 00 00 00 ENDCHAR STARTCHAR C038 ENCODING 38 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 07 07 00 70 70 70 00 00 00 00 ENDCHAR STARTCHAR C039 ENCODING 39 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 77 77 00 70 70 70 00 00 00 00 ENDCHAR STARTCHAR C040 ENCODING 40 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 07 07 07 00 00 00 00 ENDCHAR STARTCHAR C041 ENCODING 41 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 70 70 00 07 07 07 00 00 00 00 ENDCHAR STARTCHAR C042 ENCODING 42 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 07 07 00 07 07 07 00 00 00 00 ENDCHAR STARTCHAR C043 ENCODING 43 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 77 77 00 07 07 07 00 00 00 00 ENDCHAR STARTCHAR C044 ENCODING 44 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 77 77 77 00 00 00 00 ENDCHAR STARTCHAR C045 ENCODING 45 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 70 70 00 77 77 77 00 00 00 00 ENDCHAR STARTCHAR C046 ENCODING 46 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 07 07 00 77 77 77 00 00 00 00 ENDCHAR STARTCHAR C047 ENCODING 47 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 77 77 00 77 77 77 00 00 00 00 ENDCHAR STARTCHAR C048 ENCODING 48 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 70 70 00 ENDCHAR STARTCHAR C049 ENCODING 49 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 70 70 00 00 00 00 00 70 70 00 ENDCHAR STARTCHAR C050 ENCODING 50 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 07 07 00 00 00 00 00 70 70 00 ENDCHAR STARTCHAR C051 ENCODING 51 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 77 77 00 00 00 00 00 70 70 00 ENDCHAR STARTCHAR C052 ENCODING 52 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 70 70 70 00 70 70 00 ENDCHAR STARTCHAR C053 ENCODING 53 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 70 70 00 70 70 70 00 70 70 00 ENDCHAR STARTCHAR C054 ENCODING 54 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 07 07 00 70 70 70 00 70 70 00 ENDCHAR STARTCHAR C055 ENCODING 55 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 77 77 00 70 70 70 00 70 70 00 ENDCHAR STARTCHAR C056 ENCODING 56 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 07 07 07 00 70 70 00 ENDCHAR STARTCHAR C057 ENCODING 57 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 70 70 00 07 07 07 00 70 70 00 ENDCHAR STARTCHAR C058 ENCODING 58 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 07 07 00 07 07 07 00 70 70 00 ENDCHAR STARTCHAR C059 ENCODING 59 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 77 77 00 07 07 07 00 70 70 00 ENDCHAR STARTCHAR C060 ENCODING 60 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 77 77 77 00 70 70 00 ENDCHAR STARTCHAR C061 ENCODING 61 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 70 70 00 77 77 77 00 70 70 00 ENDCHAR STARTCHAR C062 ENCODING 62 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 07 07 00 77 77 77 00 70 70 00 ENDCHAR STARTCHAR C063 ENCODING 63 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 77 77 00 77 77 77 00 70 70 00 ENDCHAR STARTCHAR C064 ENCODING 64 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 07 07 00 ENDCHAR STARTCHAR C065 ENCODING 65 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 70 70 00 00 00 00 00 07 07 00 ENDCHAR STARTCHAR C066 ENCODING 66 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 07 07 00 00 00 00 00 07 07 00 ENDCHAR STARTCHAR C067 ENCODING 67 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 77 77 00 00 00 00 00 07 07 00 ENDCHAR STARTCHAR C068 ENCODING 68 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 70 70 70 00 07 07 00 ENDCHAR STARTCHAR C069 ENCODING 69 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 70 70 00 70 70 70 00 07 07 00 ENDCHAR STARTCHAR C070 ENCODING 70 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 07 07 00 70 70 70 00 07 07 00 ENDCHAR STARTCHAR C071 ENCODING 71 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 77 77 00 70 70 70 00 07 07 00 ENDCHAR STARTCHAR C072 ENCODING 72 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 07 07 07 00 07 07 00 ENDCHAR STARTCHAR C073 ENCODING 73 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 70 70 00 07 07 07 00 07 07 00 ENDCHAR STARTCHAR C074 ENCODING 74 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 07 07 00 07 07 07 00 07 07 00 ENDCHAR STARTCHAR C075 ENCODING 75 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 77 77 00 07 07 07 00 07 07 00 ENDCHAR STARTCHAR C076 ENCODING 76 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 77 77 77 00 07 07 00 ENDCHAR STARTCHAR C077 ENCODING 77 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 70 70 00 77 77 77 00 07 07 00 ENDCHAR STARTCHAR C078 ENCODING 78 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 07 07 00 77 77 77 00 07 07 00 ENDCHAR STARTCHAR C079 ENCODING 79 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 77 77 00 77 77 77 00 07 07 00 ENDCHAR STARTCHAR C080 ENCODING 80 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 77 77 00 ENDCHAR STARTCHAR C081 ENCODING 81 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 70 70 00 00 00 00 00 77 77 00 ENDCHAR STARTCHAR C082 ENCODING 82 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 07 07 00 00 00 00 00 77 77 00 ENDCHAR STARTCHAR C083 ENCODING 83 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 77 77 00 00 00 00 00 77 77 00 ENDCHAR STARTCHAR C084 ENCODING 84 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 70 70 70 00 77 77 00 ENDCHAR STARTCHAR C085 ENCODING 85 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 70 70 00 70 70 70 00 77 77 00 ENDCHAR STARTCHAR C086 ENCODING 86 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 07 07 00 70 70 70 00 77 77 00 ENDCHAR STARTCHAR C087 ENCODING 87 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 77 77 00 70 70 70 00 77 77 00 ENDCHAR STARTCHAR C088 ENCODING 88 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 07 07 07 00 77 77 00 ENDCHAR STARTCHAR C089 ENCODING 89 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 70 70 00 07 07 07 00 77 77 00 ENDCHAR STARTCHAR C090 ENCODING 90 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 07 07 00 07 07 07 00 77 77 00 ENDCHAR STARTCHAR C091 ENCODING 91 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 77 77 00 07 07 07 00 77 77 00 ENDCHAR STARTCHAR C092 ENCODING 92 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 77 77 77 00 77 77 00 ENDCHAR STARTCHAR C093 ENCODING 93 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 70 70 00 77 77 77 00 77 77 00 ENDCHAR STARTCHAR C094 ENCODING 94 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 07 07 00 77 77 77 00 77 77 00 ENDCHAR STARTCHAR C095 ENCODING 95 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 77 77 00 77 77 77 00 77 77 00 ENDCHAR STARTCHAR C096 ENCODING 96 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 07 07 00 ENDCHAR STARTCHAR C097 ENCODING 97 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 70 70 00 00 00 00 00 07 07 00 ENDCHAR STARTCHAR C098 ENCODING 98 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 07 07 00 00 00 00 00 07 07 00 ENDCHAR STARTCHAR C099 ENCODING 99 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 77 77 00 00 00 00 00 07 07 00 ENDCHAR STARTCHAR C100 ENCODING 100 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 70 70 70 00 07 07 00 ENDCHAR STARTCHAR C101 ENCODING 101 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 70 70 00 70 70 70 00 07 07 00 ENDCHAR STARTCHAR C102 ENCODING 102 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 07 07 00 70 70 70 00 07 07 00 ENDCHAR STARTCHAR C103 ENCODING 103 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 77 77 00 70 70 70 00 07 07 00 ENDCHAR STARTCHAR C104 ENCODING 104 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 07 07 07 00 07 07 00 ENDCHAR STARTCHAR C105 ENCODING 105 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 70 70 00 07 07 07 00 07 07 00 ENDCHAR STARTCHAR C106 ENCODING 106 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 07 07 00 07 07 07 00 07 07 00 ENDCHAR STARTCHAR C107 ENCODING 107 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 77 77 00 07 07 07 00 07 07 00 ENDCHAR STARTCHAR C108 ENCODING 108 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 77 77 77 00 07 07 00 ENDCHAR STARTCHAR C109 ENCODING 109 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 70 70 00 77 77 77 00 07 07 00 ENDCHAR STARTCHAR C110 ENCODING 110 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 07 07 00 77 77 77 00 07 07 00 ENDCHAR STARTCHAR C111 ENCODING 111 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 77 77 00 77 77 77 00 07 07 00 ENDCHAR STARTCHAR C112 ENCODING 112 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 77 77 00 ENDCHAR STARTCHAR C113 ENCODING 113 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 70 70 00 00 00 00 00 77 77 00 ENDCHAR STARTCHAR C114 ENCODING 114 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 07 07 00 00 00 00 00 77 77 00 ENDCHAR STARTCHAR C115 ENCODING 115 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 77 77 00 00 00 00 00 77 77 00 ENDCHAR STARTCHAR C116 ENCODING 116 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 70 70 70 00 77 77 00 ENDCHAR STARTCHAR C117 ENCODING 117 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 70 70 00 70 70 70 00 77 77 00 ENDCHAR STARTCHAR C118 ENCODING 118 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 07 07 00 70 70 70 00 77 77 00 ENDCHAR STARTCHAR C119 ENCODING 119 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 77 77 00 70 70 70 00 77 77 00 ENDCHAR STARTCHAR C120 ENCODING 120 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 07 07 07 00 77 77 00 ENDCHAR STARTCHAR C121 ENCODING 121 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 70 70 00 07 07 07 00 77 77 00 ENDCHAR STARTCHAR C122 ENCODING 122 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 07 07 00 07 07 07 00 77 77 00 ENDCHAR STARTCHAR C123 ENCODING 123 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 77 77 00 07 07 07 00 77 77 00 ENDCHAR STARTCHAR C124 ENCODING 124 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 77 77 77 00 77 77 00 ENDCHAR STARTCHAR C125 ENCODING 125 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 70 70 00 77 77 77 00 77 77 00 ENDCHAR STARTCHAR C126 ENCODING 126 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 07 07 00 77 77 77 00 77 77 00 ENDCHAR STARTCHAR C127 ENCODING 127 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 77 77 00 77 77 77 00 77 77 00 ENDCHAR ENDFONT xtel-3.3.0.orig/fonts/g216x10.bdf0100444001424500142340000000626406703332537015125 0ustar ericpersoSTARTFONT 2.1 COMMENT $Id: g216x10.bdf,v 1.1 1994/08/30 15:35:05 pierre Exp $ FONT -Lectra-Minitel-Medium-R-Normal--10-100-75-75-C-160-ISO2022-2 SIZE 10 75 75 FONTBOUNDINGBOX 16 10 0 -2 STARTPROPERTIES 19 FONTNAME_REGISTRY "" FOUNDRY "Lectra" FAMILY_NAME "Minitel" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 10 POINT_SIZE 100 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "C" AVERAGE_WIDTH 80 CHARSET_REGISTRY "ISO2022-2" CHARSET_ENCODING "1" FONT_ASCENT 8 FONT_DESCENT 2 DEFAULT_CHAR 0 COPYRIGHT "Copyright 1991 Lectra-Systemes" ENDPROPERTIES CHARS 20 STARTCHAR C035 ENCODING 35 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0F00 30F0 3030 0C00 0C00 3F00 0C0C CC30 3FC0 ENDCHAR STARTCHAR C036 ENCODING 36 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 00C0 03FC 0CC0 03F0 00CC 0FF0 00C0 0000 0000 ENDCHAR STARTCHAR C038 ENCODING 38 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0C30 0C30 3FFC 0C30 0C30 3FFC 0C30 0C30 0000 0000 ENDCHAR STARTCHAR C044 ENCODING 44 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 0C00 3C00 FFFF 3C00 0C00 0000 0000 ENDCHAR STARTCHAR C045 ENCODING 45 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 00C0 03F0 0FFC 00C0 00C0 00C0 00C0 00C0 00C0 ENDCHAR STARTCHAR C046 ENCODING 46 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 0030 003C FFFF 003C 0030 0000 0000 ENDCHAR STARTCHAR C047 ENCODING 47 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 00C0 00C0 00C0 00C0 00C0 00C0 0FFC 03F0 00C0 ENDCHAR STARTCHAR C048 ENCODING 48 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 3C00 C300 C300 3C00 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C049 ENCODING 49 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0C00 0C00 FFC0 0C00 0C00 FFC0 0000 0000 ENDCHAR STARTCHAR C056 ENCODING 56 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 00C0 0000 3FFF 0000 00C0 0000 0000 0000 ENDCHAR STARTCHAR C060 ENCODING 60 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0300 F303 F30F 333F 3333 333F 3303 3303 0300 ENDCHAR STARTCHAR C061 ENCODING 61 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0300 F33F F303 3303 333F 3330 3330 333F 0300 ENDCHAR STARTCHAR C062 ENCODING 62 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 00C0 FCC3 0CCF 30F3 C0FF 30C3 0CC3 FCC3 00C0 ENDCHAR STARTCHAR C065 ENCODING 65 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0F00 03C0 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C066 ENCODING 66 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 003C 00F0 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C067 ENCODING 67 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 03F0 0F3C 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C072 ENCODING 72 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0F3C 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C075 ENCODING 75 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 03C0 0FC0 ENDCHAR STARTCHAR C106 ENCODING 106 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0FFF 30C0 C0C0 C0FC C0C0 30C0 0FFF 0000 0000 ENDCHAR STARTCHAR C122 ENCODING 122 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 3F3F C0C3 C0FF C0C0 3F3F 0000 0000 ENDCHAR ENDFONT xtel-3.3.0.orig/fonts/g216x20.bdf0100444001424500142340000001021706703332537015117 0ustar ericpersoSTARTFONT 2.1 COMMENT $Id: g216x20.bdf,v 1.1 1994/08/30 15:35:05 pierre Exp $ FONT -Lectra-Minitel-Medium-R-Normal--20-200-75-75-C-160-ISO2022-2 SIZE 20 75 75 FONTBOUNDINGBOX 16 20 0 -2 STARTPROPERTIES 19 FONTNAME_REGISTRY "" FOUNDRY "Lectra" FAMILY_NAME "Minitel" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 20 POINT_SIZE 200 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "C" AVERAGE_WIDTH 80 CHARSET_REGISTRY "ISO2022-2" CHARSET_ENCODING "1" FONT_ASCENT 18 FONT_DESCENT 2 DEFAULT_CHAR 0 COPYRIGHT "Copyright 1991 Lectra-Systemes" ENDPROPERTIES CHARS 20 STARTCHAR C035 ENCODING 35 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0F00 0F00 30F0 30F0 3030 3030 0C00 0C00 0C00 0C00 3F00 3F00 0C0C 0C0C CC30 CC30 3FC0 3FC0 ENDCHAR STARTCHAR C036 ENCODING 36 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 00C0 00C0 03FC 03FC 0CC0 0CC0 03F0 03F0 00CC 00CC 0FF0 0FF0 00C0 00C0 0000 0000 0000 0000 ENDCHAR STARTCHAR C038 ENCODING 38 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0C30 0C30 0C30 0C30 3FFC 3FFC 0C30 0C30 0C30 0C30 3FFC 3FFC 0C30 0C30 0C30 0C30 0000 0000 0000 0000 ENDCHAR STARTCHAR C044 ENCODING 44 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0C00 0C00 3C00 3C00 FFFF FFFF 3C00 3C00 0C00 0C00 0000 0000 0000 0000 ENDCHAR STARTCHAR C045 ENCODING 45 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 00C0 00C0 03F0 03F0 0FFC 0FFC 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 ENDCHAR STARTCHAR C046 ENCODING 46 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0030 0030 003C 003C FFFF FFFF 003C 003C 0030 0030 0000 0000 0000 0000 ENDCHAR STARTCHAR C047 ENCODING 47 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 0FFC 0FFC 03F0 03F0 00C0 00C0 ENDCHAR STARTCHAR C048 ENCODING 48 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3C00 3C00 C300 C300 C300 C300 3C00 3C00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C049 ENCODING 49 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0C00 0C00 0C00 0C00 FFC0 FFC0 0C00 0C00 0C00 0C00 FFC0 FFC0 0000 0000 0000 0000 ENDCHAR STARTCHAR C056 ENCODING 56 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 00C0 00C0 0000 0000 3FFF 3FFF 0000 0000 00C0 00C0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C060 ENCODING 60 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0300 0300 F303 F303 F30F F30F 333F 333F 3333 3333 333F 333F 3303 3303 3303 3303 0300 0300 ENDCHAR STARTCHAR C061 ENCODING 61 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0300 0300 F33F F33F F303 F303 3303 3303 333F 333F 3330 3330 3330 3330 333F 333F 0300 0300 ENDCHAR STARTCHAR C062 ENCODING 62 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 00C0 00C0 FCC3 FCC3 0CCF 0CCF 30F3 30F3 C0FF C0FF 30C3 30C3 0CC3 0CC3 FCC3 FCC3 00C0 00C0 ENDCHAR STARTCHAR C065 ENCODING 65 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0F00 0F00 03C0 03C0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C066 ENCODING 66 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 003C 003C 00F0 00F0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C067 ENCODING 67 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 03F0 03F0 0F3C 0F3C 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C072 ENCODING 72 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0F3C 0F3C 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C075 ENCODING 75 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 03C0 03C0 0FC0 0FC0 ENDCHAR STARTCHAR C106 ENCODING 106 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0FFF 0FFF 30C0 30C0 C0C0 C0C0 C0FC C0FC C0C0 C0C0 30C0 30C0 0FFF 0FFF 0000 0000 0000 0000 ENDCHAR STARTCHAR C122 ENCODING 122 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 3F3F 3F3F C0C3 C0C3 C0FF C0FF C0C0 C0C0 3F3F 3F3F 0000 0000 0000 0000 ENDCHAR ENDFONT xtel-3.3.0.orig/fonts/g216x40.bdf0100444001424500142340000001413706703332537015126 0ustar ericpersoSTARTFONT 2.1 COMMENT $Id: g216x40.bdf,v 1.1 1994/08/30 15:35:05 pierre Exp $ FONT -Lectra-Minitel-Medium-R-Normal--40-400-75-75-C-160-ISO2022-2 SIZE 40 75 75 FONTBOUNDINGBOX 16 40 0 -2 STARTPROPERTIES 19 FONTNAME_REGISTRY "" FOUNDRY "Lectra" FAMILY_NAME "Minitel" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 40 POINT_SIZE 400 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "C" AVERAGE_WIDTH 80 CHARSET_REGISTRY "ISO2022-2" CHARSET_ENCODING "1" FONT_ASCENT 38 FONT_DESCENT 2 DEFAULT_CHAR 0 COPYRIGHT "Copyright 1991 Lectra-Systemes" ENDPROPERTIES CHARS 20 STARTCHAR C035 ENCODING 35 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0F00 0F00 0F00 0F00 30F0 30F0 30F0 30F0 3030 3030 3030 3030 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 3F00 3F00 3F00 3F00 0C0C 0C0C 0C0C 0C0C CC30 CC30 CC30 CC30 3FC0 3FC0 3FC0 3FC0 ENDCHAR STARTCHAR C036 ENCODING 36 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 00C0 00C0 00C0 00C0 03FC 03FC 03FC 03FC 0CC0 0CC0 0CC0 0CC0 03F0 03F0 03F0 03F0 00CC 00CC 00CC 00CC 0FF0 0FF0 0FF0 0FF0 00C0 00C0 00C0 00C0 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C038 ENCODING 38 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0C30 0C30 0C30 0C30 0C30 0C30 0C30 0C30 3FFC 3FFC 3FFC 3FFC 0C30 0C30 0C30 0C30 0C30 0C30 0C30 0C30 3FFC 3FFC 3FFC 3FFC 0C30 0C30 0C30 0C30 0C30 0C30 0C30 0C30 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C044 ENCODING 44 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0C00 0C00 0C00 0C00 3C00 3C00 3C00 3C00 FFFF FFFF FFFF FFFF 3C00 3C00 3C00 3C00 0C00 0C00 0C00 0C00 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C045 ENCODING 45 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 00C0 00C0 00C0 00C0 03F0 03F0 03F0 03F0 0FFC 0FFC 0FFC 0FFC 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 ENDCHAR STARTCHAR C046 ENCODING 46 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0030 0030 0030 0030 003C 003C 003C 003C FFFF FFFF FFFF FFFF 003C 003C 003C 003C 0030 0030 0030 0030 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C047 ENCODING 47 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 0FFC 0FFC 0FFC 0FFC 03F0 03F0 03F0 03F0 00C0 00C0 00C0 00C0 ENDCHAR STARTCHAR C048 ENCODING 48 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 3C00 3C00 3C00 3C00 C300 C300 C300 C300 C300 C300 C300 C300 3C00 3C00 3C00 3C00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C049 ENCODING 49 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 FFC0 FFC0 FFC0 FFC0 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 FFC0 FFC0 FFC0 FFC0 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C056 ENCODING 56 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 00C0 00C0 00C0 00C0 0000 0000 0000 0000 3FFF 3FFF 3FFF 3FFF 0000 0000 0000 0000 00C0 00C0 00C0 00C0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C060 ENCODING 60 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0300 0300 0300 0300 F303 F303 F303 F303 F30F F30F F30F F30F 333F 333F 333F 333F 3333 3333 3333 3333 333F 333F 333F 333F 3303 3303 3303 3303 3303 3303 3303 3303 0300 0300 0300 0300 ENDCHAR STARTCHAR C061 ENCODING 61 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0300 0300 0300 0300 F33F F33F F33F F33F F303 F303 F303 F303 3303 3303 3303 3303 333F 333F 333F 333F 3330 3330 3330 3330 3330 3330 3330 3330 333F 333F 333F 333F 0300 0300 0300 0300 ENDCHAR STARTCHAR C062 ENCODING 62 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 00C0 00C0 00C0 00C0 FCC3 FCC3 FCC3 FCC3 0CCF 0CCF 0CCF 0CCF 30F3 30F3 30F3 30F3 C0FF C0FF C0FF C0FF 30C3 30C3 30C3 30C3 0CC3 0CC3 0CC3 0CC3 FCC3 FCC3 FCC3 FCC3 00C0 00C0 00C0 00C0 ENDCHAR STARTCHAR C065 ENCODING 65 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0F00 0F00 0F00 0F00 03C0 03C0 03C0 03C0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C066 ENCODING 66 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 003C 003C 003C 003C 00F0 00F0 00F0 00F0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C067 ENCODING 67 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 03F0 03F0 03F0 03F0 0F3C 0F3C 0F3C 0F3C 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C072 ENCODING 72 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0F3C 0F3C 0F3C 0F3C 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C075 ENCODING 75 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 03C0 03C0 03C0 03C0 0FC0 0FC0 0FC0 0FC0 ENDCHAR STARTCHAR C106 ENCODING 106 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0FFF 0FFF 0FFF 0FFF 30C0 30C0 30C0 30C0 C0C0 C0C0 C0C0 C0C0 C0FC C0FC C0FC C0FC C0C0 C0C0 C0C0 C0C0 30C0 30C0 30C0 30C0 0FFF 0FFF 0FFF 0FFF 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C122 ENCODING 122 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3F3F 3F3F 3F3F 3F3F C0C3 C0C3 C0C3 C0C3 C0FF C0FF C0FF C0FF C0C0 C0C0 C0C0 C0C0 3F3F 3F3F 3F3F 3F3F 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR ENDFONT xtel-3.3.0.orig/fonts/g232x20.bdf0100444001424500142340000001331706703332537015121 0ustar ericpersoSTARTFONT 2.1 COMMENT $Id: g232x20.bdf,v 1.1 1994/08/30 15:35:05 pierre Exp $ FONT -Lectra-Minitel-Medium-R-Normal--20-200-75-75-C-320-ISO2022-2 SIZE 20 75 75 FONTBOUNDINGBOX 32 20 0 -2 STARTPROPERTIES 19 FONTNAME_REGISTRY "" FOUNDRY "Lectra" FAMILY_NAME "Minitel" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 20 POINT_SIZE 200 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "C" AVERAGE_WIDTH 80 CHARSET_REGISTRY "ISO2022-2" CHARSET_ENCODING "1" FONT_ASCENT 18 FONT_DESCENT 2 DEFAULT_CHAR 0 COPYRIGHT "Copyright 1991 Lectra-Systemes" ENDPROPERTIES CHARS 20 STARTCHAR C035 ENCODING 35 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00FF0000 00FF0000 0F00FF00 0F00FF00 0F000F00 0F000F00 00F00000 00F00000 00F00000 00F00000 0FFF0000 0FFF0000 00F000F0 00F000F0 F0F00F00 F0F00F00 0FFFF000 0FFFF000 ENDCHAR STARTCHAR C036 ENCODING 36 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0000F000 0000F000 000FFFF0 000FFFF0 00F0F000 00F0F000 000FFF00 000FFF00 0000F0F0 0000F0F0 00FFFF00 00FFFF00 0000F000 0000F000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C038 ENCODING 38 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00F00F00 00F00F00 00F00F00 00F00F00 0FFFFFF0 0FFFFFF0 00F00F00 00F00F00 00F00F00 00F00F00 0FFFFFF0 0FFFFFF0 00F00F00 00F00F00 00F00F00 00F00F00 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C044 ENCODING 44 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00F00000 00F00000 0FF00000 0FF00000 FFFFFFFF FFFFFFFF 0FF00000 0FF00000 00F00000 00F00000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C045 ENCODING 45 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0000F000 0000F000 000FFF00 000FFF00 00FFFFF0 00FFFFF0 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 ENDCHAR STARTCHAR C046 ENCODING 46 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000F00 00000F00 00000FF0 00000FF0 FFFFFFFF FFFFFFFF 00000FF0 00000FF0 00000F00 00000F00 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C047 ENCODING 47 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 00FFFFF0 00FFFFF0 000FFF00 000FFF00 0000F000 0000F000 ENDCHAR STARTCHAR C048 ENCODING 48 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 0FF00000 0FF00000 F00F0000 F00F0000 F00F0000 F00F0000 0FF00000 0FF00000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C049 ENCODING 49 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00F00000 00F00000 00F00000 00F00000 FFFFF000 FFFFF000 00F00000 00F00000 00F00000 00F00000 FFFFF000 FFFFF000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C056 ENCODING 56 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 0000F000 0000F000 00000000 00000000 0FFFFFFF 0FFFFFFF 00000000 00000000 0000F000 0000F000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C060 ENCODING 60 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 000F0000 000F0000 FF0F000F FF0F000F FF0F00FF FF0F00FF 0F0F0FFF 0F0F0FFF 0F0F0F0F 0F0F0F0F 0F0F0FFF 0F0F0FFF 0F0F000F 0F0F000F 0F0F000F 0F0F000F 000F0000 000F0000 ENDCHAR STARTCHAR C061 ENCODING 61 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 000F0000 000F0000 FF0F0FFF FF0F0FFF FF0F000F FF0F000F 0F0F000F 0F0F000F 0F0F0FFF 0F0F0FFF 0F0F0F00 0F0F0F00 0F0F0F00 0F0F0F00 0F0F0FFF 0F0F0FFF 000F0000 000F0000 ENDCHAR STARTCHAR C062 ENCODING 62 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0000F000 0000F000 FFF0F00F FFF0F00F 00F0F0FF 00F0F0FF 0F00FF0F 0F00FF0F F000FFFF F000FFFF 0F00F00F 0F00F00F 00F0F00F 00F0F00F FFF0F00F FFF0F00F 0000F000 0000F000 ENDCHAR STARTCHAR C065 ENCODING 65 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00FF0000 00FF0000 000FF000 000FF000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C066 ENCODING 66 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000FF0 00000FF0 0000FF00 0000FF00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C067 ENCODING 67 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 000FFF00 000FFF00 00FF0FF0 00FF0FF0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C072 ENCODING 72 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00FF0FF0 00FF0FF0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C075 ENCODING 75 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 000FF000 000FF000 00FFF000 00FFF000 ENDCHAR STARTCHAR C106 ENCODING 106 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00FFFFFF 00FFFFFF 0F00F000 0F00F000 F000F000 F000F000 F000FFF0 F000FFF0 F000F000 F000F000 0F00F000 0F00F000 00FFFFFF 00FFFFFF 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C122 ENCODING 122 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 0FFF0FFF 0FFF0FFF F000F00F F000F00F F000FFFF F000FFFF F000F000 F000F000 0FFF0FFF 0FFF0FFF 00000000 00000000 00000000 00000000 ENDCHAR ENDFONT xtel-3.3.0.orig/fonts/g232x40.bdf0100444001424500142340000002233706703332537015125 0ustar ericpersoSTARTFONT 2.1 COMMENT $Id: g232x40.bdf,v 1.1 1994/08/30 15:35:05 pierre Exp $ FONT -Lectra-Minitel-Medium-R-Normal--40-400-75-75-C-320-ISO2022-2 SIZE 40 75 75 FONTBOUNDINGBOX 32 40 0 -2 STARTPROPERTIES 19 FONTNAME_REGISTRY "" FOUNDRY "Lectra" FAMILY_NAME "Minitel" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 40 POINT_SIZE 400 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "C" AVERAGE_WIDTH 80 CHARSET_REGISTRY "ISO2022-2" CHARSET_ENCODING "1" FONT_ASCENT 38 FONT_DESCENT 2 DEFAULT_CHAR 0 COPYRIGHT "Copyright 1991 Lectra-Systemes" ENDPROPERTIES CHARS 20 STARTCHAR C035 ENCODING 35 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00FF0000 00FF0000 00FF0000 00FF0000 0F00FF00 0F00FF00 0F00FF00 0F00FF00 0F000F00 0F000F00 0F000F00 0F000F00 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 0FFF0000 0FFF0000 0FFF0000 0FFF0000 00F000F0 00F000F0 00F000F0 00F000F0 F0F00F00 F0F00F00 F0F00F00 F0F00F00 0FFFF000 0FFFF000 0FFFF000 0FFFF000 ENDCHAR STARTCHAR C036 ENCODING 36 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0000F000 0000F000 0000F000 0000F000 000FFFF0 000FFFF0 000FFFF0 000FFFF0 00F0F000 00F0F000 00F0F000 00F0F000 000FFF00 000FFF00 000FFF00 000FFF00 0000F0F0 0000F0F0 0000F0F0 0000F0F0 00FFFF00 00FFFF00 00FFFF00 00FFFF00 0000F000 0000F000 0000F000 0000F000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C038 ENCODING 38 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00F00F00 00F00F00 00F00F00 00F00F00 00F00F00 00F00F00 00F00F00 00F00F00 0FFFFFF0 0FFFFFF0 0FFFFFF0 0FFFFFF0 00F00F00 00F00F00 00F00F00 00F00F00 00F00F00 00F00F00 00F00F00 00F00F00 0FFFFFF0 0FFFFFF0 0FFFFFF0 0FFFFFF0 00F00F00 00F00F00 00F00F00 00F00F00 00F00F00 00F00F00 00F00F00 00F00F00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C044 ENCODING 44 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00F00000 00F00000 00F00000 00F00000 0FF00000 0FF00000 0FF00000 0FF00000 FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 0FF00000 0FF00000 0FF00000 0FF00000 00F00000 00F00000 00F00000 00F00000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C045 ENCODING 45 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0000F000 0000F000 0000F000 0000F000 000FFF00 000FFF00 000FFF00 000FFF00 00FFFFF0 00FFFFF0 00FFFFF0 00FFFFF0 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 ENDCHAR STARTCHAR C046 ENCODING 46 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000F00 00000F00 00000F00 00000F00 00000FF0 00000FF0 00000FF0 00000FF0 FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000FF0 00000FF0 00000FF0 00000FF0 00000F00 00000F00 00000F00 00000F00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C047 ENCODING 47 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 00FFFFF0 00FFFFF0 00FFFFF0 00FFFFF0 000FFF00 000FFF00 000FFF00 000FFF00 0000F000 0000F000 0000F000 0000F000 ENDCHAR STARTCHAR C048 ENCODING 48 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 0FF00000 0FF00000 0FF00000 0FF00000 F00F0000 F00F0000 F00F0000 F00F0000 F00F0000 F00F0000 F00F0000 F00F0000 0FF00000 0FF00000 0FF00000 0FF00000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C049 ENCODING 49 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 FFFFF000 FFFFF000 FFFFF000 FFFFF000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 FFFFF000 FFFFF000 FFFFF000 FFFFF000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C056 ENCODING 56 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000F000 0000F000 0000F000 0000F000 00000000 00000000 00000000 00000000 0FFFFFFF 0FFFFFFF 0FFFFFFF 0FFFFFFF 00000000 00000000 00000000 00000000 0000F000 0000F000 0000F000 0000F000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C060 ENCODING 60 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 000F0000 000F0000 000F0000 000F0000 FF0F000F FF0F000F FF0F000F FF0F000F FF0F00FF FF0F00FF FF0F00FF FF0F00FF 0F0F0FFF 0F0F0FFF 0F0F0FFF 0F0F0FFF 0F0F0F0F 0F0F0F0F 0F0F0F0F 0F0F0F0F 0F0F0FFF 0F0F0FFF 0F0F0FFF 0F0F0FFF 0F0F000F 0F0F000F 0F0F000F 0F0F000F 0F0F000F 0F0F000F 0F0F000F 0F0F000F 000F0000 000F0000 000F0000 000F0000 ENDCHAR STARTCHAR C061 ENCODING 61 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 000F0000 000F0000 000F0000 000F0000 FF0F0FFF FF0F0FFF FF0F0FFF FF0F0FFF FF0F000F FF0F000F FF0F000F FF0F000F 0F0F000F 0F0F000F 0F0F000F 0F0F000F 0F0F0FFF 0F0F0FFF 0F0F0FFF 0F0F0FFF 0F0F0F00 0F0F0F00 0F0F0F00 0F0F0F00 0F0F0F00 0F0F0F00 0F0F0F00 0F0F0F00 0F0F0FFF 0F0F0FFF 0F0F0FFF 0F0F0FFF 000F0000 000F0000 000F0000 000F0000 ENDCHAR STARTCHAR C062 ENCODING 62 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0000F000 0000F000 0000F000 0000F000 FFF0F00F FFF0F00F FFF0F00F FFF0F00F 00F0F0FF 00F0F0FF 00F0F0FF 00F0F0FF 0F00FF0F 0F00FF0F 0F00FF0F 0F00FF0F F000FFFF F000FFFF F000FFFF F000FFFF 0F00F00F 0F00F00F 0F00F00F 0F00F00F 00F0F00F 00F0F00F 00F0F00F 00F0F00F FFF0F00F FFF0F00F FFF0F00F FFF0F00F 0000F000 0000F000 0000F000 0000F000 ENDCHAR STARTCHAR C065 ENCODING 65 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00FF0000 00FF0000 00FF0000 00FF0000 000FF000 000FF000 000FF000 000FF000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C066 ENCODING 66 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000FF0 00000FF0 00000FF0 00000FF0 0000FF00 0000FF00 0000FF00 0000FF00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C067 ENCODING 67 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 000FFF00 000FFF00 000FFF00 000FFF00 00FF0FF0 00FF0FF0 00FF0FF0 00FF0FF0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C072 ENCODING 72 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00FF0FF0 00FF0FF0 00FF0FF0 00FF0FF0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C075 ENCODING 75 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 000FF000 000FF000 000FF000 000FF000 00FFF000 00FFF000 00FFF000 00FFF000 ENDCHAR STARTCHAR C106 ENCODING 106 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00FFFFFF 00FFFFFF 00FFFFFF 00FFFFFF 0F00F000 0F00F000 0F00F000 0F00F000 F000F000 F000F000 F000F000 F000F000 F000FFF0 F000FFF0 F000FFF0 F000FFF0 F000F000 F000F000 F000F000 F000F000 0F00F000 0F00F000 0F00F000 0F00F000 00FFFFFF 00FFFFFF 00FFFFFF 00FFFFFF 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR STARTCHAR C122 ENCODING 122 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0FFF0FFF 0FFF0FFF 0FFF0FFF 0FFF0FFF F000F00F F000F00F F000F00F F000F00F F000FFFF F000FFFF F000FFFF F000FFFF F000F000 F000F000 F000F000 F000F000 0FFF0FFF 0FFF0FFF 0FFF0FFF 0FFF0FFF 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ENDCHAR ENDFONT xtel-3.3.0.orig/fonts/g28x10.bdf0100444001424500142340000000535206703332537015043 0ustar ericpersoSTARTFONT 2.1 COMMENT $Id: g28x10.bdf,v 1.1 1994/08/30 15:35:05 pierre Exp $ FONT -Lectra-Minitel-Medium-R-Normal--10-100-75-75-C-80-ISO2022-2 SIZE 10 75 75 FONTBOUNDINGBOX 8 10 0 -2 STARTPROPERTIES 19 FONTNAME_REGISTRY "" FOUNDRY "Lectra" FAMILY_NAME "Minitel" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 10 POINT_SIZE 100 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "C" AVERAGE_WIDTH 80 CHARSET_REGISTRY "ISO2022-2" CHARSET_ENCODING "1" FONT_ASCENT 8 FONT_DESCENT 2 DEFAULT_CHAR 0 COPYRIGHT "Copyright 1991 Lectra-Systemes" ENDPROPERTIES CHARS 20 STARTCHAR C035 ENCODING 35 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 30 4C 44 20 20 70 22 A4 78 ENDCHAR STARTCHAR C036 ENCODING 36 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 08 1E 28 1C 0A 3C 08 00 00 ENDCHAR STARTCHAR C038 ENCODING 38 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 24 24 7E 24 24 7E 24 24 00 00 ENDCHAR STARTCHAR C044 ENCODING 44 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 20 60 FF 60 20 00 00 ENDCHAR STARTCHAR C045 ENCODING 45 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 08 1C 3E 08 08 08 08 08 08 ENDCHAR STARTCHAR C046 ENCODING 46 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 04 06 FF 06 04 00 00 ENDCHAR STARTCHAR C047 ENCODING 47 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 08 08 08 08 08 08 3E 1C 08 ENDCHAR STARTCHAR C048 ENCODING 48 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 60 90 90 60 00 00 00 00 00 00 ENDCHAR STARTCHAR C049 ENCODING 49 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 20 20 F8 20 20 F8 00 00 ENDCHAR STARTCHAR C056 ENCODING 56 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 08 00 7F 00 08 00 00 00 ENDCHAR STARTCHAR C060 ENCODING 60 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 10 D1 D3 57 55 57 51 51 10 ENDCHAR STARTCHAR C061 ENCODING 61 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 10 D7 D1 51 57 54 54 57 10 ENDCHAR STARTCHAR C062 ENCODING 62 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 08 E9 2B 4D 8F 49 29 E9 08 ENDCHAR STARTCHAR C065 ENCODING 65 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 30 18 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C066 ENCODING 66 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 06 0C 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C067 ENCODING 67 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 1C 36 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C072 ENCODING 72 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 36 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C075 ENCODING 75 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 18 38 ENDCHAR STARTCHAR C106 ENCODING 106 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 3F 48 88 8E 88 48 3F 00 00 ENDCHAR STARTCHAR C122 ENCODING 122 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 77 89 8F 88 77 00 00 ENDCHAR ENDFONT xtel-3.3.0.orig/fonts/g28x20.bdf0100444001424500142340000000650406703332537015044 0ustar ericpersoSTARTFONT 2.1 COMMENT $Id: g28x20.bdf,v 1.1 1994/08/30 15:35:05 pierre Exp $ FONT -Lectra-Minitel-Medium-R-Normal--20-200-75-75-C-80-ISO2022-2 SIZE 20 75 75 FONTBOUNDINGBOX 8 20 0 -2 STARTPROPERTIES 19 FONTNAME_REGISTRY "" FOUNDRY "Lectra" FAMILY_NAME "Minitel" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 20 POINT_SIZE 200 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "C" AVERAGE_WIDTH 80 CHARSET_REGISTRY "ISO2022-2" CHARSET_ENCODING "1" FONT_ASCENT 18 FONT_DESCENT 2 DEFAULT_CHAR 0 COPYRIGHT "Copyright 1991 Lectra-Systemes" ENDPROPERTIES CHARS 20 STARTCHAR C035 ENCODING 35 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 30 30 4C 4C 44 44 20 20 20 20 70 70 22 22 A4 A4 78 78 ENDCHAR STARTCHAR C036 ENCODING 36 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 08 08 1E 1E 28 28 1C 1C 0A 0A 3C 3C 08 08 00 00 00 00 ENDCHAR STARTCHAR C038 ENCODING 38 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 24 24 24 24 7E 7E 24 24 24 24 7E 7E 24 24 24 24 00 00 00 00 ENDCHAR STARTCHAR C044 ENCODING 44 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 20 20 60 60 FF FF 60 60 20 20 00 00 00 00 ENDCHAR STARTCHAR C045 ENCODING 45 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 08 08 1C 1C 3E 3E 08 08 08 08 08 08 08 08 08 08 08 08 ENDCHAR STARTCHAR C046 ENCODING 46 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 04 04 06 06 FF FF 06 06 04 04 00 00 00 00 ENDCHAR STARTCHAR C047 ENCODING 47 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 08 08 08 08 08 08 08 08 08 08 08 08 3E 3E 1C 1C 08 08 ENDCHAR STARTCHAR C048 ENCODING 48 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 60 60 90 90 90 90 60 60 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C049 ENCODING 49 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 20 20 20 20 F8 F8 20 20 20 20 F8 F8 00 00 00 00 ENDCHAR STARTCHAR C056 ENCODING 56 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 08 08 00 00 7F 7F 00 00 08 08 00 00 00 00 00 00 ENDCHAR STARTCHAR C060 ENCODING 60 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 10 10 D1 D1 D3 D3 57 57 55 55 57 57 51 51 51 51 10 10 ENDCHAR STARTCHAR C061 ENCODING 61 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 10 10 D7 D7 D1 D1 51 51 57 57 54 54 54 54 57 57 10 10 ENDCHAR STARTCHAR C062 ENCODING 62 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 08 08 E9 E9 2B 2B 4D 4D 8F 8F 49 49 29 29 E9 E9 08 08 ENDCHAR STARTCHAR C065 ENCODING 65 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 30 30 18 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C066 ENCODING 66 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 06 06 0C 0C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C067 ENCODING 67 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 1C 1C 36 36 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C072 ENCODING 72 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 36 36 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR C075 ENCODING 75 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 18 18 38 38 ENDCHAR STARTCHAR C106 ENCODING 106 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 3F 3F 48 48 88 88 8E 8E 88 88 48 48 3F 3F 00 00 00 00 ENDCHAR STARTCHAR C122 ENCODING 122 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 77 77 89 89 8F 8F 88 88 77 77 00 00 00 00 ENDCHAR ENDFONT xtel-3.3.0.orig/fonts/g2s16x10.bdf0100444001424500142340000000626706703332537015313 0ustar ericpersoSTARTFONT 2.1 COMMENT $Id: g2s16x10.bdf,v 1.1 1994/08/30 15:35:05 pierre Exp $ FONT -Lectra-Minitel-Medium-R-Normal--10-100-75-75-C-160-ISO2022-2S SIZE 10 75 75 FONTBOUNDINGBOX 16 10 0 -2 STARTPROPERTIES 19 FONTNAME_REGISTRY "" FOUNDRY "Lectra" FAMILY_NAME "Minitel" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 10 POINT_SIZE 100 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "C" AVERAGE_WIDTH 80 CHARSET_REGISTRY "ISO2022-2S" CHARSET_ENCODING "1" FONT_ASCENT 8 FONT_DESCENT 2 DEFAULT_CHAR 0 COPYRIGHT "Copyright 1991 Lectra-Systemes" ENDPROPERTIES CHARS 20 STARTCHAR C035 ENCODING 35 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0F00 30F0 3030 0C00 0C00 3F00 0C0C CC30 FFFF ENDCHAR STARTCHAR C036 ENCODING 36 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 00C0 03FC 0CC0 03F0 00CC 0FF0 00C0 0000 FFFF ENDCHAR STARTCHAR C038 ENCODING 38 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0C30 0C30 3FFC 0C30 0C30 3FFC 0C30 0C30 0000 FFFF ENDCHAR STARTCHAR C044 ENCODING 44 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 0C00 3C00 FFFF 3C00 0C00 0000 FFFF ENDCHAR STARTCHAR C045 ENCODING 45 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 00C0 03F0 0FFC 00C0 00C0 00C0 00C0 00C0 FFFF ENDCHAR STARTCHAR C046 ENCODING 46 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 0030 003C FFFF 003C 0030 0000 FFFF ENDCHAR STARTCHAR C047 ENCODING 47 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 00C0 00C0 00C0 00C0 00C0 00C0 0FFC 03F0 FFFF ENDCHAR STARTCHAR C048 ENCODING 48 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 3C00 C300 C300 3C00 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C049 ENCODING 49 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0C00 0C00 FFC0 0C00 0C00 FFC0 0000 FFFF ENDCHAR STARTCHAR C056 ENCODING 56 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 00C0 0000 3FFF 0000 00C0 0000 0000 FFFF ENDCHAR STARTCHAR C060 ENCODING 60 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0300 F303 F30F 333F 3333 333F 3303 3303 FFFF ENDCHAR STARTCHAR C061 ENCODING 61 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0300 F33F F303 3303 333F 3330 3330 333F FFFF ENDCHAR STARTCHAR C062 ENCODING 62 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 00C0 FCC3 0CCF 30F3 C0FF 30C3 0CC3 FCC3 FFFF ENDCHAR STARTCHAR C065 ENCODING 65 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0F00 03C0 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C066 ENCODING 66 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 003C 00F0 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C067 ENCODING 67 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 03F0 0F3C 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C072 ENCODING 72 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0F3C 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C075 ENCODING 75 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 03C0 FFFF ENDCHAR STARTCHAR C106 ENCODING 106 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0FFF 30C0 C0C0 C0FC C0C0 30C0 0FFF 0000 FFFF ENDCHAR STARTCHAR C122 ENCODING 122 SWIDTH 666 0 DWIDTH 16 0 BBX 16 10 0 -2 BITMAP 0000 0000 0000 3F3F C0C3 C0FF C0C0 3F3F 0000 FFFF ENDCHAR ENDFONT xtel-3.3.0.orig/fonts/g2s16x20.bdf0100444001424500142340000001025306703332537015302 0ustar ericpersoSTARTFONT 2.1 COMMENT $Id: g2s16x20.bdf,v 1.1 1994/08/30 15:35:05 pierre Exp $ FONT -Lectra-Minitel-Medium-R-Normal--20-200-75-75-C-160-ISO2022-2S SIZE 20 75 75 FONTBOUNDINGBOX 16 20 0 -2 STARTPROPERTIES 19 FONTNAME_REGISTRY "" FOUNDRY "Lectra" FAMILY_NAME "Minitel" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 20 POINT_SIZE 200 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "C" AVERAGE_WIDTH 80 CHARSET_REGISTRY "ISO2022-2S" CHARSET_ENCODING "1" FONT_ASCENT 18 FONT_DESCENT 2 DEFAULT_CHAR 0 COPYRIGHT "Copyright 1991 Lectra-Systemes" ENDPROPERTIES CHARS 20 STARTCHAR C035 ENCODING 35 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0F00 0F00 30F0 30F0 3030 3030 0C00 0C00 0C00 0C00 3F00 3F00 0C0C 0C0C CC30 CC30 3FC0 FFFF ENDCHAR STARTCHAR C036 ENCODING 36 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 00C0 00C0 03FC 03FC 0CC0 0CC0 03F0 03F0 00CC 00CC 0FF0 0FF0 00C0 00C0 0000 0000 0000 FFFF ENDCHAR STARTCHAR C038 ENCODING 38 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0C30 0C30 0C30 0C30 3FFC 3FFC 0C30 0C30 0C30 0C30 3FFC 3FFC 0C30 0C30 0C30 0C30 0000 0000 0000 FFFF ENDCHAR STARTCHAR C044 ENCODING 44 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0C00 0C00 3C00 3C00 FFFF FFFF 3C00 3C00 0C00 0C00 0000 0000 0000 FFFF ENDCHAR STARTCHAR C045 ENCODING 45 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 00C0 00C0 03F0 03F0 0FFC 0FFC 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 FFFF ENDCHAR STARTCHAR C046 ENCODING 46 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0030 0030 003C 003C FFFF FFFF 003C 003C 0030 0030 0000 0000 0000 FFFF ENDCHAR STARTCHAR C047 ENCODING 47 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 0FFC 0FFC 03F0 03F0 00C0 FFFF ENDCHAR STARTCHAR C048 ENCODING 48 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 3C00 3C00 C300 C300 C300 C300 3C00 3C00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C049 ENCODING 49 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0C00 0C00 0C00 0C00 FFC0 FFC0 0C00 0C00 0C00 0C00 FFC0 FFC0 0000 0000 0000 FFFF ENDCHAR STARTCHAR C056 ENCODING 56 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 00C0 00C0 0000 0000 3FFF 3FFF 0000 0000 00C0 00C0 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C060 ENCODING 60 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0300 0300 F303 F303 F30F F30F 333F 333F 3333 3333 333F 333F 3303 3303 3303 3303 0300 FFFF ENDCHAR STARTCHAR C061 ENCODING 61 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0300 0300 F33F F33F F303 F303 3303 3303 333F 333F 3330 3330 3330 3330 333F 333F 0300 FFFF ENDCHAR STARTCHAR C062 ENCODING 62 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 00C0 00C0 FCC3 FCC3 0CCF 0CCF 30F3 30F3 C0FF C0FF 30C3 30C3 0CC3 0CC3 FCC3 FCC3 00C0 FFFF ENDCHAR STARTCHAR C065 ENCODING 65 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0F00 0F00 03C0 03C0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C066 ENCODING 66 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 003C 003C 00F0 00F0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C067 ENCODING 67 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 03F0 03F0 0F3C 0F3C 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C072 ENCODING 72 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0F3C 0F3C 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C075 ENCODING 75 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 03C0 03C0 0FC0 FFFF ENDCHAR STARTCHAR C106 ENCODING 106 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0FFF 0FFF 30C0 30C0 C0C0 C0C0 C0FC C0FC C0C0 C0C0 30C0 30C0 0FFF 0FFF 0000 0000 0000 FFFF ENDCHAR STARTCHAR C122 ENCODING 122 SWIDTH 666 0 DWIDTH 16 0 BBX 16 20 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 3F3F 3F3F C0C3 C0C3 C0FF C0FF C0C0 C0C0 3F3F 3F3F 0000 0000 0000 FFFF ENDCHAR ENDFONT xtel-3.3.0.orig/fonts/g2s16x40.bdf0100444001424500142340000001421506703332537015306 0ustar ericpersoSTARTFONT 2.1 COMMENT $Id: g2s16x40.bdf,v 1.1 1994/08/30 15:35:05 pierre Exp $ FONT -Lectra-Minitel-Medium-R-Normal--40-400-75-75-C-160-ISO2022-2S SIZE 40 75 75 FONTBOUNDINGBOX 16 40 0 -2 STARTPROPERTIES 19 FONTNAME_REGISTRY "" FOUNDRY "Lectra" FAMILY_NAME "Minitel" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 40 POINT_SIZE 400 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "C" AVERAGE_WIDTH 80 CHARSET_REGISTRY "ISO2022-2S" CHARSET_ENCODING "1" FONT_ASCENT 38 FONT_DESCENT 2 DEFAULT_CHAR 0 COPYRIGHT "Copyright 1991 Lectra-Systemes" ENDPROPERTIES CHARS 20 STARTCHAR C035 ENCODING 35 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0F00 0F00 0F00 0F00 30F0 30F0 30F0 30F0 3030 3030 3030 3030 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 3F00 3F00 3F00 3F00 0C0C 0C0C 0C0C 0C0C CC30 CC30 CC30 CC30 3FC0 3FC0 3FC0 FFFF ENDCHAR STARTCHAR C036 ENCODING 36 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 00C0 00C0 00C0 00C0 03FC 03FC 03FC 03FC 0CC0 0CC0 0CC0 0CC0 03F0 03F0 03F0 03F0 00CC 00CC 00CC 00CC 0FF0 0FF0 0FF0 0FF0 00C0 00C0 00C0 00C0 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C038 ENCODING 38 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0C30 0C30 0C30 0C30 0C30 0C30 0C30 0C30 3FFC 3FFC 3FFC 3FFC 0C30 0C30 0C30 0C30 0C30 0C30 0C30 0C30 3FFC 3FFC 3FFC 3FFC 0C30 0C30 0C30 0C30 0C30 0C30 0C30 0C30 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C044 ENCODING 44 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0C00 0C00 0C00 0C00 3C00 3C00 3C00 3C00 FFFF FFFF FFFF FFFF 3C00 3C00 3C00 3C00 0C00 0C00 0C00 0C00 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C045 ENCODING 45 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 00C0 00C0 00C0 00C0 03F0 03F0 03F0 03F0 0FFC 0FFC 0FFC 0FFC 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 FFFF ENDCHAR STARTCHAR C046 ENCODING 46 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0030 0030 0030 0030 003C 003C 003C 003C FFFF FFFF FFFF FFFF 003C 003C 003C 003C 0030 0030 0030 0030 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C047 ENCODING 47 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0 0FFC 0FFC 0FFC 0FFC 03F0 03F0 03F0 03F0 00C0 00C0 00C0 FFFF ENDCHAR STARTCHAR C048 ENCODING 48 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 3C00 3C00 3C00 3C00 C300 C300 C300 C300 C300 C300 C300 C300 3C00 3C00 3C00 3C00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C049 ENCODING 49 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 FFC0 FFC0 FFC0 FFC0 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 FFC0 FFC0 FFC0 FFC0 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C056 ENCODING 56 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 00C0 00C0 00C0 00C0 0000 0000 0000 0000 3FFF 3FFF 3FFF 3FFF 0000 0000 0000 0000 00C0 00C0 00C0 00C0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C060 ENCODING 60 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0300 0300 0300 0300 F303 F303 F303 F303 F30F F30F F30F F30F 333F 333F 333F 333F 3333 3333 3333 3333 333F 333F 333F 333F 3303 3303 3303 3303 3303 3303 3303 3303 0300 0300 0300 FFFF ENDCHAR STARTCHAR C061 ENCODING 61 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0300 0300 0300 0300 F33F F33F F33F F33F F303 F303 F303 F303 3303 3303 3303 3303 333F 333F 333F 333F 3330 3330 3330 3330 3330 3330 3330 3330 333F 333F 333F 333F 0300 0300 0300 FFFF ENDCHAR STARTCHAR C062 ENCODING 62 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 00C0 00C0 00C0 00C0 FCC3 FCC3 FCC3 FCC3 0CCF 0CCF 0CCF 0CCF 30F3 30F3 30F3 30F3 C0FF C0FF C0FF C0FF 30C3 30C3 30C3 30C3 0CC3 0CC3 0CC3 0CC3 FCC3 FCC3 FCC3 FCC3 00C0 00C0 00C0 FFFF ENDCHAR STARTCHAR C065 ENCODING 65 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0F00 0F00 0F00 0F00 03C0 03C0 03C0 03C0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C066 ENCODING 66 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 003C 003C 003C 003C 00F0 00F0 00F0 00F0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C067 ENCODING 67 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 03F0 03F0 03F0 03F0 0F3C 0F3C 0F3C 0F3C 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C072 ENCODING 72 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0F3C 0F3C 0F3C 0F3C 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C075 ENCODING 75 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 03C0 03C0 03C0 03C0 0FC0 0FC0 0FC0 FFFF ENDCHAR STARTCHAR C106 ENCODING 106 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0FFF 0FFF 0FFF 0FFF 30C0 30C0 30C0 30C0 C0C0 C0C0 C0C0 C0C0 C0FC C0FC C0FC C0FC C0C0 C0C0 C0C0 C0C0 30C0 30C0 30C0 30C0 0FFF 0FFF 0FFF 0FFF 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR STARTCHAR C122 ENCODING 122 SWIDTH 666 0 DWIDTH 16 0 BBX 16 40 0 -2 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3F3F 3F3F 3F3F 3F3F C0C3 C0C3 C0C3 C0C3 C0FF C0FF C0FF C0FF C0C0 C0C0 C0C0 C0C0 3F3F 3F3F 3F3F 3F3F 0000 0000 0000 0000 0000 0000 0000 FFFF ENDCHAR ENDFONT xtel-3.3.0.orig/fonts/g2s32x20.bdf0100444001424500142340000001335406703332537015305 0ustar ericpersoSTARTFONT 2.1 COMMENT $Id: g2s32x20.bdf,v 1.1 1994/08/30 15:35:05 pierre Exp $ FONT -Lectra-Minitel-Medium-R-Normal--20-200-75-75-C-320-ISO2022-2S SIZE 20 75 75 FONTBOUNDINGBOX 32 20 0 -2 STARTPROPERTIES 19 FONTNAME_REGISTRY "" FOUNDRY "Lectra" FAMILY_NAME "Minitel" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 20 POINT_SIZE 200 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "C" AVERAGE_WIDTH 80 CHARSET_REGISTRY "ISO2022-2S" CHARSET_ENCODING "1" FONT_ASCENT 18 FONT_DESCENT 2 DEFAULT_CHAR 0 COPYRIGHT "Copyright 1991 Lectra-Systemes" ENDPROPERTIES CHARS 20 STARTCHAR C035 ENCODING 35 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00FF0000 00FF0000 0F00FF00 0F00FF00 0F000F00 0F000F00 00F00000 00F00000 00F00000 00F00000 0FFF0000 0FFF0000 00F000F0 00F000F0 F0F00F00 F0F00F00 0FFFF000 FFFFFFFF ENDCHAR STARTCHAR C036 ENCODING 36 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0000F000 0000F000 000FFFF0 000FFFF0 00F0F000 00F0F000 000FFF00 000FFF00 0000F0F0 0000F0F0 00FFFF00 00FFFF00 0000F000 0000F000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C038 ENCODING 38 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00F00F00 00F00F00 00F00F00 00F00F00 0FFFFFF0 0FFFFFF0 00F00F00 00F00F00 00F00F00 00F00F00 0FFFFFF0 0FFFFFF0 00F00F00 00F00F00 00F00F00 00F00F00 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C044 ENCODING 44 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00F00000 00F00000 0FF00000 0FF00000 FFFFFFFF FFFFFFFF 0FF00000 0FF00000 00F00000 00F00000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C045 ENCODING 45 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0000F000 0000F000 000FFF00 000FFF00 00FFFFF0 00FFFFF0 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 FFFFFFFF ENDCHAR STARTCHAR C046 ENCODING 46 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000F00 00000F00 00000FF0 00000FF0 FFFFFFFF FFFFFFFF 00000FF0 00000FF0 00000F00 00000F00 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C047 ENCODING 47 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 00FFFFF0 00FFFFF0 000FFF00 000FFF00 0000F000 FFFFFFFF ENDCHAR STARTCHAR C048 ENCODING 48 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 0FF00000 0FF00000 F00F0000 F00F0000 F00F0000 F00F0000 0FF00000 0FF00000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C049 ENCODING 49 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00F00000 00F00000 00F00000 00F00000 FFFFF000 FFFFF000 00F00000 00F00000 00F00000 00F00000 FFFFF000 FFFFF000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C056 ENCODING 56 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 0000F000 0000F000 00000000 00000000 0FFFFFFF 0FFFFFFF 00000000 00000000 0000F000 0000F000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C060 ENCODING 60 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 000F0000 000F0000 FF0F000F FF0F000F FF0F00FF FF0F00FF 0F0F0FFF 0F0F0FFF 0F0F0F0F 0F0F0F0F 0F0F0FFF 0F0F0FFF 0F0F000F 0F0F000F 0F0F000F 0F0F000F 000F0000 FFFFFFFF ENDCHAR STARTCHAR C061 ENCODING 61 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 000F0000 000F0000 FF0F0FFF FF0F0FFF FF0F000F FF0F000F 0F0F000F 0F0F000F 0F0F0FFF 0F0F0FFF 0F0F0F00 0F0F0F00 0F0F0F00 0F0F0F00 0F0F0FFF 0F0F0FFF 000F0000 FFFFFFFF ENDCHAR STARTCHAR C062 ENCODING 62 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 0000F000 0000F000 FFF0F00F FFF0F00F 00F0F0FF 00F0F0FF 0F00FF0F 0F00FF0F F000FFFF F000FFFF 0F00F00F 0F00F00F 00F0F00F 00F0F00F FFF0F00F FFF0F00F 0000F000 FFFFFFFF ENDCHAR STARTCHAR C065 ENCODING 65 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00FF0000 00FF0000 000FF000 000FF000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C066 ENCODING 66 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000FF0 00000FF0 0000FF00 0000FF00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C067 ENCODING 67 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 000FFF00 000FFF00 00FF0FF0 00FF0FF0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C072 ENCODING 72 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00FF0FF0 00FF0FF0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C075 ENCODING 75 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 000FF000 000FF000 00FFF000 FFFFFFFF ENDCHAR STARTCHAR C106 ENCODING 106 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00FFFFFF 00FFFFFF 0F00F000 0F00F000 F000F000 F000F000 F000FFF0 F000FFF0 F000F000 F000F000 0F00F000 0F00F000 00FFFFFF 00FFFFFF 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C122 ENCODING 122 SWIDTH 666 0 DWIDTH 32 0 BBX 32 20 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 0FFF0FFF 0FFF0FFF F000F00F F000F00F F000FFFF F000FFFF F000F000 F000F000 0FFF0FFF 0FFF0FFF 00000000 00000000 00000000 FFFFFFFF ENDCHAR ENDFONT xtel-3.3.0.orig/fonts/g2s32x40.bdf0100444001424500142340000002241506703332537015305 0ustar ericpersoSTARTFONT 2.1 COMMENT $Id: g2s32x40.bdf,v 1.1 1994/08/30 15:35:05 pierre Exp $ FONT -Lectra-Minitel-Medium-R-Normal--40-400-75-75-C-320-ISO2022-2S SIZE 40 75 75 FONTBOUNDINGBOX 32 40 0 -2 STARTPROPERTIES 19 FONTNAME_REGISTRY "" FOUNDRY "Lectra" FAMILY_NAME "Minitel" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 40 POINT_SIZE 400 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "C" AVERAGE_WIDTH 80 CHARSET_REGISTRY "ISO2022-2S" CHARSET_ENCODING "1" FONT_ASCENT 38 FONT_DESCENT 2 DEFAULT_CHAR 0 COPYRIGHT "Copyright 1991 Lectra-Systemes" ENDPROPERTIES CHARS 20 STARTCHAR C035 ENCODING 35 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00FF0000 00FF0000 00FF0000 00FF0000 0F00FF00 0F00FF00 0F00FF00 0F00FF00 0F000F00 0F000F00 0F000F00 0F000F00 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 0FFF0000 0FFF0000 0FFF0000 0FFF0000 00F000F0 00F000F0 00F000F0 00F000F0 F0F00F00 F0F00F00 F0F00F00 F0F00F00 0FFFF000 0FFFF000 0FFFF000 FFFFFFFF ENDCHAR STARTCHAR C036 ENCODING 36 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0000F000 0000F000 0000F000 0000F000 000FFFF0 000FFFF0 000FFFF0 000FFFF0 00F0F000 00F0F000 00F0F000 00F0F000 000FFF00 000FFF00 000FFF00 000FFF00 0000F0F0 0000F0F0 0000F0F0 0000F0F0 00FFFF00 00FFFF00 00FFFF00 00FFFF00 0000F000 0000F000 0000F000 0000F000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C038 ENCODING 38 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00F00F00 00F00F00 00F00F00 00F00F00 00F00F00 00F00F00 00F00F00 00F00F00 0FFFFFF0 0FFFFFF0 0FFFFFF0 0FFFFFF0 00F00F00 00F00F00 00F00F00 00F00F00 00F00F00 00F00F00 00F00F00 00F00F00 0FFFFFF0 0FFFFFF0 0FFFFFF0 0FFFFFF0 00F00F00 00F00F00 00F00F00 00F00F00 00F00F00 00F00F00 00F00F00 00F00F00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C044 ENCODING 44 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00F00000 00F00000 00F00000 00F00000 0FF00000 0FF00000 0FF00000 0FF00000 FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 0FF00000 0FF00000 0FF00000 0FF00000 00F00000 00F00000 00F00000 00F00000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C045 ENCODING 45 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0000F000 0000F000 0000F000 0000F000 000FFF00 000FFF00 000FFF00 000FFF00 00FFFFF0 00FFFFF0 00FFFFF0 00FFFFF0 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 FFFFFFFF ENDCHAR STARTCHAR C046 ENCODING 46 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000F00 00000F00 00000F00 00000F00 00000FF0 00000FF0 00000FF0 00000FF0 FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000FF0 00000FF0 00000FF0 00000FF0 00000F00 00000F00 00000F00 00000F00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C047 ENCODING 47 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 0000F000 00FFFFF0 00FFFFF0 00FFFFF0 00FFFFF0 000FFF00 000FFF00 000FFF00 000FFF00 0000F000 0000F000 0000F000 FFFFFFFF ENDCHAR STARTCHAR C048 ENCODING 48 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 0FF00000 0FF00000 0FF00000 0FF00000 F00F0000 F00F0000 F00F0000 F00F0000 F00F0000 F00F0000 F00F0000 F00F0000 0FF00000 0FF00000 0FF00000 0FF00000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C049 ENCODING 49 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 FFFFF000 FFFFF000 FFFFF000 FFFFF000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 00F00000 FFFFF000 FFFFF000 FFFFF000 FFFFF000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C056 ENCODING 56 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000F000 0000F000 0000F000 0000F000 00000000 00000000 00000000 00000000 0FFFFFFF 0FFFFFFF 0FFFFFFF 0FFFFFFF 00000000 00000000 00000000 00000000 0000F000 0000F000 0000F000 0000F000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C060 ENCODING 60 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 000F0000 000F0000 000F0000 000F0000 FF0F000F FF0F000F FF0F000F FF0F000F FF0F00FF FF0F00FF FF0F00FF FF0F00FF 0F0F0FFF 0F0F0FFF 0F0F0FFF 0F0F0FFF 0F0F0F0F 0F0F0F0F 0F0F0F0F 0F0F0F0F 0F0F0FFF 0F0F0FFF 0F0F0FFF 0F0F0FFF 0F0F000F 0F0F000F 0F0F000F 0F0F000F 0F0F000F 0F0F000F 0F0F000F 0F0F000F 000F0000 000F0000 000F0000 FFFFFFFF ENDCHAR STARTCHAR C061 ENCODING 61 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 000F0000 000F0000 000F0000 000F0000 FF0F0FFF FF0F0FFF FF0F0FFF FF0F0FFF FF0F000F FF0F000F FF0F000F FF0F000F 0F0F000F 0F0F000F 0F0F000F 0F0F000F 0F0F0FFF 0F0F0FFF 0F0F0FFF 0F0F0FFF 0F0F0F00 0F0F0F00 0F0F0F00 0F0F0F00 0F0F0F00 0F0F0F00 0F0F0F00 0F0F0F00 0F0F0FFF 0F0F0FFF 0F0F0FFF 0F0F0FFF 000F0000 000F0000 000F0000 FFFFFFFF ENDCHAR STARTCHAR C062 ENCODING 62 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 0000F000 0000F000 0000F000 0000F000 FFF0F00F FFF0F00F FFF0F00F FFF0F00F 00F0F0FF 00F0F0FF 00F0F0FF 00F0F0FF 0F00FF0F 0F00FF0F 0F00FF0F 0F00FF0F F000FFFF F000FFFF F000FFFF F000FFFF 0F00F00F 0F00F00F 0F00F00F 0F00F00F 00F0F00F 00F0F00F 00F0F00F 00F0F00F FFF0F00F FFF0F00F FFF0F00F FFF0F00F 0000F000 0000F000 0000F000 FFFFFFFF ENDCHAR STARTCHAR C065 ENCODING 65 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00FF0000 00FF0000 00FF0000 00FF0000 000FF000 000FF000 000FF000 000FF000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C066 ENCODING 66 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000FF0 00000FF0 00000FF0 00000FF0 0000FF00 0000FF00 0000FF00 0000FF00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C067 ENCODING 67 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 000FFF00 000FFF00 000FFF00 000FFF00 00FF0FF0 00FF0FF0 00FF0FF0 00FF0FF0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C072 ENCODING 72 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00FF0FF0 00FF0FF0 00FF0FF0 00FF0FF0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C075 ENCODING 75 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 000FF000 000FF000 000FF000 000FF000 00FFF000 00FFF000 00FFF000 FFFFFFFF ENDCHAR STARTCHAR C106 ENCODING 106 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00FFFFFF 00FFFFFF 00FFFFFF 00FFFFFF 0F00F000 0F00F000 0F00F000 0F00F000 F000F000 F000F000 F000F000 F000F000 F000FFF0 F000FFF0 F000FFF0 F000FFF0 F000F000 F000F000 F000F000 F000F000 0F00F000 0F00F000 0F00F000 0F00F000 00FFFFFF 00FFFFFF 00FFFFFF 00FFFFFF 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR STARTCHAR C122 ENCODING 122 SWIDTH 666 0 DWIDTH 32 0 BBX 32 40 0 -2 BITMAP 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0FFF0FFF 0FFF0FFF 0FFF0FFF 0FFF0FFF F000F00F F000F00F F000F00F F000F00F F000FFFF F000FFFF F000FFFF F000FFFF F000F000 F000F000 F000F000 F000F000 0FFF0FFF 0FFF0FFF 0FFF0FFF 0FFF0FFF 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF ENDCHAR ENDFONT xtel-3.3.0.orig/fonts/g2s8x10.bdf0100444001424500142340000000537306703332537015231 0ustar ericpersoSTARTFONT 2.1 COMMENT $Id: g2s8x10.bdf,v 1.1 1994/08/30 15:35:05 pierre Exp $ FONT -Lectra-Minitel-Medium-R-Normal--10-100-75-75-C-80-ISO2022-2S SIZE 10 75 75 FONTBOUNDINGBOX 8 10 0 -2 STARTPROPERTIES 19 FONTNAME_REGISTRY "" FOUNDRY "Lectra" FAMILY_NAME "Minitel" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 10 POINT_SIZE 100 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "C" AVERAGE_WIDTH 80 CHARSET_REGISTRY "ISO2022-2S" CHARSET_ENCODING "1" FONT_ASCENT 8 FONT_DESCENT 2 DEFAULT_CHAR 0 COPYRIGHT "Copyright 1991 Lectra-Systemes" ENDPROPERTIES CHARS 20 STARTCHAR C035 ENCODING 35 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 30 4C 44 20 20 70 22 A4 FF ENDCHAR STARTCHAR C036 ENCODING 36 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 08 1E 28 1C 0A 3C 08 00 FF ENDCHAR STARTCHAR C038 ENCODING 38 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 24 24 7E 24 24 7E 24 24 00 FF ENDCHAR STARTCHAR C044 ENCODING 44 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 20 60 FF 60 20 00 FF ENDCHAR STARTCHAR C045 ENCODING 45 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 08 1C 3E 08 08 08 08 08 FF ENDCHAR STARTCHAR C046 ENCODING 46 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 04 06 FF 06 04 00 FF ENDCHAR STARTCHAR C047 ENCODING 47 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 08 08 08 08 08 08 3E 1C FF ENDCHAR STARTCHAR C048 ENCODING 48 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 60 90 90 60 00 00 00 00 00 FF ENDCHAR STARTCHAR C049 ENCODING 49 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 20 20 F8 20 20 F8 00 FF ENDCHAR STARTCHAR C056 ENCODING 56 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 08 00 7F 00 08 00 00 FF ENDCHAR STARTCHAR C060 ENCODING 60 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 10 D1 D3 57 55 57 51 51 FF ENDCHAR STARTCHAR C061 ENCODING 61 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 10 D7 D1 51 57 54 54 57 FF ENDCHAR STARTCHAR C062 ENCODING 62 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 08 E9 2B 4D 8F 49 29 E9 FF ENDCHAR STARTCHAR C065 ENCODING 65 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 30 18 00 00 00 00 00 00 FF ENDCHAR STARTCHAR C066 ENCODING 66 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 06 0C 00 00 00 00 00 00 FF ENDCHAR STARTCHAR C067 ENCODING 67 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 1C 36 00 00 00 00 00 00 FF ENDCHAR STARTCHAR C072 ENCODING 72 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 36 00 00 00 00 00 00 00 FF ENDCHAR STARTCHAR C075 ENCODING 75 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 00 00 00 00 00 18 FF ENDCHAR STARTCHAR C106 ENCODING 106 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 3F 48 88 8E 88 48 3F 00 FF ENDCHAR STARTCHAR C122 ENCODING 122 SWIDTH 666 0 DWIDTH 8 0 BBX 8 10 0 -2 BITMAP 00 00 00 77 89 8F 88 77 00 FF ENDCHAR ENDFONT xtel-3.3.0.orig/fonts/g2s8x20.bdf0100444001424500142340000000653706703332537015235 0ustar ericpersoSTARTFONT 2.1 COMMENT $Id: g2s8x20.bdf,v 1.1 1994/08/30 15:35:05 pierre Exp $ FONT -Lectra-Minitel-Medium-R-Normal--20-200-75-75-C-80-ISO2022-2S SIZE 20 75 75 FONTBOUNDINGBOX 8 20 0 -2 STARTPROPERTIES 19 FONTNAME_REGISTRY "" FOUNDRY "Lectra" FAMILY_NAME "Minitel" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 20 POINT_SIZE 200 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "C" AVERAGE_WIDTH 80 CHARSET_REGISTRY "ISO2022-2S" CHARSET_ENCODING "1" FONT_ASCENT 18 FONT_DESCENT 2 DEFAULT_CHAR 0 COPYRIGHT "Copyright 1991 Lectra-Systemes" ENDPROPERTIES CHARS 20 STARTCHAR C035 ENCODING 35 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 30 30 4C 4C 44 44 20 20 20 20 70 70 22 22 A4 A4 78 FF ENDCHAR STARTCHAR C036 ENCODING 36 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 08 08 1E 1E 28 28 1C 1C 0A 0A 3C 3C 08 08 00 00 00 FF ENDCHAR STARTCHAR C038 ENCODING 38 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 24 24 24 24 7E 7E 24 24 24 24 7E 7E 24 24 24 24 00 00 00 FF ENDCHAR STARTCHAR C044 ENCODING 44 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 20 20 60 60 FF FF 60 60 20 20 00 00 00 FF ENDCHAR STARTCHAR C045 ENCODING 45 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 08 08 1C 1C 3E 3E 08 08 08 08 08 08 08 08 08 08 08 FF ENDCHAR STARTCHAR C046 ENCODING 46 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 04 04 06 06 FF FF 06 06 04 04 00 00 00 FF ENDCHAR STARTCHAR C047 ENCODING 47 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 08 08 08 08 08 08 08 08 08 08 08 08 3E 3E 1C 1C 08 FF ENDCHAR STARTCHAR C048 ENCODING 48 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 60 60 90 90 90 90 60 60 00 00 00 00 00 00 00 00 00 00 00 FF ENDCHAR STARTCHAR C049 ENCODING 49 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 20 20 20 20 F8 F8 20 20 20 20 F8 F8 00 00 00 FF ENDCHAR STARTCHAR C056 ENCODING 56 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 08 08 00 00 7F 7F 00 00 08 08 00 00 00 00 00 FF ENDCHAR STARTCHAR C060 ENCODING 60 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 10 10 D1 D1 D3 D3 57 57 55 55 57 57 51 51 51 51 10 FF ENDCHAR STARTCHAR C061 ENCODING 61 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 10 10 D7 D7 D1 D1 51 51 57 57 54 54 54 54 57 57 10 FF ENDCHAR STARTCHAR C062 ENCODING 62 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 08 08 E9 E9 2B 2B 4D 4D 8F 8F 49 49 29 29 E9 E9 08 FF ENDCHAR STARTCHAR C065 ENCODING 65 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 30 30 18 18 00 00 00 00 00 00 00 00 00 00 00 00 00 FF ENDCHAR STARTCHAR C066 ENCODING 66 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 06 06 0C 0C 00 00 00 00 00 00 00 00 00 00 00 00 00 FF ENDCHAR STARTCHAR C067 ENCODING 67 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 1C 1C 36 36 00 00 00 00 00 00 00 00 00 00 00 00 00 FF ENDCHAR STARTCHAR C072 ENCODING 72 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 36 36 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF ENDCHAR STARTCHAR C075 ENCODING 75 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 18 18 38 FF ENDCHAR STARTCHAR C106 ENCODING 106 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 3F 3F 48 48 88 88 8E 8E 88 88 48 48 3F 3F 00 00 00 FF ENDCHAR STARTCHAR C122 ENCODING 122 SWIDTH 666 0 DWIDTH 8 0 BBX 8 20 0 -2 BITMAP 00 00 00 00 00 00 77 77 89 89 8F 8F 88 88 77 77 00 00 00 FF ENDCHAR ENDFONT xtel-3.3.0.orig/fonts/xteldigit.bdf0100444001424500142340000000607706703332537016114 0ustar ericpersoSTARTFONT 2.1 COMMENT $Id: xteldigit.bdf,v 1.1 1996/09/14 21:49:44 pierre Exp $ FONT xteldigit SIZE 18 75 75 FONTBOUNDINGBOX 32 18 0 -8 STARTPROPERTIES 3 FONT_ASCENT 24 FONT_DESCENT 8 DEFAULT_CHAR 32 ENDPROPERTIES CHARS 12 STARTCHAR C032 ENCODING 32 SWIDTH 666 0 DWIDTH 18 0 BBX 18 32 0 -8 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C048 ENCODING 48 SWIDTH 666 0 DWIDTH 18 0 BBX 18 32 0 -8 BITMAP 0000 1ff8 3ffc 5ffa e007 e007 e007 e007 e007 e007 e007 e007 e007 e007 4002 0000 4002 e007 e007 e007 e007 e007 e007 e007 e007 e007 e007 e007 5ffa 3ffc 1ff8 0000 ENDCHAR STARTCHAR C049 ENCODING 49 SWIDTH 666 0 DWIDTH 18 0 BBX 18 32 0 -8 BITMAP 0000 0000 0000 0002 0007 0007 0007 0007 0007 0007 0007 0007 0007 0007 0002 0000 0002 0007 0007 0007 0007 0007 0007 0007 0007 0007 0007 0002 0000 0000 0000 0000 ENDCHAR STARTCHAR C050 ENCODING 50 SWIDTH 666 0 DWIDTH 18 0 BBX 18 32 0 -8 BITMAP 0000 1ff8 3ffc 1ffa 0007 0007 0007 0007 0007 0007 0007 0007 0007 0007 1ffa 3ffc 5ff8 e000 e000 e000 e000 e000 e000 e000 e000 e000 e000 5ff8 3ffc 1ff8 0000 0000 ENDCHAR STARTCHAR C051 ENCODING 51 SWIDTH 666 0 DWIDTH 18 0 BBX 18 32 0 -8 BITMAP 0000 1ff8 3ffc 1ffa 0007 0007 0007 0007 0007 0007 0007 0007 0007 0007 1ffa 3ffc 1ffa 0007 0007 0007 0007 0007 0007 0007 0007 0007 0007 1ffa 3ffc 1ff8 0000 0000 ENDCHAR STARTCHAR C052 ENCODING 52 SWIDTH 666 0 DWIDTH 18 0 BBX 18 32 0 -8 BITMAP 0000 0000 0000 4002 e007 e007 e007 e007 e007 e007 e007 e007 e007 e007 5ffa 3ffc 1ffa 0007 0007 0007 0007 0007 0007 0007 0007 0007 0007 0002 0000 0000 0000 0000 ENDCHAR STARTCHAR C053 ENCODING 53 SWIDTH 666 0 DWIDTH 18 0 BBX 18 32 0 -8 BITMAP 0000 1FF8 3FFC 5FF8 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 5FF8 3FFC 1FFA 0007 0007 0007 0007 0007 0007 0007 0007 0007 0007 1FFA 3FFC 1FF8 0000 0000 ENDCHAR STARTCHAR C054 ENCODING 54 SWIDTH 666 0 DWIDTH 18 0 BBX 18 32 0 -8 BITMAP 0000 1FF8 3FFC 5FF8 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 5FF8 3FFC 5FFA E007 E007 E007 E007 E007 E007 E007 E007 E007 E007 5FFA 3FFC 1FF8 0000 0000 ENDCHAR STARTCHAR C055 ENCODING 55 SWIDTH 666 0 DWIDTH 18 0 BBX 18 32 0 -8 BITMAP 0000 1FF8 3FFC 1FFA 0007 0007 0007 0007 0007 0007 0007 0007 0007 0007 0002 0000 0002 0007 0007 0007 0007 0007 0007 0007 0007 0007 0007 0002 0000 0000 0000 0000 ENDCHAR STARTCHAR C056 ENCODING 56 SWIDTH 666 0 DWIDTH 18 0 BBX 18 32 0 -8 BITMAP 0000 1FF8 3FFC 5FFA E007 E007 E007 E007 E007 E007 E007 E007 E007 E007 5FFA 3FFC 5FFA E007 E007 E007 E007 E007 E007 E007 E007 E007 E007 5FFA 3FFC 1FF8 0000 0000 ENDCHAR STARTCHAR C057 ENCODING 57 SWIDTH 666 0 DWIDTH 18 0 BBX 18 32 0 -8 BITMAP 0000 1FF8 3FFC 5FFA E007 E007 E007 E007 E007 E007 E007 E007 E007 E007 5FFA 3FFC 1FFA 0007 0007 0007 0007 0007 0007 0007 0007 0007 0007 1FFA 3FFC 1FF8 0000 0000 ENDCHAR STARTCHAR C058 ENCODING 58 SWIDTH 666 0 DWIDTH 18 0 BBX 18 32 0 -8 BITMAP 0000 0000 0000 0000 0000 0000 0000 03c0 03c0 07e0 07e0 03c0 03c0 0000 0000 0000 0000 0000 03c0 03c0 07e0 07e0 03c0 03c0 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR ENDFONT xtel-3.3.0.orig/protocoles.c0100444001424500142340000000517406703332542014637 0ustar ericperso/* * xtel - Emulateur MINITEL sous X11 * * Copyright (C) 1991-1995 Lectra Systemes & Pierre Ficheux * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ static char rcsid[] = "$Id: protocoles.c,v 1.1 1996/09/14 22:10:31 pierre Exp $"; /* * Gestion des protocoles de telechargement */ #include "xtel.h" #include #include static int pid_tele; static void waitchild () { int r; wait (&r); input_id = XtAppAddInput(app_context, socket_xteld, (XtPointer)XtInputReadMask, (XtInputCallbackProc)fonction_lecture_ligne, NULL); } /* * Initialise un protocole de telechargement */ init_protocoles (nom, proto) char *nom; struct protocole *proto; { FILE *fp; register int i; char buf[256]; i = 0; if ((fp = fopen (nom, "r")) != NULL) { while (fgets (buf, sizeof(buf), fp) != NULL && i < MAXPROTO) { if (buf[0] == '#' || buf[0] == '\n') continue; buf[strlen(buf)-1] = 0; proto->nom = strdup (next_token (buf, ",")); proto->commande = strdup (next_token (NULL, ",")); #ifdef DEBUG printf ("Protocole %s, commande = %s\n", proto->nom, proto->commande); #endif i++; proto++; } } return i; } /* * Callback du bouton "Interrompre" */ void Stop_telechargement (w, client_data, call_data) Widget w; XtPointer client_data, call_data; { kill (pid_tele, SIGTERM); XtSetSensitive (stop_tele, False); } /* * Callback du menu de telechargement */ void Selection_telechargement (w, proto, call_data) Widget w; int proto; XtPointer call_data; { signal (SIGCHLD, waitchild); XtRemoveInput (input_id); XtSetSensitive (stop_tele, True); pid_tele = fork (); if (pid_tele < 0) { perror ("Selection_telechargement"); exit (1); } else if (pid_tele == 0) { /* fils */ dup2 (socket_xteld, 0); dup2 (socket_xteld, 1); if (execlp (protocoles[proto].commande, protocoles[proto].commande, NULL) < 0) { perror ("Selection_telechargement: execlp"); exit (1); } } } xtel-3.3.0.orig/teleinfo.c0100444001424500142340000002435707241353356014263 0ustar ericperso/* * xtel - Emulateur MINITEL sous X11 * * Copyright (C) 1991-1996 Lectra Systemes & Pierre Ficheux * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ static char rcsid[] = "$Id: teleinfo.c,v 1.6 2001/02/11 00:03:58 pierre Exp $"; /* * Traitement du mode Tele-informatique * Inspire du programme "minitel" de Sylvain Meunier... */ #include "xtel.h" #include #include #ifndef SVR4 #include #include #else #include #include #endif /* SVR4 */ #ifdef NO_TERMIO #include #else #ifdef USE_TERMIOS #include #include #else #include #endif /* USE_TERMIOS */ #endif /* NO_TERMIO */ #include static char pty_m[20], pty_s[20]; static char buf[10]; static int fd_m; static int car_precedent_est_escape[4] = {0,0,0,0} ; /* En cas de malheur (sans Gabin cette fois...) */ static void teleinfo_fatal (s1, s2, s3) char *s1, *s2, *s3; { fprintf (stderr, "teleinfo: %s %s %s\n", s1, s2, s3); exit (1); } /* * Cherche un pseudo-terminal, retourn le file-descripteur maitre * ainsi que les noms des devices maitre/esclave */ static int cherche_pseudo_tty (master, slave, pl, pc) char *master, *slave; int *pl, *pc; { int fd_master; #ifdef SVR4 extern char *ptsname(); char *ptyname; #else char ok = 0, c; register int i; struct stat statb; #endif /* SVR4 */ #ifdef SVR4 /* * Grace aux "streams" c'est beaucoup + propre en SVR4... */ strcpy (master, "/dev/ptmx"); if ((fd_master = open ("/dev/ptmx", O_RDWR)) < 0) teleinfo_fatal ("/dev/ptmx", sys_errlist[errno]); sighold (SIGCLD); if (grantpt (fd_master) == -1) teleinfo_fatal ("could not grant slave pty"); sigrelse (SIGCLD); if (unlockpt(fd_master) == -1) teleinfo_fatal ("could not unlock slave pty"); if (!(ptyname = ptsname(fd_master))) teleinfo_fatal ("could not enable slave pty"); strcpy(slave, ptyname); *pl = *pc = 0; #else /* * Methode bourrin pour les autres Unix... */ for (c = 'p'; c <= 'z' && !ok; c++) { for (i = 0; i < 16; i++) { sprintf (master, "/dev/pty%c%x", c, i); if (stat (master, &statb) < 0) { perror (master); return (-1); } fd_master = open (master, O_RDWR, 0); if (fd_master >= 0) { sprintf (slave, "/dev/tty%c%x", c, i); if (access (slave, 6) != 0) { close (fd_master); continue; } ok = 1; break; } } } *pl = c; *pc = i; #endif return (fd_master); } /* * Lance un "xterm" pour emuler le mode Tele-Informatique */ void teleinfo (nom) char *nom; { char c; int max_car = 20, lettre, chiffre; #ifndef SVR4 #ifdef NO_TERMIO struct sgttyb term; #else #ifdef USE_TERMIOS struct termios term; #else struct termio term; #endif /* USE_TERMIOS */ #endif /* NO_TERMIO */ #endif /* !SVR4 */ /* chercher le pseudo-tty */ if ((fd_m = cherche_pseudo_tty (pty_m, pty_s, &lettre, &chiffre)) < 0) teleinfo_fatal ("erreur ouverture maitre"); if ((fd_teleinfo = open (pty_s, O_RDWR)) < 0) teleinfo_fatal (pty_s, sys_errlist[errno]); /* Configuration de la ligne (mode RAW) */ #ifdef SVR4 /* Il suffit de depiler les modules pour avoir la ligne en RAW */ while (ioctl (fd_teleinfo, I_POP, 0) > 0) ; #else #ifdef NO_TERMIO ioctl (fd_teleinfo, TIOCGETP, &term); term.sg_flags |= RAW; ioctl (fd_teleinfo, TIOCSETP, &term); #else #ifdef USE_TERMIOS ioctl (fd_teleinfo, TIOCGETA, &term); #else ioctl (fd_teleinfo, TCGETA, &term); #endif /* USE_TERMIOS */ term.c_cc[VMIN] = 1; term.c_cc[VTIME] = 0; term.c_lflag &= ~(ICANON|ISIG|ECHO); #ifdef NOTDEF term.c_cflag &= ~(PARODD|CSIZE); term.c_cflag |= (CS7|PARENB); /* a voir... */ #endif #ifdef USE_TERMIOS ioctl (fd_teleinfo, TIOCSETA, &term); #else ioctl (fd_teleinfo, TCSETA, &term); #endif /* USE_TERMIOS */ #endif /* NO_TERMIO */ #endif /* SVR4 */ /* * Lancement du "xterm" */ if ((pid_teleinfo = fork()) == 0) { dup2(fd_m, 1); #ifdef SVR4 sprintf(buf, "-S%02d1", atoi(strrchr (pty_s, '/')+1)); #else sprintf(buf, "-S%c%d1", lettre, chiffre); #endif /* SVR4 */ execlp(XTERM_PATH, XTERM_PATH, "-name", nom, "-geometry", "80x25+10+10", buf, NULL); teleinfo_fatal ("erreur a l'execution de xterm"); } close (fd_m); c = 0; while (read (fd_teleinfo, &c, 1) > 0 && c != '\n' && max_car--) ; XtVaSetValues (ecran_minitel, XtNfdConnexion, fd_teleinfo, NULL); } static char fils_mort; static void sigchld () { int r; fils_mort = 0; while (wait (&r) > 0) ; fils_mort = 1; } /* * Conversion pour le mode teleinfo-FR, neccessite quelques * amelioration pour ceux que ca interesse (y en a-t-il ???) ==> faire * une fonte speciale... */ char conversion_teleinfo_fr (car,m) char car; int m ; { register char c; if ( car_precedent_est_escape[m] ) { car_precedent_est_escape[m]=0 ; return car ; } switch (car) { case '{' : c = 0xe9; /* { ==> e' */ break; case '}' : c = 0xe8; /* etc... */ break; case '@' : c = 0xe0; break; case '\\' : c = 0xe7; break; case '[' : c = 0xb0; break; case ']' : c = 0xa7; break; case '#' : c = 0xa3; break; case 0x0e : c = 0xef ; break ; case 0x1b : c = car ; car_precedent_est_escape[m] = 1 ; break ; default : c = car; } return (c); } /* * Lecture du clavier en mode Teleinfo */ /* ARGSUSED */ void fonction_lecture_teleinfo (client_data, fid, id) XtPointer client_data; /* non utilise */ int *fid; XtInputId *id; { unsigned char c; Boolean flag_connexion; XtVaGetValues (ecran_minitel, XtNconnecte, &flag_connexion, NULL); if (read (*fid, &c, 1) == 1) { if (mode_emulation == MODE_TELEINFO_FR) c = conversion_teleinfo_fr (c,2); if (flag_connexion) write (socket_xteld, &c, 1); else write (fd_teleinfo, &c, 1); } } /* * Selection du mode d'emulation */ void zigouille_xterm_teleinfo () { kill (pid_teleinfo, SIGKILL); XtVaSetValues (ecran_minitel, XtNfdConnexion, -1, NULL); close (fd_teleinfo); XtRemoveInput (input_id_teleinfo); while (!fils_mort) ; } void selection_mode_emulation (w, mode, call_data) Widget w; char *mode; XtPointer call_data; { if ((mode[0] == 'V' && mode_emulation == MODE_VIDEOTEX) || (mode[0] == 'A' && mode_emulation == MODE_TELEINFO_ASCII) || (mode[0] == 'F' && mode_emulation == MODE_TELEINFO_FR)) return; if (mode[0] == 'V') { mode_emulation = MODE_VIDEOTEX; zigouille_xterm_teleinfo (); XtVaSetValues (ecran_minitel, XtNmodeVideotex, True, NULL); XtVaSetValues (ecran_minitel, XtNfdConnexion, socket_xteld, NULL); } else { signal (SIGCHLD, sigchld); clear_reception() ; XtVaSetValues (ecran_minitel, XtNmodeVideotex, False, NULL); if (mode[0] == 'A') { if (mode_emulation == MODE_TELEINFO_FR) { zigouille_xterm_teleinfo (); } mode_emulation = MODE_TELEINFO_ASCII; teleinfo ("T\351l\351info-ASCII"); } else if (mode[0] == 'F') { if (mode_emulation == MODE_TELEINFO_ASCII) { zigouille_xterm_teleinfo (); } mode_emulation = MODE_TELEINFO_FR; teleinfo ("T\351l\351info-FR"); } else { printf ("selection_mode_emulation: Mode %d inconnu !\n"); return; } if (!lecteur_play) input_id_teleinfo = XtAppAddInput(app_context, fd_teleinfo, (XtPointer)XtInputReadMask, (XtInputCallbackProc)fonction_lecture_teleinfo, NULL); } mise_a_jour_mode_emulation (0); } /*--------------------------------------------------------------------------*/ /* deux petites procedures */ /* - detection de la sequence pour arrete les modes 80 colonnes */ /*--------------------------------------------------------------------------*/ static char *passage_videotex = "\033[?{"; static int indice_reception[4]= {0,0,0,0}; /* voir 3617 sirene , attention 2frs la minute */ static char *fin_mode_teleinfo_fr = "\033:2~"; static int indice_reception_fin_fr[4]= {0,0,0,0}; /* |----------------------------------------------------------------------| */ /* | on met les compteurs a zero | */ /* |----------------------------------------------------------------------| */ void clear_reception () { int i=0 ; for ( i=0;i<4;i++) { car_precedent_est_escape[i] = 0 ; indice_reception[i]=0 ; indice_reception_fin_fr[i]=0 ; } ; } /* |-----------------------------------------------------------------------| */ /* | teste le retour en mode videotex | */ /* | la sequence de fin utilise dans 3617 sirene | */ /* |-----------------------------------------------------------------------| */ int test_retour_videotex ( car , m ) char car ; { fprintf (stderr, "teleinfo: %x %d %d\n", car,indice_reception,indice_reception_fin_fr) ; /* Test de reception de la chaine de retour en Videotex (ESC [?{) */ if (*(passage_videotex+indice_reception[m]) == car) { if (indice_reception[m] == 3) { return 1 ; } else { indice_reception[m]++ ; } } else { indice_reception[m] = 0 ; } /* Test de reception de la chaine de fin du mode teleinfo 2 */ if (*(fin_mode_teleinfo_fr+indice_reception_fin_fr[m]) == car) { if (indice_reception_fin_fr[m] == 3) { return 2 ; } else { indice_reception_fin_fr[m] ++ ; } } else { indice_reception_fin_fr[m]=0 ; } /* -------------- */ return 0 ; } xtel-3.3.0.orig/version.c0100444001424500142340000000173307242200375014125 0ustar ericperso/* * xtel - Emulateur MINITEL sous X11 * * Copyright (C) 1991-1996 Lectra Systemes & Pierre Ficheux * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ static char rcsid[] = "$Id: version.c,v 1.6 2001/02/13 09:40:13 pierre Exp $"; char version_xtel = 3; char revision_xtel = 3; char prototype_xtel = 1; xtel-3.3.0.orig/xaw.c0100444001424500142340000012261506770365265013261 0ustar ericperso/* * xtel - Emulateur MINITEL sous X11 * * Copyright (C) 1991-1996 Lectra Systemes & Pierre Ficheux * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ static char rcsid[] = "$Id: xaw.c,v 1.23 1999/09/17 07:16:04 pierre Exp $"; /* * Couche Toolkit ATHENA */ #include "xtel.h" #include #include #include #include #include #include #ifndef LOW_MEMORY #include "XpmButton.h" #include "XpmToggle.h" #include "Timer.h" #include "bitmaps/unsensitiveh.xbm" #include "bitmaps/unsensitiveb.xbm" #include "pixmaps/disk_write.xpm" #include "pixmaps/disk_read.xpm" #include "pixmaps/printera.xpm" #include "pixmaps/printer.xpm" #include "pixmaps/door_run.xpm" #include "pixmaps/nouveau.xpm" #include "pixmaps/camera.xpm" #include "pixmaps/phone.xpm" #include "pixmaps/film.xpm" #include "pixmaps/cassete.xpm" #include "pixmaps/envoi.xpm" #include "pixmaps/envoi_on.xpm" #include "pixmaps/retour.xpm" #include "pixmaps/retour_on.xpm" #include "pixmaps/repet.xpm" #include "pixmaps/repet_on.xpm" #include "pixmaps/guide.xpm" #include "pixmaps/guide_on.xpm" #include "pixmaps/annul.xpm" #include "pixmaps/annul_on.xpm" #include "pixmaps/sommaire.xpm" #include "pixmaps/sommaire_on.xpm" #include "pixmaps/correc.xpm" #include "pixmaps/correc_on.xpm" #include "pixmaps/suite.xpm" #include "pixmaps/suite_on.xpm" #include "pixmaps/cxfin.xpm" #include "pixmaps/cxfin_on.xpm" #include "pixmaps/rewind.xpm" #include "pixmaps/prev.xpm" #include "pixmaps/stop.xpm" #include "pixmaps/play.xpm" #include "pixmaps/next.xpm" #endif /* LOW_MEMORY */ #ifndef NO_XPM #include #include "pixmaps/pf.xpm" #else #include "bitmaps/pf.bit" #endif /* NO_XPM */ #include "bitmaps/teleph.xbm" #include "bitmaps/submenu.xbm" #include "bitmaps/zero.bit" #include "bitmaps/wind.bit" #include "bitmaps/rewind.bit" #include "bitmaps/play.bit" #include "bitmaps/stop.bit" #include "bitmaps/lecteur.bit" #include "bitmaps/aide.bit" #include #include #include #include #include #include #include #include #include #include #include #define K_Charge 0 #define K_Sauve 1 #define K_Compose 2 #define K_Fin 3 #define SAUVE 0 #define CHARGE 1 #define IMPRIME 2 #define TERMINAL 3 #define RACCROCHER 4 #define LIGNE_BLANCHE 5 #define QUITTE 6 #define NOUVEAU 0 #define DEMARRE 1 #define ARRETE 2 #define LECTEUR 3 /* Nom des entrees du menu "Fichier" */ static String entree_fichier[] = { "sauve", "charge", "imprime", "terminal", "raccrocher", "blanc", "quitte", NULL }; static String entree_enregistrement[] = { "nouveau", "demarre", "arrete", "lecteur", NULL, }; #ifndef LOW_MEMORY static String *pixmaps_fichier[] = { disk_write_xpm, disk_read_xpm, NULL, NULL, door_run_xpm }; static String *pixmaps_minitel[] = { envoi_xpm, retour_xpm, repet_xpm, guide_xpm, annul_xpm, sommaire_xpm, correc_xpm, suite_xpm, NULL, cxfin_xpm }; static String *pixmaps_minitel_on[] = { envoi_on_xpm, retour_on_xpm, repet_on_xpm, guide_on_xpm, annul_on_xpm, sommaire_on_xpm, correc_on_xpm, suite_on_xpm, NULL, cxfin_on_xpm }; #endif static void PopupSousMenu(), PopdownSousMenu(); static void PopupSousMenu2(), PopdownSousMenu2(); static XtActionsRec actions[] = { {"PopupSousMenu", (XtActionProc)PopupSousMenu}, {"PopdownSousMenu", (XtActionProc)PopdownSousMenu}, {"PopupSousMenu2", (XtActionProc)PopupSousMenu2}, {"PopdownSousMenu2", (XtActionProc)PopdownSousMenu2} }; static char *toolkit = "Athena"; static Arg args[30]; static int n; static char buf[256]; static Widget em, top; static Widget bouton_enregistrement, menu_enregistrement; static Widget bouton_fichier, menu_compose, menu_procedure; static Widget forme_base, nouveau, lecteur; static Widget popup_sortie, popup_saisie, popup_erreur, quitte_lecteur, titre_arret_lecteur; static Widget boite_saisie, confirmation_sortie, message_erreur; static Widget compteur_lecteur_titre, compteur_lecteur_caractere, compteur_lecteur_page; static Widget ok_boite_saisie; static Widget ok_confirmation_sortie; static Widget popup_lecteur, forme_lecteur, play_lecteur, stop_lecteur, wind_lecteur; static Widget rewind_lecteur, zero_lecteur; static Widget arret_lecteur_popup; static Widget type_arret_lecteur, arret_none, arret_form_feed, arret_suite; static Widget arret_suite_ou_ff; static Widget menu_aide, bouton_aide; static Widget menu_proto, paned_base; #ifndef LOW_MEMORY static Widget boite_haut, btn_enregistre, btn_lecteur, btn_quitte; #endif /* LOW_MEMORY */ static Widget popup_impression, bouton_imprime, bouton_terminal; static Boolean popup_actif, popup2_actif; static Cursor hand_cursor; #ifdef NOTDEF static void arret_a_chaque_page (); static void type_fin_page (); #else extern void arret_a_chaque_page (); extern void type_fin_page (); #endif static void Popdown (); static void positionnement_widget (); static void prepare_dialogue (); static void Selection_menu_fichier(); static void Affiche_copyright (); static void Selection_menu_compose(); static void Selection_menu_compose_direct(); static void Selection_menu_procedure() /*, Selection_menu_enregistrement()*/; static void Validation_dialogue(), Validation_erreur(); static XrmOptionDescRec options[] = { {"-serveur", "*serveur", XrmoptionSepArg, NULL}, {"-service", "*nomService", XrmoptionSepArg, NULL}, {"-petit", "*petiteFonte", XrmoptionNoArg, "True"}, {"-ng", "*nGris", XrmoptionNoArg, "True"}, {"-br", "*boutonRaccrocher", XrmoptionNoArg, "True"}, {"-low", "*lowMemory", XrmoptionNoArg, "True"}, {"-private", "*privateColormap", XrmoptionNoArg, "True"}, }; static void menu_type_arret_page_cb (w, choice, call_data) Widget w; int choice; XtPointer call_data; { String value; flag_arret_a_chaque_page = True; switch (choice) { case 0 : flag_arret_a_chaque_page = False; XtVaGetValues (arret_none, XtNlabel, &value, NULL); break; case 1 : type_de_fin_page = ARRET_FF; XtVaGetValues (arret_form_feed, XtNlabel, &value, NULL); break; case 2 : type_de_fin_page = ARRET_SUITE; XtVaGetValues (arret_suite, XtNlabel, &value, NULL); break; case 3 : type_de_fin_page = ARRET_SUITE | ARRET_FF; XtVaGetValues (arret_suite_ou_ff, XtNlabel, &value, NULL); break; default : return; } XtVaSetValues (type_arret_lecteur, XtNlabel, value, NULL); } /* Affichage/effacement du sous-menu d'impression */ static void PopupSousMenu (w, pevent, params, nb_params) Widget w; XCrossingEvent *pevent; String *params; Cardinal nb_params; { Dimension width, height; Position x, y, x_root, y_root; XtVaGetValues (bouton_imprime, XtNwidth, &width, XtNheight, &height, XtNx, &x, XtNy, &y, NULL); XtTranslateCoords (bouton_imprime, x, y, &x_root, &y_root); if (!popup_actif && (pevent->x > width && pevent->y > y) && pevent->y < (y + height)) { XtVaSetValues (popup_impression, XtNx, x_root + width + 1, XtNy, y_root - 2*height, NULL); XtPopup (popup_impression, XtGrabNonexclusive); popup_actif = True; } } static void PopdownSousMenu (w, pevent, params, nb_params) Widget w; XCrossingEvent *pevent; String *params; Cardinal nb_params; { if (popup_actif) { XtPopdown (popup_impression); popup_actif = False; } } /* Affichage/effacement du sous-menu de sélection de terminal */ static void PopupSousMenu2 (w, pevent, params, nb_params) Widget w; XCrossingEvent *pevent; String *params; Cardinal nb_params; { Dimension width, height; Position x, y, x_root, y_root; XtVaGetValues (bouton_terminal, XtNwidth, &width, XtNheight, &height, XtNx, &x, XtNy, &y, NULL); XtTranslateCoords (bouton_terminal, x, y, &x_root, &y_root); if (!popup2_actif && (pevent->x > width && pevent->y > y) && pevent->y < (y + height)) { XtVaSetValues (menu_terminal, XtNx, x_root + width + 1, XtNy, y_root - 3*height, NULL); XtPopup (menu_terminal, XtGrabNonexclusive); popup2_actif = True; } } static void PopdownSousMenu2 (w, pevent, params, nb_params) Widget w; XCrossingEvent *pevent; String *params; Cardinal nb_params; { if (popup2_actif) { XtPopdown (menu_terminal); popup2_actif = False; } } /* * Creation d'une entree menu */ static Widget create_menu_entry (parent, name, cb, call_data) Widget parent; char *name; void *cb; XtPointer call_data; { Widget entry; entry = XtVaCreateManagedWidget (name, smeBSBObjectClass, parent, NULL); XtAddCallback(entry, XtNcallback, (XtCallbackProc)cb, call_data); return (entry); } #ifndef LOW_MEMORY /* * Creation de boutons */ static Widget create_pixmap_button (parent, name, class, cb, call_data, pixmap1_data, pixmap2_data, shape1_data, shape2_data, unsensitive_bitmap) Widget parent; char *name; WidgetClass class; void *cb; XtPointer call_data; char **pixmap1_data, **pixmap2_data; char **shape1_data, **shape2_data; Pixmap unsensitive_bitmap; { Widget w; Pixmap pixmap1 = None, pixmap2 = None, shape1 = None, shape2 = None; XpmAttributes xpma; XtVaGetValues (parent, XtNcolormap, &xpma.colormap, NULL); xpma.valuemask = XpmColormap; if (pixmap1_data) XpmCreatePixmapFromData (XtDisplay(parent), DefaultRootWindow(XtDisplay(parent)), pixmap1_data, &pixmap1, &shape1, &xpma); if (pixmap2_data) XpmCreatePixmapFromData (XtDisplay(parent), DefaultRootWindow(XtDisplay(parent)), pixmap2_data, &pixmap2, &shape2, &xpma); w = XtVaCreateManagedWidget (name, class, parent, XtNpixmap1, pixmap1, XtNpixmap2, pixmap2, XtNshape1, shape1, XtNshape2, shape2, XtNunsensitiveBitmap, unsensitive_bitmap, NULL); if (cb) XtAddCallback (w, XtNcallback, (XtCallbackProc)cb, call_data); return (w); } #endif /* LOW_MEMORY */ static Widget create_bitmap_button (parent, name, class, cb, call_data, bits, width, height) Widget parent; char *name; WidgetClass class; void *cb; XtPointer call_data; char *bits; int width, height; { Widget w; Pixmap pixmap; Display *dpy = XtDisplay(parent); int screen = DefaultScreen (dpy); long fg, bg; XtVaGetValues (parent, XtNbackground, &bg, XtNforeground, &fg, NULL); if ((pixmap = XCreatePixmapFromBitmapData (dpy, DefaultRootWindow(dpy), bits, width, height, fg, bg, DisplayPlanes(dpy, screen)))) { w = XtVaCreateManagedWidget (name, class, parent, XtNbitmap, pixmap, XtNforeground, fg, XtNbackground, bg, NULL); if (cb) XtAddCallback (w, XtNcallback, (XtCallbackProc)cb, call_data); return (w); } else { fprintf (stderr, "create_bitmap_button: %s: can't create X bitmap\n", name); return (NULL); } } static Widget create_bitmap_label (parent, name, bits, width, height) Widget parent; char *name; char *bits; int width, height; { Widget w; Pixmap pixmap; Display *dpy = XtDisplay(parent); int screen = DefaultScreen (dpy); long bg; XtVaGetValues (parent, XtNbackground, &bg, NULL); if ((pixmap = XCreatePixmapFromBitmapData (dpy, DefaultRootWindow(dpy), bits, width, height, black_pixel /*BlackPixel (dpy, screen)*/, bg, DisplayPlanes(dpy, screen)))) { w = XtVaCreateManagedWidget (name, labelWidgetClass, parent, XtNbitmap, pixmap, XtNmappedWhenManaged, False, NULL); return (w); } else { fprintf (stderr, "create_bitmap_label: %s: can't create X bitmap\n", name); return (NULL); } } static Widget create_text_button (parent, name, class, activate_cb, activate_call_data) Widget parent; char *name; WidgetClass class; void *activate_cb; XtPointer activate_call_data; { Widget w; w = XtVaCreateManagedWidget (name, class, parent, NULL); if (activate_cb) XtAddCallback (w, XtNcallback, (XtCallbackProc)activate_cb, activate_call_data); return (w); } /* * Initialisation du toolkit */ Widget init_toolkit (pac, av) int *pac; char **av; { #ifdef DEBUG printf ("Initialisation du toolkit\n"); #endif toolkit_utilise = toolkit; top = XtAppInitialize (&app_context, "XTel", options, XtNumber(options), pac, av, NULL, NULL, 0); return (top); } /* * Initialisation des widgets */ Widget init_widgets (topLevel) Widget topLevel; { register int i; Widget entry, typein; #ifdef DEBUG printf ("Initialisation des widgets\n"); #endif #ifndef LOW_MEMORY Pixmap unsensitive_pixmap_h, unsensitive_pixmap_b; #endif low_memory = rsc_xtel.lowMemory; /* forme de base */ forme_base = XtCreateManagedWidget ("forme_base", formWidgetClass, topLevel, NULL, 0); /* * Creation des menus */ /* Fichier */ /* titre du menu */ bouton_fichier = XtVaCreateManagedWidget("bouton_fichier", menuButtonWidgetClass, forme_base, XtNmenuName, "menu_fichier", NULL); /* le menu en lui meme */ menu_fichier = XtCreatePopupShell("menu_fichier", simpleMenuWidgetClass, bouton_fichier, NULL, 0); /* creation des entrees */ for (i = 0; entree_fichier[i] != NULL ; i++) { String item = entree_fichier[i]; if (i == LIGNE_BLANCHE) (void)XtCreateManagedWidget(item, smeLineObjectClass, menu_fichier, NULL, 0); else { if (i == RACCROCHER) { if (rsc_xtel.boutonRaccrocher) entry = create_menu_entry (menu_fichier, "raccrocher", (XtCallbackProc)raccrocher, (XtPointer)NULL); } else entry = create_menu_entry (menu_fichier, item, (XtCallbackProc)Selection_menu_fichier, (XtPointer)i); if (i == IMPRIME) { bouton_imprime = entry; XtVaSetValues (entry, XtNrightBitmap, XCreateBitmapFromData (XtDisplay(topLevel), XtScreen(topLevel)->root, submenu_bits, submenu_width, submenu_height), NULL); } if (i == TERMINAL) { bouton_terminal = entry; XtVaSetValues (entry, XtNrightBitmap, XCreateBitmapFromData (XtDisplay(topLevel), XtScreen(topLevel)->root, submenu_bits, submenu_width, submenu_height), NULL); } } } /* Selection impression ASCII/Videotex */ popup_impression = XtCreatePopupShell ("popup_impression", simpleMenuWidgetClass, forme_base, NULL, 0); (void)create_menu_entry (popup_impression, "imp_ascii", (XtCallbackProc)imprime_page_courante_ascii, (XtPointer)NULL); (void)create_menu_entry (popup_impression, "imp_videotex", (XtCallbackProc)imprime_page_courante_videotex, (XtPointer)NULL); menu_terminal = XtCreatePopupShell ("menu_terminal", simpleMenuWidgetClass, forme_base, NULL, 0); for (i = 0 ; i < 3 ; i++) (void)create_menu_entry (menu_terminal, touches[i].nom, (XtCallbackProc)selection_mode_emulation, (XtPointer)touches[i].code); /* Enregistrement */ /* titre du menu */ bouton_enregistrement = XtVaCreateManagedWidget("bouton_enregistrement", menuButtonWidgetClass, forme_base, XtNmenuName, "menu_enregistrement", XtNfromHoriz, bouton_fichier, NULL); /* le menu en lui meme */ menu_enregistrement = XtCreatePopupShell("menu_enregistrement", simpleMenuWidgetClass, bouton_enregistrement, NULL, 0); /* creation des entrees */ nouveau = create_menu_entry (menu_enregistrement, entree_enregistrement[NOUVEAU], (XtCallbackProc)nouvel_enregistrement, (XtPointer)NULL); bouton_demarre = create_menu_entry (menu_enregistrement, entree_enregistrement[DEMARRE], (XtCallbackProc)demarre_enregistrement, (XtPointer)NULL); bouton_arrete = create_menu_entry (menu_enregistrement, entree_enregistrement[ARRETE], (XtCallbackProc)arrete_enregistrement, (XtPointer)NULL); lecteur = create_menu_entry (menu_enregistrement, entree_enregistrement[LECTEUR], (XtCallbackProc)debut_lecteur, (XtPointer)NULL); /* * Composition : les entree de ce menu sont creees dynamiquement a partir * du fichier "xtel.services" */ if (nb_services != 0) { /* titre du menu */ bouton_compose = XtVaCreateManagedWidget("bouton_compose", menuButtonWidgetClass, forme_base, XtNmenuName, "menu_compose", XtNfromHoriz, bouton_enregistrement, NULL); /* le menu en lui meme */ menu_compose = XtCreatePopupShell("menu_compose", simpleMenuWidgetClass, bouton_compose, NULL, 0); /* creation des entrees */ for (i = 0; i < nb_services ; i++) { if (i == nb_services-1 && !strcmp (entree_compose[i], "Direct")) (void)create_menu_entry (menu_compose, entree_compose[i], (XtCallbackProc)Selection_menu_compose_direct, (XtPointer)i); else (void)create_menu_entry (menu_compose, entree_compose[i], (XtCallbackProc)Selection_menu_compose, (XtPointer)i); } } /* * Procedures : les entree de ce menu sont creees dynamiquement a partir * du fichier ".xtelproc" */ if (nb_procedures != 0) { /* titre du menu */ if (nb_services == 0) bouton_procedure = XtVaCreateManagedWidget("bouton_procedure", menuButtonWidgetClass, forme_base, XtNmenuName, "menu_procedure", XtNfromHoriz, bouton_enregistrement, NULL); else bouton_procedure = XtVaCreateManagedWidget("bouton_procedure", menuButtonWidgetClass, forme_base, XtNmenuName, "menu_procedure", XtNfromHoriz, bouton_compose, NULL); /* le menu en lui meme */ menu_procedure = XtCreatePopupShell("menu_procedure", simpleMenuWidgetClass, bouton_procedure, NULL, 0); /* creation des entrees */ for (i = 0 ; i != nb_procedures ; i++) { char nomproc[5]; sprintf (nomproc, "p%d", i); entry = create_menu_entry (menu_procedure, nomproc, (XtCallbackProc)Selection_menu_procedure, (XtPointer)i); XtVaSetValues (entry, XtNlabel, procedures[i].nom, NULL); } } /* Menu des protocoles */ if (nb_protocoles) { /* titre du menu */ if (nb_procedures == 0) { if (nb_services == 0) entry = bouton_enregistrement; else entry = bouton_compose; } else entry = bouton_procedure; bouton_proto = XtVaCreateManagedWidget("bouton_proto", menuButtonWidgetClass, forme_base, XtNmenuName, "menu_proto", XtNfromHoriz, entry, XtNsensitive, False, NULL); /* le menu en lui meme */ menu_proto = XtCreatePopupShell("menu_proto", simpleMenuWidgetClass, bouton_proto, NULL, 0); /* creation des entrees */ for (i = 0 ; i != nb_protocoles ; i++) { char nomproto[10]; sprintf (nomproto, "proto%d", i); entry = create_menu_entry (menu_proto, nomproto, (XtCallbackProc)Selection_telechargement, (XtPointer)i); XtVaSetValues (entry, XtNlabel, protocoles[i].nom, NULL); } XtCreateManagedWidget("blanc_tele", smeLineObjectClass, menu_proto, NULL, 0); /* Bouton d'interruption de protocole */ stop_tele = create_menu_entry (menu_proto, "stop_tele", (XtCallbackProc)Stop_telechargement, (XtPointer)NULL); } /* Aide */ /* titre du menu */ bouton_aide = XtVaCreateManagedWidget("bouton_aide", menuButtonWidgetClass, forme_base, XtNmenuName, "menu_aide", XtNbitmap, XCreateBitmapFromData (XtDisplay(topLevel), XtScreen(topLevel)->root, aide_bits, aide_width, aide_height), XtNfromHoriz, bouton_enregistrement, XtNhorizDistance, (rsc_xtel.petiteFonte ? 170 : 425), NULL); /* le menu en lui meme */ menu_aide = XtCreatePopupShell("menu_aide", simpleMenuWidgetClass, bouton_aide, NULL, 0); (void)create_menu_entry (menu_aide, "a_propos", (XtCallbackProc)Affiche_copyright, (XtPointer)NULL); /* * Paned contenant les boutons du haut, l'ecran minitel, les boutons du bas */ paned_base = XtVaCreateManagedWidget ("paned_base", panedWidgetClass, forme_base, XtNfromVert, bouton_fichier, XtNorientation, (rsc_xtel.petiteFonte ? XtorientHorizontal : XtorientVertical), NULL); #ifndef LOW_MEMORY if (!low_memory) boite_haut = XtCreateManagedWidget ("boite_haut", boxWidgetClass, paned_base, NULL, 0); #endif /* * Ecran/clavier du minitel */ /* ecran */ entry = paned_base; n = 0; XtSetArg (args[n], XtNcommandeDeconnexion, CHAINE_COMMANDE_FIN); n++; if (rsc_xtel.nGris) { XtSetArg (args[n], XtNnGris, True); n++; } if (rsc_xtel.petiteFonte) { XtSetArg (args[n], XtNpetiteFonte, True); n++; #ifndef LOW_MEMORY if (!low_memory) entry = XtVaCreateManagedWidget ("pem", panedWidgetClass, paned_base, NULL); #endif } /* Id de ROM */ #ifdef NO_TVR XtSetArg (args[n], XtNenqROM, "Cv1"); #else XtSetArg (args[n], XtNenqROM, "Pv4"); #endif n++; em = XtCreateManagedWidget ("ecran_minitel", videotexWidgetClass, entry, args, n); #ifndef LOW_MEMORY if (rsc_xtel.petiteFonte && !low_memory) timer_minitel = XtVaCreateManagedWidget ("timer_minitel", timerWidgetClass, entry, NULL); #endif /* Clavier MINITEL = popup menu */ menu_clavier = XtCreatePopupShell ("menu_clavier", simpleMenuWidgetClass, em, NULL, 0); #ifndef LOW_MEMORY if (!low_memory) { /* La boite du bas, le Label d'aide */ boite_bas = XtCreateManagedWidget ("boite_bas", boxWidgetClass, paned_base, NULL, 0); /* aide_xpmb = XtCreateManagedWidget ("aide_xpmb", labelWidgetClass, paned_base, NULL, 0);*/ } #endif /* creation des entrees */ for (i = 0; i < 14 ; i++) { String item = touches[i].nom; if (strcmp (item, "blanc") == 0) (void)XtCreateManagedWidget(item, smeLineObjectClass, menu_clavier, NULL, 0); else (void)create_menu_entry (menu_clavier, item, (i > 3 ? (XtCallbackProc)commandes : (XtCallbackProc)selection_mode_emulation), (XtPointer)touches[i].code); } if (rsc_xtel.boutonRaccrocher) (void)create_menu_entry (menu_clavier, "raccrocher", (XtCallbackProc)raccrocher, (XtPointer)NULL); /* * Popups pour les boites de dialogue */ popup_saisie = XtCreatePopupShell ("popup_saisie", transientShellWidgetClass, forme_base, NULL, 0); popup_sortie = XtCreatePopupShell ("popup_sortie", transientShellWidgetClass, forme_base, NULL, 0); /* Confirmation de sortie */ confirmation_sortie = XtCreateManagedWidget ("confirmation_sortie", dialogWidgetClass, popup_sortie, NULL, 0); /* 2 boutons : Ok, Annule */ ok_confirmation_sortie = create_text_button (confirmation_sortie, "ok_confirmation_sortie", commandWidgetClass, Validation_dialogue, (XtPointer) K_Fin); XawDialogAddButton (confirmation_sortie, "annule_confirmation_sortie", Popdown, popup_sortie); /* * Boite de saisie pour chargement / sauvegarde / composition */ boite_saisie = XtCreateManagedWidget ("boite_saisie", dialogWidgetClass, popup_saisie, NULL, 0); ok_boite_saisie = XtCreateManagedWidget ("ok_boite_saisie", commandWidgetClass, boite_saisie, NULL, 0); XawDialogAddButton (boite_saisie, "annule_boite_saisie", Popdown, popup_saisie); /* Installation de l'accelerateur : Return <==> cliquer "Ok" */ if ((typein = XtNameToWidget(boite_saisie, "value")) != 0) { XtInstallAccelerators(typein, ok_boite_saisie); } /* * Creation du lecteur */ n = 0; XtSetArg(args[n], XtNiconPixmap, XCreateBitmapFromData(XtDisplay(topLevel), XtScreen(topLevel)->root, lecteur_bits, lecteur_width, lecteur_height)); n++; popup_lecteur = XtCreatePopupShell ("popup_lecteur", applicationShellWidgetClass, forme_base, args, n); forme_lecteur = XtCreateManagedWidget ("forme_lecteur", formWidgetClass, popup_lecteur, NULL, 0); /* * Boutons du lecteur */ #ifndef LOW_MEMORY if (low_memory) #endif /* !LOW_MEMORY */ { zero_lecteur = create_bitmap_button (forme_lecteur, "zero_lecteur", commandWidgetClass, Zero_lecteur, (XtPointer)NULL, zero_bits, zero_width, zero_height); rewind_lecteur = create_bitmap_button (forme_lecteur, "rewind_lecteur", commandWidgetClass, Rewind_lecteur, (XtPointer)NULL, rewind_bits, rewind_width, rewind_height); stop_lecteur = create_bitmap_button (forme_lecteur, "stop_lecteur", toggleWidgetClass, Stop_lecteur, (XtPointer)NULL, stop_bits, stop_width, stop_height); play_lecteur = create_bitmap_button (forme_lecteur, "play_lecteur", toggleWidgetClass, Play_lecteur, (XtPointer)NULL, play_bits, play_width, play_height); wind_lecteur = create_bitmap_button (forme_lecteur, "wind_lecteur", commandWidgetClass, Wind_lecteur, (XtPointer)NULL, wind_bits, wind_width, wind_height); } #ifndef LOW_MEMORY else { zero_lecteur = create_pixmap_button (forme_lecteur, "zero_lecteur", xpmButtonWidgetClass, (XtCallbackProc)Zero_lecteur, (XtPointer)NULL, rewind_xpm, NULL, NULL, NULL, None); rewind_lecteur = create_pixmap_button (forme_lecteur, "rewind_lecteur", xpmButtonWidgetClass, Rewind_lecteur, (XtPointer)NULL, prev_xpm, NULL, NULL, NULL, None); stop_lecteur = create_pixmap_button (forme_lecteur, "stop_lecteur", xpmToggleWidgetClass, Stop_lecteur, (XtPointer)NULL, stop_xpm, NULL, NULL, NULL, None); play_lecteur = create_pixmap_button (forme_lecteur, "play_lecteur", xpmToggleWidgetClass, Play_lecteur, (XtPointer)NULL, play_xpm, NULL, NULL, NULL, None); wind_lecteur = create_pixmap_button (forme_lecteur, "wind_lecteur", xpmButtonWidgetClass, Wind_lecteur, (XtPointer)NULL, next_xpm, NULL, NULL, NULL, None); } #endif /* !LOW_MEMORY */ XtVaSetValues (play_lecteur, XtNradioGroup, stop_lecteur, NULL); /* le compteur */ compteur_lecteur_titre = XtCreateManagedWidget ("compteur_lecteur_titre", labelWidgetClass, forme_lecteur, NULL, 0); compteur_lecteur_caractere = XtCreateManagedWidget ("compteur_lecteur_caractere", labelWidgetClass, forme_lecteur, NULL, 0); compteur_lecteur_page = XtCreateManagedWidget ("compteur_lecteur_page", labelWidgetClass, forme_lecteur, NULL, 0); /* Arret a chaque page */ titre_arret_lecteur = XtCreateManagedWidget ("titre_arret_lecteur", labelWidgetClass, forme_lecteur, NULL, 0); type_arret_lecteur = XtCreateManagedWidget ("type_arret_lecteur", labelWidgetClass, forme_lecteur, NULL, 0); arret_lecteur_popup = XtCreatePopupShell ("arret_lecteur_popup", simpleMenuWidgetClass, forme_lecteur, NULL, 0); arret_none = XtVaCreateManagedWidget ("arret_none", smeBSBObjectClass, arret_lecteur_popup, NULL); XtAddCallback (arret_none, XtNcallback, (XtCallbackProc)menu_type_arret_page_cb, (XtPointer)0); arret_form_feed = XtVaCreateManagedWidget ("arret_form_feed", smeBSBObjectClass, arret_lecteur_popup, NULL); XtAddCallback (arret_form_feed, XtNcallback, (XtCallbackProc)menu_type_arret_page_cb, (XtPointer)1); arret_suite = XtVaCreateManagedWidget ("arret_suite", smeBSBObjectClass, arret_lecteur_popup, NULL); XtAddCallback (arret_suite, XtNcallback, (XtCallbackProc)menu_type_arret_page_cb, (XtPointer)2); arret_suite_ou_ff = XtVaCreateManagedWidget ("arret_suite_ou_ff", smeBSBObjectClass, arret_lecteur_popup, NULL); XtAddCallback (arret_suite_ou_ff, XtNcallback, (XtCallbackProc)menu_type_arret_page_cb, (XtPointer)3); /* le bouton pour quitter */ quitte_lecteur = create_text_button (forme_lecteur, "quitte_lecteur", commandWidgetClass, fin_lecteur, (XtPointer)NULL); XtAddEventHandler (popup_saisie, EnterWindowMask, False, (XtEventHandler)evenement_entre_widget, NULL); XtAddEventHandler (forme_lecteur, LeaveWindowMask, False, (XtEventHandler)sauve_l_ecran, NULL); XtAppAddActions (app_context, actions, XtNumber(actions)); classe_forme_copyright = formWidgetClass; #ifndef LOW_MEMORY if (!low_memory) { /* Calcul des Pixmaps de masquage des boutons */ unsensitive_pixmap_h = XCreateBitmapFromData (XtDisplay(topLevel), DefaultRootWindow(XtDisplay(topLevel)), unsensitiveh_bits, unsensitiveh_width, unsensitiveh_height); unsensitive_pixmap_b = XCreateBitmapFromData (XtDisplay(topLevel), DefaultRootWindow(XtDisplay(topLevel)), unsensitiveb_bits, unsensitiveb_width, unsensitiveb_height); /* * Raccourcis menu, timer */ /* "Fichier" */ for (i = 0; entree_fichier[i] != NULL ; i++) { if (i != LIGNE_BLANCHE && i != QUITTE && i != TERMINAL && i != RACCROCHER) { if (i == IMPRIME) { (void)create_pixmap_button (boite_haut, "btn_imprime_ascii", xpmButtonWidgetClass, (XtCallbackProc)imprime_page_courante_ascii, (XtPointer)NULL, printera_xpm, None, None, None, unsensitive_pixmap_h); (void)create_pixmap_button (boite_haut, "btn_imprime", xpmButtonWidgetClass, (XtCallbackProc)imprime_page_courante_videotex, (XtPointer)NULL, printer_xpm, None, None, None, unsensitive_pixmap_h); } else { sprintf (buf, "btn_%s", entree_fichier[i]); (void)create_pixmap_button (boite_haut, buf, xpmButtonWidgetClass, Selection_menu_fichier, (XtPointer)i, pixmaps_fichier[i], None, None, None, unsensitive_pixmap_h); } } } /* Enregistrement */ sprintf (buf, "btn_%s", entree_enregistrement[NOUVEAU]); (void)create_pixmap_button (boite_haut, buf, xpmButtonWidgetClass, nouvel_enregistrement, (XtPointer)NULL, nouveau_xpm, None, None, None, unsensitive_pixmap_h); btn_enregistre = create_pixmap_button (boite_haut, "btn_enregistre", xpmButtonWidgetClass, change_enregistrement, (XtPointer)NULL, camera_xpm, None, None, None, unsensitive_pixmap_h); btn_lecteur = create_pixmap_button (boite_haut, "btn_lecteur", xpmButtonWidgetClass, debut_lecteur, (XtPointer)NULL, film_xpm, None, None, None, unsensitive_pixmap_h); /* Appel direct */ if (nb_services >= 1 && strcmp (entree_compose[nb_services-1], "Direct") == 0) { btn_direct = create_pixmap_button (boite_haut, "btn_direct", xpmButtonWidgetClass, Selection_menu_compose_direct, (XtPointer)(nb_services-1), phone_xpm, None, None, None, unsensitive_pixmap_h); } /* Quitter */ btn_quitte = create_pixmap_button (boite_haut, "btn_quitte", xpmButtonWidgetClass, Selection_menu_fichier, (XtPointer)QUITTE, door_run_xpm, None, None, None, unsensitive_pixmap_h); la_cassete = create_pixmap_button (boite_haut, "la_cassete", xpmButtonWidgetClass, NULL, NULL, cassete_xpm, NULL, NULL, NULL, None); XtVaSetValues (la_cassete, XtNmappedWhenManaged, False, NULL); /* Creation du telephone */ teleph = create_bitmap_label (boite_haut, "teleph", teleph_bits, teleph_width, teleph_height); XtVaCreateManagedWidget ("glue", coreWidgetClass, boite_haut, XtNwidth, (rsc_xtel.petiteFonte ? 90 : 20), NULL); if (!rsc_xtel.petiteFonte) timer_minitel = XtVaCreateManagedWidget ("timer_minitel", timerWidgetClass, boite_haut, NULL); /* Boutons clavier Minitel */ for (i = 4 ; i < 14 ; i++) { String item = touches[i].nom; if (strcmp (item, "blanc") != 0) { sprintf (buf, "btn_%s", item); (void)create_pixmap_button (boite_bas, buf, xpmButtonWidgetClass, (XtCallbackProc)commandes, (XtPointer)touches[i].code, pixmaps_minitel[i-4], pixmaps_minitel_on[i-4], pixmaps_minitel[i-4], pixmaps_minitel_on[i-4], unsensitive_pixmap_b); } } } #endif /* LOW_MEMORY */ return (em); } /* * Positionnement du widget "w" par rapport au widget "r" */ static void positionnement_widget (r, w) Widget r, w; { Dimension xr, yr, xr_a, yr_a; XtVaGetValues (r, XtNx, &xr, XtNy, &yr, NULL); /* calcul des coordonnees absolues de la reference */ XtTranslateCoords (r, (Position)xr, (Position)yr, (Position*)&xr_a, (Position*)&yr_a); /* fixe les coordonnees centrees */ XtVaSetValues (w, XtNx, xr_a + 50, XtNy, yr_a + 50, NULL); } /* * Preparation du widget dialogue : * * - fixe le callback adequat sur le bouton Ok * - positionne le popup-shell * - affiche... */ static void prepare_dialogue (ok, popup, code) Widget ok, popup; int code; { if (!hand_cursor) hand_cursor = XCreateFontCursor (XtDisplay(top), XC_hand2); if (popup == popup_saisie) XtAddCallback (ok, XtNcallback, Validation_dialogue, (XtPointer) code); positionnement_widget (em, popup); XtPopup (popup, XtGrabNonexclusive); XDefineCursor (XtDisplay(popup), XtWindow(popup), hand_cursor); } /* * Popdown d'un menu (efface le popup-menu de l'ecran) */ static void Popdown (w, popup, call_data) Widget w, popup; XtPointer call_data; { /* * Si boite de saisie, on supprime le callback du bouton "Ok" */ if (popup == popup_saisie) XtRemoveAllCallbacks (ok_boite_saisie, XtNcallback); XtPopdown (popup); /* XSetInputFocus (XtDisplay(popup), PointerRoot, 0, CurrentTime);*/ } /* * Confirmation d'une erreur : destruction du popup d'erreur et du "dialog" * d'erreur */ static void Validation_erreur (w, client_data, call_data) Widget w; XtPointer client_data, call_data; { XtPopdown (popup_erreur); XtDestroyWidget (popup_erreur); XtDestroyWidget (message_erreur); } /* * Callback du bouton "Ok" d'une boite de saisie */ static void Validation_dialogue (w, code, call_data) Widget w; int code; XtPointer call_data; { Boolean flag_connexion; /* XSetInputFocus (XtDisplay(w), PointerRoot, 0, CurrentTime);*/ switch (code) { case K_Fin : /* quitte le programme */ XtVaGetValues (ecran_minitel, XtNconnecte, &flag_connexion, NULL); if (flag_connexion) { write (socket_xteld, CHAINE_COMMANDE_FIN, 1); sortie_violente = 1; break; } else ce_n_est_qu_un_au_revoir (); #ifdef NO_SEL_FILE case K_Sauve : /* sauve sur le fichier */ XtRemoveAllCallbacks (ok_boite_saisie, XtNcallback); XtPopdown(popup_saisie); strcpy (nom_fichier_sauve, XawDialogGetValueString(boite_saisie)); Sauve (); break; case K_Charge : /* charge un fichier */ XtRemoveAllCallbacks (ok_boite_saisie, XtNcallback); XtPopdown(popup_saisie); strcpy (nom_fichier_charge, XawDialogGetValueString(boite_saisie)); debut_lecteur (); Charge (); break; #endif /* NO_SEL_FILE */ case K_Compose : /* composition numero direct */ XtRemoveAllCallbacks (ok_boite_saisie, XtNcallback); XtPopdown(popup_saisie); if (strlen (XawDialogGetValueString(boite_saisie)) > 0) { strcpy (numero_courant, XawDialogGetValueString(boite_saisie)); init_xtel (); connexion_service (XawDialogGetValueString(boite_saisie)); } break; default : break; } } /* * Traitement du menu "fichier" */ /* ARGSUSED */ static void Selection_menu_fichier(w, option_choisie, garbage) Widget w; int option_choisie; /* client_data */ XtPointer garbage; /* call_data */ { #ifndef NO_SEL_FILE FILE *fp; extern FILE *XsraSelFile(); String name; #endif /* NO_SEL_FILE */ switch (option_choisie) { case SAUVE : #ifdef NO_SEL_FILE n = 0; XtSetArg (args[n], XtNlabel, rsc_xtel.string[0]); n++; XtSetArg (args[n], XtNvalue, nom_fichier_sauve); n++; XtSetValues (boite_saisie, args, n); prepare_dialogue (ok_boite_saisie, popup_saisie, K_Sauve); #else fp = XsraSelFile (top, rsc_xtel.string[0], rsc_xtel.string[2], rsc_xtel.string[3], rsc_xtel.string[4], nom_fichier_sauve, "w", NULL, (char*)&name); if (fp) { fclose (fp); strcpy (nom_fichier_sauve, name); XtFree (name); Sauve (); } #endif /* NO_SEL_FILE */ break ; case CHARGE : #ifdef NO_SEL_FILE n = 0; XtSetArg (args[n], XtNlabel, rsc_xtel.string[1]); n++; XtSetArg (args[n], XtNvalue, nom_fichier_charge); n++; XtSetValues (boite_saisie, args, n); prepare_dialogue (ok_boite_saisie, popup_saisie, K_Charge); #else fp = XsraSelFile (top, rsc_xtel.string[1], rsc_xtel.string[2], rsc_xtel.string[3], rsc_xtel.string[4], nom_fichier_charge, "r", NULL, (char*)&name); if (fp) { fclose (fp); strcpy (nom_fichier_charge, name); XtFree (name); debut_lecteur (); Charge (); } #endif /* NO_SEL_FILE */ break ; case QUITTE : prepare_dialogue (ok_confirmation_sortie, popup_sortie, K_Fin); break; default : break; } } /* * Menu "enregistrement" */ #ifdef NOTDEF static void demarre_enregistrement () { flag_enregistrement = True; XtSetSensitive (demarre, False); XtSetSensitive (arrete, True); #ifndef LOW_MEMORY if (!low_memory) XtMapWidget (la_cassete); #endif } static void arrete_enregistrement () { flag_enregistrement = False; XtSetSensitive (demarre, True); XtSetSensitive (arrete, False); #ifndef LOW_MEMORY if (!low_memory) XtUnmapWidget (la_cassete); #endif } #ifndef LOW_MEMORY static void cb_btn_enregistre (w, client_data, call_data) Widget w; XtPointer client_data, call_data; { if (flag_enregistrement) arrete_enregistrement (); else demarre_enregistrement (); } #endif /* LOW_MEMORY */ /* ARGSUSED */ static void Selection_menu_enregistrement(w, option_choisie, garbage) Widget w; int option_choisie; /* client_data */ XtPointer garbage; /* call_data */ { switch (option_choisie) { case NOUVEAU : cpt_buffer = 0; taille_zone_enregistrement = 1000; zone_enregistrement = realloc (zone_enregistrement, taille_zone_enregistrement); break; case DEMARRE : demarre_enregistrement (); break; case ARRETE : arrete_enregistrement (); break; case LECTEUR : debut_lecteur (); break; default : break; } } #endif /* NOTDEF */ /* * Traitement du menu "compose" */ /* ARGSUSED */ static void Selection_menu_compose(w, numero_choisi, garbage) Widget w; int numero_choisi; XtPointer garbage; { /* composition */ #ifdef DEBUG printf ("service uucp %s\n", definition_services[numero_choisi].nom_uucp); #endif init_xtel (); sprintf (buf, "\001%s", definition_services[numero_choisi].nom_service); connexion_service (buf); } /* ARGSUSED */ static void Selection_menu_compose_direct(w, numero_choisi, garbage) Widget w; int numero_choisi; XtPointer garbage; { n = 0; XtSetArg (args[n], XtNlabel, rsc_xtel.string[5]); n++; XtSetArg (args[n], XtNvalue, numero_courant); n++; XtSetValues (boite_saisie, args, n); prepare_dialogue (ok_boite_saisie, popup_saisie, K_Compose); } /* * Traitement du menu "procedure" */ /* ARGSUSED */ static void Selection_menu_procedure(w, numero_procedure, garbage) Widget w; int numero_procedure; XtPointer garbage; { #ifdef DEBUG printf ("Procedure numero %d\n", numero_procedure); #endif /* Composition du service */ /* chat_courant = procedures[numero_procedure].chat;*/ start_procedure (numero_procedure); init_xtel (); /* Si M1, on compose a la main... */ if (!nb_services) connexion_service (NULL); else connexion_service (procedures[numero_procedure].service); } /* * Affichage du copyright */ static void Affiche_copyright (w, client_data, call_data) Widget w; XtPointer client_data, call_data; { Pixmap pixmap_pf; if (!flag_copyright_affiche) { #ifndef NO_XPM XpmAttributes xpma; XtVaGetValues (top, XtNcolormap, &xpma.colormap, NULL); xpma.valuemask = XpmColormap; XpmCreatePixmapFromData (XtDisplay(top), XtWindow(top), pf_xpm, &pixmap_pf, NULL, &xpma); #else pixmap_pf = XCreateBitmapFromData (XtDisplay(top), XtWindow(top), pf_bits, pf_width, pf_height); #endif /* NO_XPM */ affiche_copyright (top, formWidgetClass, pixmap_pf); } } /* * Affichage d'une erreur donnee par code_erreur * * Remarque: On est oblige de creer le widget a chaque fois car la largeur * d'un widget dialog est calculee a la creation... */ void affiche_erreur(s, code_erreur) char *s; int code_erreur; { if (!hand_cursor) hand_cursor = XCreateFontCursor (XtDisplay(top), XC_hand2); if (code_erreur != 0) sprintf (buf, "%s : %s", s, sys_errlist[code_erreur]); else { if (s[0] == '[') strcpy (buf, rsc_xtel.erreur[s[1]-'0']); else strcpy (buf, s); } popup_erreur = XtCreatePopupShell ("popup_erreur", transientShellWidgetClass, forme_base, NULL, 0); /* * Boite d'erreur */ message_erreur = XtVaCreateManagedWidget ("message_erreur", dialogWidgetClass, popup_erreur, XtNlabel, buf, NULL); XawDialogAddButton (message_erreur, "ok_message_erreur", Validation_erreur, NULL); positionnement_widget (em, popup_erreur); XtPopup (popup_erreur, XtGrabNonexclusive); XDefineCursor (XtDisplay(popup_erreur), XtWindow(popup_erreur), hand_cursor); } /* * fonctions appelees dans lecteur.c */ /* validation/invalidation */ void lecteur_valide (flag) char flag; { XtSetSensitive (lecteur, flag); #ifndef LOW_MEMORY if (!low_memory) XtSetSensitive (btn_lecteur, flag); #endif /* LOW_MEMORY */ } /* Affiche/efface le lecteur */ void efface_lecteur () { XtPopdown (popup_lecteur); } void affiche_lecteur () { int type_arret = atoi(rsc_xtel.typeArret); if (type_arret < 0 || type_arret > 3) type_arret = 3; menu_type_arret_page_cb (type_arret_lecteur, type_arret, 0); XtPopup (popup_lecteur, XtGrabNone); } /* Affiche les compteurs */ void affiche_compteur_lecteur_caractere () { sprintf (buf, "%05d", numero_caractere_courant); n = 0; XtSetArg (args[n], XtNlabel, buf); n++; XtSetValues (compteur_lecteur_caractere, args, n); } void affiche_compteur_lecteur_page () { sprintf (buf, "%03d", numero_page_courante); n = 0; XtSetArg (args[n], XtNlabel, buf); n++; XtSetValues (compteur_lecteur_page, args, n); } /* Force le bouton STOP valide si appel de stop_rapide() */ void activation_bouton_stop () { /* Valide le STOP, invalide la PLAY */ n = 0; XtSetArg (args[n], XtNstate, False); n++; XtSetValues (play_lecteur, args, n); n = 0; XtSetArg (args[n], XtNstate, True); n++; XtSetValues (stop_lecteur, args, n); } xtel-3.3.0.orig/Config.tmpl0100644001424500142340000000233007242172757014407 0ustar ericperso/* Configuration Xtel * * Installation du démon INSTALLDEMON * Toolkit OSF-Motif MOTIF (pour les riches) * Pas de TERMIO NO_TERMIO (pour les intégristes BSD) * Pas de sélecteur de fichier NO_SEL_FILE (pour les nostalgiques) * Pas de jolis boutons LOW_MEMORY * Pas de lib Xpm NO_XPM * Fontes OpenWindows OPENWINDOWS (pour les malchanceux) * Utilisation de syslogd SYSLOG * Debug xteld DEBUG_XTELD * RedHat Linux REDHAT * Pas de popup-menu DONT_USE_POPUP (pb LessTif) */ /* Pour installer le démon */ #define INSTALLDEMON /* Pour générer avec OSF-Motif */ /*#define MOTIF*/ /* Pour ne pas utiliser TERMIO */ /*#define NO_TERMIO*/ /* Pour ne pas utiliser le sélecteur de fichier (sous Athena) */ /*#define NO_SEL_FILE*/ /* Pour les radins */ /*#define LOW_MEMORY*/ /* Pour ne pas utiliser XPM */ /*#define NO_XPM*/ /* Pour utiliser des fontes OpenWindows */ /*#define OPENWINDOWS*/ /* Pour utiliser syslog/syslogd */ #define SYSLOG /* Pour purify */ /*#define PURE*/ /* Pas de Télétel vitesse rapide */ /*#define NO_TVR*/ /* Pour debug du demon "xteld" */ #define DEBUG_XTELD /* Pour la distribution RedHat Linux */ #define REDHAT /* Pas de popup-menu (pb LessTif) */ #define DONT_USE_POPUP xtel-3.3.0.orig/xtel.c0100444001424500142340000004216607242201452013416 0ustar ericperso/* * xtel - Emulateur MINITEL sous X11 * * Copyright (C) 1991-1994 Lectra Systemes & Pierre Ficheux * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ static char rcsid[] = "$Id: xtel.c,v 1.20 2001/02/11 00:05:13 pierre Exp $"; /* * programme principal */ #define EXTERN #include "xtel.h" #include #include #include #include #include #include "patchlevel.h" #include "bitmaps/xtel.bit" #include "bitmaps/teleph.xbm" #include "bitmaps/teleph_mask.xbm" #ifndef NO_XPM #include #include "pixmaps/xtel.xpm" #endif /* NO_XPM */ static Colormap current_cmap; static Cursor teleph_cursor; static Pixmap pixmap_icone = None; static Boolean flag_execution = False; static char *procedure_executee = NULL; static char *copyright_string = "\n(C)1991-1998 LECTRA-SYSTEMES & Pierre Ficheux\n(C)1999-2001 Pierre Ficheux"; static XColor black, white; /* liste des noms des boutons MINITEL */ struct definition_touche touches[] = { {"videotex", "V"}, {"teleinfo_ascii", "A"}, {"teleinfo_fr", "F"}, {"blanc", NULL}, {"envoi", "A"}, {"retour", "B"}, {"repetition", "C"}, {"guide", "D"}, {"annulation", "E"}, {"sommaire", "F"}, {"correction", "G"}, {"suite", "H"}, {"blanc", NULL}, {"connexion_fin", "I"}, }; /* * Options (ressources) propres a XTEL * * -serveur *serveur specifie la machine serveur * -service *service specifie le service * -petite *petiteFonte taille de la fonte * -ng *nGris force les niveaux de gris * *commandeImpression comme son nom l'indique * *nomService nom du service tcp * -low *lowMemory pas de jolis boutons * -private *privateColormap colormap privee */ static Boolean defaultFalse = False; #define XtNserveur "serveur" #define XtCServeur "Serveur" #define XtNpetiteFonte "petiteFonte" #define XtCPetiteFonte "PetiteFonte" #define XtNlowMemory "lowMemory" #define XtCLowMemory "LowMemory" #define XtNnGris "nGris" #define XtCNGris "NGris" #define XtNcommandeImpression "commandeImpression" #define XtCCommandeImpression "CommandeImpression" #define XtNcommandeImpressionAscii "commandeImpressionAscii" #define XtCCommandeImpressionAscii "CommandeImpressionAscii" #define XtNnomService "nomService" #define XtCNomService "NomService" #define XtNboutonRaccrocher "boutonRaccrocher" #define XtCBoutonRaccrocher "BoutonRaccrocher" #define XtNprivateColormap "privateColormap" #define XtCPrivateColormap "PrivateColormap" #define XtNstring1 "string1" #define XtNstring2 "string2" #define XtNstring3 "string3" #define XtNstring4 "string4" #define XtNstring5 "string5" #define XtNstring6 "string6" #define XtNstring7 "string7" #define XtNstring8 "string8" #define XtNstring9 "string9" #define XtNerreur1 "erreur1" #define XtNerreur2 "erreur2" #define XtNerreur3 "erreur3" #define XtNerreur4 "erreur4" #define XtNtypeArret "typeArret" #define XtCTypeArret "TypeArret" static XtResource ressources[] = { { XtNserveur, XtCServeur, XtRString, sizeof(String), XtOffsetOf(ressources_xtel, serveur), XtRString, "ondee" }, { XtNnGris, XtCNGris, XtRBoolean, sizeof(Boolean), XtOffsetOf(ressources_xtel, nGris), XtRBoolean, (XtPointer) &defaultFalse }, { XtNpetiteFonte, XtCPetiteFonte, XtRBoolean, sizeof(Boolean), XtOffsetOf(ressources_xtel, petiteFonte), XtRBoolean, (XtPointer) &defaultFalse }, { XtNcommandeImpression, XtCCommandeImpression, XtRString, sizeof(String), XtOffsetOf(ressources_xtel, commandeImpression), XtRString, "lpr -h %s" }, { XtNcommandeImpressionAscii, XtCCommandeImpressionAscii, XtRString, sizeof(String), XtOffsetOf(ressources_xtel, commandeImpressionAscii), XtRString, "lpr -h %s" }, { XtNnomService, XtCNomService, XtRString, sizeof(String), XtOffsetOf(ressources_xtel, nomService), XtRString, "xtel" }, { XtNboutonRaccrocher, XtCBoutonRaccrocher, XtRBoolean, sizeof(Boolean), XtOffsetOf(ressources_xtel, boutonRaccrocher), XtRBoolean, (XtPointer) &defaultFalse }, { XtNlowMemory, XtCLowMemory, XtRBoolean, sizeof(Boolean), XtOffsetOf(ressources_xtel, lowMemory), XtRBoolean, (XtPointer) &defaultFalse }, { XtNprivateColormap, XtCPrivateColormap, XtRBoolean, sizeof(Boolean), XtOffsetOf(ressources_xtel, privateColormap), XtRBoolean, (XtPointer) &defaultFalse }, { XtNtypeArret, XtCTypeArret, XtRString, sizeof(String), XtOffsetOf(ressources_xtel, typeArret), XtRString, (XtPointer) "0" }, { XtNstring1, XtCString, XtRString, sizeof(String), XtOffsetOf(ressources_xtel, string[0]), XtRString, (XtPointer) "String 0" }, { XtNstring2, XtCString, XtRString, sizeof(String), XtOffsetOf(ressources_xtel, string[1]), XtRString, (XtPointer) "String 1" }, { XtNstring3, XtCString, XtRString, sizeof(String), XtOffsetOf(ressources_xtel, string[2]), XtRString, (XtPointer) "String 2" }, { XtNstring4, XtCString, XtRString, sizeof(String), XtOffsetOf(ressources_xtel, string[3]), XtRString, (XtPointer) "String 3" }, { XtNstring5, XtCString, XtRString, sizeof(String), XtOffsetOf(ressources_xtel, string[4]), XtRString, (XtPointer) "String 4" }, { XtNstring6, XtCString, XtRString, sizeof(String), XtOffsetOf(ressources_xtel, string[5]), XtRString, (XtPointer) "String 5" }, { XtNstring7, XtCString, XtRString, sizeof(String), XtOffsetOf(ressources_xtel, string[6]), XtRString, (XtPointer) "String 6" }, { XtNstring8, XtCString, XtRString, sizeof(String), XtOffsetOf(ressources_xtel, string[7]), XtRString, (XtPointer) "String 7" }, { XtNstring9, XtCString, XtRString, sizeof(String), XtOffsetOf(ressources_xtel, string[8]), XtRString, (XtPointer) "String 8" }, { XtNerreur1, XtCString, XtRString, sizeof(String), XtOffsetOf(ressources_xtel, erreur[0]), XtRString, (XtPointer) "Erreur 0" }, { XtNerreur2, XtCString, XtRString, sizeof(String), XtOffsetOf(ressources_xtel, erreur[1]), XtRString, (XtPointer) "Erreur 1" }, { XtNerreur3, XtCString, XtRString, sizeof(String), XtOffsetOf(ressources_xtel, erreur[2]), XtRString, (XtPointer) "Erreur 2" }, { XtNerreur4, XtCString, XtRString, sizeof(String), XtOffsetOf(ressources_xtel, erreur[3]), XtRString, (XtPointer) "Erreur 3" } }; /* * Sauve l'ecran */ void sauve_l_ecran (w, pevent, params, nb_params) Widget w; XEvent *pevent; String *params; Cardinal nb_params; { videotexSauveEcran (ecran_minitel); } /* * fonction d'init */ void init_xtel () { videotexInit (ecran_minitel); clavier_minitel_valide (False); XFlush (XtDisplay(ecran_minitel)); } /* Handler d'erreur X */ static int xtel_X_error_handler (display, err) Display *display; XErrorEvent *err; { char msg[80]; XGetErrorText (display, err->error_code, msg, 80); fprintf (stderr, "\n\nXTel ===> Erreur X: %s\n\n", msg); fprintf (stderr, "\tVerifiez votre environnement X, si ce comportement s'avere\n"); fprintf (stderr, "\tetre un bug de XTel, executez XTel sous debugger, posez un\n"); fprintf (stderr, "\tpoint d'arret sur la fonction \"xtel_X_error_handler\" et\n"); fprintf (stderr, "\tenvoyez le detail de la pile d'appels a \"pierre@rd.lectra.fr\".\n\n\tMerci et joyeuses Paques.\n\n"); } #ifndef NO_XPM /* Construction d'icone XPM, pique dans xpaint ! */ static void SetIconImage(w) Widget w; { static Pixmap icon = None; Window iconWindow; Screen *screen = XtScreen(w); Display *dpy = XtDisplay(w); XpmAttributes xpma; xpma.valuemask = XpmReturnInfos; /* ** Build the icon */ iconWindow = XCreateSimpleWindow(dpy, RootWindowOfScreen(screen), 0, 0, 1, 1, 0, black_pixel, black_pixel); XpmCreatePixmapFromData(dpy, iconWindow, xtel_xpm, &icon, NULL, &xpma); if (icon) { XResizeWindow (dpy, iconWindow, xpma.width, xpma.height); XSetWindowBackgroundPixmap (dpy, iconWindow, icon); XtVaSetValues (w, XtNiconWindow, iconWindow, NULL); } } #endif /* NO_XPM */ void Usage () { fprintf (stderr, "Options disponibles:\n"); fprintf (stderr, "-ng\n\tForce le mode niveaux de gris\n"); fprintf (stderr, "-petit\n\tSelectionne la petite fonte\n"); fprintf (stderr, "-br\n\tValide le bouton pour raccrocher\n"); fprintf (stderr, "-service service_xtel\n\tSelectionne le nom TCP du service XTel\n"); fprintf (stderr, "-serveur serveur_xtel\n\tSelectionne le nom du serveur XTel\n"); fprintf (stderr, "-low\n\tPas de jolis boutons\n"); fprintf (stderr, "--exec-procedure, -e nom_procedure\n\tExecute une procedure\n"); fprintf (stderr, "-private\n\tForce une colormap privee\n"); exit (1); } static void execute_procedure (w, proc, pevent) Widget w; char *proc; XEvent *pevent; { Boolean fc; int i; XtVaGetValues (w, XtNconnecte, &fc, NULL); if (!(fc || flag_execution)) { flag_execution = True; /* Composition du service */ start_procedure ((i = get_proc_index(proc))); init_xtel (); connexion_service (procedures[i].service); } } /* Affichage/effacement du telephone de connexion */ void affiche_telephone () { #ifdef LOW_MEMORY XDefineCursor (XtDisplay(ecran_minitel), XtWindow(ecran_minitel), teleph_cursor); #else if (!rsc_xtel.lowMemory) XtMapWidget (teleph); XDefineCursor (XtDisplay(ecran_minitel), XtWindow(ecran_minitel), teleph_cursor); #endif } void efface_telephone () { #ifdef LOW_MEMORY XUndefineCursor (XtDisplay(ecran_minitel), XtWindow(ecran_minitel)); #else if (!rsc_xtel.lowMemory) XtUnmapWidget (teleph); XUndefineCursor (XtDisplay(ecran_minitel), XtWindow(ecran_minitel)); #endif } /* Creation du curseur */ void create_teleph_cursor (top) Widget top; { Pixmap shape, mask; Display *dpy = XtDisplay(top); shape = XCreatePixmapFromBitmapData (dpy, DefaultRootWindow(dpy), teleph_bits, teleph_width, teleph_height, 1, 0, 1); mask = XCreatePixmapFromBitmapData (dpy, DefaultRootWindow(dpy), teleph_mask_bits, teleph_mask_width, teleph_mask_height, 1, 0, 1); teleph_cursor = XCreatePixmapCursor (dpy, shape, mask, &black, &white, 0, 0); } /* * Programme principal */ main(ac, av) int ac; char **av; { unsigned char c; static char l; char buf[256]; struct passwd *pw; struct stat statb; Boolean flag_point_xtel = False; XColor exact; int i; Widget topLevel; if (prototype_xtel == 0) { if (PATCHLEVEL != 0) printf ("XTEL %d.%d.%d, Emulateur MINITEL/I-MINITEL\n", version_xtel, revision_xtel, PATCHLEVEL); else printf ("XTEL %d.%d, Emulateur MINITEL/I-MINITEL\n", version_xtel, revision_xtel); puts (copyright_string); } else { if (PATCHLEVEL != 0) printf ("XTEL %d.%d.%db%d [beta], Emulateur MINITEL %s\n", version_xtel, revision_xtel, PATCHLEVEL, prototype_xtel, copyright_string); else printf ("XTEL %d.%db%d [beta], Emulateur MINITEL %s\n", version_xtel, revision_xtel, prototype_xtel, copyright_string); } taille_zone_enregistrement = 1000; mode_emulation = MODE_VIDEOTEX; /* * Allocation de la zone d'enregistrement par defaut */ if ((zone_enregistrement = malloc (taille_zone_enregistrement)) == NULL) { perror ("malloc"); exit (1); } XtSetLanguageProc (NULL, NULL, NULL); if ((topLevel = init_toolkit (&ac, av)) == NULL) { fprintf (stderr, "Erreur initialisation Toolkit, dommage...\n"); exit (1); } XSetErrorHandler (xtel_X_error_handler); /* * Options annexes */ i = 1; while (i < ac) { if (strcmp (av[i], "-e") * strcmp (av[i], "--exec-procedure") == 0) procedure_executee = av[++i]; else if (av[i][0] != '-') { strcpy (nom_fichier_charge, av[i]); } else Usage (); i++; } if (PATCHLEVEL != 0) sprintf (buf, "%s-%d.%d.%d", xtel_basename(av[0]), version_xtel, revision_xtel, PATCHLEVEL); else sprintf (buf, "%s-%d.%d", xtel_basename(av[0]), version_xtel, revision_xtel); XtVaSetValues (topLevel, XtNtitle, buf, XtNiconName, buf, NULL); /* * lecture des ressources specifiques */ XtGetApplicationResources (topLevel, &rsc_xtel, ressources, XtNumber(ressources), NULL, 0); /* Colormap */ if (rsc_xtel.privateColormap) { current_cmap = XCopyColormapAndFree (XtDisplay(topLevel), DefaultColormapOfScreen (XtScreen (topLevel))); XtVaSetValues (topLevel, XtNcolormap, current_cmap, NULL); } else current_cmap = DefaultColormapOfScreen (XtScreen (topLevel)); /* Noir et blanc */ if (!XAllocNamedColor (XtDisplay(topLevel), current_cmap, "white", &white, &exact)) { fprintf (stderr, "Erreur XAllocNamedColor white\n"); } else white_pixel = white.pixel; if (!XAllocNamedColor (XtDisplay(topLevel), current_cmap, "black", &black, &exact)) { fprintf (stderr, "Erreur XAllocNamedColor black\n"); } else black_pixel = black.pixel; /* * Lecture des services disponibles */ if ((socket_xteld = c_clientbyname(rsc_xtel.serveur, rsc_xtel.nomService)) < 0) { fprintf (stderr, "Erreur de connexion au serveur XTEL...\n"); exit (1); } /* Transmet le nom d'utilisateur */ if ((pw = getpwuid(getuid())) == NULL) { perror ("getpwuid"); exit(1); } l = strlen (pw->pw_name); write (socket_xteld, &l, 1); write (socket_xteld, pw->pw_name, l); nb_services = 0; for(;;) { write (socket_xteld, CHAINE_COMMANDE_SERVICE_SUIVANT, 1); read (socket_xteld, &c, 1); if (c == VALEUR_REPONSE_PLUS_DE_SERVICE) break; else { /* transmet la longueur de la chaine */ int l = c; if (l != 0) { read (socket_xteld, buf, l); buf[l] = 0; definition_services[nb_services].nom_service = build_name (buf); entree_compose[nb_services] = definition_services[nb_services].nom_service; write (socket_xteld, CHAINE_COMMANDE_NOM_UUCP, 1); read (socket_xteld, &c, 1); l = c; definition_services[nb_services].nom_uucp = (char *) calloc (1, l+1); read (socket_xteld, definition_services[nb_services].nom_uucp, l); definition_services[nb_services].nom_uucp[l] = 0; #ifdef DEBUG printf ("%d %s %s\n", nb_services, definition_services[nb_services].nom_service ,definition_services[nb_services].nom_uucp); #endif nb_services++; } else { #ifdef DEBUG fprintf (stderr, "entree %d interdite\n", nb_services); #endif } } } close (socket_xteld); /* * Procedures et protocoles */ sprintf (buf, "%s/.xtel", getenv ("HOME")); flag_point_xtel = (stat (buf, &statb) == 0); /* Procedures */ /* Ouvre le fichier $HOME/.xtelproc */ if (flag_point_xtel) sprintf (buf, "%s/.xtel/procedures", getenv ("HOME")); else sprintf (buf, "%s/.xtelproc", getenv ("HOME")); nb_procedures = init_procedures (buf); /* Verifie la procedure a executer si il y lieu */ if (procedure_executee && get_proc_index (procedure_executee) < 0) { fprintf (stderr, "procedure %s inexistante :-(\n", procedure_executee); exit (1); } /* * Protocoles de telechargement */ if (flag_point_xtel) sprintf (buf, "%s/.xtel/protocols", getenv ("HOME")); else sprintf (buf, "%s/.xtelproto", getenv ("HOME")); nb_protocoles = init_protocoles (buf, &protocoles[0]); /* * Initialisation des widgets */ if ((ecran_minitel = init_widgets (topLevel)) == NULL) { fprintf (stderr, "Erreur initialisation widgets\n"); exit (1); } /* Creation du curseur telephone */ create_teleph_cursor (topLevel); /* * Contruction de l'icone */ XtVaGetValues(topLevel, XtNiconPixmap, &pixmap_icone, NULL); if (pixmap_icone == None) { #ifdef NO_XPM XtVaSetValues (topLevel, XtNiconPixmap, XCreateBitmapFromData(XtDisplay(topLevel), XtScreen(topLevel)->root, xtel_bits, xtel_width, xtel_height), NULL); #else SetIconImage (topLevel); #endif /* NO_XPM */ } XtRealizeWidget(topLevel); /* XtAddCallback (ecran_minitel, XtNmodeCallback, (XtCallbackProc)selection_mode_emulation, (XtPointer)"A"); XtAddCallback (ecran_minitel, XtNmodefrCallback, (XtCallbackProc)selection_mode_emulation, (XtPointer)"F"); XtAddCallback (ecran_minitel, XtNenregCallback, (XtCallbackProc)enregistre_caractere, (XtPointer)NULL); */ init_xtel (); XtAddEventHandler (topLevel, LeaveWindowMask, False, (XtEventHandler)sauve_l_ecran, NULL); if (procedure_executee) XtAddEventHandler (ecran_minitel, ExposureMask, False, (XtEventHandler)execute_procedure, (XtPointer)procedure_executee); if (nom_fichier_charge[0]) { if (!Charge ()) debut_lecteur (); } /* attente evenements */ XtAppMainLoop (app_context); } xtel-3.3.0.orig/xtel.gif0100444001424500142340000013227606703332557013757 0ustar ericpersoGIF87a–Š÷ÿÿÿÿ$?ÿ²G¾¾¾ÿp€/OOÿÿÿ¥ÿ×ÿúÍÿÿ¿¿¿çççooo°°°€ÐÐÐ``` R-Í…?.‹WuuuÏÏÿÿ€€ÀÀÀ‡Îë²""˜d0¸dd0üüüaeDzvUwg@‹{Y?7T8“‡a™–n—yF§Œj¬™pŸ¥yXW2<'rX*WG kJŽl:³—Vµ§˸ØÉž¸·ŽÈª„ûûÛïéÆÓ×­Ùé§êÚ®ÇÇ¡øù¬­ˆS3çÏ¥ôç°ÑšY ‰NŠ^)s= °x@Ϧfû×}õÆqï¸fȉIÙ¶oìª^M(- Lm‹2WqT\f5G#UiA/8, dyŠn‡”bls>V*knIs‹H„xNXX9’ŒŽ’W†yw¨S—© ¹´¡ ÜìÚÆÊ¿²Î~úõâ*&+³Éf¸¹_¶™r„e>ßå„ÊnUI"P6N/êЄº¨téÕ½õ«‰I¯eGš="¼BÔvYÆQ5ìoÏcE›·]­Øí|¥¿Bh„Jxœ_ºK{²P‡¹fžÈŠ¶Ð˜Èáh†€z–¤§ÉÙÁßéÃîûf{{Ýöñ3OG–²¬ 7àâÌ  (‘¤¡ÃÍÈôùç‹x—Ÿ}KX8¯²’·¾ esG_bD09‘oÚÙ±1G GJ+|‡ULg4vyQ¦§…ÉÇ¢-+ 8V!f†EÉÖ¶}ŸbRu4,–Šþ H° A*\Ȱ¡Ã‡#JœH±¢Å‹3jÜȱ£Ç CŠI²äÁ„& @™²¥Ë—0cÊœI³¦Í›8s\y¥€Ÿ@ƒ Ê“ÀУH“*]Ê´©Ó§P£JJµªÕ«X³jÝʵ«×¯`Ê [tªÏ•hÓª]‹p­Û·pãÊK·®Ý»xóêÝË·¯ß¿€ L¸°áÈ+n{×èYÅ#KžL¹²å˘3kÞ̹ó_Od©³´éÓ¨S«^ͺõKÒa;< º(DÛ®sëÞÍ»·ïßÀâž-›aYÑF›–˼¹óçУKŸN½ºõëØ•ûÔš»ãÚÛ™þ.ÏN¾¼ùóXHª^©úöGᣟO¿þùñKñ+=¾»øðö(à€ÐÉ7”BÁ‡à{ëèàƒZ¥_RË ÷ޏŸ†vèa‡ ®ÇàO# € R'šØà‡,¶á„HUã…´eè_~º¨ãŽØ…Hbƒ>¦Ô{(®Èã‘HZãQ22Icmý%gah9&iå•^•¨â\ ™ ‘@y‰å˜dJ¨á@ÕäPiR ¥RÎèfreÖi§T†8¢ž'¦(æ€ ”~ɵ9èvtªùäwpþ”(Q‹ *é¤*Êçã`_¦”vZ&¡ª‰¨œÎIã[‘zª*–—¶Gä–þ^¶ºâŸ«ÖÚ¢~i‰ÚÝ£ƒFŠœSKÚ*l„—nY)œ†ùª±Ìëì­U²9ª“¦þêݳØf«í¶,«kœÔ–ê-QÑrkî¹è¦Ëܸ‡v—¯Q[®ºôÖkï½Þ˜/¯1Öhêµø,ðÀö²›êP¦ÅX] {æðÃG,ñÄWlqg Ï•±\_ìñÇ ‡,òÈ$—l2];= òÊ,·ìòË0Ç,óÌ4×lóÍ8ç¬óÎ<÷ìóÏ@-ôÐDmôÑH'­ôÒ>·ÓPG-õÔTWmõÕXg­õÖ\wý2Ky-öØd—möÙh§­öÚLûû´ÊÄ-÷Üt×m÷Ýxç­÷þÞ|÷í÷߀.øà„nøáˆ'®øâŒ7îøãG.ùß+»=ÀÊ“g®ùæœwîùç ‡.ú褗nz•¿I%æ°íúë°Ç.ûì´×¾u¨«l9ë¶÷îûïÀ/üðYãž:£«ÃÝ:ñÌ7ïüóÐG/»ñº«þöqK¯ýöÜwïý÷;SÿÀîʃoþù觯>íâ“ýòëÇ/ÿüô×tûÖ_^¾ýü÷ïÿÿüÃò®—=ð€L`óððNä_"HÁ¡1hfö?™1è‚P3è2"íƒï‰š µ÷A¢­°j($¡Ñ^Ø2fm‚8 ¡K¸2Ö°fþ>¬à S³ †/wãËß=C•Ù°†F aƒÃ)í‰PiÖD¡m‘iU<š¥¨EæpŒcô ðÒ8;ò0ht`‹ÈF˜}1iwÔZ§¶Ç®ˆ¶{! ¥ÖGªÕq‡=;$Ûù:7öphqÌÐéhGºQ„—´$ 1ÉÈ-rò8$¡#¥J'Š2“&äd7ÊOB”¤|æEùÈh"Ò‰×D¤5©‰Í3Nó›Û$1MÉDšE2yïãb•IÄ03–¹$§èNc¢Ð– þŒg>Û¹Ï~VQ–ü¼g,uÆLxS ä|'BÚEœýR˜ú\&*YiOMBô þ”§C_æMlBÓŒà¬&H»©Í‘‚4œÔô¦4;zÒ’2²‘›Df%͉D÷‰Æ+Õ0Âò©‘µ¨Z§JÑJöªUÅç :Ï…jö©]¬f?ÛXÏjt­ÂžíŸŸV Èþßݵ‘Ï[ã(ÇSÎò–»¼+¹ÌgNóîżæ8ϹÎ}wóûüç@7[σNô¢]jC?ºÒ—ÎtŸIwPºÔ§Nõª[ýêXϺַÎõ®{ýë`»ØÇNö²›ýìhO»Ú×Îö¶»ýípçú9ˆ½¸ÛýîxÏ»Þ÷Î÷¾ûýà?w96ýðˆO<ÏܧøÆ;þñ…Ï3ä'Oy¦»˜Ï¼æ7ÏùÎ{¾ó+û¼èGOz „¾ô¨OýéSÏzѯ¾õ°ßüëcOûÙÓö¶¿=ës¯{ÔWÞv—ï=ì+À{ዞø*3~ë‘ÿ峞ùÎO=ô£_úéSôÖ¿þç³þ¯ýÎ3ÿ÷² ¾ÆOþò›ÿüèO?ù+0}õ»ÿýêgÿéáOÿúË?ù¨¿þÝÿæçÿh~ý‡yX€ã7€ÿg€ˆ€ € Ø€û×ÝãXx5˜Ð<âú÷€H ‚ï7‚$íw‚%˜‚*ˆ‚óׂ.ˆ0ƒþ7ƒé'Û£X5:˜ÌÓ6(€,„ë7„D(&H„I„KhƒM8ƒOƒQØ‚8Ø<¸2؃4W(3]øY¨…`H<@x„Hh„Jˆ†L¨†NȆPè†R‡T(‡*‚p‡x˜‡z¸‡|˜‡åW…ÄS*#ˆHCˆ0Cˆþ†ø2‰ø;e(ðˆ&r8çg‚“‰ÿ4‰•H‡'8…u‡1Ô€žØ‰œH‚£hŠ,è‘؇¬èø}V¸…`(‹G³ˆ-ƒˆ´¨ˆ¹ÈˆVƒä7‰ 0ŒÄXŒÆhŒŒBø‚ãŒÂxŒÐxŒÉ¨‰¯ÈŒð‡‰(T2XØøAÚè‹é‡ P€ê!Š¥‚Shr˜Žh‡êò8ô­Ø‡ßè<¸ø…Ec‹,³^¸‹¾S†ÎIŒÓøˆË¸Íx‰y I‰ßH€ÜHy‘ó™€×ˆ‘™‘é~âHŽæ¨‘ xŠêȆïPp0yþ,IŽï!‚œ˜  =ù“>i÷¸‡ù‹Wè6sºÈ·(‹H9ˆÙ;Œi¹àèˆTi•W Y’ôG•@–òˆByŽEhîg–y‘jy€,XpäXŽ% rðîI-˜À )˜qyƒrÈx˜6ÉŒªø;é“’ù“B©Šê1”EÉ<É3Jé2O9‹G•X(šµ3•Œoù–a¹– É•§é–©™–Ê(–Y–i™‘ny˜§H–Л¾ù›¾‰›´â(ãx—½ùO|É–iÈ–TYô˜ÑÙ’Ñ9˜üŠÄh‘þɘ4H‘ Š ™T ”=Y™ r™ˆNIš3³ƒžÉž›yˆì9;S™Œ°›9›¬¹•ÁhŸø‰‘«)—̉~dI•¹Yé&) ­©~÷›  ´9˜Ä™—&·—ög„݉Zéðœ/“,¢09¢1)“4Ùi~Ï8ŒÀê‘ó¸ð)ž“”wøA蹟ú¸žL™”>øžA:š¡Y¤P‰¤´C—øŸp©Ÿ ÊŸMê¤õ¥g8 çW ¶™‘¸™  z¥ š~¼ œdŠ^J›z °lÚ¦ °¦lª pð¥5:„vÚ€_:‚ÏI¡êÑ’€þ‚J˜)Š˜XÚ¢ ð¢T™-*4ª¢äž7™@)”<ÚŠé9<ñ©3Ù”JÚ©D:»®CÛ¡ ø˜ážòJ™&G”>ªÿš:È…ž»ƒ_†=8†¤jµå‡µ µ[[¥®j¬W ¶ó¨µOúº ¬,:±Û¥%»Žò¸±¿Yˆz· kŒr[·Ëy·Ð’{º§zË¼Í ½¦„ªvþ™· ¨&K 0ª¸Òȳ0Ê2Š’;©Èj´9J¯ï¡´š{¯9¨…óY3ð+óKµ[pÖ¨º¬Û°®›°}«ºYK»ýÛµ°Û–»j–ÿT–Û¬ÂZ¸~Z¼!ˬoê¬É»•(‹­ê‘-ùO€Á Á|[À,¨˜8¨5Ù®az¸Þ+â[ŒÂȸùŽJ›”{£—«£y¸¾–Ù¾¶ú<£º>h¿í)†? ¿¦+<¥Šš³»¿³šŸ¶;‚ÌÄM\–d›¨ñØÀj+ÂYzÅTŠ“Zü¡LŒÇ;Á…K´xº¼|ú¡jì’ÐÆm½i­·;€ïá’ջǀzÇ€Çþzl§O˜¸Ä£,lŒ0<¾1¼ E»“–Š´z¨Ã;쇛«™þ3Ÿù3Rk¤§‹¿­©¿L̵åûµ¦ºÄRìÄþûÅ'ë¨m¯¬›j(Œšš® Ë9 ·a\ŒtKÆvkÁhœÁçÈÆÄ¨ÌÛÁ¬‘t짃‰xìÇÿäÇÒŒÇ$ܲ'»Â ¾†œÍÈØÂ2ÊÂŒœŠïj¹ñJž•©´ôÊ´•¬žùŠÉ¢¹¯8³ÉIÚÉx†N[Ê̺¢¬°+Å­[« ËúË3l¸*ÐMœ=½¼ËÌ*ƾ\ÁÇÌjŒ² Å|Ìq¬ÆËŒ§úÌxŒ~LÒ#]ÒêQþÒpÂuœ¥Þ»¨d©ÍŠz®>;ŒèʨkK©•{´åÉõŠëÌ©—,ŸE Ï7#Ï IÏtwÏJœÏŒÊÜÒ YÊþ,¶­¡° ¼ZÝ›m±Âh[­Õ]ýÕ·Ê*ÁrZÆ( ÌÌ{Â×Ú¼rýÖjùÑÐê’|Ò#íÌLÍ/Ù× ÍMÈß,Ó‡\Œ‰|®åÎî ¯G‹Ãè|Î< ˆBÝÎD½”™ìΖ½”JmxLí–§<À£<ÕMíÔ գЯ¼Ú¸ÌÚ®ÝÚ¸ÖýŲýÚ¶ Û¬-Ûf}¸=ÆÎŒ'Ü0™Úx[å÷¼ÆM~œÆ}K¨È#—½ïþaÒxl¸„ Ó‡œ®‹Ë¨-zÓ0šÓç»Ónºê+É?íŠAí´CÍÙDšÙ—ÔšÝÙ’ÇÔÁXÕªªÀÕPìŒ "Å ’ߣ½ÐUÔÚ»=~C®ËrÁlª¿ýàŽ¡´½¼È·vÝ d ¨z¼áÖû×Ë €ÌØwÛBë¢1È‹ý¢6ÍÝàÞñŠBxX¯ë»´MåžÛ >·íà¾å.Õk\á*{á·ú¡fiÂt½zlàYì§$>£…<ÓÞ¾‹º³:+âàãâ£1^ÞþöX™5<7þÎîýÞQ¿±“ÄG.ÅI®ßE¾èŠžäŽÛ’îÕ1]-ÐÃ9éO^é—îÕW½¬å[þà]úç¼)æë·µ<ì·z\Ý´Í%ŽâåʨÛÓZœÃ–›£=9É{.Ùèí¾–¼ã š4.įƒè‰Îº‹ÎèùëèHéÃIå±\¦ëêÕV¾¶Pîä œÛånà½å}=ê¿]êg\˜§^˜Å ï{Ëܪ¼Å w¸{~ÜÜ/ýÍ·®Ø¹ÎÝ.Êë½îë7|©ÄÔÆÎÎóß…¸Þ<<Î~¢û{¢FžÚCNñL “ŸéØîÁÛéå^ÛšîþÕÚ.òŸŽå žîêÜpûî§ï|ꪾÜå 2Ív~¬ýÃnçïÅŸÃ<=¯ χþ;Ë®ìŸì=îÉR:‰§ùì©*ÜCŽñÀ8õ(Å1yõ×^ò±­í½Ú‚̂߮é œcé)ÏËèÞòëþòÒJá2?­x+­Lï^Þ€ÕkÒ—~š¸=ïï@ð;;¼w·ä”ê±CYì=̹XÄÈìœÙ¹Flù®ƒèZÿˆ°ªÂÝùJ¾ßROõÛõîñ`ïÕYÖ½©úS^Ë®mo¼,ê-ÏîÐ*×y/×¾ÿû|êû7Ï÷ZžÇ;¬êуŸÍ†¿Øeþl‡}¸øÒ¯©éíÃó˃×O†>NÚ ú2Yõ¡ïõÿ›õ¦úŸúÞŽí«ïÊàêû&Oûµ?²=Ò0 Ü÷“.ßܼ߼ïáÁ‘!C‚D@ÂB *<€HCŠ-^”@°€F‚ :„ø@"F‚:$@‰’ÃJ–+ b¤2âÄ…lÞĹ€Nž;}.À4æÃEEšTéR¦MuUêÔ§U«NÅêÀêV®]™ @@X±„ÉpÂÚµضpÀÀºuë¾][Q¦Hš ñº}{ ®]€ßê%Ê—a€?vòdÉ °¸7mFÊ%þ~l3b´}3*XR5ÊÔ `€!.ÁhÏ>0´tÅŽ½}ÿÞ›ôL˜Å/Øà;sâÍǘLÙÒ¥Gã ™÷ š½çöŸ;³ëö^üxòåÍŸGžìذcÏWøïàÂwñWŸ­a¸õíâ¿Í‚#°ÀË.Ò¬¯üíÀåv[ µÕXKÉ5Øh³­. 3/¿ê>¬.A«C6ê4¤çNjé¥E¬)» ¸£Ñ;œ:L/Gwä±G¿jo=³ ôK¾Àèó@)úk>ÿì;¬Ãæ$¸¬J+¯ÄKŒ`d(K/¿tðAø @ )t Öd³Í5sûèºçÜþRN:U„ &.+iº;¹”Q»îjê&D4QEe4$!ƒ|ÏÃ"ÛzòI%¥L1°J“¼S‹ÀµJ=í¤(ÔPG%ò´Ô&\5 ßÜÔÓ;gµ.UZÉìÕ1?ÌuV@qPa õàÐFE6Yez´¬H§”€-ëTV&ךö·jã´õÖ÷ôö[R @à€躌A8Åí6ÜâÀõ6€t•Ô]ã~Ö&B‡µÉØeÿ8àD›u¯]{$õàwV¸NƒævÌ`(àÜÒ îE†!^Ra~d|óE9Pf¹e—Õ Ò’!†äˆëµùfhs®uÌDþË6€uCü˜çšs>Úæ¤MNìe§Ÿ†Z)‚‡Ü•ç…–¦¹h¤µVšk¦gnë°½Îl…÷Š:mµ_žúÙ­ûl²Ç6ûà¸íž[îºí½›ï¼ñ^;pÁn{owû>üo¿ ñÆOœqoŸòÇÇ<óE ŸÉ!Ï?=tÑG½4ÒOGuÓSg½õë\‡ýôÕc§ýóÙk¯ývÜc×}w×{÷u͇'^GÎE >÷ˆ’§-æy_þùߣ—^xê«WýzìIw~ûì‘÷^öâÇ'æ²d.?}õ×g¿}÷ß7>fgá§¿~ûïÇ?ÿ§×¿ÿÿ`h”ãEÀ€D`þ¸@6Є`%8A VЂÄ`5¸AvЃaE8B–Є'œ %¿‚A$€a e8CÖІ7Äau¸CöЇ?b…8D"шGDb•¸D&6щO„bwøÂžo~.„@д¸E.vÑ‹_cÅ8F2–ÑŒgDcÕ¸F6¶Ño„ão¨‘f1ŽwÄcõ¸G>öÑd F‹Ò‡´Øçø€:Ò‘„d$%9IJVÒ’{Dd& ©HÒ‘…T{À /9JR–Ò”§De*U´D¢q‘\e,e9KZÖÒ–·dP+ÏøÊOFJ”¸f0…þ9Lb“­Ô¤!9YEö\1”v4f4¥9MjV³–ÈL¦.³ÅK+¶ð™Ög8Å9Nræ›Ù\¦'» Ê_–Óï„g<åÙ›s&3ŒìeHÚ9O~öÓŸÿ¼& ¤L-r³™ÞÜ'@ºP†64Úü AƒfP!ùšÅhF5ºQ2ÖS“÷„%GE:R’–” Í$Hó‰E“¶Ô¥/õ'J©ÒuZ¦7ÅiN«)ÓCÒô ì¼¨N…:T¢®’§Ýf'ñYS}µ¨O…jTyÔMT©!•jVµºÕ;fs¦VefE›ÊU²–Õ¬eôjOÁªÎŸÚô¬o…k\šÖªNôª+ý¦\õºþ×·Òµ®I +ú¾éWÂÖ°‡Elb»XÆ6Ö±…ld%;YÊVÖ²—Ålf5ÙPT°¢ÜlhE;ZÒ–Ö´§EmjU»ZÖ¶Ö°½+SYêZÚÖÖ¶·Åmnu»[Þö–®° ¬3Aë[â׸ÇEnr•»ÜÌ—­b-s¥;]êV׺×Å.f»Ô¶Ž5»ßoxÅ;^òêv»,ozÕ»^ö¶×½èô¬p³ø^úÖ×¾÷Å/oÏ‹×áæ×¿ÿp€ÌØýÊv°Fp‚¼`ü¸»Ñep„%9ÃTÆò’°e.wÙË_s˜Åp€3Ô8ÀAÀ}ƒøÚûúþ>åãðêÛÓLŸ>è;ýóq'œýÐ6½éQÿÜKœìrÇ}ÚG{´»Ë´÷=Û Àü‹»Û;³Þë¸ß0m>(¾ãKä[¾æ›ç‹¾gË<‚+:ëcìÓ>}ã¾ð‹¼|#Á¤?É+¿X;·¥K?«[?Åk¿N#=®‹¿Ó»3ˆÓ±Æ‚½Ùó¿¹c;¸Bt½Ü Â"Œ»!ô+þBô/;{9ák4öK>™“@ þ¾¨¾ «:O[¼xËBX5ôÛ<Ê#Ã2¤<1ÔØ˜ºLÛBT8†Ã4|?­óºùã. {³Õ#ÂØû¿Ä=ÙË=µ3ÂB\BCL«ìC$L&%dB÷rB¾ƒÂ Bå³BÄBbcA¡;¸.„µ/ ÃN4ÃR4E4TC6ì<7ü<õ‹Ãh›ÃXÜ:;´AÎÂA!c,EDÄþ B%TDF<¬`Ô½EôÃGü/m{B4JK>gÄÄ ô7rãÅGóµz[5w[5îë0E3ô5ļM|´j\Ã(ôDлÀ„ÅE£Ád´ÀCôÊEcäAäE}iCj´FwÃF}ÓÆQìÆøÆp,Ãq̾r,µsät¤ÄudGrsGøƒÇÒ“ÇF«Gþʳ̤×Û¿›ì?›ÌɃ$@ƒ$ÈÔ¿ŸlDžtD„T/mk¹ ·GƒFã»DVdÅ «F Êªüà¾dÅ|´åCº¤ã>ÊÃ>TKÀ¾¨,Ç ÜB­½¥½Y”G‡»Á°ÓÙD,bÔÉžÄI½ôÅšÜK¡ìK JÀôË 4ÊûBJ½SJÑkJxÊué¬Jª¼Ê¬T¸äJðÊÉÓµ°Lº²M@˧SËVdKÃË:þ­‹Ç¸ŒIÛûÄǽÌËÙ”M¢üËÂÄM„MÂÔMÞ<Ì£TÈic¸*”¹ ¬G«¼¥S4ª  Ê ªL¾L£J!‚jl7Pó¶(5îóLìã¾² OøN 5ð̳\õÌ4Ë<¸7t¿«ÃÀøtÇ—¤Ç¹L½¼GF¤ÍôO€„;ŸÌMÜÍ5LßüÍòJÌ•Dâ”ãDÎÈcºåôæ|Îèôé\ê¼NÈNØÎîôN²$Ïô4OÏò<ÏUOö\÷d6ø|AÔlÈY\M¯ƒIü¤?ÓÁØüÅÛ´¼äOºL=B¿¼=\»µ¯Ä¤ArK>5þ¾‹œP‚!˜Lè¤JP“´É¼Jª$‚0%ÏLÃxûÆoôNŽì5Q5Kˆ7ì+5ìkQ(‚"µ;EËУÁ>-=–œ¶çS4qkM±{ÍaôÑ€äKERÜä½"í͉‹Í$ DücÒ„´D#½9|´(ÅD™›R°L4>ãC´L[5EkÎæÔR¸J™µÉ¼Ò«¼Ê0•4ë¤Ùª,5$@|…YíHHÃ~]Ó¸Ó|•SSþ;žQ{Üx´ç+µQÓNQQd-ÖˆåÜe¥6ÍCŠÚHµÖþ¬P%]E½?U][¹i[Í,Ûå;[HÛX[h[ xÛ¸•¹­Êºµ[¼M½Ý[èÛ¿ÕÙÀ=ÜÁ-\Ÿ=ÜÄ}Ó[e\_ÜÈܨܸÜËõºÕ·ñ%¼ÏµEºÝÅ"Æ!5ÌÓÍÚÔ½Úbd]ýÚ×Å®¼[Ø„KÙFãßFÛ]P‹Y¸ýU“9ºÅÒ uN¸äõçÛ[{å¾4OXýFÃ-5Ç¥ÓÍUYí VÉYLþcɽ·½¾ˆZÕ]eß"ußeá^]ªMÝúµ_ëÂ_¥Õßqí_þý_˜M`Êà(àá=`u]àäu`š…àþ`¥à•Þ .‚íUõÆîÕ~´.9TÌþMÊ'„ZеGõMÔ¶Ø>ÌXm_®MÂ4¾aصÙO²]>Û]Ùh4¦»Ð·•ÎøÒäMÃFSÕɵoäÉLÃÉ´N¿\êå¾$H‚,þF*F5ÈåÕtË´çë´'l4™C´ä3>Y”ÇÖO4öÍFV6¦V6DnÝø…_×ãìÛ;¦Ý<¶råãðcv…N äE¦ÙB>C®ÊDîc¦ÊF®ÊGf^T“ä dKîL†M^¶QëäødI eå(åö‹Kó ´[L2U¦áE]ãV†åY¶åy¦eþ¦ç[Æå‘{R:ô4^6¾¦íß«„ÎÞ¥JD^xU×"ÞÛ4Ý[T àgÖë”WðÌ©{:ô„JOKØËL8u :EÃ9w=á9d?¹<ßüÄEw®åÿŒçF]|¾g{®gz–e}N.;ëg“^€¦æ_‚ƒö„f½]h``‡¦YˆâªLCŠ&ª¼èÎËèÝèLëè iÆé›#iáãé;4c™|Ö86@Ó}_‘ýC¤ÔÝÛV¸þ¸˜Æé}®ã–|4o^*¼]´-UÛR(U¨Fz¥Ù¤væªlNPKì+EÞÉ\ÃLd¿…fª¼Rì[µjZî«Æ4MNP+ìþ4%Pœ#mÒÖP;~´2NéUaDMëö]ëÞÙ%ukÛæÖTRi}Tº®ëë2YhÓk¾îkDlµÁm¤N`™KlæÆ^Õuul!€×È^ÉF‚ÊöËÆÌæÍÎÎQ ]ºÐíÒ¾¹ÓV‚Ô^4rcíuF_©…í|aHekA|küãØÝ¦ÖÞží߯a~.=ö8^VÙPLumÎ.e`‹ÎãnN»nê7<@¿Aß¶B/ßCÿDÿE÷F·nš…ôu•tPÕbGdÆËt$ØôEëtÝOu"õR_u8OõlGuIsõ²vM»”õqo­#7pù\¾%Xãc&0>œC>ÑNþ.ß¿ÊF³×†Î5Ô÷½M説Fc~ºä‚ÿtPC4™«Æjg™k‚&`ww§vo÷€fò=N¾¼x´W‡2rùÕ2w&·t_÷‰—xxOuI£wE³÷À÷#Ðw~'vK§Ù§Ê€ŸnªxÁ.øñ^x¦KxXxhxxøˆøŠÿé‹÷T¯9ŽG»·zÓ2YNU8u_¾v_¾5Tô!È´¡¿ÝJSä“4J£÷subX¾+¯Êoì÷u]CGwYTóåQ[µ;]µþÕc§|P x&x¾Áw'(üÁ'üç»ÛÍø/žzp7Tq¿úÊ߬¬Á­_‚®g‚þ¯ß°ûÕ³5{´·µoÙ¶{»L¹¯ùëÞ»ÏËûØû"è{þý{Ç üÁOüv?üß§xÆoü³}üŽ—|gµüå-ÌOÊG3>u¾ÕßÛj”´ ÿ&®FD3¾å»DIÓãäóäÎëb.ŸnTër¿L—åååµ'€ÿ'þ8üQ5ß¿v'þÃ×úwüˆÒ(HcÆ 2P àð!Ĉ': ƒŒ°±ã€\ @ñ$Ê”*W²léò%̘2gÒ¬ió&Μ:wò<Ù CB‡ -Q‚aÁ%KÚ°ñ㇨R£òà‘"…OÉþ‘£ªÑ‚MÖ¨qµiÁ²¾xÁ0ëÓ¨0`Ä•ºc$S½®XÑô¯-ž~âĉÀÂ3iÌD`ã7GžìÄñcÉ "TȧEŒ9z$rdÉžªW³níú5ìØ²gÓ¦øÓ!C¢D‘¬B…!S d®Â¬SƒGí+°nT¯Ï=q¢ uëe›ZgØ·G»Á‰‰ Þkã¦J“$% ü(R¤L™B¸>e&‡óïߟñ ˜I&XvÙu&C_ ]4ÒG¥$RF©Õ6!…Zx!†jHÓm䦛P¼M×ÂoÌIEœqÈÉ œT&:wt>HGu0X‡]vþÛÙÐ ß…·Ãxåùp^éÙ°^{ïÅ7_}÷MÁß~õwØ96` Zw`‚;…Æ i¦AH&mx&šiª¹&›mÐ!ˆ,°Ð—ˆ44VÐCLUWU gâTrZ·çÆ ÄÕTQ1¨ yõhÖ™˜U_‚!ÔaðQA{ðUQE}ì±w˜RýUvjfTÞ XE,¶ŽF¡u Šö@ƒ¹Ž)¡›½úú+°Á ûœºÉI' ÙÉžzJÅ'~öÀhT‚ž@¨¡7 šè¢ÂIå(¤‘ž0©•¶p)™F±i§Q|ª¨¤.ajf¨V¹j ­¾*X¬³ÊP«— Ž’þ˜¨•9, +¼0Ã;k”Q rw‚@ õ5q@ÈYV]1z%PTOå™'xs… •mUpàMÕm^ú¶`ÍVà€ƒ{îÁ7Ÿ{Ÿ²÷î“ûµÚêC»º˜ÑHñ Bñ(«Q]êôåÀz´ëÁ k½5×]+ü0ÄïÈ´Å+`LÜÆ5tŒrt9€ìƒÈ#— ÃÊ)¿PwË=¼ŒBp1]³Í8ç¼³=Wñ3¨A–´eF¿ÊøÒ9}CP— uNTãæƒ›é5è¡‹>ú„õ¡PÇ® Ð4¶C ÆÁn\Ty^ã^9ÕìAçc¢>ÌÅè]^M•U^1eB4Ïþß’óIñé§ó:¥ªüÒp£²4”õø* t– B)¡DArÚ &ÁG˜5éñË??ý1™~ D©Î:³®÷Þ{í†p;¶%Ê+»óAï~·—%jxÞŠJñrp<$Ëkžž=ùHzU°^°—½à¨{Þ«Aø~3¾4Å|è£úv«\ì}Ÿ«s¨Cùu¨ °« y0#åÝ lOéqò¤»**Y)ÈSª;òx¥UÁËʶ ¸²LO¤A[ÐBƒVm*gJÒ “¦àAü8¡Uõˆ¬Î÷ÀˆÑ:’3`ò4#DÌ뫚®<·ÃA² ë! ~D!æþ@YCÐ Ž» $qKÜA}ðÅ(ò`ŠD¨b®¨ƒ,úà.\ôAp¾F„ŒT0#áWŸ5ÍS€£ä¨:²r{LJQ°Ç>þqsí»š ©Ìe23Mˆô ìäTð4å?©Jð¢BœKfÓy: í¼9„MÝ,*ᬠ[$ØM%/»A_šÐ„¦ü†gJÒY|sY@ÖP»Ýý0ˆ•ù]„ˆã iy1)•óú ¤,r­âތŗ ó%B}GF¨üžŒ¿7ðo ÜCÀD0{\Ø)°‡ÁNpð Lœ WØÂæ#þ®›Y¬Q4Ä^þrü4Zڬܥ1Ja fJ-*Ä+¸óW¬ƒ¢ äÉ8.%‹‰óâ¹îùÁHˆ-û‹ø˜ÑžÞôØÃ8ç)O!Ï]Œé Tø±;0Šud噆lؘ[N&˜C-j¯‰9^!ó̼4«l–› hÛ#ȹ8tþ‚©p3<;KÏëÕoŸ£üçúǃŽB¡}zh*$: ‹¾A£ éHšÚ”¦°¥1}M/„ÓS˜§¹ÙQ“»Ü »Qú"”¶X¤ÁQ 2—5'Š+‚©ó[«rg"Ø×¾ÁcˆB Ò—M †=Rr§s³¦¯,Êú YjP ²†<Á#„ó’'ñá.Šå0‡ÍEÔª67ÊSî&tEÝ&`÷ ÜÝÔ %Þ4˜·«ë}„{ã:ß<Øw¿uÌ-œ§BÁ“pð„?aá6hx ®‚ˆO¼Æ2Ž„[Øã49–E~’W5»¼Z‰Ò®öµ³½íjwþˆÛãîvؤî HÝÛ´vBæ'}ßÉß6ˆA¬@L_ÊrY]%â>ŒÁœ£ÒÔZ¿5UqÏÍ*O"ª/^Ù×b®×¤' ™c/µSƒ%Ë— Y Ú¢º¾ÈÉ+3ÎË]pédÚ<Ò²¸OŽv¹ï(~ñí®ü‰>MÆßaóiý›Lå@@Q_øì¾‰7K ŸÇ'ò¶–<â|‚9çòPÈü[7ßãé×ó9}Ò3úÒŸ~—©?AY°Ž¼Þ °Å ÌÞ Ô^Üä^î^ïý^§•œÙÁÏð!ñÁÆÝò¹ÆôUŸ†<Ÿ LþàL˜ štˆœœB@Òä‘ËU ȉq¤MVTÞTxqàqlJ«y‡WÑ:ɘR!a(…-õÓ§``É‹(M–ø–•ÄU4ž `!y0qpEA· ðuØÙ©ÄfàñaÛu`k|àÝéÝÛ  ¶Ä–à ‹ ² –Í Z<­@êÖ ²@ ²@YÜà[åàÄö\RÁúN!^a^$á,!?5!=á@ Þ ` ÷T! \áøeá)n¡Hx! €¡¿ˆá–—¹„®áCÜ"ÛÉJDÖ„Êò¡Ä/ª‰j`0æD1ÒáKþ‡(ᙢBhÏÒôìà[U\‹Ô…‘)ya*XœLÛLE…`ü‰´ ‘¹Çõp"|(…¬Ð «WÜ̈cRdJf ˆQS†“d&QÆg:ghA[Œ&”¦ œfjžÀj‚ŸkllÒ&ålåÈu¥BŽC†%G6¤ãG:§-Bgl€àp"LóYèKx(©þ]__H£ EYpvâHp‡eG´…d´¨`HŽÜŒâxd…W´x䨀WdÅ\ÜL[¼Š@(aÈéEA^€Ç¦xŦ€ÑD&ÓÌÍ\€ï¨°åW@X¿ÐÊ Œ¡Då&…îfYêℲe…b¨ß±)Z2ç†K‡ºi›ZT‡Œ¨I–¨ œ¨o¥¨/­(´¨u¼è Ĩ0ÀŒn†uÜèÍøèŽ¾@ö€’Xþ( é é é()|4i« D«(Ä´¦@µĵJ\v4Ŷ¾@·–#Ž ¸Î•¸’k ” 0\ø¡ëN­« ´k¼ëÍRi=Ϋ Ôë@Ü+¡èkÎñ+W4ÀÖ€ÀÖ&W&$v}%KìfÞÝê…fmq¦!….'Fâ"pJ$ÞeÅ"¬Ù*ì[þæ òªÃšþå™Òmr®m݆­ÂV,ÞæD‡˜¢4ñ@å ,Ž,Íù`!ÉE³f  E«`'ªISÐL ùe¢–VÆalJ‘Î €T_d«ŽðÈ‹0Ä\ÀŨŽWlÉ `\UAÀVçÀŒmrؘZ ]Þ*×2£×Ží®Š­ÛæíÜ’­®êmÚ¯ÝbdÝÂ¥ïÆ-ß*gÜ®í0N¯ÝoÃoóJ/Nüíîà¢(¢Náážbâ Åâbg«<® D.ÓL.†å¦{’Õ ç:çf*èŠî îzŽw„b¢@êjÅêÎÉ ´î ìÇì"¨íVím’¡î>'ï&l×>èòþïÝïÞ*¯óB¬šNìDoß2ïñB¯õþ*õ~íöÎéƒm ¯öúíõ™¢PÜE[ Î^ž"á¥Û p½Ap ÌŇ”…¬°&eb§z,Å@4ÆoÌ£Xq©8{Ìx,.ìáHY|ȇÜ ´E_ KÉH‰1–D0–Mð‚Zí§9èî&lïzíï‚°Ä~ð ϰ ãq £í ë1ǰŲðrF¯ w° 7²Üfï#óq$ë„÷^Åï@ÏÀgGCcØ´\Ó¢WY(qþìi 41ø=1ÓD±dP± X1Ï‹'÷€0×€Ÿ2›ñÈU¨ñWðþ»±¶,Örp®Þ1X^or"ïYîqòV³ çqß&ò5³ðRss¾¡ Æ©4[39GóÜŽ3"ã°C°fÙ¸®²ø©'… ½ÙÕ\Œ~–þÆU8œAˆ‘R( Bœ&Íœæo`͈‘½fÇ· 0´kªò\@W_T…¥ù³‡é,^íBÖ1„:36O²9›pòz³6—sJ?s6—t:Ÿ´›¢ô ‡3°²L¯4N[/:ç4W];C’;<“$ÄÌs Ô3nݳÙä³ì³ ôsÔýs/4gÌA[A«B[B'-C÷H»ÑuÛè&¨DƒEÀE¯F?WÔþÄF+óGc°k°®¶ôM›s^‹3 _è»4OëuL{°oÆåsšôðí4`/¶ð*¶aSòõEÜUü†ŽEZ¬Þuž€BÈ  *DžÐÛTä =ç\žTEž¨.C”B4”«ÊÊjÇòQZA÷)Eø| pÏü&®–øÖ0ÏÀù DÛ”–PD–î•¿1Gßn¸YðÁŠð²íú&^ö4[w`çµÚBsv{p7c÷Lc(_#v`?öKët “wMŒ$kRv[ö MÎf bgËÀgç\hÁhij£€jÏk»6.Ŷ×öÜ6 å¶oí¶žö¶¦B÷ ·©éŽ þ÷"w*+·\Ó1]‡´]×éy—7 ïuM;vz¯°J öH·4 Ó´z«8Š«¸!ϰLtÈo°rA „¡ï ÞTll œ äW%=…P°XLy…ÉÌÕS´EÿUôÈÊ3Á”¶NSÈÊoÀhÉÀårøoOøÈÊ@µ°À¯âGž¸1Ž|¸ð´„J÷ 'ÜÎø‰ƒ·y›ø2¶%_oí`Woa÷õŠ›¸ž×ø¡ò_sÈõíxÎŽMÏÀ›€@¹T¹‘#9䉒›“û@U89:ÚH9 °6Î „•cùl7Æ–÷O—Á—j˜9r—9pŸyš¯¹î¹ùÀ¹þ/Éy­–m]C¨\æù6k³¢·xŸ'ö7':8: ‡7 ;û¢ûyŠg{ òM Rĉ¤ãˆJf)zU…œT½±XJy½Ñ\DùÝÌUÞôH ôÐŒ7E[(…ê)Ch.ÎÒ“lÏoSpø£H_*þeâ£Ìâÿ@U4þãkRä;> LþT¾r= æ+æs~e~~„~ÿŒ> ”¾éÓÿåª> °~ ¸> ÈJìo8@Ô8cÆ ƒ'$T¸aC‡ D€ð€âXÄ8þ`Å<|h€dI“'Q–L˜’eJ‘"I¾ŒÉpæH6gÖt¨s!O…>{Þ|¹SèP¢6q zÔhS™E‡.]ú”*L¨A«fuºõeƒ m„µ!°)R„=¸ö„ K”ˆ17FܹA‚ðà1dˆzíÆðëWï\(Ö¡cÇŽ?C²XàÀFŒ„]²¤E‹ÍeÃ6i¢D‰èÎL˜ˆV ×V,»V¡âÅ‹=Ê.®}Xˆ*TŽYŒÖ²[ƒ\FœXñbÆæ=‚äÚ’úɕթ#0uûÕîZƒæôŽ•iCîÜ‘jÿ^ž¦ÊõFÑ«7?ž=ùéô¯ƒÿ‰ÿ½þUùÿð ,±È2Ë´ÔbË ·à’‹®ÀðÒ‹/Âx,±Âb8,1¿kì±È&Ó¡²ÂL3Î<[4D#Í´PS­ Öjx 6g6Ûp£A·xó 8át GãÐ!å<Òȹ:¢Hº­°Ãîº*]R/;«Lš¥üöÛòÊ,Ã#¹ø¼t/Í.û3L3<¯¥5­ãRÍ7¿l¥ùœrSI†@,f[A ꬬÃ>ô!‡GsðKæˆ }xl…øZŒ/`Ø”µ¶Î:s ÔN¼áf‹U‚\+¢ˆ²Xµ¡¬ÍÂR5,ך-´&ʲµ3pþ8¬PŽÅTWm¬·Æ\Èıjø³!&™Ûè¹(?‚ $*±œ³»rëÔÎO=ï“M¬Ä3]yÙT—¿¤¤Ê^sËÌóO9÷d×_¢ê¥·Ýsáìï©€µô+AÅZö¬´=AQ…ÌQH%¥4K1Õ”Ó!<TQIÕÁÔPmAÕ\7sVYgÍÑ [qe"¬]—èÕ‰_­V…a‹-¢YeU(«Ùgoˆv‡iw¨¶†kjx!npRkp§ì]}¿.ø>† >8à}Ý\w]¯íÛ`0Ý7n·å8áµå¥Ómµï5MõTXl¥.kİnk Tƒ3hÓÚn«ÍU[þQsµÏhx™‰ÙxeqFÏ[½è+H¿Â5ÑÊRU´Ê]½ $në|6Ñfoµ²\-Ë ß6MÐ d]Ýô·à³ÙвZ!¬µþ6:qÇÛ=éöšl:õV ªxç6›ß3ûƾìw·ÿ¾û¿áãïëöný»ÃGx`åxhÂo4¼2Ä{PÆuà¸@®’»å˜`9&`Nsœëè 3ÑÙÀ5¥3P—9'¬.­{]ìX»ÚÝŽ¹£Áî¨Ð»ŠýÁ[Áðˆd<# /ʃˆDšôçI zä¢ÞåfC!‘ˆE4⑘D%.Q!õÚ Œ$´²”EG‡1þ ­Tå*^n ªk¹(UIPUc\j¦0…$$a3¤ j:³FÍmfpìŒh€å¹ÙÌÌ ®šTXpV¸ÆUËb]g\e$‚ÈJˆÌÓ!”ž7.ë‘’L´ä%1™IMn’“Ft"¡î71HqŠUDÁ‹Ålq]Üà[Æ&˜ÑUetÂfШF6.Á6€c 个VÖ–w´]Ðô¨>žÀ2ä­IȲƒˆ¼"gÀH:Ò[ä¡$›BIqƯ“å4ç9Ñ™Nu¥~úÓ_áh@CW 36ªàDãªÍìÓ•¶4£ªÒ˜KÚRŸ®DªÖ¸Æ'¥]kkd…מ0¶3¡moÛÛÂv·ním áú¸_Sîœ`%P³1Ȳ⊚ä6e)©4™ÖYj»”õ°w;ÜAZÞÀ–ÁùìÉ+…ÏŠFvIó)jÊÂÚÙ¸† Ȉ 7•³²lÊU êŒ ¥[üW¥[Ë+ \®/™ÉM6nƒUð`G˜ >A…ipa+¸*ÃÜ}å‡C\Uarx²µü®™Ueâ* ´*®‹C8eÀؽMg`ãàx:¦oþàãY,B&òoW*àpÓÉvô£!mµO.ËZF@Ë~}JÒXð—¶” fŸª9Ûb—Ì!¦¬UÙüÙÑ®QhÉ`QC3øJ“4B³ï ”Ö‚>ú‡iY‚BZ–C7Ï›‹Žô±‘le7dÒ.®ô¥[chZ œfBª˜º„‚æòãžl©MmË„&ᳪŽ«AéjbÑÖ›“µ2ãëªZƒòÖ¹ÞµA|*`»UØ(õ-±ƒkìeœàOp F´ÇæÚ€ ½f H#µ°„4“3š~o€]Í*ÐÔßþîÆ[‡]3‡¶Ü%o3™W¤£BŠõ˜:²A.VoAº IIÔlW4þÅ!ûÀ‰n)£ t¡}¯ŒÂ'ÞðDB\ gø *~À‹s<–ì8©?^o³NU$7yŠQn •O“å6šÍËgóÙÞ·u5×µÅpn û®ŠîÑñžw½[ò“…•õZ“ÛÐ(g!¦£ $xuÅ/^U£-9›c«Í„u@³¼çJ4CtF𳑹‚PcÔ¸eEê·ò¸éó#ïõ­w}Ãú¾ð¿$ð¸¦/áiÐñÃ'~ñ½³_nÈSAòK |/ŸÇ±oó-è|ók Ûµ„þ£7Aék0wžy‡ý÷Áþ®< ±Š•sZ ²ï]F…¶ÚT¬U`+þÉôfÛÖ¬ÆÁ«xUý&ÕkNèÅt$¤èLVˆJš‚ÊšÚj-tŽúÖ„Öëô¬&õŒlÀį-ðû¥ü ì~lnð*&A\…ýVà™ÞÏÝä è©òo²îW°ãö úoÜÐ ÇÏÐlĶÒ*¿|ç ÄÅ‚Îè.À~î•p ó.PH3¨¦2l«6TjÏ5Hc6lK o 1êÿZŒ&KçlË´’ Ö¨6@elE‹ZÎ rχ ffÚ*ú¦HÈzì BJÈÂâU™p 1Ùœð  Ð«Fd ©ð6¬\ •€ WÎU¼P oŸ2»Èþ°uÌ “@ a€ ‹À m$­ ¤„&¨¤ÆóZ ¤Lˆ¿i-ú 'Ðû qy±É ¬á Ëüt$ýÚË50ƒI'ójY^çurÿÄP³tsDîn# _`nc¡H± mïÎ^ã±%¨‚MÞHmQÝ‚Ît®¿p±ûî®åq‘ënf†ÑCʯ@U@4˜±ŸÑ£¼¦QEr¯Ì¬±°Q{€“ÀV¼QÚf,?g'¨ƒŠútNÈÖ‘ Úñ­þpû-ã‘Ur%mÊ脆 ŒÄ5j3¨4â0ÂÂ&åJ Т3.Q[‰gx¦s0'þQã6ã6”Ò!Cñ¼QUþ2¨¿rNî˜å+¦#Ññ#Ù‚ÎxË$Îî\Š%ɲ,ÓÉ%A &S€§fÒjR nr.w²z²~Ò­¸H(i`«Šrа )u`)¯±)ŸÒ ¢ÒݦÒ@Bª1Ý*cë…LúÂ+ý ,ë. Ír39s“ê'áîÇ5Т6(®Ú®€Ú¨O'Uñ«bq!1‡(÷i$ù’+ƒã7ÒherŒÅeœ€‚‚p8R¹Rü08ß±ØR²3ó9‰è3.4­`4_ 4I5ÑQ5åê[s/ûòøI6Ãs$ ¢6©à6w³6v³7U‰þÅⱈÓÏèl2ó0¶<’1Åb9®9¡ó?@вÕì2ή0ƒtf5Hƒù +8Û ¢ÂsPƳ<ß*g‚#8n³6º±jCUZÆš8Q6éì/ç0Ñq-sPøS,.@a4Fb@Ó­@4A¯`A™ A5ïA!Ô­$´sNä5²*Q#C`C³q")òC D1nDG²D‹´ÙEï­úDR?Kõê*,5SFÅtLE-gf¤š¯¤²Ô…žPóÅG1çD 4N´stî14´@E7§‹ž´üÔÌò‹êÈ(·ôJÍ3¶tNB»4¿43WL%URÍÔüд3Ôþ4¶vmSÚtpœK,èTHAU!²èN O÷سOSéO•Ä~S¶5ã¶´ðõVes×5Bm EÃtR…uL½âpjtDpòé0#óíJJá¨rBÛKTíTZ«Ò ð4I{àQÖh ›Dõâ TD­®ƒDé Q§h‰°µa$ÇrXé5@‹u޵2’5󘵜U® U?y&HHNݪZk1[oƒ[“À[´3zs\£´\U]s•<ÙÕö$tE€5RëõcA6dµ#^™s^EödQ6e€dûÓdUöeaVRYÖEc¶fmVLg6XovgyÖ,sÖc{6hþ…–V‡öh‘ö‹V“¶i¶õ–Ö?Ÿvj©và¢Öe«6kµöÑ®öE·ökÁ6Áº6lɶlllÍ6mÕÖ¯ÐvmÝömÓ©mávné“ä¶nñ6o‹ènõ¶o‘È+7pwp ·p ÷p7qwq·q·p‰ˆoývr‡èq-÷r17s5ws7r –rEW[ådK×Qÿ RvtYW@Æt_u{%±¶umw+ twwy·w}÷w7x± ²€w‰Wwwx‰7 ´@ –÷y¡7z¥wz¡w ¶€z¥×z±w{¹wy;vuo7|›"w…·|Í×|“y‹WþyÕ—x›·{áw{µ7~ç7~í×{1tÁW|ù÷!È÷|ø|Ó—} 8y x}˜ ¸à~¥· º`z˜xç× ¼{)øy/¸{ë½4uõ—iû7„™ía¸„Ëw€X}U¸€8 ˜£7‚ø³`‚+˜z3˜xsX~¯z¿„E8ˆ+!t÷ ¾ ˆ Œ‰M¸‰w7…•÷yß—z_8~eøy¯x{38‹á—‹—w~Xj…˜Éw‰•8‰Í،؄¡8z§xz«¸‹i‹çX‹oØ‹¹k¸‡Ã¸vÇX|EÏ7“x¡Øx[x…£·}©Waø‘!¹½öþùaÙ| yy}y“ù€±×‘!y”íW’)yŒËX•…7“5ùYx“I¹‘ëx–GÙ”O9ˆS‰]x{Ù‰a¹[Ø–g˜˜g—s9„wùŒ™øŒW™•5y…W˜A’ߨ–7˜˜‘9™É˜„™ù› ù™›9šØw©y˜­Ùy9›my›¹9|9‰Á twžë™žwוÅù›K–=9ŠÑ…©Wwà Œù 9Xv¹¯d'ùE7žï9¢±Àžóš÷ù’8‘{÷œ?™“z‘±  ¡ÝÙ¡[¢Áš)š¢£ÉY£9 ywŠ›·y Z¤G†YwKÚ¤þG¥õYžñ™¥ ™Ÿ£ù‰a:©«y¦Õ¹¦µà¦ :§x§± §}šrãù™Wz¨ñÙŒ·º™]:£…W˜iº©µ@wÅ@ æYu·y : ®Yª—:–«:ˆ¯zr³z•¿z¢»Z¨%ú—ûÙ£Í9©ËÚ}Ï Òz­¹ ­» ãZ®©Š­:¯û–|û:³Áà¢-š›8˜××­ X´ßÚˆ)Ú¦Ã`ž¸ ;š˜;ºµ×·²-;o1›«%z«9¬=›5z…E;yI;¤ÃÀ´ñµUû Xû£ùµ•;ye{¶ëv¯µš«÷Y³uû¨7Ú£ø·³²µ€¸Ç` š—­Ï§#ûþ‘ÿ¹“w—¢‰÷¹¡{n¥›¯©{•oÛ¶S»Õ[š±€»½¼Å[ È{µ£ú¼uš®óÛ¯Õ×½ßûmk›¸‰ûžÁ%Ü«ÿzœÅúw;±µ˜ ÈÀˆZ ú™“±Ÿw²{;»œx癢yÚ®i·¡nü Ž·mܾ‰:°w} ©›©9ü <ÄkZć{•KœyÕy®ýÈ¡\}[Ÿ_¼ƒgW^e|ÆÝ6P4ÛÁŸ9Çë›Ç-Ü=Z´Qû­¡º 8¼ç¹yÓª|ŠQ\½Oœ®‰÷™xÊGü \ËÓ–Ëu|³süËÁ\ÂûZ°¹ÌûÌ…;ÍÃ`ÍÇþ ÍµàÍo:ÎÕyΡ¼Î…Ϲ@Ï“¼Ïý¼lãùÆÇI=Ì ½Â€Í<±ª=¼ Ã[ÖÇÀˆÃ;¼Ç› œšªY  ›wÙç|ž‹ü Ê  @=ÔÃvÔK½Ù!|Рݺ'¼ÇÏ·ÕÕµ :ÖÃ`Ö·½Ö¿àÖÿ[w]¦³Û×U¼¢yW؇½Ø=Ù•ýk™Ý˧<ÂO=Õ¯{Õ/Ø‘ûÑ ò ´ýØçÙ Ì y‰ýÿ`м¨Ë9€‰{žÏà Ô Ð â#þØØÝß]kãÚç=ÚÝÞïß}Üwœ¼ÿ=àË`à ^ Þȉwἄ "~â+Þâþ1žÏaË7>ºæã…¾Åk~ºQ}ÇG€‡]Ð÷<­8âXÓ š÷Ø ¾ #^ÜŸ:É™»ÇÚ£Ÿþ Ô@ â%ž ¦ÞÃÛ½çúçéÐI=î›ý¸é=Ðï=¬wé܈þ  þ ¤žêµÀêÍëÏ@ë÷¼ë]ýÇ<ìǾìmþìÓž ÖÞʺe³ÜíáÝ’s|è=鉾Ðïù¸‘é »¥WɹàçyêÓÚÍÅ@͹ÀÖ½}žû;á¿;‰ƒÛÅwž×` <üæÉà÷ø÷  ¦~ž5^óŸ–Ù?_îA?äG_ÐK_ÕO¿¨9Ö šõ‘? ^ÒcŸßiŸþ¸o¿yÍx÷©¼÷Áà÷ƒÿ쉟 Œßå»_ùÙó™ŸÁ9ŸÐŸ¿Å§º—~Ì‹@_¾ X0K-Z†yŒD0\¸dÈðbC,J3æ!HˆÓ¤ñ†¡@•[DY± 2%ž9có Ùzúü 4¨Ðž"@x€t”20飆Z½Š5«Ö­\»zý 6¬Ø±dËš=‹6­ÚµV4èY0n܉` Ò¥+®Ü» t‰ðïÁ„ 7’¤ó F-vŒfdÉ$M¢dÉpK˜¿Ì¬ æfÎdÖ=štiSÕP¥Re ;¶ìÙ´kÛ¾;·îþ¡n{J´Ë÷nÞ‰Àùw)ñ`rÀ ËýûðqA͘)ËÍŠ MšÄææC¹&5›Çòû Ý™¢Á \³æf{ÓF¥:]ý4*Ò×»ûûÿ`€HàX½^p¡GœzÁ×ÒrÃiÖ\`r9†t_P†uàU´Ýyžxa—Æyš%8{8¹|ò½Hj܇£~SAPU>þdBI$êå ‚Æ9X\]I*9¡yiÖ$Hà-¶Å ±ÁFAm´ÑE!zçI$çœKã}ñP{&¶·&H3Öhk¬éÈ_‘zîÉgŸ~þéÓ‘ *ù “O6©`”T ÖRþ•c\‰Q–[vùÅ—aŽIæIf®ùPš›Èfx/¾ùbœcÌ©Öiu>u§k< k¬²ÎJ«Z"× ¢}1¸W®áeÞrðIØ™ž‘QP–Y>ä†o¼!†_NÛF–&~÷¶ÏýuaKí¥w¶mž¶h aÒMt¦Æj~®öXk¼òÎKo¬·Fèk¢¼ÎåëpÄâ*а`¸Þš3%«,³ÎB+-µÕnqmiûœ_Szû"¸gˆ+j¹qnºg¬{£îî÷j½*¯ÌrËþÝK0·Œ"yñ¶½*Ê |Êð±Ô+]‹™GÑq˜D­rÌ1µ Á'çÆiHdDÎWþŒ3Ê÷ÅrÍdRE&‘Œc«(ÃërÚj¯ÍöW07*óÎéÕl3„ÄJ¤ó@õüóFAO4tFFÒK7=íÓkDmÕšvj¡¡Zo}F×o vb§A¶ÉMá™rÛ¢NúÚ÷Öž§ó{±_Îí ÇÁ_TDuÔa‡wܱfz Ußà\záÅ—L©´ñˆ)RH¢Z÷PF¡bm(_39^ÐMßRE.vÞîçï–N~ùæÓzºÍ©v5댶Žp=ËN»í¸ëÎ;¨¾kü³A<å!OœVóƽ0H¯wNbÑzÈ€½/ho "ë¾—ªú° ?â;Ûù>þÂé@ÛòËr¤G3F¹ kOÖÖp»™ì.wxÀCò =ìN"QÈC‚7¸80„ZLSZòÚP5¦‰Þ)C ¥ºø= 4Ø¢ÞÖ@ʃ­ñ ¿Æ0Þ†„“â s¨¸Ä CrY|bH†Ú¡†7ÌáaäÃ0qpCœVø¥$*1M|b¨2#Å×M„г"–T¥EUÌÑøÄˆÉLj’,÷ZÎúx†<®¯[MÁ°»:qw·»]î¬cÇüÝ„KÍ\³ˆˆ¸?Ð$ÖÙÖø%0$Všøâ¯IQ`&Ê^ƹ݄'´QÙN¶#þ´mr›ÜìæO:©ÌOâ1 (¡ÝLª‡¤2«¼C+ïKÊò ´tƒ-Ý€KåQi¼4ƒ/Ùaj˜2&2´œædMß‚¦4Ï@ÍIj°dáëb6½‰ÑŒjœË¹‰ô4ÂPBΙ¦óLÂ>˜$w»Û]úàJü9>\zVãðЈFTâ¬Ãœ¶a‰J#èCœ¨‘»5(`ðiªD¼Á‰4ô&Ù¢%½¨Ñ¬jõ|U¦GÑR-ˆ4 ~iI-—Ò•âÏ¥0½ßîfº†š¾á¦BÝ'O{ªD jA¨D•ƒQÀTňU™É¼XSJ‘ F5'Y½†P¿aÔ°fâ©S-_ï­vïáÊ­4YÓÚ ¶®CãØ/,¹~Æ7U¿èBwþ+(¸ÁŽp„%á gø‚ .«ƒgâz:P–rhŒ›awÏ^+¤7ÞÒygiw9Ä´¢uoƒûY€ÄMRíË@—)=± Q@u¿×¶:óáŽ&g©¨c¸ž“’甿aß@fº$ÑBÉ_uàZi¸Õ ¾ð«[ýáˆ8Ö5Jñ"Y| ×8È;ÞÒ§]ä[ ¹LŽò3¨œ  ~CË_þË9Ä|æ{¨ùnžóŸrZqžñš×m©.} D7:a’.÷¥7}òW|úY¢~Mû*ZߺP:ßp®{=ì%ý”Ã~úò­eˆå Ïûr#Ê!ÓÂe6ôìYþ‡ÍCdü@‚¯©ÍÑòsïAælv1ñZŒW—›iUšÆ÷{ý.ü°©¼§<f’%|Ø¡«:èžõóK\Á¦÷Óú3Úþ:8õÍöçXïzØ›!‡²÷eíõp{]{»'yðá{Z|27|Å×Ç—|…ƒjË͇WÏ—f…·nê6}sP}r}–qa²}uÇt~[ ~–yäGYœ§~zð‚ñ‡çW>4Ø'8 : É…s@<ÄãföØs©¨4þ7g˜†]P[p˜^™Ñ--š6^ÛÖ™e‘ f~\ù‡^9‘`ùEh¹ƒ¨9 ª ®9jélI™³¹( —r™mz@—ßþf—$‰— ¨—}ɗ明€ù‚Y„É…•™˜¨ŠÑ¹jrà˜&“Y™—‰™š)œé­fšX5š¤©p€¨~™I°©ˆ¬) ì©ð !&Ù_âK²x—?eçrC&‘€R¯wb-gŽÄy ~™Ž3ùRjTÈ%QG„˜ª&xa˜x…{»iöå”_‹°X›ÑòŠÖ2ip.ª•CãIuYaž¥i‘Èèž $Ÿ¹Q£eq£f‘£iAŸ]`Ÿø¹ú œüéŸy  8 ƒP € Åi7I“ Ú ¡l ¡]X¡ûx¡ªnZvZ› ª,ybP¢þý‰.(Š*ª,ª‡é÷¢}Hšêyš1ø0xžÅxžïçW7w§Z§§zŠ~@á§::£èY¨j§2ú•‡Š§‹Ú§‚:©J¨¸¨§BšŸj˜C²h» ¯§œV¸¤)eŽÃ—ŽPJ…éØr¯ws¬ZÚ‰n†>%s‹)r`*¢õ)ÑR¦Øy˜Y-Öq¬fàD3‘;Ué¦åç¢q©1ú•Š©“z©¤W¨|š­y €Z©])§×Ú­Ü*:x¨ŒJ®§i­Y®¨ ®ïÚ~éj+ó·©žJjB ª 7ªƒPªUxª|ª„°ª~Ùª‡ðªƒ«;«VZ«úþ…J”«[Ús½jÖé£Á*ÃÚ”µ9™Éš¬ËJÍŠ¾xyÀ˜•¢­Ò*¯”Z­uº®Óª­{úuê*©I¯à*³5®7{®‰J¯-‹¨³ãê³ñª¨Þ*´lq Ú©Ÿš±Yòj·©2·;¡X…kŽEÓrTxCÛrªŠ°-7·°ÊÙrÊS˜…9†gk(‹a’xYBb@·¿*’µØáD 1‡kªWy‡Î%hÐZƒÒj´ÔÊ®0{´‰;³ëg®A+£9K©;;¯ž‡£@‹¹=«´‹»•ê¸<Û²³›Ë£æ´AÚP«4R«wTkµw€µT¨µ†Àµ€àµyþ¶€ ¶d[¶fË—T˜¶»¶K±>gŸ¾*‹s™™™wÛ†{Ë}[t»¸‚û‹ÁVQZYžsš´8¹¥ë‚ê:¾Øj¾èš¨YW¾è{©ê뇴Aƒìû¾ñ™¾æë¾æ:¨ó{¿š›¿¸q J“CY¤_b¸;Ess¨zŽÃ'¶æøR7—Žéxs-wC)%ÁÈǤZPÊŽÏ¢¶k›ZŠ¡qV™•锯j·ÊB<ÖA< -D§Zçr.ÏÚ‚{§£ë²ŒÛ¹òÛ¾8¨A¬¿ŸW¿A!¿G,ºç[Äd¿ü;ÄgqˆHÜÄýKÄTlÄã ’Àz ÀHÀ^Ð¥]pÀþqÀ»À ¼ †ðÀ‚Á‡0Á€PÁ|pÁTºÁ~ÙÁoðÁl;”"¼«8³BœŒœ|ÅVüÉ:-ÄïšMŒ´–ÓѺ¾§lÔA½®§ÛØ©]\¡Ês.][éXЛŽT˜RTHÌ´¥¼Ë‡`Ì zbv¥ÇévxÈ;˽bª4†Œ†pÍwÒØÒŸÉß«¸[i×”KÔö›Ê9Ô¬ÊçŒ×?mÏHí³ë|¸Eꯒί«ÔÀÔªëÔ^ csÕ¸;Õ‡PÕ‡ðÕXÍZ-Ñ\ÆTøÕaMÑc}{L”n}>—Ö·ÖÓÖ^þ`oÍxF¢s­5ÌÍFž”L‘9Ø.ˆÔ}ÎáL§ùœÓžÜÓ…@½ÃB­Ø›Ü܃-Ø€íӱш©&9tD¸tC¯wÕ…0|]ÇV˜Õ m…ÆyyyÚÍÁˆP4d ¼jÙ}Œ¼K™±ÎË”bº_q·êµeGÃhP×2žx ¾ÕÃǽØ~m¹Iá̽ÓÎ-á>´‡=Ýn~z-Ï!¾¿ÊgÑÝy÷ÝzÞ=ÞƒPÞçíÕˆ Þ¡ÍÞYK“ðÐ`-ßvLßq`ßz\¡Í¼ßÀêßj@àŽÍ‡Sàáyà .Ü Ž¸KüÜÖ]áê<ÄšL¿}ÅZNØþ_þ³`¾ÜÅåä‹áïlÔ™;Ÿæ0˜x‰wDçâKVXТ}s-nÚ2^Çî=Ì‚Çñ}s'VÀo&_‡ÈKæVîéžÜgæ"þÉ^ÞÉŸÞé~½á«þáDlê׿LLå^шù&÷yëqŽs^…uÞÐwž8žç|ÑÀžR€.‚Ƈ“Ljçæ^xÖ>—èFn™¸Îè¸îèø¹½Å94éuPéÙ‹‡˜~ÃpúÒˆ›êb^æ§žå÷ݱÞåîÞܨNæ<]ï­ŽÜ¥.ïŽÝ¬ž©f_Fi[LsC2gÁïíþ¯z.ÚTøz¿¼Ž9þÆThZ7TƯ×rœëüý¶’YíÀºâ†—xÓ~Õ>íܱ›‰NtÛ¹}ä½UÖ‘;$ åß¼éè~ïóŽïX^Ó¢îïÙ §öôª>ê8ßó®î ï>/ëkÞW†£n/ rŒðÿJÌ ÏÐ?Çš=ñyPñƒpñxœñoD#ÒŸ¡!ßñoöÒkr(¯ò³ÆòÅ3-qóvî'«½ÀÝ¢4Óæ®Ý8í÷äœï8?É.í­î*ꮚ‰Íàyø{]ºÛºïÏMâ‰/Î‘Ýæ:¥f†ãDS›Ž½Ì“7dZëÝÞ†PƳ'©&sõEã“&þ&*‰¬+<íJ-uVÛ8VÛL™¸¾ò·Óòm0’ q.7÷i7óšþ÷®¾àFÿà•Lï¤ëø’/©Š_ÏÕ¾Ò}ý™ø‘ £AOý×J¹Ôµî0våùeúÁ‡ …¥Oã§Ÿú³'s¬®ûvÐwKû´[¶xñÒ¥‹9bÄhÑ"!A 4Ø…àEŠmÚ˜1#°N‚5*Ô£gÌ4hΜ)S†ã˜w̤YÓæMœ3D€ðÀç:`€Ï<äÌiÀéS¨QŸ2¥)ÕjTªM dµyÕéͯYÃj­éu+W¦fǸ:3ìZ°gÍ¢E+UkÛªþ^éÞÕÛÕª[¹gÉæKø¯a»{ÏlÐ`¦C9Ф,r΃÷ì±cG ˜1K– è2ÂË©ç”.}Y#äÍK»q³’rŃrrÌ’E Á‰!—#\à–à*䊓dÈpl®PaËæ'Ó¤aÃfóæ’‹Ñîìù3èÐóF‘*U¬ö0U÷‰Û ®Û·,ýÁùÙÚ¿¿0àÄÞÂÏ/ßëï>¨ø’Ï?Ås/®ƒ¾ÃÊÂD«±Ç‹¬É*£ì²ÌÚØ¬³ÏBƒi4=Z›5ÕVc͵6`ÛC¶@h³M$ÜÚÍŒÞ~ó"¹á†,®‹ã<$·åÄhî91¢þ›ÎŒê¬ÃŽ í¸óî»ð4̉<¤ˆB¯¨£|bo¯øÒTsA/ÛtóM8ã”sN:ë´óN<éâ€,›CÄS tÐ6TCèÐÚÌ8ƒRèGÊ∣;„ ÒCÜ–ÌÍ M*Q£NÂhTãšk.I‚ÝB!ˆ¶(I –8’Õ :Á4¯¨ôÊL ‚¥Ð\ó×4óvXb‹5öXd“­sÏ>5¢ÐBõ“PCMt‹E‘ܢфĀT$I)=òÒJ+Ò´ÜP?m#ÔQIÕÖT.PõBUV½èÕ-b•Ö9m}@L€u=“.` VKY„Vxa†v˜1ÇÕÞ- µPU“ìÃfþÛ(ñ49@†2Ò8vÄSŠº”¸v'Æhâ‹EìS éJäæD„| Û=…©VžÂL/×õxÏ`¤/|xi¦›vúé¥÷œX ˜«n#ciCìøãCîzdpK>C£“-Jy‹•lyÝQa¶ÚmšÉ°gkäÙg™ú úÖ1‡Øh_“|@¨ 7üpÄß0b‚$úðmh/OŽNJÉr4ÖÐ|?þXé7:ï¼³îÈîB#I5ßX^”_´ã‹[UH:5j·ýf8r×}÷Ú¥›yÛ.Jòq  Ëûwh2‹î•àÁWüy裗þaf½pr‹%ߣ¤ÊQBóÍ9÷ü ÐEÿƒtþ6LG=ÕAÔí8M×–Ù‹·eƒvÛkÇ}wþ{'ãwƒï}Å®’g&À1¯yH›^ø@ÆiOÏ .ÃËHªs’’è@ÇÁI±#)áã°±õ­ä2½)Wˆ*È6ƒ4G:ûãp–ýÝP‡ùÛŸ@àå6ƒoSÞÑX°&Q‰Kd"ÄfBÁ ƒsÐà@èÁ7€°;#DC ­xB÷¥ð +ÌB WAMÉ 4äß s¨Cœñ0¹ó¡©€Ø!Ï€~+býøG@ÒXR‹âÅ.SIµ¤;-ñƒºÓHIu†2”NI@WMIjG.”q˜cª7&‚þt¨áÍò'üåO•j0¥*wG›Üõ JÒÉ#Àˆ†Àå R—»äe/7“BrˆŒƒ"ÙÀHG²’q¤H(IK¾“ÑäØÂh1O: ”¬ÄÙ(K‰CÛ¡’ «\e+ó÷J7Ä’~ëÂìÈPKäñ—¾¤g=í)HB³2)Iú’–¤$%³JIíR“Ú 9É“Ú)IÕnj[NJØXÃQÂq•┣9UÉQnÖ°vTƒ¡ÙúÏ=ªgž÷diK]½|êS$üÔƒ?Z¢ h0(ª…2t UHDÕ0ÑŠ¢á¢üËè?ŠÊŽ‚s£P iÿÔ@Òø]D#(þí›Jw•Ë—†U¬c]XL¡5¼ìŒa;ÒQh#s×Óäô#ŒëBë0ÊFÖn”¹ÙGš G<£$,àøW©rÓ£pôh9q&R5ÔËm.W‰¸R²fV³›Å“Y…V,©5 lÅ)Ü ¸ÖA®u «jíŠW?è•|M„_ ËXÁ¶°·½!b£U7’3”•,Û(Ó.‚Xö–_ålsûܲ\ÜJ’Aš¿”Hç$˜ë G´;†îI)¡e¨]]{ZÞ:´ò#þÓ¨*ÛËØÇ¢V øcc{Å©*䎪9+©À@K½Ï–d.t |`ÓDºG¢îq¬[Zì¢á»ÜµþƒwÉp’ðŽ-AoAÕàaÚ¢—½N.8á»?ÿåpwöE%~ó{‘ýž¡¿ÿ}g€ ØÕ¿5Á;æ±X=;äÖÍÉ.Š¿"{X¼Vjb[y3oÚÐÄŒ=%*«”$,¯Ê:.~1Ŷ¬FéhN:ݹÙJüë;/(—Àëq›ÝlÏ[,¿B§ˆ,a#—ÉxV²†ëlQ'O9ÊO¦r8­ÌUe¹I[R—­MqŠ™ dN„™iœ\q¹l~s§= È8·«^töŸ8é«ÃQ†2ņ^õ ã8_S‹³J[VHëºL±[y j ¥¤±€…L–mj–g?}ld'1Ô£õþ®¹€¿XŸº·tP5¬«Üê5¾:Ú‡¦µulíhQå#¤Vl"| l1Órò×€‹ÍédÇ[Þ‰‹)£ÞÅ…–ˆÓà Í!¶Á¼m2ðÚÐ)ivqç*E‡û"Ö5£µ,¯.—hm !¶Wá=oŒgù”¯ ìÅ ñÛG?¿Púd¢þhÐcvøÛç¾%ÅãÇ|ùWOþür?çK_ýîú²Û¡ýÞ§tìݧ?÷#Så÷ÝîëDþúýk•É‚\˽&iôƒ?vÛ¡»,c«?½û“)×ù:a;¿ÿ»À@å·‡Ó²Ä91Ⱦ|@,Avó½ù;AlA¬‰”¿Ð{A¬Aú‹Á¡Óþ>ÜA=dÀ‹ëA!BŒûÁM<"LB%<6#\3$\B(ŒÂkÂw{B)¼B,Ô,*ü½,ìB/«-\Á/C2ì¥0œÁ2LC5\¢3ÔÁ5|C8”ž6Á8¬C;,œ9 Â;ÜC>T˜<´Â> DA,–?¾AG°PɼÍÕ[˜<ÇÐÍÛ¨½GjQ0ÍQR …Ö½H—%SÎ[õM°%ÛI¸UL\Z…Ôg¤X¶¥ØËÅÜDÔܘåܲôÜ€Å[sdÙÇ|LÒ…Þ¦5Õ¿mFÕe]×…ÝQÝæ]Ô µÝÛíÚÜ}ÜÝõVßeËàõ„áíÙ[¼±ÐZã=DÍËEÌñ]Ðð4Ó0µ×ÁìßÓ}ÖgLKÕ-…RPÕK°ÚOÓXSñÕÝ·ÜÕ³ÕU]ÈäLKŠU[¶-ÞùÄúÊûmÞüµÑý­InÉÒõßSPF`fþ`Fu`Û…àê”ào¥` ¶ ö v[Ÿ­Bùíà@ܰ¤ÊÜdZÀ¤^EÓèYk5ÙLJ/VS0Ó|áJðRæ}YÛmM$5ZݽNó¥à ­ÕIhÆS8…dÜW`U[&â>4âÓEâó|â%^Ï }âDb/¥âL°b,®-æblµIñc0c¾¤`3~ÏI@c5fãEpãM€ã æB9ŽÛˆQVåuQpôØÏÍRutÑ Uá}ÄÐÀÍ„eDTHXN…Â½ÐøãÎ5Ú·|`†]ÜðíSÓ¼F‰e[µVâÍdXÜdD”[A GÝcH忥ÑÝnY ]FVUX…U0M/ÕbÕm`p¶å/çD†è²dË8e`•XŠeVˆcy®Ã<ÝÍÃåÚÅÔÊRfÉ MK¶^€NÊ.èƒÞâLPhQ`è[_˜µé0ÆiŠ†È‹æYæèކC:ÇziH`K´TËðLZH0ÍeDiF0ÍkÕÇg\Æ©]Fƒ6`W¾ZWÞL$ØðUd‰ÆiÆ•h~ Ê¥\¶%f÷a júª,jÄ G¤¾L¥fV§f¨–j S«fåhÌêþRØêOèê¶üê˜-ë›Æé²dlÛ=kIHëJøa¶j¸VC:vfEõSlL΃Մ×5[î¼ÔE0M¨fÛ´4ͤôëÄMS‹Þ„´l…V0MWp…}Ý×õê.îå‡vìpæåò]Øc”XµÅhOðRÌÎì2Ül'&Y*íƒíÈ-í9=íJHíPXíJhíJ˜]æ]F`íÚ®„ÛÎmÝæíCÆi‡fop®Ýê$nE0nP@nå6f]dn;¤ã>Ne÷„Y FXLèÐäLF„lŠeëWx…´$h¨VÜ0æLïÖh¾ZÕ}]XÞWCÝ܆k›æLÏŒÉMØc„XF`ÛedÛ_nýþþBþ^a€þäcp·‡éeLðvö„opUxðšQ ¯Æ¨® /  O —b¯ià~ìð ñïݳ5q?ñPXqüvÃ÷hz&Yå¥e›ÄTÓ×ßqOÐh^cveÕ%höRƒ>G/ãf¤\ƒvåÖ}]JtökÎñÄ._¶üÐÐmÞÔŠV]`]ãfñ0ÏÂ<%s06spDóëVóW`s7g8g9:/;_G…?'…@—„AÿnÅ6tø¶_´Æ„E§YôýÐG…H?…Iÿrž¬ô7DÑTÎs¨lfl¼H¶ÜWHßþ¦Ø5^cX€žuXŽ…X ìäŒO˜õÒ,.ÕueþÚÖZÓôJÈñ׌ƫ¦ÚL0MXðIÔEï´¤oµ xP te—BfXg×Ð0ÞFi‡Tj'vkglÏömïöíýöp_w2-÷{'dtuG…«e÷Qp÷J€wyïNzìÀÆ÷TÐwEHXÞõwJxxd_Ä‚'Cuï •o îP6ÕmRí}•XY…l?…Y˜ƒÞvZ “¯…Zpe`íеL±Æ^QhÝ©÷óí5z`µ[ðR´G{`]úñ¦„swpJ èfl]œUGžÉMNXîWN0hú&øþž_Ÿ·ißz]%zÑÖm¤ç¥gúlú¨‡…©¯ú«G…¬×z®7ÚÁT]°§±7ú×-û³O{µß¶—m·y¸—ûF {‡µ{GÎ{KØ{•íûUøûÍÀwñˆïj}Ë}?Û„½ñ"Åê^ã[¸pW[ƒöR©§…×}z‚~]W6àdDMI rGhw´we«/zÝ6è5&hƒÖäWðWXcŠ]ðOþä_ã}½ÚºïP£LN­¿‰ÍÿNxwvkWÌE€xð „"L¨p!ÆBŒ(q"ÅŠ/b̨q#ÇŽ?‚ )bƒ9Ф2Ò£GA‚¤R’$EŠþ0a²i§ÍK—,Yò‰“)MšNºu+V,P V­Ê” ,Z´ˆÎš¥JQT¨J•Z´h&MI*c¢5JªT¯µj%J*Ò­P7mRŠ×“§W¯òõëW©R¤œ8}úä³ç¥I“€úôÙi2e§NùŽ @Pàƒð zÀÎ ŽL­z5ëÖ®_ÃŽ-{6Æ’câ–¹R,MǽO‰ӱM 4}æËW–,S¦¨f…jË–W¢©Rµj•U-XQ¢(Q: I¬XÜ ‚Íê=±s£Ù¿ÂËŠU¨P~•{BŠ s¤~{rœèT "‡Ù$•Sõ!Ußd™m&h¡}ZþiF›†rØ¡‡‚¢j¶[L+E›$¾­œp˜§ˆq’ ˆsÎA7‹tÔ¡bvÚÍÂ])Þ'y‹˜‡^)ê‰Âž)|ôÙ÷ ~úñ'‹—€— h Ma* ƒ§8Ø „p6¡›TˆsÒY§wâ™çC$¢”M@jÉN9éäØa4hb@9…Tó½•UVT©õUóA••s݉2#Mb1ˆwÞY•Z‰IEXõ]ÊŠ_T!…¬§xåœWµš2ßVåX¯“x”TH…Ê^õ­Ùf…oš&§žÏB­´ÓRK’Iô‰ÛŸ z¡6Êþ ¢œ(ú £ 8º ¤µH: ¥£X ¦«hj §žJª¨£–ºÊ©Ÿ¤Jʪ¡´ú*,±ž2+®·¢âœ®ªðj‰¯Û©%ÞR¬'dž’¬„Ë. g†Õ’\²É'£Ì‰4©„YEæSYeÅx˜X‰ZBÕr²l5UVyuÓQ] Ã^ÄÞ©•K.ÙA%4)ë}BTv“Í7_ºPÙµ Ro]ç´Ó×AQ1(x/ñ5ÙežL†™Hš±ùñh!7‹ZÊ{óÝ·ß|¯lV$.G²mÌ2ÏÜ☜ÜLnΰìÜ3+?Ót*CÛR´Ñ²&MÉÒ¢4ýt+Q_>u“U“ru'Y³þ²õ*]]KØb“½ŠÙ¤ -£Ú”° w'oÇí‰Ç<šÈÎþ¼òË3"‰'®“X².pŸ.2®O †²ÕtóYåœëV¹âÊtÓ•_þuåƒå´\¤lå#XPyG”wÕ‘’˜SÓe–æšÏ‡aíz‹TÀb£¼(˜¨S¤*˘©cs‹ñîf¼¼5/ƒÜ ?ò<ÝiÔ›M¬Ç"f{hêž*¾ÇŠð™b|´(ßùl‘>W¬ÏíËÅûâGŠëÌoõ3þô þͰ€ Y!@I0< _Ä@P8DÖëVA ]CÈë ËhÆ2~E*9ÒÌþœI°±,‡Q"_慔켥|^IÏ,Þ’éx%1å³Êu“¢ ål—x”{$°R¸O.D[â*À"•VIe>YAä)œ’°ì*2oŒQÀªù¸-‚ÃsÞĨ·3Â2–²Ü[ÕÇq½ñ–’˜c)tæ ;žµÐãW–ÔÇZü‘G‚t!SaHÔ%w‹TW#UIJ2s”´äTäÅŠL²b“¤@Š'?Jˆ‰r”b2%#Pù;UvQY´giÏ{âSO$RcŠÆÒOìÅh„Þ—T¼ƒçlÅ)ιŽWÔ÷#«¼E“³è *²R¾ÄxÅ;RQËurNª)â¤Êtîþ$Œqn+Vác¤’XŠëàëkÌž$œ2™4Mg•Å£§+óéÓŸuCû´¥?U$–€Ê1Ý%' *Šƒš"¡ Xh*ŠÃ‡Ò"¢áœ()¼bQW`ÍGSáÑRl¤œ)WIj “f¥HS)-XÊ.—ÂÔ3“é?k Š›†b29§ÝÀÈÓ8½2¨Š],c;RKé’e‘x#JØY@°”Â)YÉŽS®Qd¶Â+;2½f‘?¶"^íâ[™HÉè¼®…¶Ë$·"•þ•âhRqNvVjL°¨Å'¿²žõ¶Å—+>ˆ°_dVOëÜçB×Z·ánÈ“8ÁQÖ–•"f5;þ ΂³Y­hW1Òfå´ U­¤X{ Øj¶Þ›m)j«ŠÛºT·™àm+|‹Ûàþ„bÄU‹€rÜPØTMÊeeÝCºCå'…‰ê”ìŒ9¤…ŠU¬¾ñŠ×+.ÌÔ,œóÙgR%;ÙñJv6«bÌ¿…E} "¨0cYɨ(L\WÌ&Æ'£ΑÄR‰J¤rA ÝäiXÒÔ3ÂRžr>'\á+uös4¼áÓâÃ`KÐP1âÒúø-(†…ŠC‹Š÷Řk&p›V‡ÂÆ™Àq,t< ûÆAnÌáXä#'žL¦ ƒ;2*C:Òf´r…4Sþ•8FºàËuœ“¤LG‰érÎ iáÚé0*i~ «/ú †½…Å­ø¬kÑL¯Ôg>`Éq&ºvNç8Ç)[ÉX®c3š’E²G¦‰wœÜE{±ÑPn®¤«mmæQšÂ–î'¦'¡iN§ÂÓ³5}g¥jS”úÔ¶Hõ*VÍêa‚õÕ·Šõ›g=аºÅÖ´`(*rÍŠ]÷¹×ªPÒV€m a«‚Ø/Mű%;3•,[Íþ+et:Ïi;˜"Ø8Ç;îq7äã"9k6^rpÐäSùµ-2T]{E^^Êê—®Y…*9"53i1I>£Ï9B­UV|+£3ÌV¨€áu®“÷þ2‚A‹ˆmqnYE’uÌô%¬±Â;òñ ‘‘£ã!O;ÚOîö ²¼oqoùD^n]šRæE®ù(®só¯"ç:¯W©¾ ¦}è -º›eͰ…-Tuz+ NM©ç¶’¥¨úÕ1›ušnÝÐúúêÂ.б37ãa{ÛÂú‘¿]5sgÞìSV{ºïéZCŠ Õ©yÇ/V!wv¶¢Äw©Å*ý‰Õ|˜BYC…Þ;jód”¤º¬¼e2”ÛQº>}ŠÂ,V­Â¥žëª$Tég^ § ¾•ª—ÈëIîúúƒ|5·ÿÈþWŽrÿã^EÈîuK¡M‚MþŸ(-_+_/éœZ$-,R4_,<_½E_-”×tP_'X_+LöÕ‚öU…©™×[‰‘)ÉøéÈ*”_&œ_â¬ßúµŽ(Ä_ƒ=ýáŸÊÁaÿEÄ„r„ò jDÿA¡ÚiÜÿ DÎoÄ\YÌTã~ÍÇt ”*8 +@…C]‡ÖÄŠ¶U´ÔŽ¡Â[žš}BŠ¥š™-\‡VmÅ[(ÌJ½PF'_ºÕ[0…¦I…¦qMµM'ÔG}„ÊÁß‚íÆýàaÚ_R!F !vâH8¡í…¢HDáCt\EŒb^a‹d¡dÉþataÍÂÚBŽa^Õ¶NÚBv°á]¹!ÒB0&ÒÛtäa-< œÌ{•˜)â ÆËtb, b&(¢¡ÑD#>b(D"‚YF:ÚabjâÇ­#þmÄ'®âEÄ£ÉÌ£*–bBDá*Ö㵑ȶ©Y@V‘yÇV¤ U€…IMÇVðÛuðÅÑ8…WÌå•YùdE9#,ˆÓuL†ÔLQXEõy4zXÖln1  sÅ‘E–ÙD¨¤ÒMÇ$B›“¥Þ%ž]&‚";î¤;>¡ýibìeÐ>®Þ="D>åÚUaÝ]‹?"[áÎ’Ç@ªBAÂÂAS+$þ¤*,d*4dH>$*D$VYUE‚šed*ldét$)|$†dVŒäØd, $-ÔËJVBK.BŒÀä;ɤ-Ð$H4YaÝ$:æ$'!'fÄí aRzQR‹d¦c)¦âýÍ#eFÚPÍŒX$Ûuå y€Ç||%^@Í*8Mºà*P…——Ѱ›‹ “0½TÐ&3²BÁæhx¸çØ&dEÁÅÐ)8‡Ó€Åa(Í%ÄÇLÆ”<a2Z%–=*æ&ê¤<åc eóh&*J!>†§B\¦=.¥^Ëgz&T‚fhŠÅh²BinÂi¦æ ®Âj¶¦,ŒlƉµj½[p¾ÛXþRd ò&%ù¦}æÀÙpŠaqg.$'',gsnBš@§‚Õ¤aÊN‚çuò$czâvþßw:„‰> Šb¦eާxf&džçAØÝíÕ(­§MÔ)ÌÇmØ|¥×'8£ö¢_ ¡ãµl¹zI iÁâ© Tø^àimJ)0…sÜO¿‰## EZŒ‚XàE¨ì`t~Da.W‡"懂èeЍv*%(v'íÁè¶hO®Ý‹Æ¨tÀLÑ(Þå’?áèSéè7íYÊÖé¡nI‘þY½y’ª˜’Æ“ÂVpf”¦Ë”R©•––Ú‹–Æ—Š®}i˜:‚Zéþ&˜é*$˜9Zb›ž(ˆ.ÄuÊ)¦Ý­²];~¢¯æŸ‹¶Þ)Žè®Òi­æ*w+°–çQöª³þjOò¤„5eQ@ NàŒTðÁçl¥“ÔÒ!åÀ™€ÖEõ˜uغ2Þ»âå,øE^,¸Sp'/îœ)XÅaÔÇ„PŒc* Ö†®©Òêž*&¯Æé¥± ëb>kÄ+´+dî#ë%²Z„²*+³æ©ÆZì´ŽlÅ:W?Zk¹¤¶:·z‚· ¸ÚÂVˆk*0çã ž« Ö¡ºö»Â+¼®kVÌkžÕë½òl¾¦‚Ï`ä4ö+'ük)FÀZÂÀ¾þSÁJg´Qg”éêÂ’§×šg×F«ÈŠ,Å6+ÈÂ)ÆÞ©ÂJ,x&k‰Â­Ù†ìÄJ«ÉÖíÙ6Êb.š¦ÅD˜Å” …w´Šk¹Vg¥‚Z0^ÌÊu”ƒª˜à1 ‰‰—IíQæ‰×Ž !XÖdtM›í-ø–©ŒŒ…ŠwhšO|›r¤’¬Vçâê×6lQ>lëÉmÚBlÉâ-Ùªmc>+±†­Çvbî¢íxïÝæ)cémhò­Xø-$®%î)®7î*Pâ*n,0n4:îYÎ!%µ™äÞ å’fåå’N¿¸ÐYun'|®Š…îèúKébÖéŠBê^Âê6â`¦étþ^ÜëÖî›>¦:vìÚ.ëým윊§Ûr,±¯Ã>pïp;ë+pó*o°S‰Ù±™¦ixà…§N¨Ò(Ì ^d…DÙu0‘’aàÑÂd$†“þ,TL½¹ådm®ÂdSÌ+ Œû•Vv\ÇVzS[*lE¨8rR_€G#–ërme0ÜpØb¢G0-Sp!;°'ðÇf0§1Ÿìµ„0ã,“° o KíZê ·ð&¼ðVÅp*Ìð+ÌË[æ°Ñ¬+w‚Â2þH×$14·_$±.q+4ñ̪ÂÇBO1#T1þ…^±'d±ïl1%p'惱OºqÇ1[0ç2sì-Ÿ±ï²c0w°û²¤‘΀Ç~HÅïGànssœIá[] Ã\Ñ*òVõáE¶ ˜QòEcù8Ev$x½› ­sø…’±•¶Š~…Ê.ìPÄd(àÖþ¯ÖÆ2µ‰-o´ŽñO0.›ñ0ó3´BÏ©'t1ÇíBcôDÓqÞ^ 3S‚3g4ã‚4S3'Xs(œÕ]l‚6³Sps*x³D…søŽs‡•søž³+¤s+¬s+8E;ÛÂ&¿B}Àó+ȳ4Ò³7Ùóxá3#è3?¦?+þ@{„šJ›ô›4PsN&s;´ìþ.DÿrW?tDWt.óîWŸuµ‘Èe)ÉaXÅØ4±lVÎË!SØ"S4]*DÑtø‡Ñ‚S”äÂYׂ9«½fb¼e!}‚_L~$h ¦Kï W¹Ôåâ…W´2_(™h—#,“,»éo5ÉÒ®D÷rY7´îb'[30[0E{õ¯uF¿¶2_ \kž\Ó]3äÆÜu)¨plÍ _³ªÅÂ_¶- ¶ ¶Ð‰o¥Î‚b3¶c[Ý}~Bd;Ód¿Be+ÇeSFf/ÜfWTgÓg£Bh{ÂhÇwiìU£v­Òr-×_®þ¦u[órl¯öEk4Zçö€Ã¶k?ônø‚oæµtš)0‡æ(…>ïÇ~àGð u(œæ|Àg*11`ëUà×$Ü϶œ=QùØâ2¾&1NF¾µŠR !st« ƯWPSdªÑpŠwÆ8Öis1A{±A#ïñö÷ß¶._0~5m‡u’/9Sù±î·0792»µƒ‡„Ë‚„ß…Wø…+`†o8+tø;}81Š8-’øºž8¤¸+¬8ˆ·¸¾½øÖBŒßÂŒËB×à]ŽÇÂŽ+ɨˆÂ3B8 ¹i¦Ù¥öël€ãmkûwo‹uÿ·’ë)–Wzcº°òw¨súþÆj¹o:axvð…R0GרáÑl…`ÙÂd|–ÓŒa×Ä/ Åùg}œ-#S¬ù%Ûp6*Y{ÂV€‡Ÿñ—‹m…¬må|0º'…¦mQ(PuGXõÖù,_¹Ä†q“ú”¯¨¦ƒ5¨‹º§'¯º³c¶{•s©[9Y£:¨úSØp«·Â«ßB¬Þ¬‡d­wÂtàúxéz®°¯ úÏò×øŽW°ɰÇB±6²G²3;%8»)ÀYñr½M;•(ûµëB¶o;Gtû@Ï_‘ónˆf'¹_úÌ[,ºÛ<§§­ÂŽ:Í·ãο;Ÿz¹K‰ÌU¸4*ð›s(S(d*þQg¿|¥å"ýùò…/Ùb ¹• ¹âiâki§Tm aÜB÷^ýU–¥®«sØ:iη²K"ÅqQ}{{˃»¤#/¥Ç»»›º½gzm§;çü¹Ë¼Ðº¼ ¸ßg9àCÑË–ÑÇ‚åàÊÒÇBÓ?}(ˆÏ)H½'щWÚ×Qs×6ÕÓNÒζ™“ØØ«B£œÂ`Ú{‚A®=-üºäQcÁu|ƽTÏý+Û=Ë{¨“ûíÒ­v’l·íŠÎÞñ6ÿ¤c¹ËWlô›µàC?Ýf?B/‰dÇ"³+1ºÐΤ=‰{X8e‹®îSž`¿‚ÎéçL %g›1 ˜þ­ë¤âþÏZTÔÇ}„§W¯< |¥J•)S«VÁ‚+V«V§N1œucªTY±¢DI—®P#C2 ªS§ŽX¶tùfL–"@xpsrî0àæƒšdÊ4piR¥J.uº´hÔ–O]juªS–XaB}ù”kV¯a©+õ+X²ZÍ@ÛÕmѵe«ª»,\ºoùöõû°ß XJìÈVbŵj%¶e«cAY² :dˆP”¨R¥L|œX¡F‰:4 ‹¢Ã‹–®’øº*Ù¨Ó’˜XvâÛ´dkd8r`Áà*dè¢DŠ1^ÔÈÑ#H‘$O¢TþÉ*°Tš6qêäéýgС~íæY~/à½gÓÖ{7mR½lÝ3m[_þýÀåñ#Å«>¸úËo@ûðJ¯-³[Á³Œ%…RB¨¶ÄKl¤[néè¢ÉêH¡\r‘h¤Ç²°'© †:rH"RHˆ¡O>©P1W\‘ˆ!u¼ˆ!Æt<‘Æn ‚<Ñp“MRbˆ¢‹tkŤŽÛL¢Ühéh2† j² ”LJÉA˜¶ ª§ï|ê¦ñúB¾øàôoÁõlO,ûØ;ÎÙ+k.=ïä‹¿<óÛS*Dÿ3Ô@F½âóQGû,“ÒJ-m B$ì„ /¤%à YéP–þY qÄVJ´…HÆT”…EO\dÆVd¤qqLLGWñÑ WÒ•Vk92”$•dÒÉN ‚ôº,r—Ý¥B"¾[ðJ!¼R¯Æ3òf¡¼W0Ïy÷ƒžôTA=ëaO1ÚÛ÷罆þ€Ïâ³ùŠe¾’€"}²X_ûvñ¾°ÍõÛˆ ¢¿&õoÿ³EM‡®¶IuîR #ØE/~Œa@¦Ƙ†]"͹B4D ¹O! ‰FB""0Æ_Ê¡È)4¤¡@i…C(2…®VŒqN*ˆ•˜‹0Fƒ áÒdd¡,’„b2cE`#¢Ú@„~«XUA.YXTÇ$T<—šxò´,"p‹­ã,iYK[ò‹0(c-Î8‹4ª‘·pã-à(G]ÐQvdd-ò8‘=öñ ¤ y Cš‘ Tä,îX 9Rq‘4Å$'cI’dòn›ã?û²>õó>÷s*»Ó6á“7ÓS=ÿ !­Ý“0ÿ@k’>ãÓ>±Ó?‰³Bt)ûó914C/t<”( ô@Kï.›“/6ô?‹²:¹³6Q41W´<¿FsiE4S&B[t7iô%³@kÓFyTC…ô6ó³F‰ÍEoR@EtDiPArF™Ò?Ut0gô8“TJ£”EáÓJu4Ha‚KÁsK‰T@óóGóK{TI«TL´MÉTM±4GÏ”IÁh=Ÿ4&‘´A)þôF%”M ”6Pc”P×T6ó= 5E‹tN5D5BùtM‡4R•*ƒ4Kë4Œî” óôJ÷TQqôP+õ9DÍTQ%µLwôC 5FE•UAuPCuJý”B)µV]µC?õE5ÕN´Mô-äU+õD“M15VÝô8WuImuQgµU4ZOuLuµX‡ÕR4WÓW¿ˆSßÍSutZ_µ[Õ/©TYûó<ÕC¯u[ÍUZ•^Uµ[±uY]áõ7ï5D¿\µD%QYç5[!õ]Õ^}4U©Uaë5^õÕ_ö`'õO­õPñuT–_;Ô`e`»(\Oo\þµôc7a ÓX9U56b¥”b;¶b%•Xw”]/–f_6_gVV=cA6d!hdñR0õMINW•Yã”EµL-öi—VûT*y5i{iK•i©ö6Õ•\¯¶eÖj—6<Ç–:ƒVh–9 VOéÔ>‘Öl{5j›öMÉj·lV:­öS³=qM“õkûÖ_ã–HËök3mhh…µ`9r#Wr'—r+7r7‚—m ×r;×s?tCt17mItmÛ³mEWuW—u[×uÍ“tWmÙsAS÷uowsWwE7ve×tiJ{Wx‡·ú4u‰y“·îŒ·v•×þyŸ7Þ˜7x¡—z«wƤ·d­W{·W¹°×5¹|×°¼W|Ë×|‹|ÏW}×÷–Ò—}ß~Evvñô{ã×~ïWkÜ÷—¯Fû€˜^þW€ Ø€„€Xø-˜‚[Â#˜‚x‚+ƒø‚3˜ƒñwƒ;„ß÷ƒC˜„Í×{wwjuóYw…Yvt]¸fYX†[w^NXwSØBcv†WWi=·‡ux‡ƒ8tkx~;5|“syôdU˜cXˆÔ‰+7Š!ö‰‘õRµue«–Q¹öVÅ”ˆ—~‘8qsÔo½s…«˜‡a؇Ոј[¯¸]Ïu‹•˜Œç˜kþó‹Ôˆsøgqxg§sŠÝ¸sYr YñsŠ·V›R‹uÕoóx Åõˆ³Œéx‰ùøwØ!w“3ÙXf-6g9bY^lX;›xŒ3ön×KSwn£ÓTg¹nóöŽñ¶Wek_™oW‹Mö_–—-™n=9lfó•‘÷v—?ö—Éq`‡ “ƒ9–uö–£ynÓ4… ÷–³õš 7‰»X—¥–QÓ”‹ëøšÝöœ‡¹KyŽýXˆù]©´PI™•ñU›+•)ù•¡ZÖQË5”7Wqu‰éùž'öÝ4¡]X‘å —¹“_øq»8œŸ¹cí›ÿxŸ)¥ŸþSÙTs6™ Úf!Z•IZbZ+9Ÿƒs[M9S:†;š£Uú¥å™÷Unñ¶™Kú¦MzHÍÙAB‘}yŒo¶YQˆW6e•›AY§K¨/´8yšŠeû¸ž¥š…:«ƒz«©:”?ºLŒZ>½Öl•H™ºgszLªÝÙ«y®_úª­Z[ÛØ¦q¶aÉÚe=¬—Ù®OÚe‡šn번%¹š§z ;°µú¯…Ú¯Û²ÖŠ™™¡óš°ù³«Ÿ§:®ëÚ˜ÉùlUÖ«#Ú´Û™ç’tý´;²k{²'ºZZ·³vñz³õº³{›·G·g»_ó¹IÛþ¶ƒ›«Û‘»5Åøk9u9£ùºkÙ›s[lyy•i[‹¹ºMš¨Ay»G™˜4š[¯“µá˜Ø*9¹ÙOy±Iv’-tº×ùp[9ž¿;»œiå½Õû»ùÚp3º§åYoß¶pÓ[˜×{WÛ›Âß›[㸸õ£ÕôµƒÕ€ÄC\ÄGœÄ3¹Ã§™¸J\ÅWœÅ[ÜÅ9Ù¾Á8¶_œÆkÜÆoÇü¬ï/sÜÇȃÜÄc\%9ŽÉ“\É—œÉ›ÜÉŸÊ£\ʧœÊ«Üʯ˳\Ë·œË»ÜË¿ÌÃ\ÌÇœÌËÜÌÏÍ¡œÇŸ&ÚÜÍßÎã\ÎçþœÎëÜÎïÏó\Ï÷œÏûÜÏÿÐ]ÐÐ ÝÐÑ]ÑÑÝÑó\Ƈ &Ò+ÝÒ/Ó3]Ó7Ó;ÝÓ?ÔC]ÔGÔKÝÔOÕS]ÕWÕ[ÝÕ_Öc]ÖgÖC½È9.(r]×w×{Ý×؃]Ø‡Ø‹ÝØÙ“]Ù—Ù›ÝÙŸÚ£]Ú§Ú«ÝÚ¯Û—ÝóۻÝÛ¿ÜÃ]ÜÇÜËÝÜÏÝÓ}×·]ÝÛÝÝßÞã]ÞçÞëÝÞ¯Ýà|ß¼ßàßžßÞß à ^à ž(v]ßÞáþà!>á#žâ'¾ßõ]×^â¾âþ9Þâ=þÈ1>×5¾ã7ÞäKå?^áE>(H^åSäO^åYþ&\>æa^æoþâþå{^ç~á3Þçsžèq¾äiþl¾è‡Þèg¾ÝÙ}ßY"饾%¦^ß«ë©^ë¯~ë­Þë³þêw½]¾¾ëÁžì¹íÏ^í±^ìËÞíÓÞìãþí×¾íá~îåÞîó~í©^ìI€Àïÿ>ðßï _ð ðñÿðßðéÇï÷^ï'ßòëžò3ßòï¾ì1ó+ŸóAî=?ô5¿ô/?ÝÙ}áC€õ€õCÀõ[ÿõcögßöe÷k?÷iŸ÷E@>׆ÿ†þŠŸøù_ù›?ùŸŸù¡ù§FøƒBø¥ßù£Ÿû§û½_û¥¿ú¯ÿ&²¿û¿ýÃÿüÕŸú­_×àïÓýçüé_þ`üß_ßïŸÿÙ¿ÿ» FŒð `Á€X¨áB !>ŒHq¢E‡%f|  Á+n¼¨±¤H“$Orød”0GÊD9“bÇ–8sêÜÉçü :`€A„!„Xª”éÒ¤O›BuJuªU©X£Fáñ(š`UÆ ;–c׃_Å:L[¶m͉,?"$û¶.ݰq’¸«–¯[“yÑúµÛ·0ܳ.+6\3pbÆ‹ÿªt<þ²å”_ù:îɹ3Ï¡B 5z0+S¨M_Õ `uUÕYEˆÀIsjÉ¸ß ¤­õK¿MfVÈ6íðámw·¬½Ñwaä„“à“ÄeÖ/f±¬r¹½oG¯ Ýûôåáƒ_òûÑôjÕç6O½¹øÈ2:_(ß½çÿÚOEõQkW!›V¯1èÚƒM͆ØåQÈP…ΧÖtbxáxò±5‡8yQ†káG‰-í¥âzƒ±x`s¾¨áB2d¢…6ÖÈXŽíˆb+‚T"'²qENà“ŸPà”¤¹dZBQ¡–”‚\žÖà—ʆXHýöÒmâ™Éþ$qòv“\mª Ü™êgpʉg…oz%RkÑÙP›/öyPwí•v Yçb£ íõva稤”NÊ(\”ÅYš‚ÎÉæ ¤—ä©6uúç§g&©ŸqÅ… ꨜŽééDÈ¥¶ß}0¦jëªÍÊÞ‰*†°Bd(”ÌêD%P@U‰TV©-…ek†pí–`.Ø-Wˉ(‘®µJ¬©yözX¸(‘«‘~)ž[.©¹¢º.œíž(¢¹ÃÙ+e’„©C/Z)Ál0¤÷zE¼ïÊ q©ó¢6®½ ušïªÓŠ'ºÃ‚¼¯¼ÊÚú°ÄkBGè¿&zr½é¢û•žÏþ¼æfÍæ\ÐPÐF+­·ÜN¥UÛmt²Õ·±¨*¯Ù¯’ùg$L±Æ +¿ÆZqÔç×VÖ2ï)®ºR3g’¥“r©FŽb´èvp§-ÑÀ•mØæÚ¶¾®R´ŸCvÝ·müŽ„·Ó¿öÇîª x×ï ®5½¼âêãÓuC®óæð<`•Ù&è¶]Ý–Ý:hš„G 7¯åÃ|#@’Œr™·3~1½2Õ.¤î“ÏNSíZpÀjO÷ÚrWT0ó8ÙÒï…Wï4ð°‹ä;’Á_>òÞÝÿ¶½ëƒ/¾òìãûý¡õ²ÇÛþî_ÕÎ9³Šf ZW+ôéX•~ô·àþ‚°w« MCË"Óëè1¾¥ìrÃ^ÆTe›qÉ)MŽ À ó<îTjS˜Ú”Ú<¨©„ù*\á±àáW±xe¯V(¬ ­¾g@âNTàKàÊ:†Ã† jÑa gX>'‚KÃÓ²æG?ûÙOZØRSGEm¥eÂËàd°He±a‚Ñâƒ8&äIŒãâÇX2v¡qit#ßh9Ž€qT?¢ülŠV¬âÿV“4ôÌñ‰ÌùîX‘DÒñ‹Ž<$#i§¹©Mò’í©¤Ù9ÉHbRŒžÄ#Ù*¹Ç'õq4$ ù?ÖMï“’LŸ${$KX^’x¶„þc-E‰>é͈—·ô¥Žr‰Æ]r?ò+åNy?+­ò™ª¤˜bHÌ, q–Z¼f5™@DaÜf¡Â Ìqþê›Ü$ç1ÿ…3ez†™P ¤À°ˆ-¬b ËØÃ.Ö±½'Z¦#Ê+±¬f3ËYÌzö² Ýl§DÚΖö³¤M­i)k+Õ¢vµ°}­lO[Fמö¶¶Ímg[[ÜöV·³em¸€ëÛàþ6¶¼5®r‹Ë\Ñ&·¹Ç].p³ÚלL4HÍnb#ûØíj·»àíPt¡+ÝñŠ·¼è%ïmÏ«^âº×´ì}ozå»™„Ìw¼ôµl|ñËßû.Ѿíío€ÿ+àü ˜ºÕõÉ_›I¡ÄÁv0H$ á GøÂÎp…7Lá$!Óó°†EÌa —xÄ&1ˆþDâ§øÅ(Žñ‰W¬#ËØÆ'αi$ûÆ:²„yÜ`!ùÆGžq‰~Œä&9ÆD“ŸLå)yÉI¶r–aLäû•«6õ²˜ÇLæ2›ùÌhN³š×Ìæ6»y×}³œçLç:ÛùÎxγž÷¬³8óùÏ€´ MèB:Í𤒢ÍèF;úÑŽ´¤'MéJ[úҘδ¦7ÍéN{úÓ µ¨GMêR›úÔ¥^pÏVÍjhñ¬Õ°Žµ¬gMëZÛúָε®wÍë^ûú×À¶°‡MìbûØÈN¶²—ݳWã:4AÑuQ˜Míj[ûÚØÎ¶¶·Íín{ûÛàæõ´wU m˜ûÜèN7ºÇ­îv»ûÝðŽ·¼çMïzÛûÞøÎ·¾÷Íï~ûû߸ÀNð‚üà?8»ñM LK Õ¸Ä'NñŠ[üâϸÆ7ÎqL?üÒ;xtel-3.3.0.orig/xtel.h0100444001424500142340000000534407241353540013425 0ustar ericperso/* * xtel - Emulateur MINITEL sous X11 * * Copyright (C) 1991-1994 Lectra Systemes & Pierre Ficheux * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ident "$Id: xtel.h,v 1.10 2001/02/11 00:05:52 pierre Exp $" #ifndef _xtel_h #define _xtel_h /* * definition des constantes */ #include #include #include #ifdef NO_NETWORK #include #include struct sockaddr_un unaddr; #endif /* NO_NETWORK */ #include #include #include #include "demon.h" /* le widget Videotex */ #include "Videotex.h" /* Mode d'impression */ #define ASCII 0 #define VIDEOTEX 1 /* Telechargement */ #define X_MODEM 0 #define Y_MODEM 1 #define Z_MODEM 2 /* Pour le mode Tele-informatique */ #define MODE_VIDEOTEX 0 #define MODE_TELEINFO_ASCII 1 #define MODE_TELEINFO_FR 2 /* Type d'arret */ #define ARRET_FF 1 #define ARRET_SUITE 2 /* definition d'une touche MINITEL */ struct definition_touche { char *nom; char *code; }; /* ressources de Xtel */ typedef struct _ressources_xtel { String serveur; Boolean petiteFonte; Boolean nGris; String commandeImpression; String commandeImpressionAscii; String nomService; String typeArret; Boolean boutonRaccrocher; Boolean lowMemory; Boolean privateColormap; String string[9]; String erreur[4]; } ressources_xtel; /* nb de procedures */ #define MAXPROC 10 #define P_PROC 0 #define P_SERV 1 #define P_WAIT 2 #define P_TRAN 3 #define P_REC 4 #define P_WRI 5 #define P_HUP 6 #define P_EXI 7 #define P_ADMP 8 #define P_PDMP 9 struct keyword { char *mnemonic; char alias; char type; }; struct procedure { char *nom; char *service; struct d { char type; struct d *suivant; union { char *attente; char *emission; char *filename; char state; } p; } *d; }; /* Protocoles de telechargement */ #define MAXPROTO 10 /* Procedure */ struct protocole { char *nom; char *commande; }; /* Definitions globales */ #include "global.h" #endif xtel-3.3.0.orig/xtel.lignes0100444001424500142340000000155206703332557014463 0ustar ericperso# # Fichier xtel.lignes # # Config V.23, modem HAYES generique modem0,/dev/modem,1200,7,E,\dat\r OK atm1b2\r OK atdt\T\r CONNECT,30 # Config TVR, Djinn-Flash 9600 #le_tvr,/dev/modem,9600,8,N,\dat&fm1e0&k3+xm3\r OK atdt\T\r CONNECT,30 # Ce meme Djinn-Flash en mode V.23 #modem0,/dev/modem,38400,7,E,\dat&fm1e0&k3f3\r OK atdt\T\r CONNECT,30 # Modems USR 28800/33600 (a choisir) #modem0,/dev/modem,1200,7,E,\dat\r OK ATM1S34=8&N2\r OK atdt\T\r CONNECT,30 #modem0,/dev/modem,1200,7,E,\dat\r OK ATM1S34=14&N2\r OK atdt\T\r CONNECT,3 #modem0,/dev/modem,1200,7,E,\dat\r OK ATM1S27.4=1&N2\r OK atdt\T\r CONNECT,3 #modem0,/dev/modem,1200,7,E,\dat\r OK ATM1S27=16&N2S40=1S9=100&N2\r OK atdt\T\r CONNECT,30 # Modem USR Sporter 56K #modem0,/dev/modem,1200,7,E,\dat\r OK AT&F1M1S27=16S34=8S40=6&N2S9=100&B2 OK atdt\T\r CONNECT,30 # Minitel 1 #modem0,/dev/modem,1200,7,E,minitel1,30 xtel-3.3.0.orig/xtel.man0100444001424500142340000002002006703332557013744 0ustar ericperso.\" Copyright (c) 1991-98 Lectra-Systemes .\" $Id: xtel.man,v 1.10 1998/10/02 15:09:58 pierre Exp $ .TH XTEL n "Lectra-Systemes" "10/98" .UC 5 .SH NOM xtel \- Emulateur MINITEL .SH SYNOPSIS xtel [-petit] [-ng] [-br] [-low] [-e] [-serveur serveur_xtel] [-service service_xtel] [options_standards Xt] [fichier_videotex] .SH DESCRIPTION .I xtel est un émulateur de Minitel 1B/2 ou TVR (Télétel Vitesse Rapide destiné à X11R4/R5/R6 . Il permet de plus la sauvegarde et le décodage hors-ligne de pages vidéotex. Ce client fonctionne sur écran couleur, niveaux de gris ou bien monochrome. .SH OPTIONS .TP .B "\-ng" Niveaux de gris : dans le cas d'un écran couleur, on utilise des niveaux de gris et non pas des couleurs (comme sur le vrai Minitel). .TP .B "\-petit" Petit ecran : la taille de l'écran d'émulation est de 320 x 250 pixels. Cela tient moins de place mais c'est peu lisible dans le cas d'un écran monochrome de taille courante (15" ou 16"). .TP .B "\-serveur" Nom de la machine serveur (supportant xteld). On peut également spécifier le nom du serveur par la ressource \fBserveur\fP . .TP .B "\-service" Nom du service de \fI/etc/services\fP a utiliser. On peut également spécifier le nom du service par la ressource \fBnomService\fP . .TP .B "\-br" Permet de spécifier la présence du bouton \fIRaccrocher\fP dans le popup-menu du clavier Minitel (utilise si le modem ne gère pas le signal DCD). .TP .B "\-low" Supprime l'affichage des jolis boutons (et limite la consommation mémoire). .TP .B "\-e, --exec-procedure" Nom de la procédure a démarrer au lancement de XTel. Cette procédure doit être définie dans le fichier \fI$HOME/.xtel/procedures\fP (ou \fI$HOME/.xtelproc\fP par compatibilité). .TP .B "\-private" Force l'utilisation d'une colormap privée (à utiliser dans le cas d'un nombre insuffisant de couleurs disponible dans la colormap par défaut). .SH UTILISATION .LP Après lancement du programme, on peut sélectionner 3, 4, 5 ou 6 menus déroulants en haut de la fenêtre. .LP Le menu .B Fichier contient les entrées : .sp .I "Charge l'enregistrement" Charge un enregistrement en mémoire (il sera exploité grâce à la fonction \fIlecteur\fP du menu suivant) . .sp .I "Sauve l'enregistrement" Sauve ce qui a été enregistré sur un fichier. .sp .I "Imprime" Imprime la page courante. .sp .I "Quitte" Quitte le programme. .LP 2 Le menu .B Enregistrement Permet de controler l'enregistrement des pages Vidéotex. Il contient les entrées : .sp .I "Nouvel enregistrement" Initialise la zone d'enregistrement (ce qui était enregistré est perdu). .sp .I "Demarre" Valide l'enregistrement, tout ce qui est affiché sur l'écran est sauvé en memoire. .sp .I "Arrête" Stoppe l'enregistrement .sp .I "Lecteur" Appele le lecteur d'enregistrement (fonction magnétoscope). Les fonctions du lecteur sont : .LP .in +7 .nf |<< Début de page << Page précédente [] Stop > Lecture >> Page suivante .fi .in -7 .sp .PP Le lecteur permet de suspendre la lecture sur le caractères \fIForm Feed\fP (qui représente un changement de page en Vidéotex) ou bien la commande \fISUITE\fP souvent utilisée pour afficher les informations suivantes. Les deux conditions peuvent être combinées (SUITE ou FF). La valeur par défaut est \fI"Pas d'arrêt"\fP, il faut cliquer sur cette chaine pour définir une condition d'arrêt. .LP 2 Le menu .B Services est créé au début en interrogeant le démon \fIxteld\fP . Dans le cas ou le modem est un Minitel 1/1B, ce menu n'est pas affiché (l'utilisateur compose a la main). Pour établir la connexion avec le service, il faut OBLIGATOIREMENT utiliser le bouton CONNEXION/FIN de XTEL (et non celui du Minitel). Par contre, on peut libérer la ligne en utilisant le bouton CX/FIN du Minitel. .LP 2 Le menu .B Procédures est créé si le fichier \fI$HOME/.xtel/procedures\fP (ou \fI$HOME/.xtelproc\fP) existe. Il permet de definir des procedures d'interrogation de serveurs Télétel (composition puis envoi automatique de chaines ou de touches Minitel sur reconnaissance d'un texte particulier). .sp Dans le cas ou le modem est un M1/M1B, l'utilisateur devra composer à la main le numéro du service et sélectionner la procédure pour établir la connexion (au lieu d'utiliser le CONNEXION/FIN). .LP La syntaxe du fichier \fIprocedures\fP est la suivante : .sp .in +7 .nf procedure nom_de_procédure service numéro_de_service liste_de_commandes .fi .in -7 .LP Les commandes disponibles sont les suivantes avec les raccourcis (une lettre) entre parenthèses. Les raccourcis choisis font en sorte que les fichiers déja ecrits avec une version antérieure soient compatibles. .sp .in +7 .nf waitfor chaine_de_caractères (A) transmit chaine_de_caractères (E) record on/off (R) write nom_de_fichier (W) hangup (H) exit (X) .fi .in -7 .PP Pour émettre des commandes Minitel (ENVOI, RETOUR, etc), on utilise la syntaxe suivante dans la chaine à émettre : .sp .in +7 .nf ENVOI \\A RETOUR \\B REPETITION \\C GUIDE \\D ANNULATION \\E SOMMAIRE \\F CORRECTION \\G SUITE \\H CONNEXION_FIN \\I .fi .in -7 .LP Par exemple : .sp .in +7 .nf P Ficheux S 3611 waitfor reste record on transmit FICHEUX\\H\\HBORDEAUX\\A waitfor Suite write /tmp/f.vdt record off exit .fi .in -7 .LP .PP Par exemple, la procédure \fIFicheux\fP recherche le numéro de l'abonne FICHEUX sur l'annuaire électronique, enregistre le résultat dans le fichier \fI/tmp/f.vdt\fP et sort de \fIXTel\fP. .sp .LP 2 Le menu .B Protocoles permet d'utiliser des protocoles pour télécharger des fichiers à travers XTel. Ce menu existe si le fichier \fI$HOME/.xtel/protocols\fP (ou \fI$HOME/.xtelproto\fP) existe. .LP La syntaxe du fichier \fIprotocoles\fP est la suivante : .sp .in +7 .nf Nom_de_protocole,Nom_de_la_commande .fi .in -7 .LP La commande correspond à un exécutable permettant de gérer le protocole spécifié, par exemple: .sp .in +7 .nf Z-Modem,/usr/bin/rz .fi .in -7 .LP La commande doit utiliser \fBstdin/stdout\fP pour ses entrées/sorties et afficher les messages eventuels sur \fBstderr\fP. .LP 2 Le menu .B Xtel permet d'obtenir des informations sur la version et la configuration du programme. .LP 2 L'emulation des touches du Minitel (Envoi, Retour, etc...) est realisée par un popup-menu accessible par \fBBouton 2\fP. Les raccourcis clavier sont indiqués dans le menu. Ce meme menu permet de selectionner le mode d'émulation (Vidéotex, Télé-informatique ASCII, Télé-informatique français). A partir de la version 3.1, les touches sont également accessible directement en dessous de l'ecran Minitel (sauf si l'option \fBlowMemory\fP est activée). .sp XTEL fait de la reconnaissance de chaine de caractères dans la page Minitel, c'est à dire que l'on peut cliquer .B directement dans la page les chaines correspondant aux touches Minitel (Envoi, Retour, etc...) ou par défaut aux valeurs a saisir (\fBBouton 1\fP). .sp On peut obtenir une approximation ASCII de la page courante sur la sortie standard en cliquant sur \fBBouton 3\fP. .SH RESSOURCES XTEL utilise les ressources spécifiques suivantes : .PP .TP 8 .B petiteFonte Spécifie la petite fonte (void option -petit) .TP 8 .B serveur Spécifie le serveur XTEL (void option -serveur) .TP 8 .B commandeImpression Spécifie la commande pour imprimer la page courante .TP 8 .B nomService Spécifie le nom du service TCP (xtel, par defaut) .TP 8 .B boutonRaccrocher Spécifie la presence du bouton "Raccrocher" .TP 8 .B lowMemory Pas de jolis boutons .TP 8 .B privateColormap Force une colormap privée .SH "VOIR AUSSI" X(1) xteld .SH BUGS .LP Le décodage des pages photographiques (TVR) est certainement incomplet. De plus l'allocation des couleurs sur un ecran 256 couleurs peut poser des problèmes en cas d'images JPEG affichées sur une même page. .SH FICHIERS .in +7 .nf /usr/X11R6/lib/X11/app-defaults/XTel /usr/X11R6/lib/X11/app-defaults/XTelm $HOME/.xtel/procedures $HOME/.xtel/protocols .fi .in -7 .SH COPYRIGHT Copyright 1991-98, LECTRA-SYSTEMES et Pierre FICHEUX .SH AUTEUR Pierre FICHEUX R&D LECTRA-SYSTEMES ZI Marticot 33610 Cestas FRANCE xtel-3.3.0.orig/xtel.services0100444001424500142340000000064007237520304015012 0ustar ericperso# # Fichier xtel.services # # Les grands classiques modem0,Annuaire électronique,3611 modem0,Télétel 1 (3613),3613 modem0,Télétel 2 (3614),3614 modem0,Télétel 3 (3615),3615 #le_tvr,Télétel TVR (3623),3623 # Acces serveur local #@pipe,Serveur local,/usr/local/bin/le_serveur # Acces TCP #@tcp,Intelmatique,minitel.fr:513 # I-Minitel @iminitel,I-Minitel,connect_iminitel:7516 # Acces direct modem0,Direct,0 xtel-3.3.0.orig/xteld.man0100444001424500142340000002021707241354267014120 0ustar ericperso.\" Copyright (c) 1991-98 Lectra-Systemes .\" $Id: xteld.man,v 1.10 2001/02/11 00:11:35 pierre Exp $ .TH XTELD n "Lectra-Systemes" "10/98" .UC 5 .SH NOM xteld \- démon de l'émulateur Minitel XTEL .SH SYNOPSIS xteld [-H] [-v] .SH DESCRIPTION .I xteld est lancé par le super-démon \fIinetd\fP en cas d'utilisation de l'émulateur minitel \fIxtel\fP . Si XTEL n'utilise pas le réseau (option NO_NETWORK à la compilation), le démon \fIxteld\fP doit être lancé lors de l'initialisation du système. .SH OPTIONS .TP .B "\-H" HyperTerminal: permet l'utilisation du logiciel HyperTerminal 3.0/4.0 (Private Edition) comment client à la place de "xtel" .B "\-v" Affiche la version et quitte .SH UTILISATION .LP \fIxteld\fP utilise le fichier \fB"/usr/X11R6/lib/X11/xtel/xtel\.services"\fP (sous Xfree86) qui contient la liste des services disponibles sous la forme : .sp .I "[Nom du device,]" .I "Nom de l'entrée du menu" , .I "Numero de téléphone du service[:nom_service]" [, .I "login1[:login2...]" ] .sp à raison d'une ligne par service. Le premier champ (nom du device) définit un nom symbolique (ou \fIdevice\fP) pour les connexions à un standard donné (V.23, V32bis, TVR). Chaque device est associé à une configuration particulière de la ligne physique (vitesse, nombre de bits, parité) qui sera définie dans \fIxtel.lignes\fP. Si le premier champ a la valeur \fI@pipe\fP, cela signifie que l'accès au service se fait au travers d'une commande locale (dont le chemin absolu est precisé dans le dernier champ) par \fIpipe\fP Unix. On peut ajouter à cette commande le flag \fI:crlf\fP qui permet la conversion de CR en LF. .PP Si le premier champ a la valeur \fI@tcp\fP, l'accès au service se fait avec une connexion TCP. Les champs suivant contiennent respectivement le nom de l'entrée du menu puis le nom Internet du serveur puis le numéro de port ou le nom de service TCP (séparé du nom Internet par le caractère ':') .sp .PP Si le premier champ a la valeur \fI@iminitel\fP, l'accès au service se fait avec une connexion PPP au numéro 3622. Les champs suivant contiennent respectivement le nom de l'entrée du menu puis le nom du script de connexion puis le numéro de port ou le nom de service TCP (séparé du nom Internet par le caractère ':') .PP Ce premier champ est \fBoptionnel\fP ce qui permet en particulier de supporter l'ancienne syntaxe. A ce moment la, les fichier \fIxtel.services\fP et \fIxtel.lignes\fP \fBne doivent pas\fP utiliser la nouvelle syntaxe (pas de mélange possible). .PP Si le dernier champ est absent, la connexion au service est permise à tous les utilisateurs, sinon elle est limitée à ceux dont les noms de login sont spécifiés sous la forme 'user@machine'. Si la machine n'est pas spécifiée, tous les utilisateurs portant le nom 'user' sont autorisés. La syntaxe '@machine' permet d'autoriser tous les utilisateur d'une machine donnée. Le nom d'utilisateur est ignoré dans le cas des connexion Window$ (\fBHyperTerminal\fP). On peut utiliser des caractères 8 bits pour le nom du service (1er champ), si le caractère ne peut être saisi directement, on pourra le représenter sous la forme d'un code octal \\xyz . Si troisième champ est de la forme \fInuméro:nom_service\fP, cela signifie que l'accès est limité au service donné (ex: 3615:METEO). .PP Si les champs séparés pas des ':' sont de la forme : .sp .in +10 .nf user1=delai .in -10 .fi cela signifie que l'utilisateur pourra rester connecté au service pendant la durée précisée par le delai (en secondes). Si le nom d'utilisateur n'est pas présent, ce delai est alors valable pour tous les utilisateurs. Un délai de ce type doit être precisé en \fBavant\fP la définition des utilisateurs autorisés. .sp .B "Exemple :" .sp .in +10 .nf v23,Annuaire électronique,3611,=180 v23,Télétel1,3613 v23,Télétel2,3614 tvr,Télétel TVR,3623 v23,Télétel3,3615,=60,user1@linuxbox:user2=120:user3:@pcwin @pipe,Accès ondee,/usr/bin/telnet ondee @pipe:crlf,Accès sidonie,/usr/bin/telnet sidonie @tcp,Accès Minitel TCP/IP,minitel.fr:513 @iminitel,Accès I-Minitel,connect_iminitel:7516 v23,Direct,0 .fi .in -10 .LP Dans cet exemple le service, le service d'\fIAnnuaire\fP est autorisé à tous pendant 180 secondes (tant que c'est gratuit !). Le \fITélétel3\fP est accessible à tous les utilisateurs pendant 60 secondes, l'utilisateur \fIuser2\fP y a droit pendant 120 secondes. Les connexions provenant de 'linuxbox' ne sont autorisées qu'à 'user1'. Tous les utilisateurs de 'pcwin' ont droit au service. .PP La dernière ligne définit une possibilité de numéro de téléphone .I direct (mot\-clé \fIDirect\fP), l'utilisateur saisira directement le numéro lors de la composition dans \fIxtel\fP. .LP On utilise également le fichier \fB"/usr/X11R6/lib/X11/xtel/xtel\.lignes"\fP qui définit les lignes disponibles et la procédure de composition. Ce fichier est de la forme : .sp .I "[Nom du device,]" .I "Nom de la ligne[:rtscts]" , .I "[Vitesse en bauds,]" .I "[Nombre de bits,]" .I "[Parité,]" .I "chat-script avec le modem" , .I "delai maxi de réponse du modem en secondes." .sp Et ce pour chaque ligne utilisable. Si le premier champs (nom du device) est répété sur plusieurs lignes, cela signifie que plusieurs modem physiques sont associés au device logique. Le serveur utilisera alors automatiquement le premier modem disponible. .sp Si la ligne commence par le caractère "/", on considère que l'\fBancienne\fP syntaxe est utilisée. On peut ajouter au nom de la ligne la chaine \fI:rtscts\fP qui précise que cette ligne doit être configurée en controle de flux hardware \fIRTS/CTS\fP. Cette configuration est généralement utile si la vitesse de ligne est supérieure ou égale a 9600 (cas du TVR par exemple). On \fBdoit\fP alors configurer le modem (dans le chat-script) afin qu'il gère correctement le RTS/CTS (en général par la commande \fIAT&K3\fP sur un modem compatible \fIHAYES\fP). .sp Les valeurs de vitesse possibles sont : \fB 50, 75 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400\fP, les valeurs de tailles de caractères sont : \fB5, 6, 7, 8\fP, les valeurs de parité sont : \fBE, O, N\fP. .sp Un "chat-script" est une suite de paires chaine_emise/chaine_attendu entre un processus et un modem (voir UUCP). .sp Si le chat-script est remplace par la chaine \fIminitel2\fP, la ligne est definie comme utilisant un \fBMinitel 2\fP comme modem. .sp Si le chat-script est remplace par la chaine \fIminitel1\fP, la ligne est définie comme utilisant un \fBMinitel 1/1B\fI comme modem. A ce moment la, le menu "Services" ne sera pas affiché dans xtel et l'utilisateur devra composer son numéro à la main (le M1/M1B ne sachant théoriquement pas composer de numéro). .sp 2 .B "Exemples :" .in +10 .nf /dev/cua0,\\dat\\r OK atdt\\T\\r CONNECT,30 v23,/dev/cua1,1200,7,E,\\dat\\r OK atdt\\T\\r CONNECT,30 tvr,/dev/cua2:rtscts,9600,8,N,\\dat\\r OK atdt\\T\\r CONNECT,30 .fi .in -10 .sp Ce fichier définit la ligne .I "/dev/cua0" sur laquelle on déroule le chat-script suivant : .sp .in +5 .nf \\d On attend 1 s pour laisser le modem souffler... at\\r OK On emet at + CR et on attend OK at\\T\\r CONNECT On emet at + le numero + CR et on attend CONNECT .fi .in -5 .sp Le délai de reponse du modem est de .I 30 secondes maxi. Si le délai est dépassé, \fIxteld\fP essayera sur la ligne suivante du fichier jusqu'à un succès ou la fin du fichier. .sp .B "Remarques :" .sp Le format du chat-script accepte les séquences suivantes : .sp .in +5 .nf \\a BELL \\n envoie LF \\r envoie CR \\t envoie VT \\d tempo de 1 s \\T envoie le numéro de téléphone \\abc envoie le caractère codé en DECIMAL par abc (3 digits obligatoires) \\xab envoie le caractère codé en HEXADECIMAL par ab (2 digits) .fi .in -5 .sp .PP Pour certains modems, il faudra \fBOBLIGATOIREMENT\fP préciser une tempo \\d avant la premier commande \fIat\fP. .LP Dans le cas d'un fonctionnement en réseau, \fIxteld\fP utilise à priori le port TCP numéro 1313 défini dans le fichier "/etc/services" .SH "VOIR AUSSI" xtel inetd .SH FICHIERS .in +7 .nf /usr/X11R6/lib/X11/xtel/xtel.lignes /usr/X11R6/lib/X11/xtel/xtel.services /usr/X11R6/lib/X11/xtel/xtel.log /etc/services /etc/inetd.conf .fi .in -7 .SH COPYRIGHT Copyright 1991-98, LECTRA-SYSTEMES et Pierre Ficheux .SH AUTEUR Pierre FICHEUX LECTRA-SYSTEMES ZI Marticot 33610 Cestas FRANCE xtel-3.3.0.orig/xteld.c0100444001424500142340000010337207242200441013554 0ustar ericperso/* * xtel - Emulateur MINITEL sous X11 * * Copyright (C) 1991-1996 Lectra Systemes & Pierre Ficheux * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ static char rcsid[] = "$Id: xteld.c,v 1.33 2001/02/13 09:40:49 pierre Exp $"; /* * Demon XTELD (communication avec le MODEM) */ /* * Contributions: * * Michel Fingerhut IRCAM Paris * * - Traitement du fichier de log * - Acces proteges aux services * * Pierre Beyssac SYSECA * * - traitement du Minitel 2 * - utilisation de syslog * * Eric Delaunay * * - support IAN * * Bernard Fouche (CPIO) * * - amelioration @pipe * */ #define EXTERN #include #include #include #include "demon.h" #include "globald.h" #include "patchlevel.h" #include #include #include #include #include #include #include #include #include #ifdef NO_TERMIO #include #else #ifdef USE_TERMIOS #include #include #else #include #endif /* USE_TERMIOS */ #endif /* NO_TERMIO */ #include #include #include #define XTELD_INPUT 0 #define XTELD_OUTPUT 1 static int fin_fils; static int pid_fils; static int nb_services; static fd_set a_lire; static struct timeval timeout; static time_t t_connexion; static char buf[MAXPATHLEN], buf1[256], service[256], utilisateur[256]; static char flag_connexion; static char parite; static Boolean flag_serveur_local, flag_crlf; static char type_client = CLIENT_XTEL; static int current_page = 0; static char erase_needed = 1; static int tuyau_in[2], tuyau_out[2]; static int temps_maxi; static int detecte_ian; static int saisie_active; static char fin_connexion = 0; static struct definition_service services_hyper[MAX_SERVICES]; static int nb_services_hyper; static char *peer_name; static int first_col; static Boolean iminitel_connected; static char iminitel_script[MAXPATHLEN]; /* * Table des caracteres accentues avec leurs equivalents ou approximations * en Videotex */ static char *special_char_table[] = { "\031AA", "\031BA", "\031CA", "A", "\031HA", "\0310A", "A", "\031KC", "\031AE", "\031BE", "\031CE", "\031HE", "\031AI", "\031BI", "\031CI", "\031HI", "D", "N", "\031AO", "\031BO", "\031CO", "O", "\031HO", "X", "O", "\031AU", "\031BU", "\031CU", "\031HU", "Y", "P", "B", "\031Aa", "\031Ba", "\031Ca", "a", "\031Ha", "\0310a", "a", "\031Kc", "\031Ae", "\031Be", "\031Ce", "\031He", "\031Ai", "\031Bi", "\031Ci", "\031Hi", "d", "n", "\031Ao", "\031Bo", "\031Co", "o", "\031Ho", "-", "o", "\031Au", "\031Bu", "\031Cu", "\031Hu", "\031By", "p", "\031Hy" }; static void display_control_line (char *); static void erase_control_line (int); static void sigsegv () { #ifdef DEBUG_XTELD log_err ("Got SIGSEGV, attempting to dump core..."); #endif abort(); } static void demande_fin_fils() { #ifdef DEBUG_XTELD log_debug ("Demande la fin du fils"); #endif signal (SIGALRM, SIG_IGN); fin_fils = 1; } /* * Teste si un couple de processus xteld pere/fils existe * retourne 1 si oui. */ int check_existing_process () { DIR *dir; struct dirent *de; int pid, ok, ret = 0; char path[MAXPATHLEN], cmd[256]; FILE *fp; if (!(dir = opendir (PROC_BASE))) return -1; while (de = readdir (dir)) { if (!(pid = atoi (de->d_name)) || pid == getpid() || pid == getppid()) continue; /* Teste le nom du process */ sprintf(path, PROC_BASE "/%d/stat", pid); if (!(fp = fopen (path,"r"))) continue; ok = (fscanf (fp, "%*d (%[^)]", cmd) == 1); (void) fclose(fp); if (!strcmp ("xteld", cmd)) { ret = 1; break; } } (void) closedir(dir); return ret; } /* * Lecture du fichier d'état I-minitel */ static int read_iminitel_file () { FILE *fp; struct stat statb; char buf[256]; if (stat (IMINITEL_FILE, &statb) < 0) { /* Ne devrait pas arriver */ erreur_a_xtel (IMINITEL_FILE, errno); exit (1); } /* Fichier non vide, on lit les parametres */ if (statb.st_size > 0) { if (!(fp = fopen (IMINITEL_FILE, "r"))) { erreur_a_xtel (IMINITEL_FILE, errno); exit (1); } while (fgets (buf, sizeof(buf), fp) != NULL) { buf[strlen(buf)-1] = 0; if (buf[0] == 0) continue; putenv (strdup(buf)); } fclose (fp); return 1; } else return 0; } static void iminitel_stop () { /* * Si dernière connexion I-Minitel, coupe la connexion PPP */ if (iminitel_connected && !check_existing_process ()) { /* Execution du script de connexion avec option 'stop' */ sprintf (buf, "%s/%s stop", XTEL_LIBDIR, iminitel_script); #ifdef DEBUG_XTELD log_debug ("execute: %s", buf); #endif if (system (buf) != 0) { erreur_a_xtel (buf, errno); exit (1); } } } /* * Transmet une erreur a XTEL * - chaine de caractere terminee par 0 * - errno associe * * En mode HyperTerminal, on affiche l'erreur sur la ligne 0 */ void erreur_a_xtel (s, code_erreur) char *s; int code_erreur; { char e = code_erreur; if (type_client == CLIENT_XTEL) { write (XTELD_OUTPUT, CHAINE_REPONSE_DEBUT_ERREUR, 1); write (XTELD_OUTPUT, s, strlen(s)); write (XTELD_OUTPUT, "\0000", 1); write (XTELD_OUTPUT, &e, 1); write (XTELD_OUTPUT, CHAINE_REPONSE_FIN_ERREUR, 1); } else if (type_client == CLIENT_W_HYPER) { if (e) sprintf (buf, "%s: %s", s, sys_errlist[errno]); else { if (*s == '[') strcpy (buf, s + 3); else strcpy (buf, s); } display_control_line (buf); } } static void usage (char *s) { fprintf (stderr, "Usage: %s [-H] [-v]\n", s); exit (1); } /* * Teste si l'utilisateur courant a acces au service demande * * 1 si oui * 0 sinon */ int service_autorise (indice_service, maxtime) int indice_service, *maxtime; { char *pt, *pt1, *auth = definition_services[indice_service].autorisations; char autorisations[2048], *host; int default_maxtime = 0; *maxtime = 0; /* Pas de protection ou definition general du temps maxi */ if (*auth == 0) return 1; if (*auth == '=' && !strchr (auth, ':')) { *maxtime = atoi (auth+1); return 1; } strcpy (autorisations, auth); pt = strtok (autorisations, ":"); while (pt != NULL) { /* * Format: nom=temps_maxi (si =temp_maxi, le temps est la valeur * par defaut) */ *maxtime = default_maxtime; if (*pt == '=') { /* nouvelle valeur par defaut */ *maxtime = default_maxtime = atoi (pt+1); } else { if ((pt1 = strchr (pt, '='))) { *pt1 = 0; *maxtime = atoi (pt1+1); } /* * Test d'autorisation * * Le nom peut etre sous la forme 'user@hostname' afin d'autoriser un * utilisateur donne d'une machine donnee (@hostname autorise tous les * utilisateurs de hostname). * * Si le hostname n'est pas present, tous les utilisateurs sont * autorises (compatible avec les versions precedentes de xteld). * Dans le cas de Windaube, le nom de l' utilisateur est ignore pour * l'instant. */ #ifdef DEBUG_XTELD log_debug ("peer= %s user= %s pt= %s", peer_name, utilisateur, pt); #endif if (*pt == '@') { if (!strcmp (pt+1, peer_name)) return 1; } else { /* Sinon, test par user@host */ host = strchr (pt, '@'); if (host) { *host = 0; host++; if (!strcmp (host, peer_name) && (!strcmp (pt, utilisateur) || type_client != CLIENT_XTEL)) return 1; } else { if (!strcmp (pt, utilisateur)) return 1; } } } pt = strtok(NULL, ":"); } return(0); } /* * Fonction d'autorisation d'envoi de caractères au modem * (quand connexion restreinte à un service Teletel) */ static void active_saisie () { #ifdef DEBUG_XTELD log_debug( "saisie autorisée" ); #endif saisie_active = 1; signal( SIGUSR1, SIG_DFL ); } /* * Fonction de deconnexion (appelee sur SIGCHLD) */ static void waitchild () { int r; wait (&r); } static void deconnexion () { FILE *fplog; if (flag_connexion) { #ifdef DEBUG_XTELD log_debug ("Deconnecte !"); #endif flag_connexion = 0; if (!flag_serveur_local) { if (definition_lignes[numero_ligne].type_dialer != DIALER_MODEM) { /* * Envoi du code de connexion/fin puis de la sequence * de raccrochage */ #ifdef DEBUG_XTELD log_debug ("Raccrochage Minitel"); #endif write (fd_modem, "\x13I\x1b\x39\x67", 5); } myundial (fd_modem); } else kill (pid_fils, SIGTERM); /* signal a XTEL la deconnexion */ write (XTELD_OUTPUT, CHAINE_REPONSE_DECONNEXION, 1); /* supprime le fichier de log */ sprintf (buf, "/tmp/.xtel-%s", utilisateur); unlink (buf); if ((fplog= fopen(FICHIER_LOG, "a")) != NULL) { long t= time(0), duree; char *at= ctime(&t); at[24]= '\000'; duree = (t_connexion == 0 ? 0L : t-t_connexion); fprintf(fplog, "%s, %s deconnexion de : %s (%ld s sur %s)\n", at, utilisateur, service, duree, definition_lignes[numero_ligne].nom); fclose(fplog); } waitchild (); fin_connexion++; } } /* Test de la mort subite de Xtel en cours de connexion (errno != EINTR) */ static void test_mort_subite () { #ifdef DEBUG_XTELD log_debug ("test_mort_subite: errno=%d", errno); #endif /* Si l'erreur est bizarre et que l'on est toujours connecte, force la deconnexion */ if (errno != EINTR && flag_connexion) { kill (pid_fils, SIGTERM); deconnexion (); } } /* Test chaine = nombre */ static is_number (s) char *s; { register char *p = s; if (!s) return 0; while (*p) { if (!isdigit(*p)) return 0; p++; } return 1; } /* Separation de chaine */ static char *separe_chaine (s, c) char *s; char c; { register char *p = s; char *s1; while (*p) { if (*p == c) { s1 = strdup (p+1); *p = 0; return s1; } p++; } return NULL; } /* * Trouve le device associe a un numero de telephone * ou un nom de service */ static char *find_device (service, index) char *service; int *index; { register int i, idev; char *numero_direct, *pt1, *pt2; /* On precise le device "a la main" (ex: 3616,le_v23) */ numero_direct = strchr (service, ','); /* Nom du device associe au service */ if (numero_direct) { *numero_direct++ = 0; return (numero_direct); } else { for (i = 0 ; i != nb_services ; i++) { /* Si on n'a pas precise le device pour un appel direct, on utilise le premier trouve */ if (!strcmp (definition_services[i].nom_service, "Direct")) { break; } else { /* Nouvelle interface: xtel envoit le nom du service et non plus le numero de telephone. Cela permet d'utiliser plusieurs modems pour le meme numero de telephone */ if (*service == '\001') { pt1 = definition_services[i].nom_service; pt2 = service + 1; } else { pt1 = definition_services[i].nom_uucp; pt2 = service; } #ifdef DEBUG_XTELD log_debug ("pt1= %s pt2= %s", pt1, pt2); #endif if (!strcmp (pt1, pt2)) { break; } } } /* Service non trouve */ if (i == nb_services) return NULL; idev = i; (void)service_autorise (idev, &temps_maxi); #ifdef DEBUG_XTELD log_debug ("find_device: idev= %d %s tmax %d", idev, definition_services[idev].device, temps_maxi); #endif *index = idev; return (definition_services[idev].device); } } /* * Connexion a un service */ void appel_service (service_teletel) char *service_teletel; { char *device_associe = NULL, *option = NULL; char *code_teletel = NULL, *code_service = NULL; FILE *fplog; register int i; int idef; #ifdef DEBUG_XTELD log_debug ("appel_service: service_teletel= %s", service_teletel); #endif detecte_ian = 0; saisie_active = 0; signal (SIGTERM, demande_fin_fils); /* Calcul du device associe */ device_associe = find_device (service_teletel, &idef); /* Pas de device ==> erreur */ if (!device_associe) { erreur_a_xtel ("[2] Pas de device correspondant !", 0); return; } /* Nouvelle interface ? */ if (*service_teletel == '\001') { if (idef >= 0) code_teletel = definition_services[idef].nom_uucp; } else code_teletel = service_teletel; #ifdef DEBUG_XTELD log_debug ("appel_service: device_associe= [%s] service_teletel= %s code_teletel= %s utilisateur= %s", device_associe, service_teletel, code_teletel, utilisateur); #endif /* Service local par "pipe" */ if (strncmp (device_associe, "@pipe", 5) == 0) { flag_serveur_local = True; /* Options du service local (pour l'instant "crlf") */ if (strcmp (&device_associe[5], ":crlf") == 0) flag_crlf = True; if (pipe (tuyau_in) < 0) { log_err ("pipe: tuyau_in: %m"); exit (1); } if (pipe (tuyau_out) < 0) { log_err ("pipe: tuyau_out: %m"); exit (1); } if (!fork()) { /* fiston */ char *p, *q, **Argv, End; int i, Argc = 0; #ifdef DEBUG_XTELD log_debug ("le fiston = %d", getpid()); #endif dup2 (tuyau_out[0], 0); close (tuyau_out[0]); dup2 (tuyau_in[1], 1); close (tuyau_in[1]); /* On recupere les options eventuelles */ p = q = code_teletel; for (;;) { if ((*p == ' ') || (!*p)) { End = *p; *p = 0; if (!Argc) Argv = malloc (sizeof (char **)); else Argv = realloc (Argv, (sizeof(char *)*Argc+1)); Argv[Argc++] = strdup (q); if (!End) break; q = ++p; } else p++; } Argv = realloc (Argv, (sizeof(char *)*Argc+1)); Argv[Argc] = NULL; #ifdef DEBUG_XTELD log_debug ("code_teletel %s", code_teletel); for (i = 0 ; i <= Argc ; i++) log_debug ("Argv[%d] = %s", i, Argv[i] ? Argv[i] : "NULL"); #endif if (execvp (code_teletel, Argv) < 0) { log_err ("execlp: %m"); exit (1); } } else { #ifdef DEBUG_XTELD log_debug ("le papa = %d", getpid()); #endif fd_modem = tuyau_in[0]; } } else /* * Connexion TCP ou I-Minitel 3622 * * Pour I-Minitel le parametre est constitué du script de connexion et du port * ex: connect_iminitel.sh:7516 */ if (!strncmp (device_associe, "@tcp", 4) || !strncmp (device_associe, "@imi", 4)) { char *tcp_port; int maxtime; struct stat statb; /* Valide la saisie */ saisie_active = 1; /* Recupere le numero de port ou nom de service + le nom du serveur */ tcp_port = separe_chaine (code_teletel, ':'); /* En cas de connexion I-Minitel, on effectue la connexion PPP */ if (!strncmp (device_associe, "@imi", 4)) { strcpy (iminitel_script, code_teletel); /* Si pas deja connecte, on lance la connexion */ if (stat (IMINITEL_FILE, &statb) < 0) { /* Execution du script de connexion avec option 'start' */ sprintf (buf, "%s/%s start", XTEL_LIBDIR, iminitel_script); #ifdef DEBUG_XTELD log_debug ("execute: %s", buf); #endif if (system (buf) != 0) { erreur_a_xtel (buf, errno); exit (1); } } /* Temps maxi d'attente de connexion */ maxtime = IMINITEL_TIMEOUT; #ifdef DEBUG_XTELD log_debug ("attente connexion: %d secondes", maxtime); #endif /* Attente connexion */ do { if (read_iminitel_file () > 0) break; sleep (1); } while (--maxtime); /* Connexion */ if (!maxtime) { erreur_a_xtel ("[3] Erreur connexion PPP (timeout) !", 0); exit (1); } else { /* Connecté à I-Minitel */ #ifdef DEBUG_XTELD log_debug ("Connecte à I-Minitel ! (%s)", getenv ("IMINITEL_SERVER")); #endif iminitel_connected = True; strcpy (buf, getenv ("IMINITEL_SERVER")); } } else /* Copie simplement le nom du serveur */ strcpy (buf, code_teletel); #ifdef DEBUG_XTELD log_debug ("tcp serveur= %s", buf); #endif if (is_number (tcp_port)) fd_modem = c_clientbyport (buf, atoi(tcp_port)); else fd_modem = c_clientbyname (buf, tcp_port); /* Erreur de connexion TCP */ if (fd_modem < 0) { erreur_a_xtel (buf, errno); iminitel_stop (); exit (1); } } else { /* Connexion MODEM */ /* * sépare téléphone et code service (nnnn:code) */ char *telno = strdup (code_teletel); code_service = strchr (telno, ':'); if (code_service) { *code_service = 0; code_service = strchr (code_teletel, ':') + 1; detecte_ian = IAN_DE_GARDE; /* attente capture code d'entrée sur le service */ ian_init (telno); signal (SIGUSR1, active_saisie); } else saisie_active = 1; /* * compose le numéro */ #ifdef DEBUG_XTELD log_debug( "service appele : %s [%s]", telno, code_service ? code_service:"" ); #endif if ((fd_modem = mydial (telno, device_associe)) < 0) { #ifdef DEBUG_XTELD log_debug ("meurt (erreur)"); #endif exit (1); } free(telno); } /* valide le signal de deconnexion */ signal (SIGCHLD, deconnexion); /* Init masque select */ FD_ZERO (&a_lire); FD_SET (fd_modem, &a_lire); #ifdef DEBUG_XTELD log_debug ("Connecte !"); #endif flag_connexion = 1; /* On est connecte ! */ if (type_client == CLIENT_XTEL) { /* Envoi du temps maxi de connexion */ if (temps_maxi) { char l; write (XTELD_OUTPUT, CHAINE_TEMPS_MAXI, 1); sprintf (buf, "%d", temps_maxi); l = strlen(buf); write (XTELD_OUTPUT, &l, 1); write (XTELD_OUTPUT, buf, l); } /* signale la connexion a XTEL */ write (XTELD_OUTPUT, CHAINE_REPONSE_CONNEXION, 1); } else display_control_line ("CONNECTE AU SERVICE"); /* * On cree un processus qui lit le modem et ecrit sur le reseau. * On tue ce processus au bout de DELAI_DECONNEXION secondes sans activite * (ce qui fait raccrocher le MODEM) */ if ((pid_fils = fork()) == 0) { /* fils */ int etat = 0; int ignore = 0; int code_fin = 1; /* Duree maxi autorisee */ if (!flag_serveur_local && temps_maxi > 0) { signal (SIGALRM, demande_fin_fils); alarm (temps_maxi); } fin_fils = 0; while (!fin_fils) { int nread, size, i; fd_set t_a_lire; timeout.tv_sec = (unsigned long)DELAI_DECONNEXION; t_a_lire = a_lire; nread = select (32, &t_a_lire, NULL, NULL, (flag_serveur_local ? NULL : &timeout)); if (nread < 0 && errno == EINTR) { /* select() interrompu par le SIGTERM du parent */ #ifdef DEBUG_XTELD log_debug ("select() interrompu par le SIGTERM du parent"); #endif continue; } if (nread == 0 || !FD_ISSET (fd_modem, &t_a_lire)) { /* read = 0 (timeout) ==> deconnexion */ #ifdef DEBUG_XTELD log_debug ("read = 0 (timeout) ==> deconnexion"); #endif code_fin = 2; break; } size = read (fd_modem, buf, sizeof(buf)); if (size <= 0) { #ifdef DEBUG_XTELD log_debug ("size <= 0"); #endif code_fin = 3; break; } /* * termine la connexion lors du retour à la page * du service Teletel (detecte_ian == 1) * ou autorise le service (detecte_ian == 2). */ if (detecte_ian) { int ian; for( i = 0 ; i < size ; i++ ) if (ian = ian_valide (detecte_ian, buf[i] )) { switch (detecte_ian) { case IAN_DE_GARDE: #ifdef DEBUG_XTELD log_debug ("Emission code du service : %s + ENVOI", code_service ); #endif /* ecrit le code du service */ write ((flag_serveur_local ? tuyau_out[1] : fd_modem), code_service, strlen(code_service) ); /* + touche ENVOI */ write ((flag_serveur_local ? tuyau_out[1] : fd_modem), "\023A", 2 ); detecte_ian = IAN_D_ENTREE; /* autorise le service */ break; case IAN_D_ENTREE: if (ian == 1) { #ifdef DEBUG_XTELD log_debug( "service activé. Envoi SIGUSR1 pid %d", getppid() ); #endif detecte_ian = IAN_DE_FIN; /* * autorise le père à transmettre les actions * au fils, maintenant que le service a été validé */ kill( getppid(), SIGUSR1 ); } else { /* devrait faire une nouvelle tentative ? */ #ifdef DEBUG_XTELD log_debug( "accès refusé" ); #endif fin_fils = 1; /* échec */ } break; case IAN_DE_FIN: #ifdef DEBUG_XTELD log_debug( "retour à la page Teletel" ); #endif fin_fils = 1; /* termine la connexion */ } break; } } for (i = 0; i < size; i++) { if (definition_lignes[numero_ligne].cs != CS8) buf[i] &= 0x7f; if (definition_lignes[numero_ligne].type_dialer != DIALER_MODEM) { /* * Detection de la sequence SEP 53 signifiant * la fin de la connexion */ switch (etat) { case 0: if (buf[i] == 0x13) { /* * Remplacer par des 0 toutes les sequences * SEP xx venant du minitel pour eviter * des echos parasites. */ etat = 1; ignore = 2; } break; case 1: if (buf[i] == 0x53) /* Sequence SEP 53 reconnue */ fin_fils = 1; etat = 0; break; } if (ignore) { ignore--; } } } /* Conversion LF --> CF/LF si serveur local ? */ if (flag_serveur_local && flag_crlf) { register int i, size1; size1 = 0; for (i = 0 ; i != size ; i++) { if (buf[i] == '\n') { buf1[size1++] = '\n'; buf1[size1++] = '\r'; } else buf1[size1++] = buf[i]; } write (XTELD_OUTPUT, buf1, size1); } else write (XTELD_OUTPUT, buf, size); } /* Sortie du fils */ #ifdef DEBUG_XTELD log_debug ("meurt, code = %d", code_fin); #endif iminitel_stop (); exit (0); } signal(SIGTERM, SIG_DFL); /* creation du fichier de log */ sprintf (buf, "/tmp/.xtel-%s", utilisateur); if ((fplog = fopen (buf, "w"))) { #ifdef DEBUG_XTELD log_debug ("Creation du fichier de log %s", buf); #endif chmod (buf, 0644); if (!flag_serveur_local) fprintf (fplog, "LIGNE = %s\n", definition_lignes[numero_ligne].nom); fprintf (fplog, "CLIENT = %s [%s]\n", peer_name, (type_client == CLIENT_XTEL ? "Xtel" : "HyperTerminal")); fprintf (fplog, "PROCESSUS = %d,%d\n", getpid(), pid_fils); fprintf (fplog, "SERVICE = %s\n", service); fclose (fplog); } if ((fplog= fopen(FICHIER_LOG, "a")) != NULL) { char *at; t_connexion = time(0); at = ctime(&t_connexion); at[24]= '\000'; if (flag_serveur_local) fprintf(fplog, "%s, %s appel de : %s (local)\n", at, utilisateur, service); else fprintf(fplog, "%s, %s appel de : %s sur %s\n", at, utilisateur, service, definition_lignes[numero_ligne].nom); fclose(fplog); } #ifdef NO_TERMIO parite = definition_lignes[numero_ligne].parity; #endif } int lire_chaine(ch) char *ch; { int ret; unsigned char l; do { ret = read (XTELD_INPUT, &l, 1); if (ret <= 0) goto err; } while (ret != 1); ch[l] = 0; while (l) { ret = read (XTELD_INPUT, ch, l); if (ret <= 0) goto err; l -= ret; } return 0; err: log_err ("read: %m"); return -1; } static void trop_tard () { log_err ("Pas de reponse du client.\n"); exit (1); } static char *get_peer_name () { struct sockaddr_in client; int len; /* Adresse du client */ len = sizeof (client); if (getpeername (XTELD_INPUT, (struct sockaddr *) &client, &len) < 0) { log_err ("getpeername: %m"); } else { struct hostent *h; if ((h = gethostbyaddr ((char *)&client.sin_addr, sizeof(client.sin_addr), AF_INET)) == NULL) { log_err ("gethostbyaddr: %m"); return NULL; } else return (strdup (h->h_name)); } } /* Traitement pour HyperTerminal */ /* * Affiche une chaine ISO accentuee (conversion en Videotex) */ static void write_chaine_accentuee (s) char *s; { register unsigned char *p = s; char c; while (*p) { if (*p > 192) { int i = *p - 192; write (XTELD_OUTPUT, special_char_table[i], strlen(special_char_table[i])); } else write (XTELD_OUTPUT, p, 1); p++; } } /* Repositionne le curseur a la position courante */ static void set_cursor (int index) { char str[256]; sprintf (str, "\037U%c", first_col + index); write (XTELD_OUTPUT, str, strlen (str)); } /* Affiche un message a la ligne 0 */ static void display_control_line (char *s) { char str[256]; #ifdef DEBUG_XTELD log_debug ("display_control_line: %s", s); #endif sprintf (str, "\024\037@A\030%s\021", s); write (XTELD_OUTPUT, str, strlen (str)); erase_needed = 1; } /* Efface la ligne 0 */ static void erase_control_line (int index) { char str[256]; #ifdef DEBUG_XTELD log_debug ("erase_control_line: erase_needed = %d", erase_needed); #endif if (erase_needed) { strcpy (str, "\024\037@A\030\021"); write (XTELD_OUTPUT, str, strlen (str)); if (index >= 0) set_cursor (index); erase_needed = 0; } } /* Lecture des services autorises */ static void read_services_hyper () { register int i, j; j = 0; for (i = 0 ; i != nb_services ; i++) { if (service_autorise (i, &temps_maxi)) { services_hyper[j].nom_service = definition_services[i].nom_service; services_hyper[j].nom_uucp = definition_services[i].nom_uucp; #ifdef DEBUG_XTELD log_debug ("%d %s %s", j, services_hyper[j].nom_service, services_hyper[j].nom_uucp); #endif j++; } } nb_services_hyper = j; #ifdef DEBUG_XTELD log_debug ("%d/%d services autorises", nb_services_hyper, nb_services); #endif } /* Affiche un page de services disponibles */ static void display_page (int start) { register int i, ii, istart; istart = start * 13; if (istart > nb_services_hyper) return; /* Efface la page precedente */ for (ii = 0 ; ii != 13 ; ii++) { sprintf (buf, "\037%cB\033P\030", ii + 'F'); write_chaine_accentuee (buf); } /* Affiche la nouvelle */ for (ii = 0 ; ii != 13 ; ii++) { i = ii + istart; if (i < nb_services_hyper) { sprintf (buf, "\037%cB\033R\033D %2d\033F\033P %s\n", ii + 'F', i + 1, services_hyper[i].nom_service); write_chaine_accentuee (buf); } else break; } } /* Saisie dans l'ecran Videotex */ static void erase_input (char *str, int size) { memset (str, 0, size); set_cursor (0); while (size--) write (XTELD_OUTPUT, ".", 1); set_cursor (0); } static int check_value (char *s, int maxv) { if ((maxv && (atoi (s) > maxv)) || strlen (s) == 0) { display_control_line ("VALEUR INTERDITE !"); return 0; } else return 1; } static int input_value (char *str, int max_value, int max_size, int numeric) { char c; int ind = 0, end = 0; if (max_size > IN_SIZE) max_size = IN_SIZE; erase_input (str, max_size); do { if (read (XTELD_INPUT, &c, 1) <= 0) return -1; #ifdef DEBUG_XTELD log_debug ("read ==> %x", c); #endif erase_control_line (ind); /* Traitement ENVOI/SUITE/RETOUR.. */ if (c == 19) { if (read (XTELD_INPUT, &c, 1) <= 0) return -1; switch (c) { case 'A' : /* ENVOI */ if (!check_value (str, max_value)) { erase_input (str, max_size); ind = 0; } else end = 1; break; case 'B' : /* RETOUR */ if (current_page > 0) display_page (--current_page); else display_control_line ("PREMIERE PAGE"); set_cursor (ind); break; case 'H' : /* SUITE */ if ((current_page + 1) * 13 > nb_services) display_control_line ("DERNIERE PAGE"); else display_page (++current_page); set_cursor (ind); break; case 'G' : /* CORRECTION */ if (ind > 0) { str[--ind] = 0; set_cursor (ind); write (XTELD_OUTPUT, ".", 1); set_cursor (ind); } break; case 'E' : /* ANNULATION */ erase_input (str, max_size); ind = 0; break; default : break; } } else if (c == '\r') { if (!check_value (str, max_value)) { erase_input (str, max_size); ind = 0; } else end = 1; } else { if (ind < max_size && (!numeric || (numeric && (c >= '0' && c <= '9')))) { str[ind++] = c; write (XTELD_OUTPUT, &c, 1); #ifdef DEBUG_XTELD log_debug ("str = \"%s\"", str); #endif } } } while (!end); return (strlen (str)); } /* Init du mode HyperTerminal */ int lire_initial_hyper (ch) char *ch; { int ret, iserv, ind = 0; char c, str_in[IN_SIZE+1]; #ifdef DEBUG_XTELD log_debug ("lire_initial_hyper"); #endif memset ((void*)str_in, 0, sizeof(str_in)); current_page = 0; /* Nom du PC connecte */ if (peer_name) strcpy (ch , peer_name); else strcpy (ch, "hyper"); #ifdef DEBUG_XTELD log_debug ("lire_initial_hyper, utilisateur= %s", ch); #endif first_col = 'O'; /* Envoi des codes Videotex de la page */ sprintf (buf, INIT1_HYPER, version_xtel, revision_xtel, PATCHLEVEL); write (XTELD_OUTPUT, buf, strlen(buf)); /* Lecture et affichage des services disponibles */ read_services_hyper (); display_page (current_page); write (XTELD_OUTPUT, INIT2_HYPER, strlen(INIT2_HYPER)); erase_control_line (ind); /* Saisie utilisateur */ if (input_value (str_in, nb_services_hyper, 2, True) < 0) goto err; iserv = atoi(str_in)-1; /* Appel direct, on saisit le numero de telephone */ if (!strcmp (services_hyper[iserv].nom_service, "Direct")) { write (XTELD_OUTPUT, INIT3_HYPER, strlen(INIT3_HYPER)); first_col = 'J'; if (input_value (str_in, 0, 20, False) < 0) goto err; strcpy (service, str_in); sprintf (buf, "APPEL DIRECT %s", service); } /* Appel normal */ else { sprintf (service, "\001%s", services_hyper[iserv].nom_service); sprintf (buf, "APPEL %s", services_hyper[iserv].nom_uucp); } display_control_line (buf); return 1; err: log_err ("read: %m"); return -1; } /* * Partie principale */ main (ac, av) int ac; char **av; { unsigned char c; char *cp, *progname; register int i; int indice_service = 0; progname = xtel_basename (av[0]); init_debug (progname); signal (SIGSEGV, sigsegv); /* Lecture de la ligne de commande */ while (--ac) { if ((cp = *++av) == NULL) break; if (*cp == '-' && *++cp) { switch(*cp) { case 'H' : #ifdef DEBUG_XTELD log_debug ("Option Windaube/HyperTerminal active !"); #endif type_client = CLIENT_W_HYPER; break; case 'v' : /* Version */ fprintf (stderr, "%s for xtel version %d.%d.%d\n", progname, version_xtel, revision_xtel, PATCHLEVEL); exit (0); default: usage (progname); break; } } else { break; } } if ((nb_lignes = lecture_configuration_lignes ()) < 0) { exit (1); } if ((nb_services = lecture_services ()) < 0) { exit (1); } /* Lecture du nom du client connecte */ peer_name = get_peer_name (); #ifdef DEBUG_XTELD log_debug ("Connexion XTEL..."); #endif /* Lecture du nom d'utilisateur */ switch (type_client) { case CLIENT_W_HYPER: if (lire_initial_hyper (utilisateur) < 0) goto fin_xteld; appel_service (service); break; case CLIENT_XTEL : if (lire_chaine (utilisateur) < 0) goto fin_xteld; break; default : goto fin_xteld; break; } /* lecture connexion XTEL */ while (!fin_connexion) { if (read (XTELD_INPUT, &c, 1) <= 0) { if (errno == EINTR) continue; else break; } #ifdef DEBUG_XTELD if (c >= ' ') log_debug("Recu de xtel: `%c' (%02x)", c, c & 255); else log_debug("Recu de xtel: %02x", c & 255); #endif if (flag_connexion) { if (c == VALEUR_COMMANDE_FIN) { #ifdef DEBUG_XTELD log_debug ("tue le fils"); #endif kill (pid_fils, SIGTERM); } else { #ifdef NO_TERMIO if (parite != SANS) { register int p; /* Calcul de parite... */ p = (c & 0x0f) ^ (c >> 4); p = (p & 3) ^ (p >> 2); p = (p & 1) ^ (p >> 1); if (parite == IMPAIR) p = ~p; c = (c & 0x7f) | (p << 7); } #endif /* NO_TERMIO */ /* * on écrit sur le modem que lorsque le code de service * a été entré où qu'il n'y en a pas. */ if (flag_serveur_local) write ( tuyau_out[1], &c, 1 ); else if (saisie_active) { #ifdef DEBUG_XTELD if (c >= ' ') log_debug("Emission PAD: `%c' (%02x)", c, c & 255); else log_debug("Emission PAD: %02x", c & 255); #endif write ( fd_modem, &c, 1); } #ifdef DEBUG_XTELD else log_debug( "saisie perdue : `%c' (%d)", c, c ); #endif } } else { switch (c) { case VALEUR_COMMANDE_CONNEXION_M1 : appel_service (NULL); break; case VALEUR_COMMANDE_DEMANDE_CONNEXION : /* lecture du service */ if (lire_chaine(service) < 0) fin_connexion++; else /* connexion */ appel_service (service); break; case VALEUR_COMMANDE_SERVICE_SUIVANT : if ((indice_service == nb_services) || flag_m1) write (XTELD_OUTPUT, CHAINE_REPONSE_PLUS_DE_SERVICE, 1); else { if (service_autorise (indice_service, &temps_maxi)) { c = strlen (definition_services[indice_service].nom_service); write (XTELD_OUTPUT, &c, 1); write (XTELD_OUTPUT, definition_services[indice_service].nom_service, c); #ifdef DEBUG_XTELD log_debug ("service: %s", definition_services[indice_service].nom_service); #endif } else { /* service interdit */ c = 0; write (XTELD_OUTPUT, &c, 1); indice_service++; } } break; case VALEUR_COMMANDE_NOM_UUCP : c = strlen (definition_services[indice_service].nom_uucp); write (XTELD_OUTPUT, &c, 1); write (XTELD_OUTPUT, definition_services[indice_service].nom_uucp, c); #ifdef DEBUG_XTELD log_debug ("%s", definition_services[indice_service].nom_uucp); #endif indice_service++; break; default : break; } } } fin_xteld: close_debug (); } xtel-3.3.0.orig/modem.c0100444001424500142340000003125307242200313013531 0ustar ericperso/* * xtel - Emulateur MINITEL sous X11 * * Copyright (C) 1991-1998 Lectra Systemes & Pierre Ficheux * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * */ static char rcsid[] = "$Id: modem.c,v 1.2 2001/02/13 09:39:23 pierre Exp $"; /* Init du modem */ #include #include #include #include #include #include #ifdef NO_TERMIO #include #else #ifdef USE_TERMIOS #include #include #else #include #endif /* USE_TERMIOS */ #endif #if (defined(lectra) && defined(SVR4) && !defined(sun)) || defined(hpux) #include #endif #ifdef USE_SYSLOG #include #endif /* USE_SYSLOG */ #include "demon.h" #include "globald.h" #ifdef NO_TERMIO static struct sgttyb term_sauve, term; #else #ifdef USE_TERMIOS static struct termios term_sauve, term; #else static struct termio term_sauve, term; #endif /* USE_TERMIOS */ #endif /* NO_TERMIO */ #if (defined(lectra) && defined(SVR4) && !defined(sun)) || defined(hpux) static struct termiox termx; #endif /* lectra && SVR4 && !sun || hpux */ #ifndef SYSLOG static FILE *fp_console; #endif static char prefix[256]; static struct timeval delai_maxi; void init_debug (char *s) { strcpy (prefix, s); #ifdef USE_SYSLOG openlog(s, LOG_PID | LOG_CONS, LOG_INFO); #else if ((fp_console = fopen ("/dev/console", "w")) == NULL) { perror ("/dev/console"); exit (1); } #endif /* USE_SYSLOG */ } void close_debug () { #ifndef USE_SYSLOG fclose (fp_console); #endif } /* Syslog or not syslog ? */ #ifdef USE_SYSLOG void log_debug (fmt, p1, p2, p3, p4, p5, p6, p7) char *fmt; int p1, p2, p3, p4, p5, p6, p7; { char msg[256]; sprintf (msg, fmt, p1, p2, p3, p4, p5, p6, p7); syslog (LOG_INFO, msg); } void log_err (s) char *s; { syslog (LOG_ERR, s); } #else void log_debug (fmt, p1, p2, p3, p4, p5, p6, p7) char *fmt; int p1, p2, p3, p4, p5, p6, p7; { fprintf (fp_console, "%s[%d] ", prefix, getpid()); fprintf (fp_console, fmt, p1, p2, p3, p4, p5, p6, p7); fprintf (fp_console, "\n\r"); } void log_err (s) char *s; { fprintf (fp_console, "%s[%d] ", prefix, getpid()); while (*s) { if (*s != '%') fputc (*s, fp_console); else if (*(s+1) == 'm') { fprintf (fp_console, "%s", sys_errlist[errno]); s++; } s++; } fprintf (fp_console, "\n\r"); } #endif /* USE_SYSLOG */ /* Envoi d'une commande MODEM */ static void writemodem (fd, buf, n) int fd; char *buf; int n; { register int i; for (i = 0 ; i != n ; i++) { write (fd, buf+i, 1); usleep (30000); } } /* Init des parametres de ligne */ void init_tty (int fd, int speed, int csize, int parity, int flags, int dialer) { #ifdef NO_TERMIO ioctl (fd, TIOCGETP, &term); memcpy ((char *)&term_sauve, (char *)&term, sizeof(struct sgttyb)); term.sg_flags |= RAW; ioctl (fd, TIOCSETP, &term); /* Flags, pour l'instant RTS/CTS */ /* FIXME: comment passer la ligne en RTS/CTS sans termio ? */ #else #ifdef USE_TERMIOS ioctl (fd, TIOCGETA, &term); memcpy ((char *)&term_sauve, (char *)&term, sizeof(struct termios)); #else ioctl (fd, TCGETA, &term); memcpy ((char *)&term_sauve, (char *)&term, sizeof(struct termio)); #endif /* USE_TERMIOS */ /* Parametrage de la ligne */ term.c_cc[VMIN] = 1; term.c_cc[VTIME] = 0; term.c_iflag &= ~(IXON|IXOFF|ICRNL); term.c_lflag &= ~(ICANON|ISIG|ECHO|IEXTEN); #ifdef USE_TERMIOS /* * FreeBSD 1.1 (Beta) n'a pas l'air d'apprecier qu'on mette clocal * a 0... (blocage au premier write sur /dev/cua01) */ term.c_cflag &= ~(CSIZE|CSTOPB); term.c_cflag |= (CREAD|HUPCL); term.c_ispeed = term.c_ospeed = speed; #else term.c_cflag &= ~(CSIZE|CBAUD|CLOCAL); /* Vitesse */ term.c_cflag |= speed; #endif /* USE_TERMIOS */ /* Taille caractere */ term.c_cflag |= csize; /* Parite */ if (parity == SANS) term.c_cflag &= ~PARENB; else { term.c_cflag |= PARENB; if (parity == PAIR) term.c_cflag &= ~PARODD; } /* Flags, pour l'instant RTS/CTS */ if (flags & FLAG_RTS_CTS) { #ifndef __USLC__ #if !(defined(hpux) || defined(sgi) || (defined(lectra) && defined(SVR4) && !defined(sun))) term.c_cflag |= CRTSCTS; #else ioctl (fd, TCGETX, &termx); termx.x_hflag |= (RTSXOFF|CTSXON); ioctl(fd, TCSETXW, &termx); #endif /* HP/UX | SGI | LS/UX */ #endif /* !__USLC__ */ } #ifdef sun if (csize != CS8) term.c_iflag = ISTRIP; #endif /* sun */ #ifdef USE_TERMIOS term.c_iflag &= ~(IGNCR|ICRNL|INLCR|IMAXBEL); term.c_iflag |= (ISTRIP|INPCK); term.c_lflag &= ~(ECHOCTL|IEXTEN); term.c_oflag &= ~OPOST; #endif /* USE_TERMIOS */ /* Cas du Minitel 1/2 */ if (dialer != DIALER_MODEM) term.c_cflag |= (CREAD|CLOCAL); /* Affectation des parametres */ #ifdef USE_TERMIOS ioctl (fd, TIOCSETA, &term); #else ioctl (fd, TCSETA, &term); #endif /* USE_TERMIOS */ #endif /* NO_TERMIO */ } /* Restauration des parametres */ void restore_tty (fd) { #ifdef ultrix int temp = 0; #endif /* remet la ligne en l'etat */ #ifdef NO_TERMIO term.sg_ispeed = term.sg_ospeed = B0; ioctl (fd, TIOCSETP, &term); ioctl (fd, TIOCSETP, &term_sauve); #else #ifdef USE_TERMIOS term.c_ispeed = B0; term.c_ospeed = B0; ioctl (fd, TIOCSETAW, &term); ioctl (fd, TIOCSETA, &term_sauve); #else term.c_cflag &= ~CBAUD; term.c_cflag |= B0; ioctl (fd, TCSETAW, &term); ioctl (fd, TCSETA, &term_sauve); #endif /* USE_TERMIOS */ #endif /* NO_TERMIO */ #ifdef ultrix ioctl (fd, TIOCNMODEM, &temp); ioctl (fd, TIOCSINUSE, NULL); ioctl (fd, TIOCHPCL, 0); #endif /* ultrix */ } /* * Dialogue avec le Modem (chatons, chatons...) */ int do_chat (fd, chat_script, tmax, telno, reply_buf, reply_size) int fd; char *chat_script; unsigned long tmax; char *telno, *reply_buf; int reply_size; { fd_set a_lire, t_a_lire; int i, erreur, fin, nbread, cmodem; char *pt_chat, c, *q; delai_maxi.tv_sec = tmax; erreur = 0; pt_chat = chat_script; fin = 0; FD_ZERO (&a_lire); FD_SET (fd, &a_lire); q = reply_buf; #ifdef DEBUG_XTELD log_debug ("do_chat: chat= \"%s\" tmax = %ld", chat_script, tmax); #endif #ifndef NO_TERMIO /* * Passe en controle local si necessaire. Cela permet d'eviter que le * script se plante lorsque certains modem font bouger le DCD sur un AT&F * (comme le Hayes Optima par exemple)... */ #ifdef USE_TERMIOS ioctl (fd, TCIOCGETA, &term); #else ioctl (fd, TCGETA, &term); #endif /* USE_TERMIOS */ if ((term.c_cflag | CLOCAL) == 0) { term.c_cflag |= CLOCAL; #ifdef USE_TERMIOS ioctl (fd, TCIOCSETA, &term); #else ioctl (fd, TCSETA, &term); #endif /* USE_TERMIOS */ cmodem = 1; } #endif /* NO_TERMIO */ while (!fin) { /* * On commence par emettre la commande au Modem... (les chaines sont * separees par des blancs). On attend ensuite la reponse. */ #ifdef DEBUG_XTELD { char ci, *p; int fi; p = strdup (pt_chat); for (i = 0 ; *(p+i) != ' ' && *(p+i) != 0 ; i++) ; ci = p[i]; p[i] = 0; log_debug ("J'envoie: \"%s\"", p); p[i] = ci; if (ci) { i++; fi = i; for ( ; *(p+i) != ' ' && *(p+i) != 0 ; i++); ci = p[i]; p[i] = 0; log_debug ("J'attends: \"%s\"", p + fi); p[i] = ci; } free (p); } #endif while (*pt_chat && *pt_chat != ' ') { /* * On reconnait les sequences '\' suivantes : * * \T numero de telephone * \d tempo de 1 s * \n LF * \r CR * \t VT * \a BELL * \abc valeur DECIMALE entre 0 et 255 sur 3 caracteres * (ex: \010 pour envoyer 10) * \xab valeur hexadecimale */ if (*pt_chat != '\\') { #ifdef DEBUG_CHAT log_debug ("envoie: '%c'", *pt_chat); #endif writemodem (fd, pt_chat, 1); } else { pt_chat++; switch (*pt_chat) { case 'd' : sleep (1); break; case 'n' : #ifdef DEBUG_CHAT log_debug ("envoie: '\\n'"); #endif writemodem (fd, "\n", 1); break; case 'r' : #ifdef DEBUG_CHAT log_debug ("envoie: '\\r'"); #endif writemodem (fd, "\r", 1); break; case 't' : #ifdef DEBUG_CHAT log_debug ("envoie: '\\t'"); #endif writemodem (fd, "\t", 1); break; case 'a' : #ifdef DEBUG_CHAT log_debug ("envoie: '\\a'"); #endif writemodem (fd, "\a", 1); break; case 'T' : if (telno) { #ifdef DEBUG_CHAT log_debug ("envoie: \"%s\"", telno); #endif writemodem (fd, telno, strlen(telno)); } break; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': { char nb = 2; char n = *pt_chat++ - '0'; while (nb-- && isdigit(*pt_chat)) { n *= 10; n += *pt_chat++ - '0'; } pt_chat--; #ifdef DEBUG_CHAT log_debug ("envoie: '\\0x%x'", n); #endif writemodem (fd, &n, 1); break; } case 'x': { char n = 0, nb = 2; pt_chat++; while (nb-- && isxdigit(*pt_chat)) { n *= 16; if (isdigit(*pt_chat)) { n += *pt_chat - '0'; } else { if (islower(*pt_chat)) { n += *pt_chat + (10 - 'a'); } else { n += *pt_chat + (10 - 'A'); } } pt_chat++; } pt_chat--; #ifdef DEBUG_CHAT log_debug ("envoie: '\\0x%x'", n); #endif writemodem (fd, &n, 1); break; } default : #ifdef DEBUG_CHAT log_debug ("envoie: '%c'", *pt_chat); #endif writemodem(fd, pt_chat, 1); break; } } pt_chat++; } if (*pt_chat == 0) break; /* * On attend la reponse. */ /* pointe la chaine a recevoir */ pt_chat++; i = 0; for (;;) { t_a_lire = a_lire; nbread = select (32, &t_a_lire, NULL, NULL, &delai_maxi); /* Si il y a qque chose a lire */ if (nbread > 0 && FD_ISSET (fd, &t_a_lire)) { if (read (fd, &c, 1) == 1) { char voulu; if (q && ((q - reply_buf) < reply_size-1)) *q++ = c; #ifdef DEBUG_CHAT log_debug ("recu: '%c'", c); #endif if (pt_chat[i] != '\\') { voulu = pt_chat[i]; } else { i++; switch(pt_chat[i]) { case 'n': voulu = '\n'; break; case 'r': voulu = '\r'; break; case 't': voulu = '\t'; break; case 'a': voulu = '\a'; break; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': { char nb = 2; voulu = pt_chat[i++] - '0'; while (nb-- && isdigit(pt_chat[i])) { voulu *= 10; voulu += pt_chat[i++] - '0'; } i--; break; } case 'x': { char nb = 2; voulu = 0; i++; while (nb-- && isxdigit(pt_chat[i])) { voulu *= 16; if (isdigit(pt_chat[i])) { voulu += pt_chat[i] - '0'; } else { if (islower(pt_chat[i])) { voulu += pt_chat[i] + (10 - 'a'); } else { voulu += pt_chat[i] + (10 - 'A'); } } i++; } i--; break; } default: voulu = pt_chat[i]; break; } } if (voulu == c) { i++; #ifdef DEBUG_CHAT log_debug ("voulu '%c':Ok", voulu); #endif if (*(pt_chat+i) == ' ' || *(pt_chat+i) == 0) { #ifdef DEBUG_XTELD log_debug (" -Ok"); #endif break; } } else { #ifdef DEBUG_CHAT log_debug ("voulu '%c':erreur", voulu); #endif i = 0; } } /* erreur read */ else { #ifdef DEBUG_XTELD log_debug ("Erreur read !"); #endif erreur = 1; break; } } /* timeout */ else if (nbread == 0) { #ifdef DEBUG_XTELD log_debug ("Erreur timeout !"); #endif erreur = 1; break; } } /* Commande suivante */ pt_chat += (i+1); fin = ((erreur != 0 || *(pt_chat-1) == 0) ? 1 : 0); usleep (30000); } #ifndef NO_TERMIO /* Repasse en controle modem */ if (cmodem) { term.c_cflag &= ~CLOCAL; #ifdef USE_TERMIOS ioctl (fd, TCIOCSETA, &term); #else ioctl (fd, TCSETA, &term); #endif /* USE_TERMIOS */ } #endif if (q) *q = 0; return erreur; } xtel-3.3.0.orig/mdmdetect.c0100444001424500142340000001757707241353262014426 0ustar ericperso/* * xtel - Emulateur MINITEL sous X11 * * Copyright (C) 1991-1998 Lectra Systemes & Pierre Ficheux * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * */ static char rcsid[] = "$Id: mdmdetect.c,v 1.3 2001/02/11 00:02:58 pierre Exp $"; /* Detection du modem pour generation du xtel.lignes */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef SVR4 #include #endif /* SVR4 */ #define TIMEOUT_READ 5 #ifndef __FreeBSD__ #ifndef __GLIBC__ extern char *sys_errlist[]; #endif #endif extern char *xtel_basename (), *next_token (); static int fdl; static int fd; static char timeout_reached; static char *locked_line; static char *progname; static char *modem_list = MDM_LIST; static char debug; static char buf[256], lock_file[256]; static char *host; static char *remote_list; static char *builder; static char query; static void Usage (s) char *s; { fprintf (stderr, "Usage: %s [-d] [-l modem_list] [-b builder] [-q] tty_device\n", s); exit (1); } /* Sortie */ static void the_end (r) int r; { if (debug) log_debug ("the_end: %d", r); if (!query) { unlink (lock_file); restore_tty (fd); close (fd); } close (fdl); if (debug) close_debug (); exit (r); } static void sigint () { the_end (1); } /* Lock de ligne serie */ static void check_and_lock (char *line) { char buf[256]; struct stat statb; FILE *fplock; /* A la mode UUCP... */ #ifdef SVR4 sprintf (buf, "/dev/%s", line); if (stat (buf, &statb) != 0) { fprintf (stderr, "%s: %s\n", buf, sys_errlist[errno]); the_end (1); } sprintf (lock_file, FICHIER_LCK, (unsigned long) major(statb.st_dev), (unsigned long) major(statb.st_rdev), (unsigned long) minor(statb.st_rdev)); #else sprintf (lock_file, FICHIER_LCK, line); #endif /* SVR4 */ /* Test du lock */ if (stat (lock_file, &statb) == 0) { fprintf (stderr, "Lock file %s already exists, exiting.\n", lock_file); the_end (1); } /* Pose le lock */ if (!(fplock = fopen (lock_file, "w"))) { fprintf (stderr, "%s: %s\n", lock_file, sys_errlist[errno]); the_end (1); } fprintf (fplock, "%10d\n", getpid()); fclose (fplock); } /* Lecture d'une ligne terminee par '\n' */ static int read_a_line (int fd, char *buf, int size) { char *p = buf, c; while (read (fd, &c, 1) > 0) { if (c == '\n' || ((p-buf) == size-1)) { if (c == '\n') *p++ = '\n'; *p = 0; return 1; } *p++ = c; } return -1; } /* Creation d'une socket client, domaine AF_INET */ int create_inet_client_socket (host, port) char *host; int port; { int sock; struct sockaddr_in addr; struct hostent *hp; /* Recupere l'adresse de l'hote cible */ if (!(hp = gethostbyname (host))){ perror ("gethostbyname"); return (-1); } /* On cree la socket */ if ((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0){ perror ("socket"); return (-1); } /* Preparons l'adresse pour le connect */ /* Le type d'adresse */ addr.sin_family = AF_INET; /* Le port (recupere dans le getservbyname) */ addr.sin_port = htons(port); /* L'adresse de l'hote cible */ bcopy(hp->h_addr, &addr.sin_addr, hp->h_length); /* On se connecte */ if (connect (sock, (struct sockaddr *)&addr, sizeof(addr)) < 0) { perror ("connect"); return (-1); } return (sock); } /* Recherche de mot-cle */ static int check_for_kw (int fd, char *builder, char *kw, char *s) { char modem_string[4096], chat_script[256]; fprintf (stderr, "."); fflush (stderr); sprintf (chat_script, "%s\r OK", s); if (do_chat (fd, chat_script, TIMEOUT_READ, NULL, modem_string, sizeof(modem_string)) != 0) return 0; if (debug) log_debug ("[%s] check_for_kw %s: reponse= %s", builder, kw, modem_string); if (strstr (modem_string, kw)) { if (debug) log_debug ("%s trouve !", kw); return 1; } return 0; } main (ac, av) int ac; char **av; { char *cp, *str1, *str2; register int i; int found = 0; #ifdef DEBUG_XTELD debug = 1; #endif progname = xtel_basename(av[0]); if (ac < 2) Usage (progname); /* Lecture de la ligne de commande */ while (--ac) { if ((cp = *++av) == NULL) break; if (*cp == '-' && *++cp) { switch(*cp) { case 'b' : builder = *++av; break; case 'd' : ++debug; break; case 'l' : modem_list = *++av; break; case 'q' : query = 1; break; default: Usage (progname); } } else { break; } } if (debug) init_debug (progname); signal (SIGINT, sigint); /* Lecture de la liste des modems */ /* Test URL http:// */ if (strncmp (modem_list, "http://", 6) == 0) { host = next_token (&modem_list[7], "/"); remote_list = next_token (NULL, "\000"); fprintf (stderr, "Appel de %s...", host); fflush (stderr); if ((fdl = create_inet_client_socket (host, 80)) < 0) exit (1); /* Demande le fichier */ sprintf (buf, "GET /%s\n", remote_list); write (fdl, buf, strlen (buf)); fprintf (stderr, "OK\n"); } else { if ((fdl = open (modem_list, O_RDONLY)) < 0) { perror (modem_list); exit (1); } } if (!query) { /* Test et lock de la ligne */ check_and_lock (cp); sprintf (buf, "/dev/%s", cp); if ((fd = open (buf, O_RDWR|O_NDELAY)) < 0) { perror (buf); exit (1); } /* Ligne en mode 'raw' */ init_tty (fd, B9600, CS8, 2, 0, 0); /* Test de presence de modem */ if (do_chat (fd, "AT\r OK", 3, NULL, NULL, 0)) { /* On insiste un peu */ if (do_chat (fd, "AT\r OK", 3, NULL, NULL, 0)) { fprintf (stderr, "Pas de modem présent !\n"); the_end (1); } } } /* Lecture de la liste des modems */ while (read_a_line (fdl, buf, sizeof(buf)) > 0) { if (debug) log_debug ("(%s)", buf); if (buf[0] == '#' || buf[0] == '\n') continue; /* Fabricant */ if (buf[0] == '[') { str1 = strdup (&buf[1]); str1[strlen(str1)-2] = 0; if (query) printf ("%s\n", str1); continue; } /* Si on a specifie un fabricant, teste le nom */ if (query || (builder && strcmp (str1, builder))) continue; /* Mot-cle a tester */ str2 = next_token (buf, ":"); if (!str2) { fprintf (stderr, "Erreur de lecture %s\n", modem_list); the_end (1); } /* Interrogation par ATI puis ATIx */ found = 0; if ((found = check_for_kw (fd, str1, str2, "ATI")) == 0) { for (i = '0' ; i <= '9' ; i++) { char cmd[6]; sprintf (cmd, "ATI%c", i); if ((found = check_for_kw (fd, str1, str2, cmd)) > 0) { break; } } } if (found) { if (debug) log_debug ("str2= %s buf= %s", str2, buf); puts ("\n"); /* Nom du modem */ printf ("%s ", next_token (NULL, ":")); /* Separateur */ printf ("%s ", next_token (NULL, ":")); /* Vitesse */ printf ("%s ", next_token (NULL, ":")); /* Init */ printf ("%s\n", next_token (NULL, "\n")); the_end (0); } } the_end (1); } xtel-3.3.0.orig/modem.list0100444001424500142340000000244706770370173014306 0ustar ericperso# Liste des modems définis # $Id: modem.list,v 1.3 1999/09/17 07:40:43 pierre Exp $ # Format: # # [Constructeur] # Keyword:Nom-du-modem:separateur:vitesse:init # # Les espaces ne sont *pas* autorisés sauf dans le mot-cle # # Liste des modems définis # $Id: modem.list,v 1.3 1999/09/17 07:40:43 pierre Exp $ # Format: # # [Constructeur] # Keyword:Nom-du-modem:separateur:vitesse:init # # Les espaces ne sont *pas* autorisés sauf dans le mot-cle # [COMOne] MC218 V34:PC-Card-MC218:,:38400:\dat&fm1e0&k3f3\r-OK RCV56DPF-PLL:PC-Card-MC220:,:38400:\dat&fm1e0&k3f3\r-OK RCV56DPF:Deskline-56K:,:38400:\dat&fm1e0&k3f3\r-OK DJINN:Djinn-Flash:,:1200:\dat&fme0&k3f3\r-OK RCV288:MV234:,:38400:\dat&fm1e0&k3f3\r-OK [Olitec] OLITEC:14400/28800/33600:,:38400:\datm1&k3\r-OK-atb2\r-OK RCV56DPF:56K:,:38400:\dat&fm1e0&k3f3\r-OK [USR] Sportster:Sportster:|:1200:\datm1e0&k3\r-OK-ATs27=16s34=8s40=6S9=100&b2&n2\r-OK Courier:Courier:,:1200:\datm1e0&k3\r-OK-ATs27=16s34=8s40=6S9=100&b2&n2\r-OK U.S. Robotics 56K:56K:,:38400:\datm1e0&h1&s1&r2\r-OK-ATs27=16s34=8S9=100&b1\r-OK [Kortex] KORTEX 336:Novafax-336:|:38400:\dATZ\r-OK-ATM2\r-OK-AT+MS=3\x2C0\x2C1200\x2C1200\r-OK [Hayes] ACCURA:ACCURA-288/336:,:38400:\datm1&k3\r-OK-atb2\r-OK RCV56:Accura-56K:,:38400:\dat&fm1e0&k3f3\r-OK SMO14400:OPTIMA-144:,:38400:\datm1&k3\r-OK-atb2\r-OK xtel-3.3.0.orig/FAQ.txt0100644001424500142340000001651707241610533013454 0ustar ericperso La FAQ de XTEL Mise à jour le 11/02/2001 Voici quelques questions fréquemment posées concernant la génération, la configuration et l'utilisation de Xtel. Peut-on utiliser Xtel à des fins commerciales ? Au lancement de Xtel, j'obtiens un message d'erreur sur le chargement des fontes, que dois-je faire ? Peut-on utiliser Xtel sans avoir TCP/IP ? Comment spécifier un nom de serveur xteld ? Au lancement de Xtel, j'obtiens un message "Erreur de connexion au serveur XTEL...", que dois-je faire ? Le modem ne se connecte pas, que faire ? Quels sont les modems supportés par Xtel ? Puis-je accèder au TVR (Télétel Vitesse Rapide) avec Xtel ? Le modem ne compose pas le numéro, que faire ? Existe-t-il une version anglaise (ou autre) de Xtel? Existe-t-il une version Windows du client Xtel? Existe-t-il des distributions binaires de Xtel? Ou puis-je poser des questions concernant Xtel ? Xtel est-il compatible I-Minitel ? Le programme xtel installé à partir du .rpm plante sur mon système, que faire ? Comment modifier les raccourcis clavier de Xtel? ------------------------------------------------------------------------ *Peut-on utiliser Xtel à des fins commerciales ? Xtel est distribué sous GPL ce qui autorise parfaitement une utilisation commerciale. La principale restriction est l'obligation de distribuer les sources de Xtel en cas de redistribution commerciale. *Au lancement de Xtel, j'obtiens un message d'erreur sur le chargement des fontes, que dois-je faire ? Lire le LISEZMOI ! Xtel utilise des fontes spéciales (fontes à la norme Vidéotex) qui sont normalement installés par la commande make install. Pour que ces fontes soient connues par le serveur X, il est nécessaire de l'en informer par la commande: xset +fp le_repertoire_des_fontes_Xtel Dans le cas de XFree86, le mieux est d'ajouter la ligne : FontPath "/usr/X11R6/lib/X11/fonts/xtel/" dans le fichier XF86Config et de relancer le serveur. *Peut-on utiliser Xtel sans avoir TCP/IP ? Non car le flag NO_NETWORK est définitivement supprimé à partir de la version 3.3.0. Ce flag n'avait plus d'intérêt sachant que LINUX et les autres UNIX ont TOUS une couche TCP/IP. L'existence d'une couche TCP/IP ne signifie pas forcément la connexion à un réseau local ou à l'Internet. L'interface TCP/IP locale (lo sur LINUX, adresse 127.0.0.1) suffit largement au bon fonctionnement de Xtel. L'existence de ce flag entrainait de plus des confusions et erreurs de configuration...donc des mails agaçants à l'auteur! *Comment spécifier un nom de serveur xteld ? Le nom du serveur par défaut est localhost (cas du serveur et du client sur la même machine). Il existe diverses manières de changer le nom : * au lancement de xtel par l'option -serveur * dans vos ressources X (.Xdefaults par exemple) par une ligne : xtel*serveur: le_serveur *Au lancement de Xtel, j'obtiens un message "Erreur de connexion au serveur XTEL...", que dois-je faire ? Le serveur spécifié n'est pas accessible au niveau TCP/IP, ou bien le démon xteld est mal installé (relire le fichier LISEZMOI concernant la modification des fchiers /etc/services et /etc/inetd.conf). Attention, dans le cas de l'utilisation de TCP/IP entre client et serveur, le démon xteld ne doit JAMAIS être lancé à la main (il est lancé automatiquement par le super-démon inetd). Si vous utilisez le service pages jaunes (Yellow Pages/NIS), n'oubliez pas de déclarer le service xtel dans la map NIS (équivalent du /etc/services local). *Le modem ne se connecte pas, que faire ? Voir ci-dessous *Quels sont les modems supportés par Xtel ? Tous les modems supportant le mode V.23 utilisé par le MINITEL®. Tous les modems agréés par FT sont sensés fonctionner dans ce mode. Attention cependant à quelques modems comme les US-Robotics sur lesquels le mode V.23 est inactif par défaut. Il faut alors envoyer la bonne commande AT dans le fichier xtel.lignes pour valider ce mode. Vous pouvez également utiliser les accès rapide (modulation normale) sur 0836011515, etc... Relisez bien le fichier LISEZMOI qui contient une section Détection/configuration des modems Si vous utilisez un modem non prévu dans la liste, merci de NE PAS ME DEMANDER la config à utiliser. Je n'en sais pas plus que vous, donc: * Lisez la doc constructeur ou renseignez vous auprès de ce dernier afin d'envoyer la bonne séquence (passage en modulation V.23) * Au pire, effectuez des essais avec un émulateur de terminal pour déterminer la bonne séquence et valider la chaîne de configuration *Puis-je accèder au TVR (Télétel Vitesse Rapide) avec Xtel ? Oui, à condition d'avoir le bon modem. Le TVR utilise une modulation spéciale (proche de celle du fax) qui n'est à ma connaissance supportée que par les modems Djinn Flash commercialisés par FT et fabriqués par la société bordelaise COM1 (et disponibles également sous cette marque). [Image] dernières nouvelles: le TVR est utilisé sur les services I-Minitel utilisable avec la version 3.3 de Xtel, voir en cliquant ici. *Le modem ne compose pas le numéro, que faire ? 1. Ajouter un \d (délai de 1s) au début de la chaine de composition du numéro dans le fichier xtel.ligne, ça permet au modem de se synchroniser sur la vitesse imposée par xteld 2. Si ça ne marche toujours pas, tracer le fonctionnement de xteld en décommentant la ligne : #define DEBUG_XTELD du fichier Config.tmpl. Le nouvel xteld ainsi généré affichera des infos de debug sur /dev/console (par défaut) ou bien en utilisant syslogd. *Existe-t-il une version anglaise (ou autre) de Xtel? Pas pour l'instant. Le MINITEL® est principalement utilisé en France. Les versions 3.1 et supérieures sont cependant très simple à traduire puisque tous les messages sont rassemblés dans le fichier de ressources XTel-msg (ou XTelm-msg pour la version Motif). Reste à traduire la doc :( *Existe-t-il une version Windows du client Xtel? Xtel n'existe pas en version Windows mais xteld peut être utilisé avec (HyperTerminal Private Edition 3.0 à 5.0 de chez Hilgraeve). Pour en savoir plus, cliquer ici. *Existe-t-il des distributions binaires de Xtel? Oui, exclusivement pour LINUX au format RPM pour l'instant. Cliquez ici. Ca viendra pour d'autres architectures si la demande est forte :) *Ou puis-je poser des questions concernant Xtel ? Dans les groupes de discussions fr.comp.os.linux, fr.comp.applications.x11 ou bien fr.comp.os.unix. A défaut, envoyer un Email à l'auteur à l'adresse pierre@ai.alienor.fr. *Xtel est-il compatible I-Minitel? Oui, voir en cliquant ici *Le programme xtel installé à partir du .rpm plante sur mon système, que faire ? Regénérer le .rpm binaire à partir du .src.rpm, en utilisant la commande: rpm --rebuild xtel-3.3.0-1.src.rpm pui re-installer le .rpm binaire généré sur /usr/src/redhat/RPMS/i386. *Comment modifier les raccourcis clavier de Xtel? Xtel utilise les tables de translations standards. Il suffit donc d'ajouter des lignes du type: xtel*ecran_minitel.translations: #override \n\ Tab: emission-commande(H) \n\ BackSpace: emission-commande(G) dans vos resources (fichier .Xdefaults ou équivalent). Nous rappelons la correspondance des touches Minitel: ENVOI A RETOUR B REPETITION C GUIDE D ANNULATION E SOMMAIRE F CORRECTION G SUITE H CONNEXION_FINI ------------------------------------------------------------------------ [Retour] xtel-3.3.0.orig/make_xtel_lignes.sh0100444001424500142340000000506707241563700016151 0ustar ericperso#!/bin/sh # $Id: make_xtel_lignes.sh,v 1.5 2001/02/11 19:27:59 pierre Exp $ # Détection des modems XTEL_LIGNES="/usr/X11R6/lib/X11/xtel/xtel.lignes" MDMDETECT="/usr/X11R6/bin/mdmdetect" KERNELV=`uname -r | tr -d "." | cut -c1,2` if [ $KERNELV -gt 20 ]; then TTYNAME=ttyS else TTYNAME=cua fi tput init tput clear echo tput rev echo "Détection des modems et génération du xtel.lignes (kernel `uname -r`)" tput rmso M=`$MDMDETECT -q` if [ "$M" = "" ]; then echo "Liste des modems non disponible !" exit 1 fi if [ -r $XTEL_LIGNES ]; then echo "Copie de l'ancien $XTEL_LIGNES sur ${XTEL_LIGNES}.$$" mv $XTEL_LIGNES ${XTEL_LIGNES}.$$ fi j=0 for i in 0 1 2 3 do unset m unset MDM_BUILDER TTYLINE=${TTYNAME}${i} # Test mgetty if [ "$TTYNAME" != ttyS ]; then if [ -r /var/run/mg-pid.ttyS${i} ]; then MGETTYPID=/var/run/mg-pid.ttyS${i} elif [ -r /var/run/mgetty-pid.ttyS${i} ]; then MGETTYPID=/var/run/mgetty-pid.ttyS${i} fi if [ "$MGETTYPID" != "" ]; then PID=`cat $MGETTYPID` if [ -r /proc/$PID ]; then if [ "`cat /proc/$PID/cmdline | grep mgetty`" != "" ]; then TTYLINE=ttyS${i} fi fi fi fi tput clear echo echo "Détection sur /dev/${TTYLINE}..." echo echo "Les marques de modem connues sont: " im=1 for i in $M do tput rev; echo -n "[$im]"; tput rmso echo " $i" im=`expr $im + 1` done MAXM=`expr $im - 1` echo echo -n "Veuillez entrer la marque du modem de 1 à $MAXM (q pour sauter la détection) : " read m < /dev/tty if [ "$m" != "q" ]; then if [ "$m" != "" ]; then # Recherche de la marque im=1 for ii in $M do if [ ${im} = $MAXM ]; then echo "Pas de marque correspondante, recherche sans marque." unset m break fi if [ ${im} = $m ]; then m=${ii} break fi im=`expr $im + 1` done if [ "$m" != "" ]; then MDM_BUILDER="-b $m" fi fi X=`$MDMDETECT $MDM_BUILDER $MDM_LIST ${TTYLINE}` if [ $? = 0 ]; then set $X echo MDM=`echo $1 | sed -e "s/-/ /g"` echo "Le modem détecté est de type: $m $MDM" echo echo -n "Quel votre préfixe d'appel (exemple: 0w) ? " read c < /dev/tty echo "# $m $MDM" >> $XTEL_LIGNES echo "modem${j}${2}/dev/${TTYLINE}${2}$3${2}7${2}E${2}$4 atdt$c\\T\\r CONNECT${2}30" | sed -e 's/-/ /g' >> $XTEL_LIGNES echo >> $XTEL_LIGNES j=`expr $j + 1` else sleep 1 fi fi done if [ ! -r $XTEL_LIGNES -a -r ${XTEL_LIGNES}.$$ ]; then echo "Aucun modem détecté, restauration du $XTEL_LIGNES" mv ${XTEL_LIGNES}.$$ $XTEL_LIGNES fi xtel-3.3.0.orig/iminitel/0040755001424500142340000000000007242250363014111 5ustar ericpersoxtel-3.3.0.orig/iminitel/Imakefile0100444001424500142340000000075207241354666015733 0ustar ericpersoXCOMM $Id: Imakefile,v 1.2 2001/02/11 00:15:50 pierre Exp $ PPPDIR=/etc/ppp all:: clean:: depend:: install:: InstallNonExecFile(iminitel, $(PPPDIR)/peers) InstallNonExecFile(chat-iminitel, $(PPPDIR)) InstallNamedProg(connect_iminitel.sh,connect_iminitel,$(LIBDIR)/xtel) InstallNamedProg(install_iminitel.sh,install_iminitel,$(BINDIR)) InstallNamedProg(ip-up.iminitel,ip-up.iminitel, $(PPPDIR)) InstallNamedProg(ip-down.iminitel,ip-down.iminitel, $(PPPDIR)) install:: install_iminitel xtel-3.3.0.orig/iminitel/chat-iminitel0100444001424500142340000000026007242247650016561 0ustar ericpersoABORT "NO CARRIER" ABORT "NO DIALTONE" ABORT "ERROR" ABORT "NO ANSWER" ABORT "BUSY" "" "at" OK "at&d2&c1m1" OK "atdt3622" CONNECT "" "gin:" "minitel@minitel" "word:" "minitel" xtel-3.3.0.orig/iminitel/connect_iminitel.sh0100555001424500142340000000103407241354765017776 0ustar ericperso#!/bin/sh # $Id: connect_iminitel.sh,v 1.2 2001/02/11 00:16:52 pierre Exp $ IMINITEL_FILE=/tmp/.iminitel case "$1" in start) # Test lock if [ -r ${IMINITEL_FILE} ]; then exit 1 fi # Pose le lock echo -n > ${IMINITEL_FILE} # Appel serveur 3622 /usr/sbin/pppd call iminitel ipparam iminitel exit $? ;; stop) # Si ppp est encore actif, on coupe if [ -r ${IMINITEL_FILE} ]; then . ${IMINITEL_FILE} # Tue de demon pppd kill `cat /var/run/${IMINITEL_INTERFACE}.pid` fi ;; *) exit 1 ;; esac xtel-3.3.0.orig/iminitel/iminitel0100444001424500142340000000020607241767216015650 0ustar ericpersottyS0 115200 crtscts usepeerdns noipdefault nodefaultroute connect '/usr/sbin/chat -v -f /etc/ppp/chat-iminitel' noauth lock idle 120 xtel-3.3.0.orig/iminitel/install_iminitel.sh0100555001424500142340000000165207242250317020006 0ustar ericperso#!/bin/sh # $Id: install_iminitel.sh,v 1.4 2001/02/13 15:20:47 pierre Exp $ echo "Configuration des composants I-Minitel..." if [ ! -r /etc/ppp ]; then echo "Package pppd non installé." exit 1 fi # Droits echo "Droits d'accès..." chmod 600 /etc/ppp/peers/iminitel /etc/ppp/chat-iminitel # Ajout dans ip-up et ip-down cd /etc/ppp for i in up down do echo -n "Mise à jour ip-${i}..." if [ "`grep Minitel ip-${i}`" != "" ]; then echo "déja configuré." continue fi cat ip-${i} | while read line do if [ "`echo $line | grep if${i}-post`" != "" ]; then cat <> /tmp/ip-${i}.$$ # For I-Minitel, don't execute if${i}-post if [ -x /etc/ppp/ip-${i}.iminitel -a "\$6" = "iminitel" ]; then /etc/ppp/ip-${i}.iminitel \$* else $line fi EOF else echo $line >> /tmp/ip-${i}.$$ fi done cp ip-${i} ip-${i}.no_xtel cp /tmp/ip-${i}.$$ ip-${i} rm -f /tmp/ip-${i}.$$ echo OK done xtel-3.3.0.orig/iminitel/ip-up.iminitel0100555001424500142340000000114007237471741016702 0ustar ericperso#!/bin/bash # $Id: ip-up.iminitel,v 1.1 2001/02/05 09:34:59 pierre Exp $ # I-Minitel if [ "$6" = "iminitel" ]; then IMINITEL_INTERFACE=$1 IMINITEL_ADDR=$5 # Mise en place de la route /sbin/route add -host $DNS1 gw ${IMINITEL_ADDR} # Calcul adresse minitel.minitelip X=`host minitel.minitelip $DNS1` set $X # Adresse = dernier parametre i=0 N=`expr $# - 1` while [ $i -lt $N ]; do shift i=`expr $i + 1` done /sbin/route add -host $1 gw ${IMINITEL_ADDR} cat < /tmp/.iminitel IMINITEL_SERVER=$1 IMINITEL_INTERFACE=${IMINITEL_INTERFACE} EOF fi xtel-3.3.0.orig/iminitel/ip-down.iminitel0100555001424500142340000000022307237471741017226 0ustar ericperso#!/bin/bash # $Id: ip-down.iminitel,v 1.1 2001/02/05 09:34:59 pierre Exp $ # I-Minitel if [ "$6" = "iminitel" ]; then rm -f /tmp/.iminitel fi