ó
    Eñik¼ ã                   ó˜  • % S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	r	S SK
r
S SKrS SKrS SKrS SKrS SKJrJr  S SKJrJrJrJr  S SKJr  S SKJrJr  S SKJr  S SKJrJrJrJ r J!r!J"r"  S SK#r#S SK$r$S SK%J&s  J'r(  S SK)J*r*  S S	K+J,r,  S S
K-J.r.J/r/  S SK0J1r1  S SK2J3r3  S SK4J5r5  S SK6J7r8  S SK9J:r:J;r;  S SK<J=r=  S SK>J?r?J@r@  S SKAJBrB  S SKCJDrD  S SKEJFrF  SSKGJHrH  SSKIJJrJ  SSKJJKrKJLrLJMrMJNrNJOrOJPrPJQrQJRrRJSrSJTrTJUrUJVrVJWrWJXrXJYrYJZrZJ[r[J\r\J]r]J^r^J_r_J`r`JaraJbrbJcrcJdrdJereJfrfJgrgJhrhJiriJjrjJkrkJlrlJmrmJnrnJoroJprpJqrqJrrrJsrsJtrtJuruJvrvJwrwJxrxJyryJzrzJ{r{J|r|J}r}J~r~  SSKJ€r€  / SQr�\	GR                  " \ƒ5      r„ " S S\…5      r†S\‡\\4   4S jrˆ\"\.\‰\$Rì                  \Š\$Rè                  \‹\$Rà                  \(R                   4   rŒSr�S rŽ0 \$GR                  \mGR                   _\$GR"                  \mGR$                  _\$GR&                  \mGR(                  _\$GR*                  \mGR,                  _\$GR.                  \mGR0                  _\$GR2                  \mGR4                  _\$GR6                  \mGR8                  _\$GR:                  \mGR<                  _\$GR>                  \mGR@                  _\$GRB                  \mGRD                  _\$GRF                  \mGRH                  _\$GRJ                  \mGRL                  _\$GR                  \mGRN                  _\$GRP                  \mGRR                  _\$GRT                  \mGRV                  _\$GRX                  \mGRZ                  _\$GR\                  \mGR^                  _\$GR`                  \mGRb                  0Er²\ˆ" \²5      r³\$GRh                  \`GRj                  \$GRl                  \`GRn                  \$GRp                  \`GRr                  \$GRt                  \`GRv                  \$GRx                  \`GRz                  \$GR|                  \`GR|                  \$GR~                  \`GR€                  0rÁ\ˆ" \Á5      rÂ\$GR†                  \bGRˆ                  \$GRŠ                  \bGRŒ                  \$GRŽ                  \bGR�                  \$GR’                  \bGR”                  0rË\ˆ" \Ë5      rÌ\GRš                  \GRœ                  \GRž                  \GR                   \GR¢                  \GR¤                  \GR¦                  \GR¨                  \
GRª                  \$GR¬                  \GR®                  \GR°                  \GR²                  \GR´                  \GR¶                  \GR¸                  \$GRº                  \$GR¼                  \$GR¾                  \$GRÀ                  \$GRÂ                  \$GRÄ                  \GRÆ                  \GRÈ                  \GRÊ                  \GRÌ                  \GRÎ                  1rè\é" S! \è 5       5      (       a  \ê" S"5      e\ " S# S$5      5       rë\ " S% S&5      5       rì " S' S(\‡5      ríS\QS)\$GRÜ                  4S* jrïS+\\v   S)\ð\‰S,4   4S- jrñS.\\v   S)\ð\‰S,4   4S/ jròS0\mS)\$GRæ                  4S1 jrôS2\vS)\‰4S3 jrõS4\"\$Rì                  \$Rà                  \$Rè                  \#GRì                  4   4S5 jr÷S4\"\‰\$Rì                  4   S)\v4S6 jrøS4\"\Š\$Rè                  4   S)\t4S7 jrùS4\"\‹\$Rà                  4   S)\p4S8 jrúS9\$GRö                  S)\y4S: jrüSqý\!S;   \þS<'   S=\.4S> jrÿS?G\ S@\‹S)\.4SA jGr\�4SB\!\   SC\‰S)G\ 4SD jjGrSE\"\‡G\\4   \ð\S,4   G\ 4   4SF jGrSG\#GRì                  SHG\S)\!\‰   4SI jGrSG\!\‰   S)\#GRì                  4SJ jGrSK\#GR                  SL\@4SM jGrSN\‡\#GR                  \B4   S)\‡G\\l4   4SO jGr	SP Gr
\ " SQ SR5      5       Gr " SS STG\5      GrSU GrSV\$GR                  RÎ                  4SW jGr\  " SX SYG\SZ95       Gr\  " S[ S\G\SZ95       Gr\  " S] S;G\SZ95       Gr\  " S^ S_G\SZ95       Gr " S` Sa\GR*                  5      GrSb GrSc\S)G\ 4Sd jGrS\�4Se\(R¤                  Sf\!\‡G\\‰4      SC\‰S)\ë4Sg jjGrSh GrSi GrSj\SkG\ S)\4Sl jGr S}SmSn.SB\ëSo\!\‡G\\‰4      S)\(R¤                  4Sp jjjGrS)\ð\U\‡G\G\4   4   4Sq jGr S}Sr\RSs\!G\G\      S)\R4St jjGr  " Su Sv5      Gr!SwG\\   SxG\G\!   4Sy jGr"Sz Gr#0 Gr$\‡G\\   G\G\!   4   \þS{'   0 Gr%\‡G\G\G\!   4   \þS|'   g)~é    N)Ú
namedtupleÚOrderedDict)ÚCallableÚIterableÚIteratorÚSequence)Úcontextmanager)Ú	dataclassÚfield)ÚEnum)Ú	AnnotatedÚAnyÚcastÚfinalÚOptionalÚUnion)Ú&_enable_graph_inputs_of_type_nn_module)Úload_verifier)Ú
FakeTensorÚFakeTensorMode)Ú_ConstantAttributeType)Úsymbolic_shapes)Ú
NodeSource)Ú_pytree)Útreespec_dumpsÚtreespec_loads)Úint_oo)Ú
prefix_strÚSymT)ÚValueRanges)ÚCapturedTraceback)Ú
has_tritoné   )Úremove_proxy_from_state_dicté   )Úschema)4ÚArgumentÚArgumentKindÚBufferMutationSpecÚComplexValueÚ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ÚParameterMutationSpecÚ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                   ó   • \ rS rSrSrg)ÚSerializeErrorép   © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__static_attributes__rd   ó    ÚZ/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torch/_export/serde/serialize.pyrb   rb   p   s   † Úrj   rb   Údc                 ón   • U R                  5        VVs0 s H  u  pUR                  U_M     snn$ s  snnf ©N)ÚitemsÚvalue)rl   ÚkÚvs      rk   Ú_reverse_maprs   t   s*   € Ø#$§7¡7¤9Ô-¢9™4˜1ˆA�G‰G�QŠJ¡9Ò-Ð-ùÓ-s   ”1Ú;c              #   ój   #   • U  H)  n[        U[        R                  R                  5      v •  M+     g 7frn   )Ú
isinstanceÚtorchÚ_opsÚ
OpOverload)Ú.0Úops     rk   Ú	<genexpr>r|   ×   s$   é € Ð@²x°„z�"”e—j‘j×+Ñ+×,Ð,²xùó   ‚13z0_SYM_OPS should not contain OpOverload instancesc                   ó>   • \ rS rSr% \\S'   \\S'   \\S'   \\S'   Srg)ÚSerializedArtifactéÛ   Úexported_programÚ
state_dictÚ	constantsÚexample_inputsrd   N)re   rf   rg   rh   ÚbytesÚ__annotations__ri   rd   rj   rk   r   r   Û   s   ‡ àÓØÓØÓØÖrj   r   c                   ó>   • \ rS rSr% \\S'   \\S'   \\S'   \\S'   Srg)Ú_SerializedPrograméã   r�   r‚   rƒ   r„   rd   N)re   rf   rg   rh   r.   r†   r…   ri   rd   rj   rk   rˆ   rˆ   ã   s   ‡ à%Ó%ØÓØÓØÖrj   rˆ   c                   ó0   • \ rS rSrSrS rS rS rS rSr	g)	ÚLazyMapéë   z¦
Dictionary class for deferred instantiation of node metadata values.
Purpose is to avoid creation of symbolic-shape tensors before relevant shape guards are parsed.
c                 ó0   • 0 U l         [        5       U l        g rn   )ÚmapÚsetÚ	evaluated©Úselfs    rk   Ú__init__ÚLazyMap.__init__ñ   s   € ØˆŒÜ›ˆ�rj   c                 ó    • X R                   U'   g rn   )rŽ   )r’   rq   rr   s      rk   Ú__setitem__ÚLazyMap.__setitem__õ   s   € Ø�‰�Šrj   c                 ó¾   • U R                   U   nXR                  ;   a  U$ U R                  R                  U5        U" 5       U R                   U'   U R                   U   $ rn   )rŽ   r�   Úadd)r’   rq   Úouts      rk   Ú__getitem__ÚLazyMap.__getitem__ø   sM   € Ø�h‰h�q‰kˆØ—‘ÓØˆJØ�‰×Ñ˜1ÔÙ“eˆ�‰�‰Ø�x‰x˜‰{Ðrj   c                 ó6   • U R                   R                  5       $ rn   )rŽ   Ú__repr__r‘   s    rk   rž   ÚLazyMap.__repr__   s   € Ø�x‰x× Ñ Ó"Ð"rj   )r�   rŽ   N)
re   rf   rg   rh   Ú__doc__r“   r–   r›   rž   ri   rd   rj   rk   r‹   r‹   ë   s   † ñò
òòõ#rj   r‹   Úreturnc                 óª   • U R                   c  [        R                  " U R                  S9$ [        R                  " U R                  U R                   S9$ )N)Útype©r£   Úindex)r¥   rw   Údevicer£   )rl   s    rk   Údeserialize_devicer§     s7   € Ø‡w�w�Ü�|Š| §¡Ñ(Ð(Ü�<Š<˜QŸV™V¨1¯7©7Ñ3Ð3rj   Úsizes.c                 óˆ   • U  H+  nUR                   S:w  d  M  [        SUR                    35      e   [        S U  5       5      $ )NÚas_intúOnly as_int is supported, got c              3   ó8   #   • U  H  oR                   v •  M     g 7frn   ©rª   )rz   Úsym_int_sizes     rk   r|   Ú#deserialize_size.<locals>.<genexpr>  s   é € Ð?º¨×$Ö$ºùó   ‚©r£   ÚAssertionErrorÚtuple)r¨   r®   s     rk   Údeserialize_sizer´   
  sG   € ÛˆØ×Ñ Õ(Ü Ð#AÀ,×BSÑBSÐATÐ!UÓVÐVñ ô Ñ?¹Ó?Ó?Ð?rj   Ústridesc                 óˆ   • U  H+  nUR                   S:w  d  M  [        SUR                    35      e   [        S U  5       5      $ )Nrª   r«   c              3   ó8   #   • U  H  oR                   v •  M     g 7frn   r­   )rz   Úsym_int_strides     rk   r|   Ú%deserialize_stride.<locals>.<genexpr>  s   é € ÐEºW¨>×&Ö&ºWùr°   r±   )rµ   r¸   s     rk   Údeserialize_striderº     sG   € Û!ˆØ×Ñ (Õ*Ü Ð#AÀ.×BUÑBUÐAVÐ!WÓXÐXñ "ô ÑE¹WÓEÓEÐErj   Ústc                 ó   • [         U    $ rn   )Ú_SERIALIZE_TO_TORCH_DTYPE)r»   s    rk   Údeserialize_scalar_typer¾     s   € Ü$ RÑ(Ð(rj   Úoffsetc                 ój   • U R                   S:w  a  [        SU R                    35      eU R                  $ )Nrª   r«   )r£   r²   rª   )r¿   s    rk   Údeserialize_storage_offsetrÁ     s/   € Ø‡{�{�hÓÜÐ=¸f¿k¹k¸]ÐKÓLÐLØ�=‰=Ðrj   Úsc                 óü   • [        U [        R                  [        R                  [        R                  45      (       a  U R
                  R                  n [        R                  R                  R                  U 5      $ rn   )rv   rw   rR   rL   rP   ÚnodeÚexprÚsympyÚprintingÚreprÚsrepr©rÂ   s    rk   Ú_print_sympyrË   "  sJ   € Ü�!”e—l‘l¤E§M¡M´5·>±>ÐB×CÑCØ�F‰F�K‰KˆÜ�>‰>×Ñ×$Ñ$ QÓ'Ð'rj   c           	      óÂ  • [        U [        R                  [        R                  [
        45      (       Ga  [        R                  " U 5      (       a  [        R                  " [        U 5      S9$ [        U [        R                  [        R                  45      (       d!  [        S[        U 5      R                   35      eU R                  R                  c&  [        R                  " [        [        U 5      5      S9$ [        R                  " [        [        U 5      [         R                  " U R                  R                  S9S9S9$ [#        SU  S[        U 5       S35      e)Nr­   zexpected SymInt or Symbol, got ©Úas_expr©Úhintz,SymInt should be either symbol or int, got `ú` of type `Ú`)rv   rw   rR   rÆ   ÚSymbolÚintr   Úis_concrete_intÚcreater²   r£   re   rÄ   rÐ   rN   rË   rO   rb   rÊ   s    rk   Úserialize_sym_intr×   (  s  € Ü�!”e—l‘l¤E§L¡L´#Ð6×7Ò7Ü×*Ò*¨1×-Ñ-Ü—=’=¬¨A«Ñ/Ð/ä˜a¤%§,¡,´·±Ð!=×>Ñ>Ü$Ø5´d¸1³g×6FÑ6FÐ5GÐHóð ð �v‰v�{‰{Ñ"Ü—}’}¬W´\À!³_Ó-EÑFÐFä—}’}Ü#Ü$ Q›Ü(×/Ò/°q·v±v·{±{ÑCññð ô Ø:¸1¸#¸[ÌÈaËÈ	ÐQRÐSó
ð 	
rj   c           	      óÂ  • [        U [        R                  [        R                  [
        45      (       Ga  [        R                  " U 5      (       a  [        R                  " [        U 5      S9$ [        U [        R                  [        R                  45      (       d!  [        S[        U 5      R                   35      eU R                  R                  c&  [        R                  " [        [        U 5      5      S9$ [        R                  " [        [        U 5      [         R                  " U R                  R                  S9S9S9$ [#        SU  S[        U 5       S35      e)N©Úas_floatz!expected SymFloat or Symbol, got rÍ   rÏ   z0SymFloat should be either symbol or float, got `rÑ   rÒ   )rv   rw   rP   rÆ   rÓ   Úfloatr   Úis_concrete_floatrÖ   r²   r£   re   rÄ   rÐ   rN   rË   rO   rb   rÊ   s    rk   Úserialize_sym_floatrÝ   @  s  € Ü�!”e—n‘n¤e§l¡l´EÐ:×;Ò;Ü×,Ò,¨Q×/Ñ/Ü—?’?¬E°!«HÑ5Ð5ä˜a¤%§.¡.´%·,±,Ð!?×@Ñ@Ü$Ø7¼¸Q»×8HÑ8HÐ7IÐJóð ð �v‰v�{‰{Ñ"Ü—’¬w´|ÀA³Ó/GÑHÐHä—’Ü#Ü$ Q›Ü(×/Ò/¸¿¹¿¹ÑEññð ô Ø>¸q¸cÀÌTÐRSËWÈIÐUVÐWó
ð 	
rj   c                 ó:  • [        U [        R                  [        45      (       a\  [        R
                  " U 5      (       a  [        R                  " [        U 5      S9$ [        R                  " [        [        U 5      S9S9$ [        SU  S[        U 5       S35      e)N©Úas_bool)Úexpr_strrÍ   z.SymBool should be either symbol or bool, got `rÑ   rÒ   )rv   rw   rL   Úboolr   Úis_concrete_boolrÖ   rN   rË   rb   r£   rÊ   s    rk   Úserialize_sym_boolrä   X  sy   € Ü�!”e—m‘m¤TÐ*×+Ñ+Ü×+Ò+¨A×.Ñ.Ü—>’>¬$¨q«'Ñ2Ð2ä—>’>¬'¼<È»?Ñ*KÑLÐLäØ<¸Q¸C¸{Ì4ÐPQË7È)ÐSTÐUó
ð 	
rj   Útc                 ó²  • [        [        U R                     U R                   Vs/ s H  n[	        U5      PM     snU R
                  [        U R                  R                  U R                  R                  S9U R                  5        Vs/ s H  n[	        U5      PM     sn[	        U R                  5       5      [        U R                     S9$ s  snf s  snf )z&
Extract a TensorMeta describing `t`.
r¤   )Údtyper¨   Úrequires_gradr¦   rµ   Ústorage_offsetÚlayout)rU   Ú_TORCH_TO_SERIALIZE_DTYPErç   Úshaper×   rè   r-   r¦   r£   r¥   Ústrideré   Ú_TORCH_TO_SERIALIZE_LAYOUTrê   )rå   rÂ   s     rk   Úserialize_tensor_metarï   d  s�   € ô Ü'¨¯©Ñ0Ø-.¯WªWÓ5ªW¨Ô  Ö#©WÑ5Ø—o‘oÜ˜1Ÿ8™8Ÿ=™=°·±·±Ñ?Ø/0¯x©x¬zÓ:ªz¨!Ô" 1Ö%©zÑ:Ü(¨×)9Ñ)9Ó);Ó<Ü)¨!¯(©(Ñ3ñð ùâ5ùò ;s   ¦C
ÂCr_   Ú_CURRENT_DESERIALIZERÚfake_tensorc                 óÔ   • [        U [        R                  R                  5      n[	        U 5      n[
        R                  " [        U5      [        S9R                  S5      n[        X144$ )N©Úclsúutf-8)rv   rw   ÚnnÚ	Parameterrï   ÚjsonÚdumpsÚ_dataclass_to_dictÚEnumEncoderÚencodeÚ_reconstruct_fake_tensor)rñ   Úis_parameterÚtensor_metaÚtensor_meta_bytess       rk   Ú_reduce_fake_tensorr  v  sW   € Ü˜k¬5¯8©8×+=Ñ+=Ó>€LÜ'¨Ó4€KÜŸ
š
Ü˜;Ó'¬[ñç�fˆWƒoð ô $Ð&7Ð%FÐFÐFrj   Úserialized_tensor_metarþ   c                 ó
  • [         R                  " U R                  S5      5      n[        [        U5      n[
        c  [        S5      e[
        R                  U5      nU(       a  [        R                  R                  U5      nU$ )Nrõ   z)Need access to current deserializer state)rø   ÚloadsÚdecodeÚ_dict_to_dataclassrU   rð   r²   Údeserialize_tensor_metarw   rö   r÷   )r  rþ   Újson_tensor_metarÿ   rñ   s        rk   rý   rý     sk   € ô —z’zÐ"8×"?Ñ"?ÀÓ"HÓIÐÜ$¤ZÐ1AÓB€KäÑ$ÜÐHÓIÐIÜ'×?Ñ?ÀÓL€KÞÜ—h‘h×(Ñ(¨Ó5ˆàÐrj   ÚartifactÚpickle_protocolc                 ób  • U c  g[         [        R                  ;   a  [        S5      e [        R                  " [         [
        5        [        R                  " 5       n[        R                  " XUS9  UR                  5       [        R                  [         	 $ ! [        R                  [         	 f = f)Nrj   z0Refusing to stomp on existing FakeTensor reducer)r
  )r   ÚcopyregÚdispatch_tabler²   Úpickler  ÚioÚBytesIOrw   ÚsaveÚgetvalue)r	  r
  Úbuffers      rk   Úserialize_torch_artifactr  �  s}   € ð ÑØä”W×+Ñ+Ó+ÜÐOÓPÐPð/Ü�Š”zÔ#6Ô7Ü—’“ˆô 	�
Š
�8°_ÒEØ�‰Ó ä×"Ñ"¤:Ñ.øŒG×"Ñ"¤:Ñ.ús   ©AB ÂB.Ú
serializedc                 ó
  • [        U [        [        45      (       a  U $ [        U 5      S:X  a  0 $ [        R
                  " U 5      nUR                  S5         [        R                  " USS9n[        U[        [        45      (       d!  [        S[        U5      R                   35      eU$ ! [         aN  nUR                  S5        [        R                  " USS9n[        R                  S[        U5      US9   S nAN‘S nAff = f)Nr   T)Úweights_onlyFz\Fallback to weights_only=False succeeded. Loaded object of type %s after initial failure: %s)Úexc_infozexpected tuple or dict, got )rv   Údictr³   Úlenr  r  Úseekrw   ÚloadÚ	ExceptionÚlogÚwarningr£   r²   re   )r  r  r	  Úes       rk   Údeserialize_torch_artifactr!  ¦  sÞ   € ô �*œt¤U˜m×,Ñ,ØÐÜ
ˆ:ƒ˜!ÓØˆ	Ü�ZŠZ˜
Ó#€FØ
‡K�K�„Nð

Ü—:’:˜f°4Ñ8ˆô �h¤¬ ×.Ñ.ÜÐ;¼DÀ»N×<SÑ<SÐ;TÐUÓVÐVØ€Oøô ó 
Ø�‰�AŒÜ—:’:˜f°5Ñ9ˆÜ�‰ðAä�‹NØð	 	ö 	
ûð
ús   ÁB* Â*
DÂ4AC=Ã=DÚvalÚadjustc                 ó”  • U [         R                  [        4;   a  g U [         R                  * [        * 4;   a  g [        U [         R                  5      (       a  [        U 5      $ [        R                  S[        U 5      U U5        US:X  a  [        R                  " U 5      $ US:X  a  [        R                  " U 5      $ [        SU 35      e)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   rv   ÚIntegerrÔ   r  r  r£   Úmathr%  r&  ÚRuntimeError)r"  r#  s     rk   Ú_sympy_int_to_intr+  À  s«   € à
Œu�x‰xœÐ Ó ØØ
”—‘ˆyœ6˜'Ð"Ó"ØÜ�#”u—}‘}×%Ñ%Ü�3‹xˆô ‡K�Kð	ô 	ˆS‹	ØØôð �ÓÜ�zŠz˜#‹ÐØ	�6Ó	Ü�yŠy˜‹~ÐäÐ4°V°HÐ=Ó>Ð>rj   c                 óÊ   • U c  U$ U [         * [         4;   a  U $ U [        R                  :X  a  [         $ U [        R                  * :X  a  [         * $ [        R                  " U 5      $ rn   )r   r)  ÚinfrÆ   r(  )r"  Údefaults     rk   Ú_int_to_sympy_intr/  Û  sT   € à
�{ØˆØ
”ˆwœÐÓØˆ
Ø
Œd�h‰hƒÜˆØ
Œt�x‰xˆiÓÜˆwˆÜ�=Š=˜ÓÐrj   ÚsymÚsym_typec                 óP   • [        [        U 5      [        [        U   5      S  5      $ rn   )rÔ   Ústrr  r   )r0  r1  s     rk   Ú_symbol_indexr4  è  s#   € ÜŒs�3‹xœœJ xÑ0Ó1Ð3Ð4Ó5Ð5rj   Úrange_constraintsc                 óÐ   • U R                  5        VVs0 s HC  u  p[        U5      [        [        UR                  S5      [        UR
                  S5      5      _ME     snn$ s  snnf )Nr&  r%  )ro   r3  rH   r+  ÚlowerÚupper)r5  rq   rr   s      rk   Úserialize_range_constraintsr9  ì  sd   € ð &×+Ñ+Ô-ôò
 .‰DˆAô	 	ˆA‹”Ü˜aŸg™g vÓ.Ü˜aŸg™g wÓ/ó
ò 	
ñ .òð ùó s   ”A
A"c                 ó  • [        U [        R                  R                  5      (       a  U R                  $ [        U 5      [        ;   a!  [        [        U 5         R                  U 5      $ [        S[        U 5       35      e)NzCannot find schema for )	rv   rw   rx   ry   Ú_schemar£   Ú_serialization_registryÚ	op_schemar*  )Útargets    rk   Ú_get_schema_from_targetr?  ø  sa   € Ü�&œ%Ÿ*™*×/Ñ/×0Ñ0Ø�~‰~ÐÜ	ˆf‹Ô0Ó	0Ü&¤t¨F£|Ñ4×>Ñ>¸vÓFÐFÜ
Ð0´°f³°Ð?Ó
@Ð@rj   c                   ó  • \ rS rSr% \" \S9r\\   \S'   \" \S9r	\\   \S'   \" \S9r
\\   \S'   \" \S9r\\\4   \S'   \" \S9r\\\4   \S'   \" \S9r\\\4   \S'   \" \S9r\\\4   \S	'   S
r\\S'   \" \S9r\\\4   \S'   Srg)Ú
GraphStatei   )Údefault_factoryÚinputsÚoutputsÚnodesÚtensor_valuesÚsym_int_valuesÚsym_bool_valuesÚsym_float_valuesFÚis_single_tensor_returnÚcustom_obj_valuesrd   N)re   rf   rg   rh   r   ÚlistrC  r'   r†   rD  rE  rC   r  rF  r3  rU   rG  rR   rH  rL   rI  rP   rJ  râ   rK  r,   ri   rd   rj   rk   rA  rA     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ÖQrj   rA  c                   ó   • \ rS rSrS rSrg)ÚFinali  c                 ó°   • U H1  n[        U[        5      (       d  M  [        SUR                   S35      e   [        R                  XU[        U5      5      $ )Nztype 'z ' is not an acceptable base type)rv   rN  Ú	TypeErrorre   r£   Ú__new__r  )ÚmetaclsÚnameÚbasesÚ	classdictÚbs        rk   rQ  ÚFinal.__new__  sK   € ÛˆAÜ˜!œU×#Ó#Ü &¨¯©¨Ð4TÐ UÓVÐVñ ô �|‰|˜G¨5´$°y³/ÓBÐBrj   rd   N)re   rf   rg   rh   rQ  ri   rd   rj   rk   rN  rN    s   † õCrj   rN  c                 óš   • / SQnU HA  n[        X5      (       d  M  [        X5      (       d  M'  [        X5      [        X5      :w  d  MA    g   g)N)Únum_cpu_threadsÚ	num_warpsÚ
num_stagesÚnum_ctasFT)ÚhasattrÚgetattr)ÚconfigÚentry_metadataÚmetadata_attrsÚattrs       rk   Úis_metadata_matchedrc    s@   € ÚO€NÛˆÜ�6× Ó ¤W¨^×%BÓ%BÜ�vÓ$¬°Ó(EÕEÙñ ð rj   rÄ   c                 óÐ  • U R                   [        R                  R                  R                  La  [        SU R                    35      e[        5       (       d  [        S5      eSSKJn  SSK	J
n  [        U R                  S   [        5      (       d$  [        S[        U R                  S   5       35      e[        R                  R                  R                  R!                  U R                  S   5      n[        X15      nU(       a  UR"                  OUn[%        US5      (       at  UR&                  n[)        UR+                  5       5      S	:w  a%  [        S
[)        UR+                  5       5       35      e[-        [/        UR1                  5       5      5      S   nOš[%        US5      (       aq  UR2                  n[)        UR+                  5       5      S	:w  a%  [        S[)        UR+                  5       5       35      e[-        [/        UR1                  5       5      5      nO[        SUR4                   35      e[)        UR+                  5       5      S	:X  a$  U[-        [/        UR1                  5       5      5      4$ [        XR5      =(       a+    [%        US5      =(       a    [)        UR6                  5      S:„  nU(       Ga±  0 n	UR6                   Hm  n
U
[)        UR8                  5      :  d  M  UR8                  U
   nU R                  R;                  S0 5      n[        U[<        5      (       d  M`  X¼;   d  Mg  XË   X›'   Mo     UR6                   Vs/ s H)  nUR8                  U   U	;   d  M  X•R8                  U      PM+     nn/ nU HP  n[        U[>        [        [@        45      (       a  URC                  U5        M6  URC                  [E        U5      5        MR     / nURG                  5        Hƒ  u  nn[H        RJ                  " SU5      nU(       d  M&  / nU H:  nUS;   a  URC                  US:H  5        M   URC                  [A        U5      5        M<     UU:X  d  Mp  URC                  UU45        M…     O[O        URG                  5       5      n[)        U5      S:X  a2  [        SUR4                   S[O        UR+                  5       5       35      e[)        U5      S	:X  a
  UUS   S	   4$ U(       ai  U H>  u  nnURP                  nURR                   H  n[U        UU5      (       d  M  UU4s  s  $    M@     [        SUR4                   SU(       a  SOS S35      e[        SUR4                   SU(       a  SOS SU VVs/ s H  u  nnUPM
     snn 35      es  snf ! [L         aD     URC                  [        U5      5         GM¬  ! [L         a    URC                  U5          GMÌ  f = ff = fs  snnf )Nz/expected triton_kernel_wrapper_functional, got z+triton required to serialize triton kernelsr   )Ú	Autotuner)ÚJITFunctionÚ
kernel_idxz#expected kernel_idx to be int, got Údevice_cachesr%   z%expected exactly 1 device cache, got Úcachez"expected exactly 1 cache key, got z#kernel caches not found for kernel Ú
constexprsÚkwargsz\('constexpr',\s*([^)]+)\))ÚTrueÚFalserl  z[couldn't find a kernel cache entry with metadata matching the autotuner configs for kernel z. Available cache keys: z2Multiple cache entries found for autotuned kernel Ú zwith same constexpr valueszwith no constexprz* and couldn't disambiguate using configs. z6Multiple cache entries found for non-autotuned kernel z0. This should not happen. Available cache keys: )+r>  rw   Ú_higher_order_opsÚtriton_kernel_wrapÚ triton_kernel_wrapper_functionalr²   r"   Útriton.runtime.autotunerre  Útriton.runtime.jitrf  rv   rk  rÔ   r£   Úkernel_side_tableÚ
get_kernelÚfnr]  rh  r  ÚkeysÚnextÚiterÚvaluesri  re   rj  Ú	arg_namesÚgetr  râ   rÛ   Úappendr3  ro   ÚreÚfindallÚ
ValueErrorrL  ÚmetadataÚconfigsrc  )rÄ   re  rf  ÚkernelÚis_autotunerÚactual_kernelÚcachesri  Úhas_constexprsÚconstexpr_valsÚconstexpr_idxÚ
param_nameÚkwargs_dictÚidxÚexpected_valuesÚnormalized_expectedr"  Úmatching_entriesÚsig_keyÚcache_entryÚconstexpr_matchesÚconstexpr_valuesÚmatchÚ_sig_keyr`  r_  ÚkeyÚ_s                               rk   Ú!get_triton_kernel_and_cache_entryr˜    s  € à�‰Ü×&Ñ&×9Ñ9×ZÑZò	[ô Ø=¸d¿k¹k¸]ÐKó
ð 	
ô �<‰<ÜÐJÓKÐKÝ2Ý.ä�d—k‘k ,Ñ/´×5Ñ5ÜØ1´$°t·{±{À<Ñ7PÓ2QÐ1RÐSó
ð 	
ô ×$Ñ$×7Ñ7×IÑI×TÑTØ�‰�LÑ!ó€Fô ˜fÓ0€Læ!-�F—I’I°6€Mäˆ}˜o×.Ñ.Ø×,Ñ,ˆÜˆv�{‰{‹}Ó Ó"Ü Ø7¼¸F¿K¹K»MÓ8JÐ7KÐLóð ô ”T˜&Ÿ-™-›/Ó*Ó+¨AÑ.‰Ü	� ×	(Ñ	(à×$Ñ$ˆÜˆv�{‰{‹}Ó Ó"Ü Ø4´S¸¿¹»Ó5GÐ4HÐIóð ô ”T˜&Ÿ-™-›/Ó*Ó+‰äà1°-×2HÑ2HÐ1IÐJó
ð 	
ô
 ˆ5�:‰:‹<Ó˜AÓØœd¤4¨¯©«Ó#7Ó8Ð8Ð8ô 	�=Ó.÷ 	.Ü�M <Ó0÷	.ä�×(Ñ(Ó)¨AÑ-ð ÷ Øˆà*×5Ô5ˆMàœs =×#:Ñ#:Ó;Õ;à*×4Ñ4°]ÑC�
Ø"Ÿk™kŸo™o¨h¸Ó;�Ü˜k¬4×0Ó0Ø!Õ0Ø5@Ñ5L˜Ó2ñ 6ð %×/Ò/ó	
ò 0�à×&Ñ& sÑ+¨~Ñ=ó	 9ˆN×2Ñ2°3Ñ7Ô8á/ð	 	ð 
ð !ÐÛ"ˆCÜ˜#¤¤c¬5Ð1×2Ñ2Ø#×*Ñ*¨3Ö/ð $×*Ñ*¬3¨s«8Ö4ñ #ð ÐØ$)§K¡K¦MÑ ˆG�[Ü "§
¢
Ð+HÈ'Ó RÐß Ð ð
 $&Ð Û.�EØÐ 1Ó1Ø(×/Ñ/°¸±Ö@ð?Ø,×3Ñ3´E¸%³LÖAñ /ð $Ð':Õ:Ø$×+Ñ+¨W°kÐ,BÖCò+ %2ô.   §¡£Ó.Ðä
ÐÓ Ó!ÜàiÐjw÷  kAñ  kAð  jBð B%Ü%)¨%¯*©*«,Ó%7Ð$8ð:ó
ð 	
ô ÐÓ Ó!ØÐ.¨qÑ1°!Ñ4Ð4Ð4æÛ%5Ñ!ˆH�kØ(×1Ñ1ˆNà Ÿ.œ.�Ü& v¨~×>Ó>Ø(¨+Ð5Ô5ó )ñ &6ô à@À×AWÑAWÐ@XÐXYÞ/=Ñ+ÐCVÐWð X8ð9ó
ð 	
ô à
@À×AWÑAWÐ@XÐXYÞ+9Ñ'Ð?RÐ
Sð T9ÙL\Ô9]ÒL\Á&À#Àq»#ÑL\Ò9]Ð8^ð	`óð ùòU
øôL  *ó ?ð?Ø 0× 7Ñ 7¼¸E»
× CÐ CøÜ#-ó ?Ø 0× 7Ñ 7¸× >Ñ >ð?úð?üóP :^s<   ÍVÍ#VÐ.VÕ3W"Ö
WÖV:Ö:W	×W×W	×Wc                   óL  • \ rS rSrS\R
                  S\\R                     4S jr\	S 5       r
S\R                  R                  4S jrS\R                  R                  4S jrS	\4S
 jrS\R                  R                  4S jrS rS	\\R                  R                     4S jrS	\4S jrS\R                  R                  S	\\\4   4S jrS\\\      S	\\\\\4         4S jrS\R8                  S	\4S jrS	\\   4S jr S;S\S	\\   4S jjr S	\\   4S jr!S	\"4S jr#S	\"4S jr$S	\"4S jr%S	\"4S jr&S;S\\   S	\'4S jjr(S	\)4S jr*S	\+4S  jr,S	\-4S! jr.S	\+4S" jr/S#\R`                  S	\04S$ jr1S#\Rd                  S	\24S% jr3S&\R
                  S	\44S' jr5S(\Rl                  S	\'4S) jr7S*\8Rr                  S	\4S+ jr:S,\Rv                  S	\;4S- jr<S\\R                     S	\\   4S. jr=S\R                  R                  S	\\'   4S/ jr>S\R                  R                  S	\\'   4S0 jr?S1\S2\S	\'4S3 jr@S\R                  R                  S	\\)   4S4 jrAS5\R                  R„                  S	\C4S6 jrDS7\\\4   4S8 jrES5\R                  R„                  S	\B4S9 jrFS:rGg)<r]   i·  Úgraph_signatureÚmodule_call_graphc                 ód   • [        5       U l        Xl        X l        0 U l        0 U l        0 U l        g rn   )rA  Úgraph_staterš  r›  Úcustom_objsÚduplicate_getitem_nodesÚtreespec_namedtuple_fields)r’   rš  r›  s      rk   r“   ÚGraphModuleSerializer.__init__¹  s2   € ô
 &›<ˆÔØ.ÔØ!2ÔØ=?ˆÔØ79ˆÔ$ØDFˆÕ'rj   c              #   ón   #   • U R                   n[        5       U l          S v •  Xl         g ! Xl         f = f7frn   )r�  rA  ©r’   Úsaveds     rk   Úsave_graph_stateÚ&GraphModuleSerializer.save_graph_stateÅ  s.   é € à× Ñ ˆÜ%›<ˆÔð	%Ûà$Õø˜uÕüs   ‚5Ÿ* £5ª2²5rÄ   c           
      óN  • UR                   S:w  a  [        SUR                    35      eUR                  S   n[        R	                  SUR
                  U5        [        U[        R                  5      (       a0  [        R                  " U R                  UR
                  U5      S9nGOY[        U[        R                  5      (       a0  [        R                  " U R                  UR
                  U5      S9nGO
[        U[        R                  5      (       a  [        S5      e[        U[        [         ["        [$        ['        S 5      45      (       a  U R)                  U5      nOŸ[        U[*        R,                  5      (       ae  UR.                  n[        R                  " [-        UR
                  US9S	9nU R1                  U5      U R2                  R4                  UR
                  '   O[        S
UR                  S    35      eU R2                  R6                  R9                  U5        g )NÚplaceholderzexpected placeholder op, got r"  z[handle_placeholder] %s: %s©Ú	as_tensor©Ú
as_sym_intz,SymFloat graph input is not implemented yet.©rS  Ú	class_fqn©Úas_custom_objz Unimplemented graph input type: )r{   r²   Úmetar  ÚdebugrS  rv   rw   ÚTensorr'   rÖ   Úserialize_tensor_outputrR   Úserialize_sym_int_outputrP   rÔ   râ   r3  rÛ   r£   Úserialize_inputÚepr,   r®  Úserialize_script_obj_metar�  rK  rC  r}  )r’   rÄ   r"  Úgraph_inputr®  s        rk   Úhandle_placeholderÚ(GraphModuleSerializer.handle_placeholderÎ  s–  € Ø�7‰7�mÓ#Ü Ð#@ÀÇÁÀ	Ð!JÓKÐKØ�i‰i˜ÑˆÜ�	‰	Ð/°·±¸CÔ@Ü�cœ5Ÿ<™<×(Ñ(Ü"Ÿ/š/Ø×6Ñ6°t·y±yÀ#ÓFñŠKô ˜œUŸ\™\×*Ñ*Ü"Ÿ/š/Ø×8Ñ8¸¿¹ÀCÓHñŠKô ˜œUŸ^™^×,Ñ,Ü Ð!OÓPÐPÜ˜œc¤4¬¬e´T¸$³ZÐ@×AÑAØ×.Ñ.¨sÓ3‰KÜ˜œR×1Ñ1×2Ñ2ØŸ™ˆIÜ"Ÿ/š/Ü/°T·Y±YÈ)ÑTñˆKð ×.Ñ.¨sÓ3ð ×Ñ×.Ñ.¨t¯y©yÒ9ô !Ð#CÀDÇIÁIÈeÑDTÐCUÐ!VÓWÐWØ×Ñ×Ñ×&Ñ& {Õ3rj   c                 ó®  • UR                   S:w  a  [        SUR                    35      e[        UR                  5      S:w  a!  [        S[        UR                  5       35      eUR                  S   n[        R                  SUR                  U5        [        U[        R                  R                  5      (       a3  SU R                  l        U R                  U5      /U R                  l        g [        U[        [         45      (       d  [        S[#        U5       35      eU Vs/ s H  o0R                  U5      PM     snU R                  l        g s  snf )	NÚoutputzexpected output op, got r%   z(FX.Node's args should have one arg, got r   z[handle_output] %s: %sTzexpected tuple or list, got )r{   r²   r  Úargsr  r²  rS  rv   rw   ÚfxrC   r�  rJ  r¶  rD  r³   rL  r£   )r’   rÄ   Ú	node_argsÚargs       rk   Úhandle_outputÚ#GraphModuleSerializer.handle_outputë  s
  € Ø�7‰7�hÓÜ Ð#;¸D¿G¹G¸9Ð!EÓFÐFÜˆt�y‰y‹>˜QÓÜ Ø:¼3¸t¿y¹y»>Ð:JÐKóð ð —I‘I˜a‘Lˆ	Ü�	‰	Ð*¨D¯I©I°yÔAÜ�i¤§¡§¡×/Ñ/à7;ˆD×ÑÔ4Ø(,×(<Ñ(<¸YÓ(GÐ'HˆD×ÑÕ$ä˜i¬%´¨×7Ñ7Ü$Ð'CÄDÈÃOÐCTÐ%UÓVÐVÙMVÓ'WÊYÀc×(<Ñ(<¸SÖ(AÉYÑ'WˆD×ÑÕ$ùÒ'Ws   Ä%Er¡   c                 ó   • [        U[        5      (       a  U$ UR                  R                  S5      (       a-  UR                  R	                  SS5      nU SUR
                   3$ UR                   SUR
                   3$ )Nz
torch._opsz	torch.opsÚ.)rv   r3  rf   Ú
startswithÚreplacere   )r’   r>  Úmodules      rk   Úserialize_operatorÚ(GraphModuleSerializer.serialize_operatorý  sx   € Ü�fœc×"Ñ"ØˆMØ×Ñ×)Ñ)¨,×7Ñ7ð ×&Ñ&×.Ñ.¨|¸[ÓIˆFØ�X˜Q˜vŸ™Ð/Ð0Ð0à×'Ñ'Ð(¨¨&¯/©/Ð):Ð;Ð;rj   c           
      ó@  ^ • UR                   S:w  a  [        SUR                    35      eUR                  R                  S5      n[        R                  SUR                  UR                  UR                  UR                  U5        UR                  [        R                  L a  g UR                  [        ;   dA  Ubø  [        U[        R                  [        R                   [        R"                  45      (       aº  [%        UR                  5      S:w  a!  [        S[%        UR                  5       35      e['        UR                  T R)                  UR                  5      T R+                  UR                  UR                  5      T R-                  UR                  U5      /T R/                  U5      S9nG	O2[        UR                  [        R0                  R2                  5      (       a  ['        UR                  T R)                  UR                  5      T R5                  UR                  UR                  UR                  5      T R7                  U5      T R/                  U5      S9nGO€[        UR                  [        R0                  R8                  5      (       Ga¥  S[:        4S	 jnUR                  [        R<                  R>                  L Ga¡  [A        UR                  5      nUR                  S   R                  n[C        URD                  RF                  U5      (       d  [        S
U 35      e[I        URD                  RF                  U5      nURJ                  US'   S US'   / nUS   b�  [        US   [L        5      (       a…  US    Hx  n	[        U	[        RN                  R&                  5      (       a;  [        U	R                  R                  SS 5      [P        RR                  5      (       a  Mg  URU                  U	5        Mz     X…S'   U 4S jn
['        UR                  T R)                  UR                  5      T RW                  XQR                  5      U
" U5      T R/                  U5      SS9nGOxUR                  [        R<                  RX                  RZ                  L Ga$  []        U5      u  p¼UR^                  nUR                  S   n[        U[`        5      (       d!  [        S[c        U5      Rd                   35      eURg                  5       n/ nURh                   Vs1 s H"  nURj                  (       d  M  UR                  iM$     nnSnSnSn[        UR                  S   [`        5      (       d$  [        S[c        UR                  S   5       35      eUR                  S   Rm                  5        HD  u  nnUU;   a  SnM  U(       a  [        S5      eUU;   a  URU                  U5        UU4-  nUS-  nMF     [        UR                  S   [@        5      (       d$  [        S[c        UR                  S   5       35      eURn                  Rd                   SURp                   3nUUR                  S   S   UURr                  S.n[C        US5      (       a  URt                  US'   [C        US5      (       aG  [        URv                  [:        5      (       a  [y        URv                  5      US'   OURv                  US'   [C        US5      (       a  URz                  US'   [C        US5      (       a  UR|                  US'   [C        US5      (       a  UR~                  US'   URh                   Vs/ s H"  nURj                  (       a  M  UR                  PM$     snUS '   [I        [I        US!S 5      S"S 5      nUba  URh                   Vs/ s HE  nURj                  (       a  M  [�        UR                  UR                  UR‚                  5      5      PMG     snUS#'   OFURh                   Vs/ s H+  nURj                  (       a  M  [�        UR‚                  5      PM-     snUS#'   ['        UR                  T R)                  UR                  5      T RW                  UU5      T R…                  U5      T R/                  U5      U" U5      S9nGO"['        UR                  T R)                  UR                  5      T RW                  UR                  UR                  5      T R…                  U5      T R/                  U5      U" U5      S9nGO§[c        UR                  5      [†        ;   Gap  [c        UR                  5      [†        ;  a!  [        [c        UR                  5       S$35      e[†        [c        UR                  5         nUR‰                  5       nUR‹                  UR                  5      n[        U[€        5      (       a  [        U[€        5      (       d7  [        S%[c        U5      Rd                   S&[c        U5      Rd                   35      eS'U;   d  S'U;   a  [        S(U< S&U< 35      e['        UR                  S)U S'U 3T R5                  UR                  UR                  UR                  5      T R7                  U5      T R/                  U5      S9nO[�        S*UR                   S+35      eT RŽ                  R�                  RU                  U5        g s  snf s  snf s  snf s  snf ),NÚcall_functionzexpected call_function op, got r"  z-[handle_call_function] %s: %s(%s, {%s}) -> %sr   z#expected no kwargs for sym op, got )rS  r>  rC  rD  r�  r¡   c                 ó@  • [        U R                  [        R                  R                  5      (       d+  [        S[        U R                  5      R                   35      eU R                  R                  SS 5      nUS L=(       a    [        U[        R                  5      $ )Nz"expected HigherOrderOperator, got r"  )rv   r>  rw   rx   ÚHigherOrderOperatorr²   r£   re   r±  r|  r³  )rÄ   Úmeta_vals     rk   Ú_is_hop_single_tensor_returnÚPGraphModuleSerializer.handle_call_function.<locals>._is_hop_single_tensor_return3  su   € Ü! $§+¡+¬u¯z©z×/MÑ/M×NÑNÜ(Ø<¼TÀ$Ç+Á+Ó=N×=WÑ=WÐ<XÐYóð ð  Ÿ9™9Ÿ=™=¨°Ó5�Ø tÐ+×R´
¸8ÄUÇ\Á\Ó0RÐRrj   z&owning_module does not have attribute r%   r#   c                 óô   >• U R                   R                  SS 5      n/ n[        U5       H6  u  p4TR                  X5      nUR	                  TR                  XT5      5        M8     [        R                  " US9/$ )Nr"  ©Ú
as_tensors)r±  r|  Ú	enumerateÚ_output_node_name_at_indexr}  r´  r'   rÖ   )rÄ   rÏ  Útensor_argsrŒ  r±  rS  r’   s         €rk   Úserialize_tensor_list_outputÚPGraphModuleSerializer.handle_call_function.<locals>.serialize_tensor_list_output\  sj   ø€ Ø#Ÿy™yŸ}™}¨U°DÓ9�HØ"$�KÜ%.¨xÖ%8™	˜Ø#×>Ñ>¸tÓI˜Ø#×*Ñ*¨4×+GÑ+GÈÓ+SÖTñ &9ô %ŸOšO°{ÑCÐDÐDrj   F)rS  r>  rC  rD  r�  Úis_hop_single_tensor_returnz"expected meta_val to be dict, got rd   rk  z*expected kwargs['kwargs'] to be dict, got Tz/non-constexpr args found after constexpr arg(s)Úgridzexpected grid to be list, got r—  )rS  rÛ  Úoutput_indicesrZ  rY  ÚsharedÚshared_memory_bytesÚ
tile_widthÚtile_heightÚbase_peÚkernel_param_namesÚsrcÚ	signatureÚkernel_param_typesz* is not supported in export serialization.z.expected namespace and op_name to be str, got z and Ú:z2namespace and op_name should not contain ':', got Ú#zSerializing z is not supported)Ir{   r²   r±  r|  r  r²  rS  r>  r¾  rk  ÚoperatorÚgetitemÚ_SYM_OPSrv   rw   rR   rL   rP   r  rC   rÉ  Úserialize_sym_op_inputsÚserialize_outputÚserialize_metadatarx   ry   Úserialize_inputsÚserialize_outputsrÎ  râ   ro  Úaoti_call_delegaterL  r]  ÚgraphÚowning_moduler^  Ú	aoti_pathr   r¿  r·  r,   r}  Úserialize_hoo_inputsrp  rq  r˜  r�  r  r£   re   rw  ÚparamsÚis_constexprro   rv  ÚhashrZ  rY  rÝ  rÔ   rß  rà  rá  r3  Ú
annotationÚserialize_hoo_outputsr<  Ú	namespaceÚ
to_op_namerb   r�  rE  )r’   rÄ   rÏ  Úex_noderÐ  Úserializable_argsÚlowered_module_nameÚlowered_moduleÚserializable_weight_nodesÚweight_noderØ  rƒ  Úkernel_cache_entryÚkernel_cache_metadataÚoutput_keysrÜ  ÚpÚconstexpr_keysÚfound_constexprÚargs_newÚirq   rr   Úkernel_name_with_hashÚ
kwargs_newÚcompiled_signatureÚhandlerrú  Úop_names   `                            rk   Úhandle_call_functionÚ*GraphModuleSerializer.handle_call_function  s�	  ø€ Ø�7‰7�oÓ%Ü Ð#BÀ4Ç7Á7À)Ð!LÓMÐMØ—9‘9—=‘= Ó'ˆÜ�	‰	Ø;Ø�I‰IØ�K‰KØ�I‰IØ�K‰KØô	
ð �;‰;œ(×*Ñ*Ò*Øà�;‰;œ(Ó"ØÑ Ü˜8¤e§l¡l´E·M±MÄ5Ç>Á>Ð%R×SÑSä�4—;‘;Ó 1Ó$Ü$Ø9¼#¸d¿k¹kÓ:JÐ9KÐLóð ô Ø—Y‘YØ×.Ñ.¨t¯{©{Ó;Ø×3Ñ3°D·K±KÀÇÁÓKØ×.Ñ.¨t¯y©y¸(ÓCÐDØ×0Ñ0°Ó6ñŠGô ˜Ÿ™¤U§Z¡Z×%:Ñ%:×;Ñ;ÜØ—Y‘YØ×.Ñ.¨t¯{©{Ó;Ø×,Ñ,¨T¯[©[¸$¿)¹)ÀTÇ[Á[ÓQØ×.Ñ.¨tÓ4à×0Ñ0°Ó6ñŠGô ˜Ÿ™¤U§Z¡Z×%CÑ%C×DÒDðS´dô Sð �{‰{œe×5Ñ5×HÑHÓHÜ$(¨¯©£OÐ!ð ,0¯9©9°Q©<×+<Ñ+<Ð#Ü˜tŸz™z×7Ñ7Ð9L×MÑMÜ(Ø@ÐATÐ@UÐVóð ô ")¨¯©×)AÑ)AÐCVÓ!W�Ø'5×'?Ñ'?Ð! !Ñ$ð (,Ð! !Ñ$à,.Ð)Ø$ QÑ'Ñ3¼
Ø% aÑ(¬(÷9ñ 9ð (9¸Ô';˜ô & k´5·8±8·=±=×AÑAÄjØ'×,Ñ,×0Ñ0°¸Ó=¼r×?SÑ?S÷Gñ Gñ %Ø1×8Ñ8¸ÖEñ (<ð ,E aÑ(õEô ØŸ™Ø×2Ñ2°4·;±;Ó?Ø×4Ñ4Ð5FÏÉÓTÙ8¸Ó>Ø!×4Ñ4°TÓ:Ø05ñ’ð —‘Ü×*Ñ*×=Ñ=×^Ñ^ó_ô .OÈtÓ-TÑ*�Ø(:×(CÑ(CÐ%àŸ9™9 UÑ+�Ü! (¬D×1Ñ1Ü(Ø<¼TÀ(»^×=TÑ=TÐ<UÐVóð ð 'Ÿm™m›o�Ø!#�à28·-²-Ó!R²-¨QÀ1Ç>Å>£& !§&¤&±-�Ð!RØ"'�Ø�Ø�ä! $§+¡+¨hÑ"7¼×>Ñ>Ü(ØDÄTÈ$Ï+É+ÐV^ÑJ_ÓE`ÐDaÐbóð ð !ŸK™K¨Ñ1×7Ñ7Ö9‘D�A�qð ˜NÓ*Ø*.˜Ù æ&Ü,ØMóð ð ˜KÓ'Ø&×-Ñ-¨aÔ0Ø  Ñ$�HØ˜‘F’Añ! :ô$ " $§+¡+¨fÑ"5´t×<Ñ<Ü(Ø8¼¸d¿k¹kÈ&Ñ>QÓ9RÐ8SÐTóð ð
 —y‘y×)Ñ)Ð*¨!Ð,A×,FÑ,FÐ+GÐHð &ð 2Ø ŸK™K¨Ñ/°Ñ2Ø&4Ø!6×!@Ñ!@ñ	�
ô Ð0Ð2C×DÑDà-×=Ñ=ð Ð0Ñ1ô Ð0°(×;Ñ;Ü!Ð"7×">Ñ">Ä×EÑEÜ<?Ø1×8Ñ8ó=˜
Ð#8Ò9ð =R×<XÑ<X˜
Ð#8Ñ9ô Ð0°,×?Ñ?Ø/D×/OÑ/O�J˜|Ñ,ÜÐ0°-×@Ñ@Ø0E×0QÑ0Q�J˜}Ñ-ÜÐ0°)×<Ñ<Ø,A×,IÑ,I�J˜yÑ)ð %+§M¢Mó4Ú$1˜q¸¿½“F�A—F”F¡Mñ4�
Ð/Ñ0ô &-ÜÐ.°°tÓ<¸kÈ4ó&Ð"ð &Ñ1ð "(§¢ó8â!.˜AØ Ÿ~�~ó JœÐ.×2Ñ2°1·6±6¸1¿<¹<ÓHÖIÙ!.ñ8�JÐ3Ò4ð 4:·=²=ó8Ú3@¨aÈÏÍÓ)œ˜AŸL™LÖ)±=ñ8�JÐ3Ñ4ô ØŸ™Ø×2Ñ2°4·;±;Ó?Ø×4Ñ4°X¸zÓJØ ×6Ñ6°tÓ<Ø!×4Ñ4°TÓ:Ù0LÈTÓ0Rñ’ô ØŸ™Ø×2Ñ2°4·;±;Ó?Ø×4Ñ4°T·Y±YÀÇÁÓLØ ×6Ñ6°tÓ<Ø!×4Ñ4°TÓ:Ù0LÈTÓ0Rñ’ô �$—+‘+ÓÔ"9Ô9ä�D—K‘KÓ Ô(?Ó?Ü$Ü˜DŸK™KÓ(Ð)Ð)SÐTóð ô .¬d°4·;±;Ó.?Ñ@ˆGØ×)Ñ)Ó+ˆIØ×(Ñ(¨¯©Ó5ˆGÜ˜i¬×-Ñ-´ZÀÌ×5MÑ5MÜ$ØDÄTÈ)Ã_×E]ÑE]ÐD^Ð^cÔdhÐipÓdq×dzÑdzÐc{Ð|óð ð �iÓ 3¨'£>Ü$ØHÈÉÐUZÐ[bÑZeÐfóð ô Ø—Y‘YØ˜9˜+ Q w iÐ0Ø×,Ñ,¨T¯[©[¸$¿)¹)ÀTÇ[Á[ÓQØ×.Ñ.¨tÓ4Ø×0Ñ0°Ó6ñ‰Gô ! <°·±¨}Ð<MÐ!NÓOÐOà×Ñ×Ñ×%Ñ% gÕ.ùòG "Sùò~4ùò8ùò8s0   ÔlÔ7lÝ,lÞlßlß3là%là>lc                 óD   • [         R                  SUR                  5        g )Nz[handle_get_attr] %s)r  r²  rS  )r’   rÄ   s     rk   Úhandle_get_attrÚ%GraphModuleSerializer.handle_get_attr  s   € Ü�	‰	Ð(¨$¯)©)Õ4rj   c                 ó  • S nUR                    Hl  nUR                  [        R                  La  [	        U S35      eX$R
                  S   :X  d  MB  Uc  UnMI  UR                  U R                  UR                  '   Mn     U$ )Nz is not a getitem noder%   )Úusersr>  rè  ré  r²   r¾  rS  rŸ  )r’   rÄ   r¥   Ú	user_nodeÚusers        rk   Ú_output_node_at_indexÚ+GraphModuleSerializer._output_node_at_index  sv   € Øˆ	Ø—J”JˆDØ�{‰{¤(×"2Ñ"2Ò2Ü$¨ vÐ-CÐ%DÓEÐEØŸ	™	 !™Õ$ØÑ$Ø $’Ið ?H¿n¹n�D×0Ñ0°·±Ó;ñ ð Ðrj   c                 ód   • U R                  X5      nUc  UR                   SU 3$ UR                  $ )NÚ_unused_)r  rS  )r’   rÄ   r¥   r  s       rk   rÖ  Ú0GraphModuleSerializer._output_node_name_at_index  s7   € Ø×.Ñ.¨tÓ;ˆ	ØÑØ—i‘i�[ ¨¨Ð0Ð0à—>‘>Ð!rj   c           	      óø  • 0 nUR                   R                  S5      =n(       a  X2S'   UR                   R                  S5      =n(       aJ  S nUR                  5        VVs/ s H  u  pgU SU" U5       3PM     nnn[        R	                  U5      US'   UR                   R                  S5      =n	(       aD  U	 V
s/ s H  n
U
S    SU R                  U
S   5       3PM!     nn
[        R	                  U5      US'   UR                   R                  S5      =n(       a!  [        R	                  [        U5      5      US'   UR                   R                  S	5      =n(       a   [        R                  " U5      US	'   SUR                   ;   a7  UR                   S   n[        R                  " U R                  U5      5      US'   U$ s  snnf s  sn
f ! [         a!  n[        S
UR                   SU 35      UeS nAff = f)NÚstack_traceÚnn_module_stackc                 óÆ  • [        U [        5      (       a  [        U 5      S:w  aF  [        U [        5      (       a  [        U 5      OSn[        S[	        U 5      R
                   SU 35      eU u  p#[        U[        5      (       d!  [        S[	        U5      R
                   35      e[        U[        5      (       d!  [        S[	        U5      R
                   35      eUS-   U-   $ )Nr#   zN/Az expected tuple of length 2, got z of length zexpected path to be str, got zexpected ty to be str, got Ú,)rv   r³   r  r²   r£   re   r3  )r"  Úval_lenÚpathÚtys       rk   Úexport_nn_module_stackÚHGraphModuleSerializer.serialize_metadata.<locals>.export_nn_module_stack!  sÓ   € Ü! #¤u×-Ñ-´°S³¸Q³Ü*4°S¼%×*@Ñ*@œc #œhÀe�GÜ(Ø:¼4À»9×;MÑ;MÐ:NÈkÐZaÐYbÐcóð ð ‘�ä! $¬×,Ñ,Ü(Ø7¼¸T»
×8KÑ8KÐ7LÐMóð ô " "¤c×*Ñ*Ü(Ø5´d¸2³h×6GÑ6GÐ5HÐIóð ð ˜c‘z B‘Ð&rj   r!  Úsource_fn_stackr   r%   Útorch_fnÚcustomz-Failed to serialize custom metadata for node z with error Ú	from_node)r±  r|  ro   ÚST_DELIMITERÚjoinrÉ  rL  rø   rù   r  rb   rS  Ú_serialize_from_node)r’   rÄ   Úretr  r  r%  rq   rr   Únn_module_listÚsource_fn_stÚ	source_fnÚsource_fn_listr(  r)  r   r*  s                   rk   rí  Ú(GraphModuleSerializer.serialize_metadata  sí  € ØˆàŸ)™)Ÿ-™-¨Ó6Ð6ˆ;Õ6Ø!,�Ñà"Ÿi™iŸm™mÐ,=Ó>Ð>ˆ?Õ>ò'ð* @O×?TÑ?TÔ?VôÚ?V±t°q�1�#�QÑ-¨aÓ0Ð1Ó2Ñ?Vð ñ ô &2×%6Ñ%6°~Ó%FˆCÐ!Ñ"àŸ9™9Ÿ=™=Ð):Ó;Ð;ˆ<Õ;ñ ".óâ!-�Ið ˜Q‘<�.  $×"9Ñ"9¸)ÀA¹,Ó"GÐ!HÓIÙ!-ð ð ô &2×%6Ñ%6°~Ó%FˆCÐ!Ñ"à—y‘y—}‘} ZÓ0Ð0ˆ8Õ0Ü*×/Ñ/´°X³Ó?ˆC�
‰Oà—Y‘Y—]‘] 8Ó,Ð,ˆ6Õ,ðÜ $§
¢
¨6Ó 2��H‘ð ˜$Ÿ)™)Ó#ØŸ	™	 +Ñ.ˆIä#Ÿzšz¨$×*CÑ*CÀIÓ*NÓOˆC�Ñàˆ
ùó9ùòøô ó Ü$ØCÀDÇIÁIÀ;ÈlÐ[\ÐZ]Ð^óàðûðús$   Á!GÂ;&G	Å!G Ç
G9ÇG4Ç4G9r*  c                 ó„   • Uc  gU Vs/ s H*  n[        U[        5      (       d  M  UR                  5       PM,     sn$ s  snf )z[
Serialize from_node metadata from a list of NodeSource objects to a list of dictionaries.
N)rv   r   Úto_dict)r’   r*  Únode_sources      rk   r-  Ú*GraphModuleSerializer._serialize_from_nodeS  sI   € ð ÑØñ  )ó
â(�Ü˜+¤z×2ó "ˆK×ÑÖ!Ù(ñ
ð 	
ùò 
s   ‰=¦=Úscript_obj_metac                 ój   • [         R                  SU5        [        UR                  UR                  S9$ )Nz[serialize_script_obj_meta] %sr­  )r  r²  r,   rS  r®  ©r’   r8  s     rk   r¸  Ú/GraphModuleSerializer.serialize_script_obj_metab  s2   € ô 	�	‰	Ð2°OÔDÜ Ø ×%Ñ%Ø%×/Ñ/ñ
ð 	
rj   c           	      óü  • [        U[        R                  R                  5      (       a0  UR                  R
                   Vs/ s H  o3R                  PM     nnOPU[        ;  a  [        SU S35      e[        [        R                  " U5      R                  R                  5       5      n/ n[        XB5       H<  u  pcUR                  [!        UU R#                  U5      [$        R&                  S95        M>     U$ s  snf )Nzop z is not in _SYM_OPS©rS  rÁ  Úkind)rv   rw   rx   ry   r;  Ú	argumentsrS  rê  r²   rL  Úinspecträ  Ú
parametersrw  Úzipr}  rA   r¶  r(   Ú
POSITIONAL)r’   r{   r¾  rÁ  Ú
args_namesÚserialized_argsÚ	args_names          rk   rë  Ú-GraphModuleSerializer.serialize_sym_op_inputsk  sÒ   € Ü�bœ%Ÿ*™*×/Ñ/×0Ñ0Ø.0¯j©j×.BÒ.BÓCÒ.B sŸ(œ(Ñ.BˆJÐCˆJàœÓ!Ü$ s¨2¨$Ð.AÐ%BÓCÐCÜœg×/Ò/°Ó3×>Ñ>×CÑCÓEÓFˆJØˆÜ! *Ö3‰NˆIØ×"Ñ"ÜØ"Ø×,Ñ,¨SÓ1Ü%×0Ñ0ñöñ 4ð Ðùò Ds   ÁC9Nr>  c           
      ó�  • S n/ n[        U[        R                  R                  R                  5      (       a  US   nUS   nUR                  Xg5      nOa[        U[        R                  R                  /[        5       Q75      (       d!  [        S[        U5      R                   35      e[        U5      nUc  [        S5      eU=(       d    0 n[        UR                  5       Hß  u  p‰U	R                  U;   aZ  UR!                  [#        U	R                  U R%                  X9R                     U	R                  5      [&        R(                  S95        Mo  U	R*                  (       d_  U[-        U5      :  aP  UR!                  [#        U	R                  U R%                  X(   U	R                  5      [&        R.                  S95        Mß  Má     U$ )Nr   r%   z6expected OpOverload or registered extension type, got zschema should not be Noner=  )rv   rw   ro  Ú	torchbindÚCallTorchBindr&   rx   ry   Ú_registered_extension_typesr²   r£   re   r?  rÕ  r?  rS  r}  rA   r¶  r(   ÚKEYWORDÚ
kwarg_onlyr  rC  )
r’   r>  r¾  rk  r&   rE  ÚobjÚmethodr	  Ú
schema_args
             rk   rî  Ú&GraphModuleSerializer.serialize_inputs}  s‡  € ð ˆØˆä�fœe×5Ñ5×?Ñ?×MÑM×NÑNØ�q‘'ˆCØ˜!‘WˆFØ—]‘] 3Ó/‰FäØœŸ™×.Ñ.ÐOÔ1LÓ1NÑO÷ñ ô %ØLÌTÐRXË\×MbÑMbÐLcÐdóð ô -¨VÓ4ˆFØ‰>Ü Ð!<Ó=Ð=Ø—˜2ˆä& v×'7Ñ'7Ö8‰MˆAØ�‰ &Ó(Ø×&Ñ&Ü!Ø'Ÿ_™_Ø ×0Ñ0Ø"§?¡?Ñ3°Z·_±_óô *×1Ñ1ñöð  ×*×*¨q´3°t³9«}Ø×&Ñ&Ü!Ø'Ÿ_™_Ø ×0Ñ0°±¸*¿/¹/ÓJÜ)×4Ñ4ñöñ ñ- 9ð0 Ðrj   c                 ó@  • U Vs/ s H+  n[        SU R                  U5      [        R                  S9PM-     nnUR	                  UR                  5        VVs/ s H-  u  pS[        UU R                  U5      [        R                  S9PM/     snn5        U$ s  snf s  snnf )z=
For serializing HOO inputs since HOOs do not have a schema.
Ú r=  )rA   r¶  r(   rC  Úextendro   rL  )r’   r¾  rk  ÚarC  rS  s         rk   rô  Ú*GraphModuleSerializer.serialize_hoo_inputs°  s¬   € ñ ó	
ò �ô Ø˜T×1Ñ1°!Ó4¼<×;RÑ;Rôñ ð	 	ð 
ð 	�‰ð  &Ÿ|™|œ~ôò  .‘G�Dô ØØ×,Ñ,¨QÓ/Ü%×-Ñ-ôñ
  .òô		
ð ˆùò!
ùós   …2BÁ4B
c                 óf   • [        U5      [        L =(       d    [        U[        R                  5      $ rn   )r£   rÔ   rv   rw   rR   ©r’   rÁ  s     rk   Úis_inductor_sym_int_argÚ-GraphModuleSerializer.is_inductor_sym_int_argÆ  s#   € ô
 �C‹yœCÐ×@¤:¨c´5·<±<Ó#@Ð@rj   c                 óÎ   • [        U5      [        L =(       dN    [        U[        R                  R
                  5      =(       a#    UR                  U R                  R                  ;   $ rn   )	r£   rÔ   rv   rw   r¿  rC   rS  r�  rG  rX  s     rk   Úis_sym_int_argÚ$GraphModuleSerializer.is_sym_int_argÍ  sG   € Ü�C‹yœCÐ÷ 
Ü�sœEŸH™HŸM™MÓ*÷ <Ø—‘˜D×,Ñ,×;Ñ;Ñ;ð	
rj   c                 óÌ   • [        U[        5      =(       dN    [        U[        R                  R                  5      =(       a#    UR
                  U R                  R                  ;   $ rn   )rv   rÛ   rw   r¿  rC   rS  r�  rI  rX  s     rk   Úis_sym_float_argÚ&GraphModuleSerializer.is_sym_float_argÓ  sE   € Ü˜#œuÓ%÷ 
Ü�sœEŸH™HŸM™MÓ*÷ >Ø—‘˜D×,Ñ,×=Ñ=Ñ=ð	
rj   c                 óÌ   • [        U[        5      =(       dN    [        U[        R                  R                  5      =(       a#    UR
                  U R                  R                  ;   $ rn   )rv   râ   rw   r¿  rC   rS  r�  rH  rX  s     rk   Úis_sym_bool_argÚ%GraphModuleSerializer.is_sym_bool_argÙ  sE   € Ü˜#œtÓ$÷ 
Ü�sœEŸH™HŸM™MÓ*÷ =Ø—‘˜D×,Ñ,×<Ñ<Ñ<ð	
rj   Úarg_typec           
      ó~#  ^ ^• SS K Js  Jn  UR                  UR                  4m[        U[        R                  R                  5      (       Gab  UR                  S:X  Ga£  [        UR                  [        5      (       d+  [        S[        UR                  5      R                   35      e[        UR                   R"                  UR                  5      n[        U[        R$                  5      (       a  ['        S5      e[        U[        R                  R(                  5      (       aP  T R+                  5          T R-                  U5      nS S S 5        [.        R0                  " [3        UR                  WS9S9$ [        U5      R                  S:X  aO  [        USS 5      n[        US	S 5      nUc  [        S
5      eUc  [        S5      e[.        R0                  " U SU 3S9$ ['        SUR                   S[        U5       35      eT R5                  U5      (       a0  [.        R0                  " [6        R0                  " UR8                  S9S9$ T R;                  U5      (       a0  [.        R0                  " [<        R0                  " UR8                  S9S9$ T R?                  U5      (       a0  [.        R0                  " [@        R0                  " UR8                  S9S9$ [        URB                  S   [D        RF                  5      (       a=  [.        R0                  " [G        UR8                  URB                  S   RH                  S9S9$ UR8                  T RJ                  ;   a4  T RJ                  UR8                     n[.        R0                  " [M        US9S9$ [.        R0                  " [M        UR8                  S9S9$ [        UT5      (       a9  URO                  5       n	U	c  [        S5      e[.        R0                  " [M        U	S9S9$ [        XRP                  5      (       ax  URO                  5       n	U	c  [        S5      eURS                  5       n
U
RU                  5       RW                  5       nU
T RX                  U	'   [.        R0                  " [G        X›5      S9$ [        U[        RZ                  5      (       a/  [.        R0                  " [6        R0                  " [        U5      S9S9$ [        U[        R\                  5      (       a/  [.        R0                  " [<        R0                  " [        U5      S9S9$ [        U5      [^        L a  [.        R0                  " US9$ [        U5      [        L a  [.        R0                  " US9$ [        U5      [`        L a  [.        R0                  " US9$ [        U5      [b        L a  [.        R0                  " US9$ [        U5      [d        L a0  [.        R0                  " [g        URh                  URj                  S9S9$ Uc  [.        R0                  " SS 9$ [        U[l        5      (       an  0 nURo                  5        HD  u  pÞ[        U[        5      (       d  ['        S![        U5       35      eT Rq                  U5      XÍ'   MF     [.        R0                  " US"9$ [        U[r        [t        45      (       Ga�  [w        U5      S:X  Gaé  UGb¼  [        U[        Rx                  5      (       a  UR{                  5       n[        U[        R|                  5      (       d!  [        S#[        U5      R                   35      eUR{                  5       n[        U[        Rx                  5      (       a  UR{                  5       n[        U[        R~                  5      (       a  [.        R0                  " / S$9$ [        U[        R€                  5      (       a  [.        R0                  " / S%9$ [        U[        R‚                  5      (       a  [.        R0                  " / S&9$ [        U[        R„                  5      (       a  [.        R0                  " / S'9$ [        U[        R†                  5      (       a  [.        R0                  " / S(9$ ['        S)U S*35      e[ˆ        R‹                  S+5        [.        R0                  " / S(9$ [�        S, U 5       5      (       a  [.        R0                  " [s        U5      S$9$ [�        S- U 5       5      (       a  [.        R0                  " [s        U5      S%9$ [�        S. U 5       5      (       a  [.        R0                  " [s        U5      S&9$ [�        S/ U 5       5      (       a  [.        R0                  " [s        U5      S'9$ [�        U 4S0 jU 5       5      (       a£  / nU H‡  n[        U[        RZ                  5      (       a.  UR�                  [6        R0                  " [        U5      S95        MP  [        U5      [`        L d  Md  UR�                  [6        R0                  " US95        M‰     [.        R0                  " US19$ [�        S2 U 5       5      (       a@  [.        R0                  " U Vs/ s H   n[<        R0                  " [        U5      S9PM"     snS39$ [�        U 4S4 jU 5       5      (       a®  / nU H’  n[        U[        R                  R                  5      (       a/  UR�                  [6        R0                  " UR8                  S95        M[  [        U5      [`        L d  Mo  UR�                  [6        R0                  " US95        M”     [.        R0                  " US19$ [�        U 4S5 jU 5       5      (       a±  / nU H•  n[        U[        R                  R                  5      (       a/  UR�                  [<        R0                  " UR8                  S95        M[  [        U[b        5      (       d  Mr  UR�                  [<        R0                  " US95        M—     [.        R0                  " US39$ [�        U 4S6 jU 5       5      (       a±  / nU H•  n[        U[        R                  R                  5      (       a/  UR�                  [@        R0                  " UR8                  S95        M[  [        U[^        5      (       d  Mr  UR�                  [@        R0                  " US95        M—     [.        R0                  " US79$ [�        S8 U 5       5      (       a\  / nU H@  nUR                  S:X  a  ['        S5      eUR�                  [M        UR8                  S95        MB     [.        R0                  " US(9$ [�        S9 U 5       5      (       a�  [�        S: U 5       5      (       ax  / nU H\  n/ nU H@  nUR                  S:X  a  ['        S5      eUR�                  [M        UR8                  S95        MB     UR�                  U5        M^     [.        R0                  " US;9$ [�        S< U 5       5      (       a*  S= n[.        R0                  " [s        [‘        UU5      5      S>9$ [�        U4S? jU 5       5      (       a:  [.        R0                  " U Vs/ s H  n[M        URO                  5       S9PM     snS(9$ [�        U4S@ jU 5       5      (       a-  U4SA jn[.        R0                  " [s        [‘        UU5      5      S>9$ [�        SB U 5       5      (       a.  [.        R0                  " U Vs/ s H  n[s        U5      PM     snSC9$ ['        SDU Vs/ s H  n[        U5      PM     sn 35      e[        U[        R’                  5      (       a  [.        R0                  " [”        U   SE9$ [        U[        R–                  5      (       a0  [.        R0                  " [™        UR                  URš                  SF9SG9$ [        U[        Rœ                  5      (       a  [.        R0                  " [ž        U   SH9$ [        U[        R                   5      (       a  [.        R0                  " [¢        U   SI9$ [        U[        R¤                  R¦                  5      (       až  UR©                  SJ5      (       a  UR©                  SK5      (       d  ['        SLU SM35      eSN[w        T RX                  5       3nUT RX                  U'   URU                  5       RW                  5       n[.        R0                  " [G        UU5      S9$ [        U[        Rª                  R¬                  [        Rª                  R®                  45      (       a#  [.        R0                  " T R±                  U5      SO9$ ['        SP[        U5       SQU 35      e! , (       d  f       GNX= fs  snf s  snf s  snf s  snf )RNr   Úget_attrz#expected arg.target to be str, got z?getattr nodes containing tensors should not appear in the graph)rS  rñ  )Úas_graphÚLoweredBackendModuleÚmodule_nameÚ
backend_idzmodule_name should not be Nonezbackend_id should not be NoneÚ-©Ú	as_stringzUnsupported getattr attribute z with type: ©Úas_namer«  ©Úas_sym_float©Úas_sym_boolr"  r­  r¯  ©rS  r©  zBuffer must have valid namerß   r­   rÙ   )ÚrealÚimag)Ú
as_complexT©Úas_nonezDict keys must be strings, got )Úas_string_to_argumentzexpected ListType, got )Úas_bools)Úas_ints)Ú	as_floats)Ú
as_stringsrÓ  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   óD   #   • U  H  n[        U5      [        L v •  M     g 7frn   )r£   râ   ©rz   rU  s     rk   r|   Ú8GraphModuleSerializer.serialize_input.<locals>.<genexpr>|  s   é € Ð0ªC q”4˜“7œd•?ªCùó   ‚ c              3   óD   #   • U  H  n[        U5      [        L v •  M     g 7frn   ©r£   rÔ   r€  s     rk   r|   r�  ~  ó   é € Ð1ªS¨”T˜!“W¤•^ªSùr‚  c              3   óD   #   • U  H  n[        U5      [        L v •  M     g 7frn   )r£   rÛ   r€  s     rk   r|   r�  €  s   é € Ð3ªs¨!”T˜!“W¤Õ%ªsùr‚  c              3   óD   #   • U  H  n[        U5      [        L v •  M     g 7frn   )r£   r3  r€  s     rk   r|   r�  ‚  r…  r‚  c              3   óF   >#   • U  H  nTR                  U5      v •  M     g 7frn   )rY  ©rz   rU  r’   s     €rk   r|   r�  „  s   øé € ÐBºc¸�T×1Ñ1°!×4Ð4ºcùó   ƒ!)Úas_sym_intsc              3   óV   #   • U  H  n[        U[        R                  5      v •  M!     g 7frn   )rv   rw   rP   r€  s     rk   r|   r�  �  s   é € Ð@ºC°q”Z ¤5§>¡>×2Ð2ºCùs   ‚'))Úas_sym_floatsc              3   óF   >#   • U  H  nTR                  U5      v •  M     g 7frn   )r\  r‰  s     €rk   r|   r�  “  s   øé € Ð9²S°�T×(Ñ(¨×+Ð+²SùrŠ  c              3   óF   >#   • U  H  nTR                  U5      v •  M     g 7frn   )r_  r‰  s     €rk   r|   r�  œ  s   øé € Ð;²s°!�T×*Ñ*¨1×-Ð-²sùrŠ  c              3   óF   >#   • U  H  nTR                  U5      v •  M     g 7frn   )rb  r‰  s     €rk   r|   r�  ¥  s   øé € Ð:²c°�T×)Ñ)¨!×,Ð,²cùrŠ  )Úas_sym_boolsc              3   ój   #   • U  H)  n[        U[        R                  R                  5      v •  M+     g 7frn   ©rv   rw   r¿  rC   r€  s     rk   r|   r�  ®  s"   é € Ð?º3°a”Z ¤5§8¡8§=¡=×1Ð1º3ùr}   c              3   óN   #   • U  H  n[        U[        [        45      v •  M     g 7frn   )rv   rL  r³   r€  s     rk   r|   r�  ¸  s   é € Ð?º3°a”Z ¤D¬% =×1Ð1º3ùs   ‚#%c              3   óF   #   • U  H  n[        S  U 5       5      v •  M     g7f)c              3   ój   #   • U  H)  n[        U[        R                  R                  5      v •  M+     g 7frn   r“  ©rz   rå   s     rk   r|   ÚBGraphModuleSerializer.serialize_input.<locals>.<genexpr>.<genexpr>¹  s"   é € Ð@º%°Q”J˜q¤%§(¡(§-¡-×0Ð0º%ùr}   N)Úall)rz   Úinners     rk   r|   r�  ¸  s"   é € ð HÚNQÀU”Ñ@¹%Ó@×@Ð@Êcùs   ‚!)Úas_nested_tensorsc              3   ó€   #   • U  H4  n[        U[        R                  R                  [	        S 5      45      v •  M6     g 7frn   )rv   rw   r¿  rC   r£   r€  s     rk   r|   r�  Ç  s+   é € ÐMÊÀA”Z ¤E§H¡H§M¡M´4¸³:Ð#>×?Ð?Êùs   ‚<>c                 óè   • U c  [         R                  " SS9$ [        U [        R                  R
                  5      (       a%  [         R                  " [        U R                  S9S9$ [        SU  35      e©NTrx  rt  r©  z!Unsupported list/tuple argument: )	rD   rÖ   rv   rw   r¿  rC   rT   rS  rb   ©rU  s    rk   Úserialize_optional_tensor_argsÚMGraphModuleSerializer.serialize_input.<locals>.serialize_optional_tensor_argsÉ  sc   € Ø‘yÜ5×<Ò<ÀTÑJÐJÜ# A¤u§x¡x§}¡}×5Ñ5Ü5×<Ò<Ü&4¸!¿&¹&Ñ&Añ ð ô -Ð/PÐQRÐPSÐ-TÓUÐUrj   )Úas_optional_tensorsc              3   ó<   >#   • U  H  n[        UT5      v •  M     g 7frn   )rv   ©rz   rU  Úinductor_tensor_bufferss     €rk   r|   r�  Ö  s   øé € ÐIÂSÀ”Z Ð#:×;Ð;ÂSùs   ƒc              3   óX   >#   • U  H  n[        U/ TQ[        S 5      P75      v •  M!     g 7frn   )rv   r£   r¤  s     €rk   r|   r�  Û  s.   øé € ð ÚORÈ!”
˜1ÐDÐ 7ÐD¼¸d»ÑD×EÐEÊsùs   ƒ'*c                 óÂ   >• U c  [         R                  " SS9$ [        U T5      (       a)  [         R                  " [        U R	                  5       S9S9$ [        SU  35      erž  )rD   rÖ   rv   rT   Úget_namerb   )rU  r¥  s    €rk   r   r¡  ß  s_   ø€ Ø‘yÜ5×<Ò<ÀTÑJÐJÜ# AÐ'>×?Ñ?Ü5×<Ò<Ü&4¸!¿*¹*»,Ñ&Gñ ð ô -Ð/PÐQRÐPSÐ-TÓUÐUrj   c              3   ót   #   • U  H.  n[        U[        5      =(       a    [        S  U 5       5      v •  M0     g7f)c              3   óD   #   • U  H  n[        U5      [        L v •  M     g 7frn   r„  ©rz   Úxs     rk   r|   r˜  í  s   é € Ð,GÂQÀ¬T°!«W¼­^ÂQùr‚  N)rv   r³   r™  r€  s     rk   r|   r�  ì  s.   é € ð ÚQTÈA”
˜1œeÓ$×G¬Ñ,GÁQÓ,GÓ)GÔGÒQTùs   ‚68)Úas_int_listsz&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 )YÚtorch._inductor.irÚ	_inductorÚirÚBufferÚReinterpretViewrv   rw   r¿  rC   r{   r>  r3  r²   r£   re   r^  rñ  rò  r³  rb   r3   r¥  Úserialize_graphr'   rÖ   r2   r\  rS   rS  r_  rQ   rb  rM   r±  r·  r,   r®  rŸ  rT   r¨  ÚTorchBindObjectÚget_real_objÚ_typeÚqualified_namerž  rR   rP   râ   rÔ   rÛ   Úcomplexr*   ru  rv  r  ro   r¶  rL  r³   r  ÚOptionalTypeÚgetElementTypeÚListTypeÚBoolTypeÚIntTypeÚ	FloatTypeÚ
StringTypeÚ
TensorTyper  r  r™  r}  rŽ   rç   rë   r¦   r-   r¥   Úmemory_formatÚ!_TORCH_TO_SERIALIZE_MEMORY_FORMATrê   rî   Ú_CÚScriptObjectÚ_has_methodrx   ry   rÎ  rÉ  )r’   rÁ  rd  Úinductor_irrb  rñ  ri  rj  Ú
dedup_nameÚarg_nameÚarg_valr®  Úserialized_dictr–  rp   Ú	elem_typerz  rU  r?  Únested_argumentsÚ
inner_listÚinner_argumentsrÄ   r   rå   Úcustom_obj_namer¥  s   `                         @rk   r¶  Ú%GraphModuleSerializer.serialize_inputà  s¹  ù€ ß0Ð0ð ×ÑØ×'Ñ'ð#
Ðô
 �cœ5Ÿ8™8Ÿ=™=×)Ò)Ø�v‰v˜Ô#Ü! #§*¡*¬c×2Ñ2Ü(Ø=¼dÀ3Ç:Á:Ó>N×>WÑ>WÐ=XÐYóð ô ˜sŸy™y×6Ñ6¸¿
¹
ÓC�ä˜d¤E§L¡L×1Ñ1Ü(ØYóð ô   ¤e§h¡h×&:Ñ&:×;Ñ;Ø×.Ñ.Õ0Ø $× 4Ñ 4°TÓ :˜÷ 1ä#Ÿ?š?Ü!.°C·J±JÀeÑ!Lñð ô ˜$“Z×(Ñ(Ð,BÓBô #*¨$°¸tÓ"D�KÜ!(¨¨|¸TÓ!B�JØ"Ñ*Ü,Ð-MÓNÐNØ!Ñ)Ü,Ð-LÓMÐMÜ#Ÿ?š?¸°}ÀAÀjÀ\Ð5RÑSÐSä(Ø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Ñ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Ñ5ð
 —|‘|“~ˆHØÑÜ$Ð%BÓCÐCÜ—?’?¬^ÀÑ-JÑKÐKÜ˜×8Ñ8×9Ñ9ð —|‘|“~ˆHØÑÜ$Ð%BÓCÐCØ×&Ñ&Ó(ˆGØŸ™›×6Ñ6Ó8ˆIØ)0ˆD×Ñ˜XÑ&Ü—?’?Ô1BÀ8Ó1WÑXÐXÜ˜œUŸ\™\×*Ñ*ô
 —?’?¬n×.CÒ.CÌCÐPSËHÑ.UÑVÐVÜ˜œUŸ^™^×,Ñ,ô
 —?’?Ü-×4Ò4¼SÀ»XÑFñð ô �#‹Yœ$ÒÜ—?’?¨3Ñ/Ð/Ü�#‹Yœ#ÒÜ—?’?¨SÑ1Ð1Ü�#‹Yœ#ÒÜ—?’?¨#Ñ.Ð.Ü�#‹Yœ%ÒÜ—?’?¨CÑ0Ð0Ü�#‹Yœ'Ò!Ü—?’?Ü'¨S¯X©X¸C¿H¹HÑEñð ð ‰[Ü—?’?¨4Ñ0Ð0Ü˜œT×"Ñ"Ø ˆOØ!Ÿi™ižk‘
�Ü! #¤s×+Ñ+Ü(Ð+JÌ4ÐPSË9È+Ð)VÓWÐWØ'+×';Ñ';¸EÓ'B�Ó$ñ *ô —?’?¸ÑIÐIÜ˜œd¤E˜]×+Ò+Ü�3‹x˜1Œ}ØÒ'Ü! (¬E×,>Ñ,>×?Ñ?Ø#+×#:Ñ#:Ó#<˜Ü% h´·±×?Ñ?Ü,Ø5´d¸8³n×6MÑ6MÐ5NÐOóð ð !)× 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Ñ0Ü—’´°S³	Ñ:Ð:ÜÑ1©SÓ1×1Ñ1Ü—’¬t°C«yÑ9Ð9ÜÑ3©sÓ3×3Ñ3Ü—’´°c³Ñ;Ð;ÜÑ1©SÓ1×1Ñ1Ü—’´$°s³)Ñ<Ð<ÜÔB¹cÓB×BÑBð �Û�AÜ! !¤U§\¡\×2Ñ2ØŸ™¤n×&;Ò&;ÄCÈÃFÑ&KÖLÜ˜a›¤CœØŸ™¤n×&;Ò&;À1Ñ&EÖFñ	 ô
  —’°6Ñ:Ð:ÜÑ@¹CÓ@×@Ñ@Ü—’ÙTWÓ"XÒTWÈqÔ#3×#:Ò#:Ä3ÀqÃ6Ô#JÑTWÑ"Xñð ô Ô9±SÓ9×9Ñ9à�Û�AÜ! !¤U§X¡X§]¡]×3Ñ3ØŸ™¤n×&;Ò&;ÀAÇFÁFÑ&KÖLÜ˜a›¤CœØŸ™¤n×&;Ò&;À1Ñ&EÖFñ	 ô
  —’°6Ñ:Ð:ÜÔ;±sÓ;×;Ñ;à�Û�AÜ! !¤U§X¡X§]¡]×3Ñ3ØŸ™Ô&6×&=Ò&=ÀaÇfÁfÑ&MÖNÜ# A¤u×-Ó-ØŸ™Ô&6×&=Ò&=ÀqÑ&IÖJñ	 ô
  —’°VÑ<Ð<ÜÔ:±cÓ:×:Ñ:à�Û�AÜ! !¤U§X¡X§]¡]×3Ñ3ØŸ™¤o×&<Ò&<ÀQÇVÁVÑ&LÖMÜ# A¤t×,Ó,ØŸ™¤o×&<Ò&<ÀQÑ&GÖHñ	 ô
  —’°FÑ;Ð;ÜÑ?¹3Ó?×?Ñ?à�	Û�AØ—t‘t˜zÓ)Ü,Ø]óð ð ×$Ñ$¤^¸¿¹Ñ%@ÖAñ ô  —’°)Ñ<Ð<ÜÑ?¹3Ó?×?Ñ?ÄCñ HÙNQóH÷ Eñ Eð $&Ð Û"%�JØ&(�OÛ *˜ØŸ7™7 jÓ0Ü"0Ø aó#ð ð (×.Ñ.¬~À4Ç9Á9Ñ/MÖNñ !+ð %×+Ñ+¨OÖ<ñ #&ô  —’Ð9IÑJÐJÜÑMÉÓM×MÑMòVô  —’Ü(,¬SÐ1OÐQTÓ-UÓ(Vñð ô ÔIÁSÓI×IÑIä—’ÙKNÓOÊ3Àa¤°A·J±J³LÔ AÉ3ÑOñð ô ô ÙORó÷ ñ õVô  —’Ü(,¬SÐ1OÐQTÓ-UÓ(Vñð ô ñ ÙQTó÷ ñ ô  —’ÁcÓ4JÂcÀ´T¸!¶WÁcÑ4JÑKÐKä$Ø<ÉsÓ=SÊsÈ!¼dÀ1¾gÉsÑ=SÐ<TÐUóð ô ˜œUŸ[™[×)Ñ)Ü—?’?Ô2KÈCÑ2PÑQÐQÜ˜œUŸ\™\×*Ñ*Ü—?’?¬V¸¿¹ÈÏÉÑ-SÑTÐTÜ˜œU×0Ñ0×1Ñ1Ü—?’?Ü!BÀ3Ñ!Gñð ô ˜œUŸ\™\×*Ñ*Ü—?’?Ô-GÈÑ-LÑMÐMÜ˜œUŸX™X×2Ñ2×3Ñ3à—‘ ×/Ñ/Ø—O‘O N×3Ñ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ÑUÜ—?’?¨t×/FÑ/FÀsÓ/KÑLÐLä Ø-¬d°3«i¨[Ð8NÈxÈjÐYóð ÷A	 1Ö0üòx #YùòP  Pùò. 5Kùò >Ts+   Ä6AFé)'AF+ù;!AF0üAF5ü7AF:
ÁF
AF(c                 óª   • XR                   R                  ;   a  [        SU< S35      e[        U5      U R                   R                  U'   [	        US9$ )Núname z already in tensor_valuesrt  )r�  rF  r²   rï   rT   ©r’   rS  rÏ  s      rk   r´  Ú-GraphModuleSerializer.serialize_tensor_output  sO   € Ø×#Ñ#×1Ñ1Ó1Ü  5¨©Ð0IÐ!JÓKÐKÜ/DÀXÓ/Nˆ×Ñ×&Ñ& tÑ,Ü 4Ñ(Ð(rj   c                 óÀ   • XR                   R                  ;   a  [        SU< S35      e[        U5      U R                   R                  U'   [        R
                  " US9$ )NrÚ  z already in sym_int_valuesrn  )r�  rG  r²   r×   rS   rÖ   rÛ  s      rk   rµ  Ú.GraphModuleSerializer.serialize_sym_int_output  sU   € Ø×#Ñ#×2Ñ2Ó2Ü  5¨©Ð0JÐ!KÓLÐLÜ0AÀ(Ó0Kˆ×Ñ×'Ñ'¨Ñ-Ü×$Ò$¨TÑ2Ð2rj   c                 óÀ   • XR                   R                  ;   a  [        SU< S35      e[        U5      U R                   R                  U'   [        R
                  " US9$ )NrÚ  z already in sym_float_valuesrn  )r�  rI  r²   rÝ   rQ   rÖ   rÛ  s      rk   Úserialize_sym_float_outputÚ0GraphModuleSerializer.serialize_sym_float_output%  sU   € Ø×#Ñ#×4Ñ4Ó4Ü  5¨©Ð0LÐ!MÓNÐNÜ2EÀhÓ2Oˆ×Ñ×)Ñ)¨$Ñ/Ü×&Ò&¨tÑ4Ð4rj   c                 óÀ   • XR                   R                  ;   a  [        SU< S35      e[        U5      U R                   R                  U'   [        R
                  " US9$ )NrÚ  z already in sym_bool_valuesrn  )r�  rH  r²   rä   rM   rÖ   rÛ  s      rk   Úserialize_sym_bool_outputÚ/GraphModuleSerializer.serialize_sym_bool_output+  sU   € Ø×#Ñ#×3Ñ3Ó3Ü  5¨©Ð0KÐ!LÓMÐMÜ1CÀHÓ1Mˆ×Ñ×(Ñ(¨Ñ.Ü×%Ò%¨dÑ3Ð3rj   Úspecc           	      óL  • [         R                  SU5        UR                  [        R                  R
                  :X  Ga  [        UR                  [        R                  5      (       Ga¼  [        UR                  R                  5      [        L a*  [        R                  " UR                  R                  S9nGO<[        UR                  R                  5      [        L a)  [        R                  " UR                  R                  S9nOí[        UR                  R                  5      [        L a)  [        R                  " UR                  R                  S9nOž[        UR                  R                  5      [         L a)  [        R                  " UR                  R                  S9nOOUR                  R                  c  [        R                  " SS9nO#[#        SUR                  R                   S	35      e[$        R                  " ['        UR                  R(                  US
9S9$ [$        R                  " [+        U R-                  UR                  5      S9S9$ UR                  [        R                  R.                  :X  a­  UR0                  c  [3        S5      e[        UR                  [        R4                  5      (       d+  [3        S[        UR                  5      R6                   35      e[$        R                  " [9        [5        UR                  R(                  S9UR0                  S9S9$ UR                  [        R                  R:                  :X  aÐ  UR0                  c  [3        S5      e[        UR                  [        R4                  5      (       d+  [3        S[        UR                  5      R6                   35      eUR<                  c  [3        S5      e[$        R                  " [?        [5        UR                  R(                  S9UR0                  UR<                  S9S9$ UR                  [        R                  R@                  :X  a­  UR0                  c  [3        S5      e[        UR                  [        R4                  5      (       d+  [3        S[        UR                  5      R6                   35      e[$        R                  " [C        [5        UR                  R(                  S9UR0                  S9S9$ UR                  [        R                  RD                  :X  aÂ  UR0                  c  [3        S5      e[        UR                  [        RF                  5      (       d+  [3        S[        UR                  5      R6                   35      e[$        R                  " [I        [G        UR                  R(                  UR                  RJ                  S9UR0                  S9S9$ UR                  [        R                  RL                  :X  aŠ  [        UR                  [        RN                  5      (       d+  [3        S[        UR                  5      R6                   35      e[$        R                  " [Q        [O        UR                  R(                  S9S9S 9$ [3        S!U 35      e)"Nz[serialize_input_spec] %sr­   rß   rl  rÙ   Trx  zUnhandled constant input z to serialize©rS  rp   )Úconstant_input©rÁ  )Ú
user_inputz,spec.target should not be None for PARAMETERúexpected TensorArgument, got rt  ©rÁ  Úparameter_name)Ú	parameterz)spec.target should not be None for BUFFERz-spec.persistent should not be None for BUFFER)rÁ  Úbuffer_nameÚ
persistent)r  z2spec.target should not be None for CONSTANT_TENSOR)rÁ  Útensor_constant_name)Útensor_constantz-spec.target should not be None for CUSTOM_OBJz expected CustomObjArgument, got r­  )rÁ  r×  )Ú
custom_objúexpected TokenArgument, got ©ÚtokenúUnknown argument kind: ))r  r²  r>  r·  Ú	InputKindÚ
USER_INPUTrv   rÁ  ÚConstantArgumentr£   rp   rÔ   r+   rÖ   râ   r3  rÛ   rb   r5   r7   rS  rY   Úserialize_argument_specÚ	PARAMETERr>  r²   rT   re   r:   ÚBUFFERrð  r6   ÚCONSTANT_TENSORr;   Ú
CUSTOM_OBJr,   r8   r®  ÚTOKENrV   r9   )r’   rå  Úconstant_specs      rk   Úserialize_input_specÚ*GraphModuleSerializer.serialize_input_spec1  sÏ  € Ü�	‰	Ð-¨tÔ4Ø�9‰9œŸ™×/Ñ/Ô/Ü˜$Ÿ(™(¤B×$7Ñ$7×8Ò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ä(Ø3°D·H±H·N±NÐ3CÀ=ÐQóð ô !×'Ò'Ü#;Ø!ŸX™XŸ]™]°-ñ$ñð ô !×'Ò'Ü,°×1MÑ1MÈdÏhÉhÓ1WÑXñð ð �Y‰Yœ"Ÿ,™,×0Ñ0Ó0Ø�{‰{Ñ"Ü$Ð%SÓTÐTÜ˜dŸh™h¬×(9Ñ(9×:Ñ:Ü$Ø3´D¸¿¹³N×4KÑ4KÐ3LÐMóð ô ×#Ò#Ü.Ü&¨D¯H©H¯M©MÑ:Ø#'§;¡;ññð ð �Y‰Yœ"Ÿ,™,×-Ñ-Ó-Ø�{‰{Ñ"Ü$Ð%PÓQÐQÜ˜dŸh™h¬×(9Ñ(9×:Ñ:Ü$Ø3´D¸¿¹³N×4KÑ4KÐ3LÐMóð ð �‰Ñ&Ü$Ð%TÓUÐUÜ×#Ò#Ü(Ü&¨D¯H©H¯M©MÑ:Ø $§¡Ø#Ÿ™ññð ð �Y‰Yœ"Ÿ,™,×6Ñ6Ó6Ø�{‰{Ñ"Ü$ØHóð ô ˜dŸh™h¬×(9Ñ(9×:Ñ:Ü$Ø3´D¸¿¹³N×4KÑ4KÐ3LÐMóð ô ×#Ò#Ü 9Ü&¨D¯H©H¯M©MÑ:Ø)-¯©ñ!ñð ð �Y‰Yœ"Ÿ,™,×1Ñ1Ó1Ø�{‰{Ñ"Ü$Ð%TÓUÐUÜ˜dŸh™h¬×(<Ñ(<×=Ñ=Ü$Ø6´t¸D¿H¹H³~×7NÑ7NÐ6OÐPóð ô ×#Ò#Ü/Ü)Ø!ŸX™XŸ]™]°d·h±h×6HÑ6Hñð %)§K¡Kñ	ñð ð �Y‰Yœ"Ÿ,™,×,Ñ,Ó,Ü˜dŸh™h¬×(8Ñ(8×9Ñ9Ü$Ø2´4¸¿¹³>×3JÑ3JÐ2KÐLóð ô ×#Ò#Ü$Ü%¨4¯8©8¯=©=Ñ9ññð ô !Ð#:¸4¸&Ð!AÓBÐBrj   c                 ó  • [         R                  SU5        UR                  [        R                  R
                  :X  a4  [        R                  " [        U R                  UR                  5      S9S9$ UR                  [        R                  R                  :X  aŠ  [        UR                  [        R                  5      (       d+  [        S[        UR                  5      R                    35      e[        R                  " [#        [        UR                  R$                  S9S9S9$ UR                  [        R                  R&                  :X  a­  UR(                  c  [        S5      e[        UR                  [        R                  5      (       d+  [        S[        UR                  5      R                    35      e[        R                  " [+        [        UR                  R$                  S9UR(                  S9S	9$ UR                  [        R                  R,                  :X  a­  UR(                  c  [        S
5      e[        UR                  [        R                  5      (       d+  [        S[        UR                  5      R                    35      e[        R                  " [/        [        UR                  R$                  S9UR(                  S9S9$ UR                  [        R                  R0                  :X  a­  UR(                  c  [        S5      e[        UR                  [        R                  5      (       d+  [        S[        UR                  5      R                    35      e[        R                  " [3        [        UR                  R$                  S9UR(                  S9S9$ UR                  [        R                  R4                  :X  a­  UR(                  c  [        S5      e[        UR                  [        R                  5      (       d+  [        S[        UR                  5      R                    35      e[        R                  " [7        [        UR                  R$                  S9UR(                  S9S9$ UR                  [        R                  R8                  :X  a­  UR(                  c  [        S5      e[        UR                  [        R                  5      (       d+  [        S[        UR                  5      R                    35      e[        R                  " [;        [        UR                  R$                  S9UR(                  S9S9$ UR                  [        R                  R<                  :X  aŠ  [        UR                  [        R>                  5      (       d+  [        S[        UR                  5      R                    35      e[        R                  " [A        [?        UR                  R$                  S9S9S9$ [        SU 35      e)Nz[serialize_output_spec] %sré  )Úuser_outputrë  rt  )Úloss_outputz2spec.target should not be None for BUFFER_MUTATION)rÁ  rï  )Úbuffer_mutationz5spec.target should not be None for PARAMETER_MUTATIONrì  )Úparameter_mutationz8spec.target should not be None for GRADIENT_TO_PARAMETER)Úgradient_to_parameterz9spec.target should not be None for GRADIENT_TO_USER_INPUT)rÁ  Úuser_input_name)Úgradient_to_user_inputz6spec.target should not be None for USER_INPUT_MUTATION)Úuser_input_mutationrô  rõ  r÷  )!r  r²  r>  r·  Ú
OutputKindÚUSER_OUTPUTrE   rÖ   rZ   rû  rÁ  ÚLOSS_OUTPUTrv   rT   r²   r£   re   r=   rS  ÚBUFFER_MUTATIONr>  r)   ÚPARAMETER_MUTATIONrG   ÚGRADIENT_TO_PARAMETERr/   ÚGRADIENT_TO_USER_INPUTr0   ÚUSER_INPUT_MUTATIONrX   r   rV   rF   )r’   rå  s     rk   Úserialize_output_specÚ+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×:Ñ:Ü$Ø3´D¸¿¹³N×4KÑ4KÐ3LÐMóð ô ×$Ò$Ü*¬~À4Ç8Á8Ç=Á=Ñ/QÑRñð ð �Y‰Yœ"Ÿ-™-×7Ñ7Ó7Ø�{‰{Ñ"Ü$ØHóð ô ˜dŸh™h¬×(9Ñ(9×:Ñ:Ü$Ø3´D¸¿¹³N×4KÑ4KÐ3LÐMóð ô ×$Ò$Ü 2Ü&¨D¯H©H¯M©MÑ:Ø $§¡ñ!ñð ð �Y‰Yœ"Ÿ-™-×:Ñ:Ó:Ø�{‰{Ñ"Ü$ØKóð ô ˜dŸh™h¬×(9Ñ(9×:Ñ:Ü$Ø3´D¸¿¹³N×4KÑ4KÐ3LÐMóð ô ×$Ò$Ü#8Ü&¨D¯H©H¯M©MÑ:Ø#'§;¡;ñ$ñð ð �Y‰Yœ"Ÿ-™-×=Ñ=Ó=Ø�{‰{Ñ"Ü$ØNóð ô ˜dŸh™h¬×(9Ñ(9×:Ñ:Ü$Ø3´D¸¿¹³N×4KÑ4KÐ3LÐMóð ô ×$Ò$Ü&=Ü&¨D¯H©H¯M©MÑ:Ø#'§;¡;ñ'ñð ð �Y‰Yœ"Ÿ-™-×>Ñ>Ó>Ø�{‰{Ñ"Ü$ØOóð ô ˜dŸh™h¬×(9Ñ(9×:Ñ:Ü$Ø3´D¸¿¹³N×4KÑ4KÐ3LÐMóð ô ×$Ò$Ü'>Ü&¨D¯H©H¯M©MÑ:Ø$(§K¡Kñ(ñð ð �Y‰Yœ"Ÿ-™-×;Ñ;Ó;Ø�{‰{Ñ"Ü$ØLóð ô ˜dŸh™h¬×(9Ñ(9×:Ñ:Ü$Ø3´D¸¿¹³N×4KÑ4KÐ3LÐMóð ô ×$Ò$Ü$9Ü&¨D¯H©H¯M©MÑ:Ø$(§K¡Kñ%ñð ð �Y‰Yœ"Ÿ-™-×-Ñ-Ó-Ü˜dŸh™h¬×(8Ñ(8×9Ñ9Ü$Ø2´4¸¿¹³>×3JÑ3JÐ2KÐLóð ô ×$Ò$Ü%Ü%¨4¯8©8¯=©=Ñ9ññð ô !Ð#:¸4¸&Ð!AÓBÐBrj   Úsigc           	      óø   • [         R                  S5        [        UR                   Vs/ s H  o R	                  U5      PM     snUR
                   Vs/ s H  o R                  U5      PM     snS9$ s  snf s  snf )Nz
[serialize_signature]©Úinput_specsÚoutput_specs)r  r²  r4   r  r  r  r  )r’   r  rÂ   s      rk   Úserialize_signatureÚ)GraphModuleSerializer.serialize_signatureú  sd   € Ü�	‰	Ð+Ô,ÜØ?B¿ºÓOº¸!×2Ñ2°1Ö5¹ÑOØAD×AQÒAQÓRÒAQ¸A×4Ñ4°QÖ7ÑAQÑRñ
ð 	
ùÚOùÚRs   ©A2ÁA7
r¬  c                 óî  • [        U[        R                  5      (       a%  [        R                  " [        UR
                  S9S9$ [        U[        R                  5      (       a0  [        R                  " [        R                  " UR
                  S9S9$ [        U[        R                  5      (       a0  [        R                  " [        R                  " UR
                  S9S9$ [        U[        R                  5      (       a  U R                  UR                  5      $ [        U[        R                  5      (       a0  [        R                  " [        UR
                  UR                  S9S9$ [        S5      e)	Nrt  r©  rn  r«  rp  r­  r¯  ÚTODO)rv   r·  rT   r'   rÖ   rS  rS   rQ   rú  r¶  rp   r,   r®  r²   ©r’   r¬  s     rk   rû  Ú-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Ñ0Ü—?’?Ü/°Q·V±VÀqÇ{Á{ÑSñð ô ! Ó(Ð(rj   Útreespecc                 óp   ^ ^• S[         R                  SS 4U U4S jjm[        U[        5      nT" U5        U$ )NÚtsr¡   c           	      ó^  >• U R                   c  g U R                   [        L d%  [        R                  " U R                   5      (       aÇ  [        R                  U R
                     R                  nUTR                  ;   af  TR                  U   R                  nX R
                  R                  :w  a3  [        SU R
                   SU R
                  R                   SU S35      eO*[        U R
                  R                  S9TR                  U'   U R                  5        H  nT" U5        M     g )Nz%The given TreeSpec's namedtuple type z was found to have field names z6 but somehow previously was found to have field names rÅ  )Úfield_names)r£   r   ÚpytreeÚis_namedtuple_classÚSUPPORTED_SERIALIZED_TYPESÚcontextÚserialized_type_namer   r&  Ú_fieldsrb   rB   Úchildren)r$  r+  r&  Úchildr’   Ústore_namedtuple_fieldss       €€rk   r/  ÚIGraphModuleSerializer.serialize_treespec.<locals>.store_namedtuple_fields  s  ø€ Ø�w‰w‰ØØ�w‰wœ*Ò$¬×(BÒ(BÀ2Ç7Á7×(KÑ(KÜ'-×'HÑ'HØ—J‘Jñ(ç&Ñ&ð %ð (¨4×+JÑ+JÓJØ"&×"AÑ"AØ,ñ#ç!‘kð  ð #§j¡j×&8Ñ&8Ó8Ü,ØCÀBÇJÁJÀ<ð P=Ø=?¿Z¹Z×=OÑ=OÐ<Pð QTØT_ÐS`Ð`aðcóð ð 9ô &°"·*±*×2DÑ2DÑEð ×3Ñ3Ð4HÑIð Ÿ™ž�Ù'¨Ö.ò 'rj   )r'  ÚTreeSpecr   rW   )r’   r"  Úserialized_treespecr/  s   `  @rk   Úserialize_treespecÚ(GraphModuleSerializer.serialize_treespec  s=   ù€ ð	/¬¯©ð 	/¸D÷ 	/ð 	/ô2 -¨XÔ7GÓHÐÙ Ô)Ø"Ð"rj   Úmodule_call_signaturec           	      ó’  • [         R                  SU5        [        UR                   Vs/ s H  o R	                  U5      PM     snUR
                   Vs/ s H  o R	                  U5      PM     snU R                  UR                  5      U R                  UR                  5      UR                  =n(       a  US9$ S S9$ s  snf s  snf )Nz$[serialize_module_call_signature] %s©rC  rD  Úin_specÚout_specÚforward_arg_names)
r  r²  r@   rC  rû  rD  r3  r8  r9  r:  ©r’   r5  r¬  Únamess       rk   Úserialize_module_call_signatureÚ5GraphModuleSerializer.serialize_module_call_signature1  sÌ   € ô 	�	‰	Ð8Ð:OÔPÜ"à9N×9UÒ9UóÚ9U°A×,Ñ,¨QÖ/Ñ9Uñð :O×9VÒ9VóÚ9V°A×,Ñ,¨QÖ/Ñ9Vñð ×+Ñ+Ð,A×,IÑ,IÓJØ×,Ñ,Ð-B×-KÑ-KÓLà#8×#JÑ#JÐJ˜%ÕJ�ñ
ð 	
ð RVñ
ð 	
ùòùòs   ªB?ÁC
c           	      óØ   • [         R                  S5        U Vs/ s HC  n[        UR                  UR                  (       a  U R                  UR                  5      OS S9PME     sn$ s  snf )Nz
[serialize_module_call_graph]©Úfqnrä  )r  r²  r?   rA  rä  r=  ©r’   r›  Úentrys      rk   Úserialize_module_call_graphÚ1GraphModuleSerializer.serialize_module_call_graphC  sh   € ô 	�	‰	Ð3Ô4ñ +ó

ò +�ô Ø—I‘Ið ——ð ×8Ñ8¸¿¹ÔIàôñ +ñ

ð 
	
ùò 

s   šA
A'c                 ó	  • S[         S[        4S jnUR                  S:X  a?  [        UR                  [
        R                  R                  /[        5       Q75      (       d8  [        SUR                   S[        UR                  5      R                   35      e[        UR                  5      nUR                  n[        U5      S:X  a  / $ UR                  S   nU" UR                  5      (       a\  / n[!        U5       H6  u  pxU R#                  X5      n	UR%                  U R'                  X˜5      5        M8     [(        R*                  " US	9/$ [        U5      S
:X  a  U R-                  UR.                  U5      /$ / n
[!        [1        XT5      5       GH÷  u  nu  p‹Uc‰  [        UR2                  [
        R4                  [
        R6                  45      (       d+  [        S[        UR2                  5      R                   35      eU
R%                  [(        R*                  " SS95        M•  [        U[8        5      (       a˜  [        UR2                  [
        R4                  [
        R6                  45      (       d+  [        S[        UR2                  5      R                   35      eU R#                  X5      n	U
R%                  U R-                  X˜5      5        GMB  [        U[:        5      (       Ga   [        UR2                  [
        R<                  5      (       a7  [        UR2                  R?                  5       [
        R6                  5      (       d+  [        S[        UR2                  5      R                   35      eU RA                  X5      nUc  [        SU 35      e/ n[!        U5       H<  u  pïUc  M
  U R#                  XÎ5      nUR%                  U R'                  UU5      5        M>     U
R%                  [(        R*                  " US	95        GMx  [        U[B        [D        [F        [H        45      (       a5  U R#                  X5      nU
R%                  U R-                  UU5      5        GMÒ  [K        S[        U5       SURM                  5        35      e   U
$ )aÕ  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                 ó   • [        U 5      nUR                  n[        U5      S:w  a  gUS   R                  n[	        U[
        R                  5      =(       a(    [	        UR                  5       [
        R                  5      $ )Nr%   Fr   )	r?  Úreturnsr  Ú	real_typerv   rw   rÃ  rÂ  rÈ  )r>  r&   rH  Úreturn_types       rk   Ú_is_single_tensor_list_returnÚNGraphModuleSerializer.serialize_outputs.<locals>._is_single_tensor_list_returng  sg   € Ü,¨VÓ4ˆFØ—n‘nˆGä�7‹|˜qÓ ØØ! !™*×.Ñ.ˆKÜ˜k¬5¯>©>Ó:÷ ¼zØ×*Ñ*Ó,¬e×.>Ñ.>ó@ð rj   rÌ  zIexpected call_function with OpOverload or registered extension type, got z with r   r"  rÓ  r%   z)expected OptionalType or TensorType, got Trx  z/expected ListType with TensorType element, got ú6user_node should not be None for list output at index zUnhandled output type z from node )'r   râ   r{   rv   r>  rw   rx   ry   rK  r²   r£   re   r?  rH  r  r±  rÕ  rÖ  r}  r´  r'   rÖ   rì  rS  rB  rI  rÁ  rÈ  r   rL  rÃ  rÂ  r  rÔ   rR   rÛ   rP   r€  Úformat_node)r’   rÄ   rK  r&   rH  rÏ  r×  rŒ  r±  rS  Úoutput_argumentsÚreturn_schemar  r¾  r	  ÚmÚsub_user_node_nameÚuser_node_names                     rk   rï  Ú'GraphModuleSerializer.serialize_outputsS  sð  € ð(		´#ð 		¼$ô 		ð �G‰G�Ó&ÜØ—‘œeŸj™j×3Ñ3ÐTÔ6QÓ6SÑT÷ñ ô !ðØ—w‘w�i˜v¤d¨4¯;©;Ó&7×&@Ñ&@Ð%AðCóð ô
 )¨¯©Ó5ˆØ—.‘.ˆäˆw‹<˜1ÓØˆIà—9‘9˜UÑ#ˆñ )¨¯©×5Ñ5àˆKÜ& xÖ0‘	�Ø×6Ñ6°tÓA�Ø×"Ñ" 4×#?Ñ#?ÀÓ#KÖLñ 1ô —O’O¨{Ñ;Ð<Ð<Ü�‹\˜QÓØ×)Ñ)¨$¯)©)°XÓ>Ð?Ð?ð ÐÜ*3´C¸Ó4J×*KÑ&ˆCÑ&�$Ø‰|Ü!Ø!×+Ñ+¬e×.@Ñ.@Ä%×BRÑBRÐ-S÷ñ ô )ØCÄDÈ×I`ÑI`ÓDa×DjÑDjÐCkÐlóð ð
 !×'Ñ'¬¯ªÀÑ(EÖFÜ˜D¤*×-Ñ-Ü!Ø!×+Ñ+¬e×.@Ñ.@Ä%×BRÑBRÐ-S÷ñ ô )ØCÄDÈ×I`ÑI`ÓDa×DjÑDjÐCkÐlóð ð ×6Ñ6°tÓA�Ø ×'Ñ'¨×(=Ñ(=¸dÓ(I×JÜ˜D¤$×'Ò'ô ˜}×6Ñ6¼¿¹×GÑGÜ"Ø%×/Ñ/×>Ñ>Ó@Ä%×BRÑBR÷ñ ô )ØIÌ$È}×OfÑOfÓJg×JpÑJpÐIqÐróð ð !×6Ñ6°tÓA�	ØÑ$Ü(ØPÐQTÐPUÐVóð ð �Ü% džO‘D�AØ‘yÙ Ø)-×)HÑ)HÈÓ)VÐ&Ø—K‘K × <Ñ <Ð=OÐQRÓ SÖTñ	 ,ð
 !×'Ñ'¬¯ªÀ4Ñ(H×IÜ˜D¤3¬´´xÐ"@×AÑAØ!%×!@Ñ!@ÀÓ!K�Ø ×'Ñ'¨×(=Ñ(=¸nÈdÓ(S×Tä Ø,¬T°$«Z¨L¸ÀD×DTÑDTÓDVÐCWÐXóð ña +Lðh  Ðrj   c                 óH  • UR                   S   n[        U[        5      (       Ga4  / n[        U5       GH   u  pEU R	                  X5      n[        U[
        5      (       a´  Uc  [        SU 35      e/ n[        U5       Hm  u  p‰[        U	[        R                  5      (       d  [        S[        U	5       S35      eU R                  Xh5      n
UR                  U R                  X©5      5        Mo     UR                  [        R                  " US95        Mà  Ub  UR                   OUR                    SU 3n
UR                  U R#                  X¥5      5        GM#     U$ [        U[$        5      (       a˜  / nUR'                  5        Hm  u  pÍ[        U[        R                  5      (       d  [        S[        U5       S35      eU R                  X5      n
UR                  U R                  X­5      5        Mo     [        R                  " US9/$ U R#                  UR                   U5      /$ )z>
For serializing HOO outputs since HOOs do not have a schema.
r"  rM  z Serialize list output with type z nyirÓ  r  )r±  rv   r³   rÕ  r  rL  r²   rw   r³  rb   r£   rÖ  r}  r´  r'   rÖ   rS  rì  r  ro   )r’   rÄ   rÏ  rD  r	  Úelement_meta_valr  ÚtensorsÚjrQ  rS  r×  rŒ  r±  s                 rk   rù  Ú+GraphModuleSerializer.serialize_hoo_outputsÏ  sî  € ð —9‘9˜UÑ#ˆä�h¤×&Ò&ØˆGÜ'0°×':Ñ#�Ø ×6Ñ6°tÓ?�	ÜÐ.´×5Ñ5à Ñ(Ü,ØTÐUVÐTWÐXóð ð !�GÜ )Ð*:Ö ;™˜Ü)¨!¬U¯\©\×:Ñ:Ü"0Ø"BÄ4ÈÃ7À)È4Ð Pó#ð ð  $×>Ñ>¸yÓL˜ØŸ™ t×'CÑ'CÀDÓ'LÖMñ !<ð —N‘N¤8§?¢?¸gÑ#FÖGð
 %Ñ0ð "Ÿšà $§	¡	˜{¨(°1°#Ð6ð ð —N‘N 4×#8Ñ#8¸Ó#P×Qñ7 (;ð: ˆNÜ˜¤$×'Ñ'ØˆKà%Ÿ^™^Ö-‘	�Ü! $¬¯©×5Ñ5Ü(Ø:¼4À»:¸,ÀdÐKóð ð ×6Ñ6°tÓA�Ø×"Ñ" 4×#?Ñ#?ÀÓ#KÖLñ .ô —O’O¨{Ñ;Ð<Ð<à×)Ñ)¨$¯)©)°XÓ>Ð?Ð?rj   rS  rÏ  c                 óÀ  • Uc  [         R                  " SS9$ [        U[        R                  5      (       a#  [         R                  " U R                  X5      S9$ [        U[        [        R                  45      (       a#  [         R                  " U R                  X5      S9$ [        U[        [        R                  45      (       aC  [        U[        5      (       a  [        S5      e[         R                  " U R                  X5      S9$ [        U[        [        R                  45      (       a#  [         R                  " U R                  X5      S9$ [!        SU 35      e)	NTrx  r©  rr  z1meta_val should not be bool when returning SymIntr«  rp  zUnable to serialize output )r'   rÖ   rv   rw   r³  r´  râ   rL   rã  rÔ   rR   r²   rµ  rÛ   rP   rà  rb   rÛ  s      rk   rì  Ú&GraphModuleSerializer.serialize_output  s   € àÑÜ—?’?¨4Ñ0Ð0Ü�h¤§¡×-Ñ-ä—?’?Ø×6Ñ6°tÓFñð ô ˜¤4¬¯©Ð"7×8Ñ8ä—?’?Ø ×:Ñ:¸4ÓJñð ô ˜¤3¬¯©Ð"5×6Ñ6ä˜(¤D×)Ñ)Ü$ØGóð ô —?’?Ø×8Ñ8¸ÓHñð ô ˜¤5¬%¯.©.Ð"9×:Ñ:ä—?’?Ø!×<Ñ<¸TÓLñð ô
 Ð:¸8¸*ÐEÓFÐFrj   c                 ó°  • UR                   S   n0 nUR                   HM  nUR                  [        R                  La  [        SU SU S35      eUR                  X4R                  S   '   MO     [        U5       H  u  pVXS;  d  M  UR                   SU 3X5'   M!     / n[        U5       H(  u  p‰UR                  U R                  X8   U	5      5        M*     U$ )Nr"  z
User node z of z is incorrectr%   r  )r±  r  r>  rè  ré  r²   rS  r¾  rÕ  r}  r´  )
r’   rÄ   rÏ  Úidx_to_namer  rŒ  r—  Úarg_listr	  rV  s
             rk   Ú_handle_getitem_usersÚ+GraphModuleSerializer._handle_getitem_users#  sÔ   € Ø—9‘9˜UÑ#ˆàˆØ—J”JˆDØ�{‰{¤(×"2Ñ"2Ò2Ü$ z°$°°t¸D¸6ÀÐ%OÓPÐPà(,¯	©	ˆKŸ	™	 !™Ó%ñ	 ô   Ö)‰FˆCð Õ%à&*§i¡i [°¸¸Ð#>�Ó ñ *ð ˆÜ#,¨XÖ#6ÑˆAØ�O‰Oà×,Ñ,¨[©^Ð=MÓNöñ $7ð ˆrj   Úgraph_modulec                 óp  • [        U[        R                  R                  5      (       d!  [	        S[        U5      R                   35      e[        R                  SUR                  SS95        UR                  R                   H#  n [        U SUR                   35      " U5        M%     ['        U R(                  R*                  U R(                  R                  U R(                  R,                  U R(                  R.                  U R(                  R0                  U R(                  R2                  U R(                  R4                  U R(                  R6                  U R(                  R8                  S	9	$ ! [         a;  n[        SU SUR!                  5        S["        R$                  " 5        35      UeS nAff = f)
Nzexpected GraphModule, got z[serialize_graph]

%sF)Úprint_outputÚhandle_zFailed serializing node z in graph: ú
 Original exception )	rC  rE  rF  rG  rI  rH  rK  rD  rJ  )rv   rw   r¿  r3   r²   r£   re   r  r²  Úprint_readablerñ  rE  r^  r{   r  rb   rN  Ú	tracebackÚ
format_excr1   r�  rC  rF  rG  rI  rH  rK  rD  rJ  )r’   ra  rÄ   r   s       rk   r»  Ú%GraphModuleSerializer.serialize_graph>  s„  € Ü˜,¬¯©×(<Ñ(<×=Ñ=Ü Ø,¬T°,Ó-?×-HÑ-HÐ,IÐJóð ô 	�	‰	Ø% |×'BÑ'BÐPUÐ'BÐ'Vô	
ð !×&Ñ&×,Ô,ˆDðÜ˜ ¨¯© 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   ÂE0Å0
F5Å:6F0Æ0F5r±  c                 óà   • 0 nUR                  S5      =n(       a2  [        R                  SU5         [        R                  " U5      US'   U$ U$ ! [
         a  n[        SU 35      UeS nAff = f)Nr)  z%
[serialize_graph_module_metadata] %sz9Failed to serialize custom metadata for graph with error )r|  r  r²  rø   rù   r  rb   )r’   r±  r.  r)  r   s        rk   Úserialize_graph_module_metadataÚ5GraphModuleSerializer.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                 ó  • [         R                  S5        U R                  U5      n[        UU R	                  U R
                  5      U R                  U R                  5      U R                  UR                  5      U R                  S9$ )Nz
[serialize])rñ  rä  r›  r�  r   )r  r²  r»  r3   r  rš  rD  r›  rk  r±  r   )r’   ra  rñ  s      rk   r\   ÚGraphModuleSerializer.serializeh  ss   € Ü�	‰	�/Ô"Ø×$Ñ$ \Ó2ˆäØØ×.Ñ.¨t×/CÑ/CÓDØ"×>Ñ>¸t×?UÑ?UÓVØ×9Ñ9¸,×:KÑ:KÓLØ'+×'FÑ'Fñ
ð 	
rj   )rž  rŸ  rš  r�  r›  r   rn   )Hre   rf   rg   rh   r·  ÚExportGraphSignaturerL  r?   r“   r	   r¥  rw   r¿  rC   rº  rÂ  r3  rÉ  r  r  r   r  rÖ  r  rí  r   r   r-  r,   r¸  rA   rë  rî  rô  râ   rY  r\  r_  rb  r'   r¶  rT   r´  rS   rµ  rQ   rà  rã  r5   r  rE   r  r4   r  ÚArgumentSpecrû  r'  r1  r3  r@   r=  rD  rï  rù  rì  r_  r3   r1   r»  rk  r\   ri   rd   rj   rk   r]   r]   ·  s�  † ð
Gà×0Ñ0ð
Gð   × 2Ñ 2Ñ3ô
Gð ñ%ó ð%ð4 u§x¡x§}¡}ô 4ð:X %§(¡(§-¡-ô Xð$	<¨Cô 	<ðw/¨¯©¯©ô w/òr5ð°H¸U¿X¹X¿]¹]Ñ4Kô ð"¸ô "ð8 u§x¡x§}¡}ð 8¸¸cÀ3¸h¹ô 8ðt
Ø! $ zÑ"2Ñ3ð
à	�$�t˜C ˜H‘~Ñ&Ñ	'ô
ð
Ø!×3Ñ3ð
à	ô
ð°4¸Ñ3Fô ð, ñ	1àð1ð
 
ˆmÑ	õ1ðf°D¸Ñ4Gô ð,A¨dô Að
 Tô 
ð
 tô 
ð
 dô 
ñw¨X°c©]ð wÀhõ wðr	)¸ô )ð3¸.ô 3ð5Ð<Lô 5ð4¸>ô 4ðaC¨¯©ð aC¸)ô aCðFdC¨"¯-©-ð dC¸Jô dCðL
 r×'>Ñ'>ð 
À>ô 
ð)¨¯©ð )¸Xô )ð #¨6¯?©?ð #¸sô #ð@
Ø%'×%;Ñ%;ð
à	ô
ð$
Ø!% b×&8Ñ&8Ñ!9ð
à	ˆoÑ	ô
ð z  e§h¡h§m¡mð z ¸¸X¹ô z ðx2@¨%¯(©(¯-©-ð 2@¸DÀ¹Nô 2@ðhG Sð G°Cð G¸Hô Gð@¨%¯(©(¯-©-ð ¸DÀÑ<Pô ð6
¨E¯H©H×,@Ñ,@ð 
ÀUô 
ð:°D¸¸c¸±Nô ð

 e§h¡h×&:Ñ&:ð 

¸{÷ 

rj   r]   )Ú	metaclassc                   ód   • \ rS rSrS\4S\\\\4      S\4S jjr	S\
R                  S\4S jrS	rg)
r^   iu  NÚopset_versionr
  c                 óØ   • 0 U l         U(       a  U R                   R                  U5        SU R                   ;  a+  [        R                  R	                  5       U R                   S'   X l        g ©NÚaten)rs  Úupdaterw   rË  Ú_get_max_operator_versionr
  )r’   rs  r
  s      rk   r“   Ú"ExportedProgramSerializer.__init__w  sT   € ð
 .0ˆÔÞØ×Ñ×%Ñ% mÔ4Ø˜×+Ñ+Ó+Ü).¯©×)KÑ)KÓ)MˆD×Ñ˜vÑ&à.Õrj   r�   r¡   c           
      ó`  • UR                  5         [        UR                  UR                  5      nUR	                  UR
                  5      n[        UR                  5      nUR                  R                  5       nUR                  R                  5        H  u  pgXe;   a  [        SU< S35      eXuU'   M      [        UU R                  U[        [         S   [         S   S9UR"                   Vs/ s H  oˆR$                  PM     sn[&        R(                  UR*                  S9n	[-        U	[/        UR1                  5       5      5        [3        UR4                  SS9n
[7        U	[9        X R:                  5      [9        XPR:                  5      [9        UR<                  U R:                  5      5      $ s  snf )	z;
Args:
    exported_program: Exported Program to serialize
zconstant name z already exists in constantsr   r%   )ÚmajorÚminor©ra  rs  r5  Úschema_versionÚ	verifiersÚtorch_versionÚguards_codeF)Úin_place)Úvalidater]   rš  r›  r\   ra  r9  r5  rž  Úcopyrƒ   ro   r²   r.   rs  rK   rJ   r  Údialectrw   Ú__version__Ú_guards_codeÚcanonicalizer�   rw  r$   r‚   rˆ   r  r
  r„   )r’   r�   Úgm_serializerÚserialized_graph_moduleÚserialized_range_constraintsrƒ   Únrå   rr   Úserialized_epÚnew_state_dicts              rk   r\   Ú#ExportedProgramSerializer.serialize„  s‹  € ð
 	×!Ñ!Ô#ä-Ø×,Ñ,Ð.>×.PÑ.Pó
ˆð #0×"9Ñ"9Ð:J×:WÑ:WÓ"XÐÜ'BØ×.Ñ.ó(
Ð$ð %2×$=Ñ$=×$BÑ$BÓ$Dˆ	Ø$×.Ñ.×4Ñ4Ö6‰DˆAØ‹~Ü$ ~°a±UÐ:VÐ%WÓXÐXØ�a‹Lñ 7ô
 (Ø0Ø×,Ñ,Ø:Ü(Ü$ QÑ'Ü$ QÑ'ñð +;×*DÒ*DÓEÒ*D Q—y”yÑ*DÑEÜ×+Ñ+Ø(×5Ñ5ñ
ˆô 	�]¤C¨	¯©Ó(8Ó$9Ô:ô 6Ø×'Ñ'°%ñ
ˆô "ØÜ$ ^×5IÑ5IÓJÜ$ Y×0DÑ0DÓEÜ$Ø ×/Ñ/°×1EÑ1Eóó	
ð 	
ùò Fs   Ã.F+)rs  r
  )re   rf   rg   rh   ÚDEFAULT_PICKLE_PROTOCOLr   r  r3  rÔ   r“   r·  r.   rˆ   r\   ri   rd   rj   rk   r^   r^   u  sH   † ð 37Ø6ñ/à  S¨# X¡Ñ/ð/ð õ/ð3
¨"×*<Ñ*<ð 3
ÐAS÷ 3
rj   r^   c                   ó  • \ rS rSr\R
                   " S S5      5       rSGS jr\S\	S   4S j5       r
S\4S	 jrS\4S
 jr SHS\S\\\\\4      S\R(                  4S jjrS\S\\\R,                  4   4S jrS\S\\\R2                  4   4S jrS\S\\\R6                  4   4S jrS\S\4S jrS\ S\!R@                  4S jr"S\\\RF                  RH                  \4      4S jr%S\&S\RF                  RL                  4S jr'S\$S\(SS4S jr)S\*S\!RT                  4S jr+S\,S\!RX                  4S jr-S \.S\!R^                  4S! jr0  SIS"\1S#\\2\\Rf                  4   \44   S$\\2\\54   \44   S%\\\6\6\Rf                  S&4   \2\\54   4   \44      S'\\2\\7Rp                  4      S\4S( jjr9S)\S*\RF                  RH                  4S+ jr:S, r;S\$4S- jr<S.\=\>   4S/ jr?S0\@S\54S1 jrAS0\BS\54S2 jrCS3 rDS\$S*\RF                  RH                  4S4 jrES\$S*\RF                  RH                  4S5 jrFS*\RF                  RH                  S6\\G\H\I4   S7\S8\2\\54   4S9 jrJS*\RF                  RH                  S8\2\\54   4S: jrKS\$S*\RF                  RH                  SS4S; jrLS<\2\\4   S\2\\54   4S= jrMS>\\=\2\\54         S\\=\N      4S? jrOS@\@S\!R                   4SA jrQSB\RS\!R¤                  4SC jrSSD\=\T   S\=\!R¨                     4SE jrUSFrVg)Jr_   iº  c                   ób  • \ rS rSr% \R
                  R                  \S'   \R                  \S'   \
\R                     \S'   \\\R                  4   \S'   \\\\R"                  \R$                  R&                  4   4   \S'   \\\4   \S'   \\\\R"                  S4   \\\4   4      \S	'   S
rg)ÚGraphModuleDeserializer.Resulti¼  ra  rä  r›  Únames_to_symbolsr‚   rƒ   .r„   rd   N)re   rf   rg   rh   rw   r¿  r3   r†   r·  ro  rL  r?   r  r3  rÆ   rÓ   r   r³  rö   r÷   r   r   r³   r   ri   rd   rj   rk   ÚResultr“  ¼  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Ø˜Ð3Ð3Ñ4Ó4Ø   u¨U¯\©\¸3Ð->Ñ'?ÀÀcÈ3ÀhÁÐ'OÑ!PÑQÖQrj   r•  r¡   Nc                 ó¼   • 0 U l         [        5       U l        [        R                  R                  5       U l        [        R                  R                  5       U l	        g rn   )
Úserialized_name_to_noder‹   Úserialized_name_to_metarw   r¿  r1   rñ  rö   ÚModulerÈ  r‘   s    rk   r“   Ú GraphModuleDeserializer.__init__Æ  s8   € ØACˆÔ$Ü07³	ˆÔ$Ü—X‘X—^‘^Ó%ˆŒ
Ü—h‘h—o‘oÓ'ˆ�rj   c              #   óì  #   • U R                   U R                  U R                  U R                  U R                  4n[
        R                  R                  5       U l         [
        R                  R                  5       U l        0 U l        [        5       U l        [        5       U l         S v •  Uu  U l         U l        U l        U l        U l        g ! Uu  U l         U l        U l        U l        U l        f = f7frn   )rñ  rÈ  r—  r˜  Úunbacked_symbolsrw   r¿  r1   rö   r™  r‹   r�   r£  s     rk   Úsave_graph_moduleÚ)GraphModuleDeserializer.save_graph_moduleÌ  sÌ   é € ð �J‰JØ�K‰KØ×(Ñ(Ø×(Ñ(Ø×!Ñ!ð
ˆô —X‘X—^‘^Ó%ˆŒ
Ü—h‘h—o‘oÓ'ˆŒØ')ˆÔ$Ü'.£yˆÔ$Ü36³5ˆÔð		Ûð ñØ”
Ø”ØÔ,ØÔ,ØÕ%øØñØ”
Ø”ØÔ,ØÔ,ØÕ%üs   ‚B%C4Â(C Â,"C4Ã#C1Ã1C4Úserialized_targetc                 óf   • UR                  S5      u  p#USS  n[        U   nUR                  U5      $ )Nræ  r%   )ÚsplitÚ_deserialization_registryÚfrom_op_name)r’   rŸ  rú  r  r  s        rk   Údeserialize_extension_operatorÚ6GraphModuleDeserializer.deserialize_extension_operatorå  s;   € Ø.×4Ñ4°SÓ9Ñˆ	Ø˜a˜b�Mˆ	Ü+¨IÑ6ˆØ×#Ñ# GÓ,Ð,rj   c                 óÒ  • UR                  S5      (       a  [        nUR                  S5      SS  nO‹UR                  S5      (       a  [        nUR                  S5      SS  nOZUR                  S5      (       a  [        nUR                  S5      SS  nO)UR                  S5      (       a  U R                  U5      $ U$ UnU H"  n[        XE5      (       d  Us  $ [        XE5      nM$     U$ )NÚ	_operatorrÅ  r%   rw   r)  rç  )rÆ  rè  r¡  rw   r)  r¤  r]  r^  )r’   rŸ  rÈ  Úserialized_target_namesr>  rS  s         rk   Údeserialize_operatorÚ,GraphModuleDeserializer.deserialize_operatorë  sí   € Ø×'Ñ'Ø÷
ñ 
ô ˆFØ&7×&=Ñ&=¸cÓ&BÀ1À2Ð&FÑ#Ø×)Ñ)¨'×2Ñ2ÜˆFØ&7×&=Ñ&=¸cÓ&BÀ1À2Ð&FÑ#Ø×)Ñ)¨&×1Ñ1ÜˆFØ&7×&=Ñ&=¸cÓ&BÀ1À2Ð&FÑ#Ø×)Ñ)¨#×.Ñ.Ø×6Ñ6Ð7HÓIÐIà$Ð$àˆÛ+ˆDÜ˜6×(Ñ(Ø(Ò(ä  Ó.’ñ	 ,ð
 ˆrj   rá   rÐ   c           	      ó  ^ •  SS[         R                  S[        [        [        [
        [        4      S[         R                  4U 4S jjjn[         R                  " U0 T R                  ET R                  ES9nU" XB5      $ )zl
Parses and does bottom-up processing of sympy.Expr nodes,
populating ShapeEnv & caching symbols as needed.
r0  rÐ   r¡   c                 ó¼  >• U R                   (       d"  U R                  (       d  U R                  (       a  U $ [        U 5      nU R                   H  nTR                  U5        M     UTR                  ;   a  TR                  U   n OƒU TR                  U'   [        U [        R                  5      (       aU  [        R                  " U [        R                  [        R                  45      (       a  TR                  R!                  U 5        Ub5  U TR"                  R$                  ;  a  TR"                  R'                  X5        TR(                  R+                  U5      =n(       a/  TR"                  R-                  U UR.                  UR0                  S9  [        U [        R                  5      (       a+  [2        R4                  " SS9TR"                  R6                  U '   U $ )N)Úcompiler_minÚcompiler_maxr%   )Úskip)Ú
is_IntegerÚis_FloatÚ
is_Booleanr3  r¾  Ú_parse_sym_exprÚsymbol_name_to_symbolrv   rÆ   rÓ   r   Úsymbol_is_typer   ÚUNBACKED_INTÚUNBACKED_FLOATrœ  r™   Ú	shape_envÚbacked_var_to_valÚadd_backed_var_to_valÚsymbol_name_to_ranger|  Úconstrain_symbol_ranger7  r8  r!   ÚextractÚvar_to_stack)r0  rÐ   rá   rÁ  Úvrr’   s        €rk   Ú_process_sym_exprÚBGraphModuleDeserializer._parse_sym_expr.<locals>._process_sym_expr	  sh  ø€ ð �~�~ §§°··Ø�
ô ˜s›8�ØŸ8œ8�CØ×(Ñ(¨Ö-ñ $ð ˜t×9Ñ9Ó9Ø×4Ñ4°XÑ>‘Cà;>�D×.Ñ.¨xÑ8Ü! #¤u§|¡|×4Ñ4¼×9WÒ9WØœd×/Ñ/´×1DÑ1DÐE÷:ñ :ð ×-Ñ-×1Ñ1°#Ô6àÑ#¨°4·>±>×3SÑ3SÓ(SØ—N‘N×8Ñ8¸ÔCà×2Ñ2×6Ñ6°xÓ@Ð@�2Õ@Ø—N‘N×9Ñ9ØØ%'§X¡XØ%'§X¡Xð :ñ ô ˜c¤5§<¡<×0Ñ0Ü7H×7PÒ7PÐVWÑ7X�D—N‘N×/Ñ/°Ñ4ØˆJrj   )Úlocalsrn   )
rÆ   ÚExprr   r   rÔ   râ   rÛ   ÚsympifyÚsympy_functionsr´  )r’   rá   rÐ   rÀ  rÅ   s   `    rk   r³  Ú'GraphModuleDeserializer._parse_sym_expr	  s   ø€ ð HLñ!	Ü—‘ð!	Ü#+¬E´#´t¼UÐ2BÑ,CÑ#Dð!	ä�Z‰Z÷!	ð !	ôF �}Š}ØØI�d×*Ñ*ÐI¨d×.HÑ.HÐIñ
ˆñ ! Ó,Ð,rj   rÂ   c                 ó>  • UR                   nUR                  S:X  a˜  UR                  c  S nOSUR                  R                  S:w  a#  [        SUR                  R                  < 35      eUR                  R                   nU R	                  UR
                  U5      nU R                  R                  XCS9$ UR                  S:X  a5  [        U5      [        La!  [        S[        U5      R                   35      eU$ [        SUR                   SUR                    35      e)NrÎ   rª   z!expected hint type 'as_int', got rÏ   zexpected int, got zSymInt has invalid field type ú with value )rp   r£   rÐ   r²   r³  rá   r¸  Úcreate_symintnoderÔ   re   rb   ©r’   rÂ   r"  rÐ   r0  s        rk   Údeserialize_sym_intÚ+GraphModuleDeserializer.deserialize_sym_int5	  só   € Ø�g‰gˆØ�6‰6�YÓØ�x‰xÑØ‘à—8‘8—=‘= HÓ,Ü(Ø;¸C¿H¹H¿M¹MÑ;LÐMóð ð —x‘x—~‘~�à×&Ñ& s§|¡|°TÓ:ˆCØ—>‘>×3Ñ3°CÐ3ÐCÐCØ�V‰V�xÓÜ�C‹y¤Ò#Ü$Ð'9¼$¸s»)×:LÑ:LÐ9MÐ%NÓOÐOØˆJä Ø0°·±°¸ÀQÇWÁWÀIÐNóð rj   c                 óÐ  • UR                   nUR                  S:X  a^  UR                  (       a  UR                  R                  OS nU R	                  UR
                  U5      nU R                  R                  XCS9$ UR                  S:X  a8  [        U[        5      (       d!  [        S[        U5      R                   35      eU$ [        SUR                   SUR                    35      e)NrÎ   rÏ   rÚ   zexpected float, got z SymFloat has invalid field type rÈ  )rp   r£   rÐ   rÚ   r³  rá   r¸  Úcreate_symfloatnoderv   rÛ   r²   re   rb   rÊ  s        rk   Údeserialize_sym_floatÚ-GraphModuleDeserializer.deserialize_sym_floatL	  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×)Ñ)Ü$Ð';¼DÀ»I×<NÑ<NÐ;OÐ%PÓQÐQØˆJä Ø2°1·6±6°(¸,ÀqÇwÁwÀiÐPóð rj   c                 ó€  • UR                   nUR                  S:X  a6  U R                  UR                  5      nU R                  R                  U5      $ UR                  S:X  a8  [        U[        5      (       d!  [        S[        U5      R                   35      eU$ [        SUR                   SUR                    35      e)NrÎ   rà   zexpected bool, got zSymBool has invalid field type rÈ  )rp   r£   r³  rá   r¸  Úcreate_symboolnoderv   râ   r²   re   rb   )r’   rÂ   r"  rÅ   s       rk   Údeserialize_sym_boolÚ,GraphModuleDeserializer.deserialize_sym_bool[	  s¡   € Ø�g‰gˆØ�6‰6�YÓØ×'Ñ'¨¯©Ó5ˆDØ—>‘>×4Ñ4°TÓ:Ð:Ø�V‰V�yÓ Ü˜c¤4×(Ñ(Ü$Ð':¼4À»9×;MÑ;MÐ:NÐ%OÓPÐPØˆJä Ø1°!·&±&°¸ÀaÇgÁgÀYÐOóð rj   rÿ   c                 ón  ^ • T R                      [        [        [        R                  " [        U 4S jUR                   5       5      [        U 4S jUR                   5       5      [        UR                  5      [        UR                     UR                  S95      sS S S 5        $ ! , (       d  f       g = f)Nc              3   óF   >#   • U  H  nTR                  U5      v •  M     g 7frn   ©rË  ©rz   r"  r’   s     €rk   r|   ÚBGraphModuleDeserializer.deserialize_tensor_meta.<locals>.<genexpr>q	  s!   øé € ÐUÒCT¸C˜$×2Ñ2°3×7Ð7ÒCTùrŠ  c              3   óF   >#   • U  H  nTR                  U5      v •  M     g 7frn   r×  rØ  s     €rk   r|   rÙ  r	  s!   øé € ÐWÒCV¸C˜$×2Ñ2°3×7Ð7ÒCVùrŠ  )r¦   rç   rè   )Úfake_tensor_moder   r   rw   Úempty_stridedr³   r¨   rµ   r§   r¦   r½   rç   rè   )r’   rÿ   s   ` rk   r  Ú/GraphModuleDeserializer.deserialize_tensor_metai	  s€   ø€ ð ×"Ó"ÜÜÜ×#Ò#ÜÔUÀ;×CTÒCTÓUÓUÜÔWÀ;×CVÒCVÓWÓWÜ-¨k×.@Ñ.@ÓAÜ3°K×4EÑ4EÑFØ"-×";Ñ";ñó	÷ #×"×"ús   ŽBB&Â&
B4r8  c                 óT   • [         R                  " UR                  UR                  S9$ )Nr­  )r·  r,   rS  r®  r:  s     rk   Údeserialize_script_obj_metaÚ3GraphModuleDeserializer.deserialize_script_obj_metay	  s)   € ô ×#Ò#Ø ×%Ñ%Ø%×/Ñ/ñ
ð 	
rj   c                 ó€  • UR                   S:X  a#  U R                  UR                  R                     $ UR                   S:X  a#  U R                  UR                  R
                     $ UR                   S:X  a#  U R                  UR                  R
                     $ UR                   S:X  a#  U R                  UR                  R
                     $ UR                   S:X  a  UR                  $ UR                   S:X  a  UR                  $ UR                   S:X  a  UR                  $ UR                   S:X  a  g [        S	U 35      e)
Nrª  r¬  rs  rq  rª   rÚ   rà   ry  z"Unable to deserialize output node )r£   r—  rª  rS  r¬  ro  rs  rq  rª   rÚ   rà   rb   )r’   r½  s     rk   Údeserialize_graph_outputÚ0GraphModuleDeserializer.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ÐOrj   Úserialized_graphc           	      óˆ  ^ • [         R                  S5        UR                  R                  5        H1  u  p#[         R                  SX#5        U4U 4S jjT R                  U'   M3     UR
                  R                  5        H1  u  p$[         R                  SX$5        U4U 4S jjT R                  U'   M3     UR                  R                  5        H1  u  p%[         R                  SX%5        U4U 4S jjT R                  U'   M3     UR                  R                  5        H1  u  p&[         R                  SX&5        U4U 4S	 jjT R                  U'   M3     UR                  R                  5        H1  u  p'[         R                  S
U5        U4U 4S jjT R                  U'   M3     [         R                  S5        [        UR                  5       GH“  u  p‰[         R                  SU	5        U	R                  S;   aJ  U	R                  R                  n
T R                  R                  U
5      nX«l        T R!                  X«5        Mv  U	R                  S:X  a}  U	R                  R                  S:X  aJ  U	R                  R"                  n
T R                  R                  U
5      nX«l        T R!                  X«5        Mê  [%        SU	R                   S35      eU	R                  S;   au  T R&                  R(                  U   R*                  R                  =(       d    SU 3n
T R                  R                  U
5      nT R-                  U	5      UR.                  S'   GMˆ  [%        SU	 35      e   UR0                   H0  n T R3                  UR4                  5      nT R7                  XÍ5        M2     / nUR>                   H9  n[         R                  SU5        URA                  T RC                  U5      5        M;     URD                  (       a,  [G        U5      S:w  a  [I        S[G        U5       35      eUS   nO[K        U5      nT R                  RM                  U5      nURD                  (       a*  URN                  S   R.                  S   UR.                  S'   O,[K        S URN                  S    5       5      UR.                  S'   T R                  R0                   Hg  nUR.                  RQ                  S5      =nc  M#  [R        RT                  " UST RV                  T RX                  SS 9=n(       d  MX  UUR.                  S!'   Mi     [G        T RX                  5      S:w  a.  [I        S"[G        T RX                  5       S#T RX                   35      eT R                  $ ! [8         a*  n[%        SU S[:        R<                  " 5        35      UeS nAff = f)$Nz
[deserialize_graph]z([deserialize_tensor_meta] %s (input): %sc                 ó&   >• TR                  U 5      $ rn   )r  ©rr   r’   s    €rk   Ú<lambda>Ú;GraphModuleDeserializer.deserialize_graph.<locals>.<lambda>œ	  s   ø€  t×'CÑ'CÀAÔ'Frj   z$[deserialize_sym_int] %s (input): %sc                 ó&   >• TR                  U 5      $ rn   r×  rç  s    €rk   rè  ré  ¢	  s   ø€ ¨×(@Ñ(@ÀÔ(Crj   z&[deserialize_sym_float] %s (input): %sc                 ó&   >• TR                  U 5      $ rn   )rÏ  rç  s    €rk   rè  ré  ¨	  s   ø€ ¨$×*DÑ*DÀQÔ*Grj   z%[deserialize_sym_bool] %s (input): %sc                 ó&   >• TR                  U 5      $ rn   )rÓ  rç  s    €rk   rè  ré  ®	  s   ø€ ¨×)BÑ)BÀ1Ô)Erj   z [deserialize_script_obj_meta] %sc                 ó&   >• TR                  U 5      $ rn   )rß  rç  s    €rk   rè  ré  ´	  s   ø€ ¨$×*JÑ*JÈ1Ô*Mrj   z
[deserialize graph nodes]z[deserialize input] %s)rª  r°  r¬  ro  z Deserializing a constant symint z as an input)rª   rÚ   rà   ry  rm  rÁ  r"  zInvalid input type zFailed deserializing node re  z[deserialize output] %sr%   z5expected single output for single_tensor_return, got r   c              3   ó–   #   • U  H?  n[        U[        R                  R                  5      (       a  UR                  S    OUv •  MA     g7f)r"  N)rv   rw   r¿  rC   r±  )rz   rÁ  s     rk   r|   Ú<GraphModuleDeserializer.deserialize_graph.<locals>.<genexpr>ú	  s8   é € ð ,â.�Cô $.¨c´5·8±8·=±=×#AÑ#A�—‘˜’ÀsÔJÚ.ùs   ‚AA	rd   T)r¸  ÚpendingÚsimplifyÚunbacked_bindingsz"expected no unbacked symbols, got ú: )-r  r²  rF  ro   r˜  rG  rI  rH  rK  rÕ  rC  r£   rp   rS  rñ  r¨  Úsync_fx_nodero  rb   rä  r  rÁ  Údeserialize_inputr±  rE  r©  r>  Údeserialize_noder  rg  rh  rD  r}  râ  rJ  r  r²   r³   r½  r¾  r|  r   Ú _free_unbacked_symbols_with_pathr¸  rœ  )r’   rä  rS  Útensor_valueÚsym_int_valueÚsym_float_valueÚsym_bool_valuer8  r	  Úinput_Ú	node_nameÚplaceholder_nodeÚserialized_noder>  r   rD  r½  Úoutput_noderÄ   r"  rò  s   `                    rk   Údeserialize_graphÚ)GraphModuleDeserializer.deserialize_graph•	  s  ø€ Ü�	‰	Ð)Ô*ð #3×"@Ñ"@×"FÑ"FÖ"HÑˆDÜ�I‰IÐ@À$ÔUà%ÖFð ×(Ñ(¨Ó.ñ #Ið $4×#BÑ#B×#HÑ#HÖ#JÑˆDÜ�I‰IÐ<¸dÔRà&ÖCð ×(Ñ(¨Ó.ñ $Kð &6×%FÑ%F×%LÑ%LÖ%NÑ!ˆDÜ�I‰IÐ>ÀÔVà(ÖGð ×(Ñ(¨Ó.ñ &Oð %5×$DÑ$D×$JÑ$JÖ$LÑ ˆDÜ�I‰IÐ=¸tÔTà'ÖEð ×(Ñ(¨Ó.ñ %Mð &6×%GÑ%G×%MÑ%MÖ%OÑ!ˆDÜ�I‰IÐ8¸/ÔJà(ÖMð ×(Ñ(¨Ó.ñ &Pô 	�	‰	Ð/Ô0ä"Ð#3×#:Ñ#:×;‰IˆAÜ�I‰IÐ.°Ô7Ø�{‰{Ð<Ó<Ø"ŸL™L×-Ñ-�	Ø#'§:¡:×#9Ñ#9¸)Ó#DÐ ð )2Ô%Ø×!Ñ! )Ö>Ø—‘ Ó,Ø—<‘<×$Ñ$¨	Ó1Ø &§¡× 4Ñ 4�IØ'+§z¡z×'=Ñ'=¸iÓ'HÐ$ð -6Ô)Ø×%Ñ% iÖBä(Ø:¸6¿<¹<¸.ÈÐUóð ð —‘ð !ó ð !ŸN™N×6Ñ6°qÑ9×=Ñ=×BÑB×OÈÈAÈ3Ài�	Ø#'§:¡:×#9Ñ#9¸)Ó#DÐ Ø/3×/EÑ/EÀfÓ/MÐ ×%Ñ% eÔ,ä$Ð':¸6¸(Ð%CÓDÐDñA <ðF  0×5Ô5ˆOðØ×2Ñ2°?×3IÑ3IÓJ�Ø×%Ñ% oÖ>ñ  6ð ˆØ&×.Ô.ˆFÜ�I‰IÐ/°Ô8Ø�N‰N˜4×8Ñ8¸Ó@ÖAñ /ð ×3×3Ü�7‹|˜qÓ Ü$ØKÌCÐPWËLÈ>ÐZóð ð ˜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×$Ô$ˆDØ—y‘y—}‘} UÓ+Ð+�Ó8Ü%4×%UÒ%UØØØ"Ÿn™nØ ×1Ñ1Ø!ñ&ð Ð!÷ ð 2C�—	‘	Ð-Ó.ñ %ô ˆt×$Ñ$Ó%¨Ó*Ü Ø4´S¸×9NÑ9NÓ5OÐ4PÐPRÐSW×ShÑShÐRiÐjóð ð �z‰zÐøô_ ó Ü$Ø0°Ð0AÐAWÔXa×XlÒXlÓXnÐWoÐpóàðûðús   Í4,VÖ
WÖ%V<Ö<Wrÿ  r>  c           
      óž  • S[         4S jnU[        ;   d2  U[        R                  R                  R
                  R                  :X  aŒ  UR                  (       a  UR                  O"UR                  S   R                  R                  nU R                  UR                  5      nU R                  R                  SX%0 U5      nU R                  X5        GOêU[        R                   R"                  R$                  L a  ['        S5      e[)        U[        R*                  R,                  5      (       Gaƒ  U R/                  UR                  5      u  pWU R1                  UR2                  5      n/ UQUR5                  5       Q7 H[  n	[)        U	[        R6                  R8                  5      (       d  M.  U	R:                  S:X  d  M@  U	R<                  R?                  U5        M]     UR                  (       a  UR                  nOn[A        UR                  5      S:X  aS  [C        UR                  S   S5      (       a5  [E        US	S
5      (       a#  UR                  S   RF                  R                  OS nU R                  R                  SX%Xt5      nU RI                  X5        UR<                  R?                  U5        GO[)        U[        R*                  RJ                  /[M        5       Q75      (       a’  UR                  (       a  UR                  nO2U" U5      (       a#  UR                  S   RF                  R                  OS nU RO                  X!5      u  pWU R                  R                  SX%Xt5      nU RI                  X5        OD[)        U[P        5      (       a  SU S3S-   S-   S-   OSn
['        U
SU S[S        U5       S3-   5      eUR<                  R?                  U R1                  UR2                  5      5        [T        RW                  SUR                  URX                  URZ                  UR\                  UR<                  R_                  S5      5        U[        R                  R                  R`                  R                  L a„  [)        URZ                  S   =n[         5      (       d_  UR<                  S   n[)        U[        Rb                  5      (       a1  U Rd                  Rg                  URh                  Rj                  SU5        O›U[        R                  R                  Rl                  R                  L aj  URZ                  S   R<                  S   n[)        U[        Rn                  5      (       a/  U Rd                  Rq                  URh                  Rj                  5        UR:                  S;  a!  SUR<                  ;  a  0 UR<                  S'   g g g )Nr¡   c                 ó¨   • [        U 5      nUR                  n[        U5      S:H  =(       a'    [        US   R                  [
        R                  5      $ )Nr%   r   )r?  rH  r  rv   rI  rw   rÈ  )r>  r&   rH  s      rk   Ú_is_single_tensor_returnÚJGraphModuleDeserializer.deserialize_node.<locals>._is_single_tensor_return
  sG   € Ü,¨VÓ4ˆFØ—n‘nˆGÜ�w“< 1Ñ$÷ ¬Ø˜‘
×$Ñ$¤e×&6Ñ&6ó*ð rj   r   rÌ  z_deserialize nyi for torch._higher_order_ops.triton_kernel_wrap.triton_kernel_wrapper_functionalrf  r%   rª  rÚ  TzWe failed to resolve z to an operator. z]If it's a custom op/custom triton op, this is usually because the custom op is not registeredzU when deserializing. Please import the custom op to register it before deserializing.z+ Otherwise, please file an issue on github.rS  z" Unsupported target type for node ró  rÅ  z)[deserialize_node] %s: %s(%s, {%s}) -> %sr"  )r¨  r½  r  )9râ   rê  rw   Úopsrv  Úitemr.  rS  rD  rp   ro  Údeserialize_sym_op_inputsrC  rñ  Úcreate_nodeÚdeserialize_sym_op_outputsro  rp  rq  rb   rv   rx   rÎ  Údeserialize_hoo_inputsÚdeserialize_metadatar�  rz  r¿  rC   r{   r±  rw  r  r]  r^  rª  Údeserialize_outputsry   rK  Údeserialize_inputsr3  r£   r  r²  r>  r¾  rk  r|  Ú_assert_scalarrL   r¸  Úguard_or_defer_runtime_assertrÄ   rÅ   Úsym_constrain_range_for_sizerR   Ú_constrain_range_for_size)r’   rÿ  r>  r  rS  r¾  Úfx_noderk  r�  r¬  Ú_additional_msgrÁ  rÅ   r0  s                 rk   rö  Ú(GraphModuleDeserializer.deserialize_node
  s¼  € ð	´ô 	ð ”hÓØÜ�y‰y�~‰~×"Ñ"×*Ñ*ó+ð #×'×'ð  ×$Ò$à$×,Ñ,¨QÑ/×5Ñ5×=Ñ=ð ð
 ×1Ñ1°/×2HÑ2HÓIˆDà—j‘j×,Ñ,¨_¸fÈBÐPTÓUˆGØ×+Ñ+¨OÖEàÜ×&Ñ&×9Ñ9×ZÑZò[ô !Øqóð ô ˜¤§
¡
× >Ñ >×?Ò?Ø×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 (Ö+ñ /ð  ×#×#Ø&×+Ñ+‘ô ˜?×2Ñ2Ó3°qÓ8Ü × 7Ñ 7¸Ñ :¸K×HÑHÜ Ð1NÐPT×UÑUð $×+Ñ+¨AÑ.×8Ñ8×=Ò=ð ð ð —j‘j×,Ñ,Ø ¨vóˆGð ×$Ñ$ _Ô>Ø�L‰L×Ñ Ö)äØ”U—Z‘Z×*Ñ*ÐKÔ-HÓ-JÑK÷
ñ 
ð ×#×#Ø&×+Ñ+‘ñ 0°×7Ñ7ð $×+Ñ+¨AÑ.×8Ñ8×=Ò=àð ð  ×2Ñ2°6ÓK‰LˆDØ—j‘j×,Ñ,Ø ¨vóˆGð ×$Ñ$ _Õ>ô ˜f¤c×*Ñ*ð ,¨F¨8Ð3DÐEØuñvàmñnð DòDð ð ô !ØØ6°Ð6GÀrÌ$ÈvË,ÈÐWXÐYñZóð ð
 	�‰×Ñ˜D×5Ñ5°o×6NÑ6NÓOÔPÜ�	‰	Ø7Ø�L‰LØ�N‰NØ�L‰LØ�N‰NØ�L‰L×Ñ˜UÓ#ô	
ð ”U—Y‘Y—^‘^×2Ñ2×:Ñ:Ò:Ü g§l¡l°1¡oÐ5˜s¼×=Ñ=Ø—x‘x ‘�Ü˜d¤E§M¡M×2Ñ2Ø—N‘N×@Ñ@ØŸ	™	Ÿ™¨¨Gôøð ”u—y‘y—~‘~×BÑB×JÑJÒJØ—,‘,˜q‘/×&Ñ& uÑ-ˆCÜ˜#œuŸ|™|×,Ñ,Ø—‘×8Ñ8¸¿¹¿¹ÔGð �J‰JÐ7Ó7Ø!¨¯©Ó5à.0ˆG�L‰LÐ*Ò+ð 6ð 8rj   r	  c           	      óp  • [         R                  SU5        UR                  S:X  aQ  [        R                  " [        R
                  R                  U R                  UR                  R                  5      S S9$ UR                  S:X  ar  [        R                  " [        R
                  R                  [        R                  " UR                  R                  R                  S9UR                  R                  S9$ UR                  S:X  a‡  [        R                  " [        R
                  R                  [        R                  " UR                   R                  R                  S9UR                   R"                  UR                   R$                  S9$ UR                  S:X  ar  [        R                  " [        R
                  R&                  [        R                  " UR(                  R                  R                  S9UR(                  R*                  S9$ UR                  S	:X  a‘  [        R                  " [        R
                  R,                  [        R.                  " UR0                  R                  R                  UR0                  R                  R2                  S
9UR0                  R4                  S9$ UR                  S:X  a^  [        R                  " [        R
                  R6                  [        R8                  " UR:                  R                  R                  S9S S9$ UR                  S:X  ax  [        R                  " [        R
                  R                  [        R<                  " UR>                  R                  U RA                  UR>                  RB                  5      S9S S9$ [E        SU 35      e)Nz[deserialize_input_spec] %srê  ©r>  rÁ  r>  rî  rt  r  )r>  rÁ  r>  rð  rò  ró  r­  rö  rè  rç  zUnknown input spec )#r  r²  r£   r·  r5   rø  rù  Údeserialize_argument_specrê  rÁ  rü  rT   rî  rS  rí  rý  r  rï  rð  rþ  rò  rñ  rÿ  r,   ró  r®  r×  r   rV   rö  rú  rè  Údeserialize_constant_inputrp   r²   )r’   r	  s     rk   Údeserialize_input_specÚ.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Ð!:Ó;Ð;rj   Úoc                 óØ  • [         R                  SU5        UR                  S:X  aQ  [        R                  " [        R
                  R                  U R                  UR                  R                  5      S S9$ UR                  S:X  a^  [        R                  " [        R
                  R                  [        R                  " UR                  R                  R                  S9S S9$ UR                  S:X  ar  [        R                  " [        R
                  R                  [        R                  " UR                  R                  R                  S9UR                  R                   S9$ UR                  S:X  ar  [        R                  " [        R
                  R"                  [        R                  " UR$                  R                  R                  S9UR$                  R&                  S9$ UR                  S:X  ar  [        R                  " [        R
                  R(                  [        R                  " UR*                  R                  R                  S9UR*                  R&                  S9$ UR                  S	:X  ar  [        R                  " [        R
                  R,                  [        R                  " UR.                  R                  R                  S9UR.                  R0                  S9$ UR                  S
:X  ar  [        R                  " [        R
                  R2                  [        R                  " UR4                  R                  R                  S9UR4                  R0                  S9$ UR                  S:X  a^  [        R                  " [        R
                  R6                  [        R8                  " UR:                  R                  R                  S9S S9$ [=        SU 35      e)Nz[deserialize_output_spec] %sr  r  r  rt  r  r  r	  r  r  rö  zUnknown output spec )r  r²  r£   r·  rE   r  r  r  r  rÁ  r  rT   r  rS  r  r  rï  r  r  rí  r  r	  r  r  r
  r  r  r   rV   rö  r²   )r’   r  s     rk   Údeserialize_output_specÚ/GraphModuleDeserializer.deserialize_output_specË
  sÏ  € Ü�	‰	Ð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Ð+Ó+Ü—=’=Ü—]‘]×5Ñ5Ü×%Ò%¨1×+?Ñ+?×+CÑ+C×+HÑ+HÑIØ×+Ñ+×:Ñ:ñð ð
 �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Ð!;Ó<Ð<rj   r  c           	      ó  • [         R                  S5        [        R                  " UR                   Vs/ s H  o R                  U5      PM     snUR                   Vs/ s H  o0R                  U5      PM     snS9$ s  snf s  snf )Nz
[deserialize_signature]r  )r  r²  r·  ro  r  r  r  r  )r’   r  r	  r  s       rk   Údeserialize_signatureÚ-GraphModuleDeserializer.deserialize_signature   sj   € Ü�	‰	Ð-Ô.Ü×&Ò&ØADÇÂÓQÂ¸A×4Ñ4°QÖ7ÁÑQØCF×CSÒCSÓTÒCS¸a×6Ñ6°qÖ9ÑCSÑTñ
ð 	
ùÚQùÚTs   ´A=ÁB
rŠ  Úserialized_state_dictrƒ   r„   .r»  c           
      óŠ  • [         b  [        S5      eU q  [        R                  S5        [        R
                  " SS9U l        [        SSU R                  S9U l        0 S[        R                  R                  R                  R                  _S[        R                  R                  R                  R                  _S	[        R                  R                  R                  R                  _S
[        R                  R                  R                  R                   _S[        R                  R                  R                  R"                  _S[        R                  R                  R                  R$                  _S[        R                  R                  R                  R&                  _S[        R                  R                  R                  R(                  _S[        R                  R                  R                  R*                  _S[        R                  R                  R                  R,                  _S[        R                  R                  R                  R.                  _S[        R                  R                  R                  R0                  _S[        R                  R                  R                  R2                  _S[        R                  R                  R                  R4                  _S[        R                  R                  R                  R6                  _S[        R                  R                  R                  R8                  _S[        R                  R                  R                  R:                  _[        R                  R                  R                  R<                  [        R                  R                  R                  R>                  [        R                  R                  R                  R@                  [        R                  R                  R                  RB                  [        R                  R                  R                  RD                  S.EU l#        0 U l$        [K        U5      U l&        U RO                  URP                  5      U l(        0 U l)        [U        5       U l+        Su  pgS [X        RZ                  [X        R\                  4 5       u  p‰U(       aÖ  UR_                  5        HÂ  u  p«UR`                  n[        Rb                  " [e        U[f        * 5      URh                  5      U RR                  U
'   U
Rk                  U5      (       a$  [m        U
[o        U5      S  5      n[q        Xm5      nMˆ  U
Rk                  U	5      (       d  M   [m        U
[o        U	5      S  5      n[q        X}5      nMÄ     [s        US-   5       H"  nU R                  =Rt                  S-  sl:        M$     [s        US-   5       H"  nU R                  =Rv                  S-  sl;        M$     Ub   [o        U5      S:”  a  [K        U5      U l<        OS U l<        U R{                  UR|                  5        [        U Rx                  5         U R�                  UR‚                  5      nS S S 5        [„        R†                  " U Rˆ                  U R|                  5      n0 nURŠ                  R�                  S5      =n(       a  [Ž        R�                  " U5      US'   [“        US5      (       a;  0 US'   UR”                  R_                  5        H  u  nnUR–                  US   U'   M     UUlL        [š        R�                  UU RP                  WU RH                  [K        U5      U RL                  U Rx                  S9S q $ ! , (       d  f       GN= f! S q f = f) Nz$_CURRENT_DESERIALIZER is already setz
[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)éÿÿÿÿr?  c              3   ó4   #   • U  H  n[         U   v •  M     g 7frn   )r   r—  s     rk   r|   Ú6GraphModuleDeserializer.deserialize.<locals>.<genexpr>F  s   é € ð @Ú'O !”
˜1–Ò'Oùs   ‚r%   r   r)  r   )ra  rä  r›  r”  r‚   rƒ   r„   )Orð   r²   r  r²  r   ÚShapeEnvr¸  r   rÛ  rw   ÚutilsÚ_sympyÚ	functionsr)  r*  r+  r,  r-  r.  r/  r0  r1  r2  r3  r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  rÅ  r´  r!  rƒ   r"  rä  r»  r�   rœ  r   r·  r¶  ro   r7  r    r/  r   r8  rÆ  rÔ   r  ÚmaxÚrangeÚunbacked_symfloat_counterÚunbacked_symint_counterr„   r  rñ  r   Údeserialize_module_call_graphr›  r·  Ú_create_graph_module_for_exportrÈ  r�  r|  rø   r  r]  r   r&  r±  r_   r•  )r’   rŠ  r$  rƒ   r„   r»  Úcount_unbacked_symfloatÚcount_unbacked_symintÚunbacked_symfloat_prefixÚunbacked_symint_prefixrq   r¿  r7  r	  r—  r›  ra  r±  r)  Útype_Úfieldss                        rk   ÚdeserializeÚ#GraphModuleDeserializer.deserialize  s(  € ô !Ñ,Ü Ð!GÓHÐHØ $Ððh	)Ü�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Ø'×1Ñ1óˆDŒNð )+ˆDÔ%ô %(£EˆDÔ!Ø=CÑ:Ð#ñ@Ü(,×(;Ñ(;¼T×=NÑ=NÑ'Oó@Ñ<Ð$ö $Ø1×7Ñ7Ö9‘E�AØŸH™H�EÜ3B×3NÒ3NÜ)¨%´&°Ó9¸2¿8¹8ó4�D×-Ñ-¨aÑ0ð —|‘|Ð$<×=Ñ=Ü ¤#Ð&>Ó"?Ð"AÐ BÓC˜Ü25Ð6MÓ2QÒ/ØŸ™Ð&<×=Ó=Ü ¤#Ð&<Ó"=Ð"?Ð @ÓA˜Ü03Ð4IÓ0MÒ-ñ :ô Ð2°QÑ6Ö7�Ø—‘×8Ò8¸AÑ=×8ñ 8äÐ0°1Ñ4Ö5�Ø—‘×6Ò6¸!Ñ;×6ñ 6ð Ñ)¬c°.Ó.AÀAÓ.EÜ&@ÀÓ&P�Õ#à&*�Ô#Ø×"Ñ"Ð#:×#@Ñ#@ÔAä7¸×8KÑ8KÕLØ$(×$FÑ$FØ+×=Ñ=ó%Ð!÷ Mô ×=Ò=¸d¿k¹kÈ4Ï:É:ÓVˆLØˆDØ0×9Ñ9×=Ñ=¸hÓGÐGˆvÕGÜ!%§¢¨FÓ!3��X‘ÜÐ.Ð0L×MÑMØ57�Ð1Ñ2ð -×GÑG×MÑMÖOñØØà@F×@RÑ@R�DÐ5Ñ6°uÓ=ñ Pà $ˆLÔÜ*×1Ñ1Ø)ØŸ.™.Ø"3Ø!%×!;Ñ!;Ü5Ð6KÓLØŸ.™.Ø#×2Ñ2ð 2ð ð %)Ñ!÷5 MÖLûð4 %)Ñ!ús,   –U?^> ÖC(^> Ú^,ÚD^> Þ,
^;Þ6^> Þ>_rS  r  c                 óÞ   • XR                   ;   a  [        SU S35      eXl        X R                   U'   SUR                  ;   a  [	        SU S35      eU R
                  U   UR                  S'   g )NzNode z& has already been deserialized before.r"  zfx_node z already has 'val' in meta)r—  rb   rS  r±  r²   r˜  )r’   rS  r  s      rk   rô  Ú$GraphModuleDeserializer.sync_fx_node  sp   € Ø×/Ñ/Ó/Ü  5¨¨Ð.TÐ!UÓVÐVàŒØ-4×$Ñ$ TÑ*Ø�G—L‘LÓ Ü  8¨D¨6Ð1KÐ!LÓMÐMØ"×:Ñ:¸4Ñ@ˆ�‰�UÒrj   c                 ó.   ^ • [        U 4S jU 5       5      $ )Nc              3   óZ   >#   • U  H   nTR                  UR                  5      v •  M"     g 7frn   )rõ  rÁ  )rz   Úinputr’   s     €rk   r|   ÚDGraphModuleDeserializer.deserialize_sym_op_inputs.<locals>.<genexpr>Š  s#   øé € ÐKÂF¸5�T×+Ñ+¨E¯I©I×6Ð6ÂFùs   ƒ(+)r³   )r’   rC  s   ` rk   r	  Ú1GraphModuleDeserializer.deserialize_sym_op_inputs‰  s   ø€ ÜÔKÁFÓKÓKÐKrj   c                 ó   • [        U5      R                  nUR                   Vs0 s H  oDR                  UR                  _M     nnUR                   Vs0 s H)  nUR                  U R                  UR                  5      _M+     nn/ n[        5       nU GHÐ  n	U	R                  U;   aŒ  XiR                     n
XYR                     nU[        R                  :X  a  UR                  U
5        MW  U[        R                  :X  a5  [        R                  " U	R                  5      (       d  X¨U	R                  '   M   U	R                  5       (       + =(       a    U	R                  (       + nU(       a  UR                  XiR                     5        Mó  [        R                  " U	R                  5      (       a‹  U	R                  (       a  [!        SU	R                   S35      e[#        U5      S:”  a2  [        5       nUR%                  ['        UR)                  5       5      5        UR                  XiR                     5        GM£  U	R                  U;   d  GM¶  XiR                     X‰R                  '   GMÓ     [+        U5      U4$ s  snf s  snf )Nzschema_arg z should not be kwarg_onlyr   )r?  r?  rC  rS  r>  rõ  rÁ  r   r(   rC  r}  rL  ÚkeywordÚ	iskeywordÚhas_default_valuerM  r²   r  rT  rL  rz  r³   )r’   r>  rÿ  Úschema_argsrX  Úargument_kindsÚactual_argsr¾  rk  rP  rÁ  r>  Úis_positionals                rk   r  Ú*GraphModuleDeserializer.deserialize_inputsŒ  sý  € Ü-¨fÓ5×?Ñ?ˆØ>M×>TÒ>TÓUÒ>T°UŸ*™* e§j¡jÒ0Ñ>TˆÐUð )×/Ò/ó
â/�ð �J‰J˜×.Ñ.¨u¯y©yÓ9Ò9Ù/ð 	ð 
ð ˆÜ(3«ˆÜ%ˆJØ�‰ +Ó-Ø!§/¡/Ñ2�Ø%§o¡oÑ6�Øœ<×2Ñ2Ó2Ø—K‘K Ô$ÙØœ\×1Ñ1Ó1¼'×:KÒ:KØ—O‘O÷;ñ ;ð /2˜:Ÿ?™?Ñ+Ùð ×0Ñ0Ó2Ô2×P¸:×;PÑ;PÔ7Pð ö Ø—‘˜K¯©Ñ8Ö9Ü×"Ò" :§?¡?×3Ñ3Ø×(×(Ü(Ø% j§o¡oÐ%6Ð6OÐPóð ô �v“; “?Ü(›]�FØ—K‘K¤ V§]¡]£_Ó 5Ô6Ø—‘˜K¯©Ñ8×9à—?‘? kÖ1Ø.9¿/¹/Ñ.J�FŸ?™?Ô+ñ= &ô> �T‹{˜FÐ"Ð"ùòM Vùò
s   ¤ I6Á0I;rC  c                 óü   • / n0 nU Hf  nUR                   S:w  a)  U R                  UR                  5      X4R                   '   M<  UR                  U R                  UR                  5      5        Mh     [	        U5      U4$ )z?
For deserializing HOO inputs since HOOs do not have a schema.
rS  )rS  rõ  rÁ  r}  r³   )r’   rC  r¾  rk  rü  s        rk   r  Ú.GraphModuleDeserializer.deserialize_hoo_inputs¶  sk   € ð ˆØˆÛˆFØ�{‰{˜bÓ Ø&*×&<Ñ&<¸V¿Z¹ZÓ&H�—{‘{Ó#à—‘˜D×2Ñ2°6·:±:Ó>Ö?ñ	 ô
 �d“˜VÐ$Ð$rj   Úinpc           	      ó´	  ^ ^• TR                   nTR                  nUS:X  a  g US:X  a#  T R                  TR                  R                     $ US:X  a  [
        TR                     $ US:X  a  [        TR                     $ US:X  a  [        TR                     $ US:X  aê  [        U[        5      (       d!  [        S[        U5      R                   35      eT R                  5          T R!                  UR"                  5        [$        R&                  " T R(                  T R"                  5      nS S S 5        T R(                  R+                  UR                  W5        T R"                  R-                  SUR                  UR                  S	9$ US
:X  a  [/        TR0                  5      $ US:X  a  TR2                  $ US:X  a  TR4                  $ US:X  a  TR6                  $ US:X  a  TR8                  $ US:X  a4  [;        TR<                  R>                  TR<                  R@                  5      $ US:X  a  T RC                  TRD                  5      $ US:X  a  T RC                  TRF                  5      $ US:X  a  T RC                  TRH                  5      $ [        U[J        5      (       aI  US:X  a5  URM                  5        VVs0 s H  u  pVUT RO                  U5      _M     snn$ [Q        SU 35      e[        U[R        5      (       Ga  [U        U5      S:X  a  / $ US:X  a+  U Vs/ s H  nT R                  UR                     PM     nnU$ US;   a  [S        U5      $ US:X  a  U V	s/ s H  n	[W        U	5      PM     sn	$ US:X  a=  U V
Vs/ s H-  n
U
 Vs/ s H  nT R                  UR                     PM     snPM/     snn
$ US;   a"  U Vs/ s H  nT RC                  U5      PM     sn$ US:X  a  UU 4S jn[S        [Y        X²5      5      $ [Q        ST 35      eUS:X  aj  TRZ                  R                  T R                  ;   a#  T R                  TRZ                  R                     $ T R\                  TRZ                  R                     $ US:X  a  T R_                  TR`                  5      $ [Q        ST 35      e! , (       d  f       GN†= fs  snnf s  snf s  sn	f s  snf s  snn
f s  snf ) Nry  rª  r®  r°  r±  rg  zexpected GraphArgument, got rf  rt  r¯  rª   rÚ   rà   rm  rw  r¬  rq  rs  rz  zUnknown dict type: r   rÔ  )r|  r}  r{  r~  r­  r›  )r‹  r‘  r�  r¢  c                 ó¨   >• U R                   S:X  a  g U R                   S:X  a#  TR                  U R                  R                     $ [	        ST 35      e)Nry  rª  úUnhandled argument )r£   r—  rp   rS  rb   )rU  rf  r’   s    €€rk   Ú deserialize_optional_tensor_argsÚSGraphModuleDeserializer.deserialize_input.<locals>.deserialize_optional_tensor_args  sJ   ø€ Ø—v‘v Ó*Ø#ØŸ™ ;Ó.Ø#×;Ñ;¸A¿G¹G¿L¹LÑIÐIä,Ð/BÀ3À%Ð-HÓIÐIrj   ri  r°  rµ  )1rp   r£   r—  rª  rS  r½   r®  Ú!_SERIALIZE_TO_TORCH_MEMORY_FORMATr°  Ú_SERIALIZE_TO_TORCH_LAYOUTr±  rv   r2   r²   re   r�  r  rñ  r·  rK  rÈ  Úregister_moduler
  r§   r¯  rª   rÚ   rà   rm  rÀ  rw  ru  rv  Údeserialize_sym_argumentr¬  rq  rs  r  ro   rõ  rb   rL  r  r³   rŽ   r°  rƒ   r©  rµ  )r’   rf  rp   Útyp_Ú	submodulerq   rr   rÁ  ÚresultÚdimsrÕ  rj  s   ``          rk   rõ  Ú)GraphModuleDeserializer.deserialize_inputÃ  sg  ù€ Ø—	‘	ˆØ�x‰xˆØ�9Óð Ø�[Ó Ø×/Ñ/°·±×0BÑ0BÑCÐCØÐ%Ó%Ü,¨S×-?Ñ-?Ñ@Ð@ØÐ'Ó'Ü4°S×5IÑ5IÑJÐJØ�[Ó Ü-¨c¯m©mÑ<Ð<Ø�ZÓÜ˜e¤]×3Ñ3Ü$Ø2´4¸³;×3GÑ3GÐ2HÐIóð ð ×'Ñ'Õ)Ø×&Ñ& u§{¡{Ô3Ü×>Ò>¸t¿{¹{ÈDÏJÉJÓW�	÷ *ð �K‰K×'Ñ'¨¯
©
°IÔ>Ø—:‘:×)Ñ)ØØ—
‘
Ø—Z‘Zð *ð ð ð
 �[Ó Ü% c§m¡mÓ4Ð4Ø�XÓØ—:‘:ÐØ�ZÓØ—<‘<ÐØ�YÓØ—;‘;ÐØ�[Ó Ø—=‘=Ð Ø�\Ó!Ü˜3Ÿ>™>×.Ñ.°·±×0CÑ0CÓDÐDØ�\Ó!Ø×0Ñ0°·±Ó@Ð@Ø�^Ó#Ø×0Ñ0°×1AÑ1AÓBÐBØ�]Ó"Ø×0Ñ0°·±ÓAÐAÜ˜œt×$Ñ$ØÐ.Ó.àAFÇÁÄÔOÂ¹¸˜˜4×1Ñ1°!Ó4Ò4ÁÒOÐOä$Ð':¸4¸&Ð%AÓBÐBÜ˜œt×$Ò$Ü�5‹z˜Q‹Ø�	Ø˜Ó%ÙLQÓRÊEÀS˜$×6Ñ6°s·x±xÔ@ÉE�ÐRØ�ØÐKÓKä˜E“{Ð"Ø˜Ó'á05Ó6²¨œ˜dž±Ñ6Ð6ØÐ,Ó,ñ ',ôâ&+˜
ñ HRÓRÂzÀ�T×1Ñ1°#·(±(Ô;ÁzÔRÙ&+òð ð ÐIÓIÙFKÓLÂe¸s˜×5Ñ5°cÖ:ÁeÑ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Ð!<Ó=Ð=÷U *Ö)üó< Pùò Sùò 7ùò Sùóùò
 Ms=   Ã"AR(Ê4R:Ì#S ÍSÍ:
SÎ#S
Î'SÎ<SÒ(
R7Ó
Sc                 ój  • UR                   S:X  a  [        UR                  5      $ UR                   S:X  a  [        UR                  5      $ UR                   S:X  a  [        UR                  5      $ UR                   S:X  a  [        UR                  5      $ UR                   S:X  a  g [        SU S35      e)Nrª   rÚ   rm  rà   ry  zUnhandled constant argument z to deserialize)
r£   rÔ   rª   rÛ   rÚ   r3  rm  râ   rà   rb   )r’   rf  s     rk   r  Ú2GraphModuleDeserializer.deserialize_constant_input#  s‘   € Ø�8‰8�xÓÜ�s—z‘z“?Ð"Ø�X‰X˜Ó#Ü˜Ÿ™Ó&Ð&Ø�X‰X˜Ó$Ü�s—}‘}Ó%Ð%Ø�X‰X˜Ó"Ü˜Ÿ™Ó$Ð$Ø�X‰X˜Ó"Øä Ð#?À¸uÀOÐ!TÓUÐUrj   c                 ó>  • [        U[        5      (       aF  UR                  S:X  a  UR                  $ UR                  S:X  a  U R                  UR
                     $ Oµ[        U[        5      (       aF  UR                  S:X  a  UR                  $ UR                  S:X  a  U R                  UR
                     $ OZ[        U[        5      (       aE  UR                  S:X  a  UR                  $ UR                  S:X  a  U R                  UR
                     $ [        SU 35      e)Nrª   ro  rÚ   rà   z Unknown symbolic argument type: )rv   rS   r£   rª   r—  ro  rQ   rÚ   rM   rà   rb   )r’   Úsym_args     rk   ro  Ú0GraphModuleDeserializer.deserialize_sym_argument1  sî   € Ü�gœ~×.Ñ.Ø�|‰|˜xÓ'Ø—~‘~Ð%Ø—‘ Ó*Ø×3Ñ3°G·O±OÑDÐDð +ä˜Ô!1×2Ñ2Ø�|‰|˜zÓ)Ø×'Ñ'Ð'Ø—‘ Ó*Ø×3Ñ3°G·O±OÑDÐDð +ä˜¤×1Ñ1Ø�|‰|˜yÓ(Ø—‘Ð&Ø—‘ Ó*Ø×3Ñ3°G·O±OÑDÐDÜÐ?À¸yÐIÓJÐJrj   c                 ój   • U R                  UR                  S   R                  R                  U5        g )Nr   )rô  rD  rp   ro  )r’   rÿ  r  s      rk   r  Ú2GraphModuleDeserializer.deserialize_sym_op_outputsC  s)   € Ø×Ñ˜/×1Ñ1°!Ñ4×:Ñ:×BÑBÀGÕLrj   c                 óþ  ^ • [        UR                  5      S:X  a  g [        UR                  5      S:X  aM  SUR                  ;   a=  [        USS5      (       d+  UR                  S   R                  S:w  a  U 4S jnU" X5      $ [        UR                  5      S:X  aQ  UR                  S   R                  S:X  a4  T R                  UR                  S   R                  R                  U5        g [        UR                  5      S:X  ak  [        UR                  S   R                  [        [        [        45      (       a4  T R                  UR                  S   R                  R                  U5        g [        UR                  5      S:X  ad  UR                  S   R                  S:X  aG  S UR                  S	'   UR                  T R                   R#                  UR                  5       S
35        g T R%                  X5        g )Nr   r%   ztorch.ops.higher_orderrÚ  Try  c                 óø  >• / nS nU R                   S   R                  S:X  a  U R                   S   R                  nOP[        U R                   S   R                  [
        [        [        45      (       a  U R                   S   R                  nTR                  U R                  5      nUc  [        S5      eTR                  X!USU5        [        U5      UR                  S'   UTR                  UR                  '   g )Nr   rª  zarg should not be Noner"  )rD  r£   rª  rv   rp   rS   rM   rQ   r  r�  r²   Úgenerate_getitemr³   r±  r—  rS  )rÿ  r  rÏ  rÁ  Údeserialized_metadatar’   s        €rk   Ú#_deserialize_hop_with_single_returnÚXGraphModuleDeserializer.deserialize_outputs.<locals>._deserialize_hop_with_single_returnR  së   ø€ Ø&(�Ø�Ø"×*Ñ*¨1Ñ-×2Ñ2°kÓAØ)×1Ñ1°!Ñ4×>Ñ>‘CÜØ#×+Ñ+¨AÑ.×4Ñ4Ü#¤_Ô6FÐG÷ñ ð *×1Ñ1°!Ñ4×:Ñ:�CØ(,×(AÑ(AØ#×,Ñ,ó)Ð%ð ‘;Ü(Ð)AÓBÐBà×%Ñ% h¸¸aÐAVÔWÜ&+¨H£o�—‘˜UÑ#Ø=D�×,Ñ,¨W¯\©\Ñ:Ørj   rª  r"  Ú_unused)r  rD  r>  r^  r£   rô  rª  rS  rv   rp   rS   rM   rQ   ro  r±  Ú_renamerñ  Ú_target_to_strÚdeserialize_multiple_outputs)r’   rÿ  r  r€  s   `   rk   r  Ú+GraphModuleDeserializer.deserialize_outputsF  s­  ø€ äˆ×&Ñ&Ó'¨1Ó,Øô �×'Ñ'Ó(¨AÓ-Ø(¨O×,BÑ,BÓBÜ˜OÐ-JÈD×QÑQØ×'Ñ'¨Ñ*×/Ñ/°9Ó<õñ* 7°ÓPÐPô �×'Ñ'Ó(¨AÓ-Ø×'Ñ'¨Ñ*×/Ñ/°;Ó>à×Ñ˜o×5Ñ5°aÑ8×BÑB×GÑGÈÔQØÜ�×(Ñ(Ó)¨QÓ.´:Ø×#Ñ# AÑ&×,Ñ,Üœ_Ô.>Ð?÷4
ñ 4
ð ×Ñ˜o×5Ñ5°aÑ8×>Ñ>×FÑFÈÔPØä�×'Ñ'Ó(¨AÓ-Ø×'Ñ'¨Ñ*×/Ñ/°9Ó<ð #'ˆG�L‰L˜ÑØ�O‰O˜tŸz™z×8Ñ8¸¿¹ÓHÐIÈÐQÔRØà×)Ñ)¨/ÕCrj   rÁ  rŒ  r  c                 óè  • [        U[        5      (       a  UR                  nO[[        U[        5      (       a  UR                  nO9[        U[
        5      (       a  UR                  nO[        S[        U5       35      eU R                  R                  S[        R                  X$4US9nU R                  Xg5        UR                  U R                  U   5        UR                  R!                  U5        g )Nz+generate_getitem got unknown argument type rÌ  rt  )rv   rT   rS  rS   ro  rQ   r²   r£   rñ  r
  rè  ré  rô  r}  r˜  r±  rw  )r’   rÏ  r  rÁ  rŒ  r  rS  Úindividual_outputs           rk   r~  Ú(GraphModuleDeserializer.generate_getitem€  sÐ   € ô �cœ>×*Ñ*Ø—8‘8‰DÜ˜œ^×,Ñ,Ø—;‘;‰DÜ˜Ô-×.Ñ.Ø—;‘;‰Dä Ø=¼dÀ3»i¸[ÐIóð ð !ŸJ™J×2Ñ2ØÜ×ÑØˆNØð	 3ð 
Ðð 	×Ñ˜$Ô2Ø�‰˜×4Ñ4°TÑ:Ô;ð 	×Ñ×%Ñ%Ð&;Õ<rj   c                 ó¦  • [        U5       GHÁ  u  pV[        U[        [        [        45      (       a  U R                  XXeU5        M;  [        U[        5      (       d!  [        S[        U5      R                   35      eUR                  S;   a  U R                  XUR                  XT5        M   UR                  S;   a�  U R                  R                  S[        R                  X%45      nUR                  / 5        U R!                  US   XvR                  U5        UR"                  R%                  U5        US   UR"                  S'   GM=  UR                  S:X  ai  U R                  R                  S[        R                  X%4SS9nUR                  S 5        S UR"                  S'   UR"                  R%                  U5        GM¶  ['        S	U 35      e   g )
Núexpected Argument, got )rª  r¬  rq  )rÔ  r‹  r�  r|  r}  r~  r{  r‘  rÌ  r?  r"  ry  rt  z Unimplemented node output type: )rÕ  rv   rT   rS   rQ   r~  r'   r²   r£   re   rp   rñ  r
  rè  ré  r}  Úgenerate_getitemsr±  rw  ÚNotImplementedError)	r’   rÏ  r  r¾  r  rŒ  rÁ  Úlist_outputrˆ  s	            rk   rŒ  Ú)GraphModuleDeserializer.generate_getitemsž  s¨  € ô " $Ÿ‰HˆCÜ˜#¤´Ô@PÐQ×RÑRØ×%Ñ%Ø sÐ1Fôñ ä˜c¤8×,Ñ,Ü$Ð'>¼tÀC»y×?QÑ?QÐ>RÐ%SÓTÐTØ�x‰xÐFÓFØ×%Ñ%Ø s§y¡y°#öð —‘ð 	ó 	ð #Ÿj™j×4Ñ4Ø#Ü×$Ñ$Ø�Nó�ð
 —‘ Ô#Ø×&Ñ&Ø˜R‘L +¯y©yÐ:Oôð × Ñ ×'Ñ'Ð(=Ô>Ø*2°2©,�× Ñ  Ô'Ø—‘˜YÓ&Ø$(§J¡J×$:Ñ$:Ø#Ü×$Ñ$Ø�NØ"ð	 %;ð %Ð!ð —‘ Ô%Ø04Ð!×&Ñ& uÑ-Ø!×&Ñ&×-Ñ-Ð.C×Dä)Ð,LÈSÈEÐ*RÓSÐSò[ (rj   c                 óþ  • U R                  UR                  5      n/ n[        UR                  5      S:X  aú  [	        UR                  S   R
                  [        5      (       d8  [        S[        UR                  S   R
                  5      R                   35      e[	        UR                  S   R
                  S   [        5      (       d;  [        S[        UR                  S   R
                  S   5      R                   35      eU R                  UUUR                  S   R                  U5        OU R                  XBUR                  U5        [        U5      UR                  S'   X R                  UR                   '   g )Nr%   r   úexpected list, got rë  r"  )r  r�  r  rD  rv   rp   rL  r²   r£   re   rT   rŒ  rÔ  r³   r±  r—  rS  )r’   rÿ  r  r  rÏ  s        rk   r…  Ú4GraphModuleDeserializer.deserialize_multiple_outputsÔ  sX  € ð !%× 9Ñ 9¸/×:RÑ:RÓ SÐð !ˆÜˆ×&Ñ&Ó'¨1Ó,Ü˜o×5Ñ5°aÑ8×>Ñ>Ä×EÑEÜ$Ø)¬$¨×/FÑ/FÀqÑ/I×/OÑ/OÓ*P×*YÑ*YÐ)ZÐ[óð ô ˜o×5Ñ5°aÑ8×>Ñ>¸qÑAÄ>×RÑRÜ$Ø3´D¸×9PÑ9PÐQRÑ9S×9YÑ9YÐZ[Ñ9\Ó4]×4fÑ4fÐ3gÐhóð ð ×"Ñ"ØØØ×'Ñ'¨Ñ*×5Ñ5Ø%õ	ð ×"Ñ"Ø ?×#:Ñ#:Ð<Qôô
 $ H›oˆ�‰�UÑØ5<×$Ñ$ W§\¡\Ò2rj   r�  c                 ó  ^ ^^• 0 nUR                  S5      =n(       a  X2S'   S[        4U 4S jjnUR                  S5      =n(       a3  S mS m[        UU4S jUR                  [        5       5       5      nXbS'   UR                  S5      =n(       aM  / nUR                  [        5       H.  n	U	R                  S	5      u  p«UR                  X¤" U5      45        M0     X‚S'   UR                  S
5      =n(       a!  [        UR                  [        5      5      US
'   UR                  S5      =n(       a  [        R                  " U5      US'   UR                  S5      =n(       a(  T R                  [        R                  " U5      5      US'   U$ )Nr  rŸ  c                 óZ  >• S nU R                  S5      (       a%  [        R                  nU R                  S5      SS  nOBU R                  S5      (       a  [        nU R                  S5      SS  nOTR	                  U 5      $ UnU H"  n[        X45      (       d  U s  $ [        X45      nM$     U$ )Nztorch.nnrÅ  r#   rw   r%   )rÆ  rw   rö   r¡  r©  r]  r^  )rŸ  rÈ  r¨  r>  rS  r’   s        €rk   Údeserialize_meta_funcÚKGraphModuleDeserializer.deserialize_metadata.<locals>.deserialize_meta_funcý  s«   ø€ ØˆFØ ×+Ñ+¨J×7Ñ7ÜŸ™�Ø*;×*AÑ*AÀ#Ó*FÀqÀrÐ*JÑ'Ø"×-Ñ-¨g×6Ñ6Ü�Ø*;×*AÑ*AÀ#Ó*FÀqÀrÐ*JÑ'à×0Ñ0Ð1BÓCÐCàˆFÛ/�Ü˜v×,Ñ,Ø,Ò,ä$ VÓ2’Fñ	 0ð
 ˆMrj   r  c                 ó   • XU44$ rn   rd   )r–  r#  r$  s      rk   Úimport_nn_module_stackÚLGraphModuleDeserializer.deserialize_metadata.<locals>.import_nn_module_stack  s   € Ø 2˜J�Ð&rj   c                 ó4  • / nSu  p#Su  pE[        U 5       HE  u  pgXt;   a  US-  nM  Xu;   a  US-  nM  US:X  d  M%  US:X  d  M-  UR                  XU 5        US-   nMG     UR                  XS  5        [        U5      S:w  a  [        S[        U5       35      eU$ )N)r   r   )z[(z)]r%   r!  r   é   z/expected metadata_split to return 3 parts, got )rÕ  r}  r  r²   )r�  rš   ÚstartrŒ  rU  rV  ÚendÚcs           rk   Úmetadata_splitÚDGraphModuleDeserializer.deserialize_metadata.<locals>.metadata_split  s©   € Ø�Ø‘�Ø!‘�Ü'¨Ö1‘F�CØ“vØ˜Q™šØ›Ø˜Q™šØ˜c� a¨1¥fØŸ
™
 8°#Ð#6Ô7Ø # a¡šñ 2ð —
‘
˜8 FÐ+Ô,Ü�s“8˜q“=Ü(ØIÌ#ÈcË(ÈÐTóð ð �
rj   c              3   ó:   >#   • U  H  nT" T" U5      6 v •  M     g 7frn   rd   )rz   r  r˜  rŸ  s     €€rk   r|   Ú?GraphModuleDeserializer.deserialize_metadata.<locals>.<genexpr>)  s"   øé € ð #âC�Dñ '©°tÓ(<Õ=ÚCùs   ƒr'  r!  r(  r)  r*  )
r|  r3  r  r¡  r+  r}  r³   rø   r  Ú_deserialize_from_node)r’   r�  r.  r  r•  Únn_module_stack_strr  Úsource_fn_st_strr0  Úsource_fn_strrS  Ú
target_strÚtorch_fn_strÚ
custom_strÚfrom_node_strr˜  rŸ  s   `              @@rk   r  Ú,GraphModuleDeserializer.deserialize_metadataø  ss  ú€ Ø ˆØ"Ÿ,™, }Ó5Ð5ˆ;Õ5Ø!,�Ñð	´S÷ 	ð& #+§,¡,Ð/@Ó"AÐAÐÕAò'òô& #õ #à/×5Ñ5´lÔCó#ó ˆOð &5Ð!Ñ"à'Ÿ|™|Ð,=Ó>Ð>ÐÕ>àˆLØ!1×!7Ñ!7¼Ö!E�Ø#0×#6Ñ#6°sÓ#;Ñ �Ø×#Ñ# TÐ+@ÀÓ+LÐ$MÖNñ "Fð &2Ð!Ñ"à#Ÿ<™<¨
Ó3Ð3ˆ<Õ3Ü# L×$6Ñ$6´|Ó$DÓEˆC�
‰Oà!Ÿ™ hÓ/Ð/ˆ:Õ/Ü ŸJšJ zÓ2ˆC�‰Mà$ŸL™L¨Ó5Ð5ˆ=Õ5Ø#×:Ñ:¼4¿:º:ÀmÓ;TÓUˆC�Ñàˆ
rj   Úfrom_node_datac                 óÜ   • Uc  g[        U[        5      (       d!  [        S[        U5      R                   35      eU Vs/ s H   n[
        R                  " U5      =nc  M  UPM"     sn$ s  snf )z0
Deserialize from_node metadata from JSON data.
Nr‘  )rv   rL  r²   r£   re   r   Ú
_from_dict)r’   r¬  Úfn_dictr6  s       rk   r£  Ú.GraphModuleDeserializer._deserialize_from_nodeB  ss   € ð Ñ!Øä˜.¬$×/Ñ/Ü Ð#6´t¸NÓ7K×7TÑ7TÐ6UÐ!VÓWÐWñ *ó
â)�Ü)×4Ò4°WÓ=Ð=�÷ Ù)ñ
ð 	
ùò 
s   ¿A)Á A)r¬  c                 óV  • [         R                  SU5        UR                  S:X  a(  [        R                  " UR
                  R                  S9$ UR                  S:X  a(  [        R                  " UR                  R                  S9$ UR                  S:X  a(  [        R                  " UR                  R                  S9$ UR                  S:X  a8  [        R                  " UR                  R                  U R                  U5      S9$ [        R                  " SU R                  U5      S9$ )	Nz[deserialize_argument_spec] %srª  rt  r¬  rq  r°  rç  rS  )r  r²  r£   r·  rT   rª  rS  rS   r¬  ro  rQ   rq  rú  r°  rõ  r   s     rk   r  Ú1GraphModuleDeserializer.deserialize_argument_specT  sß   € Ü�	‰	Ð2°AÔ6Ø�6‰6�[Ó Ü×$Ò$¨!¯+©+×*:Ñ*:Ñ;Ð;Ø�V‰V�|Ó#Ü×$Ò$¨!¯,©,×*>Ñ*>Ñ?Ð?Ø�V‰V�~Ó%Ü×&Ò&¨A¯N©N×,BÑ,BÑCÐCØ�V‰V�Ó&Ü×&Ò&Ø—_‘_×)Ñ)°×1GÑ1GÈÓ1Jñð ô ×&Ò&¨B°d×6LÑ6LÈQÓ6OÑPÐPrj   r5  c           	      ód  • [         R                  " UR                   Vs/ s H  o R                  U5      PM     snUR                   Vs/ s H  o R                  U5      PM     sn[        UR                  5      [        UR                  5      UR                  =n(       a  US9$ S S9$ s  snf s  snf )Nr7  )	r·  r@   rC  r  rD  r   r8  r9  r:  r;  s       rk   Ú!deserialize_module_call_signatureÚ9GraphModuleDeserializer.deserialize_module_call_signaturec  s¶   € ô ×%Ò%à;P×;WÒ;WóÚ;W°a×.Ñ.¨qÖ1Ñ;Wñð <Q×;XÒ;XóÚ;X°a×.Ñ.¨qÖ1Ñ;Xñô #Ð#8×#@Ñ#@ÓAÜ#Ð$9×$BÑ$BÓCà#8×#JÑ#JÐJ˜%ÕJ�ñ
ð 	
ð RVñ
ð 	
ùòùòs   ŸB(Á	B-
r›  c           	      óî   • [         R                  S5        U Vs/ s HN  n[        R                  " UR                  UR
                  (       a  U R                  UR
                  5      OS S9PMP     sn$ s  snf )Nz 
[deserialize_module_call_graph]r@  )r  r²  r·  r?   rA  rä  r´  rB  s      rk   rJ  Ú5GraphModuleDeserializer.deserialize_module_call_grapht  sn   € ô 	�	‰	Ð5Ô6ñ +ó

ò +�ô ×ÒØ—I‘Ið ——ð ×:Ñ:¸5¿?¹?ÔKàôñ +ñ

ð 
	
ùò 

s   šAA2)rƒ   r„   rÛ  rñ  rÈ  r˜  r—  r¸  rä  r»  r´  rÅ  rœ  )r¡   Nrn   )NN)Wre   rf   rg   rh   Údataclassesr
   r•  r“   r	   r   r�  r3  r¤  r©  r   r   rÔ   râ   rÛ   rÆ   rÃ  r³  rR   rw   rË  rP   rÏ  rL   rÓ  rU   r   r  r,   r·  rß  r¿  rC   râ  r1   r  r   rö  r5   r  rE   r  r4   ro  r"  r3   r  r³  r…   r   r³   r   r    rR  rô  r	  r  rL  rA   r  r'   rõ  r+   r  ro  r  r  rT   rS   rQ   r~  rŒ  r…  r  r   r£  rp  r  r@   r´  r?   rJ  ri   rd   rj   rk   r_   r_   º  s›  † à×Ñ÷Rð Ró ðRô(ð ð 8¨D¡>ó ó ðð0-Àô -ð°cô ð4 HLñ/-Øð/-Ø#+¨E°#°t¸UÐ2BÑ,CÑ#Dð/-à	�‰õ/-ðb Vð °°c¸5¿<¹<Ð6GÑ0Hô ð. xð °E¸%ÀÇÁÐ:OÑ4Pô ð gð °%¸¸e¿m¹mÐ8KÑ2Lô ðàðð 
ôð 
Ø0ð
à	×	Ñ	ô
ðP°(¸5ÀÇÁÇÁÐPSÐASÑ;TÑ2Uô Pð({°%ð {¸E¿H¹H¿N¹Nô {ðzB1°ð B1¸hð B1È4ô B1ðH3<¨	ð 3<°b·l±lô 3<ðj3=¨ð 3=¸¿¹ô 3=ðj
¨ð 
¸B×<SÑ<Sô 
ð ØQUñv)à!,ðv)ð  % T¨#¨u¯|©|Ð*;Ñ%<¸eÐ%CÑDðv)ð ˜˜c 3˜h™¨Ð.Ñ/ð	v)ð
 !Ø�%˜˜eŸl™l¨CÐ/Ñ0°$°s¸C°x±.Ð@ÑAÀ5ÐHÑIñ
ðv)ð ' t¨C°×1LÑ1LÐ,LÑ'MÑNðv)ð 
õv)ðpA ð A¨u¯x©x¯}©}ô AòLð(#¸$ô (#ðT%¨T°-Ñ-@ô %ð^> Xð ^>°#ô ^>ð@V¨mð VÀô VòKð$M¸$ð MÈÏÉÏÉô Mð8D°4ð 8DÀ%Ç(Á(Ç-Á-ô 8Dðt=ð —‘—‘ð=ð �> >Ð3CÐCÑDð	=ð
 ð=ð  $ C¨ H™~ô=ð<4Tð —‘—‘ð4Tð
  $ C¨ H™~ô4Tðl"=Ø#ð"=Ø.3¯h©h¯m©mð"=à	ô"=ðHH¨T°#°s°(©^ð HÀÀSÈ#ÀXÁô HðT
Ø& t¨D°°c°©NÑ';Ñ<ð
à	�$�zÑ"Ñ	#ô
ð$Q¨8ð Q¸¿¹ô Qð
Ø%8ð
à	×	Ñ	ô
ð"
Ø!% oÑ!6ð
à	ˆb× Ñ Ñ	!÷
rj   c                   óx  • \ rS rSrSS\\\\4      4S jjrS\\\	R                  4   S\\\R                  4   S\\R                  \
4   4S jr SS	S
.S\S\\\\R"                  4   \4   S\\\\R"                  4   \4   S\\\\\R"                  S4   \\\4   4   \4      S\R                  4
S jjjrSrg)r`   i…  NÚexpected_opset_versionc                 óÎ   • 0 U l         U(       a  U R                   R                  U5        SU R                   ;  a,  [        R                  R	                  5       U R                   S'   g g ru  )rº  rw  rw   rË  rx  )r’   rº  s     rk   r“   Ú$ExportedProgramDeserializer.__init__‡  sR   € Ø68ˆÔ#Þ!Ø×'Ñ'×.Ñ.Ð/EÔFØ˜×4Ñ4Ó4Ü27·(±(×2TÑ2TÓ2VˆD×'Ñ'¨Ò/ð 5rj   r»  r´  r¡   c                 óú   • [         R                  S5        0 nUR                  5        HO  u  pEUR                  U5      =n(       a  [         R                  SXE5        XSU'   M9  [         R	                  SU5        MQ     U$ )Nz 
[deserialize_range_constraints]z([deserialize_range_constraints] %s -> %sz;Symbol %s did not appear in the graph that was deserialized)r  r²  ro   r|  r  )r’   r»  r´  r5  rq   rr   Úsymbols          rk   Údeserialize_range_constraintsÚ9ExportedProgramDeserializer.deserialize_range_constraintsŽ  ss   € ô
 	�	‰	Ð5Ô6ØÐØ(×.Ñ.Ö0‰DˆAØ.×2Ñ2°1Ó5Ð5ˆvÕ5Ü—	‘	ÐDÀaÔKØ,- &Ó)ä—‘ØQÐSTöñ 1ð !Ð rj   F©Ú_unsafe_skip_version_checkr�   r‚   rƒ   r„   .c                ó:  • [        U[        5      (       d!  [        S[        U5      R                   35      eUR
                  nUR                  [        S   :w  aG  UR                  S:X  a  UR                  S:X  d'  U(       d   [        SUR
                   S[         S35      eUR                  R                  5        VVs0 s HN  u  pxU[        R                  " [        UR                  [         * 5      [        UR"                  [         5      5      _MP     n	nn[%        5       R'                  UR(                  UUUU	5      n
U R+                  U	U
R,                  5      n[.        R                  " U
R(                  U
R(                  R0                  U
R2                  U
R4                  UU
R6                  U
R8                  U
R:                  UR<                   Vs/ s H  n[?        U5      PM     snS9	nUR@                  Ul!        [D        RG                  SU5        U$ s  snnf s  snf )Núexpected ExportedProgram, got r   zSerialized schema version z+ does not match our current schema version rÅ  )	Úrootrñ  rš  r‚   r5  r›  r„   rƒ   r  z
[deserialize]: %s)$rv   r.   r²   r£   re   r~  r{  rJ   r|  rb   r5  ro   r   r    r/  Úmin_valr   Úmax_valr_   rR  ra  r¿  r”  r·  rñ  rä  r‚   r›  r„   rƒ   r  r   r�  r‡  r  r²  )r’   r�   r‚   rƒ   r„   rÂ  Úversionrq   rr   r»  Úresr5  rr  s                rk   rR  Ú'ExportedProgramDeserializer.deserializeŸ  s÷  € ô Ð*¬O×<Ñ<Ü Ø0´Ð6FÓ1G×1PÑ1PÐ0QÐRóð ð #×1Ñ1ˆð �=‰=œN¨1Ñ-Ó-Ø�M‰M˜QÓ 7§=¡=°AÓ#5æ-Ü$Ø0Ð1A×1PÑ1PÐ0Qð RAÜAOÐ@PÐPQðSóð ð )×:Ñ:×@Ñ@ÔBô 
ò
 C‘�ð	 Œ×*Ò*Ü! !§)¡)¬f¨WÓ5Ü! !§)¡)¬VÓ4óò ñ Cð 	ñ  
ô &Ó'×3Ñ3Ø×)Ñ)ØØØØ ó
ˆð !×>Ñ>Ø Ø× Ñ ó
Ðô
 ×#Ò#Ø×!Ñ!Ø×"Ñ"×(Ñ(ØŸM™MØ—~‘~Ø/Ø!×3Ñ3Ø×-Ñ-Ø—m‘mØ1A×1KÒ1KÓLÒ1K¨A”} QÖ'Ñ1KÑLñ

ˆð /×:Ñ:ˆÔÜ�	‰	Ð'¨Ô0ØˆùóA 
ùò8 Ms   Â>AHÇH)rº  rn   )re   rf   rg   rh   r   r  r3  rÔ   r“   r   r    rÆ   rÓ   r¿  r.   r   rw   r³  r…   r³   r   r·  rR  ri   rd   rj   rk   r`   r`   …  s  † ñW¨x¸¸SÀ#¸X¹Ñ/Gõ Wð!à" 3¨×(CÑ(CÐ#CÑDð!ð  $ C¨¯©Ð$5Ñ6ð!ð 
ˆe�l‰l˜KÐ'Ñ	(ô	!ð0 ð;ð $)ò;à)ð;ð ˜$˜s E§L¡LÐ0Ñ1°5Ð8Ñ9ð;ð ˜˜c 5§<¡<Ð/Ñ0°%Ð7Ñ8ð	;ð
 !Ø�%˜˜eŸl™l¨CÐ/Ñ0°$°s¸C°x±.Ð@ÑAÀ5ÐHÑIñ
ð;ð 
×	Ñ	÷;ñ ;rj   r`   c                   ó(   ^ • \ rS rSrU 4S jrSrU =r$ )rû   iÝ  c                 óØ   >• [        U[        5      (       a  UR                  $ [        U[        5      (       a%  [        R
                  " U5      R                  S5      $ [        TU ]!  U5      $ ©Nrõ   )	rv   r   rp   r…   Úbase64Ú	b64encoder  Úsuperr.  )r’   rN  Ú	__class__s     €rk   r.  ÚEnumEncoder.defaultÞ  sR   ø€ Ü�cœ4× Ñ Ø—9‘9ÐÜ�cœ5×!Ñ!Ü×#Ò# CÓ(×/Ñ/°Ó8Ð8Ü‰w‰˜sÓ#Ð#rj   rd   )re   rf   rg   rh   r.  ri   Ú__classcell__)rÑ  s   @rk   rû   rû   Ý  s   ø† ÷$ó $rj   rû   c           
      óX  • [        U [        5      (       a!  U R                  [        U R                  5      0$ [
        R                  " U 5      (       aN  [
        R                  " U 5       Vs0 s H,  nUR                  [        [        XR                  5      5      _M.     sn$ [        U [        5      (       a  U  Vs/ s H  n[        U5      PM     sn$ [        U [        5      (       a  [        S U  5       5      $ [        U [        5      (       a/  U R                  5        VVs0 s H  u  p4U[        U5      _M     snn$ [        U [        5      (       aI  U [        R                   :X  a  gU [        R                   * :X  a  g[        R"                  " U 5      (       a  gU $ U $ s  snf s  snf s  snnf )Nc              3   ó8   #   • U  H  n[        U5      v •  M     g 7frn   )rú   r«  s     rk   r|   Ú%_dataclass_to_dict.<locals>.<genexpr>ñ  s   é € Ð8²C¨qÔ'¨×*Ð*²Cùr°   ÚInfinityz	-InfinityÚNaN)rv   r[   r£   rú   rp   r¸  Úis_dataclassrQ  rS  r^  rL  r³   r  ro   rÛ   r)  r-  Úisnan)rN  Úfr¬  rq   rr   s        rk   rú   rú   æ  sQ  € Ü�#”v×ÑØ—‘Ô,¨S¯Y©YÓ7Ð8Ð8Ü	×	!Ò	! #×	&Ñ	&ô !×'Ò'¨Ô,ó
â,�ð �F‰FÔ&¤w¨s·F±FÓ';Ó<Ò<Ù,ñ
ð 	
ô 
�Cœ×	Ñ	Ù/2Ó3ªs¨!Ô" 1Ö%©sÑ3Ð3Ü	�Cœ×	Ñ	ÜÑ8±CÓ8Ó8Ð8Ü	�Cœ×	Ñ	Ø58·Y±Y´[ÔA²[©T¨Q�Ô% aÓ(Ò(±[ÒAÐAÜ	�Cœ×	Ñ	Ø”$—(‘(‹?ØØ”T—X‘X�IÓØÜ�ZŠZ˜�_‰_ØàˆJàˆ
ùò)
ùò
 4ùó Bs   Á*3FÂ9F!Ä F&rN  c                 óf   • [         R                  " [        U 5      [        SS9R	                  S5      $ )NF)rô   Ú	allow_nanrõ   )rø   rù   rú   rû   rü   )rN  s    rk   Ú_to_json_bytesrÞ    s+   € Ü�:Š:Ô(¨Ó-´;È%ÑP×WÑWØóð rj   r�   rs  c                 ó®  • [        U R                  5         [        X5      R                  U 5      nS S S 5        [	        WR
                  [        5      (       d+  [        S[        UR
                  5      R                   35      e[        UR
                  5      n[        UUR                  UR                  UR                  5      nU$ ! , (       d  f       N›= f)NrÄ  )r   r„   r^   r\   rv   r�   r.   r²   r£   re   rÞ  r   r‚   rƒ   )r�   rs  r
  Úserialized_programÚ
json_bytesr	  s         rk   r\   r\     sÀ   € ô
 
0Ð0@×0OÑ0OÕ	PÜ6Øó
ç
‰)Ð$Ó
%ð 	÷ 
Qô Ð(×9Ñ9¼?×KÑKÜØ,¬TÐ2D×2UÑ2UÓ-V×-_Ñ-_Ð,`Ðaó
ð 	
ô  Ð 2× CÑ CÓD€JÜ!ØØ×%Ñ%Ø×$Ñ$Ø×)Ñ)ó	€Hð €O÷! 
QÕ	Pús   –CÃ
Cc                 óÄ   • [        U [        5      (       a  [        [        U S 5      nUb  U$ [        U [        R
                  5      (       a  [        U R                  5      $ U $ rn   )rv   r3  r^  r&   ÚtypingÚ
ForwardRefÚ_resolve_schema_clsÚ__forward_arg__)rô   Úresolveds     rk   rå  rå    sQ   € Ü�#”s×ÑÜœ6 3¨Ó-ˆØÑØˆOÜ�#”v×(Ñ(×)Ñ)Ü" 3×#6Ñ#6Ó7Ð7Ø€Jrj   c           	      óL  • [        U 5      n [        U [        5      (       a  [        SU  S35      e[        R
                  " U 5      [        L a  [        U R                  U5      $ [        R
                  " U 5      [        R                  :X  ar  [        S 5      [        R                  " U 5      ;   aO  Uc  g [        R                  " U 5      n[        U5      S:w  a  [        S[        U5       35      e[        US   U5      $ [        U [        5      (       Ga/  [        U [        5      (       Ga  [        U[        5      (       d!  [        S[        U5      R                    35      e[        U5      S:w  a  [        S[        U5       35      e[#        [%        UR'                  5       5      5      n[#        [%        UR)                  5       5      5      n[        U[        5      (       d!  [        S	[        U5      R                    35      e[        R*                  " U [-        [.        5      S
9nXS   nU R0                  " S0 U[        Xd5      0D6$ [2        R4                  " U 5      (       ap  0 n[        R*                  " U [-        [.        5      S
9n[2        R6                  " U 5       H*  nUR8                  n	X‘;  a  M  [        XY   X   5      n
X§U	'   M,     U " S0 UD6$ [        U[:        5      (       aF  [        U5      S:X  a  U$ [        R                  " U 5      S   nU Vs/ s H  n[        X¼5      PM     sn$ [        U[        5      (       aH  [        R                  " U 5      S   nUR=                  5        VVs0 s H  u  pïU[        Xß5      _M     snn$ U [>        L a  [?        U5      $ U$ s  snf s  snnf )NzUnresolved class type: 'z'.r#   zexpected 2 type args, got r   zexpected dict, got r%   zexpected dict with 1 key, got zexpected str key, got )Úglobalnsrd   ) rå  rv   r3  r²   rã  Ú
get_originr   r  Ú
__origin__r   r£   Úget_argsr  Ú
issubclassr[   r  re   rx  ry  rw  rz  Úget_type_hintsÚvarsr&   rÖ   r¸  rÙ  rQ  rS  rL  ro   rÛ   )rô   ÚdataÚty_argsr¾  Ú_valueÚ
type_hintsÚ
field_typerQ  rÛ  rS  Únew_field_objÚd_typerl   Úv_typerq   rr   s                   rk   r  r  )  sí  € Ü
˜cÓ
"€CÜ�#”s×ÑÜÐ7¸°u¸BÐ?Ó@Ð@Ü×Ò˜Ó¤Ò*Ü! #§.¡.°$Ó7Ð7Ü×Ò˜Ó¤§¡Ó-´$°t³*ÄÇÂÐPSÓ@TÓ2TØ‰<ØÜ—/’/ #Ó&ˆÜˆw‹<˜1ÓÜ Ð#=¼cÀ'»l¸^Ð!LÓMÐMÜ! '¨!¡*¨dÓ3Ð3Ü	�Cœ×	Ò	¤:¨c´6×#:Ò#:Ü˜$¤×%Ñ%Ü Ð#6´t¸D³z×7JÑ7JÐ6KÐ!LÓMÐMÜˆt‹9˜‹>Ü Ð#AÄ#ÀdÃ)ÀÐ!MÓNÐNÜ”T˜$Ÿ)™)›+Ó&Ó'ˆÜ”d˜4Ÿ;™;›=Ó)Ó*ˆÜ˜%¤×%Ñ%Ü Ð#9¼$¸u»+×:NÑ:NÐ9OÐ!PÓQÐQÜ×*Ò*¨3¼¼f»ÑFˆ
ØÑ&ˆ
à�zŠzÑL˜UÔ$6°zÓ$JÐKÑLÐLÜ	×	!Ò	! #×	&Ñ	&ØˆÜ×*Ò*¨3¼¼f»ÑFˆ
ô ×#Ò# CÖ(ˆAØ—6‘6ˆDØÓÙÜ.¨zÑ/?ÀÁÓLˆMØ(�4‹Lñ )ñ ‰}�V‰}ÐÜ	�Dœ$×	Ñ	Üˆt‹9˜‹>ØˆKÜ—’ Ó% aÑ(ˆÙ7;Ó<²t°!Ô" 6Ö-±tÑ<Ð<Ü	�Dœ$×	Ñ	Ü—’ Ó% aÑ(ˆØ=A¿Z¹Z¼\ÔJº\±T°Q�Ô% fÓ0Ò0¹\ÒJÐJØ	”ŠÜ�T‹{ÐØ€Kùò =ùó Ks   ÌNÍ)N rô   Úartifact_bytesc                 ój   • UR                  S5      n[        R                  " U5      n[        X5      nU$ rÍ  )r  rø   r  r  )rô   rø  Úartifact_strÚartifact_dictÚartifact_dataclasss        rk   Ú_bytes_to_dataclassrý  \  s1   € Ø!×(Ñ(¨Ó1€LÜ—J’J˜|Ó,€MÜ+¨CÓ?ÐØÐrj   FrÁ  rº  c                ó>  • [        U R                  [        5      (       d+  [        S[	        U R                  5      R
                   35      e[        [        U R                  5      n[        U5      R                  UU R                  U R                  U R                  US9$ )Nzexpected bytes, got rÁ  )rv   r�   r…   r²   r£   re   rý  r.   r`   rR  r‚   rƒ   r„   )r	  rº  rÂ  Úserialized_exported_programs       rk   rR  rR  c  sš   € ô �h×/Ñ/´×7Ñ7ÜØ"¤4¨×(AÑ(AÓ#B×#KÑ#KÐ"LÐMó
ð 	
ô #6Ü˜×2Ñ2ó#Ðô 'Ð'=Ó>×JÑJØ#Ø×ÑØ×ÑØ×ÑØ#=ð Kð ð rj   c                 óŒ  ^ ^^^^^• S[         4S jmU4S jmUUU 4S jnU" TR                  5      n[        U5      [        TR                  5      :w  a-  [        S[        TR                  5       S[        U5       35      e0 mUU4S jnU4S jnT  H  nT" Xh5        M     U H  n	U	R                   H  n
T" Xj5        M     M      U H(  n	U	R
                   H  nT" XxR                  5        M     M*     U H  n
T" Xz5        M     U H  n	U	R                  R                  5         M     [        [        TR                  R                  5       [        R                  " S	5      S
95      n[        [        TR                  R                  5       [        R                  " S	5      S
95      n[        [        TR                   R                  5       [        R                  " S	5      S
95      n[        [        TR"                  R                  5       [        R                  " S	5      S
95      n[        [        TR$                  R                  5       [        R                  " S	5      S
95      nS	nU H½  nUR
                   Hª  nUR                  nUR&                  S:X  d  M!  [)        UR*                  R,                  R
                  UR*                  R,                  R                  UR*                  R,                  T5      u  UR*                  l        nSU 3UR*                  l        US-  nM¬     M¿     [1        T UUUUUUTR2                  US9	mTT4$ )NrU  c                 óê  • U R                   S:X  a  g U R                   S:X  a  U R                  $ U R                   S:X  a  U R                  $ U R                   S:X  a  g U R                   S:X  a  g U R                   S:X  a  g U R                   S:X  a  g U R                   S:X  a  g U R                   S	:X  a  g U R                   S
:X  a  g U R                   S:X  a  U R                  $ U R                   S:X  a  U R                  $ U R                   S:X  a  U R
                  $ U R                   S:X  a  U R                  $ U R                   S:X  a  g U R                   S:X  a  g U R                   S:X  a  g U R                   S:X  a  g U R                   S:X  a  g U R                   S:X  a  g U R                   S:X  a  U R                  $ U R                   S:X  a  U R                  $ U R                   S:X  a  g U R                   S:X  a  U R                  $ U R                   S:X  a  U R                  $ U R                   S:X  a  g U R                   S:X  a  g U R                   S:X  a  g U R                   S:X  a  U R                  $ [        SU  35      e)Nry  rª  rÔ  rª   r|  rÚ   r}  rm  r~  rw  r¬  r‹  rq  r�  r®  r°  r±  r¯  rà   r{  rs  r‘  rg  r¢  r°  rµ  r­  rz  r›  z+Unknown input type to the ExportedProgram: )r£   rª  rÔ  r¬  r‹  rq  r�  rs  r‘  r¢  r°  r›  r²   rŸ  s    rk   Ú_get_argumentÚ*_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�{Ó"ØØ�V‰V�yÓ ØØ�V‰V�zÓ!ØØ�V‰V�}Ó$Ø—=‘=Ð Ø�V‰V�~Ó%Ø—>‘>Ð!Ø�V‰V�zÓ!ØØ�V‰VÐ,Ó,Ø×(Ñ(Ð(Ø�V‰V�Ó&Ø—?‘?Ð"Ø�V‰V�}Ó$ØØ�V‰V�~Ó%ØØ�V‰VÐ.Ó.ØØ�V‰VÐ*Ó*Ø×&Ñ&Ð&ä Ð#NÈqÈcÐ!RÓSÐSrj   c                 ó¬   >• [        U[        5      (       d!  [        S[        U5      R                   35      e[
        R                  " U T" U5      5        g )Nr‹  )rv   r'   r²   r£   re   r'  Útree_map)rÛ  rU  r  s     €rk   Úfor_argsÚ%_canonicalize_graph.<locals>.for_args»  sA   ø€ Ü˜!œX×&Ñ&Ü Ð#:¼4À»7×;KÑ;KÐ:LÐ!MÓNÐNÜ�Š˜™=¨Ó+Õ,rj   c                 óº  >^ ^^^^^^^^• [          " S S5      5       n[        5       m0 m0 m/ m0 m/ nS[        [           4S jmT H  nUU4S jnT" XC5        M     [	        T 5       H5  u  mnUUU4S jnUR
                   H  nT" Xg5        M     U" / S5      TT'   M7     [	        T 5       H6  u  mnUUUUUU4S jn	UR                   H  nT" X“R                  5        M     M8     UU4S	 jn
UUU4S
 jmT H  nT" X£5        M     S[        4UUUU 4S jjnTR                  5        H   u  mnUR                  S:X  d  M  U" T5        M"     [        T5      S:”  Ga  [        R                  " T5      u    nmT T   nUR
                   H  nT" X§5        M     UR                  U5        TT;  a  [        ST S35      eTT   R                    H_  nTU   nUR                  S::  a  [        SUR                   35      eU=R                  S-  sl
        UR                  S:X  d  MW  U" U5        Ma     TT   R                   R#                  5         [        T5      S:”  a  GM  U$ )Nc                   ó0   • \ rS rSr% \\   \S'   \\S'   Srg)Ú6_canonicalize_graph.<locals>.sort_nodes.<locals>.EdgesiÁ  ÚoutsÚinsrd   N)re   rf   rg   rh   rL  rÔ   r†   ri   rd   rj   rk   ÚEdgesr
  Á  s   ‡ à�s‘)‹OØŽHrj   r  r¡   c                 ó  • U c  g [        U [        5      (       a  U R                  $ [        U [        [        [
        45      (       a;  U R                  S:X  a  U R                  $ U R                  S;   a  g [        SU  35      e[        U [        5      (       aE  U R                  S:X  a  U R                  R                  $ U R                  S:X  a  g [        SU  35      e[        U [        5      (       a  U R                  $ [        SU  35      e)Nro  )rª   rà   rÚ   úUnknown argument type: rª  ry  zUnknown optional tensor type: )rv   rT   rS  rS   rM   rQ   r£   ro  r²   rD   rª  r,   rŸ  s    rk   r¨  Ú9_canonicalize_graph.<locals>.sort_nodes.<locals>.get_nameÍ  sä   € Ø‰yØÜ˜!œ^×,Ñ,Ø—v‘v�Ü˜A¤´ÔAQÐR×SÑSØ—6‘6˜YÓ&ØŸ9™9Ð$Ø—V‘VÐ@Ó@Øä(Ð+BÀ1À#Ð)FÓGÐGÜ˜AÔ5×6Ñ6Ø—6‘6˜[Ó(ØŸ;™;×+Ñ+Ð+Ø—V‘V˜yÓ(Øä(Ð+IÈ!ÈÐ)MÓNÐNÜ˜AÔ0×1Ñ1Ø—v‘v�ä$Ð'>¸q¸cÐ%BÓCÐCrj   c                 óH   >• T" U 5      =n(       a  TR                  U5        g g rn   )r™   )rU  rÂ   r¨  Úgraph_inputss     €€rk   Ú	add_inputÚ:_canonicalize_graph.<locals>.sort_nodes.<locals>.add_inputç  s%   ø€ Ù  ›Ð#�1Õ#Ø ×$Ñ$ QÕ'ð $rj   c                 ó\   >• T" U 5      =n(       a  UT;   a  [        SU< S35      eTTU'   g g )Núsymbol z already in def_table)r²   )rU  rÂ   Ú	def_tabler¨  rŒ  s     €€€rk   Úadd_defÚ8_canonicalize_graph.<locals>.sort_nodes.<locals>.add_defï  s<   ø€ Ù  ›Ð#�1Õ#Ø˜I“~Ü,¨w°q±eÐ;PÐ-QÓRÐRØ#&�I˜a’Lð $rj   r   c                 óä   >• T" U 5      =n(       a`  UT;   a  g UT;  a  UT;  a  [        SU< S35      eg TU   nTU   R                  R                  T5        TT   =R                  S-  sl        g g )Nr  z! not in def_table or graph_inputsr%   )r²   r  r}  r  )	rU  rÂ   rã  rƒ   r  Úedgesr¨  r  rŒ  s	      €€€€€€rk   Úadd_edgeÚ9_canonicalize_graph.<locals>.sort_nodes.<locals>.add_edgeü  s�   ø€ Ù  ›Ð#�1Õ#Ø˜I“~ØØ 	Ó)Ø LÓ0Ü"0Ø")¨!©Ð.OÐ Pó#ð ð Ø# A™,�CØ˜#‘J—O‘O×*Ñ*¨3Ô/Ø˜#‘J—N’N aÑ'–Nð $rj   c                 ón   >• T" U 5      =n(       a%  UT;   a  [        SU< S35      e[        T5      TU'   g g )Nr  z already in rank)r²   r  )rU  rÂ   r¨  Úranks     €€rk   Úadd_rankÚ9_canonicalize_graph.<locals>.sort_nodes.<locals>.add_rank  s@   ø€ Ù˜Q“KÐˆqÕØ˜“9Ü(¨7°1±%Ð7GÐ)HÓIÐIÜ˜d›)��Q’ð  rj   c                 ó:   >• T" U 5      nU(       a  UT;  a  TU   $ g)Nr?  rd   )rU  rÂ   rƒ   r¨  r  s     €€€rk   Úget_rankÚ9_canonicalize_graph.<locals>.sort_nodes.<locals>.get_rank  s"   ø€ Ù˜“ˆAÞ�Q˜iÓ'Ø˜A‘w�àrj   rŒ  c                 óÜ   >• UU4S jnTU    nUR                    Vs/ s H   o3R                  U" UR                  5      4PM"     nn[        R                  " TUR
                  X@45        g s  snf )Nc                 ó*   >^• / mT" UU4S jU 5        T$ )Nc                 ó2   >• TR                  T" U 5      5      $ rn   )r}  )r¬  r#  Úrankss    €€rk   rè  Úc_canonicalize_graph.<locals>.sort_nodes.<locals>.add_candidate.<locals>.get_ranks.<locals>.<lambda>   s   ø€  5§<¡<±¸³Ô#<rj   rd   )r	  r(  r  r#  s    @€€rk   Ú	get_ranksÚQ_canonicalize_graph.<locals>.sort_nodes.<locals>.add_candidate.<locals>.get_ranks  s   ù€ Ø�ÙÕ<¸aÔ@Ø�rj   )rC  rS  rÁ  ÚheapqÚheappushr>  )	rŒ  r*  rÄ   rU  Ú	args_rankÚ
candidatesr  r#  rE  s	        €€€€rk   Úadd_candidateÚ>_canonicalize_graph.<locals>.sort_nodes.<locals>.add_candidate  sX   ø€ öð
 ˜‘:ˆDØ=A¿[º[ÓIº[¸Ÿ&™&¡)¨A¯E©EÓ"2Ó3¹[ˆIÐIÜ�NŠN˜:¨¯©°YÐ'DÕEùò Js   œ'A)zidx z not in edgesze.ins should be > 0, got r%   )r
   r�   r   r3  rÕ  rD  rC  rÁ  rÔ   ro   r  r  r,  Úheappopr}  r²   r  Úclear)rE  r  r.  r	  r  rÄ   r  r  r  r  r   r0  r   r—  r/  r  r  r¨  r#  r  rŒ  r  rƒ   r  Úsorted_inputss   `             @@@@@@@@€€€rk   Ú
sort_nodesÚ'_canonicalize_graph.<locals>.sort_nodesÀ  s4  ÿù€ Ü	÷	ð 	ó 
ð	ô "%£ˆØ$&ˆ	Ø"$ˆØIKˆ
Ø!ˆØˆð	Dœ8¤C™=ô 	Dó0 ˆAö(ñ �YÖ"ñ ô # 5Ö)‰IˆC�÷'ð —\”\�Ù˜Ö$ñ "ñ ˜r 1›ˆE�#‹Jñ *ô # 5Ö)‰IˆC�÷(ò (ð —[”[�Ù˜§5¡5Ö)ó !ñ! *ö&	$÷	ó ˆAÙ�XÖ!ñ ð	Fœs÷ 	Fò 	Fð —k‘k–m‰FˆC�Ø�u‰u˜�zÙ˜cÖ"ñ $ô �*‹o Ô!ÜŸš jÓ1‰IˆAˆq�#Ø˜‘:ˆDØ—\”\�Ù˜Ö%ñ "à�J‰J�tÔØ˜%ÓÜ$ t¨C¨5°Ð%>Ó?Ð?Ø˜c™
Ÿœ�Ø˜$‘K�Ø—5‘5˜A“:Ü(Ð+DÀQÇUÁUÀGÐ)LÓMÐMØ—’˜‘
•Ø—5‘5˜A•:Ù! $Ö'ñ (ð �#‰J�O‰O×!Ñ!Ô#ô �*‹o Ö!ð" ˆ
rj   z	expected z sorted nodes, got c                 óÊ  >• U4S jnU c  g [        U [        5      (       a#  U" U R                  TR                  5      U l        g [        U [        5      (       a4  U R
                  S:X  a#  U" U R                  TR                  5      U l        g g [        U [        5      (       a4  U R
                  S:X  a#  U" U R                  TR                  5      U l        g g [        U [        5      (       a4  U R
                  S:X  a#  U" U R                  TR                  5      U l        g g [        U [        5      (       a#  U" U R                  TR                  5      U l        g [        SU  35      e)Nc                 óª   >• S[        T5       3nU T;   a  [        SU < S35      eUTU '   X;  a  [        SU < S35      eUR                  U 5      X'   U$ )Nr—  z	arg_name z already in name_tablez not in values)r  r²   Úpop)rÐ  rz  Únew_nameÚ
name_tables      €rk   rƒ  Ú8_canonicalize_graph.<locals>.rename_def.<locals>._renameH  sk   ø€ Øœ3˜z›?Ð+Ð,ˆHØ˜:Ó%Ü$ y°±Ð<RÐ%SÓTÐTØ#+ˆJ�xÑ ØÓ%Ü$ y°±¸NÐ%KÓLÐLØ%Ÿz™z¨(Ó3ˆFÑØˆOrj   ro  r  )rv   rT   rS  rF  rS   r£   ro  rG  rQ   rI  rM   rH  r,   rK  r²   )rU  rƒ  rñ  r;  s     €€rk   Ú
rename_defÚ'_canonicalize_graph.<locals>.rename_defG  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¸#Ð!>Ó?Ð?rj   c                 ó`  >• U c  g [        U [        5      (       a,  TR                  U R                  U R                  5      U l        g [        U [        [
        45      (       a=  U R                  S:X  a,  TR                  U R                  U R                  5      U l        g g [        U [        5      (       a=  U R                  S:X  a,  TR                  U R                  U R                  5      U l        g g [        U [        5      (       a[  U R                  S:X  aJ  TR                  U R                  R                  U R                  R                  5      U R                  l        g g [        U [        5      (       a,  TR                  U R                  U R                  5      U l        g [        SU  35      e)Nro  rª  r  )rv   rT   r|  rS  rS   rQ   r£   ro  rM   rD   rª  r,   r²   )rU  r;  s    €rk   Úreplace_useÚ(_canonicalize_graph.<locals>.replace_used  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Ñ2Ø�v‰v˜Ó$Ø#-§>¡>°!·+±+×2BÑ2BÀAÇKÁK×DTÑDTÓ#U�—‘Õ ð %ä˜Ô,×-Ñ-Ø—^‘^ A§F¡F¨A¯F©FÓ3ˆA�Fä Ð#:¸1¸#Ð!>Ó?Ð?rj   r   ©r–  rg  Ú_gr%   )	rC  rD  rE  rF  rG  rI  rH  rJ  rK  )r'   rE  r  r²   rD  rC  rÁ  r�  r3  r  ÚsortedrF  ro   rè  Ú
itemgetterrG  rI  rH  rK  r£   Ú_canonicalize_graphrg  rñ  rS  r1   rJ  )r4  Úsorted_outputsrñ  rƒ   r5  Ú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Ä   rU  r—  r  r  r;  s   ` ``                @@@rk   rF  rF  y  sÜ  ý€ ð<Tœô <Tõ~-÷
|ñ| ˜eŸk™kÓ*€LÜ
ˆ<ÓœC §¡Ó,Ó,ÜØœ˜EŸK™KÓ(Ð)Ð)<¼SÀÓ=NÐ<OÐPó
ð 	
ð
 "$€Jö@õ:@ó& ˆÙ�Öñ ó ˆØ—”ˆAÙ�ZÖ#ó ñ ó ˆØ—”ˆAÙ�[§%¡%Ö(ó ñ ó ˆÙ�Ö ñ ó ˆØ	�
‰
×ÑÖñ ô
  Üˆu×"Ñ"×(Ñ(Ó*´×0CÒ0CÀAÓ0FÑGóÐô !Üˆ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×$Ñ$×+Ñ+Ø—J‘J×$Ñ$×,Ñ,Ø—J‘J×$Ñ$Øó	'Ñ#�—
‘
Ô  !ð %' w i .�—
‘
”Ø˜1‘’ó ñ ô ØØØØ*Ø,Ø0Ø.Ø %× =Ñ =Ø2ñ
€Eð �*ÐÐrj   r·  rƒ   c                 ó|  ^^• [         R                  " U 5      n U=(       d
    [        5       n[        [	        U R
                  R                  5       [        R                  " S5      S95      n[        [	        U R                  R                  5       [        R                  " S5      S95      n[	        U R                  5      n[	        U R                  R                  S S9nU R                  R                  nU R                  R                  n[        UR                   5      [        UR"                  5      :w  a7  [%        S[        UR                   5       S[        UR"                  5       35      e[        UR&                  5      [        UR(                  5      :w  a7  [%        S[        UR&                  5       S[        UR(                  5       35      eS[*        [,        [.        [0           [,        4   4S	 jnS[*        [,        [.        [0           [,        4   4S
 jn	[	        [3        [5        UR                   UR"                  5      5      US9n
[        U
5      S:”  a  [5        S U
 5       6 u  p¼OSnSn[	        [3        [5        UR&                  UR(                  5      5      U	S9n[5        S U 5       6 u  pï[7        X¾Xq5      u  nmU4S jnUU4S jnU H  mU" T5        M     U H  mU" T5        M     [9        [;        U[=        [?        U5      [?        U5      S9US9UUU R@                  U RB                  U RD                  US9$ )a3  
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   rB  c                 ó   • U R                   $ rn   )rA  )r¬  s    rk   rè  Úcanonicalize.<locals>.<lambda>Û  s   € ÐPQ×PUÒPUrj   zgraph.inputs length z! != signature.input_specs length zgraph.outputs length z" != signature.output_specs length r¡   c                 ó†  • U u  nu  p#[        U[        5      (       d!  [        S[        U5      R                   35      eUR                  S:X  a  SS U4$ UR                  S:X  a  SUR
                  R                  U4$ UR                  S:X  a  SUR                  R                  U4$ UR                  S:X  a  S	UR                  R                  U4$ UR                  S
:X  a  SUR                  R                  U4$ UR                  S:X  a  SS U4$ UR                  S:X  a  SUR                  R                  U4$ [        SU 35      e)Núexpected InputSpec, got rê  é   rî  r%   r  r#   rò  r›  ró  é   rö  r   rè  é   úUnknown input type: )rv   r5   r²   r£   re   rî  rí  r  rï  rò  rñ  ró  r×  rè  rS  )rf  rŒ  Ú_argrå  s       rk   Ú
rank_inputÚ canonicalize.<locals>.rank_inputè  s1  € ØÑˆ‰\ˆdÜ˜$¤	×*Ñ*Ü Ð#;¼DÀ»J×<OÑ<OÐ;PÐ!QÓRÐRØ�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Ð!>Ó?Ð?rj   c                 ó`  • U u  nu  p#[        U[        5      (       d!  [        S[        U5      R                   35      eUR                  S:X  a  SS U4$ UR                  S:X  a  SS U4$ UR                  S:X  a  SUR
                  R                  U4$ UR                  S:X  a  SUR                  R                  U4$ UR                  S	:X  a  S
UR                  R                  U4$ UR                  S:X  a  SS U4$ UR                  S:X  a  SS U4$ UR                  S:X  a  SS U4$ [        SU 35      e)Núexpected OutputSpec, got r  rU  r  r  r%   r  r#   r	  rT  r  rV  r  r›  rö  r   úUnknown output type: )
rv   rE   r²   r£   re   r  rí  r  rï  r	  )rš   rŒ  rX  rå  s       rk   Úrank_outputÚ!canonicalize.<locals>.rank_outputý  s8  € ØÑˆ‰\ˆdÜ˜$¤
×+Ñ+Ü Ð#<¼TÀ$»Z×=PÑ=PÐ<QÐ!RÓSÐSØ�9‰9˜Ó%Ø�d˜C�<ÐØ�Y‰Y˜-Ó'Ø�d˜C�<ÐØ�Y‰YÐ.Ó.Ø�d×-Ñ-×<Ñ<¸cÐAÐAØ�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¸¸Ð!?Ó@Ð@rj   c              3   ó*   #   • U  H	  u  pUv •  M     g 7frn   rd   ©rz   rŒ  r	  s      rk   r|   Úcanonicalize.<locals>.<genexpr>  s   é € Ð*Fº:±°­1º:ùó   ‚rd   c              3   ó*   #   • U  H	  u  pUv •  M     g 7frn   rd   ra  s      rk   r|   rb  !  s   é € Ð(Eº©v¨s­ºùrc  c                 ój  >• [        U [        5      (       d!  [        S[        U 5      R                   35      eU R                  S:X  Ga&  U R
                  R                  nUR                  S:X  a!  UR                  nTUR                     Ul        g UR                  S:X  aP  UR                  nUR                  S:X  a  TUR                     Ul
        g UR                  S:X  a  g [        SU 35      eUR                  S:X  aP  UR                  nUR                  S:X  a  TUR                     Ul
        g UR                  S	:X  a  g [        S
U 35      eUR                  S;   a  g [        SU 35      eU R                  S:X  a+  U R                  R                  nTUR                     Ul        g U R                  S:X  a+  U R                  R                  nTUR                     Ul        g U R                  S:X  a+  U R                  R                  nTUR                     Ul        g U R                  S:X  a+  U R                  R                  nTUR                     Ul        g U R                  S:X  a+  U R                   R                  nTUR                     Ul        g U R                  S:X  a  g [        SU  35      e)NrS  rê  rª  r¬  ro  rª   úUnknown sym_int type: rq  rÚ   úUnknown sym_float type: )ry  rà   rª   rÚ   rm  r°  rW  rî  r  rò  ró  rö  rè  )rv   r5   r²   r£   re   rê  rÁ  rª  rS  r¬  ro  rq  rî  r  rò  ró  rö  )rå  rÁ  rå   rÂ   rÛ  Út_custom_objÚtokÚreplace_tables          €rk   Úreplace_inputÚ#canonicalize.<locals>.replace_input'  s>  ø€ Ü˜$¤	×*Ñ*Ü Ð#;¼DÀ»J×<OÑ<OÐ;PÐ!QÓRÐRØ�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Ð!>Ó?Ð?rj   c                 ó¬  >• [        T	[        5      (       d!  [        S[        T	5      R                   35      eT	R                  S:X  Ga&  T	R
                  R                  nUR                  S:X  a!  UR                  nTUR                     Ul        g UR                  S:X  aP  UR                  nUR                  S:X  a  TUR                     Ul
        g UR                  S:X  a  g [        SU 35      eUR                  S:X  aP  UR                  nUR                  S:X  a  TUR                     Ul
        g UR                  S	:X  a  g [        S
U 35      eUR                  S;   a  g [        SU 35      eT	R                  S:X  a+  T	R                  R                  nTUR                     Ul        g T	R                  S:X  a+  T	R                  R                  nTUR                     Ul        g T	R                  S:X  a+  T	R                  R                  nTUR                     Ul        g T	R                  S:X  a+  T	R                  R                  nTUR                     Ul        g T	R                  S:X  aI  T	R                   nTUR                  R                     UR                  l        TUR"                     Ul        g T	R                  S:X  aI  T	R$                  nTUR                  R                     UR                  l        TUR"                     Ul        g T	R                  S:X  a+  T	R&                  R                  nTUR                     Ul        g [        ST	 35      e)Nr\  r  rª  r¬  ro  rª   rf  rq  rÚ   rg  )ry  rà   rª   rÚ   rm  rW  r  r  r  r	  r  r  rö  r]  )rv   rE   r²   r£   re   r  rÁ  rª  rS  r¬  ro  rq  r  r  r  r	  r  r
  r  rö  )
rš   rÁ  rå   rÂ   rÛ  ÚgÚuri  rj  rå  s
           €€rk   Úreplace_outputÚ$canonicalize.<locals>.replace_output_  s´  ø€ Ü˜$¤
×+Ñ+Ü Ð#<¼TÀ$»Z×=PÑ=PÐ<QÐ!RÓSÐ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Ø—‘Ð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Ð.Ó.Ø×'Ñ'×+Ñ+ˆ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¸¸Ð!?Ó@Ð@rj   r  )rñ  rä  r›  r}  )#r„  Údeepcopyr�   r  rD  rs  ro   rè  rE  r5  r�  ra  r›  rä  rñ  r  rC  r  r²   rD  r  r³   rÔ   r   r3  rÕ  rB  rF  r.   r3   r4   rL  r~  r  r€  )r·  rƒ   rs  r5  r�  r›  rä  rñ  rY  r^  Ú
sorted_insr4  r  Úsorted_outsrG  r  Úsorted_graphrk  rp  rj  rå  s                      @@rk   rˆ  rˆ  ¼  sÔ  ù€ ô, 
�Š�rÓ	€Bà#×,¤s£u€Iäœ × 0Ñ 0× 6Ñ 6Ó 8¼h×>QÒ>QÐRSÓ>TÑUÓV€MÜÜˆr×#Ñ#×)Ñ)Ó+´×1DÒ1DÀQÓ1GÑHóÐô ˜Ÿ™Ó(€KÜ˜rŸ™×@Ñ@ÁoÑVÐØ—‘×)Ñ)€IØ�O‰O×!Ñ!€Eä
ˆ5�<‰<ÓœC 	× 5Ñ 5Ó6Ó6ÜØ"¤3 u§|¡|Ó#4Ð"5Ð5VÔWZÐ[d×[pÑ[pÓWqÐVrÐsó
ð 	
ô ˆ5�=‰=ÓœS ×!7Ñ!7Ó8Ó8ÜØ#¤C¨¯©Ó$6Ð#7Ð7YÔZ]Ð^g×^tÑ^tÓZuÐYvÐwó
ð 	
ð@œ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ä"5Ø uó#Ñ€L�-õ6@öp4Aól ˆÙ�dÖñ ó ˆÙ�tÖñ ô Ü ØÜ$Ü  Ó-Ü! ,Ó/ñð 0ñ
ð $Ø+Ø×(Ñ(Ø—,‘,Ø×&Ñ&Øñð rj   c                   óŒ   • \ rS rSrSr\S\4S j5       r\S\4S j5       r\S\4S j5       r	\S\
R                  4S j5       rS	rg
)ÚExtensionHandleri­  z.
Base class for handling extension operators.
r¡   c                 ó2   • [        U R                   S35      e)Nz  namespace() must be implemented©r�  rÑ  ró   s    rk   rú  ÚExtensionHandler.namespace²  ó   € ä! S§]¡] OÐ3SÐ"TÓUÐUrj   c                 ó2   • [        U R                   S35      e©Nz op_name() must be implementedry  ©rô   r{   s     rk   rû  ÚExtensionHandler.to_op_name¶  ó   € ä! S§]¡] OÐ3QÐ"RÓSÐSrj   rS  c                 ó2   • [        U R                   S35      er}  ry  )rô   rS  s     rk   r£  ÚExtensionHandler.from_op_nameº  r€  rj   c                 ó2   • [        U R                   S35      e)Nz  op_schema() must be implementedry  r~  s     rk   r=  ÚExtensionHandler.op_schema¾  r{  rj   rd   N)re   rf   rg   rh   r    Úclassmethodr3  rú  rû  r£  rw   ÚFunctionSchemar=  ri   rd   rj   rk   rw  rw  ­  s…   † ñð ðV˜#ó Vó ðVð ðT˜só Tó ðTð ðT ó Tó ðTð ðV˜e×2Ñ2ó Vó óVrj   rw  Úop_typeÚextension_handlerc                 óF  • [        U[        5      (       d  [        SU S35      eU [        ;   a  [        U  S35      e[	        U [
        5      (       d!  [        S[        U 5      R                   35      eU R                  R                  S5      (       d   U R                  R                  S5      (       a  [        SU R                   S35      eUR                  5       [        ;   a  [        S	UR                  5       < S
35      eU[        U '   U[        UR                  5       '   g)zJRegister custom de/serialization method for a node with non-standard type.zExpected ExtensionHandler, got rÅ  z is already registered.zop_type must be a type, got rw   Úbuiltinszop_type module z, should not start with 'torch' or 'builtins'z
namespace z is already registeredN)rí  rw  r²   r<  rv   r£   re   rf   rÆ  rú  r¢  )r‡  rˆ  s     rk   Úregister_extensionr‹  Ã  s"  € ô
 Ð'Ô)9×:Ñ:ÜÐ>Ð?PÐ>QÐQRÐSÓTÐTØÔ)Ó)Ü ˜yÐ(?Ð@ÓAÐAÜ�gœt×$Ñ$ÜÐ;¼DÀ»M×<RÑ<RÐ;SÐTÓUÐUØ×Ñ×$Ñ$ W×-Ñ-°×1CÑ1C×1NÑ1NØ÷2ñ 2ô Ø˜g×0Ñ0Ð1Ð1]Ð^ó
ð 	
ð ×"Ñ"Ó$Ô(AÓAÜØÐ*×4Ñ4Ó6Ñ9Ð9OÐPó
ð 	
ð (9Ô˜GÑ$Ø?PÔÐ/×9Ñ9Ó;Ò<rj   c                  ó<   • [        [        R                  5       5      $ rn   )r³   r<  rw  rd   rj   rk   rK  rK  Ü  s   € ÜÔ(×-Ñ-Ó/Ó0Ð0rj   r<  r¢  rn   (&  rÎ  r„  r  r¸  r,  r@  r  rø   r\  Úloggingr)  rè  r~  rg  rã  Úcollectionsr   r   Úcollections.abcr   r   r   r   Ú
contextlibr	   r
   r   Úenumr   r   r   r   r   r   r   rÆ   rw   Útorch.export.exported_programÚexportr�   r·  Útorch._export.non_strict_utilsr   Útorch._export.verifierr   Útorch._subclasses.fake_tensorr   r   Útorch.fx._symbolic_tracer   Útorch.fx.experimentalr   Útorch.fx.tracebackr   Útorch.utilsr   r'  Útorch.utils._pytreer   r   Útorch.utils._sympy.numbersr   Útorch.utils._sympy.symbolr   r   Útorch.utils._sympy.value_rangesr    Útorch.utils._tracebackr!   Útorch.utils._tritonr"   rC  r$   rS  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   rS   rT   rU   rV   rW   rX   rY   rZ   Úunionr[   Ú__all__Ú	getLoggerre   r  r*  rb   r  rs   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Ú
FLOAT8E5M2Úfloat8_e4m3fnuzÚFLOAT8E4M3FNUZÚfloat8_e5m2fnuzÚFLOAT8E5M2FNUZrë   r½   Ú
sparse_cooÚ	SparseCooÚ
sparse_csrÚ	SparseCsrÚ
sparse_cscÚ	SparseCscÚ
sparse_bsrÚ	SparseBsrÚ
sparse_bscÚ	SparseBscÚ_mkldnnÚstridedÚStridedrî   rm  Úcontiguous_formatÚContiguousFormatÚchannels_lastÚChannelsLastÚchannels_last_3dÚChannelsLast3dÚpreserve_formatÚPreserveFormatrÊ  rl  Ú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_Úor_ÚlshiftÚrshiftrê  Úanyr²   r   rˆ   r‹   r¦   r§   r³   r´   rº   rç   r¾   rÁ   rÃ  rË   r×   rÝ   rä   r³  rï   rð   r†   r  r…   rý   r  r3  r!  r+  r/  rÓ   r4  r9  r?  rA  r£   rN  rc  r¿  r˜  r]   r^   r_   r`   ÚJSONEncoderrû   rú   rÞ  r\   rå  r  rý  rR  rF  r�   rˆ  rw  r‹  rK  r<  r¢  rd   rj   rk   Ú<module>rù     s�	  ðä Û Û Û Û Û Û 	Û Û Û Û Û Û 	Û Û ß /ß BÓ BÝ %ß (Ý ß ?× ?ã ã ß *Ð *Ý QÝ 0ß DÝ ;Ý 1Ý )Ý )ß >Ý -ß 6Ý 7Ý 4Ý *å 0Ý ÷5÷ 5÷ 5÷ 5÷ 5÷ 5÷ 5÷ 5÷ 5÷ 5÷ 5÷ 5÷ 5ó 5õl ò€ð ×Ó˜Ó!€ô	�\ô 	ð.�D˜˜d˜‘Oô .ð ØØØ	‡L�LØ	Ø	‡N�NØØ	‡M�MØ×Ñðñ	€ð Ð à€ðØ	‡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×,Ò,ð!ð" 
×Ò˜:×4Ò4ð#ð$ 
×Ò˜:×4Ò4ñ%Ð ñ, )Ð)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Ø‡L‚LØ‡O‚OØ‡O‚Oð7€ñ> Ñ@±xÓ@×@Ñ@Ù
ÐKÓ
LÐLð ÷ð ó ðð ÷ð ó ðô#ˆdô #ð24˜&ð 4 U§\¢\ô 4ð@˜H VÑ,ð @°°s¸C°x±ô @ðF ¨Ñ 0ð F°U¸3À¸8±_ô Fð) 
ð )¨u¯{ª{ô )ð vð °#ô ð(�E˜%Ÿ,™,¨¯©°u·~±~ÀuÇzÂzÐQÑRô (ð
˜˜s E§L¡LÐ0Ñ1ð 
°fô 
ð0
˜5 ¨¯©Ð!6Ñ7ð 
¸Hô 
ð0	
˜%  e§m¡mÐ 3Ñ4ð 	
¸ô 	
ð˜UŸ\š\ð ¨jô ð >BÐ �xÐ 9Ñ:Ó AðG Zô GðÙ!ðØ15ðàõð" 5Lñ/Ø�s‰mð/Ø.1ð/á
ö/ð.Ø�d™3 ˜8‘n e¨C°¨H¡o±uÐ<Ñ=õð4?˜5Ÿ:š:ð ?©sð ?°xÀ±}õ ?ð6
˜8 C™=ð 
°e·j²jõ 
ð6�u—|’|ð 6¨tõ 6ð	Ø˜EŸLšL¨+Ð5Ñ6ð	à	‰#ˆÐ
Ñõ	óAð ÷	Rð 	Ró ñ	RôC‰Dõ CóðV¨E¯HªH¯M©Mõ Vðr ôz
¡eñ z
ó ñz
ðz- ôA
©%ñ A
ó ñA
ðH ôG
©ñ G
ó ñG
ðT& ôT©Eñ Tó ñTôn$�$×"Ò"õ $óð6˜ð ¡õ ð /3Ø2ñØ×(Ñ(ðà˜D¡ c ™NÑ+ðð ðð ö	ó0ó0ðf˜Sð ±%ð ¸Cõ ð 8<ðð  %ò	Ø ðà$ T©#¨s¨(¡^Ñ4ðð
 ×Ñ÷ð,@à
ˆ5�$‘s™C�x‘.Ð Ñ!õ@ðH
 :>ñnØðnØ$,©S±©XÑ$6ðnàön÷bVò Vð,QÙ�#‰YðQáÑ,Ñ-õQó21ð DFÑ ˜™d 3™i©Ñ.>Ñ)?Ð?Ñ@Ó EØ?AÑ ˜4¡¡TÑ*:Ñ%;Ð ;Ñ<Ô Arj   