o
    K+gK                     @   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*+?{
0123456789Z01234567Z0123456789abcdefABCDEFZ4abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZz 	

	\)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   ;/var/www/html/squashfs-root/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gidZogidr   r   r   	opengroupU   s   

zState.opengroupc                 C   s   |  | j|< d S r%   )getwidthr   )r"   r-   pr   r   r   
closegroupa      zState.closegroupc                 C   s   || j k o| j| d uS r%   )r'   r   )r"   r-   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   r3   r*   )r"   r-   sourcer   r   r   checklookbehindgroupf   s   




zState.checklookbehindgroupr%   )
r   r   r   r#   propertyr'   r.   r1   r3   r6   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"   r9   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
||rd}|D ]&}t
|tr|st  ||d  d}q|std	dd t|dd d}q|st  q	td| q	d S )
NTz   )end   ZORZELSEF )tuplelistr:   printstrINBRANCH	enumeratedumpGROUPREF_EXISTS
isinstancer8   )r"   levelZnlZseqtypesopavr   r   	condgroupitem_yesitem_nor   r   r   rG   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__   rR   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%   )rI   slicer8   r9   r:   rU   r   r   r   __getitem__   s   

zSubPattern.__getitem__c                 C   s   || j |< d S r%   rT   r"   rV   coder   r   r   __setitem__      zSubPattern.__setitem__c                 C   s   | j || d S r%   )r:   insertrZ   r   r   r   r^      r2   zSubPattern.insertc                 C   s   | j | d S r%   )r:   r(   )r"   r[   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   r>      )r;   r:   rE   	MAXREPEATr/   minmaxCALL
SUBPATTERN_REPEATCODES
_UNITCODESGROUPREFr9   r   rH   SUCCESS)	r"   lohirK   rL   r   jlhr   r   r   r/      s\   








zSubPattern.getwidthr%   r   )r   r   r   r#   rG   rQ   rS   rW   rY   r\   r^   r(   r/   r   r   r   r   r8   n   s    

(r8   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   )rI   rC   istextstringdecoded_stringrV   next_Tokenizer__next)r"   rs   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   r>   zbad escape (end of pattern))rV   rt   
IndexErrorru   r*   rs   r&   )r"   rV   charr   r   r   Z__next   s(   

zTokenizer.__nextc                 C   s   || j kr|   dS dS )NTFru   rv   )r"   rx   r   r   r   match   s   
zTokenizer.matchc                 C   s   | j }|   |S r%   ry   )r"   thisr   r   r   r+      s   zTokenizer.getc                 C   s:   d}t |D ]}| j}||vr |S ||7 }|   q|S Nr<   )rangeru   rv   )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 namer>   )ru   rv   r*   r&   )r"   Z
terminatorr,   r   r   r   r   r   getuntil  s"   
zTokenizer.getuntilc                 C      | j t| jpd S r|   rV   r&   ru   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%   )rV   rv   rU   r   r   r   seek!  s   zTokenizer.seekr   c                 C   s   t || j|  | S r%   )r*   rs   r   )r"   msgoffsetr   r   r   r*   %  s   zTokenizer.errorNro   )r   r   r   r#   rv   rz   r+   r   r   r7   r   r   r   r*   r   r   r   r   rp      s    		
rp   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
rd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   r>   r`   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+   
CATEGORIESrD   r   	HEXDIGITSr&   r*   LITERALintrr   chrunicodedatarz   r   ordlookupKeyError	TypeError	OCTDIGITSDIGITS
ValueErrorASCIILETTERS)r5   escaper[   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	rd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|)Nr>   r`   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   0r   r   r4   invalid group reference %dr   )r   r+   r   r   r   r&   r*   r   r   rr   r   r   rz   r   r   r   r   r   r   r   ru   r'   r3   r6   rh   r   r   )r5   r   r9   r[   r   r   r   groupr   r   r   _escaped  s   











r   c                 C   s   t t| S r%   )rA   dictfromkeys)itemsr   r   r   _uniq  r]   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 )NTr>   |r   )r(   rz   r   _parser&   r8   r   rD   NEGATEextendr   rE   )r5   r9   verbosenestedr   Zitemsappendsourcematchstart
subpatternprefixitemsetrK   rL   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rdd l}|jd	|   t|d
 d |d}	 | }|d u r| d|  | |dkr|rn|d dkrt| |}n9|r|dv r| j|krdd l}|jd|dkrdn|dkrdn|dkrd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 rd||f }| |t|d t| |t||ff n|d tu r|d d }|| qt|}|	|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rd\}}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#|rt|}|tkrt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/}!|!% sd0|! }| |t|!d |j&|!}"|"d u rd3|! }| |t|!d |'|"s| d4t|!d |(|"|  |t)|"f q| }|d u r| d+| d5| t|d |d6krd }n|dkr	 | jd u r| d7|  |  | d2krnqq|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 rd3|% }| |t|%d nXzt|%}&|&dk rt/W n t/y   d0|% }| |t|%d d w |&s| d<t|%d |&t0krd=|& }| |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rt5| ||})|)d u r|r[|r}dd l}|jd@| j6d dA t| j6dAkrrdBnd!| f t7|d
 d |j8t9@ r|st:q|)\}}d }n| dC| t|d |d urz|;|!}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   [r>   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 %dr`   zbad character range %s-%s?)r   r>   r   +r   r   r<   ,z"the repetition number is too largez"min repeat greater than max repeatzunsupported quantifier %rr_   znothing to repeatzmultiple repeat.(zunexpected end of patternP<>
group namebad character in group name %r=)unknown group name %rr4   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)Ar8   r(   r+   rz   r&   r   ru   
WHITESPACEr   SPECIAL_CHARSr   r   warningswarnFutureWarningr*   r   rD   RANGEr   NOT_LITERALr^   r   REPEAT_CHARSra   r   r   r   OverflowErrorAssertionErrorATrf   re   
MIN_REPEAT
MAX_REPEATANYr   isidentifierr   r3   r6   rh   r   r'   r   ASSERT
ASSERT_NOTr   r)   r    r   rH   FLAGS_parse_flagsrs   DeprecationWarningr   SRE_FLAG_VERBOSEr   r.   r   r1   ZAT_BEGINNINGZAT_ENDr}   )/r5   r9   r   r   firstr   Zsubpatternappend	sourcegetr   _lenZ_ordr{   r[   herer   Z	setappendr   ZnegateZcode1ZthatZcode2r   rj   rk   rb   rc   rx   r   r   	add_flags	del_flagsr0   r   r,   r-   dirr   ZcondnamerM   rN   rO   r   errZsub_verboser   rK   rL   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| rdnd}| |t|	 t| }|t@ rd}| |||O }| }|d u r| d|dkrn|tvr| rdnd}| |t|q|dksJ |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 flagr>   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   rr   r*   
TYPE_FLAGSisalphar&   r   GLOBAL_FLAGS)r5   r9   rx   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)rI   rC   SRE_FLAG_LOCALEr   SRE_FLAG_ASCIISRE_FLAG_UNICODE)Z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   )rp   r   r   rC   r   r   r   r   r  r9   ru   r*   r    r'   SRE_FLAG_DEBUGrG   )rC   r   r9   r5   r0   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rd}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&   )rV   r   r'   Zliteralliteralsr   r9   r   r   addgroup  s   

z parse_template.<locals>.addgroupTr   r   r>   r  r<   r   z	missing <r   r   r   r   r   r   r   r   Fr`   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>)rp   r+   r(   
groupindexrz   r*   r   r   r   rw   r   r   r&   r)   ru   r   r   r   r   r   r  rI   rC   )r5   r9   ZsgetZlappendr
  r  r{   r   r,   rV   Z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   rs   rw   r*   r  )templaterz   r  emptyr'   r	  rV   r   r   r   r   expand_template*  s   
r  )F)r   N)=__doc__sre_constantsr   r   	frozensetr   r   r   r   r   r   r   rf   r   r   rD   r   r   CATEGORYrg   r   r   r   ZAT_BEGINNING_STRINGZAT_BOUNDARYZAT_NON_BOUNDARYZCATEGORY_DIGITZCATEGORY_NOT_DIGITZCATEGORY_SPACEZCATEGORY_NOT_SPACEZCATEGORY_WORDZCATEGORY_NOT_WORDZAT_END_STRINGr   SRE_FLAG_IGNORECASEr   SRE_FLAG_MULTILINESRE_FLAG_DOTALLr   r  SRE_FLAG_TEMPLATEr  r   r   r  r   	Exceptionr   r   r8   rp   r   r   r   r   r   r   r  r  r  r  r   r   r   r   <module>   st   








$rH<M
:  x<
%U