fonttools 4.55.8__cp313-cp313-win32.whl → 4.57.0__cp313-cp313-win32.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of fonttools might be problematic. Click here for more details.

Files changed (43) hide show
  1. fontTools/__init__.py +1 -1
  2. fontTools/config/__init__.py +15 -0
  3. fontTools/cu2qu/cu2qu.c +6 -6
  4. fontTools/cu2qu/cu2qu.cp313-win32.pyd +0 -0
  5. fontTools/feaLib/ast.py +8 -3
  6. fontTools/feaLib/builder.py +32 -9
  7. fontTools/feaLib/error.py +1 -1
  8. fontTools/feaLib/lexer.c +5 -5
  9. fontTools/feaLib/lexer.cp313-win32.pyd +0 -0
  10. fontTools/feaLib/parser.py +58 -0
  11. fontTools/misc/bezierTools.c +6 -6
  12. fontTools/misc/bezierTools.cp313-win32.pyd +0 -0
  13. fontTools/misc/testTools.py +5 -1
  14. fontTools/otlLib/optimize/gpos.py +7 -1
  15. fontTools/pens/momentsPen.c +5 -5
  16. fontTools/pens/momentsPen.cp313-win32.pyd +0 -0
  17. fontTools/qu2cu/qu2cu.c +6 -6
  18. fontTools/qu2cu/qu2cu.cp313-win32.pyd +0 -0
  19. fontTools/ttLib/__init__.py +4 -0
  20. fontTools/ttLib/__main__.py +47 -8
  21. fontTools/ttLib/tables/D__e_b_g.py +20 -2
  22. fontTools/ttLib/tables/_c_m_a_p.py +19 -6
  23. fontTools/ttLib/tables/_g_l_y_f.py +9 -4
  24. fontTools/ttLib/tables/_g_v_a_r.py +4 -2
  25. fontTools/ttLib/tables/otConverters.py +5 -2
  26. fontTools/ttLib/tables/otData.py +1 -1
  27. fontTools/ttLib/tables/otTables.py +26 -18
  28. fontTools/ttLib/tables/otTraverse.py +2 -1
  29. fontTools/ttLib/ttFont.py +9 -7
  30. fontTools/ttLib/ttGlyphSet.py +0 -10
  31. fontTools/ttx.py +13 -1
  32. fontTools/varLib/__init__.py +93 -101
  33. fontTools/varLib/hvar.py +113 -0
  34. fontTools/varLib/iup.c +6 -6
  35. fontTools/varLib/iup.cp313-win32.pyd +0 -0
  36. fontTools/varLib/varStore.py +10 -38
  37. {fonttools-4.55.8.dist-info → fonttools-4.57.0.dist-info}/METADATA +25 -2
  38. {fonttools-4.55.8.dist-info → fonttools-4.57.0.dist-info}/RECORD +43 -42
  39. {fonttools-4.55.8.dist-info → fonttools-4.57.0.dist-info}/WHEEL +1 -1
  40. {fonttools-4.55.8.data → fonttools-4.57.0.data}/data/share/man/man1/ttx.1 +0 -0
  41. {fonttools-4.55.8.dist-info → fonttools-4.57.0.dist-info}/entry_points.txt +0 -0
  42. {fonttools-4.55.8.dist-info → fonttools-4.57.0.dist-info/licenses}/LICENSE +0 -0
  43. {fonttools-4.55.8.dist-info → fonttools-4.57.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,113 @@
1
+ from fontTools.misc.roundTools import noRound
2
+ from fontTools.ttLib import TTFont, newTable
3
+ from fontTools.ttLib.tables import otTables as ot
4
+ from fontTools.ttLib.tables.otBase import OTTableWriter
5
+ from fontTools.varLib import HVAR_FIELDS, VVAR_FIELDS, _add_VHVAR
6
+ from fontTools.varLib import builder, models, varStore
7
+ from fontTools.misc.fixedTools import fixedToFloat as fi2fl
8
+ from fontTools.misc.cliTools import makeOutputFileName
9
+ from functools import partial
10
+ import logging
11
+
12
+ log = logging.getLogger("fontTools.varLib.avar")
13
+
14
+
15
+ def _get_advance_metrics(font, axisTags, tableFields):
16
+ # There's two ways we can go from here:
17
+ # 1. For each glyph, at each master peak, compute the value of the
18
+ # advance width at that peak. Then pass these all to a VariationModel
19
+ # builder to compute back the deltas.
20
+ # 2. For each master peak, pull out the deltas of the advance width directly,
21
+ # and feed these to the VarStoreBuilder, forgoing the remoding step.
22
+ # We'll go with the second option, as it's simpler, faster, and more direct.
23
+ gvar = font["gvar"]
24
+ vhAdvanceDeltasAndSupports = {}
25
+ glyphOrder = font.getGlyphOrder()
26
+ phantomIndex = tableFields.phantomIndex
27
+ for glyphName in glyphOrder:
28
+ supports = []
29
+ deltas = []
30
+ variations = gvar.variations.get(glyphName, [])
31
+
32
+ for tv in variations:
33
+ supports.append(tv.axes)
34
+ phantoms = tv.coordinates[-4:]
35
+ phantoms = phantoms[phantomIndex * 2 : phantomIndex * 2 + 2]
36
+ assert len(phantoms) == 2
37
+ phantoms[0] = phantoms[0][phantomIndex] if phantoms[0] is not None else 0
38
+ phantoms[1] = phantoms[1][phantomIndex] if phantoms[1] is not None else 0
39
+ deltas.append(phantoms[1] - phantoms[0])
40
+
41
+ vhAdvanceDeltasAndSupports[glyphName] = (deltas, supports)
42
+
43
+ vOrigDeltasAndSupports = None # TODO
44
+
45
+ return vhAdvanceDeltasAndSupports, vOrigDeltasAndSupports
46
+
47
+
48
+ def add_HVAR(font):
49
+ if "HVAR" in font:
50
+ del font["HVAR"]
51
+ axisTags = [axis.axisTag for axis in font["fvar"].axes]
52
+ getAdvanceMetrics = partial(_get_advance_metrics, font, axisTags, HVAR_FIELDS)
53
+ _add_VHVAR(font, axisTags, HVAR_FIELDS, getAdvanceMetrics)
54
+
55
+
56
+ def add_VVAR(font):
57
+ if "VVAR" in font:
58
+ del font["VVAR"]
59
+ getAdvanceMetrics = partial(_get_advance_metrics, font, axisTags, HVAR_FIELDS)
60
+ axisTags = [axis.axisTag for axis in font["fvar"].axes]
61
+ _add_VHVAR(font, axisTags, VVAR_FIELDS, getAdvanceMetrics)
62
+
63
+
64
+ def main(args=None):
65
+ """Add `HVAR` table to variable font."""
66
+
67
+ if args is None:
68
+ import sys
69
+
70
+ args = sys.argv[1:]
71
+
72
+ from fontTools import configLogger
73
+ from fontTools.designspaceLib import DesignSpaceDocument
74
+ import argparse
75
+
76
+ parser = argparse.ArgumentParser(
77
+ "fonttools varLib.hvar",
78
+ description="Add `HVAR` table from to variable font.",
79
+ )
80
+ parser.add_argument("font", metavar="varfont.ttf", help="Variable-font file.")
81
+ parser.add_argument(
82
+ "-o",
83
+ "--output-file",
84
+ type=str,
85
+ help="Output font file name.",
86
+ )
87
+
88
+ options = parser.parse_args(args)
89
+
90
+ configLogger(level="WARNING")
91
+
92
+ font = TTFont(options.font)
93
+ if not "fvar" in font:
94
+ log.error("Not a variable font.")
95
+ return 1
96
+
97
+ add_HVAR(font)
98
+ if "vmtx" in font:
99
+ add_VVAR(font)
100
+
101
+ if options.output_file is None:
102
+ outfile = makeOutputFileName(options.font, overWrite=True, suffix=".hvar")
103
+ else:
104
+ outfile = options.output_file
105
+ if outfile:
106
+ log.info("Saving %s", outfile)
107
+ font.save(outfile)
108
+
109
+
110
+ if __name__ == "__main__":
111
+ import sys
112
+
113
+ sys.exit(main())
fontTools/varLib/iup.c CHANGED
@@ -1,4 +1,4 @@
1
- /* Generated by Cython 3.0.11 */
1
+ /* Generated by Cython 3.0.12 */
2
2
 
3
3
  /* BEGIN: Cython Metadata
4
4
  {
@@ -36,10 +36,10 @@ END: Cython Metadata */
36
36
  #else
37
37
  #define __PYX_EXTRA_ABI_MODULE_NAME ""
38
38
  #endif
39
- #define CYTHON_ABI "3_0_11" __PYX_EXTRA_ABI_MODULE_NAME
39
+ #define CYTHON_ABI "3_0_12" __PYX_EXTRA_ABI_MODULE_NAME
40
40
  #define __PYX_ABI_MODULE_NAME "_cython_" CYTHON_ABI
41
41
  #define __PYX_TYPE_MODULE_PREFIX __PYX_ABI_MODULE_NAME "."
42
- #define CYTHON_HEX_VERSION 0x03000BF0
42
+ #define CYTHON_HEX_VERSION 0x03000CF0
43
43
  #define CYTHON_FUTURE_DIVISION 1
44
44
  #include <stddef.h>
45
45
  #ifndef offsetof
@@ -1972,7 +1972,7 @@ static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args,
1972
1972
  #if !CYTHON_VECTORCALL
1973
1973
  #if PY_VERSION_HEX >= 0x03080000
1974
1974
  #include "frameobject.h"
1975
- #if PY_VERSION_HEX >= 0x030b00a6 && !CYTHON_COMPILING_IN_LIMITED_API
1975
+ #if PY_VERSION_HEX >= 0x030b00a6 && !CYTHON_COMPILING_IN_LIMITED_API && !defined(PYPY_VERSION)
1976
1976
  #ifndef Py_BUILD_CORE
1977
1977
  #define Py_BUILD_CORE 1
1978
1978
  #endif
@@ -16524,7 +16524,7 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) {
16524
16524
  #include "compile.h"
16525
16525
  #include "frameobject.h"
16526
16526
  #include "traceback.h"
16527
- #if PY_VERSION_HEX >= 0x030b00a6 && !CYTHON_COMPILING_IN_LIMITED_API
16527
+ #if PY_VERSION_HEX >= 0x030b00a6 && !CYTHON_COMPILING_IN_LIMITED_API && !defined(PYPY_VERSION)
16528
16528
  #ifndef Py_BUILD_CORE
16529
16529
  #define Py_BUILD_CORE 1
16530
16530
  #endif
@@ -17714,7 +17714,7 @@ static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name
17714
17714
 
17715
17715
  /* CoroutineBase */
17716
17716
  #include <frameobject.h>
17717
- #if PY_VERSION_HEX >= 0x030b00a6
17717
+ #if PY_VERSION_HEX >= 0x030b00a6 && !defined(PYPY_VERSION)
17718
17718
  #ifndef Py_BUILD_CORE
17719
17719
  #define Py_BUILD_CORE 1
17720
17720
  #endif
Binary file
@@ -41,7 +41,7 @@ class OnlineVarStoreBuilder(object):
41
41
  def setSupports(self, supports):
42
42
  self._model = None
43
43
  self._supports = list(supports)
44
- if not self._supports[0]:
44
+ if self._supports and not self._supports[0]:
45
45
  del self._supports[0] # Drop base master support
46
46
  self._cache = None
47
47
  self._data = None
@@ -412,25 +412,6 @@ class _Encoding(object):
412
412
  def extend(self, lst):
413
413
  self.items.update(lst)
414
414
 
415
- def get_room(self):
416
- """Maximum number of bytes that can be added to characteristic
417
- while still being beneficial to merge it into another one."""
418
- count = len(self.items)
419
- return max(0, (self.overhead - 1) // count - self.width)
420
-
421
- room = property(get_room)
422
-
423
- def get_gain(self):
424
- """Maximum possible byte gain from merging this into another
425
- characteristic."""
426
- count = len(self.items)
427
- return max(0, self.overhead - count)
428
-
429
- gain = property(get_gain)
430
-
431
- def gain_sort_key(self):
432
- return self.gain, self.chars
433
-
434
415
  def width_sort_key(self):
435
416
  return self.width, self.chars
436
417
 
@@ -534,13 +515,9 @@ def VarStore_optimize(self, use_NO_VARIATION_INDEX=True, quantization=1):
534
515
  # of the old encoding is completely eliminated. However, each row
535
516
  # now would require more bytes to encode, to the tune of one byte
536
517
  # per characteristic bit that is active in the new encoding but not
537
- # in the old one. The number of bits that can be added to an encoding
538
- # while still beneficial to merge it into another encoding is called
539
- # the "room" for that encoding.
518
+ # in the old one.
540
519
  #
541
- # The "gain" of an encodings is the maximum number of bytes we can
542
- # save by merging it into another encoding. The "gain" of merging
543
- # two encodings is how many bytes we save by doing so.
520
+ # The "gain" of merging two encodings is how many bytes we save by doing so.
544
521
  #
545
522
  # High-level algorithm:
546
523
  #
@@ -554,7 +531,11 @@ def VarStore_optimize(self, use_NO_VARIATION_INDEX=True, quantization=1):
554
531
  #
555
532
  # - Put all encodings into a "todo" list.
556
533
  #
557
- # - Sort todo list by decreasing gain (for stability).
534
+ # - Sort todo list (for stability) by width_sort_key(), which is a tuple
535
+ # of the following items:
536
+ # * The "width" of the encoding.
537
+ # * The characteristic bitmap of the encoding, with higher-numbered
538
+ # columns compared first.
558
539
  #
559
540
  # - Make a priority-queue of the gain from combining each two
560
541
  # encodings in the todo list. The priority queue is sorted by
@@ -575,16 +556,7 @@ def VarStore_optimize(self, use_NO_VARIATION_INDEX=True, quantization=1):
575
556
  #
576
557
  # The output is then sorted for stability, in the following way:
577
558
  # - The VarRegionList of the input is kept intact.
578
- # - All encodings are sorted before the main algorithm, by
579
- # gain_key_sort(), which is a tuple of the following items:
580
- # * The gain of the encoding.
581
- # * The characteristic bitmap of the encoding, with higher-numbered
582
- # columns compared first.
583
- # - The VarData is sorted by width_sort_key(), which is a tuple
584
- # of the following items:
585
- # * The "width" of the encoding.
586
- # * The characteristic bitmap of the encoding, with higher-numbered
587
- # columns compared first.
559
+ # - The VarData is sorted by the same width_sort_key() used at the beginning.
588
560
  # - Within each VarData, the items are sorted as vectors of numbers.
589
561
  #
590
562
  # Finally, each VarData is optimized to remove the empty columns and
@@ -626,7 +598,7 @@ def VarStore_optimize(self, use_NO_VARIATION_INDEX=True, quantization=1):
626
598
  front_mapping[(major << 16) + minor] = row
627
599
 
628
600
  # Prepare for the main algorithm.
629
- todo = sorted(encodings.values(), key=_Encoding.gain_sort_key)
601
+ todo = sorted(encodings.values(), key=_Encoding.width_sort_key)
630
602
  del encodings
631
603
 
632
604
  # Repeatedly pick two best encodings to combine, and combine them.
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: fonttools
3
- Version: 4.55.8
3
+ Version: 4.57.0
4
4
  Summary: Tools to manipulate font files
5
5
  Home-page: http://github.com/fonttools/fonttools
6
6
  Author: Just van Rossum
@@ -80,6 +80,7 @@ Dynamic: description
80
80
  Dynamic: description-content-type
81
81
  Dynamic: home-page
82
82
  Dynamic: license
83
+ Dynamic: license-file
83
84
  Dynamic: maintainer
84
85
  Dynamic: maintainer-email
85
86
  Dynamic: platform
@@ -391,6 +392,28 @@ Have fun!
391
392
  Changelog
392
393
  ~~~~~~~~~
393
394
 
395
+ 4.57.0 (released 2025-04-03)
396
+ ----------------------------
397
+
398
+ - [ttLib.__main__] Add `--no-recalc-timestamp` flag (#3771)
399
+ - [ttLib.__main__] Add `-b` (recalcBBoxes=False) flag (#3772)
400
+ - [cmap] Speed up glyphOrder loading from cmap (#3774)
401
+ - [ttLib.__main__] Improvements around the `-t` flag (#3776)
402
+ - [Debg] Fix parsing from XML; add roundtrip tests (#3781)
403
+ - [fealib] Support \*Base.MinMax tables (#3783, #3786)
404
+ - [config] Add OPTIMIZE_FONT_SPEED (#3784)
405
+ - [varLib.hvar] New module to add HVAR table to the font (#3780)
406
+ - [otlLib.optimize] Fix crash when the provided TTF does not contain a `GPOS` (#3794)
407
+
408
+ 4.56.0 (released 2025-02-07)
409
+ ----------------------------
410
+
411
+ - [varStore] Sort the input todo list with the same sorting key used for the opimizer's output (#3767).
412
+ - [otData] Fix DeviceTable's ``DeltaValue`` repeat value which caused a crash after importing from XML and then compiling a GPOS containing Device tables (#3758).
413
+ - [feaLib] Make ``FeatureLibError`` pickleable, so client can e.g. use feaLib to can compile features in parallel with multiprocessing (#3762).
414
+ - [varLib/gvar] Removed workaround for old, long-fixed macOS bug about composite glyphs with all zero deltas (#1381, #1788).
415
+ - [Docs] Updated ttLib documentation, beefed up TTFont and TTGlyphSet explanations (#3720).
416
+
394
417
  4.55.8 (released 2025-01-29)
395
418
  ----------------------------
396
419
 
@@ -1,11 +1,11 @@
1
- fontTools/__init__.py,sha256=kGVFa00euPQGT1_RLxsKjDg4woT7AEMZPlDfleHsym8,191
1
+ fontTools/__init__.py,sha256=mbSGlcufxjEn0BW2zXp1FQai5__5An5I3kT05hxac_A,191
2
2
  fontTools/__main__.py,sha256=T8Tg8xPKHOCVoYVG82p_zpQXfW7_ERRAphBkZVvhWN8,960
3
3
  fontTools/afmLib.py,sha256=YbmmjT8Du6qFUhFHwnAhOdvsyfXszODVjSJtd18CCjY,13603
4
4
  fontTools/agl.py,sha256=4aKwnbvSVUa39eV5Ka8e5ULwV-IEp4pcfwlMwEH_z3k,118208
5
5
  fontTools/fontBuilder.py,sha256=lj2qnZ9G_LnHOwbp-uDWLxXXCBMenqK8_pAOWBTSZBg,34960
6
6
  fontTools/help.py,sha256=8yn5iAonGPsijFSHmU6aLuuZtaLMhR5CIkSp9hVYL2c,1161
7
7
  fontTools/tfmLib.py,sha256=-bv4iv2VhUSse5pA0oXdudf7o7ZuFWdWNsiHElO06dk,14730
8
- fontTools/ttx.py,sha256=BnEtamf1FYKKbA7YimZY3BNhd1lQrQJzHu20dmlDySY,17119
8
+ fontTools/ttx.py,sha256=CpfOtEVTXAv79XM2jiWKrOFXHFtWSyAniIgC7b9tWf8,17756
9
9
  fontTools/unicode.py,sha256=a7460sU25TnVYGzrVl0uv0lI_pDbANZp8Jfmqx9tAag,1287
10
10
  fontTools/cffLib/CFF2ToCFF.py,sha256=5uPKDFwoJvH0KVDrCjpf3MdOpqbyvdZMe0jZ3emjdsQ,6291
11
11
  fontTools/cffLib/CFFToCFF2.py,sha256=0dCYSSozptUC9BVUre49e6LgjSxJRtVyMl8vDB6i3r4,10424
@@ -19,13 +19,13 @@ fontTools/colorLib/errors.py,sha256=_3vbGsi6nlkRxxglt82uxK89K8tjURX59G3BBQIy5ps,
19
19
  fontTools/colorLib/geometry.py,sha256=RH7sl0oP9othrawGMeLVDAIocv8I2HrMd3aW857Xi_s,5661
20
20
  fontTools/colorLib/table_builder.py,sha256=0k6SHt8JBwP6hy-nZ9k6VXnPywdPRBe91yZyGq3Mzb8,7692
21
21
  fontTools/colorLib/unbuilder.py,sha256=nw8YKKiJiSsZAPcvPzRvXO-oZnvWmCWE7Y8nU1g75iE,2223
22
- fontTools/config/__init__.py,sha256=g2dOHV53afHerz-eXt1NKeComFf26ufrZCz1nrRfs0M,2718
22
+ fontTools/config/__init__.py,sha256=qdbu1XOSFLOEZSe9Rfgj33Pkff8wEaaWJJExf_dzv0A,3244
23
23
  fontTools/cu2qu/__init__.py,sha256=OoM_nBJAleZal6kxeNJn1ESy1pNm5c3DG417yVIE0-Q,633
24
24
  fontTools/cu2qu/__main__.py,sha256=6Vb8Ler3yqJ5w84UwlMJV6cS01uhV4PN10OlXQ6jlqo,98
25
25
  fontTools/cu2qu/benchmark.py,sha256=FwdvNjKfWHo18_CX0CO8AY5c68XSBE4M4TJo_EkB4q8,1350
26
26
  fontTools/cu2qu/cli.py,sha256=CvWzC5a6XF_v5o0yrS4vGI1JXiVVLzSJahTIqpJmiPk,6274
27
- fontTools/cu2qu/cu2qu.c,sha256=DGeaocDDXSlWL0vHL553KLiFwXVQ550C5SM5OgimUiU,589442
28
- fontTools/cu2qu/cu2qu.cp313-win32.pyd,sha256=1kf7YZv8ssitO36hobp1ru4xWP7menkYG-FYM3e6eOw,97280
27
+ fontTools/cu2qu/cu2qu.c,sha256=q4ssBbta6OJfd5FhTY7lt5b44oz6M20kL2kM936AUms,589520
28
+ fontTools/cu2qu/cu2qu.cp313-win32.pyd,sha256=pkazsizeMDopu-O387VLST4r5X7_QCsk6AWDEIoFW5I,97280
29
29
  fontTools/cu2qu/cu2qu.py,sha256=XH2bnQ5aG9ic921ZWzQzU1-q3MQU6INCjLk4XjRj5_Y,16970
30
30
  fontTools/cu2qu/errors.py,sha256=uYyPSs_x-EMJKO2S3cLGWyk_KlHoOoh_XEtdB_oKBp0,2518
31
31
  fontTools/cu2qu/ufo.py,sha256=Mpd_7Be9jxNcOKFqkyRp8Oem3CS3R-ZYMMSD03LJL6o,12143
@@ -40,15 +40,15 @@ fontTools/encodings/__init__.py,sha256=QoK6HlOoqtVqX5gOyv0bJiTXsVBbBRreUifdccWNp
40
40
  fontTools/encodings/codecs.py,sha256=bSpO6kuPbEIDsXSVHhzftqsm_FFUiXpLVfPSk410SqE,4856
41
41
  fontTools/feaLib/__init__.py,sha256=RprjP6BKswq4pt0J-9L1XGuZfjIFAGD6HDly_haMAN4,217
42
42
  fontTools/feaLib/__main__.py,sha256=niUAPkiYxeRAJMlJuvVJZism2VFufZrNaQtieA7sNLk,2318
43
- fontTools/feaLib/ast.py,sha256=3bDOxPIwmxM5tjhnI8K7pheRkgEHYMb_ExJsco0SyDU,75934
44
- fontTools/feaLib/builder.py,sha256=VBDpD311XvqhzPA9wfyiY06ps14J0-FUWjOEs6fwrHE,72783
45
- fontTools/feaLib/error.py,sha256=PSXeclXORb9hkvXh95e6YrNKZpPPWkekXOJZCSEhSjg,665
46
- fontTools/feaLib/lexer.c,sha256=yKf2WoKLiJJcrI35TuqUxIQYLOLoyr5D2MhcxY8vFF8,750768
47
- fontTools/feaLib/lexer.cp313-win32.pyd,sha256=dvtkf7bwE4B9hhHQv6fyu50Mvly79zEvE8ruv5CUPHw,131072
43
+ fontTools/feaLib/ast.py,sha256=13sdglQ87SYih999by0x4DGN4GpJ53P1mpH1iuUCHX8,76189
44
+ fontTools/feaLib/builder.py,sha256=upJdtJXxc-uzECoXI5sGX2HMpQvCn8bJqrBS8Bs8iB4,73871
45
+ fontTools/feaLib/error.py,sha256=pqi8F2tnH2h7pXVffxwzuBuWaSHMzZsXs5VckdQKQAI,670
46
+ fontTools/feaLib/lexer.c,sha256=mrlrX8DXYbKED1Weyt97tsSr_YrYL0SUwW1y-wweU8Q,750820
47
+ fontTools/feaLib/lexer.cp313-win32.pyd,sha256=xotfw29Ow56n_XrqrlmxhZMSr__zEmJ2pOAbA3H_Qm0,131072
48
48
  fontTools/feaLib/lexer.py,sha256=7VZ3NPFH7V1mvRbym111BNKvbB4hLfGLTMS0VV_3Ipw,11408
49
49
  fontTools/feaLib/location.py,sha256=teHrhjT8zzImcGBEJS1J43oaX9onCPu_pynxS8d-tUg,246
50
50
  fontTools/feaLib/lookupDebugInfo.py,sha256=h4Ig8kmEk5WlGf1C9JJAbbOKQK5OwkFLdj8CT7fOkmU,316
51
- fontTools/feaLib/parser.py,sha256=LL5wSiq_qXTJOjtNv2q2EpNyIuA065iWmS-YHCZgfzU,100825
51
+ fontTools/feaLib/parser.py,sha256=ZQ3NpY1IhCDTSphzj7aVJuF0-23XYrZyWlHR_gUa-G8,103502
52
52
  fontTools/feaLib/variableScalar.py,sha256=RiLHKQh2-wa-BZ015H2e7XkbshssTj2PjlapaMNJfAs,4182
53
53
  fontTools/merge/__init__.py,sha256=6MOtk0FXWmSmZsLf1sfjiN2lteVm-u9tI0RVWFewYHM,8498
54
54
  fontTools/merge/__main__.py,sha256=3_u3dnyEOyh0O-SrLMLlkXxOfCFT-0SlwJpimosVJ-c,100
@@ -61,8 +61,8 @@ fontTools/merge/unicode.py,sha256=mgqRFhRugda62Xt0r28SduaN7YBzRfHxrpNprjLqoX8,43
61
61
  fontTools/merge/util.py,sha256=3alo4b7mhFNC6h8PjeqNU99dS7EuO8sdZkZpvRsEE6E,3521
62
62
  fontTools/misc/__init__.py,sha256=QoK6HlOoqtVqX5gOyv0bJiTXsVBbBRreUifdccWNp2k,76
63
63
  fontTools/misc/arrayTools.py,sha256=baENNALPvYRUhS4rdx_F3ltOmVIf1PV9G2EaMt7gAHM,11907
64
- fontTools/misc/bezierTools.c,sha256=IpsvlD6PupyRJ0mNv6-fEeN9ubSaLCKFsa_pTjTO-Kg,1814064
65
- fontTools/misc/bezierTools.cp313-win32.pyd,sha256=q6yq7SOu-Q7Cukm5whelnsMC60c-4b2T6Y86B7on1ks,363008
64
+ fontTools/misc/bezierTools.c,sha256=Z-iGePMjvUv7tV635leWPAWTq939ZeNC7r3A3GemlBI,1814142
65
+ fontTools/misc/bezierTools.cp313-win32.pyd,sha256=YlbK-d6-jB9Co-woMaB4Z5qNEMwiUV5ZlovU4SyR-DM,363008
66
66
  fontTools/misc/bezierTools.py,sha256=m4j14ckKYtrKy8NhFFFY_Uv3kuL8g-SWNdEKUzqGjRQ,46535
67
67
  fontTools/misc/classifyTools.py,sha256=wLTjOhLiZaLiwwUTj2Ad5eZ5T_38W0Eo_uzRGWHWYvE,5783
68
68
  fontTools/misc/cliTools.py,sha256=7zKOXczaCKRMW6Yv5jdCZYHco8y0-lfimhIWzQ2IL8A,1915
@@ -87,7 +87,7 @@ fontTools/misc/py23.py,sha256=BhByQabxZis6fDvK3ZVeI-YRj_1rMQeBZCFzGWIac0U,2334
87
87
  fontTools/misc/roundTools.py,sha256=2rmbuk73NYGPmJqP58FQCFioSLilvNffd0WbL5znKUg,3283
88
88
  fontTools/misc/sstruct.py,sha256=RG8qOzTkp9LIN5bis5XkbA-6amnuv2Pi-foZTzIQRRE,7389
89
89
  fontTools/misc/symfont.py,sha256=ZxyD-mipj7raOtXDdCakpwoSo0hsKPJXLlp3OBPHraE,7235
90
- fontTools/misc/testTools.py,sha256=OhWQmnuWrgJWtME_9fHG7Npd1JzVktCPcbHiccxL2wI,7162
90
+ fontTools/misc/testTools.py,sha256=SG48M4TJIQ4_cPpitUzGEITPnwL-o0yNZKXzWSQdwVE,7285
91
91
  fontTools/misc/textTools.py,sha256=NIBmM6k9PXIs8DMpio-9ckHS35QxL2EMFwBXP6zG-8w,3531
92
92
  fontTools/misc/timeTools.py,sha256=lmncKUKvxQKO4Kqx2k7UNFkYYpj2n5CwR1lPiLZv3tA,2322
93
93
  fontTools/misc/transform.py,sha256=pCR0tbKzmhH6crB_rDT5hnAWySztW_XqL0efmKOVsCU,16314
@@ -106,7 +106,7 @@ fontTools/otlLib/error.py,sha256=0OQ2AuxKNEqvoHIkgouf47LDGDEmPUlhdZIW5DROL8k,346
106
106
  fontTools/otlLib/maxContextCalc.py,sha256=sVU7LLwkjhV16ADcpjbUwCt5PZbWWdc8_yZo9Lv7HaI,3271
107
107
  fontTools/otlLib/optimize/__init__.py,sha256=NKqA7fqHyzjkmuBL_ZVpc3u9OMbWxbKDtymC8CnVGNY,1583
108
108
  fontTools/otlLib/optimize/__main__.py,sha256=ZZDwg21yVtdQi9GkNQe70w49hn9fPmObFEEDWGlCj3U,110
109
- fontTools/otlLib/optimize/gpos.py,sha256=I3WwdzPGAjcRiHABfKIt0ral7ik2Qk4CtBPP4J4tEso,18927
109
+ fontTools/otlLib/optimize/gpos.py,sha256=TYwt7oTdHs5XQDnNgMIUtEzxeanFAYN_E9mlCQ0cK6A,19054
110
110
  fontTools/pens/__init__.py,sha256=QoK6HlOoqtVqX5gOyv0bJiTXsVBbBRreUifdccWNp2k,76
111
111
  fontTools/pens/areaPen.py,sha256=SJnD7HwRg6JL_p7HaAy5DB64G75So9sqIdmzCSRv1bI,1524
112
112
  fontTools/pens/basePen.py,sha256=Wrd4xNl2apH4fdpkCPbV8z0QuNX7k46JHwylZer72G0,17548
@@ -118,8 +118,8 @@ fontTools/pens/explicitClosingLinePen.py,sha256=knCXcjSl2iPy6mLCDnsdDYx6J5rV7FH4
118
118
  fontTools/pens/filterPen.py,sha256=tWhgklyaCTUt7oQRTBbFUcOlc702V0NfadCH3X93CYg,8031
119
119
  fontTools/pens/freetypePen.py,sha256=NqNzXrOTDckoH4N6WLnj-KuxGcg6z7DlqSCfmpq8qAE,20370
120
120
  fontTools/pens/hashPointPen.py,sha256=ZAU87uw5ge3Kb4i9kRV28a5VFeZ_TWSsJabyAzwAHrU,3662
121
- fontTools/pens/momentsPen.c,sha256=ajNsDnHtKVFHde329jgP1R_dCoAhd_lJF3oFrtSlaX8,530428
122
- fontTools/pens/momentsPen.cp313-win32.pyd,sha256=Qd-UnBTyQI1PJ8XcfUodMv0gcAkYOwNA0R096DKhRPQ,89600
121
+ fontTools/pens/momentsPen.c,sha256=KvvPBbohBimSttvBHzU2E5kH9-HzaMj8bpQhSjU0Gmc,530480
122
+ fontTools/pens/momentsPen.cp313-win32.pyd,sha256=7vINraHrKRANv9H7PrZ5Vol52RracS-KRQ4fMgekxPQ,89600
123
123
  fontTools/pens/momentsPen.py,sha256=Z-V5CjQBSj3qPxg3C_DBFKExqno89nOe3jWwHT9_xsM,26537
124
124
  fontTools/pens/perimeterPen.py,sha256=Zy5F8QzaNJAkkQQSb2QJCp-wZTvDAjBn-B099t2ABds,2222
125
125
  fontTools/pens/pointInsidePen.py,sha256=Hy48iR5NWV3x_wWoos-UC7GMtwvvUhd_q_ykiwaWdzQ,6547
@@ -142,8 +142,8 @@ fontTools/qu2cu/__init__.py,sha256=MpdE0XsHSDo9M3hyHLkPPLxB3FKr3aiT0dPW5qHCuSo,6
142
142
  fontTools/qu2cu/__main__.py,sha256=leKpToUNNyHf0nobr1I19vus2ziA1pO7rRKkreat-Xw,100
143
143
  fontTools/qu2cu/benchmark.py,sha256=PFxx2Bfu7-KuNrzdOIBXHPZvyNphqqcTVy4CneaCo3M,1456
144
144
  fontTools/qu2cu/cli.py,sha256=1QLBTSZW7e_VATJN9vjszRxIk_-Xjxu1KP53yX4T7q8,3839
145
- fontTools/qu2cu/qu2cu.c,sha256=xLksDndkY4iCqLrFx9a6XOFL3mWNdDw1kdpiu16sidg,654946
146
- fontTools/qu2cu/qu2cu.cp313-win32.pyd,sha256=Y95gPHo-Sv47LbbuxVqATKG2MPEDsfPFbf-xLnxzVLM,106496
145
+ fontTools/qu2cu/qu2cu.c,sha256=BmuabAI3MFJIb7uq5efH0g4O_rTH8f1lgfvJLEA5dLM,655024
146
+ fontTools/qu2cu/qu2cu.cp313-win32.pyd,sha256=Bq5bgjLWUvnQTw0Y5kkv2iCQz7J9cLZC9Bkl4VrQbCU,106496
147
147
  fontTools/qu2cu/qu2cu.py,sha256=dtp5Zqhcs_NePwA2U5fgG2LtWleRwmBilTurau8sLL0,12693
148
148
  fontTools/subset/__init__.py,sha256=a0OHXLf9m8qlXRFA7Gxp5qxe8ImUQ5ziK3bD-4fm618,137743
149
149
  fontTools/subset/__main__.py,sha256=cEIC52EtGOJvFDfHXzi0M2EAYmyHAcI-ZZ0lb2y4r7s,101
@@ -156,8 +156,8 @@ fontTools/svgLib/path/arc.py,sha256=-jU7F3gO_DdTO6MrDbOLxmFBZ_h5eb02Eq3Z_Ia35Nw,
156
156
  fontTools/svgLib/path/parser.py,sha256=mMxmJjU1Z9beD0CqFrvBx9LkCutJ2LfKbTLgidLQvNw,11110
157
157
  fontTools/svgLib/path/shapes.py,sha256=h3aOhsZ0pPUOLtNab2bj5cJuqPIlgdtOOOT4VYvnRww,5505
158
158
  fontTools/t1Lib/__init__.py,sha256=eBp3X5XcHZIV4uurKxyakurcT2bfFdoTVpw4AOMx2TU,21513
159
- fontTools/ttLib/__init__.py,sha256=d2D4Zy6tLXDeQtYUa5jKfIiLoKdIRgMB2F3FnVnv7XM,579
160
- fontTools/ttLib/__main__.py,sha256=MscZr4z7ej6EOfru-rlCOFJSIoN6TJQfGgzlkh4kOh0,3552
159
+ fontTools/ttLib/__init__.py,sha256=2dJ9-KzN_5AwttwMEhmusrxR2IdFTZ73hJiPjeVwuwU,691
160
+ fontTools/ttLib/__main__.py,sha256=gSaKy1O2Hws3_1xGHGdLL-lEUVxw9q8ymNx9YlwIFXs,4881
161
161
  fontTools/ttLib/macUtils.py,sha256=B5UhZU8gQerJMXEG9-BGZsuv3aewFRAGQ5HCuZMzMkQ,1791
162
162
  fontTools/ttLib/removeOverlaps.py,sha256=PTxICjLx89JxKfboLruoV_OwuwCIxcJ4feNcCCkrsTQ,13005
163
163
  fontTools/ttLib/reorderGlyphs.py,sha256=_sTg1wR9q8ZFeo4n7H7iUcqGIWOroqDQd_UbZ-1kZh0,10600
@@ -165,8 +165,8 @@ fontTools/ttLib/scaleUpem.py,sha256=Qz-kS48q7a5GibgnPoUglyVk_qIVkYp5KZ-r1aMx_7Q,
165
165
  fontTools/ttLib/sfnt.py,sha256=7X9xujgV0Za4nOEfUD3mSrrRb-f9NuzEqgJ-IFLNVQU,23494
166
166
  fontTools/ttLib/standardGlyphOrder.py,sha256=VG-8hW1VgQIro7cDJusSXThILIr4pQgmU37t85SQ65Y,6056
167
167
  fontTools/ttLib/ttCollection.py,sha256=1_wMr_ONgwPZh6wfbS_a7lNeE2IxUqd029TGObOsWs0,4088
168
- fontTools/ttLib/ttFont.py,sha256=zyTL_lOCvJye5gzc1zvcqph2uEbR69AH79VclrLOftc,42131
169
- fontTools/ttLib/ttGlyphSet.py,sha256=FvznrgEaD-Rz0737kfQGRFD6jX4uGpGqbu5ZCQtVuyI,18353
168
+ fontTools/ttLib/ttFont.py,sha256=t57l-KFaSAs29LQz7NOqatjsZSnqt-VVqPloySwetEU,42122
169
+ fontTools/ttLib/ttGlyphSet.py,sha256=JQZTE5TKXaVdceqYHZiC7gYanl_1mpHWjtW6GYjAtZ0,17966
170
170
  fontTools/ttLib/ttVisitor.py,sha256=_Dkmz0tDs-5AFUR46kyg3Ku6BMPifrZzRU8-9UvXdz4,1057
171
171
  fontTools/ttLib/woff2.py,sha256=LuX5SHMlhuhNRI0W5J2UnDua7_3NCnGaoofXhmjkf3g,62741
172
172
  fontTools/ttLib/tables/B_A_S_E_.py,sha256=KpUf8_XEoFNEv3RcoQjfOaJUtBBaCxMzfifEcGtAydI,383
@@ -178,7 +178,7 @@ fontTools/ttLib/tables/C_F_F__2.py,sha256=q9Y6-yvA8JjrMjBKvb0jtg5T0Z1qKPBduTv8A5
178
178
  fontTools/ttLib/tables/C_O_L_R_.py,sha256=pq9xotYUq19Gq8GghKqUlru0nBqlmKdAcqrxa25wboM,6158
179
179
  fontTools/ttLib/tables/C_P_A_L_.py,sha256=DEB9H9TXDg9uYhmrNEsNgXJ6cj9NMCVpVDJ-XMsBJzo,12247
180
180
  fontTools/ttLib/tables/D_S_I_G_.py,sha256=ngvrE19I7s5t6N3QUsvoUONkTvdVtGC7vItIVDun0r4,5675
181
- fontTools/ttLib/tables/D__e_b_g.py,sha256=DWTQGGhFoqzwaXZVF5Je2BIMtjXBDAPoVes9Jq_3vI8,460
181
+ fontTools/ttLib/tables/D__e_b_g.py,sha256=Co-AyQ7kQQs4x7fhIjBt33E9I48mIoZNZR4Z8OUVXUU,1169
182
182
  fontTools/ttLib/tables/DefaultTable.py,sha256=_pMaYi_MrvHzioY5s3NvKdzEFaueppMeJIpnfQDwWqg,1536
183
183
  fontTools/ttLib/tables/E_B_D_T_.py,sha256=f96YN8zj5Qcp9kweWU0fmG1W-uUewNxLR8Ox3yzsnjo,33369
184
184
  fontTools/ttLib/tables/E_B_L_C_.py,sha256=ED5j8COGRPBUXxoey7bXVoRNiZCC2rgx0cWls2YNp6g,30772
@@ -226,7 +226,7 @@ fontTools/ttLib/tables/_a_n_k_r.py,sha256=eiy6DKxPGw-H9QCLWIQBFveuTFQSKgcPItwgyB
226
226
  fontTools/ttLib/tables/_a_v_a_r.py,sha256=cIqfWyyU5hNrJ-SIfVCKQcpyi2DUjobAgrmyE2In9FI,7307
227
227
  fontTools/ttLib/tables/_b_s_l_n.py,sha256=iHLFy3sjFFoGa-pDGdcLCCudv4QFMt2VBL06gigGA_k,480
228
228
  fontTools/ttLib/tables/_c_i_d_g.py,sha256=BPa6b0yrmT8OXPW3USRpn_H8DOLKFlDe9subtRDJBrc,937
229
- fontTools/ttLib/tables/_c_m_a_p.py,sha256=fXKv3N1G0i3LnW3hyQxLBtjNDyTmX09d5DCapHBwaw8,63299
229
+ fontTools/ttLib/tables/_c_m_a_p.py,sha256=BTWxvUta7Y_ZUq2zyIsKY86yXfhs6JGl0bEBJ4hilsY,63799
230
230
  fontTools/ttLib/tables/_c_v_a_r.py,sha256=5LCuL07YXkqcqkSQeW4F6Vlx5XYtkjIIyiYfQ88Ydw0,3621
231
231
  fontTools/ttLib/tables/_c_v_t.py,sha256=N3VW0LbHHJtcUU8_TURT4U-OeVGMluJhM5mJn0LH3TA,1639
232
232
  fontTools/ttLib/tables/_f_e_a_t.py,sha256=g-B57skN59uZa3dQ88gMVpY1RmQH92cCkttJq2T4TzY,484
@@ -234,8 +234,8 @@ fontTools/ttLib/tables/_f_p_g_m.py,sha256=MiDyOiSyn4iA92G8YDZytJMqTFgNix03oiX5xM
234
234
  fontTools/ttLib/tables/_f_v_a_r.py,sha256=hpxU0-u7_pZYDmQdKpmd_7c6BjVpXHdoQ97jKk9Kz5U,9098
235
235
  fontTools/ttLib/tables/_g_a_s_p.py,sha256=Pr4X2CEg3a_nYAZrKSWT0auQ5HU2WutP1Shxxg7ALPw,2266
236
236
  fontTools/ttLib/tables/_g_c_i_d.py,sha256=diZlew4U8nFK5vimh-GMOjwHw8ccZtIEl9cPq0PrNdA,375
237
- fontTools/ttLib/tables/_g_l_y_f.py,sha256=7nGKdrSZ7yz2k-o1pKNlVM-RZ0fuYCtvuUhoCD2lGKE,87942
238
- fontTools/ttLib/tables/_g_v_a_r.py,sha256=etECZEoWa1KEimNg2hqNFqPqr85OFsfj3odDIU-0lRI,11065
237
+ fontTools/ttLib/tables/_g_l_y_f.py,sha256=hwVvD5SXBbRVih1dLSBPXV2FarjWIV6HV20AtL90VQE,88012
238
+ fontTools/ttLib/tables/_g_v_a_r.py,sha256=iFyRvEldPWQQuzxcuQDA-Zk-W4pDFhxLTfI_GWYNKcs,11118
239
239
  fontTools/ttLib/tables/_h_d_m_x.py,sha256=Da8Og1KFmOLJGkBlLDlcgdvrIeCTx1USGwnmlg93r3E,4398
240
240
  fontTools/ttLib/tables/_h_e_a_d.py,sha256=ft9ghTA1NZsGBvB0yElFFCqVHecuCKGjT2m2GfYB3Yc,5056
241
241
  fontTools/ttLib/tables/_h_h_e_a.py,sha256=pY92ZLt3o0jZ3KQVd_qtxYtk_tbP2DLzSWm_wVP8FNM,4914
@@ -260,10 +260,10 @@ fontTools/ttLib/tables/_v_m_t_x.py,sha256=933DMeQTI9JFfJ3TOjAFE6G8qHXJ7ZI2GukIKS
260
260
  fontTools/ttLib/tables/asciiTable.py,sha256=xJtOWy5lATZJILItU-A0dK4-jNXBByzyVWeO81FW8nc,657
261
261
  fontTools/ttLib/tables/grUtils.py,sha256=T_WsEtpW60m9X6Rulko3bGI9aFdSC8Iyffwg_9ky0_I,2362
262
262
  fontTools/ttLib/tables/otBase.py,sha256=RaBfW20QPTYPWVDzAIjFGgYfZqxeiO6RnZbVs30wpRg,54820
263
- fontTools/ttLib/tables/otConverters.py,sha256=n0oeHHlsnh203r23dKwQmwUMWeXKagd6cxAxpEdkG2g,76138
264
- fontTools/ttLib/tables/otData.py,sha256=0xXwRw_ea_fDWY7GoPgGCjkI_j8s-IP3Tmj2YUWy7Cg,203660
265
- fontTools/ttLib/tables/otTables.py,sha256=l-mkq4gRbRNnAdTh-TpBgj0lB6XqgsQVuw1FWCRXXxI,99637
266
- fontTools/ttLib/tables/otTraverse.py,sha256=tG0g7nPncZ6_grWs55-ghEdBiiYuw6mtMBwYYVk4PVE,5659
263
+ fontTools/ttLib/tables/otConverters.py,sha256=7_vqtb3-OV_iyHnVBrbQCWLg7lqkrX55F5PwRVDkck8,76270
264
+ fontTools/ttLib/tables/otData.py,sha256=i6KD2n1OqJvYgRlXV9-ya_QSmhYl8jcBQm61zCnBt90,203662
265
+ fontTools/ttLib/tables/otTables.py,sha256=GCxuX-FIMLKbRd4TdE2c9YLsWRkufpzX1TAAxEAJBK4,99836
266
+ fontTools/ttLib/tables/otTraverse.py,sha256=T1fnamNXqvFPUBspFm7aYsq_P0jUSJSy1ab9t48p_ZI,5681
267
267
  fontTools/ttLib/tables/sbixGlyph.py,sha256=a-mCmO5EibN_He7QQohG06Qg-fCOHWiNFMAbCpxa25w,5945
268
268
  fontTools/ttLib/tables/sbixStrike.py,sha256=9-UIVPormVd27lOU5fuGZvzkckA2U5975jBXXUEPxKA,6840
269
269
  fontTools/ttLib/tables/table_API_readme.txt,sha256=E9lwGW1P_dGqy1FYBcYLVEDDmikbsqW4pUtpv1RKCJU,2839
@@ -284,7 +284,7 @@ fontTools/unicodedata/OTTags.py,sha256=IAt8NXaZOhu5cuuks46DDX3E7Ovoqp-PMUQC-WJUP
284
284
  fontTools/unicodedata/ScriptExtensions.py,sha256=eIAXBnM9BbI5V_MWeA9I9Iv2rvgWi8mt8dCWN3cN1gY,29033
285
285
  fontTools/unicodedata/Scripts.py,sha256=jCKY8wlKrSFmsFndzLegVS6vrhVGZ-S3T0dw2vO9Drg,133888
286
286
  fontTools/unicodedata/__init__.py,sha256=chzMtaCBGWRqh-2kzN3-DVPO1xAaWHa4Y0szHVAaLJs,9122
287
- fontTools/varLib/__init__.py,sha256=OL2M224kjlhjCJtI7z75qRx6fSH1kx6lcsrteP2r7H8,55494
287
+ fontTools/varLib/__init__.py,sha256=sEv7J2CR1CSiDGWI0p68ZAAVlRIm3Zn4PY4zH7h3Zw0,55122
288
288
  fontTools/varLib/__main__.py,sha256=ykyZY5GG9IPDsPrUWiHgXEnsgKrQudZkneCTes6GUpU,101
289
289
  fontTools/varLib/avar.py,sha256=tRgKAUn_K5MTCSkB2MgPYYZ2U6Qo_Cg3jFQV0TDKFgc,9907
290
290
  fontTools/varLib/avarPlanner.py,sha256=orjyFvg3YkC-slt7fgSEU1AGjLCkGgMEJ7hTRV6CqUA,28362
@@ -292,14 +292,15 @@ fontTools/varLib/builder.py,sha256=1k-N-rTwnZqQpzhNLBx2tqu2oYGG44sJSXKTCjAvIVM,6
292
292
  fontTools/varLib/cff.py,sha256=bl8rrPHHpwzUdZBY80_5JJLWYcXQOolhKKvTJiiU-Bs,23532
293
293
  fontTools/varLib/errors.py,sha256=mXl-quT2Z75_t7Uwb6ug3VMhmbQjO841YNLeghwuY_s,7153
294
294
  fontTools/varLib/featureVars.py,sha256=e7e4UFG3t5GaNLXxsA6mcn7Cs3L1UjwKzXoHPnamWJE,26137
295
+ fontTools/varLib/hvar.py,sha256=EFmOQt1bUPiKPPM10oGAn_9prrITwDC_i0LcFKZe7Sw,3806
295
296
  fontTools/varLib/interpolatable.py,sha256=8AXrhsnYY1z0hR6gskqYRYx8qcFsvUKmIIHZRpIOlAU,46430
296
297
  fontTools/varLib/interpolatableHelpers.py,sha256=JnabttZY7sY9-QzdiqkgzQ_S5nG8k_O1TzLEmfNUvNo,11892
297
298
  fontTools/varLib/interpolatablePlot.py,sha256=tUKFd8H9B2eD_GE6jV13J-dZkkIeLmk3ojAYrf-edsA,45644
298
299
  fontTools/varLib/interpolatableTestContourOrder.py,sha256=Pbt0jW0LoVggIwrtADZ7HWK6Ftdoo1bjuWz0ost0HD0,3103
299
300
  fontTools/varLib/interpolatableTestStartingPoint.py,sha256=f5MJ3mj8MctJCvDJwqmW1fIVOgovUMYAOela9HweaRU,4403
300
301
  fontTools/varLib/interpolate_layout.py,sha256=tTPUes_K7MwooUO_wac9AeFEVgL1uGSz4ITYiOizaME,3813
301
- fontTools/varLib/iup.c,sha256=DLuKtbG8sRuBAZXN0blJBfPYEUjsuImoF1Rnnn_f-Os,776376
302
- fontTools/varLib/iup.cp313-win32.pyd,sha256=QpGHx3tEo1EpZc74v36llD9SmVpO-_jVgWrgNkueNqE,126976
302
+ fontTools/varLib/iup.c,sha256=XwZABD8Lka4jWm7Pnlh-xxsipDvEhgld2J5M0Dfjcv8,776454
303
+ fontTools/varLib/iup.cp313-win32.pyd,sha256=my9I8CBIo0JdxKHAzw7u_SigyHjROav8vNiOOalVAgg,126976
303
304
  fontTools/varLib/iup.py,sha256=O_xPJOBECrNDbQqCC3e5xf9KsWXUd1i3BAp9Fl6Hv2Y,15474
304
305
  fontTools/varLib/merger.py,sha256=V-B17poOYbbrRsfUYJbdqt46GtRfG833MKwtv9NOB3Q,62519
305
306
  fontTools/varLib/models.py,sha256=ZqQb1Lapj5dCO8dwa3UTx1LsIpF0-GiDte32t_TMJJQ,23040
@@ -308,7 +309,7 @@ fontTools/varLib/mutator.py,sha256=bUkUP27sxhEVkdljzbHNylHkj6Ob3FfQ9AoDYTRIwdo,1
308
309
  fontTools/varLib/mvar.py,sha256=Gf3q54ICH-E9oAwKYeIKUPLZabfjY0bUT4t220zLzYI,2489
309
310
  fontTools/varLib/plot.py,sha256=BtozrcnKoEyCs0rGy7PZmrUvUNTmZT-5_sylW5PuJ28,7732
310
311
  fontTools/varLib/stat.py,sha256=ScaVFIVpXTqA-F07umv_66GoxtcjaZ54MPLFvFK4s68,4960
311
- fontTools/varLib/varStore.py,sha256=lWaQpZ7xc4Gh00chbRi9aZh8gdtTS8Jizcd-WSHt9NI,25927
312
+ fontTools/varLib/varStore.py,sha256=GWz-B1YcR-JnIh2aDmeQg621GDEBj9M4pKYcbZraA3w,24808
312
313
  fontTools/varLib/instancer/__init__.py,sha256=oWhXm_LpZbP29JT_aw2fLPeZadz5LaKSLBsNDv7bacA,73283
313
314
  fontTools/varLib/instancer/__main__.py,sha256=YN_tyJDdmLlH3umiLDS2ue0Zc3fSFexa9wCuk3Wuod0,109
314
315
  fontTools/varLib/instancer/featureVars.py,sha256=b3qtGCYVZ9fqkqcgFQUikYQBX_3_x0YgdrvvxIALbuU,7300
@@ -320,10 +321,10 @@ fontTools/voltLib/error.py,sha256=3TsaZBA82acFd2j5Beq3WUQTURTKM0zxOnUFGZovSNA,40
320
321
  fontTools/voltLib/lexer.py,sha256=v9V4zdBO2VqVJG__IWrL8fv_CRURmh2eD_1UpbIJn9g,3467
321
322
  fontTools/voltLib/parser.py,sha256=xAQPwO8uyYHKi-v9yMtz2RGE3lj75V4lanUGgIL9AC4,25572
322
323
  fontTools/voltLib/voltToFea.py,sha256=iJ7mJa9q-vWpmQgfCJC_ZrzNop_mgC1pazr1DhPJleE,29235
323
- fonttools-4.55.8.data/data/share/man/man1/ttx.1,sha256=E71F9mRNWlttVpzlnP7w_fqkQygPkph5s-AtVa0Js50,5601
324
- fonttools-4.55.8.dist-info/LICENSE,sha256=Ir74Bpfs-qF_l-YrmibfoSggvgVYPo3RKtFpskEnTJk,1093
325
- fonttools-4.55.8.dist-info/METADATA,sha256=DUSPFu3K1SZOif_DMaP6zt73NaB_n8WG0AeLyEH0Ddk,103265
326
- fonttools-4.55.8.dist-info/WHEEL,sha256=DFEd4wH53WDAEWJlYTy3wsIIOJTkJ3-fMddO9UbJavY,97
327
- fonttools-4.55.8.dist-info/entry_points.txt,sha256=8kVHddxfFWA44FSD4mBpmC-4uCynQnkoz_9aNJb227Y,147
328
- fonttools-4.55.8.dist-info/top_level.txt,sha256=rRgRylrXzekqWOsrhygzib12pQ7WILf7UGjqEwkIFDM,10
329
- fonttools-4.55.8.dist-info/RECORD,,
324
+ fonttools-4.57.0.data/data/share/man/man1/ttx.1,sha256=E71F9mRNWlttVpzlnP7w_fqkQygPkph5s-AtVa0Js50,5601
325
+ fonttools-4.57.0.dist-info/licenses/LICENSE,sha256=Ir74Bpfs-qF_l-YrmibfoSggvgVYPo3RKtFpskEnTJk,1093
326
+ fonttools-4.57.0.dist-info/METADATA,sha256=Hd31v80jpram7KMszIIwh8xuwXygO5HFu3aEUPrnUqY,104604
327
+ fonttools-4.57.0.dist-info/WHEEL,sha256=iuBtox58ZfmdZzG-BEHKFn_UiBPbBDtT4b67THCTeoc,97
328
+ fonttools-4.57.0.dist-info/entry_points.txt,sha256=8kVHddxfFWA44FSD4mBpmC-4uCynQnkoz_9aNJb227Y,147
329
+ fonttools-4.57.0.dist-info/top_level.txt,sha256=rRgRylrXzekqWOsrhygzib12pQ7WILf7UGjqEwkIFDM,10
330
+ fonttools-4.57.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.8.0)
2
+ Generator: setuptools (78.1.0)
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp313-cp313-win32
5
5