§
    ‹Štj¹§  ã            	       ór  — 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Zd dlmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZmZmZ d dlmZmZmZmZ d dlmZ  e j        dd	¦  «        Z e j        d
d¦  «        Zg d¢Zd„ Zd„ Zd„ Z d„ Z!d„ Z"e#e$e%e& e'd¦  «        ej(        ej)        ej*        ej+        f	Z,d„ Z- G d„ dej.        j/        j0        ¦  «        Z1d„ Z2d2d„Z3 G d„ d¦  «        Z4 e4¦   «         Z5	 	 d3d„Z6d3d„Z7d2d„Z8d„ Z9d4d „Z:d!„ Z;d"„ Z<d3d#„Z=d$„ Z>d%„ Z?d3d&„Z@d'„ ZAd3d(„ZBd)„ ZCd*„ ZDd+„ ZEd,„ ZFd-„ ZGd.„ ZHd/„ ZId0„ ZJd1„ ZKdS )5é    N)Ú
fake_range)Ú_find_builtin)ÚAttributeTypeIsSupportedChecker)Ú_add_script_classÚ_get_script_classÚ
_python_cu)Úget_class_propertiesÚget_default_argsÚget_jit_class_defÚget_jit_def)ÚModuleÚScriptMethodStub)Úresolution_callbackÚdef_Úoriginal_methodÚPropertyStub)r   r   )Ú_versionÚ_parametersÚ_buffersÚ_non_persistent_buffers_setÚ_backward_hooksÚ_backward_pre_hooksÚ_forward_hooksÚ_forward_hooks_with_kwargsÚ_forward_pre_hooksÚ_forward_pre_hooks_with_kwargsÚ_forward_hooks_always_calledÚ_state_dict_hooksÚ_state_dict_pre_hooksÚ_load_state_dict_pre_hooksÚ_load_state_dict_post_hooksÚ_modulesÚ_initializingÚdump_patchesc                 óþ   — t          | ¦  «        }|skt          | | j        ¦  «        }t          j        j                             | ¦  «        }t          j                             ||||¦  «        }t          | |¦  «         |S ©N)
r   r   Ú__name__ÚtorchÚjitÚfrontendÚget_default_args_for_classÚ_CÚ_jit_script_class_compiler   )ÚobjÚrcbÚqualified_nameÚscript_classÚastÚdefaultss         úR/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torch/jit/_recursive.pyÚ_compile_and_register_classr5   5   sx   € Ý$ SÑ)Ô)€Làð -Ý  S¤\Ñ2Ô2ˆÝ”9Ô%×@Ò@ÀÑEÔEˆÝ”x×9Ò9Ø˜C ¨3ñ
ô 
ˆõ 	˜#˜|Ñ,Ô,Ð,àÐó    c                 óp   — t          j        | ¦  «        }t          | |d¬¦  «        }t          ||| ¦  «        S ©NÚRecursiveScriptModule©Ú	self_name)Ú_jit_internalÚ#createResolutionCallbackFromClosurer   r   )ÚfuncÚnamer/   r2   s       r4   Ú	make_stubr@   C   s9   € Ý
Ô
;¸DÑ
AÔ
A€CÝ
�d˜DÐ,CÐ
DÑ
DÔ
D€CÝ˜C  dÑ+Ô+Ð+r6   c                 óp   — t          | |¦  «        }t          |t          ¦  «        r|S t          ||¦  «        S r&   )ÚgetattrÚ
isinstancer   r@   )Ú	nn_moduleÚmethod_namer>   s      r4   Úmake_stub_from_methodrF   I   s;   € Ý�9˜kÑ*Ô*€DÝ�$Õ(Ñ)Ô)ð Øˆõ �T˜;Ñ'Ô'Ð'r6   c                 óà   — g }t          | ¦  «        D ][}t          | |d ¦  «        }t          j        |¦  «        t          j        j        u r#|                     t          | |¦  «        ¦  «         Œ\|S r&   )ÚdirrB   r<   Úget_torchscript_modifierÚFunctionModifiersÚEXPORTÚappendrF   )ÚmodÚstubsr?   Úitems       r4   Ú make_stubs_from_exported_methodsrP   X   ss   € Ø€EÝ�C‘”ð ;ð ;ˆÝ�s˜D $Ñ'Ô'ˆåÔ2°4Ñ8Ô8ÝÔ.Ô5ð6ð 6ð �LŠLÕ.¨s°DÑ9Ô9Ñ:Ô:Ð:øà€Lr6   c                 ó¶   — t          | dg ¦  «        }d„ } |t          | ¦  «        ¦  «        }t          ¦   «         }|D ]}||v r|                     |¦  «         Œ|S )NÚ__jit_ignored_attributes__c                 óX   — d„ t          | ¦  «                             ¦   «         D ¦   «         S )Nc                 óB   — h | ]\  }}t          |t          ¦  «        ¯|’ŒS © )rC   Úproperty)Ú.0ÚkÚvs      r4   ú	<setcomp>zGjit_ignored_properties.<locals>.get_properties_names.<locals>.<setcomp>k   s+   € ÐNÐNÐN‘d�a˜µjÀÅHÑ6MÔ6MÐN�ÐNÐNÐNr6   )ÚvarsÚitems)Úmodules    r4   Úget_properties_namesz4jit_ignored_properties.<locals>.get_properties_namesj   s(   € ØNÐN�d 6™lœl×0Ò0Ñ2Ô2ÐNÑNÔNÐNr6   )rB   ÚtypeÚsetÚadd)r]   Ú!user_annotated_ignored_attributesr^   Ú
propertiesÚuser_annoted_ignored_propertiesÚignored_attrs         r4   Újit_ignored_propertiesrf   e   sƒ   € Ý(/ØÐ,¨bñ)ô )Ð%ðOð Oð Oð &Ð%¥d¨6¡l¤lÑ3Ô3€JÝ&)¡e¤eÐ#à9ð >ð >ˆØ˜:Ð%Ð%Ø+×/Ò/°Ñ=Ô=Ð=øØ*Ð*r6   c                 ó†  ‡ ‡— t          |t          ¦  «        r|S t          |t          t          f¦  «        rt          ˆ ˆfd„|D ¦   «         ¦  «        S d                     d„ t          D ¦   «         ¦  «        }t          t          j        dt          j	        t          |¦  «        ¦  «        › d‰› d‰ › d|› d�	¦  «        ¦  «        ‚)	Nc              3   ó:   •K  — | ]}t          ‰|‰¦  «        V — Œd S r&   )Ú_get_valid_constant)rW   ÚxÚattrÚ
owner_types     €€r4   ú	<genexpr>z&_get_valid_constant.<locals>.<genexpr>‹   s0   øè è € ÐIÐIÀ!Õ(¨¨q°*Ñ=Ô=ÐIÐIÐIÐIÐIÐIr6   z, c              3   ó>   K  — | ]}t          j        |¦  «        V — Œd S r&   )r(   Útypename)rW   Útyps     r4   rm   z&_get_valid_constant.<locals>.<genexpr>Œ   s,   è è € ÐIÐI°#�%œ.¨Ñ-Ô-ÐIÐIÐIÐIÐIÐIr6   z

        'z' object in attribute 'ú.zo' is not a valid constant.
        Valid constants are:
        1. a nn.ModuleList
        2. a value of type {z,}
        3. a list or tuple of (2)
        )rC   Ú_constant_typesÚtupleÚlistÚjoinÚ	TypeErrorÚtextwrapÚdedentr(   ro   r_   )rk   rY   rl   Ú	constantss   ` ` r4   ri   ri   ‡   sê   øø€ Ý�!•_Ñ%Ô%ð JØˆÝ	�A��t�}Ñ	%Ô	%ð JÝÐIÐIÐIÐIÐIÀqÐIÑIÔIÑIÔIÐIØ—	’	ÐIÐI½ÐIÑIÔIÑIÔI€IÝ
ÝŒðÝ
Œ.�˜a™œÑ
!Ô
!ðð Ø:Dðð ØGKðð ð (ð	ð ð ñ	
ô 	
ñ
ô 
ð 
r6   c                   ó   — e Zd ZdS )ÚSourceContextN)r'   Ú
__module__Ú__qualname__rU   r6   r4   r{   r{   š   s   € € € € € Ø€Dr6   r{   c                 ó    ‡— t          j        | ¦  «        }|r|S ˆfd„Št          | t          ¦  «        r| nt          | ¦  «        } ‰|¦  «        S )Nc                 ón   •— t          j        | ¦  «        }|r|S | j        D ]} ‰|¦  «        }|r|c S Œi S r&   )ÚinspectÚget_annotationsÚ	__bases__)ÚclsÚcls_annotationsÚbaseÚget_cls_annotationss      €r4   r†   z,get_annotations.<locals>.get_cls_annotations§   s`   ø€ Ý!Ô1°#Ñ6Ô6ˆØð 	#Ø"Ð"Ø”Mð 	'ð 	'ˆDØ1Ð1°$Ñ7Ô7ˆOØð 'Ø&Ð&Ð&Ð&ð'àˆ	r6   )r€   r�   rC   r_   )r.   Úannotationsrƒ   r†   s      @r4   r�   r�   ž   sm   ø€ õ
 Ô)¨#Ñ.Ô.€KØð ØÐðð ð ð ð õ ˜C¥Ñ&Ô&Ð
5ˆ#ˆ#­D°©I¬I€CØÐ˜sÑ#Ô#Ð#r6   Tc                 ó  ‡— t           j                             t          | ¦  «        ¦  «        }t	          | t           j        j        ¦  «        r|                     ¦   «          t	          | t           j        j        t           j        j	        f¦  «        r| 
                    ¦   «          t	          | t           j        j        ¦  «        r|                     ¦   «          t	          | t           j        j        ¦  «        r|                     ¦   «          t          | ¦  «        Št	          | t           j        j        j        ¦  «        ri Št'          | dg ¦  «        }|                     |¦  «         t+          | ¦  «        }ˆfd„}t-          ¦   «         }| j                             ¦   «         D ]–\  }}||v rŒ
|�<t	          |t           j        ¦  «        s"t5          d|› dt          |¦  «        › �¦  «        ‚ |||¦  «        \  }	}
|                     ||	                     ¦   «         dd¦  «         |                     |¦  «         Œ—| j                             ¦   «         D ]–\  }}||v rŒ
|�<t	          |t           j        ¦  «        s"t5          d|› dt          |¦  «        › �¦  «        ‚ |||¦  «        \  }	}
|                     ||	                     ¦   «         dd¦  «         |                     |¦  «         Œ—| j                             ¦   «         D �]\  }}||v rŒ |||¦  «        \  }	}
|€+|                     ||	                     ¦   «         dd¦  «         ŒG|	                     ¦   «         rp|	                     ¦   «                               ¦   «         st5          d	|› d
�¦  «        ‚t           j        j!         "                    |	                     ¦   «         ¦  «        }ntG          ||¦  «        }| $                    ||¦  «         |                     |¦  «         �Œt-          t'          | dd¦  «        ¦  «        }‰                     ¦   «         D ]9\  }}t           j%         &                    |¦  «        r|                     |¦  «         Œ:|D ]Þ}||v rQ|| j        v rd}n'|| j        v rd}n|| j        v rd}nt5          d¦  «        ‚tO          j(        d
|› d|› d�d¬¦  «         ŒWtS          | |¦  «        stO          j(        d
|› d�d¬¦  «         Œ‚t'          | |¦  «        }| *                    |tW          ||t          | ¦  «        j,        ¦  «        ¦  «         |                     |¦  «         Œßt'          | di ¦  «        }| -                    t]          t_          | |¦  «        ¦  «        ¦  «         |                     ¦   «         D ]\  }}| 0                    ||¦  «         Œ| j1                             ¦   «         D �]C\  }}|td          v s| 3                    d¦  «        rŒ%||v rŒ*||v rŒ/t	          |t           j4        j5        ¦  «        }|r|j6        }to          j8        |¦  «        rœ	 t           j9         :                    |¦  «        }| ;                    |t           j         <                    |¦  «                             ¦   «         |¦  «         n3# tz          $ r&}d|› d�}| >                    ||¦  «         Y d}~nd}~ww xY w�Œt          |¦  «        }|r| @                    ||¦  «         �Œ0t	          |t           j9        jA        ¦  «        rH| ;                    |t           j         <                    |¦  «                             ¦   «         |¦  «         �Œ— |||¦  «        \  }	}|	                     ¦   «         r,|                     ||	                     ¦   «         dd¦  «         �Œæ|rdnd}|	 B                    ¦   «         › d|› �}dt          jC        t          |¦  «        ¦  «        › d|› d�}| >                    ||¦  «         �ŒE| jD         E                    ¦   «         D ]}| F                    |¦  «         Œ| jG         E                    ¦   «         D ]}| H                    |¦  «         Œ|S )z³
    Build a ConcreteModuleTypeBuilder from an nn.Module.

    This ConcreteModuleType doesn't have a JIT type associated with it yet, it
    must be filled in by the caller.
    rR   c           	      ó˜  •— d}	 | ‰v r}‰|          t           j        j        j        d         k    rWt           j        j                             ‰|          t          ¦   «         ¦  «        }t           j         	                    |¦  «        }n–t          |t           j        j        ¦  «        rVt           j        j                             |j        t          ¦   «         ¦  «        }t           j         	                    |¦  «        }n!t           j                             |¦  «        }d}n+# t          $ r}t          d| › d|› d|› �¦  «        |‚d }~ww xY w||fS )NFÚforwardTzError inferring type for z: )r(   Únnr   Ú__annotations__r)   r‡   Úann_to_typer   r,   ÚInferredTyperC   Ú	Attributer_   Ú_jit_try_infer_typeÚRuntimeError)r?   rO   Úinferredr�   Ú	attr_typeÚreÚclass_annotationss         €r4   Ú
infer_typez/infer_concrete_type_builder.<locals>.infer_typeÒ   sC  ø€ ð ˆð	YàÐ)Ð)Ð)Ø% dÔ+Ý”8”?Ô2°9Ô=ò>ð >õ $œiÔ3×?Ò?Ø% dÔ+­Z©\¬\ñô �õ "œH×1Ò1°+Ñ>Ô>�	�	Ý˜D¥%¤)Ô"5Ñ6Ô6ð  Ý#œiÔ3×?Ò?ÀÄ	Í:É<Ì<ÑXÔX�Ý!œH×1Ò1°+Ñ>Ô>�	�	å!œH×8Ò8¸Ñ>Ô>�	Ø�øøÝð 	Yð 	Yð 	YÝÐO¸4ÐOÐOÀ4ÐOÐOÈ2ÐOÐOÑPÔPÐVXÐXøøøøð	Yøøøð ˜(Ð"Ð"s   …DD Ä
EÄ'E Å ENzExpected parameter 'z' to be None or Tensor, got TFzExpected buffer 'z1Expected inferred type to be interface type for 'ú'Ú__constants__rU   Ú	submoduleÚbufferÚ	parameterz3added_names must be submodule, parameter, or bufferzA' was found in ScriptModule constants,  but it is a non-constant z. Consider removing it.é   )Ú
stacklevelzb' was found in ScriptModule constants, but was not actually set in __init__. Consider removing it.Ú__overloads__Ú__z˜(This function exists as an attribute on the Python module, but we failed to compile it to a TorchScript function. 
The error stack is reproduced here:
ú)zFIts type was inferred; try adding a type annotation for the attribute.Ú z. zT(This attribute exists on the Python module, but we failed to convert Python type: 'z' to a TorchScript type. )Ir(   r,   ÚConcreteModuleTypeBuilderr_   rC   r‹   Ú
ModuleDictÚset_module_dictÚ
ModuleListÚ
SequentialÚset_module_listÚParameterListÚset_parameter_listÚParameterDictÚset_parameter_dictr�   ÚaoÚquantizationÚQuantWrapperrB   Úadd_ignored_attributesrf   r`   r   r\   ÚTensorÚAssertionErrorÚadd_attributera   r   r"   ÚsuccessÚis_interface_typeÚConcreteModuleTypeÚfrom_jit_typeÚget_module_concrete_typeÚ
add_moduler<   Úis_finalÚwarningsÚwarnÚhasattrÚadd_constantri   r'   ÚupdateÚget_overload_name_mappingÚget_overload_annotationsÚadd_overloadÚ__dict__Úignored_attributesÚ
startswithÚ_opsÚOpOverloadPacketÚopr€   Ú
isfunctionr)   ÚscriptÚadd_function_attributer�   Ú	ExceptionÚadd_failed_attributer   Úadd_builtin_functionÚScriptFunctionÚreasonro   r   ÚvaluesÚadd_forward_hookr   Úadd_forward_pre_hook)rD   Úshare_typesÚconcrete_type_builderrb   Úignored_propertiesr–   Úadded_namesr?   rO   r“   Ú_Úsub_concrete_typeÚconstants_setÚannÚhintÚvalueÚ	overloadsÚoverloaded_namesÚisoverloadpacketÚscripted_fnÚeÚbuiltin_symbol_namer’   Úinferred_msgÚadditional_infoÚhookÚpre_hookr•   s                              @r4   Úinfer_concrete_type_builderrç   µ   s«	  ø€ õ "œH×>Ò>½tÀI¹¼ÑOÔOÐÝ�)�eœhÔ1Ñ3Ô3ð 0Ø×-Ò-Ñ/Ô/Ð/Ý�)�eœhÔ1µ5´8Ô3FÐGÑHÔHð 0Ø×-Ò-Ñ/Ô/Ð/Ý�)�eœhÔ4Ñ6Ô6ð 3Ø×0Ò0Ñ2Ô2Ð2Ý�)�eœhÔ4Ñ6Ô6ð 3Ø×0Ò0Ñ2Ô2Ð2å'¨	Ñ2Ô2ÐÝ�)�eœhÔ3Ô@ÑBÔBð ØÐõ )0ØÐ/°ñ)ô )Ð%ð ×0Ò0Ð1RÑSÔSÐSÝ/°	Ñ:Ô:Ðð#ð #ð #ð #ð #õ8 ‘%”%€KàÔ+×1Ò1Ñ3Ô3ð ð ‰
ˆˆdØÐ4Ð4Ð4Øà�¥
¨4µ´Ñ >Ô >�Ý ØU tÐUÐUÍÈdÉÌÐUÐUñô ð ð "�z $¨Ñ-Ô-‰ˆ	�1ð 	×+Ò+¨D°)·.².Ñ2BÔ2BÀDÈ%ÑPÔPÐPØ�Š˜ÑÔÐÐàÔ(×.Ò.Ñ0Ô0ð 
ð 
‰
ˆˆdØÐ4Ð4Ð4Øà�¥
¨4µ´Ñ >Ô >�Ý ØR DÐRÐRÅdÈ4ÁjÄjÐRÐRñô ð ð "�z $¨Ñ-Ô-‰ˆ	�1Ø×+Ò+¨D°)·.².Ñ2BÔ2BÀEÈ4ÑPÔPÐPØ�Š˜ÑÔÐÐàÔ(×.Ò.Ñ0Ô0ð ñ ‰
ˆˆdØÐ4Ð4Ð4Øà!�z $¨Ñ-Ô-‰ˆ	�1Øˆ<ð "×/Ò/°°i·n²nÑ6FÔ6FÈÈuÑUÔUÐUØØ×ÒÑÔð 	LØ—>’>Ñ#Ô#×5Ò5Ñ7Ô7ð Ý$ØOÈÐOÐOÐOñô ð õ !&¤Ô ;× IÒ IØ—’Ñ Ô ñ!ô !ÐÐõ
 !9¸¸{Ñ KÔ KÐØ×(Ò(¨Ð/@ÑAÔAÐAà�Š˜ÑÔÐÑõ � 	¨?¸BÑ?Ô?Ñ@Ô@€Mð '×,Ò,Ñ.Ô.ð $ð $‰	ˆˆcÝÔ×'Ò'¨Ñ,Ô,ð 	$Ø×Ò˜dÑ#Ô#Ð#øàð #ð #ˆØ�;ÐÐð �yÔ)Ð)Ð)Ø"��Ø˜Ô+Ð+Ð+Ø��Ø˜Ô.Ð.Ð.Ø"��å$ØIñô ð õ ŒMðK�Dð Kð KØ-1ðKð Kð Kàðñ ô ð ð
 Ý�y $Ñ'Ô'ð 		õ ŒMð(�Dð (ð (ð (ð ð	ñ ô ð ð Ý˜	 4Ñ(Ô(ˆØ×*Ò*ØÕ% d¨Eµ4¸	±?´?Ô3KÑLÔLñ	
ô 	
ð 	
ð 	�Š˜ÑÔÐÐõ ˜	 ?°BÑ7Ô7€Ià×ÒÝ!Ý$ YÐ0BÑCÔCñ	
ô 	
ñô ð ð
 #,§/¢/Ñ"3Ô"3ð Cð CÑˆÐØ×*Ò*¨4Ð1AÑBÔBÐBÐBà Ô)×/Ò/Ñ1Ô1ð DCñ DC‰ˆˆeØÕ%Ð%Ð%¨¯ª¸Ñ)>Ô)>Ð%ð àÐ4Ð4Ð4Øà�;ÐÐàå% e­U¬ZÔ-HÑIÔIÐØð 	Ø”HˆEåÔ˜eÑ$Ô$ð 	ðGÝ#œi×.Ò.¨uÑ5Ô5�Ø%×<Ò<Ø�%œ(×6Ò6°{ÑCÔC×HÒHÑJÔJÈEñô ð ð øõ ð 	Gð 	Gð 	Gð
Cà>?ðCð Cð Cð ð
 &×:Ò:¸4ÀÑFÔFÐFÐFÐFÐFÐFÐFøøøøð	Gøøøñ õ ,¨EÑ2Ô2ÐØð 	Ø!×6Ò6°tÐ=PÑQÔQÐQÙõ �e�UœYÔ5Ñ6Ô6ð 	Ø!×8Ò8Ø•e”h×2Ò2°5Ñ9Ô9×>Ò>Ñ@Ô@À%ñô ð ñ ð )˜j¨¨uÑ5Ô5Ñˆ	�8Ø×ÒÑÔð 	CØ!×/Ò/°°i·n²nÑ6FÔ6FÈÈuÑUÔUÐUÑUð ðÐXÐXàð ð
 "+×!1Ò!1Ñ!3Ô!3ÐEÐE°|ÐEÐEˆOð=Ý:?¼.ÍÈeÉÌÑ:UÔ:Uð=ð =à*9ð=ð =ð =ð ð
 "×6Ò6°t¸TÑBÔBÐBÑBð Ô(×/Ò/Ñ1Ô1ð 5ð 5ˆØ×.Ò.¨tÑ4Ô4Ð4Ð4ØÔ0×7Ò7Ñ9Ô9ð =ð =ˆØ×2Ò2°8Ñ<Ô<Ð<Ð<à Ð s   ÙA%Z2Ú2
["Ú<[Û["c                   óŽ   — e Zd ZU eee         eej        j	                 f         e
d<   eej        j	                 e
d<   dd„Zd„ ZdS )ÚConcreteTypeStoreÚ
type_storeÚmethods_compiledÚreturnNc                 ó:   — i | _         t          ¦   «         | _        d S r&   )rê   r`   rë   )Úselfs    r4   Ú__init__zConcreteTypeStore.__init__²  s   € àˆŒå #¡¤ˆÔÐÐr6   c                 ó&  — t          |¦  «        }t          |¦  «        }|| j        vr
g | j        |<   | j        |         }|D ]}|                     |¦  «        r|c S Œ|                     ¦   «         }| j        |                              |¦  «         |S )zaInfer a ConcreteType from this `nn.Module` instance. Underlying JIT types are reused if possible.)rç   r_   rê   ÚequalsÚbuildrL   )rî   rD   rÔ   Únn_module_typeÚknown_typesÚ
known_typeÚconcrete_types          r4   Úget_or_create_concrete_typez-ConcreteTypeStore.get_or_create_concrete_type¸  s­   € å ;¸IÑ FÔ FÐå˜i™œˆØ ¤Ð0Ð0Ø.0ˆDŒO˜NÑ+ð ”o nÔ5ˆØ%ð 	"ð 	"ˆJØ× Ò Ð!6Ñ7Ô7ð "Ø!Ð!Ð!Ð!ð"ð .×3Ò3Ñ5Ô5ˆØŒ˜Ô'×.Ò.¨}Ñ=Ô=Ð=ØÐr6   ©rì   N)r'   r|   r}   Údictr_   r   rt   r(   r,   rµ   rŒ   r`   rï   r÷   rU   r6   r4   ré   ré   ®  ss   € € € € € € Ø�T˜&”\ 4¨¬Ô(CÔ#DÐDÔEÐEÐEÑEØ˜%œ(Ô5Ô6Ð6Ð6Ñ6ð&ð &ð &ð &ðð ð ð ð r6   ré   rì   c                 ó°   — d„ |D ¦   «         }d„ |D ¦   «         }d„ |D ¦   «         }d„ |D ¦   «         }d„ |D ¦   «         }|                       |||||¦  «         d S )Nc                 ó   — g | ]	}|j         ‘Œ
S rU   ©r   ©rW   Úms     r4   ú
<listcomp>z<create_methods_and_properties_from_stubs.<locals>.<listcomp>Ò  s   € Ð0Ð0Ð0˜a�1”6Ð0Ð0Ð0r6   c                 ó   — g | ]	}|j         ‘Œ
S rU   ©r   rý   s     r4   rÿ   z<create_methods_and_properties_from_stubs.<locals>.<listcomp>Ó  s   € Ð?Ð?Ð?¨Q�1Ô(Ð?Ð?Ð?r6   c                 ó6   — g | ]}t          |j        ¦  «        ‘ŒS rU   )r
   r   rý   s     r4   rÿ   z<create_methods_and_properties_from_stubs.<locals>.<listcomp>Ô  s$   € ÐQÐQÐQ¸qÕ'¨Ô(9Ñ:Ô:ÐQÐQÐQr6   c                 ó   — g | ]	}|j         ‘Œ
S rU   rü   ©rW   Úps     r4   rÿ   z<create_methods_and_properties_from_stubs.<locals>.<listcomp>Ö  ó   € Ð4Ð4Ð4 �Q”VÐ4Ð4Ð4r6   c                 ó   — g | ]	}|j         ‘Œ
S rU   r  r  s     r4   rÿ   z<create_methods_and_properties_from_stubs.<locals>.<listcomp>×  ó   € ÐCÐCÐC¨q�QÔ*ÐCÐCÐCr6   )Ú_create_methods_and_properties)rö   Úmethod_stubsÚproperty_stubsÚmethod_defsÚmethod_rcbsÚmethod_defaultsÚproperty_defsÚproperty_rcbss           r4   Ú(create_methods_and_properties_from_stubsr  Ï  s�   € ð 1Ð0 <Ð0Ñ0Ô0€KØ?Ð?°,Ð?Ñ?Ô?€KØQÐQÀLÐQÑQÔQ€Oà4Ð4 ^Ð4Ñ4Ô4€MØCÐC°NÐCÑCÔC€Mà×0Ò0Ø�} k°;Àñô ð ð ð r6   c                 ó–   — d„ |D ¦   «         }d„ |D ¦   «         }d„ |D ¦   «         }d„ |D ¦   «         }|                       ||||¦  «         d S )Nc                 ó   — g | ]	}|j         ‘Œ
S rU   rü   ©rW   Úhs     r4   rÿ   z+create_hooks_from_stubs.<locals>.<listcomp>ß  s   € Ð,Ð,Ð,˜A�”Ð,Ð,Ð,r6   c                 ó   — g | ]	}|j         ‘Œ
S rU   r  r  s     r4   rÿ   z+create_hooks_from_stubs.<locals>.<listcomp>à  s   € Ð;Ð;Ð;¨1�Ô&Ð;Ð;Ð;r6   c                 ó   — g | ]	}|j         ‘Œ
S rU   rü   r  s     r4   rÿ   z+create_hooks_from_stubs.<locals>.<listcomp>â  r  r6   c                 ó   — g | ]	}|j         ‘Œ
S rU   r  r  s     r4   rÿ   z+create_hooks_from_stubs.<locals>.<listcomp>ã  r  r6   )Ú_create_hooks)rö   Ú
hook_stubsÚpre_hook_stubsÚ	hook_defsÚ	hook_rcbsÚpre_hook_defsÚpre_hook_rcbss          r4   Úcreate_hooks_from_stubsr   Þ  sn   € Ø,Ð, Ð,Ñ,Ô,€IØ;Ð;°
Ð;Ñ;Ô;€Ià4Ð4 ^Ð4Ñ4Ô4€MØCÐC°NÐCÑCÔC€Mà×Ò 	¨9°mÀ]ÑSÔSÐSÐSÐSr6   c                 ó„  — t          | t          ¦  «        st          dt          | ¦  «        › �¦  «        ‚t          | t          j        j        ¦  «        rt          | d¦  «        r| j        S |rt           
                    | ¦  «        }n8t          | |¦  «        }|                     ¦   «          |                     ¦   «         }|S )a×  
    Get a concrete type for nn_modules.

    If share_types is True, the concrete type is fetched from concrete_type_store.
    If it is False, a new concrete type is created without first searching concrete_type_store.

    Args:
        nn_module:  The original Python nn.Module that we are creating a ScriptModule for.
        share_types = Whether to share underlying JIT types between modules (if possible).

    Returns:
        A concrete type for nn_module.
    zExpected Module, got Ú_concrete_type)rC   r   r±   r_   r(   r)   ÚScriptModuler¼   r"  Úconcrete_type_storer÷   rç   Úset_poisonedrò   )rD   rÓ   rö   rÔ   s       r4   r·   r·   è  sÅ   € õ �i¥Ñ(Ô(ð HÝÐFµT¸)±_´_ÐFÐFÑGÔGÐGÝ�)�UœYÔ3Ñ4Ô4ð (½ØÐ#ñ:ô :ð (ð Ô'Ð'àð 6å+×GÒGÈ	ÑRÔRˆˆõ !<¸IÀ{Ñ SÔ SÐØ×*Ò*Ñ,Ô,Ð,Ø-×3Ò3Ñ5Ô5ˆàÐr6   c                 ó°  — t          j        t          | ¦  «        ¦  «        }t          j        t          | ¦  «        ¦  «        }t	          t          | ¦  «        ||¦  «         t          j        |¦  «        }t          j         	                    |¦  «        }| j
                             ¦   «         D ]\  }}|                     ||¦  «         Œt          |¦  «        S )z
    Create and return a RecursiveScriptClass instance from a Python object.

    Arguments:
        obj: A Python object.
    )r<   Ú_qualified_namer_   Ú'createResolutionCallbackForClassMethodsr5   r   Ú	get_classr(   r,   Ú_create_object_with_typerÂ   r\   ÚsetattrÚwrap_cpp_class)r.   Úqualified_class_namer/   Úclass_tyÚ
cpp_objectr?   rÜ   s          r4   Úcreate_script_classr0  
  sº   € õ )Ô8½¸c¹¼ÑCÔCÐÝ
Ô
?ÅÀSÁ	Ä	Ñ
JÔ
J€Cå¥ S¡	¤	¨3Ð0DÑEÔEÐEÝÔ#Ð$8Ñ9Ô9€Hå”×2Ò2°8Ñ<Ô<€Jà”|×)Ò)Ñ+Ô+ð (ð (‰ˆˆeØ×Ò˜4 Ñ'Ô'Ð'Ð'õ ˜*Ñ%Ô%Ð%r6   Fc                 ó  — t          | t          j        j        ¦  «        rt	          d¦  «        ‚t          | ¦  «         t          | |¦  «        }|s!t          ¦   «                              | ¦  «         t          | ||¦  «        S )aÜ  
    Create a new ScriptModule from an nn.Module.

    Args:
        nn_module:  The original Python nn.Module that we are creating a ScriptModule for.
        stubs_fn:  Lambda that takes an nn.Module and generates a list of ScriptMethodStubs to compile.
        share_types:  Whether to share underlying JIT types between modules (if possible).
            NOTE: Only set to False this when we cannot guarantee type sharing will work
                correctly. This only happens today for traced modules, where the same
                module can produce different traced methods depending on the inputs.
        is_tracing: Whether this function is called during tracing or scripting. If tracing,
                we don't need to do AttributeTypeIsSupportedChecker because all the unsupported
                attributes will be baked as constant in the tracing graph. In addition,
                this check significantly slows down the traced modules when the module size is big.
    z8Cannot script a RecursiveScriptModule (already compiled))
rC   r(   r)   r9   r±   Úcheck_module_initializedr·   r   ÚcheckÚcreate_script_module_impl)rD   Ústubs_fnrÓ   Ú
is_tracingrö   s        r4   Úcreate_script_moduler7     s|   € õ  �)�UœYÔ<Ñ=Ô=ð YÝÐWÑXÔXÐXÝ˜YÑ'Ô'Ð'Ý,¨Y¸ÑDÔD€MØð ;Ý'Ñ)Ô)×/Ò/°	Ñ:Ô:Ð:Ý$ Y°¸xÑHÔHÐHr6   c                 ó<  ‡ ‡‡‡‡— t           j                             ‰j        ¦  «        Š ‰‰ ¦  «        }t	          ‰ ¦  «        }t          ‰ ¦  «        \  }}t          ‰ ¦  «        Šd
ˆˆˆˆ ˆfd„}t           j        j         	                    ‰|¦  «        }‰t          j        vr`t          ‰||¦  «         t          ‰||¦  «         t           j                             ‰¦  «         t          j                             ‰¦  «         t!          |j                             ¦   «         ¦  «        D ]\  }	}
|
|j        |	<   Œt!          |j                             ¦   «         ¦  «        D ]\  }	}
|
|j        |	<   Œt-          ‰ t           j        j        t           j        j        t           j        j        f¦  «        r<d‰                     ¦   «         vr&|                     dt;          ‰ ¦  «        › d�¦  «         t-          ‰ t           j        j        ¦  «        r”d‰                     ¦   «         vr~t;          ‰                      ¦   «         ¦  «        rHt?          tA          ‰                      ¦   «         ¦  «        ¦  «        }|                     d|› d�¦  «         n|                     d	¦  «         |D ]z}|j!        €Œ
|j!        j"        }||j#         $                    ¦   «         j$        k    rŒ9‰ %                    |¦  «        } tM          j'        |j!        ¦  «        |¦  «        }||j(        |<   Œ{|D ]¡}|j#         $                    ¦   «         j$        }‰ %                    |j#         )                    ¦   «         j$        ¦  «        }|j#         *                    ¦   «         }|r‰ %                    |j$        ¦  «        nd}tW          |||¦  «        |j(        |<   Œ¢tY          ‰ ¦  «        D ]N}|‰v rŒt[          ‰ |d¦  «        }t]          j/        |¦  «        t\          j0        j1        u rte          |‰ |¦  «         ŒO|S )aR  
    Convert an nn.Module to a RecursiveScriptModule.

    Args:
        nn_module:  The original Python nn.Module that we are creating a ScriptModule for.
        concrete_type:  The fully initialized ConcreteType of the module.
        stubs_fn:  Lambda that takes an nn.Module and generates a list of ScriptMethodStubs to compile.
    rì   Nc                 ó  •— ‰	                      ¦   «         D ]P}t          ‰|¦  «        }t          |t          j        j        ¦  «        r|j        n|}‰
                     ||¦  «         ŒQ‰	                     ¦   «         D ]Ó\  }}t          ‰|¦  «        }t          |t          ¦  «        st          dt          |¦  «        › �¦  «        ‚|j        }t          |t          j        j        ¦  «        rt          ||¦  «        }n3t          |t          j        j        ¦  «        r|}nt#          ||‰¦  «        }‰
                     ||¦  «         || j        |<   ŒÔt'          ‰¦  «        D ]¢}|‰v rŒt          ‰|d ¦  «        }t)          j        |¦  «        rPt-          j        |¦  «        r<t          ‰|¦  «        j        }|                     | ¦  «        }t          | ||¦  «         Œ|‰	                     |¦  «        rt          | ||¦  «         Œ£‰	| _        d S )NzExpected Module but got )Úget_attributesrB   rC   r(   r)   r�   rÜ   r+  Úget_modulesr   r±   r_   Újit_typer,   ÚInterfaceTypeÚinterface_scriptr#  r4  r"   rH   r€   Úismethodr<   Úis_ignored_fnÚ__func__Ú__get__Úis_ignored_attributer"  )Úscript_moduler?   Ú
orig_valuerØ   Úmodule_typeÚscriptedrO   Úunbound_functionÚbound_methodrö   Ú
cpp_modulerÕ   rD   r5  s            €€€€€r4   Úinit_fnz*create_script_module_impl.<locals>.init_fnH  s6  ø€ ð "×0Ò0Ñ2Ô2ð 	1ð 	1ˆDÝ  ¨DÑ1Ô1ˆJõ ˜j­%¬)Ô*=Ñ>Ô>ð �
Ô Ð àð ð
 ×Ò˜t ZÑ0Ô0Ð0Ð0ð (5×'@Ò'@Ñ'BÔ'Bð 	4ð 	4Ñ#ˆDÐ#Ý  ¨DÑ1Ô1ˆJÝ˜j­&Ñ1Ô1ð TÝ$Ð%RÅÀZÑ@PÔ@PÐ%RÐ%RÑSÔSÐSØ+Ô4ˆKÝ˜+¥u¤xÔ'=Ñ>Ô>ð 	å+¨K¸ÑDÔD��Ý˜J­¬	Ô(>Ñ?Ô?ð Ø%��õ 5ØÐ 1°8ñô �ð ×Ò˜t XÑ.Ô.Ð.Ø+3ˆMÔ" 4Ñ(Ð(õ ˜	‘N”Nð 		3ð 		3ˆDØÐ)Ð)Ð)ØÝ˜9 d¨DÑ1Ô1ˆDÝÔ Ñ%Ô%ð 3­-Ô*EÀdÑ*KÔ*Kð 3Ý#*¨9°dÑ#;Ô#;Ô#DÐ Ø/×7Ò7¸ÑFÔF�Ý˜ t¨\Ñ:Ô:Ð:Ð:Ø×3Ò3°DÑ9Ô9ð 3Ý˜ t¨TÑ2Ô2Ð2øð (5ˆÔ$Ð$Ð$r6   Ú__len__zdef __len__(self):
   return ú
Ú__contains__z3def __contains__(self, key: str):
   return key in z2def __contains__(self, key: str):
   return False
rø   )3r(   r,   Ú_create_module_with_typer<  Úget_property_stubsÚget_hook_stubsrf   r)   r9   Ú
_constructr$  rë   r  r   Ú_run_emit_module_hookra   Ú	enumerateÚ_cÚ_get_forward_pre_hooksr   Ú_get_forward_hooksr   rC   r‹   r¥   r¦   r£   Ú_method_namesÚdefineÚlenÚkeysÚreprrt   r   r'   r   r?   Ú_get_methodÚ	functoolsÚwrapsrÂ   Úgetter_nameÚsetter_namerV   rH   rB   r<   rI   rJ   ÚCOPY_TO_SCRIPT_WRAPPERÚ!add_python_attr_to_scripted_model)rD   rö   r5  r
  r  r  r  rK  rD  ÚidxÚfnr[  Úmethod_stubr?   Úscript_methodÚwrapped_script_methodÚproperty_stubÚproperty_nameÚfgetra  ÚfsetrO   rJ  rÕ   s   ```                   @@r4   r4  r4  9  sS  øøøøø€ õ ”×2Ò2°=Ô3IÑJÔJ€JØ�8˜IÑ&Ô&€LÝ'¨	Ñ2Ô2€NÝ!/°	Ñ!:Ô!:Ñ€J�Ý/°	Ñ:Ô:Ðð/5ð /5ð /5ð /5ð /5ð /5ð /5ð /5ð /5ð /5õd ”IÔ3×>Ò>¸zÈ7ÑSÔS€Mð Õ/Ô@Ð@Ð@Ý0Ø˜<¨ñ	
ô 	
ð 	
õ
 	  ¨z¸>ÑJÔJÐJÝŒ×&Ò& zÑ2Ô2Ð2ÝÔ,×0Ò0°Ñ?Ô?Ð?õ ˜]Ô-×DÒDÑFÔFÑGÔGð 3ð 3‰ˆˆRØ02ˆÔ(¨Ñ-Ð-Ý˜]Ô-×@Ò@ÑBÔBÑCÔCð /ð /‰ˆˆRØ,.ˆÔ$ SÑ)Ð)õ 	Ø�œÔ+­U¬XÔ-@Å%Ä(ÔBUÐVñ	
ô 	
ðRð ˜Z×5Ò5Ñ7Ô7Ð7Ð7à×ÒÐP½cÀ)¹n¼nÐPÐPÐPÑQÔQÐQå�9�eœhÔ1Ñ2Ô2ð
Yà *×":Ò":Ñ"<Ô"<Ð<Ð<åˆy�~Š~ÑÔÑ Ô ð 	YÝ�˜YŸ^š^Ñ-Ô-Ñ.Ô.Ñ/Ô/ˆDØ× Ò ØOÀtÐOÐOÐOñô ð ð ð × Ò Ð!WÑXÔXÐXð $ð =ð =ˆØÔ&Ð.ð àÔ*Ô3ˆØ�;Ô#×(Ò(Ñ*Ô*Ô/Ò/Ð/ð Ø"×.Ò.¨tÑ4Ô4ˆð
 !M¥	¤°Ô0KÑ LÔ LØñ!
ô !
Ðð (=ˆÔ˜tÑ$Ð$ð (ð Tð TˆØ%Ô*×/Ò/Ñ1Ô1Ô6ˆØ×%Ò% mÔ&8×&DÒ&DÑ&FÔ&FÔ&KÑLÔLˆà#Ô(×4Ò4Ñ6Ô6ˆØ;FÐPˆz×%Ò% kÔ&6Ñ7Ô7Ð7ÈDˆÝ08¸ÈÈdÑ0SÔ0SˆÔ˜}Ñ-Ð-õ �I‘”ð Nð NˆØÐ%Ð%Ð%ØÝ�y $¨Ñ-Ô-ˆåÔ2°4Ñ8Ô8ÝÔ.ÔEðFð Fõ .¨m¸YÈÑMÔMÐMøàÐr6   c                 ó€   — t          | |d ¦  «        }|€dS t          t          j        j        |d ¦  «        }|€dS ||k    S )NF)rB   r(   r)   r9   )Úscript_modelrk   Úscript_attrÚdefault_attrs       r4   Úscript_model_defines_attrrq  ×  sJ   € Ý˜,¨¨dÑ3Ô3€KØÐØˆuÝ�5œ9Ô:¸DÀ$ÑGÔG€LØÐØˆuØ˜,Ò&Ð&r6   c                 óŒ   — t          ||¦  «        r1t          | |¦  «        r#t          | |t          ||¦  «        ¦  «         d S d S d S r&   )r¼   rq  r+  rB   )rn  Úorigrk   s      r4   rc  rc  á  s\   € Ýˆt�TÑÔð 9Õ8¸ÀtÑLÔLð 9Ý�˜d¥G¨D°$Ñ$7Ô$7Ñ8Ô8Ð8Ð8Ð8ð9ð 9ð 9ð 9r6   c                 óî  ‡— i }t          t          | ¦  «        ¦  «        D ]ÔŠ‰|v rŒt          | ‰d ¦  «        }t          |¦  «        sŒ(t	          |d¦  «        rœ|j        �•t          j        || j        ¦  «        }|€Œ\|j	        |v r't          t          j        d|j	        ¦  «        ¦  «        ‚ˆfd„t          t          |¦  «        ¦  «        D ¦   «         }t          t          ||¦  «        ¦  «        ||<   ŒÕ|S )Nr|   Úmethodc                 ó:   •— g | ]}‰d z   t          |¦  «        z   ‘ŒS )rŸ   )Ústr)rW   Úir?   s     €r4   rÿ   z,get_overload_annotations.<locals>.<listcomp>  s(   ø€ ÐPÐPÐP¨a�T˜D‘[¥3 q¡6¤6Ñ)ÐPÐPÐPr6   )rH   r_   rB   Úcallabler¼   r|   r<   Ú_get_overloaded_methodsÚ	__class__rA  r‘   Ú,get_overload_no_implementation_error_messageÚrangerZ  rt   Úzip)rM   rf   rÝ   rO   Úmethod_overloadsÚnamesr?   s         @r4   rÀ   rÀ   æ  s   ø€ à€Iå•D˜‘I”I‘”ð Að AˆØÐ)Ð)Ð)ØÝ�s˜D $Ñ'Ô'ˆÝ˜‰~Œ~ð 	Øõ �4˜Ñ&Ô&ð 	A¨4¬?Ð+FÝ,ÔDØ�c”mñ ô  Ðð  Ð'Øð Œ}Ð 0Ð0Ð0Ý"Ý!ÔNØ  $¤-ñô ñô ð ð QÐPÐPÐPµ5½Ð=MÑ9NÔ9NÑ3OÔ3OÐPÑPÔPˆEÝ"¥3 uÐ.>Ñ#?Ô#?Ñ@Ô@ˆI�d‰OøàÐr6   c                 ó¤   — i }|                       ¦   «         D ]8\  }}|j        }||vrg ||<   |D ] \  }}||                              |¦  «         Œ!Œ9|S r&   )r\   r'   rL   )Úoverload_infoÚoverload_name_mappingsÚorig_fnrÝ   Úoriginal_nameÚoverload_namer×   s          r4   r¿   r¿     s‰   € ð 46ÐØ+×1Ò1Ñ3Ô3ð Hð HÑˆ�ØÔ(ˆØÐ 6Ð6Ð6Ø46Ð" =Ñ1à )ð 	Hð 	HÑˆM˜1Ø" =Ô1×8Ò8¸ÑGÔGÐGÐGð	Hà!Ð!r6   c                 óà   — t           j        j                             | d t	          ¦   «         t          j        | ¦  «        ¦  «        }|€&t          j        | ¦  «        }t          d|› �¦  «        ‚d S )Nz>Must explicitly add type annotations to overloaded functions: )
r(   r)   r‡   Úget_signaturer   r€   r?  r<   r'  r‘   )r>   Ú	signatureÚ	qual_names      r4   Ú_check_no_signaturer‹    sq   € Ý”	Ô%×3Ò3Øˆd•J‘L”L¥'Ô"2°4Ñ"8Ô"8ñô €Ið ÐÝ!Ô1°$Ñ7Ô7ˆ	ÝØXÈYÐXÐXñ
ô 
ð 	
ð Ðr6   c           	      óž  — g }|                       ¦   «         D ]µ\  }}t          ||j        d¬¦  «        }|D ]–\  }}t          |¦  «         t          ||j        d¬¦  «        }t          j                             |                     ¦   «         ||¦  «        }t          j	        |¦  «        }	| 
                    t          |	||¦  «        ¦  «         Œ—Œ¶|S r8   )r\   r   r'   r‹  r(   r,   Ú_replace_overloaded_method_declÚdeclr<   r=   rL   r   )
r‚  Úoverload_stubsr„  rÝ   Úorig_astr†  Úoverload_fnÚover_astÚnew_astÚ_rcbs
             r4   Úmake_stubs_for_overloadsr•     sù   € Ø€NØ+×1Ò1Ñ3Ô3ð Pð PÑˆ�ÝØ�WÔ%Ð1Hð
ñ 
ô 
ˆð +4ð 		Pð 		PÑ&ˆM˜;Ý Ñ,Ô,Ð,Ý"Ø˜[Ô1Ð=Tðñ ô ˆHõ ”h×>Ò>Ø—’‘” ¨=ñô ˆGõ !ÔDÀWÑMÔMˆDØ×!Ò!Õ"2°4¸À+Ñ"NÔ"NÑOÔOÐOÐOð		Pð Ðr6   c           	      ó  — t          | t          j        j        ¦  «        st	          dt          | ¦  «        › �¦  «        ‚t          | d¦  «        s2t          dt          j        t          | ¦  «        ¦  «        › d�¦  «        ‚t          | d¦  «        sô| j	         
                    ¦   «         D ]`\  }}|�Yt          j        j                             |¦  «        r5t          dt          j        t          | ¦  «        ¦  «        › d|› d�¦  «        ‚Œa| j         
                    ¦   «         D ]b\  }}|�Yt          j        j                             |¦  «        r5t          dt          j        t          | ¦  «        ¦  «        › d|› d�¦  «        ‚Œad S d S )	NzExpected torch.nn.Module, got r   r—   z=' has not been initialized, did you forget to call 'super()'?Úremote_parametersz' has uninitialized parameters z'. Did you forget to run a forward pass?z' has uninitialized buffers )rC   r(   r‹   r   r±   r_   r¼   r‘   ro   r   r\   r›   Úis_lazyr   )rM   r?   ÚparamÚbufs       r4   r2  r2  3  s’  € Ý�c�5œ8œ?Ñ+Ô+ð KÝÐI½dÀ3¹i¼iÐIÐIÑJÔJÐJÝ�3˜Ñ&Ô&ð 
ÝØh•”�t C™yœyÑ)Ô)ÐhÐhÐhñ
ô 
ð 	
õ
 �3Ð+Ñ,Ô,ð 
Øœ?×0Ò0Ñ2Ô2ð 	ð 	‰KˆD�%ØÐ ¥U¤XÔ%7×%?Ò%?ÀÑ%FÔ%FÐ Ý"Ø�œ¥t¨C¡y¤yÑ1Ô1ÐÐÐRVÐÐÐñô ð øð œ×+Ò+Ñ-Ô-ð 	ð 	‰IˆD�#Øˆ¥5¤8Ô#5×#=Ò#=¸cÑ#BÔ#BˆÝ"Ø|�œ¥t¨C¡y¤yÑ1Ô1Ð|Ð|ÈtÐ|Ð|Ð|ñô ð øð
ð 
ð	ð 	r6   c                 óŒ  ‡ ‡— t          ‰ ¦  «         t          ‰ ¦  «        }g }t          ‰ d¦  «        rXt          j        ‰ j        ¦  «        s?t          ‰ j        dd¦  «        }t          t          j        j	        dd¦  «        }||k    rdg}g }t          ‰ ¦  «        D ]R}||v rŒt          ‰ |d¦  «        }t          j        |¦  «        t          j        j        u r|                     |¦  «         ŒS||z   }t          t          ‰ di ¦  «        ¦  «        Št!          ‰ |¦  «        }‰                     t%          |¦  «        ¦  «         t'          |¦  «        }	‰‰ _        ˆfd„}
t+          |
|¦  «        }t-          ¦   «         }g }|D ]1}||v rŒ|                     |¦  «         |                     |¦  «         Œ2ˆ fd„|D ¦   «         }|	|z   S )z–Implement the default rules for which methods should act as starting points for compilation.

    (TODO add a link when the rules are published).
    rŠ   rA  Nrž   c                 ó   •— | ‰vS r&   rU   )rE   rƒ  s    €r4   Úignore_overloadedz3infer_methods_to_compile.<locals>.ignore_overloadedo  s   ø€ ØÐ"8Ð8Ð8r6   c                 ó0   •— g | ]}t          ‰|¦  «        ‘ŒS rU   ©rF   ©rW   ru  rD   s     €r4   rÿ   z,infer_methods_to_compile.<locals>.<listcomp>~  s$   ø€ ÐTÐTÐT¸&Õ" 9¨fÑ5Ô5ÐTÐTÐTr6   )r2  rf   r¼   r<   r@  rŠ   rB   r(   r‹   r   rH   rI   rJ   rK   rL   rù   rÀ   r¾   r¿   r•  rž   Úfilterr`   ra   )rD   rÕ   ÚmethodsÚforward_funcÚmodule_forwardÚexportedr?   rO   r‚  r�  r�  Úfiltered_methodsÚuniquerÚuniqued_methodsrN   rƒ  s   `              @r4   Úinfer_methods_to_compiler©  I  s
  øø€ õ
 ˜YÑ'Ô'Ð'Ý/°	Ñ:Ô:Ðà€GÝˆy˜)Ñ$Ô$ð "­]Ô-HØÔñ.ô .ð "õ ˜yÔ0°*¸dÑCÔCˆÝ ¥¤¤°)¸TÑBÔBˆØ˜>Ò)Ð)Ø �kˆGà€HÝ�I‘”ð "ð "ˆØÐ%Ð%Ð%ØÝ�y $¨Ñ-Ô-ˆåÔ2°4Ñ8Ô8ÝÔ.Ô5ð6ð 6ð �OŠO˜DÑ!Ô!Ð!øà˜Ñ €Gå!¥'¨)°_ÀbÑ"IÔ"IÑJÔJÐÝ,¨YÐ8JÑKÔK€MØ×!Ò!Õ";¸MÑ"JÔ"JÑKÔKÐKÝ-¨mÑ<Ô<€Nà4€IÔð9ð 9ð 9ð 9ð 9õ Ð/°Ñ9Ô9Ðõ ™œ€GØ€OØ ð ð ˆØ�7ˆ?ˆ?ØØ×Ò˜tÑ$Ô$Ð$Ø�Š�DÑÔÐÐàTÐTÐTÐTÀOÐTÑTÔT€EØ˜EÑ!Ð!r6   c           	      óô  — t          | ¦  «         i }g }| j                             ¦   «         D ]–}|j        |v rYt	          |¦  «        t	          ||j                 ¦  «        k    r-t          d|j        › dt          | ¦  «        j        › d�¦  «        ‚n
|||j        <   |                     t          ||j        ¦  «        ¦  «         Œ—g }| j	                             ¦   «         D ]–}|j        |v rYt	          |¦  «        t	          ||j                 ¦  «        k    r-t          d|j        › dt          | ¦  «        j        › d�¦  «        ‚n
|||j        <   |                     t          ||j        ¦  «        ¦  «         Œ—||fS )z3Return forward hook and pre_hook ScriptModuleStubs.zHook 'z' on zV has at least two different python definitions. Please use unique names for all hooks.z
Pre-hook ')
r2  r   rÐ   r'   Úidr‘   r_   rL   r@   r   )rD   Úhook_mapr  rå   r  ræ   s         r4   rQ  rQ  ‚  s±  € å˜YÑ'Ô'Ð'Ø€Hà€JØÔ(×/Ò/Ñ1Ô1ð 
:ð 
:ˆØŒ=˜HÐ$Ð$Ý�$‰xŒx�2˜h t¤}Ô5Ñ6Ô6Ò6Ð6Ý"ð>˜Tœ]ð >ð >µ°i±´Ô1Ið >ð >ð >ñô ð ð 7ð '+ˆH�T”]Ñ#Ø×Ò�) D¨$¬-Ñ8Ô8Ñ9Ô9Ð9Ð9à€NØÔ0×7Ò7Ñ9Ô9ð 
Fð 
FˆØÔ Ð(Ð(Ý�(‰|Œ|�r (¨8Ô+<Ô"=Ñ>Ô>Ò>Ð>Ý"ð> Ô!2ð >ð >½¸i¹¼Ô9Qð >ð >ð >ñô ð ð ?ð +3ˆH�XÔ&Ñ'Ø×Ò�i¨°(Ô2CÑDÔDÑEÔEÐEÐEà�~Ð%Ð%r6   c                 óT  ‡— t          | ¦  «        }t          |d¬¦  «        }i Št          |¦  «        D ]f}t          ||d¦  «        }t	          |t
          ¦  «        r>|j        st          d|› d| j        › d�¦  «        ‚t          j
        |j        ¦  «        ‰|<   Œgˆfd„|D ¦   «         }|S )zjCreate property stubs for the properties of the module by creating method stubs for the getter and setter.r9   r:   Nz	Property z of z must have a getterc                 ój   •— g | ]/}t          ‰|                     ¦   «         j                 |¦  «        ‘Œ0S rU   )r   r?   )rW   r2   Úrcbss     €r4   rÿ   z&get_property_stubs.<locals>.<listcomp>´  s2   ø€ ÐQÐQÐQ¸#�\˜$˜sŸxšx™zœzœÔ/°Ñ5Ô5ÐQÐQÐQr6   )r_   r	   rH   rB   rC   rV   rk  r‘   r'   r<   r=   )rD   Ú	module_tyÚproperties_astsr?   rO   rN   r¯  s         @r4   rP  rP  ¤  sÍ   ø€ å�Y‘”€IÝ*¨9Ð@WÐXÑXÔX€OØ€Då�I‘”ð Vð VˆÝ�y $¨Ñ-Ô-ˆÝ�d�HÑ%Ô%ð 	VØ”9ð Ý"ØQ ÐQÐQ¨)Ô*<ÐQÐQÐQñô ð õ 'ÔJÈ4Ì9ÑUÔUˆD�‰JøàQÐQÐQÐQÀÐQÑQÔQ€EØ€Lr6   c                 óŽ   ‡ — t          |t          j        j        ¦  «        r|S t	          |¦  «         ˆ fd„}t          ||¦  «        S )a   
    Make a ScriptModule from an nn.Module, using the interface methods rule for determining which methods to compile.

    Args:
        mod_interface: the interface type that the module have
        nn_module:  The original Python nn.Module that we are creating a ScriptModule for.
    c                 óJ   •‡ — ˆ fd„‰                      ¦   «         D ¦   «         }|S )z•Rule to infer the methods from the interface type.

        It is used to know which methods need to act as starting points for compilation.
        c                 ó0   •— g | ]}t          ‰|¦  «        ‘ŒS rU   rŸ  r   s     €r4   rÿ   zPinterface_script.<locals>.infer_interface_methods_to_compile.<locals>.<listcomp>Ê  s3   ø€ ð 
ð 
ð 
àõ " )¨VÑ4Ô4ð
ð 
ð 
r6   )ÚgetMethodNames)rD   rN   Úmod_interfaces   ` €r4   Ú"infer_interface_methods_to_compilez<interface_script.<locals>.infer_interface_methods_to_compileÅ  s?   øø€ ð

ð 
ð 
ð 
à'×6Ò6Ñ8Ô8ð
ñ 
ô 
ˆð ˆr6   )rC   r(   r)   r#  r2  r7  )r¶  rD   r·  s   `  r4   r>  r>  ¸  s\   ø€ õ �)�UœYÔ3Ñ4Ô4ð ØÐå˜YÑ'Ô'Ð'ð	ð 	ð 	ð 	ð 	õ   	Ð+MÑNÔNÐNr6   c                 ó¢  — t          j        | ¦  «        rd S t          | t          j        j        ¦  «        rd S t          j        | ¦  «        s*t          j        | ¦  «        st          d| › d| › d�¦  «        ‚t          | d¦  «        r|                      ¦   «         n| } t          j        | ¦  «        }t          j                             | |¬¦  «        S )Nú`z|` is not a function. Recursive scripting only supports Python functions or methods currently.
Consider manually annotating `z` with @torch.jit.script.Ú__prepare_scriptable__)r”  )r<   r@  rC   r(   r‹   r   r€   rÈ   r?  r‘   r¼   rº  r=   r)   rÉ   )re  Úlocr/   s      r4   Útry_compile_fnr¼  Ó  sí   € ÝÔ" 2Ñ&Ô&ð àˆtå�"•e”h”oÑ&Ô&ð ð ˆtåÔ˜bÑ!Ô!ð 
­'Ô*:¸2Ñ*>Ô*>ð 
ÝðK�ð Kð Kà-/ðKð Kð Kñ
ô 
ð 	
õ )0°Ð4LÑ(MÔ(MÐ	Uˆ×	"Ò	"Ñ	$Ô	$Ð	$ÐSU€Bõ
 Ô
;¸BÑ
?Ô
?€CÝŒ9×Ò˜B SÐÑ)Ô)Ð)r6   c                 ó@   — t           j                             | ¦  «        S )z;Wrap this torch._C.Object in a Python RecursiveScriptClass.)r(   r)   ÚRecursiveScriptClass)Ú	cpp_classs    r4   r,  r,  ï  s   € åŒ9×)Ò)¨)Ñ4Ô4Ð4r6   c                 óT   — dd„}t           j        j                             | |¦  «        S )zYWrap this torch._C.ScriptModule in a Python ScriptModule, recursively for all submodules.rì   Nc                 ó  — t           j                             | j        ¦  «                             ¦   «         D ]#\  }}t          | |t          |¦  «        ¦  «         Œ$t           j        j                             | j         	                    ¦   «         ¦  «        | _
        t          | j                             ¦   «         ¦  «        D ]\  }}|| j        |<   Œt          | j                             ¦   «         ¦  «        D ]\  }}|| j        |<   Œd S r&   )r(   r,   r£   rU  r\   r+  Úwrap_cpp_modulerµ   r¶   Ú_typer"  rT  rV  r   rW  r   )rD  r?   rJ  rd  re  s        r4   rK  z wrap_cpp_module.<locals>.init_fn÷  s  € Ý %¤× 3Ò 3°MÔ4DÑ EÔ E× KÒ KÑ MÔ Mð 	Fð 	FÑˆD�*Ý�M 4­¸Ñ)DÔ)DÑEÔEÐEÐEÝ',¤xÔ'B×'PÒ'PØÔ×"Ò"Ñ$Ô$ñ(
ô (
ˆÔ$õ ! Ô!1×!HÒ!HÑ!JÔ!JÑKÔKð 	7ð 	7‰GˆC�Ø46ˆMÔ,¨SÑ1Ð1Ý  Ô!1×!DÒ!DÑ!FÔ!FÑGÔGð 	3ð 	3‰GˆC�Ø02ˆMÔ(¨Ñ-Ð-ð	3ð 	3r6   rø   )r(   r)   r9   rR  )rJ  rK  s     r4   rÂ  rÂ  ô  s3   € ð
3ð 
3ð 
3ð 
3õ Œ9Ô*×5Ò5°jÀ'ÑJÔJÐJr6   c                 óì   — t          j        |¦  «        rd S t          ||j        ¦  «        }t          j                              ¦   «         5  t          | |fd¦  «         d d d ¦  «         n# 1 swxY w Y   |S )NrU   )r<   r@  r@   r'   r(   Ú_disable_emit_hooksr  )rö   re  Ústubs      r4   Úcompile_unbound_methodrÇ    sÃ   € ÝÔ" 2Ñ&Ô&ð ØˆtÝ�R˜œÑ%Ô%€DÝ	Ô	×	0Ò	0Ñ	2Ô	2ð Mð Mõ 	1°ÀÀÈÑLÔLÐLðMð Mð Mñ Mô Mð Mð Mð Mð Mð Mð Møøøð Mð Mð Mð Mð €Ks   Á
A)Á)A-Á0A-c                 ó|   ‡ ‡— ˆ ˆfd„}‰|_         ‰j        |_        t          j                             ‰|¦  «         |S )zå
    Return a function that lazily binds `unbound_method` to a provided Module IValue, then invokes the method.

    We do this so that any Python shenanigans that
    will poison type sharing are impossible at compile time.
    c                 óŽ   •— dˆfd„}t           j        j                             | |¦  «        }t	          j        ‰|¦  «        } ||Ž S )Nrì   c                 ó   •— ‰j         }t          |¦  «        D ]8}t          ||d ¦  «        }t          j        |¦  «        rt          | ||¦  «         Œ9‰                     ¦   «                              ¦   «         D ]\  }}t          | ||¦  «         Œd S r&   )Úpy_classrH   rB   r<   r@  r+  Úget_constantsr\   )rD  Ú
orig_classr?   rO   rÜ   rö   s        €r4   rK  z7lazy_bind.<locals>.lazy_binding_method.<locals>.init_fn  s¥   ø€ Ø&Ô/ˆJõ ˜J™œð 7ð 7�Ý˜z¨4°Ñ6Ô6�Ý Ô.¨tÑ4Ô4ð 7Ý˜M¨4°Ñ6Ô6Ð6øð  -×:Ò:Ñ<Ô<×BÒBÑDÔDð 4ð 4‘��eÝ˜ t¨UÑ3Ô3Ð3Ð3ð4ð 4r6   rø   )r(   r)   r9   rR  ÚtypesÚ
MethodType)rJ  ÚargsrK  rD  ru  rö   Úunbound_methods        €€r4   Úlazy_binding_methodz&lazy_bind.<locals>.lazy_binding_method  s[   ø€ ð	4ð 	4ð 	4ð 	4ð 	4ð 	4õ œ	Ô7×BÒBÀ:ÈwÑWÔWˆÝÔ! .°-Ñ@Ô@ˆØˆv�tˆ}Ðr6   )Úoriginal_fnr'   r(   r<   Úcopy_torchscript_modifier)rö   rÑ  rÒ  s   `` r4   Ú	lazy_bindrÕ    sY   øø€ ðð ð ð ð ð ð( '5ÐÔ#Ø#1Ô#:ÐÔ Ý	Ô×1Ò1°.ÐBUÑVÔVÐVàÐr6   )Trø   )TF)LÚcollectionsr^  r€   rw   rÎ  rº   r(   Útorch._jit_internalr<   Útorch._sourcesr   Útorch.jit._builtinsr   Útorch.jit._checkr   Útorch.jit._stater   r   r   Útorch.jit.frontendr	   r
   r   r   Útorch.nnr   Ú
namedtupler   r   rÃ   r5   r@   rF   rP   rf   ÚboolÚfloatÚintrw  r_   ÚdeviceÚlayoutÚdtypeÚqschemerr   ri   r,   Ú_jit_tree_viewsÚSourceRangeFactoryr{   r�   rç   ré   r$  r  r   r·   r0  r7  r4  rq  rc  rÀ   r¿   r‹  r•  r2  r©  rQ  rP  r>  r¼  r,  rÂ  rÇ  rÕ  rU   r6   r4   ú<module>rè     sü  ðà Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø €€€Ø €€€Ø €€€à €€€Ø +Ð +Ð +Ð +Ð +Ð +Ø %Ð %Ð %Ð %Ð %Ð %Ø -Ð -Ð -Ð -Ð -Ð -Ø <Ð <Ð <Ð <Ð <Ð <Ø MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ Mðð ð ð ð ð ð ð ð ð ð ð ð Ð Ð Ð Ð Ð ð *�;Ô)ØÐJñô Ð ð &ˆ{Ô% nÐ6UÑVÔV€ðð ð Ð ð,ð ð ð,ð ,ð ,ð(ð (ð (ð
ð 
ð 
ð+ð +ð +ð, 	Ø	ØØØ€Dˆ�J„JØ	„LØ	„LØ	„KØ	„Mð
€ðð ð ð&	ð 	ð 	ð 	ð 	�E”HÔ,Ô?ñ 	ô 	ð 	ð$ð $ð $ð.v!ð v!ð v!ð v!ðrð ð ð ð ñ ô ð ð< (Ð'Ñ)Ô)Ð ðà	ðð ð ð ðTð Tð Tð Tðð ð ð ðD&ð &ð &ð,Ið Ið Ið Ið2Xð Xð Xð|'ð 'ð 'ð9ð 9ð 9ð 9ð
ð ð ðB"ð "ð "ð
ð 
ð 
ð 
ðð ð ð&ð ð ð ð,6"ð 6"ð 6"ðr&ð &ð &ðDð ð ð(Oð Oð Oð6*ð *ð *ð85ð 5ð 5ð
Kð Kð Kð$ð ð ð ð  ð  ð  ð  r6   