
    ]Mh$*                     "   d dl mZ ddlZ ed          Z ed          Z ed          Z ej        d          Z ej        d          Z	 ej        d	          Z
 ej        d
          Zd Zde	fde	fde	fde
fde
fde	fde	ffZd ZdefdZdS )   )EllipticalArc    NMmZzLlHhVvCcSsQqTtAaAa
MZLHVCSQTAz([MmZzLlHhVvCcSsQqTtAa])z\[-+]?(?:(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:[eE][-+]?[0-9]+)?|(?:\.[0-9]+(?:[eE][-+]?[0-9]+)?))z^[01]z[, 	]c              #   B  K   d }t                               |           D ]}|t          v r|t          v r|nd }|V  |r?	 t	          |          E d {V  6# t
          $ r}t          d| | d          |d }~ww xY wt                              |          D ]}|V  d S )NzInvalid arc command: '')
COMMAND_REsplitCOMMANDSARC_COMMANDS_tokenize_arc_arguments
ValueErrorFLOAT_REfindall)pathdefarc_cmdxetokens        \/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/fontTools/svgLib/path/parser.py_tokenize_pathr   "   s      Gg&&  ==,,aa$GGGG 	P215555555555 P P P !G'!G1!G!G!GHHaOP "))!,,   s   A
A:A55A:rxryzx-axis-rotationzlarge-arc-flagz
sweep-flagr   yc              #   &  K   d t                               |           D             }|st          d|  d          |                                 d}|r|                                }t
          |         \  }}|                    |          }|st          d| d|          |                                \  }}|||         V  ||d          }|r|                    |           |dk    rd}n|dz  }||dk    rt          d|  d          d S )	Nc                     g | ]}||S  r   ).0ss     r   
<listcomp>z+_tokenize_arc_arguments.<locals>.<listcomp>@   s    ;;;a;;;;    zNot enough arguments: 'r	   r   zInvalid argument for 'z' parameter:    r   )	SEPARATOR_REr   r   reversepopARC_ARGUMENT_TYPESsearchspanappend)	arcdefraw_argsiargnamepatternmatchjks	            r   r   r   ?   sV     ;;<--f55;;;H ><6<<<===	A
 llnn*1-gs## 	RPdPPPPQQQzz||1!A#h!""g 	!OOC    66AAFA'  * 	Avv<6<<<=== vr"   )r   r   c           	      F   t          | }t          t          |                     }|                                 d}d}d}t	          |d          }|r|d         t
          v r4|}	|                                }|t          v }
|                                }nH|Dt          d| dt          |                                           t          |          z
            |}	|dk    r|                                }|                                }t          |          t          |          dz  z   }|
r|}n||z  }||                                 |                    |j        |j        f           |}d}n|d	k    rC||k    r!|                    |j        |j        f           |                                 |}d}d}nH|dk    rv|                                }|                                }t          |          t          |          dz  z   }|
s||z  }|                    |j        |j        f           |}n|d
k    r_|                                }t          |          |j        dz  z   }|
s
||j        z  }|                    |j        |j        f           |}ng|dk    rb|                                }|j        t          |          dz  z   }|
s||j        dz  z  }|                    |j        |j        f           |}n|dk    r$t          |                                          t          |                                          dz  z   }t          |                                          t          |                                          dz  z   }t          |                                          t          |                                          dz  z   }|
s||z  }||z  }||z  }|                    |j        |j        f|j        |j        f|j        |j        f           |}|}n|dk    r|	dvr|}n||z   |z
  }t          |                                          t          |                                          dz  z   }t          |                                          t          |                                          dz  z   }|
s
||z  }||z  }|                    |j        |j        f|j        |j        f|j        |j        f           |}|}n|dk    rt          |                                          t          |                                          dz  z   }t          |                                          t          |                                          dz  z   }|
s
||z  }||z  }|                    |j        |j        f|j        |j        f           |}|}n|dk    r|	dvr|}n||z   |z
  }t          |                                          t          |                                          dz  z   }|
s||z  }|                    |j        |j        f|j        |j        f           |}|}n~|dk    rwt+          t          |                                                    }t+          t          |                                                    }t          |                                          }t-          t/          |                                                    }t-          t/          |                                                    }t          |                                          t          |                                          dz  z   }|
s||z  }|r'|                    ||||||j        |j        f           n& ||||||||          }|                    |           |}|||                                 dS dS )a_  Parse SVG path definition (i.e. "d" attribute of <path> elements)
    and call a 'pen' object's moveTo, lineTo, curveTo, qCurveTo and closePath
    methods.

    If 'current_pos' (2-float tuple) is provided, the initial moveTo will
    be relative to that instead being absolute.

    If the pen has an "arcTo" method, it is called with the original values
    of the elliptical arc curve commands:

    .. code-block::

        pen.arcTo(rx, ry, rotation, arc_large, arc_sweep, (x, y))

    Otherwise, the arcs are approximated by series of cubic Bezier segments
    ("curveTo"), one every 90 degrees.
    NarcTozUnallowed implicit command in z, position My              ?LZHVCSCSQTQTA)complexlistr   r%   hasattrr   r&   	UPPERCASEupperr   lenr   floatendPathmoveTorealimaglineTo	closePathcurveToqCurveToabsboolintr5   draw)r   pencurrent_pos	arc_classelements	start_poscommandlast_control
have_arcTolast_commandabsoluter   r   poscontrol1control2endcontrolr   r   rotation	arc_large	arc_sweeparcs                           r   
parse_pathri   _   s   , ;'KN7++,,HIGLg&&J
 }B<8##"LllnnG)+HmmooGG  jwwGMMOO 4 4s8}} D DF   #Lc>>AA((U1XX]*C #!s" $JJ(+*:;<<<
 $I
 GG^^i''

ININ;<<<MMOOO#KIGG^^AA((U1XX]*C #{"JJ#(+,,,KK^^A(([-22C ({''JJ#(+,,,KK^^A"U1XX]2C -{'",,JJ#(+,,,KK^^X\\^^,,uX\\^^/D/Dr/IIHX\\^^,,uX\\^^/D/Dr/IIH''%*?*?"*DDC #K'K'{"KK..38$  
 K#LL^^ 4'' '
 '4|CX\\^^,,uX\\^^/D/Dr/IIH''%*?*?"*DDC #K'{"KK..38$  
 K#LL^^HLLNN++eHLLNN.C.Cb.HHG''%*?*?"*DDC #;&{"LL',5#(7KLLLK"LL^^ 4'' &
 &3lB''%*?*?"*DDC #{"LL',5#(7KLLLK"LL^^U8<<>>**++BU8<<>>**++BX\\^^,,HS0011IS0011I''%*?*?"*DDC #{"  		Xsx(     iR9i  K{  }@  r"   )rh   r   resetr   r   rF   compiler
   r   BOOL_REr$   r   r'   r   ri   r   r"   r   <module>rn      s*         				 3%&&s4yyC	RZ233
 2:	  "*W

rz)$$  & 
8	8!w7(O(O > > >@ *0= c c c c c cr"   