Ë
    Q/æjò‘  ã                  óà  — d dl mZ d dlZd dlZd dlZd dlmZ d dlZd dlm	c m
Z d dl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mZ g d¢Z ej2                  ej4                  d	¬
«      Z ed«      d‹d„«       Z ej:                  ddd«      d‹d„«       Z ed«      d‹d„«       Z ed«       ej:                  dddd«      dŒd‹d„«       «       Z  ed«       ej:                  dddddd«      dŒd‹d„«       «       Z!	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d�d„Z"	 	 	 	 	 	 	 	 	 	 	 	 dŽd„Z#	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d�d„Z$ ed ejJ                  ddd¬«      g¬ «       ed! ejJ                  d"d#d¬«      g¬ «       ed$ ejJ                  d%d&d¬«      g¬ «       ed' ejJ                  d(dd)¬«      g¬ «       ed* ejJ                  d+d#d)¬«      g¬ «       ed, ejJ                  d-d&d)¬«      g¬ «      d�d.„«       «       «       «       «       «       Z&	 	 	 	 	 	 	 	 	 	 d‘d/„Z' ed0 ejJ                  d1d«      g¬ «       ed2 ejJ                  d3d#«      g¬ «       ed4 ejJ                  d5d&«      g¬ «      d6„ «       «       «       Z( ed7 ejJ                  d8d&d9«      g¬ «       ed: ejJ                  d;d<d9«      g¬ «       ed= ejJ                  d>d?d9«      g¬ «       ed@ ejJ                  dAd&dB«      g¬ «       edC ejJ                  dDd<dB«      g¬ «       edE ejJ                  dFd?dB«      g¬ «      dG„ «       «       «       «       «       «       Z) edH«      	 	 d‹dI„«       Z*	 dŒ	 	 	 	 	 	 	 	 	 	 	 d’dJ„Z+ edK«      d‹dL„«       Z, edM«       ej:                  ddN«      d‹dO„«       «       Z- edP«      d‹dQ„«       Z. edR«       ej:                  ddddddddd«	      	 	 d‹dS„«       «       Z/ edT«       ej:                  ddddd«      	 	 d“	 d‹dU„«       «       Z0 edV«      d‹dW„«       Z1 edX«      d‹dY„«       Z2 edZ«      d‹d[„«       Z3 ed\«      d‹d]„«       Z4 ed^«       ej:                  dd_d_d_«      d‹d`„«       «       Z5 eda«      	 	 d‹db„«       Z6 edc«      	 	 d‹dd„«       Z7 ede«      d‹df„«       Z8 edg«      d‹dh„«       Z9 edi«      d‹dj„«       Z: edk«      d‹dl„«       Z; edm«      d‹dn„«       Z< edo«      	 	 d‹dp„«       Z= edq«      	 	 d‹dr„«       Z> eds«      	 	 d‹dt„«       Z? edu«       ej:                  dddd_dd«      	 	 d‹dv„«       «       Z@ edw«      	 	 d‹dx„«       ZA edy«      	 	 d‹dz„«       ZB ed{«      	 	 d‹d|„«       ZC ed}«      	 	 d‹d~„«       ZD ed«      	 	 d‹d€„«       ZE ed�«      	 	 d‹d‚„«       ZF edƒ«      	 	 d‹d„„«       ZG ed…«      	 	 d‹d†„«       ZH ed‡«      	 	 d‹dˆ„«       ZI ed‰«       ej:                  dddd«      	 	 	 	 	 	 	 	 	 	 	 	 d”dŠ„«       «       ZJy)•é    )ÚannotationsN)ÚSequence)Ú_C)Ú
_constantsÚ_type_utilsÚerrorsÚsymbolic_helperÚsymbolic_opset9)ÚGLOBALS)Ú	jit_utilsÚregistration)"Ú
dequantizeÚdivÚembedding_bagÚfake_quantize_per_tensor_affineÚflipÚfmodÚisfiniteÚisinfÚ
nan_to_numÚquantize_per_tensorÚquantized_add_reluÚquantized_addÚquantized_catÚquantized_conv1d_reluÚquantized_conv2d_reluÚquantized_conv3d_reluÚquantized_conv1dÚquantized_conv2dÚquantized_conv3dÚquantized_conv_transpose1dÚquantized_conv_transpose2dÚquantized_conv_transpose3dÚquantized_group_normÚquantized_hardswishÚquantized_instance_normÚquantized_layer_normÚquantized_leaky_reluÚquantized_linearÚquantized_linear_reluÚquantized_mulÚquantized_sigmoidÚsliceÚsortÚtopké
   )Úopsetz	aten::divc                óh   — t        |«      dk(  rt        j                  | ||«      S t        | ||g|¢­Ž S ©Nr   )ÚlenÚopset9Útrue_divideÚ_div_rounding_mode)ÚgÚselfÚotherÚargss       ú^/root/repos/pocs/video-evals/.venv/lib/python3.12/site-packages/torch/onnx/symbolic_opset10.pyr   r   L   s6   € ä
ˆ4ƒy�A‚~Ü×!Ñ! ! T¨5Ó1Ð1ä! ! T¨5Ð8°4Ò8Ð8ó    ÚvÚsc                óV   — |dk(  rt        | ||«      S t        j                  | |||«      S )NÚfloor)Ú_floor_divider5   r7   )r8   r9   r:   Úrounding_modes       r<   r7   r7   T   s0   € à˜ÒÜ˜Q  eÓ,Ð,ä×(Ñ(¨¨D°%¸ÓGÐGr=   zaten::_floor_dividec                óð  — t        j                  |«      st        j                  |«      r)t        j                  | ||«      }| j	                  d|«      S | j	                  d||«      }| j	                  dt        j                  dt
        j                  ¬«      ¬«      }| j	                  d| j	                  d||«      | j	                  d||«      «      }| j	                  d	||d¬
«      }| j	                  d|| j	                  d| j	                  d||«      «      «      }| j	                  dt        j                  dt
        j                  ¬«      ¬«      }	| j	                  d||	«      }
| j	                  d||
|«      S )NÚFloorÚDivÚConstantr   ©Údtype©Úvalue_tÚXorÚLessÚMod©Úfmod_iÚAndÚNotÚEqualé   ÚSubÚWhere)r	   Ú_is_fpr5   r6   ÚopÚtorchÚtensorÚint64)r8   r9   r:   Úoutr   ÚzeroÚnegativeÚmodÚ
fixup_maskÚoneÚfixups              r<   rB   rB   \   s-  € ä×Ñ˜dÔ#¤×'=Ñ'=¸eÔ'DÜ× Ñ   D¨%Ó0ˆØ�t‰t�G˜SÓ!Ð!ð �d‰d�5˜$ Ó&ˆà�t‰t�J¬¯©°Q¼e¿k¹kÔ(JˆtÓKˆØ—4‘4˜˜qŸt™t F¨D°$Ó7¸¿¹¸fÀeÈTÓ9RÓSˆð �d‰d�5˜$ ¨aˆdÓ0ˆØ—T‘T˜% ¨1¯4©4°°q·t±t¸GÀSÈ$Ó7OÓ+PÓQˆ
à�d‰d�:¤u§|¡|°A¼U¿[¹[Ô'IˆdÓJˆØ—‘�U˜C Ó%ˆØ�t‰t�G˜Z¨°Ó4Ð4r=   z
aten::sortÚiÚnonec                ó6   — t        j                  | ||||¬«      S )N)Ú	decendingr\   )r	   Ú_sort_helper)r8   r9   Údimrf   r\   s        r<   r.   r.   q   s   € ô ×'Ñ'¨¨4°À	ÈsÔSÐSr=   z
aten::topkc           	     ó:   — t        j                  | ||||||¬«      S )N)ÚlargestÚsortedr\   )r	   Ú_topk_helper)r8   r9   Úkrh   rj   rk   r\   s          r<   r/   r/   w   s&   € ô ×'Ñ'Ø	ˆ4��C °¸Sôð r=   c                ó¶  — | j                  d| j                  d|«      «      }||k(  rH| j                  d|| j                  dt        j                  dgt        j                  ¬«      ¬«      «      }| j                  d|d	|||||¬
«      \  }	}
||k(  rH| j                  d|	| j                  dt        j                  dgt        j                  ¬«      ¬«      «      }	|	S )NÚSizeÚShapeÚ	UnsqueezerG   r   rH   rJ   ÚMaxPoolé   ©ÚoutputsÚceil_mode_iÚdilations_iÚkernel_shape_iÚpads_iÚ	strides_iÚSqueeze©rX   rY   rZ   r[   )r8   r9   Úkernel_shapeÚstridesÚpadsÚ	dilationsÚ	ceil_modeÚunbatched_rankÚ	self_rankÚpool_resultÚ_s              r<   Ú_aten_max_pool_onnxr†      sÔ   € ð —‘�V˜QŸT™T '¨4Ó0Ó1€IØ�NÒ"Ø�t‰tØØØ�D‰D�¤U§\¡\°1°#¼U¿[¹[Ô%IˆDÓJó
ˆð —T‘TØØØØØØ#ØØð ó 	�N€K�ð �NÒ"Ø—d‘dØØØ�D‰D�¤U§\¡\°1°#¼U¿[¹[Ô%IˆDÓJó
ˆð Ðr=   c                ó^  — t        |t        «      r|g| z  }t        |t        «      r|g| z  }n|}t        |t        «      r
|g| z  dz  }nAt        |«      dk(  r	|| z  dz  }n*t        |«      dk(  r|dz  }nt        |«      dk(  r|dz  }n|}t        |t        «      r|g| z  }n|s|}n|}||||fS )ú:Adjust attributes of avg_pool to match ONNX specification.rs   rT   é   ©Ú
isinstanceÚintr4   )Úexpand_sizeÚkernel_sizeÚstrideÚpaddingÚdilationr}   r   r~   s           r<   Ú_adjust_attributes_of_max_poolr’   §   sÎ   € ô �(œCÔ Ø�: Ñ+ˆä�+œsÔ#Ø#�} {Ñ2‰à"ˆä�'œ3ÔØˆy˜;Ñ&¨Ñ*‰Ü	ˆW‹˜Ò	Ø˜Ñ$ qÑ(‰Ü	ˆW‹˜Ò	à˜‰{‰Ü	ˆW‹˜Ò	à˜‰{‰ð
 ˆä�&œ#ÔØ�(˜[Ñ(‰ÙØ‰àˆà˜' 4¨Ð2Ð2r=   c                ór  — | j                  d| j                  d|«      «      }||k(  rH| j                  d|| j                  dt        j                  dgt        j                  ¬«      ¬«      «      }| j                  d|d	|||||¬
«      \  }}| j                  d|d	|||¬«      \  }}| j                  dt        j                  |«      ¬«      }| j                  dt        j                  |	«      ¬«      }| j                  dt        j                  |
«      ¬«      }| j                  d||||«      }| j                  d||«      }||k(  rp| j                  d|t        j                  dgt        j                  ¬«      ¬«      }| j                  d|t        j                  dgt        j                  ¬«      ¬«      }||fS )Nro   rp   rq   rG   r   rH   rJ   rr   rs   rt   )ru   rw   rx   rz   ÚSlicerU   r{   r|   )r8   r9   r}   r~   r   r€   r�   r‚   Ú
n_dims_oneÚn_dims_zeroÚn_dims_axesrƒ   r„   Úindicesr…   Úflatten_indicesÚendsÚstartsÚaxesÚdeltas                       r<   Ú _aten_max_pool_with_indices_onnxrž   Ò   sš  € ð —‘�V˜QŸT™T '¨4Ó0Ó1€IØ�NÒ"Ø�t‰tØØØ�D‰D�¤U§\¡\°1°#¼U¿[¹[Ô%IˆDÓJó
ˆð Ÿ4™4ØØØØØØ#ØØð  ó 	Ñ€K�ð Ÿ™ØØØØØ!Øð ó Ñ€A€ð �4‰4�
¤E§L¡L°Ó$<ˆ4Ó=€DØ�T‰T�*¤e§l¡l°;Ó&?ˆTÓ@€FØ�4‰4�
¤E§L¡L°Ó$=ˆ4Ó>€Dà�D‰D�˜/¨6°4¸Ó>€EØ�d‰d�5˜' 5Ó)€Gà�NÒ"Ø—d‘dØ�{¬E¯L©L¸!¸ÄEÇKÁKÔ,Pð ó 
ˆð —$‘$�y '´5·<±<ÀÀÌ5Ï;É;Ô3W�$ÓXˆà˜Ð!Ð!r=   zaten::max_pool1dÚ
max_pool1drT   F)Úreturn_indices)Údecoratezaten::max_pool2dÚ
max_pool2drs   zaten::max_pool3dÚ
max_pool3dr‰   zaten::max_pool1d_with_indicesÚmax_pool1d_with_indicesTzaten::max_pool2d_with_indicesÚmax_pool2d_with_indiceszaten::max_pool3d_with_indicesÚmax_pool3d_with_indicesc           	     ó¨   ‡‡— t        j                  dddddd«      t        j                  dddddd«      	 	 	 	 	 	 	 	 	 	 	 	 	 	 dˆˆfd„«       «       }|S )NTFr>   Úisrc   c                óØ   •— t        ‰||||«      \  }}}	}
‰r:t        | ||||	|
|‰dz   dg‰z  dg‰z  t        ‰«      D �cg c]  }d|z   ‘Œ	 c}«      S t        | ||||	|
|‰dz   «      S c c}w )NrT   r   rs   )r’   rž   Úranger†   )r8   ÚinputrŽ   r�   r�   r‘   r�   r}   r~   r   r€   rc   r�   r    s               €€r<   Úsymbolic_fnz_max_pool.<locals>.symbolic_fn5  s­   ø€ ô 2PØ˜ f¨g°xó2
Ñ.ˆ�g˜t Yñ Ü3ØØØØØØØØ˜a‘Ø��{Ñ"Ø��{Ñ"Ü!& {Ó!3Ö4˜A�!�a“%Ò4óð ô 'ØØØØØØØØ˜a‘ó	ð 	ùò 5s   ¿A')r8   újit_utils.GraphContextr«   ú_C.ValuerŽ   úSequence[int]r�   r¯   r�   úint | Sequence[int]r‘   r¯   r�   Úbool©r	   Úquantized_argsÚ
parse_args)Únamer�   r    r¬   s    `` r<   Ú	_max_poolr¶   
  s—   ù€ ôV ×#Ñ# D¨%°¸¸uÀeÓLÜ×Ñ  T¨4°°t¸SÓAð%Ø!ð%àð%ð #ð%ð ð	%ð
 %ð%ð  ð%ð õ%ó Bó Mð%ðN Ðr=   c                ó  — t        |t        «      r|g| z  }n|}t        |t        «      r
|g| z  dz  }n0t        |«      dk(  r	|| z  dz  }nt        |«      dk(  r|| z  }n|dz  }t        |t        «      r|g| z  }n|s|}n|}|||fS )rˆ   rs   rT   rŠ   )r�   rŽ   r�   r�   r}   r   r~   s          r<   Ú_adjust_attributes_of_avg_poolr¸   b  s¤   € ô �+œsÔ#Ø#�} {Ñ2‰à"ˆä�'œ3ÔØˆy˜;Ñ&¨Ñ*‰Ü	ˆW‹˜Ò	Ø˜Ñ$ qÑ(‰Ü	ˆW‹˜Ò	Ø˜Ñ$‰à˜‰{ˆä�&œ#ÔØ�(˜[Ñ(‰ÙØ‰àˆà˜' 4Ð(Ð(r=   zaten::avg_pool1dÚ
avg_pool1dzaten::avg_pool2dÚ
avg_pool2dzaten::avg_pool3dÚ
avg_pool3dc           
     ó¦   ‡— t        j                  ddddddd«      t        j                  ddddddd«      	 d	 	 	 	 	 	 	 	 	 	 	 d	ˆfd„«       «       }|S )
NTFr>   r¨   rc   rd   c           	     ó\   •— t        ‰|||«      \  }}	}
| j                  d|||||
|	¬«      }|S )NÚAveragePool)rv   Úcount_include_pad_irx   ry   rz   )r¸   rX   )r8   r«   rŽ   r�   r�   r�   Úcount_include_padÚdivisor_overrider}   r~   r   Úresultr�   s               €r<   r¬   z_avg_pool.<locals>.symbolic_fn�  sQ   ø€ ô 'EØ˜ f¨gó'
Ñ#ˆ�g˜tð —‘ØØØ!Ø 1Ø'ØØð ó 
ˆð ˆr=   ©N)r«   r®   rŽ   r¯   r�   r¯   r�   r°   r�   rŒ   rÀ   rŒ   r²   )rµ   r�   r¬   s    ` r<   Ú	_avg_poolrÄ   ‚  s–   ø€ ô ×#Ñ# D¨%°¸¸uÀeÈUÓSÜ×Ñ  T¨4°°s¸CÀÓHð ðàðð #ðð ð	ð
 %ðð ðð ôó Ió Tðð4 Ðr=   zaten::upsample_nearest1dÚupsample_nearest1dÚnearestzaten::upsample_nearest2dÚupsample_nearest2dé   zaten::upsample_nearest3dÚupsample_nearest3dé   zaten::upsample_linear1dÚupsample_linear1dÚlinearzaten::upsample_bilinear2dÚupsample_bilinear2dzaten::upsample_trilinear3dÚupsample_trilinear3dc                óN   ‡ ‡‡— t        j                  ddd«      ˆˆˆ fd„«       }|S )NTFc                ó  •— t        j                  | ‰|«      \  }}t        j                  ‰«       t        j                  |«      }|rt        j                  ‰d|«      S |€t        j
                  | ||‰«      }| j                  d||‰¬«      S )Nzalign_corners == TrueÚResize©Úmode_s)r	   Ú_get_interpolate_attributesÚ_interpolate_warningÚ_maybe_get_scalarÚ_unimplementedÚ_interpolate_size_to_scalesrX   )	r8   r«   Úoutput_sizer;   ÚscalesÚalign_cornersrh   Úinterpolate_moderµ   s	         €€€r<   r¬   z!_interpolate.<locals>.symbolic_fnÇ  s“   ø€ ä /× KÑ KØÐ ó!
Ñˆ�ô 	×,Ñ,Ð-=Ô>Ü'×9Ñ9¸-ÓHˆÙÜ"×1Ñ1°$Ð8OÐQVÓWÐWØˆ>Ü$×@Ñ@Ø�5˜+ sóˆFð �t‰t�H˜e VÐ4DˆtÓEÐEr=   )r	   r³   )rµ   rh   rÜ   r¬   s   ``` r<   Ú_interpolaterÝ   ®  s0   ú€ ô2 ×#Ñ# D¨%°Ó7õFó 8ðFð Ðr=   zaten::__interpolatec                óf   — t        j                  | |||||«      \  }}| j                  d|||¬«      S )NrÑ   rÒ   )r	   Ú _interpolate_get_scales_and_moderX   )	r8   r«   ÚsizeÚscale_factorÚmoderÛ   Úrecompute_scale_factorÚ	antialiasrÚ   s	            r<   Ú__interpolaterå   Ù  s>   € ô #×CÑCØ	ˆ5�$˜ d¨Mó�L€FˆDð �4‰4�˜% °ˆ4Ó5Ð5r=   c                óH  ‡ ‡— d„ Šdˆ ˆfd„	}d„ } ||«      dk(  r( ||«      t         j                  k(  r|� ||«      dk(  r|S  ||«      } ||d¬«      } ||t         j                  ¬«      }|€‰ j                  d||||«      S  ||d¬«      }‰ j                  d|||||«      S )	Nc                óê   — | €yt        | t        j                  j                  «      xrK | j	                  «       j                  «       dk(  xr( t        | j                  «       t        j                  «      S )NTzprim::Constant)r‹   rY   r   ÚValueÚnodeÚkindÚtypeÚNoneType)Úvalues    r<   Úis_none_valuez_slice.<locals>.is_none_valueò  sW   € Øˆ=Øä�uœeŸh™hŸn™nÓ-ò 6Ø—
‘
“×!Ñ!Ó#Ð'7Ñ7ò6ä˜5Ÿ:™:›<¬¯©Ó5ð	
r=   c                óN  •—  ‰| «      r|�|g} t        | t        t        j                  f«      r&‰j	                  dt        j
                  | «      ¬«      S t        j                  | «      }|dk(  rt        j                  ‰| dg«      S |dk(  r| S t        j                  d|› �| «      ‚)NrG   rJ   r   rT   zRank must be 0 or 1, not )r‹   ÚlistrY   ÚTensorrX   rZ   r	   Ú_get_tensor_rankÚ_unsqueeze_helperr   ÚSymbolicValueError)Úlist_or_valueÚdefault_valueÚrankr8   rî   s      €€r<   Úto_slice_inputz_slice.<locals>.to_slice_inputû  s    ø€ á˜Ô'¨MÐ,EØ*˜OˆMä�m¤d¬E¯L©LÐ%9Ô:Ø—4‘4˜
¬E¯L©L¸Ó,G�4ÓHÐHä×/Ñ/°Ó>ˆØ�1Š9Ü"×4Ñ4°Q¸ÈÀsÓKÐKØ�1Š9Ø Ð Ü×'Ñ'Ø'¨ vÐ.°ó
ð 	
r=   c                ó–   — t        | t        t        j                  f«      rt	        | «      dk(  r| d   S y t        j                  | d«      S )NrT   r   rc   )r‹   rð   rY   rñ   r4   r	   Ú_maybe_get_const)rõ   s    r<   Úget_const_valuez_slice.<locals>.get_const_value  sC   € Ü�m¤d¬E¯L©LÐ%9Ô:Ü�=Ó! QÒ&Ø$ QÑ'Ð'ØÜ×/Ñ/°¸sÓCÐCr=   r   rT   )rö   r”   rÃ   )r   Ú	INT64_MAXrX   )	r8   r«   rœ   r›   rš   Ústepsrø   rû   rî   s	   `       @r<   Ú_slicerþ   ê  s´   ù€ ò
ö
ò"Dñ 	˜Ó 1Ò$Ù˜DÓ!¤Z×%9Ñ%9Ò9Øˆ]™o¨eÓ4¸Ò9àˆá˜$Ó€DÙ˜F°!Ô4€FÙ˜$¬j×.BÑ.BÔC€DØ€}Ø�t‰t�G˜U F¨D°$Ó7Ð7Ù˜5°Ô2€EØ�4‰4�˜ ¨¨d°EÓ:Ð:r=   zaten::slicec                óÀ   — t        |«      dk(  r|\  }}}}n.t        |«      dk(  r
|\  }}}dg}nt        j                  d|«      ‚t        j                  | |||||¬«      S )NrÈ   r‰   r   zUnknown aten::slice signature©rœ   r›   rš   rý   )r4   r   rô   r	   Ú_slice_helper)r8   r9   r;   ÚdimsÚstartÚendÚsteps          r<   r-   r-   $  sr   € ä
ˆ4ƒy�A‚~à!%Ñˆˆe�S™$Ü	ˆT‹�aŠàÑˆˆs�DØˆs‰ä×'Ñ'Ð(GÈÓNÐNä×(Ñ(Ø	ØØØØØôð r=   z
aten::flipr¨   c                ó¤   — t        j                  | ||dgt        |«      z  t        j                   gt        |«      z  dgt        |«      z  ¬«      S )Néÿÿÿÿr   )r	   r  r4   r   rü   )r8   r«   r  s      r<   r   r   :  sT   € ô ×(Ñ(Ø	ØØØˆt”c˜$“iÑÜ×#Ñ#Ð#Ð$¤s¨4£yÑ0Øˆd”S˜“YÑôð r=   z
aten::fmodc                ó,   — | j                  d||d¬«      S )NrN   rT   rO   )rX   )r8   r«   r:   s      r<   r   r   G  s   € à�4‰4��u˜e¨Aˆ4Ó.Ð.r=   zaten::embedding_bagc
                ó   — |r%t         j                  rt        j                  d«      S |	�|	dk\  rt	        d«      ‚t        j                  d«       t        j                  |d«      }
|
��S|r|
dz
  }|}nO|
}|| j                  dt        j                  t        j                  g«      ¬«      g} | j                  dg|¢­d	diŽ}g }t        |«      D �]Í  }t        j                  | t        j                   | |t        j                  d«      t        j                  |«      «      dg«      }t        j                  | t        j                   | |t        j                  d«      t        j                  |dz   «      «      dg«      }| j                  dt        j                  dg«      ¬«      }| j                  d
||||«      }| j                  d||«      }t        j"                  |«      s@| j                  d
||||«      }t        j                  | |dg«      }| j                  d||«      }|dk(  rt        j$                  | |dgd¬«      }n2|dk(  r| j                  d|dgd¬«      }n| j                  d|dgd¬«      }t        j                  | |dg«      }|j'                  |«       �ŒÐ  | j                  dg|¢­d	diŽ}|d d d fS t        j                  d«      S )Nz7embedding_bag with scale_grad_by_freq for training moder   zembedding_bag with padding_idxzžExport of embedding_bag with dynamic input/offsets shape is not supported in opset 10. Please use opset 11 or higher to export model for dynamic input shape.'rT   rG   rJ   ÚConcatÚaxis_ir”   ÚGatherÚMul)Úaxes_iÚ
keepdims_iÚ
ReduceMeanÚ	ReduceMaxziembedding_bag with unknown shape of offsets for opset 10 is not supported. please use opset 11 or higher.)r   Úexport_trainingr	   Ú_onnx_unsupportedÚRuntimeErrorÚwarningsÚwarnÚ_get_tensor_dim_sizerX   rY   rZ   ÚsysÚmaxsizerª   ró   r5   ÚselectÚ_is_noneÚ_reducesum_helperÚappend)r8   Úembedding_matrixr˜   ÚoffsetsÚscale_grad_by_freqrâ   ÚsparseÚper_sample_weightsÚinclude_last_offsetÚpadding_idxÚoffsets_dim_0Ú
offset_lenÚoffsets_extendedÚlist_rc   Ústart_Úend_Úaxes_Úindices_rowÚ
embeddingsÚper_sample_weights_rowÚoutputs                         r<   r   r   L  sÒ  € ñ œg×5Ò5Ü×0Ñ0ØEó
ð 	
ð Ð ;°!Ò#3ÜÐ;Ó<Ð<ä‡M�Mð	Rôô $×8Ñ8¸À!ÓD€MØÑ ÙØ&¨Ñ*ˆJØ&Ñà&ˆJàØ—‘�Z¬¯©´s·{±{°mÓ)D�ÓEð Ðð  $˜qŸt™t HÐJÐ/?ÒJÈÑJÐØˆÜ�zÓ"ó #	%ˆAÜ$×6Ñ6ØÜ—‘˜aÐ!1´5·<±<À³?ÄEÇLÁLÐQRÃOÓTØ�óˆFô
 #×4Ñ4ØÜ—‘ØÐ'¬¯©°a«¼%¿,¹,ÀqÈ1ÁuÓ:Móð �óˆDð —D‘D˜¬U¯\©\¸1¸#Ó->�DÓ?ˆEØŸ$™$˜w¨°¸¸uÓEˆKàŸ™˜hÐ(8¸+ÓFˆJÜ"×+Ñ+Ð,>Ô?Ø)*¯©ØÐ/°¸¸uó*Ð&ô *9×)JÑ)JØÐ-°¨só*Ð&ð ŸT™T %¨Ð5KÓL�
Ø�qŠyÜ,×>Ñ>Ø�z¨1¨#¸!ô‘
ð ˜’ØŸT™T ,°
ÀAÀ3ÐST˜TÓU‘
àŸT™T +¨zÀ1À#ÐRS˜TÓT�
ä(×:Ñ:¸1¸jÈ1È#ÓNˆJØ�L‰L˜Ö$ðG#	%ðJ �—‘�hÐ1 Ò1¨qÑ1ˆð �t˜T 4Ð'Ð'ä×0Ñ0ð-ó
ð 	
r=   z%aten::fake_quantize_per_tensor_affinec           	     ó$  — ||fdk(  rt        j                  dddd|«       ||fdvrt        j                  d|› d|› d	�|«      ‚t        j                  |«      }|€t        j                  dddd
|«       |j                  «       j                  }|dk(  r-| j                  d|t        j                  j                  ¬«      }n,| j                  d|t        j                  j                  ¬«      }| j                  d| j                  d|||«      ||«      S )N)r   é   r   r0   é   z=Quantize range (0, 127) not supported, requires opset 13 Clip))r   éÿ   ©i€ÿÿÿr1  zLFor (quant_min, quant_max), ONNX allows only (0, 255) and (-128, 127). Got (z, ú)z Non-constant scale not supportedr   ÚCast©Úto_iÚDequantizeLinearÚQuantizeLinear)r	   Ú _onnx_opset_unsupported_detailedr   rô   rÖ   ÚfloatÚdatarX   Ú_C_onnxÚTensorProtoDataTypeÚUINT8ÚINT8)r8   ÚinputsÚscaleÚ
zero_pointÚ	quant_minÚ	quant_maxs         r<   r   r   ¢  s&  € ð 	�9Ð Ò)Ü×8Ñ8Ø-ØØØKØô	
ð 	�9ÐÐ%<Ñ<Ü×'Ñ'ðØ�;˜b  ¨1ð.àó
ð 	
ô
 ×-Ñ-¨eÓ4€EØ€}Ü×8Ñ8Ø-ØØØ.Øô	
ð �K‰K‹M×Ñ€EØ�A‚~Ø—T‘T˜& *´7×3NÑ3N×3TÑ3T�TÓU‰
à—T‘T˜& *´7×3NÑ3N×3SÑ3S�TÓTˆ
Ø�4‰4ØØ	�‰Ð˜v u¨jÓ9ØØó	ð r=   zaten::isinfc                óz   — | j                  d| j                  d|t        j                  j                  ¬«      «      S )NÚIsInfr6  r7  )rX   r>  r?  ÚDOUBLE©r8   r«   s     r<   r   r   Ò  s.   € à�4‰4�˜Ÿ™˜f e´'×2MÑ2M×2TÑ2T˜ÓUÓVÐVr=   zaten::isfinitec                óœ   — t        | |«      }t        j                  | |«      }t        j                  | t        j                  | ||«      «      S rÃ   )r   r5   ÚisnanÚ__not_Ú__or_)r8   r«   Úinf_nodeÚnan_nodes       r<   r   r   ×  s;   € ä�Q˜‹€HÜ�|‰|˜A˜uÓ%€HÜ�=‰=˜œFŸL™L¨¨H°hÓ?Ó@Ð@r=   zaten::quantize_per_tensorc                ó"  — t        j                  |dd«      }| j                  d|t        j                  |«      j                  «       ¬«      }| j                  d|t        j                  j                  ¬«      }t        j                  | |||«      S )Nrc   rI   r6  r7  )
r	   Ú
_get_constrX   r   ÚJitScalarTypeÚ	onnx_typer>  r?  ÚFLOATÚquantize_helper)r8   r«   rC  rD  rI   s        r<   r   r   Þ  s}   € ä×&Ñ& u¨c°7Ó;€Eà—‘Ø�
¤×!:Ñ!:¸5Ó!A×!KÑ!KÓ!Mð ó €Jð �D‰D�˜¤W×%@Ñ%@×%FÑ%FˆDÓG€EÜ×*Ñ*¨1¨e°U¸JÓGÐGr=   zaten::dequantizec                ó4   — t        j                  | |«      d   S r3   )r	   Údequantize_helperrJ  s     r<   r   r   é  s   € ä×,Ñ,¨Q°Ó6°qÑ9Ð9r=   zaten::nan_to_numÚfc                óî  — t        j                  |«      s|S t        j                  j	                  |«      j                  «       }|€d}t        j                  | |«      }| j                  d|| j                  dt        j                  |g|¬«      ¬«      |«      }t        j                  |«      }|€|j                  }t        j                  | t        | |«      t        j                  | || j                  dt        j                   dg«      ¬«      «      «      }	| j                  d|	| j                  dt        j                  |g|¬«      ¬«      |«      }
|€|j"                  }t        j                  | t        | |
«      t        j$                  | |
| j                  dt        j                   dg«      ¬«      «      «      }| j                  d|| j                  dt        j                  |g|¬«      ¬«      |
«      S )Nç        rV   rG   rH   rJ   r   )r	   rW   r   rS  Ú
from_valuerI   r5   rL  rX   rY   rZ   ÚfinfoÚmaxÚlogical_andr   ÚgtÚ
LongTensorÚminÚlt)r8   r«   ÚnanÚposinfÚneginfÚinput_dtypeÚnan_condÚ
nan_resultr]  Úposinf_condÚnan_posinf_resultÚneginf_conds               r<   r   r   î  sµ  € ô
 ×!Ñ! %Ô(ØˆÜ×+Ñ+×6Ñ6°uÓ=×CÑCÓE€KØ
€{ØˆÜ�|‰|˜A˜uÓ%€HØ—‘ØØØ	�‰ˆZ¤§¡¨s¨e¸;Ô!GˆÓHØó	€Jô �K‰K˜Ó$€EØ€~Ø—‘ˆÜ×$Ñ$Ø	Üˆa�ÓÜ�	‰	�!�Z §¡ j¼%×:JÑ:JÈAÈ3Ó:O Ó!PÓQó€Kð
 Ÿ™ØØØ	�‰ˆZ¤§¡¨v¨h¸kÔ!JˆÓKØó	Ðð €~Ø—‘ˆÜ×$Ñ$Ø	ÜˆaÐ"Ó#Ü�	‰	ØÐ  !§$¡$ z¼5×;KÑ;KÈQÈCÓ;P $Ó"Qó	
ó€Kð �4‰4ØØØ	�‰ˆZ¤§¡¨v¨h¸kÔ!JˆÓKØó	ð r=   zquantized::linearc                ó4  — t        j                  | |«      \  }}}}t        j                  | |«      \  }	}
}}t        j                  | |||
«      }t        j                  | |«      \  }}}}t        j                  | ||	|«      }t        j
                  | |||«      S rÃ   )r	   rX  Úrequantize_bias_helperr5   rÌ   rV  ©r8   Úq_inputÚq_weightÚbiasÚop_scaleÚop_zero_pointr«   Úinput_scaler…   ÚweightÚweight_scaleÚq_biasr/  s                r<   r)   r)   &  s•   € ô  /×@Ñ@ÀÀGÓLÑ€Eˆ;˜˜1Ü!0×!BÑ!BÀ1ÀhÓ!OÑ€FˆL˜!˜QÜ×3Ñ3°A°t¸[È,ÓW€FÜ#×5Ñ5°a¸Ó@�M€Dˆ!ˆQ�ä�]‰]˜1˜e V¨TÓ2€Fä×*Ñ*¨1¨f°hÀÓNÐNr=   zquantized::linear_reluc                ó`  — t        j                  | |«      \  }}}}t        j                  | |«      \  }	}
}}t        j                  | |||
«      }t        j                  | |«      \  }}}}t        j                  | ||	|«      }t        j
                  | |«      }t        j                  | |||«      S rÃ   )r	   rX  rn  r5   rÌ   ÚrelurV  ro  s                r<   r*   r*   4  s¥   € ô  /×@Ñ@ÀÀGÓLÑ€Eˆ;˜˜1Ü!0×!BÑ!BÀ1ÀhÓ!OÑ€FˆL˜!˜QÜ×3Ñ3°A°t¸[È,ÓW€FÜ#×5Ñ5°a¸Ó@�M€Dˆ!ˆQ�ä�]‰]˜1˜e V¨TÓ2€FÜ�[‰[˜˜FÓ#€Fä×*Ñ*¨1¨f°hÀÓNÐNr=   zquantized::addc                óÌ   — t        j                  | |«      \  }}}}t        j                  | |«      \  }}}}t        j                  | ||«      }t        j                  | |||«      S rÃ   )r	   rX  r5   ÚaddrV  ©r8   ÚxÚyrs  rt  r…   r/  s          r<   r   r   C  ó_   € ä ×2Ñ2°1°aÓ8�J€A€qˆ!ˆQÜ ×2Ñ2°1°aÓ8�J€A€qˆ!ˆQä�Z‰Z˜˜1˜aÓ €Fä×*Ñ*¨1¨f°hÀÓNÐNr=   zquantized::add_reluc                óø   — t        j                  | |«      \  }}}}t        j                  | |«      \  }}}}t        j                  | ||«      }t        j                  | |«      }t        j
                  | |||«      S rÃ   )r	   rX  r5   r|  rz  rV  r}  s          r<   r   r   M  so   € ä ×2Ñ2°1°aÓ8�J€A€qˆ!ˆQÜ ×2Ñ2°1°aÓ8�J€A€qˆ!ˆQä�Z‰Z˜˜1˜aÓ €FÜ�[‰[˜˜FÓ#€Fä×*Ñ*¨1¨f°hÀÓNÐNr=   zquantized::mulc                óÌ   — t        j                  | |«      \  }}}}t        j                  | |«      \  }}}}t        j                  | ||«      }t        j                  | |||«      S rÃ   )r	   rX  r5   ÚmulrV  r}  s          r<   r+   r+   X  r€  r=   zquantized::hardswishc                ó”   — t        j                  | |«      \  }}}}t        j                  | |«      }t        j                  | |||«      S rÃ   )r	   rX  r5   Ú	hardswishrV  ©r8   r~  rs  rt  r…   r/  s         r<   r%   r%   b  sE   € ä ×2Ñ2°1°aÓ8�J€A€qˆ!ˆQä×Ñ˜a Ó#€Fä×*Ñ*¨1¨f°hÀÓNÐNr=   zquantized::sigmoidc                ó”   — t        j                  | |«      \  }}}}t        j                  | |«      }t        j                  | |||«      S rÃ   )r	   rX  r5   ÚsigmoidrV  r†  s         r<   r,   r,   k  sC   € ä ×2Ñ2°1°aÓ8�J€A€qˆ!ˆQä�^‰^˜A˜qÓ!€Fä×*Ñ*¨1¨f°hÀÓNÐNr=   zquantized::leaky_reluc                ó˜   — t        j                  | |«      \  }}}}t        j                  | |||«      }t        j                  | |||«      S rÃ   )r	   rX  r5   Ú
leaky_relurV  )r8   r~  Únegative_slopeÚinplacers  rt  r…   r/  s           r<   r(   r(   t  sK   € ô !×2Ñ2°1°aÓ8�J€A€qˆ!ˆQä×Ñ˜q ! ^°WÓ=€Fä×*Ñ*¨1¨f°hÀÓNÐNr=   zquantized::layer_normc           	     óž   — t        j                  | |«      \  }}}}t        j                  | |||||d«      }	t        j                  | |	||«      S ©NF)r	   rX  r5   Ú
layer_normrV  )
r8   r~  Únormalized_shaperv  rr  Úepsrs  rt  r…   r/  s
             r<   r'   r'     sR   € ô !×2Ñ2°1°aÓ8�J€A€qˆ!ˆQä×Ñ˜q !Ð%5°v¸tÀSÈ%ÓP€Fä×*Ñ*¨1¨f°hÀÓNÐNr=   zquantized::group_normc           	     óž   — t        j                  | |«      \  }}}}t        j                  | |||||d«      }	t        j                  | |	||«      S rŽ  )r	   rX  r5   Ú
group_normrV  )
r8   r~  Ú
num_groupsrv  rr  r‘  rs  rt  r…   r/  s
             r<   r$   r$   ‘  sQ   € ô !×2Ñ2°1°aÓ8�J€A€qˆ!ˆQä×Ñ˜q ! Z°¸¸sÀEÓJ€Fä×*Ñ*¨1¨f°hÀÓNÐNr=   zquantized::instance_normc                ó¤   — t        j                  | |«      \  }}}}t        j                  | |||d d dd|d«
      }	t        j                  | |	||«      S )NFr[  )r	   rX  r5   Úinstance_normrV  )
r8   rp  rv  rr  r‘  rs  rt  r«   r…   r/  s
             r<   r&   r&   £  s\   € ô %×6Ñ6°q¸'ÓB�N€Eˆ1ˆa�ä×!Ñ!Ø	ˆ5�&˜$  d¨E°3¸¸Uó€Fô ×*Ñ*¨1¨f°hÀÓNÐNr=   zquantized::conv1d_reluc
           
     óh  — t        j                  | |«      \  }
}}}t        j                  | |«      \  }}}}t        j                  | |||«      }t        j                  | |«      \  }}}}t        j                  | |
||||||«      }t        j
                  | |«      }t        j                  | |||	«      S rÃ   )r	   rX  rn  r5   Úconv1drz  rV  ©r8   rp  rq  rr  r�   r�   r‘   Úgroupsrs  rt  r«   ru  r…   rv  rw  rx  r/  s                    r<   r   r   ·  ó­   € ô  /×@Ñ@ÀÀGÓLÑ€Eˆ;˜˜1Ü!0×!BÑ!BÀ1ÀhÓ!OÑ€FˆL˜!˜QÜ×3Ñ3°A°t¸[È,ÓW€FÜ#×5Ñ5°a¸Ó@�M€Dˆ!ˆQ�ä�]‰]˜1˜e V¨T°6¸7ÀHÈfÓU€FÜ�[‰[˜˜FÓ#€Fä×*Ñ*¨1¨f°hÀÓNÐNr=   zquantized::conv2d_reluc
           
     óh  — t        j                  | |«      \  }
}}}t        j                  | |«      \  }}}}t        j                  | |||«      }t        j                  | |«      \  }}}}t        j                  | |
||||||«      }t        j
                  | |«      }t        j                  | |||	«      S rÃ   )r	   rX  rn  r5   Úconv2drz  rV  r™  s                    r<   r   r   Ï  r›  r=   zquantized::conv3d_reluc
           
     óh  — t        j                  | |«      \  }
}}}t        j                  | |«      \  }}}}t        j                  | |||«      }t        j                  | |«      \  }}}}t        j                  | |
||||||«      }t        j
                  | |«      }t        j                  | |||	«      S rÃ   )r	   rX  rn  r5   Úconv3drz  rV  r™  s                    r<   r   r   ç  r›  r=   zquantized::conv1dc
           
     ó<  — t        j                  | |«      \  }
}}}t        j                  | |«      \  }}}}t        j                  | |||«      }t        j                  | |«      \  }}}}t        j                  | |
||||||«      }t        j
                  | |||	«      S rÃ   )r	   rX  rn  r5   r˜  rV  r™  s                    r<   r   r   ÿ  ó�   € ô  /×@Ñ@ÀÀGÓLÑ€Eˆ;˜˜1Ü!0×!BÑ!BÀ1ÀhÓ!OÑ€FˆL˜!˜QÜ×3Ñ3°A°t¸[È,ÓW€FÜ#×5Ñ5°a¸Ó@�M€Dˆ!ˆQ�ä�]‰]˜1˜e V¨T°6¸7ÀHÈfÓU€Fä×*Ñ*¨1¨f°hÀÓNÐNr=   zquantized::conv2dc
           
     ó<  — t        j                  | |«      \  }
}}}t        j                  | |«      \  }}}}t        j                  | |||«      }t        j                  | |«      \  }}}}t        j                  | |
||||||«      }t        j
                  | |||	«      S rÃ   )r	   rX  rn  r5   r�  rV  r™  s                    r<   r   r     r¡  r=   zquantized::conv3dc
           
     ó<  — t        j                  | |«      \  }
}}}t        j                  | |«      \  }}}}t        j                  | |||«      }t        j                  | |«      \  }}}}t        j                  | |
||||||«      }t        j
                  | |||	«      S rÃ   )r	   rX  rn  r5   rŸ  rV  r™  s                    r<   r    r    -  r¡  r=   zquantized::conv_transpose1dc                ó>  — t        j                  | |«      \  }}}}t        j                  | |«      \  }}}}t        j                  | |||«      }t        j                  | |«      \  }}}}t        j                  | ||||||||«	      }t        j
                  | ||	|
«      S rÃ   ©r	   rX  rn  r5   Úconv_transpose2drV  ©r8   rp  rq  rr  r�   r�   Úoutput_paddingr‘   rš  rs  rt  r«   ru  r…   rv  rw  rx  r/  s                     r<   r!   r!   D  ó¦   € ô  /×@Ñ@ÀÀGÓLÑ€Eˆ;˜˜1Ü!0×!BÑ!BÀ1ÀhÓ!OÑ€FˆL˜!˜QÜ×3Ñ3°A°t¸[È,ÓW€FÜ#×5Ñ5°a¸Ó@�M€Dˆ!ˆQ�ä×$Ñ$Ø	ˆ5�&˜$ ¨°ÀÈó€Fô ×*Ñ*¨1¨f°hÀÓNÐNr=   zquantized::conv_transpose2dc                ó>  — t        j                  | |«      \  }}}}t        j                  | |«      \  }}}}t        j                  | |||«      }t        j                  | |«      \  }}}}t        j                  | ||||||||«	      }t        j
                  | ||	|
«      S rÃ   r¥  r§  s                     r<   r"   r"   ^  r©  r=   zquantized::conv_transpose3dc                ó>  — t        j                  | |«      \  }}}}t        j                  | |«      \  }}}}t        j                  | |||«      }t        j                  | |«      \  }}}}t        j                  | ||||||||«	      }t        j
                  | ||	|
«      S rÃ   )r	   rX  rn  r5   Úconv_transpose3drV  r§  s                     r<   r#   r#   x  r©  r=   zquantized::catc                óÞ   — t        j                  |«      }|D �cg c]  }t        j                  | |«      d   ‘Œ }} | j                  dg|¢­d|iŽ}t        j                  | |||«      S c c}w )Nr   r
  r  )r	   Ú_unpack_listrX  rX   rV  )	r8   Úq_inputsrh   rs  rt  Úunpacked_inputsr«   ÚdequantizedÚconcatenateds	            r<   r   r   ’  sx   € ô &×2Ñ2°8Ó<€OàDSöØ;@Œ×)Ñ)¨!¨UÓ3°AÓ6ð€Kð ð �1—4‘4˜Ð; ;Ò;°sÑ;€LÜ×*Ñ*¨1¨l¸HÀmÓTÐTùò	s   š A*)r8   r­   rÃ   )r8   r­   r9   r®   r}   r¯   r~   r¯   r   r¯   r€   r¯   r�   r±   r‚   rŒ   Úreturnr®   )r�   rŒ   rŽ   úSequence[int] | intr�   r´  r�   r´  r‘   r´  r³  zAtuple[Sequence[int], Sequence[int], Sequence[int], Sequence[int]])r8   r­   r9   r®   r}   r¯   r~   r¯   r   r¯   r€   r¯   r�   r±   r‚   rŒ   r•   r¯   r–   r¯   r—   r¯   r³  ztuple[_C.Value, Sequence[int]])rµ   Ústrr�   rŒ   r    r±   )
r�   rŒ   rŽ   r´  r�   r´  r�   r´  r³  z2tuple[Sequence[int], Sequence[int], Sequence[int]])r8   r­   r«   ztorch._C.Valuerœ   ú$list | torch.Tensor | torch._C.Valuer›   r¶  rš   r¶  rý   z+list | torch.Tensor | torch._C.Value | Noner4  )r8   r­   r¯  r®   rh   rŒ   rs  r®   rt  r®   r³  r®   )KÚ
__future__r   Ú	functoolsr  r  Útypingr   rY   Útorch._C._onnxr   Ú_onnxr>  Ú
torch.onnxr   r   r   r	   r
   r5   Útorch.onnx._globalsr   Útorch.onnx._internalr   r   Ú__all__ÚpartialÚonnx_symbolicÚ_onnx_symbolicr   r´   r7   rB   r.   r/   r†   r’   rž   Ú_apply_paramsr¶   r¸   rÄ   rÝ   rå   rþ   r-   r   r   r   r   r   r   r   r   r   r)   r*   r   r   r+   r%   r,   r(   r'   r$   r&   r   r   r   r   r   r    r!   r"   r#   r   © r=   r<   ú<module>rÅ     sR
  ðõ #ã Û 
Û Ý ã ß  Ð  Û Ý ÷õ õ (ß 8ò#€ðL #�×"Ñ" <×#=Ñ#=ÀRÔH€ñ �Óò9ó ð9ð €×Ñ˜C  cÓ*òHó +ðHñ Ð%Ó&ò5ó 'ð5ñ( �ÓØ€×Ñ˜C  c¨6Ó2óTó 3ó ðTñ �ÓØ€×Ñ˜C  c¨3°°VÓ<óó =ó ðð$Øð$à
ð$ð  ð$ð ð	$ð
 ð$ð ð$ð ð$ð ð$ð ó$ðP(3Øð(3à$ð(3ð  ð(3ð !ð	(3ð
 "ð(3ð Gó(3ðV5"Øð5"à
ð5"ð  ð5"ð ð	5"ð
 ð5"ð ð5"ð ð5"ð ð5"ð ð5"ð ð5"ð ð5"ð $ó5"ñp ØØ+ˆo×+Ñ+¨L¸!ÈEÔRÐSôñ ØØ+ˆo×+Ñ+¨L¸!ÈEÔRÐSôñ ØØ+ˆo×+Ñ+¨L¸!ÈEÔRÐSôñ Ø#à%ˆ×%Ñ%Ø%ØØô	
ðô	ñ Ø#à%ˆ×%Ñ%Ø%ØØô	
ðô	ñ Ø#à%ˆ×%Ñ%Ø%ØØô	
ðô	ò*ó	ó	ó	ó	ó	ó	ðT*ð\)Øð)à$ð)ð  ð)ð !ð	)ð
 8ó)ñ@ ØØ+ˆo×+Ñ+¨L¸!Ó<Ð=ôñ ØØ+ˆo×+Ñ+¨L¸!Ó<Ð=ôñ ØØ+ˆo×+Ñ+¨L¸!Ó<Ð=ôñó	ó	ó	ðñ@ ØØ+ˆo×+Ñ+Ð,@À!ÀYÓOÐPôñ ØØ+ˆo×+Ñ+Ð,@À!ÀYÓOÐPôñ ØØ+ˆo×+Ñ+Ð,@À!ÀYÓOÐPôñ ØØ+ˆo×+Ñ+Ð,?ÀÀHÓMÐNôñ ØØ+ˆo×+Ñ+Ð,AÀ1ÀhÓOÐPôñ Ø Ø+ˆo×+Ñ+Ð,BÀAÀxÓPÐQôñó	ó	ó	ó	ó	ó	ð0ñ& Ð%Ó&ð6Øò6ó 'ð6ð, :>ð7;Øð7;àð7;ð /ð7;ð 1ð	7;ð
 /ð7;ð 7ó7;ñt �Óòó ðñ* �ÓØ€×Ñ˜C Ó&òó 'ó ðñ �Óò/ó ð/ñ Ð%Ó&Ø€×Ñ˜C  c¨3°°S¸#¸sÀCÓHðQ
ØòQ
ó Ió 'ðQ
ñh Ð7Ó8Ø€×Ñ˜C  c¨3°Ó4ð Øð+Øò+ó 5ó 9ð+ñ\ �ÓòWó ðWñ Ð Ó!òAó "ðAñ Ð+Ó,òHó -ðHñ Ð"Ó#ò:ó $ð:ñ Ð"Ó#Ø€×Ñ˜C  c¨3Ó/ò/ó 0ó $ð/ñl Ð#Ó$ð
OØò
Oó %ð
Oñ Ð(Ó)ðOØòOó *ðOñ Ð Ó!òOó "ðOñ Ð%Ó&òOó 'ðOñ Ð Ó!òOó "ðOñ Ð&Ó'òOó (ðOñ Ð$Ó%òOó &ðOñ Ð'Ó(ðOØòOó )ðOñ Ð'Ó(ðOØòOó )ðOñ" Ð'Ó(ðOØòOó )ðOñ" Ð*Ó+Ø€×Ñ˜C  c¨3°°SÓ9ðOØòOó :ó ,ðOñ$ Ð(Ó)ðOØòOó *ðOñ. Ð(Ó)ðOØòOó *ðOñ. Ð(Ó)ðOØòOó *ðOñ. Ð#Ó$ðOØòOó %ðOñ, Ð#Ó$ðOØòOó %ðOñ, Ð#Ó$ðOØòOó %ðOñ, Ð-Ó.ðOØòOó /ðOñ2 Ð-Ó.ðOØòOó /ðOñ2 Ð-Ó.ðOØòOó /ðOñ2 Ð Ó!Ø€×Ñ˜C  c¨3Ó/ðUØðUàðUð 
ðUð ð	Uð
 ðUð òUó 0ó "ñUr=   