+
    QV-j×i  ã                   ó&  € ^ RI Ht ^ RIHt ^ RIHtHtHt ^ RIt	^RI
Ht ^RIHt ^RIHt ^RIHtHtHtHtHtHt ^R	IHt ^R
IHt ^RIHt ^RIHtHtH t H!t!H"t"H#t#H$t$H%t%H&t&H't'H(t( ^RI)H*t*H+t+ ^RI,H-t-H.t.H/t/H0t0H1t1 ^RI2H3t3H4t4H5t5H6t6 ]0! 4       '       d   ^RIH7t7 ].! 4       '       d   ^ RI8t8]/! 4       '       d   ^ RI9H:t; ^RIH<t<H=t= MRt<Rt=]1P|                  ! ]?4      t@]6! RR7       ! R R]4      4       tA]6! RR7       ! R R]4      4       tB]AtCR# )é    )ÚIterable)Ú	lru_cache)ÚAnyÚOptionalÚUnionN)ÚBatchFeature)ÚBaseImageProcessor)Úcenter_crop)Úconvert_to_rgbÚdivide_to_patchesÚget_resize_output_image_sizeÚget_size_with_aspect_ratioÚgroup_images_by_shapeÚreorder_images)Ú	normalize)Úrescale)Úresize)ÚChannelDimensionÚ
ImageInputÚ	ImageTypeÚSizeDictÚget_image_sizeÚ#get_image_size_for_max_height_widthÚget_image_typeÚget_max_height_widthÚinfer_channel_dimension_formatÚis_valid_imageÚload_image_as_tensor)ÚImagesKwargsÚUnpack)Ú
TensorTypeÚis_torch_availableÚis_torchvision_availableÚis_vision_availableÚlogging)Úis_rocm_platformÚis_torchdynamo_compilingÚis_torchvision_greater_or_equalÚrequires)ÚPILImageResampling)Ú
functional)Úpil_torch_interpolation_mappingÚtorch_pil_interpolation_mapping)Úbackendsc                   óˆ  a a€ ] tR t^Ut oRtV3R lV 3R llt]V3R lR l4       t]V3R lR l4       tV3R lR	 lt	R"V3R
 lR llt
V3R lR ltR#V3R lR lltR$V3R lR llt]R$V3R lR ll4       tV3R lR ltV3R lR lt]! ^
R7      R%V3R lR ll4       tV3R lR ltV3R lR ltV3R lR  ltR!tVtV ;t# )&ÚTorchvisionBackendzATorchvision backend for GPU-accelerated batched image processing.c                ó0   <€ V ^8„  d   QhRS[ S[,          /# ©é   Úkwargs©r    r   )ÚformatÚ__classdict__s   "€Úw/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/transformers/image_processing_backends.pyÚ__annotate__ÚTorchvisionBackend.__annotate__Y   ó   ø€ ÷ 'ñ '¡©Õ!5ñ 'ó    c                óL   <€ \         SV `  ! R/ VB  V P                  ! R/ VB  R # ©N© ©ÚsuperÚ__init__Ú_set_attributes©Úselfr4   Ú	__class__s   &,€r8   rB   ÚTorchvisionBackend.__init__Y   ó$   ø€ Ü‰ÒÑ"˜6Ò"Ø×ÒÑ&˜vÔ&r<   c                ó    <€ V ^8„  d   QhRS[ /# ©r3   Úreturn©Úbool)r6   r7   s   "€r8   r9   r:   ^   s   ø€ ÷ 
ñ 
™ñ 
r<   c                ó0   € \         P                  R4       R# )úú
`bool`: Whether or not this image processor is using the fast (Torchvision) backend.
The `is_fast` property is deprecated and will be removed in v5.3 of Transformers.
Use the `backend` attribute instead (e.g., `processor.backend == "torchvision"`).
ú£The `is_fast` property is deprecated and will be removed in v5.3 of Transformers. Use the `backend` attribute instead (e.g., `processor.backend == 'torchvision'`).T©ÚloggerÚwarning_once©rE   s   &r8   Úis_fastÚTorchvisionBackend.is_fast]   s   € ô 	×Ñð`ô	
ñ r<   c                ó    <€ V ^8„  d   QhRS[ /# rJ   ©Ústr)r6   r7   s   "€r8   r9   r:   k   s   ø€ ÷ ñ ™ñ r<   c                ó   € R# )ú2
`str`: The backend used by this image processor.
Útorchvisionr?   rT   s   &r8   ÚbackendÚTorchvisionBackend.backendj   s   € ñ
 r<   c                óp   <€ V ^8„  d   QhRS[ S[S[ ,          ,          S[S[S[ ,          ,          ,          /# )r3   Úimage_url_or_urls)rY   Úlist)r6   r7   s   "€r8   r9   r:   q   s,   ø€ ÷ wñ w©c±D¹µI­oÁÁTÉ#ÅYÅÕ.Oñ wr<   c                ó  € \        V\        \        34      '       d!   V Uu. uF  q P                  V4      NK  	  up# \        V\        4      '       d   \        V4      # \        V4      '       d   V# \        R\        V4       24      hu upi )zÛ
Convert a single or a list of URLs / paths into `torch.Tensor` objects.

Already-valid image objects (tensors, numpy arrays, PIL Images) are passed through
unchanged so that callers who pre-load images are unaffected.
z=only a single or a list of entries is supported but got type=)	Ú
isinstancera   ÚtupleÚfetch_imagesrY   r   r   Ú	TypeErrorÚtype)rE   r`   Úxs   && r8   re   ÚTorchvisionBackend.fetch_imagesq   sƒ   € ô Ð'¬$´¨×7Ò7Ù2CÓDÑ2C¨Q×%Ñ% aÖ(Ñ2CÑDÐDÜÐ)¬3×/Ò/Ü'Ð(9Ó:Ð:ÜÐ-×.Ò.Ø$Ð$äÐ[Ô\`ÐarÓ\sÐ[tÐuÓvÐvùò Es   ¡Bc                ó†   <€ V ^8„  d   QhRS[ RS[R,          RS[S[,          R,          RS[R,          RS[S[,          RR	/# )
r3   ÚimageÚdo_convert_rgbNÚinput_data_formatÚdeviceútorch.devicer4   rK   útorch.Tensor)r   rM   rY   r   r   r    r   )r6   r7   s   "€r8   r9   r:   �   s`   ø€ ÷ !ñ !áð!ñ ˜t�ð!ñ Ñ!1Õ1°DÕ8ð	!ñ
 ˜Õ(ð!ñ ™Õ&ð!ð 
ñ!r<   c                ó”  € \        V4      pV\        P                  \        P                  \        P                  39  d   \        RV 24      hV'       d   V P                  V4      pV\        P                  8X  d   \        P                  ! V4      pM9V\        P                  8X  d%   \        P                  ! V4      P                  4       pVP                  ^8X  d   VP                  ^ 4      pVf   \        V4      pV\        P                   8X  d"   VP#                  ^^ ^4      P                  4       pVe   VP%                  V4      pV# )z/Process a single image for torchvision backend.úUnsupported input image type )r   r   ÚPILÚTORCHÚNUMPYÚ
ValueErrorr   ÚtvFÚpil_to_tensorÚtorchÚ
from_numpyÚ
contiguousÚndimÚ	unsqueezer   r   ÚLASTÚpermuteÚto)rE   rk   rl   rm   rn   r4   Ú
image_types   &&&&&, r8   Úprocess_imageÚ TorchvisionBackend.process_image�   sý   € ô $ EÓ*ˆ
ØœiŸm™m¬Y¯_©_¼i¿o¹oÐNÔNÜÐ<¸Z¸LÐIÓJÐJçØ×'Ñ'¨Ó.ˆEàœŸ™Ô&Ü×%Ò% eÓ,‰EØœ9Ÿ?™?Ô*Ü×$Ò$ UÓ+×6Ñ6Ó8ˆEà�:‰:˜Œ?Ø—O‘O AÓ&ˆEàÒ$Ü >¸uÓ EÐàÔ 0× 5Ñ 5Ô5Ø—M‘M ! Q¨Ó*×5Ñ5Ó7ˆEàÒØ—H‘H˜VÓ$ˆEàˆr<   c                ó&   <€ V ^8„  d   QhRS[ RS[ /# ©r3   rk   rK   ©r   )r6   r7   s   "€r8   r9   r:   ¤   ó   ø€ ÷ %ñ %¡Jð %±:ñ %r<   c                ó   € \        V4      # ©zConvert an image to RGB format.©r   ©rE   rk   s   &&r8   r   Ú!TorchvisionBackend.convert_to_rgb¤   ó   € ä˜eÓ$Ð$r<   c                ó²   <€ V ^8„  d   QhRS[ R,          RS[RS[R,          RS[R,          RS[RS[R,          R	S[R,          R
S[S[R,          R3,          /# )r3   Úimagesrp   Úpad_sizeÚ
fill_valueNÚpadding_modeÚreturn_maskÚdisable_groupingÚ	is_nestedrK   )rp   rp   )ra   r   ÚintrY   rM   r   rd   )r6   r7   s   "€r8   r9   r:   ¨   s€   ø€ ÷ 0 ñ 0 á�^Õ$ð0 ñ ð0 ñ ˜$•Jð	0 ñ
 ˜D•jð0 ñ ð0 ñ  �+ð0 ñ ˜$•;ð0 ñ 
‰uÐ3Õ4°nÐDÕ	Eñ0 r<   c                ó  € VeM   VP                   '       d   VP                  '       g   \        RV R24      hVP                   VP                  3pM\        V4      p\	        WVR7      w  rš/ p/ pV	P                  4        Fà  w  rÞVP                  RR pV^ ,          V^ ,          ,
          pV^,          V^,          ,
          pV^ 8  g   V^ 8  d   \        RV RV R24      hWò8w  d    ^ ^ VV3p\        P                  ! VVW4R7      pWëV&   V'       g   K•  \        P                  ! V\        P                  R7      R,          p^VR	RV^ ,          1RV^,          13&   VWÍ&   Kâ  	  \        WºVR
7      pV'       d   \        WÊVR
7      pVV3# V# )z5Pad images using Torchvision with batched operations.NúCPad size must contain 'height' and 'width' keys only. Got pad_size=Ú.)r”   r•   zrPadding dimensions are negative. Please make sure that the `pad_size` is larger than the image size. Got pad_size=z, image_size=)Úfillr’   ©Údtype.)r•   éþÿÿÿ).r   ºNNNrž   )ÚheightÚwidthrv   r   r   ÚitemsÚshaperw   Úpadry   Ú
zeros_likeÚint64r   )rE   r�   r�   r‘   r’   r“   r”   r•   r4   Úgrouped_imagesÚgrouped_images_indexÚprocessed_images_groupedÚprocessed_masks_groupedr¢   Ústacked_imagesÚ
image_sizeÚpadding_heightÚpadding_widthÚpaddingÚstacked_masksÚprocessed_imagesÚprocessed_maskss   &&&&&&&&,             r8   r£   ÚTorchvisionBackend.pad¨   sž  € ð ÒØ—O—O�O¨¯¯¨Ü Ð#fÐgoÐfpÐpqÐ!rÓsÐsØ Ÿ™¨¯©Ð8‰Hä+¨FÓ3ˆHä/DØÀô0
Ñ,ˆð $&Ð Ø"$ÐØ%3×%9Ñ%9Ö%;Ñ!ˆEØ'×-Ñ-¨b¨cÐ2ˆJØ% a�[¨:°a­=Õ8ˆNØ$ Q�K¨*°Q­-Õ7ˆMØ Ô! ]°QÔ%6Ü ð0Ø08¨z¸ÀzÀlÐRSðUóð ð Ô%Ø˜a °Ð?�Ü!$§¢¨¸ÀzÔ!m�Ø.< UÑ+ç‰{Ü %× 0Ò 0°ÄuÇ{Á{Ô SÐT`Õ a�ØGH�˜c ? Z°¥] ?°O°jÀµm°OÐCÑDØ1>Ð'Ó.ñ# &<ô& *Ð*BÐdmÔnÐßÜ,Ð-DÐfoÔpˆOØ# _Ð4Ð4àÐr<   c          
      ó2   <€ V ^8„  d   QhRRRS[ RRRS[RR/# )r3   rk   rp   ÚsizeÚresampleú7PILImageResampling | tvF.InterpolationMode | int | NoneÚ	antialiasrK   )r   rM   )r6   r7   s   "€r8   r9   r:   Ú   sE   ø€ ÷ 4]ñ 4]àð4]ñ ð4]ð Lð	4]ñ
 ð4]ð 
ñ4]r<   c                óR  € Ve.   \        V\        \        34      '       d   \        V,          pMTpM\        P
                  P                  pV\        P
                  P                  8X  dA   \        R4      '       g0   \        P                  R4       \        P
                  P                  pVP                  '       dF   VP                  '       d4   \        VP                  4       R	R VP                  VP                  4      pMÝVP                  '       d)   \!        VVP                  R\"        P$                  R7      pM£VP&                  '       dF   VP(                  '       d4   \+        VP                  4       R	R VP&                  VP(                  4      pMLVP,                  '       d,   VP.                  '       d   VP,                  VP.                  3pM\1        RV R24      h\3        4       '       d#   \5        4       '       d   V P7                  WWd4      # \        P8                  ! WWdR7      # )
z"Resize an image using Torchvision.Nz0.27aC  You have used a torchvision backend image processor with LANCZOS resample which is not supported for torch.Tensor with torchvision < 0.27. BICUBIC resample will be used as an alternative. Please upgrade torchvision to 0.27+ or fall back to a pil backend image processor if you want full consistency with the original model.F©r´   Údefault_to_squarerm   újSize must contain 'height' and 'width' keys, or 'max_height' and 'max_width', or 'shortest_edge' key. Got r™   ©Úinterpolationr·   r�   )rc   r*   r–   r,   rw   ÚInterpolationModeÚBILINEARÚLANCZOSr(   rR   rS   ÚBICUBICÚshortest_edgeÚlongest_edger   r´   r   r   ÚFIRSTÚ
max_heightÚ	max_widthr   rŸ   r    rv   r'   r&   Ú_compile_friendly_resizer   )rE   rk   r´   rµ   r·   r4   r½   Únew_sizes   &&&&&,  r8   r   ÚTorchvisionBackend.resizeÚ   s©  € ð ÒÜ˜(Ô%7¼Ð$=×>Ò>Ü ?ÀÕ I‘à (‘ä×1Ñ1×:Ñ:ˆMØœC×1Ñ1×9Ñ9Ô9ÔBaÐbh×BiÒBiÜ×ÑðAôô  ×1Ñ1×9Ñ9ˆMà××Ð $×"3×"3Ð"3Ü1Ø—
‘
“˜R˜SÐ!Ø×"Ñ"Ø×!Ñ!ó‰Hð
 ××ÐÜ3ØØ×'Ñ'Ø"'Ü"2×"8Ñ"8ô	‰Hð �_�_ˆ_ §§ Ü:¸5¿:¹:»<ÈÈÐ;LÈdÏoÉoÐ_c×_mÑ_mÓn‰HØ�[�[ˆ[˜TŸZŸZ˜ZØŸ™ T§Z¡ZÐ0‰HäðØ�6˜ðóð ô $×%Ò%Ô*:×*<Ò*<Ø×0Ñ0°À-Ó[Ð[Ü�zŠz˜%¸Ô\Ð\r<   c          
      óX   <€ V ^8„  d   QhRRRS[ S[S[3,          RS[R,          RS[RR/# )r3   rk   rp   rÈ   r½   ztvF.InterpolationModer·   rK   )rd   r–   r   rM   )r6   r7   s   "€r8   r9   r:     sI   ø€ ÷ ñ Øðá™™S˜•/ðñ  Ð 7Õ8ðñ ð	ð
 
ñr<   c                ó®  € V P                   \        P                  8X  dž   V P                  4       R,          p \        P
                  ! WW#R7      p V R,          p \        P                  ! V ^ÿ8„  ^ÿV 4      p \        P                  ! V ^ 8  ^ V 4      p V P                  4       P                  \        P                  4      p V # \        P
                  ! WW#R7      p V # )zOA wrapper around tvF.resize for torch.compile compatibility with uint8 tensors.é   r¼   )	rœ   ry   Úuint8Úfloatrw   r   ÚwhereÚroundr€   )rk   rÈ   r½   r·   s   &&&&r8   rÇ   Ú+TorchvisionBackend._compile_friendly_resize  s¡   € ð �;‰;œ%Ÿ+™+Ô%Ø—K‘K“M CÕ'ˆEÜ—J’J˜u¸mÔaˆEØ˜C•KˆEÜ—K’K ¨¡¨S°%Ó8ˆEÜ—K’K ¨¡	¨1¨eÓ4ˆEØ—K‘K“M×$Ñ$¤U§[¡[Ó1ˆEð ˆô —J’J˜u¸mÔaˆEØˆr<   c                ó(   <€ V ^8„  d   QhRRRS[ RR/# )r3   rk   rp   ÚscalerK   )rÎ   )r6   r7   s   "€r8   r9   r:   #  s)   ø€ ÷ ñ àðñ ðð
 
ñr<   c                ó   € W,          # )z5Rescale an image by a scale factor using Torchvision.r?   ©rE   rk   rÓ   r4   s   &&&,r8   r   ÚTorchvisionBackend.rescale#  s   € ð �}Ðr<   c                ón   <€ V ^8„  d   QhRRRS[ S[S[ ,          ,          RS[ S[S[ ,          ,          RR/# )r3   rk   rp   ÚmeanÚstdrK   )rÎ   r   )r6   r7   s   "€r8   r9   r:   ,  sE   ø€ ÷ /ñ /àð/ñ ‘h™u•oÕ%ð/ñ ‘X™e•_Õ$ð	/ð 
ñ/r<   c                ó0   € \         P                  ! WV4      # )z%Normalize an image using Torchvision.)rw   r   ©rE   rk   rØ   rÙ   r4   s   &&&&,r8   r   ÚTorchvisionBackend.normalize,  s   € ô �}Š}˜U¨#Ó.Ð.r<   )Úmaxsizec                óØ   <€ V ^8„  d   QhRS[ R,          RS[S[S[,          ,          R,          RS[S[S[,          ,          R,          RS[ R,          RS[R,          RS[R,          R	S[/# )
r3   Údo_normalizeNÚ
image_meanÚ	image_stdÚ
do_rescaleÚrescale_factorrn   ro   rK   )rM   rÎ   ra   r   rd   )r6   r7   s   "€r8   r9   r:   7  s~   ø€ ÷ 1ñ 1á˜T•kð1ñ ™D¡�KÕ'¨$Õ.ð1ñ ™4¡�;Õ&¨Õ-ð	1ñ
 ˜4•Kð1ñ  �ð1ñ ˜Õ(ð1ñ 
ñ1r<   c                óÂ   € V'       dU   V'       dM   \         P                  ! W&R 7      RV,          ,          p\         P                  ! W6R 7      RV,          ,          pRpW#V3# ))rn   g      ð?F)ry   Útensor)rE   rß   rà   rá   râ   rã   rn   s   &&&&&&&r8   Ú!_fuse_mean_std_and_rescale_factorÚ4TorchvisionBackend._fuse_mean_std_and_rescale_factor6  sI   € ÷ Ÿ,äŸš jÔ@ÀCÈ.ÕDXÕYˆJÜŸš YÔ>À#ÈÕBVÕWˆIØˆJØ jÐ0Ð0r<   c                ó€   <€ V ^8„  d   QhRRRS[ RS[RS[ RS[S[S[,          ,          RS[S[S[,          ,          RR/# )	r3   r�   rp   râ   rã   rß   rà   rá   rK   )rM   rÎ   ra   )r6   r7   s   "€r8   r9   r:   G  sc   ø€ ÷ ñ àðñ ðñ ð	ñ
 ðñ ™D¡�KÕ'ðñ ™4¡�;Õ&ðð 
ñr<   c           	     óô   € V P                  VVVVVVP                  R7      w  rVpV'       d3   V P                  VP                  \        P
                  R7      WV4      pV# V'       d   V P                  W4      pV# )zFRescale and normalize images using Torchvision (fused for efficiency).)rß   rà   rá   râ   rã   rn   r›   )ræ   rn   r   r€   ry   Úfloat32r   )rE   r�   râ   rã   rß   rà   rá   s   &&&&&&&r8   Úrescale_and_normalizeÚ(TorchvisionBackend.rescale_and_normalizeG  sx   € ð -1×,RÑ,RØ%Ø!ØØ!Ø)Ø—=‘=ð -Só -
Ñ)ˆ
˜z÷ Ø—^‘^ F§I¡I´E·M±M IÓ$BÀJÓZˆFð ˆ÷ Ø—\‘\ &Ó9ˆFàˆr<   c                ó(   <€ V ^8„  d   QhRRRS[ RR/# )r3   rk   rp   r´   rK   )r   )r6   r7   s   "€r8   r9   r:   `  s.   ø€ ÷ Mñ MàðMñ ðMð
 
ñMr<   c                ó¨  € VP                   e   VP                  f   \        RVP                  4        24      hVP                  RR w  rEVP                   VP                  rvWu8”  g   Wd8”  d    Wu8”  d   Wu,
          ^,          M^ Wd8”  d   Wd,
          ^,          M^ Wu8”  d   Wu,
          ^,           ^,          M^ Wd8”  d   Wd,
          ^,           ^,          M^ .p\
        P                  ! W^ R7      pVP                  RR w  rEWu8X  d	   Wd8X  d   V# \        WF,
          R,          4      p	\        WW,
          R,          4      p
\
        P                  ! WW¦V4      # )z'Center crop an image using Torchvision.Nú=The size dictionary must have keys 'height' and 'width'. Got )rš   g       @r�   )	rŸ   r    rv   Úkeysr¢   rw   r£   r–   Úcrop)rE   rk   r´   r4   Úimage_heightÚimage_widthÚcrop_heightÚ
crop_widthÚpadding_ltrbÚcrop_topÚ	crop_lefts   &&&,       r8   r
   ÚTorchvisionBackend.center_crop`  s+  € ð �;‰;Ò $§*¡*Ò"4ÜÐ\Ð]a×]fÑ]fÓ]hÐ\iÐjÓkÐkØ$)§K¡K°°Ð$4Ñ!ˆØ"&§+¡+¨t¯z©z�ZàÔ# {Ô'Aà3=Ô3K�Õ)¨aÖ/ÐQRØ5@Ô5O�Õ+°Ö1ÐUVØ7AÔ7O�Õ)¨AÕ-°!Ö3ÐUVØ9DÔ9S�Õ+¨aÕ/°AÖ5ÐYZð	ˆLô —G’G˜E°aÔ8ˆEØ(-¯©°B°CÐ(8Ñ%ˆLØÔ(¨[Ô-HØ�ä˜Õ2°cÕ9Ó:ˆÜ˜Õ1°SÕ8Ó9ˆ	Ü�xŠx˜¨ÀÓLÐLr<   c                 ó*  <€ V ^8„  d   QhRS[ R,          RS[RS[RRRS[RS[R	S[R
S[RS[RS[S[ S[,          ,          R,          RS[S[ S[,          ,          R,          RS[R,          RS[R,          RS[R,          RS[S[,          R,          RS[/# )r3   r�   rp   Ú	do_resizer´   rµ   r¶   Údo_center_cropÚ	crop_sizerâ   rã   rß   rà   Nrá   Údo_padr�   r”   Úreturn_tensorsrK   )ra   rM   r   rÎ   rY   r!   r   )r6   r7   s   "€r8   r9   r:   |  sõ   ø€ ÷ -añ -aá�^Õ$ð-añ ð-añ ð	-að
 Lð-añ ð-añ ð-añ ð-añ ð-añ ð-añ ™D¡�KÕ'¨$Õ.ð-añ ™4¡�;Õ&¨Õ-ð-añ �t•ð-añ ˜T•/ð-añ  �+ð-añ  ™jÕ(¨4Õ/ð!-añ$ 
ñ%-ar<   c           	     óÚ  € \        WR7      w  pp/ pVP                  4        F&  w  ppV'       d   V P                  VW4R7      pVVV&   K(  	  \        VV4      p\        VVR7      w  pp/ pVP                  4        F9  w  ppV'       d   V P	                  VV4      pV P                  VWxWšV4      pVVV&   K;  	  \        VV4      pV'       d   V P                  VWÞR7      p\        RV/VR7      # )z=Preprocess using Torchvision backend (fast, GPU-accelerated).)r”   ©rk   r´   rµ   )r�   r”   Úpixel_values©ÚdataÚtensor_type)r   r¡   r   r   r
   rë   r£   r   )rE   r�   rû   r´   rµ   rü   rý   râ   rã   rß   rà   rá   rþ   r�   r”   rÿ   r4   r¦   r§   Úresized_images_groupedr¢   rª   Úresized_imagesr¨   r°   s   &&&&&&&&&&&&&&&&,        r8   Ú_preprocessÚTorchvisionBackend._preprocess|  s  € ô* 0EÀVÔ/oÑ,ˆÐ,Ø!#ÐØ%3×%9Ñ%9Ö%;Ñ!ˆE�>ßØ!%§¡°>È Ó!`�Ø,:Ð" 5Ó)ñ &<ô (Ð(>Ð@TÓUˆô 0EÀ^ÐfvÔ/wÑ,ˆÐ,Ø#%Ð Ø%3×%9Ñ%9Ö%;Ñ!ˆE�>ßØ!%×!1Ñ!1°.À)Ó!L�à!×7Ñ7Ø 
¸LÐV_óˆNð /=Ð$ UÓ+ñ &<ô *Ð*BÐDXÓYÐçØ#Ÿx™xÐ(8À8˜xÓoÐä .Ð2BÐ!CÐQ_Ô`Ð`r<   r?   )NNN)Nr   ÚconstantFFF)NT)NNNNNN)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__rB   ÚpropertyrU   r]   re   r‚   r   r£   r   ÚstaticmethodrÇ   r   r   r   ræ   rë   r
   r  Ú__static_attributes__Ú__classdictcell__Ú__classcell__©rF   r7   s   @@r8   r0   r0   U   sæ   ù‡ € áK÷'ó 'ð ÷
ó ð
ð ÷ó ð÷wð w÷ !ò !÷F%ð %÷0 ò 0 ÷d4]ò 4]ðl ÷ñ ó ð÷$ð ÷/ð /ñ �rÔ÷1ñ 1ó ð1÷ ð ÷2Mð M÷8-a÷ -að -ar<   r0   c                   ó.  a a€ ] tR tRt oRtV3R lV 3R llt]V3R lR l4       t]V3R lR l4       tRV3R	 lR
 llt	V3R lR lt
RV3R lR lltRV3R lR lltV3R lR ltV3R lR ltV3R lR ltV3R lR ltV3R lV 3R lltRtVtV ;t# )Ú
PilBackendi¬  z9PIL/NumPy backend for portable CPU-only image processing.c                ó0   <€ V ^8„  d   QhRS[ S[,          /# r2   r5   )r6   r7   s   "€r8   r9   ÚPilBackend.__annotate__°  r;   r<   c                óL   <€ \         SV `  ! R/ VB  V P                  ! R/ VB  R # r>   r@   rD   s   &,€r8   rB   ÚPilBackend.__init__°  rH   r<   c                ó    <€ V ^8„  d   QhRS[ /# rJ   rL   )r6   r7   s   "€r8   r9   r  µ  s   ø€ ÷ 
ñ 
™ñ 
r<   c                ó0   € \         P                  R4       R# )rO   rP   FrQ   rT   s   &r8   rU   ÚPilBackend.is_fast´  s   € ô 	×Ñð`ô	
ñ r<   c                ó    <€ V ^8„  d   QhRS[ /# rJ   rX   )r6   r7   s   "€r8   r9   r  Â  s   ø€ ÷ ñ ™ñ r<   c                ó   € R# )r[   Úpilr?   rT   s   &r8   r]   ÚPilBackend.backendÁ  s   € ñ
 r<   c          
      óˆ   <€ V ^8„  d   QhRS[ RS[R,          RS[S[,          R,          RS[S[,          RS[P                  /# )r3   rk   rl   Nrm   r4   rK   )r   rM   rY   r   r    r   ÚnpÚndarray)r6   r7   s   "€r8   r9   r  È  sU   ø€ ÷ "ñ "áð"ñ ˜t�ð"ñ Ñ!1Õ1°DÕ8ð	"ñ
 ™Õ&ð"ñ 
�‰ñ"r<   c                óÊ  € \        V4      pV\        P                  \        P                  \        P                  39  d   \        RV 24      hV'       d   V P                  V4      pV\        P                  8X  d?   \        P                  ! V4      pVP                  ^8¼  d   Vf   \        P                  MTpM%V\        P                  8X  d   VP                  4       pVP                  ^8X  d   \        P                  ! V^ R7      pVf   \        V4      pV\        P                  8X  d8   \        V\        P                   4      '       d   \        P"                  ! VR4      pV# )z'Process a single image for PIL backend.rr   )Úaxis)r3   r   é   )r   r   rs   rt   ru   rv   r   r$  Úarrayr|   r   r~   ÚnumpyÚexpand_dimsr   rc   r%  Ú	transpose)rE   rk   rl   rm   r4   r�   s   &&&&, r8   r‚   ÚPilBackend.process_imageÈ  s  € ô $ EÓ*ˆ
ØœiŸm™m¬Y¯_©_¼i¿o¹oÐNÔNÜÐ<¸Z¸LÐIÓJÐJçØ×'Ñ'¨Ó.ˆEàœŸ™Ô&Ü—H’H˜U“OˆEà�z‰z˜QŒØ=NÒ=VÔ$4×$9Ò$9Ð\mÐ!øØœ9Ÿ?™?Ô*Ø—K‘K“MˆEà�:‰:˜Œ?Ü—N’N 5¨qÔ1ˆEàÒ$Ü >¸uÓ EÐàÔ 0× 5Ñ 5Ô5ä˜%¤§¡×,Ò,ÜŸš U¨IÓ6�àˆr<   c                ó&   <€ V ^8„  d   QhRS[ RS[ /# r…   r†   )r6   r7   s   "€r8   r9   r  ì  r‡   r<   c                ó   € \        V4      # r‰   rŠ   r‹   s   &&r8   r   ÚPilBackend.convert_to_rgbì  r�   r<   c                ó  <€ V ^8„  d   QhRS[ S[P                  ,          RS[RS[R,          RS[R,          RS[RS[S[ S[P                  ,          S[ S[P                  ,          3,          S[ S[P                  ,          ,          /# )r3   r�   r�   r‘   Nr’   r“   rK   )ra   r$  r%  r   r–   rY   rM   rd   )r6   r7   s   "€r8   r9   r  ð  s‚   ø€ ÷ 1 ñ 1 á‘R—Z‘ZÕ ð1 ñ ð1 ñ ˜$•Jð	1 ñ
 ˜D•jð1 ñ ð1 ñ 
‰t‘B—J‘JÕ¡¡b§j¡jÕ!1Ð1Õ	2±T¹"¿*¹*Õ5EÕ	Eñ1 r<   c                óô  € VeL   VP                   '       d   VP                  '       g   \        RV R24      hVP                   VP                  r‡M\        V4      w  rx. p	. p
V EF  p\	        V\
        P                  R7      w  rÍW|,
          pW�,
          pV^ 8  g   V^ 8  d   \        RV RV RV RV R2	4      hWÇ8w  g   WØ8w  dE   R^ V3^ V33pVR	8X  d   \        P                  ! VVR	VR
7      pM\        P                  ! VVVR7      pV	P                  V4       V'       g   KÂ  \        P                  ! Wx3\        P                  R7      p^VRV1RV13&   V
P                  V4       EK  	  V'       d   Wš3# V	# )z)Pad images to specified size using NumPy.Nr˜   r™   ©Úchannel_dimzsPadding dimensions are negative. Please make sure that the `pad_size` is larger than the image size. Got pad_size=(z, z), image_size=(z).r
  )ÚmodeÚconstant_values)r5  r›   )r   r   )rŸ   r    rv   r   r   r   rÄ   r$  r£   ÚappendÚzerosr¥   )rE   r�   r�   r‘   r’   r“   r4   Útarget_heightÚtarget_widthr°   r±   rk   rŸ   r    r¬   r­   Ú	pad_widthÚmasks   &&&&&&,           r8   r£   ÚPilBackend.padð  s…  € ð ÒØ—O—O�O¨¯¯¨Ü Ð#fÐgoÐfpÐpqÐ!rÓsÐsØ*2¯/©/¸8¿>¹>™<ä*>¸vÓ*FÑ'ˆMàÐØˆäˆEÜ*¨5Ô>N×>TÑ>TÔU‰MˆFØ*Õ3ˆNØ(Õ0ˆMà Ô! ]°QÔ%6Ü ð1Ø1>°¸rÀ,ÀÈÐ_eÐ^fÐfhÐinÐhoÐoqðsóð ð
 Ô&¨%Ô*?ð $ a¨Ð%8¸1¸mÐ:LÐM�	Ø :Ô-ÜŸFšF 5¨)¸*ÐV`Ôa‘EäŸFšF 5¨)¸,ÔG�Eà×#Ñ# EÔ*ç‰{Ü—x’x Ð =ÄRÇXÁXÔN�Ø()��W�f�W˜f˜u˜f�_Ñ%Ø×&Ñ& t×,ñ3 ÷6 Ø#Ð4Ð4ØÐr<   c          
      ól   <€ V ^8„  d   QhRS[ P                  RS[RRRS[R,          RS[ P                  /# )r3   rk   r´   rµ   úPILImageResampling | NoneÚreducing_gapNrK   )r$  r%  r   r–   )r6   r7   s   "€r8   r9   r  #  sI   ø€ ÷ 1
ñ 1
á�z‰zð1
ñ ð1
ð .ð	1
ñ
 ˜D•jð1
ñ 
�‰ñ1
r<   c           	     óÆ  € VeN   \        V\        \        34      '       g2   \        e   V\        9   d   \        V,          pM\        P                  pVe   TM\        P                  pVP
                  '       dS   VP                  '       dA   \        V\        P                  R7      w  rg\        Wg3VP
                  VP                  4      pMêVP
                  '       d)   \        VVP
                  R\        P                  R7      pM°VP                  '       dS   VP                  '       dA   \        V\        P                  R7      w  rg\        Wg3VP                  VP                  4      pMLVP                  '       d,   VP                   '       d   VP                  VP                   3pM\#        RV R24      h\%        VVVV\        P                  \        P                  R7      # )z Resize an image using PIL/NumPy.r3  Fr¹   r»   r™   )r´   rµ   r@  Údata_formatrm   )rc   r*   r–   r-   r¿   rÂ   rÃ   r   r   rÄ   r   r   rÅ   rÆ   r   rŸ   r    rv   Ú	np_resize)	rE   rk   r´   rµ   r@  r4   rŸ   r    rÈ   s	   &&&&&,   r8   r   ÚPilBackend.resize#  s�  € ð Ò¬
°8Ô>PÔRUÐ=V×(WÒ(WÜ.Ò:¸xÔKjÔ?jÜ:¸8ÕD‘ä-×6Ñ6�Ø'Ò3‘8Ô9K×9TÑ9Tˆà××Ð $×"3×"3Ð"3Ü*¨5Ô>N×>TÑ>TÔU‰MˆFÜ1Ø�Ø×"Ñ"Ø×!Ñ!ó‰Hð
 ××ÐÜ3ØØ×'Ñ'Ø"'Ü"2×"8Ñ"8ô	‰Hð �_�_ˆ_ §§ Ü*¨5Ô>N×>TÑ>TÔU‰MˆFÜ:¸F¸?ÈDÏOÉOÐ]a×]kÑ]kÓl‰HØ�[�[ˆ[˜TŸZŸZ˜ZØŸ™ T§Z¡ZÐ0‰HäðØ�6˜ðóð ô
 ØØØØ%Ü(×.Ñ.Ü.×4Ñ4ô
ð 	
r<   c                óT   <€ V ^8„  d   QhRS[ P                  RS[RS[ P                  /# )r3   rk   rÓ   rK   )r$  r%  rÎ   )r6   r7   s   "€r8   r9   r  V  s1   ø€ ÷ 
ñ 
á�z‰zð
ñ ð
ñ
 
�‰ñ
r<   c                óX   € \        VV\        P                  \        P                  R7      # )z/Rescale an image by a scale factor using NumPy.)rÓ   rB  rm   )Ú
np_rescaler   rÄ   rÕ   s   &&&,r8   r   ÚPilBackend.rescaleV  s)   € ô ØØÜ(×.Ñ.Ü.×4Ñ4ô	
ð 	
r<   c                óš   <€ V ^8„  d   QhRS[ P                  RS[S[S[,          ,          RS[S[S[,          ,          RS[ P                  /# )r3   rk   rØ   rÙ   rK   )r$  r%  rÎ   r   )r6   r7   s   "€r8   r9   r  d  sM   ø€ ÷ 
ñ 
á�z‰zð
ñ ‘h™u•oÕ%ð
ñ ‘X™e•_Õ$ð	
ñ 
�‰ñ
r<   c                óZ   € \        VVV\        P                  \        P                  R7      # )zNormalize an image using NumPy.)rØ   rÙ   rB  rm   )Únp_normalizer   rÄ   rÛ   s   &&&&,r8   r   ÚPilBackend.normalized  s,   € ô ØØØÜ(×.Ñ.Ü.×4Ñ4ô
ð 	
r<   c                óT   <€ V ^8„  d   QhRS[ P                  RS[RS[ P                  /# )r3   rk   r´   rK   )r$  r%  r   )r6   r7   s   "€r8   r9   r  t  s1   ø€ ÷ 
ñ 
á�z‰zð
ñ ð
ñ
 
�‰ñ
r<   c                óô   € VP                   e   VP                  f   \        RVP                  4        24      h\	        VVP                   VP                  3\
        P                  \
        P                  R7      # )z!Center crop an image using NumPy.rï   )r´   rB  rm   )rŸ   r    rv   rð   Únp_center_cropr   rÄ   )rE   rk   r´   r4   s   &&&,r8   r
   ÚPilBackend.center_cropt  sg   € ð �;‰;Ò $§*¡*Ò"4ÜÐ\Ð]a×]fÑ]fÓ]hÐ\iÐjÓkÐkäØØ—+‘+˜tŸz™zÐ*Ü(×.Ñ.Ü.×4Ñ4ô	
ð 	
r<   c                ó,  <€ V ^8„  d   QhRS[ S[P                  ,          RS[RS[RRRS[RS[RS[R	S[R
S[RS[S[ S[,          ,          R,          RS[S[ S[,          ,          R,          RS[R,          RS[R,          RS[S[,          R,          RS[/# )r3   r�   rû   r´   rµ   r?  rü   rý   râ   rã   rß   rà   Nrá   rþ   r�   rÿ   rK   )	ra   r$  r%  rM   r   rÎ   rY   r!   r   )r6   r7   s   "€r8   r9   r  …  sé   ø€ ÷ "añ "aá‘R—Z‘ZÕ ð"añ ð"añ ð	"að
 .ð"añ ð"añ ð"añ ð"añ ð"añ ð"añ ™D¡�KÕ'¨$Õ.ð"añ ™4¡�;Õ&¨Õ-ð"añ �t•ð"añ ˜T•/ð"añ ™jÕ(¨4Õ/ð"añ" 
ñ#"ar<   c                ó`  € . pV F}  pV'       d   V P                  VW4R7      pV'       d   V P                  VV4      pV'       d   V P                  VV4      pV	'       d   V P                  VW«4      pVP	                  V4       K  	  V'       d   V P                  VVR7      p\        RV/VR7      # )z2Preprocess using PIL backend (portable, CPU-only).r  )r�   r  r  )r   r
   r   r   r7  r£   r   )rE   r�   rû   r´   rµ   rü   rý   râ   rã   rß   rà   rá   rþ   r�   rÿ   r4   r°   rk   s   &&&&&&&&&&&&&&&,  r8   r  ÚPilBackend._preprocess…  sŸ   € ð& ÐÛˆEßØŸ™¨%°d˜ÓN�ßØ×(Ñ(¨°	Ó:�ßØŸ™ U¨NÓ;�ßØŸ™ u¨jÓD�Ø×#Ñ# EÖ*ñ ÷ Ø#Ÿx™xÐ(8À8˜xÓLÐä .Ð2BÐ!CÐQ_Ô`Ð`r<   c                ó6   <€ V ^8„  d   QhRS[ S[S[3,          /# rJ   )ÚdictrY   r   )r6   r7   s   "€r8   r9   r  ©  s   ø€ ÷ ñ ™™c¡3˜h�ñ r<   c                ó�   <€ \         SV `  4       pVP                  R R4      P                  R4      '       d   VR ,          RR VR &   V# )Úimage_processor_typeÚ ÚPilNéýÿÿÿ)rA   Úto_dictÚgetÚendswith)rE   Úprocessor_dictrF   s   & €r8   r[  ÚPilBackend.to_dict©  sN   ø€ Ü™™Ó*ˆà×ÑÐ4°bÓ9×BÑBÀ5×IÒIØ5CÐDZÕ5[Ð\_Ð]_Ð5`ˆNÐ1Ñ2ØÐr<   r?   )NN)Nr   r
  F)r  r  r  r  r  rB   r  rU   r]   r‚   r   r£   r   r   r   r
   r  r[  r  r  r  r  s   @@r8   r  r  ¬  sŸ   ù‡ € áC÷'ó 'ð ÷
ó ð
ð ÷ó ð÷"ò "÷H%ð %÷1 ò 1 ÷f1
ò 1
÷f
ð 
÷
ð 
÷ 
ð 
÷""að "a÷H÷ ó r<   r  )ry   r\   )Úvision)DÚcollections.abcr   Ú	functoolsr   Útypingr   r   r   r*  r$  Úimage_processing_baser   Úimage_processing_utilsr	   Úimage_transformsr
   rO  r   r   r   r   r   r   r   rK  r   rG  r   rC  Úimage_utilsr   r   r   r   r   r   r   r   r   r   r   Úprocessing_utilsr   r    Úutilsr!   r"   r#   r$   r%   Úutils.import_utilsr&   r'   r(   r)   r*   ry   Útorchvision.transforms.v2r+   rw   r,   r-   Ú
get_loggerr  rR   r0   r  ÚBaseImageProcessorFastr?   r<   r8   Ú<module>rn     s  ðõ %Ý ß 'Ñ 'ã å /Ý 6õ÷÷ õõõ÷÷ ÷ ñ ÷ 3÷õ ÷ vÓ uñ ×ÒÝ/á×ÒÛá×ÒÝ;ç]Ð]à&*Ð#Ø&*Ð#ð 
×	Ò	˜HÓ	%€ñ 
Ð+Ô,ôSaÐ+ó Saó -ðSañl
 
�;ÔôAÐ#ó Aó  ðAðJ ,Ò r<   