+
    i                     (    ^ RI Ht  ! R R]4      tR# )    )ContourFilterPenc                   *   a  ] tR t^t o RtR tRtV tR# )ExplicitClosingLinePenaA	  A filter pen that adds an explicit lineTo to the first point of each closed
contour if the end point of the last segment is not already the same as the first point.
Otherwise, it passes the contour through unchanged.

>>> from pprint import pprint
>>> from fontTools.pens.recordingPen import RecordingPen
>>> rec = RecordingPen()
>>> pen = ExplicitClosingLinePen(rec)
>>> pen.moveTo((0, 0))
>>> pen.lineTo((100, 0))
>>> pen.lineTo((100, 100))
>>> pen.closePath()
>>> pprint(rec.value)
[('moveTo', ((0, 0),)),
 ('lineTo', ((100, 0),)),
 ('lineTo', ((100, 100),)),
 ('lineTo', ((0, 0),)),
 ('closePath', ())]
>>> rec = RecordingPen()
>>> pen = ExplicitClosingLinePen(rec)
>>> pen.moveTo((0, 0))
>>> pen.lineTo((100, 0))
>>> pen.lineTo((100, 100))
>>> pen.lineTo((0, 0))
>>> pen.closePath()
>>> pprint(rec.value)
[('moveTo', ((0, 0),)),
 ('lineTo', ((100, 0),)),
 ('lineTo', ((100, 100),)),
 ('lineTo', ((0, 0),)),
 ('closePath', ())]
>>> rec = RecordingPen()
>>> pen = ExplicitClosingLinePen(rec)
>>> pen.moveTo((0, 0))
>>> pen.curveTo((100, 0), (0, 100), (100, 100))
>>> pen.closePath()
>>> pprint(rec.value)
[('moveTo', ((0, 0),)),
 ('curveTo', ((100, 0), (0, 100), (100, 100))),
 ('lineTo', ((0, 0),)),
 ('closePath', ())]
>>> rec = RecordingPen()
>>> pen = ExplicitClosingLinePen(rec)
>>> pen.moveTo((0, 0))
>>> pen.curveTo((100, 0), (0, 100), (100, 100))
>>> pen.lineTo((0, 0))
>>> pen.closePath()
>>> pprint(rec.value)
[('moveTo', ((0, 0),)),
 ('curveTo', ((100, 0), (0, 100), (100, 100))),
 ('lineTo', ((0, 0),)),
 ('closePath', ())]
>>> rec = RecordingPen()
>>> pen = ExplicitClosingLinePen(rec)
>>> pen.moveTo((0, 0))
>>> pen.curveTo((100, 0), (0, 100), (0, 0))
>>> pen.closePath()
>>> pprint(rec.value)
[('moveTo', ((0, 0),)),
 ('curveTo', ((100, 0), (0, 100), (0, 0))),
 ('closePath', ())]
>>> rec = RecordingPen()
>>> pen = ExplicitClosingLinePen(rec)
>>> pen.moveTo((0, 0))
>>> pen.closePath()
>>> pprint(rec.value)
[('moveTo', ((0, 0),)), ('closePath', ())]
>>> rec = RecordingPen()
>>> pen = ExplicitClosingLinePen(rec)
>>> pen.closePath()
>>> pprint(rec.value)
[('closePath', ())]
>>> rec = RecordingPen()
>>> pen = ExplicitClosingLinePen(rec)
>>> pen.moveTo((0, 0))
>>> pen.lineTo((100, 0))
>>> pen.lineTo((100, 100))
>>> pen.endPath()
>>> pprint(rec.value)
[('moveTo', ((0, 0),)),
 ('lineTo', ((100, 0),)),
 ('lineTo', ((100, 100),)),
 ('endPath', ())]
c                "   V'       d;   V^ ,          ^ ,          R8w  g&   VR,          ^ ,          R8w  g   \        V4      ^8  d   R# V^ ,          ^,          ^ ,          pVR,          ^,          pV'       d   W#R,          8w  d   RV33R.VRR% R# R# R# )r   moveTo	closePathNlineTo)r    )len)selfcontourmovePtlastSegs   &&  څ/Users/tonyclaw/.openclaw/workspace/skills/math-calculator/venv/lib/python3.14/site-packages/fontTools/pens/explicitClosingLinePen.pyfilterContour$ExplicitClosingLinePen.filterContourZ   s~    qz!}(r{1~,7|aAq!"+a.v,%y13DEGBCL -7    r   N)__name__
__module____qualname____firstlineno____doc__r   __static_attributes____classdictcell__)__classdict__s   @r   r   r      s     SjF Fr   r   N)fontTools.pens.filterPenr   r   r   r   r   <module>r      s    5aF- aFr   