ó
    Ð]jÙ¿  ã                   óŠ  • S SK r S SKrS SKrS SKrS SKJr  S SKJrJrJ	r	J
r
  S SKJr  SrSrSrSrS	rS
rS rS rS rS rS rS rS rS rS rS rS rS rS r " S S5      r  " S S\5      r! " S S\
5      r"\!RG                  SS9 " S  S!\"5      5       r$ " S" S#\5      r% " S$ S%\
5      r&\!RG                  SS9 " S& S'\&5      5       r'\!RG                  S(S)9 " S* S+\&5      5       r(\!RG                  S,S)9 " S- S.\&5      5       r)\!RG                  S/S)9 " S0 S1\&5      5       r*\!RG                  S2S)9 " S3 S4\&5      5       r+\!RG                  S5S9 " S6 S7\&5      5       r,\!RG                  S8S9 " S9 S:\&5      5       r-\!RG                  S;S)9 " S< S=\&5      5       r.\!RG                  S>S)9 " S? S@\&5      5       r/\!RG                  SAS)9\!RG                  SBS)9 " SC SD\&5      5       5       r0\!RG                  SES9 " SF SG\&5      5       r1\!RG                  SHS9 " SI SJ\&5      5       r2\!RG                  SKS9 " SL SM\&5      5       r3\!RG                  SKS9 " SN SO\&5      5       r4\!RG                  SPS9 " SQ SR\&5      5       r5\!RG                  \SS9 " ST SU\&5      5       r6\!RG                  SVS9 " SW SX\&5      5       r7\!RG                  SYS9 " SZ S[\&5      5       r8\!RG                  S\S9 " S] S^\&5      5       r9\!RG                  S_S9 " S` Sa\&5      5       r:\!RG                  SbS9\!RG                  ScS9 " Sd Se\&5      5       5       r;\!RG                  SfS9 " Sg Sh\&5      5       r<\!RG                  SiS9 " Sj Sk\&5      5       r= " Sl Sm\&5      r>\!RG                  SnS9 " So Sp\>5      5       r?\!RG                  SqS9 " Sr Ss\>5      5       r@\!RG                  StS9 " Su Sv\>5      5       rA\!RG                  SwS9 " Sx Sy\>5      5       rB\!RG                  SzS9 " S{ S|\>5      5       rC\!RG                  S}S9 " S~ S\>5      5       rD\!RG                  S€S9 " S� S‚\>5      5       rEg)ƒé    N)Úcontextmanager)Ú
NormalizerÚNormalizerConfigÚIssueÚRule)Ú_get_token_collection)Úif_stmtÚ
while_stmtÚfor_stmtÚtry_stmtÚ	with_stmt)Útestlist_star_exprÚtestlist_compÚexprlisté   éd   )Únested_scopesÚ
generatorsÚdivisionÚabsolute_importÚwith_statementÚprint_functionÚunicode_literalsÚgenerator_stop)Úcomp_forÚsync_comp_forc                 ó†  • U R                   nUS:X  a  gUS:X  Ga   [        U 5      nU R                  S S u  pEUb  U$ UR                   S:X  a6  US:  a  gUR                  S   S	:X  d  UR                  S
   S:X  a  US:  a  gggUS:X  a=  US:X  d6  [        U R                  5      S:X  a  U R                  S   R                   S:X  a  gUS:X  a  [	        [        U 5      US9$ US:X  a  gUS:X  a  US:X  a  US:  a  ggUS:X  a  [        U R                  5      S:”  a  gU$ US:X  a-  SU R                  ;   a  gUS:  a  g[        U R                  5      $ US:X  a  U R                  S:X  a  US:  a  gg US!:X  a  g!US";   a  gUS#:X  a  gUS$:X  a  g%US&;   a~  U R                  S
   S':X  a  g(U R                  S)   R                   S*:X  aK  U R                  S)   nUR                  S
   S:X  a  g+UR                  S
   S:X  a  g,UR                  S
   S-:X  a  g.U$ S/U;   a  S0U;  d  S1U;   d  US2;   a  US:  a  gg3US0:X  a  g4US5:X  a  gUS6:X  a  g7U$ )8NÚlambdefÚlambdaÚatomé   Údictorsetmaker©é   é   Úliteralé   Ú:r   ú**©r$   é
   údict displayúdict literalúset displayÚ(Ú)r$   r   Útuple)ÚversionÚ[ÚlistÚ{Ú}ÚkeywordÚyieldúyield expressionÚoperatorú...ÚEllipsisÚellipsisÚ
comparison©ÚstringÚnumberÚstringsÚ
yield_exprÚtestúconditional expression©Ú	atom_exprÚpowerÚawaitúawait expressionéÿÿÿÿÚtrailerúfunction callÚ	subscriptÚ.Ú	attributeÚexprÚ	star_exprÚ_test©ÚtermÚfactorÚ
expressionÚstarredr   Úfstringúf-string expression)ÚtypeÚ_get_comprehension_typeÚchildrenÚlenÚ_get_rhs_nameÚ_remove_parensÚvalueÚstr)Únoder2   Útype_ÚcomprehensionÚfirstÚsecondrL   s          ÚP/home/mande/repo/quber/.venv/lib/python3.13/site-packages/parso/python/errors.pyr_   r_      sˆ  € Ø�I‰I€EØ�	ÓØØ	�&ŒÜ/°Ó5ˆØŸ™ b qÐ)‰ˆØÑ$Ø Ð Ø�[‰[Ð,Ó,Ø˜ÓØ à—?‘? 1Ñ%¨Ó,°·±ÀÑ0BÀdÓ0JØ Ó(Ø-à-à(à�S‹LØ˜3“Ü˜Ÿ™Ó'¨1Ó,°·±¸qÑ1A×1FÑ1FÈ/Ó1YàØ�c‹\Ü ¤°Ó!5¸wÑGÐGØ�c‹\ØØ�c‹\˜f¨›mØ˜Ó Ø%à%Ø�c‹\œc $§-¡-Ó0°1Ó4Ø ð^ €Lð] 
�)Ó	Ø�d—j‘jÓ Ø%Ø�VÓØä�t—z‘z“?Ð"Ø	�*Ó	 §¡¨uÓ!4Ø�WÓØàØ	�,Ó	ØØ	Ð1Ó	1ØØ	�,Ó	Ø!Ø	�&‹Ø'Ø	Ð(Ó	(Ø�=‰=˜Ñ˜wÓ&Ø%Ø�]‰]˜2Ñ×#Ñ# yÓ0Ø—m‘m BÑ'ˆGØ×Ñ Ñ" cÓ)Ø&Ø×!Ñ! !Ñ$¨Ó+Ø"Ø×!Ñ! !Ñ$¨Ó+Ø"ð  €Lð 
�5‹˜[°Ó5Ø�eÓØÐ&Ó&à�WÓØàØ	�+Ó	ØØ	Ð&Ó	&ØØ	�)Ó	Ø$Ø€Ló    c              #   ó¼   #   • U R                    HH  nUR                  S:X  a1  UR                    H  nUR                  S:X  d  US:X  a  M  Uv •  M!     MD  Uv •  MJ     g7f)z:
Iterates over all statements and splits up  simple_stmt.
Úsimple_stmtÚnewlineÚ;N©r]   r[   )ÚscopeÚchildÚchild2s      rh   Ú_iter_stmtsrr   m   sP   é € ð —”ˆØ�:‰:˜Ó&ØŸ.œ.�Ø—;‘; )Ó+¨v¸«}ÙØ”ó )ð
 ŒKò  ùs   ‚AAc                 ó$  • U R                   S S u  pUR                  S:X  a)  UR                   S   R                  [        ;   a  US:X  a  ggUR                  S:X  a6  UR                   S   R                  [        ;   a  UR                   S   S	:X  a  g
gg )Nr!   r   r'   r3   zlist comprehensionzgenerator expressionr"   rK   r(   zdict comprehensionzset comprehension©r]   r[   Ú_COMP_FOR_TYPES)r    rf   rg   s      rh   r\   r\   {   s€   € Ø—M‘M " 1Ð%�M€EØ‡{�{�oÓ%¨&¯/©/¸!Ñ*<×*AÑ*AÄ_Ó*TØ�C‹<Ø'à)Ø	�‰Ð(Ó	(¨V¯_©_¸RÑ-@×-EÑ-EÌÓ-XØ�?‰?˜1Ñ Ó$Ø'à&Øri   c                 ól   • U R                  5       nU Vs/ s H  o"R                  PM     snS/:H  $ s  snf )NÚ
__future__)Úget_from_namesra   )Úimport_fromÚ
from_namesÚns      rh   Ú_is_future_importr|   Š   s3   € ð
 ×+Ñ+Ó-€JÙ'Ó(šZ˜�GŒG™ZÑ(¨\¨NÑ:Ð:ùÒ(s   •1c                 ó¢   •  U R                   n[        U5      S:X  a!  US   S:X  a  [        U R                   S   5      $ U $ ! [         a     U $ f = f)zS
Returns the inner part of an expression like `(foo)`. Also removes nested
parens.
r$   r   r/   r'   )r]   r^   r`   ÚAttributeError)r    r]   s     rh   r`   r`   “   s]   € ð
4Ø—=‘=ˆô ˆx‹=˜AÓ (¨1¡+°Ó"4Ü! $§-¡-°Ñ"2Ó3Ð3Ø€Køô ó Øð €Kðús   ‚A  Á 
AÁAc                 óž   • U R                   b@  U R                   n U R                  S:w  d  U R                  S   S:w  a  U $ U R                   b  M@  g)zU
Returns an ancestor node of an expression, skipping all levels of parens
bottom-up.
Nr    r   r/   ©Úparentr[   r]   ©rc   s    rh   Ú_skip_parens_bottom_uprƒ   ¢   sI   € ð
 �+‰+Ñ
!Ø�{‰{ˆØ�9‰9˜Ó $§-¡-°Ñ"2°cÓ"9ØˆKð �+‰+Ó
!ð ri   c                 ó(   • S U R                    5       $ )Nc              3   óh   #   • U  H(  oR                   S :X  d  UR                   S:X  d  M$  Uv •  M*     g7f)Úparamr:   N©r[   )Ú.0r{   s     rh   Ú	<genexpr>Ú_iter_params.<locals>.<genexpr>¯   s(   é € ÐYÒ+�!¯v©v¸Ó/@ÀAÇFÁFÈjÑDX�A‰AÒ+ùs   ‚#2©	2)r]   )Úparent_nodes    rh   Ú_iter_paramsrŒ   ®   s   € ÙY�{×+Ò+ÓYÐYri   c                 óÐ   • Sn[        U R                  5       5       HG  nUR                  S:X  a	  U(       d  M  SnX :X  a    gUR                  S:X  a  [        U5      (       a  MG    g   g)z8
Checks if the import is the first statement of a file.
Fr@   Try   N)rr   Úget_root_noder[   r|   )ry   Úfound_docstringÚstmts      rh   Ú_is_future_import_firstr‘   ²   s]   € ð €OÜ˜K×5Ñ5Ó7Ö8ˆØ�9‰9˜Ó ®ÙØˆàÓÙØ�9‰9˜Ó%Ô*;¸D×*AÑ*AÙÙò 9ri   c              #   ó¾   ^#   • U4S jmU R                   [        ;   a*  U R                  S S S2    H  nT" U5       S h  v•N   M     g T" U 5       S h  v•N   g  N N7f)Nc              3   ó  >#   • U R                   S:X  ao  U R                  S   S:X  aD  U R                  S   nUR                   S:X  a  [        U5       S h  v•N   g T" U5       S h  v•N   g U R                  S   S:X  a  Wv •  g U v •  g  N3 N$7f)Nr    r   r/   r'   r   r3   )r[   r]   Ú!_iter_definition_exprs_from_lists)rp   r   Ú
check_exprs     €rh   r•   Ú5_iter_definition_exprs_from_lists.<locals>.check_exprÄ   s�   øé € Ø�:‰:˜ÓØ�~‰~˜aÑ  CÓ'Ø %§¡¨qÑ 1�Ø ×%Ñ%¨Ó8Ü@ÀÓO×OÐOØñ  *¨-Ó8×8Ð8ØØ—‘ Ñ" cÓ)Ø#Ò#ØØ‹ñ Pñ 9ùs$   ƒABÁBÁBÁ%B
Á&#BÂ
Br!   )r[   Ú_STAR_EXPR_PARENTSr]   )r   rp   r•   s     @rh   r”   r”   Ã   sY   øé € õð  ‡}�}Ô*Ó*Ø×&Ñ&¡s¨ sÔ+ˆEÙ! %Ó(×(Ò(ò ,ñ ˜hÓ'×'Ñ'ñ )á'ùs!   ƒ;A¾A¿AÁAÁAÁAc                 óž   • / nU R                   S SS2    H4  nUR                  S;   a  U[        U5      -  nM#  UR                  U5        M6     U$ )Néþÿÿÿr!   )r   Útestlist)r]   r[   r”   Úappend)Ú	expr_stmtÚexprsÚlist_s      rh   Ú_get_expr_stmt_definition_exprsrŸ   Û   sR   € Ø€EØ×#Ñ# E R¨ EÔ*ˆØ�:‰:Ð;Ó;ØÔ6°uÓ=Ñ=ŠEà�L‰L˜Öñ	 +ð
 €Lri   c                 óH   • U R                   S   n[        [        U5      5      $ ©Nr'   )r]   r4   r”   )r   r   s     rh   Ú_get_for_stmt_definition_exprsr¢   å   s#   € Ø× Ñ  Ñ#€HÜÔ1°(Ó;Ó<Ð<ri   c                 óB   • U R                   S   R                  [        ;   $ r¡   rt   )Úarguments    rh   Ú_is_argument_comprehensionr¥   ê   s   € Ø×Ñ˜QÑ×$Ñ$¬Ñ7Ð7ri   c                 ó²   • U S:  d  Uc  gUR                   S:X  a  [        S UR                   5       5      $ UR                   S:X  a  gUR                  S5      $ )N©r$   é	   FÚ
error_nodec              3   ó>   #   • U  H  oR                   S :H  v •  M     g7f)Úfstring_startNr‡   )rˆ   rp   s     rh   r‰   Ú%_any_fstring_error.<locals>.<genexpr>ò   s   é € ÐLºm°U—:‘: Ö0ºmùs   ‚rY   T)r[   Úanyr]   Úsearch_ancestor)r2   rc   s     rh   Ú_any_fstring_errorr¯   î   sR   € Ø�Ó˜4™<ØØ‡y�y�LÓ ÜÑL¸d¿mºmÓLÓLÐLØ	�‰�iÓ	Øà×#Ñ# IÓ.Ð.ri   c                   óX   • \ rS rSrSS jrS rS rS rS rS r	\
S	 5       rS
 rS rSrg)Ú_Contextéù   Nc                 ó|   • Xl         / U l        X0l        0 U l        / U l        / U l        / U l        / U l        X l        g ©N)	rc   ÚblocksÚparent_contextÚ_used_name_dictÚ_global_namesÚ_local_params_namesÚ_nonlocal_namesÚ_nonlocal_names_in_subscopesÚ_add_syntax_error)Úselfrc   Úadd_syntax_errorr¶   s       rh   Ú__init__Ú_Context.__init__ú   sB   € ØŒ	ØˆŒØ,ÔØ!ˆÔØˆÔØ#%ˆÔ Ø!ˆÔØ,.ˆÔ)Ø!1Õri   c                 óv   • U R                  5       =(       a#    U R                  R                  R                  S;   $ )N)Úasync_funcdefÚ
async_stmt)Úis_functionrc   r�   r[   ©r½   s    rh   Úis_async_funcdefÚ_Context.is_async_funcdef  s5   € ð ×ÑÓ!÷ IØ—	‘	× Ñ ×%Ñ%Ð)HÑHð	Iri   c                 ó4   • U R                   R                  S:H  $ )NÚfuncdef)rc   r[   rÅ   s    rh   rÄ   Ú_Context.is_function  s   € Ø�y‰y�~‰~ Ñ*Ð*ri   c                 óö  • UR                   R                  nUS:X  a  g US:X  a  U R                  R                  U5        g US:X  a  U R                  R                  U5        g US:X  aX  U R
                  R                  UR                   R                  5        Vs/ s H  o3R                  R                  PM     sn5        g U R                  R                  UR                  / 5      R                  U5        g s  snf )NrL   Úglobal_stmtÚnonlocal_stmtrÉ   )r�   r[   r¸   r›   rº   r¹   ÚextendÚ
get_paramsÚnamera   r·   Ú
setdefault)r½   rÐ   Úparent_typer†   s       rh   Úadd_nameÚ_Context.add_name  sÆ   € Ø—k‘k×&Ñ&ˆØ˜)Ó#àà˜-Ó'Ø×Ñ×%Ñ% dÕ+Ø˜OÓ+Ø× Ñ ×'Ñ'¨Õ-Ø˜IÓ%Ø×$Ñ$×+Ñ+Ø/3¯{©{×/EÑ/EÔ/GÓHÒ/G e—‘×!Ô!Ñ/GÑHõð × Ñ ×+Ñ+¨D¯J©J¸Ó;×BÑBÀ4ÕHùò Is   ÂC6c                 ó  • U R                  U R                  S5        U R                  U R                  S5        U R                   Vs0 s H  oR                  U_M     nnU R                   HQ  n X#R                     nSUR                  -  nUR
                  UR
                  :  a  UnOUnU R                  Xe5        MS     / nU R                   H–  nUR                  nX€R                  ;   a  M   X‚;   d  U R                  c"  SUR                  -  nU R                  X55        MT  U R                  5       (       a  UR                  U R                  ;  d  M…  UR                  U5        M˜     U R                  U-   $ s  snf ! [         a     GM  f = f)zF
Returns a list of nonlocal names that need to be part of that scope.
ÚglobalÚnonlocalz name '%s' is nonlocal and globalz"no binding for nonlocal '%s' found)Ú_analyze_namesr¸   rº   ra   ÚKeyErrorÚ	start_posr¼   r»   r¹   r¶   rÄ   r·   r›   )	r½   r{   Úglobal_name_strsÚnonlocal_nameÚglobal_nameÚmessageÚ
error_nameÚnonlocals_not_handledÚsearchs	            rh   ÚfinalizeÚ_Context.finalize  st  € ð 	×Ñ˜D×.Ñ.°Ô9Ø×Ñ˜D×0Ñ0°*Ô=à04×0BÒ0BÓCÒ0B¨1ŸG™G QšJÑ0BÐÐCØ!×1Ô1ˆMðØ.×/BÑ/BÑC�ð 9¸;×;LÑ;LÑLˆGØ×$Ñ$ }×'>Ñ'>Ó>Ø(‘
à*�
Ø×"Ñ" :Ö7ñ 2ð !#ÐØ!×>Ô>ˆMØ"×(Ñ(ˆFØ×1Ñ1Ó1ÙØÓ)¨T×-@Ñ-@Ñ-HØ>À×ATÑATÑT�Ø×&Ñ& }Ö>Ø×%Ñ%×'Ñ'Ø!×'Ñ'¨t×/CÑ/CÕCØ%×,Ñ,¨]Ö;ñ ?ð ×#Ñ#Ð&;Ñ;Ð;ùò3 Døô ó Ûðús   ÁE7Á/E<Å<
FÆ
Fc                 óæ  ^ ^^
• U
U U4S jn/ nT R                   R                  S:X  a  T R                   R                  5       nU GH)  m
Sn[        T R                  R                  T
R                  / 5      5       H¸  nUR                  T
R                  :”  a  SnUR                  nUR                  S:X  a  UR                  U:X  a  MM  UR                  5       (       aC  UR                  S:X  a0  UR                  S   R                  S:X  a  U(       a  Um
U" S	5          OS
nOSnU(       a  M°  U" U5          O   U H2  n	U	R                  R                  T
R                  :X  d  M)  U" S5      4  M4     GM,     g )Nc                 óH   >• TR                  TU TR                  T4-  5        g r´   )r¼   ra   )rÞ   Ú	base_namer½   rd   s    €€€rh   Úraise_Ú'_Context._analyze_names.<locals>.raise_B  s!   ø€ Ø×"Ñ" 9¨g¸¿¹È%Ð8PÑ.PÕQri   rÉ   FTr†   rœ   r'   Ú	annassignzannotated name '%s' can't be %sz.name '%s' is assigned to before %s declarationz)name '%s' is used prior to %s declarationzname '%s' is parameter and %s)rc   r[   rÏ   Úreversedr·   Úgetra   rÚ   r�   rÐ   Úis_definitionr]   )r½   Úglobals_or_nonlocalsrd   rç   ÚparamsÚfound_global_or_nonlocalrÐ   r�   rÞ   r†   ræ   s   ` `       @rh   rØ   Ú_Context._analyze_namesA  s7  ú€ ÷	Rð ˆØ�9‰9�>‰>˜YÓ&Ø—Y‘Y×)Ñ)Ó+ˆFä-ˆIØ',Ð$ä  ×!5Ñ!5×!9Ñ!9¸)¿/¹/È2Ó!NÖO�Ø—>‘> I×$7Ñ$7Ó7à/3Ð,àŸ™�Ø—;‘; 'Ó)¨f¯k©k¸TÓ.Añ à×%Ñ%×'Ñ'Ø—{‘{ kÓ1Ø &§¡°Ñ 2× 7Ñ 7¸;Ó FÞ3ð )-˜IÙÐ@ÔAÙà"R™àI�Gç/Ð/Ù˜7”Oáñ9 Pó<  �Ø—:‘:×#Ñ# y§¡Õ6ÙÐ:Ó;Ó<ô  òC .ri   c              #   ó~   #   • U R                   R                  U5        S v •  U R                   R                  5         g 7fr´   )rµ   r›   Úpop©r½   rc   s     rh   Ú	add_blockÚ_Context.add_blockn  s(   é € à�‰×Ñ˜4Ô ÛØ�‰�‰Õùs   ‚;=c                 ó*   • [        XR                  U S9$ )N)r¶   )r±   r¼   ró   s     rh   Úadd_contextÚ_Context.add_contextt  s   € Ü˜×4Ñ4ÀTÑJÐJri   c                 óJ   • U =R                   UR                  5       -  sl         g r´   )r»   râ   )r½   Úchild_contexts     rh   Úclose_child_contextÚ_Context.close_child_contextw  s   € Ø×)Ò)¨]×-CÑ-CÓ-EÑEÖ)ri   )	r¼   r¸   r¹   rº   r»   r·   rµ   rc   r¶   r´   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r¿   rÆ   rÄ   rÓ   râ   rØ   r   rô   r÷   rû   Ú__static_attributes__© ri   rh   r±   r±   ù   sD   † ô	2òIò+òIò" <òD+=ðZ ñó ðò
KõFri   r±   c                   ór   ^ • \ rS rSrSrU 4S jrS rU 4S jr\S 5       r	U 4S jr
S rS	 rS
 rS rSrU =r$ )ÚErrorFinderi{  z)
Searches for errors in the syntax tree.
c                 ój   >• [         TU ]  " U0 UD6  0 U l        U R                  R                  U l        g r´   )Úsuperr¿   Ú_error_dictÚgrammarÚversion_infor2   )r½   ÚargsÚkwargsÚ	__class__s      €rh   r¿   ÚErrorFinder.__init__  s.   ø€ Ü‰Ò˜$Ð) &Ò)ØˆÔØ—|‘|×0Ñ0ˆ�ri   c                 óx   ^ ^• UU 4S jmT" U5      =(       d    [        UT R                  5      T l        ST l        g )Nc                 ó‚   >• U c  g T" U R                   5      nU R                  S;   a  [        U TR                  U5      $ U$ )N)ÚclassdefrÉ   Ú
file_input)r�   r[   r±   r¼   )rc   r¶   Úcreate_contextr½   s     €€rh   r  Ú.ErrorFinder.initialize.<locals>.create_context…  sA   ø€ Ø‰|Øá+¨D¯K©KÓ8ˆNØ�y‰yÐAÓAÜ  d×&<Ñ&<¸nÓMÐMØ!Ð!ri   r   )r±   r¼   ÚcontextÚ_indentation_count)r½   rc   r  s   ` @rh   Ú
initializeÚErrorFinder.initialize„  s0   ù€ ö	"ñ & dÓ+×U¬x¸¸d×>TÑ>TÓ/UˆŒØ"#ˆÕri   c                 óœ   >• UR                   S:X  a  U R                  U5          S S S 5        g[        TU ]  U5      $ ! , (       d  f       N= f)Nr©   Ú )r[   Ú
visit_noder  Úvisit)r½   rc   r  s     €rh   r  ÚErrorFinder.visit‘  sB   ø€ Ø�9‰9˜Ó$Ø—‘ Õ&ð ÷	 'Ð&ô
 ‰w‰}˜TÓ"Ð"÷ 'Õ&ús	   £=½
Ac              #   óÒ  #   • U R                  U5        UR                  [        ;   ab  U R                  R	                  U5         [        U R                  R                  5      [        :X  a  U R                  US5        S v •  S S S 5        g UR                  S:X  aH  U =R                  S-  sl	        U R                  [        :X  a  U R                  UR                  S   S5        S v •  UR                  S:X  a  U =R                  S-  sl	        g UR                  S;   a9  U R                  nUR                  U l        U R                  R                  U5        g g ! , (       d  f       g = f7f)Nz!too many statically nested blocksÚsuiter'   ztoo many levels of indentation©r  rÉ   )Ú_check_type_rulesr[   Ú_BLOCK_STMTSr  rô   r^   rµ   Ú_MAX_BLOCK_SIZEr¼   r  Ú_MAX_INDENT_COUNTÚ_add_indentation_errorr]   r¶   rû   )r½   rc   r  s      rh   r  ÚErrorFinder.visit_nodeš  s  é € à×Ñ˜tÔ$à�9‰9œÓ$Ø—‘×'Ñ'¨Õ-Ü�t—|‘|×*Ñ*Ó+¬Ó>Ø×*Ñ*¨4Ð1TÔUÛ÷ .ð Ø�Y‰Y˜'Ó!Ø×#Ò# qÑ(Õ#Ø×&Ñ&Ô*;Ó;Ø×+Ñ+¨D¯M©M¸!Ñ,<Ð>^Ô_ãà�9‰9˜ÓØ×#Ò# qÑ(Ö#Ø�Y‰YÐ1Ó1Ø—l‘lˆGØ"×1Ñ1ˆDŒLØ�L‰L×,Ñ,¨WÕ5ð 2÷ .Ô-ð üs   ‚AE'Á>EÂCE'Å
E$Å E'c                 ó   >• UR                   S:X  Ga"  UR                  S;   aQ  [        UR                  5       R	                  5       5      S   nUR                  S:X  a  SnOSnU R                  X#5        gUR                  R                  S5      (       a  SnOŒ[        R                  " S	UR                  5      nUcE  S
nU R                  S:¼  a2  UR                  [        U R                  5      R                  ;   a  SU-   nO#[        UR                  S5      5      S:X  a  SnOSnU R                  X5        gUR                  S:X  a<  UR                   nUR                   S;   a   U R"                  R%                  U5      U l        [&        TU ]Q  U5      $ )NÚ
error_leaf)ÚINDENTÚERROR_DEDENTrK   r(  zunexpected indentz3unindent does not match any outer indentation levelÚ\z6unexpected character after line continuation characterz\w{,2}("{1,3}|'{1,3})úinvalid syntaxr§   ú
f-string: r'   z!EOL while scanning string literalz/EOF while scanning triple-quoted string literalr  r(   r  )r[   Ú
token_typer4   Úget_next_leafÚ_split_prefixr$  ra   Ú
startswithÚreÚmatchr2   r   Úalways_break_tokensr^   Úgroupr¼   r�   r  r÷   r  Ú
visit_leaf)r½   ÚleafÚspacingrÞ   r2  r�   r  s         €rh   r5  ÚErrorFinder.visit_leaf²  sW  ø€ Ø�9‰9˜Ô$Ø�‰Ð"<Ó<ô ˜t×1Ñ1Ó3×AÑAÓCÓDÀRÑH�Ø—?‘? hÓ.Ø1‘GàS�GØ×+Ñ+¨GÔ=ð* ð' —:‘:×(Ñ(¨×.Ñ.ØV‘GäŸHšHÐ%>ÀÇ
Á
ÓK�EØ‘}Ø"2˜à ŸL™L¨FÓ2Ø $§
¡
Ô.CØ $§¡ó/ç1Ñ1ó!2ð '3°WÑ&<˜Gøä˜uŸ{™{¨1›~Ó.°!Ó3Ø&I™Gà&W˜GØ×&Ñ& tÔ5ØØ�Z‰Z˜3ÓØ—[‘[ˆFØ�{‰{Ð5Ó5Ø#Ÿ|™|×7Ñ7¸Ó?�”ô ‰wÑ! $Ó'Ð'ri   c                 ó0   • U R                  USSU-   5        g )Né‡  úIndentationError: ©Ú	add_issue)r½   r7  rÞ   s      rh   r$  Ú"ErrorFinder._add_indentation_errorÛ  s   € Ø�‰�w Ð%9¸GÑ%CÕDri   c                 ó0   • U R                  USSU-   5        g )Né…  úSyntaxError: r<  )r½   rc   rÞ   s      rh   r¼   ÚErrorFinder._add_syntax_errorÞ  s   € Ø�‰�t˜S /°GÑ";Õ<ri   c                 ó`   • UR                   S   nX#U4nU R                  R                  XE5        g )Nr   )rÚ   r  rÑ   )r½   rc   ÚcoderÞ   Úliner
  s         rh   r=  ÚErrorFinder.add_issueá  s0   € ð �~‰~˜aÑ ˆØ˜tÐ$ˆØ×Ñ×#Ñ# DÕ/ri   c                 óÊ   • U R                   R                  5         U R                  R                  5        H+  u  pnU R                  R                  [        X1U5      5        M-     g r´   )r  râ   r  ÚvaluesÚissuesr›   r   )r½   rD  rÞ   rc   s       rh   râ   ÚErrorFinder.finalizeè  sI   € Ø�‰×ÑÔà#'×#3Ñ#3×#:Ñ#:Ö#<ÑˆD˜4Ø�K‰K×Ñœu T°Ó9Ö:ò $=ri   )r  r  r  r2   )rý   rþ   rÿ   r   Ú__doc__r¿   r  r  r   r  r5  r$  r¼   r=  râ   r  Ú__classcell__©r  s   @rh   r  r  {  sK   ø† ñõ1ò
$õ#ð ñ6ó ð6õ.'(òREò=ò0÷;ð ;ri   r  c                   ó,   ^ • \ rS rSrSrU 4S jrSrU =r$ )ÚIndentationRuleiï  r:  c                 ó,   >• [         TU ]  X5      nSU-   $ )Nr;  )r  Ú_get_message©r½   rÞ   rc   r  s      €rh   rQ  ÚIndentationRule._get_messageò  s   ø€ Ü‘'Ñ& wÓ5ˆØ# gÑ-Ð-ri   r  ©rý   rþ   rÿ   r   rD  rQ  r  rL  rM  s   @rh   rO  rO  ï  s   ø† Ø€D÷.ó .ri   rO  r©   r‡   c                   ó$   • \ rS rSrSrS rS rSrg)Ú_ExpectIndentedBlocki÷  zexpected an indented blockc                 óZ   • UR                  5       n[        UR                  5       5      S   $ )NrK   )r.  r4   r/  )r½   rc   r6  s      rh   Úget_nodeÚ_ExpectIndentedBlock.get_nodeû  s)   € Ø×!Ñ!Ó#ˆÜ�D×&Ñ&Ó(Ó)¨"Ñ-Ð-ri   c                 ó:   • UR                   S   R                  S:H  $ )NrK   rl   rn   ró   s     rh   Úis_issueÚ_ExpectIndentedBlock.is_issueÿ  s   € à�}‰}˜RÑ ×%Ñ%¨Ñ2Ð2ri   r  N©rý   rþ   rÿ   r   rÞ   rX  r[  r  r  ri   rh   rV  rV  ÷  s   † à*€Gò.õ3ri   rV  c                   ó   • \ rS rSr\rSrg)ÚErrorFinderConfigi  r  N)rý   rþ   rÿ   r   r  Únormalizer_classr  r  ri   rh   r_  r_    s   † Ø"Óri   r_  c                   ó,   ^ • \ rS rSrSrU 4S jrSrU =r$ )Ú
SyntaxRulei  r@  c                 óŒ   >• [         TU ]  X5      nSU;  a*  [        U R                  R                  U5      (       a  SU-   nSU-   $ )Nzf-stringr,  rA  )r  rQ  r¯   Ú_normalizerr2   rR  s      €rh   rQ  ÚSyntaxRule._get_message  sH   ø€ Ü‘'Ñ& wÓ5ˆà˜gÓ%Ü" 4×#3Ñ#3×#;Ñ#;¸T×BÑBà" WÑ,ˆGØ Ñ(Ð(ri   r  rT  rM  s   @rh   rb  rb    s   ø† Ø€D÷)ó )ri   rb  c                   ó(   • \ rS rSrSrSrS rS rSrg)Ú_InvalidSyntaxRulei  r+  zf-string: invalid syntaxc                 ó"   • UR                  5       $ r´   )r.  ró   s     rh   rX  Ú_InvalidSyntaxRule.get_node  s   € Ø×!Ñ!Ó#Ð#ri   c                 óÌ   • UR                  5       R                  S:g  nU(       a?  [        U R                  R                  U5      (       a  U R                  XR                  S9  g U$ )Nr'  ©rÞ   )r.  r[   r¯   rd  r2   r=  Úfstring_message)r½   rc   Úerrors      rh   r[  Ú_InvalidSyntaxRule.is_issue  sR   € Ø×"Ñ"Ó$×)Ñ)¨\Ñ9ˆæÜ" 4×#3Ñ#3×#;Ñ#;¸T×BÑBà�N‰N˜4×)=Ñ)=ˆNÒ>ð ˆLri   r  N)	rý   rþ   rÿ   r   rÞ   rl  rX  r[  r  r  ri   rh   rg  rg    s   † à€GØ0€Oò$õ	ri   rg  rI   )ra   c                   ó$   • \ rS rSrSrS rS rSrg)Ú_AwaitOutsideAsynci)  z'await' outside async functionc                 óT   • U R                   R                  R                  5       (       + $ r´   )rd  r  rÆ   ©r½   r6  s     rh   r[  Ú_AwaitOutsideAsync.is_issue-  s    € Ø×#Ñ#×+Ñ+×<Ñ<Ó>Ô>Ð>ri   c                 ó   • UR                   $ r´   ©r�   ró   s     rh   Úget_error_nodeÚ!_AwaitOutsideAsync.get_error_node0  s   € à�{‰{Ðri   r  N)rý   rþ   rÿ   r   rÞ   r[  rv  r  r  ri   rh   rp  rp  )  s   † à.€Gò?õri   rp  Úbreakc                   ó   • \ rS rSrSrS rSrg)Ú_BreakOutsideLoopi5  z'break' outside loopc                 óŠ   • SnU R                   R                  R                   H  nUR                  S;   d  M  SnM     U(       + $ )NF©r   r
   T)rd  r  rµ   r[   )r½   r6  Úin_loopÚblocks       rh   r[  Ú_BreakOutsideLoop.is_issue9  s?   € ØˆØ×%Ñ%×-Ñ-×4Ô4ˆEØ�z‰zÐ7Õ7Ø’ñ 5ð Œ{Ðri   r  N©rý   rþ   rÿ   r   rÞ   r[  r  r  ri   rh   rz  rz  5  s   † à$€Gõri   rz  Úcontinuec                   ó"   • \ rS rSrSrSrS rSrg)Ú_ContinueChecksiA  z'continue' not properly in loopz0'continue' not supported inside 'finally' clausec                 ó~  • SnU R                   R                  R                   H�  nUR                  S;   a  SnUR                  S:X  d  M'  UR                  S   nUS:X  d  M>  UR
                  UR
                  :”  d  MZ  U R                   R                  S:  d  Mv  U R                  XR                  S9    g   U(       d  gg )	NFr|  Tr   éýÿÿÿÚfinallyr#   rk  )	rd  r  rµ   r[   r]   rÚ   r2   r=  Úmessage_in_finally)r½   r6  r}  r~  Ú
last_blocks        rh   r[  Ú_ContinueChecks.is_issueF  s¡   € ØˆØ×%Ñ%×-Ñ-×4Ô4ˆEØ�z‰zÐ7Ó7Ø�Ø�z‰z˜ZÕ'Ø"Ÿ^™^¨BÑ/�
à )Õ+ØŸ™¨×)=Ñ)=Õ=Ø×(Ñ(×0Ñ0°6Õ9à—N‘N 4×1HÑ1H�NÑIÙ ñ 5ö Øð ri   r  N)rý   rþ   rÿ   r   rÞ   r‡  r[  r  r  ri   rh   rƒ  rƒ  A  s   † à/€GØKÐõri   rƒ  Úfromc                   ó$   • \ rS rSrSrS rS rSrg)Ú_YieldFromCheckiX  z"'yield from' inside async functionc                 ó.   • UR                   R                   $ r´   ru  rr  s     rh   rX  Ú_YieldFromCheck.get_node\  s   € Ø�{‰{×!Ñ!Ð!ri   c                 óŠ   • UR                   R                  S:H  =(       a$    U R                  R                  R	                  5       $ )NÚ	yield_arg)r�   r[   rd  r  rÆ   rr  s     rh   r[  Ú_YieldFromCheck.is_issue_  s6   € Ø�{‰{×Ñ ;Ñ.÷ <Ø× Ñ ×(Ñ(×9Ñ9Ó;ð	<ri   r  Nr]  r  ri   rh   rŒ  rŒ  X  s   † à2€Gò"õ<ri   rŒ  rÐ   c                   ó"   • \ rS rSrSrSrS rSrg)Ú_NameChecksid  zcannot assign to __debug__zcannot assign to Nonec                 óœ   • U R                   R                  R                  U5        UR                  S:X  a  UR	                  5       (       a  gg g )NÚ	__debug__T)rd  r  rÓ   ra   rì   rr  s     rh   r[  Ú_NameChecks.is_issuei  sA   € Ø×Ñ× Ñ ×)Ñ)¨$Ô/à�:‰:˜Ó$¨×);Ñ);×)=Ñ)=Øð *>Ð$ri   r  N)rý   rþ   rÿ   r   rÞ   Úmessage_noner[  r  r  ri   rh   r“  r“  d  s   † à*€GØ*€Lõri   r“  r@   c                   óD   • \ rS rSr\R
                  S:  a  SrOSrS rSrg)Ú_StringChecksip  r*   z0bytes can only contain ASCII literal characters.z/bytes can only contain ASCII literal charactersc                 ó„  • UR                   R                  5       nSU;   a"  [        S UR                   5       5      (       a  gSU;  a†  UR	                  5       nSU;   a"  UR                  S5      n[        R                  nO[        R                  n [        R                  " 5          [        R                  " S5        U" U5        S S S 5        g g ! , (       d  f       g = f! [         a&  nU R                  US[        U5      -   S9   S nAg S nAf[         a&  nU R                  US	[        U5      -   S9   S nAg S nAff = f)
NÚbc              3   óH   #   • U  H  n[        U5      S :”  d  M  Uv •  M     g7f)é   N)Úord)rˆ   Úcs     rh   r‰   Ú)_StringChecks.is_issue.<locals>.<genexpr>z  s   é € Ð>¢:˜a´°Q³¸#±Ÿ™¢:ùs   ‚"™	"TÚrzutf-8Úignorez(unicode error) rk  z(value error) )Ústring_prefixÚlowerr­   ra   Ú_get_payloadÚencodeÚcodecsÚescape_decodeÚunicode_escape_decodeÚwarningsÚcatch_warningsÚfilterwarningsÚUnicodeDecodeErrorr=  rb   Ú
ValueError)r½   r6  r£  ÚpayloadÚfuncÚes         rh   r[  Ú_StringChecks.is_issuew  s  € Ø×*Ñ*×0Ñ0Ó2ˆØ�-ÓÜÑ> 4§:¢:Ó>×>Ñ>àà�mÓ#ð ×'Ñ'Ó)ˆGØ�mÓ#Ø!Ÿ.™.¨Ó1�Ü×+Ñ+‘ä×3Ñ3�ðHÜ×,Ò,Õ.ä×+Ò+¨HÔ5Ù˜”M÷ /Ð.ð $÷ /Õ.ûô &ó JØ—‘˜tÐ-?Ä#ÀaÃ&Ñ-H�ÖIûÜó HØ—‘˜tÐ-=ÄÀAÃÑ-F�ÖGûðHúsB   ÂC! Â'CÃC! Ã
CÃC! ÃC! Ã!
D?Ã+DÄD?ÄD:Ä:D?r  N)	rý   rþ   rÿ   r   Úsysr	  rÞ   r[  r  r  ri   rh   r™  r™  p  s    † à
×Ñ˜'Ó!ØD‰àCˆõHri   r™  Ú*c                   ó   • \ rS rSrSrS rSrg)Ú
_StarChecki”  z"named arguments must follow bare *c                 ó"  • UR                   nUR                  S:X  an  U(       af  UR                  UR                  R                  U5      S-   S  nU Vs/ s H   nUS;  d  M  UR                  (       a  M  UPM"     nn[        U5      S:H  $ g g s  snf )NÚ
parametersr'   )Ú,r0   r   )r�   r[   r]   ÚindexÚ
star_countr^   )r½   r6  rî   Úafterrp   s        rh   r[  Ú_StarCheck.is_issue˜  s�   € Ø—‘ˆØ�;‰;˜,Ó&®6Ø—O‘O F§O¡O×$9Ñ$9¸$Ó$?À!Ñ$CÐ$DÐEˆEÙ(-ó Jª˜uØ ZÑ/ó Ø8=×8HÕ8H÷ ©ˆEð Jä�u“: ‘?Ð"ð	 ,2Ð&ùòJs   Á
BÁ!BÁ4Br  Nr€  r  ri   rh   r¶  r¶  ”  s   † à2€Gõ#ri   r¶  r)   c                   ó   • \ rS rSrSrS rSrg)Ú_StarStarChecki¡  z3dict unpacking cannot be used in dict comprehensionc                 ó°   • UR                   R                  S:X  a<  UR                  5       R                  5       nUS L=(       a    UR                  [        ;   $ g )Nr"   )r�   r[   Úget_next_siblingru   )r½   r6  r   s      rh   r[  Ú_StarStarCheck.is_issue¨  sJ   € Ø�;‰;×ÑÐ/Ó/Ø×,Ñ,Ó.×?Ñ?ÓAˆHØ 4Ð'×L¨H¯M©M¼_Ñ,LÐLð 0ri   r  Nr€  r  ri   rh   r¿  r¿  ¡  s   † ð
 D€GõMri   r¿  r8   Úreturnc                   ó(   • \ rS rSrSrSrS rS rSrg)Ú_ReturnAndYieldChecksi®  z&'return' with value in async generatorz'yield' inside async functionc                 ó   • UR                   $ r´   ru  rr  s     rh   rX  Ú_ReturnAndYieldChecks.get_node´  ó   € Ø�{‰{Ðri   c                 óà  • U R                   R                  R                  R                  S:w  a-  U R	                  U R                  U5      SUR                  -  S9  g U R                   R                  R                  5       (       aj  [        U R                   R                  R                  R                  5       5      (       a-  UR                  S:X  a  UR                  R                  S:X  a  gg g g g )NrÉ   z'%s' outside functionrk  rÃ  Úreturn_stmtT)rd  r  rc   r[   r=  rX  ra   rÆ   r­   Úiter_yield_exprsr�   rr  s     rh   r[  Ú_ReturnAndYieldChecks.is_issue·  s½   € Ø×Ñ×#Ñ#×(Ñ(×-Ñ-°Ó:Ø�N‰N˜4Ÿ=™=¨Ó.Ð8OÐRV×R\ÑR\Ñ8\ˆNÒ]Ø×Ñ×%Ñ%×6Ñ6×8Ñ8Ü˜×(Ñ(×0Ñ0×5Ñ5×FÑFÓH×IÑIØ�z‰z˜XÓ%¨$¯+©+×*:Ñ*:¸mÓ*KØð +LÐ%ð Jð 9ri   r  N)	rý   rþ   rÿ   r   rÞ   Úmessage_async_yieldrX  r[  r  r  ri   rh   rÅ  rÅ  ®  s   † ð 7€GØ9Ðòõri   rÅ  rB   c                   ó$   • \ rS rSrSrS rS rSrg)Ú_BytesAndStringMixiÀ  z&cannot mix bytes and nonbytes literalsc                 ó^   • UR                   S:X  a  gSUR                  R                  5       ;   $ )NrY   Fr›  )r[   r£  r¤  )r½   r@   s     rh   Ú_is_bytes_literalÚ$_BytesAndStringMix._is_bytes_literalÅ  s+   € Ø�;‰;˜)Ó#ØØ�f×*Ñ*×0Ñ0Ó2Ñ2Ð2ri   c                 óœ   • UR                   S   nU R                  U5      nUR                   SS   H  nX0R                  U5      :w  d  M    g   g )Nr   r'   T)r]   rÑ  )r½   rc   rf   Úfirst_is_bytesr@   s        rh   r[  Ú_BytesAndStringMix.is_issueÊ  sI   € Ø—‘˜aÑ ˆØ×/Ñ/°Ó6ˆØ—m‘m A BÓ'ˆFØ×!7Ñ!7¸Ó!?Õ?Ùò (ri   r  N)rý   rþ   rÿ   r   rÞ   rÑ  r[  r  r  ri   rh   rÏ  rÏ  À  s   † ð 7€Gò3õ
ri   rÏ  Úimport_as_namesc                   ó   • \ rS rSrSrS rSrg)Ú_TrailingImportCommaiÒ  z:trailing comma not allowed without surrounding parenthesesc                 óh   • UR                   S   S:X  a  UR                  R                   S   S:w  a  gg g )NrK   r¹  r0   T)r]   r�   ró   s     rh   r[  Ú_TrailingImportComma.is_issue×  s5   € Ø�=‰=˜Ñ Ó#¨¯©×(<Ñ(<¸RÑ(@ÀCÓ(GØð )HÐ#ri   r  Nr€  r  ri   rh   rØ  rØ  Ò  s   † ð K€Gõri   rØ  ry   c                   ó   • \ rS rSrSrS rSrg)Ú_ImportStarInFunctioniÜ  z%import * only allowed at module levelc                 ót   • UR                  5       =(       a"    U R                  R                  R                  S L$ r´   )Úis_star_importrd  r  r¶   ró   s     rh   r[  Ú_ImportStarInFunction.is_issueà  s.   € Ø×"Ñ"Ó$×\¨×)9Ñ)9×)AÑ)A×)PÑ)PÐX\Ð)\Ð\ri   r  Nr€  r  ri   rh   rÜ  rÜ  Ü  s   † à5€Gõ]ri   rÜ  c                   ó   • \ rS rSrSrS rSrg)Ú_FutureImportRuleiä  z?from __future__ imports must occur at the beginning of the filec                 óž  • [        U5      (       a½  [        U5      (       d  gUR                  5        H—  u  p#UR                  n[	        [
        5      nU R                  R                  S:¼  a  UR                  S5        US:X  a  U R                  USS9  Mc  US:X  a  SnU R                  XS9  M|  XE;  d  Mƒ  S	U-  nU R                  XS9  M™     g g )
NT©r$   é   ÚannotationsÚbracesznot a chancerk  Úbarry_as_FLUFLz-Seriously I'm not implementing this :) ~ Davez future feature %s is not defined)
r|   r‘   Ú	get_pathsra   r4   ÚALLOWED_FUTURESrd  r2   r›   r=  )r½   rc   Ú	from_nameÚfuture_namerÐ   Úallowed_futuresÚmrÞ   s           rh   r[  Ú_FutureImportRule.is_issueè  s½   € Ü˜T×"Ñ"Ü*¨4×0Ñ0Øà*.¯.©.Ö*:Ñ&�	Ø"×(Ñ(�Ü"&¤Ó"7�Ø×#Ñ#×+Ñ+¨vÓ5Ø#×*Ñ*¨=Ô9Ø˜8Ó#Ø—N‘N 4°�NÓ@ØÐ-Ó-ØG�AØ—N‘N 4�NÓ3ØÕ0Ø@À4ÑG�GØ—N‘N 4�NÓ9ò +;ð	 #ri   r  Nr€  r  ri   rh   rá  rá  ä  s   † àO€Gõ:ri   rá  rR   c                   ó   • \ rS rSrSrS rSrg)Ú_StarExprRuleiü  z2iterable unpacking cannot be used in comprehensionc                 óZ  • S nU R                   R                  S:¼  a  UR                  nO[        U5      nUR                  / [
        QSP7;  a4  UR                  S:X  a  UR                  S   S:w  d  U R                  USS9  g U" U5      (       a<  U R                   R                  S:¼  a  U R                  US	S9  g U R                  USS9  g UR                  R                  S
:X  aF  UR                  R                  S   R                  [        ;   a  U R                  XR                  S9  g g g )Nc                 óª   • U R                   bF  U R                   n U R                  S:X  a  gU R                  / [        QSP7;  a  gU R                   b  MF  g)NÚdel_stmtTr    F)r�   r[   r—   r‚   s    rh   Úcheck_delete_starredÚ4_StarExprRule.is_issue.<locals>.check_delete_starred  sP   € Ø—+‘+Ñ)Ø—{‘{�Ø—9‘9 
Ó*ØØ—9‘9Ð$AÔ&8Ð$A¸&Ñ$AÓAØ ð —+‘+Ó)ð ri   r§   r"   r    r   r/   ú!can't use starred expression hererk  zcannot delete starredr   r'   )
rd  r2   r�   rƒ   r[   r—   r]   r=  ru   Úmessage_iterable_unpacking)r½   rc   rô  Úancestors       rh   r[  Ú_StarExprRule.is_issue   s  € ò	ð ×Ñ×#Ñ# vÓ-Ø—{‘{‰Hä-¨dÓ3ˆHà�=‰=Ð GÔ"4Ð GÐ6FÑ GÓGØ!Ÿ™¨&Ó0°X×5FÑ5FÀqÑ5IÈSÓ5PØ�N‰N˜4Ð)LˆNÑMØá ×%Ñ%Ø×Ñ×'Ñ'¨6Ó1Ø—‘˜tÐ-D�ÑEð ð —‘˜tÐ-P�ÑQØà�;‰;×Ñ˜Ó.à�{‰{×#Ñ# AÑ&×+Ñ+¬Ó>Ø—‘˜t×-LÑ-L�ÒMð ?ð /ri   r  N)rý   rþ   rÿ   r   r÷  r[  r  r  ri   rh   rð  rð  ü  s   † à!UÐõNri   rð  )Útypesc                   ó   • \ rS rSrS rSrg)Ú_StarExprParentRulei!  c                 óÖ  ^• U4S jmT" XR                   5      (       aÁ  UR                   Vs/ s H  o"S:w  d  M
  UPM     nnU Vs/ s H  o"R                  S:X  d  M  UPM     nn[        U5      S:”  a3  U R                  R
                  S:  a  SnOSnU R                  US   US9  g U(       a1  UR                  US	   5      nUS
:¼  a  SnU R                  US	   US9  g g g g s  snf s  snf )Nc                 ó®   >• Uc  gUR                   nUS:X  a  gUS:X  a&  U R                  UR                  S   R                  :  $ T" XR                  5      $ )NFrL   rœ   rK   )r[   rÚ   r]   r�   )rc   rø  rd   rì   s      €rh   rì   Ú3_StarExprParentRule.is_issue.<locals>.is_definition$  sW   ø€ ØÑØà—M‘MˆEØ˜	Ó!Øà˜Ó#Ø—~‘~¨×(9Ñ(9¸"Ñ(=×(GÑ(GÑGÐGá  §¡Ó7Ð7ri   r¹  rR   r'   r§   z%two starred expressions in assignmentz*multiple starred expressions in assignmentrk  r   é   z1too many expressions in star-unpacking assignment)r�   r]   r[   r^   rd  r2   r=  rº  )r½   rc   rŸ  r
  rX   rÞ   Úcountrì   s          @rh   r[  Ú_StarExprParentRule.is_issue#  sÚ   ø€ õ	8ñ ˜Ÿ{™{×+Ñ+Ø#Ÿ}š}Ó9š}˜!°S±—A™}ˆDÐ9Ù"&Ó@¢$˜Q¯&©&°KÑ*?—q¡$ˆGÐ@Ü�7‹|˜aÓØ×#Ñ#×+Ñ+¨fÓ4ØE‘GàJ�GØ—‘˜w q™z°7�Ò;ÞØŸ
™
 7¨1¡:Ó.�Ø˜C“<ØQ�GØ—N‘N 7¨1¡:°w�NÒ?ð  ð ð ,ùÚ9ùÚ@s   ­	C!ºC!ÁC&ÁC&r  N©rý   rþ   rÿ   r   r[  r  r  ri   rh   rü  rü  !  s   † õ@ri   rü  ré   c                   ó$   • \ rS rSrSrS rS rSrg)Ú_AnnotatorRuleiA  zillegal target for annotationc                 ó   • UR                   $ r´   ru  ró   s     rh   rX  Ú_AnnotatorRule.get_nodeG  rÈ  ri   c                 óÜ  • S nUR                   R                  S   n[        U5      n UR                  nSU;   d  UR                  S:X  a  US   S:X  a  SnOUR                  S:X  a  US   S:X  a  SnUS   nUcF  UR                  S	:X  d5  UR                  S
;   a#  WR                  S:X  a  UR                  S   S:w  d  gg g SnU R                  UR                   Xb-  S9  g ! [         a     Ntf = f)Nr   r¹  r    r/   r1   r3   r4   rK   rÐ   rF   rL   Tz,only single target (not %s) can be annotatedrk  )r�   r]   r`   r[   r~   r=  )r½   rc   rd   Úlhsr]   rL   rÞ   s          rh   r[  Ú_AnnotatorRule.is_issueJ  sø   € ØˆØ�k‰k×"Ñ" 1Ñ%ˆÜ˜SÓ!ˆð		#Ø—|‘|ˆHð �h‹ #§(¡(¨fÓ"4¸À!¹ÈÓ9KØ‘Ø—‘˜VÓ#¨°©°sÓ(:Ø�Ø˜r‘lˆGà‰=Ø—H‘H Ó&à—x‘xÐ#9Ó9ØŸ™¨	Ó1Ø×(Ñ(¨Ñ+¨sÓ2Øð 3ð	 'ð EˆGØ�N‰N˜3Ÿ:™:¨w©ˆNÒ?øô' ó 	Ùð	ús   ¨C Ã
C+Ã*C+r  Nr]  r  ri   rh   r  r  A  s   † ð .€Gòõ@ri   r  r¤   c                   ó   • \ rS rSrS rSrg)Ú_ArgumentRuleif  c                 óæ  • UR                   S   nU R                  R                  S:  a  [        U5      nUR                   S   S:X  an  UR                  S:w  a^  UR                  S:X  a   U R                  R                  S:  a  SnO"SnOU R                  R                  S:  a  S	nOSnU R                  X#S
9  [        U5      (       a,  UR                  R                  S:X  a  U R                  USS
9  g g g )Nr   r#   r'   Ú=rÐ   r   z lambda cannot contain assignmentz=expression cannot contain assignment, perhaps you meant "=="?zkeyword can't be an expressionrk  r  r+  )r]   rd  r2   r`   r[   r=  r¥   r�   )r½   rc   rf   rÞ   s       rh   r[  Ú_ArgumentRule.is_issueh  sØ   € Ø—‘˜aÑ ˆØ×Ñ×#Ñ# fÓ,ä" 5Ó)ˆEØ�=‰=˜Ñ˜sÓ" u§z¡z°VÓ';Ø�z‰z˜YÓ&à×#Ñ#×+Ñ+¨fÓ4Ø@‘Gà]‘Gð ×#Ñ#×+Ñ+¨fÓ4Ø>‘Gà]�GØ�N‰N˜5ˆNÑ2ä% d×+Ñ+°·±×0@Ñ0@ÀJÓ0NØ�N‰N˜4Ð)9ˆNÒ:ð 1OÐ+ri   r  Nr  r  ri   rh   r  r  f  s   † õ;ri   r  rÍ   c                   ó   • \ rS rSrSrS rSrg)Ú_NonlocalModuleLevelRulei€  z0nonlocal declaration not allowed at module levelc                 óF   • U R                   R                  R                  S L $ r´   )rd  r  r¶   ró   s     rh   r[  Ú!_NonlocalModuleLevelRule.is_issue„  s   € Ø×Ñ×'Ñ'×6Ñ6¸$Ð>Ð>ri   r  Nr€  r  ri   rh   r  r  €  s   † à@€Gõ?ri   r  Úarglistc                   ó*   • \ rS rSr\S 5       rS rSrg)Ú_ArglistRuleiˆ  c                 ó:   • U R                   R                  S:  a  gg)Nrã  z?Generator expression must be parenthesized if not sole argumentz*Generator expression must be parenthesized)rd  r2   rÅ   s    rh   rÞ   Ú_ArglistRule.messageŠ  s   € à×Ñ×#Ñ# fÓ,ØTà?ri   c                 óÎ  • [        5       nSnSnUR                   GHF  nUS:X  a  M  UR                  S:X  aô  UR                  S   n[        U5      (       a  [	        UR                  5      S:¼  a    gUS;   a&  US:X  a  U(       a  S	nU R                  XWS
9  M|  M~  SnM‚  SnUR                  S:X  ay  UR                  U;   aK  SnU R                  R                  S:¼  a  USR                  UR                  5      -  nU R                  XgS
9  Mï  UR                  UR                  5        GM  GM  U(       a  SnU R                  XWS
9  GM+  U(       d  GM5  SnU R                  XWS
9  GMI     g )NFr¹  r¤   r   r!   T)r´  r)   r´  z>iterable argument unpacking follows keyword argument unpackingrk  rÐ   zkeyword argument repeatedr§   z: {}z6positional argument follows keyword argument unpackingz,positional argument follows keyword argument)Úsetr]   r[   r¥   r^   r=  ra   rd  r2   ÚformatÚadd)r½   rc   Úarg_setÚkw_onlyÚkw_unpacking_onlyr¤   rf   rÞ   s           rh   r[  Ú_ArglistRule.is_issue‘  s=  € Ü“%ˆØˆØ!ÐØŸ�ˆHØ˜3‹Ùà�}‰} 
Ó*Ø ×)Ñ)¨!Ñ,�Ü-¨h×7Ñ7¼CÀÇÁÓ<NÐRSÓ<Sáà˜KÓ'Ø “|Þ,ð'K˜Gà ŸN™N¨8˜NÓEñ	 -ð -1Ò)à"�GØ—z‘z VÓ+Ø Ÿ;™;¨'Ó1à&A˜GØ#×/Ñ/×7Ñ7¸6ÓAØ '¨6¯=©=¸¿¹Ó+EÑ E Ø ŸN™N¨5˜NÓBà#ŸK™K¨¯©×4ò ,ö %àV�GØ—N‘N 8�NÔ=ß‘WàL�GØ—N‘N 8�NÔ=òM &ri   r  N)rý   rþ   rÿ   r   ÚpropertyrÞ   r[  r  r  ri   rh   r  r  ˆ  s   † àñ@ó ð@õ*>ri   r  r¸  r   c                   ó   • \ rS rSrSrS rSrg)Ú_ParameterRulei¾  z-non-default argument follows default argumentc                 ó  • [        5       nSnSn[        U5       Hå  nUR                  S:X  a  UR                  S:X  a  SnSnM)  UR                  R                  U;   a2  SnU R                  UR                  XeR                  R                  -  S9  UR                  UR                  R                  5        U(       a  M£  UR                  c  UR                  (       d  U(       a    gMÌ  UR                  (       a  SnSnMã  SnMç     g )NFr:   r´  Tz.duplicate argument '%s' in function definitionrk  )	r  rŒ   r[   ra   rÐ   r=  r  Údefaultr»  )r½   rc   Úparam_namesÚdefault_onlyÚ	star_seenÚprÞ   s          rh   r[  Ú_ParameterRule.is_issueÄ  sÄ   € Ü“eˆØˆØˆ	Ü˜dÖ#ˆAØ�v‰v˜Ó#Ø—7‘7˜c“>Ø $�IØ#(�LÙà�v‰v�|‰|˜{Ó*ØJ�Ø—‘˜qŸv™v¨w¿¹¿¹Ñ/E�ÑFØ�O‰O˜AŸF™FŸL™LÔ)ç�9Ø—9‘9Ñ$¨Q¯\¯\Þ#Ù#ñ $à—\—\Ø $�IØ#(’Là#'’Lò) $ri   r  Nr€  r  ri   rh   r#  r#  ¾  s   † ð >€Gõ(ri   r#  r   c                   ó   • \ rS rSrSrS rSrg)Ú_TryStmtRuleiß  zdefault 'except:' must be lastc                 óš   • S nUR                   SS S2    H3  nUS;   a    g US:X  a  UnM  Uc  M  U R                  X R                  S9  M5     g )Nr$   )Úelser†  Úexceptrk  )r]   r=  rÞ   )r½   r   Údefault_exceptÚexcept_clauses       rh   r[  Ú_TryStmtRule.is_issueã  sS   € ØˆØ%×.Ñ.¨q¨t°!¨tÔ4ˆMØÐ 3Ó3ÙØ Ó(Ø!.’ØÓ+Ø—‘˜~·|±|�ÓDò 5ri   r  Nr€  r  ri   rh   r,  r,  ß  s   † à.€GõEri   r,  rY   c                   ó@   • \ rS rSrSrSrSrSrS rS r	S r
SS	 jrS
rg)Ú_FStringRuleiî  Nz3f-string expression part cannot include a backslashz'f-string: expressions nested too deeplyzAf-string: invalid conversion character: expected 's', 'r', or 'a'c                 óB   • U R                  UR                  SS  U5        g r¡   ©Ú_check_fstring_contentsr]   )r½   Úformat_specÚdepths      rh   Ú_check_format_specÚ_FStringRule._check_format_specõ  s   € Ø×$Ñ$ [×%9Ñ%9¸!¸"Ð%=¸uÕEri   c                 ó4  • US:¼  a  U R                  XR                  S9  UR                  S   nSUR                  5       ;   a  U R                  X0R                  S9  UR                  S   nUR
                  S:X  a   UR                  S:X  a  UR                  S   nOUnUR
                  S:X  a8  UR                  S   nUR                  S	;  a  U R                  X`R                  S9  UR                  S
   nUR
                  S:X  a  U R                  XrS-   5        g g )Nr!   rk  r'   r*  r:   r  r$   Úfstring_conversion)Úsr¡  Úar™   Úfstring_format_spec)	r=  Úmessage_nestedr]   Úget_codeÚmessage_exprr[   ra   Úmessage_conversionr:  )r½   Úfstring_exprr9  rQ   Ú
children_2Ú
conversionrÐ   r8  s           rh   Ú_check_fstring_exprÚ _FStringRule._check_fstring_exprø  s   € Ø�A‹:Ø�N‰N˜<×1DÑ1DˆNÑEà×$Ñ$ QÑ'ˆØ�4—=‘=“?Ó"Ø�N‰N˜4×):Ñ):ˆNÑ;à!×*Ñ*¨1Ñ-ˆ
Ø�?‰?˜jÓ(¨Z×-=Ñ-=ÀÓ-DØ%×.Ñ.¨qÑ1‰Jà#ˆJØ�?‰?Ð2Ó2Ø×&Ñ& qÑ)ˆDØ�z‰z Ó0Ø—‘˜t×-DÑ-D�ÑEà"×+Ñ+¨BÑ/ˆØ×ÑÐ4Ó4Ø×#Ñ# K¸±Õ;ð 5ri   c                 ó@   • U R                  UR                  SS 5        g )Nr'   rK   r6  )r½   rY   s     rh   r[  Ú_FStringRule.is_issue  s   € Ø×$Ñ$ W×%5Ñ%5°a¸Ð%;Õ<ri   c                 ó\   • U H&  nUR                   S:X  d  M  U R                  X25        M(     g )NrE  )r[   rH  )r½   r]   r9  Úfstring_contents       rh   r7  Ú$_FStringRule._check_fstring_contents  s(   € Û'ˆOØ×#Ñ# ~Õ5Ø×(Ñ(¨Ö@ò  (ri   r  )r   )rý   rþ   rÿ   r   Ú_fstring_grammarrC  rA  rD  r:  rH  r[  r7  r  r  ri   rh   r4  r4  î  s.   † àÐØH€LØ>€NØ\ÐòFò<ò,=÷Ari   r4  c                   ó   • \ rS rSrSS jrSrg)Ú_CheckAssignmentRulei  c                 ó
  • S nUR                   nUS:X  a  SnGO�US:X  Ga—  UR                  S S u  px[        U5      nUGcu  UR                   S:X  aW  U R                  R                  S:  a  SnGO:UR                  S   S	:X  a"  U R                  R                  S
:  a  SnGO	SnGOSnGOUS:X  aF  US:X  a@  U R                  R                  S:  a  SnGO×U R                  R                  S
:  a  SnGO¹SnGOµUS:X  a;  [        UR                  5      S:”  a"  U R                  R                  S:  a  SnGOxSnGOtUS;   a{  UR                   S:X  a  SnGOZUR                   S:X  aE  U(       a  US:X  a  SnOUS:X  a  SnUR                  S S S2    H  n	U R                  X’X45        M     GOU R                  X‚X45        GOñUS:X  aI  UR                  S:X  a  SnGO×U R                  R                  S:  a  SnGO¹[        UR                  5      nGO¢US:X  a2  UR                  S:X  a   U R                  R                  S
:  a  SnGOnSnGOjUS:X  a  SnGO`US;   a  SnGOVUS:X  a  S n
U R                  XS!9  GO=US":X  a  S#nGO3US$;   aÀ  UR                  S%   S&:X  a  S'nGOUR                  S(   S):X  a"  U R                  R                  S
:  a  SnGOåS*nGOáUR                  S+   nUR                   S,:X  d   eUR                  S%   S:X  a  S-nGO©U(       a  UR                  S%   S:X  a  S.nGO‹U(       a  UR                  S%   S/:X  a  S0nGOmUS1:X  a"  U R                  R                  S:  a  SnGOIS2nGOEUS3;   a-  UR                  S S S2    H  n	U R                  X’X45        M     GOS4U;   a  US5:w  d  S6U;   d  US7;   a   U R                  R                  S
:  a  SnOÝS*nOÚUS5:X  aÔ  U(       a.  U R                  R                  S8:¼  a  S9nO’U R                  US:S!9  O�U R                  R                  S8:¼  a  UR                  nO[        U5      nUR                   [        ;  a;  U(       d4  UR                   S:X  a  UR                  S%   S:X  d  S;n
U R                  XS!9  U R                  UR                  S   5        UbW  U(       a  S<U-  n
O:U R                  R                  S:  a  S=OS>nS?R                  XÒ(       a  S@OSAU/5      n
U R                  XS!9  g g )BNr   r   r    r!   r"   r#   r&   r'   r(   r*   r,   r-   r.   r5   r6   )r/   r3   rC   r9   r   r/   r1   r3   r4   r7   r8   r:   r;   r<   r=   r>   r?   z+assignment to yield expression not possiblerk  rD   rE   rF   r   rI   rJ   r™   r)   rW   rK   rL   rM   rN   rO   rP   rY   rZ   )r   r   rš   rQ   rR   rS   rT   r§   rX   rö  z4starred assignment target must be in a list or tuplez)cannot use assignment expressions with %szcan'tÚcannotÚ Údeletez	assign to)r[   r]   r\   rd  r2   r^   Ú_check_assignmentra   rb   r=  r�   rƒ   r—   Újoin)r½   rc   Úis_deletionÚis_namedexprÚis_aug_assignrm  rd   rf   rg   rp   rÞ   rL   rø  rS  s                 rh   rV  Ú&_CheckAssignmentRule._check_assignment  s¨  € ØˆØ—	‘	ˆØ�IÓØŠEØ�fŒ_Ø ŸM™M¨"¨1Ð-‰MˆEÜ+¨DÓ1ˆEØŠ}Ø—;‘;Ð"2Ó2Ø×'Ñ'×/Ñ/°&Ó8Ø )šà!Ÿ?™?¨1Ñ-°Ó4Ø#×/Ñ/×7Ñ7¸'ÓAØ(6¢à(6¢à$1šEØ˜c“\ f°£mØ×'Ñ'×/Ñ/°&Ó8Ø )šà×+Ñ+×3Ñ3°gÓ=Ø$2šEà$2šEØ˜c“\¤c¨$¯-©-Ó&8¸1Ó&<Ø×'Ñ'×/Ñ/°&Ó8Ø )šà -šØ˜jÓ(Ø—{‘{ lÓ2Ø 2šØŸ™¨Ó7ö (Ø$¨›|Ø(/¡Ø!&¨#£Ø(. ð &,§_¡_±S°q°SÔ%9˜EØ ×2Ñ2°5À|Öcó &:ð ×.Ñ.¨vÀLÔ`ùØ�iÓØ�z‰z˜WÓ$Ø*’Ø×!Ñ!×)Ñ)¨FÓ2Ø!’ä˜DŸJ™J›’Ø�jÓ Ø�z‰z˜UÓ"Ø×#Ñ#×+Ñ+¨gÓ5Ø&’Eà&�EùØ�lÓ"Ø ŠEØÐ5Ó5ØŠEØ�lÓ"àCˆGØ�N‰N˜4ˆNÓ1Ø�f‹_Ø,ŠEØÐ,Ó,Ø�}‰}˜QÑ 7Ó*Ø*’Ø—‘˜rÑ" dÓ*Ø×#Ñ#×+Ñ+¨gÓ5Ø&’Eà(’Eð Ÿ-™-¨Ñ+�Ø—|‘| yÓ0Ð0Ð0Ø×#Ñ# AÑ&¨#Ó-Ø+’EÞ! g×&6Ñ&6°qÑ&9¸SÓ&@Ø'’EÞ! g×&6Ñ&6°qÑ&9¸SÓ&@Ø'�EùØ�iÓØ×Ñ×'Ñ'¨&Ó0Ø!’à-’ØÐDÓDØŸ™¡s¨ sÔ+�Ø×&Ñ& u¸<ÖWó ,à˜‹o %¨;Ó"6Ø˜EÓ!ØÐ,Ó,Ø×Ñ×'Ñ'¨'Ó1Ø"‘à$‘Ø�kÓ!ÞØ×#Ñ#×+Ñ+¨vÓ5Ø%‘Eà—N‘N 4Ð1T�NÒUà×#Ñ#×+Ñ+¨vÓ5Ø#Ÿ{™{‘Hä5°dÓ;�HØ—=‘=Ô(:Ó:Æ=Ø!)§¡°&Ó!8¸X×=NÑ=NÈqÑ=QÐUXÓ=XØT�GØ—N‘N 4�NÑ9à×"Ñ" 4§=¡=°Ñ#3Ô4àÑÞØEÈÑM‘à$(×$4Ñ$4×$<Ñ$<¸vÓ$E™È8�ØŸ(™( F½©HÈÐV[Ð#\Ó]�Ø�N‰N˜4ˆNÒ1ð ri   r  N)FFF)rý   rþ   rÿ   r   rV  r  r  ri   rh   rQ  rQ    s   † ÷C2ri   rQ  r   c                   ó   • \ rS rSrSrS rSrg)Ú_CompForRuleiž  z>asynchronous comprehension outside of an asynchronous functionc                 óú   • UR                   S   nUR                  S:w  a  U R                  U5        UR                  R                   S   S:H  =(       a)    U R                  R
                  R                  5       (       + $ )Nr'   Ú	expr_listr   Úasync)r]   r[   rV  r�   rd  r  rÆ   )r½   rc   r_  s      rh   r[  Ú_CompForRule.is_issue¢  sh   € Ø—M‘M !Ñ$ˆ	Ø�>‰>˜[Ó(Ø×"Ñ" 9Ô-à�{‰{×#Ñ# AÑ&¨'Ñ1÷ @Ø×$Ñ$×,Ñ,×=Ñ=Ó?Ô?ð	@ri   r  Nr€  r  ri   rh   r]  r]  ž  s   † àN€Gõ@ri   r]  rœ   c                   ó(   • \ rS rSrSrS\-   rS rSrg)Ú_ExprStmtRulei«  z+illegal expression for augmented assignmentz'{target}' is an c           	      óÀ  • UR                   S   nUS:g  =(       a    UR                  S:g  nU R                  R                  S::  d  U(       d(  UR                   S SS2    H  nU R	                  XCS9  M     U(       aä  [        UR                   S   5      nUR                  S	:X  dM  UR                  S
;   a>  UR                   S   R                  S:X  a!  UR                   S   R                   S   S:w  a  gU R                  R                  S::  a  gU R                  UU R                  R                  [        UR                   S   U R                  R                  5      S9S9  g g )Nr'   r  ré   r#   r™   r!   )rZ  r   rÐ   rF   rL   rK   r/   FT)Útargetrk  )
r]   r[   rd  r2   rV  r`   r=  Úextended_messager  r_   )r½   rc   Ú	augassignrZ  Úbefore_equalre  s         rh   r[  Ú_ExprStmtRule.is_issue°  s9  € Ø—M‘M !Ñ$ˆ	Ø! SÑ(×J¨Y¯^©^¸{Ñ-Jˆà×Ñ×#Ñ# vÓ-¶]Ø $§¡¨e¨r°!¨eÔ 4�Ø×&Ñ& |Ð&ÓQñ !5ö Ü# D§M¡M°!Ñ$4Ó5ˆFð �{‰{˜fÓ$Ø—‘Ð5Ó5Ø—O‘O AÑ&×+Ñ+¨yÓ8Ø—O‘O BÑ'×0Ñ0°Ñ3°sÓ:àà×Ñ×'Ñ'¨6Ó1Øà—‘ØØ ×1Ñ1×8Ñ8Ü,¨T¯]©]¸1Ñ-=¸t×?OÑ?O×?WÑ?WÓXð 9ð ð ò ð ri   r  N)rý   rþ   rÿ   r   rÞ   rf  r[  r  r  ri   rh   rc  rc  «  s   † à;€GØ*¨WÑ4Ðõri   rc  Ú	with_itemc                   ó   • \ rS rSrS rSrg)Ú_WithItemRuleiÎ  c                 ó@   • U R                  UR                  S   5        g ©Nr!   )rV  r]   )r½   rj  s     rh   r[  Ú_WithItemRule.is_issueÐ  s   € Ø×Ñ˜y×1Ñ1°!Ñ4Õ5ri   r  Nr  r  ri   rh   rl  rl  Î  s   † õ6ri   rl  ró  c                   ó   • \ rS rSrS rSrg)Ú_DelStmtRuleiÔ  c                 ód   • UR                   S   nUR                  S:w  a  U R                  USS9  g g )Nr'   r_  T)rX  ©r]   r[   rV  )r½   ró  rp   s      rh   r[  Ú_DelStmtRule.is_issueÖ  s6   € Ø×!Ñ! !Ñ$ˆà�:‰:˜Ó$Ø×"Ñ" 5°dÐ"Ò;ð %ri   r  Nr  r  ri   rh   rq  rq  Ô  s   † õ<ri   rq  r_  c                   ó   • \ rS rSrS rSrg)Ú_ExprListRuleiÝ  c                 óX   • UR                   S S S2    H  nU R                  U5        M     g rn  )r]   rV  )r½   r_  rQ   s      rh   r[  Ú_ExprListRule.is_issueß  s)   € Ø×&Ñ&¡s¨ sÔ+ˆDØ×"Ñ" 4Ö(ò ,ri   r  Nr  r  ri   rh   rv  rv  Ý  s   † õ)ri   rv  r   c                   ó   • \ rS rSrS rSrg)Ú_ForStmtRuleiä  c                 óf   • UR                   S   nUR                  S:w  a  U R                  U5        g g )Nr'   r_  rs  )r½   r   r_  s      rh   r[  Ú_ForStmtRule.is_issueæ  s1   € à×%Ñ% aÑ(ˆ	Ø�>‰>˜[Ó(Ø×"Ñ" 9Õ-ð )ri   r  Nr  r  ri   rh   rz  rz  ä  s   † õ.ri   rz  Únamedexpr_testc                   ó   • \ rS rSrS rSrg)Ú_NamedExprRuleií  c                 ó0  ^	^
• UR                   S   nS nU" U5      (       a  SnU R                  XS9  [        5       m	U	4S jm
U
4S jnU" U5      nU(       aª  U R                  R                  R
                  R                  S:X  a  SnU R                  XS9  T	 Vs/ s H   owR                  S	:X  d  M  UR                  PM"     nnUR                  S	:X  a.  UR                  U;   a  S
UR                  -  nU R                  XS9  U R                  USS9  g s  snf )Nr   c                 óx   •  U R                   nUc  U$ UR                  S:X  a  UR                  S   U :X  a  U$ Un M:  )Nr   r$   r€   )rc   r�   s     rh   Úsearch_namedexpr_in_comp_forÚ=_NamedExprRule.is_issue.<locals>.search_namedexpr_in_comp_forõ  sC   € ØØŸ™�Ø‘>Ø!�MØ—;‘; /Ó1°f·o±oÀaÑ6HÈDÓ6PØ!�MØ�ñ ri   zKassignment expression cannot be used in a comprehension iterable expressionrk  c                 óž   >• U R                   S:X  a  U nOU R                   S:X  a  U R                  S   nTR                  [        W5      5        g )Nr   r   r'   )r[   r]   rÎ   r¢   )r   Úcompr   s     €rh   Úprocess_comp_forÚ1_NamedExprRule.is_issue.<locals>.process_comp_for  sB   ø€ Ø�}‰} Ó/Ø‘Ø—‘ *Ó,Ø×(Ñ(¨Ñ+�Ø�O‰OÔ:¸4Ó@ÕAri   c                 ó¤   >• Sn U R                  SS5      n U c   U$ U R                   H#  nUR                  [        ;   d  M  T" U5        Sn  O   MM  )NFTr   r"   )r®   r]   r[   ru   )rc   Úhas_ancestorsrp   r†  s      €rh   Úsearch_all_comp_ancestorsÚ:_NamedExprRule.is_issue.<locals>.search_all_comp_ancestors  s_   ø€ Ø!ˆMØØ×+Ñ+¨OÐ=MÓN�Ø‘<Øð !Ð ð "Ÿ]œ]�EØ—z‘z¤_Õ4Ù(¨Ô/Ø(,˜Ùñ	 +ñ	 ri   r  zKassignment expression within a comprehension cannot be used in a class bodyrÐ   zGassignment expression cannot rebind comprehension iteration variable %rT)rY  )	r]   r=  r4   rd  r  rc   r[   ra   rV  )r½   r}  rf   r‚  rÞ   rŠ  Ú
search_allrQ   Únamelistr   r†  s            @@rh   r[  Ú_NamedExprRule.is_issueñ  s	  ù€ à×'Ñ'¨Ñ*ˆò	ñ (¨×7Ñ7ð dˆGØ�N‰N˜>ˆNÑ;ô “6ˆõ	Bõ	!ñ /¨~Ó>ˆ
ÞØ×Ñ×'Ñ'×,Ñ,×1Ñ1°ZÓ?ð;�à—‘˜~�Ñ?á/7ÓOªx t¿9¹9ÈÑ;N›
˜Ÿ
œ
©xˆHÐOØ�z‰z˜VÓ#¨¯©°xÓ(?ð
@ØBGÇ+Á+ñN�à—‘˜~�Ñ?à×Ñ˜u°4ÐÒ8ùò Ps   ÂDÂ2Dr  Nr  r  ri   rh   r  r  í  s   † õ=9ri   r  )Fr§  r³  rª  r1  Ú
contextlibr   Úparso.normalizerr   r   r   r   Úparso.python.tokenizer   r!  r—   r"  r#  ré  ru   r_   rr   r\   r|   r`   rƒ   rŒ   r‘   r”   rŸ   r¢   r¥   r¯   r±   r  rO  Úregister_rulerV  r_  rb  rg  rp  rz  rƒ  rŒ  r“  r™  r¶  r¿  rÅ  rÏ  rØ  rÜ  rá  rð  rü  r  r  r  r  r#  r,  r4  rQ  r]  rc  rl  rq  rv  rz  r  r  ri   rh   Ú<module>r“     s(  ðã Û 
Û Û 	Ý %ç FÓ FÝ 7àM€ØHÐ à€ØÐ ð€ð 0€òSòlòò;òò	òZòò"(ò0ò=ò
8ò/÷Fñ FôDq;�*ô q;ôh.�dô .ð ×Ñ ÐÐ-ô	3˜?ó 	3ó .ð	3ô#Ð(ô #ô
)�ô 
)ð ×Ñ ÐÐ-ô˜ó ó .ðð& ×Ñ ÐÐ)ô˜ó ó *ðð ×Ñ ÐÐ)ô˜
ó ó *ðð ×Ñ ÐÐ,ô�jó ó -ðð, ×Ñ ÐÐ(ô<�jó <ó )ð<ð ×Ñ ÐÐ'ô�*ó ó (ðð ×Ñ ÐÐ)ô H�Jó  Hó *ð HðF ×Ñ ÐÐ%ô	#�ó 	#ó &ð	#ð ×Ñ ÐÐ&ô	M�Zó 	Mó 'ð	Mð ×Ñ ÐÐ)Ø×Ñ ÐÐ*ô˜Jó ó +ó *ðð  ×Ñ 	ÐÐ*ô˜ó ó +ðð" ×ÑÐ 1ÐÐ2ô˜:ó ó 3ðð ×Ñ ÐÐ.ô]˜Jó ]ó /ð]ð ×Ñ ÐÐ.ô:˜
ó :ó /ð:ð. ×Ñ ÐÐ,ô!N�Jó !Nó -ð!NðH ×ÑÐ!3ÐÐ4ô@˜*ó @ó 5ð@ð> ×Ñ ÐÐ,ô!@�Zó !@ó -ð!@ðH ×Ñ 
ÐÐ+ô;�Jó ;ó ,ð;ð2 ×Ñ ÐÐ0ô?˜zó ?ó 1ð?ð ×Ñ 	ÐÐ*ô2>�:ó 2>ó +ð2>ðj ×Ñ ÐÐ-Ø×Ñ 	ÐÐ*ô(�Zó (ó +ó .ð(ð> ×Ñ 
ÐÐ+ôE�:ó Eó ,ðEð ×Ñ 	ÐÐ*ô%A�:ó %Aó +ð%AôPD2˜:ô D2ðN ×Ñ ÐÐ0ô	@Ð'ó 	@ó 1ð	@ð ×Ñ ÐÐ,ôÐ(ó ó -ððD ×Ñ ÐÐ,ô6Ð(ó 6ó -ð6ð
 ×Ñ 
ÐÐ+ô<Ð'ó <ó ,ð<ð ×Ñ ÐÐ,ô)Ð(ó )ó -ð)ð ×Ñ 
ÐÐ+ô.Ð'ó .ó ,ð.ð ×ÑÐ 0ÐÐ1ô@9Ð)ó @9ó 2ñ@9ri   