1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247
|
{\rtf1\ansi\ansicpg1252\uc1 \deff0\deflang1033\deflangfe1033{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;}
{\f2\fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}{\f3\froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;}{\f28\froman\fcharset238\fprq2 Times New Roman CE;}{\f29\froman\fcharset204\fprq2 Times New Roman Cyr;}
{\f31\froman\fcharset161\fprq2 Times New Roman Greek;}{\f32\froman\fcharset162\fprq2 Times New Roman Tur;}{\f33\froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f34\froman\fcharset178\fprq2 Times New Roman (Arabic);}
{\f35\froman\fcharset186\fprq2 Times New Roman Baltic;}{\f36\fswiss\fcharset238\fprq2 Arial CE;}{\f37\fswiss\fcharset204\fprq2 Arial Cyr;}{\f39\fswiss\fcharset161\fprq2 Arial Greek;}{\f40\fswiss\fcharset162\fprq2 Arial Tur;}
{\f41\fswiss\fcharset177\fprq2 Arial (Hebrew);}{\f42\fswiss\fcharset178\fprq2 Arial (Arabic);}{\f43\fswiss\fcharset186\fprq2 Arial Baltic;}{\f44\fmodern\fcharset238\fprq1 Courier New CE;}{\f45\fmodern\fcharset204\fprq1 Courier New Cyr;}
{\f47\fmodern\fcharset161\fprq1 Courier New Greek;}{\f48\fmodern\fcharset162\fprq1 Courier New Tur;}{\f49\fmodern\fcharset177\fprq1 Courier New (Hebrew);}{\f50\fmodern\fcharset178\fprq1 Courier New (Arabic);}
{\f51\fmodern\fcharset186\fprq1 Courier New Baltic;}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;
\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;\red96\green96\blue96;}{\stylesheet{
\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext0 Normal;}{\s1\ql \fi-432\li432\ri0\sb360\keepn\widctlpar
\jclisttab\tx432\aspalpha\aspnum\faauto\ls7\adjustright\rin0\lin432\itap0 \b\f1\fs28\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 heading 1;}{\s2\ql \fi-576\li576\ri0\sb240\keepn\widctlpar
\jclisttab\tx576\aspalpha\aspnum\faauto\ls7\ilvl1\adjustright\rin0\lin576\itap0 \b\f1\fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 heading 2;}{
\s3\ql \li0\ri0\sb120\keepn\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \b\f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 heading 3;}{\s4\qc \fi-864\li864\ri0\keepn\widctlpar
\jclisttab\tx864\aspalpha\aspnum\faauto\ls7\ilvl3\adjustright\rin0\lin864\itap0 \fs28\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 heading 4;}{\*\cs10 \additive Default Paragraph Font;}{
\s15\ql \fi720\li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f2\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext15 Body Text 2;}{
\s16\ql \li0\ri0\sb240\sa360\widctlpar\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin0\lin0\itap0 \b\f1\fs32\lang1033\langfe1033\kerning28\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext16 Title;}{
\s17\ql \li0\ri0\sa60\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \i\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext17 Subtitle;}{
\s18\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext18 Body Text;}{
\s19\ql \fi210\li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon18 \snext19 Body Text First Indent;}{
\s20\ql \fi-200\li200\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin200\itap0 \fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 \sautoupd index 1;}{
\s21\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon18 \snext21 Paragraph;}{\s22\ql \fi-360\li360\ri0\sb360\sa60\keepn\widctlpar
\jclisttab\tx360\aspalpha\aspnum\faauto\ls3\outlinelevel0\adjustright\rin0\lin360\itap0 \b\f1\fs28\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon1 \snext19 Outline1;}{
\s23\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon21 \snext23 ParaContd;}{\s24\ql \li360\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0
\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext24 Body Text Indent 2;}{\s25\ql \fi-576\li576\ri0\sb180\sa60\keepn\widctlpar\jclisttab\tx576\aspalpha\aspnum\faauto\ls7\ilvl1\outlinelevel1\adjustright\rin0\lin576\itap0
\f1\fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon2 \snext21 StepWNumber;}{\s26\ql \li432\ri0\sb60\sa60\widctlpar\tx864\tx1728\tx2592\tx3456\tx4320\tx5184\aspalpha\aspnum\faauto\adjustright\rin0\lin432\itap0
\f2\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon21 \snext26 CCode;}{\s27\ql \li720\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0 \fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon21 \snext27
ParaIndent;}{\s28\ql \li0\ri0\widctlpar\tqc\tx4320\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext28 header;}{\s29\ql \li0\ri0\widctlpar
\tqc\tx4320\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext29 footer;}{\s30\ql \fi360\li720\ri0\widctlpar
\tx1080\tx1710\tx2340\tx2700\tx3330\tx3960\tx4590\tx5220\tx5850\tx6480\tx7110\tx7740\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0 \fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext30 Body Text Indent 3;}{
\s31\ql \fi-3600\li3600\ri0\sb360\keepn\widctlpar\tx1800\tx2520\aspalpha\aspnum\faauto\adjustright\rin0\lin3600\itap0 \b\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext33 ClassName;}{\s32\ql \fi-360\li360\ri0\widctlpar
\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls5\pnrnot0\pndec }\aspalpha\aspnum\faauto\ls5\adjustright\rin0\lin360\itap0 \fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext32 \sautoupd List Bullet;}{
\s33\ql \fi-1440\li1872\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin1872\itap0 \fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext33 AttrDescription;}{\*\cs34 \additive \b \sbasedon10 Strong;}{
\s35\ql \fi-720\li720\ri0\widctlpar\jclisttab\tx720\aspalpha\aspnum\faauto\ls7\ilvl2\adjustright\rin0\lin720\itap0 \fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext35 Comment;}}{\*\listtable{\list\listtemplateid-443674218
\listsimple{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \s32\fi-360\li360\jclisttab\tx360
}{\listname ;}\listid-119}{\list\listtemplateid1943585380{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'00.;}{\levelnumbers\'01;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1
\s22\fi-360\li360\jclisttab\tx360 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'04\'00.\'01.;}{\levelnumbers\'01\'03;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1 \fi-432\li792
\jclisttab\tx792 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'06\'00.\'01.\'02.;}{\levelnumbers\'01\'03\'05;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1 \fi-504\li1224
\jclisttab\tx1224 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'08\'00.\'01.\'02.\'03.;}{\levelnumbers\'01\'03\'05\'07;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1
\fi-648\li1728\jclisttab\tx1728 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'0a\'00.\'01.\'02.\'03.\'04.;}{\levelnumbers\'01\'03\'05\'07\'09;}\chbrdr\brdrnone\brdrcf1
\chshdng0\chcfpat1\chcbpat1 \fi-792\li2232\jclisttab\tx2232 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'0c\'00.\'01.\'02.\'03.\'04.\'05.;}{\levelnumbers\'01\'03\'05\'07\'09\'0b;}
\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1 \fi-936\li2736\jclisttab\tx2736 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'0e\'00.\'01.\'02.\'03.\'04.\'05.\'06.;}{\levelnumbers
\'01\'03\'05\'07\'09\'0b\'0d;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1 \fi-1080\li3240\jclisttab\tx3240 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
\'10\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.;}{\levelnumbers\'01\'03\'05\'07\'09\'0b\'0d\'0f;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1 \fi-1224\li3744\jclisttab\tx3744 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0
\levelstartat1\levelspace0\levelindent0{\leveltext\'12\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08.;}{\levelnumbers\'01\'03\'05\'07\'09\'0b\'0d\'0f\'11;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1 \fi-1440\li4320\jclisttab\tx4320 }{\listname
;}\listid184250857}{\list\listtemplateid67698711\listsimple{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'00);}{\levelnumbers\'01;}\chbrdr\brdrnone\brdrcf1
\chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1337146905}{\list\listtemplateid67698703\listsimple{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
\'02\'00.;}{\levelnumbers\'01;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1487355350}{\list\listtemplateid616584080{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0
\levelstartat1\levelspace0\levelindent0{\leveltext\'01\'00;}{\levelnumbers\'01;}\b\i0\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1 \s1\fi-432\li432\jclisttab\tx432 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1
\levelspace0\levelindent0{\leveltext\'03\'00.\'01;}{\levelnumbers\'01\'03;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1 \s2\fi-576\li576\jclisttab\tx576 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0
\levelindent0{\leveltext\'05\'00.\'01.\'02;}{\levelnumbers\'01\'03\'05;}\b\i0\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1 \s35\fi-720\li720\jclisttab\tx720 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0
\levelindent0{\leveltext\'07\'00.\'01.\'02.\'03;}{\levelnumbers\'01\'03\'05\'07;}\b\i0\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1 \s4\fi-864\li864\jclisttab\tx864 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1
\levelspace0\levelindent0{\leveltext\'09\'00.\'01.\'02.\'03.\'04;}{\levelnumbers\'01\'03\'05\'07\'09;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1 \fi-1008\li1008\jclisttab\tx1008 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0
\levelstartat1\levelspace0\levelindent0{\leveltext\'0b\'00.\'01.\'02.\'03.\'04.\'05;}{\levelnumbers\'01\'03\'05\'07\'09\'0b;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1 \fi-1152\li1152\jclisttab\tx1152 }{\listlevel\levelnfc0\levelnfcn0\leveljc0
\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06;}{\levelnumbers\'01\'03\'05\'07\'09\'0b\'0d;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1 \fi-1296\li1296\jclisttab\tx1296 }{\listlevel
\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07;}{\levelnumbers\'01\'03\'05\'07\'09\'0b\'0d\'0f;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1
\fi-1440\li1440\jclisttab\tx1440 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08;}{\levelnumbers\'01\'03\'05\'07\'09\'0b\'0d\'0f\'11;}
\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1 \fi-1584\li1584\jclisttab\tx1584 }{\listname ;}\listid1506630628}{\list\listtemplateid-1934717386{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0
{\leveltext\'01\'00;}{\levelnumbers\'01;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1 \fi-432\li432\jclisttab\tx432 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
\'03\'00.\'01;}{\levelnumbers\'01\'03;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1 \fi-576\li576\jclisttab\tx576 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
\'05\'00.\'01.\'02;}{\levelnumbers\'01\'03\'05;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1 \fi-720\li720\jclisttab\tx720 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
\'07\'00.\'01.\'02.\'03;}{\levelnumbers\'01\'03\'05\'07;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1 \fi-864\li864\jclisttab\tx864 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
\'09\'00.\'01.\'02.\'03.\'04;}{\levelnumbers\'01\'03\'05\'07\'09;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1 \fi-1008\li1008\jclisttab\tx1008 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0
\levelindent0{\leveltext\'0b\'00.\'01.\'02.\'03.\'04.\'05;}{\levelnumbers\'01\'03\'05\'07\'09\'0b;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1 \fi-1152\li1152\jclisttab\tx1152 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0
\levelstartat1\levelspace0\levelindent0{\leveltext\'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06;}{\levelnumbers\'01\'03\'05\'07\'09\'0b\'0d;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1 \fi-1296\li1296\jclisttab\tx1296 }{\listlevel\levelnfc0\levelnfcn0
\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07;}{\levelnumbers\'01\'03\'05\'07\'09\'0b\'0d\'0f;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1 \fi-1440\li1440
\jclisttab\tx1440 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08;}{\levelnumbers\'01\'03\'05\'07\'09\'0b\'0d\'0f\'11;}\chbrdr
\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1 \fi-1584\li1584\jclisttab\tx1584 }{\listname ;}\listid1717271031}{\list\listtemplateid67698711\listsimple{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0
{\leveltext\'02\'00);}{\levelnumbers\'01;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid2020767601}}{\*\listoverridetable{\listoverride\listid1337146905\listoverridecount0\ls1}
{\listoverride\listid2020767601\listoverridecount0\ls2}{\listoverride\listid184250857\listoverridecount0\ls3}{\listoverride\listid1487355350\listoverridecount0\ls4}{\listoverride\listid-119\listoverridecount0\ls5}{\listoverride\listid1717271031
\listoverridecount0\ls6}{\listoverride\listid1506630628\listoverridecount0\ls7}}{\info{\title Graphite Compiler Debug Files}{\author Sharon Correll}{\operator Sharon Correll}{\creatim\yr2003\mo4\dy28\hr16\min56}{\revtim\yr2003\mo4\dy28\hr16\min56}
{\printim\yr1998\mo12\dy16\hr14\min31}{\version2}{\edmins0}{\nofpages2}{\nofwords1753}{\nofchars9993}{\*\company Summer Institute of Linguistics}{\nofcharsws12272}{\vern8247}}
\widowctrl\ftnbj\aenddoc\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\formshade\horzdoc\dghspace180\dgvspace180\dghorigin1701\dgvorigin1984\dghshow0\dgvshow0\jexpand\viewkind1\viewscale100\pgbrdrhead\pgbrdrfoot\nolnhtadjtbl \fet0\sectd
\linex0\endnhere\sectdefaultcl {\footer \pard\plain \s29\ql \li0\ri0\widctlpar\tqc\tx4320\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\field{\*\fldinst {\b TITLE \\* MERGEFORMAT
}}{\fldrslt {\b Graphite Compiler Debug Files}}}{, Page }{\field{\*\fldinst { PAGE \\* MERGEFORMAT }}{\fldrslt {\lang1024\langfe1024\noproof 1}}}{ of }{\field{\*\fldinst { NUMPAGES \\* MERGEFORMAT }}{\fldrslt {\lang1024\langfe1024\noproof 1}}}{
\par }{\field{\*\fldinst {\fs18 AUTHOR \\* MERGEFORMAT }}{\fldrslt {\fs18\lang1024\langfe1024\noproof Sharon Correll}}}{\fs18 , }{\field{\*\fldinst {\fs18 DATE \\@ "dd-MMM-yyyy" \\* MERGEFORMAT }}{\fldrslt {\fs18\lang1024\langfe1024\noproof 28-Apr-2003}}}{
\fs18
\par }}{\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang{\pntxta )}}
{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl8
\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}\pard\plain \s16\ql \li0\ri0\sb240\sa360\widctlpar\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin0\lin0\itap0
\b\f1\fs32\lang1033\langfe1033\kerning28\cgrid\langnp1033\langfenp1033 {\field\flddirty{\*\fldinst { TITLE \\* MERGEFORMAT }}{\fldrslt {Graphite Compiler Debug Files}}}{
\par }\pard\plain \s17\ql \li0\ri0\sa60\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \i\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\field\flddirty{\*\fldinst { AUTHOR \\* MERGEFORMAT }}{\fldrslt {
\lang1024\langfe1024\noproof Sharon Correll}}}{
\par Version 3
\par {\listtext\pard\plain\s1 \b\f1\fs28 \hich\af1\dbch\af0\loch\f1 1\tab}}\pard\plain \s1\ql \fi-432\li432\ri0\sb360\keepn\widctlpar\jclisttab\tx432\aspalpha\aspnum\faauto\ls7\outlinelevel0\adjustright\rin0\lin432\itap0
\b\f1\fs28\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {Introduction
\par }\pard\plain \s21\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
The Graphite compiler outputs several text files that can be helpful in the process of developing a Graphite font. Specifically, if the
renderer is giving unexpected results, the GDL programmer can examine these debugger files to see whether the compiler is generating the expected output. Together these files create a textual representation of the bulk of the information in the Graphite
font tables.
\par The compiler generates these files when the /d switch is passed as the first argument.
\par {\listtext\pard\plain\s1 \b\f1\fs28 \hich\af1\dbch\af0\loch\f1 2\tab}}\pard\plain \s1\ql \fi-432\li432\ri0\sb360\keepn\widctlpar\jclisttab\tx432\aspalpha\aspnum\faauto\ls7\outlinelevel0\adjustright\rin0\lin432\itap0
\b\f1\fs28\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {Parse tree: dbg_parsetree.txt
\par }\pard\plain \s21\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {This file shows a parse tree reflecting the syntax of the GDL program.
\par The line numbers refer not to the original source code but to the file \lquote $_temp.gdl\rquote , an integrated source file resulting from running the preprocessor over the program and handling the #define and #include statements.
\par {\listtext\pard\plain\s1 \b\f1\fs28 \hich\af1\dbch\af0\loch\f1 3\tab}}\pard\plain \s1\ql \fi-432\li432\ri0\sb360\keepn\widctlpar\jclisttab\tx432\aspalpha\aspnum\faauto\ls7\outlinelevel0\adjustright\rin0\lin432\itap0
\b\f1\fs28\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {Glyph attributes: dbg_glyphattrs.txt
\par }\pard\plain \s21\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {This file contains the value of all the glyph attributes for all the glyphs in the font.
\par The first section contains a list of the internal IDs assigned to all the glyph attributes. This list includes the system-defined glyph attributes (breakweight, directionality, *actualForPsuedo*) as well as the programmer-defined attributes.
\par The second section lists all the glyph attributes whose values are non-zero. Any unlisted attribute can be assumed to have the value 0.
\par The \'93*actualForPsuedo*\'94 attribute is a special system-defined attribute that contains the ID number of the glyph that should be used for the final rendering of any pseudo-glyph. This attribute is zero for all glyphs that are not psuedo-glyphs.
\par All values that are glyphs metrics are based on the design units of the font (the font\rquote s em-square).
\par Implementational note: any gpoint attribute whose value is actually 0 will have a special value recorded, since the value 0 is used to mean \'93not defined.\'94 This special value is shown in the \lquote dbg_glyphattrs.txt\rquote file as \'93zero.\'94
\par }{\i Debugging Tip:}{ the dbg_glyphattrs.txt file shows only glyph attributes, not glyph metrics. To include glyph metrics in the file, define a glyph attribute that is exactly equal to the glyph metric of interest.
\par {\listtext\pard\plain\s1 \b\f1\fs28 \hich\af1\dbch\af0\loch\f1 4\tab}}\pard\plain \s1\ql \fi-432\li432\ri0\sb360\keepn\widctlpar\jclisttab\tx432\aspalpha\aspnum\faauto\ls7\outlinelevel0\adjustright\rin0\lin432\itap0
\b\f1\fs28\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {Character/glyph mappings: dbg_cmap.txt
\par }\pard\plain \s21\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {This file shows the effect of mapping a Unicode ch
aracter to a glyph ID. This is equivalent to the mapping in the font\rquote s }{\i cmap,}{ with the exception of pseudo-glyphs which are given a mapping generated by the compiler.
\par The first section of the file contains the character-to-glyph mapping, and the second section lists the reverse mapping. In both sections pseudo-glyphs are marked. All values are shown in hex.
\par Items marked \'93[auto-pseudo]\'94 are pseudo-glyphs that are created by virtue of the fact that there are duplicate mappings to a glyph in the font\rquote s cmap. (This behavior can be turned off by the directive}{\f2\fs20 AutoPseudo = false }{
in your GDL program; see sections 3.2.1 and 7.3 in the GDL documentation.) Any pseudo-glyphs that are mapping Unicode values not present in the font\rquote s cmap are labeled \'93[pseudo; not in cmap]\'94.
\par For pseudo-glyphs, this file reflects only the initial mapping from Unicode character to glyph. The *actualForPseudo* glyph attribute contains the final glyph ID to use for rendering the pseudo-glyph; the value of this attribute is shown in the \lquote
dbg_glyphattrs.txt\rquote file.
\par The second section of the file shows two special glyphs that are used for internal processing. The item labeled [line-break] is a special glyph that is used to indicate the line-break \'93character\'94; it corresponds the \'93#\'94 item in GDL rule
s. The item labeled [phantom] is a non-existent glyph that is created by the compiler to facilitate rule mapping.
\par {\listtext\pard\plain\s1 \b\f1\fs28 \hich\af1\dbch\af0\loch\f1 5\tab}}\pard\plain \s1\ql \fi-432\li432\ri0\sb360\keepn\widctlpar\jclisttab\tx432\aspalpha\aspnum\faauto\ls7\outlinelevel0\adjustright\rin0\lin432\itap0
\b\f1\fs28\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {Finite state machines: dbg_fsm.txt
\par }\pard\plain \s21\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
This file shows the finite state machines that are generated for each pass. The finite state machines are used to match the input and determine which rules to fire.
\par For each pass, the file first indicates the column to which each glyph is assigned. Following that is the FSM table itself. The rows in the table are the states, and each element in the table is th
e state the machine transitions to when an item assigned to the given column is encountered. A value of zero means that no match occurred; the machine has \'93jammed.\'94
\par The state number is followed by a count of the number of slots that have been matched at this state. Each state also contains an indication of which rules are in the process of being matched, and which have been fully matched (the \'93Success\'94
states). When the FSM runs, it keeps a list of all the success states that have been encountered. When the machine \'93jams,\'94
the rules associated with these states are candidates for firing. The longest rules are tried first, in the order they appeared in the source code; the first one whose constraints succeed is the rule that is fired.
\par The rules for the pass a
re listed following the FSM table. Keep in mind that there is not a one-to-one correspondence between the rules in the source code and those generated by the compiler. Specifically if a source code rule contains optional items, there will be multiple corr
esponding rules generated by the compiler. The overall order of the rules, however, is unchanged. You may need to carefully compare the final rules shown in this file with the source code to determine the exact correspondences.
\par The rules may be shown in a s
lightly different form than they were expressed in the GDL program. In particular, some rules may have ANY classes inserted at the beginning of the context. When ANY classes are inserted, you will notice that the effect is that each rule in a given pass h
as the same number of items before the first underscore in the context. (This is an implementational trick to ensure that the engine has a consistent reference point from which to begin matching the rules.) The rules as written in the \lquote dbg_fsm.txt
\rquote file are also abbreviated.
\par If you are having trouble determining why a rule is not firing as expected, this file may be helpful. On a piece of scrap paper, write out the underlying characters in the problematic text, and below them write the glyph IDs (from the \lquote dbg_cmap.txt
\rquote file) followed by the column assignments for each. Starting at the critical spot in the text, step through the FSM table, transitioning to the next state in the table for each successive column in your input. (The slots-matched counter should
increase by one at each state.) Keep track of each successful rule you encounter. When you hit a zero element in the table, the machine has \'93jammed.\'94 Compare the order and length of the successful rules to make sure that an undesirable rule isn
\rquote t being fired instead of the one you expected (use the \lquote dbg_ruleprec.txt\rquote file to determine the precedence of the matched rules).
\par However, keep in mind that your list of input glyphs may not be in the state you expect, due to previous processing in this pass or a pre
vious pass, and that may be the source of the problem. To do a really thorough debugging job, you may need to start with the beginning of the text at the first pass and work your way all the way through, modifying the glyph list as you go according to the
rules that fire.
\par {\listtext\pard\plain\s1 \b\f1\fs28 \hich\af1\dbch\af0\loch\f1 6\tab}}\pard\plain \s1\ql \fi-432\li432\ri0\sb360\keepn\widctlpar\jclisttab\tx432\aspalpha\aspnum\faauto\ls7\outlinelevel0\adjustright\rin0\lin432\itap0
\b\f1\fs28\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {Rule precedence: dbg_ruleprec.txt
\par }\pard\plain \s21\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
Since it is often difficult in a complicated pass with many rules to determine easily what the precedence for the rules are, the \lquote dbg_ruleprec.txt\rquote is available to help with this task. This file lists the
rules for each pass in the order of their precedence. When multiple rules are matched by the finite state machine, it is this precedence that determines which rule is actually fired.
\par Note that a single rule in the source code may correspond to multiple rules in this file, since rules are expanded by the compiler to account for optional items. The rule number (e.g., RULE 3.7) corresponds to the number in the \lquote dbg_fsm.txt\rquote
file and also in the \lquote gr_xductn.log\rquote file that is output by the Graphite engine. The file indicates the line and file of the source code for each rule, and shows a simplified print-out of the rule.
\par {\listtext\pard\plain\s1 \b\f1\fs28 \hich\af1\dbch\af0\loch\f1 7\tab}}\pard\plain \s1\ql \fi-432\li432\ri0\sb360\keepn\widctlpar\jclisttab\tx432\aspalpha\aspnum\faauto\ls7\outlinelevel0\adjustright\rin0\lin432\itap0
\b\f1\fs28\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {Engine code: dbg_enginecode.txt
\par }\pard\plain \s21\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
This file shows the internal code that is generated corresponding to the constraints and the effects of firing the rules. This internal code is in the form of a stack machine. See \lquote Stack Machine Commands.doc\rquote
for a description of the commands.
\par The file shows an abbreviated form of the rule, followed by the action code (the effects of running the rule) and the constraint code (the cumulative tests contained in the relevant \endash if\endash statements and in-rule tests).
\par Again, there is not a one-to-one correspondence between the rules as listed here and those in the source code (although the rule numbers are the same as what is shown in the \lquote dbg_fsm.txt\rquote
file). The numbers of the passes in this file, however, do correspond to the numbers in the source code. Pass 0 indicates the unnumbered pass, permitted when there is only one pass in a table.
\par Several of the engine code commands (PushGlyphAttr and PushAttToGlyphAttr) have the effect of pushing the values of glyph attributes on the stack. A translation between the glyph attribute internal ID number and the original name can be found in the
\lquote dbg_glyphattr.txt\rquote file.
\par Other commands (PutSubs and PutGlyph) have the effect of substituting one glyph for another. These commands use class numbers, which are specified in the \lquote dbg_classes.txt\rquote file.
\par {\listtext\pard\plain\s1 \b\f1\fs28 \hich\af1\dbch\af0\loch\f1 8\tab}}\pard\plain \s1\ql \fi-432\li432\ri0\sb360\keepn\widctlpar\jclisttab\tx432\aspalpha\aspnum\faauto\ls7\outlinelevel0\adjustright\rin0\lin432\itap0
\b\f1\fs28\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {Substitution classes: dbg_classes.txt
\par }\pard\plain \s21\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {This file shows classes that are used for substitution in
the rules in the substitution table. Each class has a number, which corresponds to the numbers you can find in the dbg_enginecode.txt file, as arguments to the PutSubs and PutGlyph commands.
\par The classes are listed in two groups. The first group is labeled \'93LINEAR (OUTPUT) CLASSES.\'94
These are the classes that appear in the right-hand or output side of the rules. These classes consist of simply a list of glyphs. They are organized into groups of 10 so that it is fairly easy for you to determine the index of any member of the class.
\par The second group of classes are labeled \'93INDEX (INPUT) CLASSES.\'94 These classes appear in the left-hand or input side of the rules. You will notice that the list of glyphs for each class is sorted by glyph number and each glyph is fo
llowed by an index. When the given glyph is encountered in the input, the associated index is used to determine the corresponding glyph from the output class to substitute in place of the original glyph.
\par Note that some classes may be used in both the left- and right-hand sides of substitution rules, in which case they will appear in both the input and output class lists.
\par }{\i Example.}{ Suppose you have a rule that replaces lower-case vowels (a, e, i, o, u) with upper-case equivalents (A, E, I, O, U). This rule might be represented in the dbg_enginecode.txt file something as follows:
\par }\pard\plain \s26\ql \li432\ri0\sb60\sa60\widctlpar\tx864\tx1728\tx2592\tx3456\tx4320\tx5184\aspalpha\aspnum\faauto\adjustright\rin0\lin432\itap0 \f2\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {Rule 1.0: clsLowerVowel > clsUpperVowel;
\par ACTIONS\line PutSubs 0 10 6\line Next\line RetZero
\par }\pard\plain \s21\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {Now suppose the font assigns glyphs as shown in the table below.
\par
\par }\trowd \trgaph108\trleft1440\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt
\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth1008 \cellx2448\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10
\cltxlrtb\clftsWidth3\clwWidth1260 \cellx3888\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \clcbpat17\cltxlrtb\clftsWidth3\clwWidth144 \cellx4124\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl
\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth1008 \cellx5132\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth1440 \cellx6572
\pard \s21\qc \li0\ri0\sb120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {a\cell 0x0021\cell \cell }{\lang1031\langfe1033\langnp1031 A\cell 0x0053\cell }\pard\plain
\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\lang1031\langfe1033\langnp1031 \trowd \trgaph108\trleft1440\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb
\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10
\cltxlrtb\clftsWidth3\clwWidth1008 \cellx2448\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth1260 \cellx3888\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10
\clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \clcbpat17\cltxlrtb\clftsWidth3\clwWidth144 \cellx4124\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth1008 \cellx5132
\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth1440 \cellx6572\row }\trowd \trgaph108\trleft1440\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10
\trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10
\cltxlrtb\clftsWidth3\clwWidth1008 \cellx2448\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth1260 \cellx3888\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10
\clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \clcbpat17\cltxlrtb\clftsWidth3\clwWidth144 \cellx4124\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth1008 \cellx5132
\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth1440 \cellx6572\pard\plain \s21\qc \li0\ri0\sb120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0
\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\lang1031\langfe1033\langnp1031 e\cell }{0x0025\cell \cell E\cell }{\lang1031\langfe1033\langnp1031 0x0057}{\cell }\pard\plain
\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\trowd \trgaph108\trleft1440\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10
\trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth1008
\cellx2448\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth1260 \cellx3888\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr
\brdrs\brdrw10 \clcbpat17\cltxlrtb\clftsWidth3\clwWidth144 \cellx4124\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth1008 \cellx5132\clvertalt\clbrdrt\brdrs\brdrw10
\clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth1440 \cellx6572\row }\trowd \trgaph108\trleft1440\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh
\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth1008 \cellx2448
\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth1440 \cellx3888\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10
\clcbpat17\cltxlrtb\clftsWidth3\clwWidth144 \cellx4124\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth1008 \cellx5132\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl
\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth1440 \cellx6572\pard\plain \s21\qc \li0\ri0\sb120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0
\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {i\cell 0x0029\cell \cell }{\lang1044\langfe1033\langnp1044 I\cell 0x005B\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0
\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\lang1044\langfe1033\langnp1044 \trowd \trgaph108\trleft1440\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10
\trftsWidth1\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth1008 \cellx2448\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl
\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth1440 \cellx3888\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \clcbpat17\cltxlrtb\clftsWidth3\clwWidth144
\cellx4124\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth1008 \cellx5132\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr
\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth1440 \cellx6572\row }\pard\plain \s21\qc \li0\ri0\sb120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\lang1044\langfe1033\langnp1044 o
\cell }{0x002F\cell \cell O\cell }{\lang1031\langfe1033\langnp1031 0x0061}{\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\trowd \trgaph108\trleft1440
\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl
\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth1008 \cellx2448\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth1440 \cellx3888
\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \clcbpat17\cltxlrtb\clftsWidth3\clwWidth144 \cellx4124\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr
\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth1008 \cellx5132\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth1440 \cellx6572\row }\trowd \trgaph108\trleft1440\trbrdrt
\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10
\clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth1008 \cellx2448\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth1440 \cellx3888\clvertalt
\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \clcbpat17\cltxlrtb\clftsWidth3\clwWidth144 \cellx4124\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10
\cltxlrtb\clftsWidth3\clwWidth1008 \cellx5132\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth1440 \cellx6572\pard\plain
\s21\qc \li0\ri0\sb120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {u\cell 0x0035\cell \cell U\cell }{\lang1031\langfe1033\langnp1031 0x0067}{\cell }\pard\plain
\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\trowd \trgaph108\trleft1440\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10
\trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth1008
\cellx2448\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth1440 \cellx3888\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr
\brdrs\brdrw10 \clcbpat17\cltxlrtb\clftsWidth3\clwWidth144 \cellx4124\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth1008 \cellx5132\clvertalt\clbrdrt\brdrs\brdrw10
\clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth1440 \cellx6572\row }\pard\plain \s21\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0
\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\sect }\sectd \sbknone\linex0\endnhere\sectdefaultcl \pard\plain \s21\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0
\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\lang1031\langfe1033\langnp1031
\par }{\sect }\sectd \sbknone\linex0\endnhere\sectdefaultcl \pard\plain \s21\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
The dbg_classes.txt file would contain the following definitions for the classes:
\par }\pard\plain \s26\ql \li432\ri0\sb60\sa60\widctlpar\tx864\tx1728\tx2592\tx3456\tx4320\tx5184\aspalpha\aspnum\faauto\adjustright\rin0\lin432\itap0 \f2\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\line LINEAR (OUTPUT) CLASSES
\par ...
\par Class #6: clsUpperVowel\line 0: 0x0053 0x0057 0x005B 0x0061 0x0067
\par ...
\par INDEXED (INPUT) CLASSES
\par ...
\par Class #10: clsLowerVowel\line 0x0021 : 0 0x0025 : 1 0x0029 : 2 0x002F : 3 0x0035 : 4
\par }\pard\plain \s21\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
Note that the second and third arguments of the PutSubs engine code command correspond to the numbers of the input and output classes, respectively. The glyph IDs are hypothetical, but this is in effect saying that \'93a\'94
is assigned index 0, which corresponds to \'93A\'94 in the clsUpperVowel class;\'93e\'94 is assigned index 1, corresponding to \'93E\'94; etc. (In this case the input glyphs happen to be in sorted ord
er, but keep in mind that this is not always the case.)
\par {\listtext\pard\plain\s1 \b\f1 \hich\af1\dbch\af0\loch\f1 9\tab}}\pard\plain \s1\ql \fi-432\li432\ri0\sb360\keepn\widctlpar\jclisttab\tx432\aspalpha\aspnum\faauto\ls7\outlinelevel0\adjustright\rin0\lin432\itap0
\b\f1\fs28\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\fs24 Revision History
\par {\pntext\pard\plain\fs20 \hich\af0\dbch\af0\loch\f0 1.\tab}}\pard\plain \ql \fi-360\li360\ri0\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls4\pnrnot0\pndec\pnstart1\pnindent360\pnsp120\pnhang{\pntxta .}}
\aspalpha\aspnum\faauto\ls4\adjustright\rin0\lin360\itap0 \fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {26-April-2000: First draft by Sharon Correll.
\par {\pntext\pard\plain\fs20 \hich\af0\dbch\af0\loch\f0 2.\tab}}\pard \ql \fi-360\li360\ri0\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls4\pnrnot0\pndec\pnstart1\pnindent360\pnsp120\pnhang{\pntxta .}}
\aspalpha\aspnum\faauto\ls4\adjustright\rin0\lin360\itap0 {26-Jan-2001. Revised to discuss ANY.
\par {\pntext\pard\plain\fs20 \hich\af0\dbch\af0\loch\f0 3.\tab}}\pard \ql \fi-360\li360\ri0\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls4\pnrnot0\pndec\pnstart1\pnindent360\pnsp120\pnhang{\pntxta .}}
\aspalpha\aspnum\faauto\ls4\adjustright\rin0\lin360\itap0 {26-Feb-2003. Added discussion of dbg_classes and dbg_ruleprec files.
\par {\pntext\pard\plain\fs20 \hich\af0\dbch\af0\loch\f0 4.\tab}}\pard \ql \fi-360\li360\ri0\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls4\pnrnot0\pndec\pnstart1\pnindent360\pnsp120\pnhang{\pntxta .}}
\aspalpha\aspnum\faauto\ls4\adjustright\rin0\lin360\itap0 {28-April-2003. Enhanced discussion of dbg_cmap file.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {
\par {\listtext\pard\plain\s1 \b\f1 \hich\af1\dbch\af0\loch\f1 10\tab}}\pard\plain \s1\ql \fi-432\li432\ri0\sb360\keepn\widctlpar\jclisttab\tx432\aspalpha\aspnum\faauto\ls7\outlinelevel0\adjustright\rin0\lin432\itap0
\b\f1\fs28\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\fs24 File Name
\par }\pard\plain \s23\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\field\flddirty{\*\fldinst { FILENAME \\* MERGEFORMAT }}{\fldrslt {\lang1024\langfe1024\noproof
Compiler Debug Files.doc}}}{
\par }}
|