From 774725b43a05d7e44286a809bb3767f18189c1a4 Mon Sep 17 00:00:00 2001 From: ckitagawa-work <59700018+ckitagawa-work@users.noreply.github.com> Date: Wed, 5 Feb 2020 07:43:10 -0500 Subject: [PATCH] [subset] Avoid incorrectly dropping cmap for NotoColorEmoji.ttf NotoColorEmoji.ttf uses two cmap subtables Format 14 | Platform ID 0 | Platform Encoding ID 5 Format 12 | Platform ID 3 | Platform Encoding ID 10 This combination results in the cmap table being dropped during subsetting despite being valid/required. --- src/hb-ot-cmap-table.hh | 2 +- .../fonts/NotoColorEmoji.cmap.38,AE,2049.ttf | Bin 0 -> 10032 bytes test/api/fonts/NotoColorEmoji.cmap.ttf | Bin 0 -> 10052 bytes test/api/test-subset-cmap.c | 44 ++++++++++++++++++ .../cmap14_font2.default.4E00,4E02,4E03.otf | Bin 0 -> 1360 bytes .../cmap14/cmap14_font2.default.4E00,4E03.otf | Bin 0 -> 1236 bytes .../cmap14_font2.default.4E00,4E05,4E07.otf | Bin 0 -> 1332 bytes .../cmap14_font2.default.4E02,4E03,4E08.otf | Bin 0 -> 1576 bytes .../cmap14/cmap14_font2.default.4E02.otf | Bin 0 -> 992 bytes .../cmap14/cmap14_font2.default.4E03.otf | Bin 0 -> 1076 bytes ...ap14_font2.default.4E05,4E07,4E08,4E09.otf | Bin 0 -> 1848 bytes .../cmap14/cmap14_font2.default.4E08,4E09.otf | Bin 0 -> 1716 bytes .../cmap14/cmap14_font2.default.4E08.otf | Bin 0 -> 1380 bytes ...p14_font2.default.retain-all-codepoint.otf | Bin 0 -> 2344 bytes ....drop-hints-retain-gids.4E00,4E02,4E03.otf | Bin 0 -> 1388 bytes ...font2.drop-hints-retain-gids.4E00,4E03.otf | Bin 0 -> 1272 bytes ....drop-hints-retain-gids.4E00,4E05,4E07.otf | Bin 0 -> 1400 bytes ....drop-hints-retain-gids.4E02,4E03,4E08.otf | Bin 0 -> 1720 bytes ...ap14_font2.drop-hints-retain-gids.4E02.otf | Bin 0 -> 1024 bytes ...ap14_font2.drop-hints-retain-gids.4E03.otf | Bin 0 -> 1120 bytes ...-hints-retain-gids.4E05,4E07,4E08,4E09.otf | Bin 0 -> 1984 bytes ...font2.drop-hints-retain-gids.4E08,4E09.otf | Bin 0 -> 1868 bytes ...ap14_font2.drop-hints-retain-gids.4E08.otf | Bin 0 -> 1540 bytes ...hints-retain-gids.retain-all-codepoint.otf | Bin 0 -> 2432 bytes ...cmap14_font2.drop-hints.4E00,4E02,4E03.otf | Bin 0 -> 1292 bytes .../cmap14_font2.drop-hints.4E00,4E03.otf | Bin 0 -> 1168 bytes ...cmap14_font2.drop-hints.4E00,4E05,4E07.otf | Bin 0 -> 1264 bytes ...cmap14_font2.drop-hints.4E02,4E03,4E08.otf | Bin 0 -> 1512 bytes .../cmap14/cmap14_font2.drop-hints.4E02.otf | Bin 0 -> 924 bytes .../cmap14/cmap14_font2.drop-hints.4E03.otf | Bin 0 -> 1008 bytes ...4_font2.drop-hints.4E05,4E07,4E08,4E09.otf | Bin 0 -> 1780 bytes .../cmap14_font2.drop-hints.4E08,4E09.otf | Bin 0 -> 1648 bytes .../cmap14/cmap14_font2.drop-hints.4E08.otf | Bin 0 -> 1312 bytes ..._font2.drop-hints.retain-all-codepoint.otf | Bin 0 -> 2276 bytes .../cmap14_font2.name-ids.4E00,4E02,4E03.otf | Bin 0 -> 1292 bytes .../cmap14_font2.name-ids.4E00,4E03.otf | Bin 0 -> 1168 bytes .../cmap14_font2.name-ids.4E00,4E05,4E07.otf | Bin 0 -> 1264 bytes .../cmap14_font2.name-ids.4E02,4E03,4E08.otf | Bin 0 -> 1508 bytes .../cmap14/cmap14_font2.name-ids.4E02.otf | Bin 0 -> 924 bytes .../cmap14/cmap14_font2.name-ids.4E03.otf | Bin 0 -> 1008 bytes ...p14_font2.name-ids.4E05,4E07,4E08,4E09.otf | Bin 0 -> 1780 bytes .../cmap14_font2.name-ids.4E08,4E09.otf | Bin 0 -> 1648 bytes .../cmap14/cmap14_font2.name-ids.4E08.otf | Bin 0 -> 1312 bytes ...14_font2.name-ids.retain-all-codepoint.otf | Bin 0 -> 2276 bytes ...map14_font2.retain-gids.4E00,4E02,4E03.otf | Bin 0 -> 1452 bytes .../cmap14_font2.retain-gids.4E00,4E03.otf | Bin 0 -> 1340 bytes ...map14_font2.retain-gids.4E00,4E05,4E07.otf | Bin 0 -> 1468 bytes ...map14_font2.retain-gids.4E02,4E03,4E08.otf | Bin 0 -> 1788 bytes .../cmap14/cmap14_font2.retain-gids.4E02.otf | Bin 0 -> 1092 bytes .../cmap14/cmap14_font2.retain-gids.4E03.otf | Bin 0 -> 1188 bytes ..._font2.retain-gids.4E05,4E07,4E08,4E09.otf | Bin 0 -> 2048 bytes .../cmap14_font2.retain-gids.4E08,4E09.otf | Bin 0 -> 1936 bytes .../cmap14/cmap14_font2.retain-gids.4E08.otf | Bin 0 -> 1604 bytes ...font2.retain-gids.retain-all-codepoint.otf | Bin 0 -> 2496 bytes test/subset/data/fonts/cmap14_font2.otf | Bin 0 -> 4480 bytes test/subset/data/tests/cmap14.tests | 1 + 56 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 test/api/fonts/NotoColorEmoji.cmap.38,AE,2049.ttf create mode 100644 test/api/fonts/NotoColorEmoji.cmap.ttf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.default.4E00,4E02,4E03.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.default.4E00,4E03.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.default.4E00,4E05,4E07.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.default.4E02,4E03,4E08.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.default.4E02.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.default.4E03.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.default.4E05,4E07,4E08,4E09.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.default.4E08,4E09.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.default.4E08.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.default.retain-all-codepoint.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.drop-hints-retain-gids.4E00,4E02,4E03.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.drop-hints-retain-gids.4E00,4E03.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.drop-hints-retain-gids.4E00,4E05,4E07.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.drop-hints-retain-gids.4E02,4E03,4E08.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.drop-hints-retain-gids.4E02.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.drop-hints-retain-gids.4E03.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.drop-hints-retain-gids.4E05,4E07,4E08,4E09.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.drop-hints-retain-gids.4E08,4E09.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.drop-hints-retain-gids.4E08.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.drop-hints-retain-gids.retain-all-codepoint.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.drop-hints.4E00,4E02,4E03.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.drop-hints.4E00,4E03.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.drop-hints.4E00,4E05,4E07.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.drop-hints.4E02,4E03,4E08.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.drop-hints.4E02.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.drop-hints.4E03.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.drop-hints.4E05,4E07,4E08,4E09.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.drop-hints.4E08,4E09.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.drop-hints.4E08.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.drop-hints.retain-all-codepoint.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.name-ids.4E00,4E02,4E03.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.name-ids.4E00,4E03.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.name-ids.4E00,4E05,4E07.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.name-ids.4E02,4E03,4E08.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.name-ids.4E02.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.name-ids.4E03.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.name-ids.4E05,4E07,4E08,4E09.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.name-ids.4E08,4E09.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.name-ids.4E08.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.name-ids.retain-all-codepoint.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.retain-gids.4E00,4E02,4E03.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.retain-gids.4E00,4E03.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.retain-gids.4E00,4E05,4E07.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.retain-gids.4E02,4E03,4E08.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.retain-gids.4E02.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.retain-gids.4E03.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.retain-gids.4E05,4E07,4E08,4E09.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.retain-gids.4E08,4E09.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.retain-gids.4E08.otf create mode 100644 test/subset/data/expected/cmap14/cmap14_font2.retain-gids.retain-all-codepoint.otf create mode 100644 test/subset/data/fonts/cmap14_font2.otf diff --git a/src/hb-ot-cmap-table.hh b/src/hb-ot-cmap-table.hh index d99efeffc..34416a589 100644 --- a/src/hb-ot-cmap-table.hh +++ b/src/hb-ot-cmap-table.hh @@ -1225,7 +1225,7 @@ struct cmap else if (_.platformID == 3 && _.encodingID == 10) ms_ucs4 = table; } - if (unlikely (!unicode_bmp && !ms_bmp)) return_trace (false); + if (unlikely (!has_format12 && !unicode_bmp && !ms_bmp)) return_trace (false); if (unlikely (has_format12 && (!unicode_ucs4 && !ms_ucs4))) return_trace (false); auto it = diff --git a/test/api/fonts/NotoColorEmoji.cmap.38,AE,2049.ttf b/test/api/fonts/NotoColorEmoji.cmap.38,AE,2049.ttf new file mode 100644 index 0000000000000000000000000000000000000000..94efc6aa708bd8e32d7b5fddf4199144c33ba328 GIT binary patch literal 10032 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 P4eS5Q3**{y9rC{boOf`Z literal 0 HcmV?d00001 diff --git a/test/api/fonts/NotoColorEmoji.cmap.ttf b/test/api/fonts/NotoColorEmoji.cmap.ttf new file mode 100644 index 0000000000000000000000000000000000000000..c1dd86915841b0a66f8987c147590d1d1fe2b28d GIT binary patch literal 10052 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 WF2FT%ebelQ_5WpsaozL(JN+;DC3K_! literal 0 HcmV?d00001 diff --git a/test/api/test-subset-cmap.c b/test/api/test-subset-cmap.c index a6c24fccf..e16400ea5 100644 --- a/test/api/test-subset-cmap.c +++ b/test/api/test-subset-cmap.c @@ -133,6 +133,48 @@ test_subset_cmap_empty_tables (void) hb_face_destroy (face_empty); } +static void +test_subset_cmap_noto_color_emoji_noop (void) +{ + hb_face_t *face = hb_test_open_font_file ("fonts/NotoColorEmoji.cmap.ttf"); + + hb_set_t *codepoints = hb_set_create (); + hb_face_t *face_subset; + hb_set_add (codepoints, 0x38); + hb_set_add (codepoints, 0x39); + hb_set_add (codepoints, 0xAE); + hb_set_add (codepoints, 0x2049); + hb_set_add (codepoints, 0x20E3); + face_subset = hb_subset_test_create_subset (face, hb_subset_test_create_input (codepoints)); + hb_set_destroy (codepoints); + + hb_subset_test_check (face, face_subset, HB_TAG ('c','m','a','p')); + + hb_face_destroy (face_subset); + hb_face_destroy (face); +} + +static void +test_subset_cmap_noto_color_emoji_non_consecutive_glyphs (void) +{ + hb_face_t *face = hb_test_open_font_file ("fonts/NotoColorEmoji.cmap.ttf"); + hb_face_t *face_expected = hb_test_open_font_file ("fonts/NotoColorEmoji.cmap.38,AE,2049.ttf"); + + hb_set_t *codepoints = hb_set_create (); + hb_face_t *face_subset; + hb_set_add (codepoints, 0x38); + hb_set_add (codepoints, 0xAE); + hb_set_add (codepoints, 0x2049); + face_subset = hb_subset_test_create_subset (face, hb_subset_test_create_input (codepoints)); + hb_set_destroy (codepoints); + + hb_subset_test_check (face_expected, face_subset, HB_TAG ('c','m','a','p')); + + hb_face_destroy (face_subset); + hb_face_destroy (face_expected); + hb_face_destroy (face); +} + // TODO(rsheeter) test cmap to no codepoints int @@ -145,6 +187,8 @@ main (int argc, char **argv) hb_test_add (test_subset_cmap_non_consecutive_glyphs); hb_test_add (test_subset_cmap4_no_exceeding_maximum_codepoint); hb_test_add (test_subset_cmap_empty_tables); + hb_test_add (test_subset_cmap_noto_color_emoji_noop); + hb_test_add (test_subset_cmap_noto_color_emoji_non_consecutive_glyphs); return hb_test_run(); } diff --git a/test/subset/data/expected/cmap14/cmap14_font2.default.4E00,4E02,4E03.otf b/test/subset/data/expected/cmap14/cmap14_font2.default.4E00,4E02,4E03.otf new file mode 100644 index 0000000000000000000000000000000000000000..460e81bcf854aca89296ceff5f5d95491d0724f9 GIT binary patch literal 1360 zcmZWpeN0&=m4Zz#1sI=N&pCuh=3pnSydxVHw#*BI3B{uL^wqhP7#OqO8DJs zaq>8LdwXM29rrZA^wzEkUiN5t`t;yEbWb10Oa|%u7 zX3M#nS{s#N$fR^yt&S?FGQDf0PBvR@M%qf9XfT*8W|Kv4Ggcj>3hL{rQX$+*l^U%^ z%LO#X>cYaDB9LI6ssu7knWogFDk(wi6U2U{#uD025An_rcQmjV;)g>rZYH$zMd)7W z)ll4jee!>Nib>_BYErG<^r?5@u@p;*QAut*2~xZl=!8jP5AiWE$E9ySOBPg`_}rfS zPCj9rH**;k@{ZYg|6Ef4K%du}vU+FkisvDF-FMA-&GG$dj?TGZ4K%POf4jTe+2d$o zT3l`2a!zxa{I%!`?{1~qvh;^}@zkjxz1VWI?tz<|{N>xg;21OFWmyl7%S?b7#ufG* zo>Xy#+nFTG*Y)#tD82gIeV(gsuD*wR&&}0!OzV3c)pBnAk4%i*AD$wYCsyXZ?pycu zJyUn)2(RGB%eweHrhb_A)%!Yq7l$t1YW;HH7JHZdrtdC0>+k)fc37Uu@Zg}l%vkrB zXEeyAa+elYImJCrbDZ19YYnIDXU>;58SKIGs{?XwduNJN{TN;&1N{O2W$*1E_c}Y6 z%eJ}NT=uTBe1cuyEoT_koy5e^tvNe>nujiU z7!SiTL!HB}A&=bSakEK5#|Vxo`;>j!@vwR0=TFx^yZ_pQmu8%-%j5Kn`h$Zbm)2J5 ze$SiNF7R<(T7%qd9jl)4%fneaYosdd>Lpe9ljHY`@@z5FUJ;-78xYbB!Q7fY+ab)~ zoh8o0o=BfWCz?kn29aRJ4%r~GVgmu@PzW8jB3NNUdN`U@2>Y7|5Gj@jA4ow>Y!O@V z2z1dIP)7~BT`3dGq$-gJ`|aOUaP;L@Aio%j#j!mExp{<$L?Xhjhzf8BB!gnCkB}&E z_q~W?x(GCgV!HS-yW}xl3W;#wuNYa>ZU7qeV1{fs1Qk#XCTIW~z6_;cgc@jsdh}Z0 zEkqWu!nvqF8xDf-ZU{FdMNY(wN}Qj^3II}(35{^uKnem$gareh3qT#k8BrNc5OoL; V7ZhVcAt-kBf`Swo72c`;)1U74r;z{v literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/cmap14/cmap14_font2.default.4E00,4E03.otf b/test/subset/data/expected/cmap14/cmap14_font2.default.4E00,4E03.otf new file mode 100644 index 0000000000000000000000000000000000000000..f6df4cf38e7137afc19cc3012f6c98b34648b9ef GIT binary patch literal 1236 zcmZWpZA@EL7=F*a{kZ)YbV|)48Qy)cK!URrKY=KW$&?u|jHvtJ;I0&y?WMIXa|mTH zitR186e?f`Ot;uygTOMDePCj;Nw%4oXyPAc$U^*~(YQYgddn`RzV~*CM9<0lp67Yq z_nh;dlY4GMQ&R&NpdV3&hXqRFVJrzgc&qlC&xRr zw+m`9{vGm&*W(Xlz5qL}e+4-UfVngP0SyI&5M65*&vz@RJe>>aog`gAr3>iv4voCs zOc$Jo`0#MnoAo;Z=GV7fkadr4ZyeG}FXygGjZa9G+d)H!Mqk&^UTSMEEvxZ(yL~6x zI|6KxqnNeZY<9M~)pOj*9_jW6oV=fXv(w@6c|ATZ;B4K`R=eG7qmu4t8=Zcq?<9)Z zny{!a0UB#GS@szB7;|%bor+Vw^lj?220L+pD!94{C9B7KqI znPajg$PF@rAV%{AJ>NU(m=E9i!BF?a$(RrmL}6lJ zGBOckVzH>0KOLIFJ{Oz|&W9d$um1Mcy|3>de(>r-Sd7HNv6;m5_|#`BcU^x~F4~r4 z{TZ8s@%qoTEhLz9$>xgHl#UErP58ButX+44*qmGWClKu_D$rYasb3j?Iz~Q(r!pfN zJGF?E21-!@w5y~<>B@Y=G75JU1ukeS)D_j7$BqDHSSF*O1v6PE>+lHd>IjGt;fpis zXr0zXQJSsO6kL7q!0S*|5A}3*55=#&MlzX`K!?J=R7v2HbrI@+_tx2U!-= zTXfA9tc5(-_c%wV>JH$6122@q^Uw@!;DJsE;OlGzC$vKsxH0O3caZtO4=2=kDeMOu z?yKC67A+4~G~)OIRsgUIjpQgd4OYcrqp)DWa{-uDUZi?;0X3jdoS-Bqmc4cbV9U%X J|BC;&e*mIgXTbmf literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/cmap14/cmap14_font2.default.4E00,4E05,4E07.otf b/test/subset/data/expected/cmap14/cmap14_font2.default.4E00,4E05,4E07.otf new file mode 100644 index 0000000000000000000000000000000000000000..5d15cd7a6c5a61a219f8113681a24d0ead67dbf3 GIT binary patch literal 1332 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 literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/cmap14/cmap14_font2.default.4E05,4E07,4E08,4E09.otf b/test/subset/data/expected/cmap14/cmap14_font2.default.4E05,4E07,4E08,4E09.otf new file mode 100644 index 0000000000000000000000000000000000000000..65c74c4aecaa3df1554d49428e8c4e3ddef4ac6b GIT binary patch literal 1848 zcmZWq3s96*6h8mH_;*=>ir;B0bwNo}y{|u1}6$Hq*B6xww#2;2FRCfUnkFB zFVEi~&%ak*uufi3SfXxd(bmWnddcd_TuDJ*UV)^zO8vY{vZF<(m#K7;$LcH9+6J{& zs+U#WDJfPeC1tF+PEsb*$+S%bT*#3m>EJ^O$vHKHS+acPD$y!YnnaY%l9epUVaaWx zv@90O60H!WY2&jwaqNhrP2H#CxHB$5N8)p5;uqpu<0=2u(f{g%BcjWxBVzI8pm-7a zXyIgLk}@+l0Zpm~YoL=_N`EaOTVu#g0fK8=}(aG0!rJ0vTF?{xuMb&DIX8f zXm)OtNgbbE%y?a1w|j}zXARny^={sjJ-zp{J*f8mQfyFkNdz)P| zRv)WXM{19if9aX>T?&2`ee)AKe#CRCb7J7azT?sp+djs3Yl~iNKK}X{+xcI6ezX7X zUPum8Ud#z%XrvwLgy1t1i|#@9WV7lrb9P`d3 z%KdBtb4J%cgm+>7Xzt7PzXyH{TYKC+VLFk6-(gaJN&Llp*z|#* zQC5g^AHul?TpXxA?&umDK=*!uaxS6lvB~)KnIq9*)5~=(+V;%TmWo?8`L^^v(t53= ziNdRQk=vV?-N4-4mA%Tk&aFSF2{(qDLi+CJc1y?_wo8plO;ee2!#G~{eNEgvy#FQd z4?dgy)06c3$Lxr2IqMoe5HrUtgDt(rh_%BUF#G*MGTV=T+w`6D2ist4$mBd2ZVMgo z(l5*b<8%4kes`Cn+a0#N*wQU)R}Zh;cLx?nR`hN}l5Z{@9*wysItCmA{=N=+1eG(s z3UftmwW_A@oMpW2%;)IVPxT>Z$kt)=DFaHMibgx;g5*BZXVaNIk&5_J?fAi=Ivko= zd%kFY;Aa=z9`*+U%cIeONTe^cHL%sT%~5OKRcU%m|KJj5xZ@q25ljbf zSq+Vi%}q@vugPQd?mk;H)&FfU+S_-iKiUzE#GK>yR}HV3Xt&GdcDqb|quJ3!qg`{S zNZw8llS&#G`TLUV;~wLq&!s=`Cs6zu7B=P_ZDaSZ_fi^IJn!cfaM+&91rCdnZaG7( zy?(Oi2q%eRn$I!uQ{)U3&4umHh07oR?3izoU4)1z5 zmM`A4@ez2qlwT@bh{4j!Mb!NKJR6lr#bmNW0Hq{HiYFw|+5Wu1b0CdK3q1EaoOd11 zhfKKbnvEcdSAq(p&;a>x4?G9epoV(Tlg?iTGLSWC`EV!Xk+^J? z_+(|06Gdb%A{hYbbEMX3Y{h{gi!?!!W+`h&97<{8Q7R;#AZ7tzpBr|Nqga!q8F4Ko Tj}5U(;@qSG%=fYH(f`Lki5r#a literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/cmap14/cmap14_font2.default.4E08,4E09.otf b/test/subset/data/expected/cmap14/cmap14_font2.default.4E08,4E09.otf new file mode 100644 index 0000000000000000000000000000000000000000..97942772c8a33cf514652198ed5419ad1faa68df GIT binary patch literal 1716 zcmZWqdrXs86hB{Id@U7l^E1XNtD;V(bBND5og&Un7tw$yhD`0Cv_MN~DQ~J!`hG(z zBIPM{$pjx$a6YDHipZvBzOsdlC|PFq&;D?Z#usuIbTq8zohSgn=nWVuTuDN3azoeeLM zq{~WV+A=~$Y9qy2xWFg1M#nKT7l;;!VkDw@teG#0nIoFZngmgdHaI>%h%G_1srgzE zHw6XgRB+;Y@Ii2EFzUY={jVnM5sgOoh{dB`@f7j}g#**VmKk{+qDY5e5j0V=DL*HR z8^>i(>UbjK#DxvGkXVoO8@H>^j+7=;U`K_uC#4Q!9*u@yBr?$`A=JwZb`71mi3EJo$@A3Mcm#JtRz!S{X0hD;ZA9H$FeSkADzc=xVqGz7p{Kg~p zBYrwGA73Sn?jK*xEIT~+E#nHiu1@1G^_Tf{&E*aCKBM0(tx;;q(v_?GaQv_NK|^=- z=gucCllk5S`sNuk;@97>bsy+5bk%oMw$ucSjRudw?e>!0aPD#0FV-ifjw+wtTIa9z z9dObICxCI;Tz0qpu%+4VuRm7VENf7A&)feF76%eqHX_N-kB;|t+4>vXE$!~sM!E-O zF|KSwc0ryhf90+EzS`>#(X4wqpVen-G`W->rAtMlj0rDkUF>))vnP-p+}(iJ9WBJZ zk;Qk`S9^Z9(G7mL$Ma@qXL}&f>f7qsYT9NgFl6TFx9HYg%GQCspsB!MPkw4h>*xT9CdZ?|lu`|$R?K6K_aaK>;Z8p2zrgzsEEM+vx zoVY~lwmO(-GF7O^QN#@G-xs^~FQE7%gn^p*r)$~!r@fR0rcb(g$s980$W-L8EEz*1 z)Z%|O`-X6UkV7mBUHtdMuZH7Z8VWeV0m@6JmzWx(#^5<5hi@Q0@c=j?0aw6}=5Tng zevI`~Hf{V6Hl)#M!blF*j;^OBCnwpg1f`J8E&-&G`Y4`|WS>EB#OFW^K@p$(3eS7R z=fgBu@G?da=5s&=QYeO{upIV59;l%RbYv2zgAC+Q3QD4CVHZJKD1rR2z7&=~63NSU zh)iknCKp8HUPUSZNFaxbVY?k(46z(Yqe)Df5O^RCv$G;1+dd+(O85ujM(D{__P^l& F>u*31ViN!W literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/cmap14/cmap14_font2.default.4E08.otf b/test/subset/data/expected/cmap14/cmap14_font2.default.4E08.otf new file mode 100644 index 0000000000000000000000000000000000000000..dea9124d1b86be978613c894840504d39cb6366b GIT binary patch literal 1380 zcmZWpdrVtZ82@fx+&%_O=`xqmTpm*qozTfblmr=wx@2I0Xbpx@OQAqZ>4Vn<#-lCt zNof&~cSC24;6@P8IroQyF_MkAiP22SMB|Kqs=?f{%Yxr+mq_%SobUX8zwbNW`R=(n zr?8}?5QNYHT!_uh&!?VPSf2raAOM$JSp2;F3*U4D08fHixk{(3pD%w$i+me-fkv&Y zxV%LRF!m$lCp9Raoc$LOqsz#|A=)ak;i^vo)GMy|fT#aLaXF;h>g zQYd*^nw-k1(7&suid#%(wa!GnUZ>I<>-9#ZSzU3Q%F$}6A~xJa6{$^XVC9w`t)99sL@e$fT*>YAZD; znpJJ1iUmJO@9fS>#S1%!q%OP5;W%P(Tf8>eNPb@8TG=;m(=|7)Fyug!$JE=<&crD+ zjKr#ToUs``sSDKTM{DL4-#J&^_q^XveR-P<{LbEL!Nbh?fhXUh!ZYBH4iFay7MaVJxHVkq$`ONPVTX&7i2 zX!M(hoBF%`mI0fxRcmN0(q=9&vR|u%UDNM<=(_K=+U{H?Z_L|he)o0zbbFvH&^_5Q z(mHDKb@g?5JYMYmOFuRK(tF=JdCuR~+d0tTZ+DUBcR}j5yB!|KP|vVqp!-70u)1GA zom~DLBNF4;Lx6jC+B>M zlnWeI#hbKAJj-@=y>JDEHCBND|D|xoaLgk^07tk&c!3WRVw>282Otm6fEW<~MP;5H2eMm91Yv>e?XP>gfZp_x4kj;?fQTF E2RpUBegFUf literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/cmap14/cmap14_font2.default.retain-all-codepoint.otf b/test/subset/data/expected/cmap14/cmap14_font2.default.retain-all-codepoint.otf new file mode 100644 index 0000000000000000000000000000000000000000..12365f4525244a7e72124f6aa882b2d9c0d539b1 GIT binary patch literal 2344 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 literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/cmap14/cmap14_font2.drop-hints-retain-gids.4E00,4E03.otf b/test/subset/data/expected/cmap14/cmap14_font2.drop-hints-retain-gids.4E00,4E03.otf new file mode 100644 index 0000000000000000000000000000000000000000..327f83f593b8ff7d438d00a76e28f14e4f0d65e4 GIT binary patch literal 1272 zcmaJ>eN0r!{(k44 zdp>U7ea$CMG=mNXfrR3Q#zuPS?U%Cv@Hv3u&F16J*q0NZ`2ff) zW9@7WTg&ce53tX&2iZfc&C1$rtj*5aY8t%0kpDE>6{M@27TRvL+G$6J_mqo19ts3q zT!4P5+v)ZDynZI=>exp+JRZ75au3igu7Jyb291TXvF@l5OxT7-tJ52dMJ978RaUWE zzgutmS1R?i#47bq>P^^!ZlzS#)btMd4qyl_5l4w*!k*2iDM!0ktQ)Bx5{u7^KB1~j zJ9uR=bG2gp~ zlKQ>zqL}EX2dbIFB02xYEcb2Sb@zHgxb)li*@<)UnKaL*a7@Ru@hLnJ-V!N;(6DKt zc+ovBx>2W@8>6W&6M|<%csC)q2N#%Rq*E*0`P)Jne#xy;+3{>3T zPYzARCR5r}D#2IGMrLr#hv&l!k^7;wU%$Td&D~elpSv98W2tCrE;BnZ^U3OM_g_aA zt;?e3tktRY1g6%;}pwO)lW1s>fu|aIW z1F*|0AV!2QO|K@^DuY6y+6*L`rh+IKA)GeB6Hx7L=8>Y3!&6u z_HyI}tiYF6{t%Pf?8V5aEEupa0He&SWGx4fHzbMy UBnN3ikz|knN`6lIpZr(;0Tm2S(*OVf literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/cmap14/cmap14_font2.drop-hints-retain-gids.4E00,4E05,4E07.otf b/test/subset/data/expected/cmap14/cmap14_font2.drop-hints-retain-gids.4E00,4E05,4E07.otf new file mode 100644 index 0000000000000000000000000000000000000000..a3289fd5f303b0a054ba1f0fa893abb4380ca278 GIT binary patch literal 1400 zcmaJ>YfM{p6hF5w`hxPh3^xabfdK~_w>;)H zZBOa(jE)YU=VR5nAH|2U70Hy#0i>1eQYuMZ`;g*@aBk=N^K zUG1$^RstZbMqZ%DK=hi#k9-w*n%-z{*K9BkW~;?))!FIVU21J(qq>Ywx2el$8*P0ZgW)l7j=pG!#jzr! zGPyz-8KsIR6SgF7Puh_tPm@ReEh%z!n5D>55v0g>$fIyP*;0JSk|S{-#`goK;WD8i z`Unr3zMf5LtIga#$HCKF^aN*NGpeLrGuH=ax1BjV;PWNlyEA*q`^a^;hH(cF)j-EDWTYqP_l#Qw&9~NKYTkRGSU<=Wcg?eX^}jTRTBu2gE^w}0xCPQLB&PA1zL zTIgoFfXjT2%WUDazPkCoH>WSKd%tAUAF!#@OH(ViuT5O+c+cRJI$nFF`_*kl-Xo)j zPt|mcmCv1(1`0NIlZrsUn^f>W-jJRcPx`J(_3W=ei0@+r+S6ycc>irB(F6&>0g*;< z9jOomd=&oy_lc}9`hWXhd4I)19{bCdu*OP=O^Wx2ZnU{*EC^&vgdfD9B-V&Ecnq45 z2gHbQ6UZe(iC7^J@LS*?qAfaf7!H;|Nkq5@Z&wcx!C;W@icE_SFA^xh*$9ygyC)(K zV*x}V3uED?xM&j=Lp(h7XO1KkuK^?IzycKHK^4@28BAcutx*OvFwhK*cxr{0kXgY7 z^`UbLc0msI<=?ItH6AO<(dXk008&tiDE^xQk~b&a8q=dQ;|i@bS|4r!;G0*_Q#UVu-)Rtv2)v*kjy`JPQJ(Q`@Zvi z=X@vk+;oRO0~^Bg^7BQPqP>#0{~|avX#n|(ptsXsU`q! zI>Lu4rckO|?;3SdQ*rqyeiUI-txBy~JO&cvLODPLfMR0+FbHA+hGE>Y2Borv(XxGE;7iAR87yB0 z+ZP=~M})BBjzgE#8sH(ps{zL5mU(IJv#I$vIFvPPfO@c;>WY9^3}bVGd4gqO5i6or zu3D3jl)Q0^IDK38t2uc_DiG!WDuFeHX@7IPKZ+pv6v7`2yq%APA9|}ggBEB zZzIH6gm^n4NhKs`jf9Y-5t4L5l98vXZKGS&B%Knko_HmZ=WOMf+RS8o5#} zdaFjJs;^bmOEvPcEuvh7LR83vt3`!!wYGiix62P<10va!w^#;-armd@tTK*wxv$~nC5XQ{S9 zZ)oXhw3%&Y(%f^T*VJRfZ8i%T>oE+XIjSAijv1b|Jp6TX=JVONe|zn8Cuy>E+J>AS z_h8@s>FU3BoJ+k(2kTO0c&&Q4{InDIZCbc56pYVD2}xAj5@WC#9LBi8{M`xDCEvVH zRo$4Rad(qlZE9$vBa15NkPf+Jud(iv8gG@#Q+2lJJL{Bf*75!EOLy=Sr>&E{6G!ir zo|k^M_iH+>e&@-i^PgVrxc&RUAI7JaK+kB5q*)Fc4&xTmY9(XpM@#C4<+yL-^9*zm z6Z2WZw7!J(h7615NS(XE-RRQvH+Ab>2Dee#s;Fx$RAi0QaX(d_(2acX5&6W{VZ3_* zzj4+`arD>CBW+%tSAVQ!u+?L5>bi7xy93Sc^FKB|Ha+P$cG#sg9dWn2+DQDv1rVYp zTI`m-&VGwqf3l@t-mMx*EZt0pc-9W?qC^j7PmOxb6V9WZN9{vS{9~#}Xe-tgSCuO( zGjHn0+pm60t-7mmnOq&t4x6G&VN>GN{so6n;4@i;0`#?G0owia@0o*PJN^WWc{c!B zlg_j=@`neJ0p1seRGpDtq zqZJYcz@w_Exmh0lJmUdyA7J^`_6`2$nSWyd_m;GyK{XJEE58@upAz>(!hz7USxuz) zZsMCGBvj3bY2xF=|A?rmKHF2SlXxHT1~t$ZhvOhYW64zU zANYyS5|;tWb-$2_7E)-U?f`==3_`+g~UTx=>-@|Y^UGnydWx#_u z$CxgDotob-Xop>Qw7~^hS2diB@j``UbGWJ()+|}t9a4OXU)iWMD4Uec$`)m-vQ6=M z6`xP>`I}<#{=^9-l9D~adfD&w`sKz@>{wWC?@y+}YEu5QHyBIAV~Id299l0oMx%0@ zk)D*>!pU&r42h*B)0+Rb!9iQ7sFbWWyTj?Ks;;TC)>)lpCR=N*PFlD$xybbHI}5=x zwsvGxYnrcjXY`)ydJp;Gz<=3mkFRRczqFHAwVr_of%K*0mD>C7^=_NCqA>2B8k>Ij zI{QACUDMOGOPBO}9T)VSL(vg67tIakF5kNR;_R!NFETTkH`$rY#EtZm$Vg@Fkd908 z@X+0hcdz9~wOZ}=|8F(vo#s5C)#={g;d5Q5I{Sj>MmrzhtkmYejk|4yD`~fl4#zkk z48HtyzT36)3z+bc6r5c-F<{Iej<8dxDP}Ex?h#QQoS_23N4Bnne$Siv)JK}6{ArVo z2|LX0806UvwbNC9sIfF1E`V*}pFA6q}vy{JP;Ksds_F;Dm*FqJDP8)u9 z7b_NvMpt5uGz=5bLi=DAiMlT)Ucwxl#7dYi(=BCKz#^>rnIoEd5Gn$Q!-ocR<2YjI zMT%}f8^Ta<8c~WSaEMp}Nt`g_KCFjvUl>)g(rl+;*izG*r_n-R*?1_zm(*h3xL3d0 E4^}Af3;+NC literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/cmap14/cmap14_font2.drop-hints-retain-gids.4E03.otf b/test/subset/data/expected/cmap14/cmap14_font2.drop-hints-retain-gids.4E03.otf new file mode 100644 index 0000000000000000000000000000000000000000..f5de519271a80318005015ea54ac3a06af5ee0e8 GIT binary patch literal 1120 zcma)5Uu;uV82_DndvE`)-C)Hjh*zS7MgqNMB158^!x^J)x)Eby!nkzZEpB(MZHLrQ zGGW?w>t(PoWo$-?J}$!qA9O|&%mjS#d6(wL^O7Gbt!GH{m=^FbAbKS)3-CSWPX+eL>Fm?qK202+8Mu1{7>Sq z#ADjP*S9Pg5HiGf$4O{hlS{;ZA^uq0$Q<*2CA>j=f%qOnJC=n1Rf3o&mq#=sCSBd! zMf=5x7m|r|ruqpYfTNwb0?=GPRRV_q#+W=XY8Y9L_Lc)EZ)4?qEe=~(J0iM6t+?z|6v`V6Pb?eY2={DH=%bq{RuZ1MQ( zP4PVH@l*NkE``Q?N){J!gw>~R%45T?BRZ%X9Nw4;Z5mA^62T?6y; ilR=ONGKOvu@Y#5i9qpszB6l=!jRUgkJb$#}{Omxz7Wq*A8s*S=5Z zea?5z_Z{7H4;(sl00htnTv%UKT`iuw^Ck@dGXP0{JaF)F>Dz(nP5}N7umt4l?r*|r7sa5fak=rOotYQ5+ok32^H4xEg1&wTh0OG;=- zDJ_xFk}_ISPD^&v(jr=lW2CgSn3k5%(o$L~tJ1c0w>Q&DgSeofP%JGfl8P%EwLeyf z4|eMf3XNX;Tx)~2y-nLLHz*o+i7VA=aV_hv7uPEEiuO*dT)Qg1t79W%E+B^Ksll~|Z3#3-LdkKA|3VJ$hrZNfDC zK!U}L1g1td0Eu51cEBL9nFteKbLO}Tt_oEx7gAoPrJrfRI3WLp-#70@Y8z6yQA^(& za*wr%L^tmhQYmO#e3n{@T|0l>e>3QRw57g+5irq1X66Z(dQcNo2Tum=r|j?aUJbqD z{n&fM|FQSnfM-EDNana0u!;k&am%=GEP`^-(EFbt!RILLS(M8ZHN0f1*VP#tOp&_z z5Q&yoW~r3<*iWxDs4n{zV0`kCExAfZ=*l^gq%6+xjeWq@%ga}@{9X_$rQI&yxMi)r&nw@?u`81 z{*8OBIEL^toFD@|q}%K9c(dAPkLt!1WPHcHQYt0BZMlG=eNCs77G`J5L1uFklci)b z-)E{&jvN*J2xX)G7m%p&W{Y#rh%QK*^e5?FZMRN0apxnHiTLB>nc!*5nfs|oCc>;x z?=7Oj&lVWYY}u2{VTLzb_UBkqwf8P8|lqf-7B{}=Vq$cMexU1V&^>x*sG ztBi^cg^VeDk|{JYm4T)Uj-j~;wENd6|2E2bnwEgg9OMUh}-?O97 z^xS{axa{8JxO)rBn`g|^ z$6xb)<+Is8y+nR+-i~;dtFGx2F>}l^**)4Du@0C6X1_m(cmIViI{)PS$~M^(GC5C% z`$8wY<(LA?H*S2Yp3&$J;tO)wv9fG#DBPbdN$@-7?^NO_{Rpw zGpLU8)tl>8O`2xeb<2F;m0zJvpBh5WkZr)`QwP*O4T%n}1aUt^%OdJXq<-e5erE4f z3lqAv^G3z-z+YWtf7l-gY>h@IB9XDs^MU7W`yDFt;Re%lhP`heo@^L49yw>c)N`@t z;_=gcb3Y*r*OX)0IW_!l&*a3r!H8qn92y<;Om#)bsxr#g98d<8 zPNUP?~7NPm&U&cMn}g^jYkKfk(hJd{-*IQ6X|xj+-{f2-)nYs zlIZZtWn8z@L#5zhhrhlAoNE4E*DInY{s{!{7OU>fKi9|7-ybD(kh$tll5*a{A{RKU z7Ejh&1Uqa0uk~FlOTUBvbr5SyWWhBG7O}^*L}ZNjy+qXyhGYRput)@f2dTte;x2p( z(gX#}V-A2Lip!7!Gu-1qb|@Kg=2MzEHH#a~tstE;PQRxDNG%`QIF;QJFv z0-XI}EU)n#NW;<^&wW6j^Z?I;40z6kOyle+}7&7pQLQE@g1%PKL?qeF;O`tH~0gKD5Vf}DG4G9~e mMgUom$||5BffGluE(tdgrpXut*p|-TF0od}*#F{xuYUu>nu+oN literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/cmap14/cmap14_font2.drop-hints-retain-gids.4E08,4E09.otf b/test/subset/data/expected/cmap14/cmap14_font2.drop-hints-retain-gids.4E08,4E09.otf new file mode 100644 index 0000000000000000000000000000000000000000..d7b13afc54be263b1355ad82aea699d370f00594 GIT binary patch literal 1868 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 b{{+ZN*u*`fDvkgw#3oJZvm@f)`gr*pH0`m5 literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/cmap14/cmap14_font2.drop-hints-retain-gids.retain-all-codepoint.otf b/test/subset/data/expected/cmap14/cmap14_font2.drop-hints-retain-gids.retain-all-codepoint.otf new file mode 100644 index 0000000000000000000000000000000000000000..646ed6f6489c14cfbef28de602dd7418e8f9e91f GIT binary patch literal 2432 zcma)83s6+o89uwq!sQ`o<2;-3isfWrU;AKATUt>hdv+6(~p9I};`DWr9U z?AFTw1)x?^DU+6;{hSR3AmlZqXICP_!pFfLq(4Ubib_Re>r3j$g-ACey;>n{tpjnK zD;Pi=Tq{+`gxBK>(EP1PH`ggujkCi*g61zpx(EQ|8wUUn1n~in#|tiRQYhLuX+t0i z1hRO6Yj_CZAwe+`LXts9G6_i*A<52H*0nWM5tWUil(JNjBt2as z$}3m?S|-}lrfQTaRH9dE%ajdu$_8nptbC0quck&+$hoUTg))__p&1$Hmx|VES_0zG z(nGM&u<(clkx|i0;+LnamgH>A+nT>^d%=#^R)wt!i~M&>3=@S#CWa+)ki@}q4pwlG z%)v?yp64KigVd*?N!(}>H;Ohc^lJ1R;@-s|9PK>l24lP!-Z6eI|At_*z!kJ#7$uBm zlc!hXd8JCY!I0Yx7mmO>Hl+mXI(f=D5$AAOZMKBFHztlUkLY*pQ>H2X7e%ZhH%QD>U;MJO2G?^9gvI4l2_V#ogWp~pQ)_S<5G*h0%Pw#NkyK^1LOF0 z|ILZp*86trDtYl17z#)BYT-t*rdMIFv3J{zJ;n>_Ypx6Q2lO552lPp&<#c5)mPkUN z7um=`-5@jIV-wlF%Xit(PuR$p*(8`=wqH|Rf1tHY<2x|v!r1AVaXkF%z&+gK@HoA; zOFs4&w0i^HY3?*@vBC$IVC?#q-1e1!k!qTB z`nH~ChGa;Z?CI_`_b?d4P;{J6-;ZcqGp;$Vf7JHiujlVye7NJ=%_mH>nK3Z~PM^EK z@7_)Mj~h>=pMxRV^fIhYHCS=Ni3QST?x7v{aykUxx_Z;v?W^Pm%gf0-s&sw_=`#!>%;B)m_Jm27;gZyhk!FgFv$1hzcF7y;V$y0x^%)#Go0h^1 z2D8bOKvG=8VEarO?)EyoZjW#Df5En-n+HEGVykbQhnTy?sxmiq!sr8)Fv1|Cb{gxC)%vTIzUqks zf3#d@9@;-0`R!fo@CnQL-qS;$luk*{?EDaBG;DdRW$N84hCAPTe=t6x=8qBbP<}fE z?HEN{EOczc_`&)?85VfqNfsU+SU#PC6HG-LT4HfBGn8+)1xgFZNezju{Q{rEKGkLPTL z`=D?<^+@d_+t+Trm-4!?Kr(y}5C1OkBmTbkmijh{`47>IKS5R9Dr=Hu!_>_%wH4;s zDyB?*$A;MTe_)dzvPs9T9=>_y#K@@Th@8X>zkEYi9Jh^mxqo~6)5{mgezF#w^6BYy zct&5+^ZG2RvAf>goZs%z?-3v1R*!uT(%4r@m{-lo4|491VnVmBs? ztWbB29PRXL{kq|{ezi~U)Y`OGs~wSJ>a*rA%wHLX+g%!Sx4X;LNn>x$036)`%1ZT_ zJd|7aR+~rWP>!xBT@53A%lo&oqCY=8I_@V=JBLg|)&VCr#vZ_#Vr_ACg`z6^wr;ZP z%J12wA2qtnE`!s+)Yxhm1;*}~v7_^dnvTMYe8q?NJK&~6a_D-Hc4te6?HdwvxVdl2 z$jFe-H{g2J_Nrm0sam_QO!G?PrgQs-%RH?`CtJ_9pJ_kSakT4L-x%|EhlMRP-NL97 zMnvQx)2R87=VJTt&_%n?$H2YLoaoFhKJdD8fs)>9gcBGHW}HCDCO)QqwFX3nF!%@#Zy{j|{6a*j)X z_uZ9}sEz*sJmCY*tWG}J#r1zW$g2l2v(_L9{}fUMfX`V05I*3g%}f6qIluph|Jy8F z+*}q^W9U`nadR%KU-;r&)z5~+0)FUKo*f851n)8LG585c=6Zl+Bmuw=3l;zAG=Um4+5lchS_4pls=0A7 zSOd~gUhV{hh@;VrVW`hX6#%dnF)xxkO@Jd#M9fD81F%aVn3plI1T7N8f(WDouyhXR X4u8&#dn2LgIA_#m2e^05f3|-CCIoU% literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/cmap14/cmap14_font2.drop-hints.4E00,4E02,4E03.otf b/test/subset/data/expected/cmap14/cmap14_font2.drop-hints.4E00,4E02,4E03.otf new file mode 100644 index 0000000000000000000000000000000000000000..04934520ed6cfb3cdc7a15de85aa8c6a6b328382 GIT binary patch literal 1292 zcmZWpZA@Eb6h8O%gMMIP%3T(TaM{=b24^YLL`I~DG8YvLBaUS{sHMPcFYVegK`7&+ z(BAg;g905;h!Fj?AtNw1$1;;G$S}^h#6MujviL)z+5Rl(ExVX{ZmY?R=j1)-Jm;ME zob$f9@2#n;s{tkSf&?-vtE%YiX}t~rJ_jJ9HOF4mE&D#R0Z0%-qmeP#j+R`F0!TT; zAGDebP1o-8a*UTDez_GLnOpL6hr zoGPp*MeMa%9nQq3fc>Qp5YqsdixC2(BoG84Z)#_lPSGljXFxoMi06{=TuFS7RM?d+ z$(ezW-=C7{Y0m-7Z#^|D$RDq6ACd88858{bPxJa+AR`EAn(Cd}mSSy7v96`Kq|$2Z zw4ZKibgb9l>xU-#Sf|5jVjT3*Hlx*Uv)T<#Q`14Z!eXIo#dHT@U*e-9+fP&YYpdM6R5PaQqPm$rUAelQJV{Ua_Ge7k47k~d@d~}+f3~^il zd4e5hqqxJhBT#C-a=Vb?1oN<9Mj0~P3O z(9IbCHaA+z^>}-{uKrU(rpqv(U|G(W&89KkVdK2#_RzPU<;Ht@0fc8?`B?wSfnN-+ z_5pY2*x3LZU^#ZIFX|l&C;|Z=mmPCYBG0+zT=VWnotwX1-}w68TMu8o4bWFZwItO;l=sVtL?R(}MO1+-k{qgW zK0>O*?t2iYY!WnxQnus?zw`-P23c_6pB#D8Zv+MmV1r^f1P#y(R%in!zUo>qK?}5l z1*3L&50M=la5@<;hJ&ERzTyqZaAjdd73!C80)RYRghsq=phSU0;=q9C0!UBdf}~6q ZNCrfR8>+FOn3TGD(LhQ}iT{}Y)8Ee7eysoi literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/cmap14/cmap14_font2.drop-hints.4E00,4E03.otf b/test/subset/data/expected/cmap14/cmap14_font2.drop-hints.4E00,4E03.otf new file mode 100644 index 0000000000000000000000000000000000000000..2322e5d2f4e1f6a7f0c08461c444d2de245b1635 GIT binary patch literal 1168 zcmZWpZ%kWN6hHU9_Vpi@PI+dLjJ-LxK!URrHOh$6p)5`VhArwoICz!n9X5gGDEicNk1|}mc$d@GPgl3IVX?=xg;!V(3uywJ89T z3;BngezEQPJ&nWI7342>qQkYpoyK?*^5;6G=qZbp`2g3qkXt43R0!C25yCtw*DXqZ z^Ubmbj87p?g@Tc2{!8%S`Ir*~0E}e;2$&ckgm7&=k`$w;CRYr(9VA!AGz6!zPc6$VGTks>la5xr;`lX2QR<|!04h6$v)ZeyG@OE_x%``kBH2Wj|@JVzQ zYQmzD1X!%m;o5EAZFlan3)DPocVZ>Bl@i19Gfx?x0)udo93Tg^J)6(--qxUAGh8>Q zyUyt$t-QrLaCs?vrF8uB(M)FN&$q5zP}h}fV^@<`6TcqSr0Q=Y)7?ridpbRo98UDg zy{Y~otL8k)|J86oPxlG^mEwM#U3h;^`l0uF;C@=W_~%d46KCbwjH0MGX5?vk3U|b} zbl#!WZ&vV%9vIgHXfxuCQT3a&)-|ksoYn#Zi{eP4-KyRBr-FC9D$7c`RJKTcW4^`Yt*Mv?UH+0x14eNtf9!+_Dfl7u5xRYcjQtdyn{A~q26`RQcH2|-$2Z3=z+dHmj~$l z%Q12Sp3aY&Jj@bO78vRUFt3qHI_Q2I?cm$g1Lw{AjT4QSM}`1nTOng$h9a^-HsB$6 zj2RFk!Vb4{EN6Bw4DI~?i1&>HZ$e!oG_r*p)ZTlYr(?!ASF4i!Qqbb^7$>_#PNB{|a&e0AsZP1hfngLUff)R%;7Iy8BY|^S5 zqBQa2;P-mNHY(z2fGev{OsKj?OKbaCWlzkAa^y)Rdjqh9Xe0FbMb&Ak)oGd4X)om1 z>@AL(YKu$QR*@nYQ&WwCsnYhgC>(5Yx^CDHMrL z(eVyC!*yX{y$oovPD3o8q)*aEZ`BLbBvSK?J{oI^T#O4@e&i`&@uT1bTp~u&OJpT^ z?Rnl*Zc}%;vrnk8pNsUmKj+a`IHa-=DB@d*-6=p?qUtu6M5c#}dVwKJOfE zkZpsM6GSC zcBc4S?~?ESz<1*xuW*xBy|;$0pZ~gi&OD!gS50^9{ov@_jRp6Yzm5Ff^H7=|^j^0N zsYF(p0TqsMlI-=$n;n-+8_$Vc;JNio-tcSSPyX|fJ8fThxQX{=-$a75wpnZvv(%KA z)s$w{7UJO9 ze`0hYe+5{<40cF^3@C#tut5X3@U|9#2-VO8^*HK)H;_5N2{obdG}r;DxGvox7Bvnt z>aown3IMjEl4#s10G=8Y1`7r#z}Tn|$Hyil8gwF{N;i@QP^F0rBEpKPQ9=eFc$U5+ H|Chf3W6fy3 literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/cmap14/cmap14_font2.drop-hints.4E02,4E03,4E08.otf b/test/subset/data/expected/cmap14/cmap14_font2.drop-hints.4E02,4E03,4E08.otf new file mode 100644 index 0000000000000000000000000000000000000000..9f243b8eb4f6fc3afe259d5b2bfbb2775951d556 GIT binary patch literal 1512 zcmZWpdu&rx82@fxyKTo9x=YB=c{d({Jlx77h(tEQsSySls548(O4mKxb!)p9u4C)_ zac|qT-Lo5P8TbdzL104xF+s+d0V0S|P%?=TjenRZncj{&GQZnlLgG0&-}(K%^PTT} z=ezfOd-m_&19E5uF(mKE&7}haLvsLd3_z^kv+rfqd1j~%K+=r5VvSy1qdR<}0YF-U z{9w6OU2^U|C&Tp=S0qI_Z(1$}-t=4O$ z6KT1)eh<03#$Ynf9R(HopF~arpsf^u0Eq|)f{>Ne>Ge$l+8SF3u@{IKEsD|N*b)i9 zC{dg?00EzGUM40y4=^&lV33zRnwWW0%4IL?;Yy$3b}j-LK}Zr53--QSmZd7o+EA9Y zrA)PHhoPp)SW#APrdMfJ)2hr&6`fOJIH;xfHJQv>y@`IiT4ONQ7>sJOwq!k>qtns( zg1L##*P67(dQ{HGhQYbSAjMdf$yDkJ#R^3dtw{8QgX{; z!_>s!XKwhfGp9nnvGPtb z-NS>O4tV-){cK;9OXs@2yvfOLb4hP;8GNSZeM@0&L8HbJEf@`x+|2ASrTi^+hw5(c z4)p{sMY&x}WGmC+ZgE?zMSQYFZ6iG%#=F#$pl=RpMqF2&U%Ac~Pi6DKr@qpVeQ4#c zYD=BX-qcagdRPzR>1gY8cd#VOdYPqBdoT83%dlm{{;=uZ?-%ZVG4;+Lubp%;Zq~*2 zg`$z(t~--e|7<&xd7e+OW@^Y9Q-A5n5E)xLdxuhv&Mc-FJlmUUXYD~}T5s;ojLD*J zKHw^^Uf{_{gWu$?YvEH0%K1cx*1OwT`$_d+r6F2*y5KwC1UnV{e&F+)l}IYw3CzCu6Tx82Caj(qfNcdQG3W5u=@Q$?CocNs{h&jz;X0Y*y3)Bw1!(4^6)HB zm_)DN+vV!^Mr_BMy0z_wq2hOMMNzup7TpoqBBUvAQH6rRPPaM|LcMe`8X;k1uYCpUyXZ>+dUBkh~(o$ z5MOvAF-=UvBT&U>K#T}Lq>zbaQl&^Fd3u|Gb9TP|24v@n^2qr!1bKfuF*k>`OFoV) z2fNT@kcaUR5;>l}1o=D`K@zfgEPhHac?wG*1y(+>k;U~I(1RLkAPY9a0Vo9nRD&6- zRX%8;4C+9Kt44SanGsA-5ns=O^^l3@3K_ymhCaohz&T1Fw8u$ mz;Px)0*L~KRdE^jl82t+7Pt#7;sbpOH;cEqKB0d8zx@j`dF)yM literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/cmap14/cmap14_font2.drop-hints.4E02.otf b/test/subset/data/expected/cmap14/cmap14_font2.drop-hints.4E02.otf new file mode 100644 index 0000000000000000000000000000000000000000..8954cd74e518bb5fefa32bc2ac6a82acfe57ad1b GIT binary patch literal 924 zcmZWn|4UO*6hHU9?YVDlS}y!Sxf7EzF;W*49r-+ zA2APrxeQJM3I+%voU=y|`lxp{Wq?#ZNfj`u0ydSWkaBcv;T%ka!x^p1DganW?n_AA z&gyo(Qmiygi}m}((>cHrqNu;pQDLt2`TGK$9qtfc;wa_KCX<=BIDKs{zNs%5atT5H za+kvw@cRPxkjq)lTfAPrk){XvMpw`kxQ%3H9vtu?FgTvJSW~Rg^O_=!9^0!|a%F9t zK0uqEn3@r5w@Zx?$@56^pq{Y5i;gdiiQWg|tufIvxL^+twX4L9Kcz;kcqlb*TurRK z{1n}YMUQ)0swK5FXS*j=je4hqm^XGeHvD9Gx&OoDa%4U7Il3NMd>nr5o>CQ!N-)Gv zjLzPl9gok5MdH)wb`i%?@_tXKiLHLAC&NjjaT zT@hJuQQ^Rfvk`?FyXPU!_zdU~WqfuIuh`=&As3GR%i(0+0Rq^;4;4@etvC;&m|l;agp4kqkNu#yI?4i}YtS6(h|=PZ_`|2kneT@hOhBOaT;WO=7BTzBYr* z>Ro4Q&u#ikjrUyXi;bK%QbsDB8o6{UIbzriqd&c7yzdUJ$MMJU$-e($bMKzLeLnx= zKYO1f(n%v>Obn0TymNc@b=UhnPd!tag3BJCU60)Dcrt9aDnHG-T~>0y?V^`q`5m&# z_15A&|AR?$!5*EC>^#v2exF$Ro6Yj7 z#Oi2qkRQ zk52R;NYOBUCKg5nCvx#BY=wvF^4pPUm(qz&vQ^XpK(hl@#BUmIu1FY~M4&K-*XDHY TD!G&I{3UWglAYlH(f9HN{T%xO literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/cmap14/cmap14_font2.drop-hints.4E05,4E07,4E08,4E09.otf b/test/subset/data/expected/cmap14/cmap14_font2.drop-hints.4E05,4E07,4E08,4E09.otf new file mode 100644 index 0000000000000000000000000000000000000000..51237ad2f7dfef7d867b4f7f13c8984bc2f901fc GIT binary patch literal 1780 zcmZWqX;4#F6h1E-FM$HKKBr@=23)CDfmXCDMXa@p*uf1;Ye^v_Ktjj@1WYVu&&vvl zY+*?NJ5vR<3f84|6RGQTvCG&xw$te{o#}MC*xt~KL+=azaHj9hJ@Sqqt0Pgy0tmPFKr}b&$ll&_kxER;HE3+y1q0b4H0+8G!015;=peRaIQLk1vao(fxG>B(V@l0MklOMlVfM=!f z=SLyn@yytiqCWCnS~ zN@;;gB`xOC_0nRwUao5(62;>2*$K;Z-2*gvWmpdF)I2Io{lXjJ%lXx)a59VW;+j@mLu^3yf!{aEB9$Fg zv#6%!kj!JNq|vooSxhoo7$0UPV&{)u@?Q)3AE+tK$6_4aYQc}YRqg7aD!4c3*ylK7 zIu|zwABI<{4AA(;03IHfg}!Ywh**L{J9m`0x`XzKT*eqD-7!zQbIqEismx zBPF9D8cj|OGs&Zqa~QAN%d&HAK3mW+zk9>_%=5cG+li__I*sXYqhIf;--BnDC~=Bi z&TevOM`~l$nn?B0k}o|Iz8k@>qVIe{4;}WLZXfHrT6SD^V$;X?Azl9d#^Z0FwO{$Y z>kr4D?2I@}c`+}Dp_yjA9*=jfZg`irS5C*5-&)Ni#}`g6V-&v1eM&1{QL_cltHg7a zc+Q8o5M{_v_ABT<)cQP1tGHIDap z)6KW9G@f^B75RE&lWUoWIx?5qR@f>dt#QDwZEy`6tT5g0v5kNNJi`NZyUaM{b=uR4w+qh z!!4mbUi$SZV0>;L>t{Qhoov{;zo}E+su^5V_8?A)EbLx~q~F{)FdTD_we>ms{5@^- zK~%!{N-d?;mFlXzOV-hrv!A2;KQ)A0A$yzMrwXWiY8q{s3X<=UHkrokjFb-TXvI$q z)Zozd6<6|i2Yz+atzmy4upk=ki$r=t&jp^dZ*o>!ww0ToH9T=@TYq_{apw`^$>tNy zCw3ob8RWN1ik%l|_OOEt_keTIHPHEPbAR8v!HBcd66$XE3^YdQ!ZnPqDxeH1 zT}J0_yUkc%-`LP#_L@B=@Ah+56TROCquo9GdZTU8NX#|rc*}UqOtWq`%eu{elf~IU zqis{CiEfvNNhaNgnwdYbsY_l>d;D*pgx3iJro~5Exb^E@losYp`vtkYV+8Vn$FZc7 zU8h#uIkPdrWqK?o_-P3k863%Q9Eh)+BKo3W;xvB&ekik77C?XmuftXb1di9LYgH(cMeEuE0 z;0|91vth~Y98rQV2Q|o`4szgOcoix^1GQivUAq|Mpn!T%k*E%~6Qlz@R3+j$uoALK zUGA2IWX>ihO30c|6aZ;+!gZiA)A>!C{5e3$&EdQl3@l`~9Gm zS9!F6OD6c3g7YyoQ$#m4^OY@bM$MvGmh2DbFt>Oy?7PJ!Ci_mlbI$K~PQP<{ZgRHm z*s%?`&;m?|&B@K>2mX8^27n;|R>Zb~4+Ll12Gs!UIK=HMkqN8Q@3~GQJdJRHL?kRd z^O)qI+!2IVNe~e`$vJ@VGlUmOWU6|61yhgk6NIB=!uo1pZ$~clpv$Qe%0%pm#9Z{A z3So1#T&bGr2LTGvNqhig*Z>%?7=U3Ir?gfkYoNWgp%@4)#6o;Vh|dhoV^MRXn27;! z*=(~qDq;b^(aAYMit}<}>QgqkA*PEgdyCvO7dRNkir~%JUMS97BhLI#ELbTPtjdvB zH`J7iB`W@sk~F>`BSXN?E|q^N;ukb1RU(;^zqzVJUQ;cv5voL`%lO$+DLPm(k+Z#_=1fdrqh2FpiG;DR2P082x+}TZ5Ts=qOzB;GUT)Ur&E0R!A29b5EQE{XySRwaUoGAL)HsN^a z{w46;Eqv&h?Ogj<-`#zugr~RuL@lq$I#hS++slTV&$|9LKDW*`M`3n~;ijMwx7uws zdqT~~9!0MR4=sJQl86kYOf4bAjEcSJheP(RuYgqp(@3Q0Gh6 zj8chD%7?UrO<&ocIt<3!XYi{hj3irk#WJ`*s154+8@ikQ`Zldg>vX!2cuqZ1|89P2 z=x_9D%&oo_?|wUeU>XRA#bI??J4~HcpYBjYr^q88T(s|fD$1YIy^-Yq_VDmX&@$H6 zXXk@|wMdHiJXzk~(BKSupKJql=k}A$I$V zhjw|W^#hfZ_d)v2tR~lA7Tn`=x?Bqbfj+;#$GgR~#jw>>p)D-YY*wv5Ti9RHS-<;u z{h7woji;Lqw;bshcKqY9k@=<{aO*K663c*T&^*w2p|QX3g4=KE)Ox$yZ3A_FJZClG zD0fNR5_7$&$)K;Vt*uk5HFk}y*}n5i`9$v{cc8oHU~ix;;18Ndjo;Lt)ZkW&#cH)^ zoXuL38Yc^<&!N7}HX@Q<1mT;S?~U0Tv+f08><5T}=G5aYwEcAtrhxbvCriLUI|^+y z2F;=s@&HT!Pv|$ef)s4zQ!Hb{>Th3H85<1lCG LnI3wN|Ns085-K}0 literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/cmap14/cmap14_font2.drop-hints.4E08.otf b/test/subset/data/expected/cmap14/cmap14_font2.drop-hints.4E08.otf new file mode 100644 index 0000000000000000000000000000000000000000..9fc0bda2daf09e08eef26f408c76a27bbec9b056 GIT binary patch literal 1312 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 literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/cmap14/cmap14_font2.name-ids.4E00,4E03.otf b/test/subset/data/expected/cmap14/cmap14_font2.name-ids.4E00,4E03.otf new file mode 100644 index 0000000000000000000000000000000000000000..cf3a5b3f47bad5183fb4bd415b47c20ecc7f17c8 GIT binary patch literal 1168 zcmZWoZ%kWN6hHU9{(1eg(&=gz$?(mIfdsV_{{m4M$P^72wnX>A!CNVy?W46Va}~;9 z6x&zcqfh}mV7kSA8U&VMHiyP!lQ>LFH1UJXGz;;AM&rIL=qr1edR}Xy(R*@#_xyh6 zo_o%_dAIe*kybFk5YS+4Xli0>p87xlfHVMgy!G&7j@9@_J^*s>5&PUmLkB4njw+GlZSHR^zfnuR2 zY${5C#vV=91I7bJ%YGxP!h=SOKfPU=R-$RSF?Bty%%pYla(d^B^mpmzwEn*_=AW2h z!MJH!Fq=0g%)9Vo3~PJxXv^H2zYQ3M1#*xal1sNAvDJ5YmFm&DVa0k*@yTWF%+SS^ z62fn>=>4J1eyfSe)dO7mrQJJs$B#`PAy~$JYk?3foU+9kwjxe(2sO`6= z3rc)|9jxGL6ngR1IsSV8Rrl?}ep#HV76)U4vGD0* ziZ#rQFoGb)iv>MDFyUN^-gx(`=xWEUIt7&bpLx6Porizo!hIu=(DVsOkOWbf9-fI! zON=DN#p1chEZSmtF}xJH6UzMZ>CMk?y>$E8<)|2wqSAbFZff@Zjdk}QwJY{jMSt4v zWPE|MUCT)(Td}iYGi76AHWU7Bq%c4GzI464sP=at+6*c%PY>_Rv3y%B>=%a@(&Zwhx zS`$TS{+*`!^^FIghq@MMp$j!s+??qnlDX<`O0uLPc zpb{R3cIW~x^g<9{TN}8b8~VV5QGfmn{48AeV73w0ComgeKTcv%ZwYKF;Gm!du?1hK eInT@TsOp7)N-;s*pw7aTsSb|Zy!y`nKmG#jE@H+2 literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/cmap14/cmap14_font2.name-ids.4E00,4E05,4E07.otf b/test/subset/data/expected/cmap14/cmap14_font2.name-ids.4E00,4E05,4E07.otf new file mode 100644 index 0000000000000000000000000000000000000000..7c537c13a9bedd44523c8948413ac40c85c52eb7 GIT binary patch literal 1264 zcmZWpYfKzf6h1TiVD{04D$_J=gegK&Vzsb5jBR6Cq4-DuLz@WN04oe^VV7NY7YpT4 z2rSFa&azwDAdf!4jz27=5TKM=e`p~sYD|fZ8VzZPKaCn~&{>$0^~`RJQP0i!&iT$c z_uM--b8pFs6D6R5E>J*1eqkZgnqw6J0F|68IeyUiF?ZDsp!gJHRn<1L!*=B2%y+h%62qzKYWHOwr2=7)(JN1gB zaR~bTG1SLB18`$w$AqNby0`hNN<0$3CZ2ps%-abnf>6e3i%RPM~!w&$ zr|K+jW`A`$W6a1fGNu~)yDW3O)#YYwF6Q;dYP-{6cbeU7%?pglYGq30au-v|x>)CX z7>w-;H|8ZliTl(g(5c!~tzn;*ks(EfXSD{Wu$d-EUO_AvzAH#Wf?Avwo-7Fug*Sw_ z|K_NFa+*o)x^7ahUk~Yb;Ad%;6QfA4Jq;>67wCpb!bo@tUQFA3o;Fq4r9+;)ZYg10 za)|pYsjiv1!P&j%&JP5G$*cEguLU0Sw?Yfvh29^_MO)UQYq*iO51!?Eyq?}RUt51? z4<#DP>7NU)NnAVAdBA*FQe1y)%yzf!cEc~6IQi3q;R~01qd}ez;27}@`-X5v#}kRx ziTRu9G%q!rlNu0%=FbKK^PFh)i1nP<&~?M?@2#c8@3+%w-TdY*n)mS>x2HGI8|q6M zEi6b`srb5FtiOLpqAr{saP>ELN{M9_N$+8~qQ0i7#)*3SSp96-xBh#9N1^Y=KUt-O zY5$#}o0lI}EtnUJ9!OcvqaU7LxV7Z@>bH^K`yO*MgZ`VAA&KB6G9gKa_#d;^u3KZx%Jvxoo--MwYo{e=OS!+bv!U`)=8?W&2Lf`Ofcr=X~e% z+6yZX>&S;uF0t$q$B1{4xUm*Yn0v=!(CaP@IYR#OsB{?6G&tgfEmn8Yg#R7JL zjGuWFI(@!5DNB0>V0da?j1@h;KK+`I$)7*YR6WHME&vgR3DP9M?bU!AwP zTCs7vPH#5sudXqXD^;sVMQ*NwEU47&Q zvpsPUGZLS<62BLJGoJR}GyI=3@d?SK^n^?{8Ia9GKTv#iVM-F?PlE_`2v$Q6wiZk9 zT6h*_`}8V;V(YrtIwU)lm;7|X%V-=-t(U25A6EM8RXFqD$tpt1EK3d%*JER+Zu%bt z{Lj~wZDYmk(Gn}W)uZXr1~h?=fV10qvGrQ$B6W+p?Y~8x4EjcEdhjd{3wE;8GhiE_ z`=d-2(|h?2BfiJTUuUw}T-CdlvWC(Yl_gr52;t21%n%{{F?pYebVY)PIxj_;x2f3l8c+?pZa6=6ovWD0XMxRlu{r<1iXW7gMw{K--9&q6 z59R6Z=y7+`I8A%0B~g1Hq9MzWW!V16JpR-92cJy5_4CUkF3L^2=>A|d+}C@5tnQDk zr*qG-Y1Uj7t~U-;jRf)Jnwk5AG%>x1pipjahMl$toSA()3bV(`KYx#@y>Xt!!_9u9 zyRnU3SX#r%9BS`QXTyi}v07cU_EhPYzU%Zv;H#q-?%?qe-}#==!}luAC_mo$8N1%F z?O5}fkFGdw|9a>*=Ogc2&sdCNc>xv<;9kn-qcRLbd!%k(ZrlF}=vpKLKlL-aU)oIOSx7wrifj zwwN_$J7Vr@joO3OPOIM^K-6{S+otc_4;@Dige>lkaC@kY!Vk^>ftu*`dwX3GZ`gLs z98q`a2A5Z?Wo6N2eXlU&HxtK)VxH09Vb@`Qe-J;xloE8AwXC*EyMNP7TcZ8S7tGST zrjR@22s&s@r-s(z%$}J5Ax*k{gcSV~xkn4GUyk40JAdo%fCNGRp;1pf}>^n$`yUWNQ3UJ*W*gOiinu-VyJE-OL>h`7arOjI8x5Topi z5uVd|AV)|AT2O)>@?Zn(g(}cNJ($q+Dh4%FLnCO=sUdYoYKp-^6fHq`3yKC wodN(ji49sQFeA8ahZ2vb9ZD+vDaoLqW;XG~Jvl zX+cL=ANEHWck?mUxf2QMT<$sN_dDm@doK6Xo6Ys0hCYx% zT4hZQU%uVH2mm4gd0XFj*7Pa(#tpzNAa~m;SUg~uyZ|6GBhGi&Ew+zQs>Jwp#OEAH zr0psnAPyov=@9%~DJoKkcmT0duylEVyMZoDGTd$v?6Ogv9?wfdT;*~5{E63KLfnIx z2f$noI{`Tdgb<~zQxLkDcQIywSSE>Oaj`5}EJH4(>txx}Fct_LXkAJc!2E9NjHKLK zi`Ob>iD8G<9--&cK}LwY_Ig{fsnYG~_TFuC`1yQm0dFcQGVv8Q_Z>Um*zNP%1s{L4 z-Rkyw++K^{Zac$QxLkY#OZV{&cAwpQAIXD$u)!hVusvPXb0Qei(jKa##O+wcTPU{RKp^!|0y8 zg+6AtZ;=i-o(RcJ+X%4Nu!Ep z<<)YTTFy<5$Yty01M7e#L{(N^o3pRj>GHWR);hf0E?XvN&Ca%Rh1JdrcJ8##2^8Yyw_g6hbyeF=c?#*4_9UP*xgsqnWzT~3;=`W8Mhg>8O)qvtHJD+mUl=> zK$1&_W+i1%(#R9i>PzW^bX?N@8`J%b=^q;wjE_yGgE7`y1Okd;?d+ zkQfSw25t-n2SlAHc7{`jJMQ5a^N;z*JAV2i-=2Sb@%hA$!xMpUPz;D8{lmBK-I;$= zx0FAXJ*{ZlvTZt-=YGvZzb=}!I&U#XgIyLQJ}y3L{3~kyK6NfR{}&K7?J;QHG1*G( zr?ccTY>IWOtjrWrmi7S^b%bQmj-vVcIka!62S(M0;w#cAYeIn0&yikGgNZDXMOXoA z+yY`m*jfe+t5F*nMzxl*W(!M-jzU2NTfrvwpnBm5iN#`cS7e1as4$R$wGovbci)UW zff+C(vw;9SxF82|;T+U}6B@va-CYHCsD(zT$EZ8L1|AFTM$9&#&B1H{e0U&cdP`uT f3WY!g3t)=lw78C619j3baRC&d#75|U^uPQ8^%5NU literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/cmap14/cmap14_font2.name-ids.4E05,4E07,4E08,4E09.otf b/test/subset/data/expected/cmap14/cmap14_font2.name-ids.4E05,4E07,4E08,4E09.otf new file mode 100644 index 0000000000000000000000000000000000000000..aef4bd39022afea8baaf98049f02c14e90a562c8 GIT binary patch literal 1780 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 aQH-5AA+ld5605|D%blRdTiHJT|M3^n!d@2u literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/cmap14/cmap14_font2.name-ids.4E08.otf b/test/subset/data/expected/cmap14/cmap14_font2.name-ids.4E08.otf new file mode 100644 index 0000000000000000000000000000000000000000..00c466f26bd0fb4bddb94aad337ed45fd21e1aba GIT binary patch literal 1312 zcmZWpdrX^E6hGhB2VWm6OzAS0(R@4>#i?VREJR6=flQYS43JoZVboG6(9$Qb2@Lvz zJ}GSlNT&0xP zU)iC!$o74NPpXh2ZI^oi;a?EWQE5z_DFiMop|8B--3oxkkzI2t_C! ziV3AUt6KS*%u*m5jNOtW+A6hIXV()`W^0 zz<`Bn6r|*q(y{AddL+!HE{FG4!&~7q;gtX05&zur z=J`8(fHK9exLmv z`?c;HfotyD?oID)_oCmmtQsLQ9W+?UA;*+u$}>4ZWm2Qp?@+ugO7seqMdvAA@2Szt zIu$(=vPgiSVtWf>K_qrS>~^@F&O=s@)n}KCmz8F1)PDH})qL|RO$0l<#=*8;I$frs zg*K)0tX=$dl(X1z}`A$>6KG+s) z517U}hAjbW&@S&*>)R{U1rb{EQ&ZSH_x5}42OgXK?iJ$ZlAYpMZaC(8L*|fWrfa-= z!s<5fxBoc!z&3L}&@>5)JYv*$6 zo~4Bo+2f}u^1J&VEQB1({^@~f@1&oYr(|MJjk%_|LDO{dmL<}+`W1Eft|>4Wu=#Bs z^^n@5A*iZ7pI8tbbcqGb5G3|7W9P5uQVahCjI+%QN%xV(KIZ(k7SqFlxR))(KSGcN zIHN_Aw2eK(EXJR=h7=o&211+{6A=?Oe=`hl-WujZ!zaXcv0Zow(!>c!MiKzd=d!pQ z0gki(?Z(K(rKetom&%E9BAJ8XJ4IML9%r&5RE!owI7m=!7@LQ(A4E7Q;~+vv0UD5l z4vxd~a1I(k3$0*6zdoB~u?oaTHC6Ey+og&PC71po;1@7=c|;~YI$3qbhqv8|v`BQMYS z`t{2I5Ji~hs}%C0vkzey_V2_zQ-uw&&%)ltya)3oDou60~b zK`=!aOc4cN4nZ$TM2iN1!)BX9N%*S(oOl-HM`1r)oBBy8EQpze<3EB$FM()*AS668 zDt2DnD+?2nl2sa|EL|y+DP6sk#OhwsblO@<^yirGH!g73pFdxRC&u7t?OOdU@;k+s3vQRfq>Du ziG~mQG?$yss-Mts=x?8RJ-t-7gJD=KU6hyVz%z8yh!n%@sZ^3d zY9~@-bjUB+*-;vnnqUbH)vYJwHe)dX?>|q)k&A=FNWJTJwBKSJ1^gX5qDwq zPMCz!3lHk@Dh|~b>U@Vr-2|MP9wxjU*)+n1>i7Zp+a*e1@{W&FGd#`(T$r}C+Mx?rw?%o!F7;dI&< zE@9Mdx+J#}l$EC99WdSsUwH@4qwH3^K9ken(9?v;WVKilD4K5sYMf3ZJzdT&kJmSN z@?www{H+T&FWmf15`%;mBv_?KKW@qGCxVNRmK2Xp#gPmy2fe_^8aeZ#?j75bZXEtB z7nWQ1K)FY}jZeI=(3{mFKXeZYM_@Vh%iV8nL5W32CP z!MOa)?oZIl%FXZ9jel^(bo<+`@61o>xot!OoS#FWk)Royjag7Re7K@lK?GlazM2#V z7f+>-O18LNWk6}_edyIVHIKcT9mUQwgSM5&ulYCXzw6pvdvkN3fKe}u^oVAAo4z>O;- z1B1Hv)f8d+#XE+)_-*XY?(K~)4qq_y`3k(tV^eF%m7PgTjjQSEwhB*;r`BEVt#caO zMvqzETv}0^Q@VB(EqZ(;pdW1dHS;BFGJkrOxPHnELk(A{!4|*XZ|HC6ZuS{ndWYU_ z=dd`(zo>m={nFIm=+;@=Jgx2)hIn@xkoXMHcDmEzr9FoC8oUapc5q3-awPFB?%oQe ze|d0h*iVhQ`Ye6+9v3kL50Px1KCh%$b0qVYVYKziAK=1ItKC+&$z@_o9i^;>fcvI7 zydN=BF=VbUFL2O_HXceO&o-WEJkxZn^?2tH`wyoL=2&hL^oSV?b<{FwJ?g#K*xz@N^I5!lcXx;F zXq}J9UPH1+94by_t+zCpjP*4&b+xrRMrUhgetz}Hwcandf$pC6-T~Ku&u<+y|F-_L zj-V-g;whcIS#PN&;DPD$c->YTDaMx-{#wrVi6@V?=f`aLClG{A^5*8`ldb&t=fi>u z5I18F$q=5#R0M>)6@bu5LE8Tl{+SW{O?ZQk0{+l9XS2-CdjSFWhWe?aBF_(kKhnod6Gc$Zv%(AfXO$Zj@ z^$J2FaQ2rmpVNgP8nZ&60di0dWMCD@2gN`O%0M-~!E=BDC_xP<#oo% literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/cmap14/cmap14_font2.retain-gids.4E00,4E02,4E03.otf b/test/subset/data/expected/cmap14/cmap14_font2.retain-gids.4E00,4E02,4E03.otf new file mode 100644 index 0000000000000000000000000000000000000000..0bc930a9d03ad44f5da8917573906a851ea94d6f GIT binary patch literal 1452 zcmah}drVtp6hF5w`l7%_2@V~X4Hhss+pZe-COYU!xlAbST9_adc@)~) z-qP|M-i9mw1p*B2FwfRoCwNTSSr8Oo~9dD%vBOsVe1XBdT6k#w{#6>BE zdq=?M@oZ~l*b@K~>*1rEL_hmw%Jl=Jx`TalgWk@Qm4`A$gEQHIU{+p&Q@(S z*~piw3}&mvY}HpAOAnG+m6c=xPq&c;Mw`)k5uMx1#&tWDpu%m0No8_{GF%lAt=Z?Zc(Glk`{_QMVc+D`3O0KqMa^&( zom>TKpZ->d_o|z%Y-8VcvlUGfdXJ+_%C7v8g3SHFarMIJ;`G-YEB=lrD~gVDGH#@> zh0CBT`%L~yf3v^6xBX_rm)$p+CFYxsC1$G2^Kp5fG=b*8LHg+7)?x3^Ae+Emn!Cfw z?y{;E*?pYGaLQhE;dHIRK6v_Sx0K!399JuT3@)qtJNvsX`)&=guQEO9OrxvOWp6pl zMcVbPQkrJmadeoe!Ecyw-fsWOIa_islLKzg(RVW6J@A9xUeoHR>%Hiuy);AjHut%D zy;85&&BP5l2C$9W$L$l22X(7If4cJ7y;tr(H|bG!)23Q(qQW5vRV;zdDIHLJpMtz8xz6t;)smjfDo^u2O5&5n)va%v&036+3FDK z1TzSQAmF|DqE-q1&Hk_a#pB1&46G%a$7ze9$f)>OXazg-go8jfPxwI$N@AT@hlijG zjes^<00Oy0C=n|J0@2QCyq%Tv{0Yd+gFNAO4PLJuC$_e>_^ODqu<;^+JlqQ*l412& z#M`z2e}~vdws41Ew8IudG#q%uk%asPFo7N{poK$F3}s-3DyYU^rvQvVK@C)5)C#X7 zvVslHhvHf|2pX)*pQadlG-j0Jc$oj6AOSm}!jl3}^9n_P3kKX5fHH)WLpqco6yPBy U$isv@X`96xC|g7PANXJS6F?HOivR!s literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/cmap14/cmap14_font2.retain-gids.4E00,4E03.otf b/test/subset/data/expected/cmap14/cmap14_font2.retain-gids.4E00,4E03.otf new file mode 100644 index 0000000000000000000000000000000000000000..9746b455933419105ade25262142ec66d5413096 GIT binary patch literal 1340 zcmaJ>Z%kWN6hE)8|65vcJc2T}$0iF+aJGfbjV%geviK)p*rHjCz*{Mg36IvcOc07N ziv7bY1q9Yn7Pr_>g8&(3b7)L937cQkL_aV?2+>5NabFhnl|4*7@3AP+#B+1c{r%24 z_ndq0yYE(?I#mri=m8QkD=I7Lr60et06-Ezk*GfTjC~>UksE;g4sG=gj&au(-xvo_ zeun(bCMVNyb4^gAzYO`oCNyNOt9j&e$e(KBeC=7IWB_?P@AP7R;(8h5c5-LrZAyr7EEQ*wcOyw%Y zEF-z=GQ(fq$L;bkK4-&zy1b=@u93pMbdA&N^qfQE*0OQkK_i%O8yc-nZ!l(<%-K{< z-d_D)z3Fes*V7Wq*YDArJjsoMq!>&J$K$t?;&@Um%qBO#NPe4qDXIClPy3HgH>F=Q zOc{-9L&gj|1>It{tf`e9@-ad$OcBS36GFkp(^PrAODyd#>lHIEi*BK?PTMm#KXNT^ z_=CY%Z1*>Ju3e2j;BO3F4_*)aa9ZGsKk>#}dDqB$k-lJmpflVV>h9ADrqk4Kl~=_` z7u{XN91+Rs*Av|B&YR8mBf`|LU&lu;g(qS>AH{Yt91oA<4F9G`8H9=r3&o4g!(ub) z7;|ed`f)^P=@;IL2+ch+%s`+~E8P3jLK%KeEmQH~_{hcBt%UFjKU&Inhq^=l^R;58 zpXt+v!+az!tl_$b95cZ??|&Iws9!A;L44xyJ7w?g`-$=yNHO`J`Q$?H0lpz%wpbXOGl)Ga!u~BC}`a2M+6|_KC!Ca3teqT$x4LRvSrCl+P zlmvxj#T&jt6m6mZ*W2S{jP-PjIOnd+uBeX4E7+dI1Pa|EF$5|w66?e|JOsNu0%An? zXY19ZT4hiul-s9CxcvCB7oe;Ps>rPxl3shBNT<_MRb=JZBvC^Z?uAh5uzD`?Ev&%5 zHTMxFx7n53unMwa-=i3{Yq@7o!k^*A1o-V4abPMD-G1C*pt6u4l(eE}F{UMOohf$WedCXfQ84jGa` N0x0Q8=}r2t`~|@Lcd`Hg literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/cmap14/cmap14_font2.retain-gids.4E00,4E05,4E07.otf b/test/subset/data/expected/cmap14/cmap14_font2.retain-gids.4E00,4E05,4E07.otf new file mode 100644 index 0000000000000000000000000000000000000000..2d378d85a6a68388dac06543f65a4ecd8537b81c GIT binary patch literal 1468 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 literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/cmap14/cmap14_font2.retain-gids.4E02.otf b/test/subset/data/expected/cmap14/cmap14_font2.retain-gids.4E02.otf new file mode 100644 index 0000000000000000000000000000000000000000..7e4cf58f0c016ed3462a269a9e88f31a94e65953 GIT binary patch literal 1092 zcma)5-)|IE6#nka&U9yIf3(tVFhMe{MO!tvyH-RY!P;7dht`xvnl!PlyUQ$gr@QPf zrcEFzT7k05c9mF7S^^F820@}V5h4#jZJLOQ2~U_N_D}Gk=5Cpq^~|h^8-4Li?z!Lh zoipd$J9qBD(9i%BOhH6rPhX#QXz6kpfC;eQ1`fX%xm~=P2E=C4-j5m43<3+i#J7ld zBoop2t#vK~!Zh(cNfH`2EiMJ<>{Dk_wFiiXh;$22`A_Lz$1hGIv9*-IcX=P_0 z)yoqfw+c4(s7aPdYQ1J*Fq~T1Tu?i-bZEtvjCnAfX+e%;ghCPCGarOJ_6b zY&4&U@7B6gDQ(bB&uN2+Tq64siM1uun$N26(H0uqibwVO{DH=%mNrkD$6sffr`6-n znwz^!>#WIpzq)5ybEeF{Hn;AZ56wen!@pzhe`3lt&$@ce>s>EsarK*@ zN{`B==f*}3Sc-LJ=woaDOlr<3r^=_xXTCUd=j4wU?-U;te=a>J-u%4qU2@LdI%8p4 zo1MAz$)yVm^SqURdG8mlJmmhjd7BlA9XT~}e0U;uYJPa>qML7ST@R|2bA_O4AFwmp z_w6l@2KN5}CasZzle=zC+4HaOvEyi|mRu3xTcRQaTLq*w_CgK)KkwvIFJ+nXR~@z} z?Q^=<7w|z)mRT7RyljJQ;4vc348nxyZ}!NdEUALvs(;PK-Mw$TiP!sueyTup)%NQL zShZTUyAtcB$2J-Lv=8P|sQY%}H7vkStcJxp-BpJrG~=1Sb7V)4!9Wxlgwcgj97P)A z$kQzvL;^ZaAVtwE-X)er4#%8$7`qXozKkk)X!g=$+YZM&r_oPe*&Y-TYif1DzMKEG FzW_(P75o4I literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/cmap14/cmap14_font2.retain-gids.4E03.otf b/test/subset/data/expected/cmap14/cmap14_font2.retain-gids.4E03.otf new file mode 100644 index 0000000000000000000000000000000000000000..846fee5c5200672e286ab62c57cc1ea36fa196ed GIT binary patch literal 1188 zcma)5Z)_7~7=PZo-u2(LU17y3h$j)UMgnb_2uO5uFhOx6gBTMN#?f_G+-@yxhtyCq zq1txqv9T~1Y(^LF8_Q+_A8;ln-~#x`M86EvkbTnl!Ni!!bsVNX@0G+xzxZ6<=l%VD z&-1>|dw1{Carkft*kKS@sB3L&6MxuuVj2K60LI&KXlrO*{UQ#)9zgAASdrpwTcZyF zEKSJYjz*;Jua49LNt91O|9ZLP6*I&oZ%ro_guUkn8TA+e=9b}S+uN+(kh zB`NOj562SmSVBrgy0?feeSKmlO;3uQkz^!s62mPQ2^ zegXSJz3F|W)xZ++;_bV7>x$o3Gz34}zTj$jqLweuG`ujtA@8GO7ob9pc_y6+y zoWGP8eG?ZZ#;%Oqn$!;zFYYRy$)Cw*&K@!9GSWF)p->!JTd*ppN5iwZyPtfQn?L%X z*#P62ogXxRxanspGjJ}O9zUrT)IzZ^{?VoUxN1|?q2k)f>{WbbGBcUk>>ugUuV3H) z=D}OPy*igG=GB}!H8y$i>gC0Iy$^R^56m0Zvw^TJp8T|DZp>ER{CLslEa!)PPP`m= zDa?`oeueGw?EVu7SEBOijb9GZ`KKe~1gxo?w}hDMNLgU03c!`f<|_LC-duzA>UzCcES1A#1)Wq1T3a|XnSunQbK%X3bKvD7Z3xMk1ld!f0VZD*@B zs9$=GR4Nr(6GPZtC`mJUsM1;Y{7-Pw$<3 z&iT%A&$;)^yYE*I^Ux9IkT&dM%RK}4QV+ajOsjdZ5zr)BQ zcyXGfN*Q}`M;R9HV{B__)@awqL4x;R!B_-$4DqiE+xsMB>9x2ptQNALtRhFwW6$=Y>^}yTDm57(Y!z7a-Pd#!;V=QUBUAzQ! zcr`OjTf^w^;Po)wALgJ7;k6s#JK-bYxc{_~|FUtXc`NbLeEy1$zX{(lcOfZCh09xj z#7%;|&`)e90>qcB*%(<&11eq37P{!hUb+!euk`00_nZSM%&5VE8hhT7I!$#Xy8AF& z7>{;EW`v8OrAxOwcYU5cjn&08m!7CJ(9hZx{Ysz0ch+Y)XL+~#rvF{n$FAF+k6jo0 zob&R2GR;ndN#wPU8b{qDL6n9Du785KcTmDhD4ou!c}-ufs?ycygH>~W60NSy2;=8g zlZ7t3%i%~dxlKOHj^VPy=}V_RJBb=TxJHwKc8|u^dWKG_lGA*%%yHDBnr#X-GzS|l zRsGtz=)ULs&BRYXA;TA(*ZSwj?wr0Xy>j#ybgsJijrPkwxnaJ2f9S84uN)i2(S(a; z`Do}Q9WJNSm7<8a-f&{g98*K-NR6a_tIZJgncc@fj_di0(h%-t~`_3DuAEhGcAiXAhe*tBGHczu= z3ZJ7-(CnG)H=Dll{wZJ@atsB?NGAQhF#a!*e+WMs`mp%i<7I`Au$c@L$}E`*nET$q^Bzu9Of&ENa3u{!mz`=#L*J0D$Xq~PH* zxO?-fMZ(;H^xdX>hxV*0&>Cp-YX{qVjeb+WBJEbF+A0)9bM%fs)`tyKT|aVt;Wk@7 zy-I#?$%5F%oA#+QAw$SG-Z9)AH1!$029L*wXYb|D+kS8R!aUyT*W1npdi-Zx;)n&=D}c(J?6NZJx?F{WQ%F?izjpiGFwQ{7lF`-#2C*^NjS7)2K@5t~OLR z)G6x=ZW-r#Zu}B$`&8?<`OST1x5BG%D@k;G&4>FTSQQ9Q2CKub_0oqX8)^UYzT3rJ z-ap&P-hjvJ-8nHa77UK~k9d!mk6IfHCu;OBYY)A1V!UQhck-g{YUh>CD_!S%W(TI- zf9rLk3hRfY3Rt8;MS=UBh+T zoWgkg=`jx_?5X5*zb<(8??AAZu?D&`FZM9}x2FgdB(Hm7C9JnGi~$y-#V_|Vv2R2A z|LHfe4F6{RuU!~hGz+eeyMR5GqLCr?x1v=)9+Cnq?gHThHt>lD!~^&mBvB4n#u5OF z$BE&v<5{fO$HN%8?qa_&YBhOQJ7>+9=GR*XvUWCjPy@%f2ZF3$cW#v3vV z5-{43V;re;H&;(li2de-XP|ykrY*oXn7^y)6 z^-;SR_CpTN%XEN^R}$Wlhj}rs0Pq8f`SlD=5cs&u`Q7~U39FEF#py69{&X7c(2<4 literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/cmap14/cmap14_font2.retain-gids.4E08,4E09.otf b/test/subset/data/expected/cmap14/cmap14_font2.retain-gids.4E08,4E09.otf new file mode 100644 index 0000000000000000000000000000000000000000..1945b0b28e241298378427898867504eff555ecc GIT binary patch literal 1936 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 SqYai~O&rq~28F-*@$x63PT6n( literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/cmap14/cmap14_font2.retain-gids.retain-all-codepoint.otf b/test/subset/data/expected/cmap14/cmap14_font2.retain-gids.retain-all-codepoint.otf new file mode 100644 index 0000000000000000000000000000000000000000..ac622b63cc16f5109ba3e37f563de970e123af2f GIT binary patch literal 2496 zcma)83s6+o89uwqE_VSzE0;zvxS$v?sO<7m;{!xVqE$1f5kf0$VY$4P1(r7~fqk%h z@7}u)c7cWEDVt6sAXbr}Rx`da>cqsh(UvhzCTXS}(@Ct&U2<^fx!|-;)9Lj5bH4k3 z|No!!pL6~*_ud1C4jlku&;kTtX@B2%UerZpa-~9eJv<%7Pa$q9SE;M!2Y?LCKZv*l02CVr01x=^0guNM!0O-SCdEhR0Tv=CB4M#K{dL?V$yBomv6&4e_LkV*-u zjF83?(gZ@9NJx_iX)+<*L`XLivN%G9#>fa+JRwUUWQl|(sEj$SWI-kQ2IZP)Jfy>G4aTjv+}uNL7a@e7Rbi{K!VgVh|Y z;UJ2GwH&;{K{N+3&xb~G-bl_{>6wl4K%L9_HUnf z#P5;+NI<|NTfh=@_TsC-3y9Aw2mYvdpcRbpLU?2R6#fmtc7em^h%iVP%tp8Oy!(z3rx_jf)apnpAfo;+_ssAF2RmM-LU1hYY{as3D zH0T@2MpLs6V*|7B$LYr*)g)<-mA?iBqetAz%Z+DCzMUL4Sa)*gmHOCG}#rIb$J?h=7a-dXXi$7|F6CGahKiI-fg|)W`9OI zx6sX|W|KyH6fV`sbr?y~R2b>2Y_jE@Fy3gpX*`$vFa-h_y16!`VeOygnrfZCzN3aA z8ImSDT02c048|}N9p={eAQ{z+YEI~%)X)6o{DX@R_kOc|+(?@kBh%aNcJ_4LpDy`+ z>*=_2&{rFmhn1`Q3dY+pZ|vNCbOK+_`reDWaEXw!G=Kg(xB+~0MO zIb;r%yLf{16oUk_+s(9X)r7-vNp8YO6Getu*)S8k;vIH5X)&So8SFZ%mck4MlhL?} zq_~E`hPhbW*=_H3y4=GjFZK?dzjfi}g`2;Qq#@r3c?nwh)8?!J%o`3>xc|g#2u`Ep zphESG-qsf0lfEl*`sk-wZ1Iir5OdaA)TZiY7@S!M0}KjkUt7gk*-){{U3@C@59aI4 zL)&MAzrBlj#?9wD&-CBRos>`Q`xwSo?s%_u@`EdeJKuJH*Y<>3EFCnp2qZNG$%=_xIMBLxIdNvv-n1YT%9gHnG2wyIMp@lHyGE8G5QDfk9(4!yHY-c(vqlTo^90)~HCVh7Q1n(jTP#y zk;BbH+9BOQeNU5H->$W4EfyOR`{d^}Uzol!3^X`2rdDT*qnXCuodY!kczkq-Jk#E9?6>r`V5#p5@N=9I?Y~$4a1MCic#bM(bk|vpczW%HUwX z+uiHfW8GueXDrqp&eObEwe8&Dfjn1T*2%iF4O0zMjmKNYx<;74+s$l-@g_!%w;>^q z8HY{BTo)S#`Y+ntMwiyn(`i0d>&DWOai+*xXe%_;85<4yy6WoMni>tQF*ng~Un{!a z_qlDbr?;bTuzk=yWSVIEP2Fh?Mv>^olNw8t)>wnFhv&|tb(_q%KYCSiA3VT+FbQ&k zw*CX~gfqwjnxam&aL+#;A`!D)&`zKranl=Cc literal 0 HcmV?d00001 diff --git a/test/subset/data/fonts/cmap14_font2.otf b/test/subset/data/fonts/cmap14_font2.otf new file mode 100644 index 0000000000000000000000000000000000000000..4a7da8041616f07349d915873842a56782e92298 GIT binary patch literal 4480 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