grthtrhthjhtyjytjytkergtrhtrjytjerhrfhU iÛfGhã@s$dZddlZddlZddlTejeks.tdƒ‚eehZe e e hZ e ehZeehZeeehBZdZdd„eDƒZejfdd „Zd d „Zd d „Zd-dd„ZejdZde>dZdZ ee!fdd„Z"dd„Z#dd„Z$dd„Z%dd„Z&dd„Z'dd „Z(d!d"„Z)d#d$„Z*d%d&„Z+d'd(„Z,d)d*„Z-d.d+d,„Z.dS)/zInternal support module for sreéN)Ú*zSRE module mismatch))éii1)ési)éµi¼)iEi¹i¾)i�iÓ)i°iã)i²iÐ)iµiõ)i¸iÑ)iºið)iÀiÖ)iÁiñ)iÂiÃ)iÆiÕ)iai›)iûiûcs.i|]&}|D]‰ˆt‡fdd„|Dƒƒ“q qS)c3s|]}ˆ|kr|VqdS©N©)Ú.0Új©Úirú0/opt/alt/python38/lib64/python3.8/sre_compile.pyÚ >sz.)Útuple)rÚtrr r Ú >s ÿrcCs ||@r||M}||B|@Srr)ÚflagsÚ add_flagsÚ del_flagsÚ TYPE_FLAGSrrr Ú_combine_flagsAs rcCsä|j}t}t}t}t}t}d} d} d} |t@r\|t@s\|t@rPt j } t j } t } n t j } t j} |D�]|\} } | |k�rr|t@sŽ|| ƒ|| ƒnâ|t@r¬|t| ƒ|| ƒnÄ| | ƒsÆ|| ƒ|| ƒnª| | ƒ}| sè|t| ƒ||ƒnˆ|| k�r|t| ƒ||ƒnh|tƒ||ƒ}|dƒ| tk�r2|tƒ|f| |D]}|tƒ||ƒ�q@|tƒ||ƒ|||<q`| tk�rt| | | | ƒ\}}|t@�r¬|t@�r¬|tƒn(|�s¼|tƒn| �sÌ|tƒn|tƒ||ƒ}|dƒt|||ƒ||ƒ|||<q`| tk�r*|t@�r |tƒn|tƒq`| |k�r6|t@�rLt d| fƒ‚t!| dƒ�rÈ| t"k�rn|t#ƒn|t$ƒ||ƒ}|dƒ|| dƒ|| dƒt%|| d|ƒ|t&ƒ||ƒ|||<nl|t'ƒ||ƒ}|dƒ|| dƒ|| dƒt%|| d|ƒ||ƒ|||<| t"k�r,|t(ƒn|t)ƒq`| t*k�r¢| \}}}}|�rj|t+ƒ||ddƒt%||t,|||ƒƒ|�rÞ|t+ƒ||dddƒq`| |k�r¶|| ƒq`| |k�rD|| ƒ||ƒ}|dƒ| ddk�rð|dƒn*| d -¡\}}||k�rt dƒ‚||ƒt%|| d|ƒ|t&ƒ||ƒ|||<q`| t.k�rŒ|| ƒ||ƒ}|dƒt%|| |ƒ|t&ƒ||ƒ|||<q`| t/k�rì|| ƒ|t0@�r´t1 2| | ¡} |t@�rÌt3 2| | ¡} n|t@�rât4 2| | ¡} || ƒq`| t5k�r†|| ƒg}|j}| dD]N} ||ƒ}|dƒt%|| |ƒ|t6ƒ|||ƒƒ|dƒ||ƒ|||<�q|tƒ|D]}||ƒ|||<�qlq`| t7k�rÈ|| ƒ|t@�r¬t8| } n|t@�r¾t9| } || ƒq`| t:k�r |t@�sæ|| ƒn,|t@�rú|t;ƒn| �s |t<ƒn|t=ƒ|| dƒq`| t>k�rÐ|| ƒ|| ddƒ||ƒ}|dƒt%|| d|ƒ| d�rº|t6ƒ||ƒ}|dƒ||ƒ|d||<t%|| d|ƒ||ƒ|||<n||ƒ|d||<q`t d| fƒ‚q`dS)Nrz*internal: unsupported template operator %rééz(look-behind requires fixed-width patternz%internal: unsupported operand type %r)?ÚappendÚlenÚ_LITERAL_CODESÚ_REPEATING_CODESÚ_SUCCESS_CODESÚ _ASSERT_CODESÚSRE_FLAG_IGNORECASEÚSRE_FLAG_LOCALEÚSRE_FLAG_UNICODEÚ_sreÚunicode_iscasedÚunicode_tolowerÚ_ignorecase_fixesÚ ascii_iscasedÚ ascii_tolowerÚOP_LOCALE_IGNOREÚ OP_IGNOREÚOP_UNICODE_IGNOREÚ IN_UNI_IGNOREÚ NOT_LITERALÚNEGATEÚLITERALÚFAILUREÚINÚ_optimize_charsetÚ IN_LOC_IGNOREÚ IN_IGNOREÚ_compile_charsetÚANYÚSRE_FLAG_DOTALLÚANY_ALLÚSRE_FLAG_TEMPLATEÚerrorÚ_simpleÚ MAX_REPEATÚ REPEAT_ONEÚMIN_REPEAT_ONEÚ_compileÚSUCCESSÚREPEATÚ MAX_UNTILÚ MIN_UNTILÚ SUBPATTERNÚMARKrÚgetwidthÚCALLÚATÚSRE_FLAG_MULTILINEÚ AT_MULTILINEÚgetÚ AT_LOCALEÚ AT_UNICODEÚBRANCHÚJUMPÚCATEGORYÚ CH_LOCALEÚ CH_UNICODEÚGROUPREFÚGROUPREF_LOC_IGNOREÚGROUPREF_IGNOREÚGROUPREF_UNI_IGNOREÚGROUPREF_EXISTS)ÚcodeÚpatternrÚemitÚ_lenÚ LITERAL_CODESÚREPEATING_CODESÚ SUCCESS_CODESÚ ASSERT_CODESÚiscasedÚtolowerÚfixesÚopÚavÚloÚskipÚkÚcharsetÚhascasedÚgrouprrÚpÚhiÚtailÚ tailappendÚskipyesÚskipnorrr r=GsV                                                                 r=cCsâ|j}|D]Ê\}}||ƒ|tkr$q |tkr6||ƒq |tksF|tkr`||dƒ||dƒq |tkrt| |¡q |tkrˆ| |¡q |tkrÆ|t @r¦|t |ƒqÔ|t @r¼|t |ƒqÔ||ƒq t d|fƒ‚q |tƒdS)Nrrz%internal: unsupported set operator %r)rr,r-ÚRANGEÚRANGE_UNI_IGNOREÚCHARSETÚextendÚ BIGCHARSETrNrrOr rPr8r.)rfrrVrXrarbrrr r3ùs,      r3c Cs˜g}g}tdƒ}d}|D�]–\}} �z,|tkr€|rv|| ƒ} d|| <|rd| |krd|| D] } d|| <qV|s~|| ƒr~d}nd|| <nÎ|tk�r&t| d| ddƒ} |�r|rât|| ƒD]*} d|| <| |kr´|| D] } d|| <qÐq´nt|| ƒD] } d|| <qì|�s$tt|| ƒƒ}n| D]} d|| <�qn(|tk�r@| || f¡n| || f¡WnZtk �rªt |ƒdk�r€|dd7}Yq"|�r˜d}|tk�r˜t }| || f¡YnXqq"qg}d}|  d|¡}|dk�rÔ�q(t |ƒdk�rêd}�q(|  d|¡}|dk�r| |t |ƒf¡�q(| ||f¡�qº|dk �r¦|D]>\}}||dk�r\| t|f¡n| t||dff¡�q6||7}|�s–t |ƒt |ƒk�rž||fS||fSt |ƒdk�rÚt |ƒ}| t |f¡||7}||fSt|ƒ}i}tdƒ}d}tƒ}tdd dƒD]V} || | d…}||k�r4|||| d<n$||| d<||<|d7}||7}�qt |ƒ}|gt|ƒ|dd…<| t|f¡||7}||fS) NéFrTróiÿri)Ú bytearrayr-roÚrangeÚmapÚanyr,rÚ IndexErrorrrpÚfindÚ _mk_bitmaprqÚbytesÚ_bytes_to_codesrs)rfr^Úfixupr`ÚoutrkÚcharmaprgrarbrcreÚrr ÚrunsÚqriÚdataÚcompsÚmappingÚblockÚchunkrrr r0s°                   r0érs0111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111cs8| t¡ddd…‰‡‡‡fdd„ttˆƒdˆ ƒDƒS)Néÿÿÿÿcs"g|]}ˆˆ|ˆ|…dƒ‘qS)rr)rr ©Ú _CODEBITSÚ_intÚsrr Ú �sÿz_mk_bitmap..r)Ú translateÚ _BITS_TRANSrwr)Úbitsr�rŽrrŒr r|›sÿr|cCs@t|ƒ d¡}|jtjkst‚t|ƒ|jt|ƒks8t‚| ¡S)NÚI)Ú memoryviewÚcastÚitemsizer!ÚCODESIZEÚAssertionErrorrÚtolist)ÚbÚarrr r~ sr~cCsDt|ƒdkrdS|d\}}|tkr<|ddko:t|dƒS|tkS)NrFrr‹)rrBr9Ú _UNIT_CODES)rirarbrrr r9§s   r9cCsndgt|ƒ}tdt|ƒƒD]L}||d}||||kr\|dkrNd||<q||d}q,|d||<q|S)aj Generate an overlap table for the following prefix. An overlap table is a table of the same size as the prefix which informs about the potential self-overlap for each index in the prefix: - if overlap[i] == 0, prefix[i:] can't overlap prefix[0:...] - if overlap[i] == k with 0 < k <= i, prefix[i-k+1:i+1] overlaps with prefix[0:k] rr)rrw)ÚprefixÚtabler Úidxrrr Ú_generate_overlap_table°s  r¡cCs$|t@s dS|t@rtjStjSdSr)rr r!r"r%)rrrr Ú _get_iscasedÅs r¢cCsæg}|j}d}t|ƒ}|jD]´\}}|tkrF|r<||ƒr<qÜ||ƒq|tkrÌ|\}} } } t|| | ƒ} | t@rz| t@rzqÜt| | ƒ\} }}|dkr¸|dk r¤t |ƒ}n|dk r¸t |ƒ|}|  | ¡|sÐqÜqqÜq||dfS||dfS)NTF) rr¢r…r-rBrrrÚ_get_literal_prefixrrr)rWrržÚ prefixappendÚ prefix_skipr^rarbrhrrriÚflags1Úprefix1Ú prefix_skip1Úgot_allrrr r£Ís4        r£c Csd|js dS|jd\}}|tk r"qP|\}}}}t|||ƒ}|t@r|t@rdSqt|ƒ}|tkrz|rp||ƒrpdS||fgS|tkrÜg}|j} |dD]B} | s¢dS| d\}}|tkrÐ|rÂ||ƒsÐ| ||fƒq”dSq”|S|t k�r`|}|�r\|D]f\}}|tk�r||ƒ�rZdSqô|t krô|ddk�r4dSt t |t |d|ddƒƒƒrôdSqô|SdS)Nrriÿÿ)r…rBrrrr¢r-rLrr/roryrxrw) rWrrarbrhrrr^rfÚ charsetappendrirrr Ú_get_charset_prefixìsN           r«c Cs|| ¡\}}|tkrt}|dkr8| tdd||g¡dSg}d}g}|t@rT|t@srt||ƒ\}}}|srt||ƒ}|j} | tƒt |ƒ} | dƒd} |r²t } |dkr¾|r¾| t B} n |r¾| t B} | | ƒ|tkrØ| |ƒn| tƒ|dt…}| t |tƒƒ|�r@| t |ƒƒ|dk�rt |ƒ}| |ƒ| |¡| t|ƒ¡n(|�rht|ƒ\}} | �r\t‚t|||ƒt |ƒ| || <dS)Nré)rDÚMAXCODErrÚINFOrrr£r«rrÚSRE_INFO_PREFIXÚSRE_INFO_LITERALÚSRE_INFO_CHARSETÚminr¡r0r™r3) rVrWrrcrjržr¥rfr©rXrdÚmaskrgrrr Ú _compile_infosT            r´cCst|ttfƒSr)Ú isinstanceÚstrr})Úobjrrr ÚisstringSsr¸cCs8|jj|B}g}t|||ƒt||j|ƒ| t¡|Sr)Ústaterr´r=r…rr>)rirrVrrr Ú_codeVs    rºcCsdd dd„|Dƒ¡S)Nú[%s]ú, css$|]}dtjdd|fVqdS)z%#0*xrN)r!r˜©rÚxrrr r fsz_hex_code..)Újoin©rVrrr Ú _hex_codeesrÁcsNddl‰tƒ‰d‰tttˆƒdƒƒ‰‡‡‡‡‡‡fdd„‰ˆdtˆƒƒdS)Nrrc sÚddœ‡‡‡‡fdd„ }‡‡fdd„}ˆd7‰ˆ}||k�rÎ|‰ˆ|}|d7}t|}|tttttttfkrx||ƒq2|tt t t t t ttfkr¸ˆ|}|d7}||d|t|ƒfƒq2|tk�rˆ|}|d7}tt|ƒ}|dd…d ksòt‚|||dd…ƒq2|tk�rVˆ|}|d7}tt|ƒ}|dd …d k�sBt‚|||d d…ƒq2|ttttfk�ržˆ|}|||||d�ˆ|d||ƒ||7}q2|ttfk�rèˆ||d …\}} |d 7}||d || t|ƒt| ƒfƒq2|tk�r||tˆ||dt…ƒƒ|dt7}q2|t k�rʈ|}|d7}t!d "‡fdd„ˆ||dt#j$…Dƒ¡ƒ} |||| ƒ|dt#j$7}ˆd7‰t%|ƒD].} |tˆ||dt…ƒƒ|dt7}�q�ˆd8‰q2|t&t't(t)t*fk�rúˆ|}|d7}|||ƒq2|t+k�r(ˆ|}|||||d�|d7}q2|t,k�r¨ˆ|}|||||d�|�ržˆ|d||ƒ||7}|‰ˆ|}|�r’|d|||d�n|tƒ�qL|d7}q2|t-t.t/fk�rˆ||d…\}} } | t0k�rÜd} |||| | ||d�ˆ|d||ƒ||7}q2|t1k�rJˆ||d …\}}||||||d�|d 7}q2|t2t3fk�rœˆ||d …\}}||||||d�ˆ|d ||ƒ||7}q2|t4k�rĈ||d…\}}} } | t0k�rÌd} |||t5|ƒ| | ||d�|d‰|t6@�rŠˆ|d|d…\}}|d|ƒ|d‰ˆˆˆ|…}|ddd "dd„|Dƒ¡dd "t7t|ƒ¡ƒˆ|7‰|dˆˆˆ|…ƒˆ|7‰|t8@�rºˆd7‰|dƒˆˆ||ƒˆd8‰||7}q2t9|ƒ‚q2ˆd8‰dS)N)ÚtocsX|dk r"ˆ |¡|d|ff7}tdˆˆˆˆkr6dndfdˆdd�t|ŽdS)Nz(to %d)z%*d%s ú:Ú.z r©Úend)ÚaddÚprint)rÂÚargs)ÚlabelsÚlevelÚ offset_widthÚstartrr Úprint_ps  ÿz!dis..dis_..print_cs"tdˆdˆd�t|ŽdS)Nú rrÅ)rÈ)rÉ)rËrÌrr Úprint_2xsz"dis..dis_..print_2rz %#02x (%r)éZAT_é Z CATEGORY_rz%#02x %#02x (%r-%r)rtóc3s|]}| tjˆj¡VqdSr)Úto_bytesr!r˜Ú byteorderr½)Úsysrr r ©sÿz$dis..dis_..ÚbranchÚ MAXREPEATr¬éz prefix_skipz prefixr»r¼css|]}d|VqdS)z%#02xNrr½rrr r äsz(%r)Úz overlapÚin):ÚOPCODESr>r.r4r6r@rAr,r-r+ÚLITERAL_IGNOREÚNOT_LITERAL_IGNOREÚLITERAL_UNI_IGNOREÚNOT_LITERAL_UNI_IGNOREÚLITERAL_LOC_IGNOREÚNOT_LITERAL_LOC_IGNOREÚchrrFr¶ÚATCODESr™rNÚCHCODESr/r2r*r1rorprqrÁr�rsÚlistr¿r!r˜rwrCrQrSrTrRrMrLr?r;r<rØrUÚASSERTÚ ASSERT_NOTr®Úbinr¯rxr±Ú ValueError)rÍrÆrÎrÐr raÚargrdrcrjr‡r r²ÚmaxrÚ prefix_lenr¥rž©rVÚdis_rÊrËrÌrÖ)rÍr rïosþ  ÿ ý        ÿ     ÿ               þ   zdis..dis_)rÖÚsetrr¶rÀrrîr Údishsrñc Cs–t|ƒr|}t ||¡}nd}t||ƒ}|t@r>tƒt|ƒ|jj}dg|jj }|  ¡D]\}}|||<q\t   |||jj B||jj d|t|ƒ¡S)Nr)r¸Ú sre_parseÚparserºÚSRE_FLAG_DEBUGrÈrñr¹Ú groupdictÚgroupsÚitemsr!Úcompilerr)rirrWrVÚ groupindexÚ indexgrouprer rrr rø÷s(    ýrø)NNN)r)/Ú__doc__r!ròÚ sre_constantsÚMAGICr™r-r+rr?Ú MIN_REPEATr:rr>r.rrçrèrr4r/r�Ú _equivalencesr$rrr=r3r0r˜r�r­r’Úintr|r~r9r¡r¢r£r«r´r¸rºrÁrñrørrrr Ú sJ  $ÿÿ 3    ,;