§
    Þ˜ºh?Þ  ã                   ót  — U d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlmZmZmZmZmZ d dlZd dlmc mZ d dlmZ d dlmZmZmZmZmZ d dlmZ d dlm Z  d dl!m"Z" dd	l#m$Z$ dd
l%m&Z&m'Z'm(Z( ddl)m*Z*m+Z+ ddl,m-Z- ddl.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZC ddlDmEZEmFZF  eF¦   «         rd dlGmHZH  e$jI        eJ¦  «        ZKejL         M                    dd¦  «         N                    ¦   «         eEv ZO	 d|dePe*         deeeQeReQ         f                  deReQ         fd„ZSg d¢ZTddgZUg ZVeTD ]HZW eXeWeY¦  «        reV Z                     eSd}i eW¤Ž¦  «         Œ*eV Z                     eSeW¦  «        ¦  «         ŒIg d¢Z[ e\ e] e^eVe[z   ¦  «        ¦  «        ¦  «        Z_da`d„ Za	 d~d„Zbd„ Zcd „ Zdd!„ Zed"„ Zfd#„ Zgdd$„Zhd%„ Zidd&œd'„Zjd(„ Zkd)„ Zld€dd&œd*„Zmd€dd&œd+„Znddd,œd-„Zodd&œd.„Zpd/„ Zqdd&œd0„Zrdd&œd1„Zsdddd2œd3„Ztdddd2œd4„Zud5„ Zvd6„ Zwddd7œd8„Zxdd&œd9„Zyd:„ Zzddd;œd<„Z{d=„ Z|d|d>„Z}d?„ Z~d@„ ZdA„ Z€dB„ Z�d|dC„Z‚d|dD„ZƒdE„ Z„dF„ Z…dG„ Z†d�dI„Z‡	 d‚dK„ZˆdL„ Z‰dM„ ZŠdN„ Z‹dO„ ZŒi ej        j�        ea“ej        jŽ        j�        eb“ej        j�        ec“ej        j‘        ed“ej        j’        ee“ej“        ef“ej        jŽ        j“        eh“ej        j”        eg“ej•        ei“ej–        ej“ej—        ek“ej˜        el“ej™        em“ejš        en“ej›        eo“ejœ        ep“ej�        jœ        eq“i ejž        er“ejŸ        es“ej         et“ej�        j         eu“ej¡        ev“ej�        j¢        ew“ej£        ex“ej¤        e}“ej¥        e~“ej�        j¥        e“ej¦        ey“ej�        j¦        ez“ej§        e{“ej�        j§        e|“ej        j¨        e€“ej        j©        e�“ejª        e‚“¥ej�        jª        eƒej«        e„ej�        j«        e…ej¬        e†ej        jŽ        j­        e‡ej        j®        e‰ej        j¯        eŠej        j°        e‹ej±        eŒi	¥Z²eYeef         e³dP<   eˆe²ej        jŽ        j´        <    G dQ„ dRe¦  «        Zµ G dS„ dTeµ¦  «        Z¶ G dU„ dVe¶¦  «        Z· G dW„ dXeµ¦  «        Z¸	 d|dYedZeed[         ed\         ed]         f         d^eeegef                  defd_„Z¹ G d`„ daeP¦  «        Zºdbede\eef         fdc„Z»dd„ Z¼deePe&         deege¸f         fdf„Z½ eºdge&fi  e½e&¦  «        ¬h¦  «        Z¾ eºdie'fi  e½e'¦  «        ¬h¦  «        Z¿ eºdje(fi  e½e(¦  «        ¬h¦  «        ZÀdƒdmeÁdneÁdoeeReÁ                  fdp„ZÂ G dq„ dre¦  «        ZÃdsejÄ        dteReQ         fdu„ZÅd„dw„ZÆd„dx„ZÇddeÃfdsdvdteeReQ                  dyeÈdzePeÃ         def
d{„ZÉdS )…é    N)ÚAnyÚCallableÚLiteralÚOptionalÚUnion)Únn)ÚGraphÚGraphModuleÚNodeÚProxyÚTracer)Úcompatibility)Úis_fx_tracing©ÚParameterProxyé   )Úlogging)ÚCacheÚDynamicCacheÚStaticCache)ÚPretrainedConfigÚPreTrainedModel)Ú
get_values)Ú,MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING_NAMESÚ MODEL_FOR_BACKBONE_MAPPING_NAMESÚ!MODEL_FOR_CAUSAL_LM_MAPPING_NAMESÚMODEL_FOR_CTC_MAPPING_NAMESÚ3MODEL_FOR_DOCUMENT_QUESTION_ANSWERING_MAPPING_NAMESÚ,MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING_NAMESÚMODEL_FOR_IMAGE_MAPPING_NAMESÚ-MODEL_FOR_MASKED_IMAGE_MODELING_MAPPING_NAMESÚ!MODEL_FOR_MASKED_LM_MAPPING_NAMESÚ'MODEL_FOR_MULTIPLE_CHOICE_MAPPING_NAMESÚ0MODEL_FOR_NEXT_SENTENCE_PREDICTION_MAPPING_NAMESÚ#MODEL_FOR_PRETRAINING_MAPPING_NAMESÚ*MODEL_FOR_QUESTION_ANSWERING_MAPPING_NAMESÚ-MODEL_FOR_SEMANTIC_SEGMENTATION_MAPPING_NAMESÚ,MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING_NAMESÚ/MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING_NAMESÚ(MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING_NAMESÚ,MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING_NAMESÚ,MODEL_FOR_VIDEO_CLASSIFICATION_MAPPING_NAMESÚ6MODEL_FOR_ZERO_SHOT_IMAGE_CLASSIFICATION_MAPPING_NAMESÚMODEL_MAPPING_NAMESé   )ÚENV_VARS_TRUE_VALUESÚis_peft_available)Ú	PeftModelÚFX_DEBUG_MODEÚ Ú
model_nameÚsupported_tasksÚreturnc                 ó  — i dt           “dt          “dt          “dt          “dt          “dt
          “dt          “dt          “d	t          “d
t          “dt          “dt          “dt          “dt          “dt          “dt          “dt           “t"          t$          t&          dœ¥}|€|                     ¦   «         }t+          |t,          ¦  «        r|g}g }|D ]5}||                              | d ¦  «        }|r|                     |¦  «         Œ6|S )NÚdefaultÚpretrainingznext-sentence-predictionz	masked-lmz	causal-lmz
seq2seq-lmzspeech-seq2seqzmultiple-choicezdocument-question-answeringzquestion-answeringzsequence-classificationztoken-classificationzmasked-image-modelingzimage-classificationzzero-shot-image-classificationÚctczaudio-classification)zsemantic-segmentationÚbackbonezimage-feature-extraction)r.   r%   r$   r"   r   r(   r*   r#   r   r&   r)   r+   r!   r   r-   r   r   r'   r   r    ÚkeysÚ
isinstanceÚstrÚgetÚappend)r5   r6   Útask_mappingÚmodel_class_namesÚtaskÚ
class_names         ú]/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/transformers/utils/fx.pyÚ%_generate_supported_model_class_namesrG   M   s‚  € ðØÕ&ðàÕ:ðð 	#Õ$Tðð 	Õ6ð	ð
 	Õ6ðð 	ÕBðð 	ÕBðð 	ÕBðð 	&Õ'Zðð 	ÕHðð 	"Õ#Rðð 	Õ Lðð 	 Õ!Nðð 	Õ Lðð 	)Õ*`ðð  	Õ*ð!ð" 	Õ Lð#õ$ "OÝ4Ý$Að)ð ð €Lð. ÐØ&×+Ò+Ñ-Ô-ˆÝ�/¥3Ñ'Ô'ð ,Ø*Ð+ˆàÐØð 1ð 1ˆØ! $Ô'×+Ò+¨J¸Ñ=Ô=ˆ
Øð 	1Ø×$Ò$ ZÑ0Ô0Ð0øàÐó    )8ÚaltclipÚalbertÚbartÚbertÚbitnetÚ
blenderbotzblenderbot-smallÚbloomÚclipÚconvnextÚdebertaz
deberta-v2Údinov2Údinov3_convnextÚ
dinov3_vitÚ
distilbertz
donut-swinÚelectraÚgpt2Úgpt_neoÚgptjÚhieraÚhubertÚijepaÚlayoutlmÚllamaÚcohereÚlxmertÚm2m_100ÚmarianÚmbartúmegatron-bertÚmistralÚmixtralÚ
mobilebertÚmt5ÚnezhaÚoptÚpegasusÚplbartÚqwen2Ú	qwen2_moeÚqwen3Ú	qwen3_moeÚresnetÚrobertaÚ	segformerÚspeech_to_textÚspeech_to_text_2ÚswinÚt5ÚtrocrÚvitÚvjepa2ÚxglmÚwav2vec2r_   rk   )ÚCLIPTextModelÚCLIPTextModelWithProjectionÚCLIPVisionModelÚCLIPVisionModelWithProjectionÚAltCLIPTextModelÚAltCLIPVisionModelÚGitVisionModelÚGPT2DoubleHeadsModelÚSpeech2Text2DecoderÚTrOCRDecoderÚPeftModelForCausalLMÚPeftModelForSeq2SeqLMÚVJEPA2ForVideoClassificationc                 ón   — t          j        g |j        ¢| j        j        d         ‘R d| j        j        dœŽS ©NéÿÿÿÿÚmeta)ÚdeviceÚdtype)ÚtorchÚemptyÚshapeÚweightr�   ©ÚselfÚinputs     rF   Útorch_nn_embeddingr˜   Ñ   s:   € ÝŒ;Ðc˜œÐc T¤[Ô%6°rÔ%:ÐcÐcÀ6ÐQUÔQ\ÔQbÐcÐcÐcÐcrH   ç       @Fc                 óZ   — t          j        g | j        ¢|j        d         ‘R d|j        dœŽS rŒ   )r‘   r’   r“   r�   )r—   r”   Úpadding_idxÚmax_normÚ	norm_typeÚscale_grad_by_freqÚsparses          rF   Útorch_nn_functional_embeddingr    Õ   s4   € õ Œ;ÐY˜œÐY V¤\°"Ô%5ÐYÐY¸fÈFÌLÐYÐYÐYÐYrH   c                 ó   — |S ©N© r•   s     rF   Útorch_nn_layernormr¤   Û   ó   € Ø€LrH   c                 ó   — |S r¢   r£   r•   s     rF   Útorch_nn_groupnormr§   ß   r¥   rH   c                 óZ   — t          j        |j        d d…         | j        fz   d¬¦  «        S )Nr�   rŽ   ©r�   )r‘   r’   r“   Úout_featuresr•   s     rF   Útorch_nn_linearr«   ã   s-   € ÝŒ;�u”{ 3 B 3Ô'¨4Ô+<Ð*>Ñ>ÀvÐNÑNÔNÐNrH   c                 ó   — | S r¢   r£   ©Úxs    rF   Ú
torch_relur¯   ç   ó   € Ø€HrH   c                 ó   — |S r¢   r£   )r–   r®   s     rF   Útorch_nn_relur²   ë   r°   rH   c                 ó(   — |st          d¦  «        ‚| S )Nz>Don't support in-place functional.relu for MetaTensor analysis©Ú
ValueError)r®   Úinplaces     rF   Útorch_nn_functional_relur·   ï   s   € Øð [ÝÐYÑZÔZÐZØ€HrH   c                 óŠ   — |                       d¬¦  «        |                      d¬¦  «        z   |                      d¬¦  «        z   S ©NrŽ   r©   ©Úto)Ú	conditionr®   Úys      rF   Útorch_wherer¾   õ   s>   € ð �<Š<˜vˆ<Ñ&Ô&¨¯ª°V¨Ñ)<Ô)<Ñ<¸q¿tºtÈ6¸tÑ?RÔ?RÑRÐRrH   ©Úoutc                ó(   — |�t          d¦  «        ‚| S )Nz2Don't support in-place abs for MetaTensor analysisr´   )r—   rÀ   s     rF   Ú	torch_absrÂ   û   s   € Ø
€ÝÐMÑNÔNÐNØ€LrH   c                  óÒ  — t          | ¦  «        }d}|dk    rd}| d         }n|dk    r| \  }}n| \  }}}t          |t          ¦  «        rt          |¦  «        }t          |t          ¦  «        rt          |¦  «        }t          |t          ¦  «        rt          |¦  «        }|                     d|¦  «        }|                     d¦  «        }t          j        ||z
  |z  |d¬¦  «        S )Nr/   r   r   Ústepr�   rŽ   ©r�   r�   )Úlenr>   ÚfloatÚintr@   r‘   r’   )ÚargsÚkwargsÚnrÄ   ÚstartÚendr�   s          rF   Útorch_arangerÎ     sæ   € ÝˆD‰	Œ	€AØ€DØˆA‚v€vØˆØ�1ŒgˆˆØ	
ˆaŠˆØ‰
ˆˆsˆsàÑˆˆs�DÝ�%�ÑÔð Ý�E‘
”
ˆÝ�#•uÑÔð Ý�C‘”ˆÝ�$�ÑÔð Ý�4‰yŒyˆØ�:Š:�f˜dÑ#Ô#€DØ�JŠJ�wÑÔ€EÝŒ;˜˜e™¨Ñ,°EÀ&ÐIÑIÔIÐIrH   c                  óÐ   — t          | ¦  «        } t          | ¦  «        dk    rd| d<   nd|d<   t          |¦  «        }|                     dd ¦  «         t	          j        | i |¤ddi¤ŽS )Nr/   Ú
fill_valuer�   rŽ   )ÚlistrÆ   ÚdictÚpopr‘   Úfull)rÉ   rÊ   Úkwargs_without_devices      rF   Ú
torch_fullrÖ     st   € Ý�‰:Œ:€Då
ˆ4�y„y�1‚}€}ØˆˆQ‰ˆà ˆˆ|ÑÝ  ™LœLÐØ×Ò˜h¨Ñ-Ô-Ð-ÝŒ:�tÐDÐ4ÐDÐD¸VÐDÐDÐDÐDrH   c                ó>  ‡— ‰€|€dŠ‰€|�|Š‰dk     r| d                               ¦   «         ‰z   Šd„ | D ¦   «         }t          |d         ¦  «        }t          ˆfd„|D ¦   «         ¦  «        }|d ‰…         |gz   |‰dz   d …         z   }t          j        |d¬¦  «        S )Nr   c                 ó   — g | ]	}|j         ‘Œ
S r£   )r“   )Ú.0Úts     rF   ú
<listcomp>ztorch_cat.<locals>.<listcomp>)  s   € Ð'Ð'Ð'˜!ˆaŒgÐ'Ð'Ð'rH   c              3   ó(   •K  — | ]}|‰         V — Œd S r¢   r£   )rÙ   r“   Údims     €rF   ú	<genexpr>ztorch_cat.<locals>.<genexpr>+  s'   øè è € Ð:Ð:¨%˜5 œ:Ð:Ð:Ð:Ð:Ð:Ð:rH   r/   rŽ   r©   )rÝ   rÑ   Úsumr‘   r’   )ÚtensorsrÝ   ÚaxisrÀ   Úshapesr“   Úconcatenated_dimÚfinal_shapes    `      rF   Ú	torch_catrå   "  sÃ   ø€ Ø
€{�t�|ØˆØ
€{�tÐ'ØˆØ
ˆQ‚w€wØ�aŒj�nŠnÑÔ Ñ$ˆØ'Ð'˜wÐ'Ñ'Ô'€FÝ�˜”‰OŒO€EÝÐ:Ð:Ð:Ð:°6Ð:Ñ:Ô:Ñ:Ô:ÐØ˜˜˜”+Ð!1Ð 2Ñ2°U¸3À¹7¸9¸9Ô5EÑE€KÝŒ;�{¨6Ð2Ñ2Ô2Ð2rH   c                ó  — |€|€d}|€|�|}|dk     r | d                               ¦   «         dz   |z   }t          | d         j        ¦  «        }|                     |t	          | ¦  «        ¦  «         t          j        |d¬¦  «        S ©Nr   r/   rŽ   r©   )rÝ   rÑ   r“   ÚinsertrÆ   r‘   r’   )rà   rÝ   rá   rÀ   r“   s        rF   Útorch_stackré   0  sˆ   € Ø
€{�t�|ØˆØ
€{�tÐ'ØˆØ
ˆQ‚w€wØ�aŒj�nŠnÑÔ Ñ" SÑ(ˆÝ�˜”Ô!Ñ"Ô"€EØ	‡L‚L�•c˜'‘l”lÑ#Ô#Ð#ÝŒ;�u VÐ,Ñ,Ô,Ð,rH   )ÚalpharÀ   c                óœ  — t          | t          j        ¦  «        st          j        |d¬¦  «        S t          |t          j        ¦  «        st          j        | d¬¦  «        S t	          |                      ¦   «         |                     ¦   «         ¦  «        }t          | j        ¦  «        dg||                      ¦   «         z
  z  z   }t          |j        ¦  «        dg||                     ¦   «         z
  z  z   }g }t          |¦  «        D ]1}| 	                    t	          ||         ||         ¦  «        ¦  «         Œ2t          j
        |d¬¦  «        S )NrŽ   r©   r/   )r>   r‘   ÚTensorÚ
empty_likeÚmaxrÝ   rÑ   r“   ÚrangerA   r’   )	r—   Úotherrê   rÀ   Ú
max_lengthÚinput_shapeÚother_shaper“   Úis	            rF   Ú	torch_addrõ   <  s  € Ý�e�Uœ\Ñ*Ô*ð 6ÝÔ ¨fÐ5Ñ5Ô5Ð5Ý�e�Uœ\Ñ*Ô*ð 6ÝÔ ¨fÐ5Ñ5Ô5Ð5Ý�U—Y’Y‘[”[ %§)¢)¡+¤+Ñ.Ô.€JÝ�u”{Ñ#Ô# q c¨Z¸%¿)º)¹+¼+Ñ-EÑ&FÑF€KÝ�u”{Ñ#Ô# q c¨Z¸%¿)º)¹+¼+Ñ-EÑ&FÑF€KØ€EÝ�:ÑÔð :ð :ˆØ�Š•S˜ Qœ¨°Q¬Ñ8Ô8Ñ9Ô9Ð9Ð9ÝŒ;�u VÐ,Ñ,Ô,Ð,rH   c                ó&   — t          | ||¬¦  «        S )Nr¿   )rõ   )r—   rð   rÀ   s      rF   Ú	torch_mulr÷   J  s   € Ý�U˜E sÐ+Ñ+Ô+Ð+rH   c                 ó"   — t          | |¦  «        S r¢   )r÷   )r–   rð   s     rF   Útorch_tensor_mulrù   N  s   € Ý�T˜5Ñ!Ô!Ð!rH   c                ód  — |                       ¦   «         }|                      ¦   «         }d }|dk    r
|dk    rd }�nÎ|dk    r2|dk    r,|                      d¦  «        |                     d¦  «        f}�n–|dk    r|dk    r|                     d¦  «        f}�nr|dk    r|dk    r|                      d¦  «        f}�nNt          |                       ¦   «         |                      ¦   «         ¦  «        }t          | j        ¦  «        }t          |j        ¦  «        }|dk    rdg|z   }|dk    r|                     d¦  «         dg||z
  z  t          | j        ¦  «        z   }dg||z
  z  t          |j        ¦  «        z   }g }t          |¦  «        D ]1}	|                     t          ||	         ||	         ¦  «        ¦  «         Œ2|d         |d<   |d         |d<   |dk    r|                     d¦  «         |dk    r|                     d¦  «         |€t          j	        dd¬¦  «        S t          j
        |d	diŽS )
Nr/   r   r   r�   éþÿÿÿç        rŽ   r©   r�   )rÝ   Úsizerî   rÑ   r“   rA   rï   rÓ   r‘   Útensorr’   )
r—   rð   rÀ   Úd1Úd2r“   rñ   Úshape1Úshape2rô   s
             rF   Útorch_matmulr  R  s  € Ø	�Š‰Œ€BØ	�Š‰Œ€BØ€EØ	ˆQ‚w€w�2˜’7�7Øˆ‰Ø	ˆqŠˆ�R˜1’W�WØ—’˜A‘” §
¢
¨1¡¤Ð.ˆ‰Ø	ˆqŠˆ�R˜1’W�WØ—’˜A‘”Ð ˆ‰Ø	ˆqŠˆ�R˜1’W�WØ—’˜A‘”Ð ˆ‰å˜Ÿš™œ e§i¢i¡k¤kÑ2Ô2ˆ
Ý�e”kÑ"Ô"ˆÝ�e”kÑ"Ô"ˆØ�Š7ˆ7Ø�S˜6‘\ˆFØ�Š7ˆ7Ø�MŠM˜!ÑÔÐØ�˜ b™Ñ)­D°´Ñ,=Ô,=Ñ=ˆØ�˜ b™Ñ)­D°´Ñ,=Ô,=Ñ=ˆØˆÝ�zÑ"Ô"ð 	4ð 	4ˆAØ�LŠL�˜V AœY¨¨q¬	Ñ2Ô2Ñ3Ô3Ð3Ð3Ø˜2”Jˆˆb‰	Ø˜2”Jˆˆb‰	Ø�Š7ˆ7Ø�IŠI�b‰MŒMˆMØ�Š7ˆ7Ø�IŠI�b‰MŒMˆMØ€}ÝŒ|˜C¨Ð/Ñ/Ô/Ð/ÝŒ;˜Ð- fÐ-Ð-Ð-rH   c                ó€   — |�t          d¦  «        ‚| j        \  }}}|j        \  }}}t          j        |||d¬¦  «        S )Nz2Don't support in-place bmm for MetaTensor analysisrŽ   r©   )rµ   r“   r‘   r’   )r—   Úmat2rÀ   Ú
batch_sizerË   ÚmÚ_Úps           rF   Ú	torch_bmmr
  v  sJ   € Ø
€ÝÐMÑNÔNÐNØ”{Ñ€J��1ØŒj�G€A€qˆ!ÝŒ;�z 1 a°Ð7Ñ7Ô7Ð7rH   ©Úbetarê   rÀ   c                óD   — |�t          d¦  «        ‚t          ||¦  «        S )Nz6Don't support in-place baddbmm for MetaTensor analysis)rµ   r
  )r—   Úbatch1Úbatch2r  rê   rÀ   s         rF   Útorch_baddbmmr  ~  s&   € Ø
€ÝÐQÑRÔRÐRÝ�V˜VÑ$Ô$Ð$rH   c                ó,   — t          | |||||¬¦  «        S )Nr  )r  )r–   r  r  r  rê   rÀ   s         rF   Útorch_tensor_baddbmmr  „  s   € Ý˜˜v v°DÀÈ3ÐOÑOÔOÐOrH   c                 ód   — d„ |D ¦   «         }t          j        | g|¢R Ž                      d¦  «        S )Nc              3   óB   K  — | ]}t          j        |d ¬¦  «        V — ŒdS )Úcpur©   N)r‘   rí   )rÙ   Úoperands     rF   rÞ   ztorch_einsum.<locals>.<genexpr>Š  s2   è è € ÐYÐYÀW�Ô)¨'¸%Ð@Ñ@Ô@ÐYÐYÐYÐYÐYÐYrH   rŽ   )r‘   Úeinsumr»   )ÚequationÚoperandsÚconcrete_operandss      rF   Útorch_einsumr  ˆ  s>   € àYÐYÐPXÐYÑYÔYÐÝŒ<˜Ð5Ð#4Ð5Ð5Ð5×8Ò8¸Ñ@Ô@Ð@rH   c                 ó    — t          | j        ¦  «        }t          |¦  «        D ]\  }}||xx         |z  cc<   Œt          j        |d¬¦  «        S r¹   )rÑ   r“   Ú	enumerater‘   r’   )r–   Úsizesr“   rô   r®   s        rF   Útorch_tensor_repeatr  Ž  sX   € Ý�”ÑÔ€EÝ˜%Ñ Ô ð ð ‰ˆˆ1ØˆaˆˆŒ�A‰ˆˆ‰ˆÝŒ;�u VÐ,Ñ,Ô,Ð,rH   )rÝ   Úoutput_sizec                 óä  — t          |¦  «        }|dk    r |�|n|d                              ¦   «         g}n«t          |d         j        ¦  «        }| €!|dk    r	|d         } nt          |¦  «        g}d} |d         }t	          |t
          ¦  «        st          j        |¦  «        dk    r|| xx         t          |¦  «        z  cc<   n|�|n|                     ¦   «         || <   t          j        |ddiŽS )Nr/   r   r   r�   rŽ   )	rÆ   rß   rÑ   r“   r>   rÈ   r‘   Únumelr’   )rÝ   r   rÉ   Únum_argsr“   Úrepeatss         rF   Útorch_repeat_interleaver%  •  sð   € Ý�4‰yŒy€HØ�1‚}€}Ø +Ð 7��¸TÀ!¼W¿[º[¹]¼]ÐKˆˆå�T˜!”W”]Ñ#Ô#ˆØˆ;Ø˜!Š|ˆ|Ø˜1”g��å˜U™œ˜�Ø�Ø�q”'ˆÝ�g�sÑ#Ô#ð 	S¥u¤{°7Ñ';Ô';¸qÒ'@Ð'@Ø�#ˆJˆJŒJ�#˜g™,œ,Ñ&ˆJˆJ‰JˆJà(3Ð(?˜˜ÀWÇ[Â[Á]Ä]ˆE�#‰JÝŒ;˜Ð- fÐ-Ð-Ð-rH   c                óp   — t          | j        ¦  «        }t          |¦  «        ||<   t          j        |ddiŽS ©Nr�   rŽ   )rÑ   r“   rÆ   r‘   r’   )r—   rÝ   ÚindexrÀ   r“   s        rF   Útorch_index_selectr)  ©  s5   € Ý�”ÑÔ€EÝ�U‘”€Eˆ#�JÝŒ;˜Ð- fÐ-Ð-Ð-rH   c                 ó$   — t          | ||¦  «        S r¢   )r)  ©r–   rÝ   r(  s      rF   Útorch_tensor_index_selectr,  ¯  s   € Ý˜d C¨Ñ/Ô/Ð/rH   )Úsparse_gradrÀ   c                ól   — t          | j        ¦  «        }|j        |         ||<   t          j        |ddiŽS r'  )rÑ   r“   r‘   r’   )r—   rÝ   r(  r-  rÀ   r“   s         rF   Útorch_gatherr/  ³  s6   € Ý�”ÑÔ€EØ”˜SÔ!€Eˆ#�JÝŒ;˜Ð- fÐ-Ð-Ð-rH   c                 ó$   — t          | ||¦  «        S r¢   )r/  r+  s      rF   Útorch_tensor_gatherr1  ¹  s   € Ý˜˜c 5Ñ)Ô)Ð)rH   c                 ó   — | S r¢   r£   )r—   ÚshiftsÚdimss      rF   Ú
torch_rollr5  ½  r¥   rH   c                 ó   — | S r¢   r£   )r—   r4  s     rF   Ú
torch_flipr7  Á  r¥   rH   c                 ó   — | S r¢   r£   )r–   r4  s     rF   Útorch_tensor_flipr9  Å  s   € Ø€KrH   c                 óŽ  — |j         d         }d }| j        }|dk    rd}|dk    rt          |j         ¦  «        }|€lt          |j         ¦  «        }t          j        |d|d         z  z   | j        d         | j        d         dz
  z  z
  dz
  | j        d         z  dz   ¦  «        }||d<   | j        |d<   t          j
        |d	¬
¦  «        S )Nr�   Úvalid©r   r   Úsamer   r   r/   rû   rŽ   r©   ©r“   ÚpaddingrÑ   ÚmathÚfloorÚdilationÚkernel_sizeÚstrideÚout_channelsr‘   r’   )r–   r—   Úl_inr“   r?  Úl_outs         rF   Útorch_nn_conv1drH  É  sÝ   € ØŒ;�rŒ?€DØ€EØŒl€GØ�'ÒÐØˆØ�&ÒÐÝ�U”[Ñ!Ô!ˆØ€}Ý�U”[Ñ!Ô!ˆÝ”
Ø�A˜ œ
‘NÑ" T¤]°1Ô%5¸Ô9IÈ!Ô9LÈqÑ9PÑ%QÑQÐTUÑUÐY]ÔYdÐefÔYgÑgÐjkÑkñ
ô 
ˆð ˆˆb‰	ØÔ!€Eˆ"�IÝŒ;�u VÐ,Ñ,Ô,Ð,rH   c                 óF  — |j         dd …         \  }}d }| j        }|dk    rd}|dk    rt          |j         ¦  «        }|€Ãt          |j         ¦  «        }t          j        |d|d         z  z   | j        d         | j        d         dz
  z  z
  dz
  | j        d         z  dz   ¦  «        }t          j        |d|d         z  z   | j        d         | j        d         dz
  z  z
  dz
  | j        d         z  dz   ¦  «        }||g|dd …<   | j        |d<   t          j
        |d	¬
¦  «        S )Nrû   r;  r<  r=  r   r   r/   éýÿÿÿrŽ   r©   r>  )r–   r—   Úh_inÚw_inr“   r?  Úh_outÚw_outs           rF   Útorch_nn_conv2drO  Û  sJ  € Ø”˜R˜S˜SÔ!�J€Dˆ$Ø€EØŒl€GØ�'ÒÐØˆØ�&ÒÐÝ�U”[Ñ!Ô!ˆØ€}Ý�U”[Ñ!Ô!ˆÝ”
Ø�A˜ œ
‘NÑ" T¤]°1Ô%5¸Ô9IÈ!Ô9LÈqÑ9PÑ%QÑQÐTUÑUÐY]ÔYdÐefÔYgÑgÐjkÑkñ
ô 
ˆõ ”
Ø�A˜ œ
‘NÑ" T¤]°1Ô%5¸Ô9IÈ!Ô9LÈqÑ9PÑ%QÑQÐTUÑUÐY]ÔYdÐefÔYgÑgÐjkÑkñ
ô 
ˆð ˜U�^ˆˆbˆcˆc‰
ØÔ!€Eˆ"�IÝŒ;�u VÐ,Ñ,Ô,Ð,rH   c                 ó"  — t          | j        ¦  «        }|�?|dk     r|                      ¦   «         |z   }||         dk    r|                     |¦  «         n%g }|D ]}|dk    rŒ	|                     |¦  «         Œ|}t          j        |d¬¦  «        S rç   )rÑ   r“   rÝ   rÓ   rA   r‘   r’   )r—   rÝ   r“   Ú	new_shapeÚ	dim_values        rF   Útorch_squeezerS  ð  sŸ   € Ý�”ÑÔ€EØ
€Ø�Š7ˆ7Ø—)’)‘+”+ Ñ#ˆCØ�Œ:˜Š?ˆ?Ø�IŠI�c‰NŒNˆNøàˆ	Øð 	(ð 	(ˆIØ˜AŠ~ˆ~ØØ×Ò˜YÑ'Ô'Ð'Ð'ØˆÝŒ;�u VÐ,Ñ,Ô,Ð,rH   c                 ó"   — t          | |¦  «        S r¢   )rS  ©r–   rÝ   s     rF   Útorch_tensor_squeezerV    s   € Ý˜˜sÑ#Ô#Ð#rH   c                 óÂ   — t          | j        ¦  «        }|dk     r|                      ¦   «         dz   |z   }|                     |d¦  «         t	          j        |d¬¦  «        S rç   )rÑ   r“   rÝ   rè   r‘   r’   )r—   rÝ   r“   s      rF   Útorch_unsqueezerX    sY   € Ý�”ÑÔ€EØ
ˆQ‚w€wØ�iŠi‰kŒk˜A‰o Ñ#ˆØ	‡L‚L��aÑÔÐÝŒ;�u VÐ,Ñ,Ô,Ð,rH   c                 ó"   — t          | |¦  «        S r¢   )rX  rU  s     rF   Útorch_tensor_unsqueezerZ    s   € Ý˜4 Ñ%Ô%Ð%rH   c                 óè   — t          j        t          j        | d¬¦  «        fi |¤Ž}t          |t           j        ¦  «        r|                     d¦  «        S t          t          |d„ ¦  «        ¦  «        S )Nr  r©   rŽ   c                 ó,   — |                       d¦  «        S ©NrŽ   rº   r­   s    rF   ú<lambda>z*torch_unique_consecutive.<locals>.<lambda>  s   € ¨1¯4ª4°©<¬<€ rH   )r‘   Úunique_consecutiveÚ
zeros_liker>   rì   r»   ÚtupleÚmap)r—   rÊ   Úoutputs      rF   Útorch_unique_consecutiverd    sl   € ÝÔ%¥eÔ&6°uÀUÐ&KÑ&KÔ&KÐVÐVÈvÐVÐV€FÝ�&�%œ,Ñ'Ô'ð :Ø�yŠy˜Ñ Ô Ð å•S˜Ð!7Ð!7Ñ8Ô8Ñ9Ô9Ð9rH   r�   c                 óˆ   — |dk     rt          d¦  «        ‚t          | j        ¦  «        |gz   }t          j        |d¬¦  «        S )Nr   zEDon't support automatic num_classes inference for MetaTensor analysisrŽ   r©   )rµ   rÑ   r“   r‘   r’   )rþ   Únum_classesr“   s      rF   Útorch_nn_functional_one_hotrg    sE   € Ø�Q‚€ÝÐ`ÑaÔaÐaÝ�”ÑÔ + Ñ.€EÝŒ;�u VÐ,Ñ,Ô,Ð,rH   rü   c                 óŠ   — | j         d         }|j         d         }t          j        g | j         d d…         ¢|‘|‘R d¬¦  «        S )Nrû   r�   rŽ   r©   )r“   r‘   r’   )	ÚqueryÚkeyÚvalueÚ	attn_maskÚ	dropout_pÚ	is_causalÚscaleÚtarget_lengthÚhead_dims	            rF   Ú0torch_nn_functional_scaled_dot_product_attentionrr     sM   € ð ”K ”O€MØŒ{˜2Œ€HÝŒ;ÐC˜œ S b SÔ)ÐC¨=ÐC¸(ÐCÐCÈFÐSÑSÔSÐSrH   c                 óX   — | j         dk    r|j        }nd}t          j        |d¬¦  «        S ©NÚnone)r/   rŽ   r©   ©Ú	reductionr“   r‘   r’   ©r–   r—   Útargetr“   s       rF   Útorch_nn_mselossrz  (  ó2   € Ø„~˜ÒÐØ”ˆˆàˆÝŒ;�u VÐ,Ñ,Ô,Ð,rH   c                 óX   — | j         dk    r|j        }nd}t          j        |d¬¦  «        S rt  rv  rx  s       rF   Útorch_nn_crossentropylossr}  0  r{  rH   c                 óX   — | j         dk    r|j        }nd}t          j        |d¬¦  «        S rt  rv  rx  s       rF   Útorch_nn_bcewithlogitslossr  8  r{  rH   c                 óZ  — d„ }t          | t          j        ¦  «        rzt          |t          ¦  «        rt          t	          ||¦  «        ¦  «        }n ||¦  «        }t          j        t          j        | d¬¦  «        |¦  «                             d¦  «        S t          j        | |¦  «        S )Nc                 ó  — t          | t          j        ¦  «        rlt          j        | d¬¦  «        }|j        t          j        t          j        t          j        t          j        fv r| 	                    t          j
        ¦  «        }|S | S )Nr  r©   )r>   r‘   rì   Ú	ones_liker�   Úfloat16Úfloat32Úfloat64Úint32r»   Úint64)rÚ   Úconcretes     rF   Úto_concretez%operator_getitem.<locals>.to_concreteA  se   € Ý�a�œÑ&Ô&ð 	Ý” q°Ð7Ñ7Ô7ˆHØŒ~¥%¤-µ´ÅÄÍuÌ{Ð![Ð[Ð[Ø#Ÿ;š;¥u¤{Ñ3Ô3�ØˆOØˆrH   r  r©   rŽ   )	r>   r‘   rì   ra  rb  ÚoperatorÚgetitemrí   r»   )ÚaÚbr‰  s      rF   Úoperator_getitemrŽ  @  s¤   € ðð ð õ �!•U”\Ñ"Ô"ð Qå�a�ÑÔð 	Ý•c˜+ qÑ)Ô)Ñ*Ô*ˆAˆAà�˜A‘”ˆAÝÔ¥Ô 0°¸5Ð AÑ AÔ AÀ1ÑEÔE×HÒHÈÑPÔPÐPÝÔ˜A˜qÑ!Ô!Ð!rH   Ú_MANUAL_META_OVERRIDESc                   ót   ‡ — e Zd ZdZd„ Zed„ ¦   «         Zed„ ¦   «         Zˆ fd„Zˆ fd„Z	d„ Z
d„ Zˆ fd	„Zˆ xZS )
ÚHFProxyzI
    Proxy that uses metadata to handle data-dependent control-flow.
    c                 ó   — || _         d S r¢   )Ú	_metadata)r–   Úmetadatas     rF   Úinstall_metadatazHFProxy.install_metadata‹  s   € Ø!ˆŒˆˆrH   c                 ó>   — | j                              dd| fi ¦  «        S )NÚcall_methodrý   )ÚtracerÚcreate_proxy©r–   s    rF   r“   zHFProxy.shapeŽ  s    € àŒ{×'Ò'¨°vÀ¸wÈÑKÔKÐKrH   c                 ó"   — t          | d¦  «        S )Nr�   )ÚMetaDeviceAttributerš  s    rF   r�   zHFProxy.device’  s   € õ # 4¨Ñ2Ô2Ð2rH   c                 óš   •— t          | d¦  «        r| j        �t          | j        ¦  «        S t          ¦   «                              ¦   «         S ©Nr“  )Úhasattrr“  rÆ   ÚsuperÚ__len__©r–   Ú	__class__s    €rF   r¡  zHFProxy.__len__˜  s@   ø€ Ý�4˜Ñ%Ô%ð 	'¨$¬.Ð*DÝ�t”~Ñ&Ô&Ð&Ý‰wŒw�ŠÑ Ô Ð rH   c                 ó€   •— t          | d¦  «        r| j        �| j        S t          ¦   «                              ¦   «         S rž  )rŸ  r“  r   Ú__bool__r¢  s    €rF   r¥  zHFProxy.__bool__�  s:   ø€ Ý�4˜Ñ%Ô%ð 	"¨$¬.Ð*DØ”>Ð!Ý‰wŒw×ÒÑ!Ô!Ð!rH   c                 óX   — |dk    r|                       |¦  «        S t          | |¦  «        S rž  )Ú__getattribute__ÚHFAttribute)r–   Úks     rF   Ú__getattr__zHFProxy.__getattr__¢  s3   € Ø�ÒÐØ×(Ò(¨Ñ+Ô+Ð+õ ˜4 Ñ#Ô#Ð#rH   c                 óV   — | j                              dt          j        | ||fi ¦  «        S ©NÚcall_function)r˜  r™  rŠ  Úsetitem)r–   ÚindicesÚvaluess      rF   Ú__setitem__zHFProxy.__setitem__©  s+   € ØŒ{×'Ò'¨½Ô9IÈDÐRYÐ[aÐKbÐdfÑgÔgÐgrH   c                 ó†   •— t          | d¦  «        r| j        �	|| j        v S t          ¦   «                              |¦  «        S rž  )rŸ  r“  r   Ú__contains__)r–   rj  r£  s     €rF   r³  zHFProxy.__contains__¬  sA   ø€ Ý�4˜Ñ%Ô%ð 	)¨$¬.Ð*DØ˜$œ.Ð(Ð(Ý‰wŒw×#Ò# CÑ(Ô(Ð(rH   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r•  Úpropertyr“   r�   r¡  r¥  rª  r±  r³  Ú__classcell__©r£  s   @rF   r‘  r‘  †  sÝ   ø€ € € € € ðð ð"ð "ð "ð ðLð Lñ „XðLð ð3ð 3ñ „Xð3ð
!ð !ð !ð !ð !ð
"ð "ð "ð "ð "ð
$ð $ð $ðhð hð hð)ð )ð )ð )ð )ð )ð )ð )ð )rH   r‘  c                   ó6   — e Zd Zdefd„Zed„ ¦   «         Zd„ ZdS )r¨  Úattrc                 óÐ   — || _         || _        |j        | _        d | _        t	          | j         d¦  «        r/|                      t          | j         j        |¦  «        ¦  «         d S d S rž  )Úrootr¼  r˜  Ú_noderŸ  r•  Úgetattrr“  )r–   r¾  r¼  s      rF   Ú__init__zHFAttribute.__init__³  sj   € ØˆŒ	ØˆŒ	Ø”kˆŒØˆŒ
å�4”9˜kÑ*Ô*ð 	FØ×!Ò!¥'¨$¬)Ô*=¸tÑ"DÔ"DÑEÔEÐEÐEÐEð	Fð 	FrH   c                 ó˜   — | j         €=| j                             dt          j        | j        | j        fi ¦  «        j        | _         | j         S r¬  )r¿  r˜  r™  ÚbuiltinsrÀ  r¾  r¼  Únoderš  s    rF   rÄ  zHFAttribute.node¼  sE   € ð Œ:ÐØœ×1Ò1°/Å8ÔCSÐVZÔV_ÐaeÔajÐUkÐmoÑpÔpÔuˆDŒJØŒzÐrH   c                 óX   — | j                              d| j        | j        f|z   |¦  «        S )Nr—  )r˜  r™  r¼  r¾  )r–   rÉ   rÊ   s      rF   Ú__call__zHFAttribute.__call__Ä  s+   € ØŒ{×'Ò'¨°t´yÀ4Ä9À,ÐQUÑBUÐW]Ñ^Ô^Ð^rH   N)r´  rµ  r¶  r?   rÁ  r¸  rÄ  rÆ  r£   rH   rF   r¨  r¨  ²  sc   € € € € € ðF 3ð Fð Fð Fð Fð ðð ñ „Xðð_ð _ð _ð _ð _rH   r¨  c                   ó   — e Zd ZdS )rœ  N)r´  rµ  r¶  r£   rH   rF   rœ  rœ  È  s   € € € € € Ø€DrH   rœ  c                   ó@   — e Zd ZdZdee         fd„Zed„ ¦   «         ZdS )ÚHFCacheProxyzP
    Proxy that represents an instance of `transformers.cache_utils.Cache`.
    Úorig_cache_clsc                 ó   — || _         d S r¢   )Ú_orig_cache_cls)r–   rÊ  s     rF   Úinstall_orig_cache_clsz#HFCacheProxy.install_orig_cache_clsÑ  s   € Ø-ˆÔÐÐrH   c                 ón   — t          | d¦  «        st          d¦  «        ‚| j        j        | j                 S )NrÌ  z?The original Cache class must be installed to the HFCacheProxy.)rŸ  ÚRuntimeErrorr˜  Ú_CLASSES_TO_PATCHrÌ  rš  s    rF   r£  zHFCacheProxy.__class__Ô  s8   € å�tÐ.Ñ/Ô/ð 	bÝÐ`ÑaÔaÐaØŒ{Ô,¨TÔ-AÔBÐBrH   N)	r´  rµ  r¶  r·  Útyper   rÍ  r¸  r£  r£   rH   rF   rÉ  rÉ  Ì  s]   € € € € € ðð ð.°T¸%´[ð .ð .ð .ð .ð ðCð Cñ „XðCð Cð CrH   rÉ  ÚfunctionÚop_typer­  r—  Úget_attrÚproxy_factory_fnc                 óN   ‡ ‡‡— t          j        ‰ ¦  «        ˆ ˆˆfd„¦   «         }|S )Nc                  ó¸  •‡— t          ¦   «         s ‰| i |¤ŽS g Šˆfd„}t          j        j                             | |¦  «         t          j        j                             ||¦  «         t          ‰¦  «        dk    rW‰d         j        }‰dk    r‰}n'‰dk    s‰dk    r‰j        }nt          d‰› d�¦  «        ‚| 	                    ‰|| |‰¬¦  «        S  ‰| i |¤ŽS )	Nc                 ó`   •— t          | t          ¦  «        r‰                     | ¦  «         d S d S r¢   )r>   r   rA   )rŒ  Úfound_proxiess    €rF   Úcheck_proxyz4create_wrapper.<locals>.wrapper.<locals>.check_proxyç  s9   ø€ Ý˜!�UÑ#Ô#ð (Ø×$Ò$ QÑ'Ô'Ð'Ð'Ð'ð(ð (rH   r   r­  r—  rÔ  zop_type z not supported.©rÕ  )
r   r‘   ÚfxrÄ  Úmap_aggregaterÆ   r˜  r´  rµ   r™  )	rÉ   rÊ   rÚ  r˜  ry  rÙ  rÒ  rÓ  rÕ  s	        @€€€rF   Úwrapperzcreate_wrapper.<locals>.wrapperà  s  øø€ å‰Œð 	-Ø�8˜TÐ, VÐ,Ð,Ð,àˆð	(ð 	(ð 	(ð 	(ð 	(õ 	ŒŒ×#Ò# D¨+Ñ6Ô6Ð6ÝŒŒ×#Ò# F¨KÑ8Ô8Ð8åˆ}ÑÔ Ò!Ð!Ø" 1Ô%Ô,ˆFØ˜/Ò)Ð)Ø!��Ø˜MÒ)Ð)¨W¸
Ò-BÐ-BØ!Ô*��å Ð!D¨GÐ!DÐ!DÐ!DÑEÔEÐEØ×&Ò& w°¸¸fÐWgÐ&ÑhÔhÐhà�8˜TÐ, VÐ,Ð,Ð,rH   )Ú	functoolsÚwraps)rÒ  rÓ  rÕ  rÞ  s   ``` rF   Úcreate_wrapperrá  Û  sF   øøø€ õ
 „_�XÑÔð-ð -ð -ð -ð -ð -ñ Ôð-ð2 €NrH   c                   óv   ‡ — e Zd ZdZ	 d	dedeedf         deeef         de	e
egef                  fˆ fd„Zˆ xZS )
ÚHFProxyableClassMetazW
    Metaclass that creates a class with its main methods wrapped to be proxyable.
    NÚnameÚbases.ÚattrsrÕ  c           
      ó„  •— t          ¦   «                              | |||¦  «        } t          | ¦  «        D ]Š}t          | |d ¦  «        }|€Œ|dk    rd}nH|                     d¦  «        rd }n0t          j        |¦  «        rd}nt          j        |¦  «        rd}nd }|�!t          | |t          |||¬¦  «        ¦  «         Œ‹| S )NrÁ  r­  Ú__r—  rÛ  )
r   Ú__new__ÚdirrÀ  Ú
startswithÚinspectÚismethodÚ
isfunctionÚsetattrrá  )	Úclsrä  rå  ræ  rÕ  Ú	attr_namer¼  rÓ  r£  s	           €rF   ré  zHFProxyableClassMeta.__new__  sæ   ø€ õ ‰gŒg�oŠo˜c 4¨°Ñ6Ô6ˆÝ˜S™œð 	jð 	jˆIÝ˜3 	¨4Ñ0Ô0ˆDØˆ|ØØ˜JÒ&Ð&Ø)��Ø×%Ò% dÑ+Ô+ð Ø��ÝÔ! $Ñ'Ô'ð Ø)��ÝÔ# DÑ)Ô)ð Ø'��à�ØÐ"Ý˜˜Y­°t¸WÐWgÐ(hÑ(hÔ(hÑiÔiÐiøØˆ
rH   r¢   )r´  rµ  r¶  r·  r?   ra  rÑ  rÒ   r   r   r   r   r   ré  r¹  rº  s   @rF   rã  rã  ý  s™   ø€ € € € € ðð ð ?Cðð àðð �T˜3�YÔðð �C˜�HŒ~ð	ð
 # 8¨T¨F°E¨MÔ#:Ô;ðð ð ð ð ð ð ð ð ð rH   rã  ry  c                 ó*   — t          | d¦  «        }|| fS )zo
    Wraps `target` to be proxyable. Used for tensor creators like `torch.ones`, `torch.arange` and so on.
    r­  )rá  )ry  rÞ  s     rF   Úgen_constructor_wrapperró    s   € õ ˜V _Ñ5Ô5€GØ�Fˆ?ÐrH   c                 óî   — t          | t          ¦  «        rdS t          | t          j        j        ¦  «        r>t          | t
          ¦  «        rt          | d¦  «        st          d| › �¦  «        ‚| j        S | S )z\Returns the underlying metadata for HFProxies, and behaves like the identity for the others.rŽ   r“  zNo metadata was found for )	r>   rœ  r‘   rÜ  r   r‘  rŸ  rÏ  r“  )Úvs    rF   Ú_proxies_to_metasrö  %  sy   € å�!Õ(Ñ)Ô)ð ØˆvÝ�!•U”X”^Ñ$Ô$ð Ý˜1�gÑ&Ô&ð 	A­7°1°kÑ+BÔ+Bð 	AÝÐ?¸AÐ?Ð?Ñ@Ô@Ð@ØŒ{ÐØ€HrH   rÊ  c                 ó0   ‡ — dt           dt          fˆ fd„}|S )NrË   r7   c                 ó®   •— t          t          t          ¦  «        st          d¦  «        ‚t	          | t          ¦  «        }|                     ‰¦  «         |S )NzJCannot create HFCacheProxy because there is no HFTracer currently tracing.)r>   Ú_CURRENT_TRACERÚHFTracerrÏ  rÉ  rÍ  )rË   Úcache_proxyrÊ  s     €rF   Úcache_proxy_factory_fnz=create_cache_proxy_factory_fn.<locals>.cache_proxy_factory_fn1  sN   ø€ Ý�/­8Ñ4Ô4ð 	mÝÐkÑlÔlÐlÝ" 1¥oÑ6Ô6ˆØ×*Ò*¨>Ñ:Ô:Ð:ØÐrH   )r   rÉ  )rÊ  rü  s   ` rF   Úcreate_cache_proxy_factory_fnrý  0  s7   ø€ ð¥$ð ­<ð ð ð ð ð ð ð "Ð!rH   ÚProxyableCacherÛ  ÚProxyableDynamicCacheÚProxyableStaticCacheé
   é   ÚlowÚhighÚforbidden_valuesc                 ór   — |€g }t          j        | |¦  «        }||v rt          j        | |¦  «        }||v °|S r¢   )ÚrandomÚrandint)r  r  r  rk  s       rF   Ú_generate_random_intr	  M  sO   € ØÐØÐÝŒN˜3 Ñ%Ô%€EØ
Ð#Ð
#Ð
#Ý”˜s DÑ)Ô)ˆð Ð#Ð
#Ð
#à€LrH   c                   ó¶  ‡ — e Zd ZU dZdZeed<   dZeed<   g d¢Ze	e
eeeeiZ e¦   «         sefneefZefdfˆ fd„	Zdd	d
edee         dee         deeej        f         f
d„Zd*ˆ fd„	Zd„ Zdededeeef         fd„Z ˆ fd„Z!d„ Z"e#j$        de%ej&        j'        e(def         f         fd„¦   «         Z)	 	 	 d+de%ej&        j'        e(def         f         de*eeef                  de*eeef                  dede+f
ˆ fd„Z,de&j'        defd „Z-de&j'        defd!„Z.de&j'        defˆ fd"„Z/d#ej&        j'        d$edefˆ fd%„Z0 e1d¬&¦  «        d'd(defd)„¦   «         Z2ˆ xZ3S ),rú  zŸ
    Tracer that is able to symbolically trace models from the library. To do that, it uses the HFProxy instead of the
    regular PyTorch torch.fx.Proxy.
    TÚproxy_buffer_attributesÚallow_insert_stateless_mods)ÚarangeÚzerosÚonesrÔ   Ú	full_likeÚeyer’   rþ   ÚclampÚfinfoÚtrilr£   c                 óN   •— t          ¦   «                              ||¬¦  «         d S )N)Úautowrap_modulesÚautowrap_functions)r   rÁ  )r–   r  r  r£  s      €rF   rÁ  zHFTracer.__init__t  s(   ø€ Ý‰Œ×ÒÐ*:ÐOaÐÑbÔbÐbÐbÐbrH   Úmodelr   Ú
input_namer“   Úinput_namesr7   c                 óŽ  ‡‡— t          |d|j        ¦  «        j        }|j        Ši }d}|dv �r|d         }|g t	          t
          ¦  «        ¢t	          t          ¦  «        ¢t	          t          ¦  «        ¢t	          t          ¦  «        ¢t	          t          ¦  «        ¢t	          t          ¦  «        ¢v r&t          j        |t          j        ‰¬¦  «        |d<   �nm|g t	          t          ¦  «        ¢t	          t          ¦  «        ¢d‘v rJt          j        |t          j        ‰¬¦  «        |d<   t          j        |t          j        ‰¬¦  «        |d	<   �nõ|t	          t           ¦  «        v rÚt#          |j        d
¦  «        r|j        j        €t)          d¦  «        ‚|j        j        dk    r||j        j        f}	t          j        }
nh|j        j        dk    r|f}	t          j        }
nH|j        j        dk    r||j        j        f}	t          j        }
nt)          d|j        j        › d�¦  «        ‚t          j        |	|
‰dœŽ|d<   �n|g t	          t.          ¦  «        ¢t	          t0          ¦  «        ¢t	          t2          ¦  «        ¢t	          t4          ¦  «        ¢t	          t6          ¦  «        ¢t	          t8          ¦  «        ¢d‘d‘d‘v r&t          j        |t          j        ‰¬¦  «        |d<   �n]|g t	          t:          ¦  «        ¢v r&t          j        |t          j        ‰¬¦  «        |d<   �nt=          d|› d|› d�¦  «        ‚d|v rñ|d         }t          |j        dd¦  «        }|€jt#          |j        d¦  «        r|j        j        j         }nCt#          |j        d¦  «        r|j        j!        j         }ntE          ¦   «         tE          ¦   «         f}t          |j        dd¦  «        }tG          |tH          j%        j&        ¦  «        s||f}|\  }}t          j        ||||t          j        ‰¬¦  «        ||<   �nd|v r&t          j        g |¢d‘R t          j'        ‰dœŽ||<   �nêd |v r0t          j        g |¢|j        j(        ‘R t          j'        ‰dœŽ||<   �n¶d!|v rž|d         }t          |j        d"d¦  «        �|j        j)        d#k    r|j        j*        }n|j        j+        }tY          |¦  «        dk    r||d$         |d%         |f}n||d$         |f}t          j        |t          j'        ‰¬¦  «        ||<   �nd&|v r4t          j        ||j        j-        gz   t          j'        ‰¬¦  «        ||<   �nÜd'|v r4t          j        ||j        j.        gz   t          j'        ‰¬¦  «        ||<   �n¤d(|v r!t          j        |t          j'        ‰dœŽ||<   �nd)|v r=|\  }}tE          d*d+¬,¦  «        }t          j        ||t          j'        ‰¬¦  «        ||<   �n>d-|v r?d.|v r|d         |d$         |z   g}n|}t          j        |t          j        ‰¬¦  «        ||<   nûd/|v r%t          j        |t          j        ‰¬¦  «        ||<   nÒd.|v rš|j        j)        t^          vrt=          d0|j        j)        › d1�¦  «        ‚|j        j0        }|j        j+        |j        j0        z  }|d         |||fŠtc          ˆˆfd2„te          |j        j3        ¦  «        D ¦   «         ¦  «        }|||<   n4||j        j+        gz   }t          j        |t          j'        ‰¬¦  «        ||<   |S )3z4Generates dummy input for model inference recording.Úclass_for_deserializationé   )ÚlabelsÚstart_positionsÚend_positionsr   rÅ   r  ÚXLNetForQuestionAnsweringr  r   Úproblem_typeNzÜCould not retrieve the problem type for the sequence classification task, please set model.config.problem_type to one of the following values: "regression", "single_label_classification", or "multi_label_classification".Ú
regressionÚsingle_label_classificationÚmulti_label_classificationz„Expected model.config.problem_type to be either: "regression", "single_label_classification", or "multi_label_classification", but "z" was provided.r…   rˆ   r‰   z!Generating the dummy input named z for z is not supported yet.Úpixel_valuesÚ
image_sizeÚvision_configÚencoderÚnum_channelsé   Úbboxé   Úinput_featuresÚinputs_embedsÚembedding_sizere   r/   r   Úvisual_featsÚ
visual_posÚinputsÚinput_valuesi'  i N  ©r  r  ÚmaskÚpast_key_valuesÚidszMSymbolic trace with past_key_values input is not supported yet for the model ze. Please open an issue or a PR in Transformers repository if you would like to see the support added.c              3   óœ   •K  — | ]F}t          j        ‰t           j        ‰¬ ¦  «        t          j        ‰t           j        ‰¬ ¦  «        fV — ŒGdS )rÅ   N)r‘   ÚrandrÇ   )rÙ   rô   Úcache_shaper�   s     €€rF   rÞ   z1HFTracer._generate_dummy_input.<locals>.<genexpr>  sg   øè è € ð ð ð
 õ ”J˜{µ%´+ÀfÐMÑMÔMÝ”J˜{µ%´+ÀfÐMÑMÔMððð ð ð ð ð rH   )4rÀ  r£  r´  r�   r   r$   r#   r   r,   r   r   r‘   r  Úlongr&   r   r)   rŸ  Úconfigr"  rµ   Ú
num_labelsr„  r%   r+   r   r"   r(   r'   r   ÚNotImplementedErrorr(  r'  r)  r	  r>   ÚcollectionsÚabcÚIterablerÇ   Úinput_feat_per_channelÚ
model_typer0  Úhidden_sizerÆ   Úvisual_feat_dimÚvisual_pos_dimÚ"_FX_SUPPORTED_MODELS_WITH_KV_CACHEÚnum_attention_headsra  rï   Únum_hidden_layers)r–   r  r  r“   r  Úmodel_class_nameÚinputs_dictÚkv_cache_lengthr  Úlabels_shapeÚlabels_dtyper'  r*  ÚheightÚwidthr0  Úembedding_shaper  Ú
seq_lengthÚ
mask_shapeÚ	num_headsrq  ÚpkvÚshape_with_hidden_sizer;  r�   s                           @@rF   Ú_generate_dummy_inputzHFTracer._generate_dummy_inputw  sr  øø€ õ # 5Ð*EÀuÄÑWÔWÔ`ÐØ”ˆØˆð
 ˆàÐGÐGÑGØ˜qœˆJØð $ÝÕLÑMÔMð$åÕCÑDÔDð$õ ÕHÑIÔIð$õ ÕHÑIÔIð	$õ
 Õ<Ñ=Ô=ð$õ ÕHÑIÔIð$ð ð õ ).¬°JÅeÄjÐY_Ð(`Ñ(`Ô(`�˜HÑ%Ñ%Ø!ð &ÝÕFÑGÔGð&åÕOÑPÔPð&ð ,ð&ð ð õ
 27´¸ZÍuÌzÐbhÐ1iÑ1iÔ1i�Ð-Ñ.Ý/4¬{¸:ÍUÌZÐ`fÐ/gÑ/gÔ/g�˜OÑ,Ñ,Ø!¥ZÕ0_Ñ%`Ô%`Ð`Ð`Ý˜uœ|¨^Ñ<Ô<ð ÀÄÔ@YÐ@aÝ$ðZñô ð ð ”<Ô,°Ò<Ð<Ø$.°´Ô0GÐ#H�LÝ#(¤=�L�LØ”\Ô.Ð2OÒOÐOØ$. =�LÝ#(¤:�L�LØ”\Ô.Ð2NÒNÐNØ$.°´Ô0GÐ#H�LÝ#(¤=�L�Lå$ðnØCHÄ<ÔC\ðnð nð nñô ð õ ).¬°\ÈÐ^dÐ(eÐ(eÐ(e�˜HÑ%Ñ%à!ð 
&ÝÕ?Ñ@Ô@ð
&åÕHÑIÔIð
&õ Õ=Ñ>Ô>ð
&õ Õ=Ñ>Ô>ð	
&õ
 ÕHÑIÔIð
&õ ÕIÑJÔJð
&ð 'ð
&ð 'ð
&ð (ð
&ð 
ð 
õ ).¬°EÅÄÐTZÐ([Ñ([Ô([�˜HÑ%Ñ%Ø!Ð%O¥zÕ2MÑ'NÔ'NÐ%OÐOÐOÝ(-¬°EÅÄÐW]Ð(^Ñ(^Ô(^�˜HÑ%Ñ%å)Øq¸
ÐqÐqÐIYÐqÐqÐqñô ð ð ˜zÐ)Ð)Ø˜qœˆJÝ  ¤¨|¸TÑBÔBˆJØÐ!Ý˜5œ<¨Ñ9Ô9ð RØ!&¤Ô!;Ô!F�J�JÝ˜Uœ\¨9Ñ5Ô5ð RØ!&¤Ô!5Ô!@�J�Jå"6Ñ"8Ô"8Õ:NÑ:PÔ:PÐ!Q�Jõ # 5¤<°ÀÑCÔCˆLÝ˜j­+¬/Ô*BÑCÔCð 6Ø(¨*Ð5�
Ø&‰MˆF�EÝ&+¤kØ˜L¨&°%½u¼}ÐU[ð'ñ 'ô 'ˆK˜
Ñ#Ñ#ð �zÐ!Ð!Ý&+¤kÐ&^°5Ð&^¸!Ð&^Ð&^Å5Ä;ÐW]Ð&^Ð&^Ð&^ˆK˜
Ñ#Ñ#Ø Ð+Ð+Ý&+¤kð 'Øð'ØœÔ;ð'ð 'ÝCHÄ;ÐW]ð'ð 'ð 'ˆK˜
Ñ#Ñ#ð  
Ð*Ð*Ø˜qœˆJõ ˜œÐ&6¸Ñ=Ô=ÐIØ”LÔ+¨Ò>Ð>à!&¤Ô!<��à!&¤Ô!9�å�5‰zŒz˜QŠˆà#-¨u°Q¬x¸¸q¼À>Ð"R��ð $.¨u°Q¬x¸Ð"H�å&+¤k°/ÍÌÐ]cÐ&dÑ&dÔ&dˆK˜
Ñ#Ñ#Ø˜zÐ)Ð)Ý&+¤kØà”LÔ0ðñõ ”kØð'ñ 'ô 'ˆK˜
Ñ#Ñ#ð ˜ZÐ'Ð'Ý&+¤kØà”LÔ/ðñõ ”kØð'ñ 'ô 'ˆK˜
Ñ#Ñ#ð ˜Ð#Ð#Ý&+¤k°5ÅÄÐTZÐ&[Ð&[Ð&[ˆK˜
Ñ#Ñ#Ø˜zÐ)Ð)Ø!‰MˆJ˜å-°%¸eÐDÑDÔDˆJÝ&+¤k°*¸jÕPUÔP[ÐdjÐ&kÑ&kÔ&kˆK˜
Ñ#Ñ#Ø�zÐ!Ð!Ø  KÐ/Ð/Ø# Aœh¨¨a¬°?Ñ(BÐC�
�
à"�
å&+¤k°*ÅEÄJÐW]Ð&^Ñ&^Ô&^ˆK˜
Ñ#Ð#Ø�jÐ Ð Ý&+¤k°%½u¼zÐRXÐ&YÑ&YÔ&YˆK˜
Ñ#Ð#Ø *Ð,Ð,ØŒ|Ô&Õ.PÐPÐPÝ)ð cÐdiÔdpÔd{ð  cð  cð  cñô ð ð œÔ8ˆIØ”|Ô/°5´<Ô3SÑSˆHà  œ8 Y°ÀÐJˆKÝð ð ð ð ð õ
 ˜uœ|Ô=Ñ>Ô>ðñ ô ñ ô ˆCð '*ˆK˜
Ñ#Ð#à%*¨e¬lÔ.FÐ-GÑ%GÐ"Ý&+¤kÐ2HÕPUÔP[ÐdjÐ&kÑ&kÔ&kˆK˜
Ñ#àÐrH   Nc           	      óÈ  •— t          ¦   «                              |||||||¦  «        }|dk    r+|| j        v r"|                     | j        |         ¦  «         |S || j        v r	d|v rd|d<   	 t
          j        j                             |t          ¦  «        }	t
          j        j                             |t          ¦  «        }
d}d| _
        d| _        |dk    rUt                               ||¦  «        } ||	i |
¤Ž}t          |t
          j        ¦  «        r|                     d¬¦  «        }�n1|dk    r?t#          |	d         j        |¦  «        }t                               ||¦  «        } ||	i |
¤Ž}nì|d	k    ryt'          | d
¦  «        st)          | › d�¦  «        ‚| j                             |¦  «        }t/          |¦  «        }|t          v rt          |         |g|	¢R i |
¤Ž}n{ | j        |	i |
¤Ž}nm|dk    re| j        }|                     d¦  «        }|D ]}t#          ||¦  «        }Œt          |t
          j        ¦  «        r|                     d¬¦  «        }n|}nd}|r9t          |t4          ¦  «        st7          d¦  «        ‚|                     |¦  «         n;# t8          $ r.}t:          rt=          j        d|› d|› d|› �¦  «         Y d }~nd }~ww xY wd| _
        d| _        |S )NÚplaceholderr�   rŽ   Tr­  r©   r—  r   Úcall_moduleÚorig_forwardz/ does not have an attribute called orig_forwardrÔ  ú.Fz"Don't support composite output yetzCould not compute metadata for z target z: ) r   r™  Ú	meta_argsr•  Úorig_fnsr‘   rÜ  rÄ  rÝ  rö  Ú_disable_module_getattrÚ_disable_call_moduler�  r@   r>   rì   r»   rÀ  r£  rŸ  ÚAttributeErrorr¾  Úget_submodulerÑ  r\  Úsplitr   rµ   Ú	ExceptionÚ_IS_IN_DEBUG_MODEÚwarningsÚwarn)r–   Úkindry  rÉ   rÊ   rä  Ú	type_exprrÕ  ÚrvÚ
args_metasÚkwargs_metasÚshould_install_metadataÚmeta_targetÚmeta_outÚmethodÚmodÚmod_typeÚattr_itrÚatomsÚatomÚer£  s                        €rF   r™  zHFTracer.create_proxy'  sC  ø€ Ý‰WŒW×!Ò! $¨°°f¸dÀIÐO_Ñ`Ô`ˆà�=Ò Ð  V¨t¬~Ð%=Ð%=Ø×Ò ¤¨vÔ 6Ñ7Ô7Ð7ØˆIà�T”]Ð"Ð"ð ˜6Ð!Ð!Ø#)��xÑ ð.	]Ýœœ×4Ò4°TÕ;LÑMÔMˆJÝ œ8œ=×6Ò6°vÕ?PÑQÔQˆLà&*Ð#à+/ˆDÔ(Ø(,ˆDÔ%à�Ò&Ð&Ý4×8Ò8¸ÀÑHÔH�Ø&˜;¨
ÐC°lÐCÐC�Ý˜h­¬Ñ5Ô5ð :Ø'Ÿ{š{°&˜{Ñ9Ô9�HùØ˜Ò&Ð&Ý  ¨A¤Ô!8¸&ÑAÔA�Ý4×8Ò8¸ÀÑHÔH�Ø&˜;¨
ÐC°lÐCÐC��Ø˜Ò&Ð&Ý˜t ^Ñ4Ô4ð cÝ(¨DÐ)aÐ)aÐ)aÑbÔbÐbØ”i×-Ò-¨fÑ5Ô5�Ý ™9œ9�ØÕ5Ð5Ð5Ý5°hÔ?ÀÐaÀjÐaÐaÐaÐT`ÐaÐa�H�Hà0˜tÔ0°*ÐMÀÐMÐM�H�HØ˜Ò#Ð#Øœ9�ØŸš SÑ)Ô)�Ø!ð 7ð 7�DÝ& x°Ñ6Ô6�H�HÝ˜h­¬Ñ5Ô5ð (Ø'Ÿ{š{°&˜{Ñ9Ô9�H�Hà'�H�Hà*/Ð'à&ð .Ý! "¥eÑ,Ô,ð KÝ$Ð%IÑJÔJÐJØ×#Ò# HÑ-Ô-Ð-øøåð 	]ð 	]ð 	]Ý ð ]Ý”Ð[ÀÐ[Ð[ÈfÐ[Ð[ÐXYÐ[Ð[Ñ\Ô\Ð\øøøøøøøøøð	]øøøð (-ˆÔ$Ø$)ˆÔ!àˆ	s   Á-H+J Ê
KÊ#$KËKc                 óX  ‡ — t          ‰ dd¦  «        r|S ˆ fd„}t          |t          j        j        ¦  «        r( ||‰ j                             ¦   «         |¦  «        }|�|S ‰ j        rBt          |t          j        ¦  «        r( ||‰ j         	                    ¦   «         |¦  «        }|�|S |S )Nr`  Fc                 óÖ   •‡ ‡— |D ]b\  Š}‰ |u rY‰|vrKi }dt          j        ‰j        ¦  «        j        v r‰j        sd nˆ ˆˆfd„|d<    ‰j        d‰di fi |¤Ž}||‰<   |‰         c S Œcd S )NrÕ  c                 ó(   •— t          ‰| ‰‰¦  «        S r¢   r   )rÄ  Úattr_valrË   r–   s    €€€rF   r^  zLHFTracer._module_getattr.<locals>.maybe_get_proxy_for_attr.<locals>.<lambda>{  s   ø€ µnÀTÈ4ÐQRÐT\Ñ6]Ô6]€ rH   rÔ  r£   )rì  Ú	signaturer™  Ú
parametersÚparam_shapes_constant)r{  Úcollection_to_searchÚparameter_proxy_cacher	  rÊ   Ú	val_proxyrË   r–   s   `     @€rF   Úmaybe_get_proxy_for_attrz:HFTracer._module_getattr.<locals>.maybe_get_proxy_for_attrr  sÈ   øøø€ Ø0ð 8ð 8‘D�A�qØ 1�}�}ØÐ$9Ð9Ð9Ø%'˜FØ1µWÔ5FÀtÔGXÑ5YÔ5YÔ5dÐdÐdð ,0Ô+Eð%^ D Dà)]Ð)]Ð)]Ð)]Ð)]Ð)]ð !'Ð'9Ñ :ð
 ):¨Ô(9¸*ÀaÈÈRÐ(ZÐ(ZÐSYÐ(ZÐ(Z˜IØ7@Ð1°!Ñ4Ø4°QÔ7Ð7Ð7Ð7ð %ð �trH   )
rÀ  r>   r‘   r   Ú	Parameterr¾  Únamed_parametersr  rì   Únamed_buffers)r–   r¼  r{  r€  r‚  Úmaybe_parameter_proxyÚmaybe_buffer_proxys   `      rF   Ú_module_getattrzHFTracer._module_getattrm  sà   ø€ Ý�4Ð2°EÑ:Ô:ð "	ØˆOðð ð ð ð õ  ˜(¥E¤HÔ$6Ñ7Ô7ð 1Ø(@Ð(@Ø˜dœi×8Ò8Ñ:Ô:Ð<Qñ)ô )Ð%ð )Ð4Ø0Ð0àÔ+ð .µ
¸8ÅUÄ\Ñ0RÔ0Rð .Ø%=Ð%=Ø˜dœi×5Ò5Ñ7Ô7Ð9Nñ&ô &Ð"ð &Ð1Ø-Ð-àˆOrH   r¼  r{  r€  c                 ó0   — |                       |||¦  «        S r¢   )rˆ  )r–   r¼  r{  r€  s       rF   rÀ  zHFTracer.getattr“  s   € Ø×#Ò# D¨(Ð4IÑJÔJÐJrH   c                 óŒ   •— t          | dd¦  «        r ||i |¤ŽS || _        t          ¦   «                              ||||¦  «        S )Nra  F)rÀ  r\  r   r[  )r–   r  ÚforwardrÉ   rÊ   r£  s        €rF   r[  zHFTracer.call_module–  sS   ø€ Ý�4Ð/°Ñ7Ô7ð 	,Ø�7˜DÐ+ FÐ+Ð+Ð+Ø#ˆÔÝ‰wŒw×"Ò" 1 g¨t°VÑ<Ô<Ð<rH   c                 ó"   — t          || ¦  «        S r¢   )r‘  )r–   rÄ  s     rF   ÚproxyzHFTracer.proxyœ  s   € Ý�t˜TÑ"Ô"Ð"rH   r¾  .c              #   ód  K  — d„ | j         D ¦   «         | _        t          ¦   «         | _        | j                             ¦   «         D ]8\  }\  }}t          t          ||¦  «         | j                             |¦  «         Œ9g }t          j	        |¦  «        }t          j                             ¦   «         D ]�\  }}|�||urŒ|                     d¦  «        sŒ"| j                             ¦   «         D ]Q\  }}	|j                             ¦   «         D ]2\  }
}||u r)|                     ||
|f¦  «         t          ||
|	¦  «         Œ3ŒRŒŽd V — | j                             ¦   «         D ]\  }\  }}t          t          ||¦  «         Œi | _        t          ¦   «         | _        |D ]\  }}
}t          ||
|¦  «         Œd S )Nc           	      óT   — i | ]%}|t          t          t          |¦  «        ¦  «        “Œ&S r£   )ró  rÀ  r‘   )rÙ   ry  s     rF   ú
<dictcomp>z.HFTracer.patch_for_tracing.<locals>.<dictcomp>¢  s:   € ð &
ð &
ð &
ØHNˆFÕ+­GµE¸6Ñ,BÔ,BÑCÔCð&
ð &
ð &
rH   Útransformers)Ú_TORCH_METHODS_TO_PATCHÚpatched_torch_methodsÚsetr_  Úitemsrï  r‘   Úaddrì  Ú	getmoduleÚsysÚmodulesrë  rÐ  Ú__dict__rA   )r–   r¾  rä  rÞ  ÚorigÚpatchedÚmodule_of_modelrr  Úorig_clsÚpatched_clsrñ  r¼  r  s                rF   Úpatch_for_tracingzHFTracer.patch_for_tracingŸ  s   è è € ð&
ð &
ØRVÔRnð&
ñ &
ô &
ˆÔ"õ ™œˆŒà%)Ô%?×%EÒ%EÑ%GÔ%Gð 	$ð 	$Ñ!ˆD‘/�7˜DÝ•E˜4 Ñ)Ô)Ð)ØŒM×Ò˜dÑ#Ô#Ð#Ð#ð ˆÝ!Ô+¨DÑ1Ô1ˆÝœ×*Ò*Ñ,Ô,ð 		=ð 		=‰IˆD�#ØÐ*¨s¸/Ð/IÐ/IØØ—?’? >Ñ2Ô2ð ØØ)-Ô)?×)EÒ)EÑ)GÔ)Gð =ð =Ñ%�˜+Ø'*¤|×'9Ò'9Ñ';Ô';ð =ð =‘O�I˜tØ˜xÐ'Ð'ØŸš¨¨Y¸Ð'AÑBÔBÐBÝ  Y°Ñ<Ô<Ð<øð=ð=ð 	ˆˆˆð  $Ô9×?Ò?ÑAÔAð 	'ð 	'‰OˆD‘)�1�dÝ•E˜4 Ñ&Ô&Ð&Ð&Ø%'ˆÔ"Ý™œˆŒà(/ð 	.ð 	.Ñ$ˆC�˜HÝ�C˜ HÑ-Ô-Ð-Ð-ð	.ð 	.rH   Úconcrete_argsÚdummy_inputsÚ6complete_concrete_args_with_inputs_not_in_dummy_inputsc           	      ó€  •‡‡— t          j        t          |t          j        j        ¦  «        r|j        n|¦  «        }‰€i Š‰�‘|r�|j                             ¦   «         D ]<}|j	        ‰v rŒ|j
        t           j        j        u rt          d|j	        › d�¦  «        ‚Œ=‰                     ˆˆfd„|j                             ¦   «         D ¦   «         ¦  «         |j                             ¦   «         ‰                     ¦   «         z
  }t!          ¦   «         }t!          ¦   «         }	||	g}
|j        j        t'          t(          ¦  «        v r't!          dd¬¦  «        }|
                     d|¦  «         ‰�t-          ‰¦  «        ni }|D ]‚}||v rŒt          || j        ¦  «        s't1          |¦  «        j                             d	¦  «        r-|                     |                      |||
|¬
¦  «        ¦  «         Œpt9          d|› d�¦  «        ‚d„ }t;          j        ||¦  «        }|j                             ¦   «         D ]2}|j        t           j        j         k    r|j	        |vri |d|j	        › �<   Œ3|| _!        | a"|  #                    |¦  «        5  	 tI          ¦   «          %                    |‰¬¦  «        | _&        da"n# da"w xY w	 ddd¦  «         n# 1 swxY w Y   | j&        j'        D ]Ü}|j(        dk    r½|j)        |v rd|_*        t          j+        |_        n›|g}tY          j-        ¦   «         }|rE| .                    d¦  «        }d||<   |t_          |j0                             ¦   «         ¦  «        z  }|°Etc          |                     ¦   «         ¦  «        D ]}| j&         2                    |¦  «         Œ|j(        dk    rd|_        ŒÝ| j&        S )a�  
        Traces `root` and returns the corresponding FX `torch.fx.Graph` representation. `root` can either be a
        `torch.nn.Module` instance or a Python callable. Note that after this call, `self.root` may be different from
        the `root` passed in here. For example, when a free function is passed to `trace()`, we will create a
        `torch.nn.Module` instance to use as the root and add embedded constants to.

        Args:
            root (`torch.nn.Module` or  `Callable`):
                Either a `torch.nn.Module`` or a function to be traced through. If root is not a
                [`~transformers.PreTrainedModel`], then `dummy_inputs` must be passed, otherwise tracing will fail.
            concrete_args (`dict[str, Any], *optional*):
                Concrete arguments that should not be treated as Proxies
            dummy_inputs (`dict[str, Any]`, *optional*):
                The dummy inputs needed to handle data-dependent control-flow if `root` is not a
                [`~transformers.PreTrainedModel`]. It can also be used when `root` is a
                [`~transformers.PreTrainedModel`] to specify custom dummy inputs for a subset or all the model inputs.
            complete_concrete_args_with_inputs_not_in_dummy_inputs (`bool`, *optional*, defaults to `True`):
                If `True`, and `dummy_inputs` is specified, every argument that `root` can take that is not in
                `dummy_inputs` and not in `concrete_args` will be added to `concrete_args`, otherwise does nothing.

        Returns:
            `torch.fx.Graph`:
                A FX `torch.fx.Graph` representing the semantics of the passed-in `root`.

        Nz6You need to specify a default value for the parameter r]  c                 óN   •— i | ]!}|j         ‰v¯|j         ‰v¯|j         |j        “Œ"S r£   ©rä  r9   )rÙ   r	  r¡  r¢  s     €€rF   r�  z"HFTracer.trace.<locals>.<dictcomp>ð  sB   ø€ ð ð ð àØœ lÐ2Ð2°q´vÀ]Ð7RÐ7Rð ”F˜AœIà7RÐ7RÐ7RrH   r   r  r5  r/   )Ú_deserialize_graph_moduleÚ_CodeOnlyModule)r  zCould not generate input named z8 for because root is not a transformers.PreTrainedModel.c                 ód   — t          | t          j        ¦  «        r|                      d¦  «        S | S r]  )r>   r‘   rì   r»   )rk  s    rF   Úto_metazHFTracer.trace.<locals>.to_meta  s-   € Ý˜%¥¤Ñ.Ô.ð (Ø—x’x Ñ'Ô'Ð'ØˆLrH   ú**©r¡  rZ  r£   r   rc  )3rì  r|  r>   r‘   r   ÚModuler‹  r}  r°  rä  r9   rƒ  r’   rµ   Úupdater=   r	  r£  r´  r   r#   rè   rÒ   Úsupported_archsrÑ  r¶  rë  rX  rÏ  ÚpytreeÚtree_mapri  ÚVAR_KEYWORDr^  rù  r   r   ÚtraceÚgraphÚnodesÚopry  rÉ   rì   r@  ÚOrderedDictrÓ   rÑ   ÚusersÚreversedÚ
erase_node)r–   r¾  r¡  r¢  r£  ÚsigÚparamr  r  Úsequence_lengthr“   Únum_choicesr3  r  rª  Úconcrete_metasrÄ  Úto_visitÚ	to_deleterË   Úuserr£  s     ``                 €rF   r³  zHFTracer.traceÄ  sm  øøø€ õ@ Ôµ
¸4ÅÄÄÑ0QÔ0QÐ [ ¤ ÐW[Ñ\Ô\ˆàÐ ØˆMàÐ#Ð(^Ð#Øœ×.Ò.Ñ0Ô0ð mð m�Ø”: Ð-Ð-ØØ”=¥GÔ$5Ô$;Ð;Ð;Ý$Ð%kÐ^cÔ^hÐ%kÐ%kÐ%kÑlÔlÐlð <à× Ò ðð ð ð ð à œ^×2Ò2Ñ4Ô4ðñ ô ñô ð ð ”n×)Ò)Ñ+Ô+¨m×.@Ò.@Ñ.BÔ.BÑBˆõ *Ñ+Ô+ˆ
Ý.Ñ0Ô0ˆØ˜_Ð-ˆàŒ>Ô"¥jÕ1XÑ&YÔ&YÐYÐYÝ.°1¸1Ð=Ñ=Ô=ˆKØ�LŠL˜˜KÑ(Ô(Ð(à'3Ð'?•�lÑ#Ô#Ð#ÀRˆØ%ð 	ð 	ˆJØ˜VÐ#Ð#Øõ ˜$ Ô 4Ñ5Ô5ð ½¸d¹¼Ô9P×9[Ò9[Ø@ñ:ô :ð ð —’˜d×8Ò8¸¸zÈ5Ð^iÐ8ÑjÔjÑkÔkÐkÐkå"ð5°jð 5ð 5ð 5ñô ð ð
	ð 	ð 	õ
  œ¨°&Ñ9Ô9ˆà”^×*Ò*Ñ,Ô,ð 	7ð 	7ˆEØŒz�WÔ.Ô:Ò:Ð:¸u¼zÐQ\Ð?\Ð?\Ø46�Ð0 E¤JÐ0Ð0Ñ1øØ'ˆŒð ˆØ×#Ò# DÑ)Ô)ð 	'ð 	'ð'Ý"™WœWŸ]š]¨4¸}˜]ÑMÔM�”
à"&��ø $�Ð&Ð&Ð&Ð&�ð		'ð 	'ð 	'ñ 	'ô 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'øøøð 	'ð 	'ð 	'ð 	'ð ”JÔ$ð 	!ð 	!ˆDØŒw˜-Ò'Ð'à”; +Ð-Ð-Ø "�D”Iõ !&¤�D”I�Ið !%˜v�HÝ +Ô 7Ñ 9Ô 9�IØ"ð 9Ø$ŸLšL¨™OœO˜Ø'+˜	 !™Ø ¥D¨¬¯ª©¬Ñ$8Ô$8Ñ8˜ð #ð 9õ
 !)¨¯ªÑ)9Ô)9Ñ :Ô :ð 4ð 4˜Øœ
×-Ò-¨dÑ3Ô3Ð3Ð3ð Œw˜(Ò"Ð"Ø �”	øàŒzÐs*   ÊKÊ(J1Ê.KÊ1J5Ê5KËK	ËK	rr  c                 ób   — t          d„ |j                             ¦   «         D ¦   «         ¦  «        S )z°
        Whether the module was instantiated with Proxies. If that is the case, such module cannot be a leaf module
        because its attributes are input-dependent.
        c              3   ó@   K  — | ]}t          |t          ¦  «        V — Œd S r¢   )r>   r   )rÙ   r¼  s     rF   rÞ   zKHFTracer._stateless_mod_instanciation_depends_on_proxies.<locals>.<genexpr>H  s,   è è € ÐMÐM¨t•:˜d¥EÑ*Ô*ÐMÐMÐMÐMÐMÐMrH   )Úanyrš  r°  )r–   rr  s     rF   Ú/_stateless_mod_instanciation_depends_on_proxiesz8HFTracer._stateless_mod_instanciation_depends_on_proxiesC  s/   € õ
 ÐMÐM°s´|×7JÒ7JÑ7LÔ7LÐMÑMÔMÑMÔMÐMrH   c                 ó`  — |                       |¦  «        rdS d}|j        j                             ¦   «         }|› d|› �}d}t	          | j        |¦  «        r;t          | j        |¦  «        |u rd}n!|› d|› �}|dz  }t	          | j        |¦  «        °;|s| j                             ||¦  «         |S )zb
        Helper method which tries to insert a module that was not declared as submodule.
        r4   r   r  FTr/   )rÆ  r£  r´  ÚlowerrŸ  r¾  rÀ  Ú
add_module)r–   rr  ÚidxÚmod_nameÚpathÚalready_inserteds         rF   Ú_insert_module_as_submodulez$HFTracer._insert_module_as_submoduleJ  sà   € ð ×?Ò?ÀÑDÔDð 	Ø�2ØˆØ”=Ô)×/Ò/Ñ1Ô1ˆØÐ"Ð"˜SÐ"Ð"ˆØ ÐÝ�d”i Ñ&Ô&ð 	Ý�t”y $Ñ'Ô'¨3Ð.Ð.Ø#'Ð ØØÐ&Ð& Ð&Ð&ˆDØ�1‰HˆCõ �d”i Ñ&Ô&ð 	ð  ð 	,ØŒI× Ò   sÑ+Ô+Ð+ØˆrH   c                 ó~  •— 	 t          ¦   «                              |¦  «        S # t          $ rŽ}| j        r€t	          t          |                     ¦   «         ¦  «        ¦  «        dk    rNt	          t          |                     ¦   «         ¦  «        ¦  «        dk    r|                      |¦  «        }|cY d}~S |‚d}~ww xY w)ag  
        Helper method to find the qualified name of `mod` in the Module hierarchy of `root`. For example, if `root` has
        a submodule named `foo`, which has a submodule named `bar`, passing `bar` into this function will return the
        string "foo.bar".

        Args:
            mod (str): The `Module` to retrieve the qualified name for.
        r   N)	r   Úpath_of_moduleÚ	NameErrorr  rÆ   rÑ   r}  ÚbuffersrÎ  )r–   rr  rw  rÌ  r£  s       €rF   rÐ  zHFTracer.path_of_moduleb  sÀ   ø€ ð	Ý‘7”7×)Ò)¨#Ñ.Ô.Ð.øÝð 	ð 	ð 	ØÔ/ð µC½¸S¿^º^Ñ=MÔ=MÑ8NÔ8NÑ4OÔ4OÐSTÒ4TÐ4TÕY\Õ]aÐbe×bmÒbmÑboÔboÑ]pÔ]pÑYqÔYqÐuvÒYvÐYvØ×7Ò7¸Ñ<Ô<�Ø������ØˆGøøøøð		øøøs!   ƒ $ ¤
B<®BB7Â/B<Â5B7Â7B<r  Úmodule_qualified_namec                 ót   •— |                       |¦  «         o!t          ¦   «                              ||¦  «        S r¢   )rÆ  r   Úis_leaf_module)r–   r  rÓ  r£  s      €rF   rÕ  zHFTracer.is_leaf_modules  sB   ø€ Ø×HÒHÈÑKÔKÐKð 
ÕQVÑQXÔQX×QgÒQgØÐ$ñR
ô R
ð 	
rH   )Úis_backward_compatibleÚobjr   c                 ó‚   —  t          |d¦  «        ¦   «         }|j        j                             d¦  «        r|j        S |S )z×Called when a proxy object is has the keys() method called.
        This is what happens when ** is called on a proxy. This should return an iterator if ** is supposed to work in
        your custom tracer.
        r=   r«  )r¨  rÄ  ry  rë  r“  )r–   r×  Ú	attributes      rF   r=   zHFTracer.keysx  sD   € ð -•K  VÑ,Ô,Ñ.Ô.ˆ	ØŒ8Œ?×%Ò% dÑ+Ô+ð 	'ØÔ&Ð&ØÐrH   )NNN)NNT)4r´  rµ  r¶  r·  r  ÚboolÚ__annotations__r  r’  r   rþ  r   rÿ  r   r   rÐ  r1   r   r2   r¯  r@  rÁ  r?   rÑ   rÈ   rÒ   r‘   rì   rX  r™  rˆ  r   rÀ  r[  r�  Ú
contextlibÚcontextmanagerr   r   r­  r   r   r   r	   r³  rÆ  rÎ  rÐ  rÕ  r   r=   r¹  rº  s   @rF   rú  rú  V  s�  ø€ € € € € € ðð ð %)Ð˜TÐ(Ð(Ñ(Ø(,Ð Ð,Ð,Ñ,ðð ð Ðð 	ˆ~ØÐ+ØÐ)ðÐð 1BÐ0AÑ0CÔ0CÐe�Ð(Ð(È/Ð[dÐIe€Oà)-¨ÀBð cð cð cð cð cð cðnØ&ðnØ47ðnØ@DÀSÄ	ðnØX\Ð]`ÔXaðnà	ˆc�5”<ÐÔ	 ðnð nð nð nð`Cð Cð Cð Cð Cð CðL#ð #ð #ðLK˜Cð K¨3ð KÀtÈCÐQTÈHÄ~ð Kð Kð Kð Kð=ð =ð =ð =ð =ð#ð #ð #ð Ôð". e¨E¬H¬O¸XÀcÈ3ÀhÔ=OÐ,OÔ&Pð ".ð ".ð ".ñ Ôð".ðN 37Ø15ØGKð}ð }à�E”H”O X¨c°3¨hÔ%7Ð7Ô8ð}ð    S¨# X¤Ô/ð}ð ˜t C¨ Hœ~Ô.ð	}ð
 AEð}ð 
ð}ð }ð }ð }ð }ð }ð~NÀ2Ä9ð NÐQUð Nð Nð Nð Nð¨r¬yð ¸Sð ð ð ð ð0 "¤)ð °ð ð ð ð ð ð ð"
 ¤¤ð 
Èð 
ÐPTð 
ð 
ð 
ð 
ð 
ð 
ð
 €]¨$Ð/Ñ/Ô/ð˜ð  Cð ð ð ñ 0Ô/ðð ð ð ð rH   rú  r  r  c                 óÐ  ‡— t          j        | j        ¦  «        }t          ‰¦  «        t          |j                             ¦   «         ¦  «        k    sqt          ‰¦  «        dk    r‰d         nd                     ‰¦  «        }d                     |j                             ¦   «         ¦  «        }t          d|› d|› �¦  «        ‚ˆfd„|j         	                    ¦   «         D ¦   «         S )Nr/   r   ú, z(The model does not have input(s) named: z&, expected a subset of the following: c                 ó<   •— i | ]}|j         ‰v¯|j         |j        “ŒS r£   r¦  )rÙ   r	  r  s     €rF   r�  z%get_concrete_args.<locals>.<dictcomp>�  s,   ø€ Ð\Ð\Ð\ !À!Ä&ÐP[ÐB[ÐB[ˆAŒF�A”IÐB[ÐB[ÐB[rH   )
rì  r|  r‹  r”  r}  r=   rÆ   Újoinrµ   r°  )r  r  r»  Úformatted_input_namesÚformatted_allowed_input_namess    `   rF   Úget_concrete_argsrä  „  sç   ø€ Ý
Ô
˜EœMÑ
*Ô
*€Cå�ÑÔ¥ C¤N×$7Ò$7Ñ$9Ô$9Ñ :Ô :Ò:Ð:Ý25°kÑ2BÔ2BÀaÒ2GÐ2G ¨A¤ ÈTÏYÊYÐWbÑMcÔMcÐØ(,¯	ª	°#´.×2EÒ2EÑ2GÔ2GÑ(HÔ(HÐ%Ýð0Ð7Lð 0ð 0Ø-ð0ð 0ñ
ô 
ð 	
ð
 ]Ð\Ð\Ð\ s¤~×'<Ò'<Ñ'>Ô'>Ð\Ñ\Ô\Ð\rH   r   c                 ó(   — | j         j        t          v S r¢   )r£  r´  Ú_SUPPORTED_MODELS)r  s    rF   Úis_model_supportedrç  ’  s   € ØŒ?Ô#Õ'8Ð8Ð8rH   c                 ó–   — t          | ¦  «        s9d                     t          ¦  «        }t          d| j        j        › d|› �¦  «        ‚d S )Nrß  zModel z) is not supported yet, supported models: )rç  rá  ræ  r?  r£  r´  )r  Úsupported_model_namess     rF   Úcheck_if_model_is_supportedrê  –  sZ   € Ý˜eÑ$Ô$ð 
Ø $§	¢	Õ*;Ñ <Ô <ÐÝ!Øo�U”_Ô-ÐoÐoÐXmÐoÐoñ
ô 
ð 	
ð
ð 
rH   Údisable_checkÚ
tracer_clsc                 óN  — |€| j                              ¦   «         }t          |¦  «        }t          | |¦  «        }|st	          | ¦  «         d|v r0t          | j        dd¦  «        st                               d¦  «         d|vr<t          | j        dd¦  «        r&t                               d¦  «         d| j        _	         |¦   «         }| 
                    | |¬¦  «        }t          j                             | |¦  «        }| j        |_        | j        |_        | j        |_        |S )aÜ  
    Performs symbolic tracing on the model.

    Args:
        model ([`PretrainedModel`]):
            The model to trace.
        input_names (`list[str]`, *optional*):
            The names of the inputs of the traced model. If unset, model.dummy_inputs.keys() are used instead.
        disable_check (`bool`, *optional*, defaults to `False`):
            If `True`, no check is done before trying to trace the model, this is mostly usesul for debugging purposes.
        tracer_cls (`Type[HFTracer]`, *optional*, defaults to `HFTracer`):
            The tracer class to use for instantiating the tracer. If unset, `HFTracer` is used instead.

    Returns:
        `torch.fx.GraphModule`: A GraphModule constructed by recording operations seen while tracing the model.

    Example:

        ```python
        from transformers.utils.fx import symbolic_trace

        traced_model = symbolic_trace(model, input_names=["input_ids", "attention_mask", "token_type_ids"])
        ```
    Nr7  Ú	use_cacheFz|`past_key_values` were specified as input names, but model.config.use_cache = False, this might lead to unexpected behavior.z`past_key_values` were not specified as input names, but model.config.use_cache = True. Setting model.config.use_cache = False.r¬  )r¢  r=   rÑ   rä  rê  rÀ  r=  ÚloggerÚwarningrî  r³  r‘   rÜ  r
   r£  r  r�   )r  r  rë  rì  r¡  r˜  Útraced_graphÚtraceds           rF   Úsymbolic_traceró  ž  s.  € ð< ÐØÔ(×-Ò-Ñ/Ô/ˆå�{Ñ#Ô#€KÝ% e¨[Ñ9Ô9€Màð +Ý# EÑ*Ô*Ð*à˜KÐ'Ð'µ¸¼ÀkÐSXÑ0YÔ0YÐ'Ý�Šð#ñ	
ô 	
ð 	
ð  Ð+Ð+µ¸¼ÀkÐSXÑ0YÔ0YÐ+Ý�Šð.ñ	
ô 	
ð 	
ð "'ˆŒÔð ˆZ‰\Œ\€FØ—<’< °]�<ÑCÔC€LÝŒX×!Ò! %¨Ñ6Ô6€Fà”L€F„Mð (-¤€FÔ$Ø”L€F„Mà€MrH   r¢   r£   )NNr™   FF)F)NN)r�   )Nrü   FN)r  r  N)r  r   )ÊrÃ  r@  rÜ  rß  rì  r@  rŠ  Úosr  r˜  rg  Útypingr   r   r   r   r   r‘   Útorch.utils._pytreeÚutilsÚ_pytreer°  r   Útorch.fxr	   r
   r   r   r   Útorch.fx._compatibilityr   Útorch.fx._symbolic_tracer   Útorch.fx.proxyr   r4   r   Úcache_utilsr   r   r   Úmodeling_utilsr   r   Úmodels.autor   Úmodels.auto.modeling_autor   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   Úimport_utilsr0   r1   Úpeftr2   Ú
get_loggerr´  rï  Úenvironr@   Úupperrf  rÑ  r?   rÑ   rG   Ú(_REGULAR_SUPPORTED_MODEL_NAMES_AND_TASKSrH  Ú_REGULAR_SUPPORTED_MODELSÚitemr>   rÒ   ÚextendÚ_SPECIAL_SUPPORTED_MODELSra  Úsortedr”  ræ  rù  r˜   r    r¤   r§   r«   r¯   r²   r·   r¾   rÂ   rÎ   rÖ   rå   ré   rõ   r÷   rù   r  r
  r  r  r  r  r%  r)  r,  r/  r1  r5  r7  r9  rH  rO  rS  rV  rX  rZ  rd  rg  rr  rz  r}  r  rŽ  Ú	EmbeddingÚ
functionalÚ	embeddingÚ	LayerNormÚ	GroupNormÚLinearÚreluÚReLUÚwhereÚabsr  rÔ   ÚcatÚstackr–  Úmulrì   ÚmatmulÚbmmÚbaddbmmr  ÚrepeatÚrepeat_interleaveÚrollÚflipÚindex_selectÚgatherÚConv1dÚConv2dÚsqueezeÚ	unsqueezer_  Úone_hotÚMSELossÚCrossEntropyLossÚBCEWithLogitsLossr‹  r�  rÛ  Úscaled_dot_product_attentionr‘  r¨  rœ  rÉ  rá  rã  ró  rö  rý  rþ  rÿ  r   rÈ   r	  rú  r­  rä  rç  rê  rÚ  ró  r£   rH   rF   ú<module>r+     s+  ðð €€€€Ø Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø €€€Ø €€€Ø 	€	€	€	Ø €€€Ø 
€
€
€
Ø €€€Ø :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :à €€€Ø $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð Ø <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø )Ð )Ð )Ð )Ð )Ð )à Ð Ð Ð Ð Ð Ø :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ø >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ø $Ð $Ð $Ð $Ð $Ð $ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð.ð ð ð ð ð ð ð ð ÐÑÔð ØÐÐÐÐÐð 
ˆÔ	˜HÑ	%Ô	%€Ø”J—N’N ?°BÑ7Ô7×=Ò=Ñ?Ô?ÐCWÐWÐ ð
 8<ð&ð &ØÐ%Ô&ð&à˜e C¨¨c¬ NÔ3Ô4ð&ð 
ˆ#„Yð&ð &ð &ð &ðR:,ð :,ð :,Ð (ðx '.¨uÐ%5Ð "àÐ Ø4ð Vð V€DØ€z�$˜ÑÔð VØ!×(Ò(Ð)NÐ)NÐ)VÐ)VÐQUÐ)VÐ)VÑWÔWÐWÐWà!×(Ò(Ð)NÐ)NÈtÑ)TÔ)TÑUÔUÐUÐUðð ð Ð ð" �E˜&˜&  Ð%>ÐAZÑ%ZÑ![Ô![Ñ\Ô\Ñ]Ô]Ð à€ðdð dð dð
 ejðZð Zð Zð Zðð ð ðð ð ðOð Oð Oðð ð ðð ð ðð ð ð ðSð Sð Sð !ð ð ð ð ð ðJð Jð Jð*	Eð 	Eð 	Eð3°4ð 3ð 3ð 3ð 3ð 3ð	-°Tð 	-ð 	-ð 	-ð 	-ð 	-ð &'¨Dð -ð -ð -ð -ð -ð $(ð ,ð ,ð ,ð ,ð ,ð"ð "ð "ð '+ð !.ð !.ð !.ð !.ð !.ðH #'ð 8ð 8ð 8ð 8ð 8ð 23¸!Àð %ð %ð %ð %ð %ð 89ÀÀtð Pð Pð Pð Pð PðAð Að Að-ð -ð -ð (,¸ð .ð .ð .ð .ð .ð( 26ð .ð .ð .ð .ð .ð0ð 0ð 0ð 49¸dð .ð .ð .ð .ð .ð*ð *ð *ðð ð ð ðð ð ðð ð ð-ð -ð -ð$-ð -ð -ð*-ð -ð -ð -ð"$ð $ð $ð $ð-ð -ð -ð&ð &ð &ð:ð :ð :ð-ð -ð -ð -ð NRðTð Tð Tð Tð-ð -ð -ð-ð -ð -ð-ð -ð -ð"ð "ð "ð&,4Ø	„HÔÐ*ð,4à	„HÔÔ!Ð#@ð,4ð 
„HÔÐ*ð,4ð 
„HÔÐ*ð	,4ð
 
„H„O�_ð,4ð 
„J�
ð,4ð 
„HÔÔÐ6ð,4ð 
„H„M�=ð,4ð 
„K�ð,4ð 
„Iˆyð,4ð 
„L�,ð,4ð 
„J�
ð,4ð 
„Iˆyð,4ð 
„K�ð,4ð 
„Iˆyð,4ð  
„Iˆyð!,4ð" 
„LÔÐ&ð#,4ð ,4ð$ 
„L�,ð%,4ð& 
„Iˆyð',4ð( 
„M�=ð),4ð* 
„LÔÐ.ð+,4ð, 
„L�,ð-,4ð. 
„LÔÐ,ð/,4ð0 
ÔÐ4ð1,4ð2 
„J�
ð3,4ð4 
„J�
ð5,4ð6 
„LÔÐ(ð7,4ð8 
ÔÐ*ð9,4ð: 
„LÔÐ8ð;,4ð< 
„L�,ð=,4ð> 
„LÔÐ,ð?,4ð@ 
„H„O�_ðA,4ðB 
„H„O�_ðC,4ðD 
„M�=ðE,4ð ,4ðF 
„LÔÐ.Ø	„O�_Ø	„LÔÐ2Ø	ÔÐ6Ø	„HÔÔÐ!<Ø	„HÔÐ&Ø	„HÔÐ8Ø	„HÔÐ :ØÔÐ&ðW,4ð ,4Ð ˜˜X xÐ/Ô0ð ,ð ,ñ ,ð^ 5ð �u”xÔ*ÔGÑ Hð
))ð ))ð ))ð ))ð ))ˆeñ ))ô ))ð ))ðX_ð _ð _ð _ð _�'ñ _ô _ð _ð,	ð 	ð 	ð 	ð 	˜+ñ 	ô 	ð 	ðCð Cð Cð Cð C�7ñ Cô Cð Cð$ ;?ðð Øðà�7˜?Ô+¨W°]Ô-CÀWÈZÔEXÐXÔYðð ˜x¨¨°¨Ô6Ô7ðð ð	ð ð ð ðDð ð ð ð ˜4ñ ô ð ð@ Hð °°xÀÐ7IÔ1Jð ð ð ð ðð ð ð"°$°u´+ð "À(ÈDÈ6ÐS_ÐK_ÔB`ð "ð "ð "ð "ð &Ð%Ø�u�h Ð5RÐ5RÐSXÑ5YÔ5Yðñ ô €ð -Ð,ØØ€OØØ2Ð2°<Ñ@Ô@ð	ñ ô Ð ð ,Ð+ØØ€NØØ2Ð2°;Ñ?Ô?ð	ñ ô Ð ðð ˜cð ¨cð È(ÐSWÐX[ÔS\ÔJ]ð ð ð ð ðkð kð kð kð kˆvñ kô kð kð\]˜RœYð ]°T¸#´Yð ]ð ]ð ]ð ]ð9ð 9ð 9ð 9ð
ð 
ð 
ð 
ð (,ØØ!)ð	>ð >Øð>à˜$˜sœ)Ô$ð>ð ð>ð �X”ð	>ð
 ð>ð >ð >ð >ð >ð >rH   