§
    ©²Åj¶  ã                   óê  — d dl Z 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 d dlZd dlZd dl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/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z< d dl=m>Z>m?Z?m@Z@mAZA d dlBmCZCmDZDmEZEmFZG d d	lHmIZI d d
lJmKZKmLZL dZM	 d dlNZNdZMn# eO$ r Y nw xY wdZPdhZQ eRejS        ejT        z   ejU        z   ¦  «        ZVd„ ZWe jX        de j$        de j        de j        de j;        de j-        de j        de jY        de jZ        de j[        de j        de j        diZ\e jX        de j$        de j        de j        de j;        de j-        d e j        d!e jY        d"e jZ        d#e j[        d$e j        d%e j        d&iZ]e\ ^                    e j_        d'e j`        d(e ja        d)e jb        d*e jc        d+i¦  «         e] ^                    e j_        d,e j`        d-e ja        d.e jb        d/e jc        d0i¦  «         e\ ^                    e jd        d1i¦  «          G d2„ d3ee¦  «        Zf G d4„ d5ef¦  «        Zg G d6„ d7eg¦  «        Zh G d8„ d9ef¦  «        Zid:„ Zjd;„ Zkd<„ Zld=„ Zmd>„ ZndSd?„Zod@„ Zp G dA„ dB¦  «        ZqdC„ ZrdTdD„ZsdEZtdUdF„ZudUdG„ZvdH„ ZwdI„ ZxdJ„ Zy G dK„ dLeq¦  «        Zz G dM„ dNeq¦  «        Z{ G dO„ dPeq¦  «        Z| e|¦   «         Z} e{¦   «         Z~ ez¦   «         ZdVdR„Z€dS )Wé    N)Ú
namedtuple)Údedent)ÚListÚTuple)Ú_jit_internal),ÚApplyÚAssertÚAssignÚ	AttributeÚ	AugAssignÚBinOpÚBreakÚClassDefÚConstÚContinueÚDeclÚDefÚDeleteÚDictCompÚDictLiteralÚDotsÚEmptyTypeAnnotationÚExprStmtÚFalseLiteralÚForÚIdentÚIfÚListCompÚListLiteralÚNoneLiteralÚParamÚPassÚPropertyÚRaiseÚReturnÚSelectÚ	SliceExprÚStarredÚStmtÚStringLiteralÚ	SubscriptÚ	TernaryIfÚTrueLiteralÚTupleLiteralÚUnaryOpÚVarÚWhileÚWithÚWithItem)Ú_is_drop_fnÚFunctionModifiersÚis_static_fnÚshould_drop)Úget_source_lines_and_fileÚmake_source_contextÚ	parse_defÚ	ParsedDef)ÚDATACLASS_MAGIC_METHODS)Úget_qualified_nameÚmonkeytype_traceFTÚ__jitÚprintc                 óH   — |                       t          ¦  «        p| t          v S ©N)Ú
startswithÚ_reserved_prefixÚ_reserved_names©Únames    úCC:\Projects\Historical\venv\Lib\site-packages\torch/jit/frontend.pyÚis_reserved_namerI   ]   s   € Ø�?Š?Õ+Ñ,Ô,ÐG°½Ð0GÐGó    zfunction definitionsz	for loopszdel statementszclass definitionszwith statementszraise statementsÚ
assertionszimport statementszglobal variableszbreak statementszcontinue statementsÚdefÚforÚdelÚclassÚwithÚraiseÚassertÚimportÚfromÚglobalÚbreakÚcontinuezasync function definitionszasync for loopszasync with statementsz
try blocksznonlocal variablesz	async defz	async forz
async withÚtryÚnonlocalzannotated assignmentsc                   ó   — e Zd Zd„ Zd„ ZdS )ÚFrontendErrorc                 ót   — || _         || _        t          j                             | j         ¦  «        | _        d S rB   )Úsource_rangeÚmsgÚtorchÚ_CÚErrorReportÚerror_report)Úselfr]   r^   s      rH   Ú__init__zFrontendError.__init__œ   s4   € Ø(ˆÔØˆŒõ "œH×0Ò0°Ô1BÑCÔCˆÔÐÐrJ   c                 óh   — | j         | j                             ¦   «                              ¦   «         z   S rB   )r^   rb   ÚwhatÚlstrip)rc   s    rH   Ú__str__zFrontendError.__str__¤   s*   € ØŒx˜$Ô+×0Ò0Ñ2Ô2×9Ò9Ñ;Ô;Ñ;Ð;rJ   N)Ú__name__Ú
__module__Ú__qualname__rd   rh   © rJ   rH   r[   r[   ›   s5   € € € € € ðDð Dð Dð<ð <ð <ð <ð <rJ   r[   c                   ó   — e Zd ZdS )ÚNotSupportedErrorN©ri   rj   rk   rl   rJ   rH   rn   rn   ¨   ó   € € € € € Ø€DrJ   rn   c                   ó    ‡ — e Zd Zdˆ fd„	Zˆ xZS )ÚUnsupportedNodeErrorÚ c                 ój  •— t          |¦  «        }t          t                               |d¦  «        ¦  «        }|                     |j        |j        |j        |z   ¦  «        }t                               ||j        ¦  «        }|› d|r|dz   nd› d�}t          ¦   «          
                    ||¦  «         d S )Nú rs   zaren't supported)ÚtypeÚlenÚnode_start_tokensÚgetÚ
make_rangeÚlinenoÚ
col_offsetÚpretty_node_namesri   Úsuperrd   )
rc   ÚctxÚoffending_nodeÚreasonÚ	node_typeÚ	range_lenr]   Úfeature_namer^   Ú	__class__s
            €rH   rd   zUnsupportedNodeError.__init__­   sµ   ø€ å˜Ñ(Ô(ˆ	ÝÕ)×-Ò-¨i¸Ñ=Ô=Ñ>Ô>ˆ	Ø—~’~ØÔ!ØÔ%ØÔ%¨	Ñ1ñ
ô 
ˆõ
 )×,Ò,¨Y¸	Ô8JÑKÔKˆØÐPÐP°Ð > ¨¡ ¸BÐPÐPÐPˆÝ‰Œ×Ò˜ sÑ+Ô+Ð+Ð+Ð+rJ   )rs   )ri   rj   rk   rd   Ú__classcell__)r…   s   @rH   rr   rr   ¬   s=   ø€ € € € € ð,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,rJ   rr   c                   ó   — e Zd ZdS )ÚFrontendTypeErrorNro   rl   rJ   rH   rˆ   rˆ   »   rp   rJ   rˆ   c                 ó>   ‡ — ˆ fd„|D ¦   «         }t          |¦  «        S )Nc                 ó0   •— g | ]}t          ‰|¦  «        ‘ŒS rl   )Úbuild_withitem)Ú.0Úir   s     €rH   ú
<listcomp>z#build_withitems.<locals>.<listcomp>À   s#   ø€ Ð3Ð3Ð3¨�^˜C Ñ#Ô#Ð3Ð3Ð3rJ   )Úlist)r   Úitemss   ` rH   Úbuild_withitemsr‘   ¿   s(   ø€ Ø3Ð3Ð3Ð3¨UÐ3Ñ3Ô3€EÝ�‰;Œ;ÐrJ   c                 óZ   ‡ — ˆ fd„|D ¦   «         }t          t          d |¦  «        ¦  «        S )Nc                 ó0   •— g | ]}t          ‰|¦  «        ‘ŒS rl   )Ú
build_stmt)rŒ   Úsr   s     €rH   rŽ   zbuild_stmts.<locals>.<listcomp>Å   s#   ø€ Ð/Ð/Ð/ A�Z˜˜QÑÔÐ/Ð/Ð/rJ   )r�   Úfilter)r   Ústmtss   ` rH   Úbuild_stmtsr˜   Ä   s4   ø€ Ø/Ð/Ð/Ð/¨Ð/Ñ/Ô/€EÝ•�t˜UÑ#Ô#Ñ$Ô$Ð$rJ   c                 ó   — t          j        | d„ ¬¦  «        }t          | dg ¦  «        }g }|D ]à}|d         |vrÔt          |d         j        ¦  «        sºt          |d         j        d|d         › d�|¬¦  «        }|d         j        r't          |d         j        d|d         › d	�|¬¦  «        nd
}|                     t          | 	                    ¦   «         t          | 	                    ¦   «         |d         ¦  «        ||¦  «        ¦  «         Œá|S )aj  
    Get a list of Property objects representing the properties of a class.

    Args:
        cls:  The class to get properties of.
        self_name: The name of the class that the properties should belong to.
    Returns:
        A list of Property objects corresponding to the properties of cls. Property
        here refers to the subclass of TreeView.
    c                 ó,   — t          | t          ¦  «        S rB   )Ú
isinstanceÚproperty)Úms    rH   ú<lambda>z&get_class_properties.<locals>.<lambda>Ô   s   € ½
À1ÅhÑ8OÔ8O€ rJ   ©Ú	predicateÚ__jit_unused_properties__r   é   Ú__Ú_getter)Ú	self_nameÚ_setterN)ÚinspectÚ
getmembersÚgetattrr7   ÚfgetÚget_jit_defÚfsetÚappendr#   Úranger   )Úclsr¥   ÚpropsÚunused_propertiesÚ
propertiesÚpropÚgetterÚsetters           rH   Úget_class_propertiesr¶   É   s/  € õ Ô˜sÐ.OÐ.OÐPÑPÔP€Eå Ð%@À"ÑEÔEÐð €JØð ð ˆØ�Œ7Ð+Ð+Ð+µKÀÀQÄÄÑ4MÔ4MÐ+Ý Ø�Q””Ð3 4¨¤7Ð3Ð3Ð3¸yðñ ô ˆFð
 ˜”7”<ð•˜D œGœLÐ*?¨t°A¬wÐ*?Ð*?Ð*?È9ÐUÑUÔUÐUàð ð
 ×ÒÝ˜Ÿš™œ­¨v¯|ª|©~¬~¸tÀA¼wÑ)GÔ)GÈÐQWÑXÔXñô ð øð ÐrJ   c                 óð   ‡ ‡— g Šˆˆ fd„}|j         D ]c}t          |t          j        ¦  «        r |t          j        |¦  «         Œ3t          |t          j        ¦  «        r |t          j        |¦  «         Œd‰S )Nc                 ój   •— 	 ‰                       | ‰|¦  «        ¦  «         d S # t          $ r Y d S w xY wrB   )r­   rn   )ÚbuilderÚentryÚassignsr   s     €€rH   Úmaybe_build_assignz-get_class_assigns.<locals>.maybe_build_assignî   sN   ø€ ð	Ø�NŠN˜7˜7 3¨Ñ.Ô.Ñ/Ô/Ð/Ð/Ð/øÝ ð 	ð 	ð 	ØˆDˆDð	øøøs   ƒ$ ¤
2±2)Úbodyr›   Úastr
   ÚStmtBuilderÚbuild_AssignÚ	AnnAssignÚbuild_AnnAssign)r   Úcls_astr¼   rº   r»   s   `   @rH   Úget_class_assignsrÄ   ë   s›   øø€ Ø€Gðð ð ð ð ð ð ”ð Cð CˆÝ�e�SœZÑ(Ô(ð 	CØÐ�{Ô7¸Ñ?Ô?Ð?Ð?Ý˜�sœ}Ñ-Ô-ð 	CØÐ�{Ô:¸EÑBÔBÐBøØ€NrJ   c                 óþ  ‡ ‡‡— t          j        ‰ ˆ fd„¬¦  «        }ˆ fd„Št          ‰ t          j        j                             ¦   «         ¦  «        \  }}}d                     |¦  «        }t          |¦  «        }t          j
        |¦  «        }|j        d         }	t          |	t          j        ¦  «        sJ ‚t          j        ‰ ¦  «        rŠd„ |	j        D ¦   «         }
t!          |¦  «        D ]i\  }\  }}t#          j        |¦  «        }|rK||
vrG |‰ ¦  «        }||f||<   t'          ‰ |¦  «        }t(          j                             ||j        ¦  «         Œjˆˆfd„|D ¦   «         }t1          ‰ ‰¦  «        }t3          |                     dd	¦  «        d         ¦  «        t3          |                     dd	¦  «        d         ¦  «        z
  }t7          ||||d
¦  «        }t9          ||	¦  «        }t;          ||	||‰|¦  «        S )ap  Get definitions for each method within the current class independently.

    Args:
        cls: The class to get definition of.
        self_name: The name of the class that the properties should belong to.

    Returns:
        torch._C._jit_tree_views.ClassDef: A representation of the class,
            the methods in the class and their definition as a tree.
    c                 ó¼   •— t          j        | ¦  «        st          j        | ¦  «        o3t          ‰| j        ¦  «         o| j        ‰j        v ot          | ¦  «         S rB   )r§   ÚismethodÚ
isfunctionr6   ri   Ú__dict__r4   ©r�   r¯   s    €rH   rž   z#get_jit_class_def.<locals>.<lambda>  s`   ø€ �WÔ-¨aÑ0Ô0ÐIµGÔ4FÀqÑ4IÔ4Ið Ý˜S !¤*Ñ-Ô-Ð-ðàŒJ˜#œ,Ð&ðõ ˜A‘”Ðð rJ   rŸ   c                 óV   •— t          j        | ¦  «        ot          | dd ¦  «        ‰k    S )NÚ__self__)r§   rÇ   r©   )Úfnr¯   s    €rH   Úis_classmethodz)get_jit_class_def.<locals>.is_classmethod  s*   ø€ ÝÔ Ñ#Ô#ÐL­°°JÀÑ(EÔ(EÈÒ(LÐLrJ   rs   r   c                 ól   — h | ]1}t          |t          j        ¦  «        r|j        t          v ¯*|j        ’Œ2S rl   )r›   r¾   ÚFunctionDefrG   r<   ©rŒ   Úmethods     rH   ú	<setcomp>z$get_jit_class_def.<locals>.<setcomp>'  sJ   € ð 
ð 
ð 
àÝ˜&¥#¤/Ñ2Ô2ð
ð ”Õ6Ð6Ð6ð ŒKð 7Ð6Ð6rJ   c           
      óN   •— g | ]!\  }}t          ||‰ ‰|¦  «        ¬ ¦  «        ‘Œ"S ))r¥   rÎ   )r«   )rŒ   rG   ÚobjrÎ   r¥   s      €€rH   rŽ   z%get_jit_class_def.<locals>.<listcomp>6  sI   ø€ ð ð ð áˆT�3õ 	�C˜¨À>À>ÐRUÑCVÔCVÐWÑWÔWðð ð rJ   ú
r¢   F)r§   r¨   r8   r_   r`   ra   Ú
call_stackÚjoinr   r¾   Úparser½   r›   r   ÚdataclassesÚis_dataclassÚ	enumerater<   ry   r©   r   ÚloaderÚcacheÚsourcer¶   rw   Úsplitr9   rÄ   Úbuild_class_def)r¯   r¥   ÚmethodsÚsourcelinesÚfile_linenoÚfilenamerß   Ú
dedent_srcÚpy_astÚ	class_astÚ	overridesr�   rG   Ú_Úsynthesizer_fnÚ
parsed_defÚfuncÚmethod_defsr²   Úleading_whitespace_lenr   r»   rÎ   s   ``                    @rH   Úget_jit_class_defrð   ý   se  øøø€ õ Ô Øðð ð ð ðñ ô €GðMð Mð Mð Mð Mõ *CØ�UŒXÔ!×,Ò,Ñ.Ô.ñ*ô *Ñ&€K�˜hð �WŠW�[Ñ!Ô!€Få˜‘”€JÝŒY�zÑ"Ô"€Fà”˜A”€IÝ�i¥¤Ñ.Ô.Ð.Ð.Ð.õ Ô Ñ$Ô$ð Dð
ð 
à#œ.ð
ñ 
ô 
ˆ	õ & gÑ.Ô.ð 	Dð 	D‰LˆA‰y��aå4Ô8¸Ñ>Ô>ˆNØð D $¨iÐ"7Ð"7Ø+˜^¨CÑ0Ô0�
Ø! :Ð-�˜‘
Ý˜s DÑ)Ô)�ÝÔ$×*Ò*¨4°Ô1BÑCÔCÐCøðð ð ð ð à"ðñ ô €Kõ & c¨9Ñ5Ô5€Jå  §¢¨d°AÑ!6Ô!6°qÔ!9Ñ:Ô:½SØ×Ò˜˜qÑ!Ô! !Ô$ñ>ô >ñ Ðõ Ø�˜+Ð'=¸uñô €Cõ    YÑ/Ô/€Gå˜3 	¨;¸
ÀIÈwÑWÔWÐWrJ   c                 ó|  — t          | t          ¦  «        st          | ¦  «        n| }t          j        j                             |j        ¦  «        }|j        j	        d         }|rV|j
        j
        d         j        }t          j        |› d|› �¦  «        j	        d         }|j	                             d|¦  «         t          | ¦  «        röt          j        d¦  «        }	t          |	j	        ¦  «        dk    s%t          |	j	        d         t          j        ¦  «        st#          d|j        › d|j        › �¦  «        ‚|	j	        d         }
|
j	        |_	        dx|j
        _        |j
        _        |j
        j
        |j
        j        z   D ]}|
j
        j
        d         j        |_        Œt1          | ¦  «        rd|_        d|_        t          j        j                             ¦   «         }d}t:          r9t          | t          ¦  «        s$t=          | ¦  «        }|                     |¦  «        }tA          |j!        |||||¬¦  «        S )	af  
    Build a JIT AST (TreeView) from the given function.

    Args:
        fn: A function object to compile or a pre-parsed ParsedDef object
        def_name: The name to give to the resulting AST object. This is not
            always the same as `fn.__name__`, for example:
                def _forward(self):
                    ...
                forward = _forward
            In this case, the `__name__` attribute of the function object is "_forward",
            but we want the result AST to have the name "forward".
        self_name: If this function is a method, what the type name of `self` is.
    r   ú = zLdef unused_fn(self: Any):
	raise RuntimeError("Cannot call @unused methods")r¢   z&Expected a single top-level function: ú:N)r¥   Úpdt_arg_types)"r›   Ú
_ParsedDefr:   r_   ÚjitÚannotationsÚget_type_linerß   r¾   r½   ÚargsÚargrÙ   Úinsertr7   rw   rÐ   ÚRuntimeErrorrå   rä   ÚkwargÚvarargÚ
kwonlyargsÚ
annotationr4   ÚreturnsÚtype_commentÚ_scriptÚ_get_type_trace_dbr>   r=   Úget_args_typesÚ	build_defr   )rÍ   Údef_namer¥   rÎ   rì   Ú	type_lineÚfn_defÚarg_nameÚassign_stmtÚunused_fn_defÚ
unused_defrú   Útype_trace_dbrô   Úqualnames                  rH   r«   r«   G  s*  € õ '1°µZÑ&@Ô&@ÐH•˜2‘”�Àb€JÝ”	Ô%×3Ò3°JÔ4EÑFÔF€IØŒ^Ô  Ô#€Fàð +Ø”;Ô# AÔ&Ô*ˆå”i 8Ð ;Ð ;°	Ð ;Ð ;Ñ<Ô<ÔAÀ!ÔDˆØŒ×Ò˜1˜kÑ*Ô*Ð*õ �2�„ð 'Ýœ	Ø\ñ
ô 
ˆõ ˆ}Ô!Ñ"Ô" aÒ'Ð'­zØÔ˜qÔ!¥3¤?ñ0
ô 0
Ð'õ Øg¸Ô9LÐgÐgÈzÔOeÐgÐgñô ð ð #Ô'¨Ô*ˆ
Ø ”oˆŒà15Ð5ˆŒÔ˜FœKÔ.Ø”;Ô# f¤kÔ&<Ñ<ð 	@ð 	@ˆCà'œ_Ô1°!Ô4Ô?ˆCŒNˆNÝ�r‰?Œ?ð 	'à!ˆFŒNØ"&ˆFÔõ ”IÔ%×8Ò8Ñ:Ô:€MØ€MÝð ?¥
¨2­zÑ :Ô :ð ?Ý% bÑ)Ô)ˆØ%×4Ò4°XÑ>Ô>ˆåØŒØØØØØ#ðñ ô ð rJ   c                 ó�  — t          | j        d         j        t          j        ¦  «        r›| j        d         j        j        }t          |t          j        ¦  «        rj|j        }|j        }|dk    rVt          |t          j        ¦  «        r<|j        dk    r1t          |j        t          j	        ¦  «        r|j        j
        dk    rdS dS )Nr   Ú_IgnoreContextManagerrö   r_   TF)r›   r�   Úcontext_exprr¾   ÚCallrí   r   ÚattrÚvalueÚNameÚid)ÚstmtÚfunctionÚ	attr_nameÚ
attr_values       rH   Ú#is_torch_jit_ignore_context_managerr  Š  s²   € å�$”*˜Q”-Ô,­c¬hÑ7Ô7ð $à”:˜a”=Ô-Ô2ˆÝ�h¥¤Ñ.Ô.ð 		$Ø œˆIØ!œˆJØÐ3Ò3Ð3½
Ø�CœMñ9ô 9Ð3ð ”? eÒ+Ð+µ
¸:Ô;KÍSÌXÑ0VÔ0VÐ+Ø!Ô'Ô*¨gÒ5Ð5Ø#˜tØˆ5rJ   c                   ó   — e Zd Zd„ ZdS )ÚBuilderc                 óz   — t          | d|j        j        z   d ¦  «        }|€t          ||¦  «        ‚ |||¦  «        S )NÚbuild_)r©   r…   ri   rr   )rc   r   ÚnoderÒ   s       rH   Ú__call__zBuilder.__call__�  sD   € Ý˜˜x¨$¬.Ô*AÑAÀ4ÑHÔHˆØˆ>Ý& s¨DÑ1Ô1Ð1Øˆv�c˜4Ñ Ô Ð rJ   N)ri   rj   rk   r"  rl   rJ   rH   r  r  œ  s#   € € € € € ð!ð !ð !ð !ð !rJ   r  c                 óÂ   — |                       |j        |j        |j        t          d¦  «        z   ¦  «        }t	          t          ||¦  «        d„ |D ¦   «         ||¦  «        S )NrO   c                 ó,   — g | ]}t          |¦  «        ‘ŒS rl   )r)   rÑ   s     rH   rŽ   z#build_class_def.<locals>.<listcomp>©  s   € ÐAÐAÐA¨v�d 6™lœlÐAÐAÐArJ   )rz   r{   r|   rw   r   r   )r   Úpy_defrâ   r²   r¥   r»   Úrs          rH   rá   rá   ¤  se   € Ø�ŠØŒ�vÔ(¨&Ô*;½cÀ'¹l¼lÑ*Jñ	ô 	€Aõ Ýˆa�ÑÔÐAÐA¸ÐAÑAÔAÀ:Èwñô ð rJ   c                 ó  — |j         }|                      |j        |j        |j        t	          d¦  «        z   ¦  «        }t          | |j        ||¦  «        }d }	t          |dd ¦  «        �t          | |j	        ¦  «        }	t          |||	¦  «        }
|d u}|�@t          j                             |¦  «        }t          j                             |
||¦  «        }
t          t!          ||¦  «        |
t#          | |¦  «        ¦  «        S )NrL   r  )r½   rz   r{   r|   rw   Úbuild_param_listrù   r©   Ú
build_exprr  r   r_   r`   Úparse_type_commentÚmerge_type_from_type_commentr   r   r˜   )r   r%  r  r  r¥   rô   r½   r&  Ú
param_listÚreturn_typeÚdeclÚ	is_methodÚtype_comment_decls                rH   r  r  ­  sæ   € ØŒ;€DØ�Š�v”} fÔ&7¸Ô9JÍSÐQVÉZÌZÑ9WÑXÔX€Aå! # v¤{°I¸}ÑMÔM€JØ€KÝˆv�y $Ñ'Ô'Ð3Ý   f¤nÑ5Ô5ˆå��:˜{Ñ+Ô+€DØ Ð%€IØÐÝ!œH×7Ò7¸	ÑBÔBÐÝŒx×4Ò4°TÐ;LÈiÑXÔXˆå�u�Q˜Ñ!Ô! 4­°S¸$Ñ)?Ô)?Ñ@Ô@Ð@rJ   zfCompiled functions can't take variable number of arguments or use keyword-only arguments with defaultsc                 óÔ  ‡ ‡‡— |j         �Z|j         }‰                      |j        |j        dz
  |j        t	          |j        ¦  «        z   ¦  «        }t          |t          ¦  «        ‚|j        �Z|j        }‰                      |j        |j        dz
  |j        t	          |j        ¦  «        z   ¦  «        }t          |t          ¦  «        ‚t	          |j	        ¦  «        dk    rC|j	        D ];}|�7t          ‰ |¦  «                             ¦   «         }t          |t          ¦  «        ‚Œ<ˆfd„|j        D ¦   «         }ˆfd„|j        D ¦   «         }ˆ ˆfd„|D ¦   «         }	|	ˆ ˆfd„|D ¦   «         z  }	|	S )Nr¢   r   c                 ój   •— g | ]/}|‰r't          ‰|j                 ¦  «        r‰|j                 nd f‘Œ0S rB   ©Úboolrú   ©rŒ   rú   rô   s     €rH   rŽ   z$build_param_list.<locals>.<listcomp>Û  s^   ø€ ð ð ð ð ð àðÝ!% m°C´GÔ&<Ñ!=Ô!=ðˆM˜#œ'Ô"Ð"àð		
ðð ð rJ   c                 ój   •— g | ]/}|‰r't          ‰|j                 ¦  «        r‰|j                 nd f‘Œ0S rB   r3  r5  s     €rH   rŽ   z$build_param_list.<locals>.<listcomp>ä  s^   ø€ ð  ð  ð  ð ð àðÝ!% m°C´GÔ&<Ñ!=Ô!=ðˆM˜#œ'Ô"Ð"àð		
ð ð  ð  rJ   c           	      ó>   •— g | ]\  }}t          ‰|‰d |¬¦  «        ‘ŒS )F©Ú
kwarg_onlyÚpdt_arg_type©Úbuild_param©rŒ   rú   Úarg_typer   r¥   s      €€rH   rŽ   z$build_param_list.<locals>.<listcomp>î  s@   ø€ ð ð ð áˆC�õ 	�C˜˜i°EÈÐQÑQÔQðð ð rJ   c           	      ó>   •— g | ]\  }}t          ‰|‰d |¬¦  «        ‘ŒS )Tr8  r;  r=  s      €€rH   rŽ   z$build_param_list.<locals>.<listcomp>ò  s@   ø€ ð ð ð áˆC�õ 	�C˜˜i°DÀxÐPÑPÔPðð ð rJ   )rý   rz   r{   r|   rw   rú   rn   Ú_vararg_kwarg_errrþ   Úkw_defaultsr)  r®   rù   rÿ   )
r   Úpy_argsr¥   rô   ÚexprÚ	ctx_rangerú   Úarg_and_typesÚarg_and_types_kwonlyargsÚresults
   ` ``      rH   r(  r(  Å  sÔ  øøø€ Ø„}Ð ØŒ}ˆØ—N’NØŒK˜œ¨1Ñ,¨d¬oÅÀDÄHÁÄÑ.Mñ
ô 
ˆ	õ   	Õ+<Ñ=Ô=Ð=Ø„~Ð!ØŒ~ˆØ—N’NØŒK˜œ¨1Ñ,¨d¬oÅÀDÄHÁÄÑ.Mñ
ô 
ˆ	õ   	Õ+<Ñ=Ô=Ð=Ý
ˆ7ÔÑÔ !Ò#Ð#ð Ô&ð 	Fð 	FˆCØˆÝ& s¨CÑ0Ô0×6Ò6Ñ8Ô8�	Ý'¨	Õ3DÑEÔEÐEð ð
ð ð ð ð ”<ðñ ô €Mð ð  ð  ð  ð Ô%ð ñ  ô  Ððð ð ð ð à*ðñ ô €Fð ð ð ð ð ð à5ðñ ô ñ €Fð €MrJ   c                 ó²  — |j         }|                      |j        |j        |j        t	          |¦  «        z   ¦  «        }t          |dd ¦  «        �t          | |j        ¦  «        }nU|rt          t          ||¦  «        ¦  «        }n5|�$|dk    rt          t          ||¦  «        ¦  «        }nt          |¦  «        }t          |t          ||¦  «        |¦  «        S )Nr   rc   )rú   rz   r{   r|   rw   r©   r)  r   r0   r   r   r!   )r   Úpy_argr¥   r9  r:  rG   r&  Úannotation_exprs           rH   r<  r<  ù  sÇ   € àŒ:€DØ�Š�v”} fÔ&7¸Ô9JÍSÐQUÉYÌYÑ9VÑWÔW€AÝˆv�| TÑ*Ô*Ð6Ý$ S¨&Ô*;Ñ<Ô<ˆˆØ	ð 1Ý�e A |Ñ4Ô4Ñ5Ô5ˆˆØ	Ð	 4¨6¢> >Ý�e A yÑ1Ô1Ñ2Ô2ˆˆå-¨aÑ0Ô0ˆÝ�¥%¨¨4¡.¤.°*Ñ=Ô=Ð=rJ   c                 ó>  ‡‡— t          dddg¦  «        Št          dddg¦  «        Šˆˆfd„}d„ }d„ }d„ } ||j        d	         j        j        ¦  «        \  }}d
 || |¦  «        z   }d|z   }	|	dd                     d„ |D ¦   «         ¦  «        z   dz   z  }	 ||¦  «        \  }
}|	|
dz   z  }	t          j        |	¦  «        j        d	         }|j        |_        t          j        |¦  «        j        d	         }|j                             |¦  «         dt          j
        |¦  «        z   }|d|› d|› �z  }t          |¦  «          ||¦  «        }d|› d� ||¦  «        z   dz   }t          |¦  «        d	k    r	|dz   |z   }n|}t          j        |¦  «        j        d	         }|S )NÚ	InputTyperG   ÚannÚ
OutputTypec                 ó  •— g }g }| D ]w}|j         }|j        j        }|                     d¦  «        \  }}|dk    r|                      ‰||¦  «        ¦  «         |dk    r|                      ‰||¦  «        ¦  «         Œx||fS )Nró   ÚinpÚout)rú   r  rà   r­   )	rù   ÚinputsÚoutputsrú   Úvar_nameÚvar_annÚvar_decl_typerL  rN  s	          €€rH   Úprocess_ins_outsz6build_ignore_context_manager.<locals>.process_ins_outs  s¡   ø€ ð ˆØˆØð 	>ð 	>ˆCØ”wˆHØ”i”oˆGØ%,§]¢]°3Ñ%7Ô%7Ñ"ˆM˜7Ø Ò%Ð%Ø—’˜i˜i¨°'Ñ:Ô:Ñ;Ô;Ð;Ø Ò%Ð%Ø—’˜z˜z¨(°GÑ<Ô<Ñ=Ô=Ð=øØ�wˆÐrJ   c                 óP   — t          j        dd| j        ¦  «        }|› d|j        › �S )Nz[^a-zA-Z0-9_]rê   )ÚreÚsubrå   r{   )r   r  rÍ   s      rH   Úcreate_unique_name_extz<build_ignore_context_manager.<locals>.create_unique_name_ext  s0   € õ ŒVÐ$ c¨3¬<Ñ8Ô8ˆØÐ$Ð$�t”{Ð$Ð$Ð$rJ   c                 óf  — d}d}t          | ¦  «        dk    r|dz  }t          | ¦  «        dk    r d| d         j        z   }|| d         j        z  }t          | ¦  «        dk    rLd}|dd	                     d
„ | D ¦   «         ¦  «        z   dz   z  }|d	                     d„ | D ¦   «         ¦  «        z  }||fS )Nrs   zreturn r   z -> Noner¢   z -> z	 -> Tupleú[ú, c                 ó   — g | ]	}|j         ‘Œ
S rl   )rM  ©rŒ   Úvars     rH   rŽ   zObuild_ignore_context_manager.<locals>.build_return_ann_stmt.<locals>.<listcomp>,  s   € Ð/KÐ/KÐ/K¸C°´Ð/KÐ/KÐ/KrJ   ú]c                 ó   — g | ]	}|j         ‘Œ
S rl   rF   r`  s     rH   rŽ   zObuild_ignore_context_manager.<locals>.build_return_ann_stmt.<locals>.<listcomp>-  s   € Ð.KÐ.KÐ.K¸C¨s¬xÐ.KÐ.KÐ.KrJ   )rw   rM  rG   rØ   )rS  Úreturn_type_annÚreturn_statement_strs      rH   Úbuild_return_ann_stmtz;build_ignore_context_manager.<locals>.build_return_ann_stmt"  sÑ   € ØˆØ(ÐÝˆw‰<Œ<˜1ÒÐØ˜zÑ)ˆOÝˆw‰<Œ<˜1ÒÐØ$ w¨q¤z¤~Ñ5ˆOØ  G¨A¤J¤OÑ3Ð Ýˆw‰<Œ<˜!ÒÐØ)ˆOØ˜s T§Y¢YÐ/KÐ/KÀ7Ð/KÑ/KÔ/KÑ%LÔ%LÑLÈsÑRÑRˆOØ  D§I¢IÐ.KÐ.KÀ7Ð.KÑ.KÔ.KÑ$LÔ$LÑLÐ ØÐ 4Ð4Ð4rJ   c                 ó@   — d                      d„ | D ¦   «         ¦  «        S )Nr^  c                 ó   — g | ]	}|j         ‘Œ
S rl   rF   )rŒ   rú   s     rH   rŽ   zDbuild_ignore_context_manager.<locals>.build_args.<locals>.<listcomp>1  s   € Ð3Ð3Ð3 s˜#œ(Ð3Ð3Ð3rJ   )rØ   )rù   s    rH   Ú
build_argsz0build_ignore_context_manager.<locals>.build_args0  s#   € Ø�yŠyÐ3Ð3¨dÐ3Ñ3Ô3Ñ4Ô4Ð4rJ   r   Úfunc_ignore_z
def ú(r^  c                 ó2   — g | ]}|j         d z   |j        z   ‘ŒS )z :)rG   rM  r`  s     rH   rŽ   z0build_ignore_context_manager.<locals>.<listcomp>9  s%   € ÐEÐEÐE°s˜œ D™¨3¬7Ñ2ÐEÐEÐErJ   ú)z: passz@torch.jit.ignore
z
globals()["z"] = ztorch.jit.frontend.rò   )r   r�   r  ÚkeywordsrØ   r¾   rÙ   r½   r­   Ú
astunparseÚunparseÚexecrw   )r   r  rW  r[  rf  ri  rR  rS  Úignore_function_nameÚignore_function_strÚ
return_annÚreturn_stmtÚignore_functionÚignore_func_strÚassign_str_lhsÚassign_str_rhsÚ
assign_strÚ
assign_astrL  rN  s                     @@rH   Úbuild_ignore_context_managerr|    s1  øø€ Ý˜;¨°¨Ñ8Ô8€IÝ˜L¨6°5¨/Ñ:Ô:€Jðð ð ð ð ð ð %ð %ð %ð5ð 5ð 5ð5ð 5ð 5ð 'Ð& t¤z°!¤}Ô'AÔ'JÑKÔK�O€FˆGð *Ð,BÐ,BÀ3ÈÑ,MÔ,MÑMÐØ"Ð%9Ñ9ÐØØˆd�iŠiÐEÐE¸fÐEÑEÔEÑFÔFÑFÈÑLñÐð 4Ð3°GÑ<Ô<Ñ€J�Ø˜:¨Ñ0Ñ0Ðõ ”iÐ 3Ñ4Ô4Ô9¸!Ô<€Oð  œ9€OÔõ ”)˜KÑ(Ô(Ô-¨aÔ0€KØÔ×Ò Ñ,Ô,Ð,ð ,­jÔ.@ÀÑ.QÔ.QÑQ€OØÐXÐ';ÐXÐXÐBVÐXÐXÑX€OÝˆÑÔÐð  �Z Ñ(Ô(€Nð 	6Ð2Ð5Ð5Ð5¸
¸
À6Ñ8JÔ8JÑJÈSÑPð õ ˆ7�|„|�aÒÐØ# eÑ+¨nÑ<ˆ
ˆ
à#ˆ
Ý”˜:Ñ&Ô&Ô+¨AÔ.€JØÐrJ   c                 óx   — | €i S t          j        | ¦  «        }d„ |j                             ¦   «         D ¦   «         S )a   
    Get a dictionary of default arguments for a function.

    Args:
        fn: Callable - The function to inspect for default arguments.
    Returns:
        (Dict[str, Any]): mapping argument names to their default values if
        :attr:`fn` is not None, else empty dictionary.
    Nc                 óT   — i | ]%\  }}|j         t          j        j        u¯||j         “Œ&S rl   )Údefaultr§   Ú	ParameterÚempty)rŒ   ÚkÚvs      rH   ú
<dictcomp>z$get_default_args.<locals>.<dictcomp>m  s=   € ð ð ð áˆAˆqØŒ9�GÔ-Ô3Ð3Ð3ð 	
ˆ1Œ9à3Ð3Ð3rJ   )r§   Ú	signatureÚ
parametersr�   )rÍ   r…  s     rH   Úget_default_argsr‡  ^  sN   € ð 
€zØˆ	åÔ! "Ñ%Ô%€Iðð àÔ(×.Ò.Ñ0Ô0ðñ ô ð rJ   c                 óR   ‡ — t          j        ‰ ˆ fd„¬¦  «        }d„ |D ¦   «         }|S )aC  
    Get default arguments for all methods in a class (except for static methods).

    Args:
        cls: type - The class type to inspect for default arguments.
    Returns:
        A Dict[str, Dict[str, Any]] which maps each method name to a Dict[str, Any]
        that maps each argument name to its default value.
    c                 óœ   •— t          j        | ¦  «        st          j        | ¦  «        o#t          ‰| j        ¦  «         o| j        ‰j        v S rB   )r§   rÇ   rÈ   r6   ri   rÉ   rÊ   s    €rH   rž   z,get_default_args_for_class.<locals>.<lambda>‚  sM   ø€ �WÔ-¨aÑ0Ô0ÐIµGÔ4FÀqÑ4IÔ4Ið 'Ý˜S !¤*Ñ-Ô-Ð-ð'àŒJ˜#œ,Ð&ð rJ   rŸ   c                 ó4   — i | ]\  }}|t          |¦  «        “ŒS rl   )r‡  )rŒ   Úmethod_nameÚmethod_impls      rH   r„  z.get_default_args_for_class.<locals>.<dictcomp>‰  s7   € ð ð ð á$ˆK˜ð 	Õ% kÑ2Ô2ðð ð rJ   )r§   r¨   )r¯   râ   Údefaultss   `  rH   Úget_default_args_for_classrŽ  t  sX   ø€ õ Ô Øð'ð 'ð 'ð 'ðñ ô €Gðð à(/ðñ ô €Hð
 €OrJ   c                   ó$   — e Zd Zed„ ¦   «         ZdS )ÚWithItemBuilderc                 ó(  — |j         j        }|j         j        }|t          t          t
          j                 ¦  «        z   }|j        }|                      |||¦  «        }t          |t          | |j         ¦  «        |rt          | |¦  «        nd ¦  «        S rB   )r  r{   r|   rw   r}   r¾   r2   Úoptional_varsrz   r3   r)  )r   Úitemr{   ÚstartÚendÚop_varsr&  s          rH   r‹   zWithItemBuilder.build_withitem’  s‹   € àÔ"Ô)ˆØÔ!Ô,ˆØ•cÕ+­C¬HÔ5Ñ6Ô6Ñ6ˆØÔ$ˆØ�NŠN˜6 5¨#Ñ.Ô.ˆåØÝ�s˜DÔ-Ñ.Ô.Ø(/Ð9�J�s˜GÑ$Ô$Ð$°Tñ
ô 
ð 	
rJ   N)ri   rj   rk   Ústaticmethodr‹   rl   rJ   rH   r�  r�  ‘  s-   € € € € € Øð
ð 
ñ „\ð
ð 
ð 
rJ   r�  c                   ó  — e Zd Zej        dej        dej        dej        dej        dej	        dej
        dej        dej        d	ej        d
ej        diZed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Z dS )r¿   ú+ú-Ú*ú/ú%ú|ú&ú^ú<<ú>>ú**c                 ón   — |j         }|j        j        dk    rd S t          t	          | |¦  «        ¦  «        S )NÚStr)r  r…   ri   r   r)  )r   r  r  s      rH   Ú
build_ExprzStmtBuilder.build_Expr°  s8   € à”
ˆØŒ?Ô# uÒ,Ð,ð �4å�J s¨EÑ2Ô2Ñ3Ô3Ð3rJ   c                 ót   ‡ — t          ‰ |j        ¦  «        }ˆ fd„|j        D ¦   «         }t          ||¦  «        S )Nc                 ó0   •— g | ]}t          ‰|¦  «        ‘ŒS rl   ©r)  )rŒ   Úxr   s     €rH   rŽ   z,StmtBuilder.build_Assign.<locals>.<listcomp>½  s#   ø€ Ð8Ð8Ð8 a�z˜#˜qÑ!Ô!Ð8Ð8Ð8rJ   )r)  r  Útargetsr
   )r   r  ÚrhsÚlhss   `   rH   rÀ   zStmtBuilder.build_Assignº  s?   ø€ å˜˜dœjÑ)Ô)ˆØ8Ð8Ð8Ð8¨4¬<Ð8Ñ8Ô8ˆÝ�c˜3ÑÔÐrJ   c                 óz  — |j         €t          | |d¬¦  «        ‚t          |j        ¦  «        t          j        k    r°|j        j         j        dk    r›| j        dk    r�|j        }|t          d|j        j
        › �¦  «        z   }t          |j        d¦  «        r|t          d|j        j        › �¦  «        z  }|                      |j        ||¦  «        }t          d| j        › d	|› �¦  «        ‚t!          | |j         ¦  «        }t!          | |j        ¦  «        }t!          | |j        ¦  «        }t#          |g||¦  «        S )
Nzwithout assigned value)r�   rc   rd   zself.r  z: zKType annotations on instance attributes must be declared in __init__, not 'z': )r  rr   rv   Útargetr¾   r   r  Úfuncnamer|   rw   r  Úhasattrr   rz   r{   Ú
ValueErrorr)  r
   )r   r  r”  r•  Úsrr¬  r­  Úthe_types           rH   rÂ   zStmtBuilder.build_AnnAssignÀ  sG  € àŒ:ÐÝ& s¨DÐ9QÐRÑRÔRÐRõ �”ÑÔ¥¤Ò.Ð.Ø”Ô!Ô$¨Ò.Ð.Ø” 
Ò*Ð*à”OˆEØ�#Ð8 d¤kÔ&6Ð8Ð8Ñ9Ô9Ñ9ˆCÝ�t”¨Ñ-Ô-ð 6Ø•sÐ4 ¤Ô 2Ð4Ð4Ñ5Ô5Ñ5�Ø—’ ¤¨U°CÑ8Ô8ˆBÝð8Ø"%¤,ð8ð 8Ø35ð8ð 8ñô ð õ
 ˜˜dœjÑ)Ô)ˆÝ˜˜dœkÑ*Ô*ˆÝ˜c 4¤?Ñ3Ô3ˆÝ�s�e˜S (Ñ+Ô+Ð+rJ   c                 ó²   ‡ — ‰                       |j        |j        |j        t          d¦  «        z   ¦  «        }t	          |ˆ fd„|j        D ¦   «         ¦  «        S )NrN   c                 ó0   •— g | ]}t          ‰|¦  «        ‘ŒS rl   r©  )rŒ   r¯  r   s     €rH   rŽ   z,StmtBuilder.build_Delete.<locals>.<listcomp>Þ  s#   ø€ ÐMÐMÐM°f�* S¨&Ñ1Ô1ÐMÐMÐMrJ   )rz   r{   r|   rw   r   r«  ©r   r  r&  s   `  rH   Úbuild_DeletezStmtBuilder.build_DeleteÚ  sP   ø€ à�NŠN˜4œ;¨¬¸¼Í3ÈuÉ:Ì:Ñ9UÑVÔVˆå�aÐMÐMÐMÐMÀÄÐMÑMÔMÑNÔNÐNrJ   c                 óÆ   — |                       |j        |j        |j        t          d¦  «        z   ¦  «        }t	          ||j        €d nt          | |j        ¦  «        ¦  «        S )NÚreturn)rz   r{   r|   rw   r%   r  r)  r·  s      rH   Úbuild_ReturnzStmtBuilder.build_Returnà  sV   € à�NŠNØŒK˜œ¨$¬/½CÀ¹M¼MÑ*Iñ
ô 
ˆõ �a ¤Ð!3˜˜½ÀCÈÌÑ9TÔ9TÑUÔUÐUrJ   c                 ó¸   — |                       |j        |j        |j        t          d¦  «        z   ¦  «        }t	          | |j        ¦  «        }t          ||¦  «        S )NrQ   )rz   r{   r|   rw   r)  Úexcr$   )r   r  r&  rC  s       rH   Úbuild_RaisezStmtBuilder.build_Raiseç  sG   € à�NŠN˜4œ;¨¬¸¼Í3ÈwÉ<Ì<Ñ9WÑXÔXˆÝ˜#˜tœxÑ(Ô(ˆÝ�Q˜‰~Œ~ÐrJ   c                 óö   — |                       |j        |j        |j        t          d¦  «        z   ¦  «        }t	          | |j        ¦  «        }|j        �t	          | |j        ¦  «        nd }t          |||¦  «        S )NrR   )rz   r{   r|   rw   r)  Útestr^   r	   )r   r  r&  rÀ  r^   s        rH   Úbuild_AssertzStmtBuilder.build_Assertí  so   € à�NŠNØŒK˜œ¨$¬/½CÀ¹M¼MÑ*Iñ
ô 
ˆõ ˜#˜tœyÑ)Ô)ˆØ+/¬8Ð+?�j˜˜dœhÑ'Ô'Ð'ÀTˆÝ�a˜˜sÑ#Ô#Ð#rJ   c                 ób  — t          | |j        ¦  «        }t          | |j        ¦  «        }t          |j        ¦  «        }|t
          j        v rt
          j        |         }n@t          t          | | 	                    ¦   «         j
        dd¬¦  «        d|j        z   ¦  «        ‚t          |||¦  «        S )Nú=)éÿÿÿÿr   )Úoffsetsz*unsupported kind of augmented assignment: )r)  r¯  r  rv   Úopr¿   Úaugassign_maprn   Úfind_beforer®   r”  ri   r   )r   r  r­  r¬  rÆ  Úop_tokens         rH   Úbuild_AugAssignzStmtBuilder.build_AugAssignö  s�   € å˜˜dœkÑ*Ô*ˆÝ˜˜dœjÑ)Ô)ˆÝ�$”'‰]Œ]ˆØ•Ô*Ð*Ð*Ý"Ô0°Ô4ˆHˆHå#Ý˜C §¢¡¤Ô!2°CÀÐIÑIÔIØ<¸r¼{ÑJñô ð õ ˜˜h¨Ñ,Ô,Ð,rJ   c                 ó
  — |j         rt          d d¦  «        ‚|                      |j        |j        |j        t          d¦  «        z   ¦  «        }t          |t          | |j        ¦  «        t          | |j
        ¦  «        ¦  «        S )Nz-else branches of while loops aren't supportedÚwhile)Úorelsern   rz   r{   r|   rw   r1   r)  rÀ  r˜   r½   r·  s      rH   Úbuild_WhilezStmtBuilder.build_While  sx   € àŒ;ð 	õ $ØÐEñô ð ð �NŠN˜4œ;¨¬¸¼Í3ÈwÉ<Ì<Ñ9WÑXÔXˆÝ�Q�
 3¨¬	Ñ2Ô2µKÀÀTÄYÑ4OÔ4OÑPÔPÐPrJ   c           	      ó6  — |                       |j        |j        |j        t          d¦  «        z   ¦  «        }|j        rt          |d¦  «        ‚t          |t          | |j        ¦  «        gt          | |j	        ¦  «        gt          | |j        ¦  «        ¦  «        S )NrM   z+else branches of for loops aren't supported)rz   r{   r|   rw   rÍ  rn   r   r)  r¯  Úiterr˜   r½   r·  s      rH   Ú	build_ForzStmtBuilder.build_For  sŒ   € à�NŠN˜4œ;¨¬¸¼Í3ÈuÉ:Ì:Ñ9UÑVÔVˆØŒ;ð 	VÝ# AÐ'TÑUÔUÐUåØÝ˜˜Tœ[Ñ)Ô)Ð*Ý˜˜TœYÑ'Ô'Ð(Ý˜˜TœYÑ'Ô'ñ	
ô 
ð 	
rJ   c           	      ó  — |                       |j        |j        |j        t          d¦  «        z   ¦  «        }t	          |t          | |j        ¦  «        t          | |j        ¦  «        t          | |j	        ¦  «        ¦  «        S )NÚif)
rz   r{   r|   rw   r   r)  rÀ  r˜   r½   rÍ  r·  s      rH   Úbuild_IfzStmtBuilder.build_If  sj   € à�NŠN˜4œ;¨¬¸¼Í3ÈtÉ9Ì9Ñ9TÑUÔUˆÝØÝ�s˜DœIÑ&Ô&Ý˜˜TœYÑ'Ô'Ý˜˜Tœ[Ñ)Ô)ñ	
ô 
ð 	
rJ   c           
      ó6  ‡ — ‰                       |j        |j        |j        t          d¦  «        z   ¦  «        }|j        rt          |d¦  «        ‚ˆ fd„|j        D ¦   «         }t          t          t          t          |d¦  «        ¦  «        |g ¦  «        ¦  «        S )Nr@   z?print statements with non-default destinations aren't supportedc                 ó0   •— g | ]}t          ‰|¦  «        ‘ŒS rl   r©  )rŒ   Úvalr   s     €rH   rŽ   z+StmtBuilder.build_Print.<locals>.<listcomp>-  s#   ø€ Ð<Ð<Ð<¨•
˜3 Ñ$Ô$Ð<Ð<Ð<rJ   )rz   r{   r|   rw   Údestrn   Úvaluesr   r   r0   r   )r   r  r&  rù   s   `   rH   Úbuild_PrintzStmtBuilder.build_Print&  s”   ø€ à�NŠN˜4œ;¨¬¸¼Í3ÈwÉ<Ì<Ñ9WÑXÔXˆØŒ9ð 	Ý#ØÐTñô ð ð =Ð<Ð<Ð<°´Ð<Ñ<Ô<ˆÝ��c¥%¨¨7Ñ"3Ô"3Ñ4Ô4°d¸BÑ?Ô?Ñ@Ô@Ð@rJ   c                 óŒ   — |                       |j        |j        |j        t          d¦  «        z   ¦  «        }t	          |¦  «        S )NÚpass)rz   r{   r|   rw   r"   r·  s      rH   Ú
build_PasszStmtBuilder.build_Pass0  s3   € à�NŠN˜4œ;¨¬¸¼Í3ÈvÉ;Ì;Ñ9VÑWÔWˆÝ�A‰wŒwˆrJ   c                 óŒ   — |                       |j        |j        |j        t          d¦  «        z   ¦  «        }t	          |¦  «        S )NrV   )rz   r{   r|   rw   r   r·  s      rH   Úbuild_BreakzStmtBuilder.build_Break5  s3   € à�NŠN˜4œ;¨¬¸¼Í3ÈwÉ<Ì<Ñ9WÑXÔXˆÝ�Q‰xŒxˆrJ   c                 óŒ   — |                       |j        |j        |j        t          d¦  «        z   ¦  «        }t	          |¦  «        S )NrW   )rz   r{   r|   rw   r   r·  s      rH   Úbuild_ContinuezStmtBuilder.build_Continue:  s;   € à�NŠNØŒK˜œ¨$¬/½CÀ
¹O¼OÑ*Kñ
ô 
ˆõ ˜‰{Œ{ÐrJ   c                 óf  — |                       |j        |j        |j        t          d¦  «        z   ¦  «        }t	          |¦  «        r6t
          st          d¦  «        ‚t          | |¦  «        }t          | |¦  «        S t          |t          | |j        ¦  «        t          | |j        ¦  «        ¦  «        S )NrP   z torch.jit._IgnoreContextManager requires installing Python library `astunparse`,                                    please install it in your Python environment)rz   r{   r|   rw   r  Ú_IS_ASTUNPARSE_INSTALLEDrü   r|  r”   r2   r‘   r�   r˜   r½   )r   r  r&  r{  s       rH   Ú
build_WithzStmtBuilder.build_WithA  s£   € à�NŠN˜4œ;¨¬¸¼Í3ÈvÉ;Ì;Ñ9VÑWÔWˆå.¨tÑ4Ô4ð 	/Ý+ð Ý"ðQñô ð õ 6°c¸4Ñ@Ô@ˆJÝ˜c :Ñ.Ô.Ð.Ý�A• s¨D¬JÑ7Ô7½ÀSÈ$Ì)Ñ9TÔ9TÑUÔUÐUrJ   N)!ri   rj   rk   r¾   ÚAddÚSubÚMultÚDivÚModÚBitOrÚBitAndÚBitXorÚLShiftÚRShiftÚPowrÇ  r—  r¦  rÀ   rÂ   r¸  r»  r¾  rÁ  rÊ  rÎ  rÑ  rÔ  rÚ  rÝ  rß  rá  rä  rl   rJ   rH   r¿   r¿   ¡  s)  € € € € € àŒ�ØŒ�ØŒ�#ØŒ�ØŒ�ØŒ	�3ØŒ
�CØŒ
�CØŒ
�DØŒ
�DØŒ�ð€Mð ð4ð 4ñ „\ð4ð ð ð  ñ „\ð ð
 ð,ð ,ñ „\ð,ð2 ðOð Oñ „\ðOð
 ðVð Vñ „\ðVð ðð ñ „\ðð
 ð$ð $ñ „\ð$ð ð-ð -ñ „\ð-ð ðQð Qñ „\ðQð ð

ð 

ñ „\ð

ð ð
ð 
ñ „\ð
ð ðAð Añ „\ðAð ðð ñ „\ðð ðð ñ „\ðð ðð ñ „\ðð ðVð Vñ „\ðVð Vð VrJ   r¿   c                   ó�  — e Zd Zej        dej        dej        dej        dej        dej	        dej
        dej        dej        d	ej        d
ej        dej        diZdeej        <   ej        dej        dej        diZej        dej        diZej        dej        dej        dej        dej        dej        dej        dej         dej!        dej"        di
Z#e$d„ ¦   «         Z%e$d„ ¦   «         Z&e$d„ ¦   «         Z'e$d„ ¦   «         Z(e$d „ ¦   «         Z)e$d!„ ¦   «         Z*e$d"„ ¦   «         Z+e$d#„ ¦   «         Z,e$d$„ ¦   «         Z-e$d%„ ¦   «         Z.e$d&„ ¦   «         Z/e$d'„ ¦   «         Z0e$d(„ ¦   «         Z1e$d)„ ¦   «         Z2e$d*„ ¦   «         Z3e$d+„ ¦   «         Z4e$d,„ ¦   «         Z5e$d-„ ¦   «         Z6e$d.„ ¦   «         Z7e$d/„ ¦   «         Z8e$d0„ ¦   «         Z9e$d1„ ¦   «         Z:d2S )3ÚExprBuilderr™  rš  r›  rœ  r£  r�  z//rŸ  r   rž  r¡  r¢  ú@Únotú~ÚandÚorz==z!=z<=ú<z>=ú>Úiszis notÚinznot inc                 óª  ‡— t          | |j        ¦  «        }| j                             d¦  «        Šˆfd„}|                     ¦   «         j        dz   } ||¦  «        t          j        v r|dz  } ||¦  «        t          j        v °|t          |j	        ¦  «        z   }|  
                    ||¦  «        }t          |t          ||j	        ¦  «        ¦  «        S )Nzutf-8c                 ó.   •— t          ‰|          ¦  «        S rB   )Úchr)Úindexrß   s    €rH   Úget_charz-ExprBuilder.build_Attribute.<locals>.get_char�  s   ø€ Ý�v˜e”}Ñ%Ô%Ð%rJ   r¢   )r)  r  rß   Úencoder®   r•  ÚstringÚ
whitespacerw   r  Úmake_raw_ranger&   r   )r   rC  Úbaserÿ  Ú	start_posÚend_posÚ
name_rangerß   s          @rH   Úbuild_AttributezExprBuilder.build_Attributez  sÙ   ø€ å˜#˜tœzÑ*Ô*ˆð ”×"Ò" 7Ñ+Ô+ˆð	&ð 	&ð 	&ð 	&ð 	&ð —J’J‘L”LÔ$ qÑ(ˆ	Øˆh�yÑ!Ô!¥VÔ%6Ð6Ð6Ø˜‰NˆIð ˆh�yÑ!Ô!¥VÔ%6Ð6Ð6à�c $¤)™nœnÑ,ˆØ×'Ò'¨	°7Ñ;Ô;ˆ
Ý�d�E *¨d¬iÑ8Ô8Ñ9Ô9Ð9rJ   c           	      ó>  ‡ — t          ‰ |j        ¦  «        }ˆ fd„|j        D ¦   «         }t          |d¦  «        rB|j        r;t          ‰ |j        ¦  «        }|t          |                     ¦   «         |¦  «        gz  }g }|j        D ]ˆ}t          ‰ |j        ¦  «        }|j	        s"t          |                     ¦   «         d¦  «        ‚|                     t          t          |                     ¦   «         |j	        ¦  «        |¦  «        ¦  «         Œ‰t          |||¦  «        S )Nc                 ó0   •— g | ]}t          ‰|¦  «        ‘ŒS rl   r©  )rŒ   rI  r   s     €rH   rŽ   z*ExprBuilder.build_Call.<locals>.<listcomp>Ž  s#   ø€ Ð@Ð@Ð@¨F•
˜3 Ñ'Ô'Ð@Ð@Ð@rJ   Ústarargsz&keyword-arg expansion is not supported)r)  rí   rù   r±  r  r(   r®   rn  r  rú   rn   r­   r   r   r   )r   rC  rí   rù   Ústararg_exprÚkwargsÚkwÚkw_exprs   `       rH   Ú
build_CallzExprBuilder.build_Call‹  s  ø€ å˜#˜tœyÑ)Ô)ˆØ@Ð@Ð@Ð@°d´iÐ@Ñ@Ô@ˆÝ�4˜Ñ$Ô$ð 	B¨¬ð 	BÝ% c¨4¬=Ñ9Ô9ˆLØ•W˜\×/Ò/Ñ1Ô1°<Ñ@Ô@ÐAÑAˆDØˆØ”-ð 	Nð 	NˆBÝ   b¤hÑ/Ô/ˆGà”6ð Ý'Ø—M’M‘O”OÐ%Mñô ð ð �MŠM�)¥E¨'¯-ª-©/¬/¸2¼6Ñ$BÔ$BÀGÑLÔLÑMÔMÐMÐMÝ�T˜4 Ñ(Ô(Ð(rJ   c                 ór   — |                       |j        |j        |j        dz   ¦  «        }t          |¦  «        S )Né   )rz   r{   r|   r   ©r   rC  r&  s      rH   Úbuild_EllipsiszExprBuilder.build_Ellipsis�  s4   € à�NŠNØŒK˜œ¨$¬/¸AÑ*=ñ
ô 
ˆõ �A‰wŒwˆrJ   c                 óú  — |                       |j        |j        |j        t          |j        ¦  «        z   ¦  «        }|j                             t          ¦  «        rt          |dt          z   ¦  «        ‚|j        dk    rt          |¦  «        S |j        dk    rt          |¦  «        S |j        dk    rt          |¦  «        S |j        dk    rt          |¦  «        S t          t          ||j        ¦  «        ¦  «        S )Nz=names of variables used in JIT-ed functions can't start with ÚTrueÚFalseÚNoneÚEllipsis)rz   r{   r|   rw   r  rC   rD   rn   r-   r   r    r   r0   r   r  s      rH   Ú
build_NamezExprBuilder.build_Name¤  sä   € à�NŠN˜4œ;¨¬¸¼Í3ÈtÌwÉ<Ì<Ñ9WÑXÔXˆØŒ7×ÒÕ.Ñ/Ô/ð 	Ý#Øð$Ý&6ñ7ñô ð ð
 Œ7�fÒÐÝ˜q‘>”>Ð!ØŒW˜ÒÐÝ ‘?”?Ð"ØŒW˜ÒÐÝ˜q‘>”>Ð!ØŒW˜
Ò"Ð"Ý˜‘7”7ˆNÝ•5˜˜DœGÑ$Ô$Ñ%Ô%Ð%rJ   c           
      ó¤  — |                       |j        |j        |j        t          t	          |j        ¦  «        ¦  «        z   ¦  «        }|j        du rt          |¦  «        S |j        du rt          |¦  «        S |j        €t          |¦  «        S |j        t          k    rt          |¦  «        S t          dt	          |j        ¦  «        z   ¦  «        ‚)NTFz!Name constant value unsupported: )rz   r{   r|   rw   Ústrr  r-   r   r    r  r   r²  r  s      rH   Úbuild_NameConstantzExprBuilder.build_NameConstant·  s³   € à�NŠNØŒK˜œ¨$¬/½CÅÀDÄJÁÄÑ<PÔ<PÑ*Pñ
ô 
ˆð Œ:˜ÐÐÝ˜q‘>”>Ð!ØŒZ˜5Ð Ð Ý ‘?”?Ð"ØŒZÐÝ˜q‘>”>Ð!ØŒZ�8Ò#Ð#Ý˜‘7”7ˆNåÐ@Å3ÀtÄzÁ?Ä?ÑRÑSÔSÐSrJ   c                 óp  — t          | |j        ¦  «        }t          | |j        ¦  «        }t          |j        ¦  «        }|t
          j        k    r[| j        sT|                      | 	                    ¦   «         j
        | 	                    ¦   «         j        ¦  «        }t          |d¦  «        ‚t          j                             |¦  «        }|€\|                      | 	                    ¦   «         j
        | 	                    ¦   «         j        ¦  «        }t!          |d|j        z   ¦  «        ‚t%          |||¦  «        S )Nz‹Division of ints in TorchScript uses Python 3 true division semantics. Please put `from __future__ import division` at the top of your filezunsupported binary operator: )r)  ÚleftÚrightrv   rÆ  r¾   rè  Úuses_true_divisionr  r®   r•  r”  r[   rñ  Ú	binop_mapry   rn   ri   r   )r   rC  r­  r¬  rÆ  Ú	err_rangerÉ  s          rH   Úbuild_BinOpzExprBuilder.build_BinOpÇ  s  € å˜˜dœiÑ(Ô(ˆÝ˜˜dœjÑ)Ô)ˆÝ�$”'‰]Œ]ˆà•”Š=ˆ= Ô!7ˆ=Ø×*Ò*¨3¯9ª9©;¬;¬?¸C¿IºI¹K¼KÔ<MÑNÔNˆIÝØð;ñô ð õ Ô(×,Ò,¨RÑ0Ô0ˆØÐØ×*Ò*¨3¯9ª9©;¬;¬?¸C¿IºI¹K¼KÔ<MÑNÔNˆIÝ#ØÐ:¸R¼[ÑHñô ð õ �X˜s CÑ(Ô(Ð(rJ   c                 óx  — t          | |j        ¦  «        }t          |j        ¦  «        }t          j                             |¦  «        }|€*t          |                     ¦   «         d|j	        z   ¦  «        ‚|  
                    |j        |j        |j        t          |¦  «        z   ¦  «        }t          |||¦  «        S )Nzunsupported unary operator: )r)  Úoperandrv   rÆ  rñ  Úunop_mapry   rn   r®   ri   rz   r{   r|   rw   r/   )r   rC  Úsub_exprrÆ  rÉ  r&  s         rH   Úbuild_UnaryOpzExprBuilder.build_UnaryOpÝ  s¤   € å˜c 4¤<Ñ0Ô0ˆÝ�$”'‰]Œ]ˆÝÔ'×+Ò+¨BÑ/Ô/ˆØÐÝ#Ø—
’
‘”Ð<¸r¼{ÑJñô ð ð �NŠNØŒK˜œ¨$¬/½CÀ¹M¼MÑ*Iñ
ô 
ˆõ �q˜( HÑ-Ô-Ð-rJ   c                 óF  ‡ — t          |j        ¦  «        dk     r1t          dt          t          |j        ¦  «        ¦  «        z   ¦  «        ‚ˆ fd„|j        D ¦   «         }t	          |j        ¦  «        }t          j                             |¦  «        }|€h‰  	                    |d          
                    ¦   «         j        |d          
                    ¦   «         j        ¦  «        }t          |d|j        z   ¦  «        ‚|d         }|dd …         D ]}t          |||¦  «        }Œ|S )Né   z.expected at least 2 values in BoolOp, but got c                 ó0   •— g | ]}t          ‰|¦  «        ‘ŒS rl   r©  )rŒ   r(  r   s     €rH   rŽ   z,ExprBuilder.build_BoolOp.<locals>.<listcomp>ñ  s#   ø€ ÐKÐKÐK°8•Z  XÑ.Ô.ÐKÐKÐKrJ   r   r¢   zunsupported boolean operator: )rw   rÙ  ÚAssertionErrorr  rv   rÆ  rñ  Ú
boolop_mapry   r  r®   r•  r”  rn   ri   r   )r   rC  Ú	sub_exprsrÆ  rÉ  r#  r­  r¬  s   `       rH   Úbuild_BoolOpzExprBuilder.build_BoolOpë  s&  ø€ åˆtŒ{ÑÔ˜aÒÐÝ Ø@Å3ÅsÈ4Ì;ÑGWÔGWÑCXÔCXÑXñô ð ð LÐKÐKÐK¸t¼{ÐKÑKÔKˆ	Ý�$”'‰]Œ]ˆÝÔ)×-Ò-¨bÑ1Ô1ˆØÐØ×*Ò*Ø˜!”×"Ò"Ñ$Ô$Ô(¨)°A¬,×*<Ò*<Ñ*>Ô*>Ô*Dñô ˆIõ $ØÐ;¸b¼kÑIñô ð ð ˜ŒlˆØ˜Q˜R˜R”=ð 	,ð 	,ˆCÝ˜ # sÑ+Ô+ˆCˆCØˆ
rJ   c                 ó–   — t          t          | |j        ¦  «        t          | |j        ¦  «        t          | |j        ¦  «        ¦  «        S rB   )r,   r)  rÀ  r½   rÍ  ©r   rC  s     rH   Úbuild_IfExpzExprBuilder.build_IfExp   sA   € åÝ�s˜DœIÑ&Ô&Ý�s˜DœIÑ&Ô&Ý�s˜DœKÑ(Ô(ñ
ô 
ð 	
rJ   c                 ót  ‡ — ˆ fd„|j         gt          |j        ¦  «        z   D ¦   «         }d }t          ||j        |dd …         ¦  «        D ]ì\  }}}t          |¦  «        }t          j                             |¦  «        }‰  	                    | 
                    ¦   «         j        | 
                    ¦   «         j        ¦  «        }	|€t          |	d|j        z   ¦  «        ‚|t          j        k    r#t#          d||¦  «        }
t%          |	d|
¦  «        }nt#          |||¦  «        }|€|}ŒÛt#          d||¦  «        }Œí|S )Nc                 ó0   •— g | ]}t          ‰|¦  «        ‘ŒS rl   r©  ©rŒ   Úer   s     €rH   rŽ   z-ExprBuilder.build_Compare.<locals>.<listcomp>
  s#   ø€ ÐUÐUÐU¨1•J˜s AÑ&Ô&ÐUÐUÐUrJ   r¢   z!unsupported comparison operator: rú  ró  rõ  )r  r�   ÚcomparatorsÚzipÚopsrv   rñ  Ú	cmpop_mapry   r  r®   r•  r”  rn   ri   r¾   ÚNotInr   r/   )r   rC  ÚoperandsrG  r­  Úop_r¬  rÆ  rÉ  r&  Úin_exprÚcmp_exprs   `           rH   Úbuild_ComparezExprBuilder.build_Compare  s8  ø€ àUÐUÐUÐU°´°½dÀ4ÔCSÑ>TÔ>TÑ0TÐUÑUÔUˆØˆÝ  ¨4¬8°X¸a¸b¸b´\ÑBÔBð 	8ð 	8‰MˆC��cÝ�c‘”ˆBÝ"Ô,×0Ò0°Ñ4Ô4ˆHØ×"Ò" 3§9¢9¡;¤;¤?°C·I²I±K´KÔ4EÑFÔFˆAØÐÝ'ØÐ:¸R¼[ÑHñô ð ð •S”YŠˆõ    c¨3Ñ/Ô/�Ý" 1 e¨WÑ5Ô5��å  ¨3°Ñ4Ô4�àˆ~Ø!��å˜u f¨hÑ7Ô7��ØˆrJ   c                 ó€  ‡ ‡	‡
— d„ Š
d„ Š	ˆ	ˆ
fd„}t          ‰ |j        ¦  «        }t          |j        ¦  «        }|t          j        u rÞt          |j        j        t          j        ¦  «        r‘ˆ fd„|j        j        j        D ¦   «         }|sb‰  	                    |j
        |j        j        j        |j        j        j        dz   ¦  «        }t          |g ¦  «        }|                     |¦  «         t          ||¦  «        S t          |t          ‰ |j        j        ¦  «        g¦  «        S |t          j        u r!t          | ‰
‰ ||j        ¦  «        g¦  «        S |t          j        u r t          | |‰ ||j        ¦  «        ¦  «        S t"          j        dk    �r|t          j        u rÙg }|j        j        D ]`}t          |t          j        ¦  «        r!|                      ‰
‰ ||¦  «        ¦  «         Œ=|                     t          ‰ |¦  «        ¦  «         Œa|sX‰  	                    |j
        |j        j        |j        j        dz   ¦  «        }t          |g ¦  «        }|                     |¦  «         t          ||¦  «        S t          |t          ‰ |j        ¦  «        g¦  «        S t'          |                     ¦   «         d¦  «        ‚)Nc                 óþ   — |j         �t          | |j         ¦  «        nd }|j        �t          | |j        ¦  «        nd }|j        �t          | |j        ¦  «        nd }t	          |                     ¦   «         |||¦  «        S rB   )Úlowerr)  ÚupperÚstepr'   r®   )r   r  Ú
slice_exprrD  rE  rF  s         rH   Úbuild_SliceExprz4ExprBuilder.build_Subscript.<locals>.build_SliceExpr%  s–   € ð Ô#Ð/õ ˜3 
Ô 0Ñ1Ô1Ð1àð ð Ô#Ð/õ ˜3 
Ô 0Ñ1Ô1Ð1àð ð ”?Ð.õ ˜3 
¤Ñ0Ô0Ð0àð õ
 ˜TŸZšZ™\œ\¨5°%¸Ñ>Ô>Ð>rJ   c                 ó®   — t          |j        t          j        ¦  «        r"t	          |                     ¦   «         d¦  «        ‚t          | |j        ¦  «        S )Nz9slicing multiple dimensions with tuples not supported yet)r›   r  r¾   r   rn   r®   r)  )r   r  Ú
index_exprs      rH   Úbuild_Indexz0ExprBuilder.build_Subscript.<locals>.build_Index7  sN   € Ý˜*Ô*­C¬IÑ6Ô6ð Ý'Ø—J’J‘L”LØOñô ð õ ˜c :Ô#3Ñ4Ô4Ð4rJ   c                 óæ  •— g }|j         D ]å}t          |¦  «        }|t          j        u r!|                      ‰| ||¦  «        ¦  «         Œ@|t          j        u r!|                      ‰| ||¦  «        ¦  «         Œo|t          j        u rC|j        t          u r5|                     t          | 
                    ¦   «         ¦  «        ¦  «         ŒÀt          | 
                    ¦   «         d|› d�¦  «        ‚|S )Nz!slicing multiple dimensions with z not supported)Údimsrv   r¾   ÚIndexr­   ÚSliceÚConstantr  r  r   r®   rn   )r   r  Úextslicer/  rC  Úsub_typerK  rH  s         €€rH   Úbuild_ExtSlicez3ExprBuilder.build_Subscript.<locals>.build_ExtSlice?  sû   ø€ ØˆIØ œð ð �Ý ™:œ:�Ø�sœyÐ(Ð(Ø×$Ò$ [ [°°d¸DÑ%AÔ%AÑBÔBÐBÐBØ¥¤Ð*Ð*Ø×$Ò$ _ _°S¸$ÀÑ%EÔ%EÑFÔFÐFÐFØ¥¤Ð-Ð-°$´*ÅÐ2HÐ2HØ×$Ò$¥T¨$¯*ª*©,¬,Ñ%7Ô%7Ñ8Ô8Ð8Ð8å+ØŸ
š
™œØT¸HÐTÐTÐTñô ð ð ÐrJ   c                 ó0   •— g | ]}t          ‰|¦  «        ‘ŒS rl   r©  )rŒ   rJ  r   s     €rH   rŽ   z/ExprBuilder.build_Subscript.<locals>.<listcomp>V  s0   ø€ ð ð ð Ø4>•J˜s JÑ/Ô/ðð ð rJ   r+  )r  é	   zellipsis is not supported)r)  r  rv   Úslicer¾   rN  r›   r   Úeltsrz   r{   r|   r.   r­   r+   rO  ÚExtSliceÚsysÚversion_inforn   r®   )r   rC  rS  r  rR  Úindicesr&  ÚtuprJ  rK  rH  s   `        @@rH   Úbuild_SubscriptzExprBuilder.build_Subscript#  sß  øøø€ ð	?ð 	?ð 	?ð$	5ð 	5ð 	5ð	ð 	ð 	ð 	ð 	ð 	õ" ˜#˜tœzÑ*Ô*ˆÝ˜œ
Ñ#Ô#ˆØ•s”yÐ Ð Ý˜$œ*Ô*­C¬IÑ6Ô6ð Lðð ð ð ØBFÄ*ÔBRÔBWðñ ô �ð ð 
(ð ŸšØœØœ
Ô(Ô3Øœ
Ô(Ô3°aÑ7ñô �Aõ
 ' q¨"Ñ-Ô-�CØ—N’N 3Ñ'Ô'Ð'Ý   wÑ/Ô/Ð/å  ­
°3¸¼
Ô8HÑ(IÔ(IÐ'JÑKÔKÐKØ�œÐ"Ð"Ý˜T O O°C¸¸t¼zÑ$JÔ$JÐ#KÑLÔLÐLØ�œÐ%Ð%Ý˜T > >°#°t¸T¼ZÑ#HÔ#HÑIÔIÐIÝÔð "
ò 
ñ 
ð �3œ9Ð$Ð$à�Ø"&¤*¤/ð Dð D�JÝ! *­c¬iÑ8Ô8ð DØŸš  °s¸DÀ*Ñ'MÔ'MÑNÔNÐNÐNàŸš¥z°#°zÑ'BÔ'BÑCÔCÐCÐCàð (àŸšØœ T¤ZÔ%:¸D¼JÔ<QÐTUÑ<Uñô �Aõ ' q¨"Ñ-Ô-�CØ—N’N 3Ñ'Ô'Ð'Ý   wÑ/Ô/Ð/Ý˜T¥J¨s°D´JÑ$?Ô$?Ð#@ÑAÔAÐAå# D§J¢J¡L¤LÐ2MÑNÔNÐNrJ   c                 ó”   ‡ — t          ‰                      |j        |j        |j        dz   ¦  «        ˆ fd„|j        D ¦   «         ¦  «        S )Nr¢   c                 ó0   •— g | ]}t          ‰|¦  «        ‘ŒS rl   r©  r6  s     €rH   rŽ   z*ExprBuilder.build_List.<locals>.<listcomp>ˆ  ó#   ø€ Ð3Ð3Ð3 A�Z˜˜QÑÔÐ3Ð3Ð3rJ   )r   rz   r{   r|   rW  r2  s   ` rH   Ú
build_ListzExprBuilder.build_List„  sL   ø€ åØ�NŠN˜4œ;¨¬¸¼È1Ñ9LÑMÔMØ3Ð3Ð3Ð3¨¬Ð3Ñ3Ô3ñ
ô 
ð 	
rJ   c                 ó”   ‡ — t          ‰                      |j        |j        |j        dz   ¦  «        ˆ fd„|j        D ¦   «         ¦  «        S )Nr¢   c                 ó0   •— g | ]}t          ‰|¦  «        ‘ŒS rl   r©  r6  s     €rH   rŽ   z+ExprBuilder.build_Tuple.<locals>.<listcomp>�  r`  rJ   )r.   rz   r{   r|   rW  r2  s   ` rH   Úbuild_TuplezExprBuilder.build_Tuple‹  sL   ø€ åØ�NŠN˜4œ;¨¬¸¼È1Ñ9LÑMÔMØ3Ð3Ð3Ð3¨¬Ð3Ñ3Ô3ñ
ô 
ð 	
rJ   c                 ó  ‡ — ‰                       |j        |j        |j        dz   ¦  «        }|j        r|j        d         st	          |d¦  «        ‚t          |ˆ fd„|j        D ¦   «         ˆ fd„|j        D ¦   «         ¦  «        S )Nr¢   r   z1Dict expansion (e.g. `{**dict}`) is not supportedc                 ó0   •— g | ]}t          ‰|¦  «        ‘ŒS rl   r©  r6  s     €rH   rŽ   z*ExprBuilder.build_Dict.<locals>.<listcomp>›  r`  rJ   c                 ó0   •— g | ]}t          ‰|¦  «        ‘ŒS rl   r©  r6  s     €rH   rŽ   z*ExprBuilder.build_Dict.<locals>.<listcomp>œ  s#   ø€ Ð5Ð5Ð5 A�Z˜˜QÑÔÐ5Ð5Ð5rJ   )rz   r{   r|   Úkeysrn   r   rÙ  )r   rC  r®   s   `  rH   Ú
build_DictzExprBuilder.build_Dict’  s›   ø€ à—’˜tœ{¨D¬O¸T¼_ÈqÑ=PÑQÔQˆØŒ9ð 	˜TœY qœ\ð 	Ý#ØÐJñô ð õ ØØ3Ð3Ð3Ð3¨¬Ð3Ñ3Ô3Ø5Ð5Ð5Ð5¨¬Ð5Ñ5Ô5ñ
ô 
ð 	
rJ   c                 ó¶   — t          |j        ¦  «        }|                      |j        |j        |j        t          |¦  «        z   ¦  «        }t          ||¦  «        S rB   )r  r  rz   r{   r|   rw   r   ©r   rC  r  r&  s       rH   Ú	build_NumzExprBuilder.build_NumŸ  sC   € å�D”J‘”ˆØ�NŠN˜4œ;¨¬¸¼Í3ÈuÉ:Ì:Ñ9UÑVÔVˆÝ�Q˜‰ŒÐrJ   c           
      ón  — |j         }|�t          |t          ¦  «        rt                               | |¦  «        S t          |t
          t          t          f¦  «        rt                               | |¦  «        S t          |t          ¦  «        rt           
                    | |¦  «        S t          |t          t          ¦  «        ¦  «        rt                               | |¦  «        S |                      |j        |j        |j        t#          t          |¦  «        ¦  «        z   ¦  «        }t%          |d¦  «        ‚)Nz Unknown Constant expression type)r  r›   r4  rñ  r  ÚintÚfloatÚcomplexrl  r  Ú	build_Strrv   r  r  rz   r{   r|   rw   r[   )r   rC  r  Úerror_ranges       rH   Úbuild_ConstantzExprBuilder.build_Constant¥  s   € à”
ˆØˆ=�J u­dÑ3Ô3ˆ=õ ×1Ò1°#°tÑ<Ô<Ð<Ý�e�c¥5­'Ð2Ñ3Ô3ð 
	QÝ×(Ò(¨¨dÑ3Ô3Ð3Ý˜�sÑ#Ô#ð 	QÝ×(Ò(¨¨dÑ3Ô3Ð3Ý˜�t¥H™~œ~Ñ.Ô.ð 	QÝ×-Ò-¨c°4Ñ8Ô8Ð8àŸ.š.Ø”˜Tœ_¨d¬oÅÅCÈÁJÄJÁÄÑ.Oñô ˆKõ   Ð-OÑPÔPÐPrJ   c                 ó¼   — t          |j        ¦  «        }|                      |j        |j        |j        t          |¦  «        z   dz   ¦  «        }t          ||¦  «        S ©Nr¢   )r  r  rz   r{   r|   rw   r*   rk  s       rH   rq  zExprBuilder.build_Str¸  sQ   € å�D”J‘”ˆØ�NŠNØŒK˜œ¨$¬/½CÀ¹J¼JÑ*FÈÑ*Jñ
ô 
ˆõ ˜Q Ñ&Ô&Ð&rJ   c           	      ó”  — d}g }|j         D ]Ù}|                      |j        |j        |j        dz   ¦  «        }t	          |t
          j        ¦  «        r`|j        dk    rt          |d¦  «        ‚|j	        �t          |d¦  «        ‚|dz  }| 
                    t          | |j        ¦  «        ¦  «         Œ¥t	          |t
          j        ¦  «        r||j        z  }ŒÊt          |d¦  «        ‚|                      |j        |j        |j        dz   ¦  «        }t          t          t!          ||¦  «        t#          |d¦  «        ¦  «        |g ¦  «        S )	Nrs   r¢   rÄ  z%Don't support conversion in JoinedStrz%Don't support formatting in JoinedStrz{}zUnsupported value in JoinedStrÚformat)rÙ  rz   r{   r|   r›   r¾   ÚFormattedValueÚ
conversionrn   Úformat_specr­   r)  r  rP  r   r&   r*   r   )r   rC  r•   rù   r  r&  s         rH   Úbuild_JoinedStrzExprBuilder.build_JoinedStrÀ  s?  € àˆØˆØ”[ð 	Mð 	MˆEØ—’˜uœ|¨UÔ-=¸uÔ?OÐRSÑ?SÑTÔTˆAÝ˜%¥Ô!3Ñ4Ô4ð 
MØÔ# rÒ)Ð)Ý+¨AÐ/VÑWÔWÐWØÔ$Ð0Ý+¨AÐ/VÑWÔWÐWØ�T‘	�Ø—’�J s¨E¬KÑ8Ô8Ñ9Ô9Ð9Ð9Ý˜E¥3¤<Ñ0Ô0ð MØ�U”[Ñ ��å'¨Ð+KÑLÔLÐLà�NŠN˜4œ;¨¬¸¼È1Ñ9LÑMÔMˆÝ•V�M¨!¨QÑ/Ô/µ°q¸(Ñ1CÔ1CÑDÔDÀdÈBÑOÔOÐOrJ   c                 óÒ  — |                       |j        |j        |j        ¦  «        }t          |j        ¦  «        dk    rt          |d¦  «        ‚t          |j        d         j        ¦  «        dk    rt          |d¦  «        ‚t          | |j        ¦  «        }t          | |j        d         j	        ¦  «        }t          | |j        d         j
        ¦  «        }t          ||||¦  «        S ©Nr¢   z.Only a single generator is currently supportedr   z'Comprehension ifs are not supported yet)rz   r{   r|   rw   Ú
generatorsrn   Úifsr)  Úeltr¯  rÐ  r   )r   r  r&  Úelt_exprÚtarget_exprÚ	iter_exprs         rH   Úbuild_ListCompzExprBuilder.build_ListCompÕ  sÈ   € à�NŠN˜4œ;¨¬¸¼ÑIÔIˆÝˆtŒÑÔ 1Ò$Ð$Ý# AÐ'WÑXÔXÐXåˆtŒ˜qÔ!Ô%Ñ&Ô&¨!Ò+Ð+Ý# AÐ'PÑQÔQÐQå˜c 4¤8Ñ,Ô,ˆÝ   d¤o°aÔ&8Ô&?Ñ@Ô@ˆÝ˜s D¤O°AÔ$6Ô$;Ñ<Ô<ˆ	å˜˜8 [°)Ñ<Ô<Ð<rJ   c                 ó8   — t                                | |¦  «        S rB   )rñ  r„  )r   r  s     rH   Úbuild_GeneratorExpzExprBuilder.build_GeneratorExpä  s   € õ ×)Ò)¨#¨tÑ4Ô4Ð4rJ   c                 óþ  — |                       |j        |j        |j        ¦  «        }t          |j        ¦  «        dk    rt          |d¦  «        ‚t          |j        d         j        ¦  «        dk    rt          |d¦  «        ‚t          | |j        ¦  «        }t          | |j	        ¦  «        }t          | |j        d         j
        ¦  «        }t          | |j        d         j        ¦  «        }t          |||||¦  «        S r}  )rz   r{   r|   rw   r~  rn   r  r)  Úkeyr  r¯  rÐ  r   )r   r  r&  Úkey_exprÚ
value_exprr‚  rƒ  s          rH   Úbuild_DictCompzExprBuilder.build_DictCompé  sÛ   € à�NŠN˜4œ;¨¬¸¼ÑIÔIˆÝˆtŒÑÔ 1Ò$Ð$Ý# AÐ'WÑXÔXÐXåˆtŒ˜qÔ!Ô%Ñ&Ô&¨!Ò+Ð+Ý# AÐ'PÑQÔQÐQå˜c 4¤8Ñ,Ô,ˆÝ  T¤ZÑ0Ô0ˆ
Ý   d¤o°aÔ&8Ô&?Ñ@Ô@ˆÝ˜s D¤O°AÔ$6Ô$;Ñ<Ô<ˆ	å˜˜8 Z°¸iÑHÔHÐHrJ   c                 óš   — |                       |j        |j        |j        dz   ¦  «        }t          |t	          | |j        ¦  «        ¦  «        S ru  )rz   r{   r|   r(   r)  r  r  s      rH   Úbuild_StarredzExprBuilder.build_Starredù  s>   € à�NŠN˜4œ;¨¬¸¼È1Ñ9LÑMÔMˆÝ�q�* S¨$¬*Ñ5Ô5Ñ6Ô6Ð6rJ   N);ri   rj   rk   r¾   rå  ræ  rç  rè  rï  ré  ÚFloorDivrë  rì  rê  rí  rî  r"  ÚMatMultÚNotÚUSubÚInvertr'  ÚAndÚOrr.  ÚEqÚNotEqÚLtEÚLtÚGtEÚGtÚIsÚIsNotÚInr<  r;  r—  r  r  r  r  r  r$  r)  r0  r3  rA  r]  ra  rd  ri  rl  rs  rq  r{  r„  r†  r‹  r�  rl   rJ   rH   rñ  rñ  P  sf  € € € € € àŒ�ØŒ�ØŒ�#ØŒ�ØŒ�ØŒ�ØŒ�dØŒ
�CØŒ
�CØŒ	�3ØŒ
�DØŒ
�Dð€Ið !€IˆcŒkÑð 	Œ�ØŒ�#ØŒ
�Cð€Hð 	Œ�ØŒ�ð€Jð 	Œ�ØŒ	�4ØŒ�ØŒ�ØŒ�ØŒ�ØŒ�ØŒ	�8ØŒ�ØŒ	�8ð€Ið ð:ð :ñ „\ð:ð  ð)ð )ñ „\ð)ð" ðð ñ „\ðð ð&ð &ñ „\ð&ð$ ðTð Tñ „\ðTð ð)ð )ñ „\ð)ð* ð.ð .ñ „\ð.ð ðð ñ „\ðð( ð
ð 
ñ „\ð
ð ðð ñ „\ðð4 ð^Oð ^Oñ „\ð^Oð@ ð
ð 
ñ „\ð
ð ð
ð 
ñ „\ð
ð ð

ð 

ñ „\ð

ð ðð ñ „\ðð
 ðQð Qñ „\ðQð$ ð'ð 'ñ „\ð'ð ðPð Pñ „\ðPð( ð=ð =ñ „\ð=ð ð5ð 5ñ „\ð5ð ðIð Iñ „\ðIð ð7ð 7ñ „\ð7ð 7ð 7rJ   rñ  ©r   r   c                 ó¶   — | j         d |…                              |¦  «        }|                      ||d         z   |t          |¦  «        z   |d         z   ¦  «        S )Nr   r¢   )rß   Úrindexr  rw   )r   ÚposÚsubstrrÅ  Únew_poss        rH   rÈ  rÈ    sT   € ØŒj˜˜#˜Ô×%Ò% fÑ-Ô-€GØ×Ò˜g¨°¬
Ñ2°G½cÀ&¹k¼kÑ4IÈGÐTUÌJÑ4VÑWÔWÐWrJ   )NF)NNrB   )rž  )�r¾   rÚ   r§   rY  r  rY  Úcollectionsr   Útextwrapr   Útypingr   r   r_   Útorch.jit.annotationsr   Útorch._C._jit_tree_viewsr   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-   r.   r/   r0   r1   r2   r3   Útorch._jit_internalr4   r5   r6   r7   Útorch._sourcesr8   r9   r:   r;   rõ   Útorch.jit._dataclass_implsr<   Útorch.jit._monkeytype_configr=   r>   rã  ro  ÚImportErrorrD   rE   ÚsetÚascii_lowercaseÚascii_uppercaseÚdigitsÚ_identifier_charsrI   rÐ   ÚImportÚ
ImportFromÚGlobalr}   rx   ÚupdateÚAsyncFunctionDefÚAsyncForÚ	AsyncWithÚTryÚNonlocalrÁ   Ú	Exceptionr[   rn   rr   rˆ   r‘   r˜   r¶   rÄ   rð   r«   r  r  rá   r  r@  r(  r<  r|  r‡  rŽ  r�  r¿   rñ  r)  r”   r‹   rÈ  rl   rJ   rH   ú<module>r½     sÂ  ðà 
€
€
€
Ø Ð Ð Ð Ø €€€Ø 	€	€	€	Ø €€€Ø 
€
€
€
Ø "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ð Ð à €€€Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð ð-ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð\ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ?Ð >Ð >Ð >Ð >Ð >Ø MÐ MÐ MÐ MÐ MÐ MÐ MÐ Mð !Ð ð	ØÐÐÐà#ÐÐøØð 	ð 	ð 	Ø€Dð	øøøð Ð Ø�)€Ø�C˜Ô.°Ô1GÑGÈ&Ì-ÑWÑXÔXÐ ðHð Hð Hð
 „OÐ+Ø„Gˆ[Ø„JÐ Ø„LÐ%Ø„HÐØ„IÐ!Ø„J�Ø„JÐ#Ø„NÐ'Ø„JÐ"Ø„IÐ!Ø„LÐ'ðÐ ð  „O�UØ„GˆUØ„J�Ø„L�'Ø„HˆfØ„IˆwØ„J�Ø„J�Ø„N�FØ„J�Ø„IˆwØ„L�*ðÐ ð × Ò àÔÐ:ØŒÐ'ØŒÐ.ØŒ�ØŒÐ*ðñô ð ð × Ò àÔ˜kØŒ�kØŒ�|ØŒ�ØŒ�jðñô ð ð × Ò àŒÐ.ðñô ð ð
<ð 
<ð 
<ð 
<ð 
<�Iñ 
<ô 
<ð 
<ð	ð 	ð 	ð 	ð 	˜ñ 	ô 	ð 	ð,ð ,ð ,ð ,ð ,Ð,ñ ,ô ,ð ,ð	ð 	ð 	ð 	ð 	˜ñ 	ô 	ð 	ðð ð ð
%ð %ð %ð
ð ð ðDð ð ð$GXð GXð GXðT?ð ?ð ?ð ?ðFð ð ð$!ð !ð !ð !ð !ñ !ô !ð !ðð ð ðAð Að Að Að&2ð ð1ð 1ð 1ð 1ðh>ð >ð >ð >ðSð Sð Sðlð ð ð,ð ð ð:
ð 
ð 
ð 
ð 
�gñ 
ô 
ð 
ð lVð lVð lVð lVð lV�'ñ lVô lVð lVð^l7ð l7ð l7ð l7ð l7�'ñ l7ô l7ð l7ð^ ˆ[‰]Œ]€
Øˆ[‰]Œ]€
Ø �Ñ"Ô"€ðXð Xð Xð Xð Xð Xs   Ã C ÃCÃC