Ë
    pPêjqÞ  ã                  ó|  — d Z ddlmZ ddlZddlmZmZ ddlmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z- ddl.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5 ddl6m7Z7m8Z8m9Z9m:Z: ddl;m<Z< dd	l=m>Z>m?Z? dd
l@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQ ddlRmSZSmTZTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z`maZambZbmcZcmdZdmeZemfZfmgZgmhZh ddlimjZjmkZk ddllmmZmmnZn ddlompZp ddlqmrZrmsZsmtZtmuZumvZv ddlwmxZxmyZymzZzm{Z{m|Z| ddl}m~Z~mZm€Z€m�Z�m‚Z‚mƒZƒ ddl„m…Z…m†Z†m‡Z‡mˆZˆm‰Z‰mŠZŠm‹Z‹ ddlŒm�Z� ddlŽm�Z�m�Z�m‘Z‘ ddl’m“Z“m”Z” ddl•m–Z–m—Z—m˜Z˜ ddl™mšZšm›Z›mœZœm�Z� ddlžmŸZŸm Z m¡Z¡ ddl¢m£Z£m¤Z¤m¥Z¥m¦Z¦ ddl§m¨Z¨m©Z© dPd„ZªdQd„Z«dRd„Z¬	 	 	 	 	 	 	 	 dSd„Z­dTd„Z®dUd „Z¯dVd!„Z°dWd"„Z±dXd#„Z²dYd$„Z³dZd%„Z´d[d&„Zµdd'œ	 	 	 	 	 	 	 	 	 d\d(„Z¶dd'œ	 	 	 	 	 	 	 	 	 	 	 d]d)„Z·d^d*„Z¸d_d+„Z¹d`d,„Zºdad-„Z»dbd.„Z¼dcd/„Z½ddd0„Z¾ded1„Z¿dfd2„ZÀdgd3„ZÁdhd4„ZÂ	 	 	 	 	 	 	 	 	 	 	 	 did5„ZÃ	 	 	 	 	 	 	 	 	 	 	 	 did6„ZÄdjd7„ZÅ	 	 	 	 	 	 	 	 	 	 	 	 dkd8„ZÆ	 	 	 	 	 	 	 	 dld9„ZÇdmd:„ZÈdnd;„ZÉdod<„ZÊdpd=„ZËdqd>„ZÌdrd?„ZÍdsd@„ZÎdtdA„ZÏdudB„ZÐdudC„ZÑdvdD„ZÒdwdE„ZÓ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dxdF„ZÔdydG„ZÕdzdH„ZÖd{dI„Z×d{dJ„ZØ	 	 	 	 	 	 	 	 d|dK„ZÙd}dL„ZÚd~dM„ZÛddN„ZÜd€dO„ZÝy)�zµTransform mypy expression ASTs to mypyc IR (Intermediate Representation).

The top-level AST transformation logic is implemented in mypyc.irbuild.visitor
and mypyc.irbuild.builder.
é    )ÚannotationsN)ÚCallableÚSequence)&Ú	ARG_NAMEDÚARG_POSÚLDEFÚAssertTypeExprÚAssignmentExprÚ	BytesExprÚCallExprÚCastExprÚComparisonExprÚComplexExprÚConditionalExprÚDictExprÚDictionaryComprehensionÚEllipsisExprÚ
ExpressionÚ	FloatExprÚGeneratorExprÚ	IndexExprÚIntExprÚListComprehensionÚListExprÚ
MemberExprÚMypyFileÚNameExprÚOpExprÚRefExprÚSetComprehensionÚSetExprÚ	SliceExprÚStarExprÚStrExprÚ	SuperExprÚ	TupleExprÚTypeApplicationÚTypeInfoÚTypeVarLikeExprÚ	UnaryExprÚVar)ÚAnyTypeÚInstanceÚ
ProperTypeÚ	TupleTypeÚ	TypeOfAnyÚTypeTypeÚget_proper_type)ÚIS_FREE_THREADEDÚKEEP_ALIVE_SHORT_LIVEDÚKEEP_ALIVE_WHOLE_EXPRESSIONÚMAX_SHORT_INT)ÚClassIR)ÚFUNC_CLASSMETHODÚFUNC_STATICMETHOD)Ú	ERR_MAGICÚAssignÚ
BasicBlockÚCallCÚCastÚComparisonOpÚGetAttrÚIntegerÚLoadAddressÚLoadLiteralÚPrimitiveDescriptionÚPrimitiveOpÚRaiseStandardErrorÚRegisterÚTupleGetÚTupleSetÚValue)Ú	RInstanceÚRTupleÚRVecÚbool_rprimitiveÚint64_rprimitiveÚint_rprimitiveÚ
is_any_intÚis_bytearray_rprimitiveÚis_bytes_rprimitiveÚis_fixed_width_rtypeÚis_int64_rprimitiveÚis_int_rprimitiveÚis_list_rprimitiveÚis_none_rprimitiveÚis_object_rprimitiveÚis_str_rprimitiveÚ	is_taggedÚis_tuple_rprimitiveÚobject_rprimitiveÚset_rprimitiveÚshort_int_rprimitiveÚvec_api_by_item_type)Úis_borrow_friendly_exprÚprocess_conditional)Ú	IRBuilderÚint_borrow_friendly_op)Úconstant_fold_expr)Úcomprehension_helperÚ)raise_error_if_contains_unreachable_namesÚtranslate_list_comprehensionÚtranslate_set_comprehensionÚtranslate_vec_comprehension)Úconvert_format_expr_to_bytesÚconvert_format_expr_to_strÚjoin_formatted_bytesÚjoin_formatted_stringsÚtokenizer_printf_style)Úapply_dunder_specializationÚapply_function_specializationÚapply_method_specializationÚ#translate_getitem_with_bounds_checkÚtranslate_object_newÚtranslate_object_setattr)Úas_platform_intÚ
vec_appendÚ
vec_createÚvec_create_from_valuesÚvec_create_initializedÚvec_item_typeÚ	vec_slice)Úbytes_slice_op)Údict_get_item_opÚdict_new_opÚexact_dict_set_item_op)Úiter_opÚname_op)Úlist_append_opÚlist_extend_opÚlist_slice_op)Úellipsis_opÚget_module_dict_opÚnew_slice_opÚtype_op)Ú
set_add_opÚ	set_in_opÚset_update_op)Ústr_adjust_index_opÚstr_get_item_unsafe_as_int_opÚstr_range_check_opÚstr_slice_op)Úlist_tuple_opÚtuple_slice_opc                ót
  — t        |j                  t        «      rP|j                  j                  r:| j	                  |j                  j
                  |j                  j                  «      S |j                  €]| j                  t        t        j                  d|j
                  › d�|j                  «      «       | j                  |j                  «      S |j                  j                  }| j                  ||j                  «      x}r|S |dk(  r| j                  |j                  «      S |dk(  r| j                  |j                  «      S |dk(  r| j                  |j                  «      S |dv r| j                  |j                  «      S t        | ||j                  «      }|�|S t        |j                  t         «      r«|j                  j"                  r•| j$                  j'                  |«      xs |j                  j(                  }|€t+        t,        j.                  «      }| j1                  |j                  ||j
                  | j3                  |«      ||j                  «      }|�|S t        |j                  t4        «      rG|j                  j                  | j6                  v r%| j9                  |j                  j                  «      S |j:                  t<        k(  �rtt        |j                  t         «      r|j                  j>                  �sCt        |j                  t         «      rytA        | jC                  |«      «      r_|j                  jD                  rI| jG                  djI                  |j                  j
                  «      |j                  j                  «       t        |j                  t4        «      ri| jK                  tL        g |j                  «      }| jO                  tP        || jS                  |j                  j                  «      g|j                  «      }|S | jU                  | jW                  |d¬	«      |j                  «      S | jX                  �Ët        |j                  t         «      r±|j                  | jZ                  v r™| j\                  �G| j\                  j^                  r1| ja                  | jX                  |j
                  |j                  «      S | jO                  tP        | jX                  | jS                  |j
                  «      g|j                  «      S | jc                  |«      S )
Nzname "z" is not definedúbuiltins.Noneúbuiltins.Trueúbuiltins.False©ztyping.TYPE_CHECKINGztyping_extensions.TYPE_CHECKINGz=Local variable "{}" has inferred type None; add an annotationT)Úfor_read)2Ú
isinstanceÚnoder)   Úis_new_styleÚload_type_varÚnameÚlineÚaddrF   Ú
NAME_ERRORÚnoneÚfullnameÚload_builtinÚtrueÚfalseÚtransform_math_literalr+   Úis_finalÚtypesÚgetÚtyper,   r0   Úspecial_formÚemit_load_finalÚis_native_ref_exprr   ÚimportsÚload_moduleÚkindr   Úis_suppressed_importrX   Ú	node_typeÚis_inferredÚerrorÚformatÚcall_cr‡   Úprimitive_opr~   Úload_strÚreadÚget_assignment_targetÚclass_body_objÚclass_body_classvarsÚclass_body_irÚis_ext_classÚpy_get_attrÚload_global)	ÚbuilderÚexprr¢   ÚbuiltinÚmath_literalÚ
final_typeÚvalueÚmod_dictÚobjs	            ú]/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/mypyc/irbuild/expression.pyÚtransform_name_exprrÊ   £   s÷  € Ü�$—)‘)œ_Ô-°$·)±)×2HÒ2Hð ×$Ñ$ T§Y¡Y§^¡^°T·Y±Y·^±^ÓDÐDØ‡y�yÐØ�‰ÜÜ"×-Ñ-°¸¿	¹	°{ÐBRÐ/SÐUY×U^ÑU^óô	
ð
 �|‰|˜DŸI™IÓ&Ð&Ø�y‰y×!Ñ!€HØ×&Ñ& x°·±Ó;Ð;€wÐ;Øˆà�?Ò"Ø�|‰|˜DŸI™IÓ&Ð&Ø�?Ò"Ø�|‰|˜DŸI™IÓ&Ð&ØÐ#Ò#Ø�}‰}˜TŸY™YÓ'Ð'ØÐNÑNØ�}‰}˜TŸY™YÓ'Ð'ä)¨'°8¸T¿Y¹YÓG€LØÐØÐä�$—)‘)œSÔ! d§i¡i×&8Ò&8Ø—]‘]×&Ñ& tÓ,Ò>°·	±	·±ˆ
ØÐÜ ¤×!7Ñ!7Ó8ˆJØ×'Ñ'Ø�I‰I�x §¡¨G×,FÑ,FÀtÓ,LÈjÐZ^×ZcÑZcó
ˆð ÐØˆLä�$—)‘)œXÔ&¨4¯9©9×+=Ñ+=ÀÇÁÑ+PØ×"Ñ" 4§9¡9×#5Ñ#5Ó6Ð6ð ‡y�y”DÓ¤*¨T¯Y©Y¼Ô"<ÀÇÁ×A_ÓA_ô �t—y‘y¤#Ô&Ü" 7×#4Ñ#4°TÓ#:Ô;Ø—	‘	×%Ò%à�M‰MØO×VÑVØ—I‘I—N‘Nóð —	‘	—‘ô	ô �d—i‘i¤Ô*ð —~‘~Ô&8¸"¸d¿i¹iÓHˆHØ×&Ñ&Ü  8¨W×-=Ñ-=¸d¿i¹i×>PÑ>PÓ-QÐ"RÐTX×T]ÑT]óˆCð ˆJà—<‘< × =Ñ =¸dÈTÐ =Ó RÐTX×T]ÑT]Ó^Ð^ð 	×ÑÐ*Ü�t—y‘y¤#Ô&Ø�I‰I˜×5Ñ5Ñ5à× Ñ Ð,°×1FÑ1F×1SÒ1SØ×&Ñ& w×'=Ñ'=¸t¿y¹yÈ$Ï)É)ÓTÐTà×'Ñ'Ü  7×#9Ñ#9¸7×;KÑ;KÈDÏIÉIÓ;VÐ"WÐY]×YbÑYbóð ð ×Ñ˜tÓ$Ð$ó    c                óæ  — |j                   dv r| j                  |j                  «      S | j                  |«      }|�x|\  }}}| j                  j                  |«      xs |j                  }|€t        t        j                  «      }| j                  |||j                  |||j                  «      }|�|S t        | |j                   |j                  «      }|�|S t        |j                  t        «      rG|j                  j                   | j                   v r%| j#                  |j                  j                   «      S | j%                  |«      }	| j'                  |«      xr, t(         xs# t        |	t*        «      xs | j-                  |«      }
| j/                  |j0                  |
¬«      }t3        |j                  «      rJ|j                  dk(  r;| j4                  j6                  dk\  r"| j9                  t:        |g|j                  «      S t        |j                  t<        «      r1|j                  dk(  r"| j9                  t>        |g|j                  «      S tA        | j                  j                  |j0                  «      «      }t        |tB        «      r¨|jD                  j                  jF                  rˆ|jD                  j                  jH                  d   d   }|j                  |v rT| jJ                  jM                  |jO                  |j                  «      «      }| jQ                  |d|g|	|j                  «      S tS        | ||«       | j-                  |«      }tT        }|rE| jV                  d	kD  r6tY        | |«      tZ        k\  r#| j]                  |«      s| j^                  stZ        }|
xr | j`                  xs	 |tZ        k(  }| jJ                  jc                  ||j                  |	|j                  ||¬
«      S )Nr—   ©Ú
can_borrowÚ__name__)é   é   Ú	__class__Ú
namedtupleÚfieldsÚ__getitem__é   )ÚborrowÚborrow_scope)2r¢   r¥   rž   Úget_final_refr¨   r©   rª   r,   r0   r«   r¬   r�   r¦   r™   rš   r   r®   r¯   r²   Úis_native_attr_refr3   rM   Úis_final_native_attr_refÚacceptrÂ   rY   ÚoptionsÚcapi_versionr·   r‚   rK   r‰   r2   r/   Úpartial_fallbackÚis_named_tupleÚmetadatarÁ   Úload_intÚindexÚgen_method_callÚ-check_instance_attribute_access_through_classr4   Úexpression_depthÚvalue_borrow_scoper5   Úroot_is_reassignedÚexpr_has_suspendrÎ   Úget_attr)rÁ   rÂ   Úfinalr¢   Ú	final_varÚnativerÅ   rÆ   rÄ   ÚrtyperÎ   rÈ   ÚtyprÔ   rã   r§   Úscoper×   s                     rÉ   Útransform_member_exprrñ     sG  € à‡}�}ÐSÑSØ�}‰}˜TŸY™YÓ'Ð'ð ×!Ñ! $Ó'€EØÐØ&+Ñ#ˆ�)˜VØ—]‘]×&Ñ& tÓ,Ò>°	·±ˆ
ØÐÜ ¤×!7Ñ!7Ó8ˆJØ×'Ñ'Ø�x §¡°¸ÀTÇYÁYó
ˆð ÐØˆLä)¨'°4·=±=À$Ç)Á)ÓL€LØÐØÐä�$—)‘)œXÔ&¨4¯9©9×+=Ñ+=ÀÇÁÑ+PØ×"Ñ" 4§9¡9×#5Ñ#5Ó6Ð6à×Ñ˜dÓ#€Eð ×+Ñ+¨DÓ1ò ÜÐÒa¤
¨5´$Ó 7Òa¸7×;[Ñ;[Ð\`Ó;að ð �.‰.˜Ÿ™¨zˆ.Ó
:€Cô 	˜SŸX™XÔ&Ø�I‰I˜Ò#Ø�O‰O×(Ñ(¨GÒ3à×#Ñ#¤G¨c¨U°D·I±IÓ>Ð>ä�#—(‘(œIÔ&¨4¯9©9¸Ò+Cð ×#Ñ#¤G¨c¨U°D·I±IÓ>Ð>ô ˜'Ÿ-™-×+Ñ+¨D¯I©IÓ6Ó
7€CÜ�#”yÔ! c×&:Ñ&:×&?Ñ&?×&NÒ&NØ×%Ñ%×*Ñ*×3Ñ3°LÑAÀ(ÑKˆØ�9‰9˜ÑØ—O‘O×,Ñ,¨V¯\©\¸$¿)¹)Ó-DÓEˆEØ×*Ñ*¨3°À¸wÈÈtÏyÉyÓYÐYä1°'¸4ÀÔEà×/Ñ/°Ó5€HÜ"€Eñ 	Ø×$Ñ$ qÒ(Ü˜w¨Ó,Ô0KÒKð ×*Ñ*¨3Ô/ð ×(Ò(ä+ˆØÒ/˜W×/Ñ/ÒX°EÔ=XÑ4X€FØ�?‰?×#Ñ#ØˆT�Y‰Y˜˜tŸy™y°Àeð $ó ð rË   c                óD  — t        |t        «      r6|j                  r*t        |j                  t        | |j                  «      «      S t        |t        «      r"|j                  rt        | |j                  «      S t        |t        t        f«      r|j                  rt        S y)zÃCompute how long an existing borrowed value can safely be kept alive.

    Returns a KEEP_ALIVE_* constant (or a large value if 'v' is not borrowed and
    thus has no borrowing constraint).
    iç  )r™   r@   Úis_borrowedÚminrØ   rç   rÈ   r>   Úsrcr=   rE   r4   )rÁ   Úvs     rÉ   rç   rç   R  st   € ô �!”WÔ !§-¢-Ü�1—>‘>Ô#5°g¸q¿u¹uÓ#EÓFÐFÜ	�A”tÔ	 §¢ô " '¨1¯5©5Ó1Ð1Ü	�Aœœ{Ð+Ô	,°·²ô &Ð%ØrË   c                óä  — t        |j                  t        «      �rU|j                  j                  }t        |t        «      r0t        |j
                  t        «      r|j
                  j                  }t        |t        «      rî| j                  j                  j                  |«      }|�Æ|j                  r¹|j                  |j                  «      }|�›t        |j                  t        «      r€|j                  j                  si|j                  j                   sR| j#                  dj%                  |j                  «      |j&                  «       | j)                  d|j&                  «       yyyyyyyyy)zEReport error if accessing an instance attribute through class object.Nz:Cannot access instance attribute "{}" through class objectzO(Hint: Use "x: Final = ..." or "x: ClassVar = ..." to define a class attribute))r™   rÂ   r   rš   r1   Úitemr-   rª   r(   ÚmapperÚ
type_to_irr©   r¾   r�   r+   Úis_classvarr§   r´   rµ   rž   Únote)rÁ   rÂ   rï   rš   Úclass_irÚsyms         rÉ   rå   rå   e  s  € ô �$—)‘)œWÕ%Ø�y‰y�~‰~ˆÜ�cœ8Ô$¬°C·H±H¼hÔ)Gà—8‘8—=‘=ˆDÜ�dœHÔ%Ø—~‘~×0Ñ0×4Ñ4°TÓ:ˆHØÐ#¨×(=Ò(=Ø—h‘h˜tŸy™yÓ)�à�OÜ" 3§8¡8¬SÔ1ØŸH™H×0Ò0ØŸH™H×-Ò-à—M‘MØT×[Ñ[Ø ŸI™Ióð Ÿ	™	ô	ð —L‘Lð-àŸ	™	õð .ð 1ð 2ð $ð )>Ð#ð &ð &rË   c                óv  — | j                  d|j                  «      }|j                  j                  r4|j                  j                  D �cg c]  }| j	                  |«      ‘Œ }}�n|j
                  €J ‚| j                  |j
                  j                  «      }| j                  j                  |j
                     }t        | j                  j                  «      }t        |«      }| j                  j                  rZt        | j                   d   j#                  «       «      d   }	| j%                  |	| j                  j&                  j                  «      }n|j(                  st        |«      }||g}| j+                  |||j                  «      }
| j-                  |
|j.                  |j                  «      S c c}w )Nzbuiltins.superéÿÿÿÿé   )Úload_module_attr_by_fullnamerž   ÚcallÚargsrÜ   ÚinfoÚload_native_type_objectr¢   rù   rú   ÚiterrÁ   ÚnextÚfn_infoÚis_generatorÚlistÚ	symtablesÚvaluesr¹   Úfitemr¾   Úpy_callr¿   r�   )rÁ   ÚoÚsup_valÚargr  rï   ÚirÚiter_envÚvselfÚ	self_targÚress              rÉ   Útransform_super_exprr  …  sF  € à×2Ñ2Ð3CÀQÇVÁVÓL€GØ‡v�v‡{‚{Ø/0¯v©v¯{©{Ö;¨�—‘˜sÕ#Ð;ˆÒ;à�v‰vÐ!Ð!Ð!Ø×-Ñ-¨a¯f©f¯o©oÓ>ˆØ�^‰^×&Ñ& q§v¡vÑ.ˆÜ˜Ÿ™×,Ñ,Ó-ˆä˜H“~ˆØ�?‰?×'Ò'ä˜W×.Ñ.¨rÑ2×9Ñ9Ó;Ó<¸QÑ?ˆIØ—L‘L ¨G¯O©O×,AÑ,A×,FÑ,FÓG‰EØ—’Ü˜“NˆEØ�Uˆ|ˆØ
�/‰/˜' 4¨¯©Ó
0€CØ×Ñ˜s A§F¡F¨A¯F©FÓ3Ð3ùò! <s   ÁF6c                óR  — |j                   }t        |j                  t        «      rt	        | |j                  «      S t        |j                  t
        «      r%| j                  |j                  j                  «      S t        |t        t        f«      rNt        |j                  t        «      r4|j                  j                  r| j                  |j                  d   «      S t        |t        «      �r—t        |j                  t        «      �r||j                  }t        |j                  t         «      �rI|j                  j"                  dk(  �r/t%        |j&                  «      dk(  �r| j)                  |j&                  d   «      }t+        |«      }t-        | |«      }t%        |j                  «      dk(  s,t%        |j                  «      dk(  r8|j.                  t0        gk(  r$t3        | j4                  |d|j6                  |¬«      S t%        |j                  «      dk(  r|j.                  t8        gk(  s1t%        |j                  «      dk(  r5|j.                  t8        t0        gk(  rt;        | ||j                  d   |¬«      S |j                  }t        |t        «      rgt        |j                  t         «      r1t        |j                  j                  t<        «      rt?        | ||«      S tA        | ||«      xs tC        | ||«      S t        |tD        «      rtG        | ||«      S t?        | ||«      S )Nr   zlibrt.vecs.vecrÖ   ©Úcapacityé   )$Úcalleer™   Úanalyzedr   Útranslate_cast_exprr	   rÜ   rÂ   r   r   rš   r(   Ú
is_newtyper  r   r'   r   r¢   Úlenr¨   Útype_to_rtyperM   Ú_get_vec_capacityÚ	arg_kindsr   rx   rÁ   rž   r   Ú"translate_vec_create_from_iterabler   Útranslate_callrr   Útranslate_method_callr%   Útranslate_super_method_call)rÁ   rÂ   r  r  Ú	item_typeÚvec_typer  s          rÉ   Útransform_call_exprr+  Ÿ  sP  € Ø�[‰[€FÜ�$—-‘-¤Ô*Ü" 7¨D¯M©MÓ:Ð:Ü	�D—M‘M¤>Ô	2à�~‰~˜dŸm™m×0Ñ0Ó1Ð1ä�6œH¤jÐ1Ô2Ü�v—{‘{¤HÔ-Ø�K‰K×"Ò"ð �~‰~˜dŸi™i¨™lÓ+Ð+ä�&œ)Õ$¬°F·O±OÄ_Õ)UØ—?‘?ˆä�x—}‘}¤gÕ.Ø—‘×&Ñ&Ð*:Ó:Ü�H—N‘NÓ# qÓ(à×-Ñ-¨h¯n©n¸QÑ.?Ó@ˆIÜ˜I“ˆHÜ(¨°$Ó7ˆHÜ�4—9‘9‹~ Ò"¤s¨4¯9©9£~¸Ò':¸t¿~¹~ÔR[ÐQ\Ò?\ä! '§/¡/°8¸QÀÇ	Á	ÐT\Ô]Ð]Ü�d—i‘i“. AÒ%¨$¯.©.¼W¸IÒ*EÜ�D—I‘I“ !Ò#¨¯©¼7ÄIÐ:NÒ(Nô :Ø˜X t§y¡y°¡|¸hôð ð —‘ˆä�&œ*Ô%Ü�f—k‘k¤7Ô+´
¸6¿;¹;×;KÑ;KÌXÔ0Vä! '¨4°Ó8Ð8Ü*¨7°D¸&ÓAò 
ÔEZØ�T˜6óF
ð 	
ô 
�FœIÔ	&Ü*¨7°D¸&ÓAÐAä˜g t¨VÓ4Ð4rË   c                ó>  — t        |t        «      rt        | ||«      xs t        | ||«      S | j	                  |«      }|j
                  D �cg c]  }| j	                  |«      ‘Œ }}| j                  |||j                  |j                  |j                  ¬«      S c c}w )N©r$  Ú	arg_names)
r™   r   rq   Útranslate_refexpr_callrÜ   r  r  rž   r$  r.  )rÁ   rÂ   r  Úfunctionr  r  s         rÉ   r&  r&  Ñ  s”   € ä�&œ'Ô"Ü,¨W°d¸FÓCò 
ÔG]Ø�T˜6óH
ð 	
ð �~‰~˜fÓ%€HØ+/¯9©9Ö5 CˆG�N‰N˜3ÕÐ5€DÐ5Ø�?‰?Ø�$˜Ÿ	™	¨T¯^©^ÀtÇ~Á~ð ó ð ùò 6s   ÁBc                ó‚   — |j                   D �cg c]  }| j                  |«      ‘Œ }}| j                  |||«      S c c}w )zTranslate a non-method call.)r  rÜ   Úcall_refexpr_with_args)rÁ   rÂ   r  r  Ú
arg_valuess        rÉ   r/  r/  ß  s>   € ð 26·±Ö;¨#�'—.‘. Õ%Ð;€JÐ;à×)Ñ)¨$°¸
ÓCÐCùò <s   �<c           	     ó:  — | j                  |«      rt        | ||«      S t        |j                  t        «      �r-t        |j                  j
                  t        «      �r|j                  j
                  | j                  j                  v rÜ| j                  j                  |j                  j
                     j                  |j                  «      r–t        d„ |j                  D «       «      rzt        |j                  j
                  t        «      sJ |j                  j
                  «       ‚| j                  j                  |j                  j
                     }t        | |||«      S | j                  |«      rm| j                  |«      }|j                   D �cg c]  }| j                  |«      ‘Œ }}| j#                  |||j$                  |j                  |j&                  ¬«      S t        |j                  t        «      rÖ|j                  j
                  }t        |t(        «      r°|j*                  r¤t-        |j.                  «      }t        |t0        «      rt        |j2                  t4        «      re| j                  j                  j7                  |j2                  j.                  «      }	|	r*|	j8                  r|	j;                  «       rt        | |	||«      S | j=                  |j                  «      }
t?        | |||
«      }|�|S | j                  |j                  «      }|j                   D �cg c]  }| j                  |«      ‘Œ }}| jA                  ||j                  || j=                  |«      |j$                  |j                  |j&                  «      S c c}w c c}w )zvGenerate IR for an arbitrary call of form e.m(...).

    This can also deal with calls to module-level functions.
    c              3  ó8   K  — | ]  }|t         t        fv –— Œ y ­w©N)r   r   )Ú.0r°   s     rÉ   ú	<genexpr>z(translate_method_call.<locals>.<genexpr>ô  s   è ø€ ÒH°�œ¤)Ð,Ô,ÑHùs   ‚r-  )!r­   r&  r™   rÂ   r   rš   r(   rù   rú   Ú
has_methodr�   Úallr$  Úcall_classmethodÚis_module_member_exprrÜ   r  r  rž   r.  r+   Úis_clsr2   rª   r1   rø   r-   r©   r¾   Úhas_no_subclassesr²   rr   rä   )rÁ   rÂ   r  r  r0  r  r  rš   rï   rý   Úreceiver_typÚvalrÈ   s                rÉ   r'  r'  ç  s­  € ð
 ×!Ñ! &Ô)ä˜g t¨VÓ4Ð4ä�6—;‘;¤Õ(Ü�v—{‘{×'Ñ'¬Õ2Ø�K‰K×Ñ §¡× 9Ñ 9Ñ9Ø�N‰N×%Ñ% f§k¡k×&6Ñ&6Ñ7×BÑBÀ6Ç;Á;ÔOÜÑH¸¿¹ÔHÔHô ˜&Ÿ+™+×*Ñ*¬HÔ5ÐG°v·{±{×7GÑ7GÓGÐ5Ø�^‰^×&Ñ& v§{¡{×'7Ñ'7Ñ8ˆÜ ¨¨T°6Ó:Ð:Ø	×	&Ñ	& vÔ	.à—>‘> &Ó)ˆØ/3¯y©yÖ9¨�—‘˜sÕ#Ð9ˆÐ9Ø�‰Ø�d˜DŸI™I°·±È4Ï>É>ð ó 
ð 	
ô �f—k‘k¤7Ô+Ø—;‘;×#Ñ#ˆDÜ˜$¤Ô$¨¯ªÜ% d§i¡iÓ0�Ü˜c¤8Ô,´¸C¿H¹HÄhÔ1OØ&Ÿ~™~×8Ñ8×<Ñ<¸S¿X¹X¿]¹]ÓK�HÙ H×$9Ò$9¸h×>XÑ>XÔ>Zô  0°¸À4ÈÓPÐPà×(Ñ(¨¯©Ó5ˆô *¨'°4¸ÀÓNˆØˆ?ØˆJà�n‰n˜VŸ[™[Ó)ˆØ/3¯y©yÖ9¨�—‘˜sÕ#Ð9ˆÐ9Ø×&Ñ&ØØ�K‰KØØ×Ñ˜dÓ#Ø�I‰IØ�N‰NØ�N‰Nó
ð 	
ùò5 :ùò2 :s   ÆNÌ+Nc           	     ó$  — |j                  |j                  «      }g }|j                  j                  «       |j                  j                  «       }}|j
                  t        k(  r^|j                  rR|j                  | j                  |j                  «      «       |j                  dt        «       |j                  dd «       ||j                  D �cg c]  }| j                  |«      ‘Œ c}z  }|j                  r)| j                  j!                  |||||j"                  «      S | j                  |j$                  «      }	| j'                  |	|j                  || j)                  |«      |j"                  |j                  |j                  «      S c c}w )Nr   )Úmethod_declr�   r$  Úcopyr.  r°   r8   r¾   Úappendr  r¢   Úinsertr   r  rÜ   rÁ   r  rž   rÂ   rä   r²   )
rÁ   r  rÂ   r  Údeclr  r$  r.  r  rÈ   s
             rÉ   r;  r;  "  s.  € Ø�>‰>˜&Ÿ+™+Ó&€DØ€DØŸ>™>×.Ñ.Ó0°$·.±.×2EÑ2EÓ2Gˆy€Ià‡y�yÔ$Ò$¨¯ªØ�‰�G×3Ñ3°B·K±KÓ@ÔAØ×Ñ˜œGÔ$Ø×Ñ˜˜DÔ!Ø¨D¯I©IÖ6 SˆW�^‰^˜CÕ Ò6Ñ6€Dà	‡‚Ø�‰×#Ñ# D¨$°	¸9ÀdÇiÁiÓPÐPà�n‰n˜VŸ[™[Ó)ˆØ×&Ñ&ØØ�K‰KØØ×Ñ˜dÓ#Ø�I‰IØ�N‰NØ�N‰Nó
ð 	
ùò 7s   ÃFc                óJ  — |j                   �Dt        |j                  j                  «      dk7  r/t        |j                  j                  «      dk7  rt	        | ||«      S t        |j                  j                  «      dk(  rÎ|j                  j                  d   }t        |t        «      r0t        |j                  t        «      r|j                  j                  st	        | ||«      S |j                  j                  d   }t        |t        «      r2t        |j                  t        «      r|j                   |j                  urt	        | ||«      S | j                  j                  |j                      }|j                  dd  D ]  }|j                  |j                  v sŒ nÑ |j                  dk(  r%t!        | |t#        |j                  d«      «      }|r6|S |j                  dk(  r%t%        | |t#        |j                  d«      «      }|r|S |j&                  rO|j(                  €C|j*                  s7|j                  dk(  r(t        |j                  «      dk(  r| j-                  «       S t	        | ||«      S |j/                  |j                  «      }|j                  D �	cg c]  }	| j1                  |	«      ‘Œ }
}	|j2                  j5                  «       |j6                  j5                  «       }}|j8                  t:        k7  rþ|j                  dk7  rï| j=                  «       }|j8                  t>        k(  r#| jA                  tB        |g|jD                  «      }no| jF                  jH                  rYtK        | jL                  d   jO                  «       «      d   }| jQ                  || jF                  jR                  jD                  «      }|
jU                  d|«       |jU                  dtV        «       |jU                  dd «       | jX                  j                  ||
|||jD                  «      S c c}	w )	Nr   r  rÖ   Ú__new__Ú__setattr__Ú__init__r   r  )-r  r!  r  r  r&  r™   r   rš   r+   Úis_selfr(   rù   rú   Úmror�   Úmethod_declsrt   r   ru   r¾   Úbuiltin_baseÚinherits_pythonr¡   rB  rÜ   r$  rC  r.  r°   r9   Úselfr8   r·   r‰   rž   r	  r
  r  r  r  r¹   r  rE  r   rÁ   )rÁ   rÂ   r  Úself_argÚtyp_argr  ÚbaseÚresultrF  r  r3  r$  r.  r  r  s                  rÉ   r(  r(  <  s7  € Ø‡{�{Ðœs 6§;¡;×#3Ñ#3Ó4¸Ò9¼cÀ&Ç+Á+×BRÑBRÓ>SÐWXÒ>XÜ˜g t¨VÓ4Ð4ô ˆ6�;‰;×ÑÓ Ò!Ø—;‘;×#Ñ# AÑ&ˆä˜8¤XÔ.Ü˜hŸm™m¬SÔ1Ø—=‘=×(Ò(ä! '¨4°Ó8Ð8à—+‘+×"Ñ" 1Ñ%ˆä˜7¤HÔ-Ü˜gŸl™l¬HÔ5Ø�{‰{ '§,¡,Ñ.ä! '¨4°Ó8Ð8à	�‰×	"Ñ	" 6§;¡;Ñ	/€Bð —‘�q�r�
ò 5ˆØ�;‰;˜$×+Ñ+Ò+Ùð5ð �;‰;˜)Ò#Ü)¨'°4¼ÀFÇKÁKÐQZÓ9[Ó\ˆFÙØ�Ø�[‰[˜MÒ)Ü-Ø˜œz¨&¯+©+°}ÓEóˆFñ Ø�Ø�?Š?˜rŸ™Ð6¸r×?QÒ?QØ�{‰{˜jÒ(¬S°·±«^¸qÒ-@ð —|‘|“~Ð%Ü˜g t¨VÓ4Ð4à×Ñ˜FŸK™KÓ(€DØ15·±Ö;¨#�'—.‘. Õ%Ð;€JÐ;ØŸ>™>×.Ñ.Ó0°$·.±.×2EÑ2EÓ2Gˆy€Ià‡y�yÔ%Ò%¨$¯)©)°yÒ*@à—|‘|“~ˆØ�9‰9Ô(Ò(Ø×(Ñ(¬°5°'¸4¿9¹9ÓE‰EØ�_‰_×)Ò)ô ˜W×.Ñ.¨rÑ2×9Ñ9Ó;Ó<¸QÑ?ˆIØ—L‘L ¨G¯O©O×,AÑ,A×,FÑ,FÓGˆEØ×Ñ˜!˜UÔ#Ø×Ñ˜œGÔ$Ø×Ñ˜˜DÔ!à�?‰?×Ñ  j°)¸YÈÏ	É	ÓRÐRùò) <s   ÊP c                óÊ   — t        t        |j                  |j                  «      «      D ]7  \  }\  }}|t        k(  sŒ|dk(  sŒ| j                  |j                  |   «      c S  y)zIExtract the 'capacity' keyword argument value from a vec() call, or None.r  N)Ú	enumerateÚzipr$  r.  r   rÜ   r  )rÁ   rÂ   Úir°   r�   s        rÉ   r#  r#  ƒ  sX   € ä$¤S¨¯©¸¿¹Ó%HÓIò 0‰ˆ‰<ˆD�$Ø”9Ó ¨Ó!3Ø—>‘> $§)¡)¨A¡,Ó/Ò/ð0ð rË   r  c               ó¸  — |j                   }|j                  }t        |t        «      �r	|j                  dk(  rút        |j
                  t        «      r|j
                  }|j                  }n5t        |j                  t        «      r|j                  }|j
                  }nJ ‚t        |j                  «      dk(  sJ ‚| j                  |«      }t        |«      st        |«      rJ| j                  |«      }	| j                  |j                  d   «      }
t        | j                  ||	|
||¬«      S J |«       ‚t        |t        «      r`g }|j                  D ]5  }| j                  |«      }|j!                  | j#                  |||«      «       Œ7 t%        | j                  ||||¬«      S t        |t&        «      rt)        | ||j*                  |¬«      S t-        | ||||¬«      S )NÚ*rÖ   r   r  )rž   r)  r™   r   ÚopÚleftr   Úrightr!  Úitemsr²   rU   rV   rÜ   rz   rÁ   rD  Úcoercery   r   rj   Ú	generatorÚvec_from_iterable)rÁ   r*  r  r  rž   r)  ÚlstÚotherÚ
other_typeÚlengthÚinitr^  rø   rÆ   s                 rÉ   r%  r%  ‹  sŽ  € ð �8‰8€DØ×"Ñ"€IÜ�#”vÕ 3§6¡6¨S¢=Ü�c—h‘h¤Ô)Ø—(‘(ˆCØ—I‘I‰EÜ˜Ÿ	™	¤8Ô,Ø—)‘)ˆCØ—H‘H‰Eà�5Ü�3—9‘9‹~ Ò"Ð"Ð"Ø×&Ñ& uÓ-ˆ
ä˜zÔ*Ô.?À
Ô.KØ—^‘^ EÓ*ˆFØ—>‘> #§)¡)¨A¡,Ó/ˆDÜ)Ø—‘ ¨6°4¸Èôð ð 	!�jÓ ˆuÜ�#”xÔ ØˆØ—I‘Iò 	AˆDØ—N‘N 4Ó(ˆEØ�L‰L˜Ÿ™¨¨y¸$Ó?Õ@ð	Aô & g§o¡o°xÀÈÐW_Ô`Ð`Ü�#Ô(Ô)Ü*¨7°H¸c¿m¹mÐV^Ô_Ð_Ü˜W h°°TÀHÔMÐMrË   c          
     ó�  ‡ ‡‡‡— |j                   }t        j                  |«      }‰ j                  |«      }t	        |«      xs t        |«      xs t        |«      }|� |st        |«      st        |«      r|› d�}	g }
n4|€0|j                  «       dk(  r|rd}	t        ‰ j                  |‰«      g}
nd}	|	�u‰ j                  |«      }|�t        ‰ j                  |‰«      nt        dt        «      }
||gz   }t!        |	||dgt#        |«      z  dt$        ‰¬«      }‰ j'                  |«      S t)        |«      Š‰ j+                  ‰t-        ‰ j                  |d‰|¬«      ‰«       d‰› �}	t/        |	«      }‰ j1                  ||j                   «      Št3        |	«      }t4        |_        ||_        ||g dfg}d
ˆ ˆˆˆfd	„}t;        ‰ ||‰«       ‰S )z+Construct a vec from an arbitrary iterable.Nz.from_iterabler   zVecTApi.from_iterableF)Ústealsró   Ú
error_kindrž   r  Ú___tmp_c            	     óX   •— ‰ j                  ‰t        ‰ j                  ‰‰‰«      ‰«       y r6  )Úassignrw   rÁ   )rÁ   rž   ÚregÚvecs   €€€€rÉ   Úgen_inner_stmtsz*vec_from_iterable.<locals>.gen_inner_stmtsð  s"   ø€ Ø�‰�sœJ w§¡¸¸SÀ$ÓGÈÕNrË   ©ÚreturnÚNone)r)  r`   r©   r²   rY   rW   r\   rS   rR   Údepthr{   rÁ   rÜ   rv   rA   rO   r=   r!  r:   rŸ   rG   rl  rx   r+   Ú	add_localr   r   r°   rš   rf   )rÁ   r*  Úiterablerž   r  r)  Úapi_nameÚiterable_rtypeÚuse_c_from_iterabler�   Ú
extra_argsÚiterable_valÚcapr  r  Úvarrã   Úloop_paramsro  rm  rn  s   `  `               @@rÉ   ra  ra  ®  sí  û€ ð ×"Ñ"€IÜ#×'Ñ'¨	Ó2€HØ×&Ñ& xÓ0€Nä˜^Ó,ò 	/Ü˜nÓ-ò	/ä˜~Ó.ð ð
 ÐÙÜ˜~Ô.Ü" >Ô2ð �˜>Ð*ˆØ"$‰
Ø	Ð	˜hŸn™nÓ.°!Ò3Ñ8KØ&ˆÜ# G§O¡O°YÀÓEÐF‰
àˆØÐØ—~‘~ hÓ/ˆð Ð#ô ˜GŸO™O¨X°tÔ<ä˜Ô,Ó-ð 	ð
 ˜\¨3Ð/Ñ/ˆÜØØØØ�7œS ›YÑ&ØÜ Øô
ˆð �{‰{˜4Ó Ð ô �8Ó
€CØ‡N�N�3œ
 7§?¡?°H¸aÀÐPXÔYÐ[_Ô`Ø�T�FÐ€DÜ
ˆd‹)€CØ
×
Ñ
˜C ×!3Ñ!3Ó
4€CÜ�T‹N€EÜ€E„JØ€E„Jà	�˜"˜eÐ$ðP€K÷Oð Oô ˜ +¨ÀÔEØ€JrË   c                ó¨   — | j                  |j                  «      }| j                  |j                  «      }| j	                  |||j
                  «      S r6  )rÜ   rÂ   r"  rª   r_  rž   )rÁ   rÂ   rõ   Útarget_types       rÉ   r  r  ÷  s?   € Ø
�.‰.˜Ÿ™Ó
#€CØ×'Ñ'¨¯	©	Ó2€KØ�>‰>˜#˜{¨D¯I©IÓ6Ð6rË   c                ó¢   — t        | |«      }|r|S | j                  | j                  |j                  «      |j                  |j
                  «      S r6  )Útry_constant_foldÚunary_oprÜ   rÂ   r[  rž   )rÁ   rÂ   Úfoldeds      rÉ   Útransform_unary_exprr„     s@   € Ü˜w¨Ó-€FÙØˆà×Ñ˜GŸN™N¨4¯9©9Ó5°t·w±wÀÇ	Á	ÓJÐJrË   c                óT  — |j                   dv r| j                  |«      S |j                   dk(  rEt        |j                  t        t
        f«      r%t        | |j                  |j                  «      }|�|S t        | |«      }|r|S d}d}| j                  |j                  «      }| j                  |j                  «      }t        |«      rQt        |«      rF|j                   dk(  rt        | |«      }|j                   t        v rGt        | |j                  «      }d}n.t        |«      r#t        |«      rt        | |j                  «      }d}| j                  |j                  |¬«      }| j                  |j                  |¬«      }	| j!                  ||	|j                   |j"                  «      S )N)ÚandÚorú%Fz//TrÍ   )r[  Úshortcircuit_exprr™   r\  r$   r   Ú!translate_printf_style_formattingr]  r�  r²   rV   Útry_optimize_int_floor_dividerd   ra   rT   rÜ   Ú	binary_oprž   )
rÁ   rÂ   Úretrƒ  Úborrow_leftÚborrow_rightÚltyperî   r\  r]  s
             rÉ   Útransform_op_exprr‘    s_  € Ø‡w�w�-ÑØ×(Ñ(¨Ó.Ð.ð ‡w�w�#‚~œ* T§Y¡Y´¼)Ð0DÔEÜ/°¸¿¹ÀDÇJÁJÓOˆØˆ?ØˆJä˜w¨Ó-€FÙØˆà€KØ€Là×Ñ˜dŸi™iÓ(€EØ×Ñ˜dŸj™jÓ)€Eô ˜ÔÔ$5°eÔ$<Ø�7‰7�dŠ?Ü0°¸$Ó?ˆDØ�7‰7Ô,Ñ,Ü1°'¸4¿:¹:ÓFˆKØ‰LÜ	˜eÔ	$Ô)=¸eÔ)DÜ-¨g°t·z±zÓBˆØˆà�>‰>˜$Ÿ)™)°ˆ>Ó<€DØ�N‰N˜4Ÿ:™:°,ˆNÓ?€EØ×Ñ˜T 5¨$¯'©'°4·9±9Ó=Ð=rË   c                ó  — t        | |j                  «      }t        |t        «      s|S |j	                  «       dz
  }d|cxk  rdk  r?n |S |d|z  k(  r3t        d|j                  t        |«      «      }|j                  |_        |S |S )z?Replace // with a power of two with a right shift, if possible.rÖ   r   é   z>>)	re   r]  r™   ÚintÚ
bit_lengthr   r\  r   rž   )rÁ   rÂ   ÚdivisorÚshiftÚnew_exprs        rÉ   r‹  r‹  ,  s   € ä  ¨$¯*©*Ó5€GÜ�gœsÔ#ØˆØ×ÑÓ  1Ñ$€EØˆ5„~�2„~ð €Kð	 " a¨5¡jÒ1Ü˜$ §	¡	¬7°5«>Ó:ˆØŸ	™	ˆŒØˆØ€KrË   c                ó¬  — |j                   }| j                  |j                  «      }t        |«      xr t         xs t        |t        «      }t        |«      xs t        |t        «      xr t        | |«      }t        |t        «      st        | |j                  |gd|«      }|�|S | j                  |j                  |¬«      }t        |j                  t        «      rst        | |«      }t        |t        «      rWt        |j                  j                   «      }	|	 |cxk  r|	dz
  k  r)n n&| j#                  t%        |||j&                  «      «      S t        |t        «      rt)        | ||«      }
|
r|
S | j                  |j                   |xs |¬«      }| j*                  j-                  ||| j                  |«      |j&                  | j.                  ¬«      S )NrÕ   rÍ   rÖ   )rã   r²   rS  rW   r3   r™   rM   ra   r"   rp   rÜ   rª   rL   re   r”  r!  r¨   rŸ   rH   rž   Útry_gen_slice_oprÁ   Úget_itemrÎ   )rÁ   rÂ   rã   Ú	base_typerÎ   Úcan_borrow_baseÚspecializedrS  Úfolded_indexre  rÆ   Ú	index_regs               rÉ   Útransform_index_exprr¡  9  s“  € Ø�J‰J€EØ×!Ñ! $§)¡)Ó,€Iô % YÓ/ÒHÔ8HÐ4Hò ÌZØ”4óN€Jô 	˜9Ó%ÒD¬°I¼tÓ)Dò2ä
! '¨5Ó
1ð ô
 �eœYÔ'Ü1°'¸4¿9¹9ÀuÀgÈ}Ð^bÓcˆØÐ"ØÐà�>‰>˜$Ÿ)™)°ˆ>Ó@€Dä�$—)‘)œVÔ$Ü)¨'°5Ó9ˆÜ�l¤CÔ(Ü˜Ÿ™Ÿ™Ó)ˆFØˆw˜,Ô4¨&°1©*Õ4Ø—{‘{¤8¨D°,ÀÇ	Á	Ó#JÓKÐKä�%œÔ#Ü  ¨$°Ó6ˆÙØˆLà—‘˜tŸz™z°jÒ6SÀO�ÓT€IØ�?‰?×#Ñ#Øˆi˜×*Ñ*¨4Ó0°$·)±)È×HZÑHZð $ó ð rË   c                óB   — t        | |«      }|�| j                  |«      S y)zXReturn the constant value of an expression if possible.

    Return None otherwise.
    N)re   Úload_literal_value)rÁ   rÂ   rÆ   s      rÉ   r�  r�  _  s*   € ô
 ˜w¨Ó-€EØÐØ×)Ñ)¨%Ó0Ð0ØrË   c                óè  — |j                   ry|j                  r| j                  |j                  «      }nt        }|j                  r| j                  |j                  «      }nt        }t        |«      rþt        |«      ró|j                  r| j                  |j                  «      }n| j                  d«      }|j                  r| j                  |j                  «      }n| j                  t        «      }t        |j                  t        «      r#t        | j                  ||||j                  «      S t        t         t"        t$        g}| j                  j'                  ||||g|j                  «      S y)z·Generate specialized slice op for some index expressions.

    Return None if a specialized op isn't available.

    This supports obj[x:y], obj[:x], and obj[x:] for a few types.
    Nr   )ÚstrideÚbegin_indexr²   rP   Ú	end_indexrQ   rÜ   râ   r6   r™   rª   rM   r|   rÁ   rž   r…   r’   r�   r}   Úmatching_call_c)rÁ   rS  rã   Ú
begin_typeÚend_typeÚbeginÚendÚ
candidatess           rÉ   rš  rš  j  s  € ð ‡|‚|àà×ÒØ×&Ñ& u×'8Ñ'8Ó9‰
ä#ˆ
Ø‡‚Ø×$Ñ$ U§_¡_Ó5‰ä!ˆô �*Ô¤*¨XÔ"6Ø×ÒØ—N‘N 5×#4Ñ#4Ó5‰Eà×$Ñ$ QÓ'ˆEØ�?Š?Ø—.‘. §¡Ó1‰Cð ×"Ñ"¤=Ó1ˆCÜ�d—i‘i¤Ô&Ü˜WŸ_™_¨d°E¸3ÀÇ
Á
ÓKÐKÜ#¤^´\Ä>ÐRˆ
Ø�‰×.Ñ.¨z¸DÀ%ÈÐ;MÈuÏzÉzÓZÐZàrË   c                ó´  — t        «       t        «       t        «       }}}t        | |j                  ||«       | j                  |«      }t	        |«      }| j                  |«       | j                  j                  |j                  «      5  | j                  |j                  «      }| j                  |||j                  «      }| j                  t        |||j                  «      «       d d d «       | j                  |«       | j                  |«       | j                  j                  |j                  «      5  | j                  |j                  «      }| j                  |||j                  «      }| j                  t        |||j                  «      «       d d d «       | j                  |«       | j                  |«       |S # 1 sw Y   ŒÛxY w# 1 sw Y   Œ9xY wr6  )r<   rb   Úcondr²   rG   Úactivate_blockrÁ   Úborrow_regionrž   rÜ   Úif_exprr_  rŸ   r;   ÚgotoÚ	else_expr)	rÁ   rÂ   Úif_bodyÚ	else_bodyÚ
next_blockÚ	expr_typeÚtargetÚ
true_valueÚfalse_values	            rÉ   Útransform_conditional_exprr¼  ’  sd  € Ü%/£\´:³<ÄÃ˜
ˆY€Gä˜ §¡¨G°YÔ?Ø×!Ñ! $Ó'€Iä�iÓ €Fà×Ñ˜7Ô#Ø	�‰×	&Ñ	& t§y¡yÓ	1ñ ;Ø—^‘^ D§L¡LÓ1ˆ
Ø—^‘^ J°	¸4¿9¹9ÓEˆ
Ø�‰”F˜6 :¨t¯y©yÓ9Ô:÷;ð ‡L�L�Ôà×Ñ˜9Ô%Ø	�‰×	&Ñ	& t§y¡yÓ	1ñ <Ø—n‘n T§^¡^Ó4ˆØ—n‘n [°)¸T¿Y¹YÓGˆØ�‰”F˜6 ;°·	±	Ó:Ô;÷<ð ‡L�L�Ôà×Ñ˜:Ô&à€M÷;ð ;ú÷<ð <ús   Â	AGÄ7AGÇGÇGc                óø  — g }|D ]Ú  }t        | |«      }|�|j                  |«       Œ#t        |t        «      rd|j                  dk(  r|j                  d «       ŒT|j                  dk(  r|j                  d«       Œu|j                  dk(  sŒ…|j                  d«       Œ—t        |t
        «      sŒ¨t        | |j                  «      }|€ŒÁ|j                  t        |«      «       ŒÜ t        |«      t        |«      k7  ry |S )Nr”   r•   Tr–   F)
re   rD  r™   r   r¢   r&   Úset_literal_valuesr^  Útupler!  )rÁ   r^  r  rø   Úconst_valueÚtuple_valuess         rÉ   r¾  r¾  ­  sÕ   € Ø€FØò 3ˆÜ(¨°$Ó7ˆØÐ"Ø�M‰M˜+Ô&Øä�dœGÔ$Ø�}‰} Ò/Ø—‘˜dÕ#Ø—‘ /Ò1Ø—‘˜dÕ#Ø—‘Ð"2Ó2Ø—‘˜eÕ$Ü˜œiÕ(Ü-¨g°t·z±zÓBˆLØÑ'Ø—‘œe LÓ1Õ2ð!3ô$ ˆ6ƒ{”c˜%“jÒ àØ€MrË   c                ó„   — t        | |j                  «      }|�(| j                  t        t	        |«      t
        «      «      S y)a  Try to pre-compute a frozenset literal during module initialization.

    Return None if it's not possible.

    Supported items:
     - Anything supported by irbuild.constant_fold.constant_fold_expr()
     - None, True, and False
     - Tuple literals with only items listed above
    N)r¾  r^  rŸ   rC   Ú	frozensetr^   )rÁ   Úsr  s      rÉ   Úprecompute_set_literalrÅ  Ç  s8   € ô   ¨¯©Ó1€FØÐØ�{‰{œ;¤y°Ó'8¼.ÓIÓJÐJàrË   c                óè  ‡ ‡‡	‡
— ‰j                   d   }|dv rOt        ‰j                   «      dk(  r7t        ‰ |‰j                  d   ‰j                  d   ‰j                  «      }|�|S t        ‰j                   «      dk(  �r5|dv r7t        ‰ |‰j                  d   ‰j                  d   ‰j                  «      }|�|S |dv rL‰j                  d   }t        |t        «      r-|j                  dk(  rt        ‰ ‰j                  d   |dk7  ¬«      S ‰j                  d   }t        ‰ j                  |«      «      r�‰j                  d   }t        ‰ j                  |«      «      rX|t        v rPt        ‰ |«      }‰ j                  ||¬	«      }‰ j                  |d
¬	«      }‰ j                  |||‰j                  «      S ‰ j                  ‰«      Š	dˆ ˆˆ	ˆ
fd„Š
 ‰
d‰ j                  ‰j                  d   «      «      S )Nr   )Úinúnot inrÖ   )ú==ú!=)Úisúis notr”   rË  )ÚnegatedrÍ   Tc           
     óv  •‡ ‡‡— ‰ t        ‰j                  «      dz
  k(  rEt        ‰‰j                  ‰    ‰‰j                  ‰j                  ‰ dz      «      ‰j
                  «      S ‰j                  ‰j                  ‰ dz      «      Š‰j                  j                  d‰ˆˆˆ ˆˆfd„ˆˆ ˆfd„‰j
                  «      S )NrÖ   r†  c                 óP   •— t        ‰ ‰j                  ‰   ‰‰‰j                  «      S r6  )Útransform_basic_comparisonÚ	operatorsrž   )rÁ   ÚerX  r  Úprevs   €€€€€rÉ   ú<lambda>z7transform_comparison_expr.<locals>.go.<locals>.<lambda>  s$   ø€ Ô.¨w¸¿¹ÀA¹ÈÈdÐTU×TZÑTZÓ[€ rË   c                 ó   •—  ‰ ‰dz   ‰«      S )NrÖ   © )ÚgorX  r  s   €€€rÉ   rÔ  z7transform_comparison_expr.<locals>.go.<locals>.<lambda>  s   ø€ ‘B�q˜1‘u˜d“O€ rË   )r!  rÑ  rÐ  rÜ   Úoperandsrž   rÁ   Úshortcircuit_helper)rX  rÓ  r  rÁ   rÒ  r¸  r×  s   ``@€€€€rÉ   r×  z%transform_comparison_expr.<locals>.go  s�   û€ Ø”�A—K‘KÓ  1Ñ$Ò$Ü-Ø˜Ÿ™ Q™¨¨w¯~©~¸a¿j¹jÈÈQÉÑ>OÓ/PÐRS×RXÑRXóð ð �~‰~˜aŸj™j¨¨Q©Ñ/Ó0ˆØ�‰×2Ñ2ØØß[Ý#Ø�F‰Fó
ð 	
rË   )rX  r”  rÓ  rJ   rq  rJ   )rÑ  r!  Útry_specialize_in_exprrØ  rž   Ú try_specialize_str_index_comparer™   r   r¢   Útranslate_is_nonerV   r²   rd   ra   rÜ   rŒ  )rÁ   rÒ  Úfirst_oprT  Ú
right_exprÚ	left_exprrŽ  r\  r]  r¸  r×  s   ``       @@rÉ   Útransform_comparison_exprrà  Ø  sÍ  û€ ð �{‰{˜1‰~€HØÐ#Ñ#¬¨A¯K©KÓ(8¸AÒ(=Ü'¨°¸1¿:¹:Àa¹=È!Ï*É*ÐUVÉ-ÐYZ×Y_ÑY_Ó`ˆØÐØˆMä
ˆ1�;‰;Ó˜1Óð �|Ñ#Ü5Ø˜ 1§:¡:¨a¡=°!·*±*¸Q±-ÀÇÁóˆFð Ð!Ø�ð Ð'Ñ'ØŸ™ A™ˆJÜ˜*¤hÔ/°J×4GÑ4GÈ?Ò4Zä(¨°!·*±*¸Q±-ÈÐUYÑIYÔZÐZØ—J‘J˜q‘Mˆ	Ü˜W×.Ñ.¨yÓ9Ô:ØŸ™ A™ˆJÜ  ×!2Ñ!2°:Ó!>Ô?ØÔ5Ñ5Ü"9¸'À:Ó"N�KØ"Ÿ>™>¨)À˜>ÓL�DØ#ŸN™N¨:À$˜NÓG�EØ"×,Ñ,¨T°5¸(ÀAÇFÁFÓKÐKð ×!Ñ! !Ó$€I÷
ð 
ñ ˆa�—‘ §
¡
¨1¡Ó.Ó/Ð/rË   c           	     óF  — t        |t        «      rt        |t        «      s|}||}}t        |t        «      rLt        |t        «      r<t        |j                  «      dk7  s$t        | j                  |j                  «      «      sy| j                  |j                  «      }t        |«      st        |«      syt        | |j                  |j                  g|t        t        t        «      }|€yt        t!        |j                  «      t"        |«      }| j%                  ||||«      S )a±  Specialize `s[i] == 'x'` / `s[i] != 'x'` (and the symmetric form with
    operands swapped) into an int compare of codepoints.

    Returns None if the pattern doesn't match: the indexed base must be str,
    the index must be an integer, and the literal must be a 1-character str.
    Multi-character or empty literals fall through to the generic str compare
    (which still returns False for them, matching today's behavior).
    rÖ   N)r™   r   r$   r!  rÆ   rZ   r²   rS  rã   r[   rT   rs   r�   r�   rŽ   rA   Úordr_   rŒ  )	rÁ   r[  ÚlhsÚrhsrž   ÚtmpÚ
index_typeÚ	codepointÚ
literal_cps	            rÉ   rÛ  rÛ    sð   € ô �#”yÔ!¬*°S¼)Ô*DØˆØ˜ˆSˆô �sœIÔ&Ü˜#œwÔ'Üˆs�y‰y‹>˜QÒÜ  ×!2Ñ!2°3·8±8Ó!<Ô=àØ×"Ñ" 3§9¡9Ó-€JÜ�jÔ!Ô%9¸*Ô%EØô 4ØØ�‰Ø	�‰ˆØÜÜÜ%ó€Ið ÐØÜœ˜SŸY™Y›Ô)=¸tÓD€JØ×Ñ˜Y¨
°B¸Ó=Ð=rË   c           	     óx  — d }d }t        |t        t        f«      r:| j                  |«      }|j                  D �cg c]  }| j                  |«      ‘Œ }}n«t        | j                  |«      t        «      rŒ| j                  |«      }| j                  |«      }t        |j                  t        «      sJ ‚t        t        |j                  j                  «      «      D �	cg c]  }	| j                  t        ||	«      «      ‘Œ }}	|��¿|€J ‚t        |«      }
|
dkD  �r]|dk(  rd}nd}t        «       }|D ]s  }t        | ||||«      }| j                  j!                  |«      }t        «       }|dk(  r| j#                  |||«       n| j#                  |||«       | j%                  |«       Œu t'        t(        «      }t        «       }|dk(  r!| j+                  «       | j-                  «       f}n | j-                  «       | j+                  «       f}| j/                  ||d   |«       | j1                  |«       | j%                  |«       | j/                  ||d   |«       | j1                  |«       | j%                  |«       |S |
dk(  r|dk(  rd}nd}|d   }t        | ||||«      S |
dk(  r%|dk(  r| j+                  «       S | j-                  «       S t        |t2        «      r_t5        | |«      }|�Q| j                  j7                  t8        | j                  |«      |g|t(        «      }|dk(  r| j;                  |d|«      S |S y c c}w c c}	w )NrÖ   rÇ  rÉ  rÊ  r   rÈ  Únot)r™   r&   r   rÜ   r^  r²   rL   rª   Úranger!  r¨   rŸ   rH   r<   rÐ  rÁ   Ú
bool_valueÚadd_bool_branchr°  rG   rN   r¥   r¤   rl  r³  r!   rÅ  r·   r‹   r‚  )rÁ   r[  rã  rä  rž   r\  r^  rø   Ú	tuple_valrX  Ún_itemsÚcmp_opÚoutÚcmpÚbool_valr·  Ú
result_regr¬  r  r]  Úset_literalrT  s                         rÉ   rÚ  rÚ  B  sù  € ð €DØ $€Eä�#œ	¤8Ð,Ô-Ø�~‰~˜cÓ"ˆØ25·)±)Ö<¨$�—‘ Õ%Ð<ˆÑ<Ü	�G×%Ñ% cÓ*¬FÔ	3Ø�~‰~˜cÓ"ˆØ—N‘N 3Ó'ˆ	Ü˜)Ÿ.™.¬&Ô1Ð1Ð1Ü>CÄCÈ	ÏÉ×H\ÑH\ÓD]Ó>^Ö_¸�—‘œX i°Ó3Õ4Ð_ˆÐ_àÑØÐÐÐÜ�e“*ˆð �Q‹;Ø�TŠzØ‘à�Ü“,ˆCØò 3�Ü0°¸&À$ÈÈdÓS�Ø"Ÿ?™?×5Ñ5°cÓ:�Ü'›\�
Ø˜’:Ø×+Ñ+¨H°c¸:ÕFà×+Ñ+¨H°jÀ#ÔFØ×&Ñ& zÕ2ð3ô "¤/Ó2ˆJÜ“,ˆCØ�TŠzØ Ÿ™›¨'¯,©,«.Ð8‘à Ÿ™›¨¯©«Ð8�Ø�N‰N˜: v¨a¡y°$Ô7Ø�L‰L˜ÔØ×"Ñ" 3Ô'Ø�N‰N˜: v¨a¡y°$Ô7Ø�L‰L˜ÔØ×"Ñ" 3Ô'ØÐð ˜Š\Ø�TŠzØ‘à�Ø˜!‘HˆEÜ-¨g°v¸tÀUÈDÓQÐQð ˜Š\Ø�TŠzØ—}‘}“Ð&à—|‘|“~Ð%ô �#”wÔÜ,¨W°cÓ:ˆØÐ"Ø—_‘_×1Ñ1Ü˜GŸN™N¨3Ó/°Ð=¸tÄ_óˆFð �XŠ~Ø×'Ñ'¨°°tÓ<Ð<ØˆMàùòK =ùò
 `s   ºL2Ã"L7c                ó¦   — | j                  |d¬«      }| j                  || j                  «       |rd|j                  «      S d|j                  «      S )NTrÍ   rÌ  rË  )rÜ   rŒ  Únone_objectrž   )rÁ   rÂ   rÍ  rö   s       rÉ   rÜ  rÜ  ’  sO   € Ø�‰�t¨ˆÓ-€AØ×Ñ˜Q × 3Ñ 3Ó 5Á7°xÐVZ×V_ÑV_Ó`Ð`ÐPTÐVZ×V_ÑV_Ó`Ð`rË   c                ó&  — t        |j                  «      �r|t        j                  v rû|j                  |j                  k(  r[|j                  j                  rt        j                  |   }nt        j
                  |   }| j                  j                  ||||«      S t        |t        «      �r#|j                  j                  rt        j                  |   }nt        j
                  |   }| j                  j                  || j                  ||j                  |«      ||«      S t        |j                  «      r˜|t        j                  v r†t        |t        «      rv|j                  j                  rt        j                  |   }nt        j
                  |   }| j                  j                  | j                  ||j                  |«      |||«      S d}|dk(  rd\  }}n
|dk(  rd\  }}| j                  ||||«      }|r| j                  |d|«      }|S )z–Transform single comparison.

    'op' must be one of these:

       '==', '!=', '<', '<=', '>', '>='
       'in', 'not in'
       'is', 'is not'
    FrÌ  )rË  TrÈ  )rÇ  Trê  )rT   rª   r?   Ú
signed_opsÚ	is_signedÚunsigned_opsrÁ   Úcomparison_opr™   rA   r_  rŒ  r‚  )rÁ   r[  r\  r]  rž   Úop_idÚnegater¹  s           rÉ   rÐ  rÐ  —  sº  € ô ˜DŸI™IÕ&¨2´×1HÑ1HÑ+HØ�:‰:˜Ÿ™Ò"Ø�y‰y×"Ò"Ü$×/Ñ/°Ñ3‘ä$×1Ñ1°"Ñ5�Ø—?‘?×0Ñ0°°u¸eÀTÓJÐJÜ˜œwÕ'Ø�y‰y×"Ò"Ü$×/Ñ/°Ñ3‘ä$×1Ñ1°"Ñ5�Ø—?‘?×0Ñ0Ø�g—n‘n U¨D¯I©I°tÓ<¸eÀTóð ô 	˜UŸZ™ZÔ(Ø”,×)Ñ)Ñ)Ü�tœWÔ%à�:‰:×ÒÜ ×+Ñ+¨BÑ/‰Eä ×-Ñ-¨bÑ1ˆEØ�‰×,Ñ,Ø�N‰N˜4 §¡¨TÓ2°E¸5À$ó
ð 	
ð €FØ	ˆX‚~Ø‰
ˆ‰FØ	ˆxŠØ‰
ˆˆFà×Ñ˜t U¨B°Ó5€FáØ×!Ñ! &¨%°Ó6ˆØ€MrË   c                ó¦  — t        |j                  «      }|�º|\  }}g }t        |t        «      r|j                  }n!t        |t
        «      r|j                  |«       t        |t        «      r3t        | |||j                  «      }|�t        | |||j                  «      S y t        | |||j                  «      }|�t        | |||j                  «      S y r6  )ro   rÆ   r™   r&   r^  r   rD  r   rk   rž   rm   rl   rn   )rÁ   Úformat_exprrä  ÚtokensÚliteralsÚ
format_opsÚexprsÚsubstitutionss           rÉ   rŠ  rŠ  Ë  s×   € ô $ K×$5Ñ$5Ó6€FØÐØ%Ñˆ�*àˆÜ�cœ9Ô%Ø—I‘I‰EÜ˜œZÔ(Ø�L‰L˜Ôä�k¤9Ô-Ü8Ø˜ U¨K×,<Ñ,<óˆMð Ð(Ü+¨G°X¸}Èk×N^ÑN^Ó_Ð_ð ô 7Ø˜ U¨K×,<Ñ,<óˆMð Ð(Ü-¨g°xÀÐP[×P`ÑP`ÓaÐaàrË   c                óL   — | j                   j                  |j                  «      S r6  )rÁ   râ   rÆ   ©rÁ   rÂ   s     rÉ   Útransform_int_exprr  ë  s   € Ø�?‰?×#Ñ# D§J¡JÓ/Ð/rË   c                óL   — | j                   j                  |j                  «      S r6  )rÁ   Ú
load_floatrÆ   r  s     rÉ   Útransform_float_exprr  ï  s   € Ø�?‰?×%Ñ% d§j¡jÓ1Ð1rË   c                óL   — | j                   j                  |j                  «      S r6  )rÁ   Úload_complexrÆ   r  s     rÉ   Útransform_complex_exprr  ó  s   € Ø�?‰?×'Ñ'¨¯
©
Ó3Ð3rË   c                ó8   — | j                  |j                  «      S r6  )r¸   rÆ   r  s     rÉ   Útransform_str_exprr  ÷  s   € Ø×Ñ˜DŸJ™JÓ'Ð'rË   c                ó8   — | j                  |j                  «      S r6  )Úload_bytes_from_str_literalrÆ   r  s     rÉ   Útransform_bytes_exprr  û  s   € Ø×.Ñ.¨t¯z©zÓ:Ð:rË   c                ó†   — | j                  t        t        j                  t        j                  |j
                  «      «      S r6  )rŸ   rB   r†   rª   rõ   rž   ©rÁ   r  s     rÉ   Útransform_ellipsisr  ÿ  s(   € Ø�;‰;”{¤;×#3Ñ#3´[·_±_ÀaÇfÁfÓMÓNÐNrË   c                óD   — t        | |j                  |j                  «      S r6  )Ú_visit_list_displayr^  rž   r  s     rÉ   Útransform_list_exprr    s   € Ü˜w¨¯
©
°D·I±IÓ>Ð>rË   c           	     óH   — t        | || j                  t        t        |d«      S )NT)Ú_visit_displayÚnew_list_oprƒ   r„   )rÁ   r^  rž   s      rÉ   r  r  
  s%   € ÜØ�˜×+Ñ+¬^¼^ÈTÐSWóð rË   c                óv  — t        d„ |j                  D «       «      rt        | |«      S | j                  |«      }t	        |t
        «      r|j                  nt        gt        |j                  «      z  }g }t        |j                  |«      D ]ˆ  \  }}| j                  |«      }| j                  |||j                  «      }t	        |t        «      r4t        |j                  «      }	| j                  |	||j                  «       |	}|j!                  |«       ŒŠ | j#                  t%        ||j                  «      «      S )Nc              3  ó<   K  — | ]  }t        |t        «      –— Œ y ­wr6  )r™   r#   )r7  rø   s     rÉ   r8  z'transform_tuple_expr.<locals>.<genexpr>  s   è ø€ Ò
=¨$Œ:�dœH×%Ñ
=ùs   ‚)Úanyr^  Ú_visit_tuple_displayr²   r™   rL   r¨   r]   r!  rW  rÜ   r_  rž   rG   rª   rl  rD  rŸ   rI   )
rÁ   rÂ   Ú
tuple_typer¨   r^  Ú	item_exprr)  rm  rø   Útemps
             rÉ   Útransform_tuple_exprr$    s  € Ü
Ñ
=°$·*±*Ô
=Ô=ä# G¨TÓ2Ð2ð ×"Ñ" 4Ó(€Jô
 �j¤&Ô)ð 	×ÒäÐ ¤3 t§z¡z£?Ñ2ð 
ð €EÜ # D§J¡J°Ó 6ò Ñˆ	�9Ø�n‰n˜YÓ'ˆØ�~‰~˜c 9¨i¯n©nÓ=ˆÜ�dœHÔ%Ü˜DŸI™IÓ&ˆDØ�N‰N˜4  y§~¡~Ô6ØˆDØ�‰�TÕðð �;‰;”x  t§y¡yÓ1Ó2Ð2rË   c                óˆ   — t        | |j                  |j                  «      }| j                  t        |g|j                  «      S )z)Create a list, then turn it into a tuple.)r  r^  rž   r·   r‘   )rÁ   rÂ   Úval_as_lists      rÉ   r   r   +  s3   € ä% g¨t¯z©z¸4¿9¹9ÓE€KØ×Ñ¤°¨}¸d¿i¹iÓHÐHrË   c                óì   — g }|j                   D ]>  \  }}|�| j                  |«      nd}| j                  |«      }|j                  ||f«       Œ@ | j                  j	                  ||j
                  «      S )zAFirst accepts all keys and values, then makes a dict out of them.N)r^  rÜ   rD  rÁ   Ú	make_dictrž   )rÁ   rÂ   Úkey_value_pairsÚkey_exprÚ
value_exprÚkeyrÆ   s          rÉ   Útransform_dict_exprr-  1  sq   € à€OØ $§
¡
ò -Ñˆ�*Ø*2Ð*>ˆg�n‰n˜XÔ&ÀDˆØ—‘˜zÓ*ˆØ×Ñ  U˜|Õ,ð-ð
 �?‰?×$Ñ$ _°d·i±iÓ@Ð@rË   c           	     óp   — t        | |j                  | j                  t        t        |j
                  d«      S )NF)r  r^  Ú
new_set_oprŠ   rŒ   rž   r  s     rÉ   Útransform_set_exprr0  <  s-   € ÜØ�—‘˜W×/Ñ/´¼]ÈDÏIÉIÐW\óð rË   c                ó€  — g }|D ]a  }t        |t        «      r-|j                  d| j                  |j                  «      f«       Œ@|j                  d| j                  |«      f«       Œc d }	g }
|D ]A  \  }}|	€|s|r|
j                  |«       Œ|	€	 ||
|«      }	| j                  |r|n||	|g|«       ŒC |	€	 ||
|«      }	|	S )NTF)r™   r#   rD  rÜ   rÂ   r·   )rÁ   r^  Úconstructor_opÚ	append_opÚ	extend_oprž   Úis_listÚaccepted_itemsrø   rT  Úinitial_itemsÚstarredrÆ   s                rÉ   r  r  B  sß   € ð €NØò AˆÜ�dœHÔ%Ø×!Ñ! 4¨¯©¸¿	¹	Ó)BÐ"CÕDà×!Ñ! 5¨'¯.©.¸Ó*>Ð"?Õ@ð	Að  €FØ€MØ(ò Y‰ˆ�Øˆ>¡'©gØ× Ñ  Ô'Øàˆ>Ù# M°4Ó8ˆFà×Ñ©'™Y°yÀ6È5À/ÐSWÕXðYð €~Ù ¨tÓ4ˆà€MrË   c                ó  ‡ ‡— t        |j                  j                  t        «      r,‰ j	                  d|j
                  «       ‰ j                  «       S |j                  Š‰‰ j                  v rt        ‰ ‰ˆ ˆfd„«      S t        ‰ ‰«      S )Nú0Unpacking in comprehensions is not supported yetc                 ó   •— t        ‰ ‰«      S r6  ©rh   ©rÁ   Úgens   €€rÉ   rÔ  z.transform_list_comprehension.<locals>.<lambda>w  s   ø€ Ô">¸wÈÓ"L€ rË   )
r™   r`  rß  r#   r´   rž   r¡   Úcomprehension_to_fitemÚ#_translate_comprehension_with_scoperh   ©rÁ   r  r>  s   ` @rÉ   Útransform_list_comprehensionrB  p  sq   ù€ Ü�!—+‘+×'Ñ'¬Ô2Ø�‰ÐHÈ!Ï&É&ÔQØ�|‰|‹~ÐØ
�+‰+€CØ
ˆg×,Ñ,Ñ,Ü2Ø�SÔLó
ð 	
ô (¨°Ó5Ð5rË   c                ó  ‡ ‡— t        |j                  j                  t        «      r,‰ j	                  d|j
                  «       ‰ j                  «       S |j                  Š‰‰ j                  v rt        ‰ ‰ˆ ˆfd„«      S t        ‰ ‰«      S )Nr:  c                 ó   •— t        ‰ ‰«      S r6  )ri   r=  s   €€rÉ   rÔ  z-transform_set_comprehension.<locals>.<lambda>ƒ  s   ø€ Ô"=¸gÀsÓ"K€ rË   )
r™   r`  rß  r#   r´   rž   r¡   r?  r@  ri   rA  s   ` @rÉ   Útransform_set_comprehensionrE  |  sq   ù€ Ü�!—+‘+×'Ñ'¬Ô2Ø�‰ÐHÈ!Ï&É&ÔQØ�|‰|‹~ÐØ
�+‰+€CØ
ˆg×,Ñ,Ñ,Ü2Ø�SÔKó
ð 	
ô ' w°Ó4Ð4rË   c                ó”   ‡ ‡— t        ‰ ‰«      r‰ j                  «       S ‰‰ j                  v rt        ‰ ‰ˆ ˆfd„«      S t	        ‰ ‰«      S )Nc                 ó   •— t        ‰ ‰«      S r6  )Ú_dict_comp_bodyr  s   €€rÉ   rÔ  z4transform_dictionary_comprehension.<locals>.<lambda>�  s   ø€ ÄÐW^Ð`aÓGb€ rË   )rg   r¡   r?  r@  rH  r  s   ``rÉ   Ú"transform_dictionary_comprehensionrI  ˆ  sD   ù€ Ü0°¸!Ô<Ø�|‰|‹~ÐàˆG×*Ñ*Ñ*Ü2°7¸AÔ?bÓcÐcÜ˜7 AÓ&Ð&rË   c                ó@  ‡ ‡‡— ‰ j                  t        g ‰j                  «      Št        t	        ‰j
                  ‰j                  ‰j                  ‰j                  «      «      }dˆ ˆˆfd„}t        ‰ ||‰j                  «       ‰ j                  ‰‰j                  «      S )Nc                 ó`  •— ‰j                   �‰j                  ‰j                   «      } n,‰j                  d‰j                  «       ‰j	                  «       } ‰j                  ‰j
                  «      }‰j                  t        ‰j                  ‰‰j                  «      | |g‰j                  «       y )Nr:  )	r,  rÜ   r´   rž   r¡   rÆ   r¶   r€   r¹   )Úkrö   rÁ   Údr  s     €€€rÉ   ro  z(_dict_comp_body.<locals>.gen_inner_stmts•  s}   ø€ Ø�5‰5ÐØ—‘˜qŸu™uÓ%‰Aà�M‰MÐLÈaÏfÉfÔUØ—‘“ˆAØ�N‰N˜1Ÿ7™7Ó#ˆØ�‰Ô-°·±¸QÀÇÁÓ0GÈÈAÐ/NÐPQ×PVÑPVÕWrË   rp  )r¶   r   rž   r  rW  ÚindicesÚ	sequencesÚ	condlistsÚis_asyncrf   r¹   )rÁ   r  r}  ro  rM  s   ``  @rÉ   rH  rH  ‘  sm   ú€ Ø�‰”{ B¨¯©Ó/€AÜ”s˜1Ÿ9™9 a§k¡k°1·;±;ÀÇ
Á
ÓKÓL€K÷Xô ˜ +¨ÀÇÁÔGØ�<‰<˜˜1Ÿ6™6Ó"Ð"rË   c                óú   — ddl m} ddlm}m}m} | j                  |   } |||j                  ddd¬«      }| j                  |«      5   || «        || «        || «        |«       cddd«       S # 1 sw Y   yxY w)zGWrap a comprehension body with a lightweight scope for closure capture.r   )ÚFuncInfo)Úadd_vars_to_envÚfinalize_env_classÚsetup_env_classT)r  r�   Ú	is_nestedÚcontains_nestedÚis_comprehension_scopeN)	Úmypyc.irbuild.contextrS  Úmypyc.irbuild.env_classrT  rU  rV  r?  r�   Úenter_scope)	rÁ   rš   Úgen_bodyrS  rT  rU  rV  Úcomprehension_fdefr	  s	            rÉ   r@  r@  ¢  s   € õ /ß\Ñ\à ×7Ñ7¸Ñ=ÐÙØ Ø×$Ñ$ØØØ#ô€Gð 
×	Ñ	˜WÓ	%ñ Ù˜Ô Ù˜7Ô#Ù˜Ô Ù‹z÷	÷ ò ús   ÁA1Á1A:c                ó¼   ‡ — dˆ fd„} ||j                   «       ||j                  «       ||j                  «      g}‰ j                  t        ||j
                  «      S )Nc                óJ   •— | €‰j                  «       S ‰j                  | «      S r6  )r÷  rÜ   )r  rÁ   s    €rÉ   Úget_argz%transform_slice_expr.<locals>.get_arg¿  s&   ø€ Øˆ;Ø×&Ñ&Ó(Ð(à—>‘> #Ó&Ð&rË   )r  zExpression | Nonerq  rJ   )r¦  r§  r¥  r·   rˆ   rž   )rÁ   rÂ   ra  r  s   `   rÉ   Útransform_slice_exprrb  ¾  sL   ø€ õ'ñ �D×$Ñ$Ó%¡w¨t¯~©~Ó'>ÁÈÏÉÓ@TÐU€DØ×Ñ¤¨d°D·I±IÓ>Ð>rË   c           	     ó   ‡ ‡— t        ‰j                  t        «      r,‰ j                  d‰j                  «       ‰ j                  «       S ‰ j                  d‰j                  «       ‰‰ j                  v r1‰ j                  t        t        ‰ ‰ˆ ˆfd„«      g‰j                  «      S ‰ j                  t        t        ‰ ‰«      g‰j                  «      S )Nr:  z(Treating generator comprehension as listc                 ó   •— t        ‰ ‰«      S r6  r<  r  s   €€rÉ   rÔ  z*transform_generator_expr.<locals>.<lambda>Ó  s   ø€ Ô(DÀWÈaÓ(P€ rË   )r™   rß  r#   r´   rž   r¡   Úwarningr?  r·   r�   r@  rh   r  s   ``rÉ   Útransform_generator_exprrf  É  s¯   ù€ Ü�!—+‘+œxÔ(Ø�‰ÐHÈ!Ï&É&ÔQØ�|‰|‹~ÐØ‡O�OÐ>ÀÇÁÔGØˆG×*Ñ*Ñ*Ø×#Ñ#Üä3Ø˜QÔ Póðð
 �F‰Fó
ð 	
ð ×Ñ¤Ô*FÀwÐPQÓ*RÐ)SÐUV×U[ÑU[Ó\Ð\rË   c                ó¬   — | j                  |j                  «      }| j                  |j                  «      }| j	                  |||j
                  «       |S r6  )rÜ   rÆ   rº   r¹  rl  rž   )rÁ   r  rÆ   r¹  s       rÉ   Útransform_assignment_exprrh  Û  sA   € Ø�N‰N˜1Ÿ7™7Ó#€EØ×*Ñ*¨1¯8©8Ó4€FØ‡N�N�6˜5 !§&¡&Ô)Ø€LrË   c                óv  — |dk(  r | j                  t        j                  |«      S |dk(  r | j                  t        j                  |«      S |dk(  r | j                  t        j                  |«      S |dk(  r | j                  t        j
                  |«      S |dk(  r | j                  t        j                  |«      S y )Nzmath.ezmath.pizmath.infzmath.nanzmath.tau)r
  ÚmathrÒ  ÚpiÚinfÚnanÚtau)rÁ   r¢   rž   s      rÉ   r¦   r¦   â  s    € Ø�8ÒØ×!Ñ!¤$§&¡&¨$Ó/Ð/Ø�9ÒØ×!Ñ!¤$§'¡'¨4Ó0Ð0Ø�:ÒØ×!Ñ!¤$§(¡(¨DÓ1Ð1Ø�:ÒØ×!Ñ!¤$§(¡(¨DÓ1Ð1Ø�:ÒØ×!Ñ!¤$§(¡(¨DÓ1Ð1àrË   )rÁ   rc   rÂ   r   rq  rJ   )rÁ   rc   rÂ   r   rq  rJ   )rÁ   rc   rö   rJ   rq  r”  )rÁ   rc   rÂ   r   rï   zProperType | Nonerq  rr  )rÁ   rc   r  r%   rq  rJ   )rÁ   rc   rÂ   r   rq  rJ   )rÁ   rc   rÂ   r   r  r   rq  rJ   )rÁ   rc   rÂ   r   r  r   rq  rJ   )rÁ   rc   rÂ   r   r  r   rq  rJ   )
rÁ   rc   r  r7   rÂ   r   r  r   rq  rJ   )rÁ   rc   rÂ   r   r  r%   rq  rJ   )rÁ   rc   rÂ   r   rq  úValue | None)
rÁ   rc   r*  rM   r  r   r  ro  rq  rJ   )rÁ   rc   r*  rM   ru  r   rž   r”  r  ro  rq  rJ   )rÁ   rc   rÂ   r   rq  rJ   )rÁ   rc   rÂ   r*   rq  rJ   )rÁ   rc   rÂ   r   rq  rJ   )rÁ   rc   rÂ   r   rq  r   )rÁ   rc   rÂ   r   rq  rJ   )rÁ   rc   rÂ   r   rq  ro  )rÁ   rc   rS  rJ   rã   r"   rq  ro  )rÁ   rc   rÂ   r   rq  rJ   )rÁ   rc   r^  zSequence[Expression]rq  zlist[object] | None)rÁ   rc   rÄ  r!   rq  ro  )rÁ   rc   rÒ  r   rq  rJ   )rÁ   rc   r[  Ústrrã  r   rä  r   rž   r”  rq  ro  )rÁ   rc   rÂ   r   rÍ  Úboolrq  rJ   )rÁ   rc   r[  rp  r\  rJ   r]  rJ   rž   r”  rq  rJ   )rÁ   rc   r   zStrExpr | BytesExprrä  r   rq  ro  )rÁ   rc   rÂ   r   rq  rJ   )rÁ   rc   rÂ   r   rq  rJ   )rÁ   rc   rÂ   r   rq  rJ   )rÁ   rc   rÂ   r$   rq  rJ   )rÁ   rc   rÂ   r   rq  rJ   )rÁ   rc   r  r   rq  rJ   )rÁ   rc   rÂ   r   rq  rJ   )rÁ   rc   r^  úlist[Expression]rž   r”  rq  rJ   )rÁ   rc   rÂ   r&   rq  rJ   )rÁ   rc   rÂ   r   rq  rJ   )rÁ   rc   rÂ   r!   rq  rJ   )rÁ   rc   r^  rr  r2  z#Callable[[list[Value], int], Value]r3  rD   r4  rD   rž   r”  r5  rq  rq  rJ   )rÁ   rc   r  r   rq  rJ   )rÁ   rc   r  r    rq  rJ   )rÁ   rc   r  r   rq  rJ   )rÁ   rc   rš   z'GeneratorExpr | DictionaryComprehensionr]  zCallable[[], Value]rq  rJ   )rÁ   rc   rÂ   r"   rq  rJ   )rÁ   rc   r  r   rq  rJ   )rÁ   rc   r  r
   rq  rJ   )rÁ   rc   r¢   rp  rž   r”  rq  ro  )ÞÚ__doc__Ú
__future__r   rj  Úcollections.abcr   r   Ú
mypy.nodesr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   Ú
mypy.typesr,   r-   r.   r/   r0   r1   r2   Úmypyc.commonr3   r4   r5   r6   Úmypyc.ir.class_irr7   Úmypyc.ir.func_irr8   r9   Úmypyc.ir.opsr:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   Úmypyc.ir.rtypesrK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   Úmypyc.irbuild.ast_helpersra   rb   Úmypyc.irbuild.builderrc   rd   Úmypyc.irbuild.constant_foldre   Úmypyc.irbuild.for_helpersrf   rg   rh   ri   rj   Ú"mypyc.irbuild.format_str_tokenizerrk   rl   rm   rn   ro   Úmypyc.irbuild.specializerp   rq   rr   rs   rt   ru   Úmypyc.irbuild.vecrv   rw   rx   ry   rz   r{   r|   Úmypyc.primitives.bytes_opsr}   Úmypyc.primitives.dict_opsr~   r   r€   Úmypyc.primitives.generic_opsr�   r‚   Úmypyc.primitives.list_opsrƒ   r„   r…   Úmypyc.primitives.misc_opsr†   r‡   rˆ   r‰   Úmypyc.primitives.set_opsrŠ   r‹   rŒ   Úmypyc.primitives.str_opsr�   rŽ   r�   r�   Úmypyc.primitives.tuple_opsr‘   r’   rÊ   rñ   rç   rå   r  r+  r&  r/  r'  r;  r(  r#  r%  ra  r  r„  r‘  r‹  r¡  r�  rš  r¼  r¾  rÅ  rà  rÛ  rÚ  rÜ  rÐ  rŠ  r  r  r  r  r  r  r  r  r$  r   r-  r0  r  rB  rE  rI  rH  r@  rb  rf  rh  r¦   rÖ  rË   rÉ   ú<module>rŒ     sé  ðñõ #ã ß .÷'÷ '÷ '÷ '÷ '÷ '÷ '÷ '÷ '÷ '÷P÷ ñ ÷ó õ &ß @÷÷ ÷ ÷ õ ÷&÷ ÷ ÷ ÷ ÷ ÷0 Sß CÝ :÷õ ÷õ ÷÷ ÷÷ ñ õ 6ß [Ñ [ß 9ß SÑ Sß \Ó \ß IÑ I÷ó ÷ Eó
\%ó~Mó`ð&ØðØ(ðØ/@ðà	óó@4ó4/5ódóDó8
óv
ó4DSóNð VZñ NØð NØ"&ð NØ-7ð NØFRð Nà
ó NðR "ñFØðFàðFð ðFð ð	Fð ðFð óFóR7óKó!>óH
ó#óLó%óPó6ó4ó";0ð|)>Øð)>Øð)>Ø&0ð)>Ø7Að)>ØILð)>àó)>ðXMØðMØðMØ&0ðMØ7AðMØILðMàóMó`að
1Øð1Øð1Ø',ð1Ø5:ð1ØBEð1à
ó1ðhØðØ%8ðØ?Iðàóó@0ó2ó4ó(ó;óOó?óó3ó6IóAóðØðàðð 8ðð $ð	ð
 $ðð ðð ðð óó\	6ó	5ó'ó#ð"Øðà
1ðð "ðð ó	ó8?ó]ó$ôrË   