# automatic @Uppercase = [ A Adieresis Atilde Agrave Aacute Acircumflex Aring Amacron Abreve Aogonek Acaron Adieresismacron Adotmacron Aringacute Adblgrave Ainvertedbreve uni0226 Aringbelow Adotbelow Ahookabove Acircumflexacute Acircumflexgrave Acircumflexhookabove Acircumflextilde Acircumflexdotbelow Abreveacute Abrevegrave Abrevehookabove Abrevetilde Abrevedotbelow Alpha Alphatonos uni1F08 uni1F09 uni1F0A uni1F0B uni1F0C uni1F0D uni1F0E uni1F0F uni1FB8 uni1FB9 uni1FBA uni023A uni1FBB afii10017 Abrevecyrillic Adieresiscyrillic uni1F88 uni1F89 uni1F8A uni1F8B uni1F8C uni1F8D uni1F8E uni1F8F uni1FBC Lambda AE AEmacron AEacute Aiecyrillic B Bdotaccent Bdotbelow Blinebelow uni0243 Bhook afii10019 Beta C Chook Ccedilla Cacute Ccircumflex Cdotaccent Ccaron Ccedillaacute uni023B Oopen uni03F9 D Dhook Dcaron Ddotaccent Ddotbelow Dlinebelow Dcedilla Dcircumflexbelow Dbar1 Dz Dzcaron_ E Egrave Eacute Ecircumflex Edieresis Emacron Ebreve Edotaccent Eogonek Ecaron Edblgrave Einvertedbreve uni0228 Emacrongrave Emacronacute Ecircumflexbelow Etildebelow Ecedillabreve Edotbelow Ehookabove Etilde Ecircumflexacute Ecircumflexgrave Ecircumflexhookabove Ecircumflextilde Ecircumflexdotbelow uni0246 Eturn Epsilon Epsilontonos uni1F18 uni1F19 uni1F1A uni1F1B uni1F1C uni1F1D uni1FC8 uni1FC9 afii10022 uni0400 afii10023 Iebrevecyrillic F Fhook Fdotaccent Fturn G Gbar Ghook Gcircumflex Gbreve Gdotaccent Gcommaaccent Gcaron Gacute Gmacron H Hcedilla Hcircumflex uni021E Hdotaccent Hdotbelow Hdieresis Hbrevebelow Hbar Enhookcyrillic Endescendercyrillic uni04C9 Enghecyrillic uni01F6 Eta Etatonos uni1F28 uni1F29 uni1F2A uni1F2B uni1F2C uni1F2D uni1F2E uni1F2F uni1FCA uni1FCB afii10031 uni1F98 uni1F99 uni1F9A uni1F9B uni1F9C uni1F9D uni1F9E uni1F9F uni1FCC I Idieresis Idieresisacute Istroke Itildebelow Igrave Iacute Icircumflex Itilde Imacron Ibreve Iogonek Idotaccent Icaron Idblgrave Iinvertedbreve Ihookabove Idotbelow Iota Iotatonos Iotadieresis uni1F38 uni1F39 uni1F3A uni1F3B uni1F3C uni1F3D uni1F3E uni1F3F uni1FD8 uni1FD9 uni1FDA uni1FDB afii10055 afii10056 I.1 Idieresis.1 Idieresisacute.1 Istroke.1 Itildebelow.1 Igrave.1 Iacute.1 Icircumflex.1 Itilde.1 Imacron.1 Ibreve.1 Iogonek.1 Idotaccent.1 Icaron.1 Idblgrave.1 Iinvertedbreve.1 Ihookabove.1 Idotbelow.1 uni1F38.1 uni1F39.1 uni1F3A.1 uni1F3B.1 uni1F3C.1 uni1F3D.1 uni1F3E.1 uni1F3F.1 uni1FD8.1 uni1FD9.1 uni1FDA.1 uni1FDB.1 afii10055.1 afii10056.1 J Jcircumflex uni0248 uni037F afii10057 K Kcommaaccent Kcaron Kacute Kdotbelow Klinebelow Kabashkircyrillic Kadescendercyrillic Khook Kappa L Lacute Lcommaaccent Lcaron Ldotbelow Ldotbelowmacron Llinebelow Lcircumflexbelow Lslash Lbar Lj M Macute Mdotaccent Mdotbelow uni04CD Mu uni03FA afii10030 N Ntilde Nacute Ncommaaccent Ncaron uni01F8 Ndotaccent Ndotbelow Nlinebelow Ncircumflexbelow Nhook Eng afii10026 uni040D afii10027 Imacroncyrillic Idieresiscyrillic uni048A uni0376 Nu Nj O Odieresis Otilde Oslash Ohorn Ograve Oacute Ocircumflex Omacron Obreve Ohungarumlaut Ocaron Oogonek Oogonekmacron Odblgrave Oinvertedbreve uni022A uni022C uni022E uni0230 Otildeacute Otildedieresis Omacrongrave Omacronacute Odotbelow Ohookabove Ocircumflexacute Ocircumflexgrave Ocircumflexhookabove Ocircumflextilde Ocircumflexdotbelow Ohornacute Ohorngrave Ohornhookabove Ohorntilde Ohorndotbelow Oslashacute Omicron Omicrontonos uni1F48 uni1F49 uni1F4A uni1F4B uni1F4C uni1F4D uni1FF8 uni03F4 uni1FF9 afii10032 Odieresiscyrillic Obar Obarredcyrillic Obarreddieresiscyrillic OE P Pacute Pdotaccent uni048E Phook Rho uni1FEC Q R Racute Rcommaaccent Rcaron Rdblgrave Rinvertedbreve Rdotaccent Rdotbelow Rdotbelowmacron Rlinebelow uni024C S Sacute Scircumflex Scedilla Scaron Scommaaccent Sdotaccent Sdotbelow Sacutedotaccent Scarondotaccent Sdotbelowdotaccent afii10054 Tonetwo Germandbls T Tcommaaccent Tcaron uni021A Tdotaccent Tdotbelow Tlinebelow Tcircumflexbelow Thook Trthook uni023E Tau U Uhorn Ugrave Uacute Ucircumflex Udieresis Utilde Umacron Ubreve Uring Uhungarumlaut Uogonek Ucaron Udieresismacron Udieresisacute Udieresiscaron Udieresisgrave Udblgrave Uinvertedbreve Udieresisbelow Utildebelow Ucircumflexbelow Utildeacute Umacrondieresis Udotbelow Uhookabove Uhornacute Uhorngrave Uhornhookabove Uhorntilde Uhorndotbelow uni0244 V Vtilde Vdotbelow W Wcircumflex Wgrave Wacute Wdieresis Wdotaccent Wdotbelow X Xdotaccent Xdieresis Hadescendercyrillic uni04FC Chi Y Yhook Yacute Ycircumflex Ydieresis uni0232 Ydotaccent Ygrave Ydotbelow Yhookabove Ytilde uni024E Upsilon Upsilontonos Upsilondieresis uni1F59 uni1F5B uni1F5D uni1F5F uni1FE8 uni1FE9 uni1FEA uni1FEB Z Zacute Zdotaccent Zcaron Zcircumflex Zdotbelow Zlinebelow uni0224 Zbar Zeta uni2C7F Q_rthook Thorn Gamma Delta Theta Xi Pi Sigma Phi Psi Omega uni1FFB Omegatonos uni1F68 uni1F69 uni1F6A uni1F6B uni1F6C uni1F6D uni1F6E uni1F6F uni1FFA uni1FA8 uni1FA9 uni1FAA uni1FAB uni1FAC uni1FAD uni1FAE uni1FAF uni1FFC Upsilon2 Upsilonhooksymbol Upsilonacutehooksymbolgreek Upsilondieresishooksymbolgreek Gamma1 afii10018 afii10050 uni04FA afii10021 afii10024 Zhedescendercyrillic afii10025 Kacyr Kaverticalstrokecyrillic Kahookcyrillic afii10029 afii10147 afii10145 afii10037 afii10038 afii10040 Tetsecyrillic afii10041 Chedescendercyrillic Cheverticalstrokecyrillic Shhacyrillic afii10060 afii10042 afii10043 afii10044 afii10045 afii10046 afii10058 afii10059 afii10047 afii10048 afii10049 Ghemiddlehookcyrillic Pemiddlehookcyrillic afii10053 Haabkhasiancyrillic Cheabkhasiancyrillic Schwacyrillic Dzeabkhasiancyrillic afii10148 afii10051 Tonefive degreekelvin uni03FD uni03FE uni03FF uni0372 uni0370 Btopbar Koppa Tonesix Digamma uni01F7 uni021C Dtopbar uni1EFE uni1EFA uni1EFC uni03D8 uni0220 Iota1 mcapturn Vcursive uni0241 uni0245 angstrom Schwa Esh Omegacyrillic Yuslittlecyrillic Eiotifiedcyrillic Yuslittleiotifiedcyrillic Yusbigiotifiedcyrillic Yusbigcyrillic Ksicyrillic OI uni03CF Stigma Epsilon1 YR uni0222 Sampi Koppacyrillic Ezhreversed Ezh Eth Dcroat IJ Ldot Tbar LJ NJ DZ Aogonek.NAV Eogonek.NAV Oogonek.NAV uni03F7 afii10020 afii10052 afii10033 afii10034 afii10035 afii10036 afii10039 afii10146 Psicyrillic Ukcyrillic uni048C Ghestrokecyrillic Zedescendercyrillic Esdescendercyrillic Tedescendercyrillic Ustraightcyrillic Ustraightstrokecyrillic Chedescenderabkhasiancyrillic palochkacyrillic Chekhakassiancyrillic uni04F6 uni04FE afii10061 Schwadieresiscyrillic Zhebrevecyrillic Zhedieresiscyrillic Zedieresiscyrillic afii10062 Umacroncyrillic Udieresiscyrillic Uhungarumlautcyrillic Chedieresiscyrillic Yerudieresiscyrillic uni04EC Izhitsadblgravecyrillic Ezhcaron Eltail-cy ]; # automatic @Lowercase = [ a adieresis atilde arighthalfring agrave aacute acircumflex aring amacron abreve aogonek acaron adieresismacron adotmacron aringacute adblgrave ainvertedbreve uni0227 aringbelow adotbelow ahookabove acircumflexacute acircumflexgrave acircumflexhookabove acircumflextilde acircumflexdotbelow abreveacute abrevegrave abrevehookabove abrevetilde abrevedotbelow aturn afii10065 abrevecyrillic adieresiscyrillic ae aemacron aeacute aiecyrillic b bbar btopbar bhook bdotaccent bdotbelow blinebelow c uni023C chook ccurl ccedilla cacute ccircumflex cdotaccent ccaron ccedillaacute sigmalunatesymbolgreek escyrillic d dcroat drthook dhook dtopbar uni0221 dcaron ddotaccent ddotbelow dlinebelow dcedilla dcircumflexbelow dz dzcaron dzcurl dyogh e edieresis uni0247 egrave eacute ecircumflex emacron ebreve edotaccent eogonek ecaron edblgrave einvertedbreve uni0229 emacrongrave emacronacute ecircumflexbelow etildebelow ecedillabreve edotbelow ehookabove etilde ecircumflexacute ecircumflexgrave ecircumflexhookabove ecircumflextilde ecircumflexdotbelow iecyrillic uni0450 iocyrillic iebrevecyrillic eturn f slongstroke slongdotaccent fdotaccent feng g ghook gbar gcircumflex gbreve gdotaccent gcommaaccent gcaron gacute gmacron h hcedilla tshecyrillic djecyrillic hhook henghook hv hturn hturnlthook hturnhook2 hbar hcircumflex uni021F hdotaccent hdotbelow hdieresis hbrevebelow hlinebelow shhacyrillic i idotless idieresis idieresisacute itilde itildebelow uni1E2D.ccmp ibar igrave iacute icircumflex imacron ibreve uni012F.ccmp iogonek icaron idblgrave iinvertedbreve ihookabove idotbelow uni1ECB.ccmp jdotless jdotlessbar uni0249 uni0249.ccmp icyrillic yicyrillic ij j jcrosstail.ccmp jcrosstail jcircumflex jcaron yotgreek jecyrillic lj k khook kcommaaccent kcaron kacute kdotbelow klinebelow kturn l lslash lbar lmidtilde lrthook lbelt lcurl ldot lacute lcommaaccent lcaron ldotbelow ldotbelowmacron llinebelow lcircumflexbelow l.ss02 lslash.ss02 lbar.ss02 lmidtilde.ss02 lbelt.ss02 ldot.ss02 lacute.ss02 lcommaaccent.ss02 lcaron.ss02 ldotbelow.ss02 ldotbelowmacron.ss02 llinebelow.ss02 lcircumflexbelow.ss02 uni04CF m mhook mturn mturndescend macute mdotaccent mdotbelow n ntilde nrthook eng ncurl nlfthook nlegrightlong nacute ncommaaccent ncaron uni01F9 ndotaccent ndotbelow nlinebelow ncircumflexbelow nj o odieresis otilde oslash ohorn ograve oacute ocircumflex omacron obreve ohungarumlaut ocaron oogonek oogonekmacron odblgrave oinvertedbreve uni022B uni022D uni022F uni0231 otildeacute otildedieresis omacrongrave omacronacute odotbelow ohookabove ocircumflexacute ocircumflexgrave ocircumflexhookabove ocircumflextilde ocircumflexdotbelow ohornacute ohorngrave ohornhookabove ohorntilde ohorndotbelow oslashacute omicron omicrontonos uni1F40 uni1F41 uni1F42 uni1F43 uni1F44 uni1F45 uni1F78 fitacyrillic obar ocyrillic odieresiscyrillic oe ukcyrillic p uni048F phook pacute pdotaccent ercyrillic q qhook qrthook r rrthook uni024D rturn rturnrthook rfishhookrev rfishhook rdescend racute rcommaaccent rcaron rdblgrave rinvertedbreve rdotaccent rdotbelow rdotbelowmacron rlinebelow r.1 rrthook.1 uni024D.1 rdescend.1 racute.1 rcommaaccent.1 rcaron.1 rdblgrave.1 rinvertedbreve.1 rdotaccent.1 rdotbelow.1 rdotbelowmacron.1 rlinebelow.1 s srthook uni023F sacute scircumflex scedilla scaron scommaaccent sdotaccent sdotbelow sacutedotaccent scarondotaccent sdotbelowdotaccent dzecyrillic tonetwo germandbls germandbls.1 t tpalatalhook trthook tcurl tccurl tturn tbar tcommaaccent tcaron uni021B tdotaccent tdotbelow tlinebelow tcircumflexbelow tdieresis u udieresis utilde uhorn ubar ugrave uacute ucircumflex umacron ubreve uring uhungarumlaut uogonek ucaron udieresismacron udieresisacute udieresiscaron udieresisgrave udblgrave uinvertedbreve udieresisbelow utildebelow ucircumflexbelow utildeacute umacrondieresis udotbelow uhookabove uhornacute uhorngrave uhornhookabove uhorntilde uhorndotbelow v vturn vtilde vdotbelow w wdieresis wturn wcircumflex wgrave wacute wdotaccent wdotbelow wring x xdotaccent xdieresis khacyrillic y ydieresis yhook uni024F yacute ycircumflex uni0233 ydotaccent yring ygrave ydotbelow yhookabove ytilde ucyrillic ushortcyrillic umacroncyrillic udieresiscyrillic uhungarumlautcyrillic yturn z zbar zhook uni0240 zrthook zacute zdotaccent zcaron zcircumflex zdotbelow zlinebelow zcurl eth thorn alpha alphatonos uni1F00 uni1F01 uni1F02 uni1F03 uni1F04 uni1F05 uni1F06 uni1F07 uni1F70 uni1F80 uni1F81 uni1F82 uni1F83 uni1F84 uni1F85 uni1F86 uni1F87 uni1FB0 uni1FB1 uni1FB2 uni1FB3 uni1FB4 uni1FB6 uni1FB7 beta gamma delta epsilon epsilontonos epsilonclosed epsilon1 epsilon1rev epsilon1revclosed epsilon1revhook uni1F10 uni1F11 uni1F12 uni1F13 uni1F14 uni1F15 uni1F72 zeta eta etatonos uni1F20 uni1F21 uni1F22 uni1F23 uni1F24 uni1F25 uni1F26 uni1F27 uni1F74 uni1F90 uni1F91 uni1F92 uni1F93 uni1F94 uni1F95 uni1F96 uni1F97 uni1FC2 uni1FC3 uni1FC4 uni1FC6 uni1FC7 theta iota iotadieresistonos iotatonos iotadieresis uni1F30 uni1F31 uni1F32 uni1F33 uni1F34 uni1F35 uni1F36 uni1F37 uni1F76 uni1FD0 uni1FD1 uni1FD2 uni1FD6 uni1FD7 lambda xi pi rho uni1FE4 uni1FE5 uni03FC sigma1 sigma tau upsilon upsilondieresistonos upsilondieresis upsilontonos uni1F50 uni1F51 uni1F52 uni1F53 uni1F54 uni1F55 uni1F56 uni1F57 uni1F7A uni1FE0 uni1FE1 uni1FE2 uni1FE6 uni1FE7 phi phigreek psi omega omegatonos uni1F60 uni1F61 uni1F62 uni1F63 uni1F64 uni1F65 uni1F66 uni1F67 uni1F7C uni1FA0 uni1FA1 uni1FA2 uni1FA3 uni1FA4 uni1FA5 uni1FA6 uni1FA7 uni1FF2 uni1FF3 uni1FF4 uni1FF6 uni1FF7 gamma1 becyrillic vecyrillic gecyrillic gheupturncyrillic uni04FB decyrillic zhecyrillic zhedescendercyrillic zecyrillic iicyrillic uni048B kacyrillic kahookcyrillic kadescendercyrillic kaverticalstrokecyrillic kabashkircyrillic elcyrillic uni04C6 uni052F emcyrillic uni04CE encyrillic endescendercyrillic enghecyrillic enhookcyrillic uni04CA pecyrillic tecyrillic efcyrillic uni04FD hadescendercyrillic tsecyrillic dzhecyrillic checyrillic chedescendercyrillic cheverticalstrokecyrillic shacyrillic shchacyrillic softsigncyrillic hardsigncyrillic yericyrillic uni048D yatcyrillic ljecyrillic njecyrillic ereversedcyrillic iucyrillic iacyrillic ghemiddlehookcyrillic pemiddlehookcyrillic ecyrillic haabkhasiancyrillic tetsecyrillic cheabkhasiancyrillic dzeabkhasiancyrillic izhitsacyrillic oopen Gsmallcaphook uni02AB uni02AC kappa1 OEsmallcap glottalstopbarinv uni03F5 longs Ysmallcap uni03FB uni0373 uni0371 uni0377 glottalstoprevinv uni037C uni037B uni037D erev cstretch Rsmallcap beta1 glottalstopinv uni021D uni0268.ccmp schwahook uni1E9D uni1E9F uni1EFD uni1EFF uni1EFB tesh philatin uni03D9 thetasymbolgreek thook uni03D7 glottalstop uni0223 digamma koppa eshlooprev uni0238 uni0239 babygamma wynn stigma rturnascend uni0242 Lsmallcap oi Gsmallcap Rsmallcapinv ts tonesix pisymbolgreek tonefive deltaturn iota1 omegacyrillic yuslittlecyrillic eiotifiedcyrillic yuslittleiotifiedcyrillic yusbigcyrillic ksicyrillic yusbigiotifiedcyrillic ascriptturn glottalstopbarrev ezh ezhcurl gcursive upsilonlatin omegaclosed sampi eshshortrev vscript jhookdblbar ascript uni1FBE kgreenlandic uni2184 rho1 glottalstopbar lambdabar schwa koppacyrillic eshcurl ezhtail ezhreversed Ismallcap lyogh uni0299 uni029C aogonek.NAV eogonek.NAV oogonek.NAV kappa mugreek nu uni03F8 uni1F71 uni1F73 uni1F75 uni1F77 uni1F79 uni1F7B uni1F7D uni1FD3 uni1FE3 psicyrillic ghestrokecyrillic zedescendercyrillic esdescendercyrillic tedescendercyrillic ustraightcyrillic ustraightstrokecyrillic chedescenderabkhasiancyrillic chekhakassiancyrillic schwacyrillic schwadieresiscyrillic obarredcyrillic obarreddieresiscyrillic uni04F7 uni04FF chedieresiscyrillic uni04ED gjecyrillic iishortcyrillic uni045D imacroncyrillic idieresiscyrillic izhitsadblgravecyrillic kjecyrillic yerudieresiscyrillic zedieresiscyrillic zhebrevecyrillic zhedieresiscyrillic Nsmallcap esh ezhcaron ]; # Prefix: Languagesystems # automatic languagesystem DFLT dflt; languagesystem latn dflt; languagesystem hebr dflt; languagesystem latn CAT; languagesystem latn ROM; languagesystem latn MOL; feature ccmp { @CCMP_ACC = [ gravecomb acutecomb tildecomb brevetildecomb.cn brevehookcomb.cn breveacutecomb.cn circumflextildecomb.cn circumflexhookcomb.cn circumflexgravecomb.cn circumflexacutecomb.cn brevegravecomb.cn macroncomb dieresismacroncomb.cn dieresisacutecomb.cn dieresiscaroncomb.cn dieresisgravecomb.cn dotmacroncomb.cn tildeacutecomb macrongravecomb.cn macronacutecomb.cn macrondieresiscomb.cn acutedotcomb.cn carondotcomb.cn tildemacroncomb.cn tildedieresiscomb.cn circumflexnosp overscorenosp brevenosp dotnosp dieresisnosp hook ringnosp acutedblnosp caroncmb linevertnosp linevertdblnosp dblgravecmb candrabindunosp breveinvnosp commaturnsupnosp commaabovecmb commasuprevnosp commaaboverightcmb anglesupnosp hornnosp xsupnosp tildevertsupnosp overscoredblnosp graveleftnosp acuterightnosp perispomenigreekcmb koroniscmb diaeresistonosnosp uni0346 uni034A uni034B uni034C uni0350 uni0351 uni0352 uni0357 uni0358 uni035B uni1DC0 uni1DC1 uni1DC3 uni1DC4 uni1DC5 uni1DC6 uni1DC7 uni1DC8 uni1DC9 uni1DCB uni1DCC uni1DCD uni1DCE uni1DD1 uni1DD2 uni1DD3 uni1DD4 uni1DD5 uni1DD6 uni1DD7 uni1DD8 uni1DD9 uni1DDA uni1DDB uni1DDC uni1DDD uni1DDE uni1DDF uni1DE0 uni1DE1 uni1DE2 uni1DE3 uni1DE4 uni1DE5 uni1DE6 uni1DE7 uni1DE8 uni1DE9 uni1DEA uni1DEB uni1DEC uni1DED uni1DEE uni1DEF uni1DF0 uni1DF1 uni1DF2 uni1DF3 uni1DF4 uni1DF5 uni1DFE uni0363 uni0364 uni0365 uni0366 uni0367 uni0368 uni0369 uni036A uni036B uni036C uni036D uni036E uni036F titlocyrilliccmb palatalizationcyrilliccmb dasiapneumatacyrilliccmb psilipneumatacyrilliccmb uni0487 uni20F0 uniA69F uni2DFF uni20DC uniFE20 uniFE21 uniFE22 uniFE23 uniFE24 uniFE25 uniFE26 ]; # Transpose sequences like /i /gravecomb -> /idotless /gravecomb lookup ccmp02 { sub i' @CCMP_ACC by idotless; sub j' @CCMP_ACC by jdotless; sub ibar' @CCMP_ACC by uni0268.ccmp; sub iogonek' @CCMP_ACC by uni012F.ccmp; # iogonek is generated sub uni0249' @CCMP_ACC by uni0249.ccmp; sub jcrosstail' @CCMP_ACC by jcrosstail.ccmp; sub yotgreek' @CCMP_ACC by jdotless; sub icyrillic' @CCMP_ACC by idotless; sub jecyrillic' @CCMP_ACC by jdotless; sub itildebelow' @CCMP_ACC by uni1E2D.ccmp; # uni1E2D.ccmp is generated sub idotbelow' @CCMP_ACC by uni1ECB.ccmp; # both are generated sub i.numr' @CCMP_ACC by uni2071.ccmp; } ccmp02; lookup ccmp03 { sub d caroncmb by dcaron; sub l caroncmb by lcaron; sub t caroncmb by tcaron; sub A gravecomb by Agrave; sub A acutecomb by Aacute; sub A circumflexnosp by Acircumflex; sub A tildecomb by Atilde; sub A dieresisnosp by Adieresis; sub A ringnosp by Aring; sub A ringacute.cn by Aringacute; sub C cedillanosp by Ccedilla; sub E gravecomb by Egrave; sub E acutecomb by Eacute; sub E circumflexnosp by Ecircumflex; sub E dieresisnosp by Edieresis; sub I gravecomb by Igrave; sub I acutecomb by Iacute; sub I circumflexnosp by Icircumflex; sub I dieresisnosp by Idieresis; sub N tildecomb by Ntilde; sub O gravecomb by Ograve; sub O acutecomb by Oacute; sub O circumflexnosp by Ocircumflex; sub O tildecomb by Otilde; sub O dieresisnosp by Odieresis; sub U gravecomb by Ugrave; sub U acutecomb by Uacute; sub U circumflexnosp by Ucircumflex; sub U dieresisnosp by Udieresis; sub Y acutecomb by Yacute; sub a gravecomb by agrave; sub a acutecomb by aacute; sub a circumflexnosp by acircumflex; sub a tildecomb by atilde; sub a dieresisnosp by adieresis; sub a ringnosp by aring; sub a ringacute.cn by aringacute; sub c cedillanosp by ccedilla; sub e gravecomb by egrave; sub e acutecomb by eacute; sub e circumflexnosp by ecircumflex; sub e dieresisnosp by edieresis; sub idotless gravecomb by igrave; sub idotless acutecomb by iacute; sub idotless circumflexnosp by icircumflex; sub idotless dieresisnosp by idieresis; sub n tildecomb by ntilde; sub o gravecomb by ograve; sub o acutecomb by oacute; sub o circumflexnosp by ocircumflex; sub o tildecomb by otilde; sub o dieresisnosp by odieresis; sub u gravecomb by ugrave; sub u acutecomb by uacute; sub u circumflexnosp by ucircumflex; sub u dieresisnosp by udieresis; sub y acutecomb by yacute; sub y dieresisnosp by ydieresis; sub A macroncomb by Amacron; sub a macroncomb by amacron; sub A brevenosp by Abreve; sub a brevenosp by abreve; sub A ogoneknosp by Aogonek; sub a ogoneknosp by aogonek; sub C acutecomb by Cacute; sub c acutecomb by cacute; sub C circumflexnosp by Ccircumflex; sub c circumflexnosp by ccircumflex; sub C dotnosp by Cdotaccent; sub c dotnosp by cdotaccent; sub C caroncmb by Ccaron; sub c caroncmb by ccaron; sub D caroncmb by Dcaron; sub E macroncomb by Emacron; sub e macroncomb by emacron; sub E brevenosp by Ebreve; sub e brevenosp by ebreve; sub E dotnosp by Edotaccent; sub e dotnosp by edotaccent; sub E ogoneknosp by Eogonek; sub e ogoneknosp by eogonek; sub E caroncmb by Ecaron; sub e caroncmb by ecaron; sub G circumflexnosp by Gcircumflex; sub g circumflexnosp by gcircumflex; sub G brevenosp by Gbreve; sub g brevenosp by gbreve; sub G dotnosp by Gdotaccent; sub g dotnosp by gdotaccent; sub G commaaccent by Gcommaaccent; sub g commaaccentrotate.cn by gcommaaccent; sub H circumflexnosp by Hcircumflex; sub h circumflexnosp by hcircumflex; sub I tildecomb by Itilde; sub idotless tildecomb by itilde; sub I macroncomb by Imacron; sub idotless macroncomb by imacron; sub I brevenosp by Ibreve; sub idotless brevenosp by ibreve; sub I ogoneknosp by Iogonek; sub i ogoneknosp by iogonek; sub I dotnosp by Idotaccent; sub J circumflexnosp by Jcircumflex; sub jdotless circumflexnosp by jcircumflex; sub K commaaccent by Kcommaaccent; sub k commaaccent by kcommaaccent; sub L acutecomb by Lacute; sub l acutecomb by lacute; sub L commaaccent by Lcommaaccent; sub l commaaccent by lcommaaccent; sub L dotnosp by Ldot; sub l dotnosp by ldot; sub N acutecomb by Nacute; sub n acutecomb by nacute; sub N commaaccent by Ncommaaccent; sub n commaaccent by ncommaaccent; sub N caroncmb by Ncaron; sub n caroncmb by ncaron; sub O macroncomb by Omacron; sub o macroncomb by omacron; sub O brevenosp by Obreve; sub o brevenosp by obreve; sub O acutedblnosp by Ohungarumlaut; sub o acutedblnosp by ohungarumlaut; sub R acutecomb by Racute; sub r acutecomb by racute; sub R commaaccent by Rcommaaccent; sub r commaaccent by rcommaaccent; sub R caroncmb by Rcaron; sub r caroncmb by rcaron; sub S acutecomb by Sacute; sub s acutecomb by sacute; sub S circumflexnosp by Scircumflex; sub s circumflexnosp by scircumflex; sub S cedillanosp by Scedilla; sub s cedillanosp by scedilla; sub S commaaccent by Scommaaccent; sub s commaaccent by scommaaccent; sub S caroncmb by Scaron; sub s caroncmb by scaron; sub T commaaccent by uni021A; sub t commaaccent by uni021B; sub T cedillanosp by Tcommaaccent; sub t cedillanosp by tcommaaccent; sub T caroncmb by Tcaron; sub U tildecomb by Utilde; sub u tildecomb by utilde; sub U macroncomb by Umacron; sub u macroncomb by umacron; sub U brevenosp by Ubreve; sub u brevenosp by ubreve; sub U ringnosp by Uring; sub u ringnosp by uring; sub U acutedblnosp by Uhungarumlaut; sub u acutedblnosp by uhungarumlaut; sub U ogoneknosp by Uogonek; sub u ogoneknosp by uogonek; sub W circumflexnosp by Wcircumflex; sub w circumflexnosp by wcircumflex; sub Y circumflexnosp by Ycircumflex; sub y circumflexnosp by ycircumflex; sub Y dieresisnosp by Ydieresis; sub Z acutecomb by Zacute; sub z acutecomb by zacute; sub Z dotnosp by Zdotaccent; sub z dotnosp by zdotaccent; sub Z caroncmb by Zcaron; sub z caroncmb by zcaron; sub AE acutecomb by AEacute; sub ae acutecomb by aeacute; sub Oslash acutecomb by Oslashacute; sub oslash acutecomb by oslashacute; #sub z caroncmb by zcaron; sub W gravecomb by Wgrave; sub w gravecomb by wgrave; sub W acutecomb by Wacute; sub w acutecomb by wacute; sub W dieresisnosp by Wdieresis; sub w dieresisnosp by wdieresis; sub Y gravecomb by Ygrave; sub y gravecomb by ygrave; sub jdotless caroncmb by jcaron; sub A dotbelow by Adotbelow; sub a dotbelow by adotbelow; sub A hook by Ahookabove; sub a hook by ahookabove; #sub A circumflexacutecomb.cn by uni1EA4; sub A circumflexnosp acutecomb by Acircumflexacute; sub a circumflexacutecomb.cn by acircumflexacute; #sub A circumflexgravecomb.cn by uni1EA6; sub A circumflexnosp gravecomb by Acircumflexgrave; sub a circumflexgravecomb.cn by acircumflexgrave; #sub A circumflexhookcomb.cn by uni1EA8; sub A circumflexnosp hook by Acircumflexhookabove; sub a circumflexhookcomb.cn by acircumflexhookabove; #sub A circumflextildecomb.cn by uni1EAA; sub A circumflexnosp tildecomb by Acircumflextilde; sub a circumflextildecomb.cn by acircumflextilde; #sub A breveacutecomb.cn by uni1EAE; sub A brevenosp acutecomb by Abreveacute; sub a breveacutecomb.cn by abreveacute; #sub A brevegravecomb.cn by uni1EB0; sub A brevenosp gravecomb by Abrevegrave; sub a brevegravecomb.cn by abrevegrave; #sub A brevehookcomb.cn by uni1EB2; sub A brevenosp hook by Abrevehookabove; sub a brevehookcomb.cn by abrevehookabove; sub A brevetildecomb.cn by Abrevetilde; sub a brevetildecomb.cn by abrevetilde; sub E dotbelow by Edotbelow; sub e dotbelow by edotbelow; sub E hook by Ehookabove; sub e hook by ehookabove; sub E tildecomb by Etilde; sub e tildecomb by etilde; #sub E circumflexacutecomb.cn by uni1EBE; sub E circumflexnosp acutecomb by Ecircumflexacute; sub e circumflexacutecomb.cn by ecircumflexacute; #sub E circumflexgravecomb.cn by uni1EC0; sub E circumflexnosp gravecomb by Ecircumflexgrave; sub e circumflexgravecomb.cn by ecircumflexgrave; #sub E circumflexhookcomb.cn by uni1EC2; sub E circumflexnosp hook by Ecircumflexhookabove; sub e circumflexhookcomb.cn by ecircumflexhookabove; #sub E circumflextildecomb.cn by uni1EC4; sub E circumflexnosp tildecomb by Ecircumflextilde; sub e circumflextildecomb.cn by ecircumflextilde; sub I hook by Ihookabove; sub idotless hook by ihookabove; sub I dotbelow by Idotbelow; sub i dotbelow by idotbelow; sub O dotbelow by Odotbelow; sub o dotbelow by odotbelow; sub O hook by Ohookabove; sub o hook by ohookabove; #sub O circumflexacutecomb.cn by uni1ED0; sub O circumflexnosp acutecomb by Ocircumflexacute; sub o circumflexacutecomb.cn by ocircumflexacute; #sub O circumflexgravecomb.cn by uni1ED2; sub O circumflexnosp gravecomb by Ocircumflexgrave; sub o circumflexgravecomb.cn by ocircumflexgrave; #sub O circumflexhookcomb.cn by uni1ED4; sub O circumflexnosp hook by Ocircumflexhookabove; sub o circumflexhookcomb.cn by ocircumflexhookabove; #sub O circumflextildecomb.cn by uni1ED6; sub O circumflexnosp tildecomb by Ocircumflextilde; sub o circumflextildecomb.cn by ocircumflextilde; sub Ohorn acutecomb by Ohornacute; sub ohorn acutecomb by ohornacute; sub Ohorn gravecomb by Ohorngrave; sub ohorn gravecomb by ohorngrave; sub Ohorn hook by Ohornhookabove; sub ohorn hook by ohornhookabove; sub Ohorn tildecomb by Ohorntilde; sub ohorn tildecomb by ohorntilde; sub Ohorn dotbelow by Ohorndotbelow; sub ohorn dotbelow by ohorndotbelow; sub U dotbelow by Udotbelow; sub u dotbelow by udotbelow; sub U hook by Uhookabove; sub u hook by uhookabove; sub Uhorn acutecomb by Uhornacute; sub uhorn acutecomb by uhornacute; sub Uhorn gravecomb by Uhorngrave; sub uhorn gravecomb by uhorngrave; sub Uhorn hook by Uhornhookabove; sub uhorn hook by uhornhookabove; sub Uhorn tildecomb by Uhorntilde; sub uhorn tildecomb by uhorntilde; sub Uhorn dotbelow by Uhorndotbelow; sub uhorn dotbelow by uhorndotbelow; sub Y dotbelow by Ydotbelow; sub y dotbelow by ydotbelow; sub Y hook by Yhookabove; sub y hook by yhookabove; sub Y tildecomb by Ytilde; sub y tildecomb by ytilde; sub A caroncmb by Acaron; sub a caroncmb by acaron; sub I caroncmb by Icaron; sub idotless caroncmb by icaron; sub O caroncmb by Ocaron; sub o caroncmb by ocaron; sub U caroncmb by Ucaron; sub u caroncmb by ucaron; #sub U dieresismacroncomb.cn by uni01D5; sub U dieresisnosp macroncomb by Udieresismacron; sub u dieresismacroncomb.cn by udieresismacron; #sub U dieresisacutecomb.cn by uni01D7; sub U dieresisnosp acutecomb by Udieresisacute; sub u dieresisacutecomb.cn by udieresisacute; #sub U dieresiscaroncomb.cn by uni01D9; sub U dieresisnosp caroncmb by Udieresiscaron; sub u dieresiscaroncomb.cn by udieresiscaron; #sub U dieresisgravecomb.cn by uni01DB; sub U dieresisnosp gravecomb by Udieresisgrave; sub u dieresisgravecomb.cn by udieresisgrave; #sub A dieresismacroncomb.cn by uni01DE; sub A dieresisnosp macroncomb by Adieresismacron; sub a dieresismacroncomb.cn by adieresismacron; #sub A dotmacroncomb.cn by uni01E0; sub A dotnosp macroncomb by Adotmacron; sub a dotmacroncomb.cn by adotmacron; sub AE macroncomb by AEmacron; sub ae macroncomb by aemacron; sub G caroncmb by Gcaron; sub g caroncmb by gcaron; sub K caroncmb by Kcaron; sub k caroncmb by kcaron; sub O ogoneknosp by Oogonek; sub o ogoneknosp by oogonek; sub G acutecomb by Gacute; sub g acutecomb by gacute; sub N gravecomb by uni01F8; sub n gravecomb by uni01F9; sub A dblgravecmb by Adblgrave; sub a dblgravecmb by adblgrave; sub A breveinvnosp by Ainvertedbreve; sub a breveinvnosp by ainvertedbreve; sub E dblgravecmb by Edblgrave; sub e dblgravecmb by edblgrave; sub E breveinvnosp by Einvertedbreve; sub e breveinvnosp by einvertedbreve; sub I dblgravecmb by Idblgrave; sub idotless dblgravecmb by idblgrave; sub I breveinvnosp by Iinvertedbreve; sub idotless breveinvnosp by iinvertedbreve; sub O dblgravecmb by Odblgrave; sub o dblgravecmb by odblgrave; sub O breveinvnosp by Oinvertedbreve; sub o breveinvnosp by oinvertedbreve; sub R dblgravecmb by Rdblgrave; sub r dblgravecmb by rdblgrave; sub R breveinvnosp by Rinvertedbreve; sub r breveinvnosp by rinvertedbreve; sub U dblgravecmb by Udblgrave; sub u dblgravecmb by udblgrave; sub U breveinvnosp by Uinvertedbreve; sub u breveinvnosp by uinvertedbreve; sub H caroncmb by uni021E; sub h caroncmb by uni021F; sub A dotnosp by uni0226; sub a dotnosp by uni0227; sub E cedillanosp by uni0228; sub e cedillanosp by uni0229; #sub O dieresismacroncomb.cn by uni022A; sub O dieresisnosp macroncomb by uni022A; sub o dieresismacroncomb.cn by uni022B; #sub O tildemacroncomb.cn by uni022C; sub O tildecomb macroncomb by uni022C; sub o tildemacroncomb.cn by uni022D; sub O dotnosp by uni022E; sub o dotnosp by uni022F; #sub O dotmacroncomb.cn by uni0230; sub O dotnosp macroncomb by uni0230; sub o dotmacroncomb.cn by uni0231; sub Y macroncomb by uni0232; sub y macroncomb by uni0233; sub Upsilonhooksymbol acutecomb by Upsilonacutehooksymbolgreek; sub Upsilonhooksymbol dieresisnosp by Upsilondieresishooksymbolgreek; sub B dotnosp by Bdotaccent; sub b dotnosp by bdotaccent; sub B dotbelow by Bdotbelow; sub b dotbelow by bdotbelow; sub B macronsubnosp by Blinebelow; sub b macronsubnosp by blinebelow; sub D dotnosp by Ddotaccent; sub d dotnosp by ddotaccent; sub D dotbelow by Ddotbelow; sub d dotbelow by ddotbelow; sub D macronsubnosp by Dlinebelow; sub d macronsubnosp by dlinebelow; sub D commaaccent by Dcedilla; sub d commaaccent by dcedilla; sub D circumflexsubnosp by Dcircumflexbelow; sub d circumflexsubnosp by dcircumflexbelow; #sub E macrongravecomb.cn by uni1E14; sub E macroncomb gravecomb by Emacrongrave; sub e macrongravecomb.cn by emacrongrave; #sub E macronacutecomb.cn by uni1E16; sub E macroncomb acutecomb by Emacronacute; sub e macronacutecomb.cn by emacronacute; sub E circumflexsubnosp by Ecircumflexbelow; sub e circumflexsubnosp by ecircumflexbelow; sub E tildesubnosp by Etildebelow; sub e tildesubnosp by etildebelow; sub F dotnosp by Fdotaccent; sub f dotnosp by fdotaccent; sub G macroncomb by Gmacron; sub g macroncomb by gmacron; sub H dotnosp by Hdotaccent; sub h dotnosp by hdotaccent; sub H dotbelow by Hdotbelow; sub h dotbelow by hdotbelow; sub H dieresisnosp by Hdieresis; sub h dieresisnosp by hdieresis; sub H brevesubnosp by Hbrevebelow; sub h brevesubnosp by hbrevebelow; sub I tildesubnosp by Itildebelow; sub i tildesubnosp by itildebelow; #sub I dieresisacutecomb.cn by Idieresisacute; sub I dieresisnosp acutecomb by Idieresisacute; sub idotless dieresisacutecomb.cn by idieresisacute; sub K acutecomb by Kacute; sub k acutecomb by kacute; sub K dotbelow by Kdotbelow; sub k dotbelow by kdotbelow; sub K macronsubnosp by Klinebelow; sub k macronsubnosp by klinebelow; sub L dotbelow by Ldotbelow; sub l dotbelow by ldotbelow; sub L macronsubnosp by Llinebelow; sub l macronsubnosp by llinebelow; sub L circumflexsubnosp by Lcircumflexbelow; sub l circumflexsubnosp by lcircumflexbelow; sub M acutecomb by Macute; sub m acutecomb by macute; sub M dotnosp by Mdotaccent; sub m dotnosp by mdotaccent; sub M dotbelow by Mdotbelow; sub m dotbelow by mdotbelow; sub N dotnosp by Ndotaccent; sub n dotnosp by ndotaccent; sub N dotbelow by Ndotbelow; sub n dotbelow by ndotbelow; sub N macronsubnosp by Nlinebelow; sub n macronsubnosp by nlinebelow; sub N circumflexsubnosp by Ncircumflexbelow; sub n circumflexsubnosp by ncircumflexbelow; #sub O tildeacutecomb.cn by uni1E4C; sub O tildecomb acutecomb by Otildeacute; sub o tildeacutecomb by otildeacute; #sub O tildedieresiscomb.cn by uni1E4E; sub O tildecomb dieresisnosp by Otildedieresis; sub o tildedieresiscomb.cn by otildedieresis; #sub O macrongravecomb.cn by uni1E50; sub O macroncomb gravecomb by Omacrongrave; sub o macrongravecomb.cn by omacrongrave; #sub O macronacutecomb.cn by uni1E52; sub O macroncomb acutecomb by Omacronacute; sub o macronacutecomb.cn by omacronacute; sub P acutecomb by Pacute; sub p acutecomb by pacute; sub P dotnosp by Pdotaccent; sub p dotnosp by pdotaccent; sub R dotnosp by Rdotaccent; sub r dotnosp by rdotaccent; sub R dotbelow by Rdotbelow; sub r dotbelow by rdotbelow; sub R macronsubnosp by Rlinebelow; sub r macronsubnosp by rlinebelow; sub S dotnosp by Sdotaccent; sub s dotnosp by sdotaccent; sub S dotbelow by Sdotbelow; sub s dotbelow by sdotbelow; #sub S acutedotcomb.cn by uni1E64; sub S acutecomb dotnosp by Sacutedotaccent; sub s acutedotcomb.cn by sacutedotaccent; #sub S carondotcomb.cn by uni1E66; sub S caroncmb dotnosp by Scarondotaccent; sub s carondotcomb.cn by scarondotaccent; sub T dotnosp by Tdotaccent; sub t dotnosp by tdotaccent; sub T dotbelow by Tdotbelow; sub t dotbelow by tdotbelow; sub T macronsubnosp by Tlinebelow; sub t macronsubnosp by tlinebelow; sub T circumflexsubnosp by Tcircumflexbelow; sub t circumflexsubnosp by tcircumflexbelow; sub U dotdblsubnosp by Udieresisbelow; sub u dotdblsubnosp by udieresisbelow; sub U tildesubnosp by Utildebelow; sub u tildesubnosp by utildebelow; sub U circumflexsubnosp by Ucircumflexbelow; sub u circumflexsubnosp by ucircumflexbelow; #sub U tildeacutecomb.cn by uni1E78; sub U tildecomb acutecomb by Utildeacute; sub u tildeacutecomb by utildeacute; #sub U macrondieresiscomb.cn by uni1E7A; sub U macroncomb dieresisnosp by Umacrondieresis; sub u macrondieresiscomb.cn by umacrondieresis; sub V tildecomb by Vtilde; sub v tildecomb by vtilde; sub V dotbelow by Vdotbelow; sub v dotbelow by vdotbelow; sub W dotnosp by Wdotaccent; sub w dotnosp by wdotaccent; sub W dotbelow by Wdotbelow; sub w dotbelow by wdotbelow; sub X dotnosp by Xdotaccent; sub x dotnosp by xdotaccent; sub X dieresisnosp by Xdieresis; sub x dieresisnosp by xdieresis; sub Y dotnosp by Ydotaccent; sub y dotnosp by ydotaccent; sub Z circumflexnosp by Zcircumflex; sub z circumflexnosp by zcircumflex; sub Z dotbelow by Zdotbelow; sub z dotbelow by zdotbelow; sub Z macronsubnosp by Zlinebelow; sub z macronsubnosp by zlinebelow; sub h macronsubnosp by hlinebelow; sub t dieresisnosp by tdieresis; sub w ringnosp by wring; sub y ringnosp by yring; sub longs dotnosp by slongdotaccent; sub A ringsubnosp by Aringbelow; sub a ringsubnosp by aringbelow; } ccmp03; } ccmp; feature aalt { # automatic feature locl; feature frac; feature numr; feature dnom; feature case; feature calt; feature tnum; feature pnum; feature zero; feature sups; feature subs; feature ordn; feature salt; feature ss01; feature ss02; feature cv01; feature cv02; feature cv03; feature cv04; feature cv05; feature cv06; feature cv07; feature cv08; feature cv09; } aalt; feature locl { # automatic script latn; language CAT; sub l' periodcentered' l by ldot; sub L' periodcentered' L by Ldot; language ROM; sub Scedilla by Scommaaccent; sub scedilla by scommaaccent; language MOL; sub Scedilla by Scommaaccent; sub scedilla by scommaaccent; } locl; feature frac { @figures = [ zero one two three four five six seven eight nine ]; @numerators = [ zero.frac one.frac two.frac three.frac four.frac five.frac six.frac seven.frac eight.frac nine.frac ]; @numerators2 = [ zero.numr one.numr two.numr three.numr four.numr five.numr six.numr seven.numr eight.numr nine.numr ]; @denominators = [ zero.dnomf one.dnomf two.dnomf three.dnomf four.dnomf five.dnomf six.dnomf seven.dnomf eight.dnomf nine.dnomf ]; @denominators2 = [ zero.dnom one.dnom two.dnom three.dnom four.dnom five.dnom six.dnom seven.dnom eight.dnom nine.dnom ]; @subscripts = [ zero.subs one.subs two.subs three.subs four.subs five.subs six.subs seven.subs eight.subs nine.subs ]; lookup FractionBar { ignore sub slash @figures @figures @figures @figures @figures @figures @figures @figures @figures @figures slash'; ignore sub slash' @figures @figures @figures @figures @figures @figures @figures @figures @figures @figures slash; ignore sub slash @figures @figures @figures @figures @figures @figures @figures @figures @figures slash'; ignore sub slash' @figures @figures @figures @figures @figures @figures @figures @figures @figures slash; ignore sub slash @figures @figures @figures @figures @figures @figures @figures @figures slash'; ignore sub slash' @figures @figures @figures @figures @figures @figures @figures @figures slash; ignore sub slash @figures @figures @figures @figures @figures @figures @figures slash'; ignore sub slash' @figures @figures @figures @figures @figures @figures @figures slash; ignore sub slash @figures @figures @figures @figures @figures @figures slash'; ignore sub slash' @figures @figures @figures @figures @figures @figures slash; ignore sub slash @figures @figures @figures @figures @figures slash'; ignore sub slash' @figures @figures @figures @figures @figures slash; ignore sub slash @figures @figures @figures @figures slash'; ignore sub slash' @figures @figures @figures @figures slash; ignore sub slash @figures @figures @figures slash'; ignore sub slash' @figures @figures @figures slash; ignore sub slash @figures @figures slash'; ignore sub slash' @figures @figures slash; ignore sub slash @figures slash'; ignore sub slash' @figures slash; sub @figures slash' @figures by fraction; } FractionBar; lookup Numerator1 { sub @figures' fraction by @numerators; } Numerator1; lookup Numerator2 { sub @figures' [@numerators @numerators2] fraction by @numerators; } Numerator2; lookup Numerator3 { sub @figures' [@numerators @numerators2] [@numerators @numerators2] fraction by @numerators; } Numerator3; lookup Numerator4 { sub @figures' [@numerators @numerators2] [@numerators @numerators2] [@numerators @numerators2] fraction by @numerators; } Numerator4; lookup Numerator5 { sub @figures' [@numerators @numerators2] [@numerators @numerators2] [@numerators @numerators2] [@numerators @numerators2] fraction by @numerators; } Numerator5; lookup Numerator6 { sub @figures' [@numerators @numerators2] [@numerators @numerators2] [@numerators @numerators2] [@numerators @numerators2] [@numerators @numerators2] fraction by @numerators; } Numerator6; lookup Numerator7 { sub @figures' [@numerators @numerators2] [@numerators @numerators2] [@numerators @numerators2] [@numerators @numerators2] [@numerators @numerators2] [@numerators @numerators2] fraction by @numerators; } Numerator7; lookup Numerator8 { sub @figures' [@numerators @numerators2] [@numerators @numerators2] [@numerators @numerators2] [@numerators @numerators2] [@numerators @numerators2] [@numerators @numerators2] [@numerators @numerators2] fraction by @numerators; } Numerator8; lookup Numerator9 { sub @figures' [@numerators @numerators2] [@numerators @numerators2] [@numerators @numerators2] [@numerators @numerators2] [@numerators @numerators2] [@numerators @numerators2] [@numerators @numerators2] [@numerators @numerators2] fraction by @numerators; } Numerator9; lookup Numerator10 { sub @figures' [@numerators @numerators2] [@numerators @numerators2] [@numerators @numerators2] [@numerators @numerators2] [@numerators @numerators2] [@numerators @numerators2] [@numerators @numerators2] [@numerators @numerators2] [@numerators @numerators2] fraction by @numerators; } Numerator10; lookup Denominator { sub [fraction @denominators @denominators2 onefraction] @figures' by @denominators; sub [fraction @denominators @denominators2 onefraction] @subscripts' by @denominators; } Denominator; sub @figures space' [@numerators @numerators2] by thinspace; } frac; feature numr { # automatic sub i by i.numr; sub n by n.numr; sub zero by zero.numr; sub one by one.numr; sub two by two.numr; sub three by three.numr; sub four by four.numr; sub five by five.numr; sub six by six.numr; sub seven by seven.numr; sub eight by eight.numr; sub nine by nine.numr; sub plus by plus.numr; sub minus by minus.numr; sub equal by equal.numr; sub parenleft by parenleft.numr; sub parenright by parenright.numr; } numr; feature dnom { # automatic sub zero by zero.dnom; sub one by one.dnom; sub two by two.dnom; sub three by three.dnom; sub four by four.dnom; sub five by five.dnom; sub six by six.dnom; sub seven by seven.dnom; sub eight by eight.dnom; sub nine by nine.dnom; sub plus by plus.dnom; sub minus by minus.dnom; sub equal by equal.dnom; sub parenleft by parenleft.dnom; sub parenright by parenright.dnom; } dnom; feature case { # automatic sub parenleft by parenleft.case; sub parenright by parenright.case; sub bracketleft by bracketleft.case; sub bracketright by bracketright.case; sub braceleft by braceleft.case; sub braceright by braceright.case; sub at by at.case; sub hyphen by hyphen.case; sub endash by endash.case; sub figuredash by figuredash.case; sub emdash by emdash.case; sub bullet by bullet.case; sub openbullet by openbullet.case; sub colon by colon.case; sub less by less.case; sub greater by greater.case; sub lessequal by lessequal.case; sub greaterequal by greaterequal.case; sub equal by equal.case; sub notequal by notequal.case; sub plus by plus.case; sub minus by minus.case; sub multiply by multiply.case; sub divide by divide.case; sub plusminus by plusminus.case; sub approxequal by approxequal.case; sub asciitilde by asciitilde.case; sub asterisk by asterisk.case; sub leftArrow by leftArrow.case; sub leftLongArrow by leftLongArrow.case; sub rightArrow by rightArrow.case; sub rightLongArrow by rightLongArrow.case; sub leftRightArrow by leftRightArrow.case; sub leftRightLongArrow by leftRightLongArrow.case; } case; feature calt { # numbers @NUM = [ zero one two twostroke three four five Tonefive six seven eight nine zero.slash one.ss01 three.1 four.ss01 six.ss01 nine.ss01 zero.tf one.tf two.tf three.tf four.tf five.tf six.tf seven.tf eight.tf nine.tf zero.tf.slash one.tf.ss01 three.1.tf four.tf.ss01 six.tf.ss01 nine.tf.ss01 ]; # cap-height tall glyphs @UC = [ @Uppercase @NUM # punctuation ampersand exclam exclamdbl exclamdown uni2049 question uni2047 uni2048 questiondown interrobang invertedinterrobang bar paragraph # currency dollar cent yen sterling florin uni20BA uni20BD euro uni20B9 tenge peseta peso kip won lira austral hryvnia naira guarani coloncurrency cedi cruzeiro tugrik uni20AF mill afii57636 manat rupee lari franc ]; # x-height tall glyphs @LC = [ @Lowercase ]; @CASE_DELIM_L = [ braceleft braceright bracketleft bracketright parenleft parenright ]; @CASE_NONDELIM_L = [ asterisk at multiply minus plus plusminus divide equal notequal endash figuredash emdash hyphen bullet openbullet leftArrow leftLongArrow rightArrow rightLongArrow leftRightArrow leftRightLongArrow colon approxequal asciitilde less greater lessequal greaterequal ]; @CASE_L = [ @CASE_DELIM_L @CASE_NONDELIM_L ]; @CASE_DELIM_R = [ braceleft.case braceright.case bracketleft.case bracketright.case parenleft.case parenright.case ]; @CASE_NONDELIM_R = [ asterisk.case at.case multiply.case minus.case plus.case plusminus.case divide.case equal.case notequal.case endash.case figuredash.case emdash.case hyphen.case bullet.case openbullet.case leftArrow.case leftLongArrow.case rightArrow.case rightLongArrow.case leftRightArrow.case leftRightLongArrow.case colon.case approxequal.case asciitilde.case less.case greater.case lessequal.case greaterequal.case ]; @CASE_R = [ @CASE_DELIM_R @CASE_NONDELIM_R ]; # --------------------------------------------------- # ignore <-NUM e.g. "<-3" ignore sub less [ hyphen hyphen.case endash endash.case emdash emdash.case ] @NUM; # arrows: <-> sub less hyphen greater by leftRightArrow; sub less hyphen.case greater by leftRightArrow.case; sub less [endash emdash] greater by leftRightLongArrow; sub less [endash.case emdash.case] greater by leftRightLongArrow.case; sub less hyphen hyphen greater by leftRightLongArrow; sub less hyphen.case hyphen.case greater by leftRightLongArrow.case; # arrows: -> sub hyphen greater by rightArrow; sub hyphen.case greater by rightArrow.case; sub [endash emdash] greater by rightLongArrow; sub [endash.case emdash.case] greater by rightLongArrow.case; # arrows: <- sub less hyphen by leftArrow; sub less hyphen.case by leftArrow.case; sub less [endash emdash] by leftLongArrow; sub less [endash.case emdash.case] by leftLongArrow.case; # :-) sub colon' [hyphen hyphen.case endash endash.case emdash emdash.case] [parenright parenright.case] by colon.case; sub [colon colon.case] hyphen' [parenright parenright.case] by hyphen.case; sub [colon colon.case] endash' [parenright parenright.case] by endash.case; sub [colon colon.case] emdash' [parenright parenright.case] by emdash.case; sub [colon colon.case] [hyphen hyphen.case endash endash.case emdash emdash.case] parenright' by parenright.case; # A foo' -> A foo.case sub [ @UC @CASE_R ] @CASE_L' by @CASE_R; ignore sub @LC @CASE_NONDELIM_L @UC; # e.g. m multiply M # foo' foo foo foo foo A -> foo.case foo foo foo foo A # foo' foo foo foo A -> foo.case foo foo foo A # foo' foo foo A -> foo.case foo foo A # foo' foo A -> foo.case foo A # foo' A -> foo.case A # Note: since we look quite far back, sequences like x{}[]M will case both # the square brackets next to M _and_ the curly braces to become .case sub @CASE_L' @CASE_L @CASE_L @CASE_L @CASE_L [ @CASE_R @UC ] by @CASE_R; sub @CASE_L' @CASE_L @CASE_L @CASE_L [ @CASE_R @UC ] by @CASE_R; sub @CASE_L' @CASE_L @CASE_L [ @CASE_R @UC ] by @CASE_R; sub @CASE_L' @CASE_L [ @CASE_R @UC ] by @CASE_R; sub @CASE_L' [ @UC @CASE_R ] by @CASE_R; } calt; feature tnum { # automatic sub zero by zero.tf; sub one by one.tf; sub two by two.tf; sub three by three.tf; sub four by four.tf; sub five by five.tf; sub six by six.tf; sub seven by seven.tf; sub eight by eight.tf; sub nine by nine.tf; sub three.1 by three.1.tf; sub comma by comma.tf; sub period by period.tf; sub colon by colon.tf; sub semicolon by semicolon.tf; } tnum; feature pnum { # automatic sub zero.tf by zero; sub one.tf by one; sub two.tf by two; sub three.tf by three; sub four.tf by four; sub five.tf by five; sub six.tf by six; sub seven.tf by seven; sub eight.tf by eight; sub nine.tf by nine; sub three.1.tf by three.1; sub comma.tf by comma; sub period.tf by period; sub colon.tf by colon; sub semicolon.tf by semicolon; } pnum; feature zero { sub zero by zero.slash; sub zero.tf by zero.tf.slash; } zero; feature cpsp { # notes: # The first two numbers (16 and 0) are the x and y amounts by which a glyph is moved. The second pair of numbers (32 and 0) is the advance, meaning that the cursor will be placed 32 units further in this case. Effectively, this adds 16 units on each side (or 32 between all uppercase letters) pos @Uppercase <16 0 32 0>; } cpsp; feature dlig { sub exclam question by interrobang; sub question exclam by interrobang; sub exclamdown questiondown by invertedinterrobang; sub questiondown exclamdown by invertedinterrobang; } dlig; feature sups { sub a by a.sups; sub b by b.sups; sub c by c.sups; sub d by d.sups; sub e by e.sups; sub f by f.sups; sub g by g.sups; sub h by h.sups; sub i by i.sups; sub j by j.sups; sub k by k.sups; sub l by l.sups; sub m by m.sups; sub n by n.sups; sub o by o.sups; sub p by p.sups; sub q by q.sups; sub r by r.sups; sub s by s.sups; sub t by t.sups; sub u by u.sups; sub v by v.sups; sub w by w.sups; sub x by x.sups; sub y by y.sups; sub z by z.sups; sub [zero zero.slash] by zero.sups; sub [one one.ss01] by one.sups; sub two by two.sups; sub three by three.sups; sub [four four.ss01] by four.sups; sub five by five.sups; sub [six six.ss01] by six.sups; sub seven by seven.sups; sub eight by eight.sups; sub [nine nine.ss01] by nine.sups; sub [parenleft parenleft.case] by parenleft.sups; sub [parenright parenright.case] by parenright.sups; sub [plus plus.case] by plus.sups; sub [minus minus.case hyphen hyphen.case] by minus.sups; sub [equal equal.case] by equal.sups; } sups; feature subs { sub a by a.subs; sub b by b.subs; sub c by c.subs; sub d by d.subs; sub e by e.subs; sub f by f.subs; sub g by g.subs; sub h by h.subs; sub i by i.subs; sub j by j.subs; sub k by k.subs; sub l by l.subs; sub m by m.subs; sub n by n.subs; sub o by o.subs; sub p by p.subs; sub q by q.subs; sub r by r.subs; sub s by s.subs; sub t by t.subs; sub u by u.subs; sub v by v.subs; sub w by w.subs; sub x by x.subs; sub y by y.subs; sub z by z.subs; sub [zero zero.slash] by zero.subs; sub [one one.ss01] by one.subs; sub two by two.subs; sub three by three.subs; sub [four four.ss01] by four.subs; sub five by five.subs; sub [six six.ss01] by six.subs; sub seven by seven.subs; sub eight by eight.subs; sub [nine nine.ss01] by nine.subs; sub [parenleft parenleft.case] by parenleft.subs; sub [parenright parenright.case] by parenright.subs; sub [plus plus.case] by plus.subs; sub [minus minus.case hyphen hyphen.case] by minus.subs; sub [equal equal.case] by equal.subs; } subs; feature ordn { # automatic sub [zero one two three four five six seven eight nine] [A a]' by ordfeminine; sub [zero one two three four five six seven eight nine] [O o]' by ordmasculine; sub N o period by numero; } ordn; feature salt { sub one by one.ss01; sub one.tf by one.tf.ss01; sub three by three.1; sub three.tf by three.1.tf; sub four by four.ss01; sub four.tf by four.tf.ss01; sub six by six.ss01; sub six.tf by six.tf.ss01; sub nine by nine.ss01; sub nine.tf by nine.tf.ss01; sub l by l.ss02; sub lslash by lslash.ss02; sub lbar by lbar.ss02; sub lmidtilde by lmidtilde.ss02; sub lbelt by lbelt.ss02; sub ldot by ldot.ss02; sub lacute by lacute.ss02; sub lcommaaccent by lcommaaccent.ss02; sub lcaron by lcaron.ss02; sub ldotbelow by ldotbelow.ss02; sub ldotbelowmacron by ldotbelowmacron.ss02; sub llinebelow by llinebelow.ss02; sub lcircumflexbelow by lcircumflexbelow.ss02; sub r by r.1; sub rrthook by rrthook.1; sub uni024D by uni024D.1; sub rdescend by rdescend.1; sub racute by racute.1; sub rcommaaccent by rcommaaccent.1; sub rcaron by rcaron.1; sub rdblgrave by rdblgrave.1; sub rinvertedbreve by rinvertedbreve.1; sub rdotaccent by rdotaccent.1; sub rdotbelow by rdotbelow.1; sub rdotbelowmacron by rdotbelowmacron.1; sub rlinebelow by rlinebelow.1; } salt; feature ss01 { # notes: # Name: Alternate digits sub one by one.ss01; sub one.tf by one.tf.ss01; sub three by three.1; sub three.tf by three.1.tf; sub four by four.ss01; sub four.tf by four.tf.ss01; sub six by six.ss01; sub six.tf by six.tf.ss01; sub nine by nine.ss01; sub nine.tf by nine.tf.ss01; } ss01; feature ss02 { # notes: # Name: Disambiguation sub l by l.ss02; sub lslash by lslash.ss02; sub lbar by lbar.ss02; sub lmidtilde by lmidtilde.ss02; sub lbelt by lbelt.ss02; sub ldot by ldot.ss02; sub lacute by lacute.ss02; sub lcommaaccent by lcommaaccent.ss02; sub lcaron by lcaron.ss02; sub ldotbelow by ldotbelow.ss02; sub ldotbelowmacron by ldotbelowmacron.ss02; sub llinebelow by llinebelow.ss02; sub lcircumflexbelow by lcircumflexbelow.ss02; sub zero by zero.slash; sub zero.tf by zero.tf.slash; sub germandbls by germandbls.1; sub I by I.1; sub Idieresis by Idieresis.1; sub Idieresisacute by Idieresisacute.1; sub Istroke by Istroke.1; sub Itildebelow by Itildebelow.1; sub Igrave by Igrave.1; sub Iacute by Iacute.1; sub Icircumflex by Icircumflex.1; sub Itilde by Itilde.1; sub Imacron by Imacron.1; sub Ibreve by Ibreve.1; sub Iogonek by Iogonek.1; sub Idotaccent by Idotaccent.1; sub Icaron by Icaron.1; sub Idblgrave by Idblgrave.1; sub Iinvertedbreve by Iinvertedbreve.1; sub Ihookabove by Ihookabove.1; sub Idotbelow by Idotbelow.1; sub uni1F38 by uni1F38.1; sub uni1F39 by uni1F39.1; sub uni1F3A by uni1F3A.1; sub uni1F3B by uni1F3B.1; sub uni1F3C by uni1F3C.1; sub uni1F3D by uni1F3D.1; sub uni1F3E by uni1F3E.1; sub uni1F3F by uni1F3F.1; sub uni1FD8 by uni1FD8.1; sub uni1FD9 by uni1FD9.1; sub uni1FDA by uni1FDA.1; sub uni1FDB by uni1FDB.1; sub afii10055 by afii10055.1; sub afii10056 by afii10056.1; } ss02; feature cv01 { # notes: # Name: Alternate one sub one by one.ss01; sub one.tf by one.tf.ss01; } cv01; feature cv02 { # notes: # Name: Open four sub four by four.ss01; sub four.tf by four.tf.ss01; } cv02; feature cv03 { # notes: # Name: Open six sub six by six.ss01; sub six.tf by six.tf.ss01; } cv03; feature cv04 { # notes: # Name: Open nine sub nine by nine.ss01; sub nine.tf by nine.tf.ss01; } cv04; feature cv05 { # notes: # Name: Lower case L with tail sub l by l.ss02; sub lslash by lslash.ss02; sub lbar by lbar.ss02; sub lmidtilde by lmidtilde.ss02; sub lbelt by lbelt.ss02; sub ldot by ldot.ss02; sub lacute by lacute.ss02; sub lcommaaccent by lcommaaccent.ss02; sub lcaron by lcaron.ss02; sub ldotbelow by ldotbelow.ss02; sub ldotbelowmacron by ldotbelowmacron.ss02; sub llinebelow by llinebelow.ss02; sub lcircumflexbelow by lcircumflexbelow.ss02; } cv05; feature cv06 { # notes: # Name: Lower case R with straight tail sub r by r.1; sub rrthook by rrthook.1; sub uni024D by uni024D.1; sub rdescend by rdescend.1; sub racute by racute.1; sub rcommaaccent by rcommaaccent.1; sub rcaron by rcaron.1; sub rdblgrave by rdblgrave.1; sub rinvertedbreve by rinvertedbreve.1; sub rdotaccent by rdotaccent.1; sub rdotbelow by rdotbelow.1; sub rdotbelowmacron by rdotbelowmacron.1; sub rlinebelow by rlinebelow.1; } cv06; feature cv07 { # notes: # Name: Alternate German double s sub germandbls by germandbls.1; } cv07; feature cv08 { # notes: # Name: Upper case i with serif sub I by I.1; sub Idieresis by Idieresis.1; sub Idieresisacute by Idieresisacute.1; sub Istroke by Istroke.1; sub Itildebelow by Itildebelow.1; sub Igrave by Igrave.1; sub Iacute by Iacute.1; sub Icircumflex by Icircumflex.1; sub Itilde by Itilde.1; sub Imacron by Imacron.1; sub Ibreve by Ibreve.1; sub Iogonek by Iogonek.1; sub Idotaccent by Idotaccent.1; sub Icaron by Icaron.1; sub Idblgrave by Idblgrave.1; sub Iinvertedbreve by Iinvertedbreve.1; sub Ihookabove by Ihookabove.1; sub Idotbelow by Idotbelow.1; sub uni1F38 by uni1F38.1; sub uni1F39 by uni1F39.1; sub uni1F3A by uni1F3A.1; sub uni1F3B by uni1F3B.1; sub uni1F3C by uni1F3C.1; sub uni1F3D by uni1F3D.1; sub uni1F3E by uni1F3E.1; sub uni1F3F by uni1F3F.1; sub uni1FD8 by uni1FD8.1; sub uni1FD9 by uni1FD9.1; sub uni1FDA by uni1FDA.1; sub uni1FDB by uni1FDB.1; sub afii10055 by afii10055.1; sub afii10056 by afii10056.1; } cv08; feature cv09 { # notes: # Name: Flat top three sub three by three.1; sub three.tf by three.1.tf; } cv09; table GDEF { # automatic GlyphClassDef [A AE B C D E F G H I I.1 J K L M N afii10026 O P R S T U V W X Y Z a ae b c d e eturn _part.f_base f g h idotless uni012F.ccmp jdotless jcrosstail.ccmp k l l.ss02 m n o p r r.1 s _part.t_base u v w x y z Gamma Pi Omega Upsilonhooksymbol afii10024 afii10025 Kacyr afii10029 afii10037 afii10041 afii10045 afii10046 afii10047 Cheabkhasiancyrillic Schwacyrillic afii10148 alpha gamma epsilon eta iota rho upsilon omega gecyrillic zhecyrillic zecyrillic iicyrillic kacyrillic elcyrillic emcyrillic encyrillic pecyrillic tecyrillic checyrillic softsigncyrillic yericyrillic ereversedcyrillic dzeabkhasiancyrillic izhitsacyrillic two two.sups two.dnomf fraction acute hungarumlaut grave dieresis tilde breve acutedotcomb.lc tildedieresiscomb.lc carondotcomb.lc commaturnsupnosp glottalstoprevinv dieresisgravecomb.lc tildemacroncomb.lc macrondieresiscomb.lc dieresiscaroncomb.lc ascript Ezh esh], # Base , # Liga [commaaccent acutecomb gravecomb dblgravecmb macroncomb caroncmb tildecomb uni0346 uni1DD8 uni1DD9 uni1DD2 uni1DD3 uni1DD0 uni1DD1 uni1DD4 uni1DD5 uni1DDB uni1DDC uni1DDF uni1DDD uni1DDE uni2DFF uni036A uni036B uni036C uni036D uni036E uni036F tildedoublecmb breveinverteddoublecmb uni0362 uni0363 uni0364 uni0365 uni0366 uni0367 uni0368 uni0369 uni0359 uni0358 uni0355 uni0354 uni0357 uni0356 uni0351 uni0350 uni0353 uni0352 uni035E uni035F uni035C uni035B uniA69F uni1DD6 uni1DD7 uni034B uni034C uni034A uni034F uni034D uni034E uni0348 uni0349 perispomenigreekcmb koroniscmb uni0347 uni1DC6 uni1DC4 macrongravecomb.lc macronacutecomb.lc uni1DCF uni1DCE uni1DCD uni1DCC uni1DCB uni1DCA uni1DC9 uni1DC8 uni1DC7 uni1DC5 uni1DC3 uni1DC2 uni1DC1 uni1DC0 uni1DE9 uni035D uni035A uni1DE2 uni20DC uni20DB uni20E8 uni1DDA titlocyrilliccmb dasiapneumatacyrilliccmb palatalizationcyrilliccmb uni0487 psilipneumatacyrilliccmb uni20F0 uni1DF0 uni1DF1 uni1DF2 uni1DF3 uni1DF4 uni1DF5 caronbelowcmb uni1DFC uni1DFD uni1DFE uni1DFF uniFE29 uniFE22 uniFE23 uniFE24 uniFE25 uniFE26 uniFE2A uniFE2B uniFE2C uniFE2D commaabovecmb commaaboverightcmb uni1DE8 uni1DEA uni1DEB uni1DEC uni1DED uni1DEE uni1DEF macronacutecomb.cn macrongravecomb.cn uni1DE0 uni1DE1 uni1DE3 uni1DE4 uni1DE5 uni1DE6 uni1DE7], # Mark ; } GDEF;