<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Helvetica;
        panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Aptos;}
@font-face
        {font-family:Helvetica-Bold;
        panose-1:0 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Helvetica Light";}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Aptos",sans-serif;
        mso-ligatures:standardcontextual;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#467886;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        font-size:11.0pt;
        font-family:"Aptos",sans-serif;
        mso-ligatures:standardcontextual;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Aptos",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:11.0pt;
        font-family:"Aptos",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:467433622;
        mso-list-type:hybrid;
        mso-list-template-ids:-948384238 -1609550464 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l0:level1
        {mso-level-start-at:0;
        mso-level-number-format:bullet;
        mso-level-text:-;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Calibri",sans-serif;
        mso-fareast-font-family:"Times New Roman";}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l1
        {mso-list-id:1861505696;
        mso-list-template-ids:986604036;}
@list l1:level1
        {mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level2
        {mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level3
        {mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level4
        {mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level5
        {mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level6
        {mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level7
        {mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level8
        {mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level9
        {mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#467886" vlink="#96607D" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN-CA">During the recent AHG meeting, I mentioned that Apple, Adobe and Microsoft, some years ago, had started discussing a ‘dmap’ (delta character map) table proposal. This was in late fall of 2016; the focus was on pan-CJK
 fonts, and in that timeframe Ken Lunde has submitted a proposal to UTC (</span><a href="https://www.unicode.org/L2/L2016/16063-pancjkv-ivd-collection.pdf">L2/16-063 Proposal to accept the submission to register the “PanCJKV” IVD collection</a>) to define variation
 sequences for ideographs that designated a range of variation selector characters to correspond to several regions for which regional glyph variants of CJK ideographs might need to be supported. I managed to find an archive of some emails from discussions
 at the time, so can summarize:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">The aim was to be able to support distinct fonts for regional CJK variants without duplication of data. A TTC could allow de-duplication of glyph data, but there would be other duplication. We agreed the biggest concern was with ‘cmap’
 data: If any one of the regional variant fonts in the collection were taken as a point of reference, then any of the other regional variants would have many of the same mappings (perhaps most), though not all the same mappings. But there wasn’t any existing
 means to share common mappings across fonts while there were also some different mappings. Dwane Robinson suggested that we define a new ‘dmap’ table that uses ‘cmap’ formats but is just used to describe the differences in mappings from a common ‘cmap’.
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA">We agreed that a ‘dmap’ table doesn’t need the duplication of different platforms/encodings, and that we can converge on only one platform/encoding
 (hence, no encoding records are necessary). We discussed format 4 versus 12, and agreed to allow either, but that both are never required. Now, we had teleconfs between Apple and MS, but the emails I found indicate that Behdad was also kept informed: one of
 the emails records that Behdad requested that format 13 also be allowed.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA">We hadn’t settled, however, on what to do about format 14 subtables. It wasn’t a priority for Apple at the time, but it seemed like it would be incomplete
 if we ignored it. Knowing that Ken Lunde was dealing a lot with VSes and also working on pan CJK Source Han Sans CJK, we brought Adobe into our discussion at that point.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA">The issue with format 14 is that it divides variation sequences into two groups: (i) VSes that map to the same glyph already mapped in a format 4
 or 12 subtable (DefaultUVS), and (ii) VSes that map to a different glyph. Certainly the default mappings would be different in the various regional variant fonts, and some of the non-default mappings could also be different. (Even if a given VS never mapped
 to different glyphs in the different fonts, the fonts could still differ in what VSes they need to support.) So it’s necessary to resolve
</span><span style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA">how a dmap/14 subtable should interacts with a cmap/4 (or cmap/12) subtable, with a cmap/14 subtable, with a dmap/4 (or dmap/12) subtable, and with a dmap/14 subtable.
 One possible approach would be that the dmap/14 subtable completely supersedes the cmap/14 subtable (i.e., the latter is not used at all, and there is no de-duplication of that data). Another approach could be that a dmap/14 subtable complements the cmap/14
 subtable by providing select replacement mappings (a delta—though there are still further details about how that would work exactly).
</span><span style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA">There were some useful points brought up along the way:
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA"><o:p> </o:p></span></p>
<ul style="margin-top:0in" type="disc">
<li class="MsoListParagraph" style="margin-left:0in;mso-list:l0 level1 lfo1"><span style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA">Ned Holbrook pointed out that the format 14 DefaultUVS subtable is just a space-saving variant
 of the NonDevaultUVS subtable. A font doesn’t need to have any DefaultUVS table: the same sequences could be handled in NonDefaultUVS subtables — less efficiently… _<i>in a single font</i>_.<o:p></o:p></span></li><li class="MsoListParagraph" style="margin-left:0in;mso-list:l0 level1 lfo1"><span style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA">For CJK, Ken Lunde pointed out that there are two kinds of UVSes to consider:
<o:p></o:p></span></li><ul style="margin-top:0in" type="circle">
<li class="MsoListParagraph" style="margin-left:0in;mso-list:l0 level2 lfo1"><span style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA">“Standardized” VSs: these are defined in the Unicode Standard (see
</span><a href="https://www.unicode.org/Public/UCD/latest/ucd/StandardizedVariants.txt">unicode.org/Public/UCD/latest/ucd/StandardizedVariants.txt</a>) for CJK Compatibility Ideographs. They are defined in Unicode in a region-independent manner, but most represent
 region-specific glyphs.<span style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA"><o:p></o:p></span></li><li class="MsoListParagraph" style="margin-left:0in;mso-list:l0 level2 lfo1">“Ideographic” VSes: these are VSes registered in the Ideographic Variation Database (<a href="https://www.unicode.org/ivd/">Ideographic Variation Database (unicode.org)</a>) in region-specific
 collections. <span style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA">
<o:p></o:p></span></li></ul>
</ul>
<p class="MsoListParagraph"><span style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA">Because of the nature of each type, Ken thought there might be limited sharing across fonts. (E.g., at least some font developers would want
 to support a given IVS collection only in the one regional font for the corresponding region.) He did identify cases, however, in which the same SVS would need to map to different glyphs in different fonts.<o:p></o:p></span></p>
<ul style="margin-top:0in" type="disc">
<li class="MsoListParagraph" style="margin-left:0in;mso-list:l0 level1 lfo1"><span style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA">Again, for CJK, there would be cases in which different fonts would need to support the same
 VSes, but they would differ wrt DefaultUVS vs. NonDefaultUVS mappings.<o:p></o:p></span></li></ul>
<p class="MsoNormal"><span style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA">Ken also called out some other uses in email exchanges. It all suggested that an ideal solution
</span><span style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA">would make it possible to construct a collection file in which
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA">- two or more fonts can share some UVS mapping data while also having some font-specific mapping data; and<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA">- it's also possible to have other fonts that do not share any UVS mapping data with other fonts.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA">That would allow the fonts to support only UVSs that are relevant for their respective markets, while also having an efficiency benefit from data-sharing
 between certain of the fonts.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:JA"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA">That was in December 2016. We ran into end-of-year holidays and never resumed to closed on an approach that optimizes size of VS mapping data.
<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA">The following is the last draft proposal that we exchanged.
<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA">—-<o:p></o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:13.5pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none">dmap - Character to Glyph Index Differences Table</span></b><span style="font-size:13.5pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:8.5pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none">This table is an optional adjunct to the ‘cmap’ table defining differences from the nominal mappings in order to increase sharing of the ‘cmap’
 itself across fonts in a TTC.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none">If a font production tool determines that the ‘cmap’ tables across the fonts in a TTC are largely but not entirely identical, it can choose
 one font to be used as the basis for the others in terms of character to glyph index mapping, expressing the mappings of the other fonts using only the mappings that are different from those of the former font. An example would be a CJK font family with region-specific
 fonts, where most characters would map to the same glyph index.<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom:1.5pt"><span style="font-size:9.0pt;font-family:"Helvetica Light";color:black;letter-spacing:.15pt;mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-bottom:1.5pt"><span style="font-size:9.0pt;font-family:"Helvetica Light";color:black;letter-spacing:.15pt;mso-ligatures:none">The ‘dmap’ table</span><span style="font-size:9.0pt;font-family:"Helvetica Light";color:black;mso-ligatures:none"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none"><o:p> </o:p></span></p>
<table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0" style="border-collapse:collapse">
<tbody>
<tr style="height:9.75pt">
<td width="64" valign="top" style="width:48.0pt;border:solid black 1.0pt;background:#54A3D7;padding:3.0pt 3.0pt 3.0pt 3.0pt;height:9.75pt">
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:white;mso-ligatures:none">Type<o:p></o:p></span></p>
</td>
<td width="81" valign="top" style="width:60.75pt;border:solid black 1.0pt;border-left:none;background:#54A3D7;padding:3.0pt 3.0pt 3.0pt 3.0pt;height:9.75pt">
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:white;mso-ligatures:none">Name<o:p></o:p></span></p>
</td>
<td width="293" valign="top" style="width:219.75pt;border:solid black 1.0pt;border-left:none;background:#54A3D7;padding:3.0pt 3.0pt 3.0pt 3.0pt;height:9.75pt">
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:white;mso-ligatures:none">Description<o:p></o:p></span></p>
</td>
</tr>
<tr style="height:9.75pt">
<td width="64" valign="top" style="width:48.0pt;border:solid black 1.0pt;border-top:none;background:white;padding:3.0pt 3.0pt 3.0pt 3.0pt;height:9.75pt">
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none">UInt16<o:p></o:p></span></p>
</td>
<td width="81" valign="top" style="width:60.75pt;border-top:none;border-left:none;border-bottom:solid black 1.0pt;border-right:solid black 1.0pt;background:white;padding:3.0pt 3.0pt 3.0pt 3.0pt;height:9.75pt">
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none">version<o:p></o:p></span></p>
</td>
<td width="293" valign="top" style="width:219.75pt;border-top:none;border-left:none;border-bottom:solid black 1.0pt;border-right:solid black 1.0pt;background:white;padding:3.0pt 3.0pt 3.0pt 3.0pt;height:9.75pt">
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none">Set to 0.<o:p></o:p></span></p>
</td>
</tr>
<tr style="height:9.75pt">
<td width="64" valign="top" style="width:48.0pt;border:solid black 1.0pt;border-top:none;background:white;padding:3.0pt 3.0pt 3.0pt 3.0pt;height:9.75pt">
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none">UInt16<o:p></o:p></span></p>
</td>
<td width="81" valign="top" style="width:60.75pt;border-top:none;border-left:none;border-bottom:solid black 1.0pt;border-right:solid black 1.0pt;background:white;padding:3.0pt 3.0pt 3.0pt 3.0pt;height:9.75pt">
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none">numTables<o:p></o:p></span></p>
</td>
<td width="293" valign="top" style="width:219.75pt;border-top:none;border-left:none;border-bottom:solid black 1.0pt;border-right:solid black 1.0pt;background:white;padding:3.0pt 3.0pt 3.0pt 3.0pt;height:9.75pt">
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none">Number of offset fields to follow.<o:p></o:p></span></p>
</td>
</tr>
<tr style="height:26.25pt">
<td width="64" valign="top" style="width:48.0pt;border:solid black 1.0pt;border-top:none;background:white;padding:3.0pt 3.0pt 3.0pt 3.0pt;height:26.25pt">
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none">UInt32<o:p></o:p></span></p>
</td>
<td width="81" valign="top" style="width:60.75pt;border-top:none;border-left:none;border-bottom:solid black 1.0pt;border-right:solid black 1.0pt;background:white;padding:3.0pt 3.0pt 3.0pt 3.0pt;height:26.25pt">
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none">offset[numTables]<o:p></o:p></span></p>
</td>
<td width="293" valign="top" style="width:219.75pt;border-top:none;border-left:none;border-bottom:solid black 1.0pt;border-right:solid black 1.0pt;background:white;padding:3.0pt 3.0pt 3.0pt 3.0pt;height:26.25pt">
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none">Array of byte offsets from beginning of table to cmap subtables. All subtables are assumed to use Unicode. There can be at most one subtable
 of either format 4, 12, or 13.<o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none">As in the ‘cmap’ table, each ‘dmap’ subtable shall have the same structure as in ‘cmap’, starting with a format field that determines the remainder.
 The language field for a format 4, 12, or 13 subtable must be set to zero.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none">The steps for determining the glyph index for a given UVS consisting of a base character and optional variation selector are as follows:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none"><o:p> </o:p></span></p>
<ol style="margin-top:0in" start="1" type="1">
<li class="MsoNormal" style="color:black;mso-list:l1 level1 lfo2"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif;mso-ligatures:none">Apply the Unicode ‘cmap’ subtable to the base character to get the nominal glyph index.<o:p></o:p></span></li><li class="MsoNormal" style="color:black;mso-list:l1 level1 lfo2"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif;mso-ligatures:none">If the font has a ‘dmap’ format 4 or 12 subtable that maps the base character to a non-zero glyph index, it
 will replace the nominal glyph index.<o:p></o:p></span></li><li class="MsoNormal" style="color:black;mso-list:l1 level1 lfo2"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif;mso-ligatures:none">If the ‘cmap’ has a format 14 subtable, apply it in this way: <o:p></o:p></span></li></ol>
<p class="MsoNormal" style="margin-left:1.0in"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none">3.1.If the Default UVS Table contains the base character, the final glyph index will the be one determined by the
 ‘cmap’.<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:1.0in"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none">3.2.Else if the Non-Default UVS Table contains the base character, it will determine the final glyph index.<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:1.0in"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none">3.3.Else the final glyph index will remain as it was after step 2.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none">Note: An earlier draft of this document allowed for a second subtable of format 14, which would allow redefinition of variation sequences. Owing
 to uncertainty about usefulness and the exact behavior of the Default UVS Table, however, it has been removed pending further discussion.<o:p></o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:18.0pt;font-family:"Helvetica-Bold",sans-serif"><o:p> </o:p></span></b></p>
<p class="MsoNormal"><span lang="EN-CA">—<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA">In the previous draft, a different set of steps for handling UVSes were considered:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA">—<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif">The steps for determining the glyph index for a given UVS consisting of a base character and optional variation selector are as follows:<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-indent:.5in;text-autospace:none"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif">1. Apply the ‘cmap’ to the base character to get the nominal glyph index.<o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:.5in;text-autospace:none"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif">2. If the font has a ‘dmap’ format 4 or 12 subtable that maps the base character to a non-zero glyph index, it will replace the
 nominal glyph index.<o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:.5in;text-autospace:none"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif">3. If the ‘dmap’ has a format 14 subtable, it will be used in place of the one in the ‘cmap’.<o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:.5in;text-autospace:none"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif">4. If there is a format 14 subtable, apply it in this way:<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in;text-indent:.5in;text-autospace:none">
<span style="font-size:9.0pt;font-family:"Helvetica",sans-serif">4.1.If the Default UVS Table contains the base character, the final glyph index will the be one determined by the ‘cmap’.<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in;text-indent:.5in;text-autospace:none">
<span style="font-size:9.0pt;font-family:"Helvetica",sans-serif">4.2.Else if the Non-Default UVS Table contains the base character, it will determine the final glyph index.<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in;text-indent:.5in;text-autospace:none">
<span style="font-size:9.0pt;font-family:"Helvetica",sans-serif">4.3.Else the final glyph index will remain as it was after step 2.</span><span lang="EN-CA" style="font-size:9.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA">—<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA">Peter<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA"><o:p> </o:p></span></p>
</div>
</body>
</html>