grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026o ®û|jKŸã @sÔdZddlTdZdZedƒZedƒZedƒZedƒZed ƒZ ee e hƒZ ee eeeeehƒZeed ƒfeed ƒfeed ƒfeed ƒfeedƒfeedƒfeedƒfeedƒfdœZeefeefeefeeefgfeeefgfeeefgfeeefgfeeefgfeeefgfee fdœ Z!e"e#e$e%e&e'e(e)dœZ*e'e#Be)BZ+e,e(BZ-Gdd„de.ƒZ/Gdd„dƒZ0Gdd„dƒZ1Gdd„dƒZ2dd„Z3dd „Z4d!d"„Z5d#d$„Z6d3d&d'„Z7d(d)„Z8d*d+„Z9d4d-d.„Z:d/d0„Z;d1d2„Z|d7}z ||j|7}Wnty=td|jt|jƒdƒd‚w|d|_||_dS)Nr r?zbad escape (end of pattern))r[ryÚ IndexErrorrzr*rxr&)r"r[ÚcharrrrÚ__nextês( þ ÿÿÿ  zTokenizer.__nextcCs||jkr | ¡dSdS)NTF©rzr{)r"r}rrrÚmatchús zTokenizer.matchcCs|j}| ¡|Sr%r)r"Úthisrrrr+ÿsz Tokenizer.getcCs:d}t|ƒD]}|j}||vr|S||7}| ¡q|S©Nr=)Úrangerzr{)r"ÚnÚcharsetÚresultÚ_ÚcrrrÚgetwhiles þ zTokenizer.getwhilecCsnd} |j}| ¡|dur!|s| d|¡‚| d|t|ƒ¡‚||kr2|s/| d|d¡‚ |S||7}q)Nr=Tzmissing zmissing %s, unterminated namer?)rzr{r*r&)r"Ú terminatorr,r†rˆrrrÚgetuntil s" ÿÿôzTokenizer.getuntilcCó|jt|jpdƒSr‚©r[r&rzr!rrrÚpossz Tokenizer.poscCrŒr‚r�r!rrrÚtellszTokenizer.tellcCs||_| ¡dSr%)r[r{rZrrrÚseek!s zTokenizer.seekrcCst||j| ¡|ƒSr%)r*rxr�)r"ÚmsgÚoffsetrrrr*%szTokenizer.errorNrt)rrrr#r{r€r+r‰r‹r8rŽr�r�r*rrrrruàs   ruc Cs–t |¡}|r |St |¡}|r|dtur|S�z|dd…}|dkrH|| dt¡7}t|ƒdkr<| d|t|ƒ¡‚tt |dd…dƒfWS|dkrs|j rs|| dt¡7}t|ƒd krg| d|t|ƒ¡‚tt |dd…dƒfWS|d kr¤|j r¤|| d t¡7}t|ƒd kr’| d|t|ƒ¡‚t |dd…dƒ}t |ƒt|fWS|d krå|j råddl }|  d¡s¹| d¡‚| dd¡}z t| |¡ƒ}Wnttfyß| d|t|ƒtdƒ¡‚wt|fWS|tv�r|| dt¡7}t |dd…d ƒ}|dk�r | d|t|ƒ¡‚t|fWS|tv�rt‚t|ƒdk�r5|tv�r,| d|t|ƒ¡‚tt|dƒfWSWn t�y@Ynw| d|t|ƒ¡‚)Nrr?reréú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+Ú CATEGORIESrGr‰Ú HEXDIGITSr&r*ÚLITERALÚintrwÚchrÚ unicodedatar€r‹ÚordÚlookupÚKeyErrorÚ TypeErrorÚ OCTDIGITSÚDIGITSÚ ValueErrorÚ ASCIILETTERS)r6Úescaper`rˆrªÚcharnamerrrÚ _class_escape(sv           ÿÿ   ÿÿ   ýÿrµc CsNt |¡}|r |St |¡}|r|S�z|dd…}|dkrB|| dt¡7}t|ƒdkr6| d|t|ƒ¡‚tt|dd…dƒfWS|dkrm|j rm|| dt¡7}t|ƒdkra| d|t|ƒ¡‚tt|dd…dƒfWS|d krž|j rž|| d t¡7}t|ƒd krŒ| d|t|ƒ¡‚t|dd…dƒ}t |ƒt|fWS|d krß|j rßd dl }|  d¡s³| d¡‚|  dd¡}z t| |¡ƒ}WnttfyÙ| d|t|ƒtdƒ¡‚wt|fWS|dkr÷|| dt¡7}tt|dd…d ƒfWS|tv�rr|jtv�r?|| ¡7}|dtv�r?|dtv�r?|jtv�r?|| ¡7}t|dd…d ƒ}|dk�r:| d|t|ƒ¡‚t|fWSt|dd…ƒ}||jk�rf| |¡�s[| dt|ƒ¡‚| ||¡t|fWS| d|t|ƒd¡‚t|ƒdk�r‘|tv�rˆ| d|t|ƒ¡‚tt|dƒfWSWn t�yœYnw| d|t|ƒ¡‚)Nr?rerr“r”r•rr–r—r˜r™ršrr›rœr�ržrŸr Ú0r¡r¢r5úinvalid group reference %dr£)r¥r+r¤r‰r¦r&r*r§r¨rwr©rªr€r‹r«r¬r­r®r¯r°rzr'r4r7rmr²r±)r6r³r:r`rˆrªr´ÚgrouprrrÚ_escapeds’           ÿÿ       ÿþ   ÿ   ýÿr¹cCstt |¡ƒSr%)rDÚdictÚfromkeys)ÚitemsrrrÚ_uniq±rbr½cCsNg}|j}|j}| ¡} |t||||d| o| ƒƒ|dƒs"nq t|ƒdkr-|dSt|ƒ} d} |D]} | s<n | durE| d} q6| d| krMnq6|D]} | d=qP| | ¡q1 g} |D]/} t| ƒdkrkn1| d\} } | tur}|  | | f¡qa| tur�| ddtur�|   | ¡qan | tt | ƒf¡|S| t d|ff¡|S)NTr?ú|r) r(r€r�Ú_parser&r9r§rGÚNEGATEÚextendr½rH)r6r:ÚverboseÚnestedr¼Ú itemsappendÚ sourcematchÚstartÚ subpatternÚprefixÚitemÚsetrPrQrrrÚ _parse_sub´sV ÿü   ÿ    rËFc/ Cs¦ t|ƒ}|j}|j}|j}t} t} |j} | dur�n| dvr!�ný|ƒ|r>| tvr+q| dkr> |ƒ} | dus;| dkr¡�r$t2||||dƒ}(|jd>k�r#| d?¡‚nd}(| d2¡�s6| d;|  ¡| ¡‚|t3|&|'|(ffƒq|t4v�sJ|dk�r�t5|||ƒ})|)du�r‰|�r[|�r}ddl }|j d@|j6ddA…t|j6ƒdAk�rrdBnd!| ft7|d d �|j8t9@�rˆ|�sˆt:‚q|)\}}d}n | dC|t|ƒd¡‚|du�rÂz| ;|!¡}Wnt�yÁ}*z | |*jfƒn| dDk�r|tt?fƒntdE|fƒ‚qt@t|ƒƒddd&…D]'},||,\}-}.|-t u�rO|.\}}}}|du�rO|�sO|�sO|||,|,d…<�q)|S)FNTz|)ú#rrr ú[r?z"Possible nested set at position %dr–)Ú stacklevelú^zunterminated character setú]z-&~|zPossible set %s at position %dú-Ú differenceú&Ú intersectionú~zsymmetric differenceÚunionz&Possible set difference at position %drezbad character range %s-%sú?)rr?rú+r›r�r=ú,z"the repetition number is too largez"min repeat greater than max repeatzunsupported quantifier %rrdznothing to repeatzmultiple repeatÚ.ú(zunexpected end of patternÚPú<ú>ú group nameúbad character in group name %rú=ú)úunknown group name %rr5zunknown extension ?Pú:zmissing ), unterminated commentz=!ty_t d |ƒ‚wz t |ƒ} | dkrkt ‚Wnt y€ˆ d|t |ƒd¡d‚w| t kr‘ˆ d| t |ƒd¡‚|| t |ƒdƒn±|dkrÈjtvr³||ƒ7}ˆjtvr³||ƒ7}|tt |dd…dƒd@ƒƒn‰|tv�rd} ˆjtv�r ||ƒ7}|tv�r |dtv�r ˆjtv�r ||ƒ7}d} t |dd…dƒ}|dk�rˆ d|t |ƒ¡‚|t|ƒƒ| �s|t |dd…ƒt |ƒdƒn-z tt|dƒ}Wnt�yB|tv�r@ˆ d|t |ƒ¡‚Ynw||ƒn||ƒqˆ�rXˆ d ˆ¡¡t|tƒ�sedd„ˆDƒ‰ˆˆfS)NcsX|ˆjkr ˆ d||¡‚ˆrˆ d ˆ¡¡ˆdd…=ˆ tˆƒ|f¡ˆ d¡dS)Nr·r=)r'r*r(Újoinr&)r[rŽ©r'ÚliteralÚliteralsrr:rrÚaddgroupÞs  z parse_template..addgroupTrr r?rr=rÝz missing 's"z"parse_template..)rur+r(Ú groupindexr€r*r‹rõr­r|r¨r±r&r)rzr¯r©r°r¤r²rrLrF) r6r:ÚsgetÚlappendrr#r�rˆr,r[ÚisoctalrrrÚparse_templateÕs¤      ÿÿ   ÿÿÿ  ÿ           ÿÿ € ÿÿ Æ; r'cCsp|j}|jdd…}|\}}|dd…}z|D] \}}||ƒp |||<qWn ty2td|ƒ‚w| |¡S)Nrr·)r¸rxr|r*r)Útemplater€rÚemptyr'rr[r¸rrrÚexpand_template*s  ÿ  ÿ r*)F)rN)=Ú__doc__Ú sre_constantsrèrîÚ frozensetr°r¯r¦r²rçròrórkrôrìrGr§ríÚCATEGORYrlr«r¤rñZAT_BEGINNING_STRINGZ AT_BOUNDARYZAT_NON_BOUNDARYZCATEGORY_DIGITZCATEGORY_NOT_DIGITZCATEGORY_SPACEZCATEGORY_NOT_SPACEZ CATEGORY_WORDZCATEGORY_NOT_WORDZ AT_END_STRINGr¥ÚSRE_FLAG_IGNORECASErÚSRE_FLAG_MULTILINEÚSRE_FLAG_DOTALLrûrÚSRE_FLAG_TEMPLATErrørrrÚ Exceptionrrr9rurµr¹r½rËr¿rùrrr'r*rrrrÚst          ø       öö $rH<M :x< % U