1 /* See cairo-font-face-twin.c for copyright info */
5 const int8_t _cairo_twin_outlines
[] = {
6 /* 0x0 '\0' offset 0 */
17 /* 0x20 ' ' offset 28 */
24 /* 0x21 '!' offset 40 */
27 -42, -14, 0, /* snap_y */
33 'X', 'X', 'X', 'X', 'X', 'X',
34 'X', 'X', 'X', 'X', 'X', 'X',
35 'X', 'X', 'X', 'X', 'X', 'X',
36 'X', 'X', 'X', 'X', 'X', 'X',
38 /* 0x22 '"' offset 90 */
41 -42, -28, /* snap_y */
48 /* 0x23 '#' offset 114 */
51 -24, -21, -15, -12, 0, /* snap_y */
61 /* 0x24 '$' offset 152 */
63 0, 10, 18, 28, /* snap_x */
64 -42, -21, -15, 0, /* snap_y */
70 'c', 24, -42, 18, -42, 14, -42,
71 'c', 10, -42, 0, -42, 0, -34,
72 'c', 0, -25, 8, -24, 14, -22,
73 'c', 20, -20, 28, -19, 28, -9,
74 'c', 28, 0, 18, 0, 14, 0,
75 'c', 10, 0, 4, 0, 0, -6,
77 /* 0x25 '%' offset 224 */
79 0, 14, 22, 36, /* snap_x */
80 -42, -38, -28, -21, -15, -14, 0, /* snap_y */
82 'c', 12, -41, 14, -40, 14, -36,
83 'c', 14, -30, 11, -28, 6, -28,
84 'c', 2, -28, 0, -30, 0, -34,
85 'c', 0, -39, 3, -42, 8, -42,
87 'c', 18, -37, 28, -37, 36, -42,
90 'c', 24, -14, 22, -11, 22, -6,
91 'c', 22, -2, 24, 0, 28, 0,
92 'c', 33, 0, 36, -2, 36, -8,
93 'c', 36, -12, 34, -14, 30, -14,
97 /* 0x26 '&' offset 323 */
99 0, 10, 22, 40, /* snap_x */
100 -28, -21, -15, 0, /* snap_y */
102 'c', 40, -27, 39, -28, 37, -28,
103 'c', 29, -28, 32, 0, 12, 0,
104 'c', 0, 0, 0, -8, 0, -10,
105 'c', 0, -24, 22, -20, 22, -34,
106 'c', 22, -45, 10, -45, 10, -34,
107 'c', 10, -27, 25, 0, 36, 0,
108 'c', 39, 0, 40, -1, 40, -4,
110 /* 0x27 ''' offset 390 */
113 -42, -28, /* snap_y */
115 'c', -1, -38, -1, -42, 2, -42,
116 'c', 6, -42, 5, -33, 0, -30,
119 /* 0x28 '(' offset 419 */
122 -50, 14, /* snap_y */
124 'c', -5, -32, -5, -5, 14, 14,
127 /* 0x29 ')' offset 441 */
130 -15, 14, /* snap_y */
132 'c', 19, -34, 19, -2, 0, 14,
135 /* 0x2a '*' offset 463 */
137 0, 10, 20, /* snap_x */
138 -21, -15, 0, /* snap_y */
146 /* 0x2b '+' offset 494 */
148 0, 18, 36, /* snap_x */
149 -21, -18, -15, 0, /* snap_y */
155 /* 0x2c ',' offset 520 */
158 -21, -15, 0, /* snap_y */
160 'c', 4, 1, 0, 1, 0, -2,
161 'c', 0, -5, 4, -5, 4, -2,
162 'c', 4, 4, 2, 6, 0, 8,
164 /* 0x2d '-' offset 556 */
165 0, 36, 18, -18, 2, 4,
167 -21, -18, -15, 0, /* snap_y */
171 /* 0x2e '.' offset 575 */
174 -21, -15, 0, /* snap_y */
176 'c', -1, -4, -1, 0, 2, 0,
177 'c', 5, 0, 5, -4, 2, -4,
179 /* 0x2f '/' offset 604 */
182 -21, -15, 0, /* snap_y */
186 /* 0x30 '0' offset 622 */
189 -42, -21, -15, 0, /* snap_y */
191 'c', 9, -42, 0, -42, 0, -21,
192 'c', 0, 0, 9, 0, 14, 0,
193 'c', 19, 0, 28, 0, 28, -21,
194 'c', 28, -42, 19, -42, 14, -42,
196 /* 0x31 '1' offset 666 */
198 0, 17, 28 /* snap_x */
199 -42, -34, 0, /* snap_y */
201 'c', 11, -35, 15, -38, 17, -42,
204 /* 0x32 '2' offset 691 */
206 0, 2, 26, 28, /* snap_x */
207 -42, -21, -15, 0, /* snap_y */
209 'c', 2, -34, 2, -42, 14, -42,
210 'c', 26, -42, 26, -34, 26, -32,
211 'c', 26, -30, 25, -25, 10, -10,
215 /* 0x33 '3' offset 736 */
218 -42, -26, -21, -15, 0, /* snap_y */
222 'c', 21, -26, 28, -26, 28, -14,
223 'c', 28, 0, 17, 0, 13, 0,
224 'c', 8, 0, 3, -1, 0, -8,
226 /* 0x34 '4' offset 780 */
228 0, 20, 30, /* snap_x */
229 -42, -14, 0, /* snap_y */
237 /* 0x35 '5' offset 809 */
240 -42, -28, -21, -15, 0, /* snap_y */
244 'c', 5, -27, 10, -28, 13, -28,
245 'c', 16, -28, 28, -28, 28, -14,
246 'c', 28, 0, 16, 0, 13, 0,
247 'c', 10, 0, 3, 0, 0, -8,
249 /* 0x36 '6' offset 860 */
252 -42, -26, -21, -15, 0, /* snap_y */
254 'c', 22, -41, 19, -42, 14, -42,
255 'c', 9, -42, 0, -41, 0, -19,
256 'c', 0, -1, 9, 0, 13, 0,
257 'c', 18, 0, 26, -3, 26, -13,
258 'c', 26, -18, 23, -26, 13, -26,
259 'c', 10, -26, 1, -24, 0, -14,
261 /* 0x37 '7' offset 919 */
264 -42, -21, -15, 0, /* snap_y */
270 /* 0x38 '8' offset 944 */
272 0, 2, 26, 28, /* snap_x */
273 -42, -21, -15, 0, /* snap_y */
275 'c', 5, -42, 2, -40, 2, -34,
276 'c', 2, -18, 28, -32, 28, -11,
277 'c', 28, 0, 18, 0, 14, 0,
278 'c', 10, 0, 0, 0, 0, -11,
279 'c', 0, -32, 26, -18, 26, -34,
280 'c', 26, -40, 23, -42, 14, -42,
282 /* 0x39 '9' offset 1004 */
285 -42, -21, -16, -15, 0, /* snap_y */
287 'c', 25, -16, 13, -16, 13, -16,
288 'c', 8, -16, 0, -19, 0, -29,
289 'c', 0, -34, 3, -42, 13, -42,
290 'c', 24, -42, 26, -32, 26, -23,
291 'c', 26, -14, 24, 0, 12, 0,
292 'c', 7, 0, 4, -2, 2, -6,
294 /* 0x3a ':' offset 1063 */
297 -21, -15, 0, /* snap_y */
299 'c', -1, -28, -1, -24, 2, -24,
300 'c', 5, -24, 5, -28, 2, -28,
302 'c', -1, -4, -1, 0, 2, 0,
303 'c', 5, 0, 5, -4, 2, -4,
305 /* 0x3b ';' offset 1109 */
308 -21, -15, 0, /* snap_y */
310 'c', -1, -28, -1, -24, 2, -24,
311 'c', 5, -24, 5, -28, 2, -28,
313 'c', 4, 1, 0, 1, 0, -2,
314 'c', 0, -5, 4, -5, 4, -2,
315 'c', 4, 3, 2, 6, 0, 8,
317 /* 0x3c '<' offset 1162 */
320 -36, -18, 0, /* snap_y */
325 /* 0x3d '=' offset 1183 */
326 0, 36, 24, -12, 2, 2,
328 -24, -15, /* snap_y */
335 /* 0x3e '>' offset 1209 */
338 -36, -18, 0, /* snap_y */
343 /* 0x3f '?' offset 1230 */
345 0, 12, 24, /* snap_x */
346 -42, -21, -15, 0, /* snap_y */
348 'c', 0, -34, 0, -42, 12, -42,
349 'c', 24, -42, 24, -34, 24, -32,
350 'c', 24, -29, 24, -24, 12, -20,
359 /* 0x40 '@' offset 1288 */
362 -42, -32, -21, -15, -10, 0, /* snap_y */
364 'c', 28, -31, 24, -32, 21, -32,
365 'c', 10, -32, 10, -23, 10, -19,
366 'c', 10, -13, 11, -10, 19, -10,
367 'c', 30, -10, 28, -21, 30, -32,
368 'c', 27, -10, 30, -10, 34, -10,
369 'c', 41, -10, 42, -19, 42, -22,
370 'c', 42, -34, 34, -42, 21, -42,
371 'c', 9, -42, 0, -34, 0, -21,
372 'c', 0, -9, 8, 0, 21, 0,
373 'c', 30, 0, 34, -3, 36, -6,
375 /* 0x41 'A' offset 1375 */
378 -42, -14, 0, /* snap_y */
387 /* 0x42 'B' offset 1406 */
390 -42, -22, 0, /* snap_y */
394 'c', 32, -42, 32, -22, 18, -22,
397 'c', 32, -22, 32, 0, 18, 0,
402 /* 0x43 'C' offset 1455 */
405 -42, -21, -15, 0, /* snap_y */
407 'c', 26, -42, 21, -42, 16, -42,
408 'c', 2, -42, 0, -29, 0, -21,
409 'c', 0, -13, 2, 0, 16, 0,
410 'c', 21, 0, 26, 0, 30, -10,
412 /* 0x44 'D' offset 1499 */
419 'c', 33, -42, 33, 0, 14, 0,
424 /* 0x45 'E' offset 1534 */
427 -42, -22, 0, /* snap_y */
438 /* 0x46 'F' offset 1572 */
441 -42, -22, 0, /* snap_y */
450 /* 0x47 'G' offset 1604 */
453 -42, -21, -16, -15, 0, /* snap_y */
455 'c', 26, -42, 21, -42, 16, -42,
456 'c', 2, -42, 0, -29, 0, -21,
457 'c', 0, -13, 2, 0, 16, 0,
458 'c', 28, 0, 30, -7, 30, -16,
462 /* 0x48 'H' offset 1655 */
465 -42, -22, 0, /* snap_y */
474 /* 0x49 'I' offset 1686 */
482 /* 0x4a 'J' offset 1703 */
485 -42, -15, 0, /* snap_y */
488 'c', 20, 3, 0, 3, 0, -10,
491 /* 0x4b 'K' offset 1731 */
494 -42, -15, 0, /* snap_y */
502 /* 0x4c 'L' offset 1761 */
512 /* 0x4d 'M' offset 1785 */
526 /* 0x4e 'N' offset 1821 */
538 /* 0x4f 'O' offset 1851 */
541 -42, -21, -15, 0, /* snap_y */
543 'c', 2, -42, 0, -29, 0, -21,
544 'c', 0, -13, 2, 0, 16, 0,
545 'c', 30, 0, 32, -13, 32, -21,
546 'c', 32, -29, 30, -42, 16, -42,
548 /* 0x50 'P' offset 1895 */
551 -42, -21, -20, -15, 0, /* snap_y */
555 'c', 32, -42, 32, -20, 18, -20,
559 /* 0x51 'Q' offset 1931 */
562 -42, -21, -15, 0, /* snap_y */
564 'c', 2, -42, 0, -29, 0, -21,
565 'c', 0, -13, 2, 0, 16, 0,
566 'c', 30, 0, 32, -13, 32, -21,
567 'c', 32, -29, 30, -42, 16, -42,
571 /* 0x52 'R' offset 1981 */
574 -42, -22, -21, -15, 0, /* snap_y */
578 'c', 32, -42, 31, -22, 18, -22,
584 /* 0x53 'S' offset 2023 */
587 -42, -21, -15, 0, /* snap_y */
589 'c', 25, -41, 21, -42, 14, -42,
590 'c', 10, -42, 0, -42, 0, -34,
591 'c', 0, -17, 28, -28, 28, -9,
592 'c', 28, 0, 19, 0, 14, 0,
593 'c', 7, 0, 3, -1, 0, -6,
595 /* 0x54 'T' offset 2074 */
597 0, 14, 28, /* snap_x */
598 -42, -21, -15, 0, /* snap_y */
604 /* 0x55 'U' offset 2100 */
610 'c', 0, 4, 28, 4, 28, -12,
614 /* 0x56 'V' offset 2128 */
624 /* 0x57 'W' offset 2152 */
638 /* 0x58 'X' offset 2188 */
648 /* 0x59 'Y' offset 2212 */
650 0, 16, 32, /* snap_x */
651 -42, -21, 0, /* snap_y */
658 /* 0x5a 'Z' offset 2240 */
661 -42, -21, -15, 0, /* snap_y */
669 /* 0x5b '[' offset 2271 */
672 -44, -21, -15, 0, /* snap_y */
678 /* 0x5c '\' offset 2296 */
681 -21, -15, 0, /* snap_y */
685 /* 0x5d ']' offset 2314 */
688 -44, -21, -15, 0, /* snap_y */
694 /* 0x5e '^' offset 2339 */
695 0, 32, 46, -18, 2, 3,
697 -21, -15, 0, /* snap_y */
703 /* 0x5f '_' offset 2363 */
711 /* 0x60 '`' offset 2381 */
716 'c', 2, -40, 0, -39, 0, -32,
717 'c', 0, -31, 1, -30, 2, -30,
718 'c', 5, -30, 5, -34, 2, -34,
721 /* 0x61 'a' offset 2417 */
724 -28, -21, -15, 0, /* snap_y */
728 'c', 21, -27, 18, -28, 13, -28,
729 'c', 2, -28, 0, -19, 0, -14,
730 'c', 0, -9, 2, 0, 13, 0,
731 'c', 18, 0, 21, -1, 24, -6,
733 /* 0x62 'b' offset 2467 */
736 -42, -28, -15, 0, /* snap_y */
740 'c', 3, -26, 6, -28, 11, -28,
741 'c', 22, -28, 24, -19, 24, -14,
742 'c', 24, -9, 22, 0, 11, 0,
743 'c', 6, 0, 3, -2, 0, -6,
745 /* 0x63 'c' offset 2517 */
748 -28, -21, -15, 0, /* snap_y */
750 'c', 21, -26, 18, -28, 13, -28,
751 'c', 2, -28, 0, -19, 0, -14,
752 'c', 0, -9, 2, 0, 13, 0,
753 'c', 18, 0, 21, -2, 24, -6,
755 /* 0x64 'd' offset 2561 */
758 -42, -28, -15, 0, /* snap_y */
762 'c', 21, -26, 18, -28, 13, -28,
763 'c', 2, -28, 0, -19, 0, -14,
764 'c', 0, -9, 2, 0, 13, 0,
765 'c', 18, 0, 21, -2, 24, -6,
767 /* 0x65 'e' offset 2611 */
770 -28, -21, -16, -15, 0, /* snap_y */
773 'c', 24, -20, 24, -28, 13, -28,
774 'c', 2, -28, 0, -19, 0, -14,
775 'c', 0, -9, 2, 0, 13, 0,
776 'c', 18, 0, 21, -2, 24, -6,
778 /* 0x66 'f' offset 2659 */
780 0, 6, 16, /* snap_x */
781 -42, -28, -21, -15, 0, /* snap_y */
783 'c', 8, -42, 6, -40, 6, -34,
788 /* 0x67 'g' offset 2693 */
791 -28, -21, -15, 0, 14, /* snap_y */
794 'c', 23, 14, 16, 14, 13, 14,
795 'c', 10, 14, 8, 14, 6, 12,
797 'c', 21, -26, 18, -28, 13, -28,
798 'c', 2, -28, 0, -19, 0, -14,
799 'c', 0, -9, 2, 0, 13, 0,
800 'c', 18, 0, 21, -2, 24, -6,
802 /* 0x68 'h' offset 2758 */
805 -42, -28, -15, 0, /* snap_y */
809 'c', 8, -32, 22, -31, 22, -20,
812 /* 0x69 'i' offset 2790 */
815 -42, -28, 0, /* snap_y */
826 /* 0x6a 'j' offset 2826 */
828 -8, 2, 4, /* snap_x */
829 -42, -21, -15, 0, 14, /* snap_y */
834 'c', 2, 13, -1, 14, -8, 14,
840 /* 0x6b 'k' offset 2870 */
843 -42, -28, 0, /* snap_y */
851 /* 0x6c 'l' offset 2900 */
859 /* 0x6d 'm' offset 2917 */
861 0, 22, 44, /* snap_x */
862 -28, -21, 0, /* snap_y */
866 'c', 5, -29, 22, -33, 22, -20,
869 'c', 27, -29, 44, -33, 44, -20,
873 /* 0x6e 'n' offset 2963 */
876 -28, -21, 0, /* snap_y */
880 'c', 4, -28, 22, -34, 22, -20,
884 /* 0x6f 'o' offset 2995 */
887 -28, -21, -15, 0, /* snap_y */
889 'c', 2, -28, 0, -19, 0, -14,
890 'c', 0, -9, 2, 0, 13, 0,
891 'c', 24, 0, 26, -9, 26, -14,
892 'c', 26, -19, 24, -28, 13, -28,
894 /* 0x70 'p' offset 3039 */
897 -28, -21, 0, 14, /* snap_y */
901 'c', 3, -26, 6, -28, 11, -28,
902 'c', 22, -28, 24, -19, 24, -14,
903 'c', 24, -9, 22, 0, 11, 0,
904 'c', 6, 0, 3, -2, 0, -6,
906 /* 0x71 'q' offset 3089 */
909 -28, -21, 0, 14, /* snap_y */
913 'c', 21, -26, 18, -28, 13, -28,
914 'c', 2, -28, 0, -19, 0, -14,
915 'c', 0, -9, 2, 0, 13, 0,
916 'c', 18, 0, 21, -2, 24, -6,
918 /* 0x72 'r' offset 3139 */
921 -28, -21, -15, 0, /* snap_y */
925 'c', 2, -27, 7, -28, 16, -28,
927 /* 0x73 's' offset 3168 */
930 -28, -21, -15, 0, /* snap_y */
932 'c', 22, -27, 16, -28, 11, -28,
933 'c', 4, -28, 0, -26, 0, -22,
934 'c', 0, -11, 22, -20, 22, -7,
935 'c', 22, 0, 17, 0, 11, 0,
936 'c', 6, 0, 0, -1, 0, -6,
938 /* 0x74 't' offset 3219 */
940 0, 6, 16, /* snap_x */
941 -42, -28, -21, 0, /* snap_y */
944 'c', 6, -2, 8, 0, 16, 0,
948 /* 0x75 'u' offset 3252 */
951 -28, -15, 0, /* snap_y */
954 'c', 0, 6, 18, 0, 22, -8,
958 /* 0x76 'v' offset 3283 */
961 -28, -15, 0, /* snap_y */
967 /* 0x77 'w' offset 3307 */
970 -28, -15, 0, /* snap_y */
980 /* 0x78 'x' offset 3343 */
990 /* 0x79 'y' offset 3367 */
991 -2, 24, 28, 14, 2, 4,
993 -28, -15, 0, 14, /* snap_y */
998 'c', 6, 13, 0, 14, -2, 14,
1000 /* 0x7a 'z' offset 3399 */
1003 -28, -21, -15, 0, /* snap_y */
1011 /* 0x7b '{' offset 3430 */
1013 0, 6, 16, /* snap_x */
1014 -44, -24, -21, -15, 0, /* snap_y */
1016 'c', 10, -44, 6, -42, 6, -36,
1021 'c', 6, -2, 10, 0, 16, 0,
1023 /* 0x7c '|' offset 3474 */
1026 -50, 14, /* snap_y */
1031 /* 0x7d '}' offset 3491 */
1033 0, 10, 16, /* snap_x */
1034 -44, -24, -21, -15, 0, /* snap_y */
1036 'c', 6, -44, 10, -42, 10, -36,
1041 'c', 10, -2, 6, 0, 0, 0,
1043 /* 0x7e '~' offset 3535 */
1044 0, 36, 24, -12, 2, 5,
1046 -24, -21, -15, -12, 0, /* snap_y */
1048 'c', 1, -21, 4, -24, 8, -24,
1049 'c', 18, -24, 18, -12, 28, -12,
1050 'c', 32, -12, 35, -15, 36, -22,
1054 const uint16_t _cairo_twin_charmap
[128] = {
1055 0, 0, 0, 0, 0, 0, 0, 0,
1056 0, 0, 0, 0, 0, 0, 0, 0,
1057 0, 0, 0, 0, 0, 0, 0, 0,
1058 0, 0, 0, 0, 0, 0, 0, 0,
1059 28, 40, 90, 114, 152, 224, 323, 390,
1060 419, 441, 463, 494, 520, 556, 575, 604,
1061 622, 666, 691, 736, 780, 809, 860, 919,
1062 944, 1004, 1063, 1109, 1162, 1183, 1209, 1230,
1063 1288, 1375, 1406, 1455, 1499, 1534, 1572, 1604,
1064 1655, 1686, 1703, 1731, 1761, 1785, 1821, 1851,
1065 1895, 1931, 1981, 2023, 2074, 2100, 2128, 2152,
1066 2188, 2212, 2240, 2271, 2296, 2314, 2339, 2363,
1067 2381, 2417, 2467, 2517, 2561, 2611, 2659, 2693,
1068 2758, 2790, 2826, 2870, 2900, 2917, 2963, 2995,
1069 3039, 3089, 3139, 3168, 3219, 3252, 3283, 3307,
1070 3343, 3367, 3399, 3430, 3474, 3491, 3535, 0,