# DTL default OpenType Layout features file
# Version 2.1 Revision 14 (the version number in the file's name should not be changed, because of related batch files that point to it)
# Supports AFDKO 2.0 and newer
# Changed character naming to AGLFN version 1.5 specs
# Includes Cyrillic and Greek
# Last update: 20 June 2014
# Copyright (c) Dutch Type Library, 2014. All rights reserved


#---------------------------------------

# table OS/2 {

# 	TypoAscender 000;
# 	TypoDescender -000;
# 	Panose 0 0 0 0 0 0 0 0 0 0;
# 	XHeight 000;
# 	CapHeight 000;
# 	FSType 0;

# } OS/2;

#---------------------------------------

# The following is controlled via the 'include (featname.txt)' statement at the end of this file.
# Can be used for specific font-modified features files.

# table name {

# 	nameid 0  "Copyright \00a9 Dutch Type Library, All rights reserved";
# 	nameid 0 1  "Copyright \00a9 Dutch Type Library, All rights reserved";
# 	nameid 1 "<FontFamily Name>";
# 	nameid 1 1 "<FontFamily Name>";
# 	nameid 2 "<Font Subfamily name>";
# 	nameid 2 1 "<Font Subfamily name>";
# 	nameid 3 "<Unique font identifier>";
# 	nameid 3 1 "<Unique font identifier>";
# 	nameid 4 "<Full font name>";
# 	nameid 4 1 "<Full font name>";
# 	nameid 5 "<Version string>";
# 	nameid 5 1 "<Version string>";
# 	nameid 6 "<Postscript name>";
# 	nameid 6 1 "<Postscript name>";
# 	nameid 7 "<typeface name> is a trademark of the Dutch Type Library";
# 	nameid 7 1 "<typeface name> is a trademark of the Dutch Type Library";
# 	nameid 8 "Dutch Type Library";
# 	nameid 8 1 "Dutch Type Library";
# 	nameid 9 "<Designer>";
# 	nameid 9 1 "<Designer>";
# 	nameid 10 "<Description>";
# 	nameid 10 1 "<Description>";
# 	nameid 11 "http://www.dutchtypelibrary.nl";
# 	nameid 11 1 "http://www.dutchtypelibrary.nl";
# 	nameid 12 "<URL Designer>";
# 	nameid 12 1 "<URL Designer>";
# 	nameid 13 "By downloading, unpacking and/or installing DTL Font Software you acknowledge that you have read the DTL End User License Agreement, understand it and that together with the related invoice it is the complete and exclusive statement of your agreement with the Dutch Type Library concerning this purchase of DTL Font Software and that your obligations under this agreement shall inure to the benefit of Dutch Type Library licensors whose rights are licensed under this agreement. No variation of the terms of this agreement will be enforceable against the Dutch Type Library unless the Dutch Type Library gives it expressed consent in writing signed by an officer of the Dutch Type Library. By installing the software you accept your own liability to comply with all terms and conditions of the license. If you do not agree completely with the license, do not download, unpack and/or install DTL Font Software.";
# 	nameid 13 1 "By downloading, unpacking and/or installing DTL Font Software you acknowledge that you have read the DTL End User License Agreement, understand it and that together with the related invoice it is the complete and exclusive statement of your agreement with the Dutch Type Library concerning this purchase of DTL Font Software and that your obligations under this agreement shall inure to the benefit of Dutch Type Library licensors whose rights are licensed under this agreement. No variation of the terms of this agreement will be enforceable against the Dutch Type Library unless the Dutch Type Library gives it expressed consent in writing signed by an officer of the Dutch Type Library. By installing the software you accept your own liability to comply with all terms and conditions of the license. If you do not agree completely with the license, do not download, unpack and/or install DTL Font Software.";
# 	nameid 14 "http://www.dutchtypelibrary.nl";
# 	nameid 14 1 "http://www.dutchtypelibrary.nl";
# 	nameid 16 1 "<Preferred Family>";
# 	nameid 17 1 "<Preferred Subfamily>";
# 	nameid 18 "<Compatible Full font name>";
# 	nameid 19 "The quick brown fox jumps over the lazy dog";
# 	nameid 19 1 "The quick brown fox jumps over the lazy dog";

# } name;

# Note: The original Adobe HOT tool would not take the names in the range of 1-6 
# (the standard range) from a feature file. 
# The modified URW++ HOT tool will take any ID but you will get a warning that 
# the respective name may not be compatible with some names in the 'CFF ' table.

#---------------------------------------

# --- GLYPH GROUPINGS

# --- Latin

@LETTERS_UC = [
A - Z AE Lslash Oslash OE Thorn Eth Aacute Abreve Acircumflex Adieresis
Agrave Amacron Aogonek Aring Atilde Cacute Ccaron Ccedilla Dcaron
Dcroat Eacute Ecaron Ecircumflex Edieresis Edotaccent Egrave Emacron
Eogonek Gbreve Gcommaaccent Iacute Icircumflex Idieresis
Igrave Imacron Iogonek Kcommaaccent Lacute Lcaron
Lcommaaccent Nacute Ncaron Ncommaaccent Ntilde Oacute Ocircumflex
Odieresis Ograve Ohungarumlaut Omacron Otilde Racute Rcaron
Rcommaaccent Sacute Scaron Scedilla Scommaaccent Tcaron Tcommaaccent
Uacute Ucircumflex Udieresis Ugrave Uhungarumlaut Umacron Uogonek
Uring Yacute Ydieresis Zacute Zcaron Zdotaccent
];

@ACCENTS_UC = [
Acute Breve Caron Cedilla Circumflex commaaccent.cap Dieresis Dotaccent
Grave Hungarumlaut Macron Ogonek Ring Tilde
];

@LETTERS_LC = [
a - z ae lslash oslash oe thorn eth aacute abreve acircumflex adieresis
agrave amacron aogonek aring atilde cacute ccaron ccedilla dcaron
dcroat eacute ecaron ecircumflex edieresis edotaccent egrave emacron
eogonek gbreve gcommaaccent iacute icircumflex idieresis
igrave imacron iogonek kcommaaccent lacute lcaron
lcommaaccent nacute ncaron ncommaaccent ntilde oacute ocircumflex
odieresis ograve ohungarumlaut omacron otilde racute rcaron
rcommaaccent sacute scaron scedilla scommaaccent tcaron tcommaaccent
uacute ucircumflex udieresis ugrave uhungarumlaut umacron uogonek
uring yacute ydieresis zacute zcaron zdotaccent
];

@ACCENTS_LC = [
acute breve caron cedilla circumflex commaaccent dieresis dotaccent
grave hungarumlaut macron ogonek ring tilde
];

@LETTERS_SC = [
a.sc - z.sc ae.sc lslash.sc oslash.sc oe.sc thorn.sc eth.sc
aacute.sc abreve.sc acircumflex.sc adieresis.sc agrave.sc
amacron.sc aogonek.sc aring.sc atilde.sc cacute.sc ccaron.sc
ccedilla.sc dcaron.sc dcroat.sc eacute.sc ecaron.sc
ecircumflex.sc edieresis.sc edotaccent.sc egrave.sc emacron.sc
eogonek.sc gbreve.sc gcommaaccent.sc iacute.sc
icircumflex.sc idieresis.sc  
igrave.sc imacron.sc
iogonek.sc kcommaaccent.sc lacute.sc lcaron.sc lcommaaccent.sc
nacute.sc ncaron.sc ncommaaccent.sc ntilde.sc oacute.sc
ocircumflex.sc odieresis.sc ograve.sc ohungarumlaut.sc omacron.sc
otilde.sc racute.sc rcaron.sc rcommaaccent.sc sacute.sc
scaron.sc scedilla.sc scommaaccent.sc tcaron.sc tcommaaccent.sc
uacute.sc ucircumflex.sc udieresis.sc ugrave.sc uhungarumlaut.sc
umacron.sc uogonek.sc uring.sc yacute.sc ydieresis.sc
zacute.sc zcaron.sc zdotaccent.sc
];

@ACCENTS_SC = [
acute.sc breve.sc caron.sc cedilla.sc circumflex.sc
commaaccent.sc dieresis.sc dotaccent.sc grave.sc hungarumlaut.sc
macron.sc ogonek.sc ring.sc tilde.sc
];

@LETTERS_SUPERIOR = [
a.superior b.superior d.superior e.superior h.superior i.superior
l.superior m.superior n.superior o.superior r.superior s.superior t.superior
];

@PUNCT_DEFAULT = [
ampersand exclam exclamdown question questiondown
];

@PUNCT_SC = [
ampersand.sc exclam.sc exclamdown.sc question.sc questiondown.sc
];

@PUNCT_LC = [
at braceleft braceright bracketleft bracketright emdash endash
exclamdown guillemotleft guillemotright guilsinglleft
guilsinglright hyphen parenleft parenright periodcentered questiondown
];

@PUNCT_UC = [
at.cap braceleft.cap braceright.cap bracketleft.cap bracketright.cap
emdash.cap endash.cap exclamdown.cap 
guillemotleft.cap guillemotright.cap guilsinglleft.cap
guilsinglright.cap hyphen.cap parenleft.cap parenright.cap
periodcentered.cap questiondown.cap
];


# --- Cyrillic

@LETTERS_UC_CYRILLIC = [
afii10017 afii10018 afii10019 afii10020 afii10021 afii10022 afii10024 afii10025 afii10026 afii10028
afii10029 afii10030 afii10031 afii10032 afii10033 afii10034 afii10035 afii10036 afii10037 afii10038
afii10039 afii10040 afii10041 afii10042 afii10043 afii10046 afii10045 afii10044 afii10047 afii10048
afii10049 afii10050 afii10051 afii10053 afii10054 afii10055 afii10057 afii10058 afii10059 afii10060
afii10145 uni04E8 uni0496 uni04AE uni04D8 uni04BA uni0492 uni04B0 afii10023 afii10027
afii10052 afii10056 afii10061 afii10062 uni04E2 uni04EE uni049C uni049A uni04A2 uni04B2
uni04B8 uni04B6 uni0400 uni040D
];

@LETTERS_LC_CYRILLIC = [
afii10065 afii10066 afii10067 afii10068 afii10069 afii10070 afii10072 afii10073 afii10074 afii10076
afii10077 afii10078 afii10079 afii10080 afii10081 afii10082 afii10083 afii10084 afii10085 afii10086
afii10087 afii10088 afii10089 afii10090 afii10091 afii10092 afii10093 afii10094 afii10095 afii10096 
afii10097 afii10098 afii10099 afii10101 afii10102 afii10103 afii10105 afii10106 afii10107 afii10108 
afii10193 uni04E9 uni0497 uni04AF afii10846 uni04BB uni0493 uni04B1 afii10071 afii10075
afii10100 afii10104 afii10109 afii10110 uni04E3 uni04EF uni049D uni049B uni04A3 uni04B3
uni04B9 uni04B7 uni0450 uni045D
];

@LETTERS_SC_CYRILLIC = [
afii10065.sc afii10066.sc afii10067.sc afii10068.sc afii10069.sc afii10070.sc afii10072.sc afii10073.sc afii10074.sc afii10076.sc
afii10077.sc afii10078.sc afii10079.sc afii10080.sc afii10081.sc afii10082.sc afii10083.sc afii10084.sc afii10085.sc afii10086.sc
afii10087.sc afii10088.sc afii10089.sc afii10090.sc afii10091.sc afii10092.sc afii10093.sc afii10094.sc afii10095.sc afii10096.sc 
afii10097.sc afii10098.sc afii10099.sc afii10101.sc afii10102.sc afii10103.sc afii10105.sc afii10106.sc afii10107.sc afii10108.sc 
afii10193.sc uni04E9.sc uni0497.sc uni04AF.sc afii10846.sc uni04BB.sc uni0493.sc uni04B1.sc afii10071.sc afii10075.sc
afii10100.sc afii10104.sc afii10109.sc afii10110.sc uni04E3.sc uni04EF.sc uni049D.sc uni049B.sc uni04A3.sc uni04B3.sc
uni04B9.sc uni04B7.sc uni0450.sc uni045D.sc
];


# --- Greek

@LETTERS_UC_GREEK = [
Alpha Beta Gamma Delta Epsilon Zeta Eta Theta Iota Kappa Lambda Mu Nu Xi Omicron Pi Rho Sigma Tau Upsilon Phi Chi Psi Omega Iotadieresis
Upsilondieresis Alphatonos Epsilontonos Etatonos Iotatonos Omicrontonos Omegatonos Upsilontonos Iotadieresistonos
];

@LETTERS_LC_GREEK = [
alpha beta gamma delta epsilon zeta eta theta iota kappa lambda mu nu xi omicron pi rho sigma tau upsilon phi chi psi omega iotadieresis
upsilondieresis alphatonos epsilontonos etatonos iotatonos omicrontonos omegatonos upsilontonos iotadieresistonos
];

@LETTERS_SC_GREEK = [
alpha.sc beta.sc gamma.sc delta.sc epsilon.sc zeta.sc eta.sc theta.sc iota.sc kappa.sc lambda.sc mu.sc nu.sc xi.sc omicron.sc pi.sc
rho.sc sigma.sc tau.sc upsilon.sc phi.sc chi.sc psi.sc omega.sc iotadieresis.sc upsilondieresis.sc alphatonos.sc epsilontonos.sc etatonos.sc
iotatonos.sc omicrontonos.sc omegatonos.sc upsilontonos.sc iotadieresistonos.sc
];


# --- Titling

@LETTERS_UC_TITLING = [
A.titling - Z.titling AE.titling
Lslash.titling Oslash.titling OE.titling
Thorn.titling Eth.titling Aacute.titling Abreve.titling Acircumflex.titling
Adieresis.titling Agrave.titling Amacron.titling Aogonek.titling
Aring.titling Atilde.titling Cacute.titling Ccaron.titling Ccedilla.titling
Dcaron.titling Dcroat.titling Eacute.titling Ecaron.titling
Ecircumflex.titling Edieresis.titling Edotaccent.titling Egrave.titling
Emacron.titling Eogonek.titling Gbreve.titling Gcommaaccent.titling
Iacute.titling Icircumflex.titling Idieresis.titling
Igrave.titling Imacron.titling Iogonek.titling
Kcommaaccent.titling Lacute.titling Lcaron.titling Lcommaaccent.titling
Nacute.titling Ncaron.titling Ncommaaccent.titling Ntilde.titling
Oacute.titling Ocircumflex.titling Odieresis.titling Ograve.titling
Ohungarumlaut.titling Omacron.titling Otilde.titling Racute.titling
Rcaron.titling Rcommaaccent.titling Sacute.titling Scaron.titling
Scedilla.titling Scommaaccent.titling Tcaron.titling Tcommaaccent.titling
Uacute.titling Ucircumflex.titling Udieresis.titling Ugrave.titling
Uhungarumlaut.titling Umacron.titling Uogonek.titling Uring.titling
Yacute.titling Ydieresis.titling Zacute.titling Zcaron.titling
Zdotaccent.titling
];

@ACCENTS_UC_TITLING = [
Acute.titling Breve.titling Caron.titling Cedilla.titling Circumflex.titling
Commaaccent.titling Dieresis.titling Dotaccent.titling Grave.titling
Hungarumlaut.titling Macron.titling Ogonek.titling Ring.titling Tilde.titling
];

@PUNCT_UC_TITLING = [
at.captitling braceleft.captitling braceright.captitling bracketleft.captitling bracketright.captitling
emdash.captitling endash.captitling exclamdown.captitling 
guillemotleft.captitling guillemotright.captitling guilsinglleft.captitling
guilsinglright.captitling hyphen.captitling parenleft.captitling parenright.captitling
periodcentered.captitling questiondown.captitling
];


# --- Swash

@LETTERS_UC_SWASH = [
A.swash - Z.swash AE.swash
Lslash.swash Oslash.swash OE.swash
Thorn.swash Eth.swash Aacute.swash Abreve.swash Acircumflex.swash
Adieresis.swash Agrave.swash Amacron.swash Aogonek.swash
Aring.swash Atilde.swash Cacute.swash Ccaron.swash Ccedilla.swash
Dcaron.swash Dcroat.swash Eacute.swash Ecaron.swash
Ecircumflex.swash Edieresis.swash Edotaccent.swash Egrave.swash
Emacron.swash Eogonek.swash Gbreve.swash Gcommaaccent.swash
Iacute.swash Icircumflex.swash Idieresis.swash
Igrave.swash Imacron.swash Iogonek.swash
Kcommaaccent.swash Lacute.swash Lcaron.swash Lcommaaccent.swash
Nacute.swash Ncaron.swash Ncommaaccent.swash Ntilde.swash
Oacute.swash Ocircumflex.swash Odieresis.swash Ograve.swash
Ohungarumlaut.swash Omacron.swash Otilde.swash Racute.swash
Rcaron.swash Rcommaaccent.swash Sacute.swash Scaron.swash
Scedilla.swash Scommaaccent.swash Tcaron.swash Tcommaaccent.swash
Uacute.swash Ucircumflex.swash Udieresis.swash Ugrave.swash
Uhungarumlaut.swash Umacron.swash Uogonek.swash Uring.swash
Yacute.swash Ydieresis.swash Zacute.swash Zcaron.swash
Zdotaccent.swash
];

@LETTERS_LC_SWASH = [
a.swash - z.swash ae.swash lslash.swash oslash.swash oe.swash thorn.swash eth.swash
aacute.swash abreve.swash acircumflex.swash adieresis.swash agrave.swash
amacron.swash aogonek.swash aring.swash atilde.swash cacute.swash ccaron.swash
ccedilla.swash dcaron.swash dcroat.swash eacute.swash ecaron.swash
ecircumflex.swash edieresis.swash edotaccent.swash egrave.swash emacron.swash
eogonek.swash gbreve.swash gcommaaccent.swash iacute.swash
icircumflex.swash idieresis.swash  
igrave.swash imacron.swash
iogonek.swash kcommaaccent.swash lacute.swash lcaron.swash lcommaaccent.swash
nacute.swash ncaron.swash ncommaaccent.swash ntilde.swash oacute.swash
ocircumflex.swash odieresis.swash ograve.swash ohungarumlaut.swash omacron.swash
otilde.swash racute.swash rcaron.swash rcommaaccent.swash sacute.swash
scaron.swash scedilla.swash scommaaccent.swash tcaron.swash tcommaaccent.swash
uacute.swash ucircumflex.swash udieresis.swash ugrave.swash uhungarumlaut.swash
umacron.swash uogonek.swash uring.swash yacute.swash ydieresis.swash
zacute.swash zcaron.swash zdotaccent.swash
];

@LETTERS_SC_SWASH = [
a.sc.swash - z.sc.swash ae.sc.swash lslash.sc.swash oslash.sc.swash oe.sc.swash thorn.sc.swash eth.sc.swash
aacute.sc.swash abreve.sc.swash acircumflex.sc.swash adieresis.sc.swash agrave.sc.swash
amacron.sc.swash aogonek.sc.swash aring.sc.swash atilde.sc.swash cacute.sc.swash ccaron.sc.swash
ccedilla.sc.swash dcaron.sc.swash dcroat.sc.swash eacute.sc.swash ecaron.sc.swash
ecircumflex.sc.swash edieresis.sc.swash edotaccent.sc.swash egrave.sc.swash emacron.sc.swash
eogonek.sc.swash gbreve.sc.swash gcommaaccent.sc.swash iacute.sc.swash
icircumflex.sc.swash idieresis.sc.swash  
igrave.sc.swash imacron.sc.swash
iogonek.sc.swash kcommaaccent.sc.swash lacute.sc.swash lcaron.sc.swash lcommaaccent.sc.swash
nacute.sc.swash ncaron.sc.swash ncommaaccent.sc.swash ntilde.sc.swash oacute.sc.swash
ocircumflex.sc.swash odieresis.sc.swash ograve.sc.swash ohungarumlaut.sc.swash omacron.sc.swash
otilde.sc.swash racute.sc.swash rcaron.sc.swash rcommaaccent.sc.swash sacute.sc.swash
scaron.sc.swash scedilla.sc.swash scommaaccent.sc.swash tcaron.sc.swash tcommaaccent.sc.swash
uacute.sc.swash ucircumflex.sc.swash udieresis.sc.swash ugrave.sc.swash uhungarumlaut.sc.swash
umacron.sc.swash uogonek.sc.swash uring.sc.swash yacute.sc.swash ydieresis.sc.swash
zacute.sc.swash zcaron.sc.swash zdotaccent.sc.swash
];

# --- Alternate 'general' variations (always applicable alternative characters)

@LETTERS_UC_ALT = [
A.alt - Z.alt AE.alt
Lslash.alt Oslash.alt OE.alt
Thorn.alt Eth.alt Aacute.alt Abreve.alt Acircumflex.alt
Adieresis.alt Agrave.alt Amacron.alt Aogonek.alt
Aring.alt Atilde.alt Cacute.alt Ccaron.alt Ccedilla.alt
Dcaron.alt Dcroat.alt Eacute.alt Ecaron.alt
Ecircumflex.alt Edieresis.alt Edotaccent.alt Egrave.alt
Emacron.alt Eogonek.alt Gbreve.alt Gcommaaccent.alt
Iacute.alt Icircumflex.alt Idieresis.alt
Igrave.alt Imacron.alt Iogonek.alt
Kcommaaccent.alt Lacute.alt Lcaron.alt Lcommaaccent.alt
Nacute.alt Ncaron.alt Ncommaaccent.alt Ntilde.alt
Oacute.alt Ocircumflex.alt Odieresis.alt Ograve.alt
Ohungarumlaut.alt Omacron.alt Otilde.alt Racute.alt
Rcaron.alt Rcommaaccent.alt Sacute.alt Scaron.alt
Scedilla.alt Scommaaccent.alt Tcaron.alt Tcommaaccent.alt
Uacute.alt Ucircumflex.alt Udieresis.alt Ugrave.alt
Uhungarumlaut.alt Umacron.alt Uogonek.alt Uring.alt
Yacute.alt Ydieresis.alt Zacute.alt Zcaron.alt
Zdotaccent.alt
];

@LETTERS_LC_ALT = [
a.alt - z.alt ae.alt lslash.alt oslash.alt oe.alt thorn.alt eth.alt
aacute.alt abreve.alt acircumflex.alt adieresis.alt agrave.alt
amacron.alt aogonek.alt aring.alt atilde.alt cacute.alt ccaron.alt
ccedilla.alt dcaron.alt dcroat.alt eacute.alt ecaron.alt
ecircumflex.alt edieresis.alt edotaccent.alt egrave.alt emacron.alt
eogonek.alt gbreve.alt gcommaaccent.alt iacute.alt
icircumflex.alt idieresis.alt  
igrave.alt imacron.alt
iogonek.alt kcommaaccent.alt lacute.alt lcaron.alt lcommaaccent.alt
nacute.alt ncaron.alt ncommaaccent.alt ntilde.alt oacute.alt
ocircumflex.alt odieresis.alt ograve.alt ohungarumlaut.alt omacron.alt
otilde.alt racute.alt rcaron.alt rcommaaccent.alt sacute.alt
scaron.alt scedilla.alt scommaaccent.alt tcaron.alt tcommaaccent.alt
uacute.alt ucircumflex.alt udieresis.alt ugrave.alt uhungarumlaut.alt
umacron.alt uogonek.alt uring.alt yacute.alt ydieresis.alt
zacute.alt zcaron.alt zdotaccent.alt
];

@LETTERS_SC_ALT = [
a.sc.alt - z.sc.alt ae.sc.alt lslash.sc.alt oslash.sc.alt oe.sc.alt thorn.sc.alt eth.sc.alt
aacute.sc.alt abreve.sc.alt acircumflex.sc.alt adieresis.sc.alt agrave.sc.alt
amacron.sc.alt aogonek.sc.alt aring.sc.alt atilde.sc.alt cacute.sc.alt ccaron.sc.alt
ccedilla.sc.alt dcaron.sc.alt dcroat.sc.alt eacute.sc.alt ecaron.sc.alt
ecircumflex.sc.alt edieresis.sc.alt edotaccent.sc.alt egrave.sc.alt emacron.sc.alt
eogonek.sc.alt gbreve.sc.alt gcommaaccent.sc.alt iacute.sc.alt
icircumflex.sc.alt idieresis.sc.alt  
igrave.sc.alt imacron.sc.alt
iogonek.sc.alt kcommaaccent.sc.alt lacute.sc.alt lcaron.sc.alt lcommaaccent.sc.alt
nacute.sc.alt ncaron.sc.alt ncommaaccent.sc.alt ntilde.sc.alt oacute.sc.alt
ocircumflex.sc.alt odieresis.sc.alt ograve.sc.alt ohungarumlaut.sc.alt omacron.sc.alt
otilde.sc.alt racute.sc.alt rcaron.sc.alt rcommaaccent.sc.alt sacute.sc.alt
scaron.sc.alt scedilla.sc.alt scommaaccent.sc.alt tcaron.sc.alt tcommaaccent.sc.alt
uacute.sc.alt ucircumflex.sc.alt udieresis.sc.alt ugrave.sc.alt uhungarumlaut.sc.alt
umacron.sc.alt uogonek.sc.alt uring.sc.alt yacute.sc.alt ydieresis.sc.alt
zacute.sc.alt zcaron.sc.alt zdotaccent.sc.alt
];


# --- Alternate variations for the beginning-of-word boundery

@LETTERS_UC_BEGINNING = [
A - Z AE Lslash Oslash OE Thorn Eth Aacute Abreve Acircumflex Adieresis
Agrave Amacron Aogonek Aring Atilde Cacute Ccaron Ccedilla Dcaron
Dcroat Eacute Ecaron Ecircumflex Edieresis Edotaccent Egrave Emacron
Eogonek Gbreve Gcommaaccent Iacute Icircumflex Idieresis
Igrave Imacron Iogonek Kcommaaccent Lacute Lcaron
Lcommaaccent Nacute Ncaron Ncommaaccent Ntilde Oacute Ocircumflex
Odieresis Ograve Ohungarumlaut Omacron Otilde Racute Rcaron
Rcommaaccent Sacute Scaron Scedilla Scommaaccent Tcaron Tcommaaccent
Uacute Ucircumflex Udieresis Ugrave Uhungarumlaut Umacron Uogonek
Uring Yacute Ydieresis Zacute Zcaron Zdotaccent
];

@LETTERS_LC_BEGINNING = [
a - z ae lslash oslash oe thorn eth aacute abreve acircumflex adieresis
agrave amacron aogonek aring atilde cacute ccaron ccedilla dcaron
dcroat eacute ecaron ecircumflex edieresis edotaccent egrave emacron
eogonek gbreve gcommaaccent iacute icircumflex idieresis
igrave imacron iogonek kcommaaccent lacute lcaron
lcommaaccent nacute ncaron ncommaaccent ntilde oacute ocircumflex
odieresis ograve ohungarumlaut omacron otilde racute rcaron
rcommaaccent sacute scaron scedilla scommaaccent tcaron tcommaaccent
uacute ucircumflex udieresis ugrave uhungarumlaut umacron uogonek
uring yacute ydieresis zacute zcaron zdotaccent
];

@LETTERS_SC_BEGINNING = [
a.sc - z.sc ae.sc lslash.sc oslash.sc oe.sc thorn.sc eth.sc
aacute.sc abreve.sc acircumflex.sc adieresis.sc agrave.sc
amacron.sc aogonek.sc aring.sc atilde.sc cacute.sc ccaron.sc
ccedilla.sc dcaron.sc dcroat.sc eacute.sc ecaron.sc
ecircumflex.sc edieresis.sc edotaccent.sc egrave.sc emacron.sc
eogonek.sc gbreve.sc gcommaaccent.sc iacute.sc
icircumflex.sc idieresis.sc  
igrave.sc imacron.sc
iogonek.sc kcommaaccent.sc lacute.sc lcaron.sc lcommaaccent.sc
nacute.sc ncaron.sc ncommaaccent.sc ntilde.sc oacute.sc
ocircumflex.sc odieresis.sc ograve.sc ohungarumlaut.sc omacron.sc
otilde.sc racute.sc rcaron.sc rcommaaccent.sc sacute.sc
scaron.sc scedilla.sc scommaaccent.sc tcaron.sc tcommaaccent.sc
uacute.sc ucircumflex.sc udieresis.sc ugrave.sc uhungarumlaut.sc
umacron.sc uogonek.sc uring.sc yacute.sc ydieresis.sc
zacute.sc zcaron.sc zdotaccent.sc
];

@LETTERS_UC_START = [
A.start - Z.start AE.start
Lslash.start Oslash.start OE.start
Thorn.start Eth.start Aacute.start Abreve.start Acircumflex.start
Adieresis.start Agrave.start Amacron.start Aogonek.start
Aring.start Atilde.start Cacute.start Ccaron.start Ccedilla.start
Dcaron.start Dcroat.start Eacute.start Ecaron.start
Ecircumflex.start Edieresis.start Edotaccent.start Egrave.start
Emacron.start Eogonek.start Gbreve.start Gcommaaccent.start
Iacute.start Icircumflex.start Idieresis.start
Igrave.start Imacron.start Iogonek.start
Kcommaaccent.start Lacute.start Lcaron.start Lcommaaccent.start
Nacute.start Ncaron.start Ncommaaccent.start Ntilde.start
Oacute.start Ocircumflex.start Odieresis.start Ograve.start
Ohungarumlaut.start Omacron.start Otilde.start Racute.start
Rcaron.start Rcommaaccent.start Sacute.start Scaron.start
Scedilla.start Scommaaccent.start Tcaron.start Tcommaaccent.start
Uacute.start Ucircumflex.start Udieresis.start Ugrave.start
Uhungarumlaut.start Umacron.start Uogonek.start Uring.start
Yacute.start Ydieresis.start Zacute.start Zcaron.start
Zdotaccent.start
];

@LETTERS_LC_START = [
a.start - z.start ae.start lslash.start oslash.start oe.start thorn.start eth.start
aacute.start abreve.start acircumflex.start adieresis.start agrave.start
amacron.start aogonek.start aring.start atilde.start cacute.start ccaron.start
ccedilla.start dcaron.start dcroat.start eacute.start ecaron.start
ecircumflex.start edieresis.start edotaccent.start egrave.start emacron.start
eogonek.start gbreve.start gcommaaccent.start iacute.start
icircumflex.start idieresis.start  
igrave.start imacron.start
iogonek.start kcommaaccent.start lacute.start lcaron.start lcommaaccent.start
nacute.start ncaron.start ncommaaccent.start ntilde.start oacute.start
ocircumflex.start odieresis.start ograve.start ohungarumlaut.start omacron.start
otilde.start racute.start rcaron.start rcommaaccent.start sacute.start
scaron.start scedilla.start scommaaccent.start tcaron.start tcommaaccent.start
uacute.start ucircumflex.start udieresis.start ugrave.start uhungarumlaut.start
umacron.start uogonek.start uring.start yacute.start ydieresis.start
zacute.start zcaron.start zdotaccent.start
];

@LETTERS_SC_START = [
a.sc.start - z.sc.start ae.sc.start lslash.sc.start oslash.sc.start oe.sc.start thorn.sc.start eth.sc.start
aacute.sc.start abreve.sc.start acircumflex.sc.start adieresis.sc.start agrave.sc.start
amacron.sc.start aogonek.sc.start aring.sc.start atilde.sc.start cacute.sc.start ccaron.sc.start
ccedilla.sc.start dcaron.sc.start dcroat.sc.start eacute.sc.start ecaron.sc.start
ecircumflex.sc.start edieresis.sc.start edotaccent.sc.start egrave.sc.start emacron.sc.start
eogonek.sc.start gbreve.sc.start gcommaaccent.sc.start iacute.sc.start
icircumflex.sc.start idieresis.sc.start  
igrave.sc.start imacron.sc.start
iogonek.sc.start kcommaaccent.sc.start lacute.sc.start lcaron.sc.start lcommaaccent.sc.start
nacute.sc.start ncaron.sc.start ncommaaccent.sc.start ntilde.sc.start oacute.sc.start
ocircumflex.sc.start odieresis.sc.start ograve.sc.start ohungarumlaut.sc.start omacron.sc.start
otilde.sc.start racute.sc.start rcaron.sc.start rcommaaccent.sc.start sacute.sc.start
scaron.sc.start scedilla.sc.start scommaaccent.sc.start tcaron.sc.start tcommaaccent.sc.start
uacute.sc.start ucircumflex.sc.start udieresis.sc.start ugrave.sc.start uhungarumlaut.sc.start
umacron.sc.start uogonek.sc.start uring.sc.start yacute.sc.start ydieresis.sc.start
zacute.sc.start zcaron.sc.start zdotaccent.sc.start
];

# --- Alternate variations for the ending-of-word boundery

@LETTERS_UC_ENDING = [
A - Z AE Lslash Oslash OE Thorn Eth Aacute Abreve Acircumflex Adieresis
Agrave Amacron Aogonek Aring Atilde Cacute Ccaron Ccedilla Dcaron
Dcroat Eacute Ecaron Ecircumflex Edieresis Edotaccent Egrave Emacron
Eogonek Gbreve Gcommaaccent Iacute Icircumflex Idieresis
Igrave Imacron Iogonek Kcommaaccent Lacute Lcaron
Lcommaaccent Nacute Ncaron Ncommaaccent Ntilde Oacute Ocircumflex
Odieresis Ograve Ohungarumlaut Omacron Otilde Racute Rcaron
Rcommaaccent Sacute Scaron Scedilla Scommaaccent Tcaron Tcommaaccent
Uacute Ucircumflex Udieresis Ugrave Uhungarumlaut Umacron Uogonek
Uring Yacute Ydieresis Zacute Zcaron Zdotaccent
];

@LETTERS_LC_ENDING = [
a - z ae lslash oslash oe thorn eth aacute abreve acircumflex adieresis
agrave amacron aogonek aring atilde cacute ccaron ccedilla dcaron
dcroat eacute ecaron ecircumflex edieresis edotaccent egrave emacron
eogonek gbreve gcommaaccent iacute icircumflex idieresis
igrave imacron iogonek kcommaaccent lacute lcaron
lcommaaccent nacute ncaron ncommaaccent ntilde oacute ocircumflex
odieresis ograve ohungarumlaut omacron otilde racute rcaron
rcommaaccent sacute scaron scedilla scommaaccent tcaron tcommaaccent
uacute ucircumflex udieresis ugrave uhungarumlaut umacron uogonek
uring yacute ydieresis zacute zcaron zdotaccent
];

@LETTERS_SC_ENDING = [
a.sc - z.sc ae.sc lslash.sc oslash.sc oe.sc thorn.sc eth.sc
aacute.sc abreve.sc acircumflex.sc adieresis.sc agrave.sc
amacron.sc aogonek.sc aring.sc atilde.sc cacute.sc ccaron.sc
ccedilla.sc dcaron.sc dcroat.sc eacute.sc ecaron.sc
ecircumflex.sc edieresis.sc edotaccent.sc egrave.sc emacron.sc
eogonek.sc gbreve.sc gcommaaccent.sc iacute.sc
icircumflex.sc idieresis.sc  
igrave.sc imacron.sc
iogonek.sc kcommaaccent.sc lacute.sc lcaron.sc lcommaaccent.sc
nacute.sc ncaron.sc ncommaaccent.sc ntilde.sc oacute.sc
ocircumflex.sc odieresis.sc ograve.sc ohungarumlaut.sc omacron.sc
otilde.sc racute.sc rcaron.sc rcommaaccent.sc sacute.sc
scaron.sc scedilla.sc scommaaccent.sc tcaron.sc tcommaaccent.sc
uacute.sc ucircumflex.sc udieresis.sc ugrave.sc uhungarumlaut.sc
umacron.sc uogonek.sc uring.sc yacute.sc ydieresis.sc
zacute.sc zcaron.sc zdotaccent.sc
];

@LETTERS_UC_END = [
A.end - Z.end AE.end
Lslash.end Oslash.end OE.end
Thorn.end Eth.end Aacute.end Abreve.end Acircumflex.end
Adieresis.end Agrave.end Amacron.end Aogonek.end
Aring.end Atilde.end Cacute.end Ccaron.end Ccedilla.end
Dcaron.end Dcroat.end Eacute.end Ecaron.end
Ecircumflex.end Edieresis.end Edotaccent.end Egrave.end
Emacron.end Eogonek.end Gbreve.end Gcommaaccent.end
Iacute.end Icircumflex.end Idieresis.end
Igrave.end Imacron.end Iogonek.end
Kcommaaccent.end Lacute.end Lcaron.end Lcommaaccent.end
Nacute.end Ncaron.end Ncommaaccent.end Ntilde.end
Oacute.end Ocircumflex.end Odieresis.end Ograve.end
Ohungarumlaut.end Omacron.end Otilde.end Racute.end
Rcaron.end Rcommaaccent.end Sacute.end Scaron.end
Scedilla.end Scommaaccent.end Tcaron.end Tcommaaccent.end
Uacute.end Ucircumflex.end Udieresis.end Ugrave.end
Uhungarumlaut.end Umacron.end Uogonek.end Uring.end
Yacute.end Ydieresis.end Zacute.end Zcaron.end
Zdotaccent.end
];

@LETTERS_LC_END = [
a.end - z.end ae.end lslash.end oslash.end oe.end thorn.end eth.end
aacute.end abreve.end acircumflex.end adieresis.end agrave.end
amacron.end aogonek.end aring.end atilde.end cacute.end ccaron.end
ccedilla.end dcaron.end dcroat.end eacute.end ecaron.end
ecircumflex.end edieresis.end edotaccent.end egrave.end emacron.end
eogonek.end gbreve.end gcommaaccent.end iacute.end
icircumflex.end idieresis.end  
igrave.end imacron.end
iogonek.end kcommaaccent.end lacute.end lcaron.end lcommaaccent.end
nacute.end ncaron.end ncommaaccent.end ntilde.end oacute.end
ocircumflex.end odieresis.end ograve.end ohungarumlaut.end omacron.end
otilde.end racute.end rcaron.end rcommaaccent.end sacute.end
scaron.end scedilla.end scommaaccent.end tcaron.end tcommaaccent.end
uacute.end ucircumflex.end udieresis.end ugrave.end uhungarumlaut.end
umacron.end uogonek.end uring.end yacute.end ydieresis.end
zacute.end zcaron.end zdotaccent.end
];

@LETTERS_SC_END = [
a.sc.end - z.sc.end ae.sc.end lslash.sc.end oslash.sc.end oe.sc.end thorn.sc.end eth.sc.end
aacute.sc.end abreve.sc.end acircumflex.sc.end adieresis.sc.end agrave.sc.end
amacron.sc.end aogonek.sc.end aring.sc.end atilde.sc.end cacute.sc.end ccaron.sc.end
ccedilla.sc.end dcaron.sc.end dcroat.sc.end eacute.sc.end ecaron.sc.end
ecircumflex.sc.end edieresis.sc.end edotaccent.sc.end egrave.sc.end emacron.sc.end
eogonek.sc.end gbreve.sc.end gcommaaccent.sc.end iacute.sc.end
icircumflex.sc.end idieresis.sc.end  
igrave.sc.end imacron.sc.end
iogonek.sc.end kcommaaccent.sc.end lacute.sc.end lcaron.sc.end lcommaaccent.sc.end
nacute.sc.end ncaron.sc.end ncommaaccent.sc.end ntilde.sc.end oacute.sc.end
ocircumflex.sc.end odieresis.sc.end ograve.sc.end ohungarumlaut.sc.end omacron.sc.end
otilde.sc.end racute.sc.end rcaron.sc.end rcommaaccent.sc.end sacute.sc.end
scaron.sc.end scedilla.sc.end scommaaccent.sc.end tcaron.sc.end tcommaaccent.sc.end
uacute.sc.end ucircumflex.sc.end udieresis.sc.end ugrave.sc.end uhungarumlaut.sc.end
umacron.sc.end uogonek.sc.end uring.sc.end yacute.sc.end ydieresis.sc.end
zacute.sc.end zcaron.sc.end zdotaccent.sc.end
];

# --- Stylistic alternates (contextual)

@LETTERS_UC_ss05 = [
A.ss05 - Z.ss05 AE.ss05
Lslash.ss05 Oslash.ss05 OE.ss05
Thorn.ss05 Eth.ss05 Aacute.ss05 Abreve.ss05 Acircumflex.ss05
Adieresis.ss05 Agrave.ss05 Amacron.ss05 Aogonek.ss05
Aring.ss05 Atilde.ss05 Cacute.ss05 Ccaron.ss05 Ccedilla.ss05
Dcaron.ss05 Dcroat.ss05 Eacute.ss05 Ecaron.ss05
Ecircumflex.ss05 Edieresis.ss05 Edotaccent.ss05 Egrave.ss05
Emacron.ss05 Eogonek.ss05 Gbreve.ss05 Gcommaaccent.ss05
Iacute.ss05 Icircumflex.ss05 Idieresis.ss05
Igrave.ss05 Imacron.ss05 Iogonek.ss05
Kcommaaccent.ss05 Lacute.ss05 Lcaron.ss05 Lcommaaccent.ss05
Nacute.ss05 Ncaron.ss05 Ncommaaccent.ss05 Ntilde.ss05
Oacute.ss05 Ocircumflex.ss05 Odieresis.ss05 Ograve.ss05
Ohungarumlaut.ss05 Omacron.ss05 Otilde.ss05 Racute.ss05
Rcaron.ss05 Rcommaaccent.ss05 Sacute.ss05 Scaron.ss05
Scedilla.ss05 Scommaaccent.ss05 Tcaron.ss05 Tcommaaccent.ss05
Uacute.ss05 Ucircumflex.ss05 Udieresis.ss05 Ugrave.ss05
Uhungarumlaut.ss05 Umacron.ss05 Uogonek.ss05 Uring.ss05
Yacute.ss05 Ydieresis.ss05 Zacute.ss05 Zcaron.ss05
Zdotaccent.ss05
];

@LETTERS_LC_ss05 = [
a.ss05 - z.ss05 ae.ss05 lslash.ss05 oslash.ss05 oe.ss05 thorn.ss05 eth.ss05
aacute.ss05 abreve.ss05 acircumflex.ss05 adieresis.ss05 agrave.ss05
amacron.ss05 aogonek.ss05 aring.ss05 atilde.ss05 cacute.ss05 ccaron.ss05
ccedilla.ss05 dcaron.ss05 dcroat.ss05 eacute.ss05 ecaron.ss05
ecircumflex.ss05 edieresis.ss05 edotaccent.ss05 egrave.ss05 emacron.ss05
eogonek.ss05 gbreve.ss05 gcommaaccent.ss05 iacute.ss05
icircumflex.ss05 idieresis.ss05  
igrave.ss05 imacron.ss05
iogonek.ss05 kcommaaccent.ss05 lacute.ss05 lcaron.ss05 lcommaaccent.ss05
nacute.ss05 ncaron.ss05 ncommaaccent.ss05 ntilde.ss05 oacute.ss05
ocircumflex.ss05 odieresis.ss05 ograve.ss05 ohungarumlaut.ss05 omacron.ss05
otilde.ss05 racute.ss05 rcaron.ss05 rcommaaccent.ss05 sacute.ss05
scaron.ss05 scedilla.ss05 scommaaccent.ss05 tcaron.ss05 tcommaaccent.ss05
uacute.ss05 ucircumflex.ss05 udieresis.ss05 ugrave.ss05 uhungarumlaut.ss05
umacron.ss05 uogonek.ss05 uring.ss05 yacute.ss05 ydieresis.ss05
zacute.ss05 zcaron.ss05 zdotaccent.ss05
];

@LETTERS_SC_ss05 = [
a.sc.ss05 - z.sc.ss05 ae.sc.ss05 lslash.sc.ss05 oslash.sc.ss05 oe.sc.ss05 thorn.sc.ss05 eth.sc.ss05
aacute.sc.ss05 abreve.sc.ss05 acircumflex.sc.ss05 adieresis.sc.ss05 agrave.sc.ss05
amacron.sc.ss05 aogonek.sc.ss05 aring.sc.ss05 atilde.sc.ss05 cacute.sc.ss05 ccaron.sc.ss05
ccedilla.sc.ss05 dcaron.sc.ss05 dcroat.sc.ss05 eacute.sc.ss05 ecaron.sc.ss05
ecircumflex.sc.ss05 edieresis.sc.ss05 edotaccent.sc.ss05 egrave.sc.ss05 emacron.sc.ss05
eogonek.sc.ss05 gbreve.sc.ss05 gcommaaccent.sc.ss05 iacute.sc.ss05
icircumflex.sc.ss05 idieresis.sc.ss05  
igrave.sc.ss05 imacron.sc.ss05
iogonek.sc.ss05 kcommaaccent.sc.ss05 lacute.sc.ss05 lcaron.sc.ss05 lcommaaccent.sc.ss05
nacute.sc.ss05 ncaron.sc.ss05 ncommaaccent.sc.ss05 ntilde.sc.ss05 oacute.sc.ss05
ocircumflex.sc.ss05 odieresis.sc.ss05 ograve.sc.ss05 ohungarumlaut.sc.ss05 omacron.sc.ss05
otilde.sc.ss05 racute.sc.ss05 rcaron.sc.ss05 rcommaaccent.sc.ss05 sacute.sc.ss05
scaron.sc.ss05 scedilla.sc.ss05 scommaaccent.sc.ss05 tcaron.sc.ss05 tcommaaccent.sc.ss05
uacute.sc.ss05 ucircumflex.sc.ss05 udieresis.sc.ss05 ugrave.sc.ss05 uhungarumlaut.sc.ss05
umacron.sc.ss05 uogonek.sc.ss05 uring.sc.ss05 yacute.sc.ss05 ydieresis.sc.ss05
zacute.sc.ss05 zcaron.sc.ss05 zdotaccent.sc.ss05
];

# --- Figures & numerators

@FIG_TAB_LINING = [
zero one two three four five six seven eight nine
];

@FIG_TAB_OLDSTYLE = [
zero.taboldstyle one.taboldstyle two.taboldstyle three.taboldstyle
four.taboldstyle five.taboldstyle six.taboldstyle seven.taboldstyle
eight.taboldstyle nine.taboldstyle
];

@FIG_FIT_LINING = [
zero.fitted one.fitted two.fitted three.fitted four.fitted five.fitted
six.fitted seven.fitted eight.fitted nine.fitted
];

@FIG_FIT_OLDSTYLE = [
zero.oldstyle one.oldstyle two.oldstyle three.oldstyle four.oldstyle
five.oldstyle six.oldstyle seven.oldstyle eight.oldstyle nine.oldstyle
];

@FIG_FIT_SC = [
zero.sc one.sc two.sc three.sc four.sc five.sc
six.sc seven.sc eight.sc nine.sc
];

@FIGURES = [
@FIG_TAB_LINING @FIG_FIT_LINING @FIG_FIT_OLDSTYLE @FIG_TAB_OLDSTYLE
];

@FIG_TITLING = [
zero.titling one.titling two.titling three.titling four.titling
five.titling six.titling seven.titling eight.titling nine.titling
];

@FIG_TAB_LINING_TITLING = [
zero.titling one.titling two.titling three.titling four.titling
five.titling six.titling seven.titling eight.titling nine.titling
];

@FIG_SUPERIOR = [
zero.superior one.superior two.superior three.superior four.superior
five.superior six.superior seven.superior eight.superior nine.superior
];

@FIG_INFERIOR = [
zero.inferior one.inferior two.inferior three.inferior four.inferior
five.inferior six.inferior seven.inferior eight.inferior nine.inferior
];

@FIG_NUMERATOR = [
zero.numerator one.numerator two.numerator three.numerator four.numerator
five.numerator six.numerator seven.numerator eight.numerator nine.numerator
];

@FIG_DENOMINATOR = [
zero.denominator one.denominator two.denominator three.denominator
four.denominator five.denominator six.denominator seven.denominator
eight.denominator nine.denominator
];


# --- Currency & miscellaneous

@CURRENCY_LINING = [
cent dollar sterling florin yen Euro colonmonetary
];

@CURRENCY_LINING2 = [
franc lira peseta
];

@CURRENCY_LINING3 = [
cent dollar sterling florin yen
];

@CURRENCY_SC = [
cent.sc dollar.sc sterling.sc florin.sc yen.sc euro.sc colonmonetary.sc
];

@CURRENCY_TAB_OLDSTYLE = [
cent.taboldstyle dollar.taboldstyle sterling.taboldstyle florin.taboldstyle
yen.taboldstyle Euro.taboldstyle colonmonetary.taboldstyle
];

@CURRENCY_TAB_OLDSTYLE2 = [
cent.taboldstyle dollar.taboldstyle sterling.taboldstyle florin.taboldstyle
yen.taboldstyle
];

@CURRENCY_FIT_OLDSTYLE = [
centoldstyle dollaroldstyle
];

@CURRENCY_TITLING = [
cent.titling dollar.titling sterling.titling florin.titling yen.titling 
];

@MISC_LINING = [
period comma cent dollar parenleft parenright hyphen
];

@MISC_SUPERIOR = [
period.superior comma.superior centsuperior dollarsuperior
parenleft.superior parenright.superior hyphensuperior
];

@MISC_INFERIOR = [
periodinferior commainferior centinferior dollarinferior
parenleftinferior parenrightinferior hypheninferior
];

@MISC_NUMERATOR = [ 
period.numerator comma.numerator cent.numerator dollar.numerator
parenleft.numerator parenright.numerator hyphen.numerator
];

@MISC_DENOMINATOR = [
period.denominator comma.denominator cent.denominator
dollar.denominator parenleft.denominator parenright.denominator
hyphen.denominator
];

@ORNAMENTS = [
orn.001 orn.002 orn.003 orn.004 orn.005 orn.006 orn.007 orn.008 orn.009 orn.010 orn.011 orn.012 orn.013 orn.014 orn.015 orn.016 orn.017 orn.018 orn.019 orn.020 orn.021 orn.022 orn.023 orn.024 orn.025 orn.026 orn.027 orn.028 orn.029 orn.030 orn.031 orn.032 orn.033 orn.034 orn.035 orn.036 orn.037 orn.038 orn.039 orn.040 orn.041 orn.042 orn.043 orn.044 orn.045 orn.046 orn.047 orn.048 orn.049 orn.050
];

#---------------------------------------

# --- FEATURE SUMMARY (description)

# --- Substitution  (in *alphabetical* order):
#     CRCY: replaces any currency character with any other one (proprietary; crcy removed from OT specification 1.25)
#     NFRC: substitutes the standard fractions by nut ones (proprietary)
#     aalt: access all alternates
#     c2sc: caps to smallcaps
#     case: uppercase, math signs and punctuation shift (up)
#     dlig: discretionary ligatures
#     dnom: replaces selected figures with denominators
#     dpng: dipthong subs (removed from OT specification 1.25)
#     frac: substitutes the existing fractions
#     hist: historical forms
#     hlig: historical ligatures
#     liga: standard ligatures replacement
#     lnum: changes figures style to lining figures
#     numr: replaces selected figures with numerators
#     onum: changes figures style to oldstyle figures
#     ordn: subs ordinal glyphs after numbers
#     ornm: allows access to ornaments
#     pnum: changes figures style to proportional figures
#     salt: replaces glyphs with alternate variations
#     sinf: makes numbers inferior
#     smcp: changes lower case to smallcaps
#     ss01; Beginning-of-word-boundary alternates
#     ss02; Ending-of-word-boundary alternates
#     ss03; identical to 'hist' feature for applications that don't support this
#     ss04; alternate replacements for discretionary ligatures
#     ss05-ss10; Reserved for font-specific (contextual) alternates
#     ss11; Cyrillic alternates
#     ss12; Bulgarian Cyrillic alternates
#     ss12-ss20; To be defined
#     sups: makes numbers superior
#     titl: replaces default glyphs with .titling variations
#     tnum: changes proportional figures styles to tabular figures styles
#     zero: slashed zero

#---------------------------------------

# --- POSITIONING

#     kern: pairs in simple and class form
#     cpsp: wider spacing for caps in all-cap setting

#---------------------------------------

# --- LANGUAGESYSTEMS

languagesystem DFLT dflt;
languagesystem latn dflt;
languagesystem cyrl dflt;
languagesystem grek dflt;
languagesystem latn AZE;
languagesystem latn CRT;
languagesystem latn DEU;
languagesystem latn MOL;
languagesystem latn ROM;
languagesystem latn TRK;
languagesystem cyrl BGR;
languagesystem cyrl SRB;

#---------------------------------------

# --- SUBSTITUTION

feature aalt {
		
	sub a by ordfeminine;
	sub o by ordmasculine;
	sub numbersign by numbersign.oldstyle;
	sub hyphen from [endash emdash hyphen.cap hyphen.superior hyphen.inferior hyphen.numerator hyphen.denominator figuredash threequartersemdash minus];
	sub hyphen.cap from [endash.cap emdash.cap];
	sub period from [ellipsis period.superior period.inferior period.numerator period.denominator onedotenleader twodotenleader];
	sub zero.slash from [zero.fitted zero.oldstyle zero.taboldstyle zero.superior zero.inferior zero.numerator zero.denominator];
	sub zero.slashfitted from [zero.fitted zero.oldstyle zero.taboldstyle zero.superior zero.inferior zero.numerator zero.denominator];

	feature locl;
	feature c2sc;
	feature smcp;
	feature case;
	feature onum;
	feature lnum;
	feature pnum;
	feature tnum;
	feature CRCY;
	feature sups;
	feature sinf;
	feature numr;
	feature dnom;
	feature NFRC;
	feature hist;
	feature salt;
	feature swsh;
	feature titl;
	feature ordn;
	feature ornm;
	feature zero;
	feature ss01;
	feature ss02;
	feature ss02;
	feature ss03;
	feature ss04;
	feature ss05;
	feature ss06;
	feature ss07;
	feature ss08;
	feature ss09;
	feature ss10;
	feature ss11;
	feature ss12;
	feature ss13;
	feature ss14;
	feature ss15;
	feature ss16;
	feature ss17;
	feature ss18;
	feature ss19;
	feature ss20;
	
} aalt;
	
#---------------------------------------

feature locl {

	script latn;
	language ROM exclude_dflt;
	lookup LOCL_ROM {
		sub Scedilla by Scommaaccent;
		sub scedilla by scommaaccent;
		sub scedilla.sc by scommaaccent.sc;
		sub Tcedilla by Tcommaaccent;
		sub tcedilla by tcommaaccent;
		sub tcedilla.sc by tcommaaccent.sc;
	} LOCL_ROM;

	script latn;
	language MOL exclude_dflt;
	lookup LOCL_ROM;
	
	script cyrl;
	language SRB exclude_dflt;
	lookup LOCL_SRB {
		sub afii10066 by afii10066.serb;
		sub afii10068 by afii10068.serb;
		sub afii10069 by afii10069.serb;
		sub afii10081 by afii10081.serb;
		sub afii10084 by afii10084.serb;
	} LOCL_SRB;

} locl;

#---------------------------------------

feature c2sc {

	sub @LETTERS_UC by @LETTERS_SC;
	sub @LETTERS_UC_GREEK by @LETTERS_SC_GREEK;
	sub @LETTERS_UC_CYRILLIC by @LETTERS_SC_CYRILLIC;
	sub @PUNCT_UC by @PUNCT_LC;
	sub @PUNCT_DEFAULT by @PUNCT_SC;
	sub @FIG_TAB_LINING by @FIG_FIT_SC;
	sub @FIG_FIT_LINING by @FIG_FIT_SC;
	sub @FIG_FIT_OLDSTYLE by @FIG_FIT_SC;
	sub @FIG_TAB_OLDSTYLE by @FIG_FIT_SC;
	sub @CURRENCY_LINING by @CURRENCY_TAB_OLDSTYLE;
	sub @ACCENTS_UC by @ACCENTS_SC;
	sub [percent perthousand] by [percent.sc perthousand.sc];
	sub Idotaccent by i.dotaccentsc;
	
} c2sc;

#---------------------------------------

feature smcp {
	
	script DFLT;
	language dflt;
	
	lookup SMCP_DFLT {
		sub i by i.sc;
	} SMCP_DFLT;
	
	lookup SMCP_ALL {
		sub @LETTERS_LC by @LETTERS_SC;
		sub @LETTERS_LC_GREEK by @LETTERS_SC_GREEK;
		sub @LETTERS_LC_CYRILLIC by @LETTERS_SC_CYRILLIC;
		sub @PUNCT_DEFAULT by @PUNCT_SC;
		sub @FIG_TAB_LINING by @FIG_FIT_SC;
		sub @FIG_FIT_LINING by @FIG_FIT_SC;
		sub @FIG_FIT_OLDSTYLE by @FIG_FIT_SC;
		sub @FIG_TAB_OLDSTYLE by @FIG_FIT_SC;
		sub @CURRENCY_LINING by @CURRENCY_SC;
		sub @ACCENTS_LC by @ACCENTS_SC;
		sub dotlessi by dotlessi.sc;
		sub [percent perthousand] by [percent.sc perthousand.sc];
		sub germandbls by germandbls.sc;
		sub commaaccent by commaaccent.sc;
		sub [ampersand exclam question exclamdown questiondown] by [ampersand.sc exclam.sc question.sc exclamdown.sc questiondown.sc];
		sub acaron by uni01cd.sc;
		sub numbersign by numbersign.sc;
		sub numbersign.fitted by numbersign.sc;
		sub percent by percent.sc;
		sub perthousand by perthousand.sc;
		sub estimated by estimated.sc;
	} SMCP_ALL;

	script latn;
    language dflt;
		lookup SMCP_DFLT; # call lookup defined for DFLT/dflt
    	lookup SMCP_ALL; # call lookup defined for DFLT/dflt

    language DEU include_dflt;
    language MOL include_dflt;
	language ROM include_dflt;
	language SRB include_dflt;

	language AZE exclude_dflt;
	lookup SMCP_TURK {
		sub i by i.dotaccentsc;
	} SMCP_TURK;
		lookup SMCP_ALL;

	language CRT exclude_dflt;
		lookup SMCP_TURK;
		lookup SMCP_ALL;

	language TRK exclude_dflt;
		lookup SMCP_TURK;
		lookup SMCP_ALL;
	
	script cyrl;
	language dflt;
		lookup SMCP_DFLT;
		lookup SMCP_ALL;

	script grek;
	language dflt;
		lookup SMCP_DFLT;
		lookup SMCP_ALL;
	
} smcp;


#---------------------------------------

feature case {

	sub @FIG_TAB_OLDSTYLE by @FIG_TAB_LINING;
	sub @FIG_FIT_OLDSTYLE by @FIG_TAB_LINING;
	sub @FIG_FIT_SC by @FIG_TAB_LINING;
	sub @CURRENCY_TAB_OLDSTYLE by @CURRENCY_LINING;
	sub @CURRENCY_FIT_OLDSTYLE by [cent dollar];
	sub @CURRENCY_SC by @CURRENCY_LINING;
	sub @ACCENTS_LC by @ACCENTS_UC;
	sub @PUNCT_LC by @PUNCT_UC;
	sub [numbersign.sc percent.sc perthousand.sc] by [numbersign percent perthousand];
	
} case;

#---------------------------------------

feature onum {

	sub @FIG_TAB_LINING by @FIG_FIT_OLDSTYLE;
	sub @FIG_FIT_LINING by @FIG_FIT_OLDSTYLE;
	sub @CURRENCY_LINING by @CURRENCY_TAB_OLDSTYLE;
	sub [numbersign percent perthousand] by [numbersign.taboldstyle percent.oldstyle perthousand.oldstyle];

} onum;

#---------------------------------------

feature lnum {

	sub @FIG_TAB_OLDSTYLE by @FIG_TAB_LINING;
	sub @FIG_FIT_OLDSTYLE by @FIG_TAB_LINING;
	sub @CURRENCY_TAB_OLDSTYLE by @CURRENCY_LINING;
	sub @CURRENCY_FIT_OLDSTYLE by [cent dollar];
	sub [numbersign.taboldstyle percent.oldstyle perthousand.oldstyle] by [numbersign percent perthousand];

} lnum;

#---------------------------------------

feature pnum {

	sub @FIG_TAB_LINING by @FIG_FIT_LINING;
	sub @FIG_TAB_OLDSTYLE by @FIG_FIT_OLDSTYLE;
	sub [cent.taboldstyle dollar.taboldstyle] by @CURRENCY_FIT_OLDSTYLE;

} pnum;

#---------------------------------------

feature tnum {

	sub @FIG_FIT_LINING by @FIG_TAB_LINING;
	sub @FIG_FIT_OLDSTYLE by @FIG_TAB_OLDSTYLE;
	sub @CURRENCY_FIT_OLDSTYLE by [cent.taboldstyle dollar.taboldstyle];

} tnum;

#---------------------------------------

feature CRCY {

	sub Euro from [@CURRENCY_LINING @CURRENCY_LINING2 rupiah currency];
	sub Euro.taboldstyle from [@CURRENCY_TAB_OLDSTYLE];
	sub cent from [@CURRENCY_LINING @CURRENCY_LINING2 rupiah currency];
	sub cent.taboldstyle from [@CURRENCY_TAB_OLDSTYLE];
	sub cent.titling from @CURRENCY_TITLING;
	sub centoldstyle from [@CURRENCY_FIT_OLDSTYLE];
	sub colonmonetary from [@CURRENCY_LINING @CURRENCY_LINING2 rupiah currency];
	sub colonmonetary.taboldstyle from [@CURRENCY_TAB_OLDSTYLE];
	sub currency from [@CURRENCY_LINING @CURRENCY_LINING2 rupiah];
	sub dollar from [@CURRENCY_LINING @CURRENCY_LINING2 rupiah currency];
	sub dollar.taboldstyle from [@CURRENCY_TAB_OLDSTYLE];
	sub dollar.titling from @CURRENCY_TITLING;
	sub dollaroldstyle from [@CURRENCY_FIT_OLDSTYLE];
	sub florin from [@CURRENCY_LINING @CURRENCY_LINING2 rupiah currency];
	sub florin.taboldstyle from [@CURRENCY_TAB_OLDSTYLE];
	sub florin.titling from @CURRENCY_TITLING;
	sub franc from [@CURRENCY_LINING @CURRENCY_LINING2 rupiah currency];
	sub lira from [@CURRENCY_LINING @CURRENCY_LINING2 rupiah currency];
	sub peseta from [@CURRENCY_LINING @CURRENCY_LINING2 rupiah currency];
	sub rupiah from [@CURRENCY_LINING @CURRENCY_LINING2 currency];
	sub sterling from [@CURRENCY_LINING @CURRENCY_LINING2 rupiah currency];
	sub sterling.taboldstyle from [@CURRENCY_TAB_OLDSTYLE];
	sub sterling.titling from @CURRENCY_TITLING;
	sub yen from [@CURRENCY_LINING @CURRENCY_LINING2 rupiah currency];
	sub yen.taboldstyle from [@CURRENCY_TAB_OLDSTYLE];
	sub yen.titling from @CURRENCY_TITLING;
	
} CRCY;

#---------------------------------------

feature sups {

	sub @FIG_TAB_LINING by @FIG_SUPERIOR;
	sub @FIG_FIT_LINING by @FIG_SUPERIOR;
	sub @FIG_FIT_OLDSTYLE by @FIG_SUPERIOR;
	sub @FIG_TAB_OLDSTYLE by @FIG_SUPERIOR;
	sub @FIG_FIT_SC by @FIG_SUPERIOR;
	sub @FIG_INFERIOR by @FIG_SUPERIOR;
	sub @FIG_NUMERATOR by @FIG_SUPERIOR;
	sub @FIG_DENOMINATOR by @FIG_SUPERIOR;
	sub @MISC_LINING by @MISC_SUPERIOR;
	sub @MISC_INFERIOR by @MISC_SUPERIOR;
	sub @MISC_NUMERATOR by @MISC_SUPERIOR;
	sub @MISC_DENOMINATOR by @MISC_SUPERIOR;
	sub [a b d e h i l m n o r s t] by @LETTERS_SUPERIOR;
	sub [centoldstyle dollaroldstyle] by [centsuperior dollarsuperior];
	sub [cent.taboldstyle dollar.taboldstyle] by [centsuperior dollarsuperior];

} sups;

#---------------------------------------

feature sinf {

	sub @FIG_TAB_LINING by @FIG_INFERIOR;
	sub @FIG_FIT_LINING by @FIG_INFERIOR;
	sub @FIG_FIT_OLDSTYLE by @FIG_INFERIOR;
	sub @FIG_TAB_OLDSTYLE by @FIG_INFERIOR;
	sub @FIG_FIT_SC by @FIG_INFERIOR;
	sub @FIG_SUPERIOR by @FIG_INFERIOR;
	sub @FIG_NUMERATOR by @FIG_INFERIOR;
	sub @FIG_DENOMINATOR by @FIG_INFERIOR;
	sub @MISC_LINING by @MISC_INFERIOR;
	sub @MISC_SUPERIOR by @MISC_INFERIOR;
	sub @MISC_NUMERATOR by @MISC_INFERIOR;
	sub @MISC_DENOMINATOR by @MISC_INFERIOR;
	sub [centoldstyle dollaroldstyle] by [centinferior dollarinferior];
	sub [cent.taboldstyle dollar.taboldstyle] by [centinferior dollarinferior];

} sinf;

#---------------------------------------

feature numr {

	sub @FIG_TAB_LINING by @FIG_NUMERATOR;
	sub @FIG_FIT_LINING by @FIG_NUMERATOR;
	sub @FIG_FIT_OLDSTYLE by @FIG_NUMERATOR;
	sub @FIG_TAB_OLDSTYLE by @FIG_NUMERATOR;
	sub @FIG_SUPERIOR by @FIG_NUMERATOR;
	sub @FIG_INFERIOR by @FIG_NUMERATOR;
	sub @FIG_DENOMINATOR by @FIG_NUMERATOR;
	sub @MISC_LINING by @MISC_NUMERATOR;
	sub @MISC_INFERIOR by @MISC_NUMERATOR;
	sub @MISC_SUPERIOR by @MISC_NUMERATOR;
	sub @MISC_DENOMINATOR by @MISC_NUMERATOR;
	sub slash by fraction;
	sub [centoldstyle dollaroldstyle] by [cent.numerator dollar.numerator];
	sub [cent.taboldstyle dollar.taboldstyle] by [cent.numerator
	dollar.numerator];
	
} numr;

#---------------------------------------

feature dnom {

	sub @FIG_TAB_LINING by @FIG_DENOMINATOR;
	sub @FIG_FIT_LINING by @FIG_DENOMINATOR;
	sub @FIG_FIT_OLDSTYLE by @FIG_DENOMINATOR;
	sub @FIG_TAB_OLDSTYLE by @FIG_DENOMINATOR;
	sub @FIG_NUMERATOR by @FIG_DENOMINATOR;
	sub @FIG_SUPERIOR by @FIG_DENOMINATOR;
	sub @FIG_INFERIOR by @FIG_DENOMINATOR;
	sub @MISC_LINING by @MISC_DENOMINATOR;
	sub @MISC_INFERIOR by @MISC_DENOMINATOR;
	sub @MISC_NUMERATOR by @MISC_DENOMINATOR;
	sub @MISC_SUPERIOR by @MISC_DENOMINATOR;
	sub slash by fraction;
	sub [centoldstyle dollaroldstyle] by [cent.denominator dollar.denominator];
	sub [cent.taboldstyle dollar.taboldstyle] by [cent.denominator
	dollar.denominator];

} dnom;

#---------------------------------------

# Very 'flat' substitution of fractions, which doesn't change the figure style.
# Can be left on by user.
# Disadvantage: only pre-composed fractions can be use.

feature frac {


@FRACTION = [
    fraction slash
];

   lookup fractions_percent {
   		sub zero @FRACTION zero by percent;
   		sub zero.fitted @FRACTION zero.fitted by percent;
   		sub zero.oldstyle @FRACTION zero.oldstyle by percent;
  		sub zero.taboldstyle @FRACTION zero.taboldstyle by percent;
  		sub zero.sc @FRACTION zero.sc by percent;
   		sub zero.superior @FRACTION zero.superior by percent;
   		sub zero.inferior @FRACTION zero.inferior by percent;
   		sub zero.numerator @FRACTION zero.numerator by percent; 
   		sub zero.denominator @FRACTION zero.denominator by percent;
   } fractions_percent; 
   
   lookup fractions_perthousand {
   		sub percent zero by perthousand;
   		sub percent zero.fitted by perthousand;
   		sub percent zero.oldstyle by perthousand;
   		sub percent zero.taboldstyle by perthousand;
   		sub percent zero.sc by perthousand;
   		sub percent zero.superior by perthousand;
   		sub percent zero.inferior by perthousand;
   		sub percent zero.numerator by perthousand; 
   		sub percent zero.denominator by perthousand;
   } fractions_perthousand; 
    
   lookup fractions_oneone {
   		sub one @FRACTION one by oneone;
   		sub one.fitted @FRACTION one.fitted by oneone;
   		sub one.oldstyle @FRACTION oneeoldstyle by oneone;
   		sub one.taboldstyle @FRACTION one.taboldstyle by oneone;
   		sub one.sc @FRACTION one.sc by oneone;
   		sub one.superior @FRACTION one.superior by oneone;
  		sub one.inferior @FRACTION one.inferior by oneone;
   		sub one.numerator @FRACTION one.numerator by oneone; 
  		sub one.denominator @FRACTION one.denominator by oneone;
   } fractions_oneone; 
   
   lookup fractions_onehalf {
   		sub one @FRACTION two by onehalf;
   		sub one.fitted @FRACTION two.fitted by onehalf;
   		sub one.oldstyle @FRACTION two.oldstyle by onehalf;
   		sub one.taboldstyle @FRACTION two.taboldstyle by onehalf;
   		sub one.sc @FRACTION two.sc by onehalf;
   		sub one.superior @FRACTION two.superior by onehalf;
   		sub one.inferior @FRACTION two.inferior by onehalf;
   		sub one.numerator @FRACTION two.numerator by onehalf; 
   		sub one.denominator @FRACTION two.denominator by onehalf;
   } fractions_onehalf; 
   
   lookup fractions_onethird {
   		sub one @FRACTION three by onethird;
   		sub one.fitted @FRACTION three.fitted by onethird;
   		sub one.oldstyle @FRACTION three.oldstyle by onethird;
   		sub one.taboldstyle @FRACTION three.taboldstyle by onethird;
   		sub one.sc @FRACTION three.sc by onethird;
   		sub one.superior @FRACTION three.superior by onethird;
   		sub one.inferior @FRACTION three.inferior by onethird;
   		sub one.numerator @FRACTION three.numerator by onethird; 
   		sub one.denominator @FRACTION three.denominator by onethird;
   } fractions_onethird; 
      
   lookup fractions_onequarter {
   		sub one @FRACTION four by onequarter;
   		sub one.fitted @FRACTION four.fitted by onequarter;
   		sub one.oldstyle @FRACTION four.oldstyle by onequarter;
   		sub one.taboldstyle @FRACTION four.taboldstyle by onequarter;
   		sub one.sc @FRACTION four.sc by onequarter;
   		sub one.superior @FRACTION four.superior by onequarter;
   		sub one.inferior @FRACTION four.inferior by onequarter;
   		sub one.numerator @FRACTION four.numerator by onequarter; 
   		sub one.denominator @FRACTION four.denominator by onequarter;
   } fractions_onequarter; 
      
   lookup fractions_onefifth {
   		sub one @FRACTION five by onefifth;
   		sub one.fitted @FRACTION five.fitted by onefifth;
   		sub one.oldstyle @FRACTION five.oldstyle by onefifth;
   		sub one.taboldstyle @FRACTION five.taboldstyle by onefifth;
   		sub one.sc @FRACTION five.sc by onefifth;
   		sub one.superior @FRACTION five.superior by onefifth;
   		sub one.inferior @FRACTION five.inferior by onefifth;
   		sub one.numerator @FRACTION five.numerator by onefifth; 
   sub one.denominator @FRACTION five.denominator by onefifth;
   } fractions_onefifth; 
      
   lookup fractions_onesixth {
   		sub one @FRACTION six by onesixth;
   		sub one.fitted @FRACTION six.fitted by onesixth;
   		sub one.oldstyle @FRACTION six.oldstyle by onesixth;
   		sub one.taboldstyle @FRACTION six.taboldstyle by onesixth;
   		sub one.sc @FRACTION six.sc by onesixth;
   		sub one.superior @FRACTION six.superior by onesixth;
   		sub one.inferior @FRACTION six.inferior by onesixth;
   		sub one.numerator @FRACTION six.numerator by onesixth; 
   		sub one.denominator @FRACTION six.denominator by onesixth;
   } fractions_onesixth; 
      
   lookup fractions_oneeighth {
   		sub one @FRACTION eight by oneeighth;
   		sub one.fitted @FRACTION eight.fitted by oneeighth;
   		sub one.oldstyle @FRACTION eight.oldstyle by oneeighth;
   		sub one.taboldstyle @FRACTION eight.taboldstyle by oneeighth;
   		sub one.sc @FRACTION eight.sc by oneeighth;
   		sub one.superior @FRACTION eight.superior by oneeighth;
   		sub one.inferior @FRACTION eight.inferior by oneeighth;
   		sub one.numerator @FRACTION eight.numerator by oneeighth; 
   		sub one.denominator @FRACTION eight.denominator by oneeighth;
   } fractions_oneeighth; 
       
   lookup fractions_twothirds {
   		sub two @FRACTION three by twothirds;
   		sub two.fitted @FRACTION three.fitted by twothirds;
   		sub two.oldstyle @FRACTION three.oldstyle by twothirds;
   		sub two.taboldstyle @FRACTION three.taboldstyle by twothirds;
   		sub two.sc @FRACTION three.sc by twothirds;
   		sub two.superior @FRACTION three.superior by twothirds;
   		sub two.inferior @FRACTION three.inferior by twothirds;
   		sub two.numerator @FRACTION three.numerator by twothirds; 
   		sub two.denominator @FRACTION three.denominator by twothirds;
   } fractions_twothirds; 
        
   lookup fractions_twofifth {
   		sub two @FRACTION five by twofifth;
   		sub two.fitted @FRACTION five.fitted by twofifth;
   		sub two.oldstyle @FRACTION five.oldstyle by twofifth;
   		sub two.taboldstyle @FRACTION five.taboldstyle by twofifth;
   		sub two.sc @FRACTION five.sc by twofifth;
   		sub two.superior @FRACTION five.superior by twofifth;
   		sub two.inferior @FRACTION five.inferior by twofifth;
   		sub two.numerator @FRACTION five.numerator by twofifth; 
   		sub two.denominator @FRACTION five.denominator by twofifth;
   } fractions_twofifth; 
       
   lookup fractions_threequarters {
   		sub three @FRACTION four by threequarters;
   		sub three.fitted @FRACTION four.fitted by threequarters;
   		sub three.oldstyle @FRACTION four.oldstyle by threequarters;
   		sub three.taboldstyle @FRACTION four.taboldstyle by threequarters;
   		sub three.sc @FRACTION four.sc by threequarters;
   		sub three.superior @FRACTION four.superior by threequarters;
   		sub three.inferior @FRACTION four.inferior by threequarters;
   		sub three.numerator @FRACTION four.numerator by threequarters; 
   		sub three.denominator @FRACTION four.denominator by threequarters;
   } fractions_threequarters; 
      
   lookup fractions_threefifth {
   		sub three @FRACTION five by threefifth;
   		sub three.fitted @FRACTION five.fitted by threefifth;
   		sub three.oldstyle @FRACTION five.oldstyle by threefifth;
   		sub three.taboldstyle @FRACTION five.taboldstyle by threefifth;
   		sub three.sc @FRACTION five.sc by threefifth;
   		sub three.superior @FRACTION five.superior by threefifth;
   		sub three.inferior @FRACTION five.inferior by threefifth;
   		sub three.numerator @FRACTION five.numerator by threefifth; 
   		sub three.denominator @FRACTION five.denominator by threefifth;
   } fractions_threefifth; 
     
   lookup fractions_threeeighths {
   		sub three @FRACTION eight by threeeighths;
   		sub three.fitted @FRACTION eight.fitted by threeeighths;
   		sub three.oldstyle @FRACTION eight.oldstyle by threeeighths;
   		sub three.taboldstyle @FRACTION eight.taboldstyle by threeeighths;
   		sub three.sc @FRACTION eight.sc by threeeighths;
   		sub three.superior @FRACTION eight.superior by threeeighths;
   		sub three.inferior @FRACTION eight.inferior by threeeighths;
   		sub three.numerator @FRACTION eight.numerator by threeeighths; 
   		sub three.denominator @FRACTION eight.denominator by threeeighths;
   } fractions_threeeighths; 
   
   lookup fractions_fourfifth {
   		sub four @FRACTION five by fourfifth;
   		sub four.fitted @FRACTION five.fitted by fourfifth;
   		sub four.oldstyle @FRACTION five.oldstyle by fourfifth;
   		sub four.taboldstyle @FRACTION five.taboldstyle by fourfifth;
   		sub four.sc @FRACTION five.sc by fourfifth;
   		sub four.superior @FRACTION five.superior by fourfifth;
   		sub four.inferior @FRACTION five.inferior by fourfifth;
   		sub four.numerator @FRACTION five.numerator by fourfifth; 
   		sub four.denominator @FRACTION five.denominator by fourfifth;
   } fractions_fourfifth; 
    
   lookup fractions_fivesixth {
   		sub five @FRACTION six by fivesixth;
   		sub five.fitted @FRACTION six.fitted by fivesixth;
   		sub five.oldstyle @FRACTION six.oldstyle by fivesixth;
   		sub five.taboldstyle @FRACTION six.taboldstyle by fivesixth;
   		sub five.sc @FRACTION six.sc by fivesixth;
   		sub five.superior @FRACTION six.superior by fivesixth;
   		sub five.inferior @FRACTION six.inferior by fivesixth;
   		sub five.numerator @FRACTION six.numerator by fivesixth; 
   		sub five.denominator @FRACTION six.denominator by fivesixth;
   } fractions_fivesixth; 
     
   lookup fractions_fiveeighths {
   		sub five @FRACTION eight by fiveeighths;
   		sub five.fitted @FRACTION eight.fitted by fiveeighths;
   		sub five.oldstyle @FRACTION eight.oldstyle by fiveeighths;
   		sub five.taboldstyle @FRACTION eight.taboldstyle by fiveeighths;
   		sub five.sc @FRACTION eight.sc by fiveeighths;
   		sub five.superior @FRACTION eight.superior by fiveeighths;
   		sub five.inferior @FRACTION eight.inferior by fiveeighths;
   		sub five.numerator @FRACTION eight.numerator by fiveeighths; 
   		sub five.denominator @FRACTION eight.denominator by fiveeighths;
   } fractions_fiveeighths; 
   
   lookup fractions_seveneighths {
   		sub seven @FRACTION eight by seveneighths;
   		sub seven.fitted @FRACTION eight.fitted by seveneighths;
   		sub seven.oldstyle @FRACTION eight.oldstyle by seveneighths;
   		sub seven.taboldstyle @FRACTION eight.taboldstyle by seveneighths;
   		sub seven.sc @FRACTION eight.sc by seveneighths;
   		sub seven.superior @FRACTION eight.superior by seveneighths;
   		sub seven.inferior @FRACTION eight.inferior by seveneighths;
   		sub seven.numerator @FRACTION eight.numerator by seveneighths; 
   		sub seven.denominator @FRACTION eight.denominator by seveneighths;
   } fractions_seveneighths;    

} frac;

#---------------------------------------

feature NFRC {

    lookup fractions_percent;
    lookup fractions_perthousand;
    lookup fractions_oneone;
    lookup fractions_onehalf;
    lookup fractions_onethird;
    lookup fractions_onequarter;
    lookup fractions_onefifth;
    lookup fractions_onesixth;
    lookup fractions_oneeighth;
    lookup fractions_twothirds;
    lookup fractions_twofifth;
    lookup fractions_threequarters;
    lookup fractions_threefifth;
    lookup fractions_threeeighths;
    lookup fractions_fourfifth;
    lookup fractions_fivesixth;
    lookup fractions_fiveeighths;
    lookup fractions_seveneighths;

	sub oneone by oneone.nut;
	sub onehalf by onehalf.nut;
	sub onethird by onethird.nut;
	sub twothirds by twothirds.nut;
	sub onequarter by onequarter.nut;
	sub threequarters by threequarters.nut;
	sub onefifth by onefifth.nut;
	sub twofifth by twofifth.nut;
	sub threefifth by threefifth.nut;
	sub fourfifth by fourfifth.nut;
	sub onesixth by onesixth.nut;
	sub fivesixth by fivesixth.nut;
	sub oneeighth by oneeighth.nut;
	sub threeeighths by threeeighths.nut;
	sub fiveeighths by fiveeighths.nut;
	sub seveneighths by seveneighths.nut;
	sub fraction by fraction.nut;

} NFRC;

#---------------------------------------

# feature dpng {

# 	sub A E by AE;
# 	sub A e by AE;
# 	sub O E by OE;
# 	sub O e by OE;
# 	sub a e by ae;
# 	sub i j by ij;
# 	sub o e by oe;
# 	sub a.sc e.sc by ae.sc;
# 	sub o.sc e.sc by oe.sc;
# 	sub A e.sc by AE;
# 	sub O e.sc by OE;
# 	sub A.titling E.titling by AE.titling;
# 	sub O.titling E.titling by OE.titling;

# } dpng;

#---------------------------------------

feature liga {

	script DFLT;
    language dflt;
    
	lookup FI_LIGS {
	sub f f i by ffi;
	sub f i by fi;
	} FI_LIGS;
	
	lookup NOFI {
		sub f f b by f_f_b;
		sub f f f by f_f_f;
		sub f f h by f_f_h;
		sub f f j by f_f_j;
		sub f f k by f_f_k;
		sub f f l by ffl;
		sub f f t by f_f_t;
		sub f b by f_b;
		sub f f by ff;
		sub f h by f_h;
		sub f j by f_j;
		sub f k by f_k;
		sub f l by fl;
		sub f r by f_r;
		sub f t by f_t;
		sub f adieresis by f_adieresis;
		sub f odieresis by f_odieresis;
		sub f udieresis by f_udieresis;
	} NOFI;

	script latn;
    language dflt;
		lookup FI_LIGS; # call lookup defined for DFLT/dflt
    	lookup NOFI; # call lookup defined for DFLT/dflt

    language DEU include_dflt;
    language MOL include_dflt;
	language ROM include_dflt;
	language SRB include_dflt;

	language AZE exclude_dflt;
		lookup NOFI;
	language CRT exclude_dflt;
		lookup NOFI;
	language TRK exclude_dflt;
		lookup NOFI;

	script cyrl;
		lookup FI_LIGS;
		lookup NOFI;
	
	script grek;
		lookup FI_LIGS;
		lookup NOFI;
	
} liga;

#---------------------------------------

feature salt {

	sub @LETTERS_UC by @LETTERS_UC_ALT;
	sub @LETTERS_LC by @LETTERS_LC_ALT;
	sub @LETTERS_SC by @LETTERS_SC_ALT;
	
} salt;

#---------------------------------------

# Uses s.long to preserve the Unicode code point for the s.
# This feature is only supported by applications that support the Mac OS X native text engines.
# Also supported by TEXWorks/XeTex.
# For other applications the stylistic set ss03 can be used.

feature hist {
	
	sub s by s.long;
	sub s.long' f by s;
	sub s.long s.long' by s;
	sub f s.long' by s;
	ignore sub s.long' @LETTERS_LC;
	sub s.long' by s;
	
} hist;

#---------------------------------------

feature swsh {

	sub @LETTERS_UC by @LETTERS_UC_SWASH;
	sub @LETTERS_LC by @LETTERS_LC_SWASH;
	sub @LETTERS_SC by @LETTERS_SC_SWASH;

} swsh;

#---------------------------------------

feature titl {

	sub @LETTERS_UC by @LETTERS_UC_TITLING;
	sub @ACCENTS_UC by @ACCENTS_UC_TITLING;
	sub @PUNCT_UC by @PUNCT_UC_TITLING;
	sub @FIG_TAB_LINING by @FIG_TAB_LINING_TITLING;

} titl;

#---------------------------------------

feature dlig {

	sub T h by T_h;
	sub Tcommaaccent h by Tcommaaccent_h;
	sub Tcaron h by Tcaron_h;
	sub a s by a_s;
	sub c h by c_h;
	sub c k by c_k;
	sub c h by c_h;
	sub c t by c_t;
	sub e s by e_s;
	sub g g by g_g;
	sub g y by g_y;
	sub i s by i_s;
	sub s h by s_h;
	sub s k by s_k;
	sub s l by s_l;
	sub s p by s_p;
	sub s t by s_t;
	sub t h by t_h;
	sub t t by t_t;
	sub u s by u_s;
		
} dlig;

#---------------------------------------

# functions together with 'hist' feature

feature hlig {
	sub s.long f i by s.long_f_i;
	sub s.long f j by s.long_f_j;
	sub s.long f l by s.long_f_l;
	sub s.long s.long by s.long_s.long;
	sub s.long s.long i by s.long_s.long_i;
	sub s.long s.long l by s.long_s.long_l;
	sub s.long b by s.long_b;
	sub s.long f by s.long_f;
	sub s.long h by s.long_h;
	sub s.long i by s.long_i;
	sub s.long j by s.long_j;
	sub s.long k by s.long_k;
	sub s.long l by s.long_l;
	sub s.long t by s.long_t;
	sub s.long adieresis by s.long_adieresis;
	sub s.long odieresis by s.long_odieresis;
	sub s.long udieresis by s.long_udieresis;

} hlig;

#---------------------------------------

feature ordn {

	sub @FIGURES a' by ordfeminine;
	sub @FIGURES o' by ordmasculine;
	sub @FIGURES period a' by ordfeminine;
	sub @FIGURES period o' by ordmasculine;
	sub @FIG_TITLING period.titling a' by ordfeminine.titling;
	sub @FIG_TITLING period.titling o' by ordmasculine.titling;

} ordn;

#---------------------------------------

feature ornm {

sub bullet from @ORNAMENTS;

} ornm;

#---------------------------------------

feature zero {

	sub zero by zero.slash;
	sub zero.fitted by zero.slash;
	
} zero;

#---------------------------------------

# Stylistic sets

# As of the OpenType specification 1.6, descriptive names are allowed for stylistic substitution features.
# These names are specified within a feature block for a Stylistic Set feature. 
# The implementation will store the name strings in the name table, and will create a feature parameter data block which references them.
# http://www.adobe.com/devnet/opentype/afdko/topic_feature_file_syntax.html#8.c
#---------------------------------------

# Substitutes letters at the beginning of words with adapted versions.


# feature ss01 {

# featureNames {
# name "Initial letters";
# name 1 "Initial letters";
#  } ;

# ignore substitute @LETTERS_UC @LETTERS_UC_BEGINNING';
# substitute @LETTERS_UC_BEGINNING' by @LETTERS_UC_START;
# ignore substitute @LETTERS_LC @LETTERS_LC_BEGINNING';
# substitute @LETTERS_LC_BEGINNING' by @LETTERS_LC_START;
# ignore substitute @LETTERS_SC @LETTERS_SC_BEGINNING';
# substitute @LETTERS_SC_BEGINNING' by @LETTERS_SC_START;

# } ss01;

#---------------------------------------

# Substitutes letters at ending of words with adapted versions.

# feature ss02 {

# featureNames {
#       name "Final letters";
#         name 1 "Final letters";
#      } ;
# 
# ignore substitute @LETTERS_UC_ENDING' @LETTERS_UC;
# substitute @LETTERS_UC_ENDING' by @LETTERS_UC_END;
# ignore substitute @LETTERS_LC_ENDING' @LETTERS_LC;
# substitute @LETTERS_LC_ENDING' by @LETTERS_LC_END;
# ignore substitute @LETTERS_SC_ENDING' @LETTERS_SC;
# substitute @LETTERS_SC_ENDING' by @LETTERS_SC_END;
 
#  } ss02;

#---------------------------------------

# Alternative for applications that don't support the 'hist' feature.

feature ss03 {

#  	featureNames {
#         name "Long_s subsitution";
#          name 1 "Long_s subsitution";
#      } ;

sub s by s.long;
sub s.long' f by s;
sub s.long s.long' by s;
sub f s.long' by s;
ignore sub s.long' @LETTERS_LC;
sub s.long' by s;

} ss03;

#---------------------------------------

# Supplies alternatives for 'dlig' feature results.

feature ss04 {

#  featureNames {
#         name "Discretionary ligatures alternates";
#          name 1 "Discretionary ligatures alternates";
#      } ;

sub g_g by g_g.alt;
sub c_h by c_h.alt;
sub c_k by c_k.alt;
sub c_t by c_t.alt;
sub s_l by s_l.alt;
sub s_h by s_h.alt;
sub s_k by s_k.alt;
sub s_p by s_p.alt;
sub s_t by s_t.alt;
sub t_h by t_h.alt;
sub t_t by t_t.alt;
 
 } ss04;

#---------------------------------------

# ss05-ss10; Reserved for font-specific (contextual) alternates

#---------------------------------------

# Provides optional Russian Cyrillic alternates

feature ss11 {

script cyrl;
	language dflt;

# featureNames {
# name 3 1 0x409 "Cyrillic alternates";
# name 1 0 0 "Cyrillic alternates"; 
# };
    

sub afii10109 by afii10109.alt;	
sub afii10021 by afii10021.alt;
sub afii10024 by afii10024.alt;
sub afii10028 by afii10028.alt;
sub afii10029 by afii10029.alt;
sub afii10049 by afii10049.alt;
sub afii10058 by afii10058.alt;
sub afii10069 by afii10069.alt;
sub afii10106 by afii10106.alt;
sub afii10069 by afii10069.alt;	
sub afii10072 by afii10072.alt;	
sub afii10076 by afii10076.alt;
sub afii10029 by afii10029.alt;	
sub afii10097 by afii10097.alt;	
sub afii10069.sc by afii10069.alt.sc;	
sub afii10072.sc by afii10072.alt.sc;
sub afii10076.sc by afii10076.alt.sc;	
sub afii10077.sc by afii10077.alt.sc;	
sub afii10097.sc by afii10097.alt.sc;
sub afii10106.sc by afii10106.alt.sc;
sub afii10109.sc by afii10109.alt.sc;

} ss11;

#---------------------------------------

# Provides optional Bulgarian Cyrillic alternates

feature ss12 {

script cyrl;
 	language BGR;

# featureNames {
# name "Bulgarian Cyrillic alternates";
# name 1 "Bulgarian Cyrillic alternates";
#     } ;

sub afii10024 by afii10024.bul;
sub afii10028 by afii10028.bul;
sub afii10061 by afii10061.bul;
sub afii10029 by afii10029.bul;
sub afii10058 by afii10058.bul;
sub afii10027 by afii10027.bul;
sub afii10038 by afii10038.bul;
sub afii10062 by afii10062.bul;
sub afii10067 by afii10067.bul;
sub afii10068 by afii10068.bul;
sub afii10100 by afii10100.bul;
sub afii10069 by afii10069.bul;
sub afii10072 by afii10072.bul;
sub afii10076 by afii10076.bul;
sub afii10109 by afii10109.bul;
sub afii10077 by afii10077.bul;
sub afii10106 by afii10106.bul;
sub afii10079 by afii10079.bul;
sub afii10107 by afii10107.bul;
sub afii10074 by afii10074.bul;
sub afii10075 by afii10075.bul;
sub uni045D by uni045D.bul;
sub afii10081 by afii10081.bul;
sub afii10084 by afii10084.bul;
sub afii10086 by afii10086.bul;
sub afii10089 by afii10089.bul;
sub afii10193 by afii10193.bul;
sub afii10093 by afii10093.bul;
sub afii10092 by afii10092.bul;
sub afii10088 by afii10088.bul;
sub afii10090 by afii10090.bul;
sub afii10091 by afii10091.bul;
sub afii10110 by afii10110.bul;
sub afii10096 by afii10096.bul;
sub afii10073 by afii10073.bul;
sub afii10094 by afii10094.bul;
sub afii10072 by afii10072.sc.bul;
sub afii10076 by afii10076.sc.bul;
sub afii10109 by afii10109.sc.bul;
sub afii10077 by afii10077.sc.bul;
sub afii10106 by afii10106.sc.bul;
sub afii10075 by afii10075.sc.bul;
sub afii10086 by afii10086.sc.bul;
sub afii10110 by afii10110.sc.bul;
	
} ss12;

#---------------------------------------

# ss13-ss20; To be defined

#---------------------------------------

# Enabling the following options will have as a result that the information is taken 
# from the UFM, PAR and kern files. When disabled, the naming and kerning information will
# be taken from this features file.
 
# The CFF table info is always taken from the UFM file's CFF table info, because CFF is just 
# a compressed copy of the intermediate Type1 font temporarily created with the
# URW++ Type1 tool, which 'knows' nothing about features files.
# As long as one doesn't specify a features file with it's own name table block, CFF 
# names and names from "featname.txt" are compatible anyway because they are based
# on the same data source, i.e., UFM and PAR.

# The default features file contains no real data but simply includes a set of 4 
# other temporarily created feature files "featkern.txt", "feathead.txt", 
# "featname.txt", and "featos2.txt". 

# 'featkern.txt' contains a 'kern' feature block with kerning data based on the 
# file selected as "Data Source for Kerning" in the 'Advanced ...' UFM dialog. KPX 
# pairs from AFM or TFM will be converted to feature positioning ('pos') statements.

# 'feathead.txt', 'featname.txt', and 'featos2.txt' contain table blocks for the 
# 'head', 'name' and 'OS/2' table, with all entries based on the UFM and PAR 
# files, i.e., anything to be viewed and edited in the "Advanced ..." dialog.

# Name IDs from "featname.txt" are in the range of 1-6 (the standard range).
# The original Adobe HOT tool would not take these names from a features file. 
# The modified URW++ HOT tool will take any ID but you will get a warning that 
# the respective name may not be compatible with some names in the 'CFF' table.

# Note: for use with OTM, the following statements should be all disabled.

# --- POSITIONING

include (featkern.txt);

# --- TABLE DATA

include (featos2.txt);

include (feathead.txt);

include (featname.txt);

#---------------------------------------

# --- End of file
