Ë
    ÄÓ^jD�  ã                   ó°  — d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlmZ d dl	m
Z
mZmZmZ d dlZd dlZd dlZd dlmc mZ d dlmZ d dlmZ d dlmZmZ d dlmZ erd d	lmZm Z   ejB                  e"«      Z# ed
«      Z$	 d dl%Z%de%jL                  de'fd„Z(dede
f   dede
f   dz  dede
f   fd„Z)e G d„ d«      «       Z*dede
f   dddede
f   fd„Z+ G d„ dej$                  jX                  «      Z- G d„ d«      Z. G d„ d«      Z/dZ0g d¢Z1d d!l3m4Z5 de6fd"„Z7de8fd#„Z9d*d$„Z: G d%„ d&e«      Z; G d'„ d(e«      Z< e:«        d+d)„Z=y# e2$ r	 dZ0g d ¢Z1Y ŒEw xY w),é    N)ÚCallable)Ú	dataclass)ÚAnyÚoverloadÚTYPE_CHECKINGÚTypeVar)ÚTorchDynamoException)Údynamo_timed)ÚArgumentÚTarget)Úsympy_interp)ÚShapeEnvÚTrackedFakeÚ_RÚeÚreturnc                 óL  ‡
‡— t        j                  | «      st        d| › �«      ‚dt         j                  dt        t
           fd„}t        j                  | «      } t        j                  | «      st        d| › �«      ‚t        j                  | «      st        j                  | «      r| j                  «       S | j                  «       }|j                  «       Št        |«      } || «      }‰t         j                  k(  rd}�nø‰t         j                  t         j                   fv r.dt         j                  dt        t
           fˆ
ˆfd„Š
 ‰
| «      }�n¨‰t         j"                  k(  rÂ| j%                  «       dk7  rt        d	| j%                  «       › �«      ‚| j'                  d
«      }t        j                  |«      st        d«      ‚|j                  «       j                  «       }t         j(                  dt         j*                  dt         j,                  di}||v rá||   } ||«      }nÓ‰t         j.                  t         j0                  fv rd| j%                  «       dk7  rt        d	| j%                  «       › �«      ‚t3        | j'                  d
«      «      }|j5                  d«      rd|dd  z   S |S ‰t         j6                  k(  r:| j%                  «       d
k7  rt        d| j%                  «       › �«      ‚t        |«      S |dz   dj9                  |«      z   }	d|	j;                  «       › d�S )Nzunsupported expression type: r   r   c                 óŠ   — t        | j                  «       «      D �cg c]  }t        | j                  |«      «      ‘Œ c}S c c}w ©N)ÚrangeÚnum_argsÚz3strÚarg)r   Úis     új/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/torch/fx/experimental/validator.pyÚget_args_strzz3str.<locals>.get_args_strF   s-   € Ü-2°1·:±:³<Ó-@ÖA¨”E˜!Ÿ%™% ›(•OÒAÐAùÒAs   œ!A zcan't print Z3 expression: Úpowc           	      ó  •— t        j                  | «      r!| j                  «       j                  «       ‰k(  st	        | «      gS t        | j                  «       «      D ��cg c]   } ‰| j                  |«      «      D ]  }|‘Œ Œ" c}}S c c}}w r   )Úz3Úis_appÚdeclÚkindr   r   r   r   )r   r   ÚxÚcollect_str_argsr"   s      €€r   r$   zz3str.<locals>.collect_str_argsa   s|   ø€ ÜŸ	™	 !œ¨¯©«¯©«¸DÒ)@Ü! !›H˜:Ð%ô "' q§z¡z£|Ó!4÷àÙ!1°!·%±%¸³(Ó!;òð ò ðØóð ùó 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   B   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Ø—;‘;“=Ð à�v‰v‹xˆØ�y‰y‹{ˆÜ�‹YˆÙ˜A‹ˆà”2—>‘>Ò!ØŠBà”b—l‘l¤B§L¡LÐ1Ñ1ð¤B§J¡Jð ´4¼±9ö ñ $ 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ð ˜-Ñ'Ø" 7Ñ+�Ù# 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Ð%Ð%ó    Úbitwise_func.Ú	bool_funcc                 óx   ‡ ‡— t        j                  ‰ «      dddt        j                  dt        fˆ ˆfd„«       }|S )NÚselfÚ_Z3OpsrD   r   c                 óŠ   •— ‰�t        d„ |D «       «      r ‰|Ž S t        d„ |D «       «      }t        j                   ‰|Ž «      S )Nc              3   óP   K  — | ]  }t        |t        j                  «      –— Œ  y ­wr   )Ú
isinstancer   ÚBoolRef)Ú.0r   s     r   ú	<genexpr>z/_bitwise_op.<locals>.wrapper.<locals>.<genexpr>¡   s    è ø€ ò -Ø03”
˜3¤§
¡
×+ñ-ùs   ‚$&c              3   óH   K  — | ]  }t        j                  |d «      –— Œ y­w)é@   N)r   ÚInt2BV)rS   Úas     r   rT   z/_bitwise_op.<locals>.wrapper.<locals>.<genexpr>¦   s   è ø€ Ò @°a¤§¡¨1¨b×!1Ñ @ùs   ‚ ")ÚallÚtupler   ÚBV2Int)rM   rD   Úwrapped_argsrJ   rK   s      €€r   Úwrapperz_bitwise_op.<locals>.wrapperŸ   sN   ø€ àÐ$¬ñ -Ø7;ô-ô *ñ ! $Ð'Ð'ä Ñ @¸4Ô @Ó@ˆLÜ—9‘9™\¨<Ð8Ó9Ð9rI   )Ú	functoolsÚwrapsr   r.   r   )rJ   rK   r]   s   `` r   Ú_bitwise_opr`   œ   s@   ù€ ô 
�‰˜Ó	&ð	:˜(ð 	:¬2¯:©:ð 	:¼#õ 	:ó 
'ð	:ð ˆrI   c                   óÄ  — e Zd ZU ded<   edej                  dej                  fd„«       Zedej                  dej                  fd„«       Zdej                  dej                  fd„Z	d	ej                  d
ej                  dej                  fd„Z
dej                  dej                  fd„Zd	ej                  d
ej                  dej                  fd„Zdej                  dej                  fd„Zdej                  dej                  fd„Zdej                  dej                  dej                  fd„Zdej                  dej                  dej                  fd„Zdej                  dej                  dej                  fd„Zdej                  dej                  dej                  fd„Zdej                  dej                  fd„Zdej                  dej                  fd„Zdej                  dej                  fd„Z eej0                  ej2                  «      Z eej6                  ej8                  «      Z eej<                  d«      Z eej>                  d«      Zy)rN   ÚTranslationValidatorÚ	validatorr#   r   c                 óP   — | j                  «       r| S t        j                  | «      S r   )Úis_realr   ÚToReal©r#   s    r   Úto_realz_Z3Ops.to_realº   s   € àŸ	™	œ�1Ð5¬¯©°1«Ð5rI   c                 óP   — | j                  «       r| S t        j                  | «      S r   )Úis_intr   ÚToIntrg   s    r   Úto_intz_Z3Ops.to_int¿   s   € àŸ™œ
�1Ð3¬¯©°«Ð3rI   rD   c                 ó   — t        |«      S r   )Úsum)rM   rD   s     r   Úsym_sumz_Z3Ops.sym_sumÃ   s   € Ü�t“9ÐrI   Ú	numeratorÚdenominatorc                 ó”   — | j                   j                  |dk7  «       t        j                  |«      t        j                  |«      z  S ©Nr   )rc   Úadd_assertionrN   rh   ©rM   rp   rq   s      r   Údivz
_Z3Ops.divÇ   s6   € Ø�N‰N×(Ñ(¨¸Ñ)9Ô:Ü—>‘> )Ó,¬v¯~©~¸kÓ/JÑJÐJrI   Únumberc                 ó,   — t         j                  |«      S r   )rN   rl   ©rM   rw   s     r   Úfloorz_Z3Ops.floorË   s   € ä—=‘= Ó(Ð(rI   c                 óÂ   — |j                  «       xs |j                  «       }t        j                  | j                  ||«      «      }|rt        j	                  |«      S |S r   )re   rN   rl   rv   rh   )rM   rp   rq   Úcast_result_to_realÚresults        r   Úfloordivz_Z3Ops.floordivÑ   sS   € ð #,×"3Ñ"3Ó"5Ò"N¸×9LÑ9LÓ9NÐÜ—]‘] 4§8¡8¨I°{Ó#CÓDˆFñ .A”6—>‘> &Ó)ÐLÀfÐLrI   c                 óx   — t        j                  | j                  |«      |k  | j                  |dz   «      |«      S ©Nr%   )r   ÚIfrz   ry   s     r   Úceilz_Z3Ops.ceilÚ   s0   € Ü—5‘5˜Ÿ™ FÓ+¨fÑ4°d·j±jÀÈ!ÁÓ6LÈfÓUÐUrI   c                 ór   — t        j                  |dk\  | j                  |«      | j                  |«      «      S rs   )r   r�   rz   r‚   ry   s     r   Útruncz_Z3Ops.truncÝ   s+   € Ü—5‘5˜ 1™ d§j¡j°Ó&8¸$¿)¹)ÀFÓ:KÓLÐLrI   rX   Úbc                 ó6   — t        j                  ||kD  ||«      S r   ©r   r�   ©rM   rX   r…   s      r   Úmaxz
_Z3Ops.maxà   ó   € Ü—5‘5˜˜Q™  1Ó%Ð%rI   c                 ó6   — t        j                  ||k  ||«      S r   r‡   rˆ   s      r   Úminz
_Z3Ops.minã   rŠ   rI   ÚpÚqc                 ó2   — || j                  ||«      |z  z
  S r   )r~   ©rM   r�   rŽ   s      r   Úmodz
_Z3Ops.modè   s   € Ø�t—}‘} Q¨Ó*¨QÑ.Ñ.Ð.rI   ÚbaseÚexpc                 óv   — | j                   j                  t        j                  |dk7  |dkD  «      «       ||z  S rs   )rc   rt   r   ÚOr©rM   r’   r“   s      r   r   z
_Z3Ops.powë   s1   € à�N‰N×(Ñ(¬¯©¨t°q©y¸#À¹'Ó)BÔCØ˜‘9ÐrI   c                 ór   — t         j                  |«      }| j                  j                  |dk\  «       |dz  S )Nr   ç      à?)rN   rh   rc   rt   ry   s     r   Úsqrtz_Z3Ops.sqrtð   s4   € ô —^‘^ FÓ+ˆFð �N‰N×(Ñ(¨°1©Ô5Ø˜3‘;ÐrI   c                 ó,   — t        j                  |«      S r   )r   ÚAbsry   s     r   Úabsz
_Z3Ops.absù   s   € Ü—6‘6˜&“>Ð!rI   c                 óÄ   — t        j                  | j                  |t        j                  d«      «      dk(  | j	                  |dz
  «      | j                  |dz   «      «      S )Nr(   r˜   )r   r�   r‘   ÚIntValr‚   rz   ry   s     r   Úround_to_intz_Z3Ops.round_to_intü   sP   € ô —5‘5Ø—‘˜¤§¡¨1£Ó.°#Ñ5Ø—	‘	˜& 3™,Ó'Ø—
‘
˜6 C™<Ó(óð rI   N) Ú__name__Ú
__module__Ú__qualname__Ú__annotations__Ústaticmethodr   ÚArithRefrh   rl   ro   rv   rz   r~   r‚   r„   r‰   rŒ   r‘   r   r™   rœ   rŸ   r`   ÚoperatorÚand_ÚAndÚbitwise_andÚor_r•   Ú
bitwise_orÚlshiftÚrshift© rI   r   rN   rN   °   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‰rI   rN   rC   rc   rb   c                 óÊ  ‡— t         j                  h}| |v Šdt        dt        f   dt        dt        f   fˆfd„}t	        |«      }i t         j                   |t
        j                  «      “t         j                   ||j                  «      “t         j                   ||j                  «      “t         j                   ||j                  «      “t         j                   ||j                  «      “t         j                   ||j                  «      “t         j                   ||j                  «      “t         j                    ||j                   «      “t         j"                   ||j"                  «      “t$        j&                   ||j(                  «      “t*        j,                   ||j,                  «      “t*        j.                   ||j.                  «      “t*        j0                   ||j0                  «      “t2        j4                   ||j6                  «      “t2        j8                   ||j:                  «      “t2        j<                   ||j>                  «      “t2        j@                   ||j@                  «      “t2        jB                   |d„ «      t2        jD                   ||jF                  «      t2        jH                  t2        jH                  i¥}| |v r||    S  || «      S )NÚfunc.r   c                 óš   •‡ ‡— dt         dt        j                  fˆfd„Št        j                  ‰ «      dt         dt
        fˆ ˆfd„«       }|S )NrX   r   c                 ó  •— t        | t        j                  t        j                  f«      r| S t        | t        «      s‰r.t        | t
        «      rt        j                  t	        | «      «      S t        | t
        t        j                  f«      rt        j                  t        | «      «      S t        | t        t        j                  f«      rt        j                  t        | «      «      S t        dt        | «      › �«      ‚)Nzcan't lift type: )rQ   r   r¥   rR   ÚboolÚintÚBoolValÚsympyÚIntegerrž   ÚfloatÚFloatÚRealValr2   Útype)rX   Úas_bools    €r   Úwrapz z3op.<locals>.lift.<locals>.wrap$  s¬   ø€ Ü˜a¤"§+¡+¬r¯z©zÐ!:Ô;Ø�Hô ˜a¤Ô&©7´zÀ!ÄSÔ7IÜŸ:™:¤d¨1£gÓ.Ð.Ü˜a¤#¤u§}¡}Ð!5Ô6ÜŸ9™9¤S¨£VÓ,Ð,Ü˜a¤%¬¯©Ð!5Ô6ÜŸ:™:¤e¨A£hÓ/Ð/Ü Ð#4´T¸!³W°IÐ!>Ó?Ð?rI   rD   c                  ó¶   •— t        | «      dk(  r2t        | d   t        t        f«      rt        ˆfd„| d   D «       «      f}nt        ˆfd„| D «       «      } ‰|Ž S )Nr%   r   c              3   ó.   •K  — | ]  } ‰|«      –— Œ y ­wr   r®   ©rS   rX   r½   s     €r   rT   z6z3op.<locals>.lift.<locals>.wrapper.<locals>.<genexpr>5  s   øè ø€ Ò)C°a©$¨q¯'Ñ)Cùó   ƒc              3   ó.   •K  — | ]  } ‰|«      –— Œ y ­wr   r®   rÀ   s     €r   rT   z6z3op.<locals>.lift.<locals>.wrapper.<locals>.<genexpr>7  s   øè ø€ Ò(?°Q©¨a¯Ñ(?ùrÁ   )ÚlenrQ   r/   rZ   )rD   r\   r°   r½   s     €€r   r]   z#z3op.<locals>.lift.<locals>.wrapper1  sS   ø€ ô �t“9 ’>¤j°°a±¼4Ä¸-Ô&HÜ$)Ó)C¸4À¹7Ô)CÓ$CÐ#E‘Lä#(Ó(?¸$Ô(?Ó#?�Lá˜\Ð*Ð*rI   )Úobjectr   r.   r^   r_   r   )r°   r]   r½   r¼   s   ` @€r   Úliftzz3op.<locals>.lift#  sO   ú€ ð@œð @¤2§:¡:õ @ô �_‰_˜TÓ"ð+œvð +¬#õ +ó #ð+ð ˆNrI   c                 ó0   — t        j                  | ||«      S r   r‡   )r…   ÚtÚfs      r   ú<lambda>zz3op.<locals>.<lambda>S  s   € ´·±°a¸¸A³€ rI   )%r¦   Únot_r   r   rN   r   ÚNotr§   r©   rª   r«   r¬   r­   r~   Útruedivrv   r‘   rœ   ÚbuiltinsÚroundrŸ   Úmathr‚   rz   r„   ÚtorchÚ	sym_floatrh   Úsym_maxr‰   Úsym_minrŒ   ro   Úsym_iteÚ	_sym_sqrtr™   Ú_assert)rC   rc   Úboolean_opsrÅ   ÚopsÚreplacement_mapr¼   s         @r   Úz3oprÚ     sI  ø€ ô  —}‘}�oˆØ˜Ð#ˆð	”x ¤R Ñ(ð 	¬X°c¼2°gÑ->õ 	ô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 ')¨OÑ&;ˆ˜rÑ"ÐIÁÀbÃÐIrI   c                   ó°   ‡ — e Zd Zdej                  j
                  ddddfˆ fd„Zdedee	d	f   d
e
eef   defd„Zdedee	d	f   d
e
eef   defˆ fd„Zˆ xZS )ÚPopulateValidatorÚgraphrc   rb   r   Nc                 óx   •— || _         t        j                  j                  i |¬«      }t        ‰| �  |d¬«       y )N)ÚrootrÝ   T)Úgarbage_collect_values)rc   rÐ   ÚfxÚGraphModuleÚsuperÚ__init__)rM   rÝ   rc   ÚmoduleÚ	__class__s       €r   rä   zPopulateValidator.__init__e  s9   ø€ ð 'ˆDŒNô —X‘X×)Ñ)¨r¸Ð)Ó?ˆFÜ‰GÑ˜V¸DÐÕArI   ÚtargetrD   .Úkwargsc                 óf   — t        j                  «       d   }| j                  j                  |«      S )NÚsymbol)Úfx_tracebackÚget_current_metarc   Úz3var)rM   rç   rD   rè   rê   s        r   ÚplaceholderzPopulateValidator.placeholdero  s,   € ô "×2Ñ2Ó4°XÑ>ˆFØ—>‘>×'Ñ'¨Ó/Ð/rI   c                 óü   •— |t         j                  ur%t        ‰| �  t	        || j
                  «      ||«      S t        |«      dk7  rt        dt        |«      › d�«      ‚| j
                  j                  |d   «       y )Nr%   z'expected 1 argument on assertion. Got: r)   r   )	rÐ   rÖ   rã   Úcall_functionrÚ   rc   rÃ   r-   Úadd_source_expr)rM   rç   rD   rè   ræ   s       €r   rð   zPopulateValidator.call_functionu  ss   ø€ ð œUŸ]™]Ñ*ä‘wÑ,¬T°&¸$¿.¹.Ó-IÈ4ÐQWÓXÐXô �4‹y˜AŠ~Ü$Ø=¼cÀ$»i¸[ÈÐJóð ð �N‰N×*Ñ*¨4°©7Õ3rI   )r    r¡   r¢   rÐ   rá   ÚGraphrä   r   rZ   r   Údictr0   r   rî   rð   Ú__classcell__)ræ   s   @r   rÜ   rÜ   d  sŸ   ø„ ð	BØŸ™Ÿ™ð	BØ4Jð	Bàõ	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ñ 	4rI   rÜ   c                   óÄ  — e Zd Zh d£Z	 	 	 	 d d„Zdeez  ez  dej                  de
j                  fd„Zde
j                  dej                  de
j                  fd	„Zde
j                  dej                  de
j                  fd
„Zde
j                  dej                  de
j                  fd„Zde
j                  de
j                  de
j                  fd„Zde
j                  de
j                  de
j                  fd„Zde
j                  de
j                  de
j                  fd„Zde
j                  de
j                  de
j                  fd„Zde
j                  de
j                  de
j                  fd„Zde
j                  de
j                  de
j                  fd„Zde
j                  de
j                  de
j                  fd„Zde
j                  de
j                  de
j                  fd„Zde
j                  dej                  de
j                  fd„Zde
j                  dej                  de
j                  fd„Zdedefd„Zdej>                  de
j                  fd„Z y)!Ú	SympyToZ3>   ÚeqÚgeÚgtÚleÚltÚneÚaddÚmulr   Nc                 óF   — || _         t        | j                   «      | _        y r   )Ú
_validatorrN   Ú_ops)rM   rc   s     r   rä   zSympyToZ3.__init__Œ  s   € ð (ˆDŒOÜ˜tŸ™Ó/ˆD�IrI   ÚvalueÚdtypec                 ó>  — |t         j                  u rt        j                  t	        |«      «      S |t         j
                  u rt        j                  t        |«      «      S |t         j                  u rt        j                  t        |«      «      S t        d|› �«      ‚)Nzunsupported dtype (SympyToZ3): )rÐ   Úint64r   rž   r´   Údoublerº   r¸   r³   rµ   r2   )rM   r  r  s      r   ÚconstantzSympyToZ3.constant“  sr   € àœŸ™Ñ#Ü—y‘y¤ U£Ó,Ð,ØœŸ™Ñ$Ü—z‘z¤%¨£,Ó/Ð/ØœŸ
™
Ñ"Ü—z‘z¤$ u£+Ó.Ð.ÜÐ>¸u¸gÐFÓGÐGrI   r#   c                 óp   — |t         j                  k(  rt        j                  |«      S t	        d|› d�«      ‚)Nz	to_dtype z NYI)rÐ   Úfloat64r   rf   ÚNotImplementedError©rM   r#   r  s      r   Úto_dtypezSympyToZ3.to_dtype�  s0   € ØœŸ™Ò%Ü—y‘y “|Ð#Ü%¨	°%°¸Ð&=Ó>Ð>rI   c                 ó,   — t        j                  |«      S r   )r   rk   r  s      r   Útrunc_to_intzSympyToZ3.trunc_to_int¢  s   € Ü—8‘8˜A“;ÐrI   c                 ó8   — | j                   j                  |«      S r   )r  rŸ   r  s      r   rŸ   zSympyToZ3.round_to_int¥  s   € Ø—9‘9×)Ñ)¨!Ó,Ð,rI   rp   rq   c                 ó:   — | j                   j                  ||«      S r   ©r  rv   ru   s      r   Úint_truedivzSympyToZ3.int_truediv¨  ó   € ð —9‘9—=‘= ¨KÓ8Ð8rI   c                 ó:   — | j                   j                  ||«      S r   r  ru   s      r   rÌ   zSympyToZ3.truediv­  r  rI   c                 ó:   — | j                   j                  ||«      S r   ©r  r~   ru   s      r   r~   zSympyToZ3.floordiv²  s   € ð —9‘9×%Ñ% i°Ó=Ð=rI   c                 ó:   — | j                   j                  ||«      S r   r  ru   s      r   rv   zSympyToZ3.div·  s   € Ø—9‘9×%Ñ% i°Ó=Ð=rI   r’   r“   c                 ó:   — | j                   j                  ||«      S r   ©r  r   r–   s      r   r   zSympyToZ3.powº  ó   € Ø—9‘9—=‘=  sÓ+Ð+rI   c                 ó:   — | j                   j                  ||«      S r   r  r–   s      r   Úpow_by_naturalzSympyToZ3.pow_by_natural½  r  rI   r�   rŽ   c                 ó:   — | j                   j                  ||«      S r   ©r  r‘   r�   s      r   r‘   zSympyToZ3.modÀ  ó   € Ø—9‘9—=‘=  AÓ&Ð&rI   c                 ó:   — | j                   j                  ||«      S r   r  r�   s      r   Ú
python_modzSympyToZ3.python_modÃ  r  rI   c                 ó8   — | j                   j                  |«      S r   )r  r‚   r  s      r   Úceil_to_intzSympyToZ3.ceil_to_intÆ  s   € Ø—9‘9—>‘> !Ó$Ð$rI   c                 ó8   — | j                   j                  |«      S r   )r  rz   r  s      r   Úfloor_to_intzSympyToZ3.floor_to_intÉ  s   € Ø—9‘9—?‘? 1Ó%Ð%rI   Únamec                 ó  — t         j                  t         j                  t         j                  | j                  j
                  | j                  j                  | j                  j                  | j                  j                  | j                  j                  | j                  j                  | j                  j                  | j                  j                  dœ}||v r||   S || j                  v rt        t        |«      S t!        d|› �«      ‚)N)r§   rª   rÊ   r©   r«   r¬   r­   rz   r‚   ÚminimumÚmaximumzunhandled operator: )r   r¨   r•   rË   r  r©   r«   r¬   r­   rz   r‚   rŒ   r‰   ÚOPERATOR_HANDLESÚgetattrr¦   ÚAttributeError)rM   r&  ÚREPLACEMENTs      r   Ú__getattr__zSympyToZ3.__getattr__Ì  sÁ   € äŸ™Ü—u‘uÜŸ™Ø#Ÿy™y×4Ñ4Ø"Ÿi™i×2Ñ2ØŸ)™)×*Ñ*ØŸ)™)×*Ñ*ØŸ™Ÿ™ØŸ	™	Ÿ™ØŸ9™9Ÿ=™=ØŸ9™9Ÿ=™=ñˆKð �{Ñ"Ø" 4Ñ(Ð(Ø�t×,Ñ,Ñ,Üœx¨Ó.Ð.Ü Ð#7¸°vÐ!>Ó?Ð?rI   Úexprc                 óD   — t        | | j                  j                  |«      S r   )r   r   Úsymbols)rM   r/  s     r   ÚrunzSympyToZ3.runá  s   € Ü  d§o¡o×&=Ñ&=¸tÓDÐDrI   )rc   rb   r   N)!r    r¡   r¢   r*  rä   r´   r¸   r³   rÐ   r  r   r.   r  r¥   r  r  rŸ   r  rÌ   r~   rv   r   r  r‘   r!  r#  r%  r0   r   r.  r¶   ÚBasicr2  r®   rI   r   rö   rö   ‰  sy  „ ÚMÐð	0à-ð	0ð ó	0ð	H #¨¡+°Ñ"4ð 	H¸U¿[¹[ð 	HÈRÏZÉZó 	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rI   rö   c                   ó^  — e Zd Zdd„Zdej
                  dej                  fd„Zdej
                  de	dej                  fd„Z
dej                  ddfd	„Zdej                  dej                  fd
„Zdej                  ddfd„Zdd„Zdej                  ej                  z  ddfd„Zdd„Zdd„Zy)rb   r   Nc                 ó–   — t         j                  d«       i | _        t        «       | _        t        «       | _        t        «       | _        y )Nznew instance)ÚlogÚdebugr1  ÚsetÚ_source_exprsÚ_target_exprsÚ_assertions©rM   s    r   rä   zTranslationValidator.__init__ó  s;   € Ü�I‰I�nÔ%ð <>ˆDŒLô
 36³%ˆDÔô
 36³%ˆDÔô 14³ˆDÕrI   rê   c                 óX   — || j                   vrt        d|› �«      ‚| j                   |   S )NzZ3 variable not found for: )r1  r-   )rM   rê   s     r   rí   zTranslationValidator.z3var  s0   € Ø˜TŸ\™\Ñ)Ü$Ð'BÀ6À(Ð%KÓLÐLØ—<‘< Ñ'Ð'rI   r»   c                 ó  — || j                   v r| j                   |   S t        j                  d|j                  |j                  «       |t
        u rJt        j                  |j                  «      }|j                  r}| j                  j                  |dkD  «       n^|t        u r t        j                  |j                  «      }n6|t        u r t        j                  |j                  «      }nt        d|› �«      ‚|| j                   |<   |S )Nznew variable: %s (%s)r   z"unsupported type for Z3 variable: )r1  r6  r7  r&  r    r´   r   ÚIntÚis_positiver:  rý   r¸   ÚRealr³   ÚBoolÚRuntimeError)rM   rê   r»   Úvars       r   Úadd_varz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à#&ˆD�L‰L˜Ñ ØˆJrI   r   c                 óª   — |j                   D ]D  }t        |t        j                  «      st	        dt        |«      › �«      ‚| j                  |«       ŒF y )NzExpected sympy.Symbol, got )Úfree_symbolsrQ   r¶   ÚSymbolr-   r»   rí   )rM   r   Úss      r   Ú_check_freesymbolsz'TranslationValidator._check_freesymbols&  sG   € Ø—^‘^ò �Ü! !¤U§\¡\Ô2Ü(Ð+FÄtÈAÃwÀiÐ)PÓQÐQð —
‘
˜1•ñrI   c                 óŠ   — t        | «      j                  |«      }t        |t        j                  «      st        d|› �«      ‚|S )Nz"expected boolean expression. Got: )rö   r2  rQ   r   rR   r-   ©rM   r   Úz3exprs      r   Úto_z3_boolean_exprz'TranslationValidator.to_z3_boolean_expr.  s<   € Ü˜t“_×(Ñ(¨Ó+ˆFÜ˜f¤b§j¡jÔ1Ü$Ð'IÈ&ÈÐ%RÓSÐSØˆMrI   c                 ó”   — || j                   vrt        j                  dt        |«      «       | j                   j	                  |«       y )Nzadd source guard: %s)r9  r6  r7  r   rý   )rM   r   s     r   rñ   z$TranslationValidator.add_source_expr4  s7   € Ø˜×*Ñ*Ñ*Ü—	‘	Ð0´%¸³(Ô;Ø×Ñ×"Ñ" 1Õ%rI   c                 óØ   — | j                  |«       | j                  |«      }|| j                  vrt        j	                  dt        |«      «       | j                  j                  |«       y )Nzadd target guard: %s)rJ  rN  r:  r6  r7  r   rý   rL  s      r   Úadd_target_exprz$TranslationValidator.add_target_expr9  sU   € Ø×#Ñ# AÔ&Ø×,Ñ,¨QÓ/ˆFØ˜×*Ñ*Ñ*Ü—	‘	Ð0´%¸³-Ô@Ø×Ñ×"Ñ" 6Õ*rI   c                 ót  — t        |t        j                  «      r#| j                  |«       | j	                  |«      }n|}t        |t
        j                  «      st        dt        |«      › �«      ‚|| j                  vrt        j                  dt        |«      «       | j                  j                  |«       y )NzExpected z3.BoolRef, got zadd assertion: %s)rQ   r¶   r3  rJ  rN  r   rR   r-   r»   r;  r6  r7  r   rý   )rM   r   Úrefs      r   rt   z"TranslationValidator.add_assertion@  s�   € Ü˜!œUŸ[™[Ô)Ø×'Ñ'¨Ô*Ø×-Ñ-¨aÓ0‘à�Ü˜c¤2§:¡:Ô.Ü$Ð'@ÄÀcÃÀÐ%LÓMÐMØ˜$×*Ñ*Ñ*Ü—	‘	Ð-¬u°S«zÔ:Ø×Ñ× Ñ  Õ%rI   c                 ód   — t        d«      5  | j                  «       cd d d «       S # 1 sw Y   y xY w)NzTranslationValidator.validate)r
   Ú	_validater<  s    r   ÚvalidatezTranslationValidator.validateL  s*   € ÜÐ=Ó>ñ (Ø—~‘~Ó'÷(÷ (ò (ús   Œ&¦/c                 ó¨  — t        | j                  «      dk(  st        | j                  «      dk(  ry t        j                  d«      }|j                  t        «       ¬«       | j                  D ]  }|j                  |«       Œ |j                  t        j                  t        j                  | j                  Ž «      «        |j                  | j                  Ž  t        j                  d«       |j                  «       }|t        j                  k(  r]|j                  «       }t!        || j                  | j                  | j                  D �cg c]  }|j#                  |«      rŒ|‘Œ c}¬«      ‚|t        j$                  k(  rt        j'                  d«       y |t        j(                  k7  rt+        d|› �«      ‚t        j                  d«       y c c}w )	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Ã   r9  r:  r   Ú	SolverForr8  Útranslation_validation_timeoutr;  rý   rË   r¨   r6  r7  ÚcheckÚsatÚmodelÚValidationExceptionÚevaluateÚunknownÚwarningÚunsatr-   )rM   ÚsolverÚ	assertionÚrr_  Úinps         r   rU  zTranslationValidator._validateP  sr  € Ü�4×%Ñ%Ó&¨!Ò+¬s°4×3EÑ3EÓ/FÈ!Ò/Kð ô —\‘\ (Ó+ˆFà�J‰JÔ=Ó?ˆJÔ@ð "×-Ñ-ò &�	Ø—
‘
˜9Õ%ð&ð
 �J‰J”r—v‘vœbŸf™f d×&8Ñ&8Ð9Ó:Ô;ØˆF�J‰J˜×*Ñ*Ñ+ä�I‰IÐ5Ô6Ø—‘“ˆAØ”B—F‘FŠ{ð Ÿ™›�Ü)ØØ×$Ñ$Ø×&Ñ&à'+×'9Ñ'9ö)Ø #ÀÇÁÐPSÕATšò)ô	ð ð œŸ
™
’?ô —K‘KØTõð
 œBŸH™H’}Ü,Ð/FÀqÀcÐ-JÓKÐKÜ—I‘IÐ?Õ@ùò!)s   ÅGÅ#G©r   N)r   zsympy.logic.boolalg.Booleanr   N)r    r¡   r¢   rä   r¶   rH  r   r.   rí   r»   rE  r3  rJ  rR   rN  rñ   rQ  rt   rV  rU  r®   rI   r   rb   rb   ò  s½   „ ó	6ð*	( §¡ð 	(°·±ó 	(ð	 %§,¡,ð 	°dð 	¸r¿z¹zó 	ð0	¨¯©ð 	¸ó 	ð	¨¯©ð 	¸¿
¹
ó 	ð	& R§Z¡Zð 	&°Dó 	&ó
	+ð
	& 2§:¡:°·±Ñ#;ð 
	&Àó 
	&ó	(ô7	ArI   T)	r   rÚ   rÜ   rö   rb   Útranslation_validation_enabledr\  r`  ÚBisectValidationExceptionF)rj  r\  r`  rk  )Ú_configc                  óF   — t        «        t        xr t        j                  S r   )Ú_assert_z3_installed_if_tv_setÚ_HAS_Z3ÚconfigÚtranslation_validationr®   rI   r   rj  rj  ¥  s   € ô #Ô$ÜÒ4”v×4Ñ4Ð4rI   c                  ó"   — t         j                  S r   )rp  r\  r®   rI   r   r\  r\  ¬  s   € Ü×0Ñ0Ð0rI   c                  óH   — t         st        j                  rt        d«      ‚y y )Nzotranslation validation requires Z3 package. Please, either install z3-solver or disable translation validation.)ro  rp  rq  r-   r®   rI   r   rn  rn  °  s&   € Ýœ6×8Ò8Üð;ó
ð 	
ð 9ˆGrI   c            
       ó4   — e Zd Zdededededdf
d„Zdefd„Zy)	r`  r_  Ú
assertionsÚtarget_exprsrZ  r   Nc                 ó�  ‡— t         st        d«      ‚dt        dt        fˆfd„}dt        dt        fd„} |t	        t        |‰«      «      «      } |t	        t        t        |«      «      «      } |t	        t        t        |«      «      «      }	 |t	        t        t        |«      «      «      }
d| _        d|› d	|› d
|	› d|
› �| _        y )NzZ3 is requiredÚsymr   c                 ó   •— | › d‰|    › �S )Nú: r®   )rx  r_  s    €r   Ú	symbolstrz/ValidationException.__init__.<locals>.symbolstr¿  s   ø€ Ø�U˜"˜U 3™Z˜LÐ)Ð)rI   Úxsc                 ó2   — dj                  d„ | D «       «      S )Nú
c              3   ó&   K  — | ]	  }d |› �–— Œ y­w)z  ==> Nr®   )rS   r#   s     r   rT   zBValidationException.__init__.<locals>.joinlines.<locals>.<genexpr>Ã  s   è ø€ Ò6¨a˜v a Sœ\Ñ6ùs   ‚)rA   )r|  s    r   Ú	joinlinesz/ValidationException.__init__.<locals>.joinlinesÂ  s   € Ø—9‘9Ñ6°2Ô6Ó6Ð6rI   ztranslation validation failed.zModel:
z

Assertions:
z

Target Expressions:
z

Failed Source Expressions:
)	ro  r-   r   r0   ÚsortedÚmapr   ÚmsgÚdetails)rM   r_  ru  rv  rZ  r{  r€  Ú	model_strÚassertions_strÚtarget_exprs_strÚfailed_source_exprs_strs    `         r   rä   zValidationException.__init__¹  sØ   ø€ õ Ü Ð!1Ó2Ð2ð	*œ3ð 	*¤3õ 	*ð	7œ#ð 	7¤#ó 	7ñ œf¤S¨°EÓ%:Ó;Ó<ˆ	Ù"¤6¬#¬e°ZÓ*@Ó#AÓBˆÙ$¤V¬C´°|Ó,DÓ%EÓFÐÙ"+¬F´3´uÐ>QÓ3RÓ,SÓ"TÐà3ˆŒðà
€ð ð Ð ð ð Ð ð ð Ð ðˆ�rI   c                 ó8   — | j                   › d| j                  › �S ©Nú

©rƒ  r„  r<  s    r   Ú__str__zValidationException.__str__Ø  ó   € Ø—(‘(�˜4 §¡˜~Ð.Ð.rI   )r    r¡   r¢   r   rä   r0   r�  r®   rI   r   r`  r`  ¸  s;   „ ðØðØ&)ðØ9<ðØSVðà	óð>/˜ô /rI   r`  c            
       óp   — e Zd Zdedej
                  dedej                  j                  ddf
d„Z
defd„Zy)	rk  Úvalidation_excr/  Úfailed_actionÚtraced_noder   Nc                 óh   — d|› d|› �| _         d|j                  «       › d|j                  › �| _        y )Nz#translation validation failed when rz  z)Failure occurred while running node:
    r‹  )rƒ  Úformat_noder„  )rM   r�  r/  r‘  r’  s        r   rä   z"BisectValidationException.__init__Ý  sF   € ð 9¸¸ÀrÈ$ÈÐPˆŒðà×ÑÓÐð  à×ÑÐ ð	ˆ�rI   c                 ó8   — | j                   › d| j                  › �S rŠ  rŒ  r<  s    r   r�  z!BisectValidationException.__str__ë  rŽ  rI   )r    r¡   r¢   r`  r¶   r3  r0   rÐ   rá   ÚNoderä   r�  r®   rI   r   rk  rk  Ü  sO   „ ðà+ðð �k‰kðð ð	ð
 —X‘X—]‘]ðð 
óð/˜ô /rI   rk  c           	      ó(  ‡‡‡‡‡‡— ddl mŠmŠm} ddlm}m}mŠ | j                  Šdt        j                  j                  d|fˆˆfd„}t        d|dt        dt        fd	„«       Št        d|dt        j                  dt        j                  fd
„«       Št        d|dt        j                  dt        j                  fd„«       Št        d|d‰d‰fd„«       Šd|dt        t        j                  z  t        j                  z  ‰z  dt        t        j                  z  t        j                  z  ‰z  fˆˆfd„Šd|dt         d   d z  dt"        d z  fˆfd„Šdt        j                  j                  dt"        d z  fˆˆˆˆfd„} ‰| | j%                  «       «      }|st&        j)                  d«       y | j*                  rt,        j.                  r|‚i }| j0                  j2                  D �cg c]!  }|j4                  t        j6                  u sŒ |‘Œ# }	}ddt9        |	«      dz
  }}}
 ||	|   «      ||<   |
|k  rH|
|z   dz  }|	|   }t&        j;                  d| ||«      «        ||«      ||<   ||   r|}n|dz   }
|
|k  rŒH|
|v rt=        ||
   t"        «      st?        d«      ‚||
   }|	|
   } ||«      }|jA                  «       rd}n |jC                  «       st?        d|› �«      ‚d}|jD                  }|€t?        d«      ‚t9        |«      dk  r$t?        d|jF                  › dt9        |«      › �«      ‚t=        |d   tH        jJ                  «      s't?        d|jF                  › dtM        |d   «      › �«      ‚tO        ||d   ||jP                  |   ¬«      ‚c c}w )Nr   )ÚFakeTensorMetaÚreplay_shape_env_eventsÚShapeEnvEvent)ÚCURRENT_NODE_KEYr   ÚSHAPEENV_EVENT_KEYÚnoder   c                 óZ   •— ‰| j                   vrt        d«      ‚‰| j                   ‰      S )Nz#SHAPEENV_EVENT_KEY not in node.meta)Úmetar-   )r�  rœ  Úeventss    €€r   Úget_node_eventzbisect.<locals>.get_node_event
  s0   ø€ Ø T§Y¡YÑ.Ü Ð!FÓGÐGØ�d—i‘iÐ 2Ñ3Ñ4Ð4rI   Ú	shape_envÚfakec                  ó   — y r   r®   ©r¢  r£  s     r   Únew_with_shape_envz"bisect.<locals>.new_with_shape_env  s   € ØCFrI   c                  ó   — y r   r®   r¥  s     r   r¦  z"bisect.<locals>.new_with_shape_env  s   € ØUXrI   c                  ó   — y r   r®   r¥  s     r   r¦  z"bisect.<locals>.new_with_shape_env  ó   € ð rI   c                  ó   — y r   r®   r¥  s     r   r¦  z"bisect.<locals>.new_with_shape_env  r©  rI   c           	      óh  •‡ — t        |t        «      r|S t        |t        j                  «      r.t        j                  |j                  j                  ‰ «      «      S t        |t        j                  «      r.t        j                  |j                  j                  ‰ «      «      S t        |‰«      st        dt        |«      › �«      ‚ ‰t        ˆˆ fd„|j                  «       D «       «      t        ˆˆ fd„|j                  «       D «       «       ‰‰ |j                  «       «      |j                  «      S )NzExpected FakeTensorMeta, got c              3   ó0   •K  — | ]  } ‰‰|«      –— Œ y ­wr   r®   ©rS   rI  r¦  r¢  s     €€r   rT   z5bisect.<locals>.new_with_shape_env.<locals>.<genexpr>0  s   øè ø€ ÒH°qÑ$ Y°×2ÑHùó   ƒc              3   ó0   •K  — | ]  } ‰‰|«      –— Œ y ­wr   r®   r­  s     €€r   rT   z5bisect.<locals>.new_with_shape_env.<locals>.<genexpr>1  s   øè ø€ ÒJ°qÑ$ Y°×2ÑJùr®  )rQ   r´   rÐ   ÚSymIntr�  Úwith_shape_envÚSymFloatr-   r»   rZ   ÚsizeÚstrideÚstorage_offsetÚ	is_nested)r¢  r£  r˜  r¦  s   ` €€r   r¦  z"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ó	
ð 	
rI   Útracked_fakesr   c           	      ó6  •— |€t        d«      ‚	 | j                  |D �cg c]  } ‰| |j                  «      ‘Œ c}|D �cg c]  }|j                  ‘Œ c}|D �cg c]  }|j                  ‘Œ c}¬«       y c c}w c c}w c c}w # t
        $ r}|cY d }~S d }~ww xY w)Nztracked_fakes is None)Úinput_contexts)r-   Úproduce_guardsr£  ÚsourceÚsymbolic_contextr`  )r¢  r·  rX   r   r¦  s       €r   Úcheck_shapeenv_failsz$bisect.<locals>.check_shapeenv_fails7  s™   ø€ ð Ð Ü Ð!8Ó9Ð9ð	ð ×$Ñ$à@MÖN¸1Ñ# I¨q¯v©vÕ6ÒNØ#0Ö1˜a�—“Ò1Ø<IÖJ°q × 2Ó 2ÒJð	 %ô ð ùò	 OùÚ1ùÚJøô #ò 	Ø�Hûð	úsD   �B ŸA4¹B ¿A9
ÁB ÁA>Á+B Á4B Â	BÂBÂBÂBc                 óž   •— | j                   ‰   } ‰‰d |dz    «      }|j                  j                  «         ‰|‰|   j                  «      S r€   )rŸ  rÝ   Úlintr·  )r�  rw   r¢  rœ  r½  r   r™  s      €€€€r   Úcheck_node_failsz bisect.<locals>.check_node_failsL  sN   ø€ Ø—‘Ð-Ñ.ˆá+¨F°<°V¸a±ZÐ,@ÓAˆ	Ø�‰×ÑÔÙ# I¨v°f©~×/KÑ/KÓLÐLrI   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: )r/  r‘  r’  ))Útorch.fx.experimental.recordingr˜  r™  rš  Ú%torch.fx.experimental.symbolic_shapesr›  r   rœ  r   rÐ   rá   r–  r   r´   r°  r²  r/   r`  Ú_snapshot_tracked_fakesr6  ÚinfoÚshould_record_eventsrp  Ú translation_validation_no_bisectrÝ   Únodesrç   rÖ   rÃ   r7  rQ   r-   Úis_evaluate_exprÚis_defer_runtime_assertrD   r&  r¶   r3  r»   rk  rŸ  )r¢  rš  r›  r   r¡  rÀ  Úlast_exceptionÚ	exceptionr�  Úassert_nodesÚleftÚmidÚrightÚleft_exceptionÚeventr‘  rD   r˜  rœ  r½  r   r¦  r™  s                    @@@@@@r   ÚbisectrÓ  û  sÐ  ý€ ÷ñ ÷
ñ ð ×Ñ€Fð5œUŸX™XŸ]™]ð 5¨}ö 5ô ØF hÐF´cÐF¼cÒFó ØFäØX hÐX´e·l±lÐXÄuÇ|Á|ÒXó ØXäðØðÜ#(§>¡>ðä	�‰òó ðô ðØðØ#1ðà	òó ðð
Øð
Ü#&¬¯©Ñ#5¼¿¹Ñ#FÈÑ#Wð
ä	Œu�|‰|Ñ	œeŸn™nÑ	,¨~Ñ	=ö
ð&ØðÜ,0°Ñ,?À$Ñ,Fðä	˜tÑ	#õð*MœuŸx™xŸ}™}ð MÔ1DÀtÑ1K÷ Mð Mñ *Ø�9×4Ñ4Ó6ó€Nñ ô 	�‰ÐEÔFØà×)Ò)¬V×-TÒ-Tð Ðð €Ið
 #Ÿ™×.Ñ.öØ°$·+±+ÄÇÁÒ2NŠð€Lð ð ˜!œS Ó.°Ñ2ˆuˆ#€DÙ'¨°UÑ(;Ó<€IˆeÑà
�Š,Ø�e‰| Ñ!ˆà˜CÑ ˆÜ�	‰	Ð'¨©n¸TÓ.BÔCñ *¨$Ó/ˆ	�#‰à�SŠ>Ø‰Eà˜‘7ˆDð �‹,ð �IÑ¤*¨Y°t©_Ô>QÔ"RÜÐLÓMÐMØ*3°D©/€Nà˜Ñ€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Ð.Ñ/ô	ð ùòos   Ç%!NÈNri  )r¢  r   r   N)>rÍ   r^   ÚloggingrÏ   r¦   Úcollections.abcr   Údataclassesr   Útypingr   r   r   r   r¶   rÐ   Útorch.fxÚtorch.fx.tracebackrá   Ú	tracebackrë   Útorch._dynamo.excr	   Útorch._dynamo.utilsr
   Útorch.fx.noder   r   Útorch.utils._sympy.interpr   rÃ  r   r   Ú	getLoggerr    r6  r   r   r.   r0   r   r`   rN   rÚ   ÚInterpreterrÜ   rö   rb   ro  Ú__all__ÚImportErrorÚtorch.fx.experimentalrl  rp  r³   rj  r´   r\  rn  r`  rk  rÓ  r®   rI   r   ú<module>rä     sÃ  ðÛ Û Û Û Û Ý $Ý !ß 8Ó 8ã ã Û ß )Ð )Ý 2Ý ,ß *Ý 2ñ ßKð €g×Ñ˜Ó!€áˆTƒ]€ðC
ÛðHU&�—‘ð U& ó U&ðtØ˜s C˜xÑ(ðØ5=¸cÀ3¸hÑ5GÈ$Ñ5Nðà	�#�s�(Ñ	óð( ÷]4ð ]4ó ð]4ðNAJØ�S˜#�XÑðAJØ+AðAJà	�#�s�(Ñ	óAJôX4˜EŸH™H×0Ñ0ô 4÷JYEñ YE÷RUAñ UAðD €Gò
€Gõ 4ð5¨ó 5ð1¨ó 1ó
ô!/Ð.ô !/ôH/Ð 4ô /ñ( Ô  ôhøðe ò Ø€Gò‚Gðús   ÂBE ÅEÅE