o
    …9jKŸ  ã                   @   sÔ  d Z ddlT dZdZedƒZedƒZedƒZedƒZed	ƒZ	ee
ehƒZeeeeeeehƒZeed
ƒfeedƒfeedƒfeedƒfeedƒfeedƒfeedƒfeedƒfdœZeefeefeefeeefgfeeefgfeeefgfeeefgfeeefgfeeefgfee fdœ
Z!e"e#e$e%e&e'e(e)dœZ*e'e#B e)B Z+e,e(B Z-G dd„ de.ƒZ/G dd„ dƒZ0G dd„ dƒZ1G dd„ dƒZ2dd„ Z3dd „ Z4d!d"„ Z5d#d$„ Z6d3d&d'„Z7d(d)„ Z8d*d+„ Z9d4d-d.„Z:d/d0„ Z;d1d2„ Z<d,S )5zInternal support module for sreé    )Ú*z.\[{()*+?^$|z*+?{Ú
0123456789Ú01234567Ú0123456789abcdefABCDEFÚ4abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZz 	
úúúÚ
úú	úú\)z\aú\bz\fz\nz\rz\tz\vz\\)
z\Ar   z\Bz\dz\Dz\sz\Sz\wz\Wz\Z)ÚiÚLÚmÚsÚxÚaÚtÚuc                   @   s   e Zd ZdS )ÚVerboseN)Ú__name__Ú
__module__Ú__qualname__© r   r   ú /usr/lib/python3.10/sre_parse.pyr   G   s    r   c                   @   sB   e Zd Zdd„ Zedd„ ƒZddd„Zdd	„ Zd
d„ Zdd„ Z	dS )ÚStatec                 C   s$   d| _ i | _d g| _d | _i | _d S )Nr   )ÚflagsÚ	groupdictÚgroupwidthsÚlookbehindgroupsÚgrouprefpos©Úselfr   r   r   Ú__init__L   s
   
zState.__init__c                 C   ó
   t | jƒS ©N)Úlenr!   r$   r   r   r   ÚgroupsR   s   
zState.groupsNc                 C   sb   | j }| j d ¡ | j tkrtdƒ‚|d ur/| j |d ¡}|d ur*td|||f ƒ‚|| j|< |S )Nztoo many groupsz7redefinition of group name %r as group %d; was group %d)r*   r!   ÚappendÚ	MAXGROUPSÚerrorr    Úget)r%   ÚnameÚgidÚogidr   r   r   Ú	opengroupU   s   
ÿ
zState.opengroupc                 C   s   |  ¡ | j|< d S r(   )Úgetwidthr!   )r%   r0   Úpr   r   r   Ú
closegroupa   ó   zState.closegroupc                 C   s   || j k o| j| d uS r(   )r*   r!   )r%   r0   r   r   r   Ú
checkgroupc   s   zState.checkgroupc                 C   s:   | j d ur|  |¡s| d¡‚|| j kr| d¡‚d S d S )Núcannot refer to an open groupz?cannot refer to group defined in the same lookbehind subpattern)r"   r7   r-   )r%   r0   Úsourcer   r   r   Úchecklookbehindgroupf   s   




üzState.checklookbehindgroupr(   )
r   r   r   r&   Úpropertyr*   r2   r5   r7   r:   r   r   r   r   r   J   s    

r   c                   @   s`   e Zd Zddd„Zddd„Zdd„ Zd	d
„ Zdd„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ ZdS )Ú
SubPatternNc                 C   s"   || _ |d u r	g }|| _d | _d S r(   )ÚstateÚdataÚwidth)r%   r=   r>   r   r   r   r&   p   s
   
zSubPattern.__init__r   c                 C   s|  d}t tf}| jD ]²\}}t|d t|ƒ dd� |tu r5tƒ  |D ]\}}t|d d t|ƒ |ƒ q"q	|tu rYtƒ  t|d ƒD ]\}}|rPt|d d ƒ | |d ¡ qBq	|t	u r€|\}}	}
td|ƒ |	 |d ¡ |
rt|d d ƒ |
 |d ¡ q	t
||ƒr¶d}|D ]&}t
|tƒrŸ|s•tƒ  | |d ¡ d}q‰|s§td	dd� t|dd� d}q‰|sµtƒ  q	td|ƒ q	d S )
NTz  Ú )Úendé   ÚORÚELSEFú )ÚtupleÚlistr>   ÚprintÚstrÚINÚBRANCHÚ	enumerateÚdumpÚGROUPREF_EXISTSÚ
isinstancer<   )r%   ÚlevelÚnlÚseqtypesÚopÚavr   r   Ú	condgroupÚitem_yesÚitem_nor   r   r   rM   w   sR   ÿý

€

€ÜzSubPattern.dumpc                 C   r'   r(   )Úreprr>   r$   r   r   r   Ú__repr__Ÿ   ó   
zSubPattern.__repr__c                 C   r'   r(   )r)   r>   r$   r   r   r   Ú__len__¡   rZ   zSubPattern.__len__c                 C   s   | j |= d S r(   ©r>   ©r%   Úindexr   r   r   Ú__delitem__£   s   zSubPattern.__delitem__c                 C   s&   t |tƒrt| j| j| ƒS | j| S r(   )rO   Úslicer<   r=   r>   r]   r   r   r   Ú__getitem__¥   s   

zSubPattern.__getitem__c                 C   s   || j |< d S r(   r\   ©r%   r^   Úcoder   r   r   Ú__setitem__©   ó   zSubPattern.__setitem__c                 C   s   | j  ||¡ d S r(   )r>   Úinsertrb   r   r   r   rf   «   r6   zSubPattern.insertc                 C   s   | j  |¡ d S r(   )r>   r+   )r%   rc   r   r   r   r+   ­   s   zSubPattern.appendc           	      C   sÖ  | j d ur| j S d }}| jD ]Ë\}}|tu r=td }d}|d D ]}| ¡ \}}t||ƒ}t||ƒ}q!|| }|| }q|tu rP| ¡ \}}|| }|| }q|tu re|d  ¡ \}}|| }|| }q|t	v r‚|d  ¡ \}}|||d   }|||d   }q|t
v r�|d }|d }q|tu r¤| jj| \}}|| }|| }q|tu rÔ|d  ¡ \}}|d d urÉ|d  ¡ \}}t||ƒ}t||ƒ}nd}|| }|| }q|tu rÚ nqt|td ƒt|tƒf| _ | j S )Nr   rB   éÿÿÿÿé   )r?   r>   rK   Ú	MAXREPEATr3   ÚminÚmaxÚCALLÚ
SUBPATTERNÚ_REPEATCODESÚ
_UNITCODESÚGROUPREFr=   r!   rN   ÚSUCCESS)	r%   ÚloÚhirS   rT   r   ÚjÚlÚhr   r   r   r3   ¯   s\   








ÿzSubPattern.getwidthr(   ©r   )r   r   r   r&   rM   rY   r[   r_   ra   rd   rf   r+   r3   r   r   r   r   r<   n   s    

(r<   c                   @   sb   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Ze	dd„ ƒZ
dd„ Zdd„ Zddd„ZdS )Ú	Tokenizerc                 C   s@   t |tƒ| _|| _| jst|dƒ}|| _d| _d | _|  ¡  d S )NÚlatin1r   )rO   rI   ÚistextÚstringÚdecoded_stringr^   ÚnextÚ_Tokenizer__next)r%   r{   r   r   r   r&   á   s   
zTokenizer.__init__c                 C   s�   | j }z| j| }W n ty   d | _Y d S w |dkr>|d7 }z	|| j| 7 }W n ty=   td| jt| jƒd ƒd ‚w |d | _ || _d S )Nr   rB   zbad escape (end of pattern))r^   r|   Ú
IndexErrorr}   r-   r{   r)   )r%   r^   Úcharr   r   r   Ú__nextê   s(   þÿÿÿ

zTokenizer.__nextc                 C   s   || j kr|  ¡  dS dS )NTF©r}   r~   )r%   r€   r   r   r   Úmatchú   s   
zTokenizer.matchc                 C   s   | j }|  ¡  |S r(   r‚   )r%   Úthisr   r   r   r.   ÿ   s   zTokenizer.getc                 C   s:   d}t |ƒD ]}| j}||vr |S ||7 }|  ¡  q|S ©Nr@   )Úranger}   r~   )r%   ÚnÚcharsetÚresultÚ_Úcr   r   r   Úgetwhile  s   þ
zTokenizer.getwhilec                 C   sn   d}	 | j }|  ¡  |d u r!|s|  d| ¡‚|  d| t|ƒ¡‚||kr2|s/|  d| d¡‚	 |S ||7 }q)Nr@   Tzmissing zmissing %s, unterminated namerB   )r}   r~   r-   r)   )r%   Ú
terminatorr/   r‰   r‹   r   r   r   Úgetuntil  s"   
ÿÿôzTokenizer.getuntilc                 C   ó   | j t| jpdƒ S r…   ©r^   r)   r}   r$   r   r   r   Úpos  s   zTokenizer.posc                 C   r�   r…   r�   r$   r   r   r   Útell  s   zTokenizer.tellc                 C   s   || _ |  ¡  d S r(   )r^   r~   r]   r   r   r   Úseek!  s   zTokenizer.seekr   c                 C   s   t || j|  ¡ | ƒS r(   )r-   r{   r’   )r%   ÚmsgÚoffsetr   r   r   r-   %  s   zTokenizer.errorNrw   )r   r   r   r&   r~   rƒ   r.   rŒ   rŽ   r;   r‘   r’   r“   r-   r   r   r   r   rx   à   s    		
rx   c              	   C   s–  t  |¡}|r	|S t |¡}|r|d tu r|S �z|dd… }|dkrH||  dt¡7 }t|ƒdkr<|  d| t|ƒ¡‚tt	|dd … dƒfW S |dkrs| j
rs||  dt¡7 }t|ƒd	krg|  d| t|ƒ¡‚tt	|dd … dƒfW S |d
kr¤| j
r¤||  dt¡7 }t|ƒdkr’|  d| t|ƒ¡‚t	|dd … dƒ}t|ƒ t|fW S |dkrå| j
rådd l}|  d¡s¹|  d¡‚|  dd¡}z	t| |¡ƒ}W n ttfyß   |  d| t|ƒtdƒ ¡‚w t|fW S |tv �r||  dt¡7 }t	|dd … dƒ}|dk�r
|  d| t|ƒ¡‚t|fW S |tv �rt‚t|ƒdk�r5|tv �r,|  d| t|ƒ¡‚tt|d ƒfW S W n
 t�y@   Y nw |  d| t|ƒ¡‚)Nr   rB   rh   r   é   úincomplete escape %sé   r   é   ÚUé   é
   ÚNú{ú	missing {ú}úcharacter nameúundefined character name %rú\N{}éÿ   ú.octal escape value %s outside of range 0-0o377úbad escape %s)ÚESCAPESr.   Ú
CATEGORIESrJ   rŒ   Ú	HEXDIGITSr)   r-   ÚLITERALÚintrz   ÚchrÚunicodedatarƒ   rŽ   ÚordÚlookupÚKeyErrorÚ	TypeErrorÚ	OCTDIGITSÚDIGITSÚ
ValueErrorÚASCIILETTERS)r9   Úescaperc   r‹   r­   Úcharnamer   r   r   Ú_class_escape(  sv   





ÿÿ


ÿÿ


ýÿr¸   c              	   C   sN  t  |¡}|r	|S t |¡}|r|S �z|dd… }|dkrB||  dt¡7 }t|ƒdkr6|  d| t|ƒ¡‚tt|dd … dƒfW S |dkrm| j	rm||  dt¡7 }t|ƒdkra|  d| t|ƒ¡‚tt|dd … dƒfW S |d	krž| j	rž||  d
t¡7 }t|ƒdkrŒ|  d| t|ƒ¡‚t|dd … dƒ}t
|ƒ t|fW S |dkrß| j	rßdd l}|  d¡s³|  d¡‚|  dd¡}z	t| |¡ƒ}W n ttfyÙ   |  d| t|ƒtdƒ ¡‚w t|fW S |dkr÷||  dt¡7 }tt|dd … d
ƒfW S |tv �rr| jtv �r?||  ¡ 7 }|d tv �r?|d tv �r?| jtv �r?||  ¡ 7 }t|dd … d
ƒ}|dk�r:|  d| t|ƒ¡‚t|fW S t|dd … ƒ}||jk �rf| |¡�s[|  dt|ƒ¡‚| || ¡ t|fW S |  d| t|ƒd ¡‚t|ƒdk�r‘|tv �rˆ|  d| t|ƒ¡‚tt|d ƒfW S W n
 t�yœ   Y nw |  d| t|ƒ¡‚)NrB   rh   r   r–   r—   r˜   r   r™   rš   r›   rœ   r�   r   rž   rŸ   r    r¡   r¢   r£   Ú0r¤   r¥   r8   úinvalid group reference %dr¦   )r¨   r.   r§   rŒ   r©   r)   r-   rª   r«   rz   r¬   r­   rƒ   rŽ   r®   r¯   r°   r±   r²   r³   r}   r*   r7   r:   rp   rµ   r´   )r9   r¶   r=   rc   r‹   r­   r·   Úgroupr   r   r   Ú_escaped  s’   





ÿÿ


ÿþ
ÿ

ýÿr¼   c                 C   s   t t | ¡ƒS r(   )rG   ÚdictÚfromkeys)Úitemsr   r   r   Ú_uniq±  re   rÀ   c                 C   sN  g }|j }| j}|  ¡ }	 |t| |||d | o| ƒƒ |dƒs"nqt|ƒdkr-|d S t|ƒ}	 d }	|D ]}
|
s< n |	d u rE|
d }	q6|
d |	krM nq6|D ]}
|
d= qP|  |	¡ q1	 g }|D ]/}
t|
ƒdkrk n1|
d \}}|tu r}|  ||f¡ qa|tu r�|d d tur�| 	|¡ qa n|  tt
|ƒf¡ |S |  td |ff¡ |S )NTrB   ú|r   )r+   rƒ   r’   Ú_parser)   r<   rª   rJ   ÚNEGATEÚextendrÀ   rK   )r9   r=   ÚverboseÚnestedr¿   ÚitemsappendÚsourcematchÚstartÚ
subpatternÚprefixÚitemÚsetrS   rT   r   r   r   Ú
_parse_sub´  sV   
ÿü
ÿ
rÎ   Fc           /   
   C   s¦  t |ƒ}|j}| j}| j}t}	t}
	 | j}|d u r�n|dv r!�ný|ƒ  |r>|tv r+q|dkr>	 |ƒ }|d u s;|dkr<nq0q|d dkrPt| ||ƒ}||ƒ �nÍ|t	vr^|t
|
|ƒfƒ �n¿|dk�rå|  ¡ d }g }|j}| jdkr…dd l}|jd	|  ¡  t|d
 d� |dƒ}	 |ƒ }|d u r›|  d|  ¡ | ¡‚|dkr£|r£�n|d dkr¯t| |ƒ}n9|râ|dv râ| j|krâdd l}|jd|dkrÇdn|dkrÍdn|dkrÓdnd|  ¡ d f t|d
 d� t
|
|ƒf}|dƒ�r•|ƒ }|d u rþ|  d|  ¡ | ¡‚|dk�r|d tu �r|d d }||ƒ |t
|
dƒfƒ nŠ|d dk�r*t| |ƒ}n|dk�rCdd l}|jd|  ¡ d  t|d
 d� t
|
|ƒf}|d t
k�sW|d t
k�rkd||f }|  |t|ƒd t|ƒ ¡‚|d }|d }||k �rŒd||f }|  |t|ƒd t|ƒ ¡‚|t||ffƒ n|d tu �r¢|d d }||ƒ qŠt|ƒ}|	|ƒdk�rÒ|d d t
u �rÒ|�rÊ|t|d d fƒ �nS||d ƒ �nK|�rÝ| dtd f¡ |t|fƒ �n8|tv �r|  ¡ }|dk�rød\}}n§|dk�rdt}}nœ|dk�rdt}}n‘|dk�r˜| jd k�r"|t
|
|ƒfƒ qdt}}d! }}| jtv �r<||ƒ 7 }| jtv �s1|d"ƒ�rS| jtv �rR||ƒ 7 }| jtv �sGn|}|d ƒ�sh|t
|
|ƒfƒ |  |¡ q|�rxt|ƒ}|tk�rxtd#ƒ‚|�r—t|ƒ}|tk�rˆtd#ƒ‚||k �r—|  d$|  ¡ | ¡‚ntd%|f ƒ‚|�r©|d&d … }nd }|�r·|d d tu �rÅ|  d'|  ¡ | t|ƒ ¡‚|d d tv �rÜ|  d(|  ¡ | t|ƒ ¡‚|d d t u �rü|d d \}}}}|d u �rü|�sü|�sü|}|dƒ�rt!|||ff|d&< �nt"|||ff|d&< �n|d)k�r$|t#d fƒ �nù|d*k�rþ|  ¡ d } d}d }!d}d}|dƒ�rœ|ƒ }|d u �rI|  d+¡‚|d,k�rÛ|d-ƒ�rn|  $d.d/¡}!|! %¡ �sld0|! }|  |t|!ƒd ¡‚�n.|d1ƒ�rÂ|  $d2d/¡}!|! %¡ �sŒd0|! }|  |t|!ƒd ¡‚|j& |!¡}"|"d u �r¥d3|! }|  |t|!ƒd ¡‚| '|"¡�sµ|  d4t|!ƒd ¡‚| (|"| ¡ |t)|"fƒ q|ƒ }|d u �rÏ|  d+¡‚|  d5| t|ƒd ¡‚|d6k�räd }�n¸|dk�r	 | jd u �rú|  d7|  ¡ |  ¡‚|ƒ d2k�rn�qêq|d8v �rxd}#|d-k�r<|ƒ }|d u �r|  d+¡‚|d9v�r.|  d:| t|ƒd ¡‚d&}#|j*}$|$d u �r<|j+|_*t,| |||d ƒ}|#dk �rR|$d u �rRd |_*|d2ƒ�sa|  d;|  ¡ |  ¡‚|d1k�ro|t-|#|ffƒ n|t.|#|ffƒ q|d*k�r@|  $d2d/¡}%|% %¡ �r¢|j& |%¡}&|&d u �r¡d3|% }|  |t|%ƒd ¡‚nXzt|%ƒ}&|&dk �r®t/‚W n t/�yÆ   d0|% }|  |t|%ƒd ¡d ‚w |&�sÔ|  d<t|%ƒd ¡‚|&t0k�rçd=|& }|  |t|%ƒd ¡‚|&|j1v�rú|  ¡ t|%ƒ d |j1|&< | (|&| ¡ t2| |||d ƒ}'|  d>¡�r$t2| |||d ƒ}(| jd>k�r#|  d?¡‚nd }(|  d2¡�s6|  d;|  ¡ |  ¡‚|t3|&|'|(ffƒ q|t4v �sJ|dk�r�t5| ||ƒ})|)d u �r‰|�r[|�r}dd l}|jd@| j6d dA… t| j6ƒdAk�rrdBnd!| f t7|d
 d� |j8t9@ �rˆ|�sˆt:‚q|)\}}d }n|  dC| t|ƒd ¡‚|d u�rÂz| ;|!¡}W n t�yÁ }* z|  |*j<t|!ƒd ¡d ‚d }*~*ww |�sÊ|t9@ �oÎ|t9@  }+t,| ||+|d ƒ}|  d2¡�sè|  d;|  ¡ |  ¡‚|d u�ró| =||¡ |t ||||ffƒ n|dk�r
|tt>fƒ n|dDk�r|tt?fƒ ntdE|f ƒ‚qt@t|ƒƒd d d&… D ]'},||, \}-}.|-t u �rO|.\}}}}|d u �rO|�sO|�sO|||,|,d …< �q)|S )FNTz|)ú#r
   r   r   ú[rB   z"Possible nested set at position %dr™   )Ú
stacklevelú^zunterminated character setú]z-&~|zPossible set %s at position %dú-Ú
differenceú&Úintersectionú~zsymmetric differenceÚunionz&Possible set difference at position %drh   zbad character range %s-%sú?)r   rB   r   ú+rž   r    r@   ú,z"the repetition number is too largez"min repeat greater than max repeatzunsupported quantifier %rrg   znothing to repeatzmultiple repeatÚ.ú(zunexpected end of patternÚPú<ú>ú
group nameúbad character in group name %rú=ú)úunknown group name %rr8   zunknown extension ?Pú:zmissing ), unterminated commentz=!<z=!zunknown extension ?<z"missing ), unterminated subpatternzbad group numberrº   rÁ   z/conditional backref with more than two branchesz@Flags not at the start of the expression %r%s but at position %dé   z (truncated)zunknown extension ?ú$z unsupported special character %r)Ar<   r+   r.   rƒ   r)   r®   r}   Ú
WHITESPACEr¼   ÚSPECIAL_CHARSrª   r’   ÚwarningsÚwarnÚFutureWarningr-   r¸   rJ   ÚRANGErÀ   ÚNOT_LITERALrf   rÃ   ÚREPEAT_CHARSri   r³   r“   r«   ÚOverflowErrorÚAssertionErrorÚATrn   rm   Ú
MIN_REPEATÚ
MAX_REPEATÚANYrŽ   Úisidentifierr    r7   r:   rp   r"   r*   rÎ   ÚASSERTÚ
ASSERT_NOTr´   r,   r#   rÂ   rN   ÚFLAGSÚ_parse_flagsr{   ÚDeprecationWarningr   ÚSRE_FLAG_VERBOSEr   r2   r”   r5   ÚAT_BEGINNINGÚAT_ENDr†   )/r9   r=   rÅ   rÆ   ÚfirstrÊ   ÚsubpatternappendÚ	sourcegetrÈ   Ú_lenÚ_ordr„   rc   ÚhererÍ   Ú	setappendrì   ÚnegateÚcode1ÚthatÚcode2r”   rr   rs   rj   rk   r€   rÌ   r»   Ú	add_flagsÚ	del_flagsr4   rÉ   r/   r0   Údirr"   ÚcondnamerU   rV   rW   r   ÚerrÚsub_verboser   rS   rT   r   r   r   rÂ   î  s®  ý


þ
ÿ
ûù	

ÿ


ÿý
Ç; 







ÿ

ÿ€





ÿ€ÿÿ








þ



ÿ



ÿ


ÿû






ÿ




ÿ



þ
ÿþ
ÿ
ÿ
ÿ
ÿ
ýÿù	

ÿ
€ÿÿ
ÿ


 � �Ÿ  d
€rÂ   c                 C   sð  | j }d}d}|dkre	 t| }| jr|dkrd}|  |¡‚n|dkr*d}|  |¡‚||O }|t@ r?|t@ |kr?d}|  |¡‚|ƒ }|d u rK|  d	¡‚|d
v rPn|tvrd| ¡ rZdnd	}|  |t|ƒ¡‚q|dkrr| j|O  _d S |t@ r||  dd¡‚|dkrÚ|ƒ }|d u rŒ|  d¡‚|tvr | ¡ r–dnd}|  |t|ƒ¡‚	 t| }|t@ r°d}|  |¡‚||O }|ƒ }|d u rÀ|  d¡‚|dkrÅn|tvrÙ| ¡ rÏdnd}|  |t|ƒ¡‚q¡|dksàJ ‚|t@ rê|  dd¡‚||@ rô|  dd¡‚||fS )Nr   rÔ   Tr   z8bad inline flags: cannot use 'L' flag with a str patternr   z:bad inline flags: cannot use 'u' flag with a bytes patternz9bad inline flags: flags 'a', 'u' and 'L' are incompatiblezmissing -, : or )z)-:zunknown flagrå   z,bad inline flags: cannot turn on global flagrB   zmissing flagz8bad inline flags: cannot turn off flags 'a', 'u' and 'L'z	missing :rç   z-bad inline flags: cannot turn off global flagz(bad inline flags: flag turned on and off)	r.   rû   rz   r-   Ú
TYPE_FLAGSÚisalphar)   r   ÚGLOBAL_FLAGS)r9   r=   r€   r  r  r  Úflagr”   r   r   r   rü   d  sx   
þ


ë


órü   c                 C   sn   t | tƒr!|t@ rtdƒ‚|t@ s|tO }|S |t@ rtdƒ‚|S |t@ r)tdƒ‚|t@ r5|t@ r5tdƒ‚|S )Nz)cannot use LOCALE flag with a str patternz(ASCII and UNICODE flags are incompatiblez,cannot use UNICODE flag with a bytes patternz'ASCII and LOCALE flags are incompatible)rO   rI   ÚSRE_FLAG_LOCALEr´   ÚSRE_FLAG_ASCIIÚSRE_FLAG_UNICODE)Úsrcr   r   r   r   Ú	fix_flags   s   
ùür  Nc                 C   sø   t | ƒ}|d u rtƒ }||_| |_zt|||t@ dƒ}W n  ty<   tƒ }|tB |_| |_| d¡ t||ddƒ}Y nw t| |j	jƒ|j	_|j
d urW|j
dksRJ ‚| d¡‚|j	jD ]}||j	jkrqd| }t|| |j	j| ƒ‚q[|t@ rz| ¡  |S )Nr   Trå   zunbalanced parenthesisrº   )rx   r   r   rI   rÎ   rþ   r   r“   r  r=   r}   r-   r#   r*   ÚSRE_FLAG_DEBUGrM   )rI   r   r=   r9   r4   Úgr”   r   r   r   Úparse°  s4   

ù	

þr  c                    sÒ  t | ƒ‰ˆj}g ‰ g ‰g ‰ˆj}‡ ‡‡‡‡fdd„}ˆj}	 |ƒ }|d u r'�n&|d dk�rH|d }|dkr›d}ˆ d	¡sBˆ d
¡‚ˆ dd¡}| ¡ r`z|| }	W n> ty_   t	d| ƒ‚w zt
|ƒ}	|	dk rkt‚W n ty€   ˆ d| t|ƒd ¡d ‚w |	tkr‘ˆ d|	 t|ƒd ¡‚||	t|ƒd ƒ n±|dkrÃˆjtv r³||ƒ 7 }ˆjtv r³||ƒ 7 }|tt
|dd … dƒd@ ƒƒ n‰|tv �rd}
ˆjtv �r||ƒ 7 }|tv �r|d tv �rˆjtv �r||ƒ 7 }d}
t
|dd … dƒ}|dk�rˆ d| t|ƒ¡‚|t|ƒƒ |
�s|t
|dd … ƒt|ƒd ƒ n-z
tt| d ƒ}W n t�yB   |tv �r@ˆ d| t|ƒ¡‚Y nw ||ƒ n||ƒ qˆ�rXˆ d ˆ¡¡ t| tƒ�sedd„ ˆD ƒ‰ˆ ˆfS )Nc                    sX   | ˆj krˆ d|  |¡‚ˆrˆ d ˆ¡¡ ˆd d …= ˆ  tˆƒ| f¡ ˆ d ¡ d S )Nrº   r@   )r*   r-   r+   Újoinr)   )r^   r‘   ©r*   ÚliteralÚliteralsr   r=   r   r   ÚaddgroupÞ  s   

z parse_template.<locals>.addgroupTr   r   rB   r  r@   rà   z	missing <rá   râ   ræ   rã   rº   r¹   r›   r¤   Frh   r¥   r¦   c                 S   s"   g | ]}|d u r
d n|  d¡‘qS )Nzlatin-1)Úencode)Ú.0r   r   r   r   Ú
<listcomp>'  s   " z"parse_template.<locals>.<listcomp>)rx   r.   r+   Ú
groupindexrƒ   r-   rŽ   rø   r°   r   r«   r´   r)   r,   r}   r²   r¬   r³   r§   rµ   r  rO   rI   )r9   r=   ÚsgetÚlappendr"  r&  r„   r‹   r/   r^   Úisoctalr   r  r   Úparse_templateÕ  s¤   

ÿÿ

ÿÿÿ

ÿ



 



ÿÿ€
ÿÿ
Æ;r*  c                 C   sp   |j }|jd d… }| \}}|d d … }z|D ]\}}||ƒp |||< qW n ty2   td| ƒ‚w | |¡S )Nr   rº   )r»   r{   r   r-   r  )Útemplaterƒ   r  Úemptyr*   r!  r^   r»   r   r   r   Úexpand_template*  s   ÿÿ
r-  )F)r   N)=Ú__doc__Úsre_constantsrë   rñ   Ú	frozensetr³   r²   r©   rµ   rê   rõ   rö   rn   r÷   rï   rJ   rª   rð   ÚCATEGORYro   r®   r§   rô   ÚAT_BEGINNING_STRINGÚAT_BOUNDARYÚAT_NON_BOUNDARYÚCATEGORY_DIGITÚCATEGORY_NOT_DIGITÚCATEGORY_SPACEÚCATEGORY_NOT_SPACEÚCATEGORY_WORDÚCATEGORY_NOT_WORDÚAT_END_STRINGr¨   ÚSRE_FLAG_IGNORECASEr  ÚSRE_FLAG_MULTILINEÚSRE_FLAG_DOTALLrþ   r  ÚSRE_FLAG_TEMPLATEr  rû   r  r  r  Ú	Exceptionr   r   r<   rx   r¸   r¼   rÀ   rÎ   rÂ   rü   r  r  r*  r-  r   r   r   r   Ú<module>   st   








øöö$rH<M
:  x<
%U