ó
    EñiŠ  ã                   óH  • S SK r 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  S SK	J
r
JrJr  S SKrS SKrS SKrS SKJs  Jr  S SKJr  S SKJr  S SKJrJr  S SKJr  \R:                  " \5      r S SK r S	\ RB                  S
\"4S jr#S r$\ " S S5      5       r%S\SSS
\4S jr& " S S\R"                  RN                  5      r( " S S5      r) " S S5      r*Sr+/ SQr,S SK.J/r0  S
\14S jr2S
\34S jr4S r5 " S  S!\5      r6 " S" S#\5      r7\5" 5         S$ r8g! \- a	    Sr+/ SQr, NFf = f)%é    N)ÚCallable)Ú	dataclass)ÚAnyÚOptionalÚUnion)ÚTorchDynamoException)Údynamo_timed)ÚArgumentÚTarget)Úsympy_interpÚeÚreturnc                 óp  ^
^• [         R                  " U 5      (       d  [        SU  35      eS[         R                  S[        [
           4S jn[         R                  " U 5      n [         R                  " U 5      (       d  [        SU  35      e[         R                  " U 5      (       d  [         R                  " U 5      (       a  U R                  5       $ U R                  5       nUR                  5       m[        U5      nU" U 5      nT[         R                  :X  a  SnGOïT[         R                  [         R                   4;   a  U
U4S jm
T
" U 5      nGOºT[         R"                  :X  aÉ  U R%                  5       S:w  a  [        S	U R%                  5        35      eU R'                  S
5      n[         R                  " U5      (       d  [        S5      eUR                  5       R                  5       n[         R(                  S[         R*                  S[         R,                  S0nXg;   a  Xv   nU" U5      nOÝT[         R.                  [         R0                  4;   aj  U R%                  5       S:w  a  [        S	U R%                  5        35      e[3        U R'                  S
5      5      nUR5                  S5      (       a  SUSS  -   $ U$ T[         R6                  :X  a;  U R%                  5       S
:w  a  [        SU R%                  5        35      e[        U5      $ US-   SR9                  U5      -   n	SU	R;                  5        S3$ )Nzunsupported expression type: r   r   c                 ó�   • [        U R                  5       5       Vs/ s H  n[        U R                  U5      5      PM     sn$ s  snf ©N)ÚrangeÚnum_argsÚz3strÚarg)r   Úis     Ú\/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torch/fx/experimental/validator.pyÚget_args_strÚz3str.<locals>.get_args_strA   s3   € Ü-2°1·:±:³<Ô-@ÓAÒ-@¨”E˜!Ÿ%™% ›(–OÑ-@ÑAÐAùÒAs   œ$Azcan't print Z3 expression: Úpowc           	      ó8  >• [         R                  " U 5      (       a"  U R                  5       R                  5       T:X  d  [	        U 5      /$ [        U R                  5       5       VVs/ s H$  nT" U R                  U5      5        H  nUPM     M&     snn$ s  snnf r   )Úz3Úis_appÚdeclÚkindr   r   r   r   )r   r   ÚxÚcollect_str_argsr   s      €€r   r!   Úz3str.<locals>.collect_str_args\   s{   ø€ ÜŸ	š	 !Ÿ™¨¯©«¯©«¸DÓ)@Ü! !›H˜:Ð%ô "' q§z¡z£|Ô!4ôâ!4˜AÙ!1°!·%±%¸³(×!;˜Aó á!;ñ Ù!4òð ùó s   Á'+Bé   zExpected 1 arg, got r   zExpected z3 appz!=Ú>Ú<z(/z(idivé   zExpected 0 args, got Ú Ú(Ú))r   Úis_exprÚAssertionErrorÚExprRefÚlistÚstrÚsimplifyr   Ú
ValueErrorÚis_int_valueÚis_rational_valueÚ	as_stringr   r   ÚZ3_OP_POWERÚ	Z3_OP_ADDÚ	Z3_OP_MULÚ	Z3_OP_NOTr   r   ÚZ3_OP_EQÚZ3_OP_LEÚZ3_OP_GEÚZ3_OP_TO_INTÚZ3_OP_TO_REALr   Ú
startswithÚZ3_OP_UNINTERPRETEDÚjoinÚrstrip)r   r   r   ÚopÚargsr   ÚargkindÚlogic_inverseÚargstrÚstringr!   r   s             @@r   r   r   =   s�  ù€ Ü�zŠz˜!�}‰}Ü Ð#@ÀÀÐ!DÓEÐEð	BœBŸJ™Jð 	B¬4´©9ô 	Bô
 �KŠK˜‹Nˆô �yŠy˜�|‰|ÜÐ:¸1¸#Ð>Ó?Ð?ä�?Š?˜1×Ñ¤×!5Ò!5°a×!8Ñ!8Ø—;‘;“=Ð à�v‰v‹xˆØ�y‰y‹{ˆÜ�‹YˆÙ˜A‹ˆà”2—>‘>Ó!ØŠBà”b—l‘l¤B§L¡LÐ1Ó1öñ $ AÓ&ŠDà”R—\‘\Ó!ð �z‰z‹|˜qÓ Ü$Ð';¸A¿J¹J»L¸>Ð%JÓKÐKØ—%‘%˜“(ˆCä—9’9˜S—>‘>Ü$Ð%6Ó7Ð7Ø—h‘h“j—o‘oÓ'ˆGô —‘˜TÜ—‘˜SÜ—‘˜SðˆMð Ó'Ø"Ñ+�Ù# CÓ(�øà”b—o‘o¤r×'7Ñ'7Ð8Ó8Ø�z‰z‹|˜qÓ Ü$Ð';¸A¿J¹J»L¸>Ð%JÓKÐKÜ˜1Ÿ5™5 ›8“_ˆFð × Ñ  ×&Ñ&Ø ¨¨ Ñ+Ð+ð ˆMà”R×+Ñ+Ó+Ø�z‰z‹|˜qÓ Ü$Ð'<¸Q¿Z¹Z»\¸NÐ%KÓLÐLÜ�t“9Ðà�c‘˜CŸH™H T›NÑ*ˆØ�6—=‘=“?Ð# 1Ð%Ð%ó    c                 óJ   ^ ^• [         R                  " T 5      U U4S j5       nU$ )Nc                 ó˜   >• Tb  [        S U 5       5      (       a  T" U6 $ [        S U 5       5      n[        R                  " T" U6 5      $ )Nc              3   óV   #   • U  H  n[        U[        R                  5      v •  M!     g 7fr   )Ú
isinstancer   ÚBoolRef)Ú.0r   s     r   Ú	<genexpr>Ú/_bitwise_op.<locals>.wrapper.<locals>.<genexpr>š   s!   é € ð -Ú7;°”
˜3¤§
¡
×+Ð+²tùs   ‚')c              3   óP   #   • U  H  n[         R                  " US 5      v •  M     g7f)é@   N)r   ÚInt2BV)rM   Úas     r   rN   rO   Ÿ   s   é € Ð @º4°a¤§¢¨1¨b×!1Ð!1º4ùs   ‚$&)ÚallÚtupler   ÚBV2Int)ÚselfrB   Úwrapped_argsÚbitwise_funcÚ	bool_funcs      €€r   ÚwrapperÚ_bitwise_op.<locals>.wrapper˜   sS   ø€ àÑ$¬ñ -Ù7;ó-÷ *ñ *ñ ! $Ð'Ð'ä Ñ @¹4Ó @Ó@ˆLÜ—9’9™\¨<Ð8Ó9Ð9rG   )Ú	functoolsÚwraps)rY   rZ   r[   s   `` r   Ú_bitwise_opr_   —   s%   ù€ Ü	�Š˜Ó	&õ	:ó 
'ð	:ð ˆrG   c                   óê  • \ rS rSr% S\S'   \S\R                  S\R                  4S j5       r\S\R                  S\R                  4S j5       r	S\R                  S\R                  4S	 jr
S
\R                  S\R                  S\R                  4S jrS\R                  S\R                  4S jrS
\R                  S\R                  S\R                  4S jrS\R                  S\R                  4S jrS\R                  S\R                  4S jrS\R                  S\R                  S\R                  4S jrS\R                  S\R                  S\R                  4S jrS\R                  S\R                  S\R                  4S jrS\R                  S\R                  S\R                  4S jrS\R                  S\R                  4S jrS\R                  S\R                  4S jrS\R                  S\R                  4S jr\" \R2                  \R4                  5      r\" \R8                  \R:                  5      r\" \R>                  S5      r\" \R@                  S5      r S r!g)!Ú_Z3Opsé©   ÚTranslationValidatorÚ	validatorr    r   c                 ó\   • U R                  5       (       a  U $ [        R                  " U 5      $ r   )Úis_realr   ÚToReal©r    s    r   Úto_realÚ_Z3Ops.to_real³   s   € àŸ	™	Ÿ™�1Ð5¬¯ª°1«Ð5rG   c                 ó\   • U R                  5       (       a  U $ [        R                  " U 5      $ r   )Úis_intr   ÚToIntrh   s    r   Úto_intÚ_Z3Ops.to_int¸   s   € àŸ™Ÿ
™
�1Ð3¬¯ª°«Ð3rG   rB   c                 ó   • [        U5      $ r   )Úsum)rW   rB   s     r   Úsym_sumÚ_Z3Ops.sym_sum¼   s   € Ü�t“9ÐrG   Ú	numeratorÚdenominatorc                 ó”   • U R                   R                  US:g  5        [        R                  U5      [        R                  U5      -  $ ©Nr   )rd   Úadd_assertionra   ri   ©rW   rt   ru   s      r   ÚdivÚ
_Z3Ops.divÀ   s6   € Ø�N‰N×(Ñ(¨¸Ñ)9Ô:Ü—>‘> )Ó,¬v¯~©~¸kÓ/JÑJÐJrG   Únumberc                 ó,   • [         R                  U5      $ r   )ra   rn   ©rW   r|   s     r   ÚfloorÚ_Z3Ops.floorÄ   s   € ä—=‘= Ó(Ð(rG   c                 óÔ   • UR                  5       =(       d    UR                  5       n[        R                  U R                  X5      5      nU(       a  [        R	                  U5      $ U$ r   )rf   ra   rn   rz   ri   )rW   rt   ru   Úcast_result_to_realÚresults        r   ÚfloordivÚ_Z3Ops.floordivÊ   sQ   € ð #,×"3Ñ"3Ó"5×"N¸×9LÑ9LÓ9NÐÜ—]‘] 4§8¡8¨IÓ#CÓDˆFö .A”6—>‘> &Ó)ÐLÀfÐLrG   c                 óz   • [         R                  " U R                  U5      U:  U R                  US-   5      U5      $ ©Nr#   )r   ÚIfr   r~   s     r   ÚceilÚ_Z3Ops.ceilÓ   s0   € Ü—5’5˜Ÿ™ FÓ+¨fÑ4°d·j±jÀÈ!ÁÓ6LÈfÓUÐUrG   c                 ót   • [         R                  " US:¬  U R                  U5      U R                  U5      5      $ rw   )r   rˆ   r   r‰   r~   s     r   ÚtruncÚ_Z3Ops.truncÖ   s+   € Ü—5’5˜ 1™ d§j¡j°Ó&8¸$¿)¹)ÀFÓ:KÓLÐLrG   rS   Úbc                 ó4   • [         R                  " X:„  X5      $ r   ©r   rˆ   ©rW   rS   rŽ   s      r   ÚmaxÚ
_Z3Ops.maxÙ   ó   € Ü—5’5˜™ Ó%Ð%rG   c                 ó4   • [         R                  " X:  X5      $ r   r�   r‘   s      r   ÚminÚ
_Z3Ops.minÜ   r”   rG   ÚpÚqc                 ó.   • XR                  X5      U-  -
  $ r   )r„   ©rW   r˜   r™   s      r   ÚmodÚ
_Z3Ops.modá   s   € Ø—}‘} QÓ*¨QÑ.Ñ.Ð.rG   ÚbaseÚexpc                 óv   • U R                   R                  [        R                  " US:g  US:„  5      5        X-  $ rw   )rd   rx   r   ÚOr©rW   rž   rŸ   s      r   r   Ú
_Z3Ops.powä   s/   € à�N‰N×(Ñ(¬¯ª¨t°q©y¸#À¹'Ó)BÔCØ‘9ÐrG   c                 ór   • [         R                  U5      nU R                  R                  US:¬  5        US-  $ )Nr   ç      à?)ra   ri   rd   rx   r~   s     r   ÚsqrtÚ_Z3Ops.sqrté   s4   € ô —^‘^ FÓ+ˆFð �N‰N×(Ñ(¨°1©Ô5Ø˜3‘;ÐrG   c                 ó.   • [         R                  " U5      $ r   )r   ÚAbsr~   s     r   ÚabsÚ
_Z3Ops.absò   s   € Ü—6’6˜&“>Ð!rG   c                 óÈ   • [         R                  " U R                  U[         R                  " S5      5      S:H  U R	                  US-
  5      U R                  US-   5      5      $ )Nr&   r¥   )r   rˆ   rœ   ÚIntValr‰   r   r~   s     r   Úround_to_intÚ_Z3Ops.round_to_intõ   sP   € ô —5’5Ø—‘˜¤§¢¨1£Ó.°#Ñ5Ø—	‘	˜& 3™,Ó'Ø—
‘
˜6 C™<Ó(óð rG   N© )"Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__annotations__Ústaticmethodr   ÚArithRefri   rn   rr   rz   r   r„   r‰   rŒ   r’   r–   rœ   r   r¦   rª   r®   r_   ÚoperatorÚand_ÚAndÚbitwise_andÚor_r¡   Ú
bitwise_orÚlshiftÚrshiftÚ__static_attributes__r°   rG   r   ra   ra   ©   sZ  ‡ ð *Ó)ð 
ð	6�r—{‘{ð 	6 r§{¡{ó 	6ó 
ð	6ð 
ð	4�b—k‘kð 	4 b§k¡kó 	4ó 
ð	4ð	 §¡ð 	°·±ô 	ð	K §¡ð 	K¸2¿;¹;ð 	KÈ2Ï;É;ô 	Kð	) §¡ð 	)°·±ô 	)ð	MØŸ[™[ð	MØ79·{±{ð	Mà�[‰[ô	Mð	V˜rŸ{™{ð 	V¨r¯{©{ô 	Vð	M §¡ð 	M°·±ô 	Mð	&˜Ÿ™ð 	&¨¯©ð 	&¸¿¹ô 	&ð	&˜Ÿ™ð 	&¨¯©ð 	&¸¿¹ô 	&ð
	/˜Ÿ™ð 	/¨¯©ð 	/¸¿¹ô 	/ð	˜BŸK™Kð 	¨b¯k©kð 	¸b¿k¹kô 	ð
	˜rŸ{™{ð 	¨r¯{©{ô 	ð	"˜bŸk™kð 	"¨b¯k©kô 	"ð	 r§{¡{ð 	°r·{±{ô 	ñ " (§-¡-°·±Ó8ˆÙ  §¡¨r¯u©uÓ5ˆ
Ù˜XŸ_™_¨dÓ3ˆÙ˜XŸ_™_¨dÓ3‹rG   ra   rA   rd   rc   c                 óŽ  ^• [         R                  1nX;   mU4S jn[        U5      n0 [         R                  U" [        R                  5      _[         R
                  U" UR                  5      _[         R                  U" UR                  5      _[         R                  U" UR                  5      _[         R                  U" UR                  5      _[         R                  U" UR                  5      _[         R                  U" UR                  5      _[         R                  U" UR                  5      _[         R                  U" UR                  5      _[         R"                  U" UR$                  5      _[&        R(                  U" UR(                  5      _[&        R*                  U" UR*                  5      _[&        R,                  U" UR,                  5      _[.        R0                  U" UR2                  5      _[.        R4                  U" UR6                  5      _[.        R8                  U" UR:                  5      _[.        R<                  U" UR<                  5      _[.        R>                  U" S 5      [.        R@                  U" URB                  5      [.        RD                  [.        RD                  0EnX;   a  XP   $ U" U 5      $ )Nc                 ó|   >^ ^• S[         R                  4U4S jjm[        R                  " T 5      U U4S j5       nU$ )Nr   c                 óD  >• [        U [        R                  [        R                  45      (       a  U $ [        U [        5      (       d  T(       a4  [        U [
        5      (       a  [        R                  " [	        U 5      5      $ [        U [
        [        R                  45      (       a  [        R                  " [        U 5      5      $ [        U [        [        R                  45      (       a  [        R                  " [        U 5      5      $ [        S[        U 5       35      e)Nzcan't lift type: )rK   r   r·   rL   ÚboolÚintÚBoolValÚsympyÚIntegerr­   ÚfloatÚFloatÚRealValr0   Útype)rS   Úas_bools    €r   ÚwrapÚ z3op.<locals>.lift.<locals>.wrap  s»   ø€ Ü˜a¤"§+¡+¬r¯z©zÐ!:×;Ñ;Ø�Hô ˜a¤×&Ñ&®7´zÀ!ÄS×7IÑ7IÜŸ:š:¤d¨1£gÓ.Ð.Ü˜a¤#¤u§}¡}Ð!5×6Ñ6ÜŸ9š9¤S¨£VÓ,Ð,Ü˜a¤%¬¯©Ð!5×6Ñ6ÜŸ:š:¤e¨A£hÓ/Ð/Ü Ð#4´T¸!³W°IÐ!>Ó?Ð?rG   c                  óÆ   >• [        U 5      S:X  a8  [        U S   [        [        45      (       a  [        U4S jU S    5       5      4nO[        U4S jU  5       5      nT" U6 $ )Nr#   r   c              3   ó4   >#   • U  H  nT" U5      v •  M     g 7fr   r°   ©rM   rS   rÎ   s     €r   rN   Ú6z3op.<locals>.lift.<locals>.wrapper.<locals>.<genexpr>,  s   øé € Ð)Cº7°a©$¨q¯'¨'º7ùó   ƒc              3   ó4   >#   • U  H  nT" U5      v •  M     g 7fr   r°   rÒ   s     €r   rN   rÓ   .  s   øé € Ð(?º$°Q©¨a¯¨º$ùrÔ   )ÚlenrK   r-   rU   )rB   rX   ÚfuncrÎ   s     €€r   r[   Ú#z3op.<locals>.lift.<locals>.wrapper(  sV   ø€ ô �t“9 “>¤j°°a±¼4Ä¸-×&HÑ&HÜ$)Ô)C¸4Àº7Ó)CÓ$CÐ#E‘Lä#(Ô(?¹$Ó(?Ó#?�Lá˜\Ð*Ð*rG   )r   r,   r]   r^   )r×   r[   rÎ   rÍ   s   ` @€r   ÚliftÚz3op.<locals>.lift  s9   ú€ ð@œ2Ÿ:™:÷ @ô �_Š_˜TÓ"õ+ó #ð+ð ˆNrG   c                 ó   • U (       a  U$ U$ r   r°   )rŽ   ÚtÚfs      r   Ú<lambda>Úz3op.<locals>.<lambda>J  s   € ¶Q°°¸A°rG   )#r¸   Únot_ra   r   ÚNotr¹   r»   r¼   r½   r¾   r¿   r„   Útruedivrz   rœ   rª   ÚbuiltinsÚroundr®   Úmathr‰   r   rŒ   ÚtorchÚ	sym_floatri   Úsym_maxr’   Úsym_minr–   rr   Úsym_iteÚ	_sym_sqrtr¦   Ú_assert)rA   rd   Úboolean_opsrÙ   ÚopsÚreplacement_maprÍ   s         @r   Úz3oprð     s#  ø€ ô
  —}‘}�oˆØÑ#ˆõ	ô4 �YÓˆð
ä�M‰M™4¤§¡›<ð
ô �M‰M™4 §¡Ó0ð
ô �L‰L™$˜sŸ~™~Ó.ð	
ô
 �O‰O™T #§*¡*Ó-ð
ô �O‰O™T #§*¡*Ó-ð
ô ×Ñ™t C§L¡LÓ1ð
ô ×Ñ™d 3§7¡7›mð
ô �L‰L™$˜sŸw™w›-ð
ô �L‰L™$˜sŸw™w›-ð
ô �N‰N™D ×!1Ñ!1Ó2ð
ô �I‰I‘t˜CŸH™H“~ð
ô �J‰J™˜SŸY™Y›ð
ô �J‰J™˜SŸY™Y›ð
ô" �O‰O™T #§+¡+Ó.ð#
ô$ �M‰M™4 §¡›=ð%
ô& �M‰M™4 §¡›=ð'
ô( �M‰M™4 §¡Ó,ð)
ô* �M‰M™4Ñ =Ó>Ü�O‰O™T #§(¡(›^ô �M‰Mœ5Ÿ=™=ñ3
ˆð6 ')Ó&;ˆÑ"ÐIÁÀbÃÐIrG   c                   ó¾   ^ • \ rS rSrS\R
                  R                  SS4U 4S jjrS\S\	\
S4   S	\\\4   S
\4S jrS\S\	\
S4   S	\\\4   S
\4U 4S jjrSrU =r$ )ÚPopulateValidatori[  Úgraphrd   rc   c                 ój   >• X l         [        R                  R                  0 US9n[        TU ]  USS9  g )N)Úrootró   T)Úgarbage_collect_values)rd   ræ   ÚfxÚGraphModuleÚsuperÚ__init__)rW   ró   rd   ÚmoduleÚ	__class__s       €r   rú   ÚPopulateValidator.__init__\  s5   ø€ à&ŒNô —X‘X×)Ñ)¨r¸Ð)Ð?ˆFÜ‰GÑ˜V¸DÐÒArG   ÚtargetrB   .Úkwargsr   c                 óh   • [         R                  " 5       S   nU R                  R                  U5      $ )NÚsymbol)Úfx_tracebackÚget_current_metard   Úz3var)rW   rþ   rB   rÿ   r  s        r   ÚplaceholderÚPopulateValidator.placeholderd  s,   € ô "×2Ò2Ó4°XÑ>ˆFØ—>‘>×'Ñ'¨Ó/Ð/rG   c                 óü   >• U[         R                  La#  [        TU ]  [	        XR
                  5      X#5      $ [        U5      S:w  a  [        S[        U5       S35      eU R
                  R                  US   5        g )Nr#   z'expected 1 argument on assertion. Got: r'   r   )	ræ   rì   rù   Úcall_functionrð   rd   rÖ   r+   Úadd_source_expr)rW   rþ   rB   rÿ   rü   s       €r   r  ÚPopulateValidator.call_functionj  sn   ø€ ð œUŸ]™]Ò*ä‘wÑ,¬T°&¿.¹.Ó-IÈ4ÓXÐXô �4‹y˜A‹~Ü$Ø=¼cÀ$»i¸[ÈÐJóð ð �N‰N×*Ñ*¨4°©7Õ3rG   )rd   )r±   r²   r³   r´   ræ   r÷   ÚGraphrú   r   rU   r
   Údictr.   r   r  r  rÀ   Ú__classcell__)rü   s   @r   rò   rò   [  s•   ø† ð	B %§(¡(§.¡.ð 	BÐ=S÷ 	Bð	0Ø ð	0Ø(-¨h¸¨mÑ(<ð	0ØFJÈ3ÐPSÈ8Ánð	0àô	0ð	4Ø ð	4Ø(-¨h¸¨mÑ(<ð	4ØFJÈ3ÐPSÈ8Ánð	4à÷	4õ 	4rG   rò   c                   óâ  • \ rS rSr1 Skr    S"S jrS\S\R                  S\	R                  4S jrS	\	R                  S\R                  S\	R                  4S
 jrS	\	R                  S\R                  S\	R                  4S jrS	\	R                  S\R                  S\	R                  4S jrS\	R                  S\	R                  S\	R                  4S jrS\	R                  S\	R                  S\	R                  4S jrS\	R                  S\	R                  S\	R                  4S jrS\	R                  S\	R                  S\	R                  4S jrS\	R                  S\	R                  S\	R                  4S jrS\	R                  S\	R                  S\	R                  4S jrS\	R                  S\	R                  S\	R                  4S jrS\	R                  S\	R                  S\	R                  4S jrS	\	R                  S\R                  S\	R                  4S jrS	\	R                  S\R                  S\	R                  4S jrS\S\4S jrS\R:                  S\	R                  4S  jrS!rg)#Ú	SympyToZ3i~  >   ÚeqÚgeÚgtÚleÚltÚneÚaddÚmulr   Nc                 óD   • Xl         [        U R                   5      U l        g r   )Ú
_validatorra   Ú_ops)rW   rd   s     r   rú   ÚSympyToZ3.__init__�  s   € ð (ŒOÜ˜tŸ™Ó/ˆD�IrG   ÚvalueÚdtypec                 óJ  • U[         R                  L a  [        R                  " [	        U5      5      $ U[         R
                  L a  [        R                  " [        U5      5      $ U[         R                  L a  [        R                  " [        U5      5      $ [        SU 35      e)Nzunsupported dtype (SympyToZ3): )ræ   Úint64r   r­   rÅ   ÚdoublerË   rÉ   rÄ   rÆ   r0   )rW   r  r  s      r   ÚconstantÚSympyToZ3.constantˆ  sr   € àœŸ™Ò#Ü—y’y¤ U£Ó,Ð,ØœŸ™Ò$Ü—z’z¤%¨£,Ó/Ð/ØœŸ
™
Ò"Ü—z’z¤$ u£+Ó.Ð.ÜÐ>¸u¸gÐFÓGÐGrG   r    c                 ót   • U[         R                  :X  a  [        R                  " U5      $ [	        SU S35      e)Nz	to_dtype z NYI)ræ   Úfloat64r   rg   ÚNotImplementedError©rW   r    r  s      r   Úto_dtypeÚSympyToZ3.to_dtype’  s0   € ØœŸ™Ó%Ü—y’y “|Ð#Ü%¨	°%°¸Ð&=Ó>Ð>rG   c                 ó.   • [         R                  " U5      $ r   )r   rm   r&  s      r   Útrunc_to_intÚSympyToZ3.trunc_to_int—  s   € Ü—8’8˜A“;ÐrG   c                 ó8   • U R                   R                  U5      $ r   )r  r®   r&  s      r   r®   ÚSympyToZ3.round_to_intš  s   € Ø—9‘9×)Ñ)¨!Ó,Ð,rG   rt   ru   c                 ó8   • U R                   R                  X5      $ r   ©r  rz   ry   s      r   Úint_truedivÚSympyToZ3.int_truediv�  ó   € ð —9‘9—=‘= Ó8Ð8rG   c                 ó8   • U R                   R                  X5      $ r   r/  ry   s      r   râ   ÚSympyToZ3.truediv¢  r2  rG   c                 ó8   • U R                   R                  X5      $ r   ©r  r„   ry   s      r   r„   ÚSympyToZ3.floordiv§  s   € ð —9‘9×%Ñ% iÓ=Ð=rG   c                 ó8   • U R                   R                  X5      $ r   r6  ry   s      r   rz   ÚSympyToZ3.div¬  s   € Ø—9‘9×%Ñ% iÓ=Ð=rG   rž   rŸ   c                 ó8   • U R                   R                  X5      $ r   ©r  r   r¢   s      r   r   ÚSympyToZ3.pow¯  ó   € Ø—9‘9—=‘= Ó+Ð+rG   c                 ó8   • U R                   R                  X5      $ r   r;  r¢   s      r   Úpow_by_naturalÚSympyToZ3.pow_by_natural²  r=  rG   r˜   r™   c                 ó8   • U R                   R                  X5      $ r   ©r  rœ   r›   s      r   rœ   ÚSympyToZ3.modµ  ó   € Ø—9‘9—=‘= Ó&Ð&rG   c                 ó8   • U R                   R                  X5      $ r   rB  r›   s      r   Ú
python_modÚSympyToZ3.python_mod¸  rD  rG   c                 ó8   • U R                   R                  U5      $ r   )r  r‰   r&  s      r   Úceil_to_intÚSympyToZ3.ceil_to_int»  s   € Ø—9‘9—>‘> !Ó$Ð$rG   c                 ó8   • U R                   R                  U5      $ r   )r  r   r&  s      r   Úfloor_to_intÚSympyToZ3.floor_to_int¾  s   € Ø—9‘9—?‘? 1Ó%Ð%rG   Únamec                 ó  • [         R                  [         R                  [         R                  U R                  R
                  U R                  R                  U R                  R                  U R                  R                  U R                  R                  U R                  R                  U R                  R                  U R                  R                  S.nX;   a  X!   $ XR                  ;   a  [        [        U5      $ [!        SU 35      e)N)r¹   r¼   rà   r»   r½   r¾   r¿   r   r‰   ÚminimumÚmaximumzunhandled operator: )r   rº   r¡   rá   r  r»   r½   r¾   r¿   r   r‰   r–   r’   ÚOPERATOR_HANDLESÚgetattrr¸   ÚAttributeError)rW   rN  ÚREPLACEMENTs      r   Ú__getattr__ÚSympyToZ3.__getattr__Á  s»   € äŸ™Ü—u‘uÜŸ™Ø#Ÿy™y×4Ñ4Ø"Ÿi™i×2Ñ2ØŸ)™)×*Ñ*ØŸ)™)×*Ñ*ØŸ™Ÿ™ØŸ	™	Ÿ™ØŸ9™9Ÿ=™=ØŸ9™9Ÿ=™=ñˆKð Ó"Ø"Ñ(Ð(Ø×,Ñ,Ó,Üœx¨Ó.Ð.Ü Ð#7¸°vÐ!>Ó?Ð?rG   Úexprc                 óB   • [        X R                  R                  U5      $ r   )r   r  Úsymbols)rW   rX  s     r   ÚrunÚSympyToZ3.runÖ  s   € Ü §o¡o×&=Ñ&=¸tÓDÐDrG   )r  r  )rd   rc   r   N) r±   r²   r³   r´   rR  rú   r   ræ   r  r   r,   r!  r·   r'  r*  r®   r0  râ   r„   rz   r   r?  rœ   rF  rI  rL  r.   rV  rÇ   ÚBasicr[  rÀ   r°   rG   r   r  r  ~  sp  † ÚMÐð	0à-ð	0ð ô	0ð	H #ð 	H¨e¯k©kð 	H¸b¿j¹jô 	Hð	?˜bŸk™kð 	?°%·+±+ð 	?À"Ç+Á+ô 	?ð
	 "§+¡+ð 	°e·k±kð 	ÀbÇkÁkô 	ð	- "§+¡+ð 	-°e·k±kð 	-ÀbÇkÁkô 	-ð	9ØŸ[™[ð	9Ø79·{±{ð	9à�[‰[ô	9ð
	9ØŸ[™[ð	9Ø79·{±{ð	9à�[‰[ô	9ð
	>ØŸ[™[ð	>Ø79·{±{ð	>à�[‰[ô	>ð
	> §¡ð 	>¸2¿;¹;ð 	>È2Ï;É;ô 	>ð	,˜BŸK™Kð 	,¨b¯k©kð 	,¸b¿k¹kô 	,ð	, r§{¡{ð 	,¸¿¹ð 	,ÈÏÉô 	,ð	'˜Ÿ™ð 	'¨¯©ð 	'¸¿¹ô 	'ð	' §¡ð 	'°·±ð 	'ÀÇÁô 	'ð	% §¡ð 	%°U·[±[ð 	%ÀRÇ[Á[ô 	%ð	& "§+¡+ð 	&°e·k±kð 	&ÀbÇkÁkô 	&ð	@ Cð 	@¨Cô 	@ð*	E˜EŸK™Kð 	E¨B¯J©J÷ 	ErG   r  c                   ó~  • \ rS rSrSS jrS\R                  S\R                  4S jr	S\R                  S\
S\R                  4S jrS	\R                  SS4S
 jrS	\R                  S\R                  4S jrS	\R                  SS4S jrSS jrS	\\R                  \R                  4   SS4S jrSS jrSS jrSrg)rc   iç  r   Nc                 ó–   • [         R                  S5        0 U l        [        5       U l        [        5       U l        [        5       U l        g )Nznew instance)ÚlogÚdebugrZ  ÚsetÚ_source_exprsÚ_target_exprsÚ_assertions©rW   s    r   rú   ÚTranslationValidator.__init__è  s;   € Ü�I‰I�nÔ%ð <>ˆDŒLô
 36³%ˆDÔô
 36³%ˆDÔô 14³ˆDÕrG   r  c                 óZ   • XR                   ;  a  [        SU 35      eU R                   U   $ )NzZ3 variable not found for: )rZ  r+   )rW   r  s     r   r  ÚTranslationValidator.z3varý  s.   € ØŸ\™\Ó)Ü$Ð'BÀ6À(Ð%KÓLÐLØ—<‘< Ñ'Ð'rG   rÌ   c                 ó*  • XR                   ;   a  U R                   U   $ [        R                  SUR                  UR                  5        U[
        L aP  [        R                  " UR                  5      nUR                  (       a  U R                  R                  US:„  5        ObU[        L a!  [        R                  " UR                  5      nO8U[        L a!  [        R                  " UR                  5      nO[        SU 35      eX0R                   U'   U$ )Nznew variable: %s (%s)r   z"unsupported type for Z3 variable: )rZ  r`  ra  rN  r±   rÅ   r   ÚIntÚis_positiverd  r  rÉ   ÚRealrÄ   ÚBoolÚRuntimeError)rW   r  rÌ   Úvars       r   Úadd_varÚTranslationValidator.add_var  sÇ   € ØŸ™Ó%Ø—|‘| FÑ+Ð+ä�I‰IÐ-¨v¯{©{¸D¿M¹MÔJà”sŠ{Ü—f’f˜VŸ[™[Ó)�ð ×%×%Ø×&Ñ&×*Ñ*¨3°©7Ô3øØœ’Ü—g’g˜fŸk™kÓ*‘Øœ’Ü—g’g˜fŸk™kÓ*‘ä"Ð%GÈÀvÐ#NÓOÐOà#&�L‰L˜Ñ ØˆJrG   r   c                 ó¸   • UR                    HJ  n[        U[        R                  5      (       d  [	        S[        U5       35      eU R                  U5        ML     g )NzExpected sympy.Symbol, got )Úfree_symbolsrK   rÇ   ÚSymbolr+   rÌ   r  )rW   r   Úss      r   Ú_check_freesymbolsÚ'TranslationValidator._check_freesymbols  sE   € Ø—^”^�Ü! !¤U§\¡\×2Ñ2Ü(Ð+FÄtÈAÃwÀiÐ)PÓQÐQð —
‘
˜1–ò $rG   c                 ó”   • [        U 5      R                  U5      n[        U[        R                  5      (       d  [        SU 35      eU$ )Nz"expected boolean expression. Got: )r  r[  rK   r   rL   r+   ©rW   r   Úz3exprs      r   Úto_z3_boolean_exprÚ'TranslationValidator.to_z3_boolean_expr#  s?   € Ü˜t“_×(Ñ(¨Ó+ˆFÜ˜f¤b§j¡j×1Ñ1Ü$Ð'IÈ&ÈÐ%RÓSÐSØˆMrG   c                 ó–   • XR                   ;  a  [        R                  S[        U5      5        U R                   R	                  U5        g )Nzadd source guard: %s)rc  r`  ra  r   r  )rW   r   s     r   r	  Ú$TranslationValidator.add_source_expr)  s5   € Ø×*Ñ*Ó*Ü—	‘	Ð0´%¸³(Ô;Ø×Ñ×"Ñ" 1Õ%rG   c                 óÚ   • U R                  U5        U R                  U5      nXR                  ;  a  [        R	                  S[        U5      5        U R                  R                  U5        g )Nzadd target guard: %s)rw  r|  rd  r`  ra  r   r  rz  s      r   Úadd_target_exprÚ$TranslationValidator.add_target_expr.  sS   € Ø×#Ñ# AÔ&Ø×,Ñ,¨QÓ/ˆFØ×*Ñ*Ó*Ü—	‘	Ð0´%¸³-Ô@Ø×Ñ×"Ñ" 6Õ*rG   c                 óŠ  • [        U[        R                  5      (       a#  U R                  U5        U R	                  U5      nOUn[        U[
        R                  5      (       d  [        S[        U5       35      eX R                  ;  a  [        R                  S[        U5      5        U R                  R                  U5        g )NzExpected z3.BoolRef, got zadd assertion: %s)rK   rÇ   r]  rw  r|  r   rL   r+   rÌ   re  r`  ra  r   r  )rW   r   Úrefs      r   rx   Ú"TranslationValidator.add_assertion5  s‘   € Ü˜!œUŸ[™[×)Ñ)Ø×'Ñ'¨Ô*Ø×-Ñ-¨aÓ0‘à�Ü˜c¤2§:¡:×.Ñ.Ü$Ð'@ÄÀcÃÀÐ%LÓMÐMØ×*Ñ*Ó*Ü—	‘	Ð-¬u°S«zÔ:Ø×Ñ× Ñ  Õ%rG   c                 ón   • [        S5         U R                  5       sS S S 5        $ ! , (       d  f       g = f)NzTranslationValidator.validate)r	   Ú	_validaterf  s    r   ÚvalidateÚTranslationValidator.validateA  s!   € ÜÐ=Õ>Ø—~‘~Ó'÷ ?×>×>ús   Œ&¦
4c                 óÀ  • [        U R                  5      S:X  d  [        U R                  5      S:X  a  g [        R                  " S5      nUR                  [        5       S9  U R                   H  nUR                  U5        M     UR                  [        R                  " [        R                  " U R                  6 5      5        UR                  " U R                  6   [        R                  S5        UR                  5       nU[        R                  :X  ab  UR                  5       n[!        UU R                  U R                  U R                   Vs/ s H  oTR#                  U5      (       a  M  UPM     snS9eU[        R$                  :X  a  [        R'                  S5        g U[        R(                  :w  a  [+        SU 35      e[        R                  S5        g s  snf )	Nr   ÚQF_NRA)Útimeoutztranslation validation: start)Úfailed_source_exprsz:translation validation: could not validate: got z3.unknownzExpected z3.unsat, got ztranslation validation: success)rÖ   rc  rd  r   Ú	SolverForrb  Útranslation_validation_timeoutre  r  rá   rº   r`  ra  ÚcheckÚsatÚmodelÚValidationExceptionÚevaluateÚunknownÚwarningÚunsatr+   )rW   ÚsolverÚ	assertionÚrr’  Úinps         r   r‡  ÚTranslationValidator._validateE  sn  € Ü�4×%Ñ%Ó&¨!Ó+¬s°4×3EÑ3EÓ/FÈ!Ó/Kð ô —\’\ (Ó+ˆFà�J‰JÔ=Ó?ˆJÑ@ð "×-Ô-�	Ø—
‘
˜9Ö%ñ .ð
 �J‰J”r—v’vœbŸfšf d×&8Ñ&8Ð9Ó:Ô;Ø�JŠJ˜×*Ñ*Ñ+ä�I‰IÐ5Ô6Ø—‘“ˆAØ”B—F‘F‹{ð Ÿ™›�Ü)ØØ×$Ñ$Ø×&Ñ&à'+×'9Ò'9ó)Ú'9 ÇÁÐPS×ATŸÑ'9ñ)ñ	ð ð œŸ
™
“?ô —K‘KØTõð
 œBŸH™H“}Ü,Ð/FÀqÀcÐ-JÓKÐKÜ—I‘IÐ?Õ@ùò!)s   ÅGÅ.G)re  rc  rd  rZ  )r   N)r   zsympy.logic.boolalg.Booleanr   N)r±   r²   r³   r´   rú   rÇ   ru  r   r,   r  rÌ   rq  r]  rw  rL   r|  r	  r�  r   rx   rˆ  r‡  rÀ   r°   rG   r   rc   rc   ç  sÂ   † ô	6ð*	( §¡ð 	(°·±ô 	(ð	 %§,¡,ð 	°dð 	¸r¿z¹zô 	ð0	¨¯©ð 	¸ô 	ð	¨¯©ð 	¸¿
¹
ô 	ð	& R§Z¡Zð 	&°Dô 	&ô
	+ð
	& 5¨¯©°U·[±[Ð)@Ñ#Að 
	&Àdô 
	&ô	(÷7	ArG   T)	r   rð   rò   r  rc   Útranslation_validation_enabledr�  r“  ÚBisectValidationExceptionF)r�  r�  r“  rž  )Ú_configc                  óP   • [        5         [        =(       a    [        R                  $ r   )Ú_assert_z3_installed_if_tv_setÚ_HAS_Z3ÚconfigÚtranslation_validationr°   rG   r   r�  r�  š  s   € ô #Ô$Ü×4”v×4Ñ4Ð4rG   c                  ó"   • [         R                  $ r   )r£  r�  r°   rG   r   r�  r�  ¡  s   € Ü×0Ñ0Ð0rG   c                  ó\   • [         (       d!  [        R                  (       a  [        S5      eg g )Nzotranslation validation requires Z3 package. Please, either install z3-solver or disable translation validation.)r¢  r£  r¤  r+   r°   rG   r   r¡  r¡  ¥  s(   € ßŠGœ6×8×8Üð;ó
ð 	
ð 9ˆGrG   c                   ó    • \ rS rSrS rS rSrg)r“  i­  c                 óˆ  ^• [         (       d  [        S5      eS[        4U4S jjnS[        4S jnU" [        [	        UT5      5      5      nU" [        [	        [
        U5      5      5      nU" [        [	        [
        U5      5      5      n	U" [        [	        [
        U5      5      5      n
SU l        SU SU SU	 S	U
 3U l        g )
NzZ3 is requiredr   c                 ó   >• U  STU     3$ )Nú: r°   )Úsymr’  s    €r   Ú	symbolstrÚ/ValidationException.__init__.<locals>.symbolstr²  s   ø€ Ø�U˜"˜U 3™Z˜LÐ)Ð)rG   c                 ó2   • SR                  S U  5       5      $ )NÚ
c              3   ó,   #   • U  H
  nS U 3v •  M     g7f)z  ==> Nr°   )rM   r    s     r   rN   ÚBValidationException.__init__.<locals>.joinlines.<locals>.<genexpr>¶  s   é € Ð6²2¨a˜v a S�\²2ùs   ‚)r?   )Úxss    r   Ú	joinlinesÚ/ValidationException.__init__.<locals>.joinlinesµ  s   € Ø—9‘9Ñ6±2Ó6Ó6Ð6rG   ztranslation validation failed.zModel:
z

Assertions:
z

Target Expressions:
z

Failed Source Expressions:
)r¢  r+   r.   ÚsortedÚmapr   ÚmsgÚdetails)rW   r’  Ú
assertionsÚtarget_exprsr�  r¬  r³  Ú	model_strÚassertions_strÚtarget_exprs_strÚfailed_source_exprs_strs    `         r   rú   ÚValidationException.__init__®  sÊ   ø€ ßŠwÜ Ð!1Ó2Ð2ð	*œc÷ 	*ð	7œSô 	7ñ œf¤S¨°EÓ%:Ó;Ó<ˆ	Ù"¤6¬#¬e°ZÓ*@Ó#AÓBˆÙ$¤V¬C´°|Ó,DÓ%EÓFÐÙ"+¬F´3´uÐ>QÓ3RÓ,SÓ"TÐà3ˆŒðà
€ð ð Ð ð ð Ð ð ð Ð ðˆ�rG   c                 ó8   • U R                    SU R                   3$ ©Nú

©r·  r¸  rf  s    r   Ú__str__ÚValidationException.__str__Ë  ó   € Ø—(‘(�˜4 §¡˜~Ð.Ð.rG   ©r¸  r·  N©r±   r²   r³   r´   rú   rÄ  rÀ   r°   rG   r   r“  r“  ­  s   † òõ:/rG   r“  c                   ó    • \ rS rSrS rS rSrg)rž  iÏ  c                 óh   • SU SU 3U l         SUR                  5        SUR                   3U l        g )Nz#translation validation failed when rª  z)Failure occurred while running node:
    rÂ  )r·  Úformat_noder¸  )rW   Úvalidation_excrX  Úfailed_actionÚtraced_nodes        r   rú   Ú"BisectValidationException.__init__Ð  sD   € Ø8¸¸ÀrÈ$ÈÐPˆŒðà×ÑÓÐð  à×ÑÐ ð	ˆ�rG   c                 ó8   • U R                    SU R                   3$ rÁ  rÃ  rf  s    r   rÄ  Ú!BisectValidationException.__str__Ø  rÆ  rG   rÇ  NrÈ  r°   rG   r   rž  rž  Ï  s   † òõ/rG   rž  c           	      óÞ  ^^^^^^• SSK JmJmJn  SSKJnJnJm  U R                  mS[        R                  R                  SU4UU4S jjnSUS[        4UU4S jjmSUS	[        [        [              S[        [           4U4S
 jjmS[        R                  R                  S[        [           4UUUU4S jjnT" X R!                  5       5      nU(       d  ["        R%                  S5        g U R&                  (       a  [(        R*                  (       a  Ue0 nU R,                  R.                   Vs/ s H#  oˆR0                  [        R2                  L d  M!  UPM%     n	nSS[5        U	5      S-
  pËn
U" Xœ   5      X|'   X¬:  aI  X¬-   S-  nX›   n["        R7                  SX´" U5      5        U" U5      X{'   X{   (       a  UnOUS-   n
X¬:  a  MI  X§;   a  [9        Xz   [        5      (       d  [;        S5      eXš   nU" U5      nUR=                  5       (       a  SnO%UR?                  5       (       d  [;        SU 35      eSnUR@                  nUc  [;        S5      e[5        U5      S:  a$  [;        SURB                   S[5        U5       35      e[9        US   [D        RF                  5      (       d'  [;        SURB                   S[I        US   5       35      e[K        Xz   US   UURL                  U   S9es  snf )Nr   )ÚFakeTensorMetaÚreplay_shape_env_eventsÚShapeEnvEvent)ÚCURRENT_NODE_KEYÚShapeEnvÚSHAPEENV_EVENT_KEYÚnoder   c                 ó^   >• TU R                   ;  a  [        S5      eTU R                   T      $ )Nz#SHAPEENV_EVENT_KEY not in node.meta)Úmetar+   )rÙ  rØ  Úeventss    €€r   Úget_node_eventÚbisect.<locals>.get_node_event÷  s0   ø€ Ø T§Y¡YÓ.Ü Ð!FÓGÐGØ�d—i‘iÐ 2Ñ3Ñ4Ð4rG   Ú	shape_envc           	      ó˜  >^ • [        U[        5      (       a  U$ [        U[        R                  5      (       a/  [        R                  " UR                  R                  T 5      5      $ [        U[        R                  5      (       a/  [        R                  " UR                  R                  T 5      5      $ [        UT5      (       d  [        S[        U5       35      eT" [        UU 4S jUR                  5        5       5      [        UU 4S jUR                  5        5       5      T" T UR                  5       5      UR                  5      $ )NzExpected FakeTensorMeta, got c              3   ó6   >#   • U  H  nT" TU5      v •  M     g 7fr   r°   ©rM   rv  Únew_with_shape_envrß  s     €€r   rN   Ú5bisect.<locals>.new_with_shape_env.<locals>.<genexpr>  s   øé € ÐHºK°qÑ$ Y°×2Ð2ºKùó   ƒc              3   ó6   >#   • U  H  nT" TU5      v •  M     g 7fr   r°   râ  s     €€r   rN   rä    s   øé € ÐJºM°qÑ$ Y°×2Ð2ºMùrå  )rK   rÅ   ræ   ÚSymIntrÙ  Úwith_shape_envÚSymFloatr+   rÌ   rU   ÚsizeÚstrideÚstorage_offsetÚ	is_nested)rß  ÚfakerÓ  rã  s   ` €€r   rã  Ú"bisect.<locals>.new_with_shape_env  sæ   ù€ Ü�dœC× Ñ ØˆKÜ�dœEŸL™L×)Ñ)Ü—<’< §	¡	× 8Ñ 8¸Ó CÓDÐDÜ�dœEŸN™N×+Ñ+Ü—>’> $§)¡)×":Ñ":¸9Ó"EÓFÐFÜ˜$ ×/Ñ/Ü Ð#@ÄÀdÃÀÐ!MÓNÐNÙÜÕH¸D¿I¹I¼KÓHÓHÜÕJ¸D¿K¹K¼MÓJÓJÙ˜y¨$×*=Ñ*=Ó*?Ó@Ø�N‰Nó	
ð 	
rG   Útracked_fakesc           	      ó@  >• Uc  [        S5      e U R                  U Vs/ s H  nT" XR                  5      PM     snU Vs/ s H  o"R                  PM     snU Vs/ s H  o"R                  PM     snS9  g s  snf s  snf s  snf ! [
         a  nUs S nA$ S nAff = f)Nztracked_fakes is None)Úinput_contexts)r+   Úproduce_guardsrî  ÚsourceÚsymbolic_contextr“  )rß  rð  rS   r   rã  s       €r   Úcheck_shapeenv_failsÚ$bisect.<locals>.check_shapeenv_fails  sŸ   ø€ ð Ñ Ü Ð!8Ó9Ð9ð	ð ×$Ñ$Ù@MÓNÂ¸1Ñ# I¯v©vÖ6ÁÑNÙ#0Ó1¢=˜a—”¡=Ñ1Ù<IÓJºM°q× 2Ô 2¹MÑJð %ñ ð
 ùò	 OùÚ1ùÚJøô #ó 	Ø�Hûð	úsE   ‘B  A8¼B ÁA=
ÁB ÁBÁ2B Á8B Â
BÂBÂBÂBc                 óž   >• U R                   T   nT" TS US-    5      nUR                  R                  5         T" UTU   R                  5      $ r‡   )rÛ  ró   Úlintrð  )rÙ  r|   rß  rØ  rö  rÜ  rÔ  s      €€€€r   Úcheck_node_failsÚ bisect.<locals>.check_node_fails&  sN   ø€ Ø—‘Ð-Ñ.ˆá+¨F°<°V¸a±ZÐ,@ÓAˆ	Ø�‰×ÑÔÙ# I¨v°f©~×/KÑ/KÓLÐLrG   z2translation validation succeeded: no errors found.r#   r&   zbisecting at %s: %sz-Expected ValidationException at bisect resultÚ
evaluatingzunexpected event type: zadding runtime assertzevent.args is Nonezbisecting expects z/ to have at least 2 positional arguments. Got: z9 to have a SymPy expression as its second argument. Got: )rX  rÍ  rÎ  )'Útorch.fx.experimental.recordingrÓ  rÔ  rÕ  Ú%torch.fx.experimental.symbolic_shapesrÖ  r×  rØ  rÜ  ræ   r÷   ÚNoder   r   r-   r“  Ú_snapshot_tracked_fakesr`  ÚinfoÚshould_record_eventsr£  Ú translation_validation_no_bisectró   Únodesrþ   rì   rÖ   ra  rK   r+   Úis_evaluate_exprÚis_defer_runtime_assertrB   rN  rÇ   r]  rÌ   rž  rÛ  )rß  rÕ  rÖ  r×  rÝ  rú  Úlast_exceptionÚ	exceptionrÙ  Úassert_nodesÚleftÚmidÚrightÚeventrÍ  rB   rÓ  rØ  rö  rÜ  rã  rÔ  s                   @@@@@@r   Úbisectr  è  sì  ý€ ÷ñ ÷
ñ ð ×Ñ€Fð5œUŸX™XŸ]™]ð 5¨}÷ 5ð 5ð
 hð 
¼÷ 
ð 
ð"ØðÜ,4´T¼#±YÑ,?ðä	Ô%Ñ	&÷ð(MœuŸx™xŸ}™}ð M´Ô:MÑ1N÷ Mò Mñ *Ø×4Ñ4Ó6ó€Nö ô 	�‰ÐEÔFØà×)×)¬V×-T×-Tð Ðð €Ið
 #Ÿ™×.Ò.óÚ.�·+±+ÄÇÁÐ2N�Ñ.ð ð ð ˜!œS Ó.°Ñ2ˆu€DÙ'¨Ñ(;Ó<€IÑà
‹,Ø‰| Ñ!ˆàÑ ˆÜ�	‰	Ð'¨¨n¸TÓ.BÔCñ *¨$Ó/ˆ	‰à�>Ø‰Eà˜‘7ˆDð �,ð Ó¤*¨Y©_Ô>Q×"RÑ"RÜÐLÓMÐMàÑ€DÙ˜4Ó €Eà×Ñ×ÑØ$‰à×,Ñ,×.Ñ.Ü Ð#:¸5¸'Ð!BÓCÐCØ/ˆà�:‰:€DØ�|ÜÐ1Ó2Ð2Ü
ˆ4ƒy�1ƒ}ÜØ  §¡ ð -Ü˜“I�;ð ó
ð 	
ô �d˜1‘gœuŸ{™{×+Ñ+ÜØ  §¡ ð -Ü" 4¨¡7›m˜_ð.ó
ð 	
ô
 $Ø‰Ø�!‰WØ#Ø—I‘IÐ.Ñ/ñ	ð ùòms   Ä/ K*ÅK*)9rã   r]   Úloggingrå   r¸   Úcollections.abcr   Údataclassesr   Útypingr   r   r   rÇ   ræ   Útorch.fxÚtorch.fx.tracebackr÷   Ú	tracebackr  Útorch._dynamo.excr   Útorch._dynamo.utilsr	   Útorch.fx.noder
   r   Útorch.utils._sympy.interpr   Ú	getLoggerr±   r`  r   r,   r.   r   r_   ra   rð   ÚInterpreterrò   r  rc   r¢  Ú__all__ÚImportErrorÚtorch.fx.experimentalrŸ  r£  rÄ   r�  rÅ   r�  r¡  r“  rž  r  r°   rG   r   Ú<module>r     s`  ðã Û Û Û Û Ý $Ý !ß 'Ñ 'ã ã Û ß )Ð )Ý 2Ý ,ß *Ý 2ð ×Ò˜Ó!€ð}	ÛðHU&�—‘ð U& ô U&òtð$ ÷]4ð ]4ó ð]4ðN?J�ð ?JÐ&<ð ?JÀô ?JôT4˜EŸH™H×0Ñ0ô 4÷FYEñ YE÷RUAñ UAðD €Gò
€Gõ 4ð5¨ô 5ð1¨ô 1ò
ô/Ð.ô /ôD
/Ð 4ô 
/ñ Ô  óTøðU ó Ø€Gò‚Gðús   Á-A'D ÄD!Ä D!