
    h                     &    S SK Jr   " S S\5      rg)    )ContourFilterPenc                       \ rS rSrSrS rSrg)ExplicitClosingLinePen   aA	  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                     U(       a'  US   S   S:w  d  US   S   S:w  d  [        U5      S:  a  g US   S   S   nUS   S   nU(       a  X#S   :w  a  SU44S	/USS & g g g )
Nr   moveTo	closePath      lineTo)r
    )len)selfcontourmovePtlastSegs       W/var/www/html/env/lib/python3.13/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__r   r   r   r   r      s    SjFr   r   N)fontTools.pens.filterPenr   r   r   r   r   <module>r       s    5aF- aFr   