diff options
Diffstat (limited to 'language/gurmukhi')
28 files changed, 10340 insertions, 0 deletions
diff --git a/language/gurmukhi/pandey/grmk.c b/language/gurmukhi/pandey/grmk.c new file mode 100644 index 0000000000..7596d08335 --- /dev/null +++ b/language/gurmukhi/pandey/grmk.c @@ -0,0 +1,984 @@ +/***************************************************************************/ +/* */ +/* GRMK.C */ +/* */ +/* Source code for "Gurmukhi for LaTeX" preprocessor. */ +/* */ +/* Based on Revision 1.1 1996/03/05 of skt.c preprocessor developed by */ +/* Charles Wikner <wikner@nacdh4.nac.ac.za> */ +/* */ +/* Modifications to original source for Gurmukhi preprocessor made by */ +/* Anshuman Pandey <apandey@u.washington.edu>, 1999/02/24 */ +/* */ +/***************************************************************************/ + +#include <stdio.h> +#include <ctype.h> +#include <string.h> + +/* DECLARE FUNCTIONS */ +void exit (int); +void search (void); +void write_outbuf(void); +void write_line (char *); +char * str_find (char *, char *); +void getline (void); +char * command (char *); +void error (char *, int); +void process (void); +void chrcat (char *, char); +void sktcont (void); +void sktword (void); +void single (char); +void frontac (void); +void sam_warning (void); +void backac (void); +void samyoga (void); + +FILE *infile, *outfile, *fopen(); +char infilename[80]; +char outfilename[80]; + +#define TRUE 1 +#define FALSE 0 + +unsigned char sktline; /* flag TRUE if there is any sanskrit on this line */ +unsigned char sktmode; /* flag TRUE while within {\gm } */ +unsigned char eof_flag; /* flag True when end of file detected */ +unsigned char ac_flag; /* flag TRUE while processing skt vowels */ +unsigned char roman_flag; /* flag TRUE if previous output was Roman string */ + +int nest_cnt; /* '{' increments, '}' decrements, while in \gm */ +int err_cnt; /* incremented by any error while in \gm */ +#define err_max 10 /* after err_max errors, program aborts */ +int line_cnt; /* line number of current input line */ + +char inbuf[133]; /* input file line buffer of text being processed */ +char *i_ptr; /* general pointer to input buffer */ +char outbuf[512]; /* output file line buffer of text processed */ +char *o_ptr; /* general pointer to output buffer */ + +unsigned char cont_end; /* flag TRUE when line ends with %-continuation */ +unsigned char cont_begin; /* flag TRUE when line begins after %-continuation */ +unsigned char hal_flag; /* flag TRUE when hal_type detected in syllable */ +unsigned char accent; /* storage for working accent character */ +unsigned char ac_char; /* storage for working vowel character */ +char sktbuf[255]; /* storage for sanskrit in internal code */ +char *s_ptr; /* general pointer to sanskrit buffer */ +char *old_sptr; /* points to samyoga start; used by warning message */ +char work[80]; /* general scratchpad */ +char *w_ptr; /* general pointer to work buffer */ +char tmp[80]; /* temporary buffer for previous syllable */ +int virama; /* flag to add viraama to samyoga (i.e. no vowel) */ +int hr_flag; /* flag indicates vowel picked up in samyoga (h.r) */ + + +/***************************************************************************/ +/* Function: main() */ +/***************************************************************************/ + +main(argc,argv) +int argc; +char *argv[]; +{ char *p; int k; + + /* Initialization */ + + sktmode = eof_flag = FALSE; + nest_cnt = err_cnt = 0; + line_cnt = 0; + i_ptr = inbuf; *i_ptr = '\0'; + s_ptr = sktbuf; *s_ptr = '\0'; + o_ptr = outbuf; *o_ptr = '\0'; + + /* handle command-line options */ + + k=0; + if (argc>1) strcpy(infilename,argv[1]); + if (strcmp(infilename,"-h")==0) + { k=1; + strcpy(infilename,""); + printf("Gurmukhi for TeX, v1.0, 1999.03.02\n"); + printf("Anshuman Pandey <apandey@u.washington.edu>\n"); + printf("Syntax: grmk infile[.gm] [outfile.tex]\n"); + exit(0); + } + + /* then get file names */ + switch(argc-k) + { case 3: strcpy(infilename,argv[1+k]); + strcpy(outfilename,argv[2+k]); + break; + case 2: strcpy(infilename,argv[1+k]); + strcpy(outfilename,""); + break; + default: strcpy(infilename,""); + while(strlen(infilename) == 0) + { printf("Input file: "); gets(infilename); } + printf("Output file: "); + gets(outfilename); + } + + if (strlen(outfilename) == 0) + { strcpy (outfilename,infilename); /* default output file name */ + p = strchr(outfilename,'.'); + if (p != 0) *p = '\0'; /* delete out file name extension */ + } + p = strchr(infilename,'.'); + if (p == 0) strcat(infilename,".gm"); /* default input file extension */ + if ((infile=fopen(infilename,"r")) == NULL) + { printf("Cannot open file %s\n",infilename); exit(1); } + getline(); if (eof_flag) + { printf("Input file %s is empty.\n",infilename); exit(1); } + p = strchr(outfilename,'.'); + if (p == 0) + { if (inbuf[0] == '@') strcat(outfilename,".dn"); + else strcat(outfilename,".tex"); /* set default output file extension */ + } + if ((outfile=fopen(outfilename,"w")) == NULL) + { printf("Cannot open output file %s\n",outfilename); exit(1); } + + /* Normal main loop */ + + while(eof_flag == 0) + { while(!sktmode && !eof_flag) search(); /* search for \gm command */ + while( sktmode && !eof_flag) process(); /* process bengali text */ + if (err_cnt >= err_max) + { printf("Too many (%d) errors, aborting program\n",err_cnt); break; } + } + if ((err_cnt < err_max) && (nest_cnt != 0)) + printf("Brace mismatch within \\gm = %d\n",nest_cnt); + fclose(infile); + fclose(outfile); + exit(1); + +} + + +/***************************************************************************/ +/* Function: search() */ +/* */ +/* Search inbuf for '{\gm', getting more input lines as necessary */ +/* until string found or end of file, copying input to output; if */ +/* the string is found but command not recognised, it is treated as */ +/* ordinary text; if valid command i_ptr points to first sanskrit */ +/* char after command, and sets sktmode TRUE. */ +/***************************************************************************/ + +void search(void) +{ +unsigned char c; +char *p,*q; + while (eof_flag == 0) + { p = str_find(i_ptr,"{\\gm"); + if (p == 0) + { if (sktline == TRUE) { strcat(outbuf,i_ptr); write_outbuf(); } + else { write_line(inbuf); o_ptr = outbuf; *o_ptr = '\0'; } + getline(); + continue; + } + q = i_ptr; i_ptr = p; + if ((p = command(p)) == 0) /* test command string \gm */ + { p = i_ptr; i_ptr = q; /* if bad \gm command */ + c = *++p; *p = '\0'; /* copy partial line, and search more */ + strcat(outbuf,i_ptr); *p = c; i_ptr = p; continue; + } + i_ptr = q; + nest_cnt++; c = *p; *p = '\0'; /* skip over '{\gm' */ + strcat(outbuf,i_ptr); /* append partial line to outbuf */ + *p = c; i_ptr = p; + sktmode = TRUE; sktline = TRUE; /* now comes the fun! */ + break; + } +} + + +/***************************************************************************/ +/* Function: write_outbuf() */ +/* */ +/* Write outbuf in 80 character lines */ +/***************************************************************************/ + +void write_outbuf(void) +{ +char c, d, e; + while(1) + { c = '\0'; + if (strlen(outbuf) < 81) { write_line(outbuf); break; } + for (o_ptr = outbuf + 78; o_ptr > outbuf + 50; o_ptr--) + { if (*o_ptr == ' ') break; } + if (*o_ptr != ' ') { for (o_ptr = outbuf+78; o_ptr > outbuf + 50; o_ptr--) + if ((*o_ptr=='\\') && (*(o_ptr-1)!='\\')) break; + if (o_ptr == outbuf+50) o_ptr = outbuf+78; + c = *o_ptr; *o_ptr++ = '%'; d = *o_ptr; + } + *o_ptr++ = '\n'; e = *o_ptr; *o_ptr = '\0'; + write_line(outbuf); + *o_ptr = e; + if (c!='\0') { *--o_ptr = d; *--o_ptr = c; } /* restore displaced chars */ + strcpy(outbuf,o_ptr); + } + o_ptr = outbuf; + *o_ptr = '\0'; +} + + +/***************************************************************************/ +/* Function: write_line() */ +/* */ +/* Write p-string to output device */ +/***************************************************************************/ + +void write_line(char *p) +{ + if (err_cnt == 0) fputs(p,outfile); +} + + +/***************************************************************************/ +/* Function: str_find() */ +/* */ +/* Find first occasion of string *str within *buf before '%' char; */ +/* return pointer first char of str within buf, else 0. */ +/***************************************************************************/ + +char * str_find(char *buf, char *str) +{ char *p, *x; + p = strstr(buf,str); + if (p == 0) return(0); + x = strchr(buf,'%'); + if ((x != 0) && (p > x)) return(0); + return(p); +} + + +/***************************************************************************/ +/* Function: getline() */ +/* */ +/* Get another line from input file; reset i_ptr, increments */ +/* line_cnt, and sets eof_flag if EOF. */ +/***************************************************************************/ + +void getline(void) +{ +char *p; + i_ptr = inbuf; + *i_ptr = '\0'; + line_cnt++; + if (fgets(inbuf,133,infile) == NULL) eof_flag = TRUE; + if (sktmode == FALSE) sktline = FALSE; +} + + +/***************************************************************************/ +/* Function: command() */ +/* */ +/* Check for valid \gm command; if invalid command, print error message */ +/***************************************************************************/ + +char * command(char *p) +{ p += 4; /* skip over '{\gm' */ + if (*p++ != ' ') p = 0; + if (p == 0) error("Unrecognised command string",7); + return(p); +} + + +/***************************************************************************/ +/* Function: error() */ +/* */ +/* Print out error message, including string *s and 'n' characters */ +/* of inbuf. */ +/***************************************************************************/ + +void error(char *s, int n) +{ char err_str[80]; int j; + if (++err_cnt <= err_max) + { if (n > 0) { for (j=0; j<n; j++) err_str[j] = *(i_ptr+j); + err_str[j] = '\0'; + } + if (n == 0) { strcpy(err_str,"oct("); + chrcat(err_str,'0' + (*i_ptr/64)); + chrcat(err_str,'0' + (*i_ptr/8)); + chrcat(err_str,'0' + (*i_ptr & 7)); + strcat(err_str,")"); + } + if (n < 0) { err_str[0] = '\0'; } + } + printf("Line %4d Error: %s %s\n",line_cnt,s,err_str); +} + + +/***************************************************************************/ +/* Function: process() */ +/* */ +/* Process input text within {\gm, converting to internal format in sktbuf */ +/***************************************************************************/ + +#define ISAC(c) (((strchr("aAiIuUeEoO",c) != 0) && c) ? TRUE : FALSE) + +/* wWX removed from the definition of ISAC above (.R .l .L) */ + +void process(void) +{ int cap_flag, underscore; +unsigned char *i, c, d; +#define CF ac_flag=underscore=cap_flag=roman_flag=FALSE +#define CC CF; continue +#define CR ac_flag=underscore=cap_flag=FALSE; +#define CI i_ptr++; CC + + CF; + while(1) + { if (eof_flag) return; + if (err_cnt >= err_max) + { sktmode = FALSE; return; } + c = *i_ptr; d = *(i_ptr+1); + +/* END OF LINE */ + if ((c == '\0') || (c == '\n')) + { sktword(); strcat (outbuf,i_ptr); write_outbuf(); getline(); CC; } + + +/* IMBEDDED ROMAN */ +/* if (strchr("!'()*+,-/:;=?[]`",c) || ((c == '.') && (*(i_ptr+1) == '.'))) + { if (c == '.') i_ptr++; + if (sktbuf[0]) { sktword(); } + while(1) */ + + if (strchr("!'()*+,-/:;=?[]`",c)) + { if (sktbuf[0]) { sktword(); } + while(1) + + { chrcat(outbuf,c); c = *++i_ptr; + if (c == '.') + { if (*(i_ptr+1) != '.') break; + i_ptr++; continue; + } + if ((strchr("!'()*+,-/:;=?[]`",c) && c) == 0) break; + } + CR; continue; + } + +/* ILLEGAL CHARS */ + if (strchr("_$qwxBCDEFJLNOPQSVWXYZ\177",c)) + { error("Illegal Gurmukhi character: ",1); CI; } + if (c>127) { error("Invalid character >80H: ",1); CI; } +/*?? Since we are now case sensitive (unlike skt), the list of */ +/*?? illegal chars has been increased (_ added, and & removed) */ + +/* CONTROL CHARACTERS */ + if (c < ' ') + { error("Illegal control character: ",0); CI; } + +/* IMBEDDED LATEX COMMAND STRINGS */ + if (c == '\\') + { if (d == '-') /* imbedded discretionary hyphen */ + { strcat(sktbuf,"!"); i_ptr++; CI; } + sktword(); + if (isalpha(d) == 0) + { chrcat(outbuf,c); chrcat(outbuf,*++i_ptr); CI; } + else + { while (1) + { chrcat(outbuf,c); c = *++i_ptr; if (isalpha(c) == 0) break; } + } + CC; + } + +/* SPACE CHAR */ + if (c == ' ') + { sktword(); while(*++i_ptr == ' '); chrcat(outbuf,c); CC; + } +/*?? slight change here, since underscore is now an illegal character */ + +/* COMMENT DELIMITER */ + if (c == '%') + { if (*(i_ptr+1) == '\n') sktcont(); + else sktword(); + strcat(outbuf,i_ptr); write_outbuf(); getline(); CC; + } + +/* BRACES */ + if (c == '{') { if (d == '}') { i_ptr++; CI; } /* for words like pra{}uga */ + else { nest_cnt++; sktcont(); chrcat(outbuf,c); CI; } + } + if (c == '}') + { sktword(); chrcat(outbuf,c); + if (--nest_cnt == 0) + { sktmode = FALSE; + i_ptr++; return; + } + else CI; + } + +/* UPPER CASE */ + if (isupper(c)) + { switch (c) + { case 'A': + case 'I': + case 'U': + case 'H': break; + case 'M': c = '\\'; break; + case 'K': c = 'L'; break; + case 'R': c = 'w'; break; + case 'G': c = 'W'; break; + default: c = '*'; break; + } + if (c=='*') { error("Invalid upper case: ",1); CI; } + } +/*?? big change with that code: the upper case has a different *meaning* than */ +/*?? the lower case: fortunately, AIUMH are the same as the internal code :-) */ + +/* DOT_CHAR */ + if (c == '.') { switch(d) + { case 'd': c = 'q'; break; + case 'h': c = 'H'; break; + case 'm': c = 'M'; break; + case 'n': c = 'N'; break; + case 'o': c = '%'; break; + case 't': c = 'x'; break; + case '.': c = '@'; break; + case ' ': c = '|'; break; /* following space */ + case '\\': c = '|'; break; /* following LaTeX command */ + case '}': c = '|'; break; /* following brace */ + case '\0': c = '|'; break; /* end of line */ + case '\n': c = '|'; break; /* end of line */ + } + if (c=='.') { error("Invalid dot_character: ",2); CI; } + if (c!='|') { i_ptr++; d = *(i_ptr+1);} + } + +/* NEXT CHAR IS H */ + if (d=='h') + { if (strchr("bcdgjkptqx",c)) { c=toupper(c); i_ptr++; d=*(i_ptr+1); } + } + +/* The upper/lowercase stuff removed: a following 'h' converts a consonant */ +/* to its upper case internal code, e.g th --> T. Note that 'w' is added */ +/* to the list for R Rh */ + +/* QUOTE CHAR */ + if (c == '\"') { switch(d) + { case 'n': c = 'Y'; break; + case 's': c = 'Z'; break; + } + if (c=='\"') { error("Invalid quote_character",2); CI; } + i_ptr++; d = *(i_ptr+1); + } +/*?? "d and "h removed */ + +/* TILDE CHAR */ + if (c == '~') { switch (d) + { case 'n': c = 'V'; break; + default : c = '*'; break; + } + if (c=='*') + { error("Invalid use of tilde character: ",2); CI; } + i_ptr++; d = *(i_ptr+1); + } + +/* TWO CHAR VOWELS */ + if ( strchr("aiu",c) && strchr("aiu",d) ) + { switch(c) + { case 'a': switch(d) + { case 'a': c = 'A'; break; + case 'i': c = 'E'; break; + case 'u': c = 'O'; break; + } break; + case 'i': if (d=='i') c = 'I'; break; + case 'u': if (d=='u') c = 'U'; break; + } + if (isupper(c)) { i_ptr++; d = *(i_ptr+1); } + } +/*?? all the upper/lowercase stuff removed */ + +/* NOW CHAR SHOULD BE INTERNAL REPRESENTATION OF SANSKRIT CHAR */ + if ( ((c=='\\' || c=='M') && !(ac_flag)) ) { + i_ptr -=2; error("No vowel before nasal: ",3); i_ptr +=2; CF; + } + + if (c=='H' && !(ac_flag)) { + i_ptr -=2; error("No vowel before visarga: ",3); i_ptr +=2; CF; + } + + chrcat(sktbuf,c); + CR; + if (ISAC(c)) ac_flag = TRUE; + i_ptr++; + } +} +/*?? all the tests for (semi-)vowel nasalization and accents removed */ + +#undef CI; +#undef CC; +#undef CR; +#undef CF; + + +/***************************************************************************/ +/* Function: chrcat() */ +/* */ +/* Append character c to end of buffer s */ +/***************************************************************************/ + +void chrcat(char *s, char c) +{ char temp[] = " "; temp[0] = c; strcat(s,temp); +} + + +/***************************************************************************/ +/* Function: sktcont() */ +/* */ +/* Similar to sktword() but used where input text line ends in '%' to */ +/* cotinue on next line. */ +/***************************************************************************/ + +void sktcont(void) +{ + cont_end = TRUE; sktword(); + cont_end = FALSE; cont_begin = TRUE; +} + + +/***************************************************************************/ +/* Function: sktword() */ +/* */ +/* Convert contents of sktbuf to output string in outbuf */ +/***************************************************************************/ + +/* internal code for consonants */ +static char hal_chars[] = "BCDGJKLNPQRTVWXYZbcdfghjklmnpqrstvwxyz"; + +#define ISHAL(c) (((strchr(hal_chars,c) != 0) && c) ? TRUE : FALSE) + +#define CLRFLAGS virama=hal_flag=0 + +#define CAT(w,x,z) \ +strcat(w,x); strcat(w,z) + +void sktword(void) +{ char c; + if (roman_flag && sktbuf[0]) { strcat(outbuf,"\\,"); roman_flag = FALSE; } + +/* A word is built up one syllable at a time: a syllable typically comprises */ +/* a consonant (or samyoga) followed by a vowel (with its nasalisation and */ +/* accents). If there is no consonant, then a front-vowel is output; if there */ +/* is no vowel, then a viraama is appended to the consonant/samyoga. */ +/* One effect of this is that, if a consonant cluster is not fully resolved */ +/* into a single samyoga, it will be treated as two syllable: in particular, */ +/* the hook of the short-i will span one samyoga only. */ +/* */ +/* The `work' buffer is used as a scratchpad while building a syllable; on */ +/* completion it is stored in the `tmp' buffer before shipping to the output */ +/* buffer. This temporary storage while working on the next syllable, allows */ +/* changes to the back spacing of the previous syllable for more effiecient */ +/* output. */ + + CLRFLAGS; + s_ptr = sktbuf; c = *s_ptr; + if (c == '\0') return; + *tmp = '\0'; *work = '\0'; + while (1) + { CLRFLAGS; /* in particular, need to clear hal_flag for the likes of kara */ + c= *s_ptr++; + if (c == '\0') + { if (*tmp) { if (outbuf[0]=='\0' && tmp[0]=='[') strcat(outbuf,"{}"); + strcat(outbuf,tmp); + } + break; + } + if (ISAC(c)) + { ac_char = c; + frontac(); + if (*tmp) { if (outbuf[0]=='\0' && tmp[0]=='[') strcat(outbuf,"{}"); + strcat(outbuf,tmp); + } + strcpy(tmp,work); + *work = '\0'; cont_begin = 0; + continue; + } + if (strchr("0123456789\"!%|\\@~HM",c)) + { single(c); + if (*tmp) { if (outbuf[0]=='\0' && tmp[0]=='[') strcat(outbuf,"{}"); + strcat(outbuf,tmp); + } + strcpy(tmp,work); + *work = '\0'; cont_begin = 0; + continue; + } + s_ptr--; + old_sptr = s_ptr; /* save pointer to start of samyoga */ + if (ISHAL(c)) { hal_flag = TRUE; samyoga(); c = *s_ptr; } + ac_char = virama = 0; + if (!hr_flag) { if (ISAC(c)) { ac_char = *s_ptr++; } + else virama = TRUE; /* hr_flag = h.r parsed by samyoga */ + } + backac(); hr_flag = FALSE; + if (*tmp) { if (outbuf[0]=='\0' && tmp[0]=='[') strcat(outbuf,"{}"); + strcat(outbuf,tmp); + } + strcpy(tmp,work); + *work = '\0'; cont_begin = FALSE; + + } + strcat(outbuf,work); + s_ptr = sktbuf; *s_ptr = '\0'; + cont_begin = 0; +} + + +/***************************************************************************/ +/* Function: single() */ +/* */ +/* Output single (stand-alone) character to work buffer */ +/***************************************************************************/ + +void single(char c) +{ + switch(c) + { case '0': strcat(work,"0"); break; /* numerals */ + case '1': strcat(work,"1"); break; + case '2': strcat(work,"2"); break; + case '3': strcat(work,"3"); break; + case '4': strcat(work,"4"); break; + case '5': strcat(work,"5"); break; + case '6': strcat(work,"6"); break; + case '7': strcat(work,"7"); break; + case '8': strcat(work,"8"); break; + case '9': strcat(work,"9"); break; + case '!': strcat(tmp,"\\-"); break; /* discretionary hyphen */ + case '%': strcat(work,"{\\char35}"); break; /* pra.nava */ + case '|': strcat(work,"."); break; /* single danda */ + case '@': strcat(work,"|"); break; /* double danda */ + case '\\': strcat(work,"{\\kern-1.8pt:}"); break; /* candrabindu */ + case 'H': strcat(work,"{\\char92}"); break; /* visarga */ + case 'M': strcat(work,"{\\tpp}"); break; /* anusvara */ + } +} + + +/***************************************************************************/ +/* Function: frontac() */ +/* */ +/* Process a front-vowel to workbuf */ +/***************************************************************************/ + +void frontac(void) +{ + CLRFLAGS; + switch(ac_char) + { case 'a': strcat(work,"a"); break; + case 'A': strcat(work,"aA"); break; + case 'i': strcat(work,"ie"); break; + case 'I': strcat(work,"eI"); break; + case 'u': strcat(work,"uU"); break; + case 'U': strcat(work,"u<"); break; + case 'e': strcat(work,"eE"); break; + case 'E': strcat(work,"a>"); break; + case 'o': strcat(work,"o"); break; + case 'O': strcat(work,"aO"); break; + default : error("Lost in frontac()",-1); + } +} + + +/***************************************************************************/ +/* Function: sam_warning() */ +/* */ +/* Print a warning message that a virama will be used within a */ +/* samyoga. Also print input file line number, together with an */ +/* indication of the samyoga and where the viraama will be placed. */ +/***************************************************************************/ + +void sam_warning(void) +{ + char *p, msg[80]=""; + p = old_sptr; + + while (ISHAL(*p)) + { switch (*p) + { case 'B': strcat(msg,"bh"); break; + case 'C': strcat(msg,"ch"); break; + case 'D': strcat(msg,"dh"); break; + case 'G': strcat(msg,"gh"); break; + case 'H': strcat(msg,".h"); break; + case 'J': strcat(msg,"jh"); break; + case 'K': strcat(msg,"kh"); break; + case 'L': strcat(msg,"K"); break; + case 'P': strcat(msg,"ph"); break; + case 'T': strcat(msg,"th"); break; + case 'x': strcat(msg,".t"); break; + case 'X': strcat(msg,".th"); break; + case 'N': strcat(msg,".n"); break; + case 'q': strcat(msg,".d"); break; + case 'Q': strcat(msg,".dh"); break; + case 'f': strcat(msg,"f"); break; + case 'V': strcat(msg,"~n"); break; + case 'w': strcat(msg,"R"); break; + case 'W': strcat(msg,"G"); break; + case 'z': strcat(msg,"z"); break; + case 'Y': strcat(msg,"\"n"); break; + case 'Z': strcat(msg,"\"s"); break; + case 'r': strcat(msg,"r"); break; + default: chrcat(msg,*p); break; + } + if (++p == s_ptr) strcat(msg,"-"); + } + if (ISAC(*p)) + { switch (*p) + { /* case 'w': strcat(msg,".l"); break; */ + default: chrcat(msg,*p); break; + } + } + printf("Line %4d Warning: samyoga viraama: %s\n",line_cnt,msg); +} + +/***************************************************************************/ +/* Function: backac() */ +/* */ +/* Process vowel diacritics */ +/***************************************************************************/ + +void backac(void) +{ int j,k; char c, *p; + +c = ac_char; + +if (ac_char == 'A') { strcat(work,"A");} /* add aa-dia */ +if (ac_char == 'i') { CAT(tmp,"i",""); } /* add i-dia */ +if (ac_char == 'I') { strcat(work,"I"); } /* add ii-dia */ +if (ac_char == 'u') { strcat(work,"U");} /* add u-dia */ +if (ac_char == 'U') { strcat(work,"<");} /* add uu-dia */ +if (ac_char == 'e') { strcat(work,"E"); } /* add e-dia */ +if (ac_char == 'E') { strcat(work,">"); } /* add ai-dia */ +if (ac_char == 'o') { strcat(work,"{\\char126}");} /* add o-dia */ +if (ac_char == 'O') { strcat(work,"O");} /* add au-dia */ + +/* if (virama) { strcat(work,"\\30Cz"); } /* add virama */ + +} + +/***************************************************************************/ +/* Function: samyoga() */ +/* */ +/* Work along sktbuf sequentially to build up a samyoga print */ +/* string in the work buffer and update the samyoga parameters. */ +/* */ +/* The method is quite unsophisticated, but its simplicity lends */ +/* clarity for later additions or changes, and for this reason */ +/* is done in Devanagari alphabetical order, but with longer */ +/* strings before shorter. */ +/* */ +/* Macros are used to simplify reading the program --- believe it or not! */ +/* */ +/* Switch/case is used on the first letter, then the main LS macro tests: */ +/* (1) if the test string matches the input exactly, then */ +/* (2) bump input pointer to the character after string match */ +/* (3) use NX macro to break out of switch instruction */ +/***************************************************************************/ + + +#define LS(a,c,z) n=strlen(a); \ + if(strncmp(p,a,n)==0) { strcat(work,z); p+=n; c;} + +#define NX sam_flag = 'X'; break; + +/******************************************************************************/ + +void samyoga(void) +{ +char *p, sam_flag; int n; + sam_flag = 0; + p = s_ptr; + while (1) + { if (!ISHAL(*p)) { NX; } + switch (*p++) + { + + /* k */ + case 'k': LS("k", NX, "{\\adk}c"); + LS("K", NX, "{\\adk}K"); + LS("r", NX, "cq"); + strcat(work,"c"); break; + + /* kh */ + case 'K': LS("y", NX, "kw"); + strcat(work,"k"); break; + + /* g */ + case 'g': LS("g", NX, "{\\adk}g"); + LS("G", NX, "{\\adk}G"); + LS("r", NX, "gq"); + strcat(work,"g"); break; + + /* gh */ + case 'G': strcat(work,"G"); break; + + /* "n */ + case 'Y': if(*p=='g' && *(p+1)=='i') + {p+=2; strcat(work,"{\\tpp}ig");NX;} + LS("k", NX, "{\\tpp}c"); + LS("K", NX, "{\\tpp}k"); + LS("g", NX, "{\\tpp}g"); + LS("G", NX, "{\\tpp}G"); + strcat(work,"L"); break; + + /* c */ + case 'c': LS("c", NX, "{\\adk}C"); + LS("C", NX, "{\\adk}x"); + strcat(work,"C"); break; + + /* ch */ + case 'C': strcat(work,"x"); break; + + /* j */ + case 'j': LS("j", NX, "{\\adk}j"); + LS("J", NX, "{\\adk}J"); + strcat(work,"j"); break; + + /* jh */ + case 'J': strcat(work,"J"); break; + + /* ~n */ + case 'V': LS("c", NX, "{\\tpp}C"); + LS("C", NX, "{\\tpp}x"); + LS("j", NX, "{\\tpp}j"); + LS("J", NX, "{\\tpp}J"); + strcat(work,"M"); break; + + /* .t */ + case 'x': LS("x", NX, "{\\adk}t"); + LS("X", NX, "{\\adk}T"); + strcat(work,"t"); break; + + /* .th */ + case 'X': strcat(work,"T"); break; + + /* .da */ + case 'q': LS("q", NX, "{\\adk}D"); + LS("Q", NX, "{\\adk}Q"); + strcat(work,"D"); break; + + /* .dh */ + case 'Q': strcat(work,"Q"); break; + + /* .n */ + case 'N': LS("x", NX, "{\\tpp}t"); + LS("X", NX, "{\\tpp}T"); + LS("q", NX, "{\\tpp}D"); + LS("Q", NX, "{\\tpp}Q"); + strcat(work,"N"); break; + + /* t */ + case 't': LS("t", NX, "{\\adk}V"); + LS("T", NX, "{\\adk}W"); + LS("r", NX, "Vq"); + strcat(work,"V"); break; + + /* th */ + case 'T': strcat(work,"W"); break; + + /* d */ + case 'd': LS("d", NX, "{\\adk}d"); + LS("D", NX, "{\\adk}Y"); + LS("y", NX, "dw"); + LS("r", NX, "dq"); + LS("v", NX, "dX"); + strcat(work,"d"); break; + + /* dh */ + case 'D': strcat(work,"Y"); break; + + /* n */ + case 'n': if(*p=='n' && *(p+1)=='i') + {p+=2; strcat(work,"i{\\tpt}n");NX;} + LS("t", NX, "{\\tpp}V"); + LS("T", NX, "{\\tpp}W"); + LS("d", NX, "{\\tpp}d"); + LS("D", NX, "{\\tpp}Y"); + LS("n", NX, "{\\tpp}n"); + LS("h", NX, "nH"); + strcat(work,"n"); break; + + /* p */ + case 'p': LS("p", NX, "{\\adk}p"); + LS("P", NX, "{\\adk}f"); + LS("r", NX, "pq"); + strcat(work,"p"); break; + + /* ph */ + case 'P': strcat(work,"f"); break; + + /* b */ + case 'b': LS("b", NX, "{\\adk}b"); + LS("B", NX, "{\\adk}B"); + LS("r", NX, "bq"); + strcat(work,"b"); break; + + /* bh */ + case 'B': strcat(work,"B"); break; + + /* m */ + case 'm': if(*p=='m' && *(p+1)=='i') + {p+=2; strcat(work,"i{\\tpt}m");NX;} + LS("p", NX, "{\\tpp}p"); + LS("P", NX, "{\\tpp}f"); + LS("b", NX, "{\\tpp}b"); + LS("B", NX, "{\\tpp}B"); + LS("m", NX, "{\\tpp}m"); + LS("r", NX, "mq"); + strcat(work,"m"); break; + + /* y */ + case 'y': strcat(work,"y"); break; + + /* r */ + case 'r': LS("h", NX, "rH"); + strcat(work,"r"); break; + + /* l */ + case 'l': LS("l", NX, "{\\adk}l"); + LS("h", NX, "lH"); + strcat(work,"l"); break; + + /* v */ + case 'v': LS("h", NX, "vH"); + strcat(work,"v"); break; + + /* "s */ + case 'Z': strcat(work,"S"); break; + + /* s */ + case 's': LS("s", NX, "{\\adk}s"); + LS("v", NX, "sX"); + strcat(work,"s"); break; + + /* h */ + case 'h': strcat(work,"h"); break; + + /* K */ + case 'L': strcat(work,"K"); break; + + /* G */ + case 'W': strcat(work,"Z"); break; + + /* z */ + case 'z': strcat(work,"z"); break; + + /* R */ + case 'w': LS("h", NX, "RH"); + strcat(work,"R"); break; + + /* f */ + case 'f': strcat(work,"F"); break; + + default: error("Lost in samyoga()",-1); NX; + } + + if (sam_flag == 'X') { s_ptr = p; break; } + if (!ISHAL(*p)) { s_ptr = p; break; } + } +} + +/***************************************************************************/ +/* samapta */ +/***************************************************************************/ diff --git a/language/gurmukhi/pandey/grmk.sty b/language/gurmukhi/pandey/grmk.sty new file mode 100644 index 0000000000..c3661b38e8 --- /dev/null +++ b/language/gurmukhi/pandey/grmk.sty @@ -0,0 +1,20 @@ +% grmk.sty v1.0 +% +% LaTeX2e style file for Gurmukhi for TeX package +% +% Author : Anshuman Pandey <apandey@u.washington.edu> +% Date : 24 February 1999 +% + +\DeclareFontSubstitution{OT1}{pun}{m}{n} +\newcommand{\gm}{% + \usefont{OT1}{pun}{m}{n}% + \baselineskip1.27\baselineskip +}% + +\newcommand{\smkanda}{{\char64}} +\newcommand{\lgkanda}{{\char141}} +\newcommand{\ekonkarf}{{\char139}} +\newcommand{\ekonkarp}{{\char140}} +\newcommand{\adk}{{\char38\kern-.1ex}} +\newcommand{\tpp}{{\kern-.2ex\char94\kern.2ex}} diff --git a/language/gurmukhi/pandey/grmkdoc.gm b/language/gurmukhi/pandey/grmkdoc.gm new file mode 100644 index 0000000000..e0b35a25c9 --- /dev/null +++ b/language/gurmukhi/pandey/grmkdoc.gm @@ -0,0 +1,738 @@ +\documentclass[11pt,titlepage]{article} +\usepackage{grmk, multicol, mflogo} + +\def\portraitpage{% + \setlength{\topmargin}{-0.50in} % real margin == this + 1in + \setlength{\oddsidemargin}{-0.0in} % real margin == this + 1in + \setlength{\evensidemargin}{-0.0in} % real margin == this + 1in + \setlength{\columnsep}{20pt} + \setlength{\columnseprule}{0.4pt} + + % Use Portrait Size Page + \setlength{\textwidth}{6.5in} + \setlength{\textheight}{9.0in}% +} +\portraitpage + +\newcommand{\moddate}{03 March 1999} +\newcommand{\version}{1.0} + +\begin{document} +\title{{\LARGE \bfseries Gurmukh{\=\i} for \TeX{}} \\ + Version \version{}} +\author{\Large Anshuman Pandey} +\date{\large \moddate{}} +\maketitle +\vfill +\newpage + +\section{Introduction} +This document explains the \emph{Gurmukh{\=\i} for \TeX{}} +{\sf gurmukhi} package for typesetting Panjabi language documents +in \TeX{} and \LaTeX{}. + +The `Punjabi' ({\tt pun}) font used by the package was designed by, +and is copyright \textcopyright{} Hardip Singh Pannu. I received +permission from Mr. Pannu to use the `Punjabi' font with this +package. The \MF{} source was derived from Mr. Pannu's TrueType +version of `Punjabi' with the {\sf ttf2mf} package. Please respect +his generosity by not modifying the font or making derivatives of +it, and by not unbundling it from the package. I hope to +eventually create a `true' \MF{} for the Gurmukh{\=\i} script. + +\section{Implementation} +The delimiter \verb+{\+\verb+gm+ \ldots \verb+}+ are to be used to +encode Gurmukh{\=\i} text. In the preamble of the document, the +{\sf grmk} style file must be declared: \verb+\usepackage{grmk}+. + +The transliterated Panjabi text is to then be placed within the +delimiters. The file is then to be run through the preprocessor: + +\centerline{{\tt grmk} \emph{x}[{\tt.gm}] \emph{y}[{\tt .tex}]} + +\section{Transliterated Input} +The transliteration scheme for the {\sf gurmukhi} package follows +the scheme developed by Frans Velthuis for his \emph{Devan\=agar{\=\i} +for \TeX{}} package. Many Gurmukh{\=\i} nuances are handled implicitly +by the preprocessor. These are illustrated below: + + +\subsection{Use of \emph{addak}} +In Gurmukh{\=\i} geminate consonants are not written twice or with +consonant conjuncts. Rather, the first letter is dropped and only the +second letter is written, and a diacritic mark called \emph{addak} +is placed above the preceding letter, ie {\gm hattha} {\tt hattha}. +This is handled by the preprocessor. It is unnecessary for +hard-code for \emph{addak}. + +When the geminate consonants are \emph{nn} or \emph{mm}, a sign called +\emph{\d{t}ipp{\=\i}} is used instead of \emph{addak}, ie. +{\gm lammii} \emph{lamm{\=\i}}. {\it \d{T}ipp{\=\i}\/} is one of the +nasalization diacritics. + +The following is a list of supported geminated consonants: + +{\parindent=0pt +\begin{multicols}{4} +{\tt k} $+$ {\tt ka} $=$ {\gm kka} \\ +{\tt k} $+$ {\tt kha} $=$ {\gm kkha} \\ +{\tt g} $+$ {\tt ga} $=$ {\gm gga} \\ +{\tt g} $+$ {\tt gha} $=$ {\gm ggha} \\ +{\tt c} $+$ {\tt ca} $=$ {\gm cca} \\ +{\tt c} $+$ {\tt cha} $=$ {\gm ccha} \\ +{\tt j} $+$ {\tt ja} $=$ {\gm jja} \\ +{\tt j} $+$ {\tt jha} $=$ {\gm jjha} \\ +{\tt T} $+$ {\tt Ta} $=$ {\gm .t.ta} \\ +{\tt T} $+$ {\tt Tha} $=$ {\gm .t.tha} \\ +{\tt D} $+$ {\tt Da} $=$ {\gm .d.da} \\ +{\tt D} $+$ {\tt Dha} $=$ {\gm .d.dha} \\ +{\tt t} $+$ {\tt ta} $=$ {\gm tta} \\ +{\tt t} $+$ {\tt tha} $=$ {\gm ttha} \\ +{\tt d} $+$ {\tt da} $=$ {\gm dda} \\ +{\tt d} $+$ {\tt dha} $=$ {\gm ddha} \\ +{\tt n} $+$ {\tt na} $=$ {\gm nna} \\ +{\tt p} $+$ {\tt pa} $=$ {\gm ppa} \\ +{\tt p} $+$ {\tt pha} $=$ {\gm ppha} \\ +{\tt b} $+$ {\tt ba} $=$ {\gm bba} \\ +{\tt b} $+$ {\tt bha} $=$ {\gm bbha} \\ +{\tt m} $+$ {\tt ma} $=$ {\gm mma} \\ +{\tt l} $+$ {\tt la} $=$ {\gm lla} \\ +{\tt s} $+$ {\tt sa} $=$ {\gm ssa} +\end{multicols} +} + +\subsection{Nasalization} +Nasalization in Gurmukh{\=\i} is indicated by two +diacritics called {\it \d{t}ipp{\=\i}\/} and {\it bind{\=\i}\/}. +These are coded {\tt .m} and {\tt M}, respectively. + +{\it \d{T}ipp{\=\i}\/} is used with the vowels {\it a\/}, {\it i\/}, +and {\it u\/}, and with {\it \=u\/} when it is in word-final +position, ie. {\gm mu.n.daa} \ {\tt mu.n.daa}. {\it Bind{\=\i}\/} +is used with all other vowels, ie. {\gm "saaMt} \ {\tt "saaMt}. + +Words like {\gm a"nga} \ may either be encoded \verb+a"nga+ or +\verb+a.mga+. In either case, the preprocessor will produce the correct +output. + +\subsection{Consonant conjuncts} +Consonsant conjuncts are limited in Gurmukh{\=\i} +and are much simpler than those of Devan\=agar{\=\i}. The conjunct +consonants supported in the IFM are: + +\begin{center} +{\parindent=0pt +\begin{multicols}{5} +{\tt k} + {\tt ra} $=$ {\gm kra} \\ +{\tt kh} + {\tt ya} $=$ {\gm khya} \\ +{\tt g} + {\tt ra} $=$ {\gm gra} \\ +{\tt t} + {\tt ra} $=$ {\gm tra} \\ +{\tt d} + {\tt ya} $=$ {\gm dya} \\ +{\tt d} + {\tt ra} $=$ {\gm dra} \\ +{\tt d} + {\tt va} $=$ {\gm dva} \\ +{\tt n} + {\tt ha} $=$ {\gm nha} \\ +{\tt p} + {\tt ra} $=$ {\gm pra} \\ +{\tt b} + {\tt ra} $=$ {\gm bra} \\ +{\tt m} + {\tt ra} $=$ {\gm mra} \\ +{\tt r} + {\tt ha} $=$ {\gm rha} \\ +{\tt l} + {\tt ha} $=$ {\gm lha} \\ +{\tt v} + {\tt ha} $=$ {\gm vha} \\ +{\tt R} + {\tt ha} $=$ {\gm Rha} \\ +{\tt s} + {\tt va} $=$ {\gm sva} +\end{multicols} +} +\end{center} + +\section{Variations} +The {\it m\=atr\=a\/} for {\gm au} \ {\tt au} is sometimes not +written. A word like {\gm auga.nu} \ \verb+auga.nu+ may be written +alternately as {\gm a{}uga.nu} \ \verb+a{}uga.nu+. The code +\verb+{}+ breaks characters which would otherwise be parsed +as a single unit. + +\section{Example} +The following example is a poem by Bulleh Shah. + +\begin{center} +\begin{tabular}{ll} + {\gm bhai.naaM maiM katadii katadii hu.t.tii .} +& \verb+bhai.naaM maiM katadii katadii hu.t.tii .+ \\ + {\gm paRii pacchii pichavaaRe rahi ga{}ii ..} +& \verb+paRii pacchii pichavaaRe rahi ga{}ii ..+ \\ + {\gm hatth vica rahi ga{}ii ju.t.tii .} +& \verb+hatth vica rahi ga{}ii ju.t.tii .+ \\ + {\gm agge carakhaa picche piihaRaa ..} +& \verb+agge carakhaa picche piihaRaa ..+ \\ + {\gm hatth meriuM ta.md .tu.t.tii ..} +& \verb+hatth meriuM ta.md .tu.t.tii ..+ \\ +\end{tabular} +\end{center} + +\section{Another Example} + +\def\,{{\rm,}} + +\centerline{{\gm \Large \ekonkarp\ satiguru prasaadi}} +\centerline{{\gm \large suuhii mahalaa 5}} +\bigskip + +\begin{quote}\begin{quote} +{\gm jis ke sir uupari tuu.m suaamii\, so dukhu kaisaa paavai . \\ +boli na jaanai maa{}ii{}aa madi maataa\, mara.naa ciiti na aavai .. 1.. \\ +mere raamaraa{}ii\, tuu.m santaa kaa sant tere . \\ +tere sevaka kau bhau kichu naahii\, jamu nahii aavai nere .. 1.. rahaa{}u .. \\ +jo terai ra"ngi raate suaamii\, tin kaa janam mara.na dukhu naasaa . \\ +terii bakhasa na me.tai koii\, satigur kaa dilaasaa .. 2.. \\ +naamu dhiaaiini\, sukh phala paaiini\, aa.th pahar aaraadhahi . \\ +terii sara.ni tere bharavaasai\, pa~nc du"sa.t lai saadhahi .. 3.. \\ +giaanu dhiaanu kichu karamu na jaa.naa\, saar na jaa.naa terii . \\ +sabh te va.daa satiguru naanak\, jini kala raakhii merii .. 4. 10. 57.. +} +\end{quote}\end{quote} +\bigskip + +\section{Special Characters} +\begin{enumerate} +\item The Gurmukh{\=\i} character {\gm la} \ $+$ \emph{nuqta} is not +found in the `Punjabi' font. + +\item The symbol of the Sikhs, the \emph{k\=a\d{n}\d{d}\=a}, is available +in two forms. One is {\gm \smkanda{}}, which is defined as \verb+\smkanda+ +(small \emph{k\=a\d{n}\d{d}\=a}). The other is {\gm \lgkanda{}}, which +is defined as \verb+\lgkanda+ (large \emph{k\=a\d{n}\d{d}\=a}). + +\item The symbol {\it ek o\.nk\=ar} is also available in two forms. +One is {\gm \ekonkarp{}}, defined as \verb+\ekonkarp+ (the ``plain'' +\emph{ek o\.nk\=ar}). The other is {\gm \ekonkarf{}}, defined as +\verb+\ekonkarf+ (the ``fancy'' \emph{ek o\.nk\=ar}). + +\item \textbf{Vowel-bearers} are null characters which are modified +with diacritics to form the vowels. The vowel bearers are \emph{u} +{\gm \char117} for back vowels, \emph{a} {\gm \char97} for low vowels, +and \emph{i} {\gm \char101} for front vowels. Suggested input for the +vowel-bearers are {\tt `a}, {\tt `u}, and {\tt `i}. +\end{enumerate} + +%%% Character Inventory %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{table} +\begin{center} +\renewcommand{\doublerulesep}{.5cm} +\renewcommand{\arraystretch}{1.40} +\begin{tabular}{|ll|ll|ll|} +\hline +\multicolumn{6}{|c|}{\it Vowel Bearers\/} \\ +\hline + {\it back\/} & {\gm \char117} & {\it low\/} & {\gm \char97} & {\it front\/} & {\gm \char101} \\ +\hline +\end{tabular} +\hspace*{.5cm} +\begin{tabular}{|ll|ll|} +\hline +\multicolumn{4}{|c|}{\it Fricatives\/} \\ +\hline +{\tt sa} & {\gm sa} & {\tt ha} & {\gm ha} \\ +\hline +\end{tabular} +\vspace*{.5cm} \\ + +\begin{tabular}{|lll|lll|lll|lll|} +\hline +\multicolumn{12}{|c|}{\it Vowels\/} \\ +\hline +{\tt a} & {\gm a} & --- & {\tt aa} & {\gm aa} & {\gm \char65} & {\tt i} & {\gm i} & {\gm \char105} & {\tt ii} & {\gm ii} & {\gm \char73} \\ +{\tt u} & {\gm u} & {\gm \char85} & {\tt uu} & {\gm uu} & {\gm \char60} & {\tt e} & {\gm e} & {\gm \char69} & {\tt ai} & {\gm ai} & {\gm \char62} \\ +{\tt o} & {\gm o} & {\gm \char126} & {\tt au} & {\gm au} & {\gm \char79} & {\tt aM} & [\ {\gm aM}\ ] & [\ {\gm \char42}\ ] & {\tt aH} & [ {\gm aH} ] & [ {\gm \char92} ] \\ +\hline +\end{tabular} +\vspace*{.5cm} + +\begin{tabular}{|ll|ll|ll|ll|ll|} +\hline +\multicolumn{10}{|c|}{\it Occlusives\/} \\ +\hline +{\tt ka} & {\gm ka} & {\tt kha} & {\gm kha} & {\tt ga} & {\gm ga} & {\tt gha} & {\gm gha} & {\tt "na} & {\gm "na} \\ +{\tt ca} & {\gm ca} & {\tt cha} & {\gm cha} & {\tt ja} & {\gm ja} & {\tt jha} & {\gm jha} & {\tt \char`~na} & {\gm ~na} \\ +{\tt .ta} & {\gm .ta} & {\tt .tha} & {\gm .tha} & {\tt .da} & {\gm .da} & {\tt .dha} & {\gm .dha} & {\tt .na} & {\gm .na} \\ +{\tt ta} & {\gm ta} & {\tt tha} & {\gm tha} & {\tt da} & {\gm da} & {\tt dha} & {\gm dha} & {\tt na} & {\gm na} \\ +{\tt pa} & {\gm pa} & {\tt pha} & {\gm pha} & {\tt ba} & {\gm ba} & {\tt bha} & {\gm bha} & {\tt ma} & {\gm ma} \\ +\hline\hline +\multicolumn{10}{|c|}{\it Sonorants\/} \\ +\hline +{\tt ya} & {\gm ya} & {\tt ra} & {\gm ra} & {\tt la} & {\gm la} & {\tt va} & {\gm va} & {\tt Ra} & {\gm Ra} \\ +\hline +\end{tabular} +\vspace*{.5cm} + +\begin{tabular}{|ll|ll|ll|ll|ll|ll|} +\hline +\multicolumn{12}{|c|}{\it Supplementary Consonants\/} \\ +\hline +{\tt "sa} & {\gm "sa} & {\tt za} & {\gm za} & {\tt fa} & {\gm fa} & {\tt Ka} & {\gm Ka} & {\tt Ga} & {\gm Ga} & {\tt La} & --- \\ +\hline +\end{tabular} +\vspace*{.5cm} + +\begin{tabular}{|ll|ll|ll|ll|ll|} +\hline +\multicolumn{10}{|c|}{\it Numerals\/} \\ +\hline +{\tt 0} & {\gm 0} & {\tt 1} & {\gm 1} & {\tt 2} & {\gm 2} & {\tt 3} & {\gm 3} & {\tt 4} & {\gm 4} \\ +{\tt 5} & {\gm 5} & {\tt 6} & {\gm 6} & {\tt 7} & {\gm 7} & {\tt 8} & {\gm 8} & {\tt 9} & {\gm 9} \\ +\hline +\end{tabular} +\hspace*{.5cm} +\begin{tabular}{|ll|ll|ll|} +\hline +\multicolumn{6}{|c|}{\it Specials\/} \\ +\hline + {\tt .o} & {\gm .o} +& {\tt .m} & {\gm \char42} +& {\tt M} & {\gm \char58} \\ + {\tt .} & {\gm .} +& {\tt ..} & {\gm ..} +& {\tt |} & {\gm |} \\ +\hline +\end{tabular} +\end{center} +\caption{`Velthuis' scheme for Gurmukh{\=\i}} +\end{table} + + +%%% Consonant-Vowel Combinations %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\renewcommand{\arraystretch}{1.25} +\begin{table}[p] +\vspace*{-0.5in} +\hspace*{0.0in}\vbox{ +\begin{center} +\begin{tabular}{|c||c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|} +\hline + / & + {\tt a} & + {\tt aa} & + {\tt i} & + {\tt ii} & + {\tt u} & + {\tt uu} & + {\tt e} & + {\tt ai} & + {\tt o} & + {\tt au} \\ \hline \hline + + {\tt k} & +{\gm ka} & +{\gm kaa} & +{\gm ki} & +{\gm kii} & +{\gm ku} & +{\gm kuu} & +{\gm ke} & +{\gm kai} & +{\gm ko} & +{\gm kau} +\\ \hline + {\tt kh} & +{\gm kha} & +{\gm khaa} & +{\gm khi} & +{\gm khii} & +{\gm khu} & +{\gm khuu} & +{\gm khe} & +{\gm khai} & +{\gm kho} & +{\gm khau} \\ \hline + {\tt g} & +{\gm ga} & +{\gm gaa} & +{\gm gi} & +{\gm gii} & +{\gm gu} & +{\gm guu} & +{\gm ge} & +{\gm gai} & +{\gm go} & +{\gm gau} \\ \hline + {\tt gh} & +{\gm gha} & +{\gm ghaa} & +{\gm ghi} & +{\gm ghii} & +{\gm ghu} & +{\gm ghuu} & +{\gm ghe} & +{\gm ghai} & +{\gm gho} & +{\gm ghau} \\ \hline + {\tt "n} & +{\gm "na} & +{\gm "naa} & +{\gm "ni} & +{\gm "nii} & +{\gm "nu} & +{\gm "nuu} & +{\gm "ne} & +{\gm "nai} & +{\gm "no} & +{\gm "nau} \\ \hline + {\tt c} & +{\gm ca} & +{\gm caa} & +{\gm ci} & +{\gm cii} & +{\gm cu} & +{\gm cuu} & +{\gm ce} & +{\gm cai} & +{\gm co} & +{\gm cau} \\ \hline + {\tt ch} & +{\gm cha} & +{\gm chaa} & +{\gm chi} & +{\gm chii} & +{\gm chu} & +{\gm chuu} & +{\gm che} & +{\gm chai} & +{\gm cho} & +{\gm chau} \\ \hline + {\tt j} & +{\gm ja} & +{\gm jaa} & +{\gm ji} & +{\gm jii} & +{\gm ju} & +{\gm juu} & +{\gm je} & +{\gm jai} & +{\gm jo} & +{\gm jau} \\ \hline + {\tt jh} & +{\gm jha} & +{\gm jhaa} & +{\gm jhi} & +{\gm jhii} & +{\gm jhu} & +{\gm jhuu} & +{\gm jhe} & +{\gm jhai} & +{\gm jho} & +{\gm jhau} \\ \hline + {\tt \char`~n} & +{\gm ~na} & +{\gm ~naa} & +{\gm ~ni} & +{\gm ~nii} & +{\gm ~nu} & +{\gm ~nuu} & +{\gm ~ne} & +{\gm ~nai} & +{\gm ~no} & +{\gm ~nau} \\ \hline + {\tt .t} & +{\gm .ta} & +{\gm .taa} & +{\gm .ti} & +{\gm .tii} & +{\gm .tu} & +{\gm .tuu} & +{\gm .te} & +{\gm .tai} & +{\gm .to} & +{\gm .tau} \\ \hline + {\tt .th} & +{\gm .tha} & +{\gm .thaa} & +{\gm .thi} & +{\gm .thii} & +{\gm .thu} & +{\gm .thuu} & +{\gm .the} & +{\gm .thai} & +{\gm .tho} & +{\gm .thau} \\ \hline + {\tt .d} & +{\gm .da} & +{\gm .daa} & +{\gm .di} & +{\gm .dii} & +{\gm .du} & +{\gm .duu} & +{\gm .de} & +{\gm .dai} & +{\gm .do} & +{\gm .dau} \\ \hline + {\tt .dh} & +{\gm .dha} & +{\gm .dhaa} & +{\gm .dhi} & +{\gm .dhii} & +{\gm .dhu} & +{\gm .dhuu} & +{\gm .dhe} & +{\gm .dhai} & +{\gm .dho} & +{\gm .dhau} \\ \hline + {\tt .n} & +{\gm .na} & +{\gm .naa} & +{\gm .ni} & +{\gm .nii} & +{\gm .nu} & +{\gm .nuu} & +{\gm .ne} & +{\gm .nai} & +{\gm .no} & +{\gm .nau} \\ \hline + {\tt t} & +{\gm ta} & +{\gm taa} & +{\gm ti} & +{\gm tii} & +{\gm tu} & +{\gm tuu} & +{\gm te} & +{\gm tai} & +{\gm to} & +{\gm tau} \\ \hline + {\tt th} & +{\gm tha} & +{\gm thaa} & +{\gm thi} & +{\gm thii} & +{\gm thu} & +{\gm thuu} & +{\gm the} & +{\gm thai} & +{\gm tho} & +{\gm thau} \\ \hline + {\tt d} & +{\gm da} & +{\gm daa} & +{\gm di} & +{\gm dii} & +{\gm du} & +{\gm duu} & +{\gm de} & +{\gm dai} & +{\gm do} & +{\gm dau} \\ \hline + {\tt dh} & +{\gm dha} & +{\gm dhaa} & +{\gm dhi} & +{\gm dhii} & +{\gm dhu} & +{\gm dhuu} & +{\gm dhe} & +{\gm dhai} & +{\gm dho} & +{\gm dhau} \\ \hline + {\tt n} & +{\gm na} & +{\gm naa} & +{\gm ni} & +{\gm nii} & +{\gm nu} & +{\gm nuu} & +{\gm ne} & +{\gm nai} & +{\gm no} & +{\gm nau} \\ \hline + {\tt p} & +{\gm pa} & +{\gm paa} & +{\gm pi} & +{\gm pii} & +{\gm pu} & +{\gm puu} & +{\gm pe} & +{\gm pai} & +{\gm po} & +{\gm pau} \\ \hline + {\tt ph} & +{\gm pha} & +{\gm phaa} & +{\gm phi} & +{\gm phii} & +{\gm phu} & +{\gm phuu} & +{\gm phe} & +{\gm phai} & +{\gm pho} & +{\gm phau} \\ \hline + {\tt b} & +{\gm ba} & +{\gm baa} & +{\gm bi} & +{\gm bii} & +{\gm bu} & +{\gm buu} & +{\gm be} & +{\gm bai} & +{\gm bo} & +{\gm bau} \\ \hline + {\tt bh} & +{\gm bha} & +{\gm bhaa} & +{\gm bhi} & +{\gm bhii} & +{\gm bhu} & +{\gm bhuu} & +{\gm bhe} & +{\gm bhai} & +{\gm bho} & +{\gm bhau} \\ \hline + {\tt m} & +{\gm ma} & +{\gm maa} & +{\gm mi} & +{\gm mii} & +{\gm mu} & +{\gm muu} & +{\gm me} & +{\gm mai} & +{\gm mo} & +{\gm mau} \\ \hline + {\tt y} & +{\gm ya} & +{\gm yaa} & +{\gm yi} & +{\gm yii} & +{\gm yu} & +{\gm yuu} & +{\gm ye} & +{\gm yai} & +{\gm yo} & +{\gm yau} \\ \hline + {\tt r} & +{\gm ra} & +{\gm raa} & +{\gm ri} & +{\gm rii} & +{\gm ru} & +{\gm ruu} & +{\gm re} & +{\gm rai} & +{\gm ro} & +{\gm rau} \\ \hline + {\tt l} & +{\gm la} & +{\gm laa} & +{\gm li} & +{\gm lii} & +{\gm lu} & +{\gm luu} & +{\gm le} & +{\gm lai} & +{\gm lo} & +{\gm lau} \\ \hline + {\tt v} & +{\gm va} & +{\gm vaa} & +{\gm vi} & +{\gm vii} & +{\gm vu} & +{\gm vuu} & +{\gm ve} & +{\gm vai} & +{\gm vo} & +{\gm vau} \\ \hline + {\tt R} & +{\gm Ra} & +{\gm Raa} & +{\gm Ri} & +{\gm Rii} & +{\gm Ru} & +{\gm Ruu} & +{\gm Re} & +{\gm Rai} & +{\gm Ro} & +{\gm Rau} \\ \hline + {\tt "s} & +{\gm "sa} & +{\gm "saa} & +{\gm "si} & +{\gm "sii} & +{\gm "su} & +{\gm "suu} & +{\gm "se} & +{\gm "sai} & +{\gm "so} & +{\gm "sau} \\ \hline + {\tt z} & +{\gm za} & +{\gm zaa} & +{\gm zi} & +{\gm zii} & +{\gm zu} & +{\gm zuu} & +{\gm ze} & +{\gm zai} & +{\gm zo} & +{\gm zau} \\ \hline + {\tt f} & +{\gm fa} & +{\gm faa} & +{\gm fi} & +{\gm fii} & +{\gm fu} & +{\gm fuu} & +{\gm fe} & +{\gm fai} & +{\gm fo} & +{\gm fau} \\ \hline + {\tt K} & +{\gm Ka} & +{\gm Kaa} & +{\gm Ki} & +{\gm Kii} & +{\gm Ku} & +{\gm Kuu} & +{\gm Ke} & +{\gm Kai} & +{\gm Ko} & +{\gm Kau} \\ \hline + {\tt G} & +{\gm Ga} & +{\gm Gaa} & +{\gm Gi} & +{\gm Gii} & +{\gm Gu} & +{\gm Guu} & +{\gm Ge} & +{\gm Gai} & +{\gm Go} & +{\gm Gau} \\ \hline + {\tt s} & +{\gm sa} & +{\gm saa} & +{\gm si} & +{\gm sii} & +{\gm su} & +{\gm suu} & +{\gm se} & +{\gm sai} & +{\gm so} & +{\gm sau} \\ \hline + {\tt h} & +{\gm ha} & +{\gm haa} & +{\gm hi} & +{\gm hii} & +{\gm hu} & +{\gm huu} & +{\gm he} & +{\gm hai} & +{\gm ho} & +{\gm hau} \\ \hline +\end{tabular} +\vspace{0.10in} +\end{center} +} % end vbox +%\caption{Gurmukh{\=\i} Consonants with their Vowel Forms.} +\end{table} + +\end{document} diff --git a/language/gurmukhi/pandey/ot1pun.fd b/language/gurmukhi/pandey/ot1pun.fd new file mode 100644 index 0000000000..91ab6f2532 --- /dev/null +++ b/language/gurmukhi/pandey/ot1pun.fd @@ -0,0 +1,30 @@ +% LaTeX2e font description file for "Gurmukhi for TeX". +% ===================================================== +% +% This file contains the font definitions for the pun family in the OT1 +% encoding. It is used by the LaTeX New Font Selection Scheme, which is +% part of LaTeX2e. + +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesFile{ot1pun.fd}[1999/02/24 v1.0 Gurmukhi font declarations] + +\DeclareFontFamily{OT1}{pun}{} + +\DeclareFontShape{OT1}{pun}{m}{n}{ + <5><6><7> gen * pun + <8> <9> gen * pun + <10->pun10 }{} + +\DeclareFontShape{OT1}{pun}{m}{sc}{ <-> ssub * pun/m/n }{} +\DeclareFontShape{OT1}{pun}{m}{it}{ <-> ssub * pun/m/sl }{} +\DeclareFontShape{OT1}{pun}{m}{itsc}{ <-> ssub * pun/m/n }{} +\DeclareFontShape{OT1}{pun}{m}{sl}{ <-> ssub * pun/m/n }{} +\DeclareFontShape{OT1}{pun}{m}{slsc}{ <-> ssub * pun/m/sl }{} +\DeclareFontShape{OT1}{pun}{bx}{n}{ <-> ssub * pun/m/n }{} +\DeclareFontShape{OT1}{pun}{bx}{sc}{ <-> ssub * pun/m/n }{} +\DeclareFontShape{OT1}{pun}{bx}{it}{ <-> ssub * pun/m/sl }{} +\DeclareFontShape{OT1}{pun}{bx}{itsc}{ <-> ssub * pun/m/n }{} +\DeclareFontShape{OT1}{pun}{bx}{sl}{ <-> ssub * pun/m/sl }{} +\DeclareFontShape{OT1}{pun}{bx}{slsc}{ <-> ssub * pun/m/n}{} + +\endinput diff --git a/language/gurmukhi/pandey/pun10.mf b/language/gurmukhi/pandey/pun10.mf new file mode 100644 index 0000000000..eb32c5eb5b --- /dev/null +++ b/language/gurmukhi/pandey/pun10.mf @@ -0,0 +1,4459 @@ +% font Normal Punjabi at 11pt +% converted from True Type format by TTF2MF ver. 0.02 + +mode_setup; +if unknown FontSize: FontSize := 10pt#; fi +FX# := FontSize * 0.073; +FY# := FontSize * 0.073; + +def nonzerowinding = + cull currentpicture dropping (0,0); +enddef; +extra_endchar := extra_endchar & "nonzerowinding;"; +% +smoothing := 0; autorounding := 0; turningcheck := 0; +define_pixels (FX, FY); +% + + +beginchar(31, 7.5FX#, 12FY#, 0FY#); ""; +fill((0.945,0) +--(0.945,12) +--(6.57,12) +--(6.57,0) +--cycle) xscaled FX yscaled FY; +fill((1.875,0.945) +--(5.625,0.945) +--(5.625,11.07) +--(1.875,11.07) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(33, 4.289FX#, 10.949FY#, 0FY#); ""; +fill((2.912,0) +--(1.262,0) +--(1.262,1.711) +--(2.912,1.711) +--cycle) xscaled FX yscaled FY; +fill((1.262,10.949) +--(1.592,2.67) +--(2.582,2.67) +--(2.912,10.949) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(34, 5.49FX#, 10.949FY#, -6.539FY#); ""; +fill((2.251,10.949) +--(1.951,6.539) +--(1.082,6.539) +--(0.781,10.949) +--cycle) xscaled FX yscaled FY; +fill((4.262,6.539) +--(4.561,10.949) +--(3.091,10.949) +--(3.393,6.539) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(35, 6.135FX#, 10.904FY#, 0.164FY#); ""; +fill((4.23,2.295) +..controls(4.35,2.075)and(4.41,1.82) +..(4.41,1.53) +..controls(4.41,1.2)and(4.28,0.94) +..(4.02,0.75) +..controls(3.8,0.6)and(3.565,0.525) +..(3.315,0.525) +..controls(2.445,0.525)and(1.8,1.115) +..(1.38,2.295) +--cycle) xscaled FX yscaled FY; +fill((4.92,4.756) +..controls(4.92,4.466)and(4.855,4.146) +..(4.725,3.796) +..controls(4.575,3.376)and(4.39,3.101) +..(4.17,2.971) +--(1.199,2.971) +..controls(1.109,3.291)and(1.064,3.696) +..(1.064,4.186) +..controls(1.064,4.226)and(1.064,4.321) +..(1.064,4.471) +..controls(1.064,4.631)and(1.064,4.726) +..(1.064,4.756) +--cycle) xscaled FX yscaled FY; +fill((2.912,6.75) +--(4.549,6.75) +..controls(4.839,7.65)and(5.63,8.46) +..(6.922,9.18) +..controls(7.943,9.75)and(8.894,10.105) +..(9.775,10.245) +..controls(10.055,10.285)and(10.326,10.305) +..(10.586,10.305) +..controls(11.587,10.305)and(12.388,10.022) +..(12.989,9.457) +..controls(13.59,8.892)and(13.89,8.15) +..(13.89,7.23) +--(13.89,6.81) +--(14.52,6.81) +--(14.52,7.41) +..controls(14.52,8.51)and(14.13,9.38) +..(13.35,10.019) +..controls(12.63,10.609)and(11.73,10.904) +..(10.65,10.904) +..controls(10.36,10.904)and(10.07,10.879) +..(9.78,10.829) +..controls(8.85,10.679)and(7.865,10.324) +..(6.825,9.765) +..controls(5.565,9.095)and(4.64,8.315) +..(4.05,7.425) +--(2.925,7.425) +..controls(1.475,7.425)and(0.61,6.76) +..(0.33,5.43) +--(0,5.43) +--(0,4.845) +--(0.33,4.845) +..controls(0.34,4.505)and(0.395,4.015) +..(0.495,3.375) +..controls(0.615,2.655)and(0.74,2.121) +..(0.87,1.771) +..controls(1.06,1.261)and(1.365,0.821) +..(1.785,0.451) +..controls(2.265,0.041)and(2.775,-0.164) +..(3.315,-0.164) +..controls(3.895,-0.164)and(4.345,0.006) +..(4.665,0.346) +..controls(4.935,0.636)and(5.07,1.001) +..(5.07,1.441) +..controls(5.07,1.881)and(4.945,2.26) +..(4.695,2.58) +..controls(4.985,2.82)and(5.225,3.175) +..(5.415,3.645) +..controls(5.585,4.075)and(5.67,4.475) +..(5.67,4.845) +--(5.895,4.845) +--(5.895,5.43) +--(1.064,5.43) +..controls(1.145,5.85)and(1.365,6.18) +..(1.725,6.42) +..controls(2.056,6.64)and(2.451,6.75) +..(2.912,6.75) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(36, 8.4FX#, 11.971FY#, 1.59FY#); ""; +fill((1.771,3.66) +--(0.451,3.66) +..controls(0.481,2.53)and(0.764,1.668) +..(1.299,1.073) +..controls(1.834,0.478)and(2.661,0.12) +..(3.781,0) +--(3.781,-1.59) +--(4.621,-1.59) +--(4.621,0) +..controls(5.471,0.05)and(6.151,0.26) +..(6.661,0.63) +..controls(7.481,1.21)and(7.891,2.03) +..(7.891,3.09) +..controls(7.891,3.98)and(7.551,4.69) +..(6.871,5.22) +..controls(6.371,5.6)and(5.621,5.92) +..(4.621,6.18) +--(4.621,9.57) +..controls(5.161,9.53)and(5.551,9.38) +..(5.791,9.12) +..controls(6.031,8.86)and(6.221,8.4) +..(6.361,7.74) +--(7.681,7.74) +..controls(7.611,8.7)and(7.339,9.41) +..(6.864,9.87) +..controls(6.389,10.33)and(5.641,10.62) +..(4.621,10.741) +--(4.621,11.971) +--(3.781,11.971) +--(3.781,10.741) +..controls(1.781,10.531)and(0.781,9.571) +..(0.781,7.86) +..controls(0.781,6.46)and(1.781,5.5) +..(3.781,4.98) +--(3.781,1.17) +..controls(3.081,1.3)and(2.581,1.575) +..(2.281,1.995) +..controls(2.041,2.325)and(1.871,2.88) +..(1.771,3.66) +--cycle) xscaled FX yscaled FY; +fill((4.621,4.8) +..controls(5.341,4.58)and(5.836,4.335) +..(6.107,4.065) +..controls(6.377,3.795)and(6.512,3.42) +..(6.512,2.94) +..controls(6.512,2.44)and(6.347,2.027) +..(6.017,1.702) +..controls(5.686,1.377)and(5.221,1.18) +..(4.621,1.11) +--cycle) xscaled FX yscaled FY; +fill((3.781,9.6) +--(3.781,6.33) +..controls(3.192,6.54)and(2.774,6.765) +..(2.529,7.005) +..controls(2.285,7.245)and(2.162,7.56) +..(2.162,7.95) +..controls(2.162,8.39)and(2.305,8.757) +..(2.589,9.052) +..controls(2.874,9.347)and(3.272,9.53) +..(3.781,9.6) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(37, 13.529FX#, 10.859FY#, 0.119FY#); ""; +fill((7.982,2.67) +..controls(7.982,0.811)and(8.642,-0.119) +..(9.962,-0.119) +..controls(10.612,-0.119)and(11.114,0.141) +..(11.469,0.661) +..controls(11.824,1.181)and(12.002,1.921) +..(12.002,2.88) +..controls(12.002,4.7)and(11.342,5.61) +..(10.022,5.61) +..controls(8.662,5.61)and(7.982,4.63) +..(7.982,2.67) +--cycle) xscaled FX yscaled FY; +fill((8.912,2.701) +..controls(8.912,4.141)and(9.272,4.861) +..(9.992,4.861) +..controls(10.712,4.861)and(11.072,4.181) +..(11.072,2.821) +..controls(11.072,1.361)and(10.702,0.631) +..(9.962,0.631) +..controls(9.262,0.631)and(8.912,1.321) +..(8.912,2.701) +--cycle) xscaled FX yscaled FY; +fill((9.152,10.74) +--(3.332,0) +--(4.172,0) +--(10.022,10.74) +--cycle) xscaled FX yscaled FY; +fill((1.352,7.89) +..controls(1.352,6.05)and(2.012,5.13) +..(3.332,5.13) +..controls(3.972,5.13)and(4.467,5.387) +..(4.817,5.902) +..controls(5.167,6.417)and(5.342,7.15) +..(5.342,8.1) +..controls(5.342,9.939)and(4.692,10.859) +..(3.392,10.859) +..controls(2.032,10.859)and(1.352,9.869) +..(1.352,7.89) +--cycle) xscaled FX yscaled FY; +fill((2.281,7.919) +..controls(2.281,9.379)and(2.641,10.109) +..(3.362,10.109) +..controls(4.062,10.109)and(4.412,9.429) +..(4.412,8.069) +..controls(4.412,6.609)and(4.052,5.879) +..(3.332,5.879) +..controls(2.631,5.879)and(2.281,6.559) +..(2.281,7.919) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(38, 1.949FX#, 10.199FY#, -7.154FY#); ""; +fill((1.711,7.154) +--(-0.238,7.154) +--(-0.238,8.01) +--(1.711,8.01) +--cycle) xscaled FX yscaled FY; +fill((-0.988,10.019) +--(-0.838,10.199) +..controls(-0.358,9.85)and(-0.078,9.655) +..(0.002,9.615) +..controls(0.272,9.455)and(0.557,9.381) +..(0.857,9.391) +..controls(1.147,9.401)and(1.432,9.48) +..(1.712,9.63) +..controls(1.842,9.7)and(2.122,9.89) +..(2.552,10.199) +--(2.702,10.019) +..controls(2.172,9.081)and(1.557,8.611) +..(0.857,8.611) +..controls(0.157,8.611)and(-0.458,9.081) +..(-0.988,10.019) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(39, 2.91FX#, 10.949FY#, -6.539FY#); ""; +fill((1.861,6.539) +--(2.161,10.949) +--(0.721,10.949) +--(1.021,6.539) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(40, 5.16FX#, 10.949FY#, 3.301FY#); ""; +fill((3.749,10.949) +..controls(2.829,9.629)and(2.189,8.509) +..(1.829,7.589) +..controls(1.369,6.439)and(1.139,5.169) +..(1.139,3.779) +..controls(1.139,2.389)and(1.359,1.129) +..(1.799,-0.001) +..controls(2.189,-1.021)and(2.839,-2.121) +..(3.749,-3.301) +--(4.769,-3.301) +..controls(3.999,-2.041)and(3.454,-0.916) +..(3.134,0.074) +..controls(2.784,1.174)and(2.609,2.409) +..(2.609,3.779) +..controls(2.609,5.179)and(2.789,6.434) +..(3.149,7.544) +..controls(3.479,8.574)and(4.039,9.709) +..(4.829,10.949) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(41, 5.16FX#, 10.949FY#, 3.301FY#); ""; +fill((1.262,-3.301) +..controls(2.182,-1.981)and(2.822,-0.861) +..(3.182,0.059) +..controls(3.642,1.209)and(3.872,2.479) +..(3.872,3.869) +..controls(3.872,5.259)and(3.657,6.519) +..(3.227,7.649) +..controls(2.827,8.669)and(2.172,9.769) +..(1.262,10.949) +--(0.242,10.949) +..controls(1.042,9.629)and(1.592,8.504) +..(1.892,7.574) +..controls(2.232,6.504)and(2.402,5.269) +..(2.402,3.869) +..controls(2.402,2.459)and(2.222,1.199) +..(1.862,0.089) +..controls(1.542,-0.921)and(0.982,-2.051) +..(0.182,-3.301) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(42, 0.016FX#, 10.785FY#, -8.609FY#); ""; +fill((-2.743,8.609) +--(-3.343,8.609) +..controls(-3.222,8.689)and(-3.162,8.839) +..(-3.162,9.059) +..controls(-3.162,9.279)and(-3.24,9.454) +..(-3.395,9.584) +..controls(-3.55,9.714)and(-3.733,9.779) +..(-3.943,9.779) +..controls(-4.443,9.779)and(-4.693,9.539) +..(-4.693,9.059) +..controls(-4.693,8.859)and(-4.643,8.709) +..(-4.543,8.609) +--(-5.113,8.609) +..controls(-5.393,9)and(-5.533,9.35) +..(-5.533,9.66) +..controls(-5.533,10.01)and(-5.373,10.285) +..(-5.053,10.485) +..controls(-4.733,10.685)and(-4.358,10.785) +..(-3.928,10.785) +..controls(-3.498,10.785)and(-3.122,10.685) +..(-2.802,10.485) +..controls(-2.482,10.285)and(-2.322,10.01) +..(-2.322,9.66) +..controls(-2.322,9.35)and(-2.462,9) +..(-2.743,8.609) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(43, 8.91FX#, 8.789FY#, -1.711FY#); ""; +fill((0.752,4.68) +--(3.812,4.68) +--(3.812,1.711) +--(4.952,1.711) +--(4.952,4.68) +--(8.012,4.68) +--(8.012,5.85) +--(4.952,5.85) +--(4.952,8.789) +--(3.812,8.789) +--(3.812,5.85) +--(0.752,5.85) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(44, 4.289FX#, 1.74FY#, 2.221FY#); ""; +fill((1.262,1.74) +--(1.262,0) +--(2.042,0) +..controls(2.012,-0.47)and(1.944,-0.803) +..(1.839,-0.998) +..controls(1.734,-1.193)and(1.542,-1.34) +..(1.262,-1.44) +--(1.262,-2.221) +..controls(2.362,-2.011)and(2.912,-1.21) +..(2.912,0.18) +--(2.912,1.74) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(45, 4.994FX#, 4.395FY#, -3.375FY#); ""; +fill((0.57,3.375) +--(0.57,4.395) +--(4.621,4.395) +--(4.621,3.375) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(46, 4.141FX#, 8.01FY#, 0FY#); ""; +fill((1.561,8.01) +--(1.561,0) +--(2.521,0) +--(2.521,8.01) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(47, 4.756FX#, 10.949FY#, 2.189FY#); ""; +fill((2.763,10.949) +--(-0.357,-2.189) +--(0.993,-2.189) +--(4.083,10.949) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(48, 9.24FX#, 8.189FY#, 0.211FY#); ""; +fill((8.521,3.989) +..controls(8.521,2.809)and(8.102,1.814) +..(7.262,1.004) +..controls(6.422,0.194)and(5.412,-0.211) +..(4.232,-0.211) +..controls(3.032,-0.211)and(2.027,0.192) +..(1.217,0.997) +..controls(0.407,1.802)and(0.002,2.799) +..(0.002,3.989) +..controls(0.002,5.179)and(0.407,6.177) +..(1.217,6.982) +..controls(2.027,7.787)and(3.032,8.189) +..(4.232,8.189) +..controls(5.412,8.189)and(6.422,7.784) +..(7.262,6.974) +..controls(8.102,6.164)and(8.521,5.169) +..(8.521,3.989) +--cycle) xscaled FX yscaled FY; +fill((7.561,3.989) +..controls(7.561,4.899)and(7.236,5.684) +..(6.586,6.344) +..controls(5.936,7.004)and(5.161,7.334) +..(4.262,7.334) +..controls(3.362,7.334)and(2.587,7.004) +..(1.938,6.344) +..controls(1.288,5.684)and(0.963,4.899) +..(0.963,3.989) +..controls(0.963,3.079)and(1.288,2.294) +..(1.938,1.634) +..controls(2.587,0.975)and(3.362,0.645) +..(4.262,0.645) +..controls(5.161,0.645)and(5.936,0.975) +..(6.586,1.634) +..controls(7.236,2.294)and(7.561,3.079) +..(7.561,3.989) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(49, 7.199FX#, 8.221FY#, 0FY#); ""; +fill((7.112,0) +--(6.122,0) +..controls(5.461,0)and(5.041,0.205) +..(4.861,0.615) +..controls(4.761,0.845)and(4.711,1.365) +..(4.711,2.175) +--(4.711,3.795) +..controls(4.181,3.406)and(3.556,3.211) +..(2.836,3.211) +..controls(2.047,3.211)and(1.377,3.448) +..(0.827,3.923) +..controls(0.277,4.398)and(0.002,4.996) +..(0.002,5.716) +..controls(0.002,6.436)and(0.277,7.033) +..(0.827,7.508) +..controls(1.377,7.983)and(2.047,8.221) +..(2.837,8.221) +..controls(3.627,8.221)and(4.297,7.983) +..(4.847,7.508) +..controls(5.397,7.033)and(5.672,6.436) +..(5.672,5.715) +--(5.672,1.77) +..controls(5.672,1.33)and(5.804,0.935) +..(6.069,0.585) +..controls(6.334,0.235)and(6.682,0.04) +..(7.112,0) +--cycle) xscaled FX yscaled FY; +fill((4.711,5.716) +..controls(4.711,6.216)and(4.531,6.615) +..(4.171,6.915) +..controls(3.811,7.215)and(3.367,7.365) +..(2.837,7.365) +..controls(2.307,7.365)and(1.862,7.215) +..(1.503,6.915) +..controls(1.143,6.615)and(0.963,6.216) +..(0.963,5.716) +..controls(0.963,5.216)and(1.143,4.816) +..(1.503,4.516) +..controls(1.862,4.216)and(2.307,4.066) +..(2.837,4.066) +..controls(3.367,4.066)and(3.811,4.216) +..(4.171,4.516) +..controls(4.531,4.816)and(4.711,5.216) +..(4.711,5.716) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(50, 8.4FX#, 8.295FY#, -0.029FY#); ""; +fill((6.422,0.029) +--(7.592,0.029) +--(5.432,2.28) +..controls(6.042,2.5)and(6.525,2.847) +..(6.88,3.322) +..controls(7.235,3.797)and(7.412,4.345) +..(7.412,4.965) +..controls(7.412,6.065)and(6.947,6.915) +..(6.017,7.516) +..controls(5.197,8.036)and(4.217,8.271) +..(3.077,8.221) +..controls(1.957,8.171)and(0.932,7.881) +..(0.002,7.35) +--(-0.088,6.3) +..controls(0.362,6.57)and(0.912,6.81) +..(1.562,7.02) +..controls(2.272,7.25)and(2.882,7.365) +..(3.392,7.365) +..controls(4.132,7.365)and(4.825,7.153) +..(5.47,6.728) +..controls(6.115,6.303)and(6.437,5.83) +..(6.437,5.31) +..controls(6.437,4.63)and(6.307,4.117) +..(6.047,3.772) +..controls(5.787,3.427)and(5.392,3.185) +..(4.862,3.045) +..controls(3.682,3.615)and(2.712,3.9) +..(1.952,3.9) +..controls(0.652,3.9)and(0.002,3.49) +..(0.002,2.67) +..controls(0.002,2.23)and(0.222,1.87) +..(0.662,1.59) +..controls(1.042,1.35)and(1.472,1.23) +..(1.952,1.23) +..controls(2.292,1.23)and(2.732,1.285) +..(3.272,1.395) +..controls(3.872,1.515)and(4.337,1.66) +..(4.667,1.83) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(51, 7.199FX#, 8.039FY#, 0FY#); ""; +fill((0.003,6.555) +..controls(0.583,6.905)and(1.413,7.08) +..(2.493,7.08) +..controls(3.393,7.08)and(4.078,6.945) +..(4.548,6.675) +..controls(4.958,6.445)and(5.163,6.155) +..(5.163,5.805) +..controls(5.163,5.475)and(5.008,5.215) +..(4.698,5.025) +..controls(4.438,4.865)and(4.133,4.785) +..(3.783,4.785) +..controls(3.503,4.785)and(3.14,4.838) +..(2.695,4.942) +..controls(2.25,5.047)and(1.983,5.1) +..(1.893,5.1) +..controls(1.313,5.1)and(0.903,5.075) +..(0.663,5.025) +..controls(0.203,4.925)and(-0.027,4.71) +..(-0.027,4.38) +..controls(-0.027,3.84)and(0.408,3.57) +..(1.278,3.57) +..controls(1.368,3.57)and(1.488,3.57) +..(1.638,3.57) +..controls(1.778,3.581)and(1.873,3.586) +..(1.923,3.586) +..controls(2.063,3.586)and(2.408,3.631) +..(2.958,3.72) +..controls(3.508,3.809)and(3.923,3.854) +..(4.203,3.854) +..controls(4.423,3.854)and(4.603,3.754) +..(4.743,3.554) +..controls(4.883,3.354)and(4.953,3.114) +..(4.953,2.834) +..controls(4.953,2.204)and(4.673,1.769) +..(4.113,1.529) +..controls(3.953,1.569)and(3.448,1.72) +..(2.598,1.98) +..controls(2.198,2.1)and(1.863,2.16) +..(1.593,2.16) +..controls(0.533,2.16)and(0.003,1.99) +..(0.003,1.65) +..controls(0.003,1.24)and(0.328,0.935) +..(0.978,0.735) +..controls(1.488,0.565)and(2.093,0.48) +..(2.793,0.48) +..controls(2.833,0.48)and(3.078,0.47) +..(3.528,0.45) +..controls(3.868,0.43)and(4.113,0.43) +..(4.263,0.45) +--(4.863,0) +--(6.363,0) +--(5.103,1.05) +..controls(5.683,1.54)and(5.973,2.1) +..(5.973,2.73) +..controls(5.973,3.16)and(5.833,3.59) +..(5.553,4.02) +..controls(5.913,4.569)and(6.093,5.134) +..(6.093,5.714) +..controls(6.093,6.384)and(5.833,6.919) +..(5.313,7.319) +..controls(4.693,7.799)and(3.753,8.039) +..(2.493,8.039) +..controls(1.493,8.039)and(0.663,7.889) +..(0.003,7.589) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(52, 7.02FX#, 8.01FY#, 0FY#); ""; +fill((2.822,0) +--(3.482,0) +..controls(4.162,0)and(4.742,0.215) +..(5.222,0.645) +..controls(5.702,1.075)and(5.942,1.61) +..(5.942,2.25) +..controls(5.942,2.93)and(5.662,3.47) +..(5.102,3.87) +..controls(5.902,4.36)and(6.302,5) +..(6.302,5.79) +..controls(6.302,6.44)and(6.077,6.972) +..(5.627,7.387) +..controls(5.177,7.802)and(4.572,8.01) +..(3.813,8.01) +--(3.813,7.154) +..controls(4.212,7.134)and(4.552,7.024) +..(4.832,6.824) +..controls(5.172,6.564)and(5.342,6.199) +..(5.342,5.729) +..controls(5.342,5.389)and(5.157,5.074) +..(4.787,4.784) +..controls(4.357,4.454)and(3.812,4.289) +..(3.152,4.289) +..controls(2.473,4.289)and(1.923,4.454) +..(1.503,4.784) +..controls(1.143,5.064)and(0.963,5.379) +..(0.963,5.729) +..controls(0.963,6.199)and(1.138,6.564) +..(1.488,6.824) +..controls(1.758,7.024)and(2.092,7.134) +..(2.492,7.154) +--(2.492,8.01) +..controls(1.732,8.01)and(1.127,7.802) +..(0.677,7.387) +..controls(0.227,6.972)and(0.002,6.44) +..(0.002,5.79) +..controls(0.002,5)and(0.402,4.36) +..(1.202,3.87) +..controls(0.642,3.47)and(0.362,2.93) +..(0.362,2.25) +..controls(0.362,1.62)and(0.607,1.087) +..(1.097,0.652) +..controls(1.587,0.217)and(2.162,0) +..(2.822,0) +--cycle) xscaled FX yscaled FY; +fill((1.322,2.251) +..controls(1.322,2.611)and(1.497,2.898) +..(1.847,3.113) +..controls(2.197,3.328)and(2.632,3.436) +..(3.152,3.436) +..controls(3.672,3.436)and(4.107,3.328) +..(4.457,3.113) +..controls(4.807,2.898)and(4.982,2.611) +..(4.982,2.251) +..controls(4.982,1.79)and(4.782,1.43) +..(4.382,1.17) +..controls(4.042,0.96)and(3.632,0.855) +..(3.152,0.855) +..controls(2.672,0.855)and(2.262,0.96) +..(1.922,1.17) +..controls(1.522,1.43)and(1.322,1.79) +..(1.322,2.251) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(53, 7.381FX#, 8.01FY#, 0FY#); ""; +fill((-0.117,8.01) +..controls(0.223,7.23)and(0.393,6.485) +..(0.393,5.775) +..controls(0.393,5.175)and(0.248,4.4) +..(-0.042,3.45) +..controls(0.268,2.93)and(0.758,2.525) +..(1.428,2.235) +..controls(2.028,1.985)and(2.678,1.86) +..(3.378,1.86) +..controls(4.268,1.86)and(4.903,2.04) +..(5.283,2.4) +--(5.283,0) +--(6.243,0) +--(6.243,8.01) +--(5.283,8.01) +--(5.283,3.705) +..controls(5.283,3.455)and(5.068,3.227) +..(4.638,3.022) +..controls(4.208,2.817)and(3.718,2.715) +..(3.168,2.715) +..controls(2.248,2.715)and(1.533,3.005) +..(1.023,3.585) +..controls(1.233,4.295)and(1.338,5) +..(1.338,5.7) +..controls(1.338,6.55)and(1.183,7.32) +..(0.873,8.01) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(54, 7.711FX#, 10.545FY#, 0FY#); ""; +fill((2.403,0) +--(6.753,0) +--(6.753,0.855) +--(2.583,0.855) +..controls(2.193,0.855)and(1.883,0.96) +..(1.653,1.17) +..controls(1.463,1.36)and(1.368,1.595) +..(1.368,1.875) +..controls(1.368,2.135)and(1.461,2.362) +..(1.646,2.557) +..controls(1.831,2.752)and(2.083,2.85) +..(2.403,2.85) +..controls(2.713,2.85)and(3.231,2.805) +..(3.956,2.715) +..controls(4.681,2.625)and(5.143,2.58) +..(5.343,2.58) +..controls(6.133,2.58)and(6.528,2.78) +..(6.528,3.18) +..controls(6.528,3.41)and(6.386,3.628) +..(6.101,3.833) +..controls(5.816,4.038)and(5.473,4.141) +..(5.073,4.141) +..controls(4.813,4.141)and(4.373,4.086) +..(3.753,3.976) +..controls(3.133,3.866)and(2.733,3.811) +..(2.553,3.811) +..controls(2.053,3.811)and(1.663,3.916) +..(1.383,4.126) +..controls(1.103,4.335)and(0.963,4.59) +..(0.963,4.89) +..controls(0.963,5.25)and(1.153,5.555) +..(1.533,5.805) +..controls(1.963,6.095)and(2.543,6.24) +..(3.273,6.24) +..controls(3.653,6.24)and(4.108,6.145) +..(4.638,5.955) +..controls(5.168,5.765)and(5.513,5.67) +..(5.673,5.67) +..controls(6.053,5.67)and(6.243,5.85) +..(6.243,6.21) +..controls(6.243,6.47)and(6.118,6.695) +..(5.868,6.885) +..controls(5.568,7.115)and(5.163,7.23) +..(4.653,7.23) +..controls(4.093,7.61)and(3.813,8.065) +..(3.813,8.595) +..controls(3.813,9.295)and(4.383,9.645) +..(5.523,9.645) +..controls(5.583,9.645)and(5.706,9.64) +..(5.891,9.63) +..controls(6.076,9.62)and(6.223,9.615) +..(6.333,9.615) +--(6.333,10.5) +..controls(5.633,10.53)and(5.028,10.495) +..(4.518,10.395) +..controls(3.318,10.165)and(2.718,9.645) +..(2.718,8.835) +..controls(2.718,8.385)and(2.913,7.85) +..(3.303,7.23) +..controls(2.133,7.09)and(1.258,6.81) +..(0.678,6.39) +..controls(0.188,6.03)and(-0.057,5.6) +..(-0.057,5.1) +..controls(-0.057,4.73)and(0.071,4.383) +..(0.326,4.058) +..controls(0.581,3.733)and(0.893,3.5) +..(1.263,3.36) +..controls(0.693,3.05)and(0.408,2.535) +..(0.408,1.815) +..controls(0.408,1.325)and(0.568,0.91) +..(0.888,0.57) +..controls(1.258,0.19)and(1.763,0) +..(2.403,0) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(55, 8.07FX#, 7.83FY#, 0FY#); ""; +fill((1.712,4.35) +--(2.672,4.35) +..controls(2.582,4.66)and(2.537,4.95) +..(2.537,5.22) +..controls(2.537,5.79)and(2.727,6.235) +..(3.107,6.555) +..controls(3.437,6.845)and(3.857,6.99) +..(4.367,6.99) +..controls(4.897,6.99)and(5.352,6.83) +..(5.731,6.51) +..controls(6.151,6.16)and(6.361,5.695) +..(6.361,5.115) +..controls(6.361,4.855)and(6.316,4.58) +..(6.226,4.29) +..controls(5.916,3.29)and(5.186,2.468) +..(4.037,1.823) +..controls(2.887,1.178)and(1.542,0.855) +..(0.002,0.855) +--(0.002,0) +..controls(1.832,0)and(3.404,0.373) +..(4.719,1.118) +..controls(6.034,1.863)and(6.862,2.89) +..(7.202,4.2) +..controls(7.292,4.53)and(7.337,4.85) +..(7.337,5.16) +..controls(7.337,6)and(7.027,6.665) +..(6.407,7.155) +..controls(5.847,7.605)and(5.167,7.83) +..(4.367,7.83) +..controls(3.597,7.83)and(2.952,7.625) +..(2.432,7.215) +..controls(1.852,6.755)and(1.562,6.13) +..(1.562,5.34) +..controls(1.562,5.03)and(1.612,4.7) +..(1.712,4.35) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(56, 8.58FX#, 8.01FY#, 0.061FY#); ""; +fill((7.862,6.69) +--(2.162,6.69) +--(2.162,8.01) +..controls(1.272,8.01)and(0.689,7.87) +..(0.414,7.59) +..controls(0.139,7.31)and(0.002,6.725) +..(0.002,5.835) +--(1.202,5.835) +..controls(1.202,3.815)and(1.582,2.37) +..(2.342,1.5) +..controls(3.252,0.46)and(4.862,-0.061) +..(7.172,-0.061) +--(7.862,-0.061) +--(7.862,0.825) +--(7.172,0.825) +..controls(5.192,0.825)and(3.842,1.225) +..(3.122,2.025) +..controls(2.482,2.735)and(2.162,4.005) +..(2.162,5.835) +--(7.862,5.835) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(57, 8.4FX#, 10.936FY#, 0.061FY#); ""; +fill((7.651,5.985) +..controls(6.911,6.315)and(6.346,6.73) +..(5.956,7.23) +..controls(5.596,7.68)and(5.416,8.135) +..(5.416,8.595) +..controls(5.416,9.035)and(5.576,9.398) +..(5.896,9.682) +..controls(6.216,9.967)and(6.646,10.11) +..(7.186,10.11) +..controls(7.356,10.11)and(7.531,10.095) +..(7.711,10.065) +--(7.711,10.921) +..controls(7.551,10.931)and(7.401,10.936) +..(7.261,10.936) +..controls(6.301,10.936)and(5.561,10.706) +..(5.041,10.245) +..controls(4.591,9.845)and(4.366,9.315) +..(4.366,8.655) +..controls(4.366,7.655)and(4.801,6.785) +..(5.671,6.045) +--(2.101,6.045) +--(2.101,7.125) +..controls(1.301,7.125)and(0.761,7.005) +..(0.481,6.765) +..controls(0.201,6.525)and(0.061,6.005) +..(0.061,5.205) +--(1.141,5.205) +..controls(1.141,3.445)and(1.466,2.18) +..(2.116,1.41) +..controls(2.946,0.43)and(4.471,-0.061) +..(6.691,-0.061) +..controls(6.991,-0.061)and(7.311,-0.051) +..(7.651,-0.031) +--(7.651,0.824) +..controls(5.961,0.824)and(4.701,0.994) +..(3.871,1.334) +..controls(3.111,1.634)and(2.611,2.124) +..(2.371,2.805) +..controls(2.191,3.295)and(2.101,4.095) +..(2.101,5.205) +--(7.651,5.205) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(58, 2.01FX#, 9.705FY#, -7.154FY#); ""; +fill((1.473,9.135) +..controls(1.473,8.975)and(1.418,8.84) +..(1.308,8.73) +..controls(1.198,8.619)and(1.062,8.564) +..(0.902,8.564) +..controls(0.742,8.564)and(0.607,8.619) +..(0.497,8.73) +..controls(0.387,8.84)and(0.332,8.975) +..(0.332,9.135) +..controls(0.332,9.295)and(0.387,9.43) +..(0.497,9.54) +..controls(0.607,9.65)and(0.742,9.705) +..(0.902,9.705) +..controls(1.062,9.705)and(1.198,9.65) +..(1.308,9.54) +..controls(1.418,9.43)and(1.473,9.295) +..(1.473,9.135) +--cycle) xscaled FX yscaled FY; +fill((1.803,7.154) +--(0.002,7.154) +--(0.002,8.01) +--(1.803,8.01) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(59, 2.58FX#, 9.705FY#, -2.91FY#); ""; +fill((1.862,7.155) +--(2.342,7.155) +--(2.342,8.01) +--(0.002,8.01) +--(0.002,7.155) +--(0.902,7.155) +--(0.902,2.91) +--(1.862,2.91) +--cycle) xscaled FX yscaled FY; +fill((1.951,9.135) +..controls(1.951,8.975)and(1.896,8.84) +..(1.786,8.73) +..controls(1.676,8.619)and(1.541,8.564) +..(1.381,8.564) +..controls(1.221,8.564)and(1.086,8.619) +..(0.976,8.73) +..controls(0.866,8.84)and(0.811,8.975) +..(0.811,9.135) +..controls(0.811,9.295)and(0.866,9.43) +..(0.976,9.54) +..controls(1.086,9.65)and(1.221,9.705) +..(1.381,9.705) +..controls(1.541,9.705)and(1.676,9.65) +..(1.786,9.54) +..controls(1.896,9.43)and(1.951,9.295) +..(1.951,9.135) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(60, 0.016FX#, -1.23FY#, 3.645FY#); ""; +fill((-1.617,-1.23) +..controls(-1.767,-1.23)and(-2.122,-1.245) +..(-2.682,-1.275) +..controls(-3.242,-1.305)and(-3.677,-1.32) +..(-3.987,-1.32) +..controls(-5.027,-1.32)and(-5.767,-1.29) +..(-6.207,-1.23) +--(-6.207,-2.07) +..controls(-5.237,-2.111)and(-4.497,-2.131) +..(-3.987,-2.131) +..controls(-3.477,-2.131)and(-2.687,-2.111) +..(-1.617,-2.07) +--cycle) xscaled FX yscaled FY; +fill((-1.617,-2.746) +..controls(-1.767,-2.746)and(-2.122,-2.761) +..(-2.682,-2.791) +..controls(-3.242,-2.821)and(-3.677,-2.836) +..(-3.987,-2.836) +..controls(-5.027,-2.836)and(-5.767,-2.806) +..(-6.207,-2.746) +--(-6.207,-3.585) +..controls(-5.237,-3.625)and(-4.497,-3.645) +..(-3.987,-3.645) +..controls(-3.477,-3.645)and(-2.687,-3.625) +..(-1.617,-3.585) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(61, 8.91FX#, 6.93FY#, -3.6FY#); ""; +fill((8.1,5.76) +--(0.84,5.76) +--(0.84,6.93) +--(8.1,6.93) +--cycle) xscaled FX yscaled FY; +fill((8.1,3.6) +--(0.84,3.6) +--(0.84,4.77) +--(8.1,4.77) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(62, 0.016FX#, 11.686FY#, -8.16FY#); ""; +fill((-0.717,8.16) +..controls(-1.747,8.799)and(-2.807,9.119) +..(-3.897,9.119) +..controls(-4.027,9.119)and(-4.224,9.102) +..(-4.489,9.067) +..controls(-4.754,9.033)and(-4.957,9.016) +..(-5.097,9.016) +..controls(-5.457,9.016)and(-5.637,9.155) +..(-5.637,9.435) +..controls(-5.637,9.804)and(-5.287,9.988) +..(-4.587,9.988) +..controls(-4.037,9.988)and(-3.437,9.873) +..(-2.787,9.644) +..controls(-2.097,9.394)and(-1.547,9.08) +..(-1.137,8.7) +..controls(-1.307,9.12)and(-1.672,9.53) +..(-2.232,9.93) +..controls(-3.042,10.5)and(-4.012,10.77) +..(-5.142,10.74) +..controls(-5.632,10.73)and(-5.877,10.855) +..(-5.877,11.115) +..controls(-5.877,11.255)and(-5.797,11.385) +..(-5.637,11.505) +..controls(-5.477,11.625)and(-5.287,11.68) +..(-5.067,11.67) +..controls(-4.247,11.65)and(-3.367,11.295) +..(-2.427,10.605) +..controls(-1.417,9.865)and(-0.847,9.05) +..(-0.717,8.16) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(63, 8.4FX#, 11.16FY#, 0FY#); ""; +fill((3.181,1.711) +--(3.181,0) +--(4.831,0) +--(4.831,1.711) +--cycle) xscaled FX yscaled FY; +fill((4.711,2.881) +..controls(4.741,3.581)and(4.846,4.096) +..(5.026,4.426) +..controls(5.166,4.696)and(5.509,5.078) +..(6.054,5.573) +..controls(6.599,6.068)and(6.976,6.508) +..(7.186,6.893) +..controls(7.396,7.278)and(7.501,7.73) +..(7.501,8.25) +..controls(7.501,9.14)and(7.206,9.848) +..(6.616,10.373) +..controls(6.026,10.898)and(5.231,11.16) +..(4.231,11.16) +..controls(3.181,11.16)and(2.361,10.843) +..(1.771,10.208) +..controls(1.181,9.573)and(0.881,8.68) +..(0.871,7.53) +--(2.281,7.53) +..controls(2.391,9.11)and(3.041,9.9) +..(4.231,9.9) +..controls(4.781,9.9)and(5.219,9.748) +..(5.544,9.443) +..controls(5.869,9.138)and(6.031,8.72) +..(6.031,8.19) +..controls(6.031,7.74)and(5.846,7.295) +..(5.476,6.855) +..controls(5.476,6.845)and(5.111,6.47) +..(4.381,5.73) +..controls(3.931,5.271)and(3.644,4.856) +..(3.519,4.486) +..controls(3.394,4.116)and(3.321,3.581) +..(3.301,2.881) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(64, 9.6FX#, 11.43FY#, 0.27FY#); ""; +fill((3.934,7.5) +..controls(3.934,7.08)and(3.824,6.52) +..(3.603,5.82) +..controls(3.273,5.95)and(3.001,6.165) +..(2.786,6.465) +..controls(2.57,6.765)and(2.463,7.11) +..(2.463,7.5) +..controls(2.463,8.41)and(2.893,8.99) +..(3.754,9.24) +..controls(3.874,8.61)and(3.934,8.03) +..(3.934,7.5) +--cycle) xscaled FX yscaled FY; +fill((4.503,11.43) +--(3.153,10.74) +..controls(3.333,10.5)and(3.473,10.23) +..(3.573,9.93) +..controls(3.023,9.81)and(2.575,9.522) +..(2.23,9.067) +..controls(1.885,8.612)and(1.713,8.09) +..(1.713,7.5) +..controls(1.713,6.97)and(1.883,6.48) +..(2.223,6.03) +..controls(2.533,5.61)and(2.913,5.32) +..(3.363,5.16) +..controls(3.313,5.02)and(3.243,4.83) +..(3.153,4.59) +--(4.264,4.59) +--(4.264,3.93) +..controls(3.224,4.2)and(2.454,4.555) +..(1.953,4.995) +..controls(1.333,5.535)and(1.023,6.25) +..(1.023,7.14) +..controls(1.023,7.65)and(1.163,8.205) +..(1.443,8.805) +..controls(1.743,9.455)and(2.113,9.93) +..(2.553,10.23) +..controls(1.793,9.85)and(1.183,9.365) +..(0.723,8.775) +..controls(0.223,8.135)and(-0.027,7.46) +..(-0.027,6.75) +..controls(-0.027,6.06)and(0.073,5.365) +..(0.273,4.665) +..controls(0.463,4.005)and(0.833,3.03) +..(1.383,1.74) +..controls(1.603,2.7)and(2.333,3.2) +..(3.573,3.24) +..controls(3.263,2.98)and(2.988,2.665) +..(2.748,2.295) +..controls(2.508,1.925)and(2.373,1.62) +..(2.343,1.38) +..controls(2.143,1.28)and(2.043,1.14) +..(2.043,0.96) +..controls(2.043,0.84)and(2.098,0.725) +..(2.208,0.615) +..controls(2.318,0.505)and(2.433,0.45) +..(2.553,0.45) +..controls(2.673,0.45)and(2.788,0.505) +..(2.898,0.615) +..controls(3.008,0.725)and(3.063,0.84) +..(3.063,0.96) +..controls(3.063,1.1)and(2.993,1.22) +..(2.854,1.32) +..controls(2.904,1.8)and(3.374,2.32) +..(4.264,2.88) +--(4.264,1.11) +..controls(3.883,0.97)and(3.693,0.72) +..(3.693,0.36) +..controls(3.693,-0.06)and(3.963,-0.27) +..(4.503,-0.27) +..controls(5.043,-0.27)and(5.313,-0.06) +..(5.313,0.36) +..controls(5.313,0.72)and(5.122,0.97) +..(4.742,1.11) +--(4.742,2.88) +..controls(5.632,2.32)and(6.102,1.8) +..(6.152,1.32) +..controls(6.013,1.22)and(5.943,1.1) +..(5.943,0.96) +..controls(5.943,0.84)and(5.998,0.725) +..(6.108,0.615) +..controls(6.218,0.505)and(6.333,0.45) +..(6.453,0.45) +..controls(6.573,0.45)and(6.688,0.505) +..(6.798,0.615) +..controls(6.908,0.725)and(6.963,0.84) +..(6.963,0.96) +..controls(6.963,1.14)and(6.863,1.28) +..(6.663,1.38) +..controls(6.633,1.62)and(6.498,1.925) +..(6.258,2.295) +..controls(6.018,2.665)and(5.743,2.98) +..(5.433,3.24) +..controls(6.673,3.2)and(7.403,2.7) +..(7.623,1.74) +..controls(8.173,3.02)and(8.545,4.003) +..(8.74,4.688) +..controls(8.935,5.372)and(9.033,6.06) +..(9.033,6.75) +..controls(9.033,7.46)and(8.783,8.135) +..(8.283,8.775) +..controls(7.823,9.365)and(7.213,9.85) +..(6.453,10.23) +..controls(6.893,9.93)and(7.263,9.455) +..(7.563,8.805) +..controls(7.842,8.205)and(7.982,7.65) +..(7.982,7.14) +..controls(7.982,6.25)and(7.677,5.535) +..(7.067,4.995) +..controls(6.557,4.555)and(5.782,4.2) +..(4.742,3.93) +--(4.742,4.59) +--(5.853,4.59) +..controls(5.813,4.71)and(5.743,4.9) +..(5.643,5.16) +..controls(6.093,5.32)and(6.48,5.617) +..(6.805,6.052) +..controls(7.13,6.487)and(7.293,6.97) +..(7.293,7.5) +..controls(7.293,8.09)and(7.12,8.612) +..(6.775,9.067) +..controls(6.43,9.522)and(5.983,9.81) +..(5.433,9.93) +..controls(5.533,10.23)and(5.673,10.5) +..(5.853,10.74) +--cycle) xscaled FX yscaled FY; +fill((5.402,5.82) +..controls(5.182,6.52)and(5.072,7.08) +..(5.072,7.5) +..controls(5.072,8.03)and(5.132,8.61) +..(5.252,9.24) +..controls(6.113,8.99)and(6.543,8.41) +..(6.543,7.5) +..controls(6.543,7.11)and(6.435,6.765) +..(6.22,6.465) +..controls(6.005,6.165)and(5.733,5.95) +..(5.402,5.82) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(65, 2.58FX#, 8.01FY#, -2.91FY#); ""; +fill((1.862,7.155) +--(2.342,7.155) +--(2.342,8.01) +--(0.002,8.01) +--(0.002,7.155) +--(0.902,7.155) +--(0.902,2.91) +--(1.862,2.91) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(66, 7.74FX#, 8.01FY#, 0.135FY#); ""; +fill((4.922,4.126) +..controls(4.872,3.886)and(4.632,3.686) +..(4.202,3.526) +..controls(3.822,3.376)and(3.417,3.301) +..(2.987,3.301) +..controls(2.747,3.301)and(2.557,3.331) +..(2.417,3.391) +..controls(1.937,3.581)and(1.697,3.826) +..(1.697,4.126) +..controls(1.697,4.286)and(1.767,4.433) +..(1.907,4.568) +..controls(2.047,4.703)and(2.207,4.791) +..(2.387,4.831) +..controls(2.697,4.901)and(2.972,4.936) +..(3.212,4.936) +..controls(3.892,4.936)and(4.462,4.666) +..(4.922,4.126) +--cycle) xscaled FX yscaled FY; +fill((0.482,1.92) +..controls(0.482,1.91)and(0.449,1.88) +..(0.384,1.83) +..controls(0.319,1.78)and(0.292,1.75) +..(0.302,1.74) +..controls(0.682,1.13)and(1.212,0.66) +..(1.892,0.33) +..controls(2.522,0.02)and(3.187,-0.135) +..(3.887,-0.135) +..controls(4.687,-0.135)and(5.347,0.055) +..(5.867,0.435) +..controls(6.437,0.845)and(6.722,1.405) +..(6.722,2.115) +..controls(6.722,2.745)and(6.492,3.44) +..(6.032,4.2) +..controls(6.292,4.64)and(6.472,5.045) +..(6.572,5.415) +..controls(6.692,5.864)and(6.752,6.444) +..(6.752,7.154) +--(7.502,7.154) +--(7.502,8.01) +--(0.002,8.01) +--(0.002,7.154) +--(5.792,7.154) +..controls(5.812,6.994)and(5.822,6.829) +..(5.822,6.659) +..controls(5.822,5.88)and(5.682,5.35) +..(5.402,5.07) +..controls(4.862,5.539)and(4.117,5.773) +..(3.167,5.773) +..controls(2.517,5.773)and(1.982,5.638) +..(1.562,5.369) +..controls(1.082,5.069)and(0.842,4.639) +..(0.842,4.079) +..controls(0.842,3.519)and(1.072,3.094) +..(1.532,2.805) +..controls(1.922,2.555)and(2.432,2.43) +..(3.062,2.43) +..controls(3.572,2.43)and(4.059,2.512) +..(4.524,2.677) +..controls(4.989,2.842)and(5.312,3.05) +..(5.492,3.3) +..controls(5.752,2.97)and(5.882,2.635) +..(5.882,2.295) +..controls(5.882,1.855)and(5.682,1.477) +..(5.282,1.162) +..controls(4.882,0.847)and(4.407,0.689) +..(3.857,0.689) +..controls(3.407,0.689)and(2.812,0.825) +..(2.072,1.095) +..controls(1.332,1.365)and(0.802,1.64) +..(0.482,1.92) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(67, 7.77FX#, 8.01FY#, 0.195FY#); ""; +fill((7.532,7.154) +--(7.172,7.154) +--(7.172,3.15) +..controls(7.172,2.12)and(6.927,1.31) +..(6.437,0.72) +..controls(5.917,0.11)and(5.182,-0.195) +..(4.232,-0.195) +..controls(3.352,-0.195)and(2.632,0.23) +..(2.072,1.079) +..controls(1.572,1.829)and(1.322,2.694) +..(1.322,3.674) +--(0.482,3.674) +..controls(0.482,4.364)and(0.612,4.824) +..(0.873,5.054) +..controls(1.103,5.264)and(1.573,5.369) +..(2.283,5.369) +--(2.283,4.529) +--(6.211,4.529) +--(6.211,7.154) +--(0.002,7.154) +--(0.002,8.01) +--(7.532,8.01) +--cycle) xscaled FX yscaled FY; +fill((6.211,3.674) +--(2.283,3.674) +..controls(2.223,2.994)and(2.378,2.334) +..(2.746,1.695) +..controls(3.154,1.005)and(3.647,0.66) +..(4.225,0.66) +..controls(5.549,0.66)and(6.211,1.5) +..(6.211,3.179) +..controls(6.211,3.339)and(6.211,3.504) +..(6.211,3.674) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(68, 7.859FX#, 8.01FY#, 0.211FY#); ""; +fill((5.087,0.855) +..controls(4.817,0.995)and(4.417,1.122) +..(3.887,1.238) +..controls(3.357,1.353)and(2.882,1.41) +..(2.462,1.41) +..controls(1.822,1.41)and(1.502,1.28) +..(1.502,1.02) +..controls(1.502,0.74)and(2.067,0.6) +..(3.197,0.6) +..controls(3.917,0.6)and(4.547,0.685) +..(5.087,0.855) +--cycle) xscaled FX yscaled FY; +fill((0.002,7.154) +--(0.002,8.01) +--(7.622,8.01) +--(7.622,7.154) +--(6.872,7.154) +..controls(6.872,5.754)and(6.622,4.859) +..(6.122,4.469) +..controls(6.802,3.629)and(7.143,2.854) +..(7.143,2.144) +..controls(7.143,1.764)and(7.043,1.419) +..(6.843,1.109) +..controls(6.282,0.229)and(5.122,-0.211) +..(3.362,-0.211) +..controls(1.522,-0.211)and(0.602,0.229) +..(0.602,1.11) +..controls(0.602,1.48)and(0.817,1.77) +..(1.247,1.98) +..controls(1.627,2.16)and(2.122,2.25) +..(2.732,2.25) +..controls(3.352,2.25)and(3.942,2.16) +..(4.503,1.98) +..controls(5.103,1.8)and(5.523,1.56) +..(5.763,1.26) +..controls(6.033,1.45)and(6.168,1.73) +..(6.168,2.1) +..controls(6.168,2.47)and(6.023,2.83) +..(5.733,3.18) +..controls(5.383,3.61)and(4.938,3.8) +..(4.398,3.75) +..controls(4.308,3.74)and(3.958,3.695) +..(3.347,3.615) +..controls(2.877,3.555)and(2.502,3.525) +..(2.222,3.525) +..controls(1.462,3.525)and(1.082,3.75) +..(1.082,4.201) +..controls(1.082,4.661)and(1.437,4.891) +..(2.147,4.891) +..controls(2.397,4.891)and(2.777,4.855) +..(3.287,4.785) +..controls(3.797,4.715)and(4.137,4.68) +..(4.307,4.68) +..controls(4.807,4.68)and(5.207,4.965) +..(5.507,5.535) +..controls(5.757,6.014)and(5.882,6.554) +..(5.882,7.154) +..controls(5.882,7.134)and(3.922,7.134) +..(0.002,7.154) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(69, 0.016FX#, 10.875FY#, -8.221FY#); ""; +fill((-0.627,8.221) +..controls(-2.207,9.291)and(-3.572,9.826) +..(-4.722,9.826) +..controls(-5.002,9.826)and(-5.25,9.881) +..(-5.465,9.991) +..controls(-5.68,10.101)and(-5.787,10.221) +..(-5.787,10.351) +..controls(-5.787,10.591)and(-5.432,10.741) +..(-4.722,10.801) +..controls(-4.102,10.851)and(-3.427,10.661) +..(-2.697,10.231) +..controls(-1.907,9.751)and(-1.217,9.081) +..(-0.627,8.221) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(70, 7.59FX#, 8.01FY#, 0.164FY#); ""; +fill((7.352,7.154) +--(7.021,7.154) +--(7.021,4.529) +--(2.875,4.529) +..controls(2.04,4.529)and(1.617,4.179) +..(1.607,3.48) +..controls(1.607,2.91)and(1.911,2.31) +..(2.518,1.68) +..controls(2.707,2.13)and(3.05,2.485) +..(3.547,2.745) +..controls(3.995,2.975)and(4.492,3.09) +..(5.039,3.09) +..controls(5.626,3.09)and(6.113,2.96) +..(6.501,2.7) +..controls(6.929,2.41)and(7.143,2.02) +..(7.143,1.53) +..controls(7.143,1.021)and(6.919,0.611) +..(6.471,0.301) +..controls(6.023,-0.009)and(5.47,-0.164) +..(4.813,-0.164) +..controls(4.166,-0.164)and(3.534,-0.014) +..(2.917,0.286) +..controls(2.24,0.616)and(1.668,1.101) +..(1.2,1.741) +..controls(0.822,2.26)and(0.633,2.845) +..(0.633,3.495) +..controls(0.633,4.045)and(0.792,4.485) +..(1.11,4.815) +..controls(1.498,5.195)and(2.084,5.385) +..(2.87,5.385) +--(6.061,5.385) +--(6.061,7.154) +--(0.002,7.154) +--(0.002,8.01) +--(7.352,8.01) +--cycle) xscaled FX yscaled FY; +fill((6.332,1.53) +..controls(6.332,2.01)and(5.902,2.25) +..(5.042,2.25) +..controls(4.622,2.25)and(4.257,2.175) +..(3.947,2.025) +..controls(3.597,1.865)and(3.422,1.66) +..(3.422,1.41) +..controls(3.422,1.18)and(3.567,0.998) +..(3.857,0.863) +..controls(4.147,0.728)and(4.487,0.66) +..(4.877,0.66) +..controls(5.267,0.66)and(5.607,0.735) +..(5.897,0.885) +..controls(6.187,1.035)and(6.332,1.25) +..(6.332,1.53) +--cycle) xscaled FX yscaled FY; +fill((1.128,0.9) +..controls(1.268,0.9)and(1.385,0.853) +..(1.481,0.758) +..controls(1.576,0.663)and(1.623,0.545) +..(1.623,0.405) +..controls(1.623,0.275)and(1.576,0.16) +..(1.481,0.06) +..controls(1.385,-0.04)and(1.268,-0.09) +..(1.128,-0.09) +..controls(0.998,-0.09)and(0.883,-0.04) +..(0.783,0.06) +..controls(0.683,0.16)and(0.633,0.275) +..(0.633,0.405) +..controls(0.633,0.545)and(0.683,0.663) +..(0.783,0.758) +..controls(0.883,0.853)and(0.998,0.9) +..(1.128,0.9) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(71, 10.35FX#, 8.01FY#, 0FY#); ""; +fill((10.111,7.154) +--(9.361,7.154) +--(9.361,0) +--(8.4,0) +--(8.4,1.02) +..controls(8.19,0.84)and(7.811,0.75) +..(7.261,0.75) +..controls(6.301,0.75)and(5.561,0.96) +..(5.041,1.38) +..controls(4.822,1.22)and(4.512,1.14) +..(4.112,1.14) +..controls(3.482,1.14)and(2.822,1.31) +..(2.132,1.65) +..controls(1.413,2.02)and(0.913,2.46) +..(0.633,2.97) +..controls(1.253,3.56)and(1.563,4.335) +..(1.563,5.295) +..controls(1.563,6.084)and(1.352,6.704) +..(0.932,7.154) +--(0.002,7.154) +--(0.002,8.01) +--(1.548,8.01) +..controls(2.198,7.35)and(2.523,6.43) +..(2.523,5.25) +..controls(2.523,4.34)and(2.323,3.58) +..(1.922,2.97) +..controls(2.022,2.78)and(2.347,2.58) +..(2.897,2.37) +..controls(3.407,2.18)and(3.832,2.075) +..(4.171,2.055) +..controls(4.631,2.515)and(4.861,3.305) +..(4.861,4.425) +..controls(4.861,5.815)and(4.612,7.01) +..(4.112,8.01) +--(5.132,8.01) +..controls(5.592,6.86)and(5.822,5.57) +..(5.822,4.14) +..controls(5.822,3.37)and(5.723,2.77) +..(5.523,2.34) +..controls(5.643,2.19)and(5.868,2.04) +..(6.198,1.89) +..controls(6.567,1.73)and(6.922,1.65) +..(7.262,1.65) +..controls(7.831,1.65)and(8.211,1.895) +..(8.4,2.385) +--(8.4,8.01) +--(10.111,8.01) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(72, 0.016FX#, -0.359FY#, 3.119FY#); ""; +fill((-1.018,-0.359) +--(-1.018,-2.174) +..controls(-1.018,-2.804)and(-1.342,-3.119) +..(-1.992,-3.119) +..controls(-2.472,-3.119)and(-2.852,-2.934) +..(-3.132,-2.564) +..controls(-3.302,-2.344)and(-3.387,-2.119) +..(-3.387,-1.889) +..controls(-3.387,-1.429)and(-3.157,-1.199) +..(-2.697,-1.199) +--(-2.412,-1.199) +--(-2.412,-1.529) +--(-2.727,-1.529) +..controls(-2.917,-1.529)and(-3.012,-1.639) +..(-3.012,-1.859) +..controls(-3.012,-2.069)and(-2.932,-2.269) +..(-2.772,-2.459) +..controls(-2.582,-2.679)and(-2.357,-2.789) +..(-2.097,-2.789) +..controls(-1.617,-2.789)and(-1.377,-2.549) +..(-1.377,-2.069) +--(-1.377,-0.359) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(73, 2.85FX#, 10.484FY#, 0FY#); ""; +fill((2.613,7.154) +--(1.863,7.154) +--(1.863,0) +--(0.902,0) +--(0.902,7.154) +--(0.004,7.154) +--(0.004,8.01) +--(0.902,8.01) +--(0.902,8.669) +..controls(0.902,8.899)and(0.837,9.104) +..(0.707,9.284) +..controls(0.548,9.514)and(0.313,9.629) +..(0.003,9.629) +..controls(-0.307,9.629)and(-0.542,9.514) +..(-0.702,9.284) +..controls(-0.832,9.104)and(-0.896,8.899) +..(-0.896,8.67) +--(-0.896,8.28) +--(-1.857,8.28) +--(-1.857,8.67) +..controls(-1.857,9.16)and(-1.672,9.585) +..(-1.302,9.945) +..controls(-0.932,10.304)and(-0.497,10.484) +..(0.003,10.484) +..controls(0.503,10.484)and(0.938,10.307) +..(1.308,9.952) +..controls(1.678,9.597)and(1.863,9.18) +..(1.863,8.7) +--(1.863,8.01) +--(2.613,8.01) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(74, 8.609FX#, 8.01FY#, 0FY#); ""; +fill((7.082,7.154) +..controls(6.912,6.354)and(6.634,5.806) +..(6.249,5.511) +..controls(5.864,5.216)and(5.282,5.068) +..(4.502,5.068) +..controls(3.132,5.068)and(2.262,5.764) +..(1.892,7.154) +--cycle) xscaled FX yscaled FY; +fill((6.392,4.41) +..controls(6.812,4.59)and(7.177,5.005) +..(7.487,5.654) +..controls(7.567,5.824)and(7.752,6.324) +..(8.042,7.154) +--(8.372,7.154) +--(8.372,8.01) +--(0.002,8.01) +--(0.002,7.154) +--(0.932,7.154) +..controls(1.442,5.884)and(1.892,5.099) +..(2.282,4.799) +--(0.452,4.589) +--(1.322,3.628) +..controls(1.472,3.588)and(1.632,3.568) +..(1.802,3.568) +..controls(2.072,3.568)and(2.492,3.669) +..(3.062,3.869) +..controls(3.562,4.04)and(4.027,4.125) +..(4.457,4.125) +..controls(5.177,4.125)and(5.712,3.91) +..(6.062,3.48) +..controls(6.392,3.09)and(6.447,2.695) +..(6.227,2.295) +..controls(5.987,1.865)and(5.517,1.65) +..(4.817,1.65) +..controls(4.407,1.65)and(3.952,1.73) +..(3.452,1.89) +..controls(3.032,2.209)and(2.602,2.369) +..(2.162,2.369) +..controls(1.852,2.369)and(1.589,2.292) +..(1.374,2.137) +..controls(1.159,1.982)and(1.052,1.799) +..(1.052,1.589) +..controls(1.052,1.28)and(1.277,1.03) +..(1.727,0.84) +..controls(2.257,0.61)and(3.022,0.52) +..(4.022,0.57) +--(4.502,0) +--(6.452,0) +--(5.612,0.9) +..controls(6.182,1.02)and(6.627,1.265) +..(6.947,1.635) +..controls(7.247,1.975)and(7.397,2.36) +..(7.397,2.79) +..controls(7.397,3.52)and(7.062,4.06) +..(6.392,4.41) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(75, 8.01FX#, 8.01FY#, 0.09FY#); ""; +fill((7.771,7.154) +--(7.021,7.154) +--(7.021,0) +--(6.061,0) +--(6.061,1.38) +..controls(5.611,0.96)and(5.051,0.75) +..(4.381,0.75) +..controls(3.621,0.75)and(2.831,0.995) +..(2.012,1.485) +..controls(1.272,1.925)and(0.762,2.39) +..(0.482,2.88) +..controls(0.872,3.46)and(1.066,4.215) +..(1.066,5.145) +..controls(1.066,6.044)and(0.872,6.714) +..(0.482,7.154) +--(0.002,7.154) +--(0.002,8.01) +--(1.292,8.01) +..controls(1.712,7.17)and(1.952,6.285) +..(2.012,5.355) +--(6.061,5.355) +--(6.061,8.01) +--(7.771,8.01) +--cycle) xscaled FX yscaled FY; +fill((6.061,2.625) +--(6.061,4.5) +--(2.012,4.5) +..controls(1.982,3.99)and(1.842,3.47) +..(1.592,2.94) +..controls(2.432,2.1)and(3.341,1.68) +..(4.321,1.68) +..controls(5.121,1.68)and(5.701,1.995) +..(6.061,2.625) +--cycle) xscaled FX yscaled FY; +fill((1.427,0.9) +..controls(1.567,0.9)and(1.684,0.853) +..(1.779,0.758) +..controls(1.874,0.663)and(1.922,0.545) +..(1.922,0.405) +..controls(1.922,0.275)and(1.874,0.16) +..(1.779,0.06) +..controls(1.684,-0.04)and(1.567,-0.09) +..(1.427,-0.09) +..controls(1.297,-0.09)and(1.182,-0.04) +..(1.082,0.06) +..controls(0.982,0.16)and(0.932,0.275) +..(0.932,0.405) +..controls(0.932,0.545)and(0.982,0.663) +..(1.082,0.758) +..controls(1.182,0.853)and(1.297,0.9) +..(1.427,0.9) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(76, 8.189FX#, 8.01FY#, 0.195FY#); ""; +fill((7.952,7.154) +--(1.443,7.154) +--(1.443,5.414) +--(5.943,5.414) +..controls(6.443,5.414)and(6.823,5.252) +..(7.083,4.927) +..controls(7.343,4.602)and(7.473,4.189) +..(7.473,3.689) +..controls(7.473,2.71)and(7.092,1.945) +..(6.332,1.395) +..controls(6.602,1.035)and(6.762,0.81) +..(6.812,0.72) +..controls(6.922,0.54)and(7.022,0.3) +..(7.112,0) +--(6.062,0) +..controls(5.982,0.18)and(5.827,0.42) +..(5.597,0.72) +..controls(4.857,0.11)and(4.057,-0.195) +..(3.197,-0.195) +..controls(2.537,-0.195)and(1.979,-0.02) +..(1.524,0.329) +..controls(1.069,0.679)and(0.842,1.109) +..(0.842,1.619) +..controls(0.842,2.139)and(1.077,2.544) +..(1.547,2.833) +..controls(1.967,3.103)and(2.502,3.238) +..(3.152,3.238) +..controls(4.303,3.238)and(5.163,2.889) +..(5.733,2.19) +..controls(6.373,2.65)and(6.693,3.134) +..(6.693,3.644) +..controls(6.693,3.914)and(6.591,4.134) +..(6.386,4.304) +..controls(6.181,4.474)and(5.893,4.559) +..(5.523,4.559) +--(0.482,4.559) +--(0.482,7.154) +--(0.002,7.154) +--(0.002,8.01) +--(7.952,8.01) +--cycle) xscaled FX yscaled FY; +fill((5.072,1.469) +..controls(4.882,1.719)and(4.59,1.924) +..(4.195,2.084) +..controls(3.8,2.244)and(3.402,2.324) +..(3.002,2.324) +..controls(2.203,2.324)and(1.803,2.044) +..(1.803,1.484) +..controls(1.803,0.954)and(2.218,0.689) +..(3.047,0.689) +..controls(3.907,0.689)and(4.582,0.949) +..(5.072,1.469) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(77, 7.711FX#, 8.01FY#, 0FY#); ""; +fill((7.517,7.154) +--(7.037,7.154) +--(7.037,4.844) +--(2.133,4.844) +..controls(1.723,4.844)and(1.518,4.604) +..(1.518,4.124) +..controls(1.518,3.905)and(1.585,3.71) +..(1.72,3.54) +..controls(1.855,3.37)and(2.043,3.285) +..(2.283,3.285) +--(7.037,3.285) +--(7.037,2.43) +--(3.557,2.43) +..controls(3.557,1.38)and(4.397,0.855) +..(6.077,0.855) +..controls(6.167,0.855)and(6.322,0.855) +..(6.542,0.855) +..controls(6.762,0.855)and(6.927,0.855) +..(7.037,0.855) +--(7.037,0) +--(5.972,0) +..controls(3.702,0)and(2.568,0.81) +..(2.568,2.43) +..controls(1.958,2.43)and(1.473,2.605) +..(1.113,2.955) +..controls(0.793,3.275)and(0.633,3.66) +..(0.633,4.11) +..controls(0.633,4.78)and(0.947,5.259) +..(1.577,5.549) +..controls(1.447,5.629)and(1.314,5.864) +..(1.179,6.254) +..controls(1.044,6.644)and(0.977,6.944) +..(0.977,7.154) +--(0.047,7.154) +--(0.047,8.01) +--(7.517,8.01) +--cycle) xscaled FX yscaled FY; +fill((6.076,5.699) +--(6.076,7.154) +--(1.938,7.154) +..controls(1.938,6.704)and(2.127,6.219) +..(2.507,5.699) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(78, 8.609FX#, 8.01FY#, 0.045FY#); ""; +fill((5.402,5.34) +--(4.592,4.575) +..controls(4.182,4.805)and(3.737,4.92) +..(3.257,4.92) +..controls(2.617,4.92)and(2.037,4.72) +..(1.517,4.32) +..controls(0.967,3.9)and(0.622,3.35) +..(0.482,2.67) +..controls(1.022,1.78)and(1.712,1.095) +..(2.552,0.615) +..controls(3.302,0.175)and(4.087,-0.045) +..(4.907,-0.045) +..controls(5.777,-0.045)and(6.497,0.195) +..(7.067,0.675) +..controls(7.677,1.185)and(7.982,1.86) +..(7.982,2.7) +..controls(7.142,1.46)and(6.112,0.84) +..(4.892,0.84) +..controls(4.182,0.84)and(3.492,1.05) +..(2.822,1.47) +..controls(2.212,1.86)and(1.782,2.31) +..(1.532,2.82) +..controls(1.622,3.2)and(1.842,3.495) +..(2.192,3.705) +..controls(2.502,3.895)and(2.857,3.99) +..(3.257,3.99) +..controls(3.857,3.99)and(4.267,3.81) +..(4.487,3.45) +--(5.732,4.98) +..controls(6.182,4.63)and(6.442,4.43) +..(6.512,4.38) +..controls(6.902,4.11)and(7.262,3.905) +..(7.592,3.765) +--(8.042,4.83) +..controls(7.482,5.04)and(6.912,5.36) +..(6.332,5.79) +..controls(5.662,6.289)and(5.272,6.744) +..(5.162,7.154) +--(8.372,7.154) +--(8.372,8.01) +--(0.002,8.01) +--(0.002,7.154) +--(4.322,7.154) +..controls(4.652,6.265)and(5.012,5.66) +..(5.402,5.34) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(79, 0.016FX#, 11.49FY#, -8.16FY#); ""; +fill((-3.688,8.16) +--(-2.729,8.16) +--(-2.729,8.685) +..controls(-2.889,8.685)and(-2.969,8.78) +..(-2.969,8.97) +..controls(-2.969,9.13)and(-2.914,9.275) +..(-2.804,9.405) +..controls(-2.694,9.535)and(-2.554,9.6) +..(-2.383,9.6) +..controls(-2.203,9.6)and(-2.058,9.53) +..(-1.948,9.39) +..controls(-1.838,9.25)and(-1.783,9.105) +..(-1.783,8.955) +..controls(-1.783,8.785)and(-1.848,8.7) +..(-1.979,8.7) +--(-1.979,8.16) +--(-1.018,8.16) +--(-1.018,9.825) +..controls(-1.018,10.235)and(-1.478,10.44) +..(-2.398,10.44) +..controls(-2.578,10.44)and(-2.883,10.433) +..(-3.313,10.417) +..controls(-3.743,10.402)and(-4.073,10.395) +..(-4.303,10.395) +..controls(-5.723,10.395)and(-6.508,10.76) +..(-6.658,11.49) +--(-6.838,11.49) +..controls(-6.908,10.88)and(-6.648,10.378) +..(-6.058,9.983) +..controls(-5.468,9.588)and(-4.678,9.39) +..(-3.688,9.39) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(80, 4.289FX#, 1.711FY#, 0FY#); ""; +fill((2.912,1.711) +--(1.262,1.711) +--(1.262,0) +--(2.912,0) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(81, 7.92FX#, 8.01FY#, 0.195FY#); ""; +fill((7.682,7.154) +--(6.932,7.154) +--(6.932,4.004) +--(2.283,4.004) +..controls(2.283,2.964)and(2.423,2.26) +..(2.703,1.89) +..controls(3.173,2.5)and(3.888,2.805) +..(4.847,2.805) +..controls(5.477,2.805)and(6.019,2.662) +..(6.474,2.377) +..controls(6.929,2.092)and(7.156,1.71) +..(7.156,1.23) +..controls(7.156,0.81)and(6.956,0.467) +..(6.556,0.202) +..controls(6.156,-0.063)and(5.612,-0.195) +..(4.922,-0.195) +..controls(3.712,-0.195)and(2.792,0.23) +..(2.162,1.079) +..controls(1.602,1.819)and(1.322,2.794) +..(1.322,4.004) +--(0.482,4.004) +..controls(0.482,4.684)and(0.602,5.137) +..(0.843,5.362) +..controls(1.083,5.587)and(1.563,5.699) +..(2.283,5.699) +--(2.283,4.859) +--(5.971,4.859) +--(5.971,7.154) +--(0.002,7.154) +--(0.002,8.01) +--(7.682,8.01) +--cycle) xscaled FX yscaled FY; +fill((6.211,1.23) +..controls(6.211,1.44)and(6.086,1.61) +..(5.836,1.74) +..controls(5.586,1.87)and(5.291,1.936) +..(4.951,1.936) +..controls(4.172,1.936)and(3.672,1.7) +..(3.452,1.23) +..controls(3.722,0.829)and(4.237,0.629) +..(4.996,0.629) +..controls(5.336,0.629)and(5.624,0.684) +..(5.859,0.794) +..controls(6.093,0.904)and(6.211,1.049) +..(6.211,1.23) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(82, 7.26FX#, 8.01FY#, 0FY#); ""; +fill((0.722,1.35) +--(1.382,0) +--(2.342,0) +--(1.892,1.26) +..controls(2.572,0.9)and(3.292,0.72) +..(4.052,0.72) +..controls(4.372,0.72)and(4.622,0.77) +..(4.802,0.87) +--(5.552,0) +--(6.632,0) +--(5.552,1.14) +..controls(6.282,1.64)and(6.647,2.25) +..(6.647,2.97) +..controls(6.647,3.71)and(6.252,4.32) +..(5.462,4.8) +..controls(5.812,5.05)and(6.082,5.414) +..(6.272,5.894) +..controls(6.452,6.304)and(6.542,6.724) +..(6.542,7.154) +--(7.022,7.154) +--(7.022,8.01) +--(0.002,8.01) +--(0.002,7.154) +--(5.702,7.154) +..controls(5.702,6.684)and(5.542,6.235) +..(5.222,5.805) +..controls(4.842,5.295)and(4.382,5.08) +..(3.842,5.16) +..controls(3.232,5.25)and(2.717,5.295) +..(2.297,5.295) +..controls(1.207,5.295)and(0.662,5.01) +..(0.662,4.44) +..controls(0.662,3.969)and(1.127,3.734) +..(2.057,3.734) +..controls(2.597,3.734)and(3.082,3.799) +..(3.512,3.929) +..controls(3.782,4.009)and(4.037,4.049) +..(4.277,4.049) +..controls(4.697,4.049)and(5.032,3.936) +..(5.282,3.711) +..controls(5.532,3.487)and(5.657,3.224) +..(5.657,2.924) +..controls(5.657,2.564)and(5.497,2.269) +..(5.177,2.04) +..controls(4.807,1.77)and(4.292,1.65) +..(3.632,1.68) +..controls(3.422,1.69)and(3.012,1.817) +..(2.402,2.062) +..controls(1.792,2.307)and(1.347,2.43) +..(1.067,2.43) +..controls(0.667,2.43)and(0.467,2.31) +..(0.467,2.07) +..controls(0.467,1.95)and(0.552,1.71) +..(0.722,1.35) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(83, 8.189FX#, 8.01FY#, 0.09FY#); ""; +fill((6.242,7.154) +--(6.242,4.02) +--(2.882,4.02) +..controls(2.692,5.279)and(2.452,6.324) +..(2.162,7.154) +--cycle) xscaled FX yscaled FY; +fill((4.353,0.9) +..controls(4.493,0.9)and(4.61,0.853) +..(4.705,0.758) +..controls(4.8,0.663)and(4.848,0.545) +..(4.848,0.405) +..controls(4.848,0.275)and(4.8,0.16) +..(4.705,0.06) +..controls(4.61,-0.04)and(4.493,-0.09) +..(4.353,-0.09) +..controls(4.223,-0.09)and(4.107,-0.04) +..(4.007,0.06) +..controls(3.907,0.16)and(3.857,0.275) +..(3.857,0.405) +..controls(3.857,0.545)and(3.907,0.663) +..(4.007,0.758) +..controls(4.107,0.853)and(4.223,0.9) +..(4.353,0.9) +--cycle) xscaled FX yscaled FY; +fill((7.952,8.01) +--(0.002,8.01) +--(0.002,7.154) +--(1.082,7.154) +..controls(1.382,6.504)and(1.662,5.379) +..(1.922,3.78) +--(1.772,3.18) +..controls(1.522,2.88)and(1.307,2.52) +..(1.127,2.1) +..controls(0.947,1.65)and(0.857,1.25) +..(0.857,0.9) +..controls(0.857,0.28)and(1.132,-0.04) +..(1.682,-0.06) +..controls(2.132,-0.08)and(2.452,0.335) +..(2.642,1.185) +..controls(2.702,1.445)and(2.782,2.106) +..(2.882,3.166) +--(6.242,3.166) +--(6.242,0) +--(7.202,0) +--(7.202,7.154) +--(7.952,7.154) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(84, 8.34FX#, 8.01FY#, 0.18FY#); ""; +fill((8.102,7.154) +--(4.623,7.154) +--(4.623,5.311) +..controls(5.243,5.311)and(5.908,5.026) +..(6.618,4.456) +..controls(7.388,3.825)and(7.773,3.15) +..(7.773,2.43) +..controls(7.773,1.68)and(7.433,1.058) +..(6.753,0.563) +..controls(6.073,0.068)and(5.203,-0.18) +..(4.143,-0.18) +..controls(3.082,-0.18)and(2.212,0.068) +..(1.532,0.563) +..controls(0.852,1.058)and(0.512,1.68) +..(0.512,2.43) +..controls(0.512,3.15)and(0.897,3.825) +..(1.667,4.456) +..controls(2.377,5.026)and(3.042,5.311) +..(3.662,5.311) +--(3.662,7.154) +--(0.002,7.154) +--(0.002,8.01) +--(8.102,8.01) +--cycle) xscaled FX yscaled FY; +fill((6.723,2.401) +..controls(6.723,2.941)and(6.463,3.406) +..(5.943,3.796) +..controls(5.423,4.186)and(4.823,4.381) +..(4.143,4.381) +..controls(3.463,4.381)and(2.863,4.186) +..(2.343,3.796) +..controls(1.823,3.406)and(1.563,2.941) +..(1.563,2.401) +..controls(1.563,2.021)and(1.845,1.646) +..(2.41,1.276) +..controls(2.975,0.906)and(3.553,0.721) +..(4.143,0.721) +..controls(4.733,0.721)and(5.31,0.906) +..(5.875,1.276) +..controls(6.44,1.646)and(6.723,2.021) +..(6.723,2.401) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(85, 0.016FX#, -1.381FY#, 2.385FY#); ""; +fill((-1.588,-2.266) +..controls(-2.488,-2.345)and(-3.263,-2.385) +..(-3.913,-2.385) +..controls(-4.553,-2.385)and(-5.323,-2.345) +..(-6.223,-2.266) +--(-6.223,-1.381) +..controls(-5.323,-1.46)and(-4.553,-1.5) +..(-3.913,-1.5) +..controls(-3.263,-1.5)and(-2.488,-1.46) +..(-1.588,-1.381) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(86, 7.26FX#, 8.01FY#, 0.09FY#); ""; +fill((0.002,7.125) +--(5.732,7.125) +..controls(5.732,6.535)and(5.607,6) +..(5.357,5.52) +..controls(5.047,4.96)and(4.647,4.68) +..(4.157,4.68) +..controls(3.987,4.68)and(3.647,4.715) +..(3.137,4.785) +..controls(2.627,4.855)and(2.247,4.891) +..(1.997,4.891) +..controls(1.287,4.891)and(0.932,4.661) +..(0.932,4.2) +..controls(0.932,3.75)and(1.312,3.525) +..(2.072,3.525) +..controls(2.352,3.525)and(2.727,3.555) +..(3.197,3.615) +..controls(3.807,3.695)and(4.157,3.74) +..(4.247,3.75) +..controls(4.737,3.79)and(5.147,3.64) +..(5.477,3.3) +..controls(5.757,3)and(5.897,2.67) +..(5.897,2.31) +..controls(5.897,2.24)and(5.887,2.17) +..(5.867,2.1) +..controls(5.627,1.3)and(4.902,0.91) +..(3.692,0.93) +..controls(2.562,0.95)and(1.592,1.34) +..(0.782,2.1) +..controls(0.752,2.12)and(0.719,2.098) +..(0.684,2.033) +..controls(0.649,1.968)and(0.612,1.95) +..(0.572,1.98) +..controls(0.822,1.29)and(1.292,0.76) +..(1.982,0.39) +..controls(2.572,0.07)and(3.227,-0.09) +..(3.947,-0.09) +..controls(4.447,-0.09)and(4.872,-0.01) +..(5.222,0.15) +..controls(5.712,0.38)and(6.102,0.695) +..(6.392,1.095) +..controls(6.682,1.495)and(6.827,1.92) +..(6.827,2.37) +..controls(6.827,3.12)and(6.432,3.77) +..(5.642,4.32) +..controls(5.992,4.58)and(6.267,5.015) +..(6.467,5.625) +..controls(6.617,6.115)and(6.692,6.615) +..(6.692,7.125) +--(7.022,7.125) +--(7.022,8.01) +--(0.002,8.01) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(87, 8.01FX#, 8.01FY#, 0FY#); ""; +fill((6.061,2.625) +--(6.061,4.199) +--(1.922,4.199) +..controls(1.922,3.809)and(1.812,3.389) +..(1.592,2.939) +..controls(2.432,2.1)and(3.341,1.68) +..(4.321,1.68) +..controls(5.121,1.68)and(5.701,1.995) +..(6.061,2.625) +--cycle) xscaled FX yscaled FY; +fill((2.012,5.055) +--(6.061,5.055) +--(6.061,7.154) +--(1.517,7.154) +..controls(1.777,6.664)and(1.942,5.965) +..(2.012,5.055) +--cycle) xscaled FX yscaled FY; +fill((0.482,7.154) +--(0.002,7.154) +--(0.002,8.01) +--(7.772,8.01) +--(7.772,7.154) +--(7.021,7.154) +--(7.021,0) +--(6.061,0) +--(6.061,1.38) +..controls(5.611,0.96)and(5.051,0.75) +..(4.381,0.75) +..controls(3.621,0.75)and(2.831,0.995) +..(2.012,1.485) +..controls(1.272,1.925)and(0.762,2.39) +..(0.482,2.88) +..controls(0.872,3.46)and(1.066,4.215) +..(1.066,5.145) +..controls(1.066,6.044)and(0.872,6.714) +..(0.482,7.154) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(88, 0.016FX#, -0.359FY#, 3.045FY#); ""; +fill((-1.018,-0.359) +--(-1.018,-1.229) +--(-2.909,-1.229) +..controls(-3.079,-1.229)and(-3.164,-1.319) +..(-3.164,-1.499) +..controls(-3.164,-1.69)and(-3.059,-1.785) +..(-2.849,-1.785) +--(-1.018,-1.785) +--(-1.018,-2.1) +--(-2.324,-2.1) +..controls(-2.324,-2.52)and(-2.008,-2.73) +..(-1.378,-2.73) +..controls(-1.348,-2.73)and(-1.288,-2.73) +..(-1.198,-2.73) +..controls(-1.118,-2.73)and(-1.058,-2.73) +..(-1.018,-2.73) +--(-1.018,-3.045) +--(-1.303,-3.045) +..controls(-1.723,-3.045)and(-2.058,-2.96) +..(-2.308,-2.79) +..controls(-2.558,-2.62)and(-2.688,-2.389) +..(-2.698,-2.099) +..controls(-3.218,-2.079)and(-3.479,-1.874) +..(-3.479,-1.484) +..controls(-3.479,-1.334)and(-3.416,-1.199) +..(-3.291,-1.079) +..controls(-3.166,-0.958)and(-3.003,-0.898) +..(-2.803,-0.898) +--(-1.377,-0.898) +--(-1.377,-0.359) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(89, 8.01FX#, 8.01FY#, 0FY#); ""; +fill((1.592,3.389) +..controls(2.432,2.549)and(3.341,2.129) +..(4.321,2.129) +..controls(5.121,2.129)and(5.701,2.444) +..(6.061,3.074) +--(6.061,7.154) +--(1.517,7.154) +..controls(1.877,6.424)and(2.057,5.709) +..(2.057,5.009) +..controls(2.057,4.359)and(1.902,3.819) +..(1.592,3.389) +--cycle) xscaled FX yscaled FY; +fill((0.482,7.154) +--(0.002,7.154) +--(0.002,8.01) +--(7.772,8.01) +--(7.772,7.154) +--(7.021,7.154) +--(7.021,0) +--(6.061,0) +--(6.061,1.83) +..controls(5.611,1.409)and(5.051,1.199) +..(4.381,1.199) +..controls(3.621,1.199)and(2.831,1.444) +..(2.012,1.934) +..controls(1.272,2.374)and(0.762,2.839) +..(0.482,3.329) +..controls(0.872,3.909)and(1.066,4.584) +..(1.066,5.354) +..controls(1.066,6.114)and(0.872,6.714) +..(0.482,7.154) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(90, 9.27FX#, 8.01FY#, 0.18FY#); ""; +fill((4.441,1.456) +..controls(4.441,0.936)and(4.061,0.676) +..(3.302,0.676) +..controls(2.942,0.676)and(2.547,0.891) +..(2.117,1.321) +..controls(1.647,1.791)and(1.412,2.261) +..(1.412,2.731) +..controls(1.412,2.991)and(1.477,3.216) +..(1.607,3.406) +..controls(1.787,3.676)and(2.062,3.811) +..(2.432,3.811) +--(4.441,3.811) +--cycle) xscaled FX yscaled FY; +fill((4.441,7.154) +--(4.441,4.664) +--(2.282,4.664) +..controls(1.672,4.664)and(1.202,4.459) +..(0.873,4.049) +..controls(0.593,3.699)and(0.453,3.259) +..(0.453,2.73) +..controls(0.453,1.97)and(0.738,1.305) +..(1.308,0.735) +..controls(1.918,0.125)and(2.673,-0.18) +..(3.572,-0.18) +..controls(4.792,-0.18)and(5.402,0.33) +..(5.402,1.35) +--(5.402,7.154) +--(7.322,7.154) +--(7.322,0) +--(8.283,0) +--(8.283,7.154) +--(9.033,7.154) +--(9.033,8.01) +--(0.003,8.01) +--(0.003,7.154) +--cycle) xscaled FX yscaled FY; +fill((0.468,0.9) +..controls(0.608,0.9)and(0.725,0.853) +..(0.82,0.758) +..controls(0.915,0.663)and(0.963,0.545) +..(0.963,0.405) +..controls(0.963,0.275)and(0.915,0.16) +..(0.82,0.06) +..controls(0.725,-0.04)and(0.608,-0.09) +..(0.468,-0.09) +..controls(0.338,-0.09)and(0.223,-0.04) +..(0.123,0.06) +..controls(0.023,0.16)and(-0.027,0.275) +..(-0.027,0.405) +..controls(-0.027,0.545)and(0.023,0.663) +..(0.123,0.758) +..controls(0.223,0.853)and(0.338,0.9) +..(0.468,0.9) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(91, 4.289FX#, 10.949FY#, 3.301FY#); ""; +fill((0.99,10.949) +--(0.99,-3.301) +--(3.63,-3.301) +--(3.63,-1.92) +--(2.37,-1.92) +--(2.37,9.57) +--(3.63,9.57) +--(3.63,10.949) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(92, 5.775FX#, 8.01FY#, 0FY#); ""; +fill((4.576,6.225) +..controls(4.576,5.735)and(4.401,5.318) +..(4.051,4.973) +..controls(3.701,4.628)and(3.281,4.455) +..(2.791,4.455) +..controls(2.301,4.455)and(1.881,4.628) +..(1.531,4.973) +..controls(1.181,5.318)and(1.006,5.735) +..(1.006,6.225) +..controls(1.006,6.725)and(1.181,7.147) +..(1.531,7.492) +..controls(1.881,7.837)and(2.301,8.01) +..(2.791,8.01) +..controls(3.291,8.01)and(3.714,7.837) +..(4.059,7.492) +..controls(4.404,7.147)and(4.576,6.725) +..(4.576,6.225) +--cycle) xscaled FX yscaled FY; +fill((4.576,1.77) +..controls(4.576,1.28)and(4.404,0.862) +..(4.059,0.517) +..controls(3.714,0.172)and(3.291,0) +..(2.791,0) +..controls(2.291,0)and(1.868,0.172) +..(1.523,0.517) +..controls(1.178,0.862)and(1.006,1.28) +..(1.006,1.77) +..controls(1.006,2.249)and(1.181,2.664) +..(1.531,3.014) +..controls(1.881,3.364)and(2.301,3.539) +..(2.791,3.539) +..controls(3.281,3.539)and(3.701,3.364) +..(4.051,3.014) +..controls(4.401,2.664)and(4.576,2.249) +..(4.576,1.77) +--cycle) xscaled FX yscaled FY; +fill((2.791,7.096) +..controls(2.541,7.096)and(2.318,7.011) +..(2.123,6.841) +..controls(1.928,6.671)and(1.83,6.466) +..(1.83,6.226) +..controls(1.83,5.996)and(1.928,5.793) +..(2.123,5.618) +..controls(2.318,5.443)and(2.541,5.355) +..(2.791,5.355) +..controls(3.041,5.355)and(3.264,5.443) +..(3.459,5.618) +..controls(3.654,5.793)and(3.752,5.996) +..(3.752,6.226) +..controls(3.752,6.466)and(3.654,6.671) +..(3.459,6.841) +..controls(3.264,7.011)and(3.041,7.096) +..(2.791,7.096) +--cycle) xscaled FX yscaled FY; +fill((3.752,1.77) +..controls(3.752,2)and(3.654,2.2) +..(3.459,2.37) +..controls(3.264,2.54)and(3.041,2.625) +..(2.791,2.625) +..controls(2.541,2.625)and(2.318,2.54) +..(2.123,2.37) +..controls(1.928,2.2)and(1.83,2) +..(1.83,1.77) +..controls(1.83,1.53)and(1.928,1.325) +..(2.123,1.155) +..controls(2.318,0.985)and(2.541,0.9) +..(2.791,0.9) +..controls(3.041,0.9)and(3.264,0.985) +..(3.459,1.155) +..controls(3.654,1.325)and(3.752,1.53) +..(3.752,1.77) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(93, 4.289FX#, 10.949FY#, 3.301FY#); ""; +fill((3.181,-3.301) +--(3.181,10.949) +--(0.541,10.949) +--(0.541,9.57) +--(1.801,9.57) +--(1.801,-1.92) +--(0.541,-1.92) +--(0.541,-3.301) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(94, 0.016FX#, 10.785FY#, -7.154FY#); ""; +fill((1.232,8.609) +--(0.631,8.609) +..controls(0.752,8.689)and(0.813,8.839) +..(0.813,9.059) +..controls(0.813,9.279)and(0.735,9.454) +..(0.58,9.584) +..controls(0.425,9.714)and(0.242,9.779) +..(0.032,9.779) +..controls(-0.469,9.779)and(-0.719,9.539) +..(-0.719,9.059) +..controls(-0.719,8.859)and(-0.669,8.709) +..(-0.569,8.609) +--(-1.139,8.609) +..controls(-1.419,9)and(-1.559,9.35) +..(-1.559,9.66) +..controls(-1.559,10.01)and(-1.399,10.285) +..(-1.078,10.485) +..controls(-0.758,10.685)and(-0.383,10.785) +..(0.047,10.785) +..controls(0.477,10.785)and(0.852,10.685) +..(1.172,10.485) +..controls(1.492,10.285)and(1.652,10.01) +..(1.652,9.66) +..controls(1.652,9.35)and(1.512,9) +..(1.232,8.609) +--cycle) xscaled FX yscaled FY; +fill((1.801,7.154) +--(0,7.154) +--(0,8.01) +--(1.801,8.01) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(95, 8.4FX#, -1.32FY#, 2.49FY#); ""; +fill((0.002,-1.32) +--(0.002,-2.49) +--(8.342,-2.49) +--(8.342,-1.32) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(96, 5.16FX#, 11.25FY#, -9.061FY#); ""; +fill((2.881,11.25) +--(1.111,11.25) +--(2.791,9.061) +--(3.901,9.061) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(97, 11.16FX#, 8.01FY#, 0FY#); ""; +fill((1.892,3.75) +..controls(1.392,2.92)and(1.142,2.18) +..(1.142,1.53) +..controls(1.142,0.95)and(1.342,0.66) +..(1.742,0.66) +..controls(2.601,0.66)and(3.031,1.365) +..(3.031,2.775) +..controls(3.031,3.135)and(3.001,3.535) +..(2.942,3.975) +..controls(3.092,4.305)and(3.337,4.66) +..(3.677,5.04) +..controls(4.057,5.47)and(4.432,5.775) +..(4.802,5.955) +..controls(5.022,5.765)and(5.282,5.395) +..(5.582,4.845) +..controls(5.882,4.265)and(6.032,3.83) +..(6.032,3.54) +..controls(5.652,3.22)and(5.329,2.795) +..(5.064,2.265) +..controls(4.799,1.735)and(4.666,1.265) +..(4.666,0.855) +..controls(4.666,0.285)and(4.911,0) +..(5.401,0) +..controls(5.731,0)and(6.054,0.33) +..(6.369,0.99) +..controls(6.684,1.65)and(6.871,2.375) +..(6.931,3.165) +--(9.212,3.165) +--(9.212,0) +--(10.172,0) +--(10.172,7.155) +--(10.922,7.155) +--(10.922,8.01) +--(9.212,8.01) +--(9.212,4.02) +--(6.932,4.02) +..controls(6.652,4.79)and(6.412,5.345) +..(6.212,5.685) +..controls(5.832,6.335)and(5.382,6.75) +..(4.862,6.93) +..controls(4.492,6.84)and(4.067,6.595) +..(3.587,6.195) +..controls(3.107,5.795)and(2.772,5.42) +..(2.582,5.07) +..controls(2.482,5.5)and(2.312,6) +..(2.072,6.57) +..controls(1.792,7.23)and(1.527,7.71) +..(1.277,8.01) +--(0.002,8.01) +--(0.002,7.155) +--(0.752,7.155) +..controls(0.972,6.855)and(1.217,6.325) +..(1.487,5.565) +..controls(1.757,4.775)and(1.892,4.17) +..(1.892,3.75) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(98, 8.43FX#, 8.01FY#, 0FY#); ""; +fill((8.192,7.154) +--(7.441,7.154) +--(7.441,0) +--(6.48,0) +--(6.48,0.96) +..controls(5.901,0.679)and(5.311,0.539) +..(4.711,0.539) +..controls(3.411,0.539)and(2.212,1.199) +..(1.112,2.519) +..controls(1.362,3.389)and(1.902,4.009) +..(2.732,4.379) +..controls(2.182,4.609)and(1.722,5.039) +..(1.352,5.669) +..controls(1.282,5.779)and(1.052,6.274) +..(0.662,7.154) +--(0.002,7.154) +--(0.002,8.01) +--(8.192,8.01) +--cycle) xscaled FX yscaled FY; +fill((6.48,4.875) +--(6.48,7.154) +--(1.697,7.154) +..controls(1.927,6.075)and(2.562,5.315) +..(3.601,4.875) +--cycle) xscaled FX yscaled FY; +fill((6.48,1.875) +--(6.48,4.02) +--(4.741,4.02) +..controls(4.041,4.02)and(3.487,3.9) +..(3.077,3.66) +..controls(2.777,3.48)and(2.502,3.19) +..(2.252,2.79) +..controls(2.522,2.38)and(2.902,2.045) +..(3.392,1.785) +..controls(3.881,1.525)and(4.391,1.395) +..(4.921,1.395) +..controls(5.501,1.395)and(6.021,1.555) +..(6.48,1.875) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(99, 8.25FX#, 8.01FY#, 0FY#); ""; +fill((8.042,0) +--(7.052,0) +..controls(6.892,1.02)and(6.617,1.74) +..(6.227,2.16) +..controls(5.987,1.88)and(5.527,1.618) +..(4.847,1.373) +..controls(4.167,1.128)and(3.572,1.006) +..(3.062,1.006) +..controls(2.252,1.006)and(1.617,1.211) +..(1.157,1.621) +..controls(0.737,2.001)and(0.527,2.461) +..(0.527,3.001) +..controls(0.527,3.57)and(0.747,4.055) +..(1.187,4.455) +..controls(1.667,4.895)and(2.302,5.115) +..(3.092,5.115) +..controls(3.552,5.115)and(4.101,5) +..(4.741,4.77) +..controls(5.381,4.54)and(5.826,4.29) +..(6.076,4.02) +..controls(6.276,4.25)and(6.441,4.755) +..(6.571,5.535) +..controls(6.671,6.155)and(6.721,6.694) +..(6.721,7.154) +--(0.002,7.154) +--(0.002,8.01) +--(8.012,8.01) +--(8.012,7.154) +--(7.682,7.154) +..controls(7.682,6.564)and(7.607,5.914) +..(7.457,5.204) +..controls(7.267,4.305)and(7.012,3.62) +..(6.692,3.15) +..controls(7.342,2.32)and(7.792,1.27) +..(8.042,0) +--cycle) xscaled FX yscaled FY; +fill((5.642,3.061) +..controls(5.362,3.41)and(4.922,3.71) +..(4.322,3.96) +..controls(3.812,4.16)and(3.392,4.26) +..(3.062,4.26) +..controls(2.592,4.26)and(2.225,4.142) +..(1.96,3.908) +..controls(1.695,3.673)and(1.563,3.39) +..(1.563,3.061) +..controls(1.563,2.741)and(1.695,2.461) +..(1.96,2.221) +..controls(2.225,1.981)and(2.592,1.861) +..(3.062,1.861) +..controls(3.402,1.861)and(3.857,1.981) +..(4.427,2.221) +..controls(5.077,2.481)and(5.482,2.761) +..(5.642,3.061) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(100, 7.561FX#, 8.01FY#, 0.18FY#); ""; +fill((7.322,7.154) +--(6.992,7.154) +--(6.992,3.645) +--(2.372,3.645) +..controls(2.612,1.665)and(3.392,0.676) +..(4.712,0.676) +..controls(5.122,0.676)and(5.584,0.918) +..(6.099,1.403) +..controls(6.614,1.888)and(6.952,2.13) +..(7.112,2.13) +--(7.262,2.13) +..controls(7.252,1.49)and(6.967,0.935) +..(6.407,0.465) +..controls(5.887,0.035)and(5.322,-0.18) +..(4.712,-0.18) +..controls(3.642,-0.18)and(2.822,0.215) +..(2.252,1.005) +..controls(1.782,1.655)and(1.502,2.535) +..(1.412,3.645) +--(0.572,3.645) +--(0.572,4.08) +..controls(0.572,4.62)and(0.657,4.99) +..(0.827,5.19) +..controls(1.027,5.44)and(1.402,5.565) +..(1.952,5.565) +--(2.372,5.565) +--(2.372,4.5) +--(6.031,4.5) +--(6.031,7.154) +--(0.002,7.154) +--(0.002,8.01) +--(7.322,8.01) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(101, 7.471FX#, 8.01FY#, 0.164FY#); ""; +fill((7.262,2.13) +..controls(7.252,1.49)and(6.967,0.941) +..(6.407,0.481) +..controls(5.887,0.051)and(5.322,-0.164) +..(4.712,-0.164) +..controls(3.752,-0.164)and(2.917,0.086) +..(2.207,0.586) +..controls(1.687,1.006)and(1.172,1.421) +..(0.662,1.831) +..controls(0.662,2.26)and(0.827,2.73) +..(1.157,3.24) +..controls(1.407,3.64)and(1.702,3.98) +..(2.042,4.26) +..controls(1.252,4.81)and(0.732,5.775) +..(0.482,7.154) +--(0.002,7.154) +--(0.002,8.01) +--(7.232,8.01) +--(7.232,7.154) +--(6.902,7.154) +--(6.902,3.75) +--(6.242,3.75) +..controls(5.242,3.86)and(4.472,3.86) +..(3.932,3.75) +..controls(2.772,3.51)and(2.072,3.05) +..(1.832,2.371) +..controls(1.852,2.351)and(2.107,2.136) +..(2.597,1.726) +..controls(2.967,1.406)and(3.282,1.171) +..(3.542,1.021) +..controls(3.902,0.801)and(4.222,0.691) +..(4.502,0.691) +..controls(4.852,0.691)and(5.334,0.931) +..(5.949,1.411) +..controls(6.564,1.89)and(6.952,2.13) +..(7.112,2.13) +--cycle) xscaled FX yscaled FY; +fill((5.941,4.666) +--(5.941,7.154) +--(1.472,7.154) +..controls(1.542,6.675)and(1.697,6.215) +..(1.937,5.775) +..controls(2.217,5.256)and(2.562,4.886) +..(2.972,4.666) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(102, 7.59FX#, 8.01FY#, 0.164FY#); ""; +fill((7.352,7.154) +--(7.021,7.154) +--(7.021,4.529) +--(2.851,4.529) +..controls(2.011,4.529)and(1.586,4.179) +..(1.576,3.48) +..controls(1.576,2.91)and(1.881,2.31) +..(2.491,1.68) +..controls(2.681,2.13)and(3.027,2.485) +..(3.527,2.745) +..controls(3.977,2.975)and(4.477,3.09) +..(5.027,3.09) +..controls(5.617,3.09)and(6.107,2.96) +..(6.497,2.7) +..controls(6.928,2.41)and(7.143,2.02) +..(7.143,1.53) +..controls(7.143,1.021)and(6.918,0.611) +..(6.467,0.301) +..controls(6.017,-0.009)and(5.462,-0.164) +..(4.802,-0.164) +..controls(4.152,-0.164)and(3.517,-0.014) +..(2.897,0.286) +..controls(2.217,0.616)and(1.642,1.101) +..(1.172,1.741) +..controls(0.792,2.26)and(0.602,2.845) +..(0.602,3.495) +..controls(0.602,4.045)and(0.762,4.485) +..(1.081,4.815) +..controls(1.471,5.195)and(2.061,5.385) +..(2.851,5.385) +--(6.061,5.385) +--(6.061,7.154) +--(0.002,7.154) +--(0.002,8.01) +--(7.352,8.01) +--cycle) xscaled FX yscaled FY; +fill((6.332,1.53) +..controls(6.332,2.01)and(5.902,2.25) +..(5.042,2.25) +..controls(4.622,2.25)and(4.257,2.175) +..(3.947,2.025) +..controls(3.597,1.865)and(3.422,1.66) +..(3.422,1.41) +..controls(3.422,1.18)and(3.567,0.998) +..(3.857,0.863) +..controls(4.147,0.728)and(4.487,0.66) +..(4.877,0.66) +..controls(5.267,0.66)and(5.607,0.735) +..(5.897,0.885) +..controls(6.187,1.035)and(6.332,1.25) +..(6.332,1.53) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(103, 9.27FX#, 8.01FY#, 0.18FY#); ""; +fill((4.441,1.456) +..controls(4.441,0.936)and(4.061,0.676) +..(3.302,0.676) +..controls(2.942,0.676)and(2.547,0.891) +..(2.117,1.321) +..controls(1.647,1.791)and(1.412,2.261) +..(1.412,2.731) +..controls(1.412,2.991)and(1.477,3.216) +..(1.607,3.406) +..controls(1.787,3.676)and(2.062,3.811) +..(2.432,3.811) +--(4.441,3.811) +--cycle) xscaled FX yscaled FY; +fill((4.441,7.154) +--(4.441,4.664) +--(2.282,4.664) +..controls(1.672,4.664)and(1.202,4.459) +..(0.872,4.049) +..controls(0.592,3.699)and(0.452,3.259) +..(0.452,2.73) +..controls(0.452,1.97)and(0.737,1.305) +..(1.307,0.735) +..controls(1.917,0.125)and(2.672,-0.18) +..(3.572,-0.18) +..controls(4.792,-0.18)and(5.402,0.33) +..(5.402,1.35) +--(5.402,7.154) +--(7.322,7.154) +--(7.322,0) +--(8.282,0) +--(8.282,7.154) +--(9.032,7.154) +--(9.032,8.01) +--(0.002,8.01) +--(0.002,7.154) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(104, 7.756FX#, 8.01FY#, 0.18FY#); ""; +fill((7.517,7.154) +--(6.768,7.154) +--(6.768,2.31) +..controls(6.768,0.65)and(5.908,-0.18) +..(4.188,-0.18) +..controls(3.427,-0.18)and(2.84,-0.08) +..(2.425,0.12) +..controls(2.01,0.32)and(1.582,0.708) +..(1.142,1.283) +..controls(0.702,1.858)and(0.482,2.45) +..(0.482,3.061) +..controls(0.482,3.591)and(0.65,4.028) +..(0.985,4.373) +..controls(1.32,4.718)and(1.757,4.891) +..(2.297,4.891) +--(3.077,4.891) +--(3.077,4.035) +--(2.237,4.035) +..controls(1.717,4.035)and(1.457,3.74) +..(1.457,3.15) +..controls(1.457,2.58)and(1.677,2.041) +..(2.117,1.531) +..controls(2.617,0.961)and(3.217,0.676) +..(3.917,0.676) +..controls(5.177,0.676)and(5.807,1.311) +..(5.807,2.58) +--(5.807,7.154) +--(0.002,7.154) +--(0.002,8.01) +--(7.517,8.01) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(105, 2.85FX#, 10.484FY#, 0FY#); ""; +fill((4.471,8.279) +--(3.51,8.279) +--(3.51,8.669) +..controls(3.51,8.899)and(3.445,9.104) +..(3.315,9.284) +..controls(3.155,9.514)and(2.92,9.629) +..(2.61,9.629) +..controls(2.301,9.629)and(2.066,9.514) +..(1.906,9.284) +..controls(1.776,9.104)and(1.711,8.899) +..(1.711,8.669) +--(1.711,8.01) +--(2.609,8.01) +--(2.609,7.154) +--(1.711,7.154) +--(1.711,0) +--(0.75,0) +--(0.75,7.154) +--(0,7.154) +--(0,8.01) +--(0.75,8.01) +--(0.75,8.7) +..controls(0.75,9.18)and(0.935,9.597) +..(1.305,9.952) +..controls(1.675,10.307)and(2.11,10.484) +..(2.61,10.484) +..controls(3.11,10.484)and(3.546,10.304) +..(3.916,9.944) +..controls(4.286,9.584)and(4.471,9.159) +..(4.471,8.669) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(106, 7.381FX#, 8.01FY#, 0FY#); ""; +fill((7.142,7.154) +--(6.393,7.154) +--(6.393,0) +--(5.432,0) +--(5.432,3.225) +--(2.283,3.225) +..controls(2.283,2.975)and(2.241,2.48) +..(2.156,1.74) +..controls(2.07,1)and(1.983,0.42) +..(1.893,0) +--(0.932,0) +..controls(1.172,1.53)and(1.302,2.605) +..(1.322,3.225) +--(0.484,3.225) +..controls(0.474,3.345)and(0.469,3.455) +..(0.469,3.555) +..controls(0.469,4.475)and(0.948,4.935) +..(1.907,4.935) +..controls(2.017,4.935)and(2.142,4.93) +..(2.282,4.92) +--(2.283,4.08) +--(5.432,4.08) +--(5.432,7.154) +--(0.002,7.154) +--(0.002,8.01) +--(7.142,8.01) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(107, 8.01FX#, 8.01FY#, 0FY#); ""; +fill((7.771,7.154) +--(7.021,7.154) +--(7.021,0) +--(6.061,0) +--(6.061,1.38) +..controls(5.611,0.96)and(5.051,0.75) +..(4.381,0.75) +..controls(3.621,0.75)and(2.831,0.995) +..(2.012,1.485) +..controls(1.272,1.925)and(0.762,2.39) +..(0.482,2.88) +..controls(0.872,3.46)and(1.066,4.215) +..(1.066,5.145) +..controls(1.066,6.044)and(0.872,6.714) +..(0.482,7.154) +--(0.002,7.154) +--(0.002,8.01) +--(1.292,8.01) +..controls(1.712,7.17)and(1.952,6.285) +..(2.012,5.355) +--(6.061,5.355) +--(6.061,8.01) +--(7.771,8.01) +--cycle) xscaled FX yscaled FY; +fill((6.061,2.625) +--(6.061,4.5) +--(2.012,4.5) +..controls(1.982,3.99)and(1.842,3.47) +..(1.592,2.94) +..controls(2.432,2.1)and(3.341,1.68) +..(4.321,1.68) +..controls(5.121,1.68)and(5.701,1.995) +..(6.061,2.625) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(108, 10.891FX#, 8.01FY#, 0.029FY#); ""; +fill((10.652,7.154) +--(8.642,7.154) +..controls(8.292,6.105)and(8.022,5.45) +..(7.832,5.19) +..controls(8.582,4.69)and(9.077,4.32) +..(9.317,4.08) +..controls(9.808,3.59)and(10.053,3.05) +..(10.053,2.46) +..controls(10.053,1.68)and(9.738,1.055) +..(9.108,0.586) +..controls(8.567,0.176)and(7.952,-0.029) +..(7.262,-0.029) +..controls(7.182,-0.029)and(7.047,-0.024) +..(6.857,-0.015) +..controls(6.667,-0.005)and(6.532,0) +..(6.452,0) +--(6.452,0.855) +..controls(6.652,0.815)and(6.822,0.795) +..(6.962,0.795) +..controls(7.452,0.795)and(7.929,0.972) +..(8.394,1.327) +..controls(8.859,1.682)and(9.092,2.06) +..(9.092,2.46) +..controls(9.092,2.84)and(8.882,3.245) +..(8.462,3.675) +..controls(8.102,4.025)and(7.742,4.275) +..(7.382,4.425) +..controls(7.182,4.145)and(6.917,3.88) +..(6.587,3.63) +..controls(6.177,3.32)and(5.782,3.125) +..(5.402,3.045) +..controls(5.022,3.125)and(4.627,3.32) +..(4.218,3.63) +..controls(3.888,3.88)and(3.623,4.145) +..(3.423,4.425) +..controls(3.063,4.275)and(2.703,4.025) +..(2.343,3.675) +..controls(1.923,3.245)and(1.713,2.84) +..(1.713,2.46) +..controls(1.713,2.06)and(1.943,1.682) +..(2.403,1.327) +..controls(2.862,0.972)and(3.332,0.795) +..(3.812,0.795) +..controls(3.972,0.795)and(4.152,0.815) +..(4.352,0.855) +--(4.352,0) +..controls(4.272,0)and(4.142,-0.005) +..(3.962,-0.015) +..controls(3.782,-0.024)and(3.652,-0.029) +..(3.572,-0.029) +..controls(2.882,-0.029)and(2.262,0.176) +..(1.712,0.586) +..controls(1.072,1.065)and(0.752,1.69) +..(0.752,2.46) +..controls(0.752,3.05)and(0.997,3.59) +..(1.487,4.08) +..controls(1.717,4.31)and(2.212,4.68) +..(2.972,5.19) +..controls(2.782,5.45)and(2.512,6.105) +..(2.162,7.154) +--(0.002,7.154) +--(0.002,8.01) +--(10.652,8.01) +--cycle) xscaled FX yscaled FY; +fill((7.682,7.154) +--(3.122,7.154) +..controls(3.242,6.544)and(3.524,5.922) +..(3.969,5.287) +..controls(4.414,4.653)and(4.892,4.19) +..(5.402,3.9) +..controls(5.922,4.19)and(6.409,4.658) +..(6.864,5.302) +..controls(7.319,5.947)and(7.592,6.564) +..(7.682,7.154) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(109, 8.189FX#, 8.01FY#, 0.09FY#); ""; +fill((6.242,4.02) +--(2.882,4.02) +..controls(2.822,4.44)and(2.687,5.095) +..(2.477,5.985) +..controls(2.247,6.925)and(2.062,7.6) +..(1.922,8.01) +--(0.002,8.01) +--(0.002,7.155) +--(1.082,7.155) +..controls(1.382,6.505)and(1.662,5.38) +..(1.922,3.78) +--(1.772,3.18) +..controls(1.522,2.88)and(1.307,2.52) +..(1.127,2.1) +..controls(0.947,1.65)and(0.857,1.25) +..(0.857,0.9) +..controls(0.857,0.279)and(1.132,-0.041) +..(1.682,-0.061) +..controls(2.132,-0.081)and(2.452,0.335) +..(2.642,1.185) +..controls(2.702,1.445)and(2.782,2.105) +..(2.882,3.165) +--(6.242,3.165) +--(6.242,0) +--(7.202,0) +--(7.202,7.155) +--(7.952,7.155) +--(7.952,8.01) +--(6.242,8.01) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(110, 8.07FX#, 8.01FY#, 0.029FY#); ""; +fill((7.832,7.154) +--(4.473,7.154) +--(4.473,5.61) +..controls(5.472,4.99)and(6.167,4.485) +..(6.557,4.095) +..controls(7.187,3.455)and(7.502,2.75) +..(7.502,1.98) +..controls(7.502,1.34)and(7.212,0.836) +..(6.632,0.466) +..controls(6.112,0.136)and(5.473,-0.029) +..(4.713,-0.029) +--(4.713,0.826) +..controls(4.733,0.826)and(4.768,0.826) +..(4.818,0.826) +..controls(4.868,0.826)and(4.903,0.826) +..(4.923,0.826) +..controls(5.272,0.826)and(5.629,0.959) +..(5.994,1.223) +..controls(6.359,1.488)and(6.541,1.771) +..(6.541,2.07) +..controls(6.541,2.62)and(6.241,3.185) +..(5.641,3.764) +..controls(5.091,4.294)and(4.541,4.624) +..(3.992,4.754) +..controls(3.442,4.624)and(2.887,4.294) +..(2.327,3.764) +..controls(1.717,3.185)and(1.412,2.62) +..(1.412,2.07) +..controls(1.412,1.771)and(1.602,1.486) +..(1.982,1.216) +..controls(2.332,0.956)and(2.682,0.826) +..(3.032,0.826) +..controls(3.052,0.826)and(3.092,0.826) +..(3.152,0.826) +..controls(3.211,0.826)and(3.251,0.826) +..(3.271,0.826) +--(3.271,-0.029) +..controls(2.521,-0.029)and(1.881,0.136) +..(1.351,0.466) +..controls(0.751,0.836)and(0.451,1.34) +..(0.451,1.98) +..controls(0.451,2.75)and(0.776,3.455) +..(1.426,4.095) +..controls(1.806,4.475)and(2.502,4.98) +..(3.512,5.61) +--(3.512,7.154) +--(0.002,7.154) +--(0.002,8.01) +--(7.832,8.01) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(111, 8.939FX#, 10.949FY#, 0.24FY#); ""; +fill((4.322,10.949) +..controls(2.192,10.949)and(0.912,9.969) +..(0.482,8.01) +--(0.002,8.01) +--(0.002,7.155) +--(0.482,7.155) +..controls(0.502,6.645)and(0.587,5.925) +..(0.737,4.995) +..controls(0.907,3.935)and(1.092,3.14) +..(1.292,2.61) +..controls(1.572,1.86)and(2.022,1.215) +..(2.642,0.675) +..controls(3.342,0.065)and(4.092,-0.24) +..(4.892,-0.24) +..controls(5.742,-0.24)and(6.402,0.01) +..(6.872,0.51) +..controls(7.272,0.94)and(7.472,1.48) +..(7.472,2.13) +..controls(7.472,2.79)and(7.292,3.35) +..(6.932,3.81) +..controls(7.362,4.17)and(7.717,4.695) +..(7.997,5.385) +..controls(8.247,6.015)and(8.372,6.605) +..(8.372,7.155) +--(8.702,7.155) +--(8.702,8.01) +--(1.592,8.01) +..controls(1.702,8.62)and(2.037,9.105) +..(2.597,9.465) +..controls(3.097,9.785)and(3.672,9.945) +..(4.322,9.945) +--(6.842,9.945) +--(6.842,10.949) +--cycle) xscaled FX yscaled FY; +fill((6.242,3.375) +..controls(6.422,3.045)and(6.512,2.67) +..(6.512,2.25) +..controls(6.512,1.76)and(6.317,1.38) +..(5.927,1.111) +..controls(5.617,0.881)and(5.272,0.766) +..(4.892,0.766) +..controls(3.602,0.766)and(2.652,1.635) +..(2.042,3.375) +--cycle) xscaled FX yscaled FY; +fill((7.262,7.006) +..controls(7.262,6.586)and(7.167,6.116) +..(6.977,5.596) +..controls(6.757,4.976)and(6.482,4.571) +..(6.152,4.381) +--(1.772,4.381) +..controls(1.632,4.841)and(1.562,5.441) +..(1.562,6.181) +..controls(1.562,6.231)and(1.567,6.371) +..(1.577,6.601) +..controls(1.587,6.831)and(1.592,6.966) +..(1.592,7.006) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(112, 8.01FX#, 8.01FY#, 0FY#); ""; +fill((1.592,3.389) +..controls(2.432,2.549)and(3.341,2.129) +..(4.321,2.129) +..controls(5.121,2.129)and(5.701,2.444) +..(6.061,3.074) +--(6.061,8.01) +--(7.771,8.01) +--(7.771,7.154) +--(7.021,7.154) +--(7.021,0) +--(6.061,0) +--(6.061,1.83) +..controls(5.611,1.409)and(5.051,1.199) +..(4.381,1.199) +..controls(3.621,1.199)and(2.831,1.444) +..(2.012,1.934) +..controls(1.272,2.374)and(0.762,2.839) +..(0.482,3.329) +..controls(0.872,3.909)and(1.066,4.584) +..(1.066,5.354) +..controls(1.066,6.114)and(0.872,6.714) +..(0.482,7.154) +--(0.002,7.154) +--(0.002,8.01) +--(1.291,8.01) +..controls(1.751,7.19)and(1.98,6.275) +..(1.98,5.264) +..controls(1.98,4.564)and(1.851,3.939) +..(1.592,3.389) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(113, 0.016FX#, -0.359FY#, 2.76FY#); ""; +fill((0.753,-2.76) +..controls(-0.067,-1.989)and(-0.917,-1.604) +..(-1.797,-1.604) +..controls(-2.037,-1.725)and(-2.287,-1.785) +..(-2.547,-1.785) +..controls(-2.887,-1.785)and(-3.057,-1.665) +..(-3.057,-1.425) +..controls(-3.057,-0.975)and(-2.697,-0.75) +..(-1.977,-0.75) +--(-1.977,-0.359) +--(-1.016,-0.359) +--(-1.016,-0.899) +..controls(-0.146,-1.2)and(0.444,-1.82) +..(0.753,-2.76) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(114, 8.07FX#, 8.01FY#, 0.164FY#); ""; +fill((7.832,7.154) +--(7.082,7.154) +--(7.082,2.01) +..controls(7.082,1.411)and(6.87,0.898) +..(6.445,0.473) +..controls(6.02,0.048)and(5.482,-0.164) +..(4.832,-0.164) +..controls(4.002,-0.164)and(3.162,0.201) +..(2.313,0.931) +..controls(1.503,1.62)and(1.098,2.395) +..(1.098,3.255) +..controls(1.098,3.745)and(1.243,4.149) +..(1.533,4.469) +..controls(1.822,4.789)and(2.212,4.949) +..(2.702,4.949) +--(6.121,4.949) +--(6.121,7.154) +--(0.002,7.154) +--(0.002,8.01) +--(7.832,8.01) +--cycle) xscaled FX yscaled FY; +fill((6.121,2.204) +--(6.121,4.094) +--(3.032,4.094) +..controls(2.362,4.094)and(2.027,3.814) +..(2.027,3.254) +..controls(2.027,2.964)and(2.13,2.644) +..(2.335,2.294) +..controls(2.54,1.945)and(2.802,1.645) +..(3.122,1.395) +..controls(3.682,0.965)and(4.227,0.75) +..(4.757,0.75) +..controls(5.166,0.75)and(5.496,0.88) +..(5.746,1.14) +..controls(5.996,1.4)and(6.121,1.755) +..(6.121,2.204) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(115, 8.189FX#, 8.01FY#, 0.09FY#); ""; +fill((6.242,7.154) +--(6.242,4.02) +--(2.882,4.02) +..controls(2.692,5.279)and(2.452,6.324) +..(2.162,7.154) +--cycle) xscaled FX yscaled FY; +fill((7.952,8.01) +--(0.002,8.01) +--(0.002,7.154) +--(1.082,7.154) +..controls(1.382,6.504)and(1.662,5.379) +..(1.922,3.779) +--(1.772,3.179) +..controls(1.522,2.879)and(1.307,2.519) +..(1.127,2.099) +..controls(0.947,1.649)and(0.857,1.249) +..(0.857,0.899) +..controls(0.857,0.279)and(1.132,-0.041) +..(1.682,-0.061) +..controls(2.132,-0.081)and(2.452,0.335) +..(2.642,1.185) +..controls(2.702,1.445)and(2.782,2.105) +..(2.882,3.165) +--(6.242,3.165) +--(6.242,0) +--(7.202,0) +--(7.202,7.154) +--(7.952,7.154) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(116, 7.891FX#, 8.01FY#, 0.18FY#); ""; +fill((7.652,7.154) +--(7.322,7.154) +--(7.322,4.049) +..controls(6.872,4.079)and(6.432,4.094) +..(6.002,4.094) +..controls(3.292,4.094)and(1.792,3.669) +..(1.502,2.819) +..controls(2.012,2.349)and(2.527,1.88) +..(3.047,1.41) +..controls(3.627,0.94)and(4.182,0.705) +..(4.712,0.705) +..controls(5.092,0.705)and(5.442,0.83) +..(5.762,1.08) +..controls(5.832,1.13)and(6.067,1.355) +..(6.467,1.755) +..controls(6.717,2.005)and(6.932,2.13) +..(7.112,2.13) +--(7.262,2.13) +..controls(7.262,1.54)and(6.984,1.008) +..(6.429,0.533) +..controls(5.874,0.058)and(5.302,-0.18) +..(4.712,-0.18) +..controls(4.132,-0.18)and(3.464,0.08) +..(2.709,0.6) +..controls(1.954,1.12)and(1.212,1.83) +..(0.482,2.73) +..controls(0.812,3.63)and(1.427,4.229) +..(2.327,4.529) +..controls(3.077,4.779)and(4.362,4.904) +..(6.181,4.904) +--(6.361,4.904) +--(6.361,7.154) +--(0.002,7.154) +--(0.002,8.01) +--(7.652,8.01) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(117, 8.939FX#, 10.979FY#, 0.24FY#); ""; +fill((8.702,7.154) +--(8.371,7.154) +..controls(8.371,6.604)and(8.246,6.014) +..(7.996,5.384) +..controls(7.716,4.694)and(7.362,4.169) +..(6.932,3.81) +..controls(7.292,3.35)and(7.473,2.79) +..(7.473,2.13) +..controls(7.473,1.48)and(7.273,0.94) +..(6.873,0.51) +..controls(6.403,0.01)and(5.743,-0.24) +..(4.892,-0.24) +..controls(4.092,-0.24)and(3.342,0.065) +..(2.642,0.675) +..controls(2.022,1.215)and(1.572,1.86) +..(1.292,2.61) +..controls(1.092,3.14)and(0.907,3.935) +..(0.737,4.994) +..controls(0.587,5.924)and(0.502,6.644) +..(0.482,7.154) +--(0.002,7.154) +--(0.002,8.01) +--(0.482,8.01) +..controls(0.902,9.919)and(2.182,10.899) +..(4.322,10.949) +..controls(5.361,10.969)and(6.246,10.744) +..(6.976,10.274) +..controls(7.786,9.744)and(8.251,8.99) +..(8.371,8.01) +--(8.702,8.01) +--cycle) xscaled FX yscaled FY; +fill((7.262,8.01) +..controls(7.192,8.569)and(6.827,9.044) +..(6.167,9.434) +..controls(5.567,9.773)and(4.952,9.943) +..(4.322,9.943) +..controls(3.662,9.943)and(3.082,9.783) +..(2.582,9.464) +..controls(2.032,9.104)and(1.702,8.619) +..(1.592,8.01) +--cycle) xscaled FX yscaled FY; +fill((7.262,7.004) +--(1.592,7.004) +..controls(1.592,6.964)and(1.587,6.829) +..(1.577,6.599) +..controls(1.567,6.369)and(1.562,6.229) +..(1.562,6.18) +..controls(1.562,5.44)and(1.632,4.841) +..(1.772,4.381) +--(6.152,4.381) +..controls(6.482,4.571)and(6.757,4.975) +..(6.977,5.595) +..controls(7.167,6.115)and(7.262,6.584) +..(7.262,7.004) +--cycle) xscaled FX yscaled FY; +fill((6.512,2.25) +..controls(6.512,2.67)and(6.422,3.045) +..(6.242,3.375) +--(2.042,3.375) +..controls(2.652,1.635)and(3.602,0.766) +..(4.892,0.766) +..controls(5.272,0.766)and(5.617,0.881) +..(5.927,1.111) +..controls(6.317,1.38)and(6.512,1.76) +..(6.512,2.25) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(118, 7.711FX#, 8.01FY#, 0FY#); ""; +fill((7.472,7.154) +--(6.992,7.154) +--(6.992,4.844) +--(1.952,4.844) +..controls(1.742,4.844)and(1.574,4.774) +..(1.449,4.634) +..controls(1.324,4.494)and(1.262,4.33) +..(1.262,4.14) +..controls(1.262,3.93)and(1.334,3.748) +..(1.479,3.593) +..controls(1.624,3.439)and(1.832,3.361) +..(2.102,3.361) +--(6.992,3.361) +--(6.992,2.506) +--(3.512,2.506) +..controls(3.512,1.916)and(3.767,1.475) +..(4.277,1.185) +..controls(4.717,0.925)and(5.302,0.795) +..(6.032,0.795) +..controls(6.122,0.795)and(6.277,0.805) +..(6.497,0.825) +..controls(6.717,0.845)and(6.882,0.855) +..(6.992,0.855) +--(6.992,0) +--(6.242,0) +..controls(5.122,0)and(4.224,0.225) +..(3.549,0.675) +..controls(2.874,1.125)and(2.531,1.735) +..(2.521,2.505) +..controls(1.851,2.535)and(1.326,2.715) +..(0.946,3.045) +..controls(0.616,3.345)and(0.451,3.704) +..(0.451,4.124) +..controls(0.451,4.544)and(0.614,4.912) +..(0.939,5.227) +..controls(1.264,5.542)and(1.691,5.699) +..(2.221,5.699) +--(6.031,5.699) +--(6.031,7.154) +--(0.002,7.154) +--(0.002,8.01) +--(7.472,8.01) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(119, 0.016FX#, -0.359FY#, 3.045FY#); ""; +fill((-1.377,-0.359) +--(-1.377,-1.38) +--(-2.668,-1.38) +--(-2.668,-2.7) +..controls(-2.848,-2.67)and(-3.063,-2.597) +..(-3.313,-2.482) +..controls(-3.563,-2.367)and(-3.729,-2.265) +..(-3.809,-2.175) +..controls(-3.668,-1.905)and(-3.598,-1.62) +..(-3.598,-1.32) +..controls(-3.598,-0.97)and(-3.683,-0.649) +..(-3.852,-0.359) +--(-4.242,-0.359) +..controls(-4.042,-0.639)and(-3.942,-0.959) +..(-3.942,-1.32) +..controls(-3.942,-1.67)and(-4.037,-1.955) +..(-4.227,-2.175) +..controls(-3.697,-2.755)and(-3.057,-3.045) +..(-2.307,-3.045) +--(-2.307,-1.695) +--(-1.377,-1.695) +--(-1.377,-3.045) +--(-1.017,-3.045) +--(-1.017,-0.359) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(120, 8.881FX#, 8.01FY#, 0.18FY#); ""; +fill((8.642,7.154) +--(7.893,7.154) +--(7.893,4.92) +--(2.372,4.92) +..controls(2.211,4.92)and(2.079,4.845) +..(1.974,4.695) +..controls(1.869,4.545)and(1.816,4.375) +..(1.816,4.186) +..controls(1.816,3.756)and(2.041,3.541) +..(2.492,3.541) +--(6.602,3.541) +..controls(7.062,3.541)and(7.422,3.361) +..(7.682,3.001) +..controls(7.912,2.681)and(8.027,2.281) +..(8.027,1.801) +..controls(8.027,1.381)and(7.937,1.006) +..(7.757,0.675) +..controls(7.567,0.315)and(7.312,0.09) +..(6.992,0) +..controls(6.562,-0.12)and(5.792,-0.18) +..(4.683,-0.18) +..controls(3.643,-0.18)and(2.823,-0.12) +..(2.223,0) +..controls(1.843,0.08)and(1.538,0.31) +..(1.308,0.69) +..controls(1.108,1.03)and(1.008,1.415) +..(1.008,1.845) +..controls(1.008,2.315)and(1.123,2.68) +..(1.352,2.94) +..controls(1.031,3.29)and(0.871,3.705) +..(0.871,4.185) +..controls(0.871,4.625)and(1.011,5) +..(1.291,5.31) +..controls(1.571,5.62)and(1.961,5.775) +..(2.461,5.775) +--(6.932,5.775) +--(6.932,7.154) +--(0.002,7.154) +--(0.002,8.01) +--(8.642,8.01) +--cycle) xscaled FX yscaled FY; +fill((7.082,1.726) +..controls(7.082,2.366)and(6.612,2.686) +..(5.671,2.686) +--(4.996,2.686) +--(4.996,0.766) +--(5.731,0.766) +..controls(6.192,0.766)and(6.547,0.876) +..(6.797,1.096) +..controls(6.987,1.266)and(7.082,1.476) +..(7.082,1.726) +--cycle) xscaled FX yscaled FY; +fill((4.035,0.766) +--(4.035,2.686) +--(3.361,2.686) +..controls(2.932,2.686)and(2.59,2.591) +..(2.335,2.401) +..controls(2.08,2.211)and(1.953,1.986) +..(1.953,1.726) +..controls(1.953,1.466)and(2.08,1.241) +..(2.335,1.051) +..controls(2.59,0.861)and(2.922,0.766) +..(3.331,0.766) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(121, 10.051FX#, 8.01FY#, 0FY#); ""; +fill((5.627,0) +--(5.627,3.585) +--(8.102,3.585) +--(8.102,0) +--(9.062,0) +--(9.062,7.154) +--(9.812,7.154) +--(9.812,8.01) +--(0.002,8.01) +--(0.002,7.154) +--(0.482,7.154) +..controls(1.022,6.414)and(1.292,5.554) +..(1.292,4.575) +..controls(1.292,3.635)and(1.032,2.88) +..(0.512,2.31) +..controls(1.202,1.56)and(1.897,1.005) +..(2.597,0.645) +..controls(3.457,0.215)and(4.467,0) +..(5.627,0) +--cycle) xscaled FX yscaled FY; +fill((1.532,7.154) +--(8.102,7.154) +--(8.102,4.439) +--(4.668,4.439) +--(4.668,0.93) +..controls(4.188,1.01)and(3.623,1.195) +..(2.973,1.485) +..controls(2.292,1.785)and(1.852,2.06) +..(1.652,2.31) +..controls(2.022,3.02)and(2.207,3.77) +..(2.207,4.56) +..controls(2.207,5.469)and(1.982,6.334) +..(1.532,7.154) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(122, 7.381FX#, 8.01FY#, 0.09FY#); ""; +fill((7.142,7.154) +--(6.393,7.154) +--(6.393,0) +--(5.432,0) +--(5.432,3.225) +--(2.283,3.225) +..controls(2.283,2.975)and(2.241,2.48) +..(2.156,1.74) +..controls(2.07,1)and(1.983,0.42) +..(1.893,0) +--(0.932,0) +..controls(1.172,1.53)and(1.302,2.605) +..(1.322,3.225) +--(0.484,3.225) +..controls(0.474,3.345)and(0.469,3.455) +..(0.469,3.555) +..controls(0.469,4.475)and(0.948,4.935) +..(1.907,4.935) +..controls(2.017,4.935)and(2.142,4.93) +..(2.282,4.92) +--(2.283,4.08) +--(5.432,4.08) +--(5.432,7.154) +--(0.002,7.154) +--(0.002,8.01) +--(7.142,8.01) +--cycle) xscaled FX yscaled FY; +fill((3.677,0.9) +..controls(3.817,0.9)and(3.934,0.853) +..(4.029,0.758) +..controls(4.124,0.663)and(4.172,0.545) +..(4.172,0.405) +..controls(4.172,0.275)and(4.124,0.16) +..(4.029,0.06) +..controls(3.934,-0.04)and(3.817,-0.09) +..(3.677,-0.09) +..controls(3.547,-0.09)and(3.432,-0.04) +..(3.332,0.06) +..controls(3.232,0.16)and(3.182,0.275) +..(3.182,0.405) +..controls(3.182,0.545)and(3.232,0.663) +..(3.332,0.758) +..controls(3.432,0.853)and(3.547,0.9) +..(3.677,0.9) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(123, 5.16FX#, 10.949FY#, 3.27FY#); ""; +fill((1.892,3.81) +..controls(2.402,3.96)and(2.749,4.16) +..(2.934,4.41) +..controls(3.119,4.66)and(3.212,5.04) +..(3.212,5.55) +--(3.212,9.329) +..controls(3.212,9.869)and(3.347,10.259) +..(3.617,10.499) +..controls(3.727,10.599)and(4.022,10.749) +..(4.502,10.949) +--(4.232,10.949) +..controls(2.632,10.949)and(1.832,10.329) +..(1.832,9.089) +--(1.832,5.31) +..controls(1.832,4.51)and(1.422,4.01) +..(0.602,3.81) +..controls(1.422,3.64)and(1.832,3.14) +..(1.832,2.31) +--(1.832,-1.2) +..controls(1.832,-2.08)and(2.077,-2.665) +..(2.567,-2.955) +..controls(2.917,-3.165)and(3.562,-3.27) +..(4.502,-3.27) +..controls(3.642,-3.06)and(3.212,-2.53) +..(3.212,-1.68) +--(3.212,1.98) +..controls(3.212,2.53)and(3.117,2.937) +..(2.927,3.202) +..controls(2.737,3.467)and(2.392,3.67) +..(1.892,3.81) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(124, 5.686FX#, 8.01FY#, 0FY#); ""; +fill((4.453,0) +--(3.492,0) +--(3.492,8.01) +--(4.453,8.01) +--cycle) xscaled FX yscaled FY; +fill((2.52,0) +--(1.559,0) +--(1.559,8.01) +--(2.52,8.01) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(125, 5.16FX#, 10.949FY#, 3.27FY#); ""; +fill((3.121,3.81) +..controls(2.621,3.67)and(2.276,3.467) +..(2.086,3.202) +..controls(1.896,2.937)and(1.801,2.53) +..(1.801,1.98) +--(1.801,-1.68) +..controls(1.801,-2.53)and(1.381,-3.06) +..(0.541,-3.27) +..controls(1.461,-3.27)and(2.106,-3.16) +..(2.476,-2.94) +..controls(2.946,-2.64)and(3.181,-2.06) +..(3.181,-1.2) +--(3.181,2.31) +..controls(3.181,3.14)and(3.591,3.64) +..(4.411,3.81) +..controls(3.591,4.02)and(3.181,4.52) +..(3.181,5.31) +--(3.181,9.089) +..controls(3.181,9.889)and(2.911,10.424) +..(2.371,10.694) +..controls(2.021,10.864)and(1.411,10.949) +..(0.541,10.949) +..controls(1.001,10.759)and(1.311,10.574) +..(1.471,10.394) +..controls(1.691,10.154)and(1.801,9.799) +..(1.801,9.329) +--(1.801,5.55) +..controls(1.801,5.04)and(1.896,4.66) +..(2.086,4.41) +..controls(2.276,4.16)and(2.621,3.96) +..(3.121,3.81) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(126, 0.016FX#, 11.551FY#, -8.58FY#); ""; +fill((-1.018,8.58) +..controls(-1.038,9.22)and(-1.143,9.685) +..(-1.333,9.975) +..controls(-1.573,10.325)and(-1.978,10.5) +..(-2.548,10.5) +--(-4.798,10.5) +..controls(-5.278,10.5)and(-5.628,10.85) +..(-5.848,11.551) +--(-6.178,11.551) +..controls(-6.138,10.21)and(-5.638,9.54) +..(-4.678,9.54) +--(-2.368,9.54) +..controls(-1.858,9.54)and(-1.488,9.22) +..(-1.258,8.58) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(127, 7.5FX#, 12FY#, 0FY#); ""; +fill((0.945,0) +--(0.945,12) +--(6.57,12) +--(6.57,0) +--cycle) xscaled FX yscaled FY; +fill((1.875,0.945) +--(5.625,0.945) +--(5.625,11.07) +--(1.875,11.07) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(129, 8.189FX#, 8.01FY#, 0FY#); ""; +fill((6.242,7.155) +--(6.242,0.855) +--(2.043,0.855) +--(2.043,7.155) +--cycle) xscaled FX yscaled FY; +fill((7.952,8.01) +--(0.002,8.01) +--(0.002,7.155) +--(1.082,7.155) +--(1.082,0) +--(7.202,0) +--(7.202,7.155) +--(7.952,7.155) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(130, 10.051FX#, 8.01FY#, 0FY#); ""; +fill((9.812,7.154) +--(9.063,7.154) +--(9.063,0) +--(8.102,0) +--(8.102,3.584) +--(5.627,3.584) +--(5.627,0) +..controls(4.467,0)and(3.457,0.215) +..(2.597,0.645) +..controls(1.897,1.005)and(1.202,1.56) +..(0.512,2.31) +--(1.262,2.91) +..controls(1.982,1.84)and(3.116,1.18) +..(4.666,0.93) +--(4.666,4.439) +--(8.102,4.439) +--(8.102,7.154) +--(0.002,7.154) +--(0.002,8.01) +--(9.812,8.01) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(131, 0.016FX#, -0.359FY#, 3.016FY#); ""; +fill((-2.563,-0.359) +--(-2.953,-0.359) +..controls(-2.953,-1.1)and(-2.953,-1.485) +..(-2.953,-1.515) +..controls(-2.903,-1.975)and(-2.758,-2.325) +..(-2.518,-2.565) +..controls(-2.198,-2.866)and(-1.698,-3.016) +..(-1.018,-3.016) +--(-1.018,-2.445) +..controls(-1.778,-2.505)and(-2.253,-2.275) +..(-2.443,-1.755) +..controls(-2.523,-1.555)and(-2.563,-1.09) +..(-2.563,-0.359) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(132, 0.016FX#, -0.359FY#, 3.105FY#); ""; +fill((-1.392,-0.359) +..controls(-1.392,-0.58)and(-1.442,-0.78) +..(-1.542,-0.96) +..controls(-1.652,-1.18)and(-1.802,-1.29) +..(-1.992,-1.29) +..controls(-2.052,-1.29)and(-2.18,-1.278) +..(-2.375,-1.253) +..controls(-2.57,-1.227)and(-2.712,-1.215) +..(-2.802,-1.215) +..controls(-3.072,-1.215)and(-3.207,-1.3) +..(-3.207,-1.47) +..controls(-3.207,-1.64)and(-3.057,-1.725) +..(-2.757,-1.725) +..controls(-2.857,-1.725)and(-2.587,-1.7) +..(-1.947,-1.65) +..controls(-1.737,-1.63)and(-1.572,-1.698) +..(-1.452,-1.853) +..controls(-1.332,-2.008)and(-1.292,-2.145) +..(-1.332,-2.265) +..controls(-1.422,-2.565)and(-1.697,-2.715) +..(-2.157,-2.715) +..controls(-2.587,-2.715)and(-2.957,-2.565) +..(-3.267,-2.265) +..controls(-3.287,-2.295)and(-3.317,-2.31) +..(-3.357,-2.31) +..controls(-3.167,-2.84)and(-2.737,-3.105) +..(-2.067,-3.105) +..controls(-1.787,-3.105)and(-1.535,-3.018) +..(-1.31,-2.843) +..controls(-1.085,-2.668)and(-0.972,-2.445) +..(-0.972,-2.175) +..controls(-0.972,-1.885)and(-1.122,-1.635) +..(-1.422,-1.425) +..controls(-1.152,-1.235)and(-1.017,-0.88) +..(-1.017,-0.359) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(133, 0.016FX#, -0.346FY#, 3.061FY#); ""; +fill((0.813,-0.346) +--(0.813,-1.35) +..controls(0.813,-1.9)and(0.568,-2.33) +..(0.078,-2.64) +..controls(-0.362,-2.92)and(-0.882,-3.04) +..(-1.482,-3) +..controls(-2.572,-2.93)and(-3.572,-2.545) +..(-4.482,-1.845) +--(-4.257,-1.35) +..controls(-3.527,-1.93)and(-2.642,-2.265) +..(-1.602,-2.355) +..controls(-1.192,-2.395)and(-0.795,-2.31) +..(-0.41,-2.1) +..controls(-0.025,-1.891)and(0.168,-1.641) +..(0.168,-1.351) +--(0.168,-0.346) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(134, 0.016FX#, -0.314FY#, 3.256FY#); ""; +fill((-2.053,-1.711) +--(-3.628,-1.711) +..controls(-3.648,-1.981)and(-3.58,-2.248) +..(-3.425,-2.513) +..controls(-3.27,-2.778)and(-3.078,-2.91) +..(-2.848,-2.91) +..controls(-2.258,-2.91)and(-1.993,-2.51) +..(-2.053,-1.711) +--cycle) xscaled FX yscaled FY; +fill((-1.662,-0.314) +--(-1.662,-1.92) +..controls(-1.662,-2.811)and(-2.057,-3.256) +..(-2.847,-3.256) +..controls(-3.197,-3.256)and(-3.482,-3.086) +..(-3.703,-2.746) +..controls(-3.903,-2.446)and(-4.003,-2.101) +..(-4.003,-1.711) +--(-4.348,-1.711) +..controls(-4.348,-1.431)and(-4.295,-1.248) +..(-4.19,-1.163) +..controls(-4.085,-1.078)and(-3.898,-1.035) +..(-3.628,-1.035) +--(-3.628,-1.365) +--(-2.053,-1.365) +--(-2.053,-0.314) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(135, 0.016FX#, -0.555FY#, 3.555FY#); ""; +fill((-1.842,-0.555) +--(-1.842,-1.844) +..controls(-2.062,-1.844)and(-2.282,-1.844) +..(-2.502,-1.844) +..controls(-3.512,-1.844)and(-4.077,-2.015) +..(-4.197,-2.358) +..controls(-3.984,-2.544)and(-3.777,-2.725) +..(-3.574,-2.901) +..controls(-3.331,-3.087)and(-3.103,-3.18) +..(-2.89,-3.18) +..controls(-2.688,-3.18)and(-2.49,-3.085) +..(-2.298,-2.895) +..controls(-2.105,-2.705)and(-1.973,-2.61) +..(-1.903,-2.61) +--(-1.842,-2.61) +..controls(-1.842,-2.84)and(-1.956,-3.055) +..(-2.183,-3.255) +..controls(-2.411,-3.455)and(-2.646,-3.555) +..(-2.888,-3.555) +..controls(-3.363,-3.555)and(-3.94,-3.16) +..(-4.617,-2.37) +..controls(-4.467,-1.96)and(-4.142,-1.695) +..(-3.642,-1.575) +..controls(-3.382,-1.505)and(-2.937,-1.47) +..(-2.307,-1.47) +--(-2.232,-1.47) +--(-2.232,-0.555) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(136, 0.016FX#, -0.51FY#, 2.865FY#); ""; +fill((-2.066,-0.51) +--(-2.066,-1.005) +..controls(-1.408,-1.415)and(-1.078,-1.815) +..(-1.078,-2.205) +..controls(-1.078,-2.415)and(-1.171,-2.578) +..(-1.356,-2.693) +..controls(-1.54,-2.808)and(-1.758,-2.865) +..(-2.008,-2.865) +--(-2.008,-2.58) +..controls(-1.988,-2.58)and(-1.973,-2.58) +..(-1.963,-2.58) +..controls(-1.943,-2.58)and(-1.928,-2.58) +..(-1.918,-2.58) +..controls(-1.808,-2.58)and(-1.693,-2.538) +..(-1.573,-2.452) +..controls(-1.453,-2.367)and(-1.393,-2.27) +..(-1.393,-2.16) +..controls(-1.393,-1.98)and(-1.488,-1.799) +..(-1.678,-1.619) +..controls(-1.867,-1.439)and(-2.052,-1.329) +..(-2.232,-1.289) +..controls(-2.412,-1.329)and(-2.597,-1.439) +..(-2.787,-1.619) +..controls(-2.977,-1.799)and(-3.072,-1.98) +..(-3.072,-2.16) +..controls(-3.072,-2.27)and(-3.012,-2.367) +..(-2.892,-2.452) +..controls(-2.772,-2.538)and(-2.657,-2.58) +..(-2.547,-2.58) +..controls(-2.537,-2.58)and(-2.522,-2.58) +..(-2.502,-2.58) +..controls(-2.492,-2.58)and(-2.477,-2.58) +..(-2.457,-2.58) +--(-2.457,-2.865) +..controls(-2.707,-2.865)and(-2.927,-2.805) +..(-3.117,-2.685) +..controls(-3.307,-2.565)and(-3.402,-2.405) +..(-3.402,-2.205) +..controls(-3.402,-1.825)and(-3.067,-1.425) +..(-2.396,-1.005) +--(-2.396,-0.51) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(137, 5.1FX#, 6.164FY#, 1.23FY#); ""; +fill((3.586,4.92) +--(2.506,4.17) +..controls(2.426,4.13)and(2.351,4.11) +..(2.281,4.11) +..controls(2.081,4.11)and(1.926,4.347) +..(1.816,4.822) +..controls(1.706,5.298)and(1.576,5.535) +..(1.426,5.535) +..controls(1.366,5.535)and(1.301,5.515) +..(1.231,5.475) +--(2.341,6.104) +..controls(2.421,6.144)and(2.491,6.164) +..(2.551,6.164) +..controls(2.691,6.164)and(2.811,5.947) +..(2.911,5.512) +..controls(3.011,5.077)and(3.161,4.86) +..(3.361,4.86) +..controls(3.421,4.86)and(3.496,4.88) +..(3.586,4.92) +--cycle) xscaled FX yscaled FY; +fill((3.511,0.42) +--(1.156,-1.23) +..controls(1.856,-0.72)and(2.206,-0.21) +..(2.206,0.3) +..controls(2.206,0.52)and(2.136,0.702) +..(1.996,0.847) +..controls(1.856,0.992)and(1.691,1.065) +..(1.501,1.065) +..controls(1.381,1.065)and(1.266,1.035) +..(1.156,0.975) +--(2.266,1.605) +..controls(2.396,1.675)and(2.521,1.71) +..(2.641,1.71) +..controls(2.891,1.71)and(3.101,1.555) +..(3.271,1.245) +..controls(3.411,0.985)and(3.491,0.71) +..(3.511,0.42) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(138, 4.756FX#, 10.949FY#, 2.189FY#); ""; +fill((4.083,-2.189) +--(2.733,-2.189) +--(-0.357,10.949) +--(0.977,10.949) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(139, 15FX#, 11.789FY#, 0.09FY#); ""; +fill((3.286,0) +..controls(1.526,1.068)and(0.646,2.207) +..(0.646,3.415) +..controls(0.646,4.184)and(1.007,5.023) +..(1.727,5.932) +..controls(1.917,6.181)and(2.582,6.895) +..(3.722,8.074) +..controls(4.432,8.822)and(4.787,9.377) +..(4.787,9.736) +..controls(4.787,9.966)and(4.667,10.161) +..(4.427,10.32) +..controls(4.317,9.824)and(4.097,9.352) +..(3.767,8.905) +..controls(3.387,8.398)and(2.992,8.145) +..(2.582,8.145) +..controls(2.302,8.145)and(2.036,8.274) +..(1.786,8.533) +..controls(1.586,8.731)and(1.486,8.95) +..(1.486,9.189) +..controls(1.486,9.617)and(1.766,10.012) +..(2.326,10.375) +..controls(2.886,10.738)and(3.461,10.92) +..(4.051,10.92) +..controls(4.791,10.92)and(5.227,10.605) +..(5.357,9.976) +..controls(5.426,9.617)and(5.171,9.077) +..(4.591,8.358) +..controls(3.561,7.1)and(2.981,6.376) +..(2.851,6.186) +..controls(2.211,5.218)and(1.891,4.279) +..(1.891,3.37) +..controls(1.891,2.272)and(2.356,1.148) +..(3.286,0) +--cycle) xscaled FX yscaled FY; +fill((8.252,9.211) +..controls(8.242,9.021)and(8.052,8.926) +..(7.682,8.926) +..controls(7.322,8.926)and(7.137,9.021) +..(7.127,9.211) +..controls(7.117,9.42)and(7.302,9.525) +..(7.682,9.525) +..controls(8.072,9.525)and(8.262,9.42) +..(8.252,9.211) +--cycle) xscaled FX yscaled FY; +fill((5.356,0.36) +..controls(5.856,0.06)and(6.456,-0.09) +..(7.156,-0.09) +..controls(7.976,-0.09)and(8.846,0.115) +..(9.766,0.525) +..controls(10.656,0.905)and(11.456,1.415) +..(12.166,2.055) +..controls(12.546,2.395)and(12.871,2.85) +..(13.141,3.42) +..controls(13.431,4.03)and(13.577,4.605) +..(13.577,5.145) +..controls(13.577,5.935)and(13.262,6.479) +..(12.632,6.779) +..controls(13.302,7.299)and(13.637,7.774) +..(13.637,8.204) +..controls(13.637,8.434)and(13.547,8.629) +..(13.367,8.789) +..controls(13.157,8.979)and(12.847,9.074) +..(12.436,9.074) +..controls(11.717,9.074)and(10.772,8.759) +..(9.602,8.13) +--(9.602,7.86) +..controls(10.321,8.23)and(10.926,8.415) +..(11.417,8.415) +..controls(11.777,8.415)and(12.027,8.3) +..(12.167,8.07) +..controls(12.227,7.98)and(12.257,7.88) +..(12.257,7.77) +..controls(12.257,7.5)and(12.081,7.248) +..(11.731,7.013) +..controls(11.381,6.778)and(11.041,6.675) +..(10.711,6.705) +--(10.711,6.465) +..controls(11.061,6.485)and(11.376,6.415) +..(11.656,6.255) +..controls(12.026,6.055)and(12.211,5.76) +..(12.211,5.37) +..controls(12.211,5.25)and(12.196,5.125) +..(12.166,4.995) +..controls(11.896,3.925)and(11.241,2.98) +..(10.201,2.16) +..controls(9.161,1.34)and(8.126,0.93) +..(7.096,0.93) +..controls(6.746,0.93)and(6.421,0.985) +..(6.121,1.094) +..controls(5.631,1.284)and(5.231,1.652) +..(4.921,2.2) +..controls(4.591,2.788)and(4.426,3.461) +..(4.426,4.218) +..controls(4.426,5.912)and(5.201,7.541) +..(6.751,9.105) +..controls(7.021,8.645)and(7.506,8.425) +..(8.206,8.445) +..controls(8.476,8.455)and(8.726,8.578) +..(8.956,8.813) +..controls(9.186,9.048)and(9.301,9.305) +..(9.301,9.585) +..controls(9.301,9.685)and(9.286,9.78) +..(9.256,9.87) +..controls(9.146,10.17)and(8.886,10.32) +..(8.477,10.32) +..controls(8.107,10.32)and(7.722,10.22) +..(7.322,10.02) +..controls(7.592,10.5)and(8.042,10.74) +..(8.672,10.74) +..controls(8.862,10.74)and(9.057,10.71) +..(9.257,10.65) +..controls(9.606,10.54)and(10.096,10.285) +..(10.727,9.885) +..controls(11.207,9.575)and(11.657,9.42) +..(12.077,9.42) +..controls(12.546,9.42)and(13.136,9.57) +..(13.846,9.87) +..controls(13.727,9.83)and(13.596,9.81) +..(13.456,9.81) +..controls(12.976,9.81)and(12.189,10.14) +..(11.094,10.8) +..controls(9.999,11.459)and(9.201,11.789) +..(8.701,11.789) +..controls(8.501,11.789)and(8.316,11.754) +..(8.146,11.684) +..controls(7.826,11.554)and(7.516,11.314) +..(7.216,10.964) +..controls(6.866,10.554)and(6.691,10.139) +..(6.691,9.719) +..controls(6.691,9.649)and(6.691,9.579) +..(6.691,9.509) +..controls(5.965,9.009)and(5.273,8.204) +..(4.616,7.094) +..controls(3.869,5.835)and(3.496,4.65) +..(3.496,3.54) +..controls(3.496,2.15)and(4.116,1.09) +..(5.356,0.36) +--cycle) xscaled FX yscaled FY; +fill((3.811,10.32) +..controls(3.251,10.291)and(2.896,10.128) +..(2.746,9.831) +..controls(2.646,9.634)and(2.596,9.496) +..(2.596,9.417) +..controls(2.596,9.209)and(2.701,9.105) +..(2.911,9.105) +..controls(3.101,9.105)and(3.301,9.239) +..(3.511,9.505) +..controls(3.721,9.772)and(3.826,10.009) +..(3.826,10.217) +..controls(3.826,10.256)and(3.821,10.291) +..(3.811,10.32) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(140, 13.5FX#, 10.561FY#, 0.119FY#); ""; +fill((14.699,8.865) +--(13.738,8.865) +--(13.738,9.105) +..controls(13.738,9.505)and(13.453,9.705) +..(12.884,9.705) +..controls(11.724,9.705)and(10.805,9.21) +..(10.125,8.22) +..controls(10.035,8.34)and(9.945,8.45) +..(9.855,8.551) +..controls(9.615,8.791)and(9.37,8.952) +..(9.12,9.032) +..controls(8.99,9.072)and(8.86,9.092) +..(8.73,9.092) +..controls(8.261,9.092)and(7.836,8.862) +..(7.456,8.401) +..controls(7.106,7.981)and(6.881,7.505) +..(6.781,6.975) +--(12.885,6.975) +--(12.885,6.119) +--(12.6,6.119) +..controls(12.6,5.659)and(12.49,5.169) +..(12.27,4.65) +..controls(12.03,4.1)and(11.725,3.67) +..(11.355,3.36) +..controls(11.676,2.96)and(11.836,2.48) +..(11.836,1.92) +..controls(11.836,1.36)and(11.661,0.896) +..(11.311,0.526) +..controls(10.911,0.096)and(10.346,-0.119) +..(9.616,-0.119) +..controls(8.926,-0.119)and(8.28,0.146) +..(7.68,0.676) +..controls(7.14,1.136)and(6.75,1.69) +..(6.51,2.34) +..controls(6.34,2.79)and(6.185,3.45) +..(6.045,4.32) +..controls(5.915,5.099)and(5.845,5.699) +..(5.835,6.119) +--(5.415,6.119) +--(5.415,6.975) +--(5.835,6.975) +..controls(6.015,7.805)and(6.34,8.5) +..(6.81,9.061) +..controls(7.32,9.661)and(7.9,9.961) +..(8.55,9.961) +..controls(8.74,9.961)and(8.937,9.933) +..(9.142,9.878) +..controls(9.347,9.823)and(9.675,9.66) +..(10.125,9.39) +..controls(11.015,10.17)and(11.984,10.561) +..(13.034,10.561) +..controls(13.464,10.561)and(13.849,10.438) +..(14.189,10.193) +..controls(14.529,9.948)and(14.699,9.66) +..(14.699,9.33) +--cycle) xscaled FX yscaled FY; +fill((5.97,0) +--(4.98,0) +..controls(4.32,0)and(3.9,0.205) +..(3.72,0.615) +..controls(3.62,0.845)and(3.57,1.365) +..(3.57,2.175) +--(3.57,3.705) +..controls(3.18,3.485)and(2.745,3.375) +..(2.265,3.375) +..controls(1.645,3.375)and(1.113,3.565) +..(0.668,3.945) +..controls(0.223,4.325)and(0,4.765) +..(0,5.265) +..controls(0,5.765)and(0.223,6.204) +..(0.668,6.584) +..controls(1.113,6.964)and(1.645,7.154) +..(2.266,7.154) +..controls(2.906,7.154)and(3.443,6.979) +..(3.879,6.629) +..controls(4.314,6.279)and(4.531,5.824) +..(4.531,5.264) +--(4.531,1.77) +..controls(4.531,0.69)and(5.011,0.1) +..(5.97,0) +--cycle) xscaled FX yscaled FY; +fill((11.639,6.119) +--(6.781,6.119) +..controls(6.781,6.079)and(6.781,5.959) +..(6.781,5.759) +..controls(6.781,5.569)and(6.781,5.45) +..(6.781,5.4) +..controls(6.781,4.79)and(6.836,4.275) +..(6.946,3.855) +--(10.697,3.855) +..controls(10.986,4.015)and(11.22,4.36) +..(11.4,4.89) +..controls(11.559,5.34)and(11.639,5.749) +..(11.639,6.119) +--cycle) xscaled FX yscaled FY; +fill((10.996,2.025) +..controls(10.996,2.395)and(10.921,2.72) +..(10.771,3) +--(7.155,3) +..controls(7.695,1.51)and(8.515,0.766) +..(9.616,0.766) +..controls(9.936,0.766)and(10.231,0.861) +..(10.501,1.051) +..controls(10.831,1.28)and(10.996,1.605) +..(10.996,2.025) +--cycle) xscaled FX yscaled FY; +fill((3.57,5.265) +..controls(3.57,5.544)and(3.442,5.787) +..(3.185,5.992) +..controls(2.929,6.196)and(2.625,6.299) +..(2.272,6.299) +..controls(1.92,6.299)and(1.616,6.196) +..(1.359,5.992) +..controls(1.103,5.787)and(0.975,5.544) +..(0.975,5.265) +..controls(0.975,4.985)and(1.103,4.743) +..(1.359,4.538) +..controls(1.616,4.333)and(1.92,4.23) +..(2.272,4.23) +..controls(2.625,4.23)and(2.929,4.333) +..(3.185,4.538) +..controls(3.442,4.743)and(3.57,4.985) +..(3.57,5.265) +--cycle) xscaled FX yscaled FY; +endchar; + +beginchar(141, 10.141FX#, 11.025FY#, 1.904FY#); ""; +fill((10.005,3.87) +..controls(9.955,3.3)and(9.58,2.515) +..(8.88,1.515) +..controls(8.15,0.455)and(7.775,-0.11) +..(7.755,-0.18) +..controls(7.525,0.11)and(7.19,0.495) +..(6.751,0.975) +..controls(6.681,0.895)and(6.331,0.735) +..(5.701,0.495) +..controls(6.101,0.325)and(6.541,0.06) +..(7.021,-0.3) +..controls(7.171,-0.41)and(7.246,-0.56) +..(7.246,-0.75) +..controls(7.246,-0.89)and(7.196,-1.01) +..(7.096,-1.11) +..controls(6.996,-1.21)and(6.881,-1.26) +..(6.751,-1.26) +..controls(6.621,-1.26)and(6.503,-1.21) +..(6.398,-1.11) +..controls(6.293,-1.01)and(6.24,-0.89) +..(6.24,-0.75) +..controls(6.24,-0.62)and(6.29,-0.505) +..(6.391,-0.405) +..controls(6.251,-0.195)and(5.891,0.005) +..(5.311,0.195) +--(5.311,-0.99) +..controls(5.46,-1.1)and(5.535,-1.235) +..(5.535,-1.394) +..controls(5.535,-1.734)and(5.365,-1.904) +..(5.025,-1.904) +..controls(4.686,-1.904)and(4.516,-1.734) +..(4.516,-1.394) +..controls(4.516,-1.235)and(4.591,-1.1) +..(4.741,-0.99) +--(4.741,0.195) +..controls(4.161,0.005)and(3.801,-0.195) +..(3.661,-0.405) +..controls(3.761,-0.505)and(3.811,-0.62) +..(3.811,-0.75) +..controls(3.811,-0.89)and(3.761,-1.01) +..(3.66,-1.11) +..controls(3.56,-1.21)and(3.44,-1.26) +..(3.3,-1.26) +..controls(3.17,-1.26)and(3.055,-1.21) +..(2.955,-1.11) +..controls(2.855,-1.01)and(2.805,-0.89) +..(2.805,-0.75) +..controls(2.805,-0.56)and(2.88,-0.41) +..(3.03,-0.3) +..controls(3.51,0.06)and(3.95,0.325) +..(4.351,0.495) +..controls(4.041,0.615)and(3.691,0.775) +..(3.301,0.975) +..controls(3.111,0.785)and(2.776,0.4) +..(2.296,-0.18) +..controls(2.276,-0.11)and(1.901,0.455) +..(1.171,1.515) +..controls(0.471,2.515)and(0.096,3.3) +..(0.046,3.87) +..controls(0.026,4.09)and(0.016,4.285) +..(0.016,4.455) +..controls(0.016,5.905)and(0.776,7.275) +..(2.296,8.565) +--(2.626,8.565) +..controls(1.646,7.545)and(1.156,6.455) +..(1.156,5.295) +..controls(1.156,5.045)and(1.176,4.79) +..(1.216,4.53) +..controls(1.356,3.63)and(1.781,2.84) +..(2.491,2.16) +..controls(3.111,1.58)and(3.861,1.14) +..(4.741,0.84) +--(4.741,1.17) +..controls(4.671,1.22)and(4.336,1.38) +..(3.736,1.65) +--(3.886,2.445) +..controls(3.206,2.675)and(2.651,3.09) +..(2.221,3.69) +..controls(1.791,4.29)and(1.576,4.96) +..(1.576,5.7) +..controls(1.576,6.4)and(1.769,7.035) +..(2.154,7.605) +..controls(2.538,8.175)and(3.041,8.595) +..(3.661,8.865) +..controls(3.631,9.025)and(3.586,9.17) +..(3.526,9.3) +..controls(4.146,9.92)and(4.646,10.495) +..(5.026,11.025) +..controls(5.406,10.495)and(5.906,9.92) +..(6.526,9.3) +--(6.391,8.865) +..controls(7.011,8.595)and(7.514,8.175) +..(7.899,7.605) +..controls(8.284,7.035)and(8.477,6.4) +..(8.477,5.7) +..controls(8.477,4.96)and(8.261,4.29) +..(7.831,3.69) +..controls(7.401,3.09)and(6.846,2.675) +..(6.166,2.445) +--(6.316,1.65) +..controls(6.066,1.56)and(5.731,1.4) +..(5.311,1.17) +--(5.311,0.84) +..controls(6.19,1.14)and(6.94,1.58) +..(7.56,2.16) +..controls(8.27,2.84)and(8.695,3.63) +..(8.835,4.53) +..controls(8.875,4.79)and(8.895,5.045) +..(8.895,5.295) +..controls(8.895,6.455)and(8.405,7.545) +..(7.426,8.565) +--(7.756,8.565) +..controls(9.275,7.275)and(10.035,5.905) +..(10.035,4.455) +..controls(10.035,4.285)and(10.025,4.09) +..(10.005,3.87) +--cycle) xscaled FX yscaled FY; +fill((7.682,5.7) +..controls(7.682,6.81)and(7.202,7.6) +..(6.242,8.07) +..controls(6.011,7.04)and(5.896,6.12) +..(5.896,5.31) +..controls(5.896,4.72)and(5.951,4.035) +..(6.061,3.255) +..controls(6.552,3.455)and(6.944,3.775) +..(7.239,4.215) +..controls(7.534,4.655)and(7.682,5.15) +..(7.682,5.7) +--cycle) xscaled FX yscaled FY; +fill((4.006,3.255) +..controls(4.116,4.015)and(4.171,4.68) +..(4.171,5.25) +..controls(4.171,6.07)and(4.051,7.01) +..(3.811,8.07) +..controls(2.851,7.6)and(2.371,6.81) +..(2.371,5.7) +..controls(2.371,5.15)and(2.521,4.655) +..(2.821,4.215) +..controls(3.121,3.775)and(3.516,3.455) +..(4.006,3.255) +--cycle) xscaled FX yscaled FY; +endchar; + + +font_slant := 0; +font_normal_space := 4.873 * FX#; +font_normal_stretch := 2.437 * FX#; +font_normal_shrink := 1.624 * FX#; +font_quad := 14.62 * FX#; +font_x_height := 8.01 * FX#; +designsize := FontSize; + +end. diff --git a/language/gurmukhi/pandey/pun10.tfm b/language/gurmukhi/pandey/pun10.tfm Binary files differnew file mode 100644 index 0000000000..797a85757f --- /dev/null +++ b/language/gurmukhi/pandey/pun10.tfm diff --git a/language/gurmukhi/singh/Readme b/language/gurmukhi/singh/Readme new file mode 100644 index 0000000000..4909831cff --- /dev/null +++ b/language/gurmukhi/singh/Readme @@ -0,0 +1,106 @@ + Gurmukhi for TeX + User Manual + + Version 1.0 + October 1995 + + Amarjit Singh + +________________________________________________________________________ + + 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 1, 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. +________________________________________________________________________ + +The purpose of the "Gurmukhi for TeX" software package is to convert the +characters in a document from English Alphabet to Gurmukhi utilizing the +TeX and Metafont software packages. Gurmukhi is a script for the Punjabi +language mostly used in North India. + +TeX is a typesetting system is a trademark of the American Mathematical +Society, used widely on Unix systems, and occassionally on other +operating environments. Metafont, a trademark of Addison Wesley +Publishing Company, is a font generation tool used by TeX. Both TeX and +Metafont are free software packages which can be downloaded from a TeX +archive sites. A working knowledge of TeX will greatly help in using +this package. + +This software package is greatly inspired by "Devanagari for TeX" which +is written by Frans J. Velthuis. I would like to thank him for giving +me permission to change his software package to support Gurmukhi. + + +This package consists of following file: + + gurmukhi.c C-source code of preprocessor + gmmacs.tex macro file for TeX + defs.mf, gmchars.mf, grmk8.mf, grmk9.mf, grmk10.mf + METAFONT-Source code of Gurmukhi characters. + grmk8.tfm, grmk9.tfm, grmk10.tfm + TFM Font format of Gurmukhi characters. + readme This file, describing this package. + install.ux File with some help on installation in Unix env. + install.dos Some help to install this package on DOS. + manual.gm and manual.ps + Manual on how to create documents using this package + bani.gm and eg.gm + Example files with Gurmukhi characters and other + information. + known.prob Known issues, and your help will be appreciated. + +All these files are put together in a tar file such that at the time of +extraction all file go into same directory. For every specific operating +environment, these files may need to move to different directories, and +that information is provided in install.* file for that environment. + +Details of each file included in this package: + +o gurmukhi.c, is the c-source file for preprocessor and you would need to + create an executable file by compiling this with a c compiler. I + believe, compilation should be fairly easy on any environment as the + source code has no system dependency. + + The purpose of this preprocessor is to convert text in a .gm file to a + .tex file in a format understanable by TeX. + +o gmmacs.tex, contains macros for TeX, and should be included in your + text file. This file has macros for fonts, for spacing and for other + macros which are generated by the Gurmukhi preprocessor. + +o *.mf, are the METAFONT source files for Gurmukhi fonts in various + point sizes. These files will be used to produce Gurmukhi fonts in + different formats. + +o *.tfm are the font files in TFM format. A TFM file can be generated + from a MF file using METAFONT. Usually, TeX internally calls METAFONT + to create required files. + +o manual.* contain the information on preparing an input text file (.gm) + and use of this package in detail. A postscript version of this manual + is also included, which can be directly sent to a postscript printer. + It may be useful, to get information on the package, while writing an + input text file. + +o *.gm, are some file to serve as examples. These can be used to + understand the features of a Gurmukhi text, and can also be used + as input text to see if the installation is complete. + + +If you have comments or suggestion, feel free to send them to me at +the following address: + +E-mail: asingh@evolving.com + +Current Postal Mail: 8405 E. Hampden Ave #11N Denver CO 80231 USA +Permanent Postal Address : A-3 ManSarover Garden, New Delhi 110015 India diff --git a/language/gurmukhi/singh/bani.gm b/language/gurmukhi/singh/bani.gm new file mode 100644 index 0000000000..df1575cbdd --- /dev/null +++ b/language/gurmukhi/singh/bani.gm @@ -0,0 +1,41 @@ +@punjabi +@obeylines +%________________________________________________________________________ +% +% 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 1, 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. +%________________________________________________________________________ +\input gmmacs +\gmnum + +\centerline{\gm 1.o satiguru prasAdi} +\centerline{\gm sUhI mahalA 5 } +{\gm + +jis ke sir Upari tuuN suaamii, so dukhu kaisaa paavai || +boli n jaanai maaiiaa madi maataa, mara.naa ciiti n aavai ||1|| +mere raamaraaii, tuuN sNtaa kaa sNt tere|| +tere sevak kau bhau kichu naahii, jamu nahii aavai nere ||1|| rahaau || +jo terai rNgi raate suaamii, tin kaa janam mara.n dukhu naasaa || +terii bakhas n me.tai koI, satigur kaa dilaasaa ||2|| +naamu dhiaaiini, sukh phala paaiini, aa.th pahar aaraadhahi|| +terii sara.ni tere bharavaasai, pNc dush.t lai saadhahi ||3|| +giaanu dhiaanu kichu karamu n jaa.naa, saar n jaa.naa terii|| +sabh te va.daa satiguru naanak, jini kala raakhii merii ||4||10||57|| + +} + +\bye + + diff --git a/language/gurmukhi/singh/copying b/language/gurmukhi/singh/copying new file mode 100644 index 0000000000..9a17037581 --- /dev/null +++ b/language/gurmukhi/singh/copying @@ -0,0 +1,249 @@ + + GNU GENERAL PUBLIC LICENSE + Version 1, February 1989 + + Copyright (C) 1989 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 license agreements of most software companies try to keep users +at the mercy of those companies. By contrast, our 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. The +General Public License applies to the Free Software Foundation's +software and to any other program whose authors commit to using it. +You can use it for your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Specifically, the General Public License is designed to make +sure that you have the freedom to give away or sell copies of free +software, 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 a 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 tell them 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. + + 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 Agreement 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 work containing the +Program or a portion of it, either verbatim or with modifications. Each +licensee is addressed as "you". + + 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 +General Public License and to the absence of any warranty; and give any +other recipients of the Program a copy of this General Public License +along with the Program. You may charge a fee for the physical act of +transferring a copy. + + 2. You may modify your copy or copies of the Program or any portion of +it, and copy and distribute such modifications under the terms of Paragraph +1 above, provided that you also do the following: + + a) cause the modified files to carry prominent notices stating that + you changed the files and the date of any change; and + + b) cause the whole of any work that you distribute or publish, that + in whole or in part contains the Program or any part thereof, either + with or without modifications, to be licensed at no charge to all + third parties under the terms of this General Public License (except + that you may choose to grant warranty protection to some or all + third parties, at your option). + + c) If the modified program normally reads commands interactively when + run, you must cause it, when started running for such interactive use + in the simplest and most usual 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 General + Public License. + + d) 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. + +Mere aggregation of another independent work with the Program (or its +derivative) on a volume of a storage or distribution medium does not bring +the other work under the scope of these terms. + + 3. You may copy and distribute the Program (or a portion or derivative of +it, under Paragraph 2) in object code or executable form under the terms of +Paragraphs 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 + Paragraphs 1 and 2 above; or, + + b) accompany it with a written offer, valid for at least three + years, to give any third party free (except for a nominal charge + for the cost of distribution) a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of + Paragraphs 1 and 2 above; or, + + c) accompany it with the information you received as to where the + corresponding source code may be obtained. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form alone.) + +Source code for a work means the preferred form of the work for making +modifications to it. For an executable file, complete source code means +all the source code for all modules it contains; but, as a special +exception, it need not include source code for modules which are standard +libraries that accompany the operating system on which the executable +file runs, or for standard header files or definitions files that +accompany that operating system. + + 4. You may not copy, modify, sublicense, distribute or transfer the +Program except as expressly provided under this General Public License. +Any attempt otherwise to copy, modify, sublicense, distribute or transfer +the Program is void, and will automatically terminate your rights to use +the Program under this License. However, parties who have received +copies, or rights to use copies, from you under this General Public +License will not have their licenses terminated so long as such parties +remain in full compliance. + + 5. By copying, distributing or modifying 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. + + 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. + + 7. 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 the 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 +the license, you may choose any version ever published by the Free Software +Foundation. + + 8. 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 + + 9. 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. + + 10. 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 humanity, 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. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) 19yy <name of author> + + 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 1, 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) 19xx 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 a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + program `Gnomovision' (a program to direct compilers to make passes + at assemblers) written by James Hacker. + + <signature of Ty Coon>, 1 April 1989 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/language/gurmukhi/singh/defs.mf b/language/gurmukhi/singh/defs.mf new file mode 100644 index 0000000000..54225e30db --- /dev/null +++ b/language/gurmukhi/singh/defs.mf @@ -0,0 +1,99 @@ +% DEFS.MF +% Header file with Metafont-parameters for the Devanagari fonts +% +% Copyright (C) 1991 University of Groningen, The Netherlands +% +% Author: Frans J. Velthuis +% Internet: velthuis@rc.rug.nl +% Bitnet: velthuis@hgrrug5 +% +% 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 1, 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. +% + penwd# :=thick# * cosd(rot-90); + usthick# := thick#; + mb# := .2ht#; + define_pixels(penwd,usthick,mb); + define_blacker_pixels(thin,thick,subthick); + thin := max(thin,1); subthick := max(subthick,1); + smoothing := 0; + pickup pencircle xscaled thick yscaled thin rotated rot; + scpenwd := pen_rt - pen_lft; + frame_pen := savepen; + pickup pencircle xscaled subthick yscaled thin rotated rot; + sub_pen := savepen; + picture v[]; + numeric vbar[]; + extra_endchar := extra_endchar & "chardp := chardp + mb#;" ; + + def tframe = + pickup frame_pen; + z1=(w-brm-.7rm,h); z2=(w,h); + x3=good.x w-brm; y3=h; z4=(x3,0); + draw z1--z2; + draw z3--z4; + enddef; + + def aframe = + pickup frame_pen; + z1=(w-rm-brm,h); z2=(w,h); + x3=good.x w-brm; y3=h; z4=(x3,0); + draw z1--z2; + draw z3--z4; + enddef; + + def endsav = + vbar[charcode]=x3; + cullit; + v[charcode]=currentpicture; + endchar; + enddef; + + def cutoff(expr t) = + x23 = vbar[t]; + fill (-penwd,-d-mb-penwd)--(x23-.6scpenwd,-d-mb-penwd)--(x23-.6scpenwd, + h+penwd)--(-penwd,h+penwd)--cycle withweight 2; + cull currentpicture keeping(2,2); + addto currentpicture also v[t]; + cull currentpicture keeping (2,2); + w := floor(x23-.6scpenwd); + enddef; + + def addpic(expr t) = + addto currentpicture also v[t]; + enddef; + + def frame = + pickup frame_pen; + z1 = (0,ht); z2 = (w,ht); + x3 = good.x w-brm; y3 = ht; z4 = (x3,0); + draw z1--z2; draw z3--z4; + enddef; + + def sqdot(expr p)= + x25:=floor(xpart p)+.5; + y25:=floor(ypart p)+.5; + dwd:=ceiling(thick); + if not odd dwd: dwd:= dwd+1; fi + fill unitsquare shifted -(.5,.5) rotated 45 scaled (.5sqrt2 * dwd) + shifted z25; + enddef; + + def low_n(expr nw,nh)= + y38 := good.y nh; x38 := x3; + y39 := y38 - .6penwd; x39 := nw; + filldraw fullcircle scaled 1.2penwd shifted(x39,y39); + z40 = (x39,y38); + draw z38--z40; + enddef; diff --git a/language/gurmukhi/singh/eg.gm b/language/gurmukhi/singh/eg.gm new file mode 100644 index 0000000000..d1bb2339c0 --- /dev/null +++ b/language/gurmukhi/singh/eg.gm @@ -0,0 +1,35 @@ +@punjabi +%________________________________________________________________________ +% +% 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 1, 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. +%________________________________________________________________________ +\input gmmacs +\hsize=6in + + +{\gm {\gmsmall iih pNktI `smAl' a~akharAM vi~ac li~akhI gaI hai ! }} + +{\gm {\gmnine iih pNktI `nAiin' a~akharAM vi~ac li~akhI gaI hai ! }} + +{\gm {\gmnormal iih pNktI `nArmal' a~akharAM vi~ac li~akhI gaI hai ! }} + +{\gm {\gmbig iih pNktI `big' a~akharAM vi~ac li~akhI gaI hai ! }} + +{\gm {\gmlarge iih pNktI `lArj' a~akharAM vi~ac li~akhI gaI hai ! }} + +{\gm {\gmhuge iih pNktI `hyUj' a~akharAM vi~ac li~akhI gaI hai ! }} + + +\bye diff --git a/language/gurmukhi/singh/env b/language/gurmukhi/singh/env new file mode 100644 index 0000000000..d7927f05c6 --- /dev/null +++ b/language/gurmukhi/singh/env @@ -0,0 +1,25 @@ +#________________________________________________________________________ +# +# 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 1, 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. +#________________________________________________________________________ + +# environment variables for TeX and LaTeX + +set texbase = /home/abc/gurmukhi/lib/tex +setenv TEXINPUTS .:$texbase/macros: +setenv TEXFONTS :$texbase/tfm +setenv TEXPKS :$texbase/pk +setenv MFINPUTS :$texbase/mf +unset texbase diff --git a/language/gurmukhi/singh/gmchars.mf b/language/gurmukhi/singh/gmchars.mf new file mode 100644 index 0000000000..e336c9e452 --- /dev/null +++ b/language/gurmukhi/singh/gmchars.mf @@ -0,0 +1,1004 @@ +% GMCHARS.MF +% Metafont source file of the Gurmukhi font +% +% Author: Amarjit Singh +% E-mail: asingh@evolving.com +% +% 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 1, 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. +% +%________________________________________________________________________ +beginchar(0,0,ht#,0); "sub-u"; +% 0x0 + pickup frame_pen; + x1=-1/2uwidth; y1=mb-(penwd+1/4uwidth); + z2=(1/4uwidth, y1); + draw z1{down}..tension4.0..z2; +endchar; +beginchar(1,0,ht#,0); "sub-U"; +% 0x1 + pickup frame_pen; + x1=-1/2uwidth; y1=mb-(penwd+1/4uwidth); + z2=(1/4uwidth, y1); + x3=x1; y3=mb-(penwd+3/5uwidth); + z4=(x2, y3); + draw z1{down}..tension4.0..z2; + draw z3{down}..tension4.0..z4; +endsav; +beginchar(3,.9twd#+brm#,1.5ht#,0); "sup-e"; +% 0x3 + pickup frame_pen; + z1=(w-brm,ht+1.5penwd); + z2=(0,1.5ht); + draw z1{curl.5}..{left}z2; +endchar; +beginchar(11,1.1twd#+brm#,ht#,0); ".g"; +% 0xb + italcorr brm#; path p; + z11=(.6(w-brm),.5penwd); + sqdot(z11); + frame; z5=(.25(w-brm),h); + z6=(x5,.3h); + z7=2/3[z5,z6]; + z8=z7 shifted (.1(w-brm),0); + z9= (1/2penwd,y6+.08h); + p = z5..z8{down}..z6{left}..z9{up}; + z10 = point 2.4 of p; + draw p..z10; +endchar; +beginchar(12,1.1twd#+brm#,ht#,0); ".kh"; +% 0xc + italcorr brm#; + tframe; path p; + z5=(1/2penwd,.55h); + z6=(x3,.55h); + z7=(0,h); + draw z5{dir-70}..tension.95..z6; + p = z5{right}..tension.95..z7; + draw p; + z12=(.65(w-brm),0); + sqdot(z12); + z8 = point .22 of p; + x9 = x3; y9 = y8; + pickup sub_pen; + draw z8--z9; +endchar; +beginchar(20,twd#,ht#,0); "period"; +% 0x14 + z1=(1/2w,1/2penwd); + sqdot(z1); +endchar; +beginchar(26,1.15twd#+rm#,ht#,0); "'n"; +% 0x1a + italcorr rm#+.5twd#; + pickup frame_pen; + z1=(0,h); z2=(w,h); + draw z1--z2; + lm := w-rm; + x3=good.x .25lm; y3=h; + z4=(x3,.68h); + z5=(lm,.47h); + z6=(.3lm,.1h); + z7=(3/2penwd,.23h); + draw z3--z4{right}..tension.9..{down}z5..tension.9..{left}z6..z7; + z8=(.6lm,-1/7h); + draw z7{right}..tension.8..z8; +endchar; +beginchar(27,1.07twd#+rm#,ht#,0); "front-o"; +% 0x1b + pickup frame_pen; + z1=(0,h); z2=(w,h); + lm:=w-rm; + z3=(.84lm,h); z4=(.4lm,.55h); + z5=(.64lm,y4); + z6=(x5,1/2penwd); + z7=(1/2penwd,h); + draw z1--z2; + draw z4--z5{right}..tension1.1..z3; + draw z5..z6{left}..{curl.4}z7; + + x8=.42lm+1/4penwd; y8=1.5h; + x9=lm; y9 = 1.6h; + draw z7{up}..z8..z9; + +% z8=(0,1.1h); +% z9=(w-.5rm+.6twd,1.8h); +% draw z7..z8..z9; +% +% curl over small e matra +% frame +% z5=(x3,1.35ht); +% z6=(w-.5rm+.6twd,1.35ht); +% x7=.3[x5,x6]; y7=1.5ht; +% draw z3--z5{up}..z7{right}..{curl0}z6; + +% very intersting curve +% x8 = good.x w-brm; y8 = 1.35h; +% z9=(w-.5rm+.6twd,2.35h); +% x10=0; y10=1.5h; +% z11=(0,h); +% draw z11..z10{left}..z9; + +% perfect curve but too big +% z8=(0,1.5h); +% z9=(w-.5rm+.6twd,2.35h); +% draw z7..z8..tension.95..z9; +endchar; + +beginchar(" ",0,1.5ht#,0); "candrabindu"; +% 0x20 + lm := .7twd; + z1=(.55lm,1.48ht); + sqdot(z1); + pickup sub_pen; + z5=(lm,1.5ht); + z6=(.66lm,1.25ht); + z7=(0,1.5ht); + draw z5..tension1.1..z6{left}..z7; +endchar; +beginchar(38,0,ht#,0); "/v"; +% 0x26 + path p; + pickup sub_pen; + z1 = (2/14uwidth,mb-penwd); + z2 = (-9/28uwidth,mb-(penwd+.18uwidth)); + z3 = (9/28uwidth,mb-(penwd+.36uwidth)); + p = z1{left}..tension1.2..z2{down}..tension1.1..{curl.2}z3; + draw p; + z4 = point 1.5 of p; + z5 = (-8/28uwidth,mb-(penwd+.57uwidth)); + z6 = (3/7uwidth,mb-(penwd+.68uwidth)); + draw z4..tension1.1..z5{down}..tension1.2..{curl.3}z6; +endchar; +beginchar("'",1.1twd#+rm#,ht#,0); "f"; +% 0x27 + italcorr rm#+.3twd#; + path p; + pickup frame_pen; + z1=(0,h); z2=(w,h); + draw z1--z2; + x3=good.x .85(w-rm); y3=h; + z4=(x3,.72h); + z5=(1/2penwd,.47h); + z6=(.7(w-rm),1/2penwd); + z7=(w-rm,.23h); + draw z3--z4; + p=z4{left}..tension.9..{down}z5..tension.9..{right}z6..{up}z7; + draw p..z6; + z12=(1/2penwd,0); + sqdot(z12); +endchar; +beginchar(")",1.1twd#+brm#,ht#,0); "z"; +% 0x29 + italcorr brm#; + frame; + x5=.25w; y5=.1h; + x6=x5; y6=good.y .65h; + x7=x3; y7=y6-penwd; + z8=(x6-penwd,y6-penwd); + draw z7--z8{up}..z6--z5; + z11=(.6(w-brm),.5penwd); + sqdot(z11); +endchar; +beginchar(",",0,ht#,0); "visarga"; +% 0x2c + z1=(0,1.45h); + sqdot(z1); +endchar; +beginchar(".",twd#,ht#,0); "|"; +% 0x2e + pickup frame_pen; + x1=good.x w; y1=0; z2=(x1,h); draw z1--z2; +endchar; +beginchar("0",.5ht#+rm#,ht#,0); "0"; +% 0x30 + pickup frame_pen; z1 =(1/4h+1/2penwd,1/2h); + draw fullcircle scaled 1/2h shifted z1; +endchar; +beginchar("1",5/8twd#+rm#,ht#,0); "1"; +% 0x31 + pickup frame_pen; path p; + z1=(3/2penwd,.33h); + z2=(w-rm,0); + z3=(x2-.75penwd,-.07h); + z4=(w-rm,.75h); + z5=(.6(w-rm),h); + z6=(3/2penwd,.8h); + draw z1--z2; + draw z2--z3; + p=z1{curl0}..tension1.2..z4{up}..z5{left}; + z7=point .8 of p; + draw p..z6{down}..tension1.1..z7; +endchar; +beginchar("2",twd#+rm#,ht#,0); "2"; +% 0x32 + pickup frame_pen; + z1=(1/2penwd,.9h); + z2=(w-rm,.7h); + z3=(.25(w-rm),.35h); + z4=(x3,.45h); + z5=(w-rm,0); + draw z1{curl0}..tension1.1..z2{down}..z3{left}..z4..tension2..{curl0}z5; +endchar; +beginchar("3",.85twd#+rm#,ht#,0); "3"; +% 0x33 + pickup frame_pen; + z1=(1/2penwd,.95h); + z2=(.95(w-rm),.82h); + z3=(.65(w-rm),.65h); + z4=(.2(w-rm),.65h); + z5=(w-rm,.4h); + z6=(.3(w-rm),.2h); + z7=(x6,.3h); + z8=(w-rm,0); + draw z1{right}..tension1.1..z2{down}..{left}z3..tension1.2..{curl0}z4; + draw z3..z5{down}..z6{left}..z7..tension2..{curl0}z8; +endchar; +beginchar("4",4/3twd#+rm#,ht#,0); "4"; +% 0x34 + pickup frame_pen; + z1=(1/2penwd,h); + z2=(w-rm,h); + z3=(1/2(w-rm),.2h); + z4=(1/2(w-rm),.64h); + draw z1..z4..tension.9..z3{left}..tension.9..z4..z2; +endchar; +beginchar("5",1.1twd#+rm#,ht#,0); "5"; +% 0x35 + italcorr brm#; + pickup frame_pen; + z3=(.8(w-rm),h); z4=(x3,0); + draw z3--z4; + z5=(1/2penwd,.55h); + z6=(x3,.55h); + z7=(.3x3,h); + draw z5{dir-70}..tension.95..z6; + draw z5{right}..tension.95..z7; +endchar; +beginchar("6",.85twd#+rm#,ht#,0); "6"; +% 0x36 + pickup frame_pen; + lm:=w-.5rm; + z1=(.85lm,1/2penwd); + z2=(1/2penwd,.22h); + z3=(.35lm,.4h); + z4=(.8lm,.4h); + z5=(1/2penwd,.65h); + z6=(.7lm,.85h); + z7=(x6,.75h); + z8=(x6,1.2h); + draw z1{left}..tension1.1..z2{up}..{right}z3..tension1.2..{curl0}z4; + draw z3..z5{up}..z6{right}..z7{left}..{right}z8; +endchar; +beginchar("7",twd#+rm#,ht#,0); "7"; +% 0x37 + pickup frame_pen; + lm:=w-rm; + z1 = (.5lm,.8h); + z2 = (lm,.8h); + z3 = (1/2penwd, penwd); + draw z1{up}...{down}z2{down}..z3; +endchar; +beginchar("8",1.15twd#+rm#,ht#,0); "8"; +% 0x38 + italcorr rm#+.5twd#; + pickup frame_pen; path p; + lm := w-rm; + z4=(.9lm,.66h); + z7=(.25w, .6h); + x5=x7-3/4penwd; y5 = y4; + x6=x7; y6=y4+3/4penwd; + z8=(lm,.1h); + draw z4--z5{up}..z6--z7; + draw z7{down}..tension.95..z8; +endchar; +beginchar("9",1.15twd#+rm#,ht#,0); "9"; +% 0x39 + italcorr rm#+.5twd#; + pickup frame_pen; path p; + lm := w-rm; + z1=(.8lm,.7h); + z2=(.8lm,h); + draw z1{left}..{right}z2; + z4=(.9lm,.66h); + z7=(.25w, .6h); + x5=x7-3/4penwd; y5 = y4; + x6=x7; y6=y4+3/4penwd; + z8=(lm,.1h); + draw z4--z5{up}..z6--z7; + draw z7{down}..tension.95..z8; +endchar; +beginchar(":",1.07twd#+rm#,ht#,0); "OM"; +% 0x3a + pickup frame_pen; + lm:=w-rm; + z1=(0,h); z2=(lm,h); + z3=(.84lm,h); z4=(.4lm,.55h); + z5=(.64lm,y4); + z6=(x5,1/2penwd); + z7=(1/2penwd,h); + draw z1--z2; + draw z4--z5{right}..tension1.1..z3; + draw z5..z6{left}..{curl.4}z7; + + x8=.52lm+1/4penwd; y8=1.26h; + draw z7{up}..z8; + z9=(w,1.5h); + draw z8{up}..z9; +endchar; +beginchar(";",1.2twd#,ht#,0); "||"; +% 0x3b + pickup frame_pen; + x1=good.x w-2.5penwd; y1=0; + z2=(x1,h); + x3=good.x w; y3=0; + z4=(x3,h); + draw z1--z2; draw z3--z4; +endchar; +beginchar("A",2rm#,ht#,0); "A"; +% 0x41 + pickup frame_pen; + z1=(0,h); z2=(w,h); + x3=good.x w-brm; y3=h; z4=(x3,.4h); + draw z1--z2; draw z3--z4; +endchar; +beginchar("B",1.07twd#+rm#,ht#,0); "B"; +% 0x42 + pickup frame_pen; + z1=(0,h); z2=(w,h); + lm:=w-rm; + z3=(.84lm,h); + z4=(rm,.4h); + z5=(rm,.7h); + z6=(.84lm,.35h); + z7=(1/2penwd,.2h); + draw z1--z2; + draw z3{down}..tension1.3..{left}z4{left}..z5; + draw z5{right}..z6{down}..tension1.5..{up}z7; +endchar; +beginchar("C",1.25twd#+rm#+penwd#,ht#,-.1ht#); "C"; +% 0x43 + italcorr rm#+.5twd#; + pickup frame_pen; + z1=(0,h); z2=(w,h); + x3=good.x w-rm-penwd; y3=h; + z4=(x3,.74h); z5=(.2twd+1/2penwd,.6h); + z6=(x3+1/2penwd,.37h); +% z7=(1/2(.25twd+x3),1/7h); + z7=(1/2(.25twd+x3),1/2penwd); + z8=(.15w,.45h); + draw z1--z2; draw z3--z4; + draw z4{left}..z5{down}..z6{down}..z7{left}..z8{right}..tension.95..z7; +endsav; +beginchar("D",1.1twd#+brm#,ht#,0); "dh"; +% 0x44 + italcorr brm#; + frame; + z5=(1/2penwd,.55h); + z6=(x3,.55h); + z7=(.3x3,h); + draw z5{dir-70}..tension.95..z6; + draw z5{right}..tension.95..z7; +endchar; +beginchar("E",1.6rm#,1.5ht#,0); "i"; +% 0x45 + pickup frame_pen; + z1 = (0,ht); z2 = (w,ht); + x3 = good.x w-rm; y3 = ht; z4 = (x3,0); + draw z1--z2; draw z3--z4; + z5=(x3,1.35ht); + z6=(w-.5rm+.6twd,1.35ht); + x7=.3[x5,x6]; y7=1.5ht; + draw z3--z5{up}..z7{right}..{curl0}z6; +endchar; +beginchar("F",2rm#,1.5ht#,0); "I"; +% 0x46 + frame; z5=(-1.5rm-penwd,1.25ht); + z6=(1/2x5,1.5ht); + draw z3{curl0}..{left}z6...z5; +endchar; +beginchar("G",1.45twd#+brm#,ht#,0); "gh"; +% 0x47 + italcorr brm#; + tframe; path p; + z5=(1/2penwd,.55h); + z7=(0,h); + draw z5{right}..tension.95..z7; + x6 = .6[x5,x3]; y6=.25h; + draw z5{dir-70}..tension.95..z6; + x8 = x6; y8=.75h; + draw z6--z8; + z9=(x3-1/2penwd, .35h); + draw z6{dir-40}..tension.95..z9; +endchar; +beginchar("H",0,ht#,.25ht#); "/h"; +% 0x48 + pickup sub_pen; + z1=(.1twd,mb-1/2penwd); + z2=(.1twd,mb-.54h); + z3=(-.35twd,mb-.35h); + draw z1--z2; + draw z2{left}..z3; +endchar; +beginchar("J",1.15twd#+rm#,ht#,0); "J"; +% 0x4a + italcorr rm#+.5twd#; + pickup frame_pen; + z1=(0,h); z2=(w,h); + draw z1--z2; + lm := w-rm; + z11 = (lm, h); z12 = (.1lm, .65h); + draw z11{down}..tension1.5..z12; + x3=good.x .45lm; y3=h; + z4=(x3,.68h); + z5=(lm,.47h); + z6=(.3lm,.1h); + z7=(penwd,.23h); + draw z3{left}..z4{right}..tension.9..{down}z5..tension.9..{left}z6..z7; + z8=(.5lm,-1/7h); + draw z7{right}..tension.8..z8; +endchar; +beginchar("K",1.1twd#+brm#,ht#,0); "kh"; +% 0x4b + italcorr brm#; + tframe; path p; + z5=(1/2penwd,.55h); + z6=(x3,.55h); + z7=(0,h); + draw z5{dir-70}..tension.95..z6; + p = z5{right}..tension.95..z7; + draw p; + z8 = point .22 of p; + x9 = x3; y9 = y8; + pickup sub_pen; + draw z8--z9; +endchar; +beginchar("O",0,1ht#,0); "O"; +% 0x4f + pickup frame_pen; + path p; + z1=(-1.1twd,1.5h); + z3=(x1+.9twd-.1brm,h+penwd); + x2 = .4 [x1,x3]; y2 = 1.3h; + p = z1{down}..z2..{down}z3; + draw p; + z4=point .95 of p; + z5=(x4, h); + draw z4--z5; +endchar; +beginchar("P",1.1twd#+rm#,ht#,0); "ph"; +% 0x50 + italcorr rm#+.3twd#; + path p; + pickup frame_pen; + z1=(0,h); z2=(w,h); + draw z1--z2; + x3=good.x .85(w-rm); y3=h; + z4=(x3,.72h); + z5=(1/2penwd,.47h); + z6=(.7(w-rm),1/2penwd); + z7=(w-rm,.23h); + draw z3--z4; + p=z4{left}..tension.9..{down}z5..tension.9..{right}z6..{up}z7; + draw p..z6; +endchar; +beginchar("R",1.15twd#+rm#,ht#,.4ht#); "gn"; +% 0x52 + italcorr rm#+.5twd#; path p; + pickup frame_pen; + z1=(0,h); z2=(w,h); + draw z1--z2; + lm := w-rm; + x3 = good.x .7lm; y3=h; + z4 = (x3,.72h); + z6 = (.55lm,.4h); + z7 = (.8lm,.45h); + draw z3--z4; + vardef dwn(expr y) = xpart direction 1 of (z4{curl0}..tension1.1.. + (1/2penwd,y)..z6{right}..{curl0}z7) < 0 enddef; + z55 = (1/2penwd,solve dwn(y4,y6)); + z8 = (x7, y6); + p = z4{curl0}..tension1.1..z55..z6{right}..{curl0}z7; + draw p; + z9 = p intersectionpoint ((.25lm,.65h)--(.25lm,0)); + z10 = (x7,penwd); + draw z9{down}..tension.95..z10; + z56 = point .2 of p; + draw p; +% pickup penrazor scaled subthick; + draw (1/2penwd,h)--(x56,y56-1/2penwd); +endchar; +beginchar("T",1.1twd#+brm#,ht#,0); "th"; +% 0x54 + italcorr brm#; + frame; path p; + z5=(1/2penwd,.55h); + z6=(x3,.55h); + z7=(0,h); + draw z5{dir-70}..tension.95..z6; + p = z5{right}..tension.95..z7; + draw p; + z8 = point .22 of p; + x9 = x3; y9 = y8; + pickup sub_pen; + draw z8--z9; +endchar; +beginchar("V",1.15twd#+rm#,ht#,0); ".t"; +% 0x56 + italcorr rm#+.5twd#; + pickup frame_pen; + z1=(0,h); z2=(w,h); + draw z1--z2; + lm := w-rm; + x3=good.x .7lm; y3=h; + z4=(x3,.66h); + z6=(.55lm,.1h); + z7=(lm,.2h); + draw z3--z4; + vardef dwn(expr y) = xpart direction 1 of (z4{curl0}..(1/2penwd,y) + ..z6{right}..{curl0}z7) < 0 enddef; + z55=(1/2penwd,solve dwn(y4,y6)); + draw z4{curl0}..z55..z6{right}..{curl0}z7; +endchar; +beginchar("W",1.15twd#+rm#,ht#,0); ".th"; +% 0x57 + italcorr rm#+.5twd#; + pickup frame_pen; + z1=(0,h); z2=(w,h); + draw z1--z2; + lm:= w-rm; + x3=good.x .75lm; y3=h; + z4=(x3,.66h); + z6=(.55lm,.1h); + z7=(lm,y5); + z8=(x4+penwd,y4-penwd); + draw z3--z4; + vardef dwn(expr y) = xpart direction 1 of (z4{curl0}..(1/2penwd,y) + ..{right}z6) < 0 enddef; + z5 = (1/2penwd,solve dwn(y4,y6)); + draw z4{curl0}..z5..z6{right}..z7{up}..{curl0}z8; +endchar; +beginchar("X",1.07twd#+rm#,ht#,0); ".d"; +% 0x58 + pickup frame_pen; path p; + z1=(0,h); z2=(w,h); + lm:=w-rm; + z3=(.84lm,h); + z4=(.3lm,.65h); + z5=(.64lm,y4); + z6=(.84lm,.2h); + z7=(.24lm,1/2penwd); + draw z1--z2; + draw z4--z5{right}..tension1.1..z3; + p = z5..tension1.1..z6{down}..tension1.8..z7; + z8=(x7,.32h); + z9=point .97 of p; + draw p{left}..z8{right}..z9; +endchar; +beginchar("Y",1.15twd#+rm#,ht#,0); ".dh"; +% 0x59 + italcorr rm#+.5twd#; + pickup frame_pen; path p; + z1=(0,h); z2=(w,h); + draw z1--z2; + lm := w-rm; + x3=good.x .9lm; y3=h; + z4=(x3,.66h); + z7=(.25w, .6h); + x5=x7-3/4penwd; y5 = y4; + x6=x7; y6=y4+3/4penwd; + z8=(.8lm,1/2penwd); + z9=(lm,.23h); + draw z3--z4; + draw z4--z5{up}..z6--z7; + p = z7{down}..tension.9..{right}z8..{up}z9; + draw p..z8; +endchar; +beginchar("Z",1.15twd#+rm#,ht#,.4ht#); ".n"; +% 0x5a + italcorr rm#+.5twd#; path p; + pickup frame_pen; + z1=(0,h); z2=(w,h); + draw z1--z2; + lm := w-rm; + x3 = good.x .7lm; y3=h; + z4 = (.3lm, h); z5 = (lm, .7h); + p = z4{down}..tension2.5..z5; + draw p; + z8 = p intersectionpoint ((x3,h)--(x3,.5h)); + hdif := y3-y8; + z9 = (x8,.72h-hdif); + z11 = (.55lm,.3h-hdif); + z12 = (lm,.4h-hdif); + vardef dwn(expr y) = xpart direction 1 of (z9{curl0}..tension1.1.. + (1/2penwd,y)..z11{right}..{curl0}z12) < 0 enddef; + z55 = (1/2penwd,solve dwn(y9,y11)); + draw z8--z9; + draw z9{curl0}..tension1.1..z55..z11{right}..{curl0}z12; +endchar; +beginchar("\",0,ht#,0); "anusvara"; +% 0x5c + pickup frame_pen; + z1=(0,1.25h); + draw (reverse halfcircle rotated 0 scaled 2usthick shifted z1); +endchar; +beginchar("^",0,ht#,.25ht#); "virama"; +% 0x5e + pickup frame_pen; + z1=(1.35rm,mb-.5h); + z2=(0,mb-.3h); + draw z1..{left}z2; +endchar; +beginchar("_",0,1.5ht#,0); "adhak"; +% 0x5f + pickup sub_pen; + lm := .7twd; + z5=(lm,1.5ht); + z6=(.66lm,1.25ht); + z7=(0,1.5ht); + draw z5..tension1.1..z6{left}..z7; +endchar; +beginchar("a",1.45twd#+brm#,ht#,0); "front-a"; +% 0x61 + italcorr brm#; + path p; path q; + tframe; + pickup frame_pen; + z5=(1/2penwd,h); + z6=(.2w,.3h); + z7=2/3[z5,z6]; + z8=z7 shifted (.08w,0); + z9= (.1w,y6+.1h); + p = z5..z8{down}..z6{left}..z9{up}; + offs=.2w+.1w; + z15=(offs+1/2penwd,.8h); + z16=(offs+.1w,.1h); + z17=2/3[z15,z16]; + z18=z7 shifted (offs+.08w,0); + z19= (offs+.1w,y16+.1h); + q = z15..z18{down}..z16{left}..z19{up}; + z21=(x3,.9h); + draw p..z15..q..z21; +endchar; +beginchar("b",1.1twd#+brm#,ht#,0); "b"; +% 0x62 + italcorr brm#; + frame; + path p; + z5=(x3,.5h); + z6=(.65x3,.65h); + z10=(.18x3,.5h); + p=z5{curl0}..z10{up}...{right}z6; + draw p; + z7= point 1.7 of p; + z8=(.26x3,h); + vardef yup(expr y)= xpart direction 1 of (z7{curl0}..(1/2penwd,y)..{right}z +8) < 0 + enddef; + z9=(1/2penwd,solve yup(y7,y8)); + draw z7{curl0}..z9..{right}z8; +endchar; +beginchar("c",1.15twd#+rm#,ht#,0); "c"; +% 0x63 + italcorr rm#+.5twd#; + pickup frame_pen; path p; + z1=(0,h); z2=(w,h); + draw z1--z2; + lm := w-rm; + x3=good.x .9lm; y3=h; + z4=(x3,.66h); + z7=(.25w, .6h); + x5=x7-3/4penwd; y5 = y4; + x6=x7; y6=y4+3/4penwd; + z8=(.8lm,1/2penwd); + draw z3--z4; + draw z4--z5{up}..z6--z7; + p = z7{down}..tension.9..{right}z8; + draw p{dir-20}..tension5.5..z4; +endchar; +beginchar("d",1.15twd#+rm#,ht#,0); "d"; +% 0x64 + italcorr rm#+.5twd#; + pickup frame_pen; path p; + z1=(0,h); z2=(w,h); + draw z1--z2; + lm := w-rm; + x3=good.x .9lm; y3=h; + z4=(x3,.66h); + z7=(.25w, .6h); + x5=x7-3/4penwd; y5 = y4; + x6=x7; y6=y4+3/4penwd; + z8=(lm,.1h); + draw z3--z4; + draw z4--z5{up}..z6--z7; + draw z7{down}..tension.95..z8; +endchar; +beginchar("f",1.1twd#+brm#,ht#,0); "sh"; +% 0x66 + italcorr brm#; + frame; x5=good.x 3/2penwd; y5=h; + z6=(x5,y7-penwd); + y7=good.y .35h+penwd; x7=x3; + z8=(x6-1/2penwd,y6+1/2penwd); + draw z5--z6; + draw (reverse halfcircle rotated rot scaled usthick shifted z8)--z7; + z11=(.6(w-brm),.5penwd); + sqdot(z11); +endchar; +beginchar("g",1.1twd#+brm#,ht#,0); "g"; +% 0x67 + italcorr brm#; path p; + frame; z5=(.25(w-brm),h); + z6=(x5,.3h); + z7=2/3[z5,z6]; + z8=z7 shifted (.1(w-brm),0); + z9= (1/2penwd,y6+.08h); + p = z5..z8{down}..z6{left}..z9{up}; + z10 = point 2.4 of p; + draw p..z10; +endchar; +beginchar("h",1.1twd#+.5rm#,ht#,0); "h"; +% 0x68 + pickup frame_pen; + z1 = (0,h); z2 = (w,h); + z5=(.55w,h); + z6=(x5,.2h); + z7= (.1w,.45h); + draw z1--z2; + draw z5--z6{down}..tension1.5..z7; +endchar; +beginchar("i",1.15twd#+rm#,ht#,0); "front-i"; +% 0x69 + italcorr rm#+.5twd#; + pickup frame_pen; path p; + z1=(0,h); z2=(w,h); + draw z1--z2; + lm := w-rm; + x3=good.x .7lm; y3=h; + z4=(x3,.66h); + z6=(.55lm,.1h); + z7=(lm,.2h); + draw z3--z4; + vardef dwn(expr y) = xpart direction 1 of (z4{curl0}..(1/2penwd,y) + ..z6{right}..{curl0}z7) < 0 enddef; + z55=(1/2penwd,solve dwn(y4,y6)); + p = z4{curl0}..z55..z6{right}..{curl0}z7; + z56 = point .2 of p; + draw p; + pickup penrazor scaled subthick; + draw (1/2penwd,h)--(x56,y56-1/2penwd); +endchar; +beginchar("j",1.1twd#+brm#,ht#,0); "j"; +% 0x6a + italcorr brm#; + frame; + x5=.25w; y5=.1h; + x6=x5; y6=good.y .65h; + x7=x3; y7=y6-penwd; + z8=(x6-penwd,y6-penwd); + draw z7--z8{up}..z6--z5; +endchar; +beginchar("k",.8twd#+1.5rm#,ht#,0); "k"; +% 0x6b + italcorr 1.5rm#; + path p; + z1=(0,h); z2=(w,h); + pickup frame_pen; + draw z1--z2; + z3=(w-rm,h); + z4=(rm,.35h); + z5=(rm,.65h); + z6=(w-rm,0); + draw z3{curl0}..tension1.1..{left}z4{left}..z5; + pickup penrazor scaled subthick; + draw z5--z6; +endsav; +beginchar("l",1.25twd#+rm#,ht#,0); "l"; +% 0x6c + path p; path q; + lm := (w-rm); + z3=(.5lm, .5h); + pickup penrazor scaled subthick; + p = (.2lm,h)--z3; + q = (.8lm,h)--z3; + draw p; draw q; + pickup frame_pen; + z1=(0,h); z2=(w,h); + draw z1--z2; + z6 = point .7 of p; + z7 = point .7 of q; + z4 = (.15lm, 1/2penwd); + z5 = (.85lm, 1/2penwd); + draw z6{left}..z4; + draw z7{right}..z5; +endchar; +beginchar("m",1.1twd#+brm#,ht#,0); "m"; +% 0x6d + italcorr brm#; + tframe; + z5=(0,h); + z6=(3/2penwd+.1twd,.76h); + z7=(3/2penwd+.1twd,.34h); + z8=(x3,y7+penwd); + z9=(x7-1/2penwd,y7+1/2penwd); + draw z5{right}..tension.95..z6---z7; + draw (reverse halfcircle rotated rot scaled usthick shifted z9)--z8; +endchar; +beginchar("n",1.25twd#+rm#,ht#,0); "n"; +% 0x6e + path p; path q; + lm := (w-rm); + pickup frame_pen; + z1=(0,h); z2=(w,h); + draw z1--z2; + z3=(.5lm, h); + z4 = (.15lm, 1/2penwd); + z5 = (.85lm, 1/2penwd); + z6=(.5lm, .7h); + draw z4{up}..z6..{down}z5{left}; + draw z4{right}; + draw z3--z6; +endchar; +beginchar("o",0,1ht#,0); "o"; +% 0x6f + pickup frame_pen; + z1=(-1.1twd,1.5h); + z3=(x1+.9twd-.1brm,h+penwd); + x2 = .4 [x1,x3]; y2 = 1.3h; + draw z1{down}..z2..{down}z3; +endchar; +beginchar("p",1.1twd#+brm#,ht#,0); "p"; +% 0x70 + italcorr brm#; + tframe; + z5=(1/2penwd,.55h); + z6=(x3,.55h); + z7=(.3x3,h); + draw z5{dir-70}..tension.95..z6; + draw z5{right}..tension.95..z7; +endchar; +beginchar("r",1.1twd#+.5rm#,ht#,0); "r"; +% 0x72 + pickup frame_pen; + z1 = (0,h); z2 = (w,h); + z5=(.55w,h); + z6=(x5,.2h); + z7= (.15w,.45h); + z8= (x5,y7); + draw z1--z2; + draw z5--z6{down}..tension1.5..z7{dir10}..tension1.5..z8; +endchar; +beginchar("s",1.1twd#+brm#,ht#,0); "s"; +% 0x73 + italcorr brm#; + frame; x5=good.x 3/2penwd; y5=h; + z6=(x5,y7-penwd); + y7=good.y .35h+penwd; x7=x3; + z8=(x6-1/2penwd,y6+1/2penwd); + draw z5--z6; + draw (reverse halfcircle rotated rot scaled usthick shifted z8)--z7; +endchar; +beginchar("t",1.07twd#+rm#,ht#,0); "t"; +% 0x74 + pickup frame_pen; + z1=(0,h); z2=(w,h); + lm:=w-rm; + z3=(.84lm,h); z4=(.4lm,.55h); + z5=(.64lm,y4); + z6=(x5,1/2penwd); + z7=(1/2penwd,.2h); + draw z1--z2; + draw z4--z5{right}..tension1.1..z3; + draw z5..z6{left}..{curl.4}z7; +endchar; +beginchar("u",1.07twd#+rm#,ht#,0); "front-u"; +% 0x75 + pickup frame_pen; + z1=(0,h); z2=(w,h); + lm:=w-rm; + z3=(.84lm,h); z4=(.4lm,.55h); + z5=(.64lm,y4); + z6=(x5,1/2penwd); + z7=(1/2penwd,h); + x8=.42lm+1/4penwd; y8=1.5h; + draw z1--z2; + draw z4--z5{right}..tension1.1..z3; + draw z5..z6{left}..{curl.4}z7; + draw z7{up}..z8..z3; +endchar; +beginchar("v",1.15twd#+rm#,ht#,.4ht#); "v"; +% 0x76 + italcorr rm#+.5twd#; path p; + pickup frame_pen; + z1=(0,h); z2=(w,h); + draw z1--z2; + lm := w-rm; + x3 = good.x .7lm; y3=h; + z4 = (x3,.72h); + z6 = (.55lm,.4h); + z7 = (.8lm,.45h); + draw z3--z4; + vardef dwn(expr y) = xpart direction 1 of (z4{curl0}..tension1.1.. + (1/2penwd,y)..z6{right}..{curl0}z7) < 0 enddef; + z55 = (1/2penwd,solve dwn(y4,y6)); + z8 = (x7, y6); + p = z4{curl0}..tension1.1..z55..z6{right}..{curl0}z7; + draw p; + z9 = p intersectionpoint ((.25lm,.65h)--(.25lm,0)); + z10 = (x7,penwd); + draw z9{down}..tension.95..z10; +endchar; +beginchar("w",1.07twd#+rm#,ht#,0); "R"; +% 0x77 + pickup frame_pen; path p; + z1=(0,h); z2=(w,h); + lm:=w-rm; + z3=(.84lm,h); + z4=(.3lm,.65h); + z5=(.64lm,y4); + draw z1--z2; + draw z4--z5{right}..tension1.1..z3; + z6=(lm,.47h); + z7=(.3lm,.1h); + z8=(penwd,.23h); + z9=(.5lm,-1/7h); + p = z5..{down}z6..tension.9..{left}z7..z8; + draw p; + draw z8{right}..tension.8..z9; +% z10=point .97 of p; + z10=(.7lm,.1h); + z11=(.84lm,y9); + draw z10..z11; +endchar; +beginchar("y",1.45twd#+brm#,ht#,0); "y"; +% 0x79 + italcorr brm#; + frame; path p; + z5=(1/2penwd,.55h); + z7=(0,h); + draw z5{right}..tension.95..z7; + x6 = .6[x5,x3]; y6=.25h; + p = z5{dir-70}..tension.95..z6; + x8 = x6; y8=.6h; + x9 = x3; y9 = y8; + draw p--(x6,y8) ; + draw z8--z9; +endchar; +beginchar("{",.9twd#+brm#,1.5ht#,0); "sup-ai"; +% 0x7b + pickup frame_pen; + z1=(w-brm,ht+1.5penwd); + z2=(0,1.35ht); + z3=(penwd,1.55ht); + draw z1{curl.5}..{left}z2; + draw z1{curl.5}..{left}z3; +endchar; +beginchar("}",0,ht#,0); "r-stroke"; +% 0x7d + pickup sub_pen; + z1= (0,mb-(penwd+3/8uwidth)); + lft z2= (-1/2uwidth,mb-(penwd+1/8uwidth)); + z3= (0,mb-penwd); + z4= (1/2uwidth,mb-(penwd+1/2uwidth)); + draw z1..tension1.2..z2..z3..{curl0}z4; +endsav; +beginchar(127,.5ht#+2rm#,ht#,0); "abbrev"; +% 0x7f + pickup sub_pen; + z1=(1/2w,.8h-1/2penwd); + draw fullcircle scaled .4h shifted z1; +endchar; +ligtable "." : "." =: ";"; +end. + diff --git a/language/gurmukhi/singh/gmmacs.tex b/language/gurmukhi/singh/gmmacs.tex new file mode 100644 index 0000000000..64594408c2 --- /dev/null +++ b/language/gurmukhi/singh/gmmacs.tex @@ -0,0 +1,107 @@ +% DNMACS.TEX +% TeX macros for the use of Devanagari fonts +% +% Copyright (C) 1991 University of Groningen, The Netherlands +% +% Author: Frans J. Velthuis +% Internet: velthuis@rc.rug.nl +% Bitnet: velthuis@hgrrug5 +% +% 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 1, 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. +% +\font\smallgm=grmk8 +\font\ninegm=grmk9 +\font\grmk=grmk10 +\font\halfgm=grmk10 scaled\magstephalf +\font\biggm=grmk10 scaled\magstep1 +\font\largegm=grmk10 scaled\magstep2 +\font\hugegm=grmk10 scaled\magstep3 +\hyphenchar\smallgm=-1 +\hyphenchar\ninegm=-1 +\hyphenchar\grmk=-1 +\hyphenchar\halfgm=-1 +\hyphenchar\biggm=-1 +\hyphenchar\largegm=-1 +\hyphenchar\hugegm=-1 +\font\smallcr=cmr8 +\font\ninecr=cmr9 +\font\halfcr=cmr10 scaled\magstephalf +\font\bigcr=cmr10 scaled\magstep1 +\font\largecr=cmr10 scaled\magstep2 +\font\hugecr=cmr10 scaled\magstep3 +\let\rsize=\rm +\newcount\chnum +\newdimen\itdim +\newdimen\gmblskip +\newif\ifgmmode +\chnum=0 +\loop\catcode\chnum=11 +\ifnum\chnum<12\advance\chnum by1 +\repeat +\chnum=14 +\loop\catcode\chnum=11 +\ifnum\chnum<31\advance\chnum by1 +\repeat +\catcode127=11 +\def\subscr#1{\/\itdim=\lastkern +\unkern\kern-\itdim \lower\dp0 \hbox to\itdim{#1\hfil}} +\def\gmsmall{\let\pgm=\smallgm\let\rsize=\smallcr% +\gmblskip=12pt\ifgmmode\gm\fi} +\def\gmnine{\let\pgm=\ninegm\let\rsize=\ninecr% +\gmblskip=13pt\ifgmmode\gm\fi} +\def\gmnormal{\let\pgm=\grmk\let\rsize=\rm% +\gmblskip=15pt\ifgmmode\gm\fi} +\def\gmhalf{\let\pgm=\halfgm\let\rsize=\halfcr% +\gmblskip=16pt\ifgmmode\gm\fi} +\def\gmbig{\let\pgm=\biggm\let\rsize=\bigcr% +\gmblskip=18pt\ifgmmode\gm\fi} +\def\gmlarge{\let\pgm=\largegm\let\rsize=\largecr% +\gmblskip=22pt\ifgmmode\gm\fi} +\def\gmhuge{\let\pgm=\hugegm\let\rsize=\hugecr% +\gmblskip=26pt\ifgmmode\gm\fi} +\def\gm{\gmmodetrue\pgm\baselineskip=\gmblskip +\tolerance=10000 +\pretolerance=10000} +\def\0{\llap{\char13}} +\def\1{\llap{\char32}} +\def\2{\llap{\char92}} +\def\3#1w{{\char"#1}} +\def\4{\llap{\char123}} +\def\5{\llap{\char125}} +\def\6#1{\setbox0=\hbox{#1}#1\subscr{\char126}} +\def\7#1{\setbox0=\hbox{#1}#1\subscr{\char0}} +\def\8#1{\setbox0=\hbox{#1}#1\subscr{\char1}} +\def\9#1{\setbox0=\hbox{#1}#1\subscr{\char2}} +\def\qa#1#2{\setbox0=\hbox{#1}#1\subscr{\char253\kern1.5ex\lower1.25ex +\hbox{\char#2}\kern-1.5ex}} +\def\qb#1{\setbox0=\hbox{#1}#1\subscr{\char253}} +\def\qq#1{\setbox0=\hbox{#1}#1\subscr{\char94}} +\def\qx#1{\setbox0=\hbox{#1}#1\subscr{\char14}} +\def\qy#1{\setbox0=\hbox{#1}#1\subscr{\char31}} +\def\qz#1{\setbox0=\hbox{#1}#1\subscr{\char124}} +\def\qva{\kern0.5ex\2\kern-0.5ex} +\def\qvb{\kern1ex\0\kern-1ex} +\def\qvc{\kern1ex\rdt\kern-1ex} +\def\?{\llap{\char3}} +\def\<{\llap{\char4}} +\def\rs{\rsize\thinspace} +\let\re=\thinspace +\def\rdt{\llap{\char19}} +\def\gmnum{\let\nstyle=d} +\def\cmnum{\let\nstyle=r} +\cmnum +\def\rn#1{\if\nstyle r{\rsize #1}\else#1\fi} +\let\pgm=\grmk +\gmblskip=15pt diff --git a/language/gurmukhi/singh/grmk10.mf b/language/gurmukhi/singh/grmk10.mf new file mode 100644 index 0000000000..7e9333d54e --- /dev/null +++ b/language/gurmukhi/singh/grmk10.mf @@ -0,0 +1,24 @@ +mode_setup; + ht# := 2mm#; rm# := 0.6mm#; brm# := 0.9mm#; twd# := 1.4mm#; + uwidth# := twd#; + define_pixels(rm,twd,uwidth,brm); + define_whole_pixels(ht); + rot = 135; +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% the following parameters determine the line-thicknes. +% the line-thicknes varies between thin# and thick#, depending on the +% angle between the pen and the direction of writing. +% for strokes in subscripts it varies between subthick# and thin#. + thick# := 1.1pt#; thin# := 0.2pt#; + subthick# := .8pt#; +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + font_size 10pt#; + font_quad 1.5twd#+rm#; + font_x_height .7rm#; + font_normal_space:=1.2twd#; + font_normal_stretch:=.6twd#; + font_normal_shrink:=.4twd#; + font_identifier:="GRMK10"; +\input defs +\input gmchars + diff --git a/language/gurmukhi/singh/grmk10.tfm b/language/gurmukhi/singh/grmk10.tfm Binary files differnew file mode 100644 index 0000000000..04cf731b43 --- /dev/null +++ b/language/gurmukhi/singh/grmk10.tfm diff --git a/language/gurmukhi/singh/grmk12.mf b/language/gurmukhi/singh/grmk12.mf new file mode 100644 index 0000000000..1cd914cf88 --- /dev/null +++ b/language/gurmukhi/singh/grmk12.mf @@ -0,0 +1,24 @@ +mode_setup; + ht# := 2.4mm#; rm# := 0.72mm#; brm# := 1.08mm#; twd# := 1.75mm#; + uwidth# := twd#; + define_pixels(rm,twd,uwidth,brm); + define_whole_pixels(ht); + rot = 135; +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% the following parameters determine the line-thicknes. +% the line-thicknes varies between thin# and thick#, depending on the +% angle between the pen and the direction of writing. +% for strokes in subscripts it varies between subthick# and thin#. + thick# := 1.3pt#; thin# := 0.2pt#; + subthick# := .9pt#; +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + font_size 12pt#; + font_quad 1.5twd#+rm#; + font_x_height .7rm#; + font_normal_space:=1.2twd#; + font_normal_stretch:=.6twd#; + font_normal_shrink:=.4twd#; + font_identifier:="GRMK12"; +\input defs +\input gmchars + diff --git a/language/gurmukhi/singh/grmk12.tfm b/language/gurmukhi/singh/grmk12.tfm Binary files differnew file mode 100644 index 0000000000..e98cb15ee6 --- /dev/null +++ b/language/gurmukhi/singh/grmk12.tfm diff --git a/language/gurmukhi/singh/grmk8.mf b/language/gurmukhi/singh/grmk8.mf new file mode 100644 index 0000000000..41700af785 --- /dev/null +++ b/language/gurmukhi/singh/grmk8.mf @@ -0,0 +1,24 @@ +mode_setup; + ht# := 1.6mm#; rm# := 0.48mm#; brm# := 0.72mm#; twd# := 1.12mm#; + uwidth# := twd#; + define_pixels(rm,twd,uwidth,brm); + define_whole_pixels(ht); + rot = 135; +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% the following parameters determine the line-thicknes. +% the line-thicknes varies between thin# and thick#, depending on the +% angle between the pen and the direction of writing. +% for strokes in subscripts it varies between subthick# and thin#. + thick# := .85pt#; thin# := 0.2pt#; + subthick# := .7pt#; +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + font_size 8pt#; + font_quad 1.5twd#+rm#; + font_x_height .7rm#; + font_normal_space:=1.2twd#; + font_normal_stretch:=.6twd#; + font_normal_shrink:=.4twd#; + font_identifier:="GRMK8"; +\input defs +\input gmchars + diff --git a/language/gurmukhi/singh/grmk8.tfm b/language/gurmukhi/singh/grmk8.tfm Binary files differnew file mode 100644 index 0000000000..c3a5a96644 --- /dev/null +++ b/language/gurmukhi/singh/grmk8.tfm diff --git a/language/gurmukhi/singh/grmk9.mf b/language/gurmukhi/singh/grmk9.mf new file mode 100644 index 0000000000..c0202691aa --- /dev/null +++ b/language/gurmukhi/singh/grmk9.mf @@ -0,0 +1,24 @@ +mode_setup; + ht# := 1.8mm#; rm# := 0.54mm#; brm# := 0.81mm#; twd# := 1.26mm#; + uwidth# := twd#; + define_pixels(rm,twd,uwidth,brm); + define_whole_pixels(ht); + rot = 135; +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% the following parameters determine the line-thicknes. +% the line-thicknes varies between thin# and thick#, depending on the +% angle between the pen and the direction of writing. +% for strokes in subscripts it varies between subthick# and thin#. + thick# := 1pt#; thin# := 0.2pt#; + subthick# := .7pt#; +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + font_size 9pt#; + font_quad 1.5twd#+rm#; + font_x_height .7rm#; + font_normal_space:=1.2twd#; + font_normal_stretch:=.6twd#; + font_normal_shrink:=.4twd#; + font_identifier:="GRMK9"; +\input defs +\input gmchars + diff --git a/language/gurmukhi/singh/grmk9.tfm b/language/gurmukhi/singh/grmk9.tfm Binary files differnew file mode 100644 index 0000000000..881c1d2764 --- /dev/null +++ b/language/gurmukhi/singh/grmk9.tfm diff --git a/language/gurmukhi/singh/gurmukhi.c b/language/gurmukhi/singh/gurmukhi.c new file mode 100644 index 0000000000..1d0319d605 --- /dev/null +++ b/language/gurmukhi/singh/gurmukhi.c @@ -0,0 +1,948 @@ +/* gurmukhi.c + Preprocessor for TeX for text containing Gurmukhi characters. + + Author: Amarjit Singh + E-mail: asingh@evolving.com + + 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 1, 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. +*/ + +#include <stdio.h> +#include <ctype.h> +#define TRUE 1 +#define FALSE 0 +#define ILL_CHAR 29 +#define DUMMY 30 +#define END_OF_FILE 30 +#define END_OF_LINE 31 +#define N_NOLIGS 40 +/* ch_typ values */ +#define ILLEGAL 0 +#define CMR 1 +#define CONTROL 2 +#define GM 3 +#define NUMERAL 4 +/* ch_subtyp values */ +#define LO_VOWEL 0 +#define HI_VOWEL 1 +#define CONSONANT 2 +#define SPECIAL 3 + +#define LBRACE 273 +#define RBRACE 264 +#define RE 263 +#define RN 265 +#define RS 256 + +#define INBUF_LEN 133 + +/* GLOBAL VARIABLES */ +FILE *f_in,*f_out,*fopen(); + +short buf_length; +short syll[30]; /* offset of syll is in chr_ptr or cons_ptr */ +short cons_ptr, chr_ptr; +short cons_code; + +char *strchr(); +char wrong[10]; +char *p_in,*p_out,*s_ptr,*o_ptr; +char infil[80], outfil[80]; +char inbuf[INBUF_LEN], outbuf[133]; +char word[500]; + +unsigned char gm_mode, dollar_mode, cmr_mode; +unsigned char d_found, no_gm, buf_ptr, wait_syl, lin_obey; +unsigned char error, cons_seen, vow_seen; + +struct char_def { + short ch_typ, ch_subtyp, ch_code, ch_subcode; +}; + +struct char_def table[127] = { + {ILLEGAL,SPECIAL,0,0}, /* 1 not used */ + {GM,CONSONANT,'\126',1}, /* 2 .t */ + {GM,CONSONANT,'\130',2}, /* 3 .d */ + {GM,SPECIAL,'\72',0}, /* 4 .o */ + {GM,CONSONANT,'\132',3}, /* 5 .n */ + {GM,CONSONANT,'\13',4}, /* 6 .g */ + {GM,SPECIAL,'\24',0}, /* 7 .. */ + {GM,CONSONANT,'\14',5}, /* 8 .K */ + {GM,CONSONANT,'\127',6}, /* 9 .T */ + {GM,CONSONANT,'\131',7}, /* 10 .D */ + {GM,SPECIAL,'\54',0}, /* 11 .m */ + {ILLEGAL,SPECIAL,0,0}, /* 12 not used */ + {ILLEGAL,SPECIAL,0,0}, /* 13 not used */ + {ILLEGAL,SPECIAL,0,0}, /* 14 not used */ + {ILLEGAL,SPECIAL,0,0}, /* 15 not used */ + {ILLEGAL,SPECIAL,0,0}, /* 16 not used */ + {ILLEGAL,SPECIAL,0,0}, /* 17 not used */ + {GM,CONSONANT,'\122',8}, /* 18 "n */ + {GM,CONSONANT,'\146',9}, /* 19 "s */ + {ILLEGAL,SPECIAL,0,0}, /* 20 not used */ + {GM,CONSONANT,'\32', 10}, /* 21 ~n */ + {GM,SPECIAL,'\137',0}, /* 22 ~a */ + {ILLEGAL,SPECIAL,0,0}, /* 23 not used */ + {ILLEGAL,SPECIAL,0,0}, /* 24 not used */ + {GM,HI_VOWEL,275,'\106'}, /* 25 ii */ + {GM,LO_VOWEL,274,1}, /* 26 uu */ + {GM,HI_VOWEL,260,'\117'}, /* 27 oo */ + {ILLEGAL,SPECIAL,0,0}, /* 28 not used */ + {ILLEGAL,SPECIAL,0,0}, /* 29 not used */ + {CONTROL,SPECIAL,0,0}, /* 30 DUMMY */ + {CONTROL,SPECIAL,0,0}, /* 31 END_OF_LINE */ + {CONTROL,SPECIAL,0,0}, /* 32 space */ + {CMR,SPECIAL,0,0}, /* ! */ + {ILLEGAL,SPECIAL,0,0}, /* " */ + {ILLEGAL,SPECIAL,0,0}, /* # */ + {ILLEGAL,SPECIAL,0,0}, /* $ */ + {ILLEGAL,SPECIAL,0,0}, /* % */ + {ILLEGAL,SPECIAL,0,0}, /* & */ + {CMR,SPECIAL,0,0}, /* ' to - */ + {CMR,SPECIAL,0,0}, /* ' to - */ + {CMR,SPECIAL,0,0}, /* ' to - */ + {CMR,SPECIAL,0,0}, /* ' to - */ + {CMR,SPECIAL,0,0}, /* ' to - */ + {CMR,SPECIAL,0,0}, /* ' to - */ + {CMR,SPECIAL,0,0}, /* ' to - */ + {ILLEGAL,SPECIAL,0,0}, /* . */ + {GM,SPECIAL,'\40',0}, /* / */ + {NUMERAL,SPECIAL,0,0}, /* 0 to 9 */ + {NUMERAL,SPECIAL,0,0}, /* 0 to 9 */ + {NUMERAL,SPECIAL,0,0}, /* 0 to 9 */ + {NUMERAL,SPECIAL,0,0}, /* 0 to 9 */ + {NUMERAL,SPECIAL,0,0}, /* 0 to 9 */ + {NUMERAL,SPECIAL,0,0}, /* 0 to 9 */ + {NUMERAL,SPECIAL,0,0}, /* 0 to 9 */ + {NUMERAL,SPECIAL,0,0}, /* 0 to 9 */ + {NUMERAL,SPECIAL,0,0}, /* 0 to 9 */ + {NUMERAL,SPECIAL,0,0}, /* 0 to 9 */ + {CMR,SPECIAL,0,0}, /* : and ; */ + {CMR,SPECIAL,0,0}, /* : and ; */ + {ILLEGAL,SPECIAL,0,0}, /* < */ + {CMR,SPECIAL,0,0}, /* = */ + {ILLEGAL,SPECIAL,0,0}, /* > */ + {CMR,SPECIAL,0,0}, /* ? */ + {GM,SPECIAL,'\177',0}, /* @ */ + {GM,HI_VOWEL,258,'\101'}, /* A */ + {GM,CONSONANT,'\102',11}, /* B */ + {GM,CONSONANT,'\103',12}, /* C */ + {GM,CONSONANT,'\104',13}, /* D */ + {GM,HI_VOWEL,259,'\173'}, /* E */ + {ILLEGAL,SPECIAL,0,0}, /* F */ + {GM,CONSONANT,'\107',14}, /* G */ + {GM,SPECIAL,'\54',0}, /* H */ + {GM,HI_VOWEL,267,'\106'}, /* I */ + {GM,CONSONANT,'\112',15}, /* J */ + {GM,CONSONANT,'\113',16}, /* K */ + {ILLEGAL,SPECIAL,0,0}, /* L not used */ + {GM,SPECIAL,'\54',0}, /* M */ + {GM,SPECIAL,'\134',0}, /* N */ + {GM,HI_VOWEL,261,'\117'}, /* O */ + {GM,CONSONANT,'\120',17}, /* P */ + {ILLEGAL,SPECIAL,0,0}, /* Q */ + {GM,CONSONANT,'\167',18}, /* R */ + {GM,CONSONANT,'\146',9}, /* S */ + {GM,CONSONANT,'\124',19}, /* T */ + {GM,LO_VOWEL,276,1}, /* U */ + {ILLEGAL,SPECIAL,0,0}, /* V to Z */ + {ILLEGAL,SPECIAL,0,0}, /* V to Z */ + {ILLEGAL,SPECIAL,0,0}, /* V to Z */ + {ILLEGAL,SPECIAL,0,0}, /* V to Z */ + {ILLEGAL,SPECIAL,0,0}, /* V to Z */ + {CMR,SPECIAL,0,0}, /* [ */ + {CONTROL,SPECIAL,0,0}, /* \ */ + {CMR,SPECIAL,0,0}, /* ] */ + {ILLEGAL,SPECIAL,0,0}, /* ^ */ + {ILLEGAL,SPECIAL,0,0}, /* _ */ + {CMR,SPECIAL,0,0}, /* ` */ + {GM,HI_VOWEL,'\141',257}, /* a */ + {GM,CONSONANT,'\142',20}, /* b */ + {GM,CONSONANT,'\143',21}, /* c */ + {GM,CONSONANT,'\144',22}, /* d */ + {GM,HI_VOWEL,262,3}, /* e */ + {GM,CONSONANT,'\47',23}, /* f */ + {GM,CONSONANT,'\147',24}, /* g */ + {GM,CONSONANT,'\150',25}, /* h */ + {GM,HI_VOWEL,'\151','\105'}, /* i */ + {GM,CONSONANT,'\152',26}, /* j */ + {GM,CONSONANT,'\153',27}, /* k */ + {GM,CONSONANT,'\154',28}, /* l */ + {GM,CONSONANT,'\155',29}, /* m */ + {GM,CONSONANT,'\156',30}, /* n */ + {GM,HI_VOWEL,'\33','\157'}, /* o */ + {GM,CONSONANT,'\160',31}, /* p */ + {ILLEGAL,SPECIAL,0,0}, /* not used */ + {GM,CONSONANT,'\162',32}, /* r */ + {GM,CONSONANT,'\163',33}, /* s */ + {GM,CONSONANT,'\164',34}, /* t */ + {GM,LO_VOWEL,'\165',0}, /* u */ + {GM,CONSONANT,'\166',35}, /* v */ + {ILLEGAL,SPECIAL,0,0}, /* not used */ + {ILLEGAL,SPECIAL,0,0}, /* not used */ + {GM,CONSONANT,'\171',36}, /* y */ + {GM,CONSONANT,'\51',37}, /* z */ + {CONTROL,SPECIAL,0,0}, /* left brace */ + {GM,SPECIAL,'\56',0}, /* | */ + {CONTROL,SPECIAL,0,0}, /* right brace */ + {ILLEGAL,SPECIAL,0,0}, /* ~ */ + {ILLEGAL,SPECIAL,0,0} /* del */ +}; + +char chset1[12]= {'k','t','d','o','n','g','.','K','T','D','m',' '};/* . */ +char chset4[10]= {'k','g','c','j','t','d','p','b','s',' '}; /* h */ +char chset3[3] = {'n','s',' '}; /* " */ +char chset6[3] = {'n','a',' '}; /* ~ */ +char chset2[3] = {'a','i',' '}; /* a */ +char chset5[2] = {'A','E'}; /* result of aa and ai */ + +char out_string[277][7] = { + "\\7{","\\8{","\\9{","\\?","\\<","^^E","^^F", + "^^G","^^H","^^I","^^J","^^K","^^L","\\0", + "\\qx{","^^O","^^P","^^Q","^^R", + "^^S","^^T","^^U","^^V","^^W","^^X", + "^^Y","^^Z","^^[","^^\\","^^]", + "^^^","\\qy{","\\1","!","\"","\\#","\\$", + "\\%","\\&","\'","(",")","*","+",",","-",".","/","0","1","2", + "3","4","5","6","7","8","9",":",";","<","=",">","?","@", + "A","B","C","D","E","F","G","H","I","J","K","L","M","N", + "O","P","Q","R","S","T","U","V","W","X","Y","Z","[","\\2", + "]","\\qq{","\\35Fw","`","a","b","c","d","e","f","g","h","i","j", + "k","l","m","n","o","p","q","r","s","t","u","v","w","x", + "y","z","\\4","\\qz{","\\5","\\6{","^^?", + "","","","","","", + "","","","","","", + "","","","","","", + "","","","","","", + "","","","","","", + "","","","","","", + "","","","","","", + "","","","","","", + "","","","","","", + "","","","","","", + "","","","","","", + "","","","","","", + "","","","","","", + "","","","","","", + "","","","","","", + "","","","","","", + "","","","","","", + "","","","","","", + "","","","","","", + "","","","","","", + "","","","","","", + "","","{\\rs ","","aA","a\\4", + "ao","aO","a\\?","\\re}","}","\\rn{", + "{\\rdt}","iF","{\\qva}","{\\qvb}","{\\qvc}", + "\\qa{","\\qb{","{", "\\7{u}","Ei", "\\8{u}" +}; + +/* strstr : to make it portable */ +char *st_find(s,q) +char *s, *q; +{ + short i,j,k,l; + j = strlen(s); + k = strlen(q); + for (i=0; i <= j-k; i++) { + if (s[i]==q[0]) { + for (l = 1; (s[i + l] == q[l]) && (q[l] != '\0'); l++) ; + if (q[l] == '\0') return(&s[i]); + } + } + return(NULL); +} + +/* strchr : to make it portable */ +char *ch_find(s,q) +char *s; +char q; +{ + short i,j; + j = strlen(s); + for (i=0; i < j; i++) + if (s[i]==q) return(&s[i]); + return(NULL); +} + +err_ill(str) +char *str; +{ + printf("Error: illegal character(s): %s\n",str); + puts(inbuf); + getchar(); + error = TRUE; +} + +/* Find {\gm in inbuf, copy everything till {\gm to outbuf */ +/* and modify rest of it back to inbuf */ +/* RETURN : TRUE if inbuf is valid */ +/* FALSE otherwise */ +/* other ouputs : no_gm */ +/* d_found */ +char find_gm() +{ + char *d_ptr; + char *gm_ptr; + char *svbuf; + char again; + + d_found = FALSE; + svbuf = inbuf; + do { + again = FALSE; + gm_ptr = st_find(svbuf,"{\\gm"); + if (gm_ptr != NULL) { + again = isalpha(gm_ptr[4]); + svbuf = gm_ptr + 4; + } + } while(again); + + if (dollar_mode) { + d_ptr = ch_find(inbuf,'$'); + if ((d_ptr != NULL) && ((gm_ptr == NULL) || (d_ptr < gm_ptr))) { + d_found = TRUE; + gm_ptr = d_ptr; + } + } + + if (gm_ptr == NULL) + return(FALSE); + strncat(outbuf,inbuf,gm_ptr-inbuf); + no_gm = FALSE; + if (!d_found) { + if (gm_ptr[4] == '#') { + no_gm = TRUE; + gm_ptr += 1; + } else { + strcat(outbuf,"{\\gm"); + } + gm_ptr += 4; + } else { + switch(dollar_mode) { + case 1: strcat(outbuf,"{\\gm "); + break; + case 2: strcat(outbuf,"\\pgm "); + case 3: no_gm = TRUE; + } + gm_ptr += 1; + } + strcpy(inbuf,gm_ptr); + return(TRUE); +} + +/* Returns one char from "inbuf" at "buf_ptr" */ +/* if inbuf is at END_OF_LINE then refills it from "f_in" */ +/* other inputs : p_in */ +/* other outputs: p_in, buf_length */ +char inp_ch() +{ + char ch, ch_out; + ch = inbuf[buf_ptr++]; + if (ch == '\n') { + if (p_in == 0) + ch_out = END_OF_FILE; + else { + p_in = fgets(inbuf,INBUF_LEN,f_in); + buf_ptr = 0; + buf_length = strlen(inbuf); + ch_out = END_OF_LINE; + } + } else { + if (ch < 32) + ch_out = ILL_CHAR; + else + ch_out = ch; + } + return(ch_out); +} + +put_macro(macro) +short macro; +{ + char tmp[5]; + int l, i; + if (syll[chr_ptr-1] == '\175') { + syll[chr_ptr+1] = '\175'; + syll[chr_ptr] = RBRACE; + syll[chr_ptr-1] = syll[chr_ptr-2]; + syll[chr_ptr-2] = macro; + chr_ptr += 2; + } else if (syll[chr_ptr-1]==RBRACE) { + syll[chr_ptr-3] = 271; + syll[chr_ptr] = LBRACE; + sprintf(tmp,"%d",macro); + l = strlen(tmp); + chr_ptr += 1; + for (i = 0; i < l; i++) + syll[chr_ptr+i] = tmp[i]; + chr_ptr += l; + syll[chr_ptr] = RBRACE; + chr_ptr += 1; + } else { + syll[chr_ptr] = syll[chr_ptr-1]; + syll[chr_ptr-1] = macro; + syll[chr_ptr+1] = RBRACE; + chr_ptr = chr_ptr +2; + } +} + +/* find out string corresponding to chars in syll */ +/* and then move to word. */ +/* Reset related flags */ +put_syll() +{ + short i; + for (i = 0; i <= (chr_ptr-1); i++) + strcat(word,&out_string[syll[i]][0]); + chr_ptr = 0; + cons_seen =FALSE; + vow_seen =FALSE; + wait_syl = FALSE; +} + +/* puts out string for one code ( or char ) in word */ +put_sym(code) +short code; +{ + strcat(word,&out_string[code][0]); +} + +/* move word to outbuf */ +/* if not lin_obey then + put outnuf in f_out + keep moving word to outbuf to f_out till + len of word is bigger than 80 + At end of this routine outbuf may have a valid string +*/ +put_word() +{ + short lw,lb; + lw = strlen(word); + lb = strlen(outbuf); + if (((lb + lw) > 80) && !lin_obey) + { + if (lb > 1) + { + if (outbuf[lb-1] != ' ') + strcat(outbuf,"%\n"); + else + outbuf[lb-1] = '\n'; + fputs(outbuf,f_out); + } + while (lw > 80) + { + strncpy(outbuf,word,79); + outbuf[79] = '\0'; + strcat(outbuf,"%\n"); + fputs(outbuf,f_out); + strcpy(word,&word[79]); + lw = strlen(word); + } + strcpy(outbuf,word); + } + else + strcat(outbuf,word); + strcpy(word,""); +} + +/* copies c to word and */ +/* if c is space then outputs a word */ +sendchar(c) +char c; +{ + char cstr[2]; + cstr[0] = c; + cstr[1] = '\0'; + strcat(word,cstr); + if (isspace(c)) + put_word(); +} + +put_ch(code) +short code; +{ + struct char_def *c_ptr; + short i; + + c_ptr = &table[code-1]; + switch(c_ptr->ch_typ) { + case GM: + if (cmr_mode) { + cmr_mode = FALSE; + put_sym(RE); + } + switch(c_ptr->ch_subtyp) { + case HI_VOWEL: + if (wait_syl) + put_syll(); + if (cons_seen) { + if (code == 'i') { + for (i = chr_ptr; i>= (cons_ptr+1); i--) + syll[i] = syll[i-1]; + syll[cons_ptr] = c_ptr->ch_subcode; + } else { + syll[chr_ptr] = c_ptr->ch_subcode; + if ((code != 'A') && (code != 'a')) + vow_seen = TRUE; + } + } else + syll[chr_ptr] = c_ptr->ch_code; + chr_ptr = chr_ptr + 1; + wait_syl = TRUE; + cons_seen = FALSE; + break; + case LO_VOWEL: + if (wait_syl) + put_syll(); + if (cons_seen) + { + put_macro(c_ptr->ch_subcode); + chr_ptr = chr_ptr - 1; + } + else + syll[chr_ptr] = c_ptr->ch_code; + chr_ptr = chr_ptr + 1; + wait_syl = TRUE; + cons_seen = FALSE; + break; + case CONSONANT: + if (wait_syl) + put_syll(); + if (!cons_seen) { + cons_seen = TRUE; + cons_ptr = chr_ptr; + cons_code = c_ptr->ch_subcode; + syll[chr_ptr] = c_ptr->ch_code; + chr_ptr += 1; + } else { + if (code == 'r') { + syll[chr_ptr] = '\175'; + chr_ptr = chr_ptr + 1; + cons_code = 0; + } else if (code == 'h') { + syll[chr_ptr] = '\110'; + chr_ptr = chr_ptr + 1; + cons_code = 0; + } else if (code == 'v') { + syll[chr_ptr] = '\46'; + chr_ptr = chr_ptr + 1; + cons_code = 0; + } else { + cons_code = c_ptr->ch_subcode; + syll[chr_ptr] = c_ptr->ch_code; + chr_ptr += 1; + } + } + break; + + case SPECIAL: + put_syll(); + put_sym(c_ptr->ch_code); + } + break; + + case ILLEGAL: + wrong[0] = code; wrong[1] = '\0'; + err_ill(wrong); + break; + + case CONTROL: + if (cmr_mode) { + cmr_mode = FALSE; + put_sym(RE); + } else { + put_syll(); + } + if (code == END_OF_LINE) { + put_word(); + strcat(outbuf,"\n"); + fputs(outbuf,f_out); + strcpy(outbuf,""); + if (!lin_obey) + fputs("\n",f_out); + } else if (code != DUMMY) + sendchar(code); + break; + + case CMR: + if (cmr_mode) + sendchar(code); + else { + cmr_mode = TRUE; + put_syll(); + put_sym(RS); + sendchar(code); + } + break; + + case NUMERAL: + sendchar(code); + break; + } /* end of switch on ch_typ */ +} + +/* This routine resolves the combination of charaters */ +/* used to symbolize font characters */ +/* i.e. it cooks set of input chars to one offset in "table" */ +gmproc(symbol) +char symbol; +{ + unsigned char saved,gmready; + short brace_lev; + char savchr; + short i; + + brace_lev = 1; + saved = FALSE; + gmready = FALSE; + do { + switch(symbol) { + case '.': + savchr = inp_ch(); + i = 0; + do { + i++; + } while ((i != 12) && (chset1[i-1] != savchr)); + if (i == 12) { + wrong[0] = '.'; + wrong[1] = savchr; + wrong[2] = '\0'; + err_ill(wrong); + } else if (i < 4) { + savchr = inp_ch(); + if (savchr == 'h') + i = i+7; + else { + saved = TRUE; + if (i == 1) + err_ill(".k"); + } + } + if (!error) { + if (i == 11) + put_ch('M'); + else + put_ch(i); + } + break; + case 'i': + savchr = inp_ch(); + if (savchr == 'i') + put_ch(25); + else { + put_ch(symbol); + saved = TRUE; + } + break; + case 'u': + savchr = inp_ch(); + if (savchr == 'u') + put_ch(26); + else { + put_ch(symbol); + saved = TRUE; + } + break; + case 'o': + savchr = inp_ch(); + if (savchr == 'o') + put_ch(27); + else { + put_ch(symbol); + saved = TRUE; + } + break; + case 'a': + savchr = inp_ch(); + i = 0; + do { + i++; + } while ((i != 3) && (chset2[i-1] != savchr)); + if (i == 3) + { + put_ch(symbol); + saved = TRUE; + } else + put_ch(chset5[i-1]); + break; + + case '\"': + savchr = inp_ch(); + i = 0; + do { + i++; + } while ((i != 3) && (chset3[i-1] != savchr)); + if (i == 3) { + wrong[0] = '~'; + wrong[1] = savchr; + wrong[2] = '\0'; + err_ill(wrong); + } else + put_ch(i+17); + break; + + case '~': + savchr = inp_ch(); + i = 0; + do { + i++; + } while ((i != 3) && (chset6[i-1] != savchr)); + if (i == 3) { + wrong[0] = '~'; + wrong[1] = savchr; + wrong[2] = '\0'; + err_ill(wrong); + } else + put_ch(i+20); + break; + + case END_OF_LINE: + if (lin_obey) { + put_ch(END_OF_LINE); + put_ch(END_OF_LINE); + } else { + do { + savchr = inp_ch(); + } while (savchr == ' '); + if (savchr == END_OF_LINE) + put_ch(END_OF_LINE); + else { + put_ch(' '); + saved = TRUE; + } + } + break; + + case '$': + if (!dollar_mode) + put_ch(symbol); + else { + if (no_gm) + put_ch(DUMMY); + else + put_ch('}'); + gmready= TRUE; + put_word(); + strcpy(inbuf,&inbuf[buf_ptr]); + } + break; + + case '}': + brace_lev = brace_lev-1; + if ((brace_lev == 0) && !d_found) { + if (no_gm) + put_ch(DUMMY); + else + put_ch(symbol); + gmready= TRUE; + put_word(); + strcpy(inbuf,&inbuf[buf_ptr]); + } else + put_ch(symbol); + break; + + case '{': + put_ch(symbol); + brace_lev = brace_lev+1; + break; + + case '%': do + symbol = inp_ch(); + while(symbol != END_OF_LINE); + break; + + case '\\': + put_ch(symbol); + symbol = inp_ch(); + if (symbol == END_OF_LINE) { + put_word(); + strcat(outbuf,"\n"); + fputs(outbuf,f_out); + strcpy(outbuf,""); + } else { + if (!isalnum(symbol)) + sendchar(symbol); + else { + do { + sendchar(symbol); + symbol = inp_ch(); + } while (isalnum(symbol)); + savchr = symbol; + saved = TRUE; + } + } + break; + + case ILL_CHAR: err_ill('\0'); + break; + + case END_OF_FILE: + puts("error: missing }"); + error = TRUE; + break; + + default: + i = 0; + do { + i++; + } while ((i != 10) && (chset4[i-1] != symbol)); + if (i == 10) + put_ch(symbol); + else { + savchr = inp_ch(); + if (savchr == 'h') { + put_ch(symbol-32); + } else { + put_ch(symbol); + saved = TRUE; + } + } + break; + } /* end of switch */ + if (saved) { + symbol = savchr; + saved = FALSE; + } else if ((!error) && (!gmready)) { + symbol = inp_ch(); + } + } while (!error && !gmready); +} + +main(argc,argv) +int argc; +char *argv[]; +{ + unsigned char gm_yes; + /* get file specifications */ + + if (argc == 3) { + strcpy(infil,argv[1]); + strcpy(outfil,argv[2]); + } else if (argc == 2) { + strcpy(infil,argv[1]); + strcpy(outfil,""); + } else { + do { + printf("input file: "); + gets(infil); + } while (strlen(infil) == 0); + printf("output file: "); + gets(outfil); + } + s_ptr = strchr(infil,'.'); + if (strlen(outfil) == 0) { + strcpy(outfil,infil); + o_ptr = strchr(outfil,'.'); + if (o_ptr != 0) + *o_ptr = '\0'; + } + if (s_ptr == 0) + strcat(infil,".gm"); + o_ptr = strchr(outfil,'.'); + if (o_ptr == 0) + strcat(outfil,".tex"); + + /* open files */ + + if ((f_in = fopen(infil,"r")) == NULL) { + printf("cannot open file %s\n",infil); + exit(1); + } + if ((f_out = fopen(outfil,"w")) == NULL) { + printf("cannot open file %s\n",infil); + exit(1); + } + + /* initialization */ + + error = FALSE; + cons_seen = FALSE; + vow_seen = FALSE; + wait_syl = FALSE; + + cmr_mode = FALSE; + gm_mode = TRUE; + lin_obey = FALSE; + dollar_mode = 0; + + chr_ptr = 0; + strcpy(word,""); + strcpy(outbuf,""); + + /* read preprocessor commands */ + + while (TRUE) { + strcpy(inbuf,""); + p_in = fgets(inbuf,INBUF_LEN,f_in); + if (inbuf[0] != '@') + break; + while (TRUE) { + if (st_find(inbuf,"dollars") == &inbuf[1]) { + dollar_mode = 1; + break; + } + if (st_find(inbuf,"punjabi") == &inbuf[1]) { + /* reserved for hindi & pujabi merger */ + break; + } + if (st_find(inbuf,"obeylines") == &inbuf[1]) { + lin_obey = TRUE; + break; + } + if (st_find(inbuf,"dolmode1") == &inbuf[1]) { + dollar_mode = 1; + break; + } + if (st_find(inbuf,"dolmode2") == &inbuf[1]) { + dollar_mode = 2; + break; + } + if (st_find(inbuf,"dolmode3") == &inbuf[1]) { + dollar_mode = 3; + break; + } + printf("Error: illegal preprocessor command\n"); + puts(inbuf); + getchar(); + break; + } + } + + /* main loop */ + + do { + if (!find_gm()) + fputs(inbuf,f_out); + else { + do { + buf_length = strlen(inbuf); + buf_ptr = 0; + gmproc(inp_ch()); + if (!error) + gm_yes = find_gm(); + if (!gm_yes) { + strcat(outbuf,inbuf); + fputs(outbuf,f_out); + } + } while (gm_yes && !error); + } + strcpy(inbuf,""); + p_in = fgets(inbuf,INBUF_LEN,f_in); + strcpy(outbuf,""); + } while ((p_in != NULL) && !error); + fclose(f_in); + fclose(f_out); +} diff --git a/language/gurmukhi/singh/install.dos b/language/gurmukhi/singh/install.dos new file mode 100644 index 0000000000..2ac424b986 --- /dev/null +++ b/language/gurmukhi/singh/install.dos @@ -0,0 +1,106 @@ +The purpose of this file is to help in installation of "Gurmukhi for TeX" +software package on DOS. In addition to this file Readme and manual.gm, +are also provided which provide information about how and why to use this +package. + +Lets assume that you have installed TeX and TeX can call METAFONT for +font creation. I do not have TeX, METAFONT, and C-compiler on my machine +in DOS environment, so was not able to install or test this software. +Please let me know if you are successfully able to setup this package. + +Following help is extracted from "Devanagari for TeX" readme file, and +and is modified a little for "Gurmukhi for Tex" in hope that this will +be helpful in installation. + +In order to install the software you have to put the files in the right +directories and rename them (if necessary). + +* GMMACS.TEX, BANI.GM, EG.GM, MANUAL.GM must be in the directory + where TeX expects it's input. This is something like C:\TEX\INPUTS on + MS-DOS systems. + +* Compile GURMUKHI.C file to create an executable of preprocessor, with + a name may be GURMUKHI.EXE. Move it in a directory specified in the + PATH environment-variable. Preferably it should be put in the directory + where other executable files are kept, often called BIN. + +* If you do have a 300dpi black-writing laser-printer then you can use + the included PK and TFM files. The TFM-files have to be put in the + directory where TeX keeps its TFM-files, mostly called C:\TEX\FONTS + or something like that. The organization of the fontfiles (PK-files) + varies from installation to installation. Sometimes all the fontfiles + are put together in one large directory and the different magnifications + of a font are distinguished by their filename extension, as is the case + with the fonts in this package. + + Instead of in a directory the font files are sometimes put in a library. + This is the way it is done in emTeX. And sometimes there are different + directories for each magnification. These directories have 'names' like + 300, 329 etc. The fontfiles within these directories have no extensions + or just the extension 'PK'. + + According to which fontfile-organization is used on your system, you + have to copy and rename the fontfiles in the PK300 directory in this + package. + +* If your printer is not a 300dpi black-writing laser-printer, or if you + want to change the appearance of the font or of some characters in it + then you have to run METAFONT and use the .MF files as input. There + are METAFONT source files for 3 different sizes: 8,9 and 10 point: + GRMK8.MF, GRMK9.MF and GRMK10.MF. + All of these three source-files make use of DEFS.MF and GMCHARS.MF. + + The following is taken from: FAQ about TeX + + METAFONT allows you to create your own fonts. METAFONT, unlike TeX, + requires some customization. Each output device for which you will be + generating fonts needs a mode associated with it. Modes are defined + using the mode_def convention described on page 94 of _The METAFONTbook_. + The person who installed METAFONT on your system should know which + modes are defined. + + The usual way to create a font with plain METAFONT is to start + it with the line + \mode=<mode name>; mag=<magnification>; input <font file name> + in response to the * prompt or on the METAFONT command line. If + <mode name> is unknown or omitted, then the mode defaults to proof + mode. If this has happened METAFONT will produce an output file + called <font file name>.2602gf. The <magnification> is a floating + point number or magstep (magsteps are defined in _The METAFONTbook_ + and _The TeXbook_). If mag=<magnification> is omitted, then the + default is 1. For example, to generate dvng10 at 12pt for an epson + printer you would type + mf \mode=epson; mag=1.2; input dvng10 + + If you need a special mode that isn't defined for your METAFONT, + you can put its commands in a file (e.g., ln03.mf) and invoke + it on the fly with the \smode command. For example, to create + dvng10.300gf for an LN03 printer, using the file + % This is ln03.mf as of 2/27/90 + % mode_def courtesy of John Sauter + proofing:=0; + fontmaking:=1; + tracingtitles:=0; + pixels_per_inch:=300; + blacker:=0.65; + fillin:=-0.1; + o_correction:=.5; + (note the absence of the mode_def and enddef commands), we would type + mf \smode="ln03"; input dvng10 + +* After this setup you are ready to use this package. You can use + example file bani.gm and eg.gm to see if everything is alright. A + typical set of commands can be given as follows. This information + is in greater detail in manual.ps + + gurmukhi bani + tex bani + + You can send dvi file generated here to your printer. + +------------------------------------------------------------------------ +Amarjit Singh +E-mail Address: asingh@evovling.com +Postal Address: 8405 E. Hampden Ave #11N Denver CO 80231 USA (Current) + A-3 Mansarover Garden, New Delhi 110015 India(Permanent) +------------------------------------------------------------------------ diff --git a/language/gurmukhi/singh/install.ux b/language/gurmukhi/singh/install.ux new file mode 100644 index 0000000000..05811547a6 --- /dev/null +++ b/language/gurmukhi/singh/install.ux @@ -0,0 +1,68 @@ +The purpose of this file is to help in installation of "Gurmukhi for TeX" +software package on a Unix. In addition to this file Readme and manual.gm, +are also provided which provide information about how and why to use this +package + +Lets assume that you have installed TeX and TeX can call METAFONT for +font creation. I have Tex Version 3.1415N (C version 6.1), and METAFONT +Version 2.71 (C version 6.1). I got all these tools with Linux version +1.2.1. + +Lets also assume that you are installing this software under a directory +"/usr/abc/gurmukhi". Under this directory make top-level TeX directory +lib/tex. In this top-level TeX directory /usr/abc/gurmukhi/lib/tex, make +sub-directories "macros", "mf", "pk", and "tfm", and move all *.mf files +in mf directory, *.tfm files in tfm directory, *.pk files in pk directory, +and gmmacs.tex file in macros directory. + +Compile the preprocessor, gurmukhi.c and put the executable somewhere on +your path. With following command, you will get preprocessor with name +"gurmukhi", +cc -o gurmukhi gurmukhi.c + +To set the environment variables in a c-shell environment, you can create +a file with following information and "source" it every time you want to +use this package. + +set texbase = /usr/abc/gurmukhi/lib/tex +setenv TEXINPUTS .:$texbase/macros: +setenv TEXFONTS :$texbase/tfm +setenv TEXPKS :$texbase/pk +setenv MFINPUTS :$texbase/mf +unset texbase + +Note that leading and trailing colon tells TeX to append the system path +at that point. If you have an older version of TeX (before version 3), +you may need to explicitly specify them in the environment variables. If +you use xtex, you will need to explicitly list your system directories in +the TEXFONTS variable, since it doesn't understand the leading/trailing +colon convention. + + +After this setup you are ready to use this package. You can use example +file bani.gm and eg.gm to see if everything is alright. A typical set of +commands can be given as follows. This information is in greater detail +in manual.ps + +gurmukhi bani +tex bani +dvips bani.dvi + +You can view the generated files using any one of following + +xdvi bani +gs bani +ghostview bani + +and can send .ps file generated by dvips to your laser printer. + +There are programs equivalent to dvips for some non-laser printers +and are available at tex-archive sites. + + +------------------------------------------------------------------------ +Amarjit Singh +E-mail Address: asingh@evovling.com +Postal Address: 8405 E. Hampden Ave #11N Denver CO 80231 USA (Current) + A-3 Mansarover Garden, New Delhi 110015 India(Permanent) +------------------------------------------------------------------------ diff --git a/language/gurmukhi/singh/known.prob b/language/gurmukhi/singh/known.prob new file mode 100644 index 0000000000..8aa7b616fa --- /dev/null +++ b/language/gurmukhi/singh/known.prob @@ -0,0 +1,9 @@ +These are known issues and I am working on them. Any help or +suggestion on these, will be more than welcome. Thanks for +your patience. + +1. Matra of u and U does not fit properly will some charaters. + +2. Somehow, first digit after {\gm is not printed, even though + it appears in 'intermediate' .tex file. Let me know if you + don't see this problem on your system. diff --git a/language/gurmukhi/singh/manual.gm b/language/gurmukhi/singh/manual.gm new file mode 100644 index 0000000000..ebbee2a41a --- /dev/null +++ b/language/gurmukhi/singh/manual.gm @@ -0,0 +1,329 @@ +@punjabi +%________________________________________________________________________ +% +% 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 1, 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. +%________________________________________________________________________ +\input gmmacs +\nopagenumbers +\hsize=6in + +\font\title=cmr9 scaled\magstep5 +\relax +\font\subtitle=cmr9 scaled\magstep2 +\relax +\font\pal=cmr9 + +\bigskip\vbox{ + + + + + + +}\bigbreak +\centerline{{\title Gurmukhi for \TeX}\footnote*{\TeX\ is a trademark of the +American Mathematical Society}} +\smallskip +\centerline{\title User Manual} +\smallskip +\centerline{\subtitle Version 1.0} +\centerline{\subtitle October 1995} +\bigskip +\bigskip +\centerline{\title Amarjit Singh} +\bigskip +\eject +{\subtitle Introduction} +\bigskip + +The purpose of the ``Gurmukhi for \TeX'' software package is to convert the +characters in a document from English Alphabet to Gurmukhi +(script for the Punjabi language), utilizing the \TeX [1][2] and +METAFONT\footnote*{METAFONT is a trademark of Adddison Wesley Publishing Company}[3] +software packages. \TeX\ is a typesetting system developed by the American +Mathematical Society, used widely on Unix systems, and occassionally on +other operating environments. METAFONT is a font generation tool supported +by \TeX . Both \TeX\ and METAFONT are free software packages which can be +downloaded from \TeX\ archive sites[4]. A working knowledge of \TeX\ will +greatly help in using the 'Gurmukhi for \TeX ' package. + +This document provides information for preparing input text files and use of +the 'Gurmukhi for \TeX ' software. This is the first version of the software +and it may undergo changes in the near future, so keep an eye out for +enhanced future releases. + +\bigskip +{\subtitle Acknowledgement} +\bigskip +The Gurmukhi package was inspired by the Devanagari script generation +package ``Devanagari for \TeX \footnote\dag{``Devanagari for \TeX '' is a copyright +of Frans J. Vethuis}'' which is developed by Frans J. Velthuis +and has been brought to you with his permission to support Gurmukhi script. +I would also like to thank my mother for repeatedly prompting me to write +a letter to her in Gurmukhi. Last, but not least, I would like to thank +everyone who might use this software package. + +\bigskip +If you have comments or suggestion, feel free to send them to me at +the following address: +\smallskip +\leftline{ E-mail: asingh@evolving.com } + +\leftline{ Postal Mail: Amarjit Singh } +\leftline{ 8405 E. Hampden Ave \#11N Denver CO 80231 USA } +\leftline{ A-3 Mansarover Garden, New Delhi 110015 India } +\bigskip +\bigskip +{\subtitle Preparing a Document for Trans-literation } +\bigskip + +A document is initially created using regular ASCII text. The text is +then converted into Gurmukhi using simple transliteration rules, and +most of \TeX\ features from the initial document are passed to an +`intermediate' \TeX\ file. The generated output can be sent to a printer or +to the screen + +This section describes what ASCII characters can be used to produce +Gurmukhi characters, and the delimiters which are required to put +together these characters to pass to \TeX . Some control commands are +presented which you might use to modify the behaviour of this +tool to transform ASCII input text into Gurmukhi text. There is a macro +file for \TeX\ which should be included in your text file. +\bigskip +{\bf Characters} + +Table 1 presents the ASCII to Gurmukhi character set translation. + +To maintain the simplicity of transliteration, more than one +character may be used, for example; 'kh' would be used to produce +the Gurmukhi character {\gm kh}. Depending upon the context of +a vowel, between the word or beginning of a word, a sign +(like '{\gm \char69}') or a character (like '{\gm i}') will appear. +An exception to this rule will be two vowels appearing together. +There is a very limited number of half-characters in Gurmukhi and +they are for h, v and r. + +There are more than one ASCII character sets which can be used in +input text, for representation of some Gurmukhi characters, like +'kh' and 'K' can be used for '{\gm K}' and it +is totally your choice to use any of them. + +In Gurmukhi text mode digits will appear as : + +{\gm 0 0 1 2 3 4 5 6 7 8 9 } +\bigskip +\eject +\centerline{\bf Table 1: ASCII Character sets for Gurmukhi characters} +\smallskip +\settabs 8 \columns +\+u&{\gm u}&k&{\gm k}&t&{\gm t}&sh, S or "s&{\gm "s}\cr +\+uu&{\gm uu} or {\gm \char1}&kh or K&{\gm K}&th or T&{\gm T}&.kh or .K&{\gm .K}\cr +\+U&{\gm U} or {\gm \char1}&g&{\gm g}&d&{\gm d}&.g&{\gm .g}\cr +\+a&{\gm a} or&gh or G&{\gm G}&dh or D&{\gm D}&z&{\gm z}\cr +\+aa or A&{\gm A} or {\gm \char65}&"n&{\gm "n}&n&{\gm n}&f&{\gm f}\cr +\+i&{\gm i} or {\gm \char69}&c&{\gm c}&p&{\gm p}&N&{\gm N .ti~apI}\cr +\+ii&{\gm ii} or {\gm \char70}&ch or C&{\gm C}&ph or P&{\gm P}&.m or M&{\gm M biNdI}\cr +\+I&{\gm I} or {\gm \char70}&j&{\gm j}&b&{\gm b}&/&{\gm / caNdrabiNdU}\cr +\+e&{\gm e} or {\gm \char3}&jh or J&{\gm J}&bh or B&{\gm B}&\~\relax a&{\gm ~a aD~ak}\cr +\+ai or E&{\gm E} or {\gm \char123}&\~\relax n&{\gm ~n}&m&{\gm m}&@&{\gm @ (tOR)}\cr +\+o&{\gm o} or {\gm \char111}&.t&{\gm .t}&y&{\gm y}& {\tt |} &{\gm | (.dN.dA)}\cr +\+oo&{\gm oo} or {\gm \char79}&.th or .T&{\gm .T}&r&{\gm r}& {\tt ||}&{\gm ||}\cr +\+O&{\gm O} or {\gm \char79}&.d&{\gm .d}&l&{\gm l}&.o&{\gm .o}\cr +\+s&{\gm s} &.dh or .D&{\gm .D}&v&{\gm v}\cr +\+h&{\gm h} &.n&{\gm .n}&R&{\gm R}\cr + +\bigskip +{\bf Delimiters} + +All text appearing after \% up to the end of the line, will be +considered comments and will not generate any output. + +All the text between '$\{ \backslash gm$' and '$\}$' will be converted to +Gurmukhi according to the character set shown in Table 1. + +All the text between \$ signs will be converted to Gurmukhi when the @dollars +preprocessor command is given. + +The following characters are allowed but do not change representation inside +Gurmukhi delimiters: + + ! ` ' ( ) * - : ; = ? , [ ] + + +The following characters are not allowed inside Gurmukhi delimiters: + + {\tt <} {\tt >} F L Q V W X Y Z \^ \_ q w x + +Obviously, characters outside Gurmukhi delimiters will not be changed to +Gurmukhi and will be printed in English Alphabet or will follow the +rules which you specify. + +To change the pointsize of characters within '$\{ \backslash gm$' and '$\}$' +the following delimiters can be used, in incremental sizes, : +\smallskip + +\bigskip +\settabs 2 \columns +\+ $\backslash gmsmall$ & 8 point font \cr + +\+ $\backslash gmnine$ & 9 point font \cr + +\+ $\backslash gmnormal$ & 10 point font \cr + +\+ $\backslash gmbig$ & 10 point font, magnified at 1 step \cr + +\+ $\backslash gmlarge$ & 10 point font, magnified at 2 steps \cr + +\+ $\backslash gmhuge$ & 10 point font, magnified at 3 steps \cr + +\bigskip +{\bf Examples} + +Different character sets, following above mentioned rules, within Gurmukhi +delimilters can produce desired output, like $\{ \backslash gm$ paNjaab$\}$ +and $\{ \backslash gm$ pNjAb$\}$ will print {\gm pNjAb}. + +Sometimes, you may have to type an extra `a' to complete a syllable, even +though it may not appear in the Gurmukhi representation of that word. + +There are additional gm files other than the source of this document, which +can be referred to for examples. +\bigskip +{\bf Control commands} + +At the start of input text, the following preprocessor commands +can be used, to control the functionality of the preprocessor: + +@obeylines + To follow the line breaks which you type. + +@dollars + To activate \$ as a special symbol such that text delimited by \$ + is converted to Gurmukhi. + +@punjabi + Does not do anything right now, but may be used when the tool + supports other languages. + +After the above preprocessor commands, insert the following command +to include a macro file. This ia a very important step because +without the macro file, \TeX\ will not recognize the translated +text generated by the preprocessor. + +\input gmmacs + +\bigskip +{\subtitle Transforming a Document} +\bigskip + +The ``Gurmukhi for \TeX'' package consists of a preprocessor, font files +and a macro file. See the file ``readme'' and ``install.unix'' for +installation steps. Installation should be fairly easy, as there is +no system dependent code. Wherever you can find \TeX\ and metafont, +you can very possibly install and use this package. +\bigskip +{\bf The Preprocessor} + +The job of the preprocessor is to find the correct representation of a +character according to its context. When a vowel appears in a word, +a syllable completes, and context changes to what it was at the +beginning of a new word. It also finds possible half representation of +characters. Output of this preprocessor is a \TeX\ document. +\bigskip +{\bf Example session of commands} + +Lets assume that during installation you have prepared the preprocessor +with name "gurmukhi" and have set paths in your environment to locate font and +macro files. Lets also assume that you have an input file with the name "text.gm". + +You would start the preprocessor on the file 'text.gm' as follows: +\bigskip +\settabs 2 \columns +\+ gurmukhi text & (to get a \TeX\ file)\cr +\bigskip + +The \TeX\ file produced here, text.tex, can be used as any other input +file for \TeX . After this a typical sequence of commands may be +\bigskip +\settabs 2 \columns +\+ tex text & (to get dvi file) \cr +\smallskip +\+ xdvi text & (to view dvi file) \cr +\bigskip + + +Another sequence after this may be +\bigskip +\settabs 2 \columns +\+ dvips text & ( to get postscript file text.ps from text.dvi ) \cr +\smallskip +\+ gs text.ps & ( to view postscript file ) \cr +\smallskip +\+ ghostview text.ps & ( another way to view postscript file ) \cr +\bigskip + + +Now it is time to send the postscript file to a postscript printer, and +a command command for this may be: + + lp text.ps + + +\bigskip +{\subtitle Devanagari} +\bigskip + +This section is presented for those who have used the Devanagari package +or would also like to use the Devanagari package. There are not many +differences between the two. In Devanagari, you create a text file +in the same manner as with Gurmukhi, but you have slightly different +character sets for representation and you will use a similar sequence of +commands. + +The differences in character sets in Gurmukhi and Devanagari are as +follows: + +In Gurmukhi, S and sh can also be used in addition to "s to produce {\gm S} +and N is used in Gurmukhi to print {\gm N (.ti~apI)}, ii produces {\gm ii} + and not {\gm I}, \~\relax a produces {\gm ~a}. + +The Devanagari software package allows many character sets such as .s, +.h, H, q which are not valid in Gurmukhi. + +\bigskip +{\subtitle What may be next:} +\bigskip + +Support for LaTeX + +Porting to different systems and platforms + +Combination of Devanagari and Gurmukhi. + +\bigskip +{\subtitle Biblography} +\bigskip +[1] Norman Walsh {\it Making \TeX Work} O'Reilly \& Associates, Inc. July 1994. + +[2] Donald E. Knuth {\it The \TeX book} Addison Wesley Publishing Co. Sep 1993 + +[3] Donald E. Knuth {it The METAFONT Book} Addison Wesley, + +[4] FTP Site for \TeX\ and related softwares, including METAFONT, and Devanagri + +\indent { \indent{ftp.shsu.edu/tex-archive}} + +[5] Frans J. Velthuis {\it Devanagari for \TeX} Version 1.2 + +\bye diff --git a/language/gurmukhi/singh/manual.ps b/language/gurmukhi/singh/manual.ps new file mode 100644 index 0000000000..c42d06d55a --- /dev/null +++ b/language/gurmukhi/singh/manual.ps @@ -0,0 +1,887 @@ +%!PS-Adobe-2.0 +%%Creator: dvipsk 5.58a Copyright 1986, 1994 Radical Eye Software +%%Title: manual.dvi +%%Pages: 5 +%%PageOrder: Ascend +%%BoundingBox: 0 0 596 842 +%%DocumentPaperSizes: a4 +%%EndComments +%DVIPSCommandLine: dvips manual +%DVIPSParameters: dpi=300, compressed, comments removed +%DVIPSSource: TeX output 1995.10.22:1605 +%%BeginProcSet: texc.pro +/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N +/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72 +mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1} +ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale +isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div +hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul +TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if} +forall round exch round exch]setmatrix}N /@landscape{/isls true N}B +/@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B +/FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{ +/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N +string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N +end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{ +/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0] +N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup +length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{ +128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub +get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data +dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N +/rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup +/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx +0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff +setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff +.1 sub]/id ch-image N /rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N +/cp 0 N{rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}imagemask restore}B /G{{id +gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get exec}loop}B /adv{cp +add /cp X}B /chg{rw cp id gp 4 index getinterval putinterval dup gp add +/gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{ +dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1 +adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 2 +idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string +putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval +adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg} +{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{ +adv rsh nd}{1 add adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2 +chg nd}{pop nd}]dup{bind pop}forall N /D{/cc X dup type /stringtype ne{] +}if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup +length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{ +cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin +0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul +add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore userdict +/eop-hook known{eop-hook}if showpage}N /@start{userdict /start-hook +known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X +/IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for +65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0 +0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V +{}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7 +getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false} +ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false +RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1 +false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform +round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg +rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail +{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M} +B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{ +4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{ +p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p +a}B /bos{/SS save N}B /eos{SS restore}B end +%%EndProcSet +TeXDict begin 39158280 55380996 1000 300 300 (manual.dvi) +@start /Fa 18 119 df<48B5FC39003C03C090383800E0A21570A24913781538A21578 +5BA4484813F0A315E03803800115C0140315803907000700140E5C5C000E13E0B512801D +1C7E9B1F>68 D<48B512F038003C00013813301520A35BA214081500495AA21430EBFFF0 +3801C020A439038040801400A2EC0100EA07005C14021406000E133CB512FC1C1C7E9B1C +>I<D801FEEB01FED8003E14E0012EEB03C01505A21509014EEB0B801513152313470187 +EB4700A21587EC0107D80107130E14021404A20002495AEB0388149014A000045C14C0A2 +000C1380001CEB007839FF8307FF271C7E9B25>77 D<001FB512C0381C070138300E0000 +201480126012405B1280A2000014005BA45BA45BA4485AA41203EA7FFE1A1C799B1E>84 +D<3AFF83FF07F03A3C007001C00038158002F01300A290380170025D13025D13045D1308 +5D131001305B1320D81C405BA2D98071C7FCA2381D0072A2001E1374A2001C1338A20018 +133014201210241D779B29>87 D<3901FF81FE39003E0078011C136015C0011E13809038 +0E0100EB0F026D5A5C1490EB03A014E06D5AA28013021304497EEB10701320EB603813C0 +EB803C3801001C12020006131E121EB4EB7FC01F1C7E9B1F>I<EA01E3EA0717EA0C0F12 +18EA380E12301270A2EAE01CA41339A3EA6079EA319AEA1E0C10127C9115>97 +D<123F1207A2120EA45AA4EA39E0EA3A18EA3C0C12381270130EA3EAE01CA31318133813 +301360EA60C0EA3180EA1E000F1D7C9C13>I<13F8EA0704120CEA1802EA38041230EA70 +08EA7FF0EAE000A5EA60041308EA30101360EA0F800F127C9113>101 +D<EB03C0EB0670130CEB1C601400A25BA53803FF8038007000A55BA5485AA5485AA390C7 +FCA25A12C612E65A12781425819C0D>I<EB78C0EA01C5EA03031206000E1380120C121C +A238380700A4130EA3EA181EEA0C7CEA079CEA001CA25BA2EAC030EAE070EAC1C0007FC7 +FC121A7E9113>I<EA0FC01201A2485AA448C7FCA4EA0E3E13C3380F0380120E121E121C +A338380700A3130E00701340A2131C1480EAE00C38600700121D7E9C15>I<EA01801203 +EA0100C7FCA7121C12261247A2128EA2120E5AA35AA21271A31272A2123C091C7C9B0D> +I<EA0FC01201A2485AA448C7FCA4380E07801308EB11C01321381C4180EB8000001DC7FC +121EEA3FC0EA38E01370A2EA7071A31372EAE032EA601C121D7E9C13>107 +D<EA383EEA4CC3384D0380124E129E129C121CA238380700A3130E00701340A2131C1480 +EAE00C3860070012127C9117>110 D<13F8EA030CEA0E06487E1218123000701380A238 +E00700A3130EA25BEA60185BEA30E0EA0F8011127C9115>I<EA1C3CEA2642EA4687EA47 +07EA8E061300120EA25AA45AA45A123010127C9112>114 D<EA1C06EA2E0EEA4E06A2EA +8E02A2121CA2EA3804A313081230A21310EA3820EA1840EA0F800F127C9113>118 +D E /Fb 13 118 df<EA01E3EA0717EA0C0F1218EA380E12301270A2485AA4EB3880A3EA +607838319900EA1E0E11127E9116>97 D<123F1207A2120EA45AA4EA39E0EA3A30EA3C18 +12381270131CA3EAE038A313301370136013C01261EA2300121E0E1D7E9C12>I<EA01F0 +EA0708120CEA1804EA38081230EA7030EA7FC0EAE000A51304EA60081310EA3060EA0F80 +0E127E9113>101 D<EB38C013C5EA0183EA0303000713801206120EA2381C0700A4130E +A3EA0C1EEA047CEA039CEA001CA25B1260EAF0301370EAE0C0007FC7FC121A809114> +103 D<EA0FC01201A2485AA448C7FCA4EA0E3E13C3380F0380120E121E121CA338380700 +A3130E00701320A2131C144038E00C8038600700131D7E9C18>I<EA01C01203A2EA0180 +C7FCA6121C12271247A21287A2120EA25AA35A1380A21270EA71001232121C0A1C7E9B0E +>I<EA1F801203A2EA0700A4120EA45AA45AA45AA412E2A312E412641238091D7F9C0C> +108 D<39381F81F0394E20C618394640E81CEB80F0EA8F00008E13E0120EA2391C01C038 +A315703938038071A215E115E23970070064D83003133820127E9124>I<EA3C1F384E61 +80384681C0EA4701128F128E120EA2381C0380A3EB070000381310A2130E142038700640 +3830038014127E9119>I<13F8EA030CEA0E06487E1218123000701380A238E00700A313 +0EA25BEA60185BEA30E0EA0F8011127E9114>I<EA3C3CEA4E42EA4687EA470FEA8E1E13 +0CEA0E00A25AA45AA45A123010127E9113>114 D<EA01F0EA060CEA0C04130EEA180CEA +1C00121FEA0FE013F0EA03F8EA0038EA201CEA701812F01310EA8030EA6060EA1F800F12 +7E9113>I<001C13C0EA27011247A238870380A2120EA2381C0700A438180E20A3EA1C1E +380C26403807C38013127E9118>117 D E /Fc 3 125 df<EB01801307131FEB3E0013F8 +485AEA07C0485A003EC7FC12FC12F012FC123EEA0F806C7EEA01F06C7E133EEB1F801307 +130111157E9616>60 D<12C012F012FC123EEA0F806C7EEA01F06C7E133EEB1F80130713 +1FEB3E0013F8485AEA07C0485A003EC7FC12FC12F012C011157E9616>62 +D<12E0B3AE0320779C16>124 D E /Fd 69 128 df<EA8004EA401EEA3FFF7EEA0FFC10 +058A7E00>0 D<EA8004EA401EEA3FFF7EEA0FFCC7FCEA800CEA7FFEEA3FFFEA1FFE100A +8A7E00>I<12F0127E6C7EEA03E0EA0070131813047F7FEB00801440120B81A51A>3 +D<B612FC6C14FE7E3906003800A212077EA31380A41273127B127F1277123F121FEA0F00 +C7FCA21308131C133EEB1C18EB08081F1B81991D>11 D<39F807FFFC6C6C13FEEA7E0139 +010038001380A213C0A212031207381FFFF8127F383F0038003C13781210001813F8EA08 +01EA0607EA03FF7E38007F381300A21308131CEB3E18EB1C080108C7FC1F1C81991D>I< +B612E06C14F07E000EC8FCA5EA0FFE6C6C7E6C7FC7126080A21438A21478A214F8380F01 +F013C7EBFFE06C5B6C90C7FCEA01F8EA001CA4130C13041C1F81991A>26 +D<EB07E0EB3FF0EBFFF84890C7FCEA03F8EA07E0485A5B48C8FC121EA25AA3007FB512E0 +6C14F05A397800200014305A143814785A14F8495A13FF6D5A38603FC0EB0060807E1438 +12100018137812086C13F8380383F0EA01FF6C5BEB1F801C2882A719>I<5AEA8388EAC7 +CCEA438CEA610CEA201CEA183CEA0FF8EA03F00E0981A500>32 D<B612C06C14E07E3900 +01C000A4EA03FF121F5AD87F80C7FC007CC8FC12781270130F497E38303FC0EB7E60EA10 +7C38187870EA0870380430F0EA03B3EA21FF00705B38F81F800070C8FC12201B1C819919 +>39 D<B612FC6C14FE7EC7EA3800A61207EA0F8013C0EBFFF87E7E3801C038A713C8EA00 +DC137EEB1C18EB08081F1B81991D>41 D<1220127012F812701220050582A400>44 +D<128012C012E0B3A512601220031B709911>46 D<120FEA3FC0EA7FE0EA7E30EAF808EA +F00CA2EAE00EEA601EA2EA203EEA18FC120FEA07F8EA01E00F0F809313>48 +D<12E012F012F812E412E6A21267A21227121F120F121F121E123E123C127C12F8127812 +70122012101218120812041206120E121F120F1206081D7D9911>I<EA3FC0EAFFF86C7E +EA380EEA00011480A214C01303A21307EB0F80EA383F383FFF006C5AEA0FF8EA07C0EA00 +207F7F7F7F7FEB008014401219809718>I<EAFFC0EA7FF0EA3FF8EA000C130E131E133E +EA3FFE13FCEA1FF8EA0008130CA2130EA2EA381EEA3E3EEA3FFEEA1FFCEA0FF8EA07E0EA +00101308130413020F19809715>I<6C13080040131C6C133E6C137E381801FC380C03F8 +380607F038030FC03800BF80EB7F0013FEEA01F8A2EA03EC13C413C613861387EA018F13 +9F6CB4FC137E133C171780991D>I<1304EA1806EA0C0712061203A21387A21207120F12 +3FEAFF07EA7E0F1278EA201FEA187FEA0FFF7EEA01F7EA0007A613031301101B809919> +I<13F0EA03F8120713E013801300A27EEA07F0EA3FF8EA7FFCEAFF7EEAF81EEAF0005A12 +60A212207EEA3FF8EA7FFCEAFFFEEAF8005A5AA21260EA3FFCEA1FFEEA07FF101E809D15 +>I<137C13FE487EEBF18013E13800C1C013411301A21303A3EB0780130FA2EB1F00133E +137E485AEA07F8B45AEA7FC06CC7FC1217809818>I<126012F07EEAFFFC6C7E123F0038 +C7FCA21218A21208120C12047E6C7EEA00E0137E131FEB078011137D931A>I<137013F8 +12015B5B5B126012F0EAF870EAFFFC6C7E123F0038C7FCA21218A21208120C12047E6C7E +EA00E0137E131FEB078011197D991A>I<14FE903803FF804913C090380FE060EC801049 +C7FC131EA2EA03FC120F121F1380003EC8FC123C387FFFE06C7F487F3878002014305A14 +3814785A14F8495A13FF6D5A38603FC0EB0060807E143812100018137812086C13F83803 +83F0EA01FF6C5BEB1F801C2882A719>I<EA8080EAC0C0EAE0E0B3A5EA6060EA20200B1B +759914>I<EAFFFEEA7FFF7EEA1C00AD120C1204101281990E>65 +D<B612C06C14E07E390001C000A21303A3380FC780EA1FF713FFD81E0FC7FCEA1C1FEA0C +3F5B3807FD80EA03F93801F1C0EA00011303EA4007EA600F38307F80D81FFFC7FC6C5AEA +03F01B1A819919>I<B7FC6C15807EC70007C7FCA3EA03FE48B5FC5AEB807F90C9FC120E +380601F8EB1FFC381FFFFE4813C3EBFC03D83C307F38180807130C0008130F26060E1FC7 +FC38038EFF6CB45A6C6C5AEB1FE0211A81991F>I<B612FC6C14FE7E39010038001380A2 +13C01203A21207EA1F80127FEA3F00003C13781210001813F8EA0801EA0607EA03FF7E38 +007F381300A4141814081F1B81991D>I<EA03E0EA07F8EA0FFEEB8780EB01C0380E0060 +14101400A5EAFFF06C7E123F000EC7FCB3A412061202142781A50B>I<EA0FC0EA3FF048 +7EEAFE0CEAF802487E00E07F130000607FC7FC1460A2903803FFF86D13FC7FEC7000B3A4 +143014101E278FA50E>I<00F890381FFFF06C6D13F8007E7F0001903800E0007FA213C1 +1480000313C01207121FEA7F81EA3F01123C12101218000813C1000413C3EA03813801FF +C76C13FF131FEB001F1400A215601520251B819923>I<B612E06C14F07E390F807800EB +00F8380E01F0EA0603EB0FE06CB45A00215B003F7F381FFC603807E030C7FC1438A21478 +A214F8381E01F0EA1F87EBFFE06C5B6C90C7FCEA03F8EA0038A21378A2133813101C1F81 +991A>74 D<39F807FFFC6C6C13FEEA7E0139010038001380A213C0A212031207381FFFF8 +127F383F0038003C13781210001813F8EA0801EA0607EA03FF7E38007F381300A4141814 +081F1B81991D>I<7E7E1260A27E121FEA0FF86C7E133E1303EB0180130014007E7E110F +94A500>79 D<B612C06C14E07E390001C000A4EA03FF121F5AD87F80C7FC007CC8FC1278 +1270130F497E38303FC0EB7E60EA107C38187870EA0870380430F0EA03B3EA01FF6C5BEB +1F801B1A819919>I<B612E06C14F07ED80807C7FC120412021201EA0FFF123F5AEA7E10 +0078C8FC1270A2EA3807381FFF806C7F91C7FC0006C8FCA21202EA01826CB4FC6D7E131F +1C1981991A>82 D<B612FC15FE7E39010038001380A213C0A212031207381FFFF8127F38 +3F0038003C13781210001813F8EA0801EA0607EA03FF7E38007F381300A4141814081F1B +81991D>84 D<B612E06C14F07ED80007C7FCA648B4FC120F5AEA3FC0007EC8FC127C1278 +1270A21230A2001013F0380E07F8EA07FF6C13E0C66CC7FC1C1981991A>86 +D<B612E06C14F07E3900038000A6EA01FF120F5A383FC040387E0020007C133012780070 +1338A20030137814F8EA1001380E07F06CB45A6C5BC66CC7FC1C1981991A>I<B612C06C +14E07EC7EAC000A2497EA21303495AEA07FF6C5B6C90C7FCEA000613021303A26D7EEA3F +81EA7FF9EBFFC0EA781FEA30031307EA183F380FFF806C90C7FCEA01F81B1B819919>I< +B612E06C14F07EC7EA7000A31206120F1380EBFFF07E7E0180C7FCA2EB8780EB8FC03801 +9FE0143013BE3800FC38A2EB7878EB38F8131F6D5AEB03E01C1A81991A>I<B612E06C14 +F07E0001C8FCEA00C013601338130EEB07F080147891C7FCA2133FEA07FF121FEA3FF848 +C8FC127C127812301460381C03F0380FFFF86C5BC613801C1A81991A>I<123E127FEAFF +80EAF840EAF060EA6020EA20100C0786A300>92 D<EA8008EAC00C12401260EA201CEA18 +3CEA0FF8EA03F00E0881A400>95 D<6C90383FFFE000406D13F06C7F6C903803C0006C13 +0F3804F81F3807FE3FEBFF7F380FE1FD381F80F9EB81F1383F83E1003D13F113C3EA39C7 +A21219000F13711207000313F1EA000FA214E11307EB03C190C7FC1540241B809923>97 +D<B612FC6C14FEA2397C00380012781230A21210120EEA07F8EA0FFCEA1FFE1380381E00 +78000C13F81303EA060FEA03FF6C13B838007E381300A5141814081F1B81991D>I<B612 +E06C14F07EC7EA7000A31206120F1380EBFFF07E7EEB8038A400011378A33800C070A2EB +40F01330131F6D5A13031C1A81991A>I<B612E06C14F07EC7EA7000A31206120F1380EB +FFF07E7E0180C7FCA21201A212007F13407F1318130EEB07E0EB01F0EB00781C1981991A +>I<B612FC6C14FE7E390E003800AAB512F8A338EE0038127E123E121EC7FCA21308131C +133EEB1C18EB08081F1B81991D>102 D<B612FC6C14FE7E3906003800A212077EA31380 +A41273127B127F1277123F121FEA0F00C7FCA5141814081F1B81991D>I<007FB5FC6C14 +807ED80007C7FCAB127012F812FC12F012E01260A21220EA180FEA0E1F6CB4FCEA01FEEA +007C191B829916>I<B612E06C14F0A2D83C07C7FC121C120E1207EA038713C76CB4FC12 +0F5AEA3FC0007EC8FC127C12781270A21230A2001013F0380E07F8EA07FF6C13E0C66CC7 +FC1C1981991A>I<B612FC6C14FE7EC7EA3800A61207EA0F8013C0EBFFF87E7E3801C038 +A812001340EB001814081F1B81991D>I<B612806C14C07EC7EAE000A31301A3380F03C0 +EA1FC313C7381EE780EA1CFFD80C7FC7FCA2EA07FE6C5A6C7EEA000E7F8013036D7E8013 +001A1A819918>I<B612F86C14FC7E390F01E00000075B138300035B13C7000190C7FCEA +07EE381FEF8048B47E387F7C60387C381038F80018487FA25A140EA20060131EA2002013 +3E6C133C7EC712181E1A81991C>I<39E007FFFCD8780313FE6C7E39060038007EA21380 +A7383FFFF8A3383B8038121F120F1207C7FCA5141814081F1B81991D>I<B612F86C14FC +7ED80038C7FCA5EA01F8487E487E13C1380F8180EB00C0A2120E001E1360A3001C1370A5 +000C1330000413101E1A81991C>I<7E7E1260A27E121FEA0FF8EA03FCEA003E1303EB01 +801300110C94A500>I<39080FFFF86C6C13FCEA060339020070001203A213801207A212 +0FEA3F00B4FC127E007813F01220EA3001EA1003EA0C0FEA07FF7E3800FE701300A41430 +14101E1B80991D>I<007FB5FC6C14807ED80007C7FCAAEA03E7EA7FFFB5FC1387EAF007 +12E01260A2122012106C5AEA061F6CB4FC6C5AEA007C191C829916>114 +D<B612FC6C14FE7E390E003800AAB512F8A338EE0038127E123E121EC7FCA5141814081F +1B81991D>I<B612C06C14E07EC7EA40001460A2147014F0A21301495AEA01FF6C5B6D5A +EB00C01460A21470A214F01220EA3801381F07E0EA07FF00015BD8003FC7FC1B1A819919 +>I<13F8EA03FE487E380FE180EB80C0381F0060121EA2481370A3003813F0007FB512E0 +6C14F05A397800200014305A143814785A14F8495A13FF6D5A38603FC0EB0060807E1438 +12100018137812086C13F8380383F0EA01FF6C5BEB1F801C2682A519>I<B612E06C14F0 +7ED80007C7FCA4EA0FFF123F5A007EC8FC12781270A2EA3807381FFF806C7F91C7FC0006 +C8FCA21202EA01826CB4FC6D7E131F1C1981991A>I<B612C06C14E07EC7EAC000A2497E +A21303495AEA07FF6C5B6C7FC71260A21470A214F0A21301381C03E0EA1F0FEBFFC06C5B +6C48C7FCEA03F6EA00721373A2EB718013300110C7FC1B1F819919>I<B712F016F87E00 +01C7EAE0007FA27FA212031207381FC1FFEA7F81EA3F01003C13C01210121812081204EA +0381EA01FF7E131F90C7FCA315601520251B819923>121 D<121E6C7EEA07E0EA007013 +18EAF804EA7FC2EA3FFBEA01FF38000F801301EB0040120C81A61A>123 +D<127EB4FCEAE0C0EAC0601310EA4008EA3004EA1F02EA0781380001801300110B888200 +>125 D<123FEA7F80EAF040EAE020EAC030A3EA4070EA20F0EA1FE0EA0FC00C0B79961A> +127 D E /Fe 30 121 df<1360EA01E0120F12FF12F31203B3A2387FFF80A2111B7D9A18 +>49 D<127812FCA412781200A6127812FCA4127806127D910D>58 +D<EB0380A2497EA3497EA2497E131BEB3BF81331A2EB60FCA2EBE0FEEBC07EA248487E90 +B5FC481480EB001F4814C00006130FA248EB07E0A239FF803FFEA21F1C7E9B24>65 +D<90381FE0209038FFF8E03803F80F3807C003380F800148C7FC123E1560127E127C00FC +1400A8007C1460127E123E15C07E390F8001803907C003003803F80E3800FFFCEB1FE01B +1C7D9B22>67 D<B512F814FF390FC01FC0EC07E0EC01F015F8140015FC157CA2157EA815 +7CA315F8A2EC01F0EC07E0EC1FC0B6120014F81F1C7E9B25>I<B6FCA2380FC01F140780 +1580A214C1A39038C1C00013C313FFA213C313C113C01560A2EC00E015C0A21401A21403 +EC0F80B6FCA21B1C7E9B1F>I<90380FF00890387FFE383901FC07F83807E001390F8000 +7848C7FC481438123E007E1418127C00FC1400A6EC7FFFA2007CEB01F8127E123E123F7E +EA0F80EA07E03801FC0739007FFE7890380FF818201C7D9B26>71 +D<EAFFFCA2EA0FC0B3A6EAFFFCA20E1C7E9B12>73 D<B512F814FE390FC03F80140FEC07 +C015E0A515C0A2EC0F80EC3F00EBFFFC01C0C7FCABEAFFFCA21B1C7E9B21>80 +D<3807F820381FFEE0EA3C07EA7801EA700012F01460A26C130012FEEAFFE0EA7FFE6C7E +1480000F13C06C13E0EA007FEB03F01301130012C0A214E07E38F001C0EAFC0338EFFF00 +EA83FC141C7D9B1B>83 D<007FB512E0A238781F81007013800060146000E0147000C014 +30A400001400B03807FFFEA21C1C7E9B21>I<EA0FF8EA1C1E383E0F80130714C0121C12 +00137FEA07E7EA1F07123C127C12F8A3EA780B383E13F8EA0FE115127F9117>97 +D<B4FCA2121FA9EB3F80EBE1E0EB8070EB0078143CA2143EA6143CA21478EB8070381EC1 +E0381C3F00171D7F9C1B>I<EA03FCEA0E0EEA1C1F123C1278130E00F8C7FCA61278EB01 +80123C381C0300EA0E0EEA03F811127E9115>I<EB0FF0A21301A9EA01F9EA0F07EA1C03 +EA3C011278A212F8A61278A2123CEA1C03380F0FFEEA03F9171D7E9C1B>I<EA03FCEA0F +07381C0380383C01C0127814E012F8A2B5FC00F8C7FCA3127814607E6C13C0380F038038 +01FC0013127F9116>I<137F3801E3803803C7C0EA0787120FEB8380EB8000A5EAFFF8A2 +EA0F80AEEA7FF0A2121D809C0F>I<B4FCA2121FA9EB0FC0EB31E0EB40F0EB80F8A21300 +AB38FFE7FFA2181D7F9C1B>104 D<121E123FA4121EC7FCA6127FA2121FAEEAFFC0A20A +1E7F9D0E>I<B4FCA2121FA9EB03FCA2EB01C0EB0300130E5B5B137813FC13BE131F7F14 +80EB07C0EB03E0130138FFE7FEA2171D7F9C19>107 D<B4FCA2121FB3A7EAFFE0A20B1D +7F9C0E>I<39FF0FC07E903831E18F3A1F40F20780D980FC13C0A2EB00F8AB3AFFE7FF3F +F8A225127F9128>I<38FF0FC0EB31E0381F40F0EB80F8A21300AB38FFE7FFA218127F91 +1B>I<EA01FC380F0780381C01C0003C13E0387800F0A200F813F8A6007813F0A2383C01 +E0381E03C0380F07803801FC0015127F9118>I<38FF3F80EBE1E0381F80F0EB0078147C +143C143EA6143C147C1478EB80F0EBC1E0EB3F0090C7FCA6EAFFE0A2171A7F911B>I<EA +FE3E1347381E8F80A3381F070090C7FCAAEAFFE0A211127F9114>114 +D<EA1FD8EA3078EA601812E0A2EAF000EAFF80EA7FE013F0EA1FF8EA07FCEA007CEAC01C +A212E01318EAF830EACFC00E127E9113>I<1203A45AA25AA2EA3FFC12FFEA1F00A9130C +A4EA0F08EA0798EA03F00E1A7F9913>I<38FF07F8A2EA1F00AC1301120F380786FFEA01 +F818127F911B>I<38FFC7FCA2381F81C0380F83803807C700EA03EEEA01FC5B1200137C +13FEEA01DF38039F80EA070F380607C0380C03E038FF07FCA216127F9119>120 +D E /Ff 4 122 df<133C13E0EA01C013801203AD13005A121C12F0121C12077E1380AD +120113C0EA00E0133C0E297D9E15>102 D<12F0121C12077E1380AD120113C0EA00E013 +3C13E0EA01C013801203AD13005A121C12F00E297D9E15>I<12C0A21260A37EA37EA37E +A37EA27EA3EA0180A3EA00C0A31360A21330A31318A3130CA31306A31303130110297E9E +15>110 D<12021207A61202A3EA7270EAFFF8EA7270EA0200A21207B11202A60D267E9C +12>121 D E /Fg 39 122 df<EAFFF8A30D037F8C12>45 D<127812FCA4127806067C85 +0F>I<13FE38038380380701C0380E00E0481370003C1378A2003813380078133CA300F8 +133EAF0078133CA3007C137C003C1378A2001C13706C13E0380701C0380383803800FE00 +17257EA31C>48 D<136013E0120312FF12FD1201B3AA487EB512C0A212247BA31C>I<00 +101320381E01C0381FFF8014005BEA13F80010C7FCA713FCEA1307381C0380381801C000 +1013E01200EB00F0A214F8A3127012F8A314F01280EA400114E0382003C038300780381C +0F00EA07FEEA03F015257DA31C>53 D<13FE3803FF80380783C0380E00E04813F0003C13 +70481378A200F8133CA4143EA41278147E7E121C14BE380E013EEA03823800FC3C1300A2 +147C1478A2001C1370003E13F014E0383C01C038180380381C0F00EA0FFEEA03F017257E +A31C>57 D<127812FCA412781200AB127812FCA4127806177C960F>I<1460A314F0A249 +7EA3EB02FC147CA2497EA3497EA201187FEB100FA201207F1407A2496C7EA2EB7FFF90B5 +7EEB800100018090C7FCA2000280157CA248801206001F147F3AFFC003FFF0A224267EA5 +29>65 D<B6FC15C03907C003F0EC00F8157C81151E151FA5151E153E5D5DEC03E090B512 +809038C003E0EC00F8153C153E81811680A6ED1F00A2153E5D4A5AB612E0158021257EA4 +27>I<B512FEECFFC03907C003F0EC00F8153C8181ED0780A2ED03C0A216E01501A216F0 +A916E0A2150316C0A215071680ED0F00151E5D5DEC03F0B612C092C7FC24257EA42A>68 +D<EAFFFEA2EA07C0B3AFEAFFFEA20F257EA414>73 D<EB03FC90381E078090387801E090 +38E0007048487F48487F48C77E48140F001EEC0780A248EC03C0A2007C15E000781401A2 +00F815F0A9007815E0007C1403A2003C15C0003E1407A2001E15806CEC0F006C6C131EA2 +6C6C5BC66C137090387801E090381E0780D903FCC7FC24277DA52B>79 +D<B512FCECFF803907C007E0EC01F0EC00F8157C153C153EA6153C157815F8EC01F0EC07 +C090B5120001C0C7FCB0EAFFFEA21F257DA426>I<007FB612C0A2397801F00300601400 +A20040154000C01560A200801520A400001500B3A4497E48B512F0A223257EA428>84 +D<D8FFFCEB0FFCA2D80FE0EB03E06C48EB01807F00031500A26C6C1302A27F00005CA201 +7C5BA36D5BA2013F13306D1320A26D6C5AA214C001075BA2D903E1C7FCA214F1EB01F2A2 +EB00FCA31478A31430A226267FA429>86 D<3CFFFC07FFE01FFCA23C0FC0007E0003E000 +07023EEB00C01880A26C6C013FEB0100A36C6C90384F8002A36C6C903887C004A3903A7C +0103E008A3903A3E0201F010A36D486C6C5AA3D90F88EB7C40A3D907D8EB7E8002D0133E +A2D903F0013FC7FC4A7FA20101141E4A130EA20100140C4A130436267FA439>I<EA07F8 +EA1C0F383E0380801301001C7F1200A3133FEA03F1EA0F81EA1E01123C127C00F81480A3 +1303A2387C05F1393E08FF003807F03C19177E961C>97 D<120FB4FCA2121F7EAAEB0FC0 +EB3070EB4038EB801EEB000E140FEC0780A215C0A71580140F1500140E6D5A380E403838 +0C20F038081F801A257EA41F>I<EBFF80380380E0380701F0121E121C383C00E0007C13 +00127812F8A71278127C003C1310121C001E132000071340380381803800FE0014177E96 +19>I<143CEB03FCA2EB007C143CAA137EEA03C1380700BC000E137C48133C123C127C12 +7812F8A71278A27E121C001E137C000713BE3903833FC0EA00FC1A257EA41F>I<13FF38 +0383C0380700E0000E1370481378003C133848133CA212F8B512FC00F8C7FCA51278127C +003C1304121C6C13086C13103803C0E038007F0016177F9619>I<131FEB70C03801E1E0 +13C31203380781C0EB8000A8EAFFFEA2EA0780B3EA7FFCA2132580A411>I<141E3801F8 +6338070E87EA1E07381C0380003C13C0007C13E0A5003C13C0001C1380EA1E0738170E00 +EA11F80030C7FCA41238381FFF806C13F014F83838007C48131C0060130E12E0A3007013 +1CA2001C1370380F01E03801FF0018237E971C>I<120FB4FCA2121F7EAAEB0FC0EB1070 +EB2078EB4038EB803CA21300AF39FFF1FFC0A21A257EA41F>I<120E121F5AA27E120EC7 +FCA8120FB4FCA2121F7EB1EAFFE0A20B257FA40F>I<120FB4FCA2121F7EAAECFF80A2EC +7C00143014405C0103C7FC1304130C131E133E13DFEB0F806D7E1303806D7E130080147C +147E39FFF1FFC0A21A257FA41D>107 D<120FB4FCA2121F7EB3ADEAFFF0A20C257FA40F> +I<3A0F07E00FC03AFF187830F09039203C40783A1F401C80383A0F801F003CA2EB001EAF +3BFFF1FFE3FFC0A22A177E962F>I<380F0FC038FF1070EB2078381F4038380F803CA213 +00AF39FFF1FFC0A21A177E961F>I<13FE38038380380E00E0001E13F0481378A248133C +A200F8133EA70078133CA26C1378A26C13F0380F01E0380383803800FE0017177E961C> +I<380F0FC038FF3070EB4038380F801E1300801580140715C0A7EC0F80A21500141EEB80 +1CEB4038EB20F0EB1F8090C8FCA8EAFFF0A21A217E961F>I<380F0F8038FF31C0EB23E0 +EA1F43EA0F83EB81C0EB800090C7FCAEEAFFF8A213177F9616>114 +D<EA07F1EA180BEA3007487EEAE001A300F8C7FC127F13F0EA3FFCEA0FFEEA03FFEA001F +38800780A2EAC003A300E01300EAF006EACC0CEA83F011177E9616>I<7FA41201A31203 +1207120F48B4FCB5FCEA0780AB1480A61203EBC100EA01E2EA007C11217FA016>I<000F +133C38FF03FCA2381F007C6C133CAE147C7E14BE3903C33FC0EA00FC1A177E961F>I<39 +FFE03FC0A2390F800E00EB000C38078008A2EBC01800031310A26C6C5AA26C6C5AA2EBF8 +C0EB7880A2013DC7FCA27FA3130CA21A177F961D>I<3AFFE3FF07F8A23A1F007801E06C +9038380080143CD80780EB0100145C145E3903C0DE02148E9038E08F063901E107041584 +D800F11388EBF20315C8017E13D0EB7C0115F090383800E0A201185B0110134025177F96 +28>I<39FFE0FFC0A2390F803C00000713303803C0206D5A00015BD800F1C7FC137B133E +133C7F131FEB3780EB67C01343EB81E048C67E487F00061378001F137C39FF80FFC0A21A +177F961D>I<39FFE03FC0A2390F800E00EB000C38078008A2EBC01800031310A26C6C5A +A26C6C5AA2EBF8C0EB7880A2013DC7FCA27FA3130CA21308A25BA212F85B1360EAB840EA +6180001EC8FC1A217F961D>I E /Fh 88 127 df<EB7E1F3901C1B180390303E3C00007 +13C3000EEBC180903801C000A6B512FC380E01C0B0387F87FC1A1D809C18>11 +D<137E3801C180EA0301380703C0120EEB018090C7FCA5B512C0EA0E01B0387F87F8151D +809C17>I<126012F0A71260AD1200A5126012F0A21260041E7C9D0C>33 +D<EA6060EAF0F0EAF8F8EA6868EA0808A3EA1010A2EA2020EA4040EA80800D0C7F9C15> +I<9038030180A39038060300A5EB0C06A4495A007FB512F8B612FC3900301800A4495AA4 +B612FC6C14F83900C0600048485AA438030180A4D80603C7FCA31E257E9C23>I<1380A2 +EA07E0EA1898EA3084EA6082EA4081EAC087138FA21386EAE0801270127EEA3FC0EA1FF0 +EA0FF8EA03FCEA00BE138E13871260EAF083A212E0EA808212401384EA2088EA1890EA07 +E0EA0080A210217E9E15>I<000F14C0EA188039306003803970380700386027FB38E010 +065CA25CA25C5CEA602000705B38304180EA1881390F0303C03900060620EC0C1090380C +1C08EB1818EC380413301360A213C0A2EA01803903001808141C0006EB0C1048EB062000 +04EB03C01E217E9E23>I<13E0EA0310EA0608A2120EA45BA25B6C5AEC3FE09038800F80 +EC06000003130412073809C00800115BEA30E03820F020EA607038E03840EB3C80131C90 +380F00207F0070EB8040383009C0391830E180390FC03F001B1F7E9D20>I<126012F012 +F812681208A31210A2122012401280050C7C9C0C>I<1380EA0100120212065AA25AA25A +A35AA412E0AC1260A47EA37EA27EA27E12027EEA0080092A7C9E10>I<7E12407E12307E +A27EA27EA37EA41380AC1300A41206A35AA25AA25A12205A5A092A7E9E10>I<1203A4EA +C30CEAE31CEA7338EA1FE0EA0780A2EA1FE0EA7338EAE31CEAC30CEA0300A40E127D9E15 +>I<1306ADB612E0A2D80006C7FCAD1B1C7E9720>I<126012F0A212701210A41220A21240 +1280040C7C830C>I<EAFFE0A20B0280890E>I<126012F0A2126004047C830C>I<130113 +031306A3130CA31318A31330A31360A213C0A3EA0180A3EA0300A31206A25AA35AA35AA3 +5AA35AA210297E9E15>I<EA03C0EA0C30EA1818EA300CA2EA700EEA6006A2EAE007ADEA +6006A2EA700EEA300CA2EA1818EA0C30EA07E0101D7E9B15>I<5A1207123F12C71207B3 +A5EAFFF80D1C7C9B15>I<EA07C0EA1830EA201CEA400C130EEAF00F12F81307A21270EA +000F130EA2131CA213381370136013C0EA0180EA0300EA0601120C1218EA1002EA3FFE12 +7F12FF101C7E9B15>I<EA07E0EA1830EA201CA2EA781E130E131E1238EA001CA2131813 +301360EA07C0EA0030131CA2130E130FA2127012F8A3EAF00EEA401C1220EA1830EA07C0 +101D7E9B15>I<130CA2131C133CA2135C13DC139CEA011C120312021204120C12081210 +12301220124012C0B512C038001C00A73801FFC0121C7F9B15>I<EA300CEA3FF813F013 +C0EA2000A6EA23E0EA2C30EA3018131CEA200E1200130FA3126012F0A3EA800EEA401E13 +1CEA2038EA1870EA07C0101D7E9B15>I<EA03E0EA0C30EA1008EA200C13061260A21270 +A2EA7C0CEA3E18EA3FB0EA1FE0EA07F013F8EA18FCEA307EEA601E130FEAC0071303A4EA +60021304EA300CEA1C10EA07E0101D7E9B15>56 D<EA03C0EA0C30EA1818EA300C1270EA +600EEAE006A21307A51260EA700F1230EA1817EA0C27EA07C7EA0006A2130EEA300C1278 +13181270EA2030EA10C0EA0F80101D7E9B15>I<126012F0A212601200AA126012F0A212 +6004127C910C>I<126012F0A212601200AA126012F0A212701210A41220A21240128004 +1A7C910C>I<007FB512C0B612E0C9FCA8B612E06C14C01B0C7E8F20>61 +D<EA0FE0EA3038EA401CEAE00E12F0A3EA000C131C1330136013C0138012011300A6C7FC +A51203EA0780A2EA03000F1D7E9C14>63 D<EB3F80EBC0603803001800041304487F487F +39201F0080EB70803940E04040EBC0381241D8818013201283A51281EA41C000401440EB +E078392070988090381F0F006CC8FC7E7E0003EB01E03900C01F8090383FF0001B1D7E9C +20>I<1306A3130FA3EB1780A2EB37C01323A2EB43E01341A2EB80F0A338010078A2EBFF +F83802003CA3487FA2000C131F80001E5BB4EBFFF01C1D7F9C1F>I<B512C0380F007880 +80140E140FA4140E141E5C14F8EBFFF0EB003C8080801580A5EC0F00A2141E1478B512E0 +191C7F9B1D>I<90381F8080EBE0613801801938070007000E13035A14015A00781300A2 +127000F01400A8007014801278A212386CEB0100A26C13026C5B380180083800E030EB1F +C0191E7E9C1E>I<B512C0380F00F0143C140E80A2EC038015C01401A215E0A815C0A214 +03158014071500140E5C1470B512C01B1C7E9B20>I<B512FC380F003C140C1404A21406 +1402A213011400A35B13FF13037FA3140113001402A31406A2140C143CB512FC181C7E9B +1C>I<B512F8380F007814181408A2140C1404A213011400A35B13FF13037FA490C7FCA8 +EAFFF8161C7E9B1B>I<90381F8080EBE0613801801938070007000E13035A14015A0078 +1300A2127000F01400A6ECFFF0EC0F80007013071278A212387EA27E6C130B3801801138 +00E06090381F80001C1E7E9C21>I<39FFF0FFF0390F000F00AC90B5FCEB000FAD39FFF0 +FFF01C1C7F9B1F>I<EAFFF0EA0F00B3A8EAFFF00C1C7F9B0F>I<3807FF8038007C00133C +B3127012F8A21338EA7078EA4070EA30E0EA0F80111D7F9B15>I<39FFF01FE0390F0007 +80EC060014045C5C5C5C5C49C7FC13021306130FEB17801327EB43C0EB81E013016D7E14 +78A280143E141E80158015C039FFF03FF01C1C7F9B20>I<EAFFF8EA0F8090C7FCB01408 +A31418A2141014301470EB01F0B5FC151C7E9B1A>I<B46CEBFF80000FECF800A2390BC0 +0178A33809E002A23808F004A3EB7808A3EB3C10A3EB1E20A3EB0F40A2EB0780A3EB0300 +121C3AFF8307FF80211C7E9B26>I<B4EB1FF0390F8003809038C00100120BEA09E0EA08 +F0A21378133C133E131E130F14811307EB03C1EB01E114F113001479147D143D141FA280 +8080121CB46C7E1C1C7F9B1F>I<EB3F80EBE0E03803803848487E000E7F487F003C1480 +00381303007814C0A20070130100F014E0A8007014C000781303A200381480003C130700 +1C14006C130E6C5B6C6C5A3800E0E0EB3F801B1E7E9C20>I<B51280380F00E01478143C +141C141EA5141C143C147814E0EBFF8090C7FCACEAFFF0171C7E9B1C>I<EB3F80EBE0E0 +3803803848487E000E7F487F003C148000381303007814C0A20070130100F014E0A80070 +14C000781303A200381480383C0E07D81C111300380E208E0007135C3803A0783900F0E0 +20133FEB0060EC3060EC38E0EC3FC0A2EC1F80EC0F001B257E9C20>I<B5FC380F01E0EB +007880141C141EA4141C143C5CEB01E001FFC7FCEB01E0EB0070147880A61510A2141CA2 +39FFF00E20C7EA03C01C1D7E9B1F>I<3807E080EA1C19EA30051303EA600112E01300A3 +6C13007E127CEA7FC0EA3FF8EA1FFEEA07FFC61380130FEB07C0130313011280A300C013 +80A238E00300EAD002EACC0CEA83F8121E7E9C17>I<007FB512C038700F010060130000 +401440A200C014201280A300001400B1497E3803FFFC1B1C7F9B1E>I<39FFF01FF0390F +000380EC0100B3A26C1302138000035BEA01C03800E018EB7060EB0F801C1D7F9B1F>I< +39FFE00FF0391F0003C0EC01806C1400A238078002A213C000035BA2EBE00C00011308A2 +6C6C5AA213F8EB7820A26D5AA36D5AA2131F6DC7FCA21306A31C1D7F9B1F>I<3AFFE1FF +C0FF3A1F003E003C001E013C13186C6D1310A32607801F1320A33A03C0278040A33A01E0 +43C080A33A00F081E100A39038F900F3017913F2A2017E137E013E137CA2013C133C011C +1338A20118131801081310281D7F9B2B>I<39FFF07FC0390FC01E003807800CEBC00800 +035B6C6C5A13F000005BEB7880137C013DC7FC133E7F7F80A2EB13C0EB23E01321EB40F0 +497E14783801007C00027F141E0006131F001F148039FF807FF01C1C7F9B1F>I<39FFF0 +03FC390F8001E00007EB00C06D13800003EB01006D5A000113026C6C5A13F8EB7808EB7C +18EB3C10EB3E20131F6D5A14C06D5AABEB7FF81E1C809B1F>I<387FFFF0EA7C01007013 +E0386003C0A238400780130F1400131E12005B137C13785BA2485A1203EBC010EA0780A2 +EA0F00481330001E13205A14604813E0EAF803B5FC141C7E9B19>I<12FEA212C0B3B312 +FEA207297C9E0C>I<EA0808EA1010EA2020EA4040A2EA8080A3EAB0B0EAF8F8EA7878EA +30300D0C7A9C15>I<12FEA21206B3B312FEA20729809E0C>I<120C12121221EA4080EA80 +400A057B9B15>I<1208121012201240A21280A312B012F812781230050C7D9C0C>96 +D<EA1FC0EA3070EA78387F12301200A2EA01FCEA0F1C12381270126000E01340A3EA603C +38304E80381F870012127E9115>I<12FC121CAA137CEA1D87381E0180381C00C014E014 +601470A6146014E014C0381E018038190700EA10FC141D7F9C17>I<EA03F8EA0C0CEA18 +1E1230EA700CEA600012E0A61260EA70021230EA1804EA0C18EA03E00F127F9112>I<EB +1F801303AAEA03F3EA0E0BEA1807EA30031270126012E0A6126012701230EA1807EA0E1B +3803E3F0141D7F9C17>I<EA07E0EA0C30EA1818EA300CEA700EEA600612E0EAFFFEEAE0 +00A41260EA70021230EA1804EA0C18EA03E00F127F9112>I<13F8EA018CEA071E1206EA +0E0C1300A6EAFFE0EA0E00B0EA7FE00F1D809C0D>I<EB03803807C4C0EA1C7838383880 +38301800EA701CA4EA3018EA38386C5AEA27C00020C7FCA21230EA3FF86CB4FC1480EA20 +03386001C0EAC000A33860018038300300EA1C0EEA07F8121C7F9215>I<12FC121CAA13 +7C1387EA1D03001E1380121CAD38FF9FF0141D7F9C17>I<1218123CA21218C7FCA712FC +121CB0EAFF80091D7F9C0C>I<13C0EA01E0A2EA00C01300A7EA07E01200B3A21260EAF0 +C012F1EA6180EA3E000B25839C0D>I<12FC121CAAEB0FE0EB0780EB06005B13105B5B13 +E0121DEA1E70EA1C781338133C131C7F130F148038FF9FE0131D7F9C16>I<12FC121CB3 +A9EAFF80091D7F9C0C>I<39FC7E07E0391C838838391D019018001EEBE01C001C13C0AD +3AFF8FF8FF8021127F9124>I<EAFC7CEA1C87EA1D03001E1380121CAD38FF9FF014127F +9117>I<EA03F0EA0E1CEA1806487E00701380EA600100E013C0A600601380EA70030030 +1300EA1806EA0E1CEA03F012127F9115>I<EAFC7CEA1D87381E0180001C13C0EB00E0A2 +1470A614E0A2EB01C0001E1380381D0700EA1CFC90C7FCA7B47E141A7F9117>I<3803E0 +80EA0E19EA1805EA3807EA7003A212E0A61270A2EA38071218EA0E1BEA03E3EA0003A7EB +1FF0141A7F9116>I<EAFCE0EA1D38EA1E78A2EA1C301300ACEAFFC00D127F9110>I<EA1F +90EA2070EA4030EAC010A212E0EAF800EA7F80EA3FE0EA0FF0EA00F8EA8038131812C0A2 +EAE010EAD060EA8FC00D127F9110>I<1204A4120CA2121C123CEAFFE0EA1C00A91310A5 +120CEA0E20EA03C00C1A7F9910>I<38FC1F80EA1C03AD1307120CEA0E1B3803E3F01412 +7F9117>I<38FF07E0383C0380381C0100A2EA0E02A2EA0F06EA0704A2EA0388A213C8EA +01D0A2EA00E0A3134013127F9116>I<39FF3FC7E0393C0703C0001CEB01801500130B00 +0E1382A21311000713C4A213203803A0E8A2EBC06800011370A2EB8030000013201B127F +911E>I<38FF0FE0381E0700EA1C06EA0E046C5AEA039013B0EA01E012007F12011338EA +021C1204EA0C0E487E003C138038FE1FF014127F9116>I<38FF07E0383C0380381C0100 +A2EA0E02A2EA0F06EA0704A2EA0388A213C8EA01D0A2EA00E0A31340A25BA212F000F1C7 +FC12F312661238131A7F9116>I<EA7FFCEA70381260EA407013F013E0EA41C012031380 +EA0700EA0F04120E121CEA3C0CEA380812701338EAFFF80E127F9112>I<EA1C04EA3F08 +EA43F0EA80E00E047D9B15>126 D E /Fi 24 118 df<ED01C04B7EA34B7EA34B7EA24B +7EA34B7E1539A2ED79FF1570A24B6C7EA34A486C7EA2020380ED801FA2020780ED000FA2 +4A80020E1307A24A6D7EA34A6D7EA202788002707FA202F0814A147F91B7FC4982A202C0 +C7123F49486E7EA349C86C7EA24982010E1507A2011E82011C1503A2496F7EA2137801FC +6F7E486C5D260FFF80020713C0B500F091B61280A341427DC148>65 +D<B912F0A3000101C0C7FC6C6C48EC0FF8170717011700A218781838183CA2181CA5041C +7FA395C7FCA3163CA2167C16FC150391B5FCA3EC80031500167C163CA2161CA3F00380A3 +93C7EA0700A560180EA2181EA2183EA26018FC17011703170F48486C14FFB95AA339407C +BF41>69 D<DB1FFC14C04AB5EA8001020714E0913A1FF803F803913A7F80003C07D901FE +C7120FD903F8EC078FD90FF0EC01DFD91FC0EC00FF4948157F49C9FC01FE163F0001171F +5B4848160F1207491607120F48481603A3485A1801127FA34993C8FC12FFAC007F0303B6 +12807FA293C7EBE000003F715A183F6C7EA36C7E12077F12036C7E7F1200137F6D7ED91F +E0157F6D6C15FFD903FCEC01EF6D6CEC03C79026007FC0EB0F87DA1FFCEBFF030207B5EA +FC010201ECE0009126001FFEC9FC41427BC04B>71 D<B500C0933807FFFEA300016D4C13 +00D8007F18FCD977F0161DA3D973F81639A2D971FC1671A3D970FE16E1A2027FED01C1A3 +6E6CEC0381A26E6CEC0701A36E6C140EA26E6C141CA36E6C1438A26E6C1470A36E6C14E0 +A2037FEB01C0A392393F800380A292391FC00700A392380FE00EA26F6C5AA36F6C5AA26F +6C5AA36F6C5AA2EE7FC0A213F8705A487E260FFF806DC7EA07FFB500F80303B512FEA216 +0E4F407CBF58>77 D<D903FE130690391FFFE00E017F13F89039FE01FC1E3A03F0003E3E +D807C0130F4848EB03FE90C71201481400003E157EA248153EA2161E12FCA3160E7EA27E +6C92C7FC7F7FEA3FF013FC381FFFC06C13FC6CEBFFC06C14F86C14FF6C816D14E0011F80 +010180D9001F7F14019138001FFEED07FF15016F1380167F163F17C0161F126000E0150F +A56C1680A36CED1F007E163E7E6C5D01C05CD8F9E0495AD8F8FC495A3AF07FC01FC0D8E0 +1FB55A010349C7FC39C0003FF02A427BC035>83 D<003FB912F0A3903BF0003FF0003F01 +806D48130748C7ED03F8007E1701007C170000781878A300701838A548181CA5C81600B3 +B34B7E4B7E0103B7FCA33E3F7DBE45>I<B600C090383FFFFEA3000101E0C7000313E026 +007F809138007F00183EA2181CB3B3A4013F5EA280131F606D7E6013076D6C4A5A6E4A5A +01014BC7FCD900FE140E023F143CDA1FC013F891390FF807F00203B512C0020091C8FCED +0FF83F417CBF48>I<003FB500E090387FFFFEA3C66C48C7000F13C0D91FF8DA07FCC7FC +010F6F5A18E06D6C5D6D7E4D5A6D6C92C8FC6D6D5B171E6E6C5B6E6C133817786E6C5B6E +6C5B16016E6C485ADA03FE5B16076E6C48C9FC6E138EED7FDE16FC6F5A6F5AA26F7E6F7E +A282825D031E7F92381C7FC0153C4B6C7E4B6C7E15E002016D7E4A486C7E4B6C7E14074A +486C7E020E6D7F141E4A6E7E02386E7E14784A6E7E49486E7E5C01036F7E49486E7EA201 +0F6F7E013F6F7F496C4A7F2607FFF002077FB500FC023FEBFFE0A343407EBF48>88 +D<EB1FF890B5FC3903F00FC039078003E0390E0001F0391F8000F86D7F486C137E157FA2 +6F7E6C5A6C5A0002C7FCC8FCA4EC7FFF0107B5FC90383FE03FEBFF00EA01FCEA07F0485A +485A485A90C7FC5AEE81C012FEA3157FA3007F14DFEC019F3B3F80038FC3803A1FC0070F +E73B07F01C07FF003A01FFF803FE3A003FE000F82A2B7CA930>97 +D<49B4FC010F13C090381F03F090387C00F849133C4848133E48487F0007EC0F80484814 +C0121F491307003F15E0A2127F90C713F01503A25AA290B6FCA290C9FCA57EA36C7EA216 +706C7E000F15E0A26C6CEB01C06C7E0001EC0380D800FCEB0700013E131E90381F80F890 +3807FFF001001380242B7DA92B>101 D<EC1FC0ECFFF0903803F03C903807C07E90380F +80FE90381F01FF133F137EA29038FE00FE49137C000114101500AEB6FCA3D801FCC7FCB3 +AF48B4FCB512FEA320427DC11D>I<D903FC133F903A1FFF81FFC0903A3E07C7C7E09039 +F801FE073901F000FC0003ED03C0484890387E018093C7FC48487FA2001F81A7000F92C7 +FCA26C6C137EA26C6C5B00015C6D485A39033E07C06DB45A260703FCC8FC0006CAFCA212 +0E120FA36C7E13E090B512F06C14FF6C15C06C15F06D800003B67E3A07C0000FFE48C8FC +001E153F4881007C168048150FA6007CED1F00003C151E6C5D6C5DD807C0495AD803F0EB +07E0D800FEEB3F8090261FFFFCC7FC010113C02B3D7DA830>I<EA01FC12FFA312071203 +1201B215FF020713E091380F03F891383800FC4A137E14C0D9FD80137F8201FFC71380A2 +5BA25BB3A7486CEC7FC0B5D8F81FB5FCA330417DC035>I<EA01E0487E487E487EA46C5A +6C5A6C5AC8FCACEA01FC12FFA3120712031201B3AD487EB512F0A3143F7DBE1A>I<143C +147E14FF491380A46D1300147E143C91C7FCACEC3F80EB3FFFA31300147F143FB3B3A612 +3E127FD8FF8013005C147EA2495A007E5B383C01F0381F03E0380FFF80D801FEC7FC1952 +85BE1D>I<EA01FC12FFA3120712031201B392383FFFE0A392381FFE00ED0FF816E01680 +93C7FC151E153815F04A5A4A5A4A5A4AC8FC5C4A7EECFFC013FD9038FFCFE0EC87F0EC03 +F813FC496C7E6E7EA2157F6F7E6F7EA26F7E6F7EA26F7E8282486CECFF80B5D8F01F13F8 +A32D417EC032>I<EA01FC12FFA3120712031201B3B3B3487EB512F8A315417DC01A>I<27 +03F801FFEC7FC000FF01079039C001FFF0913B1E03F00780FC913B3801F80E007E000790 +276000FC187F0003495C2601F9806D4880047E141F01FBC7D87FC08001FE5DA34992C7FC +B3A7486C4A6C497EB5D8F83FD9FE0FB51280A349297CA850>I<D803F813FF00FF010713 +E091380F03F891383800FC000749137E000313C02601F980137F8201FBC71380A213FEA2 +5BB3A7486CEC7FC0B5D8F81FB5FCA330297DA835>I<ECFF80010713F090381F80FC9038 +7E003F01F8EB0F8048486D7E48486D7E00078148486D7EA248486D7EA2003F8190C8127E +48157FA3481680AA6C1600A26D5C003F5DA2001F5D6D1301000F5D6C6C495A00035D6C6C +495A6C6C495A017E013FC7FC90381F80FC903807FFF001001380292B7DA930>I<3901F8 +03F000FFEB0FF8EC3C3CEC707E0007EBC0FF12033801F980EBFB00157E151801FE1300A4 +5BB3A548B4FCB512FEA320297EA825>114 D<90383FF0183901FFFC383907E01F78390F +0003F8001E1301481300481478A300F81438A37E7E6C1400EA7FE013FF6C13F06C13FE6C +EBFF806C14C0000114E06C6C13F0010313F89038001FFC14030060130100E0EB00FE157E +7E153EA37E153C7E15787E6C14F039F38001E039F1F00F8039E07FFF0038C00FF81F2B7D +A926>I<131CA6133CA4137CA213FCA2120112031207001FB512E0B6FCA2D801FCC7FCB3 +A21538AA000014707F137E6D13E06D13C090380FC380903807FF00EB00FE1D3A7EB825> +I<D801FCEC3F8000FFEC1FFFA3000714000003157F0001153FB3A6167FA316FF1200ED01 +BF017E15C0013E9038033FE06D010E13FF90380FC03C903803FFF09026007FC01380302A +7DA835>I E end +%%EndProlog +%%BeginSetup +%%Feature: *Resolution 300dpi +TeXDict begin +%%PaperSize: a4 +%%BeginPaperSize: a4 +a4 +%%EndPaperSize + +%%EndSetup +%%Page: 1 1 +1 0 bop 500 519 a Fi(Gurm)l(ukhi)33 b(for)f(T)1155 539 +y(E)1208 519 y(X)p Fh(*)632 710 y Fi(Us)r(er)g(Man)l(ual)766 +862 y Fg(V)-5 b(ers)q(ion)18 b(1.0)739 912 y(Oct)o(ob)q(er)e(1995)604 +1799 y Fi(Am)n(arjit)32 b(Sin)o(gh)p 0 2624 600 2 v 42 +2670 a Fh(*)20 b(T)106 2679 y(E)129 2670 y(X)14 b(i)q(s)f(a)h(trad)o +(em)o(ar)o(k)g(of)f(t)n(h)o(e)i(Am)o(er)q(ican)d(Ma)o(t)n(h)o(em)o(a)o +(t)o(ical)g(So)q(ciet)o(y)p eop +%%Page: 2 2 +2 1 bop 83 42 a Fg(In)n(tro)r(d)n(u)n(ct)n(ion)83 135 +y Fh(Th)o(e)13 b(purp)q(os)q(e)h(of)e(t)n(h)o(e)i(\\Gurm)n(ukhi)d(for)h +(T)739 144 y(E)762 135 y(X")h(soft)o(w)o(are)g(pac)o(kage)f(i)q(s)g(t)o +(o)h(con)o(v)o(ert)h(t)n(h)o(e)g(c)o(h)o(aract)o(ers)g(in)e(a)h(do)q +(c-)0 185 y(u)o(m)o(en)o(t)f(f)q(rom)f(En)o(gli)q(sh)h(Alph)o(a)o(b)q +(et)h(t)o(o)g(Gurm)n(ukhi)e(\(scr)q(ipt)i(for)g(t)n(h)o(e)h(Pu)o(nja)o +(bi)e(lan)o(guage\),)g(u)o(t)o(ilizin)o(g)g(t)n(h)o(e)i(T)1658 +194 y(E)1681 185 y(X[1][2])0 235 y(an)o(d)i(MET)m(AF)o(ONT*[3])f(soft)o +(w)o(are)i(pac)o(kage)q(s.)26 b(T)793 243 y(E)816 235 +y(X)16 b(i)q(s)g(a)g(t)o(yp)q(e)q(s)q(et)n(t)o(in)o(g)i(syst)o(em)e(d)o +(ev)o(elo)o(p)q(e)q(d)h(b)o(y)f(t)n(h)o(e)h(Am)o(er)q(ican)0 +284 y(Ma)o(t)n(h)o(em)o(a)o(t)o(ical)c(So)q(ciet)o(y)m(,)j(us)q(e)q(d)g +(wid)o(ely)g(on)f(Unix)g(syst)o(ems,)h(an)o(d)f(o)q(ccass)q(ion)o(ally) +g(on)h(ot)n(h)o(er)g(o)o(p)q(era)o(t)o(in)o(g)f(en)o(viron-)0 +334 y(m)o(en)o(t)o(s.)22 b(MET)m(AF)o(ONT)16 b(i)q(s)e(a)h(fon)o(t)g +(gen)o(era)o(t)o(ion)g(t)o(o)q(ol)g(sup)o(p)q(ort)o(e)q(d)h(b)o(y)f(T) +1128 343 y(E)1152 334 y(X.)g(Bot)n(h)g(T)1335 343 y(E)1359 +334 y(X)g(an)o(d)g(MET)m(AF)o(ONT)h(are)0 384 y(f)q(ree)d(soft)o(w)o +(are)g(pac)o(kage)q(s)g(whic)o(h)f(can)h(b)q(e)f(do)o(wnload)o(e)q(d)h +(f)q(rom)d(T)1007 393 y(E)1031 384 y(X)i(arc)o(hiv)o(e)h(s)q(it)o(e)q +(s[4].)k(A)12 b(w)o(or)o(kin)o(g)h(kno)o(wle)q(dge)g(of)0 +434 y(T)23 443 y(E)46 434 y(X)h(will)f(grea)o(t)n(ly)h(h)o(elp)g(in)f +(us)q(in)o(g)h(t)n(h)o(e)g('Gurm)n(ukhi)e(for)i(T)918 +443 y(E)941 434 y(X')f(pac)o(kage.)83 484 y(Thi)q(s)g(do)q(cu)o(m)o(en) +o(t)f(pro)o(vid)o(e)q(s)i(inform)o(a)o(t)o(ion)c(for)i(prepar)q(in)o(g) +i(inpu)o(t)f(t)o(ext)g(\014le)q(s)h(an)o(d)f(us)q(e)g(of)g(t)n(h)o(e)g +('Gurm)n(ukhi)e(for)0 533 y(T)23 542 y(E)46 533 y(X')g(soft)o(w)o(are.) +17 b(Thi)q(s)11 b(i)q(s)g(t)n(h)o(e)h(\014rst)g(v)o(ers)q(ion)g(of)e(t) +n(h)o(e)j(soft)o(w)o(are)e(an)o(d)g(it)g(m)o(ay)f(u)o(n)o(d)o(ergo)i(c) +o(h)o(an)o(ge)q(s)g(in)f(t)n(h)o(e)h(n)o(ear)h(fu)o(t)o(ure,)0 +583 y(so)h(k)o(eep)h(an)e(ey)o(e)i(ou)o(t)f(for)f(enh)o(ance)q(d)j(fu)o +(t)o(ure)e(releas)q(e)q(s.)83 677 y Fg(Ac)n(kno)n(wle)r(dgem)n(en)n(t) +83 770 y Fh(Th)o(e)g(Gurm)n(ukhi)e(pac)o(kage)i(w)o(as)g(inspire)q(d)g +(b)o(y)g(t)n(h)o(e)g(Dev)n(an)o(agar)q(i)e(scr)q(ipt)i(gen)o(era)o(t)o +(ion)g(pac)o(kage)g(\\Dev)n(an)o(agar)q(i)0 820 y(for)f(T)86 +829 y(E)109 820 y(X)p Ff(y)q Fh(")g(whic)o(h)g(i)q(s)g(d)o(ev)o(elo)o +(p)q(e)q(d)g(b)o(y)g(F)m(rans)h(J.)f(V)m(el)o(t)n(h)n(ui)q(s)h(an)o(d)f +(h)o(as)g(b)q(een)h(brough)o(t)f(t)o(o)h(y)o(ou)f(wit)n(h)g(hi)q(s)g(p) +q(ermi)q(ss)q(ion)0 870 y(t)o(o)i(sup)o(p)q(ort)g(Gurm)n(ukhi)e(scr)q +(ipt.)21 b(I)14 b(w)o(ould)g(also)g(lik)o(e)g(t)o(o)h(t)n(h)o(ank)f(m)o +(y)f(mot)n(h)o(er)h(for)h(rep)q(ea)o(t)o(e)q(dly)g(prompt)o(in)o(g)e(m) +o(e)h(t)o(o)0 919 y(wr)q(it)o(e)e(a)h(let)n(t)o(er)h(t)o(o)f(h)o(er)g +(in)g(Gurm)n(ukhi.)j(Last,)c(bu)o(t)i(not)e(least,)h(I)g(w)o(ould)f +(lik)o(e)g(t)o(o)h(t)n(h)o(ank)g(ev)o(ery)o(on)o(e)g(wh)o(o)g(migh)o(t) +d(us)q(e)0 969 y(t)n(hi)q(s)k(soft)o(w)o(are)g(pac)o(kage.)83 +1063 y(If)g(y)o(ou)f(h)o(a)o(v)o(e)g(comm)o(en)o(t)o(s)g(or)h(sugge)q +(st)o(ion,)f(feel)h(f)q(ree)h(t)o(o)f(s)q(en)o(d)g(t)n(h)o(em)g(t)o(o)g +(m)o(e)e(a)o(t)i(t)n(h)o(e)h(follo)o(win)o(g)c(addre)q(ss:)14 +1123 y(E-m)o(ail:)k(as)q(in)o(gh@ev)o(olvin)o(g.com)14 +1173 y(P)o(ost)o(al)f(Mail:)j(Am)o(arjit)12 b(Sin)o(gh)14 +1223 y(8405)h(E.)g(Hamp)q(d)o(en)h(Av)o(e)g(#11N)f(Den)o(v)o(er)i(CO)f +(80231)e(USA)14 1273 y(A-3)h(Mansaro)o(v)o(er)i(Gard)o(en,)f(New)g +(Delhi)f(110015)f(In)o(dia)83 1410 y Fg(Prepar)q(in)o(g)k(a)i(Do)r(cu)o +(m)n(en)n(t)e(for)i(T)-5 b(rans-lit)n(era)o(t)n(ion)83 +1503 y Fh(A)20 b(do)q(cu)o(m)o(en)o(t)g(i)q(s)g(init)o(ially)e(crea)o +(t)o(e)q(d)k(us)q(in)o(g)e(regular)g(ASCI)q(I)g(t)o(ext.)38 +b(Th)o(e)20 b(t)o(ext)h(i)q(s)f(t)n(h)o(en)h(con)o(v)o(ert)o(e)q(d)g +(in)o(t)o(o)0 1553 y(Gurm)n(ukhi)10 b(us)q(in)o(g)i(s)q(imple)e +(translit)o(era)o(t)o(ion)h(rule)q(s,)i(an)o(d)f(most)f(of)h(T)1056 +1562 y(E)1079 1553 y(X)g(fea)o(t)o(ure)q(s)i(f)q(rom)c(t)n(h)o(e)j +(init)o(ial)d(do)q(cu)o(m)o(en)o(t)i(are)0 1603 y(pass)q(e)q(d)j(t)o(o) +f(an)f(`in)o(t)o(erm)o(e)q(dia)o(t)o(e')f(T)525 1612 +y(E)548 1603 y(X)i(\014le.)k(Th)o(e)c(gen)o(era)o(t)o(e)q(d)h(ou)o(t)o +(pu)o(t)f(can)g(b)q(e)g(s)q(en)o(t)g(t)o(o)g(a)f(pr)q(in)o(t)o(er)h(or) +g(t)o(o)g(t)n(h)o(e)g(screen)83 1652 y(Thi)q(s)k(s)q(ect)o(ion)g(d)o(e) +q(scr)q(ib)q(e)q(s)i(wh)o(a)o(t)e(ASCI)q(I)h(c)o(h)o(aract)o(ers)h(can) +e(b)q(e)g(us)q(e)q(d)i(t)o(o)e(pro)q(d)o(u)o(ce)h(Gurm)n(ukhi)e(c)o(h)o +(aract)o(ers,)0 1702 y(an)o(d)c(t)n(h)o(e)h(d)o(elimit)o(ers)f(whic)o +(h)g(are)h(require)q(d)h(t)o(o)f(pu)o(t)g(t)o(oget)n(h)o(er)h(t)n(h)o +(e)q(s)q(e)g(c)o(h)o(aract)o(ers)g(t)o(o)f(pass)h(t)o(o)e(T)1486 +1711 y(E)1509 1702 y(X.)h(Som)o(e)e(con)o(trol)0 1752 +y(comm)o(an)o(ds)k(are)i(pre)q(s)q(en)o(t)o(e)q(d)j(whic)o(h)c(y)o(ou)h +(migh)o(t)e(us)q(e)j(t)o(o)g(mo)q(dify)d(t)n(h)o(e)j(b)q(e)o(h)o(a)o +(viour)e(of)h(t)n(hi)q(s)g(t)o(o)q(ol)g(t)o(o)g(transform)0 +1802 y(ASCI)q(I)f(inpu)o(t)f(t)o(ext)h(in)o(t)o(o)e(Gurm)n(ukhi)g(t)o +(ext.)26 b(Th)o(ere)17 b(i)q(s)f(a)g(m)o(acro)f(\014le)h(for)g(T)1214 +1811 y(E)1237 1802 y(X)g(whic)o(h)g(sh)o(ould)g(b)q(e)h(includ)o(e)q(d) +f(in)0 1852 y(y)o(our)e(t)o(ext)g(\014le.)83 1945 y Fe(Ch)o(aract)o +(ers)83 1995 y Fh(T)m(a)o(ble)f(1)g(pre)q(s)q(en)o(t)o(s)j(t)n(h)o(e)f +(ASCI)q(I)f(t)o(o)g(Gurm)n(ukhi)e(c)o(h)o(aract)o(er)j(s)q(et)g +(transla)o(t)o(ion.)83 2045 y(T)m(o)c(m)o(ain)o(t)o(ain)d(t)n(h)o(e)13 +b(s)q(impli)o(cit)o(y)c(of)i(translit)o(era)o(t)o(ion,)g(more)f(t)n(h)o +(an)i(on)o(e)f(c)o(h)o(aract)o(er)i(m)o(ay)d(b)q(e)i(us)q(e)q(d,)g(for) +f(example;)0 2095 y('kh')j(w)o(ould)g(b)q(e)i(us)q(e)q(d)g(t)o(o)f(pro) +q(d)o(u)o(ce)h(t)n(h)o(e)g(Gurm)n(ukhi)d(c)o(h)o(aract)o(er)k +Fd(K)p Fh(.)d(Dep)q(en)o(din)o(g)h(up)q(on)h(t)n(h)o(e)f(con)o(t)o(ext) +h(of)e(a)h(v)o(o)o(w)o(el,)0 2144 y(b)q(et)o(w)o(een)h(t)n(h)o(e)h(w)o +(ord)e(or)g(b)q(eginnin)o(g)g(of)g(a)g(w)o(ord,)h(a)f(s)q(ign)g(\(lik)o +(e)g(')p Fd(E)p Fh('\))g(or)g(a)g(c)o(h)o(aract)o(er)i(\(lik)o(e)e(')p +Fd(i)p Fh('\))g(will)f(ap)o(p)q(ear.)23 b(An)0 2194 y(except)o(ion)c(t) +o(o)g(t)n(hi)q(s)f(rule)h(will)e(b)q(e)h(t)o(w)o(o)g(v)o(o)o(w)o(els)g +(ap)o(p)q(ear)q(in)o(g)g(t)o(oget)n(h)o(er.)34 b(Th)o(ere)19 +b(i)q(s)f(a)g(v)o(ery)h(limit)o(e)q(d)d(n)n(u)o(m)n(b)q(er)j(of)0 +2244 y(h)o(alf-c)o(h)o(aract)o(ers)14 b(in)g(Gurm)n(ukhi)e(an)o(d)h(t)n +(h)o(ey)i(are)f(for)g(h,)f(v)h(an)o(d)g(r.)83 2294 y(Th)o(ere)e(are)e +(more)g(t)n(h)o(an)g(on)o(e)g(ASCI)q(I)h(c)o(h)o(aract)o(er)h(s)q(et)o +(s)f(whic)o(h)f(can)h(b)q(e)f(us)q(e)q(d)i(in)d(inpu)o(t)i(t)o(ext,)g +(for)f(repre)q(s)q(en)o(t)o(a)o(t)o(ion)0 2344 y(of)15 +b(som)o(e)g(Gurm)n(ukhi)e(c)o(h)o(aract)o(ers,)18 b(lik)o(e)c('kh')h +(an)o(d)g('K')g(can)h(b)q(e)f(us)q(e)q(d)i(for)e(')p +Fd(K)p Fh(')f(an)o(d)i(it)f(i)q(s)g(t)o(ot)o(ally)f(y)o(our)i(c)o(h)o +(oice)g(t)o(o)0 2393 y(us)q(e)f(an)o(y)e(of)g(t)n(h)o(em.)83 +2443 y(In)h(Gurm)n(ukhi)e(t)o(ext)i(mo)q(d)o(e)f(digit)o(s)h(will)f(ap) +o(p)q(ear)h(as)g(:)83 2493 y Fd(0)20 b(1)g(2)f(3)h(4)g(5)h(6)f(7)f(8)h +(9)p 0 2574 600 2 v 42 2620 a Fh(*)g(MET)m(AF)o(ONT)14 +b(i)q(s)f(a)h(trad)o(em)o(ar)o(k)g(of)f(Adddi)q(son)h(W)m(e)q(sley)g +(Pu)n(bli)q(shin)o(g)e(Compan)o(y)44 2670 y Ff(y)21 b +Fh(\\Dev)n(an)o(agar)q(i)12 b(for)h(T)407 2679 y(E)431 +2670 y(X")g(i)q(s)h(a)f(co)o(p)o(yr)q(igh)o(t)g(of)h(F)m(rans)f(J.)h(V) +m(et)n(h)n(ui)q(s)p eop +%%Page: 3 3 +3 2 bop 317 42 a Fe(T)l(a)o(b)o(le)15 b(1:)21 b(ASCI)q(I)c(Ch)o(aract)o +(er)e(s)q(et)o(s)g(for)g(Gurm)n(ukhi)e(c)o(h)o(aract)o(ers)0 +104 y Fh(u)202 b Fd(u)e Fh(k)j Fd(k)e Fh(t)209 b Fd(t)200 +b Fh(sh,)14 b(S)g(or)g("s)35 b Fd(f)0 154 y Fh(uu)179 +b Fd(u)250 159 y(\000)264 154 y Fh(or)13 b Fd(\001)136 +b Fh(kh)14 b(or)g(K)83 b Fd(K)196 b Fh(t)n(h)14 b(or)g(T)93 +b Fd(T)196 b Fh(.kh)13 b(or)h(.K)60 b Fd(\014)0 204 y +Fh(U)194 b Fd(u)250 209 y(\001)264 204 y Fh(or)13 b Fd(\001)136 +b Fh(g)204 b Fd(g)196 b Fh(d)202 b Fd(d)d Fh(.g)192 b +Fd(\013)0 254 y Fh(a)204 b Fd(a)13 b Fh(or)140 b(gh)14 +b(or)g(G)83 b Fd(G)190 b Fh(dh)14 b(or)g(D)82 b Fd(D)196 +b Fh(z)207 b Fd(\))0 303 y Fh(aa)13 b(or)h(A)88 b Fd(aA)14 +b Fh(or)f Fd(A)98 b Fh("n)181 b Fd(R)199 b Fh(n)j Fd(n)197 +b Fh(f)212 b Fd(')0 353 y Fh(i)h Fd(i)14 b Fh(or)g Fd(E)123 +b Fh(c)207 b Fd(c)199 b Fh(p)j Fd(p)196 b Fh(N)e Fd(\\)20 +b(EV_pF)0 403 y Fh(ii)201 b Fd(Ei)14 b Fh(or)g Fd(F)109 +b Fh(c)o(h)14 b(or)g(C)90 b Fd(C)194 b Fh(ph)14 b(or)g(P)86 +b Fd(P)200 b Fh(.m)12 b(or)i(M)76 b Fd(,)20 b(Eb\\dF)0 +453 y Fh(I)210 b Fd(iF)14 b Fh(or)g Fd(F)106 b Fh(j)212 +b Fd(j)196 b Fh(b)202 b Fd(b)196 b Fh(/)204 b Fd( )20 +b(c\\d}Eb\\d)1698 458 y(\001)0 503 y Fh(e)207 b Fd(a)-26 +b(\003)13 b Fh(or)h Fd(\003)100 b Fh(jh)14 b(or)f(J)104 +b Fd(J)199 b Fh(bh)14 b(or)g(B)85 b Fd(B)200 b Fh(~a)183 +b Fd(_)20 b(aD_k)0 552 y Fh(ai)13 b(or)h(E)100 b Fd(a)-26 +b({)13 b Fh(or)h Fd({)100 b Fh(~n)181 b Fd(\032)199 b +Fh(m)189 b Fd(m)196 b Fh(@)d Fd(\177)27 b Fh(\()7 b Fd(tOw)f +Fh(\))0 602 y(o)204 b Fd(\033)14 b Fh(or)f Fd(o)136 b +Fh(.t)197 b Fd(V)i Fh(y)k Fd(y)190 b Fc(|)203 b Fd(.)26 +b Fh(\()7 b Fd(X\\XA)g Fh(\))0 652 y(o)q(o)182 b Fd(ao)13 +b Fh(or)h Fd(O)126 b Fh(.t)n(h)14 b(or)g(.T)69 b Fd(W)199 +b Fh(r)209 b Fd(r)203 b Fc(||)181 b Fd(;)0 702 y Fh(O)193 +b Fd(aO)13 b Fh(or)h Fd(O)126 b Fh(.d)190 b Fd(X)200 +b Fh(l)213 b Fd(l)197 b Fh(.o)192 b Fd(:)0 752 y Fh(s)209 +b Fd(s)196 b Fh(.dh)13 b(or)h(.D)59 b Fd(Y)199 b Fh(v)k +Fd(v)0 802 y Fh(h)f Fd(h)h Fh(.n)190 b Fd(Z)199 b Fh(R)194 +b Fd(w)83 903 y Fe(Delimit)n(ers)83 953 y Fh(All)14 b(t)o(ext)h(ap)o(p) +q(ear)q(in)o(g)f(aft)o(er)h(\045)g(up)g(t)o(o)g(t)n(h)o(e)g(en)o(d)g +(of)f(t)n(h)o(e)i(lin)o(e,)e(will)f(b)q(e)i(cons)q(id)o(ere)q(d)h(comm) +o(en)o(t)o(s)d(an)o(d)i(will)e(not)0 1003 y(gen)o(era)o(t)o(e)i(an)o(y) +e(ou)o(t)o(pu)o(t.)83 1053 y(All)h(t)n(h)o(e)i(t)o(ext)g(b)q(et)o(w)o +(een)g(')p Ff(fn)p Fb(g)q(m)p Fh(')f(an)o(d)g(')p Ff(g)p +Fh(')f(will)g(b)q(e)h(con)o(v)o(ert)o(e)q(d)h(t)o(o)g(Gurm)n(ukhi)d +(accordin)o(g)j(t)o(o)g(t)n(h)o(e)g(c)o(h)o(aract)o(er)0 +1103 y(s)q(et)f(sh)o(o)o(wn)f(in)f(T)m(a)o(ble)g(1.)83 +1153 y(All)k(t)n(h)o(e)i(t)o(ext)f(b)q(et)o(w)o(een)h($)f(s)q(igns)g +(will)e(b)q(e)i(con)o(v)o(ert)o(e)q(d)i(t)o(o)e(Gurm)n(ukhi)e(wh)o(en)j +(t)n(h)o(e)g(@dollars)e(prepro)q(ce)q(ssor)0 1203 y(comm)o(an)o(d)11 +b(i)q(s)i(giv)o(en.)83 1253 y(Th)o(e)i(follo)o(win)o(g)c(c)o(h)o(aract) +o(ers)16 b(are)f(allo)o(w)o(e)q(d)e(bu)o(t)i(do)f(not)g(c)o(h)o(an)o +(ge)h(repre)q(s)q(en)o(t)o(a)o(t)o(ion)g(ins)q(id)o(e)f(Gurm)n(ukhi)f +(d)o(elim-)0 1303 y(it)o(ers:)83 1353 y(!)18 b(`)13 b(')h(\()g(\))g(*)f +(-)h(:)k(;)13 b(=)h(?)k(,)c([)f(])h(+)83 1403 y(Th)o(e)g(follo)o(win)o +(g)d(c)o(h)o(aract)o(ers)16 b(are)e(not)g(allo)o(w)o(e)q(d)f(ins)q(id)o +(e)h(Gurm)n(ukhi)e(d)o(elimit)o(ers:)83 1454 y Fc(<)i(>)f +Fh(F)h(L)g(Q)g(V)g(W)g(X)g(Y)g(Z)g(^)p 535 1454 13 2 +v 28 w(q)g(w)g(x)83 1504 y(Ob)o(viously)m(,)h(c)o(h)o(aract)o(ers)j(ou) +o(t)o(s)q(id)o(e)f(Gurm)n(ukhi)e(d)o(elimit)o(ers)g(will)g(not)h(b)q(e) +g(c)o(h)o(an)o(ge)q(d)h(t)o(o)f(Gurm)n(ukhi)f(an)o(d)g(will)0 +1554 y(b)q(e)f(pr)q(in)o(t)o(e)q(d)g(in)f(En)o(gli)q(sh)h(Alph)o(a)o(b) +q(et)f(or)h(will)e(follo)o(w)g(t)n(h)o(e)i(rule)q(s)h(whic)o(h)e(y)o +(ou)h(sp)q(ecify)m(.)83 1604 y(T)m(o)e(c)o(h)o(an)o(ge)g(t)n(h)o(e)h(p) +q(oin)o(t)o(s)q(ize)g(of)e(c)o(h)o(aract)o(ers)j(wit)n(hin)e(')p +Ff(fn)p Fb(g)q(m)p Fh(')g(an)o(d)g(')p Ff(g)p Fh(')f(t)n(h)o(e)i(follo) +o(win)o(g)c(d)o(elimit)o(ers)j(can)g(b)q(e)h(us)q(e)q(d,)0 +1654 y(in)g(increm)o(en)o(t)o(al)g(s)q(ize)q(s,)h(:)0 +1768 y Ff(n)p Fb(g)q(msmal)q(l)720 b Fh(8)14 b(p)q(oin)o(t)f(fon)o(t)0 +1817 y Ff(n)p Fb(g)q(mnine)739 b Fh(9)14 b(p)q(oin)o(t)f(fon)o(t)0 +1867 y Ff(n)p Fb(g)q(mnor)q(mal)687 b Fh(10)13 b(p)q(oin)o(t)h(fon)o(t) +0 1917 y Ff(n)p Fb(g)q(mbig)770 b Fh(10)13 b(p)q(oin)o(t)h(fon)o(t,)e +(m)o(agni\014e)q(d)h(a)o(t)g(1)h(st)o(ep)0 1967 y Ff(n)p +Fb(g)q(ml)q(ar)q(g)q(e)727 b Fh(10)13 b(p)q(oin)o(t)h(fon)o(t,)e(m)o +(agni\014e)q(d)h(a)o(t)g(2)h(st)o(eps)0 2017 y Ff(n)p +Fb(g)q(mhug)q(e)734 b Fh(10)13 b(p)q(oin)o(t)h(fon)o(t,)e(m)o +(agni\014e)q(d)h(a)o(t)g(3)h(st)o(eps)83 2118 y Fe(Examp)o(le)q(s)83 +2168 y Fh(Di\013eren)o(t)g(c)o(h)o(aract)o(er)g(s)q(et)o(s,)h(follo)o +(win)o(g)c(a)o(b)q(o)o(v)o(e)h(m)o(en)o(t)o(ion)o(e)q(d)g(rule)q(s,)i +(wit)n(hin)f(Gurm)n(ukhi)e(d)o(elimil)o(t)o(ers)i(can)g(pro-)0 +2218 y(d)o(u)o(ce)i(d)o(e)q(s)q(ire)q(d)g(ou)o(t)o(pu)o(t,)f(lik)o(e)f +Ff(fn)p Fb(g)q(m)i Fh(paNjaa)o(b)p Ff(g)d Fh(an)o(d)i +Ff(fn)p Fb(g)q(m)g Fh(pNjA)n(b)p Ff(g)f Fh(will)g(pr)q(in)o(t)g +Fd(p\\jAb)p Fh(.)83 2268 y(Som)o(et)o(im)o(e)q(s,)g(y)o(ou)i(m)o(ay)f +(h)o(a)o(v)o(e)h(t)o(o)h(t)o(yp)q(e)g(an)f(extra)h(`a')f(t)o(o)g +(complet)o(e)g(a)g(sylla)o(ble,)f(ev)o(en)i(t)n(h)o(ough)g(it)f(m)o(ay) +f(not)0 2318 y(ap)o(p)q(ear)g(in)f(t)n(h)o(e)i(Gurm)n(ukhi)d(repre)q(s) +q(en)o(t)o(a)o(t)o(ion)j(of)e(t)n(h)o(a)o(t)h(w)o(ord.)83 +2368 y(Th)o(ere)i(are)f(addit)o(ion)o(al)e(gm)g(\014le)q(s)j(ot)n(h)o +(er)f(t)n(h)o(an)g(t)n(h)o(e)h(source)g(of)e(t)n(hi)q(s)h(do)q(cu)o(m)o +(en)o(t,)f(whic)o(h)h(can)g(b)q(e)g(referre)q(d)i(t)o(o)0 +2418 y(for)d(example)q(s.)83 2520 y Fe(Con)o(tro)o(l)g(comm)o(an)o(ds) +83 2570 y Fh(A)o(t)k(t)n(h)o(e)h(st)o(art)f(of)g(inpu)o(t)g(t)o(ext,)h +(t)n(h)o(e)g(follo)o(win)o(g)c(prepro)q(ce)q(ss)q(or)20 +b(comm)o(an)o(ds)c(can)i(b)q(e)g(us)q(e)q(d,)i(t)o(o)e(con)o(trol)f(t)n +(h)o(e)0 2620 y(fu)o(nct)o(ion)o(alit)o(y)c(of)g(t)n(h)o(e)h(prepro)q +(ce)q(ss)q(or:)83 2670 y(@ob)q(eylin)o(e)q(s)g(T)m(o)f(follo)o(w)e(t)n +(h)o(e)k(lin)o(e)e(breaks)i(whic)o(h)f(y)o(ou)f(t)o(yp)q(e.)p +eop +%%Page: 4 4 +4 3 bop 83 42 a Fh(@dollars)9 b(T)m(o)g(act)o(iv)n(a)o(t)o(e)g($)g(as)h +(a)f(sp)q(ecial)h(sym)n(b)q(ol)d(su)o(c)o(h)j(t)n(h)o(a)o(t)g(t)o(ext)g +(d)o(elimit)o(e)q(d)e(b)o(y)i($)f(i)q(s)g(con)o(v)o(ert)o(e)q(d)i(t)o +(o)f(Gurm)n(ukhi.)83 91 y(@pu)o(nja)o(bi)20 b(Do)q(e)q(s)g(not)g(do)f +(an)o(yt)n(hin)o(g)h(r)q(igh)o(t)g(no)o(w,)g(bu)o(t)h(m)o(ay)d(b)q(e)i +(us)q(e)q(d)h(wh)o(en)f(t)n(h)o(e)h(t)o(o)q(ol)e(sup)o(p)q(ort)o(s)j +(ot)n(h)o(er)0 141 y(lan)o(guage)q(s.)83 191 y(Aft)o(er)15 +b(t)n(h)o(e)g(a)o(b)q(o)o(v)o(e)f(prepro)q(ce)q(ssor)k(comm)o(an)o(ds,) +11 b(ins)q(ert)k(t)n(h)o(e)g(follo)o(win)o(g)d(comm)o(an)o(d)g(t)o(o)i +(includ)o(e)h(a)f(m)o(acro)f(\014le.)0 241 y(Thi)q(s)h(ia)f(a)h(v)o +(ery)g(imp)q(ort)o(an)o(t)e(st)o(ep)j(b)q(eca)n(us)q(e)h(wit)n(h)o(ou)o +(t)e(t)n(h)o(e)h(m)o(acro)e(\014le,)h(T)1149 250 y(E)1172 +241 y(X)g(will)f(not)h(recognize)h(t)n(h)o(e)g(transla)o(t)o(e)q(d)0 +291 y(t)o(ext)f(gen)o(era)o(t)o(e)q(d)h(b)o(y)f(t)n(h)o(e)h(prepro)q +(ce)q(ssor.)83 390 y Fg(T)-5 b(ransformin)o(g)16 b(a)i(Do)r(cu)o(m)n +(en)n(t)83 490 y Fh(Th)o(e)13 b(\\Gurm)n(ukhi)d(for)i(T)468 +499 y(E)491 490 y(X")g(pac)o(kage)g(cons)q(i)q(st)o(s)h(of)e(a)h +(prepro)q(ce)q(ssor)q(,)j(fon)o(t)c(\014le)q(s)i(an)o(d)f(a)g(m)o(acro) +f(\014le.)17 b(See)c(t)n(h)o(e)0 540 y(\014le)i(\\readm)o(e")f(an)o(d)h +(\\inst)o(all.u)o(nix")e(for)i(inst)o(alla)o(t)o(ion)e(st)o(eps.)23 +b(Inst)o(alla)o(t)o(ion)13 b(sh)o(ould)i(b)q(e)g(f)q(airly)e(easy)m(,)j +(as)f(t)n(h)o(ere)i(i)q(s)0 590 y(no)d(syst)o(em)f(d)o(ep)q(en)o(d)o +(en)o(t)j(co)q(d)o(e.)j(Wh)o(erev)o(er)d(y)o(ou)e(can)g(\014n)o(d)g(T) +951 599 y(E)974 590 y(X)g(an)o(d)g(m)o(et)o(afon)o(t,)d(y)o(ou)j(can)g +(v)o(ery)g(p)q(oss)q(ibly)g(inst)o(all)0 639 y(an)o(d)g(us)q(e)g(t)n +(hi)q(s)g(pac)o(kage.)83 739 y Fe(Th)o(e)h(Prepro)q(ce)q(s)q(sor)83 +789 y Fh(Th)o(e)g(job)f(of)g(t)n(h)o(e)i(prepro)q(ce)q(ssor)i(i)q(s)c +(t)o(o)h(\014n)o(d)f(t)n(h)o(e)i(correct)g(repre)q(s)q(en)o(t)o(a)o(t)o +(ion)g(of)e(a)g(c)o(h)o(aract)o(er)i(accordin)o(g)f(t)o(o)g(it)o(s)0 +839 y(con)o(t)o(ext.)j(Wh)o(en)c(a)g(v)o(o)o(w)o(el)e(ap)o(p)q(ears)j +(in)e(a)h(w)o(ord,)f(a)g(sylla)o(ble)f(complet)o(e)q(s,)h(an)o(d)g(con) +o(t)o(ext)h(c)o(h)o(an)o(ge)q(s)h(t)o(o)f(wh)o(a)o(t)g(it)f(w)o(as)0 +889 y(a)o(t)i(t)n(h)o(e)i(b)q(eginnin)o(g)e(of)g(a)g(n)o(ew)h(w)o(ord.) +23 b(It)16 b(also)f(\014n)o(ds)h(p)q(oss)q(ible)g(h)o(alf)e(repre)q(s)q +(en)o(t)o(a)o(t)o(ion)j(of)e(c)o(h)o(aract)o(ers.)25 +b(Ou)o(t)o(pu)o(t)18 b(of)0 938 y(t)n(hi)q(s)c(prepro)q(ce)q(ssor)j(i)q +(s)c(a)h(T)421 947 y(E)444 938 y(X)g(do)q(cu)o(m)o(en)o(t.)83 +1038 y Fe(Examp)o(le)i(s)q(e)q(s)q(s)q(ion)d(of)i(comm)o(an)o(ds)83 +1088 y Fh(Let)o(s)f(assu)o(m)o(e)e(t)n(h)o(a)o(t)h(d)o(ur)q(in)o(g)f +(inst)o(alla)o(t)o(ion)e(y)o(ou)i(h)o(a)o(v)o(e)g(prepare)q(d)i(t)n(h)o +(e)f(prepro)q(ce)q(ssor)j(wit)n(h)c(n)o(am)o(e)f("gurm)n(ukhi")0 +1138 y(an)o(d)16 b(h)o(a)o(v)o(e)g(s)q(et)h(pa)o(t)n(hs)g(in)e(y)o(our) +h(en)o(vironm)o(en)o(t)f(t)o(o)i(lo)q(ca)o(t)o(e)f(fon)o(t)g(an)o(d)g +(m)o(acro)f(\014le)q(s.)25 b(Let)o(s)18 b(also)e(assu)o(m)o(e)g(t)n(h)o +(a)o(t)g(y)o(ou)0 1188 y(h)o(a)o(v)o(e)e(an)f(inpu)o(t)h(\014le)g(wit)n +(h)g(t)n(h)o(e)h(n)o(am)o(e)d("t)o(ext.gm".)83 1237 y(Y)m(ou)h(w)o +(ould)g(st)o(art)i(t)n(h)o(e)g(prepro)q(ce)q(ssor)i(on)c(t)n(h)o(e)i +(\014le)f('t)o(ext.gm')d(as)j(follo)o(ws:)0 1337 y(gurm)n(ukhi)e(t)o +(ext)643 b(\(t)o(o)14 b(get)g(a)g(T)1093 1346 y(E)1116 +1337 y(X)g(\014le\))83 1437 y(Th)o(e)h(T)191 1446 y(E)214 +1437 y(X)g(\014le)g(pro)q(d)o(u)o(ce)q(d)h(h)o(ere,)f(t)o(ext.t)o(ex,)g +(can)g(b)q(e)g(us)q(e)q(d)g(as)g(an)o(y)f(ot)n(h)o(er)i(inpu)o(t)f +(\014le)f(for)h(T)1510 1446 y(E)1533 1437 y(X.)f(Aft)o(er)i(t)n(hi)q(s) +e(a)0 1487 y(t)o(ypical)f(s)q(equence)j(of)d(comm)o(an)o(ds)e(m)o(ay)h +(b)q(e)0 1586 y(t)o(ex)i(t)o(ext)760 b(\(t)o(o)14 b(get)g(dvi)g +(\014le\))0 1648 y(xdvi)f(t)o(ext)737 b(\(t)o(o)14 b(view)g(dvi)f +(\014le\))83 1748 y(Anot)n(h)o(er)i(s)q(equence)h(aft)o(er)e(t)n(hi)q +(s)g(m)o(ay)e(b)q(e)0 1848 y(dvips)i(t)o(ext)719 b(\()14 +b(t)o(o)g(get)g(p)q(ost)o(scr)q(ipt)i(\014le)e(t)o(ext.ps)h(f)q(rom)c +(t)o(ext.dvi)j(\))0 1910 y(gs)g(t)o(ext.ps)727 b(\()14 +b(t)o(o)g(view)g(p)q(ost)o(scr)q(ipt)i(\014le)d(\))0 +1972 y(gh)o(ostview)h(t)o(ext.ps)586 b(\()14 b(anot)n(h)o(er)h(w)o(ay)e +(t)o(o)h(view)g(p)q(ost)o(scr)q(ipt)i(\014le)d(\))83 +2072 y(No)o(w)h(it)g(i)q(s)g(t)o(im)o(e)e(t)o(o)j(s)q(en)o(d)g(t)n(h)o +(e)g(p)q(ost)o(scr)q(ipt)h(\014le)f(t)o(o)f(a)g(p)q(ost)o(scr)q(ipt)i +(pr)q(in)o(t)o(er,)e(an)o(d)g(a)g(comm)o(an)o(d)e(comm)o(an)o(d)f(for)0 +2122 y(t)n(hi)q(s)j(m)o(ay)e(b)q(e:)83 2172 y(lp)h(t)o(ext.ps)83 +2271 y Fg(Dev)m(an)o(agar)q(i)83 2371 y Fh(Thi)q(s)g(s)q(ect)o(ion)h(i) +q(s)f(pre)q(s)q(en)o(t)o(e)q(d)i(for)f(t)n(h)o(os)q(e)g(wh)o(o)g(h)o(a) +o(v)o(e)f(us)q(e)q(d)h(t)n(h)o(e)h(Dev)n(an)o(agar)q(i)c(pac)o(kage)j +(or)f(w)o(ould)g(also)g(lik)o(e)g(t)o(o)0 2421 y(us)q(e)j(t)n(h)o(e)g +(Dev)n(an)o(agar)q(i)d(pac)o(kage.)22 b(Th)o(ere)16 b(are)g(not)f(m)o +(an)o(y)e(di\013erence)q(s)18 b(b)q(et)o(w)o(een)e(t)n(h)o(e)g(t)o(w)o +(o.)21 b(In)15 b(Dev)n(an)o(agar)q(i,)e(y)o(ou)0 2471 +y(crea)o(t)o(e)h(a)d(t)o(ext)i(\014le)f(in)f(t)n(h)o(e)i(sam)o(e)e(m)o +(ann)o(er)g(as)h(wit)n(h)g(Gurm)n(ukhi,)e(bu)o(t)j(y)o(ou)f(h)o(a)o(v)o +(e)f(sligh)o(t)n(ly)g(di\013eren)o(t)i(c)o(h)o(aract)o(er)g(s)q(et)o(s) +0 2521 y(for)h(repre)q(s)q(en)o(t)o(a)o(t)o(ion)g(an)o(d)g(y)o(ou)f +(will)g(us)q(e)h(a)g(s)q(imilar)d(s)q(equence)16 b(of)d(comm)o(an)o +(ds.)83 2570 y(Th)o(e)h(di\013erence)q(s)j(in)c(c)o(h)o(aract)o(er)i(s) +q(et)o(s)h(in)d(Gurm)n(ukhi)f(an)o(d)i(Dev)n(an)o(agar)q(i)e(are)i(as)g +(follo)o(ws:)83 2620 y(In)20 b(Gurm)n(ukhi,)e(S)i(an)o(d)f(sh)h(can)g +(also)f(b)q(e)g(us)q(e)q(d)i(in)e(addit)o(ion)f(t)o(o)i("s)g(t)o(o)f +(pro)q(d)o(u)o(ce)i Fd(f)e Fh(an)o(d)g(N)h(i)q(s)f(us)q(e)q(d)h(in)0 +2670 y(Gurm)n(ukhi)12 b(t)o(o)i(pr)q(in)o(t)g Fd(\\)26 +b Fh(\()7 b Fd(EV_pF)h Fh(\))f(,)13 b(ii)g(pro)q(d)o(u)o(ce)q(s)i +Fd(Ei)g Fh(an)o(d)e(not)h Fd(iF)p Fh(,)g(~a)f(pro)q(d)o(u)o(ce)q(s)i +Fd(_)p Fh(.)p eop +%%Page: 5 5 +5 4 bop 83 42 a Fh(Th)o(e)14 b(Dev)n(an)o(agar)q(i)f(soft)o(w)o(are)h +(pac)o(kage)g(allo)o(ws)e(m)o(an)o(y)h(c)o(h)o(aract)o(er)i(s)q(et)o(s) +h(su)o(c)o(h)e(as)g(.s,)g(.h,)f(H,)h(q)g(whic)o(h)g(are)g(not)0 +91 y(v)n(alid)e(in)i(Gurm)n(ukhi.)83 191 y Fg(Wh)n(a)o(t)j(m)o(ay)g(b)q +(e)h(n)n(ext:)83 291 y Fh(Sup)o(p)q(ort)c(for)g(LaT)m(eX)83 +340 y(P)o(ort)o(in)o(g)g(t)o(o)g(di\013eren)o(t)h(syst)o(ems)f(an)o(d)f +(pla)o(tforms)83 390 y(Com)n(bin)o(a)o(t)o(ion)e(of)i(Dev)n(an)o(agar)q +(i)f(an)o(d)i(Gurm)n(ukhi.)83 490 y Fg(Bib)o(lograph)n(y)83 +589 y Fh([1])f(Norm)o(an)f(W)m(alsh)h Fa(Making)i(T)595 +598 y(E)618 589 y(XWork)f Fh(O'Re)q(illy)e(&)i(Asso)q(cia)o(t)o(e)q(s,) +i(Inc.)i(July)c(1994.)83 639 y([2])f(Don)o(ald)f(E.)i(Kn)n(u)o(t)n(h)h +Fa(The)g(T)573 648 y(E)596 639 y(Xb)n(o)n(ok)f Fh(Addi)q(son)f(W)m(e)q +(sley)h(Pu)n(bli)q(shin)o(g)f(Co.)18 b(Sep)c(1993)83 +689 y([3])f(Don)o(ald)f(E.)i(Kn)n(u)o(t)n(h)h(it)f(Th)o(e)g(MET)m(AF)o +(ONT)g(Bo)q(ok)g(Addi)q(son)f(W)m(e)q(sley)m(,)83 739 +y([4])g(FTP)h(Sit)o(e)g(for)f(T)408 748 y(E)431 739 y(X)h(an)o(d)g +(rela)o(t)o(e)q(d)g(soft)o(w)o(are)q(s,)g(includin)o(g)g(MET)m(AF)o +(ONT,)f(an)o(d)h(Dev)n(an)o(agr)q(i)83 789 y(ft)o(p.shsu.e)q(d)o(u/t)o +(ex-arc)o(hiv)o(e)83 839 y([5])f(F)m(rans)h(J.)f(V)m(el)o(t)n(h)n(ui)q +(s)i Fa(Devanagari)g(for)g(T)770 847 y(E)792 839 y(X)f +Fh(V)m(ers)q(ion)f(1.2)p eop +%%Trailer +end +userdict /end-hook known{end-hook}if +%%EOF |