| Hex Data | Source | Comments | 
| GSUBHeader | ||
| TheGSUBHeader | ;GSUBHeader table definition | |
| 00010000 | 0x00010000 | ;version | 
| 000A | TheScriptList | ;offset to ScriptList table | 
| 001E | TheFeatureList | ;offset to FeatureList table | 
| 002C | TheLookupList | ;offset to LookupList table | 
| Hex Data | Source | Comments | 
| SingleSubstFormat1 | ||
| LiningNumeralSubtable | ;SingleSubst subtable definition | |
| 0001 | 1 | ;SubstFormat, ranges | 
| 0006 | LiningNumeralCoverage | ;offset to Coverage table | 
| ; for input glyphs | ||
| 00C0 | 192 | ;DeltaGlyphID = 192 | 
| ; add to each input glyph index | ||
| ; to produce output glyph | ||
| ; index | ||
| CoverageFormat2 | ||
| LiningNumeralCoverage | ;Coverage table definition | |
| 0002 | 2 | ;CoverageFormat, ranges | 
| 
 | 1 | ;RangeCount | 
| 
 | ;RangeRecord[0] | |
| 004E | 78 | ;Start GlyphID | 
| ; for numeral zero glyph | ||
| 0058 | 87 | ;End GlyphID | 
| ; for numeral nine glyph | ||
| 0000 | 0 | ;StartCoverageIndex | 
| ; first CoverageIndex = 0 | 
| Hex Data | Source | Comments | 
| SingleSubstFormat2 | ||
| VerticalPunctuationSubtable | ;SingleSubst subtable definition | |
| 0002 | 2 | ;SubstFormat lists | 
| 000E | VerticalPunctuationCoverage | ;offset to Coverage table | 
| 0004 | 4 | ;GlyphCount | 
| ; equals GlyphCount in | ||
| ; Coverage table | ||
| 0131 | VerticalOpenBracketGlyph | ;Substitute[0] | 
| ; ordered by Coverage Index | ||
| 0135 | VerticalClosedBracketGlyph | ;Substitute[1] | 
| 013E | VerticalOpenParenthesisGlyph | ;Substitute[2] | 
| 0143 | VerticalClosedParenthesisGlyph | ;Substitute[3] | 
| 
 | ||
| CoverageFormat1 | ||
| VerticalPunctuationCoverage | ;Coverage table definition | |
| 0001 | 1 | ;CoverageFormat | 
| ; lists | ||
| 0004 | 4 | ;GlyphCount | 
| 003C | HorizontalOpenBracketGlyph | ;GlyphArray[0] | 
| ; ordered by GlyphID | ||
| 0040 | HorizontalClosedBracketGlyph | ;GlyphArray[1] | 
| 004B | HorizontalOpenParenthesisGlyph | ;GlyphArray[2] | 
| 004F | HorizontalClosedParenthesisGlyph | ;GlyphArray[3] | 
| Hex Data | Source | Comments | 
| MultipleSubstFormat1 | ||
| FfiDecompSubtable | ;MultipleSubst subtable | |
| ; definition | ||
| 0001 | 1 | ;SubstFormat | 
| 0008 | FfiDecompCoverage | ;offset to Coverage table | 
| 0001 | 1 | ;SequenceCount | 
| ; equals GlyphCount in | ||
| ; Coverage table | ||
| 000E | FfiDecompSequence | ;offset to Sequence[0] table | 
| CoverageFormat1 | ||
| FfiDecompCoverage | ;Coverage table definition | |
| 0001 | 1 | ;CoverageFormat | 
| ; lists | ||
| 0001 | 1 | ;GlyphCount | 
| 00F1 | ffiGlyphID | ;ligature glyph | 
| Sequence | ||
| FfiDecompSequence | ;Sequence table definition | |
| 0003 | 3 | ;GlyphCount | 
| 001A | fGlyphID | ;first glyph in sequence order | 
| 001A | fGlyphID | ;second glyph | 
| 001D | iGlyphID | ;third glyph | 
| Hex Data | Source | Comments | 
| AlternateSubstFormat1 | ||
| AltAmpersandSubtable | ;AlternateSubstFormat1 subtable ;definition | |
| 0001 | 1 | ;SubstFormat | 
| 0008 | AltAmpersandCoverage | ;offset to Coverage table | 
| 0001 | 1 | ;AlternateSetCnt | 
| ; equals GlyphCount in | ||
| ; Coverage table | ||
| 000E | AltAmpersandSet | ;offset to AlternateSet[0] | 
| ; table | ||
| 
 | ||
| CoverageFormat1 | ||
| AltAmpersandCoverage | ;Coverage table definition | |
| 0001 | 1 | ;CoverageFormat | 
| 0001 | 1 | ;GlyphCount | 
| 003A | DefaultAmpersandGlyphID | ;GlyphArray[0] | 
| AlternateSet | ||
| AltAmpersandSet | ;AlternateSet table definition | |
| 0002 | 2 | ;GlyphCount | 
| 00C9 | AltAmpersand1GlyphID | ;offset to Alternate[0] | 
| ; in arbitrary order | ||
| 00CA | AltAmpersand2GlyphID | ;offset to Alternate[1] | 
| 
 | 
| Hex Data | Source | Comments | 
| LigatureSubstFormat1 | ||
| LigaturesSubtable | ;LigatureSubstFormat1 subtable | |
| ; definition | ||
| 0001 | 1 | ;SubstFormat | 
| 000A | LigaturesCoverage | ;offset to Coverage table | 
| 0002 | 2 | ;LigSetCount | 
| 0014 | ELigaturesSet | ;offset to LigatureSet[0] table | 
| 
 | ; in Coverage Index order | |
| 0020 | FLigaturesSet | ;offset to LigatureSet[1] table | 
| CoverageFormat2 | ||
| LigaturesCoverage | ;Coverage table definition | |
| 0002 | 2 | ;CoverageFormat, ranges | 
| 0001 | 1 | ;RangeCount | 
| ;RangeRecord[0] | ||
| 0019 | eGlyphID | ;Start, first GlyphID | 
| 001A | fGlyphID | ;End, last GlyphID in range | 
| 0000 | 0 | ;StartCoverageIndex | 
| 
 | ; coverage index of start | |
| ; glyphID | ||
| LigatureSet | ||
| ELigaturesSet | ;LigatureSet table definition | |
| 
 | ; all ligatures that start | |
| ; with e | ||
| 0001 | 1 | ;LigatureCount | 
| 0004 | etcLigature | ;offset to Ligature[0] table | 
| 
 | ||
| Ligature | ||
| etcLigature | ;Ligature table definition | |
| 015B | etcGlyphID | ;LigGlyph | 
| 
 | ;output GlyphID | |
| 0003 | 3 | ;CompCount | 
| ; number of components | ||
| 0028 | tGlyphID | ;Component[1] | 
| 
 | ; second component in ligature | |
| 0017 | cGlyphID | ;Component[2 | 
| 
 | ; third component in ligature | |
| LigatureSet | ||
| FLigaturesSet | ;LigatureSet table definition | |
| ; all ligatures start with f | ||
| 0002 | 2 | ;LigatureCount | 
| 0006 | ffiLigature | ;offset to Ligature[0] table | 
| 
 | ; listed first because ffi | |
| ; ligature is preferred to | ||
| ; fi ligature | ||
| 000E | fiLigature | ;offset to Ligature[1] table | 
| 
 | ||
| Ligature | ||
| ffiLigature | ;Ligature table definition | |
| 00F1 | ffiGlyphID | ;LigGlyph, output GlyphID | 
| 0003 | 3 | ;CompCount | 
| 001A | fGlyphID | ;Component[1] | 
| 
 | ; second component in ligature | |
| 001D | iGlyphID | ;Component[2] | 
| 
 | ; third component in ligature | |
| 
 | ||
| Ligature | ||
| fiLigature | ;Ligature table definition | |
| 00F0 | fiGlyphID | ;LigGlyph, output GlyphID | 
| 0002 | 2 | ;CompCount | 
| 001D | iGlyphID | ;Component[1] | 
| 
 | ; second component in ligature | 
| Hex Data | Source | Comments | 
| ContextSubstFormat1 | ||
| DashSubtable | ;ContextSubstFormat1 subtable | |
| ; definition | ||
| ; for Lookup[0], DashLookup | ||
| 0001 | 1 | ;SubstFormat | 
| 000A | DashCoverage | ;offset to Coverage table | 
| 0002 | 2 | ;SubRuleSetCount | 
| 0012 | SpaceAndDashSubRuleSet | ;offset to SubRuleSet[0] | 
| ; ordered by Coverage Index | ||
| 0020 | DashAndSpaceSubRuleSet | ;offset to SubRuleSet[1] | 
| CoverageFormat1 | ||
| DashCoverage | ;Coverage table definition | |
| 0001 | 1 | ;CoverageFormat | 
| ; lists | ||
| 0002 | 2 | ;GlyphCount | 
| 0028 | SpaceGlyph | ;GlyphArray[0] | 
| ; in numeric order | ||
| 005D | DashGlyph | ;GlyphArray[1] | 
| ;dash GlyphID | ||
| 
 | ||
| SubRuleSet | ||
| SpaceAndDashSubRuleSet | ;SubRuleSet[0] table definition | |
| 0001 | 1 | ;SubRuleCount | 
| 0004 | SpaceAndDashSubRule | ;offset to SubRule[0] | 
| ; ordered by preference | ||
| SubRule | ||
| SpaceAndDashSubRule | ;SubRule[0] table definition | |
| 0002 | 2 | ;GlyphCount | 
| ;number in input sequence | ||
| 0001 | 1 | ;SubstCount | 
| 005D | DashGlyph | ;Input[1] | 
| ; starting with second glyph | ||
| ; SpaceGlyph in Coverage table | ||
| ; is first glyph | ||
| ;SubstLookupRecord[0] | ||
| 0000 | 0 | ;SequenceIndex | 
| ; substitution at first glyph | ||
| ; position (0) | ||
| 0001 | 1 | ;LookupListIndex | 
| ; index for | ||
| ; SpaceToThinSpaceLookup in | ||
| ; LookupList | ||
| SubRuleSet | ||
| DashAndSpaceSubRuleSet | ;SubRuleSet[0] table definition | |
| 0001 | 1 | ;SubRuleCount | 
| 0004 | DashAndSpaceSubRule | ;offset to SubRule[0] | 
| ; ordered by preference | ||
| SubRule | ||
| DashAndSpaceSubRule | ;SubRule[0] table definition | |
| 0002 | 2 | ;GlyphCount | 
| ; number in the input glyph | ||
| ; sequence | ||
| 0001 | 1 | ;SubstCount | 
| 0028 | SpaceGlyph | ;Input[1] | 
| ; starting with second glyph | ||
| ;SubstLookupRecord definition | ||
| 0001 | 1 | ;SequenceIndex | 
| ;substitution at second glyph | ||
| ; position(1) | ||
| 0001 | 1 | ;LookupListIndex | 
| ; for SpaceToThinSpaceLookup | 
| Hex Data | Source | Comments | 
| ContextSubstFormat2 | ||
| SetMarksHighSubtable | ;ContextSubstFormat2 subtable | |
| ; definition | ||
| 0002 | 2 | ;SubstFormat | 
| 0010 | SetMarksHighCoverage | ;offset to Coverage table | 
| 001C | SetMarksHighClassDef | ;offset to Class Def table | 
| 0004 | 4 | ;SubClassSetCnt | 
| 0000 | NULL | ;offset to SubClassSet[0] table | 
| ; no contexts that begin with | ||
| ; Class 0 glyphs are defined | ||
| 0000 | NULL | ;offset to SubClassSet[1] table | 
| 
 | ; no contexts that begin with | |
| ; Class 1 glyphs are defined | ||
| 0032 | SetMarksHighSubClassSet2 | ;offset to SubClassSet[2] table | 
| 
 | ; for contexts that begin with | |
| ; Class 2 glyphs (high base | ||
| ; glyphs) | ||
| 0040 | SetMarksVeryHighSubClassSet3 | ;offset to SubClassSet[3] table | 
| 
 | ; for contexts that begin with | |
| ; Class 3 glyphs (very high | ||
| ; base glyphs) | ||
| 
 | ||
| CoverageFormat1 | ||
| SetMarksHighCoverage | ;Coverage table definition | |
| 0001 | 1 | ;CoverageFormat, lists | 
| 0004 | 4 | ;GlyphCount | 
| 0030 | tahGlyphID | ;GlyphArray[0], high base glyph | 
| 0031 | dhahGlyphID | ;GlyphArray[1], high base glyph | 
| 0040 | cafGlyphID | ;GlyphArray[2], very high | 
| ; base glyph | ||
| 0041 | gafGlyphID | ;GlyphArray[3], very high | 
| ; base glyph | ||
| ClassDefFormat2 | ||
| SetMarksHighClassDef | ;Class table definition | |
| 0002 | 2 | ;Class Format, ranges | 
| 0003 | 3 | ;ClassRangeCount | 
| ;ClassRange[0] | ||
| ; ordered by StartGlyphID | ||
| ;for Class 2, high base glyphs | ||
| 0030 | tahGlyphID | ;Start | 
| 
 | ; first Glyph ID in range | |
| 0031 | dhahGlyphID | ;End | 
| ; last Glyph ID in range | ||
| 0002 | 2 | ;Class | 
| 
 | ;ClassRange[1] | |
| ; for Class 3, very high | ||
| ; base glyphs | ||
| 0040 | cafGlyphID | ;Start | 
| 
 | ; first Glyph ID in the range | |
| 0041 | gafGlyphID | ;End | 
| 
 | ; last Glyph ID in the range | |
| 0003 | 3 | ;Class | 
| 
 | ;ClassRange[2] | |
| ; for Class 1, mark gyphs | ||
| 00D2 | fathatanDefaultGlyphID | ;Start | 
| 
 | ; first Glyph ID in range | |
| 
 | ; default fathatan mark | |
| 00D3 | dammatanDefaultGlyphID | ;End | 
| 
 | ; last Glyph ID in the range | |
| 
 | ; default dammatan mark | |
| 0001 | 1 | ;Class | 
| SubClassSet | ||
| SetMarksHighSubClassSet2 | ;SubClassSet[2] table definition | |
| 
 | ; all contexts that begin with | |
| ;Class 2 glyphs | ||
| 0001 | 1 | ;SubClassRuleCnt | 
| 0004 | SetMarksHighSubClassRule2 | ;offset to SubClassRule[0] table | 
| ; ordered by preference | ||
| SubClassRule | ||
| SetMarksHighSubClassRule2 | ;SubClassRule[0] table | |
| ; definition | ||
| 
 | ;Class 2 glyph (high base) | |
| ; glyph followed by a Class 1 | ||
| ; glyph (mark) | ||
| 0002 | 2 | ;GlyphCount | 
| 0001 | 1 | ;SubstCount | 
| 0001 | 1 | ;offset to Class[1] | 
| ; beginning with the second | ||
| ; Class in the context | ||
| ; sequence (mark = Class 1) | ||
| 
 | ;begin SubstLookupRecord array | |
| 
 | ; in design order | |
| 
 | ;SubstLookupRecord[0] | |
| 0001 | 1 | ;SequenceIndex | 
| 
 | ; apply substitution to | |
| ; position 2, a mark | ||
| 0001 | 1 | ;LookupListIndex | 
| SubClassSet | ||
| SetMarksVeryHighSubClassSet3 | ;SubClassSet[3] table definition | |
| 
 | ; all contexts that begin with | |
| ; Class 3 glyphs | ||
| 0001 | 1 | ;SubClassRuleCnt | 
| 0004 | SetMarksVeryHighSubClassRule3 | ;offset to SubClassRule[0] table | 
| ; ordered by preference | ||
| SubClassRule | ||
| SetMarksVeryHighSubClassRule3 | ;SubClassRule[0] table | |
| ; definition | ||
| 
 | ;Class 3 glyph (very high base | |
| ; glyph) followed by a Class 1 | ||
| ; glyph (mark) | ||
| 0002 | 2 | ;GlyphCount | 
| 0001 | 1 | ;SubstCount | 
| 0001 | 1 | ;offset to Class[1] | 
| ; beginning with the second | ||
| ; Class in the context | ||
| ; sequence = marks, Class 1 | ||
| ;begin SubstLookupRecord array | ||
| 
 | ; in design order | |
| 
 | ;SubstLookupRecord[0] | |
| 0001 | 1 | ;SequenceIndex | 
| 
 | ;apply substitution to position | |
| ; 2, second glyph class (mark) | ||
| 0002 | 2 | ;LookupListIndex | 
| Hex Data | Source | Comments | 
| ContextSubstFormat3 | ||
| SwashSubtable | ;ContextSubstFormat3 subtable | |
| ; definition | ||
| 0003 | 3 | ;SubstFormat | 
| 0003 | 3 | ;GlyphCount | 
| ; in input glyph sequence | ||
| 0002 | 2 | ;SubstCount | 
| 0030 | AscenderDescenderCoverage | ;offset to Coverage[0] table | 
| ; in context sequence order | ||
| 004C | XheightCoverage | ;offset to Coverage[1] table | 
| 006E | DescenderCoverage | ;offset to Coverage[2] table | 
| ;SubstLookupRecord[0] | ||
| ; in glyph position order | ||
| 0000 | 0 | ;SequenceIndex | 
| 0001 | 1 | ;LookupListIndex | 
| ;single substitution to output | ||
| ; ascender or descender swash | ||
| ;SubstLookupRecord[1] | ||
| 0002 | 2 | ;SequenceIndex | 
| 0002 | 2 | ;LookupListIndex | 
| ; single substitution to output | ||
| ; descender swash | ||
| CoverageFormat1 | ||
| AscenderDescenderCoverage | ;Coverage table definition | |
| 0001 | 1 | ;CoverageFormat, lists | 
| 000C | 12 | ;GlyphCount | 
| 0033 | bGlyphID | ;GlyphArray[0] | 
| ; in GlyphID order | ||
| 0035 | dGlyphID | ;GlyphArray[1] | 
| 0037 | fGlyphID | ;GlyphArray[2] | 
| 0038 | gGlyphID | ;GlyphArray[3] | 
| 0039 | hGlyphID | ;GlyphArray[4] | 
| 003B | jGlyphID | ;GlyphArray[5] | 
| 003C | kGlyphID | ;GlyphArray[6] | 
| 003D | lGlyphID | ;GlyphArray[7] | 
| 0041 | pGlyphID | ;GlyphArray[8] | 
| 0042 | qGlyphID | ;GlyphArray[9] | 
| 0045 | tGlyphID | ;GlyphArray[10] | 
| 004A | yGlyphID | ;GlyphArray[11] | 
| CoverageFormat1 | ||
| XheightCoverage | ;Coverage table definition | |
| 0001 | 1 | ;CoverageFormat, lists | 
| 000F | 15 | ;GlyphCount | 
| 0032 | aGlyphID | ;GlyphArray[0] | 
| ; in GlyphID order | ||
| 0034 | cGlyphID | ;GlyphArray[1] | 
| 0036 | eGlyphID | ;GlyphArray[2] | 
| 003A | iGlyphID | ;GlyphArray[3] | 
| 003E | mGlyphID | ;GlyphArray[4] | 
| 003F | nGlyphID | ;GlyphArray[5] | 
| 0040 | oGlyphID | ;GlyphArray[6] | 
| 0043 | rGlyphID | ;GlyphArray[7] | 
| 0044 | sGlyphID | ;GlyphArray[8] | 
| 0045 | tGlyphID | ;GlyphArray[9] | 
| 0046 | uGlyphID | ;GlyphArray[10] | 
| 0047 | vGlyphID | ;GlyphArray[11] | 
| 0048 | wGlyphID | ;GlyphArray[12] | 
| 0049 | xGlyphID | ;GlyphArray[13] | 
| 004B | zGlyphID | ;GlyphArray[14] | 
| CoverageFormat1 | ||
| DescenderCoverage | ;Coverage table definition | |
| 0001 | 1 | ;CoverageFormat, lists | 
| 0005 | 5 | ;GlyphCount | 
| 0038 | gGlyphID | ;GlyphArray[0] | 
| ; in GlyphID order | ||
| 003B | jGlyphID | ;GlyphArray[1] | 
| 0041 | pGlyphID | ;GlyphArray[2] | 
| 0042 | qGlyphID | ;GlyphArray[3] | 
| 004A | yGlyphID | ;GlyphArray[4] |