+
     °³jS$  ã                  óh  € ^ RI Ht ^ RIt^ RIt^ RIHt ^ RIHt ^ RIH	t	H
t
Ht ^ RIt^ RIt^ RIHt ^ RIHt ^ RIHtHtHt ^ R	IHtHtHt ^ R
IHtHt R R ltR R ltR R lt R R lt!R t"R R lt#R R lt$R R lt%R R lt&R R lt'R R lt(R  R! lt)R" R# lt*R$ R% lt+R& R' lt,R( R) lt-R# )*é    )ÚannotationsN)ÚSequence)Úsuppress)ÚAnyÚCallableÚLiteral)Ú
tv_tensors)Úsequence_to_str)Ú_check_sequence_inputÚ_setup_angleÚ_setup_size)Úget_dimensionsÚget_sizeÚis_pure_tensor)Ú	_FillTypeÚ_FillTypeJITc               ó$   € V ^8„  d   QhRRRRRR/# )é   Úargz#int | float | Sequence[int | float]ÚnameÚstrÚreturnzSequence[float]© )Úformats   "Úa/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torchvision/transforms/v2/_utils.pyÚ__annotate__r      s#   € ÷ ñ ÐAð Èð ÐQ`ñ ó    c                óê  € \        V \        \        \        34      '       g   \	        V R \        V 4       24      h\        V \        4      '       d+   \        V 4      R9  d   \        RV R\        V 4       24      h\        V \        4      '       d?   V  F8  p\        V\        \        34      '       d   K!  \        V R\        V4       24      h	  \        V \        \        34      '       d   \        V 4      \        V 4      .p V # \        V \        4      '       d[   \        V 4      ^8X  d'   \        V ^ ,          4      \        V ^ ,          4      .p V # \        V ^ ,          4      \        V ^,          4      .p V # )z2 should be a number or a sequence of numbers. Got zIf z0 is a sequence its length should be 1 or 2. Got z& should be a sequence of numbers. Got )é   r   )Ú
isinstanceÚintÚfloatr   Ú	TypeErrorÚtypeÚlenÚ
ValueError)r   r   Úelements   && r   Ú_setup_number_or_seqr(      s<  € Ü�cœC¤¬Ð1×2Ò2Ü˜4˜&Ð RÔSWÐX[ÓS\ÐR]Ð^Ó_Ð_Ü�#”x× Ò ¤S¨£X°VÔ%;Ü˜3˜t˜fÐ$TÔUXÐY\ÓU]ÐT^Ð_Ó`Ð`Ü�#”x× Ò ÛˆGÜ˜g¬¬U |×4Ô4Ü  D 6Ð)OÔPTÐU\ÓP]ÈÐ!_Ó`Ð`ñ ô �#œœU�|×$Ò$Ü�S‹zœ5 ›:Ð&ˆð €Jô 
�Cœ×	"Ò	"Üˆs‹8�qŒ=Ü˜˜Q�“=¤%¨¨A­£-Ð0ˆCð €Jô ˜˜Q�“=¤%¨¨A­£-Ð0ˆCØ€Jr   c               ó    € V ^8„  d   QhRRRR/# )r   Úfillú'_FillType | dict[type | str, _FillType]r   ÚNoner   )r   s   "r   r   r   *   s   € ÷ nñ nÐAð nÀdñ nr   c                óò   € \        V \        4      '       d%   V P                  4        F  p\        V4       K  	  R # V e9   \        V \        P
                  \        \        34      '       g   \        R4      hR # R # )NzNGot inappropriate fill arg, only Numbers, tuples, lists and dicts are allowed.)	r    ÚdictÚvaluesÚ_check_fill_argÚnumbersÚNumberÚtupleÚlistr#   )r*   Úvalues   & r   r0   r0   *   s[   € Ü�$œ×ÒØ—[‘[–]ˆEÜ˜EÖ"ó #ð Ò¤J¨t´g·n±nÄeÌTÐ5R×$SÒ$SÜÐlÓmÐmñ %TÑr   c               ó    € V ^8„  d   QhRRRR/# )r   r*   r   r   r   r   )r   s   "r   r   r   3   s   € ÷ 
ñ 
˜Ið 
¨,ñ 
r   c                óš   € V f   V # \        V \        \        34      '       g$   \        V 4       Uu. uF  p\        V4      NK  	  p pV # u upi ©N)r    r!   r"   r4   )r*   Úvs   & r   Ú_convert_fill_argr:   3   sE   € ð
 ‚|Øˆä�dœS¤%˜L×)Ò)Ü"& t¤*Ó-¡*˜Q”�a–¡*ˆÐ-Ø€Kùò .s   °Ac               ó    € V ^8„  d   QhRRRR/# )r   r*   r+   r   zdict[type | str, _FillTypeJIT]r   )r   s   "r   r   r   @   s   € ÷ 3ñ 3ÐAð 3ÐFdñ 3r   c                ó®   € \        V 4       \        V \        4      '       d)   V P                  4        F  w  r\	        V4      W&   K  	  V # R \	        V 4      /# )Úothers)r0   r    r.   Úitemsr:   )r*   Úkr9   s   &  r   Ú_setup_fill_argr@   @   sK   € Ü�DÔä�$œ×ÒØ—J‘J–L‰DˆAÜ'¨Ó*ˆD‹Gñ !àˆàÔ+¨DÓ1Ð2Ð2r   c                óX   € W9   d	   W,          # R V 9   d
   V R ,          # \        R4       R# )r=   zWThis should never happen, please open an issue on the torchvision repo if you hit this.N)ÚRuntimeError)Ú	fill_dictÚ	inpt_types   &&r   Ú	_get_fillrE   K   s-   € ØÔØÕ#Ð#Ø	�YÔ	Ø˜Õ"Ð"äÐnÖor   c               ó    € V ^8„  d   QhRRRR/# )r   Úpaddingzint | Sequence[int]r   r,   r   )r   s   "r   r   r   T   s   € ÷ "ñ "Ð 3ð "¸ñ "r   c                ó:  € R V  R2p\        V \        \        34      '       dX   \        V 4      R9  g;   \        ;QJ d    R V  4       F  '       d   K   RM	  RM! R V  4       4      '       g   \        V4      hR# \        V \        4      '       g   \        V4      hR# )zEPadding must be an int or a 1, 2, or 4 element of tuple or list, got Ú.c              3  óB   "  € T F  p\        V\        4      x € K  	  R # 5ir8   )r    r!   )Ú.0Úps   & r   Ú	<genexpr>Ú%_check_padding_arg.<locals>.<genexpr>X   s   é € Ð3XÑPWÈ1´J¸qÄ#×4FÐ4FÓPWùs   ‚FTN)r   r   é   )r    r3   r4   r%   Úallr&   r!   )rG   Úerr_msgs   & r   Ú_check_padding_argrR   T   s€   € àUÐV]ÐU^Ð^_Ð`€GÜ�'œE¤4˜=×)Ò)Üˆw‹<˜yÔ(·³Ñ3XÑPWÓ3X··²Ñ3XÑPWÓ3X×0XÒ0XÜ˜WÓ%Ð%ñ 1Yä˜¤×%Ò%Ü˜Ó!Ð!ñ &r   c               ó    € V ^8„  d   QhRRRR/# )r   Úpadding_modez3Literal['constant', 'edge', 'reflect', 'symmetric']r   r,   r   )r   s   "r   r   r   `   s    € ÷ _ñ _Ð*]ð _Ðbfñ _r   c                ó*   € V R9  d   \        R4      hR# )ÚconstantzBPadding mode should be either constant, edge, reflect or symmetricN)rV   ÚedgeÚreflectÚ	symmetric)r&   )rT   s   &r   Ú_check_padding_mode_argrZ   `   s   € ØÐGÔGÜÐ]Ó^Ð^ñ Hr   c               ó    € V ^8„  d   QhRRRR/# )r   Úinputsr   r   ztorch.Tensorr   )r   s   "r   r   r   e   s   € ÷ )!ñ )!¨3ð )!°<ñ )!r   c                ój  € \        V \        \        34      '       d
   V ^,          p \        V 4      '       d   V # \        V \        P
                  P                  4      '       g   \        RV  R24      hRp\        \        4      ;_uu_ 4        \        R V P                  4        4       4      pRRR4       VfA   \        \        4      ;_uu_ 4        \        R V P                  4        4       4      pRRR4       Vf   \        R4      hW,          #   + '       g   i     Lk; i  + '       g   i     L:; i)aD  
This heuristic covers three cases:

1. The input is tuple or list whose second item is a labels tensor. This happens for already batched
   classification inputs for MixUp and CutMix (typically after the Dataloder).
2. The input is a tuple or list whose second item is a dictionary that contains the labels tensor
   under a label-like (see below) key. This happens for the inputs of detection models.
3. The input is a dictionary that is structured as the one from 2.

What is "label-like" key? We first search for an case-insensitive match of 'labels' inside the keys of the
dictionary. This is the name our detection models expect. If we can't find that, we look for a case-insensitive
match of the term 'label' anywhere inside the key, i.e. 'FooLaBeLBar'. If we can't find that either, the dictionary
contains no "label-like" key.
z�When using the default labels_getter, the input passed to forward must be a dictionary or a two-tuple whose second item is a dictionary or a tensor, but got z	 instead.Nc              3  óR   "  € T F  qP                  4       R 8X  g   K  Vx € K  	  R# 5i)ÚlabelsN©Úlower©rK   Úkeys   & r   rM   Ú1_find_labels_default_heuristic.<locals>.<genexpr>„   s   é € ÐU©M S¿Y¹Y»[ÈHÑ=TŸSšS«Mùs   ‚'�
'c              3  óT   "  € T F  pR VP                  4       9   g   K  Vx € K   	  R# 5i)ÚlabelNr`   rb   s   & r   rM   rd   ‡   s   é € Ð X±¨ÀÈCÏIÉIËKÑAW§¢³ùs   ‚(ž
(z²Could not infer where the labels are in the sample. Try passing a callable as the labels_getter parameter?If there are no labels in the sample by design, pass labels_getter=None.)r    r3   r4   r   ÚcollectionsÚabcÚMappingr&   r   ÚStopIterationÚnextÚkeys)r\   Úcandidate_keys   & r   Ú_find_labels_default_heuristicrn   e   sö   € ô  �&œ5¤$˜-×(Ò(Ø˜•ˆô �f×ÒØˆä�fœkŸo™o×5Ñ5×6Ò6ÜðFØFLÀXÈYðXó
ð 	
ð
 €MÜ	”-×	 Õ	 ÜÑU¨F¯K©K¬MÓUÓUˆ÷ 
!àÒÜ”m×$Õ$Ü Ñ X°·±´Ó XÓXˆM÷ %àÒÜðWó
ð 	
ð
 Õ Ð ÷ 
!×	 ú÷ %×$ús   Â!DÃ!D"ÄD	Ä"D2	c               ó    € V ^8„  d   QhRRRR/# )r   Úlabels_getterz!str | Callable[[Any], Any] | Noner   zCallable[[Any], Any]r   )r   s   "r   r   r   ‘   s    € ÷ uñ uÐ(Ið uÐNbñ ur   c                ón   € V R 8X  d   \         # \        V 4      '       d   V # V f   R # \        RV  R24      h)Údefaultc                ó   € R # r8   r   )Ú_s   &r   Ú<lambda>Ú&_parse_labels_getter.<locals>.<lambda>—   s   € ™r   zGlabels_getter should either be 'default', a callable, or None, but got rI   )rn   Úcallabler&   )rp   s   &r   Ú_parse_labels_getterrx   ‘   sE   € Ø˜	Ô!Ü-Ð-Ü	�-×	 Ò	 ØÐØ	Ò	ÙÐäÐbÐcpÐbqÐqrÐsÓtÐtr   c               ó    € V ^8„  d   QhRRRR/# )r   Úflat_inputsú	list[Any]r   ztv_tensors.BoundingBoxesr   )r   s   "r   r   r   œ   s   € ÷ 	Gñ 	G Ið 	GÐ2Jñ 	Gr   c                ó\   €  \        R V  4       4      #   \         d    \        R4      hi ; i)z_Return the Bounding Boxes in the input.

Assumes only one ``BoundingBoxes`` object is present.
c              3  ój   "  € T F)  p\        V\        P                  4      '       g   K%  Vx € K+  	  R # 5ir8   )r    r	   ÚBoundingBoxes©rK   Úinpts   & r   rM   Ú%get_bounding_boxes.<locals>.<genexpr>£   s!   é € Ð_¡[˜T´J¸tÄZ×E]ÑE]×4^—D’D£[ùó   ‚"3©
3z*No bounding boxes were found in the sample©rk   rj   r&   ©rz   s   &r   Úget_bounding_boxesr…   œ   s6   € ðGÜÑ_¡[Ó_Ó_Ð_øÜô GÜÐEÓFÐFðGúó   ‚ ”+c               ó    € V ^8„  d   QhRRRR/# )r   rz   r{   r   ztv_tensors.KeyPointsr   )r   s   "r   r   r   ¨   s   € ÷ 	Bñ 	B˜yð 	BÐ-Añ 	Br   c                ó\   €  \        R V  4       4      #   \         d    \        R4      hi ; i)zVReturn the keypoints in the input.

Assumes only one ``KeyPoints`` object is present.
c              3  ój   "  € T F)  p\        V\        P                  4      '       g   K%  Vx € K+  	  R # 5ir8   )r    r	   Ú	KeyPointsr   s   & r   rM   Ú get_keypoints.<locals>.<genexpr>¯   s!   é € Ð[¡[˜T´J¸tÄZ×EYÑEY×4Z—D’D£[ùr‚   z%No keypoints were found in the samplerƒ   r„   s   &r   Úget_keypointsrŒ   ¨   s6   € ðBÜÑ[¡[Ó[Ó[Ð[øÜô BÜÐ@ÓAÐAðBúr†   c               ó    € V ^8„  d   QhRRRR/# )r   rz   r{   r   ztuple[int, int, int]r   )r   s   "r   r   r   ´   s   € ÷ ñ ˜9ð Ð)=ñ r   c           
     ó¦  € V  Uu0 uFg  p\        V\        \        P                  \        P                  P                  \        P
                  34      '       g   KS  \        \        V4      4      kKi  	  ppV'       g   \        R4      h\        V4      ^8”  d!   \        R\        \        V4      4       24      hVP                  4       w  r4pW4V3# u upi )z"Return Channel, Height, and Width.z)No image or video was found in the samplez/Found multiple CxHxW dimensions in the sample: )Ú
check_typer   r	   ÚImageÚPILÚVideor3   r   r#   r%   r&   r
   ÚsortedÚpop)rz   r€   ÚchwsÚcÚhÚws   &     r   Ú	query_chwr™   ´   s±   € ñ  óáˆDÜ�dœ^¬Z×-=Ñ-=¼s¿y¹y¿¹ÔPZ×P`ÑP`Ða×bô 	$ŒŒn˜TÓ"Ö#Ùð 	ð ÷
 ÜÐCÓDÐDÜ	ˆT‹�QŒÜÐJÌ?Ô[aÐbfÓ[gÓKhÐJiÐjÓkÐkØ�h‰h‹j�G€Aˆ!Ø�ˆ7€Nùòs   …ACÁCc               ó    € V ^8„  d   QhRRRR/# )r   rz   r{   r   ztuple[int, int]r   )r   s   "r   r   r   Ã   s   € ÷ ñ ˜Ið ¨/ñ r   c                óü  € V  Uu0 uF”  p\        V\        \        P                  \        P                  P                  \        P
                  \        P                  \        P                  \        P                  34      '       g   K€  \        \        V4      4      kK–  	  ppV'       g   \        R4      h\        V4      ^8”  d!   \        R\        \        V4      4       24      hVP!                  4       w  r4W43# u upi )zReturn Height and Width.zGNo image, video, mask, bounding box of keypoint was found in the samplez-Found multiple HxW dimensions in the sample: )r�   r   r	   r�   r‘   r’   ÚMaskr~   rŠ   r3   r   r#   r%   r&   r
   r“   r”   )rz   r€   Úsizesr—   r˜   s   &    r   Ú
query_sizerž   Ã   sÍ   € ñ  óáˆDÜØäÜ× Ñ Ü—	‘	—‘Ü× Ñ Ü—‘Ü×(Ñ(Ü×$Ñ$ð÷
ô 	ŒŒh�t‹nÖÙð 
ð ÷  ÜÐaÓbÐbÜ	ˆU‹�aŒÜÐHÌÔY_Ð`eÓYfÓIgÐHhÐiÓjÐjØ�9‰9‹;�D€AØˆ4€Kùò+s   …A=C9ÂC9c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úobjr   Útypes_or_checksz(tuple[type | Callable[[Any], bool], ...]r   Úboolr   )r   s   "r   r   r   Ý   s#   € ÷ ñ �Cð Ð*Rð ÐW[ñ r   c                ó”   € V FA  p\        V\        4      '       d   \        W4      '       g   K,    R # V! V 4      '       g   K@   R # 	  R# ©TF©r    r$   )r    r¡   Útype_or_checks   && r   r�   r�   Ý   s>   € Û(ˆÜ-7¸Ät×-LÒ-LŒ:�c×)Õ)Úñ S`Ð`c×RdÔRdÚñ )ñ r   c               ó$   € V ^8„  d   QhRRRRRR/# ©r   rz   r{   r¡   ztype | Callable[[Any], bool]r   r¢   r   )r   s   "r   r   r   ä   s#   € ÷ ñ ˜ð Ð6Rð ÐW[ñ r   c                ó@   € V  F  p\        W!4      '       g   K   R # 	  R# r¤   )r�   )rz   r¡   r€   s   &* r   Úhas_anyrª   ä   s   € ÛˆÜ�d×,Ô,Úñ ñ r   c               ó$   € V ^8„  d   QhRRRRRR/# r¨   r   )r   s   "r   r   r   ë   s#   € ÷ ñ ˜ð Ð6Rð ÐW[ñ r   c                ó¢   € V FH  pV  F>  p\        V\        4      '       d   \        W24      '       g   K,  MV! V4      '       g   K=   KE  	   R # 	  R# )FTr¥   )rz   r¡   r¦   r€   s   &*  r   Úhas_allr­   ë   sF   € Û(ˆÛˆDÜ2<¸]ÌD×2QÒ2QŒz˜$×.Õ.ÑWdÐei×WjÔWjÚñ  ò ñ )ñ r   ).Ú
__future__r   Úcollections.abcrg   r1   r   Ú
contextlibr   Útypingr   r   r   Ú	PIL.Imager‘   ÚtorchÚtorchvisionr	   Útorchvision._utilsr
   Ú!torchvision.transforms.transformsr   r   r   Ú$torchvision.transforms.v2.functionalr   r   r   Ú+torchvision.transforms.v2.functional._utilsr   r   r(   r0   r:   r@   rE   rR   rZ   rn   rx   r…   rŒ   r™   rž   r�   rª   r­   r   r   r   Ú<module>r¹      sŒ   ðÝ "ã Û Ý $Ý ç )Ñ )ã Û å "å .ç ^Ñ ^ß YÑ Yß Oõõ(nõ
õ3òpõ"õ_õ
)!õXuõ	Gõ	Bõõõ4õ÷r   