Ë
    g^(hº$ ã                   ó  — U 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	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 d dlmZmZ d dlmZ d dlmZmZmZmZmZmZmZ d dlmZ d dl Z d dl!Z!d dl"m#c m$Z% d dl&m'Z' d d	l(m)Z) d d
l*m+Z+ d dl,m-Z-m.Z. d dl/m0Z0 d dl1m2Z3 d dl4m5Z5m6Z6 d dl7m8Z8 d dl9m:Z:m;Z; d dl<m=Z= ddl>m?Z? ddl@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z`maZambZbmcZcmdZdmeZemfZfmgZgmhZhmiZimjZjmkZkmlZlmmZmmnZnmoZompZpmqZqmrZr ddlsmtZt g d¢Zu e	jì                  ew«      Zx G d„ dey«      Zzde{eef   fd„Z|ee-e}e!jÔ                  e~e!jÐ                  ee!jÈ                  e%jŠ                  f   Z€dZ�dZ‚i e!�j                  ea�j                  “e!�j
                  ea�j                  “e!�j                  ea�j                  “e!�j                  ea�j                  “e!�j                  ea�j                  “e!�j                  ea�j                  “e!�j                  ea�j                   “e!�j"                  ea�j$                  “e!�j&                  ea�j(                  “e!�j*                  ea�j,                  “e!�j.                  ea�j0                  “e!�j2                  ea�j4                  “e!jþ                  ea�j6                  “e!�j8                  ea�j:                  “e!�j<                  ea�j>                  “e!�j@                  ea�jB                  “Z¢ e|e¢«      Z£e!�jH                  eU�jJ                  e!�jL                  eU�jN                  e!�jP                  eU�jR                  e!�jT                  eU�jV                  e!�jX                  eU�jZ                  e!�j\                  eU�j\                  e!�j^                  eU�j`                  iZ± e|e±«      Z²e!�jf                  eW�jh                  e!�jj                  eW�jl                  e!�jn                  eW�jp                  e!�jr                  eW�jt                  iZ» e|e»«      Z¼e�jz                  e�j|                  e�j~                  e�j€                  e�j‚                  e�j„                  e�j†                  e�jˆ                  e
�jŠ                  e!�jŒ                  e�jŽ                  e�j�                  e�j’                  e�j”                  e�j–                  e�j˜                  e!�jš                  e!�jœ                  e!�jž                  e!�j                   e!�j¢                  e!�j¤                  e�j¦                  e�j¨                  hZÕ eÖd„ eÕD «       «      rJ ‚e G d„ d«      «       Z×e G d „ d!«      «       ZØdeFd"e!�j²                  fd#„ZÚd$ee!jÔ                  e!jÈ                  e!jÐ                  e �j¶                  f   fd%„ZÜd$ee}e!jÔ                  f   d"ejfd&„ZÝd$ee~e!jÐ                  f   d"ehfd'„ZÞd$eee!jÈ                  f   d"edfd(„Zßd)e!�jÀ                  d"emfd*„Zádaâed+   eãd,<   d-e-fd.„Zäd/eåd0ed"e-fd1„Zæe�fd2ee   d3e}d"eåfd4„Zçd5ee{eèef   eéed6f   eåf   fd7„Zêd8e �j¶                  d9eèd"ee}   fd:„Zëd8ee}   d"e �j¶                  fd;„Zìd<e �jÚ                  d=e;fd>„Zîd?e{e �jÚ                  e=f   d"e{eèe`f   fd@„ZïdA„ Zðe G dB„ dC«      «       Zñ G dD„ dEeò«      Zóe G dF„ dGeó¬H«      «       Zôe G dI„ dJeó¬H«      «       Zõe G dK„ d+eó¬H«      «       Zöe G dL„ dMeó¬H«      «       Z÷ G dN„ dOe�jð                  «      ZùdP„ ZúdQed"eåfdR„Zûde�fdSe%jŽ                  dTee{eèe}f      d3e}d"e×fdU„ZüdV„ Zý	 dgdWdXœd2e×dYee{eèe}f      d"e%jŽ                  fdZ„Zþd"eéeJe{eèeèf   f   fd[„Zÿdgd\eGd]e�e eè      d"eGfd^„�Z G d_„ d`«      �Zdaeòe   dbeò�e   fdc„�Zdd„ �Zi �Ze{eòe   eò�e   f   eãde<   i �Ze{eèeò�e   f   eãdf<   y)hé    N)ÚOrderedDictÚ
namedtuple)Úcontextmanager)Ú	dataclassÚfield)ÚEnum)Ú	AnnotatedÚAnyÚCallableÚcastÚfinalÚOptionalÚUnion)ÚIterator)Úload_verifier)Ú&_enable_graph_inputs_of_type_nn_module)ÚFakeScriptObject)Ú
FakeTensorÚFakeTensorMode)Úsymbolic_shapes)Ú_pytree)Útreespec_dumpsÚtreespec_loads)Úint_oo)Ú
prefix_strÚSymT)ÚValueRangesé   )Úremove_proxy_from_state_dicté   )2ÚArgumentÚArgumentKindÚBufferMutationSpecÚConstantValueÚCustomObjArgumentÚDeviceÚExportedProgramÚGradientToParameterSpecÚGradientToUserInputSpecÚGraphÚGraphArgumentÚGraphModuleÚGraphSignatureÚ	InputSpecÚInputToBufferSpecÚInputToConstantInputSpecÚInputToCustomObjSpecÚInputTokenSpecÚInputToParameterSpecÚInputToTensorConstantSpecÚLayoutÚLossOutputSpecÚMemoryFormatÚModuleCallEntryÚModuleCallSignatureÚNamedArgumentÚNamedTupleDefÚNodeÚOptionalTensorArgumentÚ
OutputSpecÚOutputTokenSpecÚRangeConstraintÚ
ScalarTypeÚSCHEMA_VERSIONÚSchemaVersionÚSymBoolÚSymBoolArgumentÚSymExprÚSymExprHintÚSymFloatÚSymFloatArgumentÚSymIntÚSymIntArgumentÚTensorArgumentÚ
TensorMetaÚTokenArgumentÚTREESPEC_VERSIONÚUserInputMutationSpecÚUserInputSpecÚUserOutputSpec)Ú_Union)Ú	serializeÚGraphModuleSerializerÚExportedProgramSerializerÚGraphModuleDeserializerÚExportedProgramDeserializerc                   ó   — e Zd Zy)ÚSerializeErrorN)Ú__name__Ú
__module__Ú__qualname__© ó    ú[/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/torch/_export/serde/serialize.pyrZ   rZ   r   s   „ Ør_   rZ   Údc                 ój   — | j                  «       D ��ci c]  \  }}|j                  |“Œ c}}S c c}}w ©N)ÚitemsÚvalue)ra   ÚkÚvs      r`   Ú_reverse_maprh   v   s(   € Ø#$§7¡7£9×-™4˜1˜aˆA�G‰G�Q‰JÓ-Ð-ùÓ-s   ”/ú;c              #   ód   K  — | ](  }t        |t        j                  j                  «      –— Œ* y ­wrc   )Ú
isinstanceÚtorchÚ_opsÚ
OpOverload)Ú.0Úops     r`   ú	<genexpr>rq   Í   s!   è ø€ ÒH¸Œz˜"œeŸj™j×3Ñ3×4ÑHùó   ‚.0c                   ó6   — e Zd ZU eed<   eed<   eed<   eed<   y)ÚSerializedArtifactÚexported_programÚ
state_dictÚ	constantsÚexample_inputsN)r[   r\   r]   ÚbytesÚ__annotations__r^   r_   r`   rt   rt   Ï   s   … àÓØÓØÓØÔr_   rt   c                   ó6   — e Zd ZU eed<   eed<   eed<   eed<   y)Ú_SerializedProgramru   rv   rw   rx   N)r[   r\   r]   r'   rz   ry   r^   r_   r`   r|   r|   ×   s   … à%Ó%ØÓØÓØÔr_   r|   Úreturnc                 ó°   — | j                   € t        j                  | j                  ¬«      S t        j                  | j                  | j                   ¬«      S )N)Útype©r   Úindex)r�   rl   Údevicer   )ra   s    r`   Údeserialize_devicerƒ   ß   s7   € Ø‡w�w€Ü�|‰| §¡Ô(Ð(Ü�<‰<˜QŸV™V¨1¯7©7Ô3Ð3r_   Úsc                 óò   — t        | t        j                  t        j                  t        j                  f«      r| j
                  j                  } t        j                  j                  j                  | «      S rc   )rk   rl   rJ   rD   rH   ÚnodeÚexprÚsympyÚprintingÚreprÚsrepr©r„   s    r`   Ú_print_sympyr�   å   sG   € Ü�!”e—l‘l¤E§M¡M´5·>±>ÐBÔCØ�F‰F�K‰KˆÜ�>‰>×Ñ×$Ñ$ QÓ'Ð'r_   c                 óv  — t        | t        j                  t        j                  t
        f«      rðt        j                  | «      rt        j                  t        | «      ¬«      S t        | t        j                  t        j                  f«      sJ ‚| j                  j                  €(t        j                  t        t        | «      «      ¬«      S t        j                  t        t        | «      t        j                  | j                  j                  ¬«      ¬«      ¬«      S t        d| › dt        | «      › d�«      ‚)N©Úas_int©Úas_expr©Úhintz,SymInt should be either symbol or int, got `ú` of type `ú`)rk   rl   rJ   rˆ   ÚSymbolÚintr   Úis_concrete_intÚcreater†   r”   rF   r�   rG   rZ   r   rŒ   s    r`   Úserialize_sym_intr›   ë   sÛ   € Ü�!”e—l‘l¤E§L¡L´#Ð6Ô7Ü×*Ñ*¨1Ô-Ü—=‘=¬¨A«Ô/Ð/ä˜a¤%§,¡,´·±Ð!=Ô>Ð>Ð>Ø�v‰v�{‰{Ð"Ü—}‘}¬W´\À!³_Ó-EÔFÐFä—}‘}Ü#Ü$ Q›Ü(×/Ñ/°q·v±v·{±{ÔCôôð ô Ø:¸1¸#¸[ÌÈaËÈ	ÐQRÐSó
ð 	
r_   c                 óv  — t        | t        j                  t        j                  t
        f«      rðt        j                  | «      rt        j                  t        | «      ¬«      S t        | t        j                  t        j                  f«      sJ ‚| j                  j                  €(t        j                  t        t        | «      «      ¬«      S t        j                  t        t        | «      t        j                  | j                  j                  ¬«      ¬«      ¬«      S t        d| › dt        | «      › d�«      ‚)N©Úas_floatr‘   r“   z0SymFloat should be either symbol or float, got `r•   r–   )rk   rl   rH   rˆ   r—   Úfloatr   Úis_concrete_floatrš   r†   r”   rF   r�   rG   rZ   r   rŒ   s    r`   Úserialize_sym_floatr¡   ÿ   sÜ   € Ü�!”e—n‘n¤e§l¡l´EÐ:Ô;Ü×,Ñ,¨QÔ/Ü—?‘?¬E°!«HÔ5Ð5ä˜a¤%§.¡.´%·,±,Ð!?Ô@Ð@Ð@Ø�v‰v�{‰{Ð"Ü—‘¬w´|ÀA³Ó/GÔHÐHä—‘Ü#Ü$ Q›Ü(×/Ñ/¸¿¹¿¹ÔEôôð ô Ø>¸q¸cÀÌTÐRSËWÈIÐUVÐWó
ð 	
r_   c                 ó2  — t        | t        j                  t        f«      r]t	        j
                  | «      rt        j                  t        | «      ¬«      S t        j                  t        t        | «      ¬«      ¬«      S t        d| › dt        | «      › d�«      ‚)N©Úas_bool)Úexpr_strr‘   z.SymBool should be either symbol or bool, got `r•   r–   )rk   rl   rD   Úboolr   Úis_concrete_boolrš   rF   r�   rZ   r   rŒ   s    r`   Úserialize_sym_boolr¨     sz   € Ü�!”e—m‘m¤TÐ*Ô+Ü×+Ñ+¨AÔ.Ü—>‘>¬$¨q«'Ô2Ð2ä—>‘>Ü¬°a«Ô9ôð ô Ø<¸Q¸C¸{Ì4ÐPQË7È)ÐSTÐUó
ð 	
r_   Útc                 ó–  — t        t        | j                     | j                  D �cg c]  }t	        |«      ‘Œ c}| j
                  t        | j                  j                  | j                  j                  ¬«      | j                  «       D �cg c]  }t	        |«      ‘Œ c}t	        d«      t        | j                     ¬«      S c c}w c c}w )z.
    Extract a TensorMeta describing `t`.
    r€   r   )ÚdtypeÚsizesÚrequires_gradr‚   ÚstridesÚstorage_offsetÚlayout)rM   Ú_TORCH_TO_SERIALIZE_DTYPEr«   Úshaper›   r­   r&   r‚   r   r�   ÚstrideÚ_TORCH_TO_SERIALIZE_LAYOUTr°   )r©   r„   s     r`   Úserialize_tensor_metarµ   !  sŒ   € ô Ü'¨¯©Ñ0Ø-.¯W©WÖ5¨Ô  Õ#Ò5Ø—o‘oÜ˜1Ÿ8™8Ÿ=™=°·±·±Ô?Ø/0¯x©x«zÖ:¨!Ô" 1Õ%Ò:Ü(¨Ó+Ü)¨!¯(©(Ñ3ôð ùâ5ùò ;s   ¦C
ÂCrW   Ú_CURRENT_DESERIALIZERÚfake_tensorc                 óÚ   — t        | t        j                  j                  «      }t	        | «      }t        j                  t        |«      t        ¬«      j                  d«      }t        ||ffS )N©Úclsúutf-8)rk   rl   ÚnnÚ	Parameterrµ   ÚjsonÚdumpsÚ_dataclass_to_dictÚEnumEncoderÚencodeÚ_reconstruct_fake_tensor)r·   Úis_parameterÚtensor_metaÚtensor_meta_bytess       r`   Ú_reduce_fake_tensorrÇ   3  sY   € Ü˜k¬5¯8©8×+=Ñ+=Ó>€LÜ'¨Ó4€KÜŸ
™
Ü˜;Ó'¬[ôç�fˆWƒoð ô $Ð&7¸Ð%FÐFÐFr_   Úserialized_tensor_metarÄ   c                 óô   — t        j                  | j                  d«      «      }t        t        |«      }t
        €J d«       ‚t
        j                  |«      }|rt        j                  j                  |«      }|S )Nr»   z)Need access to current deserializer state)
r¾   ÚloadsÚdecodeÚ_dict_to_dataclassrM   r¶   Údeserialize_tensor_metarl   r¼   r½   )rÈ   rÄ   Újson_tensor_metarÅ   r·   s        r`   rÃ   rÃ   <  sq   € ô —z‘zÐ"8×"?Ñ"?ÀÓ"HÓIÐÜ$¤ZÐ1AÓB€Kô 	Ð)ð3à2ó3Ø)ä'×?Ñ?ÀÓL€KÙÜ—h‘h×(Ñ(¨Ó5ˆØÐr_   ÚartifactÚpickle_protocolc                 óV  — | €yt         t        j                  vsJ d«       ‚	 t        j                  t         t        «       t        j                  «       }t        j                  | ||¬«       |j                  «       t        j                  t         = S # t        j                  t         = w xY w)Nr_   z0Refusing to stomp on existing FakeTensor reducer)rÐ   )
r   ÚcopyregÚdispatch_tableÚpicklerÇ   ÚioÚBytesIOrl   ÚsaveÚgetvalue)rÏ   rÐ   Úbuffers      r`   Úserialize_torch_artifactrÚ   L  sƒ   € ØÐØô 	œ'×0Ñ0Ñ0ð:à9ó:Ø0ð/Ü�‰”zÔ#6Ô7Ü—‘“ˆô 	�
‰
�8˜V°_ÕEØ�‰Ó ä×"Ñ"¤:Ñ.øŒG×"Ñ"¤:Ñ.ús   ¢AB ÂB(Ú
serialized.c                 ó   — t        | t        t        f«      r| S t        | «      dk(  ri S t	        j
                  | «      }|j                  d«       t        j                  |d¬«      }t        |t        t        f«      sJ ‚|S )Nr   F)Úweights_only)	rk   ÚdictÚtupleÚlenrÕ   rÖ   Úseekrl   Úload)rÛ   rÙ   rÏ   s      r`   Údeserialize_torch_artifactrã   b  si   € Ü�*œt¤U˜mÔ,ØÐÜ
ˆ:ƒ˜!ÒØˆ	Ü�Z‰Z˜
Ó#€FØ
‡K�K�„Nä�z‰z˜&¨uÔ5€HÜ�h¤¬ Ô.Ð.Ð.Ø€Or_   ÚvalÚadjustc                 óz  — | t         j                  t        fv ry | t         j                   t         fv ry t        | t         j                  «      rt        | «      S t        j                  dt        | «      | |«       |dk(  rt        j                  | «      S |dk(  rt        j                  | «      S t        d|› �«      ‚)NztExport constraints cannot be non-integer expressions. Found type %s, and value %s. We will attempt to %s this value.ÚfloorÚceilzGot invalid adjustment )rˆ   Úoor   rk   ÚIntegerr˜   ÚlogÚwarningr   Úmathrç   rè   ÚRuntimeError)rä   rå   s     r`   Ú_sympy_int_to_intrï   o  s¤   € à
Œu�x‰xœÐ Ñ ØØ
”—‘ˆyœ6˜'Ð"Ñ"ØÜ�#”u—}‘}Ô%Ü�3‹xˆô ‡K�Kð	ä˜C“y # vôð �ÒÜ�z‰z˜#‹ÐØ	�6Ò	Ü�y‰y˜‹~ÐäÐ4°V°HÐ=Ó>Ð>r_   c                 óœ   — | €|S | t         j                  k(  rt        S | t         j                   k(  rt         S t        j                  | «      S rc   )rí   Úinfr   rˆ   rê   )rä   Údefaults     r`   Ú_int_to_sympy_intró   ‡  s@   € à
€{ØˆØ
Œd�h‰h‚ÜˆØ
Œt�x‰xˆiÒÜˆwˆÜ�=‰=˜ÓÐr_   ÚsymÚsym_typec                 óP   — t        t        | «      t        t        |   «      d  «      S rc   )r˜   Ústrrà   r   )rô   rõ   s     r`   Ú_symbol_indexrø   ’  s#   € ÜŒs�3‹xœœJ xÑ0Ó1Ð2Ð3Ó4Ð4r_   Úrange_constraintsc                 óÌ   — | j                  «       D ��ci c]C  \  }}t        |«      t        t        |j                  d«      t        |j
                  d«      «      “ŒE c}}S c c}}w )Nrè   rç   )rd   r÷   r@   rï   ÚlowerÚupper)rù   rf   rg   s      r`   Úserialize_range_constraintsrý   –  s_   € ð &×+Ñ+Ó-÷ñ
 ˆAˆqô	 	ˆA‹”Ü˜aŸg™g vÓ.Ü˜aŸg™g wÓ/ó
ñ 	
óð ùó s   ”AA c                 óô   — t        | t        j                  j                  «      r| j                  S t        | «      t        v r!t        t        | «         j                  | «      S t        dt        | «      › �«      ‚)NzCannot find schema for )	rk   rl   rm   rn   Ú_schemar   Ú_serialization_registryÚ	op_schemarî   )Útargets    r`   Ú_get_schema_from_targetr  ¢  s^   € Ü�&œ%Ÿ*™*×/Ñ/Ô0Ø�~‰~ÐÜ	ˆf‹Ô0Ñ	0Ü&¤t¨F£|Ñ4×>Ñ>¸vÓFÐFÜ
Ð0´°f³°Ð?Ó
@Ð@r_   c                   ó@  — e Zd ZU  ee¬«      Zee   ed<    ee¬«      Zee   ed<    ee¬«      Z	ee
   ed<    ee¬«      Zeeef   ed<    ee¬«      Zeeef   ed<    ee¬«      Zeeef   ed<    ee¬«      Zeeef   ed<   d	Zeed
<    ee¬«      Zeeef   ed<   y)Ú
GraphState)Údefault_factoryÚinputsÚoutputsÚnodesÚtensor_valuesÚsym_int_valuesÚsym_bool_valuesÚsym_float_valuesFÚis_single_tensor_returnÚcustom_obj_valuesN)r[   r\   r]   r   Úlistr  r!   rz   r  r	  r<   rÞ   r
  r÷   rM   r  rJ   r  rD   r  rH   r  r¦   r  r%   r^   r_   r`   r  r  ®  sÂ   … á"°4Ô8€FˆD�‰NÓ8Ù#°DÔ9€GˆT�(‰^Ó9Ù¨dÔ3€Eˆ4�‰:Ó3Ù+0ÀÔ+F€M�4˜˜Z˜Ñ(ÓFÙ(-¸dÔ(C€N�D˜˜f˜Ñ%ÓCÙ*/ÀÔ*E€O�T˜#˜w˜,Ñ'ÓEÙ,1À$Ô,GÐ�d˜3 ˜=Ñ)ÓGØ$)Ð˜TÓ)Ù6;ÈDÔ6QÐ�t˜CÐ!2Ð2Ñ3ÔQr_   r  c                   ó   — e Zd Zd„ Zy)ÚFinalc                 ó¤   — |D ]+  }t        |t        «      sŒt        d|j                  › d�«      ‚ t        j                  | ||t        |«      «      S )Nztype 'z ' is not an acceptable base type)rk   r  Ú	TypeErrorr[   r   Ú__new__rÞ   )ÚmetaclsÚnameÚbasesÚ	classdictÚbs        r`   r  zFinal.__new__¼  sQ   € Øò 	WˆAÜ˜!œUÕ#Ü &¨¯©¨Ð4TÐ UÓVÐVð	Wô �|‰|˜G T¨5´$°y³/ÓBÐBr_   N)r[   r\   r]   r  r^   r_   r`   r  r  »  s   „ óCr_   r  c                   óª  — e Zd Zdej                  deej                     fd„Zed„ «       Z	de
j                  j                  fd„Zde
j                  j                  fd„Zdefd	„Zde
j                  j                  fd
„Zd„ Zdee
j                  j                     fd„Zdefd„Zde
j                  j                  deeef   fd„Zdej0                  defd„Zdee   fd„Z	 d6dedee   fd„Zdee   fd„Zdefd„Z defd„Z!defd„Z"defd„Z#	 d6dee   de$fd„Z%de&fd„Z'de(fd„Z)de*fd„Z+de(fd„Z,d ejZ                  de-fd!„Z.d ej^                  de/fd"„Z0d#ej                  de1fd$„Z2d%ejf                  de$fd&„Z4d'„ Z5d(ejl                  de6fd)„Z7deej                     dee   fd*„Z8de
j                  j                  dee$   fd+„Z9de
j                  j                  dee$   fd,„Z:d-ed.ede$fd/„Z;de
j                  j                  dee&   fd0„Z<d1e
j                  jz                  de>fd2„Z?d3eeef   fd4„Z@d1e
j                  jz                  de=fd5„ZAy)7rU   Úgraph_signatureÚmodule_call_graphc                 óh   — t        «       | _        || _        || _        i | _        i | _        i | _        y rc   )r  Úgraph_stater  r  Úcustom_objsÚduplicate_getitem_nodesÚtreespec_namedtuple_fields)Úselfr  r  s      r`   Ú__init__zGraphModuleSerializer.__init__Å  s6   € ô
 &›<ˆÔØ.ˆÔØ!2ˆÔØ=?ˆÔØ79ˆÔ$ØDFˆÕ'r_   c              #   ór   K  — | j                   }t        «       | _         	 d –— || _         y # || _         w xY w­wrc   )r  r  ©r#  Úsaveds     r`   Úsave_graph_statez&GraphModuleSerializer.save_graph_stateÑ  s3   è ø€ à× Ñ ˆÜ%›<ˆÔð	%Ûà$ˆDÕø˜uˆDÕüs   ‚7Ÿ+ £7«	4´7r†   c           
      ó   — |j                   dk(  sJ ‚|j                  d   }t        j                  d|j                  |«       t        |t        j                  «      r2t        j                  | j                  |j                  |«      ¬«      }�nLt        |t        j                  «      r2t        j                  | j                  |j                  |«      ¬«      }�n t        |t        j                  «      rt        d«      ‚t        |t        t         t"        t$        t'        d «      f«      r| j)                  |«      }nŸt        |t*        j,                  «      rj|j.                  }t        j                  t-        |j                  |¬«      ¬«      }| j1                  |«      | j2                  j4                  |j                  <   nt        d	|j                  d   › �«      ‚| j2                  j6                  j9                  |«       y )
NÚplaceholderrä   z[handle_placeholder] %s: %s©Ú	as_tensor©Ú
as_sym_intz,SymFloat graph input is not implemented yet.©r  Ú	class_fqn©Úas_custom_objz Unimplemented graph input type: )rp   Úmetarë   Údebugr  rk   rl   ÚTensorr!   rš   Úserialize_tensor_outputrJ   Úserialize_sym_int_outputrH   ÚAssertionErrorr˜   r¦   r÷   rŸ   r   Úserialize_inputÚepr%   r0  Úserialize_script_obj_metar  r  r  Úappend)r#  r†   rä   Úgraph_inputr0  s        r`   Úhandle_placeholderz(GraphModuleSerializer.handle_placeholderÚ  st  € Ø�w‰w˜-Ò'Ð'Ð'Ø�i‰i˜ÑˆÜ�	‰	Ð/°·±¸CÔ@Ü�cœ5Ÿ<™<Ô(Ü"Ÿ/™/°D×4PÑ4PÐQU×QZÑQZÐ\_Ó4`ÔaŠKÜ˜œUŸ\™\Ô*Ü"Ÿ/™/°T×5RÑ5RÐSW×S\ÑS\Ð^aÓ5bÔcŠKÜ˜œUŸ^™^Ô,Ü Ð!OÓPÐPÜ˜œc¤4¬¬e´T¸$³ZÐ@ÔAØ×.Ñ.¨sÓ3‰KÜ˜œR×1Ñ1Ô2ØŸ™ˆIÜ"Ÿ/™/Ü/°T·Y±YÈ)ÔTôˆKð ×.Ñ.¨sÓ3ð ×Ñ×.Ñ.¨t¯y©yÒ9ô !Ð#CÀDÇIÁIÈeÑDTÐCUÐ!VÓWÐWØ×Ñ×Ñ×&Ñ& {Õ3r_   c                 ó  — |j                   dk(  sJ ‚t        |j                  «      dk(  sJ d«       ‚|j                  d   }t        j	                  d|j
                  |«       t        |t        j                  j                  «      r3d| j                  _        | j                  |«      g| j                  _        y t        |t        t        f«      sJ ‚|D �cg c]  }| j                  |«      ‘Œ c}| j                  _        y c c}w )NÚoutputr    z"FX.Node's args should have one argr   z[handle_output] %s: %sT)rp   rà   Úargsrë   r4  r  rk   rl   Úfxr<   r  r  r9  r  rß   r  )r#  r†   Ú	node_argsÚargs       r`   Úhandle_outputz#GraphModuleSerializer.handle_outputò  sÉ   € Ø�w‰w˜(Ò"Ð"Ð"Ü�4—9‘9‹~ Ò"ÐHÐ$HÓHÐ"Ø—I‘I˜a‘Lˆ	Ü�	‰	Ð*¨D¯I©I°yÔAÜ�i¤§¡§¡Ô/à7;ˆD×ÑÔ4Ø(,×(<Ñ(<¸YÓ(GÐ'HˆD×ÑÕ$ä˜i¬%´¨Ô7Ð7Ð7ØMVÖ'WÀc¨×(<Ñ(<¸SÕ(AÒ'WˆD×ÑÕ$ùÒ'Ws   ÃC?r}   c                 óì   — t        |t        «      r|S |j                  j                  d«      r-|j                  j	                  dd«      }|› d|j
                  › �S |j                  › d|j
                  › �S )Nz
torch._opsz	torch.opsú.)rk   r÷   r\   Ú
startswithÚreplacer[   )r#  r  Úmodules      r`   Úserialize_operatorz(GraphModuleSerializer.serialize_operatorÿ  sr   € Ü�fœcÔ"ØˆMØ×Ñ×)Ñ)¨,Ô7ð ×&Ñ&×.Ñ.¨|¸[ÓIˆFØ�X˜Q˜vŸ™Ð/Ð0Ð0à×'Ñ'Ð(¨¨&¯/©/Ð):Ð;Ð;r_   c           	      ó^
  ‡ — |j                   dk(  sJ ‚|j                  j                  d«      }t        j	                  d|j
                  |j                  |j                  |j                  |«       |j                  t        j                  u ry |j                  t        v s;|�Ët        |t        j                  t        j                  t        j                   f«      r’t#        |j                  «      dk(  sJ ‚t%        ‰ j'                  |j                  «      ‰ j)                  |j                  |j                  «      ‰ j+                  |j
                  |«      g‰ j-                  |«      ¬«      }�n�t        |j                  t        j.                  j0                  «      rwt%        ‰ j'                  |j                  «      ‰ j3                  |j                  |j                  |j                  «      ‰ j5                  |«      ‰ j-                  |«      ¬«      }�nøt        |j                  t        j.                  j6                  «      �r†dt8        fd„}|j                  t        j:                  j<                  u rãt?        |j                  «      }|j                  d   j
                  }tA        |jB                  jD                  |«      sJ ‚tG        |jB                  jD                  |«      }|jH                  |d<   d |d<   ˆ fd	„}t%        ‰ j'                  |j                  «      ‰ jK                  ||j                  «       ||«      ‰ j-                  |«      d
¬«      }�n¶t%        ‰ j'                  |j                  «      ‰ jK                  |j                  |j                  «      ‰ jM                  |«      ‰ j-                  |«       ||«      ¬«      }�nCtO        |j                  «      tP        v �rtO        |j                  «      tP        v sJ tO        |j                  «      › d�«       ‚tP        tO        |j                  «         }	|	jS                  «       }
|	jU                  |j                  «      }t        |
tV        «      rt        |tV        «      sJ ‚d|
vrd|vsJ ‚t%        d|
› d|› �‰ j3                  |j                  |j                  |j                  «      ‰ j5                  |«      ‰ j-                  |«      ¬«      }ntY        d|j                  › d�«      ‚‰ jZ                  j\                  j_                  |«       y )NÚcall_functionrä   z-[handle_call_function] %s: %s(%s, {%s}) -> %sr   )r  r  r  Úmetadatar}   c                 óÚ   — t        | j                  t        j                  j                  «      sJ ‚| j
                  j                  dd «      }|d uxr t        |t        j                  «      S )Nrä   )rk   r  rl   rm   ÚHigherOrderOperatorr3  Úgetr5  )r†   Úmeta_vals     r`   Ú_is_hop_single_tensor_returnzPGraphModuleSerializer.handle_call_function.<locals>._is_hop_single_tensor_return'  sO   € Ü! $§+¡+¬u¯z©z×/MÑ/MÔNÐNÐNàŸ9™9Ÿ=™=¨°Ó5�Ø tÐ+ÒR´
¸8ÄUÇ\Á\Ó0RÐRr_   r    c                 óú   •— | j                   j                  dd «      }g }t        |«      D ]8  \  }}‰j                  | |«      }|j	                  ‰j                  ||«      «       Œ: t        j                  |¬«      gS )Nrä   ©Ú
as_tensors)r3  rQ  Ú	enumerateÚ_output_node_name_at_indexr<  r6  r!   rš   )r†   rR  Útensor_argsÚidxr3  r  r#  s         €r`   Úserialize_tensor_list_outputzPGraphModuleSerializer.handle_call_function.<locals>.serialize_tensor_list_output;  sw   ø€ Ø#Ÿy™yŸ}™}¨U°DÓ9�HØ"$�KÜ%.¨xÓ%8ò U™	˜˜TØ#×>Ñ>¸tÀSÓI˜Ø#×*Ñ*¨4×+GÑ+GÈÈdÓ+SÕTðUô %ŸO™O°{ÔCÐDÐDr_   F)r  r  r  rN  Úis_hop_single_tensor_returnz* is not supported in export serialization.ú:ú#zSerializing z is not supported)0rp   r3  rQ  rë   r4  r  r  rA  ÚkwargsÚoperatorÚgetitemÚ_SYM_OPSrk   rl   rJ   rD   rH   rà   r<   rK  Úserialize_sym_op_inputsÚserialize_outputÚserialize_metadatarm   rn   Úserialize_inputsÚserialize_outputsrP  r¦   Ú_higher_order_opsÚaoti_call_delegater  ÚhasattrÚgraphÚowning_moduleÚgetattrÚ	aoti_pathÚserialize_hoo_inputsÚserialize_hoo_outputsr   r   Ú	namespaceÚ
to_op_namer÷   rZ   r  r	  r<  )r#  r†   rR  Úex_noderS  Úserializable_argsÚlowered_module_nameÚlowered_moduler[  Úhandlerrq  Úop_names   `           r`   Úhandle_call_functionz*GraphModuleSerializer.handle_call_function
  s  ø€ Ø�w‰w˜/Ò)Ð)Ð)Ø—9‘9—=‘= Ó'ˆÜ�	‰	ÐAÀ4Ç9Á9ÈdÏkÉkÐ[_×[dÑ[dÐfj×fqÑfqÐs{Ô|ð �;‰;œ(×*Ñ*Ñ*Øð �K‰Kœ8Ñ#ØÐ$¬°H¼u¿|¹|ÌUÏ]É]Ô\a×\jÑ\jÐ>kÔ)lä�t—{‘{Ó# qÒ(Ð(Ð(ÜØ×.Ñ.¨t¯{©{Ó;Ø×3Ñ3°D·K±KÀÇÁÓKØ×.Ñ.¨t¯y©y¸(ÓCÐDØ×0Ñ0°Ó6ô	ŠGô ˜Ÿ™¤U§Z¡Z×%:Ñ%:Ô;ÜØ×.Ñ.¨t¯{©{Ó;Ø×,Ñ,¨T¯[©[¸$¿)¹)ÀTÇ[Á[ÓQØ×.Ñ.¨tÓ4à×0Ñ0°Ó6ôŠGô ˜Ÿ™¤U§Z¡Z×%CÑ%CÕDðS´dó Sð �{‰{œe×5Ñ5×HÑHÑHÜ$(¨¯©£OÐ!ð ,0¯9©9°Q©<×+<Ñ+<Ð#Ü˜tŸz™z×7Ñ7Ð9LÔMÐMÐMÜ!(¨¯©×)AÑ)AÐCVÓ!W�Ø'5×'?Ñ'?Ð! !Ñ$ð (,Ð! !Ñ$ôEô Ø×2Ñ2°4·;±;Ó?Ø×4Ñ4Ð5FÈÏÉÓTÙ8¸Ó>Ø!×4Ñ4°TÓ:Ø05ô’ô Ø×2Ñ2°4·;±;Ó?Ø×4Ñ4°T·Y±YÀÇÁÓLØ ×6Ñ6°tÓ<Ø!×4Ñ4°TÓ:Ù0LÈTÓ0Rô’ô �$—+‘+ÓÔ"9Ò9ä˜Ÿ™Ó$Ô(?Ñ?ð  BÄDÈÏÉÓDUÐCVð  WAð  BBó  BÐ?ä-¬d°4·;±;Ó.?Ñ@ˆGØ×)Ñ)Ó+ˆIØ×(Ñ(¨¯©Ó5ˆGÜ˜i¬Ô-´*¸WÄcÔ2JÐJÐJØ˜iÑ'¨C°wÑ,>Ð>Ð>ÜØ˜9˜+ Q w iÐ0Ø×,Ñ,¨T¯[©[¸$¿)¹)ÀTÇ[Á[ÓQØ×.Ñ.¨tÓ4Ø×0Ñ0°Ó6ô	‰Gô ! <°·±¨}Ð<MÐ!NÓOÐOà×Ñ×Ñ×%Ñ% gÕ.r_   c                 óD   — t         j                  d|j                  «       y )Nz[handle_get_attr] %s)rë   r4  r  )r#  r†   s     r`   Úhandle_get_attrz%GraphModuleSerializer.handle_get_attrg  s   € Ü�	‰	Ð(¨$¯)©)Õ4r_   c                 óî   — d }|j                   D ]c  }|j                  t        j                  u s
J |› d�«       ‚||j                  d   k(  sŒ<|€|}ŒA|j
                  | j                  |j
                  <   Œe |S )Nz is not a getitem noder    )Úusersr  r`  ra  rA  r  r!  )r#  r†   r�   Ú	user_nodeÚusers        r`   Ú_output_node_at_indexz+GraphModuleSerializer._output_node_at_indexj  s   € Øˆ	Ø—J‘Jò 	MˆDØ—;‘;¤(×"2Ñ"2Ñ2ÐS°t°fÐ<RÐ4SÓSÐ2Ø˜Ÿ	™	 !™Ó$ØÐ$Ø $‘Ið ?H¿n¹n�D×0Ñ0°·±Ò;ð	Mð Ðr_   c                 ód   — | j                  ||«      }|€|j                  › d|› �S |j                  S )NÚ_unused_)r€  r  )r#  r†   r�   r~  s       r`   rX  z0GraphModuleSerializer._output_node_name_at_indexw  s9   € Ø×.Ñ.¨t°UÓ;ˆ	ØÐØ—i‘i�[ ¨¨Ð0Ð0à—>‘>Ð!r_   c           	      ó0  — i }|j                   j                  d«      x}r||d<   |j                   j                  d«      x}rHd„ }|j                  «       D ��cg c]  \  }}|› d ||«      › �‘Œ }}}t        j	                  |«      |d<   |j                   j                  d«      x}	rA|	D �
cg c]  }
|
d   › d| j                  |
d   «      › �‘Œ  }}
t        j	                  |«      |d<   |j                   j                  d«      x}r!t        j	                  t        |«      «      |d<   |j                   j                  d	«      x}r	 t        j                  |«      |d	<   |S |S c c}}w c c}
w # t        $ r!}t        d
|j                  › d|› �«      |‚d }~ww xY w)NÚstack_traceÚnn_module_stackc                 ó¤   — t        | t        «      rt        | «      dk(  sJ ‚| \  }}t        |t        «      sJ ‚t        |t        «      sJ ‚|dz   |z   S )Nr   ú,)rk   rß   rà   r÷   )rä   ÚpathÚtys      r`   Úexport_nn_module_stackzHGraphModuleSerializer.serialize_metadata.<locals>.export_nn_module_stack†  sS   € Ü! #¤uÔ-´#°c³(¸a²-Ð?Ð?Ø‘��bä! $¬Ô,Ð,Ð,Ü! "¤cÔ*Ð*Ð*à˜c‘z B‘Ð&r_   r‡  Úsource_fn_stackr   r    Útorch_fnÚcustomz-Failed to serialize custom metadata for node z with error )r3  rQ  rd   ÚST_DELIMITERÚjoinrK  r  r¾   r¿   Ú	ExceptionrZ   r  )r#  r†   Úretr„  r…  rŠ  rf   rg   Únn_module_listÚsource_fn_stÚ	source_fnÚsource_fn_listrŒ  r�  Úes                  r`   re  z(GraphModuleSerializer.serialize_metadata~  s·  € ØˆàŸ)™)Ÿ-™-¨Ó6Ð6ˆ;Ð6Ø!,ˆC�Ñà"Ÿi™iŸm™mÐ,=Ó>Ð>ˆ?Ð>ò'ð @O×?TÑ?TÓ?V÷Ù7;°q¸!�1�#�QÑ-¨aÓ0Ð1Ò2ðˆNñ ô &2×%6Ñ%6°~Ó%FˆCÐ!Ñ"àŸ9™9Ÿ=™=Ð):Ó;Ð;ˆ<Ð;ð ".öàð ˜Q‘<�.  $×"9Ñ"9¸)ÀA¹,Ó"GÐ!HÒIðˆNð ô &2×%6Ñ%6°~Ó%FˆCÐ!Ñ"à—y‘y—}‘} ZÓ0Ð0ˆ8Ð0Ü*×/Ñ/´°X³Ó?ˆC�
‰Oà—Y‘Y—]‘] 8Ó,Ð,ˆ6Ð,ðÜ $§
¡
¨6Ó 2��H‘ð ˆ
ˆsˆ
ùó/ùòøô ò Ü$ØCÀDÇIÁIÀ;ÈlÐ[\ÐZ]Ð^óàðûðús$   ÁE Â+#E&ÅE+ Å+	FÅ4FÆFÚscript_obj_metac                 óp   — t         j                  d|«       t        |j                  |j                  ¬«      S )Nz[serialize_script_obj_meta] %sr/  )rë   r4  r%   r  r0  ©r#  r—  s     r`   r;  z/GraphModuleSerializer.serialize_script_obj_meta©  s2   € ô 	�	‰	Ð2°OÔDÜ Ø ×%Ñ%Ø%×/Ñ/ô
ð 	
r_   c           	      óÔ  — t        |t        j                  j                  «      r.|j                  j
                  D �cg c]  }|j                  ‘Œ }}n@|t        v sJ ‚t        t        j                  |«      j                  j                  «       «      }g }t        ||«      D ]?  \  }}|j                  t        || j!                  |«      t"        j$                  ¬«      «       ŒA |S c c}w )N©r  rD  Úkind)rk   rl   rm   rn   rÿ   Ú	argumentsr  rb  r  ÚinspectÚ	signatureÚ
parametersÚkeysÚzipr<  r:   r9  r"   Ú
POSITIONAL)r#  rp   rA  rD  Ú
args_namesÚserialized_argsÚ	args_names          r`   rc  z-GraphModuleSerializer.serialize_sym_op_inputs²  sÄ   € Ü�bœ%Ÿ*™*×/Ñ/Ô0Ø.0¯j©j×.BÑ.BÖC s˜#Ÿ(›(ÐCˆJÑCàœ‘>Ð!�>Üœg×/Ñ/°Ó3×>Ñ>×CÑCÓEÓFˆJØˆÜ! *¨dÓ3ò 	‰NˆI�sØ×"Ñ"ÜØ"Ø×,Ñ,¨SÓ1Ü%×0Ñ0ôõð	ð Ðùò Ds   ½C%Nr  c           
      ó  — d }g }t        |t        j                  j                  j                  «      r|d   }|d   }|j                  ||«      }n=t        |t        j                  j                  gt        «       ¢­«      sJ ‚t        |«      }|€J ‚|xs i }t        |j                  «      D ]Ý  \  }}	|	j                  |v r]|j                  t        |	j                  | j                  ||	j                     |	j                   «      t"        j$                  ¬«      «       Œq|	j&                  sa|t)        |«      k  rS|j                  t        |	j                  | j                  ||   |	j                   «      t"        j*                  ¬«      «       ŒÞŒß |S )Nr   r    r›  )rk   rl   rh  Ú	torchbindÚCallTorchBindÚschemarm   rn   Ú_registered_extension_typesr  rW  r�  r  r<  r:   r9  r   r"   ÚKEYWORDÚ
kwarg_onlyrà   r£  )
r#  r  rA  r_  rª  r¥  ÚobjÚmethodÚiÚ
schema_args
             r`   rf  z&GraphModuleSerializer.serialize_inputsÃ  s^  € ð ˆØˆä�fœe×5Ñ5×?Ñ?×MÑMÔNØ�q‘'ˆCØ˜!‘WˆFØ—]‘] 3¨Ó/‰Fä˜f¤u§z¡z×'<Ñ'<Ð&]Ô?ZÓ?\Ñ&]Ô^Ð^Ð^Ü,¨VÓ4ˆFØÐ!Ð!Ð!Ø’˜2ˆä& v×'7Ñ'7Ó8ò 	‰MˆAˆzØ�‰ &Ñ(Ø×&Ñ&Ü!Ø'Ÿ_™_Ø ×0Ñ0°¸
¿¹Ñ1HÈ*Ï/É/ÓZÜ)×1Ñ1ôõð  ×*Ò*¨q´3°t³9ª}Ø×&Ñ&Ü!Ø'Ÿ_™_Ø ×0Ñ0°°a±¸*¿/¹/ÓJÜ)×4Ñ4ôõð ð)	ð, Ðr_   c                 óB  — |D �cg c]-  }t        d| j                  |«      t        j                  ¬«      ‘Œ/ }}|j	                  |j                  «       D ��cg c]0  \  }}t        || j                  |«      t        j                  ¬«      ‘Œ2 c}}«       |S c c}w c c}}w )zM
        For serializing HOO inputs since HOOs do not have a schema.
        Ú r›  )r:   r9  r"   r£  Úextendrd   r¬  )r#  rA  r_  Úar  r  s         r`   ro  z*GraphModuleSerializer.serialize_hoo_inputsî  s¤   € ð ö
ð ô ØØ×(Ñ(¨Ó+Ü!×,Ñ,öð
ˆð 
ð 	�‰ð  &Ÿ|™|›~÷ñ �D˜!ô ØØ×,Ñ,¨QÓ/Ü%×-Ñ-öóô		
ð ˆùò%
ùós   …2BÁ5B
c                 ó\   — t        |«      t        u xs t        |t        j                  «      S rc   )r   r˜   rk   rl   rJ   ©r#  rD  s     r`   Úis_inductor_sym_int_argz-GraphModuleSerializer.is_inductor_sym_int_arg  s#   € ô
 �C‹yœCÐÒ@¤:¨c´5·<±<Ó#@Ð@r_   c                 ó¸   — t        |«      t        u xsH t        |t        j                  j
                  «      xr" |j                  | j                  j                  v S rc   )	r   r˜   rk   rl   rB  r<   r  r  r  r·  s     r`   Úis_sym_int_argz$GraphModuleSerializer.is_sym_int_arg  sG   € Ü�C‹yœCÐò 
Ü�sœEŸH™HŸM™MÓ*ò <Ø—‘˜D×,Ñ,×;Ñ;Ð;ð	
r_   c                 ó¶   — t        |t        «      xsH t        |t        j                  j                  «      xr" |j
                  | j                  j                  v S rc   )rk   rŸ   rl   rB  r<   r  r  r  r·  s     r`   Úis_sym_float_argz&GraphModuleSerializer.is_sym_float_arg  sE   € Ü˜#œuÓ%ò 
Ü�sœEŸH™HŸM™MÓ*ò >Ø—‘˜D×,Ñ,×=Ñ=Ð=ð	
r_   c                 ó¶   — t        |t        «      xsH t        |t        j                  j                  «      xr" |j
                  | j                  j                  v S rc   )rk   r¦   rl   rB  r<   r  r  r  r·  s     r`   Úis_sym_bool_argz%GraphModuleSerializer.is_sym_bool_arg  sE   € Ü˜#œtÓ$ò 
Ü�sœEŸH™HŸM™MÓ*ò =Ø—‘˜D×,Ñ,×<Ñ<Ð<ð	
r_   Úarg_typec           
      óh  ‡ ‡— dd l mc m} |j                  |j                  fŠt        |t        j                  j                  «      �rË|j                  dk(  �rt        |j                  t        «      sJ ‚t        |j                  j                  |j                  «      }t        |t        j                  «      rt!        d«      ‚t        |t        j                  j"                  «      rU‰ j%                  «       5  ‰ j'                  |«      }d d d «       t)        j*                  t-        |j                  ¬«      ¬«      S t!        d|j                  › dt/        |«      › �«      ‚‰ j1                  |«      r4t)        j*                  t3        j*                  |j4                  ¬«      ¬	«      S ‰ j7                  |«      r4t)        j*                  t9        j*                  |j4                  ¬«      ¬
«      S ‰ j;                  |«      r4t)        j*                  t=        j*                  |j4                  ¬«      ¬«      S t        |j>                  d   t@        jB                  «      rBt)        j*                  tC        |j4                  |j>                  d   jD                  ¬«      ¬«      S |j4                  ‰ jF                  v r9‰ jF                  |j4                     }t)        j*                  tI        |¬«      ¬«      S t)        j*                  tI        |j4                  ¬«      ¬«      S t        |‰«      r9|jK                  «       }|€J d«       ‚t)        j*                  tI        |¬«      ¬«      S t        ||jL                  «      rv|jK                  «       }|€J d«       ‚|jO                  «       }|jQ                  «       jS                  «       }	|‰ jT                  |<   t)        j*                  tC        ||	«      ¬«      S t        |t        jV                  «      r3t)        j*                  t3        j*                  t        |«      ¬«      ¬	«      S t        |t        jX                  «      r3t)        j*                  t9        j*                  t        |«      ¬«      ¬
«      S t/        |«      tZ        u rt)        j*                  |¬«      S t/        |«      t        u rt)        j*                  |¬«      S t/        |«      t\        u rt)        j*                  |¬«      S t/        |«      t^        u rt)        j*                  |¬«      S |€t)        j*                  d¬«      S t        |t`        tb        f«      �r#te        |«      dk(  �r­|��t        |t        jf                  «      r|ji                  «       }t        |t        jj                  «      sJ ‚|ji                  «       }
t        |
t        jf                  «      r|
ji                  «       }
t        |
t        jl                  «      rt)        j*                  g ¬«      S t        |
t        jn                  «      rt)        j*                  g ¬«      S t        |
t        jp                  «      rt)        j*                  g ¬«      S t        |
t        jr                  «      rt)        j*                  g ¬«      S t        |
t        jt                  «      rt)        j*                  g ¬«      S t!        d|
› d�«      ‚tv        jy                  d«       t)        j*                  g ¬«      S t{        d „ |D «       «      rt)        j*                  ta        |«      ¬«      S t{        d!„ |D «       «      rt)        j*                  ta        |«      ¬«      S t{        d"„ |D «       «      rt)        j*                  ta        |«      ¬«      S t{        d#„ |D «       «      rt)        j*                  ta        |«      ¬«      S t{        ˆ fd$„|D «       «      rŸg }|D ]‚  }t        |t        jV                  «      r/|j}                  t3        j*                  t        |«      ¬«      «       ŒLt/        |«      t\        u sŒ^|j}                  t3        j*                  |¬«      «       Œ„ t)        j*                  |¬%«      S t{        d&„ |D «       «      rAt)        j*                  |D �cg c]!  }t9        j*                  t        |«      ¬«      ‘Œ# c}¬'«      S t{        ˆ fd(„|D «       «      rªg }|D ]�  }t        |t        j                  j                  «      r0|j}                  t3        j*                  |j4                  ¬«      «       ŒWt/        |«      t\        u sŒi|j}                  t3        j*                  |¬«      «       Œ� t)        j*                  |¬%«      S t{        ˆ fd)„|D «       «      r©g }|D ]Œ  }t        |t        j                  j                  «      r0|j}                  t9        j*                  |j4                  ¬«      «       ŒWt        |t^        «      sŒh|j}                  t9        j*                  |¬«      «       ŒŽ t)        j*                  |¬'«      S t{        ˆ fd*„|D «       «      r©g }|D ]Œ  }t        |t        j                  j                  «      r0|j}                  t=        j*                  |j4                  ¬«      «       ŒWt        |tZ        «      sŒh|j}                  t=        j*                  |¬«      «       ŒŽ t)        j*                  |¬+«      S t{        d,„ |D «       «      r^g }|D ]A  }|j                  dk(  rt!        d«      ‚|j}                  tI        |j4                  ¬«      «       ŒC t)        j*                  |¬«      S t{        d-„ |D «       «      r,d.„ }t)        j*                  ta        t        ||«      «      ¬/«      S t{        ˆfd0„|D «       «      r<t)        j*                  |D �cg c]  }tI        |jK                  «       ¬«      ‘Œ c}¬«      S t{        ˆfd1„|D «       «      r.ˆfd2„}t)        j*                  ta        t        ||«      «      ¬/«      S t!        d3|D �cg c]  }t/        |«      ‘Œ c}› �«      ‚t        |t        j€                  «      rt)        j*                  t‚        |   ¬4«      S t        |t        j„                  «      r5t)        j*                  t‡        |j.                  |jˆ                  ¬5«      ¬6«      S t        |t        jŠ                  «      rt)        j*                  tŒ        |   ¬7«      S t        |t        jŽ                  «      rt)        j*                  t�        |   ¬8«      S t        |t        j’                  j”                  «      r–|j—                  d9«      r|j—                  d:«      st!        d;|› d<�«      ‚d=te        ‰ jT                  «      › �}|‰ jT                  |<   |jQ                  «       jS                  «       }	t)        j*                  tC        ||	«      ¬«      S t        |t        j˜                  jš                  t        j˜                  jœ                  f«      r%t)        j*                  ‰ jŸ                  |«      ¬>«      S t!        d?t/        |«      › d@|› �«      ‚# 1 sw Y   �Œ�xY wc c}w c c}w c c}w )ANr   Úget_attrz?getattr nodes containing tensors should not appear in the graph)r  rk  )Úas_graphzUnsupported getattr attribute z with type: ©Úas_namer-  ©Úas_sym_float©Úas_sym_boolrä   r/  r1  ©r  r+  zBuffer must have valid namer£   ©Ú	as_stringr�   r�   T©Úas_none)Úas_bools)Úas_ints)Ú	as_floats)Ú
as_stringsrU  zEmpty list with type z nyi.z�Unsure how to serialize the given empty list, as we don't know what is the type of this argument. Serializing it as a tensor list by default.c              3   ó>   K  — | ]  }t        |«      t        u –— Œ y ­wrc   )r   r¦   ©ro   rµ  s     r`   rq   z8GraphModuleSerializer.serialize_input.<locals>.<genexpr>   s   è ø€ Ò0 q”4˜“7œd”?Ñ0ùó   ‚c              3   ó>   K  — | ]  }t        |«      t        u –— Œ y ­wrc   )r   r˜   rÓ  s     r`   rq   z8GraphModuleSerializer.serialize_input.<locals>.<genexpr>¢  ó   è ø€ Ò1¨”T˜!“W¤”^Ñ1ùrÔ  c              3   ó>   K  — | ]  }t        |«      t        u –— Œ y ­wrc   )r   rŸ   rÓ  s     r`   rq   z8GraphModuleSerializer.serialize_input.<locals>.<genexpr>¤  s   è ø€ Ò3¨!”T˜!“W¤Ô%Ñ3ùrÔ  c              3   ó>   K  — | ]  }t        |«      t        u –— Œ y ­wrc   )r   r÷   rÓ  s     r`   rq   z8GraphModuleSerializer.serialize_input.<locals>.<genexpr>¦  rÖ  rÔ  c              3   ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wrc   )r¸  ©ro   rµ  r#  s     €r`   rq   z8GraphModuleSerializer.serialize_input.<locals>.<genexpr>¨  s   øè ø€ ÒB¸�T×1Ñ1°!×4ÑBùó   ƒ)Úas_sym_intsc              3   óP   K  — | ]  }t        |t        j                  «      –— Œ  y ­wrc   )rk   rl   rH   rÓ  s     r`   rq   z8GraphModuleSerializer.serialize_input.<locals>.<genexpr>³  s   è ø€ Ò@°q”Z ¤5§>¡>×2Ñ@ùs   ‚$&)Úas_sym_floatsc              3   ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wrc   )rº  rÚ  s     €r`   rq   z8GraphModuleSerializer.serialize_input.<locals>.<genexpr>·  s   øè ø€ Ò9°�T×(Ñ(¨×+Ñ9ùrÛ  c              3   ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wrc   )r¼  rÚ  s     €r`   rq   z8GraphModuleSerializer.serialize_input.<locals>.<genexpr>À  s   øè ø€ Ò;°!�T×*Ñ*¨1×-Ñ;ùrÛ  c              3   ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wrc   )r¾  rÚ  s     €r`   rq   z8GraphModuleSerializer.serialize_input.<locals>.<genexpr>É  s   øè ø€ Ò:°�T×)Ñ)¨!×,Ñ:ùrÛ  )Úas_sym_boolsc              3   ód   K  — | ](  }t        |t        j                  j                  «      –— Œ* y ­wrc   )rk   rl   rB  r<   rÓ  s     r`   rq   z8GraphModuleSerializer.serialize_input.<locals>.<genexpr>Ò  s   è ø€ Ò?°a”Z ¤5§8¡8§=¡=×1Ñ?ùrr   c              3   óz   K  — | ]3  }t        |t        j                  j                  t	        d «      f«      –— Œ5 y ­wrc   )rk   rl   rB  r<   r   rÓ  s     r`   rq   z8GraphModuleSerializer.serialize_input.<locals>.<genexpr>Ü  s(   è ø€ ÒMÀA”Z ¤E§H¡H§M¡M´4¸³:Ð#>×?ÑMùs   ‚9;c                 óê   — | €t        j                  d¬«      S t        | t        j                  j
                  «      r*t        j                  t        | j                  ¬«      ¬«      S t        d| › �«      ‚©NTrÌ  rÉ  r+  z!Unsupported list/tuple argument: )	r=   rš   rk   rl   rB  r<   rL   r  rZ   ©rµ  s    r`   Úserialize_optional_tensor_argszMGraphModuleSerializer.serialize_input.<locals>.serialize_optional_tensor_argsÞ  s`   € Ø�yÜ5×<Ñ<ÀTÔJÐJÜ# A¤u§x¡x§}¡}Ô5Ü5×<Ñ<Ü&4¸!¿&¹&Ô&Aô ð ô -Ð/PÐQRÐPSÐ-TÓUÐUr_   )Úas_optional_tensorsc              3   ó6   •K  — | ]  }t        |‰«      –— Œ y ­wrc   )rk   ©ro   rµ  Úinductor_tensor_bufferss     €r`   rq   z8GraphModuleSerializer.serialize_input.<locals>.<genexpr>ë  s   øè ø€ ÒIÀ”Z Ð#:×;ÑIùs   ƒc              3   óR   •K  — | ]  }t        |g ‰¢t        d «      ‘­«      –— Œ  y ­wrc   )rk   r   rë  s     €r`   rq   z8GraphModuleSerializer.serialize_input.<locals>.<genexpr>ð  s-   øè ø€ ò ØJK”
˜1ÐDÐ 7ÐD¼¸d»ÑD×Eñùs   ƒ$'c                 óÄ   •— | €t        j                  d¬«      S t        | ‰«      r.t        j                  t        | j	                  «       ¬«      ¬«      S t        d| › �«      ‚ræ  )r=   rš   rk   rL   Úget_namerZ   )rµ  rì  s    €r`   rè  zMGraphModuleSerializer.serialize_input.<locals>.serialize_optional_tensor_argsô  s\   ø€ Ø�yÜ5×<Ñ<ÀTÔJÐJÜ# AÐ'>Ô?Ü5×<Ñ<Ü&4¸!¿*¹*»,Ô&Gô ð ô -Ð/PÐQRÐPSÐ-TÓUÐUr_   z&Unsupported list/tuple argument type: )Úas_scalar_typer€   )Ú	as_device)Úas_memory_format)Ú	as_layoutÚ__getstate__Ú__setstate__z!Unable to serialize custom class z7. Please define serialization methods via def_pickle().Ú_custom_obj_)Úas_operatorzUnsupported argument type: z with schema arg_type )PÚtorch._inductor.irÚ	_inductorÚirÚBufferÚReinterpretViewrk   rl   rB  r<   rp   r  r÷   rm  rk  rl  r5  rZ   r,   r(  Úserialize_graphr!   rš   r+   r   rº  rK   r  r¼  rI   r¾  rE   r3  r:  r%   r0  r!  rL   rï  ÚTorchBindObjectÚget_real_objÚ_typeÚqualified_namer   rJ   rH   r¦   r˜   rŸ   r  rß   rà   ÚOptionalTypeÚgetElementTypeÚListTypeÚBoolTypeÚIntTypeÚ	FloatTypeÚ
StringTypeÚ
TensorTyperë   rì   Úallr<  Úmapr«   r±   r‚   r&   r�   Úmemory_formatÚ!_TORCH_TO_SERIALIZE_MEMORY_FORMATr°   r´   Ú_CÚScriptObjectÚ_has_methodrm   rn   rP  rK  )r#  rD  r¿  Úinductor_irÚattrrk  Ú
dedup_nameÚarg_nameÚarg_valr0  Ú	elem_typeÚvaluesrµ  r�  rè  Úcustom_obj_namerì  s   `               @r`   r9  z%GraphModuleSerializer.serialize_input   s  ù€ ÷ 	1Ð0ð ×ÑØ×'Ñ'ð#
Ðô
 �cœ5Ÿ8™8Ÿ=™=Õ)Ø�v‰v˜Ó#Ü! #§*¡*¬cÔ2Ð2Ð2Ü˜sŸy™y×6Ñ6¸¿
¹
ÓC�ä˜d¤E§L¡LÔ1Ü(ØYóð ô   ¤e§h¡h×&:Ñ&:Ô;Ø×.Ñ.Ó0ñ ;Ø $× 4Ñ 4°TÓ :˜÷;ä#Ÿ?™?Ü!.°C·J±JÀeÔ!Lôð ô )Ø8¸¿¹¸ÀLÔQUÐVZÓQ[ÐP\Ð]óð ð ×$Ñ$ SÔ)Ü—‘Ü-×4Ñ4¸S¿X¹XÔFôð ð ×&Ñ& sÔ+Ü—‘Ü!1×!8Ñ!8ÀÇÁÔ!Jôð ð ×%Ñ% cÔ*Ü—‘Ü /× 6Ñ 6¸s¿x¹xÔ Hôð ô ˜CŸH™H U™O¬R×-AÑ-AÔBÜ—‘Ü"3Ø ŸX™X°·±¸%±×1JÑ1Jô#ôð ð
 —‘˜T×9Ñ9Ñ9Ø!×9Ñ9¸#¿(¹(ÑC�
Ü—‘´ÀZÔ1PÔQÐQä—‘´ÀSÇXÁXÔ1NÔOÐOÜ˜Ð4Ô5ð
 —|‘|“~ˆHØÐ'ÐFÐ)FÓFÐ'Ü—?‘?¬^ÀÔ-JÔKÐKÜ˜˜[×8Ñ8Ô9ð —|‘|“~ˆHØÐ'ÐFÐ)FÓFÐ'Ø×&Ñ&Ó(ˆGØŸ™›×6Ñ6Ó8ˆIØ)0ˆD×Ñ˜XÑ&Ü—?‘?Ü/°¸)ÓDôð ô ˜œUŸ\™\Ô*ô
 —?‘?¬n×.CÑ.CÌCÐPSËHÔ.UÔVÐVÜ˜œUŸ^™^Ô,ô
 —?‘?Ô0@×0GÑ0GÔPSÐTWÓPXÔ0YÔZÐZÜ�#‹Yœ$ÑÜ—?‘?¨3Ô/Ð/Ü�#‹Yœ#ÑÜ—?‘?¨SÔ1Ð1Ü�#‹Yœ#ÑÜ—?‘?¨#Ô.Ð.Ü�#‹Yœ%ÑÜ—?‘?¨CÔ0Ð0Øˆ[Ü—?‘?¨4Ô0Ð0Ü˜œd¤E˜]Õ+Ü�3‹x˜1‹}ØÑ'Ü! (¬E×,>Ñ,>Ô?Ø#+×#:Ñ#:Ó#<˜Ü% h´·±Ô?Ð?Ð?Ø (× 7Ñ 7Ó 9�IÜ! )¬U×-?Ñ-?Ô@Ø$-×$<Ñ$<Ó$>˜	ä! )¬U¯^©^Ô<Ü'Ÿ™¸Ô;Ð;Ü# I¬u¯}©}Ô=Ü'Ÿ™°rÔ:Ð:Ü# I¬u¯©Ô?Ü'Ÿ™¸Ô<Ð<Ü# I¬u×/?Ñ/?Ô@Ü'Ÿ™¸"Ô=Ð=Ü# I¬u×/?Ñ/?Ô@Ü'Ÿ™¸"Ô=Ð=ô -Ð/DÀYÀKÈuÐ-UÓVÐVô —K‘KðFôô
 $Ÿ?™?°bÔ9Ð9äÑ0¨CÔ0Ô0Ü—‘´°S³	Ô:Ð:ÜÑ1¨SÔ1Ô1Ü—‘¬t°C«yÔ9Ð9ÜÑ3¨sÔ3Ô3Ü—‘´°c³Ô;Ð;ÜÑ1¨SÔ1Ô1Ü—‘´$°s³)Ô<Ð<ÜÓB¸cÔBÔBð �Øò G�AÜ! !¤U§\¡\Ô2ØŸ™¤n×&;Ñ&;ÄCÈÃFÔ&KÕLÜ˜a›¤CšØŸ™¤n×&;Ñ&;À1Ô&EÕFð	Gô
  —‘°6Ô:Ð:ÜÑ@¸CÔ@Ô@Ü—‘ØTWÖ"XÈqÔ#3×#:Ñ#:Ä3ÀqÃ6Ö#JÒ"Xôð ô Ó9°SÔ9Ô9à�Øò G�AÜ! !¤U§X¡X§]¡]Ô3ØŸ™¤n×&;Ñ&;ÀAÇFÁFÔ&KÕLÜ˜a›¤CšØŸ™¤n×&;Ñ&;À1Ô&EÕFð	Gô
  —‘°6Ô:Ð:ÜÓ;°sÔ;Ô;à�Øò K�AÜ! !¤U§X¡X§]¡]Ô3ØŸ™Ô&6×&=Ñ&=ÀaÇfÁfÔ&MÕNÜ# A¤uÕ-ØŸ™Ô&6×&=Ñ&=ÀqÔ&IÕJð	Kô
  —‘°VÔ<Ð<ÜÓ:°cÔ:Ô:à�Øò I�AÜ! !¤U§X¡X§]¡]Ô3ØŸ™¤o×&<Ñ&<ÀQÇVÁVÔ&LÕMÜ# A¤tÕ,ØŸ™¤o×&<Ñ&<ÀQÔ&GÕHð	Iô
  —‘°FÔ;Ð;ÜÑ?¸3Ô?Ô?à�	Øò B�AØ—t‘t˜zÒ)Ü,Ø]óð ð ×$Ñ$¤^¸¿¹Ô%@ÕAðBô  —‘°)Ô<Ð<ÜÑMÈÔMÔMòVô  —‘Ü(,¬SÐ1OÐQTÓ-UÓ(Vôð ô ÓIÀSÔIÔIä—‘ØKNÖOÀa¤°A·J±J³LÖ AÒOôð ô ó ØORôô ôVô  —‘Ü(,¬SÐ1OÐQTÓ-UÓ(Vôð ô %Ø<ÈsÖ=SÈ!¼dÀ1½gÒ=SÐ<TÐUóð ô ˜œUŸ[™[Ô)Ü—?‘?Ô2KÈCÑ2PÔQÐQÜ˜œUŸ\™\Ô*Ü—?‘?¬V¸¿¹ÈÏÉÔ-SÔTÐTÜ˜œU×0Ñ0Ô1Ü—?‘?Ü!BÀ3Ñ!Gôð ô ˜œUŸ\™\Ô*Ü—?‘?Ô-GÈÑ-LÔMÐMÜ˜œUŸX™X×2Ñ2Ô3à—‘ Ô/Ø—O‘O NÔ3ä$Ø7¸°uð =>ð >óð ð !-¬S°×1AÑ1AÓ-BÐ,CÐDˆOØ03ˆD×Ñ˜_Ñ-ØŸ	™	›×2Ñ2Ó4ˆIÜ—?‘?Ü/°ÀÓKôð ô ˜œeŸj™j×3Ñ3´U·Z±Z×5SÑ5SÐTÔUÜ—?‘?¨t×/FÑ/FÀsÓ/KÔLÐLä Ð#>¼tÀC»y¸kÐI_Ð`hÐ_iÐ!jÓkÐk÷c;ñ ;üòB #Yùòr  Pùò* >Ts   Ã8zâ"&z%ï!z*ñz/
úz"c                 ó’   — || j                   j                  vsJ ‚t        |«      | j                   j                  |<   t        |¬«      S )NrÉ  )r  r
  rµ   rL   ©r#  r  rR  s      r`   r6  z-GraphModuleSerializer.serialize_tensor_output'  sB   € Ø˜4×+Ñ+×9Ñ9Ñ9Ð9Ð9Ü/DÀXÓ/Nˆ×Ñ×&Ñ& tÑ,Ü 4Ô(Ð(r_   c                 ó¦   — || j                   j                  vsJ ‚t        |«      | j                   j                  |<   t        j                  |¬«      S ©NrÃ  )r  r  r›   rK   rš   r  s      r`   r7  z.GraphModuleSerializer.serialize_sym_int_output,  sH   € Ø˜4×+Ñ+×:Ñ:Ñ:Ð:Ð:Ü0AÀ(Ó0Kˆ×Ñ×'Ñ'¨Ñ-Ü×$Ñ$¨TÔ2Ð2r_   c                 ó¦   — || j                   j                  vsJ ‚t        |«      | j                   j                  |<   t        j                  |¬«      S r  )r  r  r¡   rI   rš   r  s      r`   Úserialize_sym_float_outputz0GraphModuleSerializer.serialize_sym_float_output1  sH   € Ø˜4×+Ñ+×<Ñ<Ñ<Ð<Ð<Ü2EÀhÓ2Oˆ×Ñ×)Ñ)¨$Ñ/Ü×&Ñ&¨tÔ4Ð4r_   c                 ó¦   — || j                   j                  vsJ ‚t        |«      | j                   j                  |<   t        j                  |¬«      S r  )r  r  r¨   rE   rš   r  s      r`   Úserialize_sym_bool_outputz/GraphModuleSerializer.serialize_sym_bool_output6  sH   € Ø˜4×+Ñ+×;Ñ;Ñ;Ð;Ð;Ü1CÀHÓ1Mˆ×Ñ×(Ñ(¨Ñ.Ü×%Ñ%¨dÔ3Ð3r_   Úspecc                 ót  — t         j                  d|«       |j                  t        j                  j
                  k(  �r$t        |j                  t        j                  «      �rÆt        |j                  j                  «      t        u r,t        j                  |j                  j                  ¬«      }�n@t        |j                  j                  «      t        u r+t        j                  |j                  j                  ¬«      }nðt        |j                  j                  «      t        u r+t        j                  |j                  j                  ¬«      }n t        |j                  j                  «      t         u r+t        j                  |j                  j                  ¬«      }nP|j                  j                  €t        j                  d¬«      }n#t#        d|j                  j                  › d	�«      ‚t%        j                  t'        |j                  j(                  |¬
«      ¬«      S t%        j                  t+        | j-                  |j                  «      ¬«      ¬«      S |j                  t        j                  j.                  k(  r}|j0                  €J ‚t        |j                  t        j2                  «      sJ ‚t%        j                  t5        t3        |j                  j(                  ¬«      |j0                  ¬«      ¬«      S |j                  t        j                  j6                  k(  r–|j0                  €J ‚t        |j                  t        j2                  «      sJ ‚|j8                  €J ‚t%        j                  t;        t3        |j                  j(                  ¬«      |j0                  |j8                  ¬«      ¬«      S |j                  t        j                  j<                  k(  r}|j0                  €J ‚t        |j                  t        j2                  «      sJ ‚t%        j                  t?        t3        |j                  j(                  ¬«      |j0                  ¬«      ¬«      S |j                  t        j                  j@                  k(  r’|j0                  €J ‚t        |j                  t        jB                  «      sJ ‚t%        j                  tE        tC        |j                  j(                  |j                  jF                  ¬«      |j0                  ¬«      ¬«      S |j                  t        j                  jH                  k(  rdt        |j                  t        jJ                  «      sJ ‚t%        j                  tM        tK        |j                  j(                  ¬«      ¬«      ¬«      S tO        d|› �«      ‚)Nz[serialize_input_spec] %sr�   r£   rÊ  r�   TrÌ  zUnhandled constant input z to serialize©r  re   )Úconstant_input©rD  )Ú
user_inputrÉ  ©rD  Úparameter_name)Ú	parameter)rD  Úbuffer_nameÚ
persistent)rÙ   )rD  Útensor_constant_name)Útensor_constantr/  )rD  r  )Ú
custom_obj©ÚtokenúUnknown argument kind: )(rë   r4  rœ  r:  Ú	InputKindÚ
USER_INPUTrk   rD  ÚConstantArgumentr   re   r˜   r$   rš   r¦   r÷   rŸ   rZ   r.   r0   r  rQ   Úserialize_argument_specÚ	PARAMETERr  rL   r3   ÚBUFFERr+  r/   ÚCONSTANT_TENSORr4   Ú
CUSTOM_OBJr%   r1   r0  ÚTOKENrN   r2   r8  )r#  r!  Úconstant_specs      r`   Úserialize_input_specz*GraphModuleSerializer.serialize_input_spec;  sí  € Ü�	‰	Ð-¨tÔ4Ø�9‰9œŸ™×/Ñ/Ó/Ü˜$Ÿ(™(¤B×$7Ñ$7Õ8Ü˜Ÿ™Ÿ™Ó'¬3Ñ.Ü$1×$8Ñ$8ÀÇÁÇÁÔ$O’MÜ˜$Ÿ(™(Ÿ.™.Ó)¬TÑ1Ü$1×$8Ñ$8ÀÇÁÇÁÔ$P‘MÜ˜$Ÿ(™(Ÿ.™.Ó)¬SÑ0Ü$1×$8Ñ$8À4Ç8Á8Ç>Á>Ô$R‘MÜ˜$Ÿ(™(Ÿ.™.Ó)¬UÑ2Ü$1×$8Ñ$8À$Ç(Á(Ç.Á.Ô$Q‘MØ—X‘X—^‘^Ð+Ü$1×$8Ñ$8ÀÔ$F‘Mä(Ð+DÀTÇXÁXÇ^Á^ÐDTÐTaÐ)bÓcÐcÜ ×'Ñ'Ü#;Ø!ŸX™XŸ]™]°-ô$ôð ô !×'Ñ'Ü,Ø ×8Ñ8¸¿¹ÓBô ôð ð
 �Y‰Yœ"Ÿ,™,×0Ñ0Ò0Ø—;‘;Ð*Ð*Ð*Ü˜dŸh™h¬×(9Ñ(9Ô:Ð:Ð:Ü×#Ñ#Ü.Ü&¨D¯H©H¯M©MÔ:Ø#'§;¡;ôôð ð �Y‰Yœ"Ÿ,™,×-Ñ-Ò-Ø—;‘;Ð*Ð*Ð*Ü˜dŸh™h¬×(9Ñ(9Ô:Ð:Ð:Ø—?‘?Ð.Ð.Ð.Ü×#Ñ#Ü(Ü&¨D¯H©H¯M©MÔ:Ø $§¡Ø#Ÿ™ôôð ð �Y‰Yœ"Ÿ,™,×6Ñ6Ò6Ø—;‘;Ð*Ð*Ð*Ü˜dŸh™h¬×(9Ñ(9Ô:Ð:Ð:Ü×#Ñ#Ü 9Ü&¨D¯H©H¯M©MÔ:Ø)-¯©ô!ôð ð �Y‰Yœ"Ÿ,™,×1Ñ1Ò1Ø—;‘;Ð*Ð*Ð*Ü˜dŸh™h¬×(<Ñ(<Ô=Ð=Ð=Ü×#Ñ#Ü/Ü)Ø!ŸX™XŸ]™]°d·h±h×6HÑ6Hôð %)§K¡Kô	ôð ð �Y‰Yœ"Ÿ,™,×,Ñ,Ò,Ü˜dŸh™h¬×(8Ñ(8Ô9Ð9Ð9Ü×#Ñ#Ü$Ü%¨4¯8©8¯=©=Ô9ôôð ô !Ð#:¸4¸&Ð!AÓBÐBr_   c                 óV  — t         j                  d|«       |j                  t        j                  j
                  k(  r9t        j                  t        | j                  |j                  «      ¬«      ¬«      S |j                  t        j                  j                  k(  rdt        |j                  t        j                  «      sJ ‚t        j                  t        t        |j                  j                  ¬«      ¬«      ¬«      S |j                  t        j                  j                   k(  r}|j"                  €J ‚t        |j                  t        j                  «      sJ ‚t        j                  t%        t        |j                  j                  ¬«      |j"                  ¬«      ¬«      S |j                  t        j                  j&                  k(  r}|j"                  €J ‚t        |j                  t        j                  «      sJ ‚t        j                  t)        t        |j                  j                  ¬«      |j"                  ¬«      ¬	«      S |j                  t        j                  j*                  k(  r}|j"                  €J ‚t        |j                  t        j                  «      sJ ‚t        j                  t-        t        |j                  j                  ¬«      |j"                  ¬
«      ¬«      S |j                  t        j                  j.                  k(  r}|j"                  €J ‚t        |j                  t        j                  «      sJ ‚t        j                  t1        t        |j                  j                  ¬«      |j"                  ¬
«      ¬«      S |j                  t        j                  j2                  k(  rdt        |j                  t        j4                  «      sJ ‚t        j                  t7        t5        |j                  j                  ¬«      ¬«      ¬«      S t9        d|› �«      ‚)Nz[serialize_output_spec] %sr%  )Úuser_outputrÉ  )Úloss_output)rD  r*  )Úbuffer_mutationr'  )Úgradient_to_parameter)rD  Úuser_input_name)Úgradient_to_user_input)Úuser_input_mutationr/  r1  )rë   r4  rœ  r:  Ú
OutputKindÚUSER_OUTPUTr>   rš   rR   r5  rD  ÚLOSS_OUTPUTrk   rL   r6   r  ÚBUFFER_MUTATIONr  r#   ÚGRADIENT_TO_PARAMETERr(   ÚGRADIENT_TO_USER_INPUTr)   ÚUSER_INPUT_MUTATIONrP   r:  rN   r?   r8  )r#  r!  s     r`   Úserialize_output_specz+GraphModuleSerializer.serialize_output_specˆ  sí  € Ü�	‰	Ð.°Ô5Ø�9‰9œŸ™×1Ñ1Ò1Ü×$Ñ$Ü*¨t×/KÑ/KÈDÏHÉHÓ/UÔVôð ð �Y‰Yœ"Ÿ-™-×3Ñ3Ò3Ü˜dŸh™h¬×(9Ñ(9Ô:Ð:Ð:Ü×$Ñ$Ü*¬~À4Ç8Á8Ç=Á=Ô/QÔRôð ð �Y‰Yœ"Ÿ-™-×7Ñ7Ò7Ø—;‘;Ð*Ð*Ð*Ü˜dŸh™h¬×(9Ñ(9Ô:Ð:Ð:Ü×$Ñ$Ü 2Ü&¨D¯H©H¯M©MÔ:Ø $§¡ô!ôð ð �Y‰Yœ"Ÿ-™-×=Ñ=Ò=Ø—;‘;Ð*Ð*Ð*Ü˜dŸh™h¬×(9Ñ(9Ô:Ð:Ð:Ü×$Ñ$Ü&=Ü&¨D¯H©H¯M©MÔ:Ø#'§;¡;ô'ôð ð �Y‰Yœ"Ÿ-™-×>Ñ>Ò>Ø—;‘;Ð*Ð*Ð*Ü˜dŸh™h¬×(9Ñ(9Ô:Ð:Ð:Ü×$Ñ$Ü'>Ü&¨D¯H©H¯M©MÔ:Ø$(§K¡Kô(ôð ð �Y‰Yœ"Ÿ-™-×;Ñ;Ò;Ø—;‘;Ð*Ð*Ð*Ü˜dŸh™h¬×(9Ñ(9Ô:Ð:Ð:Ü×$Ñ$Ü$9Ü&¨D¯H©H¯M©MÔ:Ø$(§K¡Kô%ôð ð �Y‰Yœ"Ÿ-™-×-Ñ-Ò-Ü˜dŸh™h¬×(8Ñ(8Ô9Ð9Ð9Ü×$Ñ$Ü%Ü%¨4¯8©8¯=©=Ô9ôôð ô !Ð#:¸4¸&Ð!AÓBÐBr_   Úsigc           	      óö   — t         j                  d«       t        |j                  D �cg c]  }| j	                  |«      ‘Œ c}|j
                  D �cg c]  }| j                  |«      ‘Œ c}¬«      S c c}w c c}w )Nz
[serialize_signature]©Úinput_specsÚoutput_specs)rë   r4  r-   rP  r<  rQ  rL  )r#  rM  r„   s      r`   Úserialize_signaturez)GraphModuleSerializer.serialize_signatureÁ  s^   € Ü�	‰	Ð+Ô,ÜØ?B¿¹ÖO¸!˜×2Ñ2°1Õ5ÒOØAD×AQÑAQÖR¸A˜$×4Ñ4°QÕ7ÒRô
ð 	
ùÚOùÚRs   ©A1ÁA6
Úxc                 óà  — t        |t        j                  «      r*t        j                  t        |j
                  ¬«      ¬«      S t        |t        j                  «      r4t        j                  t        j                  |j
                  ¬«      ¬«      S t        |t        j                  «      r4t        j                  t        j                  |j
                  ¬«      ¬«      S t        |t        j                  «      r| j                  |j                  «      S t        |t        j                  «      r5t        j                  t        |j
                  |j                  ¬«      ¬«      S t        d«      ‚)	NrÉ  r+  rÃ  r-  rÅ  r/  r1  ÚTODO)rk   r:  rL   r!   rš   r  rK   rI   r4  r9  re   r%   r0  r8  ©r#  rS  s     r`   r5  z-GraphModuleSerializer.serialize_argument_specÈ  sï   € Ü�aœ×*Ñ*Ô+Ü—?‘?¬^ÀÇÁÔ-HÔIÐIÜ˜œ2×,Ñ,Ô-Ü—?‘?¬n×.CÑ.CÈAÏFÉFÔ.SÔTÐTÜ˜œ2×.Ñ.Ô/Ü—?‘?Ô0@×0GÑ0GÐPQ×PVÑPVÔ0WÔXÐXÜ˜œ2×.Ñ.Ô/Ø×'Ñ'¨¯©Ó0Ð0Ü˜œ2×/Ñ/Ô0Ü—?‘?Ü/°Q·V±VÀqÇ{Á{ÔSôð ô ! Ó(Ð(r_   c                 óF   ‡ ‡— ˆ ˆfd„Št        |t        «      } ‰|«       |S )Nc           	      ó  •— | j                   €y | j                   t        k(  rÇt        j                  | j                     j
                  }|‰j                  v re‰j                  |   j                  }|| j                  j                  k7  r`t        d| j                  › d| j                  j                  › d|› d�«      ‚t        | j                  j                  ¬«      ‰j                  |<   | j                  D ]
  } ‰|«       Œ y )Nz%The given TreeSpec's namedtuple type z was found to have field names z6 but somehow previously was found to have field names rG  )Úfield_names)r   r   ÚpytreeÚSUPPORTED_SERIALIZED_TYPESÚcontextÚserialized_type_namer"  rY  Ú_fieldsrZ   r;   Úchildren_specs)Útsr]  rY  Úchildr#  Ústore_namedtuple_fieldss       €€r`   rb  zIGraphModuleSerializer.serialize_treespec.<locals>.store_namedtuple_fieldsÛ  sõ   ø€ Ø�w‰wˆØØ�w‰wœ*Ò$Ü'-×'HÑ'HÈÏÉÑ'T×'iÑ'iÐ$Ø'¨4×+JÑ+JÑJØ"&×"AÑ"AÐBVÑ"W×"cÑ"c�KØ" b§j¡j×&8Ñ&8Ò8Ü,ØCÀBÇJÁJÀ<ð P=Ø=?¿Z¹Z×=OÑ=OÐ<Pð QTØT_ÐS`Ð`aðcóð ô MZÐfh×fpÑfp×fxÑfxÔLy�D×3Ñ3Ð4HÑIà×*Ñ*ò /�Ù'¨Õ.ñ/r_   )r   rO   )r#  ÚtreespecÚserialized_treespecrb  s   `  @r`   Úserialize_treespecz(GraphModuleSerializer.serialize_treespecØ  s&   ù€ õ	/ô& -¨XÔ7GÓHÐÙ Ô)Ø"Ð"r_   Úmodule_call_signaturec           	      óŒ  — t         j                  d|«       t        |j                  D �cg c]  }| j	                  |«      ‘Œ c}|j
                  D �cg c]  }| j	                  |«      ‘Œ c}| j                  |j                  «      | j                  |j                  «      |j                  x}r|¬«      S d ¬«      S c c}w c c}w )Nz$[serialize_module_call_signature] %s©r  r  Úin_specÚout_specÚforward_arg_names)
rë   r4  r9   r  r5  r  re  ri  rj  rk  ©r#  rf  rS  Únamess       r`   Úserialize_module_call_signaturez5GraphModuleSerializer.serialize_module_call_signatureò  sÆ   € ô 	�	‰	Ð8Ð:OÔPÜ"à9N×9UÑ9UöØ45�×,Ñ,¨QÕ/òð :O×9VÑ9VöØ45�×,Ñ,¨QÕ/òð ×+Ñ+Ð,A×,IÑ,IÓJØ×,Ñ,Ð-B×-KÑ-KÓLØ1F×1XÑ1XÐ(X¨Ð(X˜eô

ð 
	
ð `dô

ð 
	
ùòùòs   ªB<ÁC
c           	      óÎ   — t         j                  d«       |D �cg c]@  }t        |j                  |j                  r| j                  |j                  «      nd ¬«      ‘ŒB c}S c c}w )Nz
[serialize_module_call_graph]©ÚfqnrŸ  )rë   r4  r8   rq  rŸ  rn  ©r#  r  Úentrys      r`   Úserialize_module_call_graphz1GraphModuleSerializer.serialize_module_call_graph  sa   € ô 	�	‰	Ð3Ô4ð +ö

ð ô Ø—I‘Ið —’ð ×8Ñ8¸¿¹ÔIàöò

ð 
	
ùò 

s   šAA"c                 óB  — dt         dt        fd„}|j                  dk(  r:t        |j                  t
        j                  j                  gt        «       ¢­«      sJ ‚t        |j                  «      }|j                  }t        |«      dk(  rg S |j                  d   } ||j                  «      r_g }t        |«      D ]8  \  }}| j                  ||«      }	|j                  | j!                  |	|«      «       Œ: t#        j$                  |¬«      gS t        |«      dk(  r| j'                  |j(                  |«      gS g }
t        t+        ||«      «      D �]L  \  }\  }}|€\t        |j,                  t
        j.                  t
        j0                  f«      sJ ‚|
j                  t#        j$                  d	¬
«      «       Œht        |t2        «      rjt        |j,                  t
        j.                  t
        j0                  f«      sJ ‚| j                  ||«      }	|
j                  | j'                  |	|«      «       Œât        |t4        «      ràt        |j,                  t
        j6                  «      r2t        |j,                  j9                  «       t
        j0                  «      sJ ‚| j;                  ||«      }|€J ‚g }t        |«      D ];  \  }}|€Œ	| j                  ||«      }|j                  | j!                  ||«      «       Œ= |
j                  t#        j$                  |¬«      «       �ŒÒt        |t<        t>        t@        tB        f«      r5| j                  ||«      }|
j                  | j'                  ||«      «       �Œ'tE        dtG        |«      › d|jI                  «       › �«      ‚ |
S )a5  For a given node, return the dataclass representing its output values.

        [NOTE: Multiple outputs] We handle aggregates differently than FX. For
        FX, it looks like:

            x = call_function("multiple_return", ...)
            element0 = call_function(getitem, x, 0)
            foo = call_function("use_output", element0)

        We do not want the intermediate `getitem` call, so our serialized thing looks like:

            element0, element1, element2 = call_function("multiple_return", ...)
            foo = call_function("use_output", element0)

        We want names to be consistent across these two schemes, so that we can
        mostly reuse the names coming from FX. This function computes a mapping from
        the FX representation to our representation, preserving the names.
        r  r}   c                 óô   — t        | «      }|j                  }t        |«      dk7  ry|d   j                  }t	        |t
        j                  «      xr( t	        |j                  «       t
        j                  «      S )Nr    Fr   )	r  Úreturnsrà   Ú	real_typerk   rl   r  r  r	  )r  rª  rw  Úreturn_types       r`   Ú_is_single_tensor_list_returnzNGraphModuleSerializer.serialize_outputs.<locals>._is_single_tensor_list_return&  sg   € Ü,¨VÓ4ˆFØ—n‘nˆGä�7‹|˜qÒ ØØ! !™*×.Ñ.ˆKÜ˜k¬5¯>©>Ó:ò ¼zØ×*Ñ*Ó,¬e×.>Ñ.>ó@ð r_   rM  r   rä   rU  r    TrÌ  zUnhandled output type z from node )%r
   r¦   rp   rk   r  rl   rm   rn   r«  r  rw  rà   r3  rW  rX  r<  r6  r!   rš   rd  r  r¢  rx  r  r	  r   r  r  r  r€  r˜   rJ   rŸ   rH   Ú
ValueErrorr   Úformat_node)r#  r†   rz  rª  rw  rR  rY  rZ  r3  r  Úoutput_argumentsÚreturn_schemar~  rA  r°  ÚmÚsub_user_node_nameÚuser_node_names                     r`   rg  z'GraphModuleSerializer.serialize_outputs  s>  € ð(		´#ð 		¼$ó 		ð �w‰w˜/Ò)¬j¸¿¹ÄuÇzÁz×G\ÑG\ÐF}Ô_zÓ_|ÑF}Ô.~Ð~Ð~ä(¨¯©Ó5ˆØ—.‘.ˆäˆw‹<˜1ÒØˆIà—9‘9˜UÑ#ˆñ )¨¯©Ô5àˆKÜ& xÓ0ò M‘	��TØ×6Ñ6°t¸SÓA�Ø×"Ñ" 4×#?Ñ#?ÀÀdÓ#KÕLðMô —O‘O¨{Ô;Ð<Ð<Ü�‹\˜QÒØ×)Ñ)¨$¯)©)°XÓ>Ð?Ð?ð ÐÜ*3´C¸À'Ó4JÓ*Kó #	Ñ&ˆCÑ&�$˜Øˆ|Ü!Ø!×+Ñ+¬e×.@Ñ.@Ä%×BRÑBRÐ-Sôð ð ð
 !×'Ñ'¬¯©ÀÔ(EÕFÜ˜D¤*Ô-Ü! -×"9Ñ"9¼E×<NÑ<NÔPU×P`ÑP`Ð;aÔbÐbÐbØ×6Ñ6°t¸SÓA�Ø ×'Ñ'¨×(=Ñ(=¸dÀDÓ(IÕJÜ˜D¤$Ô'ä!Ø!×+Ñ+¬U¯^©^ôä Ø!×+Ñ+×:Ñ:Ó<¼e×>NÑ>Nôðð ð
 !×6Ñ6°t¸SÓA�	Ø Ð,Ð,Ð,à�Ü% d›Oò U‘D�A�qØ�yØ Ø)-×)HÑ)HÈÐTUÓ)VÐ&Ø—K‘K × <Ñ <Ð=OÐQRÓ SÕTð	Uð
 !×'Ñ'¬¯©À4Ô(HÖIÜ˜D¤3¬´´xÐ"@ÔAØ!%×!@Ñ!@ÀÀsÓ!K�Ø ×'Ñ'¨×(=Ñ(=¸nÈdÓ(SÖTä Ø,¬T°$«Z¨L¸ÀD×DTÑDTÓDVÐCWÐXóð ðC#	ðJ  Ðr_   c                 óº  — |j                   d   }t        |t        «      �rg }t        |«      D �]  \  }}| j	                  ||«      }t        |t
        «      r¤|€J ‚g }t        |«      D ]j  \  }}	t        |	t        j                  «      st        dt        |	«      › d�«      ‚| j                  ||«      }
|j                  | j                  |
|	«      «       Œl |j                  t        j                  |¬«      «       ŒÍ|�|j                  n|j                  › d|› �}
|j                  | j!                  |
|«      «       �Œ |S | j!                  |j                  |«      gS )zN
        For serializing HOO outputs since HOOs do not have a schema.
        rä   z Serialize list output with type z nyirU  r‚  )r3  rk   rß   rW  r€  r  rl   r5  rZ   r   rX  r<  r6  r!   rš   r  rd  )r#  r†   rR  r  r°  Úelement_meta_valr~  ÚtensorsÚjr  r  s              r`   rp  z+GraphModuleSerializer.serialize_hoo_outputsv  sY  € ð —9‘9˜UÑ#ˆä�h¤Õ&ØˆGÜ'0°Ó':ó RÑ#�Ð#Ø ×6Ñ6°t¸QÓ?�	ÜÐ.´Ô5à$Ð0Ð0Ð0à �GÜ )Ð*:Ó ;ò N™˜˜1Ü)¨!¬U¯\©\Ô:Ü"0Ð3SÔTXÐYZÓT[ÐS\Ð\`Ð1aÓ"bÐbà#×>Ñ>¸yÈ!ÓL˜ØŸ™ t×'CÑ'CÀDÈ!Ó'LÕMðNð —N‘N¤8§?¡?¸gÔ#FÕGð
 %Ð0ð "Ÿšà $§	¡	˜{¨(°1°#Ð6ð ð —N‘N 4×#8Ñ#8¸Ð?OÓ#PÖQð-Rð0 ˆNà×)Ñ)¨$¯)©)°XÓ>Ð?Ð?r_   r  rR  c                 ó–  — |€t        j                  d¬«      S t        |t        j                  «      r&t        j                  | j                  ||«      ¬«      S t        |t        t        j                  f«      r&t        j                  | j                  ||«      ¬«      S t        |t        t        j                  f«      r8t        |t        «      rJ ‚t        j                  | j                  ||«      ¬«      S t        |t        t        j                  f«      r&t        j                  | j                  ||«      ¬«      S t        d|› �«      ‚)NTrÌ  r+  rÇ  r-  rÅ  zUnable to serialize output )r!   rš   rk   rl   r5  r6  r¦   rD   r   r˜   rJ   r7  rŸ   rH   r  rZ   r  s      r`   rd  z&GraphModuleSerializer.serialize_outputš  s  € àÐÜ—?‘?¨4Ô0Ð0Ü�h¤§¡Ô-ä—?‘?Ø×6Ñ6°t¸XÓFôð ô ˜¤4¬¯©Ð"7Ô8ä—?‘?Ø ×:Ñ:¸4ÀÓJôð ô ˜¤3¬¯©Ð"5Ô6ä! (¬DÔ1Ð1Ð1Ü—?‘?Ø×8Ñ8¸¸xÓHôð ô ˜¤5¬%¯.©.Ð"9Ô:ä—?‘?Ø!×<Ñ<¸TÀ8ÓLôð ô
 Ð:¸8¸*ÐEÓFÐFr_   c                 ó   — |j                   d   }i }|j                  D ]H  }|j                  t        j                  u sJ d|› d|› d�«       ‚|j
                  ||j                  d   <   ŒJ t        |«      D ]  \  }}||vsŒ|j
                  › d|› �||<   Œ  g }t        |«      D ])  \  }}	|j                  | j                  ||   |	«      «       Œ+ |S )Nrä   z
User node z of z is incorrectr    r‚  )
r3  r}  r  r`  ra  r  rA  rW  r<  r6  )
r#  r†   rR  Úidx_to_namer  rZ  Ú_Úarg_listr°  rƒ  s
             r`   Ú_handle_getitem_usersz+GraphModuleSerializer._handle_getitem_users·  sõ   € Ø—9‘9˜UÑ#ˆàˆØ—J‘Jò 	2ˆDà—‘œx×/Ñ/Ñ/ð:à˜D˜6  d V¨=Ð9ó:Ø/à(,¯	©	ˆK˜Ÿ	™	 !™Ò%ð		2ô   Ó)ò 	?‰FˆC�ð ˜+Ò%Ø&*§i¡i [°¸¸Ð#>�˜CÒ ð	?ð ˆÜ#,¨XÓ#6ò 	ÑˆAÐØ�O‰OØ×,Ñ,¨[¸©^Ð=MÓNõð	ð
 ˆr_   Úgraph_modulec                 ó,  — t        |t        j                  j                  «      sJ ‚t        j                  d|j                  d¬«      «       |j                  j                  D ]"  }	  t        | d|j                  › �«      |«       Œ$ t!        | j"                  j$                  | j"                  j                  | j"                  j&                  | j"                  j(                  | j"                  j*                  | j"                  j,                  | j"                  j.                  | j"                  j0                  | j"                  j2                  ¬«	      S # t        $ r:}t        d|› d|j                  «       › dt        j                  «       › �«      |‚d }~ww xY w)	Nz[serialize_graph]

%sF)Úprint_outputÚhandle_zFailed serializing node z in graph: ú
 Original exception )	r  r	  r
  r  r  r  r  r  r  )rk   rl   rB  r,   rë   r4  Úprint_readablerk  r	  rm  rp   r�  rZ   r|  Ú	tracebackÚ
format_excr*   r  r  r
  r  r  r  r  r  r  )r#  rŒ  r†   r–  s       r`   rý  z%GraphModuleSerializer.serialize_graphÐ  se  € Ü˜,¬¯©×(<Ñ(<Ô=Ð=Ð=Ü�	‰	Ð+¨\×-HÑ-HÐV[Ð-HÓ-\Ô]à ×&Ñ&×,Ñ,ò 	ˆDðØ2”˜ ¨¯© yÐ1Ó2°4Õ8ð	ô Ø×#Ñ#×*Ñ*Ø×"Ñ"×(Ñ(Ø×*Ñ*×8Ñ8Ø×+Ñ+×:Ñ:Ø!×-Ñ-×>Ñ>Ø ×,Ñ,×<Ñ<Ø"×.Ñ.×@Ñ@Ø×$Ñ$×,Ñ,Ø$(×$4Ñ$4×$LÑ$Lô

ð 
	
øô ò Ü$Ø.¨t¨f°KÀ×@PÑ@PÓ@RÐ?SÐSiÔjs×j~Ñj~ó  kAð  jBð  Cóàðûðús   Á'EÅ	FÅ5FÆFr3  c                 óÒ   — i }|j                  d«      x}r1t        j                  d|«       	 t        j                  |«      |d<   |S |S # t
        $ r}t        d|› �«      |‚d }~ww xY w)Nr�  z%
[serialize_graph_module_metadata] %sz9Failed to serialize custom metadata for graph with error )rQ  rë   r4  r¾   r¿   r�  rZ   )r#  r3  r‘  r�  r–  s        r`   Úserialize_graph_module_metadataz5GraphModuleSerializer.serialize_graph_module_metadataè  sy   € ØˆØ—X‘X˜hÓ'Ð'ˆ6Ð'Ü�I‰IÐ>ÀÔGðÜ $§
¡
¨6Ó 2��H‘ð ˆ
ˆsˆ
øô ò Ü$ØOÐPQÈsÐSóàðûðús   ­A	 Á		A&ÁA!Á!A&c                 ó  — t         j                  d«       | j                  |«      }t        || j	                  | j
                  «      | j                  | j                  «      | j                  |j                  «      | j                  ¬«      S )Nz
[serialize])rk  rŸ  r  rN  r"  )rë   r4  rý  r,   rR  r  rt  r  r•  r3  r"  )r#  rŒ  rk  s      r`   rT   zGraphModuleSerializer.serializeõ  ss   € Ü�	‰	�/Ô"Ø×$Ñ$ \Ó2ˆäØØ×.Ñ.¨t×/CÑ/CÓDØ"×>Ñ>¸t×?UÑ?UÓVØ×9Ñ9¸,×:KÑ:KÓLØ'+×'FÑ'Fô
ð 	
r_   rc   )Br[   r\   r]   r:  ÚExportGraphSignaturer  r8   r$  r   r(  rl   rB  r<   r>  rE  r÷   rK  ry  r{  r   r€  rX  rÞ   re  r%   r;  r:   rc  r
   rf  ro  r¦   r¸  rº  r¼  r¾  r!   r9  rL   r6  rK   r7  rI   r  r   r.   r<  r>   rL  r-   rR  ÚArgumentSpecr5  re  r9   rn  rt  rg  rp  rd  r‹  r,   r*   rý  r•  rT   r^   r_   r`   rU   rU   Ã  sC  „ ð
Gà×0Ñ0ð
Gð   × 2Ñ 2Ñ3ó
Gð ñ%ó ð%ð4 u§x¡x§}¡}ó 4ð0X %§(¡(§-¡-ó Xð	<¨Có 	<ð[/¨¯©¯©ó [/òz5ð°H¸U¿X¹X¿]¹]Ñ4Kó ð"¸ó "ð) u§x¡x§}¡}ð )¸¸cÀ3¸h¹ó )ðV
Ø!×3Ñ3ð
à	ó
ð°4¸Ñ3Fó ð* ñ	)àð)ð
 
ˆmÑ	ó)ðV°D¸Ñ4Gó ð0A¨dó Að
 Tó 
ð
 tó 
ð
 dó 
ð .2ñElØ% c™]ðElà	óElðN)¸ó )ð
3¸.ó 3ð
5Ð<Ló 5ð
4¸>ó 4ð
KC¨¯©ð KC¸)ó KCðZ7C¨"¯-©-ð 7C¸Jó 7Cðr
 r×'>Ñ'>ð 
À>ó 
ð)¨¯©ð )¸Xó )ò #ð4
Ø%'×%;Ñ%;ð
à	ó
ð 
Ø!% b×&8Ñ&8Ñ!9ð
à	ˆoÑ	ó
ð b  e§h¡h§m¡mð b ¸¸X¹ó b ðH"@¨%¯(©(¯-©-ð "@¸DÀ¹Nó "@ðHG Sð G°Cð G¸Hó Gð:¨%¯(©(¯-©-ð ¸DÀÑ<Pó ð2
¨E¯H©H×,@Ñ,@ð 
ÀUó 
ð0°D¸¸c¸±Nó ð

 e§h¡h×&:Ñ&:ð 

¸{ô 

r_   rU   )Ú	metaclassc                   óV   — e Zd Zdefdeeeef      defd„Zde	j                  defd„Zy)rV   NÚopset_versionrÐ   c                 óÌ   — i | _         |r| j                   j                  |«       d| j                   vr+t        j                  j	                  «       | j                   d<   || _        y ©NÚaten)r›  Úupdaterl   r  Ú_get_max_operator_versionrÐ   )r#  r›  rÐ   s      r`   r$  z"ExportedProgramSerializer.__init__  sT   € Ø-/ˆÔÙØ×Ñ×%Ñ% mÔ4Ø˜×+Ñ+Ñ+Ü).¯©×)KÑ)KÓ)MˆD×Ñ˜vÑ&à.ˆÕr_   ru   r}   c           
      ó\  — |j                  «        t        |j                  |j                  «      }|j	                  |j
                  «      }t        |j                  «      }i }|j                  j                  «       D ]
  \  }}|||<   Œ |j                  j                  «       D ]  \  }}||vsJ ‚|||<   Œ t        || j                  |t        t        d   t        d   ¬«      |j                  D �	cg c]  }	|	j                   ‘Œ c}	t"        j$                  ¬«      }
t'        |
t)        |j+                  «       «      «       t-        |j.                  d¬«      }t1        |
t3        || j4                  «      t3        || j4                  «      t3        |j6                  | j4                  «      «      S c c}	w )zS
        Args:
            exported_program: Exported Program to serialize
        r   r    )ÚmajorÚminor©rŒ  r›  rù   Úschema_versionÚ	verifiersÚtorch_versionF)Úin_place)ÚvalidaterU   r  r  rT   rŒ  rý   rù   r   rd   rw   r'   r›  rC   rB   r¦  Údialectrl   Ú__version__ÚcanonicalizeÚsetr¡  r   rv   r|   rÚ   rÐ   rx   )r#  ru   Úgm_serializerÚserialized_graph_moduleÚserialized_range_constraintsrw   ÚnÚcr©   rg   Úserialized_epÚnew_state_dicts               r`   rT   z#ExportedProgramSerializer.serialize  s™  € ð
 	×!Ñ!Ô#ä-Ø×,Ñ,Ð.>×.PÑ.Pó
ˆð #0×"9Ñ"9Ð:J×:WÑ:WÓ"XÐÜ'BØ×.Ñ.ó(
Ð$ð %'ˆ	Ø!×-Ñ-×3Ñ3Ó5ò 	‰DˆAˆqØˆI�aŠLð	à$×.Ñ.×4Ñ4Ó6ò 	‰DˆAˆqØ˜IÑ%Ð%Ð%ØˆI�aŠLð	ô (Ø0Ø×,Ñ,Ø:Ü(Ü$ QÑ'Ü$ QÑ'ôð +;×*DÑ*DÖE Q�q—y“yÒEÜ×+Ñ+ô

ˆô 	�]¤C¨	¯©Ó(8Ó$9Ô:ô 6Ø×'Ñ'°%ô
ˆô "ØÜ$ ^°T×5IÑ5IÓJÜ$ Y°×0DÑ0DÓEÜ$Ð%5×%DÑ%DÀd×FZÑFZÓ[ó	
ð 	
ùò Fs   Ã1F))r[   r\   r]   ÚDEFAULT_PICKLE_PROTOCOLr   rÞ   r÷   r˜   r$  r:  r'   r|   rT   r^   r_   r`   rV   rV     sC   „ àAEÐ^uñ / h¨t°C¸°H©~Ñ&>ð /ÐX[ó /ð1
¨"×*<Ñ*<ð 1
ÐASô 1
r_   rV   c                   óš  — e Zd Zej                   G d„ d«      «       ZdCd„Zeded   fd„«       Z	de
fd„Zde
fd	„ZdDd
e
deeeeef      dej&                  fd„Zdedeeej*                  f   fd„Zdedeeej0                  f   fd„Zdedeeej4                  f   fd„Zdedefd„Zdede j>                  fd„Z!deeejD                  jF                  ef      fd„Z$de%dejD                  jJ                  fd„Z&de#de'ddfd„Z(de)de jR                  fd„Z*de+de jV                  fd„Z,de-de j\                  fd „Z/	 	 dEd!e0d"ee1e
ejd                  f   e3f   d#ee1e
e4f   e3f   d$eee5e5ejd                  d%f   e1e
e4f   f   e3f      d&ee1e
e6jn                  f      defd'„Z8d(e
d)ejD                  jF                  fd*„Z9d+„ Z:de#fd,„Z;d-e<e=   fd.„Z>d/e?de4fd0„Z@d/eAde4fd1„ZBd2„ ZCde#d)ejD                  jF                  fd3„ZDde#d)ejD                  jF                  fd4„ZEd)ejD                  jF                  d5eeFeGeHf   d6ed7e1e
e4f   fd8„ZId)ejD                  jF                  d7e1e
e4f   fd9„ZJde#d)ejD                  jF                  ddfd:„ZKd;e1e
e
f   de1e
e4f   fd<„ZLd=e?de jš                  fd>„ZNd?eOde jž                  fd@„ZPdAe<eQ   de<e j¢                     fdB„ZRy)FrW   c                   óŽ  — e Zd ZU ej                  j
                  ed<   ej                  ed<   e	ej                     ed<   eeej                  f   ed<   eeeej                   ej"                  j$                  f   f   ed<   eeeej                   eej(                  f   f   ed<   eeeej                   df   eeef   f      ed<   y	)
úGraphModuleDeserializer.ResultrŒ  rŸ  r  Únames_to_symbolsrv   rw   .rx   N)r[   r\   r]   rl   rB  r,   rz   r:  r—  r  r8   rÞ   r÷   rˆ   r—   r   r5  r¼   r½   r   r  r   rß   r
   r^   r_   r`   ÚResultr¸  C  s½   … à—h‘h×*Ñ*Ó*Ø×*Ñ*Ó*Ø × 2Ñ 2Ñ3Ó3Ø˜s E§L¡LÐ0Ñ1Ó1Ø˜˜e E§L¡L°%·(±(×2DÑ2DÐ$DÑEÐEÑFÓFØ˜˜U 5§<¡<Ð1AÀ5×CUÑCUÐ#UÑVÐVÑWÓWØ   u¨U¯\©\¸3Ð->Ñ'?ÀÀcÈ3ÀhÁÐ'OÑ!PÑQÔQr_   rº  r}   Nc                 ó¬   — i | _         i | _        t        j                  j	                  «       | _        t        j                  j                  «       | _        y rc   )	Úserialized_name_to_nodeÚserialized_name_to_metarl   rB  r*   rk  r¼   ÚModulerJ  )r#  s    r`   r$  z GraphModuleDeserializer.__init__M  s6   € ØACˆÔ$Ø<>ˆÔ$Ü—X‘X—^‘^Ó%ˆŒ
Ü—h‘h—o‘oÓ'ˆ�r_   c              #   ó�  K  — | j                   | j                  | j                  | j                  f}t        j
                  j                  «       | _         t        j                  j                  «       | _        i | _        i | _        	 d –— |\  | _         | _        | _        | _        y # |\  | _         | _        | _        | _        w xY w­wrc   )	rk  rJ  r¼  r½  rl   rB  r*   r¼   r¾  r&  s     r`   Úsave_graph_modulez)GraphModuleDeserializer.save_graph_moduleS  s¬   è ø€ ð �J‰JØ�K‰KØ×(Ñ(Ø×(Ñ(ð	
ˆô —X‘X—^‘^Ó%ˆŒ
Ü—h‘h—o‘oÓ'ˆŒØ')ˆÔ$Ø')ˆÔ$ð	Ûð ñØ”
Ø”ØÔ,ØÕ,øØñØ”
Ø”ØÔ,ØÕ,üs   ‚BCÂB& Â
CÂ&CÃCÚserialized_targetc                 óh   — |j                  d«      \  }}|dd  }t        |   }|j                  |«      S )Nr]  r    )ÚsplitÚ_deserialization_registryÚfrom_op_name)r#  rÁ  rq  rx  rw  s        r`   Údeserialize_extension_operatorz6GraphModuleDeserializer.deserialize_extension_operatori  s=   € Ø.×4Ñ4°SÓ9Ñˆ	�7Ø˜a˜b�Mˆ	Ü+¨IÑ6ˆØ×#Ñ# GÓ,Ð,r_   c                 óH  — |j                  d«      rt        }|j                  d«      dd  }nP|j                  d«      rt        }|j                  d«      dd  }n$|j                  d«      r| j	                  |«      S |S |}|D ]  }t        ||«      s|c S t        ||«      }Œ  |S )NÚ	_operatorrG  r    rl   r^  )rH  r`  rÃ  rl   rÆ  rj  rm  )r#  rÁ  rJ  Úserialized_target_namesr  r  s         r`   Údeserialize_operatorz,GraphModuleDeserializer.deserialize_operatoro  sº   € Ø×'Ñ'Øô
ô ˆFØ&7×&=Ñ&=¸cÓ&BÀ1À2Ð&FÑ#Ø×)Ñ)¨'Ô2ÜˆFØ&7×&=Ñ&=¸cÓ&BÀ1À2Ð&FÑ#Ø×)Ñ)¨#Ô.Ø×6Ñ6Ð7HÓIÐIà$Ð$àˆØ+ò 	/ˆDÜ˜6 4Ô(Ø(Ò(ä  ¨Ó.‘ð		/ð
 ˆr_   r¥   r”   c           	      ó   ‡ — ddt         j                  dt        t        t        t
        t        f      dt         j                  fˆ fd„}t        j                  |i ‰ j                  ¥‰ j                  ¥¬«      } |||«      S )z„
        Parses and does bottom-up processing of sympy.Expr nodes,
        populating ShapeEnv & caching symbols as needed.
        rô   r”   r}   c                 óä  •— | j                   s| j                  s| j                  r| S t        | «      }| j                  D ]  }‰j                  |«       Œ |‰j                  v r‰j                  |   } nx| ‰j                  |<   t        | t        j                  «      rOt        j                  | t        j                  t        j                  f«      r‰j                  j!                  | «       |�4| ‰j"                  j$                  vr‰j"                  j'                  | |«       ‰j(                  j+                  |«      x}r2‰j"                  j-                  | |j.                  |j0                  ¬«       | S )N)Úcompiler_minÚcompiler_max)Ú
is_IntegerÚis_FloatÚ
is_Booleanr÷   rA  Ú_parse_sym_exprÚsymbol_name_to_symbolrk   rˆ   r—   r   Úsymbol_is_typer   ÚUNBACKED_INTÚUNBACKED_FLOATÚunbacked_symbolsÚaddÚ	shape_envÚ
var_to_valÚadd_var_to_valÚsymbol_name_to_rangerQ  Úconstrain_symbol_rangerû   rü   )rô   r”   r¥   rD  Úvrr#  s        €r`   Ú_process_sym_exprzBGraphModuleDeserializer._parse_sym_expr.<locals>._process_sym_exprŠ  s4  ø€ Ø�~Š~ §¢°·²Ø�
ô ˜s›8�ØŸ8™8ò .�CØ×(Ñ(¨Õ-ð.ð ˜t×9Ñ9Ñ9Ø×4Ñ4°XÑ>‘Cà;>�D×.Ñ.¨xÑ8ä" 3¬¯©Ô5Ü+×:Ñ:¸3Ä×ARÑARÔTX×TgÑTgÐ@hÔià×-Ñ-×1Ñ1°#Ô6ð Ð$Ø 4§>¡>×#<Ñ#<Ñ<à—N‘N×1Ñ1°#°tÔ<à×2Ñ2×6Ñ6°xÓ@Ð@�2Ð@Ø—N‘N×9Ñ9ØØ%'§X¡XØ%'§X¡Xð :ô ð
 ˆJr_   )Úlocalsrc   )
rˆ   ÚExprr   r   r˜   r¦   rŸ   ÚsympifyÚsympy_functionsrÓ  )r#  r¥   r”   rß  r‡   s   `    r`   rÒ  z'GraphModuleDeserializer._parse_sym_expr…  su   ø€ ñ
 	¤5§:¡:ð  	´X¼eÄCÌÌuÐDTÑ>UÑ5Vð  	Ôbg×blÑblõ  	ôD �}‰}ØØI�d×*Ñ*ÐI¨d×.HÑ.HÐIô
ˆñ !  tÓ,Ð,r_   r„   c                 ó¼  — |j                   }|j                  dk(  ry|j                  €d }n1|j                  j                  dk(  sJ ‚|j                  j                   }| j                  |j                  |«      }| j
                  j                  ||¬«      S |j                  dk(  rt        |«      t        u sJ ‚|S t        d|j                  › d|j                   › �«      ‚)Nr’   r�   r“   zSymInt has invalid field type ú with value )	re   r   r”   rÒ  r¥   rÙ  Úcreate_symintnoder˜   rZ   ©r#  r„   rä   r”   rô   s        r`   Údeserialize_sym_intz+GraphModuleDeserializer.deserialize_sym_int²  sÁ   € Ø�g‰gˆØ�6‰6�YÒØ�x‰xÐØ‘à—x‘x—}‘}¨Ò0Ð0Ð0Ø—x‘x—~‘~�à×&Ñ& s§|¡|°TÓ:ˆCØ—>‘>×3Ñ3°C¸dÐ3ÓCÐCØ�V‰V�xÒÜ˜“9¤Ñ#Ð#Ð#ØˆJä Ø0°·±°¸ÀQÇWÁWÀIÐNóð r_   c                 ó‚  — |j                   }|j                  dk(  r]|j                  r|j                  j                  nd }| j	                  |j
                  |«      }| j                  j                  ||¬«      S |j                  dk(  rt        |t        «      sJ ‚|S t        d|j                  › d|j                   › �«      ‚)Nr’   r“   rž   z SymFloat has invalid field type rå  )re   r   r”   rž   rÒ  r¥   rÙ  Úcreate_symfloatnoderk   rŸ   rZ   rç  s        r`   Údeserialize_sym_floatz-GraphModuleDeserializer.deserialize_sym_floatÅ  s¤   € Ø�g‰gˆØ�6‰6�YÒØ(+¯ª�3—8‘8×$Ò$°dˆDØ×&Ñ& s§|¡|°TÓ:ˆCØ—>‘>×5Ñ5°cÀÐ5ÓEÐEØ�V‰V�zÒ!Ü˜c¤5Ô)Ð)Ð)ØˆJä Ø2°1·6±6°(¸,ÀqÇwÁwÀiÐPóð r_   c                 ó4  — |j                   }|j                  dk(  r6| j                  |j                  «      }| j                  j                  |«      S |j                  dk(  rt        |t        «      sJ ‚|S t        d|j                  › d|j                   › �«      ‚)Nr’   r¤   zSymBool has invalid field type rå  )	re   r   rÒ  r¥   rÙ  Úcreate_symboolnoderk   r¦   rZ   )r#  r„   rä   r‡   s       r`   Údeserialize_sym_boolz,GraphModuleDeserializer.deserialize_sym_boolÓ  s†   € Ø�g‰gˆØ�6‰6�YÒØ×'Ñ'¨¯©Ó5ˆDØ—>‘>×4Ñ4°TÓ:Ð:Ø�V‰V�yÒ Ü˜c¤4Ô(Ð(Ð(ØˆJä Ø1°!·&±&°¸ÀaÇgÁgÀYÐOóð r_   rÅ   c                 ód  ‡ — ‰ j                   5  t        t        t        j                  t        ˆ fd„|j                  D «       «      t        ˆ fd„|j                  D «       «      t        |j                  «      t        |j                     |j                  ¬«      «      cd d d «       S # 1 sw Y   y xY w)Nc              3   ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wrc   ©rè  ©ro   rä   r#  s     €r`   rq   zBGraphModuleDeserializer.deserialize_tensor_meta.<locals>.<genexpr>è  s   øè ø€ ÒU¸C˜$×2Ñ2°3×7ÑUùrÛ  c              3   ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wrc   rñ  rò  s     €r`   rq   zBGraphModuleDeserializer.deserialize_tensor_meta.<locals>.<genexpr>é  s   øè ø€ ÒW¸C˜$×2Ñ2°3×7ÑWùrÛ  )r‚   r«   r­   )Úfake_tensor_moder   r   rl   Úempty_stridedrß   r¬   r®   rƒ   r‚   Ú_SERIALIZE_TO_TORCH_DTYPEr«   r­   )r#  rÅ   s   ` r`   rÍ   z/GraphModuleDeserializer.deserialize_tensor_metaà  s‰   ø€ ð ×"Ñ"ñ 
	ÜÜÜ×#Ñ#ÜÓUÀ;×CTÑCTÔUÓUÜÓWÀ;×CVÑCVÔWÓWÜ-¨k×.@Ñ.@ÓAÜ3°K×4EÑ4EÑFØ"-×";Ñ";ôó	÷
	÷ 
	ò 
	ús   ŽBB&Â&B/r—  c                 óX   — t        j                  |j                  |j                  ¬«      S )Nr/  )r:  r%   r  r0  r™  s     r`   Údeserialize_script_obj_metaz3GraphModuleDeserializer.deserialize_script_obj_metað  s)   € ô ×#Ñ#Ø ×%Ñ%Ø%×/Ñ/ô
ð 	
r_   c                 óp  — |j                   dk(  r#| j                  |j                  j                     S |j                   dk(  r#| j                  |j                  j
                     S |j                   dk(  r#| j                  |j                  j
                     S |j                   dk(  r#| j                  |j                  j
                     S |j                   dk(  r|j                  S |j                   dk(  r|j                  S |j                   dk(  r|j                  S |j                   dk(  ry t        d	|› �«      ‚)
Nr,  r.  rÈ  rÆ  r�   rž   r¤   rÍ  z"Unable to deserialize output node )r   r¼  r,  r  r.  rÄ  rÈ  rÆ  r�   rž   r¤   rZ   )r#  r@  s     r`   Údeserialize_graph_outputz0GraphModuleDeserializer.deserialize_graph_outputø  s
  € Ø�;‰;˜+Ò%Ø×/Ñ/°×0@Ñ0@×0EÑ0EÑFÐFØ�[‰[˜LÒ(Ø×/Ñ/°×0AÑ0A×0IÑ0IÑJÐJØ�[‰[˜MÒ)Ø×/Ñ/°×0BÑ0B×0JÑ0JÑKÐKØ�[‰[˜NÒ*Ø×/Ñ/°×0CÑ0C×0KÑ0KÑLÐLØ�[‰[˜HÒ$Ø—=‘=Ð Ø�[‰[˜JÒ&Ø—?‘?Ð"Ø�[‰[˜IÒ%Ø—>‘>Ð!Ø�[‰[˜IÒ%Øä Ð#EÀfÀXÐ!NÓOÐOr_   Úserialized_graphc           	      óÆ  — t         j                  d«       |j                  j                  «       D ]S  \  }}t         j                  d||«       | j	                  |«      }t         j                  d||«       || j
                  |<   ŒU |j                  j                  «       D ]S  \  }}t         j                  d||«       | j                  |«      }t         j                  d||«       || j
                  |<   ŒU |j                  j                  «       D ]S  \  }}t         j                  d||«       | j                  |«      }t         j                  d||«       || j
                  |<   ŒU |j                  j                  «       D ]S  \  }}	t         j                  d||	«       | j                  |	«      }
t         j                  d	||
«       |
| j
                  |<   ŒU |j                  j                  «       D ]9  \  }}t         j                  d
|«       | j                  |«      | j
                  |<   Œ; t         j                  d«       t        |j                  «      D �]ƒ  \  }}t         j                  d|«       |j                   dv rK|j"                  j$                  }| j&                  j)                  |«      }||_        | j+                  ||«       Œv|j                   dk(  r}|j"                  j                   dk(  rK|j"                  j,                  }| j&                  j)                  |«      }||_        | j+                  ||«       Œét/        d|j"                  › d�«      ‚|j                   dv rh| j0                  j2                  |   j4                  j$                  }| j&                  j)                  |«      }| j7                  |«      |j8                  d<   �Œxt/        d|› �«      ‚ |j:                  D ]0  }	 | j=                  |j>                  «      }| jA                  ||«       Œ2 g }|jH                  D ]8  }t         j                  d|«       |jK                  | jM                  |«      «       Œ: |jN                  rtQ        |«      dk(  sJ ‚|d   }ntS        |«      }| j&                  jU                  |«      }|jN                  r*|jV                  d   j8                  d   |j8                  d<   n,tS        d„ |jV                  d   D «       «      |j8                  d<   | j&                  j:                  D ]`  }|j8                  jY                  d«      x}€Œ!t[        j\                  |d| j^                  | j`                  d¬«      x}sŒR||j8                  d<   Œb tQ        | j`                  «      dk(  sJ ‚| j&                  S # tB        $ r)}t/        d|› dtE        jF                  «       › �«      |‚d }~ww xY w)Nz
[deserialize_graph]z([deserialize_tensor_meta] %s (input): %sz)[deserialize_tensor_meta] %s (output): %sz$[deserialize_sym_int] %s (input): %sz%[deserialize_sym_int] %s (output): %sz&[deserialize_sym_float] %s (input): %sz'[deserialize_sym_float] %s (output): %sz%[deserialize_sym_bool] %s (input): %sz&[deserialize_sym_bool] %s (output): %sz [deserialize_script_obj_meta] %sz
[deserialize graph nodes]z[deserialize input] %s)r,  r2  r.  rÄ  z Deserializing a constant symint z as an input)r�   rž   r¤   rÍ  rË  rä   zInvalid input type zFailed deserializing node r�  z[deserialize output] %sr    r   c              3   ó†   K  — | ]9  }t        |t        j                  j                  «      r|j                  d    n|–— Œ; y­w)rä   N)rk   rl   rB  r<   r3  )ro   rD  s     r`   rq   z<GraphModuleDeserializer.deserialize_graph.<locals>.<genexpr>l  s6   è ø€ ò ,àô $.¨c´5·8±8·=±=Ô#A�—‘˜’ÀsÓJñ,ùs   ‚?Ar^   T)rÙ  ÚpendingÚsimplifyÚunbacked_bindings)1rë   r4  r
  rd   rÍ   r½  r  rè  r  rë  r  rî  r  rø  rW  r  r   re   r  rk  r*  Úsync_fx_noderÄ  rZ   rŸ  rP  rD  Údeserialize_inputr3  r	  rÊ  r  Údeserialize_noder�  r’  r“  r  r<  rú  r  rà   rß   r@  rA  rQ  r   Ú _free_unbacked_symbols_with_pathrÙ  r×  )r#  rû  r  Útensor_valuerR  Úsym_int_valueÚint_valÚsym_float_valueÚ	float_valÚsym_bool_valueÚbool_valr—  r°  Úinput_Ú	node_nameÚplaceholder_nodeÚserialized_noder  r–  r  r@  Úoutput_noder†   rä   r   s                            r`   Údeserialize_graphz)GraphModuleDeserializer.deserialize_graph  s{  € Ü�	‰	Ð)Ô*ð #3×"@Ñ"@×"FÑ"FÓ"Hò 	:ÑˆD�,Ü�I‰IÐ@À$ÈÔUØ×3Ñ3°LÓAˆHÜ�I‰IÐAÀ4ÈÔRØ19ˆD×(Ñ(¨Ò.ð		:ð $4×#BÑ#B×#HÑ#HÓ#Jò 	9ÑˆD�-Ü�I‰IÐ<¸dÀMÔRØ×.Ñ.¨}Ó=ˆGÜ�I‰IÐ=¸tÀWÔMØ18ˆD×(Ñ(¨Ò.ð		9ð &6×%FÑ%F×%LÑ%LÓ%Nò 	;Ñ!ˆD�/Ü�I‰IÐ>ÀÀoÔVØ×2Ñ2°?ÓCˆIÜ�I‰IÐ?ÀÀyÔQØ1:ˆD×(Ñ(¨Ò.ð		;ð %5×$DÑ$D×$JÑ$JÓ$Lò 	:Ñ ˆD�.Ü�I‰IÐ=¸tÀ^ÔTØ×0Ñ0°Ó@ˆHÜ�I‰IÐ>ÀÀhÔOØ19ˆD×(Ñ(¨Ò.ð		:ð &6×%GÑ%G×%MÑ%MÓ%Oò 	Ñ!ˆD�/Ü�I‰IÐ8¸/ÔJØ15×1QÑ1QØó2ˆD×(Ñ(¨Ò.ð	ô 	�	‰	Ð/Ô0ä"Ð#3×#:Ñ#:Ó;ó 	E‰IˆAˆvÜ�I‰IÐ.°Ô7Ø�{‰{Ð<Ñ<Ø"ŸL™L×-Ñ-�	Ø#'§:¡:×#9Ñ#9¸)Ó#DÐ ð )2Ð Ô%Ø×!Ñ! )Ð-=Õ>Ø—‘ Ò,Ø—<‘<×$Ñ$¨	Ò1Ø &§¡× 4Ñ 4�IØ'+§z¡z×'=Ñ'=¸iÓ'HÐ$ð -6Ð$Ô)Ø×%Ñ% iÐ1AÕBä(Ð+KÈFÏLÉLÈ>ÐYeÐ)fÓgÐgØ—‘ð !ñ ð !ŸN™N×6Ñ6°qÑ9×=Ñ=×BÑB�	Ø#'§:¡:×#9Ñ#9¸)Ó#DÐ Ø/3×/EÑ/EÀfÓ/MÐ ×%Ñ% eÓ,ä$Ð':¸6¸(Ð%CÓDÐDð=	EðB  0×5Ñ5ò 	ˆOðØ×2Ñ2°?×3IÑ3IÓJ�Ø×%Ñ% o°vÕ>ð	ð ˆØ&×.Ñ.ò 	BˆFÜ�I‰IÐ/°Ô8Ø�N‰N˜4×8Ñ8¸Ó@ÕAð	Bð ×3Ò3Ü�w“< 1Ò$Ð$Ð$Ø˜a‘j‰Gä˜G“nˆGà—j‘j×'Ñ'¨Ó0ˆà×3Ò3Ø&1×&6Ñ&6°qÑ&9×&>Ñ&>¸uÑ&EˆK×Ñ˜UÒ#ä&+ñ ,à&×+Ñ+¨AÑ.ô,ó 'ˆK×Ñ˜UÑ#ð —J‘J×$Ñ$ò 		CˆDàŸ	™	Ÿ™ eÓ,Ð,�Ñ9ä)8×)YÑ)YØ˜R¨4¯>©>À4×CXÑCXÐcgô*ð Ð%ñ ð
 2C�—	‘	Ð-Ò.ð		Cô �4×(Ñ(Ó)¨QÒ.Ð.Ð.Ø�z‰zÐøôQ ò Ü$Ø0°Ð0AÐAWÔXa×XlÑXlÓXnÐWoÐpóàðûðús   Ï--V.Ö.	W Ö7$W×W r  r  c           
      óP  — dt         fd„}|t        v s1|t        j                  j                  j
                  j                  k(  rq|j                  d   j                  j                  }| j                  |j                  «      }| j                  j                  d||i |«      }| j                  ||«       �n6t        |t        j                   j"                  «      �rS| j%                  |j                  «      \  }}| j'                  |j(                  «      }g |¢|j+                  «       ¢­D ]R  }	t        |	t        j,                  j.                  «      sŒ(|	j0                  dk(  sŒ8|	j2                  j5                  |«       ŒT t7        |j                  «      dk(  rIt9        |j                  d   d«      r0t;        |dd	«      r#|j                  d   j<                  j>                  nd }| j                  j                  d||||«      }| jA                  ||«       |j2                  j5                  |«       n¾t        |t        j                   jB                  gtE        «       ¢­«      rt ||«      r#|j                  d   j<                  j>                  nd }| jG                  ||«      \  }}| j                  j                  d||||«      }| jA                  ||«       ntI        d
|› dtK        |«      › �«      ‚|j2                  j5                  | j'                  |j(                  «      «       tL        jO                  d|j>                  |jP                  |jR                  |jT                  |j2                  jW                  d«      «       |j0                  dvrd|j2                  vri |j2                  d<   y y y )Nr}   c                 óž   — t        | «      }|j                  }t        |«      dk(  xr' t        |d   j                  t
        j                  «      S )Nr    r   )r  rw  rà   rk   rx  rl   r	  )r  rª  rw  s      r`   Ú_is_single_tensor_returnzJGraphModuleDeserializer.deserialize_node.<locals>._is_single_tensor_return‚  s@   € Ü,¨VÓ4ˆFØ—n‘nˆGÜ�w“< 1Ñ$Ò[¬°G¸A±J×4HÑ4HÌ%×JZÑJZÓ)[Ð[r_   r   rM  rÁ  r    r,  r\  Tz!Unsupported target type for node z: z)[deserialize_node] %s: %s(%s, {%s}) -> %srä   )r*  r@  r…  ),r¦   rb  rl   Úopsrž  Úitemrò   r  re   rÄ  Údeserialize_sym_op_inputsr  rk  Úcreate_nodeÚdeserialize_sym_op_outputsrk   rm   rP  Údeserialize_hoo_inputsÚdeserialize_metadatarN  r  rB  r<   rp   r3  rŸ  rà   rj  rm  r,  r  Údeserialize_outputsrn   r«  Údeserialize_inputsrZ   r   rë   r4  r  rA  r_  rQ  )
r#  r  r  r  r  rA  Úfx_noder_  rN  rS  s
             r`   r  z(GraphModuleDeserializer.deserialize_node€  s  € ð	\´ó 	\ð ”hÑØœŸ™Ÿ™×,Ñ,×4Ñ4Ò4à"×*Ñ*¨1Ñ-×3Ñ3×;Ñ;ˆDØ×1Ñ1°/×2HÑ2HÓIˆDà—j‘j×,Ñ,¨_¸fÀdÈBÐPTÓUˆGØ×+Ñ+¨O¸WÖEä˜¤§
¡
× >Ñ >Õ?Ø×6Ñ6°×7MÑ7MÓN‰LˆD�&Ø×0Ñ0°×1IÑ1IÓJˆHØ.�tÐ.˜fŸm™m›oÑ.ò ,�Ü˜a¤§¡§¡Õ/°A·D±D¸JÓ4Fð —F‘F—M‘M (Õ+ð,ô" �×.Ñ.Ó/°1Ò4Ü˜O×3Ñ3°AÑ6¸ÔDÜ˜OÐ-JÈDÔQð  ×'Ñ'¨Ñ*×4Ñ4×9Ò9ð ð ð —j‘j×,Ñ,Ø ¨¨v°tóˆGð ×$Ñ$ _°gÔ>Ø�L‰L×Ñ Õ)ä˜¤§¡×!6Ñ!6Ð WÔ9TÓ9VÑ WÔXñ ,¨FÔ3ð  ×'Ñ'¨Ñ*×4Ñ4×9Ò9àð ð
  ×2Ñ2°6¸?ÓK‰LˆD�&Ø—j‘j×,Ñ,Ø ¨¨v°tóˆGð ×$Ñ$ _°gÕ>ä Ø3°OÐ3DÀBÄtÈFÃ|ÀnÐUóð ð 	�‰×Ñ˜D×5Ñ5°o×6NÑ6NÓOÔPÜ�	‰	Ø7Ø�L‰LØ�N‰NØ�L‰LØ�N‰NØ�L‰L×Ñ˜UÓ#ô	
ð �:‰:Ð6Ñ6Ð;LÐT[×T`ÑT`Ñ;`Ø.0ˆG�L‰LÐ*Ò+ð <aÐ6r_   r°  c           	      ó–  — t         j                  d|«       |j                  dk(  rSt        j                  t        j
                  j                  | j                  |j                  j                  «      d ¬«      S |j                  dk(  rvt        j                  t        j
                  j                  t        j                  |j                  j                  j                  ¬«      |j                  j                  ¬«      S |j                  dk(  r‹t        j                  t        j
                  j                  t        j                  |j                   j                  j                  ¬«      |j                   j"                  |j                   j$                  ¬«      S |j                  dk(  rvt        j                  t        j
                  j&                  t        j                  |j(                  j                  j                  ¬«      |j(                  j*                  ¬«      S |j                  d	k(  r•t        j                  t        j
                  j,                  t        j.                  |j0                  j                  j                  |j0                  j                  j2                  ¬
«      |j0                  j4                  ¬«      S |j                  dk(  rbt        j                  t        j
                  j6                  t        j8                  |j:                  j                  j                  ¬«      d ¬«      S |j                  dk(  r|t        j                  t        j
                  j                  t        j<                  |j>                  j                  | jA                  |j>                  jB                  «      ¬«      d ¬«      S tE        d|› �«      ‚)Nz[deserialize_input_spec] %sr&  ©rœ  rD  r  r)  rÉ  rÙ   )rœ  rD  r  r+  r-  r.  r/  r0  r$  r#  zUnknown input spec )#rë   r4  r   r:  r.   r2  r3  Údeserialize_argument_specr&  rD  r6  rL   r)  r  r(  r7  rÙ   r*  r+  r8  r-  r,  r9  r%   r.  r0  r  r:  rN   r0  r4  r$  Údeserialize_constant_inputre   r8  )r#  r°  s     r`   Údeserialize_input_specz.GraphModuleDeserializer.deserialize_input_specÏ  s   € Ü�	‰	Ð/°Ô3Ø�6‰6�\Ò!Ü—<‘<Ü—\‘\×,Ñ,Ø×2Ñ2°1·<±<×3CÑ3CÓDØôð ð
 �V‰V�{Ò"Ü—<‘<Ü—\‘\×+Ñ+Ü×%Ñ%¨1¯;©;¯?©?×+?Ñ+?Ô@Ø—{‘{×1Ñ1ôð ð
 �V‰V�xÒÜ—<‘<Ü—\‘\×(Ñ(Ü×%Ñ%¨1¯8©8¯<©<×+<Ñ+<Ô=Ø—x‘x×+Ñ+ØŸ8™8×.Ñ.ô	ð ð �V‰VÐ(Ò(Ü—<‘<Ü—\‘\×1Ñ1Ü×%Ñ%¨1×+<Ñ+<×+@Ñ+@×+EÑ+EÔFØ×(Ñ(×=Ñ=ôð ð
 �V‰V�|Ò#Ü—<‘<Ü—\‘\×,Ñ,Ü×(Ñ(ØŸ™×)Ñ)×.Ñ.¸!¿,¹,×:JÑ:J×:TÑ:Tôð —|‘|×3Ñ3ôð ð �V‰V�wÒÜ—<‘<Ü—\‘\×'Ñ'Ü×$Ñ$¨!¯'©'¯+©+×*:Ñ*:Ô;Øôð ð
 �V‰VÐ'Ò'Ü—<‘<Ü—\‘\×,Ñ,Ü×'Ñ'Ø×)Ñ)×.Ñ.Ø×9Ñ9¸!×:JÑ:J×:PÑ:PÓQôð ôð ô !Ð#6°q°cÐ!:Ó;Ð;r_   Úoc                 óú  — t         j                  d|«       |j                  dk(  rSt        j                  t        j
                  j                  | j                  |j                  j                  «      d ¬«      S |j                  dk(  rbt        j                  t        j
                  j                  t        j                  |j                  j                  j                  ¬«      d ¬«      S |j                  dk(  rvt        j                  t        j
                  j                  t        j                  |j                  j                  j                  ¬«      |j                  j                   ¬«      S |j                  dk(  rvt        j                  t        j
                  j"                  t        j                  |j$                  j                  j                  ¬«      |j$                  j&                  ¬«      S |j                  dk(  rvt        j                  t        j
                  j(                  t        j                  |j*                  j                  j                  ¬«      |j*                  j,                  ¬«      S |j                  d	k(  rvt        j                  t        j
                  j.                  t        j                  |j0                  j                  j                  ¬«      |j0                  j,                  ¬«      S |j                  d
k(  rbt        j                  t        j
                  j2                  t        j4                  |j6                  j                  j                  ¬«      d ¬«      S t9        d|› �«      ‚)Nz[deserialize_output_spec] %sr>  r   r?  rÉ  r@  rA  rC  rD  r0  zUnknown output spec )rë   r4  r   r:  r>   rE  rF  r!  r>  rD  rG  rL   r?  r  rH  r@  r*  rI  rA  r(  rJ  rC  rB  rK  rD  r:  rN   r0  r8  )r#  r$  s     r`   Údeserialize_output_specz/GraphModuleDeserializer.deserialize_output_spec  ss  € Ü�	‰	Ð0°!Ô4Ø�6‰6�]Ò"Ü—=‘=Ü—]‘]×.Ñ.Ø×2Ñ2°1·=±=×3DÑ3DÓEØôð ð
 �V‰V�}Ò$Ü—=‘=Ü—]‘]×.Ñ.Ü×%Ñ%¨1¯=©=×+<Ñ+<×+AÑ+AÔBØôð ð
 �V‰VÐ(Ò(Ü—=‘=Ü—]‘]×2Ñ2Ü×%Ñ%¨1×+<Ñ+<×+@Ñ+@×+EÑ+EÔFØ×(Ñ(×4Ñ4ôð ð
 �V‰VÐ.Ò.Ü—=‘=Ü—]‘]×8Ñ8Ü×%Ñ%¨1×+BÑ+B×+FÑ+F×+KÑ+KÔLØ×.Ñ.×=Ñ=ôð ð
 �V‰VÐ/Ò/Ü—=‘=Ü—]‘]×9Ñ9Ü×%Ñ%¨1×+CÑ+C×+GÑ+G×+LÑ+LÔMØ×/Ñ/×?Ñ?ôð ð
 �V‰VÐ,Ò,Ü—=‘=Ü—]‘]×6Ñ6Ü×%Ñ%¨1×+@Ñ+@×+DÑ+D×+IÑ+IÔJØ×,Ñ,×<Ñ<ôð ð
 �V‰V�wÒÜ—=‘=Ü—]‘]×(Ñ(Ü×$Ñ$¨!¯'©'¯+©+×*:Ñ*:Ô;Øôð ô !Ð#7¸°sÐ!;Ó<Ð<r_   rM  c           	      ó
  — t         j                  d«       t        j                  |j                  D �cg c]  }| j                  |«      ‘Œ c}|j                  D �cg c]  }| j                  |«      ‘Œ c}¬«      S c c}w c c}w )Nz
[deserialize_signature]rO  )rë   r4  r:  r—  rP  r#  rQ  r&  )r#  rM  r°  r$  s       r`   Údeserialize_signaturez-GraphModuleDeserializer.deserialize_signature3  sd   € Ü�	‰	Ð-Ô.Ü×&Ñ&ØADÇÁÖQ¸A˜×4Ñ4°QÕ7ÒQØCF×CSÑCSÖT¸a˜$×6Ñ6°qÕ9ÒTô
ð 	
ùÚQùÚTs   ³A;ÁB 
r¯  Úserialized_state_dictrw   rx   .rÜ  c           	      ól  — t         �J ‚| a 	 t        j                  d«       t        j                  d¬«      | _        t        dd| j
                  ¬«      | _        i dt        j                  j                  j                  j                  “dt        j                  j                  j                  j                  “dt        j                  j                  j                  j                  “d	t        j                  j                  j                  j                  “d
t        j                  j                  j                  j                   “dt        j                  j                  j                  j"                  “dt        j                  j                  j                  j$                  “dt        j                  j                  j                  j&                  “dt        j                  j                  j                  j(                  “dt        j                  j                  j                  j*                  “dt        j                  j                  j                  j,                  “dt        j                  j                  j                  j.                  “dt        j                  j                  j                  j0                  “dt        j                  j                  j                  j2                  “dt        j                  j                  j                  j4                  “dt        j                  j                  j                  j6                  “dt        j                  j                  j                  j8                  “t        j                  j                  j                  j:                  t        j                  j                  j                  j<                  t        j                  j                  j                  j>                  t        j                  j                  j                  j@                  t        j                  j                  j                  jB                  dœ¥| _"        i | _#        tI        |«      | _%        | jM                  |jN                  «      | _'        i | _(        tS        «       | _*        d\  }}d„ tV        jX                  tV        jZ                  fD «       \  }}	|rå|j]                  «       D ]Ò  \  }
}|j^                  }|j`                  dk\  rtc        d|«      }t        jd                  tg        |th         «      |j`                  «      | jP                  |
<   |
jk                  |«      r$tm        |
to        |«      d  «      }tc        ||«      }Œž|
jk                  |	«      sŒ°tm        |
to        |	«      d  «      }tc        ||«      }ŒÔ tq        |dz   «      D ]!  }ts        | j
                  jt                  «       Œ# tq        |dz   «      D ]!  }ts        | j
                  jv                  «       Œ# |�to        |«      dkD  rtI        |«      | _<        nd | _<        | j{                  |j|                  «       t        | jx                  «      5  | j�                  |j‚                  «      }d d d «       t…        j†                  | jˆ                  | j|                  «      }i }|jŠ                  j�                  d«      x}rt�        j�                  |«      |d<   t“        |d«      r9i |d<   |j”                  j]                  «       D ]  \  }}|j–                  |d   |<   Œ ||_L        tš        j�                  || jN                  | jF                  tI        |«      | jJ                  | jx                  ¬«      d a S # 1 sw Y   �ŒxY w# d a w xY w) Nz
[deserialize]T)Úassume_static_by_defaultF)Úallow_fallback_kernelsÚallow_non_fake_inputsrÙ  ÚFloorDivÚModularIndexingÚWhereÚ	PythonModÚModÚCleanDivÚ	CeilToIntÚ
FloorToIntÚCeilDivÚLShiftÚRShiftÚPowByNaturalÚFloatPowÚFloatTrueDivÚ
IntTrueDivÚ!IsNonOverlappingAndDenseIndicatorÚTruncToFloat)Ú
TruncToIntÚ
RoundToIntÚRoundDecimalÚToFloatÚIdentity)éÿÿÿÿrD  c              3   ó.   K  — | ]  }t         |   –— Œ y ­wrc   )r   )ro   r©   s     r`   rq   z6GraphModuleDeserializer.deserialize.<locals>.<genexpr>t  s   è ø€ ò @Ø"#”
˜1•ñ@ùs   ‚r   r    r   r�  r"  )rŒ  rŸ  r  r¹  rv   rw   rx   )Or¶   rë   r4  r   ÚShapeEnvrÙ  r   rô  rl   ÚutilsÚ_sympyÚ	functionsr.  r/  r0  r1  r2  r3  r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rã  rÓ  rã   rw   r(  rŸ  rÜ  r­  r×  r   rÖ  rÕ  rd   rû   rü   Úmaxr   ró   r   rH  r˜   rà   ÚrangeÚnextÚunbacked_symfloat_counterÚunbacked_symint_counterrx   r  rk  r   Údeserialize_module_call_graphr  r:  Ú_create_graph_module_for_exportrJ  rN  rQ  r¾   rÊ   rj  r"  rY  r3  rW   rº  )r#  r¯  r)  rw   rx   rÜ  Úcount_unbacked_symfloatÚcount_unbacked_symintÚunbacked_symfloat_prefixÚunbacked_symint_prefixrf   rÞ  rû   r°  r‰  r  rŒ  r3  r�  Útype_Úfieldss                        r`   Údeserializez#GraphModuleDeserializer.deserialize:  sO  € ô %Ð,Ð,Ð,Ø $Ððe	)Ü�I‰IÐ'Ô(Ü,×5Ñ5ÈtÔTˆDŒNÜ$2Ø',Ø&*ØŸ.™.ô%ˆDÔ!ð
$ð
 œEŸK™K×.Ñ.×8Ñ8×AÑAð$ð "¤5§;¡;×#5Ñ#5×#?Ñ#?×#OÑ#Oð$ð œŸ™×+Ñ+×5Ñ5×;Ñ;ð$ð œUŸ[™[×/Ñ/×9Ñ9×CÑCð$ð ”u—{‘{×)Ñ)×3Ñ3×7Ñ7ð$ð œEŸK™K×.Ñ.×8Ñ8×AÑAð$ð œUŸ[™[×/Ñ/×9Ñ9×CÑCð$ð œeŸk™k×0Ñ0×:Ñ:×EÑEð$ð œ5Ÿ;™;×-Ñ-×7Ñ7×?Ñ?ð$ð œ%Ÿ+™+×,Ñ,×6Ñ6×=Ñ=ð$ð œ%Ÿ+™+×,Ñ,×6Ñ6×=Ñ=ð$ð  ¤§¡× 2Ñ 2× <Ñ <× IÑ Ið!$ð" œEŸK™K×.Ñ.×8Ñ8×AÑAð#$ð$ ¤§¡× 2Ñ 2× <Ñ <× IÑ Ið%$ð& œeŸk™k×0Ñ0×:Ñ:×EÑEð'$ð( 4´U·[±[×5GÑ5G×5QÑ5Q×5sÑ5sð)$ð* ¤§¡× 2Ñ 2× <Ñ <× IÑ Ið+$ô, $Ÿk™k×0Ñ0×:Ñ:×EÑEÜ#Ÿk™k×0Ñ0×:Ñ:×EÑEÜ %§¡× 2Ñ 2× <Ñ <× IÑ IÜ Ÿ;™;×-Ñ-×7Ñ7×?Ñ?Ü!ŸK™K×.Ñ.×8Ñ8×AÑAò5$ˆDÔ ð8 CEˆDÔ&Ü7¸	ÓBˆDŒNØ!×7Ñ7Ð8O×8YÑ8YÓZˆDŒNð )+ˆDÔ%ô 8;³uˆDÔ!Ø=CÑ:Ð#Ð%:ñ@Ü(,×(;Ñ(;¼T×=NÑ=NÐ'Oô@Ñ<Ð$Ð&<ñ $Ø1×7Ñ7Ó9ò 
N‘E�A�rØŸH™H�EØ—x‘x 1’}Ü # A u£˜Ü3B×3NÑ3NÔO`ÐafÔioÐhoÓOpÐrt×rzÑrzÓ3{�D×-Ñ-¨aÑ0Ø—|‘|Ð$<Ô=Ü ¤#Ð&>Ó"?Ð"@Ð AÓB˜Ü25Ð6MÈqÓ2QÑ/ØŸ™Ð&<Õ=Ü ¤#Ð&<Ó"=Ð">Ð ?Ó@˜Ü03Ð4IÈ1Ó0MÑ-ð
Nô Ð2°QÑ6Ó7ò ?�Ü�T—^‘^×=Ñ=Õ>ð?äÐ0°1Ñ4Ó5ò =�Ü�T—^‘^×;Ñ;Õ<ð=ð Ð)¬c°.Ó.AÀAÒ.EÜ&@ÀÓ&P�Õ#à&*�Ô#Ø×"Ñ"Ð#:×#@Ñ#@ÔAä7¸×8KÑ8KÓLñ Ø$(×$FÑ$FØ+×=Ñ=ó%Ð!÷ô ×=Ñ=Ø—‘˜TŸZ™ZóˆLð ˆDØ0×9Ñ9×=Ñ=¸hÓGÐGˆvÐGÜ!%§¡¨FÓ!3��X‘ÜÐ.Ð0LÔMØ57�Ð1Ñ2Ø%<×%WÑ%W×%]Ñ%]Ó%_ò S‘M�E˜6Ø@F×@RÑ@R�DÐ5Ñ6°uÒ=ðSà $ˆLÔÜ*×1Ñ1Ø)ØŸ.™.Ø"3Ø!%×!;Ñ!;Ü5Ð6KÓLØŸ.™.Ø#×2Ñ2ð 2ó ð %)Ñ!÷3ñ ûð2 %)Ñ!ús,   ŒV^/ Ö!C!^/ Ú^"ÚD^/ Þ"^,Þ'^/ Þ/^3r  r  c                 óÂ   — || j                   v rt        d|› d�«      ‚||_        || j                   |<   d|j                  vsJ ‚| j                  |   |j                  d<   y )NzNode z& has already been deserialized before.rä   )r¼  rZ   r  r3  r½  )r#  r  r  s      r`   r  z$GraphModuleDeserializer.sync_fx_node¬  sg   € Ø�4×/Ñ/Ñ/Ü  5¨¨Ð.TÐ!UÓVÐVàˆŒØ-4ˆ×$Ñ$ TÑ*Ø˜GŸL™LÑ(Ð(Ð(Ø"×:Ñ:¸4Ñ@ˆ�‰�UÒr_   c                 ó,   ‡ — t        ˆ fd„|D «       «      S )Nc              3   óT   •K  — | ]  }‰j                  |j                  «      –— Œ! y ­wrc   )r  rD  )ro   Úinputr#  s     €r`   rq   zDGraphModuleDeserializer.deserialize_sym_op_inputs.<locals>.<genexpr>¶  s    øè ø€ ÒK¸5�T×+Ñ+¨E¯I©I×6ÑKùs   ƒ%()rß   )r#  r  s   ` r`   r  z1GraphModuleDeserializer.deserialize_sym_op_inputsµ  s   ø€ ÜÓKÀFÔKÓKÐKr_   c                 ót  — t        |«      j                  }|j                  D �ci c]  }|j                  |j                  “Œ }}|j                  D �ci c](  }|j                  | j                  |j                  «      “Œ* }}g }t        «       }|D �]�  }	|	j                  |v r…||	j                     }
||	j                     }|t        j                  k(  r|j                  |
«       ŒU|t        j                  k(  r/t        j                  |	j                  «      s|
||	j                  <   Œ—|	j                  «        xr |	j                   }|r|j                  ||	j                     «       ŒØt        j                  |	j                  «      rn|	j                  rJ ‚t!        |«      dkD  r2t        «       }|j#                  t%        |j'                  «       «      «       |j                  ||	j                     «       �Œe|	j                  |v s�Œu||	j                     ||	j                  <   �Œ“ t)        |«      |fS c c}w c c}w ©Nr   )r  r�  r  r  rœ  r  rD  r   r"   r£  r<  r¬  ÚkeywordÚ	iskeywordÚhas_default_valuer­  rà   r´  r  r  rß   )r#  r  r  Úschema_argsr[  Úargument_kindsÚactual_argsrA  r_  r±  rD  rœ  Úis_positionals                r`   r  z*GraphModuleDeserializer.deserialize_inputs¸  sñ  € Ü-¨fÓ5×?Ñ?ˆð )×/Ñ/ö
àð �J‰J˜Ÿ
™
Ñ"ð
ˆð 
ð )×/Ñ/ö
àð �J‰J˜×.Ñ.¨u¯y©yÓ9Ñ9ð
ˆð 
ð ˆÜ(3«ˆØ%ó 	KˆJØ�‰ +Ñ-Ø! *§/¡/Ñ2�Ø% j§o¡oÑ6�Øœ<×2Ñ2Ò2Ø—K‘K Ô$ØØœ\×1Ñ1Ò1¼'×:KÑ:KÈJÏOÉOÔ:\Ø.1�F˜:Ÿ?™?Ñ+Øð ×0Ñ0Ó2Ð2ÒP¸:×;PÑ;PÐ7Pð ñ Ø—‘˜K¨
¯©Ñ8Õ9Ü×"Ñ" :§?¡?Ô3Ø%×0Ò0Ð0Ð0Ü�v“; ’?Ü(›]�FØ—K‘K¤ V§]¡]£_Ó 5Ô6Ø—‘˜K¨
¯©Ñ8Ö9à—?‘? kÓ1Ø.9¸*¿/¹/Ñ.J�F˜:Ÿ?™?Ó+ð3	Kô4 �T‹{˜FÐ"Ð"ùòI
ùò
s   ¤H0Á-H5r  c                 óö   — g }i }|D ]d  }|j                   dk7  r)| j                  |j                  «      ||j                   <   Œ;|j                  | j                  |j                  «      «       Œf t	        |«      |fS )zO
        For deserializing HOO inputs since HOOs do not have a schema.
        r³  )r  r  rD  r<  rß   )r#  r  rA  r_  r  s        r`   r  z.GraphModuleDeserializer.deserialize_hoo_inputsà  st   € ð ˆØˆØò 	@ˆFØ�{‰{˜bÒ Ø&*×&<Ñ&<¸V¿Z¹ZÓ&H��v—{‘{Ò#à—‘˜D×2Ñ2°6·:±:Ó>Õ?ð		@ô
 �d“˜VÐ$Ð$r_   Úinpc                 óö  ‡ ‡— ‰j                   }‰j                  }|dk(  ry |dk(  r#‰ j                  ‰j                  j                     S |dk(  rt
        ‰j                     S |dk(  rt        ‰j                     S |dk(  rt        ‰j                     S |dk(  rÈt        |t        «      sJ ‚‰ j                  «       5  ‰ j                  |j                  «       t!        j"                  ‰ j$                  ‰ j                  «      }d d d «       ‰ j$                  j'                  |j                  «       ‰ j                  j)                  d|j                  |j                  ¬«      S |d	k(  rt+        ‰j,                  «      S |d
k(  r‰j.                  S |dk(  r‰j0                  S |dk(  r‰j2                  S |dk(  r‰j4                  S |dk(  r‰ j7                  ‰j8                  «      S |dk(  r‰ j7                  ‰j:                  «      S |dk(  r‰ j7                  ‰j<                  «      S t        |t>        «      r�tA        |«      dk(  rg S |dk(  r(|D �cg c]  }‰ j                  |j                     ‘Œ }}|S |dv rt?        |«      S |dv r|D �cg c]  }‰ j7                  |«      ‘Œ c}S |dk(  rˆˆ fd„}t?        tC        ||«      «      S tE        d‰› �«      ‚|dk(  rh‰jF                  j                  ‰ j                  v r#‰ j                  ‰jF                  j                     S ‰ jH                  ‰jF                  j                     S |dk(  r‰ jK                  ‰jL                  «      S tE        d‰› �«      ‚# 1 sw Y   �ŒhxY wc c}w c c}w )NrÍ  r,  rð  rò  ró  rÂ  rÁ  rÉ  rñ  r�   rž   r¤   rË  r.  rÆ  rÈ  r   rV  )rÏ  rÐ  rÎ  rÑ  )rÜ  râ  rÞ  ré  c                 ó¤   •— | j                   dk(  ry | j                   dk(  r#‰j                  | j                  j                     S t	        d‰› �«      ‚)NrÍ  r,  úUnhandled argument )r   r¼  re   r  rZ   )rµ  rf  r#  s    €€r`   Ú deserialize_optional_tensor_argszSGraphModuleDeserializer.deserialize_input.<locals>.deserialize_optional_tensor_args$	  sJ   ø€ Ø—v‘v Ò*Ø#ØŸ™ ;Ò.Ø#×;Ñ;¸A¿G¹G¿L¹LÑIÐIä,Ð/BÀ3À%Ð-HÓIÐIr_   ri  r2  r÷  )'re   r   r¼  r,  r  rö  rð  Ú!_SERIALIZE_TO_TORCH_MEMORY_FORMATrò  Ú_SERIALIZE_TO_TORCH_LAYOUTró  rk   r+   rÀ  r  rk  r:  rP  rJ  Úregister_moduler  rƒ   rñ  r�   rž   r¤   rË  Údeserialize_sym_argumentr.  rÆ  rÈ  r  rà   r  rZ   r2  rw   rÊ  r÷  )r#  rf  re   Útyp_Ú	submodulerD  Úresultrj  s   ``      r`   r  z)GraphModuleDeserializer.deserialize_inputí  sH  ù€ Ø—	‘	ˆØ�x‰xˆØ�9Òð Ø�[Ò Ø×/Ñ/°·±×0BÑ0BÑCÐCØÐ%Ò%Ü,¨S×-?Ñ-?Ñ@Ð@ØÐ'Ò'Ü4°S×5IÑ5IÑJÐJØ�[Ò Ü-¨c¯m©mÑ<Ð<Ø�ZÒÜ˜e¤]Ô3Ð3Ð3Ø×'Ñ'Ó)ñ XØ×&Ñ& u§{¡{Ô3Ü×>Ñ>¸t¿{¹{ÈDÏJÉJÓW�	÷Xð �K‰K×'Ñ'¨¯
©
°IÔ>Ø—:‘:×)Ñ)ØØ—
‘
Ø—Z‘Zð *ó ð ð
 �[Ò Ü% c§m¡mÓ4Ð4Ø�XÒØ—:‘:ÐØ�ZÒØ—<‘<ÐØ�YÒØ—;‘;ÐØ�[Ò Ø—=‘=Ð Ø�\Ò!Ø×0Ñ0°·±Ó@Ð@Ø�^Ò#Ø×0Ñ0°×1AÑ1AÓBÐBØ�]Ò"Ø×0Ñ0°·±ÓAÐAÜ˜œtÔ$Ü�5‹z˜QŠØ�	Ø˜Ò%ØLQÖRÀS˜$×6Ñ6°s·x±xÓ@ÐR�ÐRØ�ØÐKÑKä˜E“{Ð"ØÐIÑIØFKÖL¸s˜×5Ñ5°cÕ:ÒLÐLØÐ.Ò.õJô œCÐ @À%ÓHÓIÐIä$Ð':¸3¸%Ð%@ÓAÐAØ�_Ò$Ø× Ñ ×%Ñ%¨×)EÑ)EÑEà×3Ñ3°C×4EÑ4E×4JÑ4JÑKÐKØ—>‘> #×"3Ñ"3×"8Ñ"8Ñ9Ð9Ø�]Ò"Ø×,Ñ,¨S¯_©_Ó=Ð=ä Ð#6°s°eÐ!<Ó=Ð=÷sXñ Xüò: Sùò Ms   Â8AM$É M1Ê M6Í$M.c                 ó`  — |j                   dk(  rt        |j                  «      S |j                   dk(  rt        |j                  «      S |j                   dk(  rt        |j                  «      S |j                   dk(  rt        |j                  «      S |j                   dk(  ry t        d|› d�«      ‚)Nr�   rž   rË  r¤   rÍ  zUnhandled constant argument z to deserialize)
r   r˜   r�   rŸ   rž   r÷   rË  r¦   r¤   rZ   )r#  rf  s     r`   r"  z2GraphModuleDeserializer.deserialize_constant_input9	  s‘   € Ø�8‰8�xÒÜ�s—z‘z“?Ð"Ø�X‰X˜Ò#Ü˜Ÿ™Ó&Ð&Ø�X‰X˜Ò$Ü�s—}‘}Ó%Ð%Ø�X‰X˜Ò"Ü˜Ÿ™Ó$Ð$Ø�X‰X˜Ò"Øä Ð#?À¸uÀOÐ!TÓUÐUr_   c                 ó  — t        |t        «      rC|j                  dk(  r|j                  S |j                  dk(  r¿| j                  |j
                     S t        |t        «      rC|j                  dk(  r|j                  S |j                  dk(  rl| j                  |j
                     S t        |t        «      rC|j                  dk(  r|j                  S |j                  dk(  r| j                  |j
                     S t        d|› �«      ‚)Nr�   rÄ  rž   r¤   z Unknown symbolic argument type: )rk   rK   r   r�   r¼  rÄ  rI   rž   rE   r¤   rZ   )r#  Úsym_args     r`   rn  z0GraphModuleDeserializer.deserialize_sym_argumentG	  sÛ   € Ü�gœ~Ô.Ø�|‰|˜xÒ'Ø—~‘~Ð%Ø—‘ Ò*Ø×3Ñ3°G·O±OÑDÐDÜ˜Ô!1Ô2Ø�|‰|˜zÒ)Ø×'Ñ'Ð'Ø—‘ Ò*Ø×3Ñ3°G·O±OÑDÐDÜ˜¤Ô1Ø�|‰|˜yÒ(Ø—‘Ð&Ø—‘ Ò*Ø×3Ñ3°G·O±OÑDÐDÜÐ?À¸yÐIÓJÐJr_   c                 ój   — | j                  |j                  d   j                  j                  |«       y r]  )r  r  re   rÄ  )r#  r  r  s      r`   r  z2GraphModuleDeserializer.deserialize_sym_op_outputsY	  s)   € Ø×Ñ˜/×1Ñ1°!Ñ4×:Ñ:×BÑBÀGÕLr_   c                 óL  — t        |j                  «      dk(  ry t        |j                  «      dk(  rè|j                  d   j                  dk(  rÌd|j                  v rŠt	        |dd«      s}g }|j                  d   j
                  }| j                  |j                  «      }| j                  |||d|«       t        |«      |j                  d<   || j                  |j                  <   y | j                  |j                  d   j
                  j                  |«       y t        |j                  «      dk(  rft        |j                  d   j                  t         t"        t$        f«      r4| j                  |j                  d   j                  j&                  |«       y t        |j                  «      dk(  rc|j                  d   j                  dk(  rGd |j                  d<   |j)                  | j*                  j-                  |j                  «      › d	�«       y | j/                  ||«       y )
Nr   r    r,  ztorch.ops.higher_orderr\  Trä   rÍ  Ú_unused)rà   r  r   r  rm  r,  r  rN  Úgenerate_getitemrß   r3  r¼  r  r  rk   re   rK   rE   rI   rÄ  Ú_renamerk  Ú_target_to_strÚdeserialize_multiple_outputs)r#  r  r  rR  rD  Údeserialized_metadatas         r`   r  z+GraphModuleDeserializer.deserialize_outputs\	  sÖ  € äˆ×&Ñ&Ó'¨1Ò,Øä�×'Ñ'Ó(¨AÒ-Ø×'Ñ'¨Ñ*×/Ñ/°;Ò>ð )¨O×,BÑ,BÑBÜ Ð1NÐPTÔUà&(�Ø%×-Ñ-¨aÑ0×:Ñ:�Ø(,×(AÑ(AÀ/×BZÑBZÓ([Ð%Ø×%Ñ% h°¸¸aÐAVÔWÜ&+¨H£o�—‘˜UÑ#Ø=D�×,Ñ,¨W¯\©\Ñ:Øà×Ñ˜o×5Ñ5°aÑ8×BÑB×GÑGÈÔQØÜ�×(Ñ(Ó)¨QÒ.´:Ø×#Ñ# AÑ&×,Ñ,¬~¼ÔP`Ð.aô4
ð ×Ñ˜o×5Ñ5°aÑ8×>Ñ>×FÑFÈÔPØÜ�×(Ñ(Ó)¨QÒ.°?×3JÑ3JÈ1Ñ3M×3RÑ3RÐV_Ò3_à"&ˆG�L‰L˜ÑØ�O‰O˜tŸz™z×8Ñ8¸¿¹ÓHÐIÈÐQÔRØà×)Ñ)¨/¸7ÕCr_   rD  rZ  r|  c                 óÔ  — t        |t        «      r|j                  }nQt        |t        «      r|j                  }n4t        |t
        «      r|j                  }nt        dt        |«      › �«      ‚| j                  j                  dt        j                  ||f|¬«      }| j                  ||«       |j                  | j                  |   «       |j                  j!                  |«       y )Nz+generate_getitem got unknown argument type rM  rÉ  )rk   rL   r  rK   rÄ  rI   r8  r   rk  r  r`  ra  r  r<  r½  r3  rŸ  )r#  rR  r  rD  rZ  r|  r  Úindividual_outputs           r`   rx  z(GraphModuleDeserializer.generate_getitem„	  sÌ   € ô �cœ>Ô*Ø—8‘8‰DÜ˜œ^Ô,Ø—;‘;‰DÜ˜Ô-Ô.Ø—;‘;‰Dä Ø=¼dÀ3»i¸[ÐIóð ð !ŸJ™J×2Ñ2ØÜ×ÑØ�cˆNØð	 3ó 
Ðð 	×Ñ˜$Ð 1Ô2Ø�‰˜×4Ñ4°TÑ:Ô;ð 	×Ñ×%Ñ%Ð&;Õ<r_   c                 óV  — t        |«      D �]š  \  }}t        |t        t        t        f«      r| j                  |||||«       Œ8t        |t        «      sJ ‚|j                  dv r | j                  |||j                  ||«       Œx|j                  dv rŽ| j                  j                  dt        j                  ||f«      }|j                  g «       | j                  |d   ||j                  |«       |j                  j!                  |«       |d   |j                  d<   �Œ|j                  dk(  rl| j                  j                  dt        j                  ||fd¬«      }|j                  d «       d |j                  d<   |j                  j!                  |«       �Œ�t#        d|› �«      ‚ y )	N)r,  r.  rÆ  )rV  rÜ  rÞ  rÏ  rÐ  rÑ  rÎ  râ  rM  rD  rä   rÍ  rÉ  z Unimplemented node output type: )rW  rk   rL   rK   rI   rx  r!   r   re   rk  r  r`  ra  r<  Úgenerate_getitemsr3  rŸ  ÚNotImplementedError)	r#  rR  r  rA  r|  rZ  rD  Úlist_outputr~  s	            r`   r€  z)GraphModuleDeserializer.generate_getitems¢	  s“  € ô " $›ó &	T‰HˆC�Ü˜#¤´Ô@PÐQÔRØ×%Ñ% h°¸¸cÐCXÔYØä˜c¤8Ô,Ð,Ð,Ø�x‰xÐFÑFØ×%Ñ% h°¸¿¹ÀCÐI^Õ_Ø—‘ð 	ñ 	ð #Ÿj™j×4Ñ4Ø#Ü×$Ñ$Ø˜c�Nó�ð
 —‘ Ô#Ø×&Ñ& x°¡|°[À#Ç)Á)ÐMbÔcØ× Ñ ×'Ñ'Ð(=Ô>Ø*2°2©,�× Ñ  Ó'Ø—‘˜YÒ&Ø$(§J¡J×$:Ñ$:Ø#Ü×$Ñ$Ø˜c�NØ"ð	 %;ó %Ð!ð —‘ Ô%Ø04Ð!×&Ñ& uÑ-Ø!×&Ñ&×-Ñ-Ð.CÖDä)Ð,LÈSÈEÐ*RÓSÐSñM&	Tr_   c                 ó  — | j                  |j                  «      }g }t        |j                  «      dk(  r�t	        |j                  d   j
                  t        «      sJ ‚t	        |j                  d   j
                  d   t        «      sJ ‚| j                  |||j                  d   j                  |«       n| j                  |||j                  |«       t        |«      |j                  d<   || j                  |j                  <   y )Nr    r   rä   )r  rN  rà   r  rk   re   r  rL   r€  rV  rß   r3  r¼  r  )r#  r  r  r|  rR  s        r`   r{  z4GraphModuleDeserializer.deserialize_multiple_outputsÑ	  så   € ð !%× 9Ñ 9¸/×:RÑ:RÓ SÐð !ˆÜˆ×&Ñ&Ó'¨1Ò,Ü˜o×5Ñ5°aÑ8×>Ñ>ÄÔEÐEÐEÜ˜o×5Ñ5°aÑ8×>Ñ>¸qÑAÄ>ÔRÐRÐRØ×"Ñ" 8¨W°o×6MÑ6MÈaÑ6P×6[Ñ6[Ð]rÕsà×"Ñ" 8¨W°o×6MÑ6MÐOdÔeô $ H›oˆ�‰�UÑØ5<ˆ×$Ñ$ W§\¡\Ò2r_   rN  c                 ód  ‡ ‡‡— i }|j                  d«      x}r||d<   dt        fˆ fd„}|j                  d«      x}r3d„ Šd„ Št        ˆˆfd„|j                  t        «      D «       «      }||d<   |j                  d«      x}rNg }|j                  t        «      D ]/  }	|	j                  d	«      \  }
}|j                  |
 ||«      f«       Œ1 ||d<   |j                  d
«      x}r!t        |j                  t        «      «      |d
<   |j                  d«      x}rt        j                  |«      |d<   |S )Nr„  rÁ  c                 ó<  •— d }| j                  d«      r%t        j                  }| j                  d«      dd  }n=| j                  d«      rt        }| j                  d«      dd  }n‰j	                  | «      S |}|D ]  }t        ||«      s| c S t        ||«      }Œ  |S )Nztorch.nnrG  r   rl   r    )rH  rl   r¼   rÃ  rÊ  rj  rm  )rÁ  rJ  rÉ  r  r  r#  s        €r`   Údeserialize_meta_funczKGraphModuleDeserializer.deserialize_metadata.<locals>.deserialize_meta_funcí	  s«   ø€ ØˆFØ ×+Ñ+¨JÔ7ÜŸ™�Ø*;×*AÑ*AÀ#Ó*FÀqÀrÐ*JÑ'Ø"×-Ñ-¨gÔ6Ü�Ø*;×*AÑ*AÀ#Ó*FÀqÀrÐ*JÑ'à×0Ñ0Ð1BÓCÐCàˆFØ/ò 3�Ü˜v tÔ,Ø,Ò,ä$ V¨TÓ2‘Fð	3ð
 ˆMr_   r…  c                 ó   — | ||ffS rc   r^   )Úkeyrˆ  r‰  s      r`   Úimport_nn_module_stackzLGraphModuleDeserializer.deserialize_metadata.<locals>.import_nn_module_stack
  s   € Ø˜T 2˜J�Ð&r_   c                 óþ   — g }d\  }}d\  }}t        | «      D ]>  \  }}||v r|dz  }Œ||v r|dz  }Œ|dk(  sŒ |dk(  sŒ&|j                  | || «       |dz   }Œ@ |j                  | |d  «       t        |«      dk(  sJ ‚|S )N)r   r   )z[(z)]r    r‡  r   é   )rW  r<  rà   )rN  ÚoutÚstartr±  rµ  r  Úendr²  s           r`   Úmetadata_splitzDGraphModuleDeserializer.deserialize_metadata.<locals>.metadata_split
  s¤   € Ø�Ø‘��qØ!‘��1Ü'¨Ó1ò (‘F�C˜Ø˜A‘vØ˜Q™™Ø˜a™Ø˜Q™™Ø˜c› a¨1£fØŸ
™
 8¨E°CÐ#8Ô9Ø # a¡™ð(ð —
‘
˜8 E FÐ+Ô,Ü˜3“x 1’}Ð$�}Ø�
r_   c              3   ó4   •K  — | ]  } ‰ ‰|«      Ž –— Œ y ­wrc   r^   )ro   r  r‰  r�  s     €€r`   rq   z?GraphModuleDeserializer.deserialize_metadata.<locals>.<genexpr>
  s#   øè ø€ ò #àñ '©°tÓ(<Ô=ñ#ùs   ƒr‹  r‡  rŒ  r�  )	rQ  r÷   rÞ   rÃ  rŽ  r<  rß   r¾   rÊ   )r#  rN  r‘  r„  r†  Únn_module_stack_strr…  Úsource_fn_st_strr“  Úsource_fn_strr  Ú
target_strÚtorch_fn_strÚ
custom_strr‰  r�  s   `             @@r`   r  z,GraphModuleDeserializer.deserialize_metadataè	  sO  ú€ Ø ˆØ"Ÿ,™, }Ó5Ð5ˆ;Ð5Ø!,ˆC�Ñð	´Sõ 	ð& #+§,¡,Ð/@Ó"AÐAÐÐAò'òô  #ô #à/×5Ñ5´lÓCô#ó ˆOð &5ˆCÐ!Ñ"à'Ÿ|™|Ð,=Ó>Ð>ÐÐ>àˆLØ!1×!7Ñ!7¼Ó!Eò O�Ø#0×#6Ñ#6°sÓ#;Ñ ��jØ×#Ñ# TÑ+@ÀÓ+LÐ$MÕNðOð &2ˆCÐ!Ñ"à#Ÿ<™<¨
Ó3Ð3ˆ<Ð3Ü# L×$6Ñ$6´|Ó$DÓEˆC�
‰Oà!Ÿ™ hÓ/Ð/ˆ:Ð/Ü ŸJ™J zÓ2ˆC�‰Màˆ
r_   rS  c                 ób  — t         j                  d|«       |j                  dk(  r*t        j                  |j
                  j                  ¬«      S |j                  dk(  r*t        j                  |j                  j                  ¬«      S |j                  dk(  r*t        j                  |j                  j                  ¬«      S |j                  dk(  r:t        j                  |j                  j                  | j                  |«      ¬«      S t        j                  d| j                  |«      ¬«      S )	Nz[deserialize_argument_spec] %sr,  rÉ  r.  rÆ  r2  r#  r³  )rë   r4  r   r:  rL   r,  r  rK   r.  rÄ  rI   rÆ  r4  r2  r  rV  s     r`   r!  z1GraphModuleDeserializer.deserialize_argument_spec,
  sÙ   € Ü�	‰	Ð2°AÔ6Ø�6‰6�[Ò Ü×$Ñ$¨!¯+©+×*:Ñ*:Ô;Ð;Ø�V‰V�|Ò#Ü×$Ñ$¨!¯,©,×*>Ñ*>Ô?Ð?Ø�V‰V�~Ò%Ü×&Ñ&¨A¯N©N×,BÑ,BÔCÐCØ�V‰V�Ò&Ü×&Ñ&¨A¯O©O×,@Ñ,@È×H^ÑH^Ð_`ÓHaÔbÐbä×&Ñ&¨B°d×6LÑ6LÈQÓ6OÔPÐPr_   rf  c           	      ó\  — t        j                  |j                  D �cg c]  }| j                  |«      ‘Œ c}|j                  D �cg c]  }| j                  |«      ‘Œ c}t        |j                  «      t        |j                  «      |j                  x}r|¬«      S d ¬«      S c c}w c c}w )Nrh  )	r:  r9   r  r!  r  r   ri  rj  rk  rl  s       r`   Ú!deserialize_module_call_signaturez9GraphModuleDeserializer.deserialize_module_call_signature9
  s°   € ô ×%Ñ%à;P×;WÑ;WöØ67�×.Ñ.¨qÕ1òð <Q×;XÑ;XöØ67�×.Ñ.¨qÕ1òô #Ð#8×#@Ñ#@ÓAÜ#Ð$9×$BÑ$BÓCØ1F×1XÑ1XÐ(X¨Ð(X˜eô

ð 
	
ð `dô

ð 
	
ùòùòs   žB$ÁB)
r  c           	      óâ   — t         j                  d«       |D �cg c]J  }t        j                  |j                  |j
                  r| j                  |j
                  «      nd ¬«      ‘ŒL c}S c c}w )Nz 
[deserialize_module_call_graph]rp  )rë   r4  r:  r8   rq  rŸ  r™  rr  s      r`   rO  z5GraphModuleDeserializer.deserialize_module_call_graphH
  sg   € ô 	�	‰	Ð5Ô6ð +ö

ð ô ×ÑØ—I‘Ið —’ð ×:Ñ:¸5¿?¹?ÔKàöò

ð 
	
ùò 

s   šAA,)r}   Nrc   )NN)Sr[   r\   r]   Údataclassesr   rº  r$  r   r   rÀ  r÷   rÆ  rÊ  r   r   r˜   r¦   rŸ   rˆ   rá  rÒ  rJ   rl   rè  rH   rë  rD   rî  rM   r   rÍ   r%   r:  rø  rB  r<   rú  r*   r  r   r  r.   r#  r>   r&  r-   r—  r(  r,   rÞ   r5  ry   r
   rß   r   r   rW  r  r  r  r  r:   r  r!   r  r$   r"  rn  r  r  rL   rK   rI   rx  r€  r{  r  r˜  r!  r9   r™  r8   rO  r^   r_   r`   rW   rW   A  sc  „ à×Ñ÷Rð Ró ðRó(ð ð 8¨D¡>ò ó ðð*-Àó -ð°có ñ,+-¨ð +-°8¸EÀ#ÀtÈUÐBRÑ<SÑ3Tð +-Ð`e×`jÑ`jó +-ðZ Vð °°c¸5¿<¹<Ð6GÑ0Hó ð& xð °E¸%ÀÇÁÐ:OÑ4Pó ð gð °%¸¸e¿m¹mÐ8KÑ2Ló ðàðð 
óð 
Ø0ð
à	×	Ñ	ó
ðP°(¸5ÀÇÁÇÁÐPSÐASÑ;TÑ2Uó Pð(r°%ð r¸E¿H¹H¿N¹Nó rðhM1°ð M1¸hð M1È4ó M1ð^3<¨	ð 3<°b·l±ló 3<ðj-=¨ð -=¸¿¹ó -=ð^
¨ð 
¸B×<SÑ<Só 
ð cgØQUñp)à!,ðp)ð  % T¨#¨u¯|©|Ð*;Ñ%<¸eÐ%CÑDðp)ð ˜˜c 3˜h™¨Ð.Ñ/ð	p)ð
 !  u¨U°5·<±<ÀÐ3DÑ-EÀtÈCÐQTÈHÁ~Ð-UÑ'VÐX]Ð']Ñ!^Ñ_ðp)ð ' t¨C°×1LÑ1LÐ,LÑ'MÑNðp)ð 
óp)ðdA ð A¨u¯x©x¯}©}ó AòLð&#¸$ó &#ðP%¨T°-Ñ-@ó %ðJ> Xð J>°#ó J>ðXV¨mð VÀó VòKð$M¸$ð MÈÏÉÏÉó Mð&D°4ð &DÀ%Ç(Á(Ç-Á-ó &DðP=ð —‘—‘ð=ð �> >Ð3CÐCÑDð	=ð
 ð=ð  $ C¨ H™~ó=ð<-Tð —‘—‘ð-Tð
  $ C¨ H™~ó-Tð^=Ø#ð=Ø.3¯h©h¯m©mð=à	ó=ð.B¨T°#°s°(©^ð BÀÀSÈ#ÀXÁó BðHQ¨8ð Q¸¿¹ó Qð
Ø%8ð
à	×	Ñ	ó
ð
Ø!% oÑ!6ð
à	ˆb× Ñ Ñ	!ô
r_   c                   ód  — e Zd Zddeeeef      fd„Zdeeej                  f   deee
j                  f   dee
j                  e	f   fd„Z	 ddd	œd
edeeeej                   f   ef   deeeej                   f   ef   deeeeej                   df   eeef   f   ef      dej                  f
d„Zy)rX   NÚexpected_opset_versionc                 óÀ   — i | _         |r| j                   j                  |«       d| j                   vr,t        j                  j	                  «       | j                   d<   y y r�  )r�  rŸ  rl   r  r   )r#  r�  s     r`   r$  z$ExportedProgramDeserializer.__init__[
  sR   € Ø68ˆÔ#Ù!Ø×'Ñ'×.Ñ.Ð/EÔFØ˜×4Ñ4Ñ4Ü27·(±(×2TÑ2TÓ2VˆD×'Ñ'¨Ò/ð 5r_   rÜ  rÓ  r}   c                 óð   — t         j                  d«       i }|j                  «       D ]K  \  }}|j                  |«      x}rt         j                  d||«       |||<   Œ6t         j	                  d|«       ŒM |S )Nz 
[deserialize_range_constraints]z([deserialize_range_constraints] %s -> %sz;Symbol %s did not appear in the graph that was deserialized)rë   r4  rd   rQ  rì   )r#  rÜ  rÓ  rù   rf   rg   Úsymbols          r`   Údeserialize_range_constraintsz9ExportedProgramDeserializer.deserialize_range_constraintsb
  s   € ô
 	�	‰	Ð5Ô6ØÐØ(×.Ñ.Ó0ò 	^‰DˆAˆqØ.×2Ñ2°1Ó5Ð5ˆvÐ5Ü—	‘	ÐDÀaÈÔKØ,-Ð! &Ò)ä—‘ÐYÐ[\Õ]ð	^ð !Ð r_   F©Ú_unsafe_skip_version_checkru   rv   rw   rx   .c                ó¸  — t        |t        «      sJ ‚|j                  }|j                  t        d   k7  r@|j                  dk(  r|j
                  dk(  s"|s t        d|j                  › dt        › d�«      ‚|j                  j                  «       D ��ci c]M  \  }}|t        j                  t        |j                  t         «      t        |j                  t        «      «      “ŒO }	}}t        «       j!                  |j"                  ||||	«      }
| j%                  |	|
j&                  «      }t)        j                  |
j"                  |
j"                  j*                  |
j,                  |
j.                  ||
j0                  |
j2                  |
j4                  |j6                  D �cg c]  }t9        |«      ‘Œ c}¬«	      }t:        j=                  d|«       |S c c}}w c c}w )Nr   zSerialized schema version z+ does not match our current schema version rG  )	Úrootrk  r  rv   rù   r  rx   rw   r¦  z
[deserialize]: %s)rk   r'   r¥  r¢  rB   r£  rZ   rù   rd   r   r   ró   Úmin_valr   Úmax_valrW   rW  rŒ  r¡  r¹  r:  rk  rŸ  rv   r  rx   rw   r¦  r   rë   r4  )r#  ru   rv   rw   rx   r£  Úversionrf   rg   rÜ  Úresrù   rq  s                r`   rW  z'ExportedProgramDeserializer.deserializeq
  s¿  € ô Ð*¬OÔ<Ð<Ð<Ø"×1Ñ1ˆð �=‰=œN¨1Ñ-Ò-°w·}±}ÈÒ7IÈgÏmÉmÐ_`ÒN`Ù-Ü$Ø0Ð1A×1PÑ1PÐ0Qð RAÜAOÐ@PÐPQðSóð ð )×:Ñ:×@Ñ@ÓB÷	 
ñ ��1ð Œ×*Ñ*Ü! !§)¡)¬f¨WÓ5Ô7HÈÏÉÔTZÓ7[óñ ð 
Ðñ  
ô $Ó%ß‰[Ø ×-Ñ-ØØØØ$óð 	ð !×>Ñ>Ø Ø× Ñ ó
Ðô
 ×#Ñ#Ø×!Ñ!Ø×"Ñ"×(Ñ(ØŸM™MØ—~‘~Ø/Ø!×3Ñ3Ø×-Ñ-Ø—m‘mØ1A×1KÑ1KÖL¨A”} QÕ'ÒLô

ˆô 	�	‰	Ð'¨Ô0ØˆùóC 
ùò< Ms   ÂAGÆGrc   )r[   r\   r]   r   rÞ   r÷   r˜   r$  r   r   rˆ   r—   r¡  r'   r   rl   r5  ry   rß   r
   r:  rW  r^   r_   r`   rX   rX   Y
  s  „ ñW¨x¸¸SÀ#¸X¹Ñ/Gó Wð!à" 3¨×(CÑ(CÐ#CÑDð!ð  $ C¨¯©Ð$5Ñ6ð!ð 
ˆe�l‰l˜KÐ'Ñ	(ó	!ð( cgð5ð $)ò5à)ð5ð ˜$˜s E§L¡LÐ0Ñ1°5Ð8Ñ9ð5ð ˜˜c 5§<¡<Ð/Ñ0°%Ð7Ñ8ð	5ð
 !  u¨U°5·<±<ÀÐ3DÑ-EÀtÈCÐQTÈHÁ~Ð-UÑ'VÐX]Ð']Ñ!^Ñ_ð5ð 
×	Ñ	ô5r_   rX   c                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )rÁ   c                 óÂ   •— t        |t        «      r|j                  S t        |t        «      r$t	        j
                  |«      j                  d«      S t        ‰| �!  |«      S )Nr»   )	rk   r   re   ry   Úbase64Ú	b64encoderË   Úsuperrò   )r#  r®  Ú	__class__s     €r`   rò   zEnumEncoder.defaultª
  sL   ø€ Ü�cœ4Ô Ø—9‘9ÐÜ�cœ5Ô!Ü×#Ñ# CÓ(×/Ñ/°Ó8Ð8Ü‰w‰˜sÓ#Ð#r_   )r[   r\   r]   rò   Ú__classcell__)r¯  s   @r`   rÁ   rÁ   ©
  s   ø„ ÷$ð $r_   rÁ   c           
      óö  — t        | t        «      r!| j                  t        | j                  «      iS t        j                  | «      rKt        j                  | «      D �ci c],  }|j                  t        t        | |j                  «      «      “Œ. c}S t        | t        «      r| D �cg c]  }t        |«      ‘Œ c}S t        | t        «      rt        d„ | D «       «      S t        | t        «      r-| j                  «       D ��ci c]  \  }}|t        |«      “Œ c}}S t        | t        «      r?| t        j                   k(  ry| t        j                    k(  ry| t        j"                  k(  ry| S | S c c}w c c}w c c}}w )Nc              3   ó2   K  — | ]  }t        |«      –— Œ y ­wrc   )rÀ   )ro   rS  s     r`   rq   z%_dataclass_to_dict.<locals>.<genexpr>½
  s   è ø€ Ò8¨qÔ'¨×*Ñ8ùs   ‚ÚInfinityz	-InfinityÚNaN)rk   rS   r   rÀ   re   r›  Úis_dataclassrV  r  rm  r  rß   rÞ   rd   rŸ   rí   rñ   Únan)r®  ÚfrS  rf   rg   s        r`   rÀ   rÀ   ²
  s4  € Ü�#”vÔØ—‘Ô,¨S¯Y©YÓ7Ð8Ð8Ü	×	!Ñ	! #Ô	&ô !×'Ñ'¨Ó,ö
àð �F‰FÔ&¤w¨s°A·F±FÓ';Ó<Ñ<ò
ð 	
ô 
�CœÔ	Ø/2Ö3¨!Ô" 1Õ%Ò3Ð3Ü	�CœÔ	ÜÑ8°CÔ8Ó8Ð8Ü	�CœÔ	Ø58·Y±Y³[×A©T¨Q°�Ô% aÓ(Ñ(ÓAÐAÜ	�CœÔ	Ø”$—(‘(Š?ØØ”T—X‘X�IÒØØ”D—H‘HŠ_ØàˆJàˆ
ùò)
ùò
 4ùó Bs   Á1E+Â&E0Ä E5r®  c                 ój   — t        j                  t        | «      t        d¬«      j	                  d«      S )NF)rº   Ú	allow_nanr»   )r¾   r¿   rÀ   rÁ   rÂ   )r®  s    r`   Ú_to_json_bytesrº  Í
  s'   € Ü�:‰:Ô(¨Ó-´;È%ÔP×WÑWÐX_Ó`Ð`r_   ru   r›  c                 óJ  — t        | j                  «      5  t        ||«      j                  | «      }d d d «       t	        j
                  t        «      sJ ‚t        |j
                  «      }t        ||j                  |j                  |j                  «      }|S # 1 sw Y   ŒhxY wrc   )r   rx   rV   rT   rk   ru   r'   rº  rt   rv   rw   )ru   r›  rÐ   Úserialized_programÚ
json_bytesrÏ   s         r`   rT   rT   Ñ
  sœ   € ô
 
0Ð0@×0OÑ0OÓ	Pñ 
Ü6°}ÀoÓV×`Ñ`Øó
Ð÷
ô Ð(×9Ñ9¼?ÔKÐKÐKäÐ 2× CÑ CÓD€JÜ!ØØ×%Ñ%Ø×$Ñ$Ø×)Ñ)ó	€Hð €O÷
ð 
ús   –BÂB"c           	      ó²  — t        | t        «      rJ d| › d�«       ‚t        j                  | «      t        k(  rt        | j                  |«      S t        j                  | «      t        j                  k(  rWt        d «      t        j                  | «      v r7|€y t        j                  | «      }t        |«      dk(  sJ ‚t        |d   |«      S t        | t        «      rµt        | t        «      r¥t        |t        «      sJ ‚t        |«      dk(  sJ ‚t        t        |j!                  «       «      «      }t        t        |j#                  «       «      «      }t        |t        «      sJ ‚| j$                  |   } | j&                  di |t        ||«      i¤ŽS t)        j*                  | «      rk | di |¤Ž}t        j,                  | «      }t)        j.                  | «      D ]4  }|j0                  }	t        ||	   t3        ||	«      «      }
t5        ||	|
«       Œ6 |S t        |t6        «      rBt        |«      dk(  r|S t        j                  | «      d   }|D �cg c]  }t        ||«      ‘Œ c}S t        |t        «      rFt        j                  | «      d   }|j9                  «       D ��ci c]  \  }}|t        ||«      “Œ c}}S | t:        k(  rt;        |«      S |S c c}w c c}}w )NzUnresolved class type: 'z'.r   r   r    r^   )rk   r÷   ÚtypingÚ
get_originr	   rÌ   Ú
__origin__r   r   Úget_argsrà   Ú
issubclassrS   rÞ   rL  Úiterr¡  r  rz   rš   r›  rµ  Úget_type_hintsrV  r  rm  Úsetattrr  rd   rŸ   )rº   ÚdataÚty_argsr   Ú_valueÚ
field_typer®  Ú
type_hintsr·  r  Únew_field_objÚd_typera   Úv_typerf   rg   s                   r`   rÌ   rÌ   æ
  sk  € Ü˜#œsÔ#ÐGÐ'?À¸uÀBÐ%GÓGÐ#Ü×Ñ˜Ó¤Ò*Ü! #§.¡.°$Ó7Ð7Ü×Ñ˜Ó¤§¡Ò-´$°t³*ÄÇÁÐPSÓ@TÑ2TØˆ<ØÜ—/‘/ #Ó&ˆÜ�7‹|˜qÒ Ð Ð Ü! '¨!¡*¨dÓ3Ð3Ü	�CœÔ	¤:¨c´6Ô#:Ü˜$¤Ô%Ð%Ð%Ü�4‹y˜AŠ~Ðˆ~Ü”T˜$Ÿ)™)›+Ó&Ó'ˆÜ”d˜4Ÿ;™;›=Ó)Ó*ˆÜ˜%¤Ô%Ð%Ð%Ø×(Ñ(¨Ñ/ˆ
Øˆs�z‰zÑL˜UÔ$6°zÀ6Ó$JÐKÑLÐLÜ	×	!Ñ	! #Ô	&Ù‰k�D‰kˆÜ×*Ñ*¨3Ó/ˆ
Ü×#Ñ# CÓ(ò 	.ˆAØ—6‘6ˆDÜ.¨z¸$Ñ/?ÄÈÈdÓASÓTˆMÜ�C˜˜}Õ-ð	.ð ˆ
Ü	�Dœ$Ô	Üˆt‹9˜Š>ØˆKÜ—‘ Ó% aÑ(ˆØ7;Ö<°!Ô" 6¨1Õ-Ò<Ð<Ü	�Dœ$Ô	Ü—‘ Ó% aÑ(ˆØ=A¿Z¹Z»\×J±T°Q¸�Ô% f¨aÓ0Ñ0ÓJÐJØ	”ŠÜ�T‹{ÐØ€Kùò =ùó Ks   ÉKÊKFr¢  r�  c                ó4  — t        | j                  t        «      sJ ‚| j                  j                  d«      }t	        j
                  |«      }t        t        |«      }t        |«      j                  || j                  | j                  | j                  |¬«      S )Nr»   r¢  )rk   ru   ry   rË   r¾   rÊ   rÌ   r'   rX   rW  rv   rw   rx   )rÏ   r�  r£  Úexported_program_strÚexported_program_dictÚserialized_exported_programs         r`   rW  rW    s�   € ô �h×/Ñ/´Ô7Ð7Ð7Ø#×4Ñ4×;Ñ;¸GÓDÐÜ ŸJ™JÐ';Ó<ÐÜ"4´_ÐF[Ó"\Ðä#Ð$:Ó;ß	‰Ø'Ø×ÑØ×ÑØ×#Ñ#Ø'Að 
ó 

ð	r_   c                 ó$  ‡ ‡‡‡‡‡— dt         fd„Šˆfd„Šˆˆˆ fd„} |‰j                  «      }t        |«      t        ‰j                  «      k(  sJ ‚i Šˆˆfd„}ˆfd„}‰ D ]  } ‰||«       Œ |D ]  }	|	j                  D ]  }
 ‰||
«       Œ Œ |D ]&  }	|	j                  D ]  } ‰||j
                  «       Œ Œ( |D ]  }
 ‰||
«       Œ |D ]  }	|	j                  j                  «        Œ t        t        ‰j                  j                  «       t        j                  d«      ¬«      «      }t        t        ‰j                  j                  «       t        j                  d«      ¬«      «      }t        t        ‰j                  j                  «       t        j                  d«      ¬«      «      }t        t        ‰j                   j                  «       t        j                  d«      ¬«      «      }t        t        ‰j"                  j                  «       t        j                  d«      ¬«      «      }d}|D ]¸  }|j                  D ]§  }|j
                  }|j$                  d	k(  sŒt'        |j(                  j*                  j                  |j(                  j*                  j                  |j(                  j*                  ‰«      \  |j(                  _        }d
|› �|j(                  _        |dz  }Œ© Œº t/        ‰ ||||||‰j0                  |¬«	      Š‰‰fS )Nrµ  c                 ó  — | j                   dk(  ry | j                   dk(  r| j                  S | j                   dk(  r| j                  S | j                   dk(  ry | j                   dk(  ry | j                   dk(  ry | j                   dk(  ry | j                   dk(  ry | j                   d	k(  ry | j                   d
k(  r| j                  S | j                   dk(  r| j                  S | j                   dk(  r| j
                  S | j                   dk(  r| j                  S | j                   dk(  ry | j                   dk(  ry | j                   dk(  ry | j                   dk(  ry | j                   dk(  ry | j                   dk(  ry | j                   dk(  r| j                  S | j                   dk(  r| j                  S | j                   dk(  ry | j                   dk(  r| j                  S | j                   dk(  r| j                  S | j                   dk(  ry t        d| › �«      ‚)NrÍ  r,  rV  r�   rÏ  rž   rÐ  rË  rÑ  r.  rÜ  rÆ  rÞ  rð  rò  ró  rñ  r¤   rÎ  rÈ  râ  rÂ  ré  r2  r÷  z+Unknown input type to the ExportedProgram: )r   r,  rV  r.  rÜ  rÆ  rÞ  rÈ  râ  ré  r2  r8  rç  s    r`   Ú_get_argumentz*_canonicalize_graph.<locals>._get_argument&  s×  € Ø�6‰6�YÒØØ�V‰V�{Ò"Ø—;‘;ÐØ�V‰V�|Ò#Ø—<‘<ÐØ�V‰V�xÒØØ�V‰V�yÒ ØØ�V‰V�zÒ!ØØ�V‰V�{Ò"ØØ�V‰V�{Ò"ØØ�V‰V�|Ò#ØØ�V‰V�|Ò#Ø—<‘<ÐØ�V‰V�}Ò$Ø—=‘=Ð Ø�V‰V�~Ò%Ø—>‘>Ð!Ø�V‰V�Ò&Ø—?‘?Ð"Ø�V‰VÐ'Ò'ØØ�V‰VÐ)Ò)ØØ�V‰V�{Ò"ØØ�V‰V�{Ò"ØØ�V‰V�yÒ ØØ�V‰V�zÒ!ØØ�V‰V�}Ò$Ø—=‘=Ð Ø�V‰V�~Ò%Ø—>‘>Ð!Ø�V‰V�zÒ!ØØ�V‰VÐ,Ò,Ø×(Ñ(Ð(Ø�V‰V�Ò&Ø—?‘?Ð"Ø�V‰V�}Ò$Øä Ð#NÈqÈcÐ!RÓSÐSr_   c                 ób   •— t        |t        «      sJ ‚t        j                  |  ‰|«      «       y rc   )rk   r!   rZ  Útree_map)r·  rµ  rÕ  s     €r`   Úfor_argsz%_canonicalize_graph.<locals>.for_args]  s&   ø€ Ü˜!œXÔ&Ð&Ð&Ü�‰˜™=¨Ó+Õ,r_   c                 ó0  •‡ ‡‡‡‡‡‡‡‡— t          G d„ d«      «       }t        «       Ši Ši Šg Ši Šg }dt        t           fd„Š‰D ]  }ˆˆfd„} ‰||«       Œ t	        ‰ «      D ]2  \  Š}ˆˆˆfd„}|j
                  D ]  } ‰||«       Œ  |g d«      ‰‰<   Œ4 t	        ‰ «      D ]3  \  Š}ˆˆˆˆˆˆfd„}	|j                  D ]  } ‰|	|j                  «       Œ Œ5 ˆˆfd	„}
ˆˆˆfd
„Š‰D ]  } ‰|
|«       Œ dt        fˆˆˆˆ fd„}‰j                  «       D ]  \  Š}|j                  dk(  sŒ |‰«       Œ t        ‰«      dkD  rÒt        j                  ‰«      \  }}Š‰ ‰   }|j
                  D ]  } ‰|
|«       Œ |j                  |«       ‰‰v sJ ‚‰‰   j                  D ]E  }‰|   }|j                  dkD  sJ ‚|xj                  dz  c_
        |j                  dk(  sŒ> ||«       ŒG ‰‰   j                  j!                  «        t        ‰«      dkD  rŒÒ|S )Nc                   ó(   — e Zd ZU ee   ed<   eed<   y)ú6_canonicalize_graph.<locals>.sort_nodes.<locals>.EdgesÚoutsÚinsN)r[   r\   r]   r  r˜   rz   r^   r_   r`   ÚEdgesrÛ  b  s   … à�s‘)‹OØŒHr_   rÞ  r}   c                 óà  — | €y t        | t        «      r| j                  S t        | t        t        t
        f«      r8| j                  dk(  r| j                  S | j                  dv ry t        d| › �«      ‚t        | t        «      rC| j                  dk(  r| j                  j                  S | j                  dk(  ry t        d| › �«      ‚t        | t        «      r| j                  S t        d| › �«      ‚)NrÄ  )r�   r¤   rž   úUnknown argument type: r,  rÍ  zUnknown optional tensor type: )rk   rL   r  rK   rE   rI   r   rÄ  r8  r=   r,  r%   rç  s    r`   rï  z9_canonicalize_graph.<locals>.sort_nodes.<locals>.get_namen  sØ   € ØˆyØÜ˜!œ^Ô,Ø—v‘v�Ü˜A¤´ÔAQÐRÔSØ—6‘6˜YÒ&ØŸ9™9Ð$Ø—V‘VÐ@Ñ@Øä(Ð+BÀ1À#Ð)FÓGÐGÜ˜AÔ5Ô6Ø—6‘6˜[Ò(ØŸ;™;×+Ñ+Ð+Ø—V‘V˜yÒ(Øä(Ð+IÈ!ÈÐ)MÓNÐNÜ˜AÔ0Ô1Ø—v‘v�ä$Ð'>¸q¸cÐ%BÓCÐCr_   c                 ó>   •—  ‰| «      x}r‰j                  |«       y y rc   )rØ  )rµ  r„   rï  Úgraph_inputss     €€r`   Ú	add_inputz:_canonicalize_graph.<locals>.sort_nodes.<locals>.add_inputˆ  s%   ø€ Ù  ›Ð#�1Ð#Ø ×$Ñ$ QÕ'ð $r_   c                 ó2   •—  ‰| «      x}r|‰vsJ ‚‰‰|<   y y rc   r^   )rµ  r„   Ú	def_tablerï  rZ  s     €€€r`   Úadd_defz8_canonicalize_graph.<locals>.sort_nodes.<locals>.add_def�  s.   ø€ Ù  ›Ð#�1Ð#Ø IÑ-Ð-Ð-Ø#&�I˜a’Lð $r_   r   c                 ó²   •—  ‰| «      x}rL|‰v ry |‰vr|‰v sJ ‚y ‰|   }‰|   j                   j                  ‰«       ‰‰   xj                  dz  c_        y y )Nr    )rÜ  r<  rÝ  )	rµ  r„   Úsrcrw   rå  Úedgesrï  râ  rZ  s	      €€€€€€r`   Úadd_edgez9_canonicalize_graph.<locals>.sort_nodes.<locals>.add_edgeœ  sk   ø€ Ù  ›Ð#�1Ð#Ø˜I‘~ØØ 	Ñ)Ø  LÑ0Ð0Ð0ØØ# A™,�CØ˜#‘J—O‘O×*Ñ*¨3Ô/Ø˜#‘J—N’N aÑ'–Nð $r_   c                 óD   •—  ‰| «      x}r|‰vsJ ‚t        ‰«      ‰|<   y y rc   )rà   )rµ  r„   rï  Úranks     €€r`   Úadd_rankz9_canonicalize_graph.<locals>.sort_nodes.<locals>.add_rankª  s0   ø€ Ù˜Q“KÐˆqÐØ ‘}Ð$�}Ü˜d›)��Q’ð  r_   c                 ó,   •—  ‰| «      }|r	|‰vr‰|   S y)NrD  r^   )rµ  r„   rw   rï  rì  s     €€€r`   Úget_rankz9_canonicalize_graph.<locals>.sort_nodes.<locals>.get_rank¯  s"   ø€ Ù˜“ˆAÙ�Q˜iÑ'Ø˜A‘w�àr_   rZ  c                 óÖ   •— ˆˆfd„}‰|    }|j                   D �cg c]   }|j                   ||j                  «      f‘Œ" }}t        j                  ‰|j
                  || f«       y c c}w )Nc                 ó(   •‡— g Š ‰ˆˆfd„| «       ‰S )Nc                 ó2   •— ‰j                   ‰| «      «      S rc   )r<  )rS  rï  Úrankss    €€r`   ú<lambda>zc_canonicalize_graph.<locals>.sort_nodes.<locals>.add_candidate.<locals>.get_ranks.<locals>.<lambda>¼  s   ø€  5§<¡<±¸³Ó#<€ r_   r^   )r°  ró  rØ  rï  s    @€€r`   Ú	get_rankszQ_canonicalize_graph.<locals>.sort_nodes.<locals>.add_candidate.<locals>.get_ranksº  s   ù€ Ø�ÙÔ<¸aÔ@Ø�r_   )r  r  rD  ÚheapqÚheappushr  )	rZ  rõ  r†   rµ  Ú	args_rankÚ
candidatesrØ  rï  r	  s	        €€€€r`   Úadd_candidatez>_canonicalize_graph.<locals>.sort_nodes.<locals>.add_candidate¹  s[   ø€ õð
 ˜‘:ˆDØ=A¿[¹[ÖI¸˜!Ÿ&™&¡)¨A¯E©EÓ"2Ò3ÐIˆIÐIÜ�N‰N˜:¨¯©°YÀÐ'DÕEùò Js   ›%A&r    )r   r­  r   r÷   rW  r  r  rD  r˜   rd   rÝ  rà   rö  Úheappopr<  rÜ  Úclear)r	  rÞ  r‘  r°  rã  r†   ræ  r$  r  rê  rí  rú  r–  r‰  rù  rå  ré  rï  rï  râ  rZ  rì  rw   rØ  Úsorted_inputss   `             @@@@@@@@€€€r`   Ú
sort_nodesz'_canonicalize_graph.<locals>.sort_nodesa  sI  ÿù€ Ü	÷	ð 	ó 
ð	ô "%£ˆØ$&ˆ	Ø"$ˆØIKˆ
Ø!ˆØˆð	Dœ8¤C™=ó 	Dð0 ò 	#ˆAõ(ñ �Y Õ"ð	#ô # 5Ó)ò 
	&‰IˆC�ö'ð
 —\‘\ò %�Ù˜ !Õ$ð%ñ ˜r 1›ˆE�#ŠJð
	&ô # 5Ó)ò 	*‰IˆC�÷	(ñ 	(ð —[‘[ò *�Ù˜ 1§5¡5Õ)ñ*ð	*õ 	$ö
	ð ò 	"ˆAÙ�X˜qÕ!ð	"ð	Fœs÷ 	Fð 	Fð —k‘k“mò 	#‰FˆC�Ø�u‰u˜‹zÙ˜cÕ"ð	#ô �*‹o Ò!ÜŸ™ jÓ1‰IˆAˆq�#Ø˜‘:ˆDØ—\‘\ò &�Ù˜ 1Õ%ð&à�J‰J�tÔØ˜%‘<Ð�<Ø˜c™
Ÿ™ò (�Ø˜$‘K�Ø—u‘u˜q’yÐ �yØ—’˜‘
•Ø—5‘5˜A“:Ù! $Õ'ð(ð �#‰J�O‰O×!Ñ!Ô#ô �*‹o Ó!ð ˆ
r_   c                 óŽ  •— ˆfd„}| €y t        | t        «      r# || j                  ‰j                  «      | _        y t        | t        «      r3| j
                  dk(  r# || j                  ‰j                  «      | _        y y t        | t        «      r3| j
                  dk(  r# || j                  ‰j                  «      | _        y y t        | t        «      r3| j
                  dk(  r# || j                  ‰j                  «      | _        y y t        | t        «      r# || j                  ‰j                  «      | _        y t        d| › �«      ‚)Nc                 ón   •— dt        ‰«      › �}| ‰vsJ ‚|‰| <   | |v sJ ‚|j                  | «      ||<   |S )Nr‰  )rà   Úpop)r  r  Únew_nameÚ
name_tables      €r`   ry  z8_canonicalize_graph.<locals>.rename_def.<locals>._renameß  sR   ø€ Øœ3˜z›?Ð+Ð,ˆHØ :Ñ-Ð-Ð-Ø#+ˆJ�xÑ Ø˜vÑ%Ð%Ð%Ø%Ÿz™z¨(Ó3ˆF�8ÑØˆOr_   rÄ  rà  )rk   rL   r  r
  rK   r   rÄ  r  rI   r  rE   r  r%   r  r8  )rµ  ry  rk  r  s     €€r`   Ú
rename_defz'_canonicalize_graph.<locals>.rename_defÞ  s  ø€ ô	ð ˆ9ØÜ�aœÔ(Ù˜QŸV™V U×%8Ñ%8Ó9ˆA�FÜ˜œ>Ô*Ø�v‰v˜Ò"Ù# A§I¡I¨u×/CÑ/CÓD�•	ð #ä˜Ô+Ô,Ø�v‰v˜Ò"Ù# A§I¡I¨u×/EÑ/EÓF�•	ð #ä˜œ?Ô+Ø�v‰v˜Ò"Ù# A§I¡I¨u×/DÑ/DÓE�•	ð #ä˜Ô,Ô-Ù˜QŸV™V U×%<Ñ%<Ó=ˆA�Fä Ð#:¸1¸#Ð!>Ó?Ð?r_   c                 ó&  •— | €y t        | t        «      r,‰j                  | j                  | j                  «      | _        y t        | t        t
        f«      r<| j                  dk(  r,‰j                  | j                  | j                  «      | _        y y t        | t        «      r<| j                  dk(  r,‰j                  | j                  | j                  «      | _        y y t        | t        «      rZ| j                  dk(  rJ‰j                  | j                  j                  | j                  j                  «      | j                  _        y y t        | t        «      r,‰j                  | j                  | j                  «      | _        y t        d| › �«      ‚)NrÄ  r,  rà  )rk   rL   rQ  r  rK   rI   r   rÄ  rE   r=   r,  r%   r8  )rµ  r  s    €r`   Úreplace_usez(_canonicalize_graph.<locals>.replace_useù  s  ø€ Øˆ9ØÜ�aœÔ(Ø—^‘^ A§F¡F¨A¯F©FÓ3ˆA�FÜ˜œNÔ,<Ð=Ô>Ø�v‰v˜Ò"Ø&ŸN™N¨1¯9©9°a·i±iÓ@�•	ð #ä˜œ?Ô+Ø�v‰v˜Ò"Ø&ŸN™N¨1¯9©9°a·i±iÓ@�•	ð #ä˜Ô1Ô2Ø�v‰v˜Ò$Ø#-§>¡>°!·+±+×2BÑ2BÀAÇKÁK×DTÑDTÓ#U�—‘Õ ð %ä˜Ô,Ô-Ø—^‘^ A§F¡F¨A¯F©FÓ3ˆA�Fä Ð#:¸1¸#Ð!>Ó?Ð?r_   r   ©rˆ  rÂ  Ú_gr    )	r  r  r	  r
  r  r  r  r  r  )r!   r	  rà   r  r  rD  rN  rü  rÞ   Úsortedr
  rd   r`  Ú
itemgetterr  r  r  r  r   Ú_canonicalize_graphrÂ  rk  r  r*   r  )rý  Úsorted_outputsrk  rw   rþ  Úsorted_nodesr  r  r°  r±  r$  Úsorted_tensor_valuesÚsorted_sym_int_valuesÚsorted_sym_float_valuesÚsorted_sym_bool_valuesÚsorted_custom_obj_valuesÚcounterr†   rµ  r‰  rÕ  rØ  r  s   ` ``                @@@r`   r  r  #  sã  ý€ ð4Tœó 4Tôn-öuñn ˜eŸk™kÓ*€LÜˆ|Ó¤ E§K¡KÓ 0Ò0Ð0Ð0ð "$€Jõ@ô6@ð& ò  ˆÙ�˜QÕð ð ò $ˆØ—‘ò 	$ˆAÙ�Z Õ#ñ	$ð$ð ò )ˆØ—‘ò 	)ˆAÙ�[ !§%¡%Õ(ñ	)ð)ð ò !ˆÙ�˜aÕ ð!ð ò ˆØ	�
‰
×ÑÕðô  ¤ u×':Ñ':×'@Ñ'@Ó'BÌ×H[ÑH[Ð\]ÓH^Ô _Ó`ÐÜ Üˆu×#Ñ#×)Ñ)Ó+´×1DÑ1DÀQÓ1GÔHóÐô #Üˆu×%Ñ%×+Ñ+Ó-´8×3FÑ3FÀqÓ3IÔJóÐô "Üˆu×$Ñ$×*Ñ*Ó,´(×2EÑ2EÀaÓ2HÔIóÐô  $Üˆu×&Ñ&×,Ñ,Ó.´H×4GÑ4GÈÓ4JÔKó Ðð
 €GØò ˆØ—‘ò 	ˆAØ—‘ˆAØ�v‰v˜Ó#Ü&9Ø—J‘J×$Ñ$×+Ñ+¨Q¯Z©Z×-=Ñ-=×-EÑ-EÀqÇzÁz×GWÑGWÐYbó'Ñ#�—
‘
Ô  !ð %' w i .�—
‘
”Ø˜1‘‘ñ	ðô ØØØØ*Ø,Ø0Ø.Ø %× =Ñ =Ø2ô
€Eð �*ÐÐr_   r:  rw   c                 óŽ  ‡‡— t        j                  | «      } |xs
 t        «       }t        t	        | j
                  j                  «       t        j                  d«      ¬«      «      }t        t	        | j                  j                  «       t        j                  d«      ¬«      «      }t	        | j                  j                  d„ ¬«      }| j                  j                  }| j                  j                  }t        |j                  «      t        |j                   «      k(  sJ ‚t        |j"                  «      t        |j$                  «      k(  sJ ‚dt&        t(        t*        t,           t(        f   fd„}dt&        t(        t*        t,           t(        f   fd„}t	        t/        t1        |j                  |j                   «      «      |¬«      }	t        |	«      dkD  rt1        d„ |	D «       Ž \  }
}nd}
d}t	        t/        t1        |j"                  |j$                  «      «      |¬«      }t1        d	„ |D «       Ž \  }}t3        |
|||«      \  }Šˆfd
„}ˆˆfd„}|D ]
  Š |‰«       Œ |D ]
  Š |‰«       Œ t5        t7        |t9        t;        |«      t;        |«      ¬«      |¬«      ||| j<                  | j>                  | j@                  ¬«      S )ak  
    Normalize a serialized ExportedProgram, so that different eager program which
    shares the same semantics can get a single representation on disk.

    This function canonicalizes an ExportedProgram by:

    1. Sorting nodes in topological order.
    2. Rename nodes to have unique names.
    3. Remove unstable fields.
    4. Aggregate the above program fields.
    5. Recurse in subgraphs.

    Args:
        ep (ExportedProgram): The ExportedProgram to canonicalize.
        constants (Optional[set[str]]): Set of constants names

    Returns:
        ExportedProgram: The canonicalized exported program.
    r   r  c                 ó   — | j                   S rc   )rq  )rS  s    r`   rô  zcanonicalize.<locals>.<lambda>`  s   € ÐPQ×PUÑPU€ r_   r}   c                 ó2  — | \  }\  }}t        |t        «      sJ ‚|j                  dk(  rdd |fS |j                  dk(  rd|j                  j                  |fS |j                  dk(  rd|j
                  j                  |fS |j                  dk(  rd|j                  j                  |fS |j                  d	k(  rd
|j                  j                  |fS |j                  dk(  rdd |fS |j                  dk(  rd|j                  j                  |fS t        d|› �«      ‚)Nr&  é   r)  r    rÙ   r   r-  r‹  r.  é   r0  r   r$  é   úUnknown input type: )rk   r.   r   r)  r(  rÙ   r*  r-  r,  r.  r  r$  r  r8  )rf  rZ  Ú_argr!  s       r`   Ú
rank_inputz canonicalize.<locals>.rank_inputg  s  € ØÑˆ‰\ˆd�DÜ˜$¤	Ô*Ð*Ð*Ø�9‰9˜Ò$Ø�d˜C�<ÐØ�Y‰Y˜+Ò%Ø�d—n‘n×3Ñ3°SÐ8Ð8Ø�Y‰Y˜(Ò"Ø�d—k‘k×-Ñ-¨sÐ2Ð2Ø�Y‰YÐ+Ò+Ø�d×*Ñ*×?Ñ?ÀÐDÐDØ�Y‰Y˜,Ò&Ø�d—o‘o×5Ñ5°sÐ:Ð:Ø�Y‰Y˜'Ò!Ø�d˜C�<ÐØ�Y‰YÐ*Ò*Ø�d×)Ñ)×.Ñ.°Ð3Ð3ä Ð#7¸°vÐ!>Ó?Ð?r_   c                 óº  — | \  }\  }}t        |t        «      sJ ‚|j                  dk(  rdd |fS |j                  dk(  rdd |fS |j                  dk(  rd|j                  j                  |fS |j                  dk(  rd|j
                  j                  |fS |j                  dk(  rd	d |fS |j                  d
k(  rdd |fS |j                  dk(  rdd |fS t        d|› �«      ‚)Nr>  r‹  r?  r@  r    rA  r  rC  r  rD  r   r0  r   úUnknown output type: )rk   r>   r   r@  r*  rA  r(  r8  )rŒ  rZ  r  r!  s       r`   Úrank_outputz!canonicalize.<locals>.rank_output{  sù   € ØÑˆ‰\ˆd�DÜ˜$¤
Ô+Ð+Ð+Ø�9‰9˜Ò%Ø�d˜C�<ÐØ�Y‰Y˜-Ò'Ø�d˜C�<ÐØ�Y‰YÐ+Ò+Ø�d×*Ñ*×6Ñ6¸Ð;Ð;Ø�Y‰YÐ1Ò1Ø�d×0Ñ0×?Ñ?ÀÐDÐDØ�Y‰YÐ2Ò2Ø�d˜C�<ÐØ�Y‰YÐ/Ò/Ø�d˜C�<ÐØ�Y‰Y˜'Ò!Ø�d˜C�<Ðä Ð#8¸¸Ð!?Ó@Ð@r_   c              3   ó&   K  — | ]	  \  }}|–— Œ y ­wrc   r^   ©ro   rZ  r°  s      r`   rq   zcanonicalize.<locals>.<genexpr>”  s   è ø€ Ò*F±°°a¬1Ñ*Fùó   ‚r^   c              3   ó&   K  — | ]	  \  }}|–— Œ y ­wrc   r^   r!  s      r`   rq   zcanonicalize.<locals>.<genexpr>œ  s   è ø€ Ò(E©v¨s°A¬Ñ(Eùr"  c                 ó  •— t        | t        «      sJ ‚| j                  dk(  �r| j                  j                  }|j                  dk(  r!|j
                  }‰|j                     |_        y |j                  dk(  rN|j                  }|j                  dk(  r‰|j                     |_        y |j                  dk(  ry t        d|› �«      ‚|j                  dk(  rN|j                  }|j                  dk(  r‰|j                     |_        y |j                  dk(  ry t        d	|› �«      ‚|j                  d
v ry t        d|› �«      ‚| j                  dk(  r+| j                  j                  }‰|j                     |_        y | j                  dk(  r+| j                  j                  }‰|j                     |_        y | j                  dk(  r+| j                  j                  }‰|j                     |_        y | j                  dk(  r+| j                  j                  }‰|j                     |_        y | j                  dk(  r+| j                  j                  }‰|j                     |_        y | j                  dk(  ry t        d| › �«      ‚)Nr&  r,  r.  rÄ  r�   úUnknown sym_int type: rÆ  rž   úUnknown sym_float type: )rÍ  r¤   r�   rž   rË  r2  r  r)  rÙ   r-  r.  r0  r$  )rk   r.   r   r&  rD  r,  r  r.  rÄ  r8  rÆ  r)  rÙ   r-  r.  r0  )r!  rD  r©   r„   r·  Út_custom_objÚtokÚreplace_tables          €r`   Úreplace_inputz#canonicalize.<locals>.replace_input¢  s#  ø€ Ü˜$¤	Ô*Ð*Ð*Ø�9‰9˜Ó$Ø—/‘/×%Ñ%ˆCØ�x‰x˜;Ò&Ø—M‘M�Ø& q§v¡vÑ.�•Ø—‘˜\Ò)Ø—N‘N�Ø—6‘6˜YÒ&Ø -¨a¯i©iÑ 8�A•IØ—V‘V˜xÒ'Øä(Ð+AÀ!ÀÐ)EÓFÐFØ—‘˜^Ò+Ø×$Ñ$�Ø—6‘6˜YÒ&Ø -¨a¯i©iÑ 8�A•IØ—V‘V˜zÒ)Øä(Ð+CÀAÀ3Ð)GÓHÐHØ—‘ð ñ ð ä$Ð';¸C¸5Ð%AÓBÐBØ�Y‰Y˜+Ò%Ø—‘×"Ñ"ˆAØ" 1§6¡6Ñ*ˆA�FØ�Y‰Y˜(Ò"Ø—‘—‘ˆAØ" 1§6¡6Ñ*ˆA�FØ�Y‰YÐ+Ò+Ø×$Ñ$×(Ñ(ˆAØ" 1§6¡6Ñ*ˆA�FØ�Y‰Y˜,Ò&ØŸ?™?×.Ñ.ˆLØ -¨l×.?Ñ.?Ñ @ˆLÔØØ�Y‰Y˜'Ò!Ø—*‘*—.‘.ˆCØ$ S§X¡XÑ.ˆC�HØ�Y‰YÐ*Ò*Øä Ð#7¸°vÐ!>Ó?Ð?r_   c                 óÎ  •— t        ‰	t        «      sJ ‚‰	j                  dk(  �r‰	j                  j                  }|j                  dk(  r!|j
                  }‰|j                     |_        y |j                  dk(  rN|j                  }|j                  dk(  r‰|j                     |_        y |j                  dk(  ry t        d|› �«      ‚|j                  dk(  rN|j                  }|j                  dk(  r‰|j                     |_        y |j                  dk(  ry t        d	|› �«      ‚|j                  d
v ry t        d|› �«      ‚‰	j                  dk(  r+‰	j                  j                  }‰|j                     |_        y ‰	j                  dk(  r+‰	j                  j                  }‰|j                     |_        y ‰	j                  dk(  r+‰	j                  j                  }‰|j                     |_        y ‰	j                  dk(  rI‰	j                  }‰|j                  j                     |j                  _        ‰|j                     |_        y ‰	j                  dk(  rI‰	j                   }‰|j                  j                     |j                  _        ‰|j                     |_        y ‰	j                  dk(  r+‰	j"                  j                  }‰|j                     |_        y t        d‰	› �«      ‚)Nr>  r,  r.  rÄ  r�   r%  rÆ  rž   r&  )rÍ  r¤   r�   rž   rË  r  r?  r@  rA  rC  rD  r0  r  )rk   r>   r   r>  rD  r,  r  r.  rÄ  r8  rÆ  r?  r@  rA  rC  rB  rD  r0  )
rŒ  rD  r©   r„   r·  ÚgÚur(  r)  r!  s
           €€r`   Úreplace_outputz$canonicalize.<locals>.replace_outputÙ  sk  ø€ Ü˜$¤
Ô+Ð+Ð+Ø�9‰9˜Ó%Ø×"Ñ"×&Ñ&ˆCØ�x‰x˜;Ò&Ø—M‘M�Ø& q§v¡vÑ.�•Ø—‘˜\Ò)Ø—N‘N�Ø—6‘6˜YÒ&Ø -¨a¯i©iÑ 8�A•IØ—V‘V˜xÒ'Øä(Ð+AÀ!ÀÐ)EÓFÐFØ—‘˜^Ò+Ø×$Ñ$�Ø—6‘6˜YÒ&Ø -¨a¯i©iÑ 8�A•IØ—V‘V˜zÒ)Øä(Ð+CÀAÀ3Ð)GÓHÐHØ—‘ÐVÑVØä$Ð';¸C¸5Ð%AÓBÐBØ�Y‰Y˜-Ò'Ø× Ñ ×$Ñ$ˆAØ" 1§6¡6Ñ*ˆA�FØ�Y‰YÐ+Ò+Ø×$Ñ$×(Ñ(ˆAØ" 1§6¡6Ñ*ˆA�FØ�Y‰YÐ1Ò1Ø×*Ñ*×.Ñ.ˆAØ" 1§6¡6Ñ*ˆA�FØ�Y‰YÐ2Ò2Ø×+Ñ+ˆAØ& q§u¡u§z¡zÑ2ˆA�E‰EŒJØ -¨a×.?Ñ.?Ñ @ˆAÕØ�Y‰YÐ/Ò/Ø×(Ñ(ˆAØ& q§u¡u§z¡zÑ2ˆA�E‰EŒJØ -¨a×.?Ñ.?Ñ @ˆAÕØ�Y‰Y˜'Ò!Ø—*‘*—.‘.ˆCØ$ S§X¡XÑ.ˆC�Hä Ð#8¸¸Ð!?Ó@Ð@r_   rO  )rk  rŸ  r  r¤  )!ÚcopyÚdeepcopyr­  rÞ   r	  r›  rd   r`  r
  rù   rŒ  r  rŸ  rk  rà   r  rP  r  rQ  rß   r˜   r   r÷   rW  r¢  r  r'   r,   r-   r  r¥  r¦  r§  )r:  rw   r›  rù   r  rŸ  rk  r  r  Ú
sorted_insrý  rP  Úsorted_outsr  rQ  Úsorted_graphr*  r.  r)  r!  s                     @@r`   r¬  r¬  G  sm  ù€ ô( 
�‰�rÓ	€BØ#Ò,¤s£u€Iäœ × 0Ñ 0× 6Ñ 6Ó 8¼h×>QÑ>QÐRSÓ>TÔUÓV€MÜœV B×$8Ñ$8×$>Ñ$>Ó$@Äh×FYÑFYÐZ[ÓF\Ô]Ó^ÐÜ˜rŸ™×@Ñ@ÁoÔVÐØ—‘×)Ñ)€IØ�O‰O×!Ñ!€Eäˆu�|‰|Ó¤ I×$9Ñ$9Ó :Ò:Ð:Ð:Üˆu�}‰}Ó¤ Y×%;Ñ%;Ó!<Ò<Ð<Ð<ð@œ5¤¤h¬s¡m´SÐ!8Ñ9ó @ð(AœE¤#¤x´¡}´cÐ"9Ñ:ó Aô( Ü”#�e—l‘l I×$9Ñ$9Ó:Ó;Àô€Jô ˆ:ƒ˜ÒÜ%(Ñ*F¸:Ô*FÐ%GÑ"ˆ‘{àˆØˆäÜ”#�e—m‘m Y×%;Ñ%;Ó<Ó=À;ô€Kô $'Ñ(E¸Ô(EÐ#FÑ €N�Lä"5Ø�~ u¨ió#Ñ€L�-ô5@õn0Aðd ò ˆÙ�dÕðð ò ˆÙ�tÕðô Ü ØÜ$Ü  Ó-Ü! ,Ó/ôð 0ô
ð $Ø+Ø×(Ñ(Ø—,‘,Ø×&Ñ&ôð r_   c                   ó|   — e Zd ZdZedefd„«       Zedefd„«       Zedefd„«       Zede	j                  fd„«       Zy)	ÚExtensionHandlerz6
    Base class for handling extension operators.
    r}   c                 ó2   — t        | j                  › d�«      ‚)Nz  namespace() must be implemented©r�  r¯  r¹   s    r`   rq  zExtensionHandler.namespace&  ó   € ä! S§]¡] OÐ3SÐ"TÓUÐUr_   c                 ó2   — t        | j                  › d�«      ‚©Nz op_name() must be implementedr7  ©rº   rp   s     r`   rr  zExtensionHandler.to_op_name*  ó   € ä! S§]¡] OÐ3QÐ"RÓSÐSr_   r  c                 ó2   — t        | j                  › d�«      ‚r:  r7  )rº   r  s     r`   rÅ  zExtensionHandler.from_op_name.  r<  r_   c                 ó2   — t        | j                  › d�«      ‚)Nz  op_schema() must be implementedr7  r;  s     r`   r  zExtensionHandler.op_schema2  r8  r_   N)r[   r\   r]   Ú__doc__Úclassmethodr÷   rq  rr  rÅ  rl   ÚFunctionSchemar  r^   r_   r`   r5  r5  "  s…   „ ñð ðV˜#ò Vó ðVð ðT˜sò Tó ðTð ðT ò Tó ðTð ðV˜e×2Ñ2ò Vó ñVr_   r5  Úop_typeÚextension_handlerc                 ób  — t        |t        «      sJ d|› d�«       ‚| t        vs
J | › d�«       ‚t        | t        «      sJ ‚| j
                  j                  d«      s| j
                  j                  d«      rJ ‚|j                  «       t        vsJ ‚|t        | <   |t        |j                  «       <   y)zJRegister custom de/serialization method for a node with non-standard type.zExpected ExtensionHandler, got rG  z is already registered.rl   ÚbuiltinsN)	rÃ  r5  r   rk   r   r\   rH  rq  rÄ  )rB  rC  s     r`   Úregister_extensionrF  7  sº   € ô
 Ð'Ô)9Ô:ÐrÐ>]Ð^oÐ]pÐpqÐ<rÓrÐ:ØÔ1Ñ1ÐV°g°YÐ>UÐ3VÓVÐ1Ü�gœtÔ$Ð$Ð$Ø×"Ñ"×-Ñ-¨gÔ6¸'×:LÑ:L×:WÑ:WÐXbÔ:cÐdÐdØ×&Ñ&Ó(Ô0IÑIÐIÐIØ'8Ô˜GÑ$Ø?PÔÐ/×9Ñ9Ó;Ò<r_   c                  ó<   — t        t        j                  «       «      S rc   )rß   r   r¡  r^   r_   r`   r«  r«  E  s   € ÜÜ×$Ñ$Ó&óð r_   r   rÄ  rc   (  r¬  r/  rÒ   r›  rö  rž  rÕ   r¾   r^  Úloggingrí   r`  r’  r¿  Úcollectionsr   r   Ú
contextlibr   r   r   Úenumr   r	   r
   r   r   r   r   r   Úcollections.abcr   rˆ   rl   Útorch.export.exported_programÚexportru   r:  Útorch._export.verifierr   Útorch._export.non_strict_utilsr   Ú"torch._library.fake_class_registryr   Útorch._subclasses.fake_tensorr   r   Útorch.fx.experimentalr   Útorch.utilsr   rZ  Útorch.utils._pytreer   r   Útorch.utils._sympy.numbersr   Útorch.utils._sympy.symbolr   r   Útorch.utils._sympy.value_rangesr   rG  r   rª  r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   ÚunionrS   Ú__all__Ú	getLoggerr[   rë   rî   rZ   rÞ   rh   r˜   rŸ   r¦   ÚMetaTyperµ  rŽ  Úuint8ÚBYTEÚint8ÚCHARÚuint16ÚUINT16Úint16ÚSHORTÚint32ÚINTÚint64ÚLONGÚfloat16ÚHALFÚfloat32ÚFLOATÚfloat64ÚDOUBLEÚ	complex32ÚCOMPLEXHALFÚ	complex64ÚCOMPLEXFLOATÚ
complex128ÚCOMPLEXDOUBLEÚBOOLÚbfloat16ÚBFLOAT16Úfloat8_e4m3fnÚFLOAT8E4M3FNÚfloat8_e5m2Ú
FLOAT8E5M2r±   rö  Ú
sparse_cooÚ	SparseCooÚ
sparse_csrÚ	SparseCsrÚ
sparse_cscÚ	SparseCscÚ
sparse_bsrÚ	SparseBsrÚ
sparse_bscÚ	SparseBscÚ_mkldnnÚstridedÚStridedr´   rl  Úcontiguous_formatÚContiguousFormatÚchannels_lastÚChannelsLastÚchannels_last_3dÚChannelsLast3dÚpreserve_formatÚPreserveFormatr  rk  ÚeqÚneÚleÚgeÚltÚgtÚnegÚposÚtruncÚsym_notÚmulrØ  ÚsubÚfloordivÚmodÚpowÚsym_intÚ	sym_floatÚsym_iteÚsym_maxÚsym_minÚsym_sqrtÚtruedivÚand_rb  Úanyrt   r|   r‚   rƒ   rá  r�   r›   r¡   r¨   r5  rµ   r¶   rz   rÇ   ry   rÃ   rÚ   r÷   rß   rã   rï   ró   r—   rø   rý   r  r  r   r  rU   rV   rW   rX   ÚJSONEncoderrÁ   rÀ   rº  rT   rÌ   rW  r  r­  r¬  r5  rF  r«  r   rÄ  r^   r_   r`   ú<module>rª     sm  ðä Û Û Û Û Û Û 	Û Û Û Û Û Û Û ç /Ý %ß (Ý ÷÷ ñ õ %ã ã ß *Ð *Ý 0Ý QÝ ?ß DÝ 1Ý )ß >Ý -ß 6Ý 7å 0÷3÷ 3÷ 3÷ 3÷ 3÷ 3÷ 3÷ 3÷ 3÷ 3÷ 3÷ 3÷ 3õh ò€ð €g×Ñ˜Ó!€ô	�\ô 	ð.�D˜˜d˜‘Oó .ð Ø��U—\‘\ 5¨%¯.©.¸$ÀÇÁÈr×OcÑOcÐcñ€ð Ð à€ðØ	‡K‚K�—’ðà	‡J‚J�
—’ðð 
‡L‚L�*×#Ò#ðð 
‡K‚K�×!Ò!ð	ð
 
‡K‚K�—’ðð 
‡K‚K�—’ðð 
‡M‚M�:—?’?ðð 
‡M‚M�:×#Ò#ðð 
‡M‚M�:×$Ò$ðð 
‡O‚O�Z×+Ò+ðð 
‡O‚O�Z×,Ò,ðð 
×Ò�j×.Ò.ðð 
‡J�J�
—’ðð 
‡N‚N�J×'Ò'ðð 
×Ò˜×0Ò0ðð  
×Ò�z×,Ò,ð!Ð ñ( )Ð)BÓCÐ ð 
×Ò�f×&Ò&Ø	×Ò�f×&Ò&Ø	×Ò�f×&Ò&Ø	×Ò�f×&Ò&Ø	×Ò�f×&Ò&Ø	‡M‚M�6—>’>Ø	‡M‚M�6—>’>ðÐ ñ *Ð*DÓEÐ ð 
×Ò˜\×:Ò:Ø	×Ò˜×2Ò2Ø	×Ò˜L×7Ò7Ø	×Ò˜<×6Ò6ð	%Ð !ñ %1Ð1RÓ$SÐ !ð ‡K‚KØ‡K‚KØ‡K‚KØ‡K‚KØ‡K‚KØ‡K‚KØ‡L‚LØ‡L‚LØ‡J‚JØ	‡M‚MØ‡L‚LØ‡L‚LØ‡L‚LØ×ÒØ‡L‚LØ‡L‚LØ	‡M‚MØ	‡O‚OØ	‡M‚MØ	‡M‚MØ	‡M‚MØ	‡N‚NØ×ÒØ‡M‚Mð1€ñ8 ÑH¸xÔHÔHÐ HÐHà
÷ð ó ðð ÷ð ó ðð4˜&ð 4 U§\¢\ó 4ð(�E˜%Ÿ,™,¨¯©°u·~±~ÀuÇzÂzÐQÑRó (ð
˜˜s E§L¡LÐ0Ñ1ð 
°fó 
ð(
˜5 ¨¯©Ð!6Ñ7ð 
¸Hó 
ð(
˜%  e§m¡mÐ 3Ñ4ð 
¸ó 
ð˜UŸ\š\ð ¨jó ð >BÐ �xÐ 9Ñ:Ó AðG Zó GðØ!ðØ15ðàóð  Neñ / x°¡}ð /Àsð /Ðinó /ð,
¨5°°c¸3°h±ÀÀsÈCÀxÁÐRWÐ1WÑ+Xó 
ð?˜5Ÿ:š:ð ?¨sð ?°xÀ±}ó ?ð0˜8 C™=ð °e·j²jó ð5�u—|’|ð 5¨tó 5ð	Ø˜EŸLšL¨+Ð5Ñ6ð	à	ˆ#ˆÐ
Ñó	òAð ÷	Rð 	Ró ð	RôCˆDô Cð ô{
 eô {
ó ð{
ð|! ô;
¨%ô ;
ó ð;
ð| ôT
¨ô T
ó ðT
ðn  ôL¨Eô Ló ðLô^$�$×"Ò"ô $òð6a˜ð a ó að /3Ø2ñØ×(Ñ(ðà˜D  c ™NÑ+ðð ðð ó	ò*$ðR 8<ðð  %ò	Ø ðà$ T¨#¨s¨(¡^Ñ4ðð
 ×Ñóð,aà
ˆ5�$�s˜C�x‘.Ð Ñ!óañH	X�_ð X°¹#¸c¹(Ñ1Cð XÈô X÷vVò Vð*QØ�#‰YðQàÑ,Ñ-ôQóð DFÑ ˜˜d 3™i¨Ñ.>Ñ)?Ð?Ñ@Ó EØ?AÑ ˜4  TÑ*:Ñ%;Ð ;Ñ<Ô Ar_   