§
    ŠŠtjRO  ã                   ó   — 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Zd dlZd dl	m
Z
mZ d dlmZmZmZ d dl mZ d dlmZmZm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! d	dl"m#Z# erd	dl$m%Z% d	dl&m'Z'm(Z(  ej)        e*¦  «        Z+dej,        dedede-e.ef         fd„Z/e G d„ d¦  «        ¦   «         Z0 G d„ dej1        ¦  «        Z2 G d„ dej3        ¦  «        Z4e G d„ d¦  «        ¦   «         Z5de.de6fd„Z7e G d„ d ¦  «        ¦   «         Z8	 d.d!ed"e9e9ed#f         e-e.ef         f         d$e#d%e
ej:        j;        e<ej=                 ge!f         d&e>dz  de8fd'„Z?e G d(„ d)¦  «        ¦   «         Z@e G d*„ d+¦  «        ¦   «         ZAd!ejB        jC        d,e<e@         d$e#d%e
ej:        j;        e<ej=                 ge!f         deAf
d-„ZDdS )/é    N)ÚCallableÚSequence)ÚAbstractContextManagerÚ	ExitStackÚnullcontext)Ú	dataclass)ÚAnyÚOptionalÚTYPE_CHECKING)ÚGraphRuntimeEnv)Ú_graph_device_type)Ú
SystemInfoé   )Úconvert_frame)Ú&BundledAOTAutogradSerializableCallableÚSerializableCallable)ÚHooks)ÚGuardManagerWrapper)ÚSerializedCodeÚ
SourceInfoÚ	signatureÚargsÚkwargsÚreturnc                 óR   —  | j         |i |¤Ž}|                     ¦   «          |j        S ©N)ÚbindÚapply_defaultsÚ	arguments)r   r   r   Úbound_argumentss       úW/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torch/_dynamo/aot_compile.pyÚbind_localsr"   %   s5   € ð %�i”n dÐ5¨fÐ5Ð5€OØ×"Ò"Ñ$Ô$Ð$ØÔ$Ð$ó    c                   óÒ   — e Zd ZU ej        ed<   ed         ed<   eed<   eed<   e	ed<   e
j        ed<   eed<   d	ed
<   eed<   eed<    ej        ej        ¬¦  «        Zeed<   dd„ZdS )ÚCompileArtifactsr   r   Úguard_managerÚguards_stateÚ
backend_idÚcompiled_fnÚoriginal_codeÚruntime_envr   Úsource_infoÚdevice_typeÚbackend_name)Údefault_factoryÚsystem_infor   Nc                 ól   — t          j        ¦   «         }|                     | j        | j        ¦  «         d S r   )r   ÚcurrentÚcheck_compatibilityr0   r-   )ÚselfÚcurrent_systems     r!   r3   z$CompileArtifacts.check_compatibility;   s2   € Ý#Ô+Ñ-Ô-ˆØ×*Ò*¨4Ô+;¸TÔ=MÑNÔNÐNÐNÐNr#   ©r   N)Ú__name__Ú
__module__Ú__qualname__ÚinspectÚ	SignatureÚ__annotations__r
   ÚbytesÚstrr   ÚtypesÚCodeTyper   ÚdataclassesÚfieldr   r2   r0   r3   © r#   r!   r%   r%   -   sÓ   € € € € € € àÔ Ð Ð Ñ ØÐ1Ô2Ð2Ð2Ñ2ØÐÐÑØ€O€O�OØ%Ð%Ð%Ñ%Ø”>Ð!Ð!Ñ!Ø Ð Ð Ñ ØÐÐÑØÐÐÑØÐÐÑØ/˜kÔ/À
Ô@RÐSÑSÔS€K�ÐSÐSÑSðOð Oð Oð Oð Oð Or#   r%   c                   óŽ  ‡ — e Zd Zdeeef         dej        ddfˆ fd„Zdede	ez  dz  fd„Z
ededefd	„¦   «         Zed
ededej        fd„¦   «         Zededej        fd„¦   «         Zedddej        fd„¦   «         Zedej        dededeedf         dz  deej        df         dz  dej        fd„¦   «         Zdedefd„Zˆ xZS )ÚAOTCompilePicklerÚexternal_dataÚbufr   Nc                 ó¬   •— t          ¦   «                              |¦  «         || _        d„ |                     ¦   «         D ¦   «         | _        i | _        d S )Nc                 ó4   — i | ]\  }}t          |¦  «        |“ŒS rC   )Úid)Ú.0ÚkeyÚvalues      r!   ú
<dictcomp>z.AOTCompilePickler.__init__.<locals>.<dictcomp>D   s1   € ð '
ð '
ð '
Ù)˜s E�Bˆu‰IŒI�sð'
ð '
ð '
r#   )ÚsuperÚ__init__rF   ÚitemsÚid_mapÚerrors)r4   rF   rG   Ú	__class__s      €r!   rP   zAOTCompilePickler.__init__A   s\   ø€ Ý‰Œ×Ò˜ÑÔÐØ*ˆÔð'
ð '
Ø-:×-@Ò-@Ñ-BÔ-Bð'
ñ '
ô '
ˆŒð ˆŒˆˆr#   Úobjc                 óð   — t          |¦  «        | j        v r| j        t          |¦  «                 S t          |t          j        j        ¦  «        r&|| j        t          |¦  «        <   t          |¦  «        S d S r   )rJ   rR   Ú
isinstanceÚtorchÚnnÚModulerS   )r4   rU   s     r!   Úpersistent_idzAOTCompilePickler.persistent_idI   s`   € Ýˆc‰7Œ7�d”kÐ!Ð!Ø”;�r #™wœwÔ'Ð'Ý˜�UœXœ_Ñ-Ô-ð 	Ø#&ˆDŒK�˜3™œÑ Ý�c‘7”7ˆNà�4r#   Úvalc                 ód   ‡— dt           fˆfd„}|j        €t          d¦  «        ‚|j        d         S )Nr   c                  ó   •— ‰ S r   rC   )r\   s   €r!   Ú_z+AOTCompilePickler._unpickle_cell.<locals>._T   s   ø€ ØˆJr#   zclosure must not be Noner   )ÚobjectÚ__closure__ÚAssertionError)Úclsr\   r_   s    ` r!   Ú_unpickle_cellz AOTCompilePickler._unpickle_cellR   sN   ø€ ð	•6ð 	ð 	ð 	ð 	ð 	ð 	ð Œ=Ð Ý Ð!;Ñ<Ô<Ð<ØŒ}˜QÔÐr#   ÚfuncÚbasec                 ó,   — t          j        ||¦  «        S r   )r?   Ú
MethodType)rc   re   rf   s      r!   Ú_unpickle_bound_methodz(AOTCompilePickler._unpickle_bound_method[   s   € õ Ô  dÑ+Ô+Ð+r#   Únamec                 ó*   — t          j        |¦  «        S r   )Ú	importlibÚimport_module)rc   rj   s     r!   Ú_unpickle_modulez"AOTCompilePickler._unpickle_module`   s   € åÔ& tÑ,Ô,Ð,r#   Úserialized_coder   c                 ó.   — ddl m}  |j        |¦  «        S )Nr   ©r   )Útorch._dynamo.packager   Úto_code_object)rc   ro   r   s      r!   Ú_unpickle_codez AOTCompilePickler._unpickle_coded   s'   € à8Ð8Ð8Ð8Ð8Ð8à,ˆ~Ô,¨_Ñ=Ô=Ð=r#   ÚcodeÚmoduleÚqualnameÚargdefs.Úclosurec                 ód   — t          j        |¦  «        j        }t          j        |||||¦  «        S r   )rl   rm   Ú__dict__r?   ÚFunctionType)rc   ru   rv   rw   rx   ry   Ú	f_globalss          r!   Ú_unpickle_nested_functionz+AOTCompilePickler._unpickle_nested_functionj   s0   € õ Ô+¨FÑ3Ô3Ô<ˆ	ÝÔ! $¨	°8¸WÀgÑNÔNÐNr#   c                 ó  — t          |t           d„ d¦  «        j        d         ¦  «        ¦  «        rt          | ¦  «        j        |j        ffS t          j        |¦  «        r+ddlm} t          | ¦  «        j	         |j
        |¦  «        ffS t          j        |¦  «        rt          | ¦  «        j        |j        ffS t          j        |¦  «        r\	 |j        }|j        }t#          ||j        ¦  «        }t          j        |¦  «        r|j        }||urt          | ¦  «        j        ||ffS nQt          j        |¦  «        r=d|j        v r4t          | ¦  «        j        |j        |j        |j        |j        |j        ffS t2          S )Nc                 ó   ‡ — ˆ fd„S )Nc                  ó   •— ‰ S r   rC   ©Úxs   €r!   ú<lambda>zFAOTCompilePickler.reducer_override.<locals>.<lambda>.<locals>.<lambda>x   s   ø€ °1€ r#   rC   r‚   s   `r!   r„   z4AOTCompilePickler.reducer_override.<locals>.<lambda>x   s   ø€ ¨9¨9¨9¨9€ r#   r   rq   z<locals>)rW   Útypera   rd   Úcell_contentsr:   Úiscoderr   r   rt   Úfrom_code_objectÚismodulern   r7   ÚismethodÚ__func__Ú__self__Úgetattrri   Ú
isfunctionr9   r~   Ú__code__r8   Ú__defaults__ÚNotImplemented)r4   rU   r   re   Úmethod_selfÚ
inner_funcs         r!   Úreducer_overridez"AOTCompilePickler.reducer_overridew   s�  € Ý�c�4Ð!4Ð!4Ð!4°aÑ 8Ô 8Ô DÀQÔ GÑHÔHÑIÔIð 	Ý˜‘:”:Ô,¨sÔ/@Ð.BÐBÐBÝŒ^˜CÑ Ô ð 	Ø<Ð<Ð<Ð<Ð<Ð<å˜‘:”:Ô,Ð/N¨~Ô/NÈsÑ/SÔ/SÐ.UÐUÐUåÔ˜cÑ"Ô"ð 	Ý˜‘:”:Ô.°´°Ð?Ð?ÝÔ˜cÑ"Ô"ð 	ðð ”<ˆDØœ,ˆKÝ  ¨d¬mÑ<Ô<ˆJÝÔ 
Ñ+Ô+ð 1Ø'Ô0�
Ø˜:Ð%Ð%Ý˜D‘z”zÔ8¸4ÀÐ:MÐMÐMð &åÔ Ñ$Ô$ð 	Ø˜SÔ-Ð-Ð-Ý˜D‘z”zÔ;Ø”LØ”NØÔ$ØÔ$Ø”Oð>ð ð õ Ðr#   )r7   r8   r9   Údictr>   r`   ÚioÚBytesIOrP   Úintr[   Úclassmethodrd   r   r?   rh   ri   Ú
ModuleTypern   r@   rt   ÚtupleÚCellTyper|   r~   r	   r”   Ú__classcell__©rT   s   @r!   rE   rE   @   sú  ø€ € € € € ð d¨3°¨;Ô&7ð ¸b¼jð ÈTð ð ð ð ð ð ð ð ¨C°#©I¸Ñ,<ð ð ð ð ð ð  ð  ¨Fð  ð  ð  ñ „[ð ð ð,¨(ð ,¸&ð ,ÀUÔEUð ,ð ,ð ,ñ „[ð,ð ð- Cð -¨EÔ,<ð -ð -ð -ñ „[ð-ð ð>Ð-=ð >À%Ä.ð >ð >ð >ñ „[ð>ð
 ð	OàŒnð	Oð ð	Oð ð		Oð
 �v˜s�{Ô# dÑ*ð	Oð �u”~ sÐ*Ô+¨dÑ2ð	Oð 
Ô	ð	Oð 	Oð 	Oñ „[ð	Oð" Cð "¨Cð "ð "ð "ð "ð "ð "ð "ð "r#   rE   c                   óV   ‡ — e Zd Zdeeef         dej        defˆ fd„Zdedefd„Z	ˆ xZ
S )ÚAOTCompileUnpicklerrF   Úfiler   c                 óX   •— t          ¦   «                              |¦  «         || _        d S r   )rO   rP   rF   )r4   rF   r¡   rT   s      €r!   rP   zAOTCompileUnpickler.__init__�   s)   ø€ Ý‰Œ×Ò˜ÑÔÐØ*ˆÔÐÐr#   rL   c                 ób   — || j         vrt          d|› d| j         › �¦  «        ‚| j         |         S )Nz-Missing required external reference to data: zS. Please load AOT compiled function with `external_data=<external data dictionary>`)rF   ÚRuntimeError)r4   rL   s     r!   Úpersistent_loadz#AOTCompileUnpickler.persistent_load¡   sU   € Ø�dÔ(Ð(Ð(Ýð(Àð (ð (ð Ô%ð(ð (ñô ð ð Ô! #Ô&Ð&r#   )r7   r8   r9   r•   r>   r`   r–   r—   rP   r¥   r�   rž   s   @r!   r    r    œ   s   ø€ € € € € ð+ d¨3°¨;Ô&7ð +¸r¼zð +Èfð +ð +ð +ð +ð +ð +ð' 3ð '¨6ð 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'r#   r    c                   ó   — e Zd ZU eed<   dS )ÚAOTCompileSaveResultÚserialized_dataN)r7   r8   r9   r=   r<   rC   r#   r!   r§   r§   ¬   s   € € € € € € àÐÐÑÐÐr#   r§   Ú	file_pathÚdatac                 ó|  — t           j                             | ¦  «        pd}t          j        |dd¬¦  «        5 }|j        }|                     |¦  «         |                     ¦   «          t          j        | 	                    ¦   «         ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j
        || ¦  «         d S )Nú.FÚwb)ÚdirÚdeleteÚmode)ÚosÚpathÚdirnameÚtempfileÚNamedTemporaryFilerj   ÚwriteÚflushÚfsyncÚfilenoÚreplace)r©   rª   Údir_nameÚ	temp_fileÚ	temp_paths        r!   Úatomic_write_binaryr¾   ±   së   € ÝŒw�Š˜yÑ)Ô)Ð0¨S€Hå	Ô	$Ø˜U¨ð
ñ 
ô 
ð %à	Ø”Nˆ	Ø�Š˜ÑÔÐØ�ŠÑÔÐÝ
Œ�×!Ò!Ñ#Ô#Ñ$Ô$Ð$ð%ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %õ „Jˆy˜)Ñ$Ô$Ð$Ð$Ð$s   ¹ABÂB Â#B c            
       óv  — e Zd ZU eed<   dZeed<   dZee	e
f         dz  ed<   de
de
dee	e
f         fd	„Zdededefd
„Zdd„Zdededefd„Zdd„Z	 dde	dee	ef         dz  defd„Ze	 ddd dee	ef         dz  defd„¦   «         Ze	 	 ddedee	e
f         dz  dee	ef         dz  dd fd„¦   «         Zdd„ZdS )ÚAOTCompiledFunctionÚ
_artifactsTÚ_guard_check_enabledNÚ_extra_globalsr   r   r   c                 óp  — i }| j         j        }|j        rs|j        j        r/t          |j        ¦  «        t          |j        j        ¦  «        k    rt          d¦  «        ‚d„ t          |j        j        |j        ¦  «        D ¦   «         }|                     t          | j         j
        g|¢R i |¤Ž¦  «         |S )Nz,closure length must match co_freevars lengthc                 ó$   — i | ]\  }}||j         “ŒS rC   )r†   )rK   rj   Úcells      r!   rN   z8AOTCompiledFunction.prepare_f_locals.<locals>.<dictcomp>Í   s1   € ð ð ð á�D˜$ð �dÔ(ðð ð r#   )rÁ   r+   ry   ÚbytecodeÚco_freevarsÚlenrb   ÚzipÚupdater"   r   )r4   r   r   Úf_localsÚenvs        r!   Úprepare_f_localsz$AOTCompiledFunction.prepare_f_localsÅ   sË   € Ø&(ˆØŒoÔ)ˆØŒ;ð 	Ø”<Ô+ð U­s°3´;Ñ/?Ô/?Å3Ø”Ô(ñDô Dò 0ð 0õ %Ð%SÑTÔTÐTðð å"% c¤lÔ&>ÀÄÑ"LÔ"Lðñ ô ˆHð 	�Š� D¤OÔ$=ÐOÀÐOÐOÐOÈÐOÐOÑPÔPÐPØˆr#   c                 ó�   —  | j         |i |¤Ž}| j        j        €t          d¦  «        ‚| j        j                             |¦  «        S )Núguard_manager must not be None)rÎ   rÁ   r&   rb   Úcheck)r4   r   r   rÌ   s       r!   Úguard_checkzAOTCompiledFunction.guard_checkÔ   sL   € Ø(�4Ô(¨$Ð9°&Ð9Ð9ˆØŒ?Ô(Ð0Ý Ð!AÑBÔBÐBØŒÔ,×2Ò2°8Ñ<Ô<Ð<r#   c                 ód  — ddl m}m} | j                             ¦   «          | j        j                             | j        j        | j        j        | j	        ¬¦  «        | _
        | j        j        €B || j        j        ¦  «        } ||| j        j        | j
        j        ¦  «        | j        _        d S d S )Nr   )Úload_guard_managerÚload_guards_state)Úextra_globals)ÚpackagerÔ   rÕ   rÁ   r3   r+   Úforward_callabler(   r)   rÃ   Úfnr&   r'   r*   Ú__globals__)r4   rÔ   rÕ   r'   s       r!   Ú__post_init__z!AOTCompiledFunction.__post_init__Ú   s¿   € ØBÐBÐBÐBÐBÐBÐBÐBàŒ×+Ò+Ñ-Ô-Ð-à”/Ô-×>Ò>ØŒOÔ&ØŒOÔ'ØÔ-ð ?ñ 
ô 
ˆŒð Œ?Ô(Ð0Ø,Ð,¨T¬_Ô-IÑJÔJˆLØ,>Ð,>ØØ”Ô-Ø”Ô#ñ-ô -ˆDŒOÔ)Ð)Ð)ð 1Ð0r#   c                 ó  — | j         j        €t          d¦  «        ‚| j        rX | j        |i |¤ŽsK | j        |i |¤Ž}t          | j         j                             |¦  «        ¦  «        }t          d|› �¦  «        ‚ | j	        |i |¤ŽS )NrÐ   z#GuardManager check failed, reason: )
rÁ   r&   rb   rÂ   rÒ   rÎ   r>   Úcheck_verboser¤   rÙ   )r4   r   r   rÌ   Úreasons        r!   Ú__call__zAOTCompiledFunction.__call__í   s¨   € ØŒ?Ô(Ð0Ý Ð!AÑBÔBÐBØÔ$ð 	OÐ-=¨TÔ-=¸tÐ-NÀvÐ-NÐ-Nð 	OØ,�tÔ,¨dÐ=°fÐ=Ð=ˆHÝ˜œÔ6×DÒDÀXÑNÔNÑOÔOˆFÝÐMÀVÐMÐMÑNÔNÐNØˆtŒw˜Ð' Ð'Ð'Ð'r#   r   c                 ó   — | j         j        S r   )rÁ   r,   ©r4   s    r!   r,   zAOTCompiledFunction.source_infoö   s   € ØŒÔ*Ð*r#   r²   rF   c                 óv   — t          | ¦  «                             | |¦  «        }t          ||j        ¦  «         |S r   )r…   Ú	serializer¾   r¨   )r4   r²   rF   Úresults       r!   Úsave_compiled_functionz*AOTCompiledFunction.save_compiled_functionù   s7   € õ �d‘”×%Ò% d¨MÑ:Ô:ˆÝ˜D &Ô"8Ñ9Ô9Ð9Øˆr#   rÙ   c                 ó¬  — ddl m} |j        j                             ¦   «         }d |d<   t          j        |d          |j        |d         j        ¦  «        ¬¦  «        |d<   |d         }t          |¦  «        j
        t          |¦  «                             |¦  «        f|d<    |j        |d         ¦  «        |d<   t          j        ¦   «         }t          |pi |¦  «        }|                     |¦  «         |j        r7t#          dt%          |j                             ¦   «         ¦  «        › d	�¦  «        ‚t)          |                     ¦   «         ¬
¦  «        S )Nr   rq   r&   r+   ©rÇ   r)   r*   z+Failed to serialize the following objects: zI
Please mark these as external data by using `external_data={'key': ...}`)r¨   )rr   r   rÁ   r{   ÚcopyrA   rº   rˆ   rÇ   r…   Údeserialize_compile_artifactsÚserialize_compile_artifactsr–   r—   rE   ÚdumprS   r¤   ÚlistÚvaluesr§   Úgetvalue)rc   rÙ   rF   r   Ústater)   rG   Úpicklers           r!   rã   zAOTCompiledFunction.serialize   sh  € ð 	9Ð8Ð8Ð8Ð8Ð8à”Ô&×+Ò+Ñ-Ô-ˆØ!%ˆˆoÑÝ*Ô2Ø�-Ô Ø4�^Ô4°U¸=Ô5IÔ5RÑSÔSð 
ñ  
ô  
ˆˆmÑð ˜MÔ*ˆå�ÑÔÔ;Ý�ÑÔ×9Ò9¸+ÑFÔFð 
ˆˆmÑð "A Ô!@ÀÀÔAWÑ!XÔ!XˆˆoÑÝŒj‰lŒlˆÝ# MÐ$7°R¸Ñ=Ô=ˆØ�Š�UÑÔÐØŒ>ð 	Ýð[½dÀ7Ä>×CXÒCXÑCZÔCZÑ>[Ô>[ð [ð [ð [ñô ð õ $°C·L²L±N´NÐCÑCÔCÐCr#   rª   r}   Úexternal_closure_datac                 óT  — ddl m} t          j        |¦  «        }|                     d¦  «         t          |pi |¦  «        }|                     ¦   «         }|                     ¦   «          t          j	        |d          |j
        |d         j        ¦  «        ¬¦  «        |d<   |d         \  }}	t          j        j                             d¬¦  «        5   ||	¦  «        |d<   d d d ¦  «         n# 1 swxY w Y    |j
        |d         ¦  «        |d<   t!          d
i |¤Ž}
 | |
|¬	¦  «        S )Nr   rq   r+   rç   r)   T)Úenable_autograd_for_aotr*   )rÃ   rC   )rr   r   r–   r—   Úseekr    ÚloadÚcloserA   rº   rs   rÇ   rX   Ú	_inductorÚconfigÚpatchr%   )rc   rª   r}   rñ   r   ÚfÚ	unpicklerrï   ÚdeserializerÚcompiled_fn_stateÚ	artifactss              r!   ÚdeserializezAOTCompiledFunction.deserialize  sŽ  € ð 	9Ð8Ð8Ð8Ð8Ð8åŒJ�tÑÔˆØ	�Šˆq‰	Œ	ˆ	Ý'Ð(=Ð(CÀÀQÑGÔGˆ	Ø—’Ñ Ô ˆØ	�Š‰	Œ	ˆ	Ý*Ô2Ø�-Ô Ø2�^Ô2°5¸Ô3GÔ3PÑQÔQð 
ñ  
ô  
ˆˆmÑð +0°Ô*>Ñ'ˆÐ'ÝŒ_Ô#×)Ò)À$Ð)ÑGÔGð 	Cð 	CØ#/ <Ð0AÑ#BÔ#BˆE�-Ñ ð	Cð 	Cð 	Cñ 	Cô 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cøøøð 	Cð 	Cð 	Cð 	Cà!> Ô!>¸uÀ_Ô?UÑ!VÔ!VˆˆoÑå$Ð-Ð- uÐ-Ð-ˆ	Øˆs�9¨YÐ7Ñ7Ô7Ð7s   ÃC-Ã-C1Ã4C1c                 ó   — d| _         d S )NF)rÂ   rá   s    r!   Údisable_guard_checkz'AOTCompiledFunction.disable_guard_check6  s   € Ø$)ˆÔ!Ð!Ð!r#   r6   )r   r   r   )NN)r7   r8   r9   r%   r<   rÂ   ÚboolrÃ   r•   r>   r`   rÎ   r	   rÒ   rÛ   rß   r,   r§   rå   r™   rã   r=   rÿ   r  rC   r#   r!   rÀ   rÀ   ¿   s  € € € € € € à Ð Ð Ñ Ø!%Ð˜$Ð%Ð%Ñ%Ø/3€N�D˜˜f˜Ô%¨Ñ,Ð3Ð3Ñ3ð fð ¸ð À4ÈÈVÈÔCTð ð ð ð ð= ð =°ð =¸ð =ð =ð =ð =ðð ð ð ð&(˜cð (¨Sð (°Sð (ð (ð (ð (ð+ð +ð +ð +ð AEðð ØðØ(,¨S°#¨X¬¸Ñ(=ðà	ðð ð ð ð àOSðDð DØ&ðDØ7;¸CÀ¸H´~ÈÑ7LðDà	ðDð Dð Dñ „[ðDð6 ð /3Ø7;ð	8ð 8àð8ð ˜˜V˜Ô$ tÑ+ð8ð  $ C¨ Hœ~°Ñ4ð	8ð
 
ð8ð 8ð 8ñ „[ð8ð2*ð *ð *ð *ð *ð *r#   rÀ   ÚmodelÚexample_inputs.ÚhooksÚbackendÚdynamicc                 óD	  ‡— ddl mŠ ddlm} ddlm}m} ddlm} ddl	m
}	 |\  }
}t          ¦   «         }|�ddlm}  ||¦  «        } |¦   «         5   |d¦  «        5  t          j        j                             d	¬
¦  «        5  |5  |5  t%          j        | |
|¦  «        }|j        }|j        €t-          d¦  «        ‚|j        s2ddlm} dt4          |         dt4          t6                   fˆfd„}||_        t%          j        | ¦  «        \  }}|j        }|€t-          d¦  «        ‚|j        |j        _         tC          |j        j"        ¦  «        }|j#        j$        |j        j$        urt-          d¦  «        ‚ |	|j#        ¦  «        }|j%        |_%        t          j&         '                    |¦  «        5  t          j        j                             d	d	d	d	d	dœ¦  «        5   ||j        |j(        ¦  «        }tS          |t          j*        ¦  «        sUtW          |d¦  «        r.tS          |j,        t          j-        j.        j/        j0        ¦  «        stW          |d¦  «        r|j1        �te          |¦  «        }d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   tS          |tf          ¦  «        sAtW          |d¦  «        r|j,        }n|}ti          dtk          |¦  «        › d�d|› d�z   ¦  «        ‚tm          ¦   «         }|j7        r'| 8                    | 9                    ¦   «         ¦  «         |5  | :                    |j;        |d	d	¬¦  «        }d d d ¦  «         n# 1 swxY w Y   |j<        €t-          d¦  «        ‚ |t{          ¦   «         ¬¦  «        }|j>        D ]}| ?                    |¦  «         Œt�          t%          jA        |¦  «        |jB        |j<        |j        ||j;        | C                    ¦   «         ||t‰          |dd¦  «        ¬¦
  «
        }t‹          ||jF        ¬¦  «        }d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |S ) Nr   )ÚCheckFunctionManager)r   )Údynamo_timedÚget_metrics_context)Ú#torch_function_mode_stack_state_mgr)ÚTracingContext)Úset_enable_dynamicÚfullgraph_captureT)Ústrict_autograd_cachezoutput_graph must not be None)ÚGuardFilterEntryÚguard_entriesr   c                 ó    •— ˆfd„| D ¦   «         S )Nc                 ó<   •— g | ]}|j         p|j        ‰j        v  ‘ŒS rC   )Ú	is_globalÚ
guard_typeÚ%UNSUPPORTED_SERIALIZATION_GUARD_TYPES)rK   Úgr	  s     €r!   ú
<listcomp>zFaot_compile_fullgraph.<locals>.new_guard_filter_fn.<locals>.<listcomp>c  sI   ø€ ð 	ð 	ð 	ð ð œKð ZØ œ|Ø3ÔYð Zðð	ð 	ð 	r#   rC   )r  r	  s    €r!   Únew_guard_filter_fnz2aot_compile_fullgraph.<locals>.new_guard_filter_fn`  s0   ø€ ð	ð 	ð 	ð 	ð +ð	ñ 	ô 	ð 	r#   zbackend_input must not be Nonez>fake_mode.shape_env must be the same as output_graph.shape_env)r  Úbypass_autograd_cache_keyÚbundled_autograd_cacheÚ force_non_lazy_backward_loweringÚforce_autograd_cacheÚcompiler_fnrã   zCompiled function type z (produced zfrom backend z*) does not implement SerializableCallable.)r  ÚsaveÚstrict_errorzguards_state must not be None)Úinlined_sourcesÚcompiler_nameÚunknown)
r   r&   r'   r(   r)   r*   r+   r,   r-   r.   )rÁ   rÃ   )GÚtorch._dynamo.guardsr	  rr   r   Útorch._dynamo.utilsr
  r  Ú&torch._dynamo.variables.torch_functionr  Útorch._guardsr  r   Útorch._dynamo.eval_framer  rX   Ú
_functorchrø   rù   r   r  Úgraph_capture_outputÚoutput_graphrb   Úguard_filter_fnÚtorch._dynamo.typesr  r   r  Úget_traced_fnÚbackend_inputr(   Úgraph_moduleÚ_backend_idr   ÚgraphÚ	fake_modeÚ	shape_envÚtensor_to_contextÚ_guardsÚtracingr  rW   Ú_TorchCompileInductorWrapperÚhasattrr  Ú_dynamoÚbackendsÚcommonÚAotAutogradrã   r   r   r¤   r…   r   ÚstackÚenter_contextÚtemp_restore_stackÚbuild_guardsr�   r'   ÚsetÚtraced_codeÚadd_coder%   Ú_get_signaturer&   Úget_runtime_envr�   rÀ   rÚ   ) r  r  r  r  r  r   r
  r  r  r  r   r   Údynamic_ctxr  Úcapture_outputr+  r  r  rÙ   r_   r0  r-   Útracing_contextr)   r  Úbuild_guards_ctxÚcheck_fnr,   rD  rþ   Úaot_compiled_fnr	  s                                   @r!   Úaot_compile_fullgraphrN  :  s  ø€ ð :Ð9Ð9Ð9Ð9Ð9Ø0Ð0Ð0Ð0Ð0Ð0ØEÐEÐEÐEÐEÐEÐEÐEðð ð ð ð ð ð -Ð,Ð,Ð,Ð,Ð,à!�L€Dˆ&å‘-”-€KØÐØ?Ð?Ð?Ð?Ð?Ð?à(Ð(¨Ñ1Ô1ˆð 	ÐÑÔð{
ð {
àˆÐ(Ñ)Ô)ð{
ð {
õ 	ÔÔ×%Ò%¸DÐ%ÑAÔAð{
ð {
ð 	ð	{
ð {
ð
 	,ð{
ð {
õ 'Ô8¸ÀÀfÑMÔMˆØ-ÔBÐØÔ,Ð4Ý Ð!@ÑAÔAÐAàÔ$ð 	8Ø<Ð<Ð<Ð<Ð<Ð<ðÝ'Ð(8Ô9ðå�$”ðð ð ð ð ð ð %8ˆEÔ!åÔ+¨EÑ2Ô2‰ˆˆAà&Ô4ˆØÐ Ý Ð!AÑBÔBÐBØ1>Ô1IˆÔ"Ô.Ý(¨Ô)CÔ)IÑJÔJˆàÔ#Ô-Ø'Ô4Ô>ð?ð ?õ !ØPñô ð ð )˜.¨Ô)@ÑAÔAˆØ,9Ô,KˆÔ)åŒM×!Ò! /Ñ2Ô2ð	Rð 	RåÔÔ#×)Ò)à-1Ø15Ø.2Ø8<Ø,0ðð ñô ð	Rð 	Rð "˜'ØÔ*¨MÔ,Hñô ˆKõ ˜7¥EÔ$FÑGÔGðRõ ˜G ]Ñ3Ô3ðRõ #ØÔ+­U¬]Ô-CÔ-JÔ-Vñô ð	Rõ ˜K¨Ñ5Ô5ðRð $Ô-Ð9õ EÀ[ÑQÔQ�ð?	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õB ˜+Õ';Ñ<Ô<ð 	Ý�w Ñ.Ô.ð &Ø%Ô1��à%�ÝØH­$¨{Ñ*;Ô*;ÐHÐHÐHØY +ÐYÐYÐYñZñô ð õ %™;œ;ÐØ.Ô4ð 	Ø×*Ò*Ø3×FÒFÑHÔHñô ð ð ð 	ð 	Ø+×8Ò8Ø” 5¨tÀ$ð 9ñ ô ˆHð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð
 Ô Ð(Ý Ð!@ÑAÔAÐAà �jµ±´Ð7Ñ7Ô7ˆØ/Ô;ð 	.ð 	.ˆKØ× Ò  Ñ-Ô-Ð-Ð-å$Ý#Ô2°2Ñ6Ô6Ø"Ô0Ø!Ô.Ø$Ô/Ø#Øœ+Ø,×<Ò<Ñ>Ô>Ø#Ø#Ý  ¨/¸9ÑEÔEð
ñ 
ô 
ˆ	õ .Ø °´ð
ñ 
ô 
ˆðs{
ð {
ð {
ñ {
ô {
ð {
ð {
ð {
ð {
ð {
ð {
øøøð {
ð {
ð {
ð {
ð {
ð {
ð {
ñ {
ô {
ð {
ð {
ð {
ð {
ð {
ð {
øøøð {
ð {
ð {
ð {
ð {
ð {
ð {
ñ {
ô {
ð {
ð {
ð {
ð {
ð {
ð {
øøøð {
ð {
ð {
ð {
ð {
ð {
ð {
ñ {
ô {
ð {
ð {
ð {
ð {
ð {
ð {
øøøð {
ð {
ð {
ð {
ð {
ð {
ð {
ñ {
ô {
ð {
ð {
ð {
ð {
ð {
ð {
øøøð {
ð {
ð {
ð {
ðz Ðs  ÁRÁ&Q>ÂQ'ÂQ	Â
D(P9Æ2+JÇBI>É2JÉ>JÊJÊJÊJÊ	P9ÊJÊP9ÊJÊBP9Ì4MÍP9ÍM#Í#P9Í&M#Í'CP9Ð-Q	Ð9P=Ð=Q	Ñ P=ÑQ	ÑQ'ÑQÑQ'ÑQÑQ'ÑQ>Ñ'Q+Ñ+Q>Ñ.Q+Ñ/Q>Ñ2RÑ>R	ÒRÒR	ÒRÒRÒRc                   óf   — e Zd ZU dZee         ed<   eeef         ed<   e	e
e                  ed<   dS )Ú
ModelInputa%  
    WIP type: represents a single model input
    Which consists of a tuple of arguments and a set of contexts in which to run the model.

    For each ModelInput, we'll compile one full graph of the model, and then use the guards generated
    to dispatch between the compiled graphs.


    r   r   ÚcontextsN)r7   r8   r9   Ú__doc__r›   r	   r<   r•   r>   rì   r   rC   r#   r!   rP  rP  Ñ  sY   € € € € € € ðð ð �Œ*ÐÐÑØ��c�ŒNÐÐÑØÐ)¨#Ô.Ô/Ð/Ð/Ñ/Ð/Ð/r#   rP  c                   óœ   — e Zd ZU ej        j        ed<   ee         ed<   de	de	de	fd„Z
defd„Zedej        j        dedd fd	„¦   «         Zd
S )ÚAOTCompiledModelr  Úcompiled_resultsr   r   r   c                 ó    — | j         D ]+} |j        | j        g|¢R i |¤Žr || j        g|¢R i |¤Žc S Œ, | j         d         | j        g|¢R i |¤ŽS )Nr   )rU  rÒ   r  )r4   r   r   rä   s       r!   rß   zAOTCompiledModel.__call__é  s”   € ØÔ+ð 	;ð 	;ˆFØ!ˆvÔ! $¤*Ð>¨tÐ>Ð>Ð>°vÐ>Ð>ð ;Ø�v˜dœjÐ:¨4Ð:Ð:Ð:°6Ð:Ð:Ð:Ð:Ð:ð;ð (ˆtÔ$ QÔ'¨¬
ÐD°TÐDÐDÐD¸VÐDÐDÐDr#   c                 ó¦   — g }| j         D ]4}|                     t                               |¦  «        j        ¦  «         Œ5t          j        |¦  «        S r   )rU  ÚappendrÀ   rã   r¨   ÚpickleÚdumps)r4   rª   rä   s      r!   rã   zAOTCompiledModel.serializeð  sR   € ØˆØÔ+ð 	Oð 	OˆFØ�KŠKÕ+×5Ò5°fÑ=Ô=ÔMÑNÔNÐNÐNÝŒ|˜DÑ!Ô!Ð!r#   rª   c                 ó†  — ddl m} ddlm}m} t          j        |¦  «        }g }|D ]�} | |t          j        i ¦  «        ¦  «        ¦  «        5   |¦   «         5  | 	                    t                               |¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   Œ� | ||¦  «        S )Nr   )r  )Úcompile_contextÚCompileContext)r&  r  r(  r\  r]  rY  Úloadsr   Úget_compile_idrX  rÀ   rÿ   )	rc   r  rª   r  r\  r]  ÚresultsrU  rä   s	            r!   rÿ   zAOTCompiledModel.deserializeö  s�  € à;Ð;Ð;Ð;Ð;Ð;ØAÐAÐAÐAÐAÐAÐAÐAå%œ|¨DÑ1Ô1ˆØÐØð 	Qð 	QˆFà�  ­}Ô/KÈBÑ/OÔ/OÑ PÔ PÑQÔQðQð Qà#Ð#Ñ%Ô%ðQð Qð !×'Ò'Õ(;×(GÒ(GÈÑ(OÔ(OÑPÔPÐPð	Qð Qð Qñ Qô Qð Qð Qð Qð Qð Qð Qøøøð Qð Qð Qð Qð Qð Qð Qñ Qô Qð Qð Qð Qð Qð Qð Qøøøð Qð Qð Qð Qøð
 ˆs�5Ð*Ñ+Ô+Ð+s6   ÁB+Á.BÂB+ÂBÂB+ÂBÂB+Â+B/	Â2B/	N)r7   r8   r9   rX   rY   rZ   r<   rì   rÀ   r	   rß   r=   rã   r™   rÿ   rC   r#   r!   rT  rT  â  s¿   € € € € € € ð Œ8Œ?ÐÐÑØÐ.Ô/Ð/Ð/Ñ/ðE˜cð E¨Sð E°Sð Eð Eð Eð Eð"˜5ð "ð "ð "ð "ð ð, ¤¤ð ,°uð ,ÐASð ,ð ,ð ,ñ „[ð,ð ,ð ,r#   rT  Úinputsc                 ó  ‡ ‡‡— dt           dt          fˆˆˆ fd„}g }|D ];}t                               d|¦  «         |                      ||¦  «        ¦  «         Œ<t          |¦  «        dk    rt          d¦  «        ‚t          ‰ |¦  «        S )zi
    Compiles a single nn.Module with any number of inputs, and returns a compiled forward function.
    Úmodel_inputr   c                 óâ   •— | j         | j        f}‰j        }t          ¦   «         5 }| j        D ]}|                     |¦  «         Œt          ||‰‰¬¦  «        cd d d ¦  «         S # 1 swxY w Y   d S )N)r  r  )r   r   Úforwardr   rQ  r@  rN  )rc  r  Úorig_forwardr?  Úctxr  r  r  s        €€€r!   Úcompile_single_graphz0aot_compile_module.<locals>.compile_single_graph  sÌ   ø€ Ø%Ô*¨KÔ,>Ð?ˆØ”}ˆÝ‰[Œ[ð 	˜EØ"Ô+ð )ð )�Ø×#Ò# CÑ(Ô(Ð(Ð(Ý(ØØØØð	ñ ô ð	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ¥2A$Á$A(Á+A(zCompiling input %s..r   z%Expected at least one compiled result)rP  rÀ   ÚlogÚinforX  rÉ   rb   rT  )r  ra  r  r  rh  rU  rc  s   ` ``   r!   Úaot_compile_modulerk    sÁ   øøø€ ð­*ð Õ9Lð ð ð ð ð ð ð ð ð ÐØð Cð CˆÝ�ŠÐ'¨Ñ5Ô5Ð5Ø×ÒÐ 4Ð 4°[Ñ AÔ AÑBÔBÐBÐBå
ÐÑÔ Ò!Ð!ÝÐDÑEÔEÐEå˜EÐ#3Ñ4Ô4Ð4r#   r   )ErA   rl   r:   r–   Úloggingr±   rY  r´   r?   Úcollections.abcr   r   Ú
contextlibr   r   r   r   Útypingr	   r
   r   rX   Útorch.fxÚtorch._dynamo.convert_framer   Útorch._dynamo.graph_utilsr   rr   r   Ú r   Úaot_compile_typesr   r   r  r   Úguardsr   r×   r   r   Ú	getLoggerr7   ri  r;   r•   r>   r"   r%   ÚPicklerrE   Ú	Unpicklerr    r§   r=   r¾   rÀ   r›   ÚfxÚGraphModulerì   ÚTensorr  rN  rP  rT  rY   rZ   rk  rC   r#   r!   ú<module>r|     s†  ðØ Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø 	€	€	€	Ø €€€Ø 	€	€	€	Ø €€€Ø €€€Ø €€€Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EØ !Ð !Ð !Ð !Ð !Ð !Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /à €€€Ø €€€Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,à Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð Ð Ð Ð Ð Ð ð ð 4Ø+Ð+Ð+Ð+Ð+Ð+Ø3Ð3Ð3Ð3Ð3Ð3Ð3Ð3ð €gÔ˜Ñ!Ô!€ð%ØÔ ð%Ø),ð%Ø8;ð%à	ˆ#ˆsˆ(„^ð%ð %ð %ð %ð ðOð Oð Oð Oð Oñ Oô Oñ „ðOð$Yð Yð Yð Yð Y˜œñ Yô Yð Yðx'ð 'ð 'ð 'ð '˜&Ô*ñ 'ô 'ð 'ð  ðð ð ð ð ñ ô ñ „ðð% 3ð %¨eð %ð %ð %ð %ð ðw*ð w*ð w*ð w*ð w*ñ w*ô w*ñ „ðw*ð~  ðTð TØðTà˜%  S œ/¨4°°S°¬>Ð9Ô:ðTð ðTð �u”xÔ+¨T°%´,Ô-?Ð@ÐBVÐVÔWð	Tð
 �D‰[ðTð ðTð Tð Tð Tðn ð0ð 0ð 0ð 0ð 0ñ 0ô 0ñ „ð0ð  ð ,ð  ,ð  ,ð  ,ð  ,ñ  ,ô  ,ñ „ð ,ðF 5ØŒ8Œ?ð 5à�Ôð 5ð ð 5ð �u”xÔ+¨T°%´,Ô-?Ð@ÐBVÐVÔWð	 5ð
 ð 5ð  5ð  5ð  5ð  5ð  5r#   