Ë
    ¨Œjn9  ã                   ó  — U d Z ddlZddlmZ ddlmZmZmZmZ ddl	m
Z
mZ ddlmZ ddlmZ dd	lmZ dd
lmZmZ ddlmZmZmZmZmZmZ ej8                  dd dk\  rddlmZ nddlmZ 	 ddlm Z m!Z! ed   Z#ee$d<   dZ%e&e$d<   	 d,dee'e(e   ef   de&de#de&de)e#e*f   f
d„Z+de,de)e&e&f   de&de,fd„Z-de'de)e&e&f   de,de j@                  fd „Z.dede)eeeef   fd!„Z/de)e&e&f   de,de#de'd"e&d#e'de)e j@                  e'e'e*f   fd$„Z0de)e&e&f   de,de#de'd"e&de)e j@                  e'e'e*f   fd%„Z1d&e j@                  d'e2e'ef   d(edee'e(e   ef   d)e*de j@                  fd*„Z3d'e2e'ef   d"e&dee'e(e   ef   de)e#e*f   fd+„Z4y# e"$ r	  e"d«      ‚w xY w)-z9Code in here is only used by pypdf.filters._xobj_to_imageé    N)ÚBytesIO)ÚAnyÚLiteralÚUnionÚcasté   )Úcheck_if_whitespace_onlyÚlogger_warning)ÚColorSpaces)ÚFilterTypes)ÚImageAttributes)ÚEmptyImageDataErrorÚPdfReadError)ÚArrayObjectÚDecodedStreamObjectÚEncodedStreamObjectÚ
NullObjectÚTextStringObjectÚis_null_or_noneé   )é   é
   )Ú	TypeAlias)ÚImageÚUnidentifiedImageErrorz]pillow is required to do image extraction. It can be installed via 'pip install pypdf[image]')	Ú Ú1ÚRGBÚ2bitsÚ4bitsÚPÚLÚRGBAÚCMYKÚmode_str_typer   ÚMAX_IMAGE_MODE_NESTING_DEPTHÚcolor_spaceÚcolor_componentsÚ	prev_modeÚdepthÚreturnc                 ó°  — |t         kD  rt        d«      ‚t        | «      ryd}t        | t        «      r| }�n]t        | t
        «      st        d| «      ‚| d   j                  d«      rd| d   dd	 z   }�n | d   d
k(  r9| d   j                  «       }t        t        |d   «      }|j                  dd«      }nß| d   dk(  r1| d   j                  «       }t        ||||dz   «      \  }}|dv rd}||fS | d   dk(  r+| d   j                  «       }t        ||||dz   «      \  }}|dfS | d   dk(  rk| }t        | d   «      }| d   j                  «       }|dk(  r+|dk(  r&|d   d   dk7  rt        d|d   d   › d�t        «       yt        ||||dz   «      \  }}||fS dddddddd œ}	|	j                  |«      xs  t        |	j                  «       «      |   xs |}||dk(  fS )!z“
    Returns:
        Image mode, not taking into account mask (transparency).
        ColorInversion is required (like for some DeviceCMYK).

    z^Color spaces nested too deeply. If required, consider increasing MAX_IMAGE_MODE_NESTING_DEPTH.)r   Fr   zCannot interpret color spacer   z/Calz/Deviceé   Nú	/ICCBasedr   z/Nz
/Alternateú/Indexed)r   r$   r!   ú/Separationr   Tz/DeviceNú/DeviceCMYKz/BlackzColor z8 converted to Gray. Please share PDF with pypdf dev team)r"   Tr   r"   r   r$   r   r    )Ú1bitz/DeviceGrayÚpalettez
/DeviceRGBr1   Ú2bitÚ4bit)r&   r   r   Ú
isinstanceÚstrÚlistÚ
startswithÚ
get_objectr   ÚintÚgetÚ_get_imagemodeÚlenr
   Ú__name__Úvalues)
r'   r(   r)   r*   Úcolor_space_strÚicc_profileÚmodeÚinvert_colorÚoriginal_color_spaceÚmode_maps
             úc/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/pypdf/_xobj_image_helpers.pyr=   r=   *   sk  € ð Ô+Ò+ÜØló
ð 	
ô �{Ô#ØØ€OÜ�+œsÔ#Ø%ŠÜ˜¤TÔ*ÜØ*¨Kó
ð 	
ð 
�Q‰×	"Ñ	" 6Ô	*Ø# k°!¡n°Q°RÐ&8Ñ8ŠØ	�Q‰˜;Ò	&Ø! !‘n×/Ñ/Ó1ˆÜ¤ [°Ñ%6Ó7ÐØ%Ÿ/™/¨,¸Ó;‰Ø	�Q‰˜:Ò	%Ø% a™.×3Ñ3Ó5ˆÜ+ØÐ-¨y¸%À!¹)ó
Ñˆˆlð �?Ñ"ØˆDØ�\Ð!Ð!Ø	�Q‰˜=Ò	(Ø% a™.×3Ñ3Ó5ˆÜ+ØÐ-¨y¸%À!¹)ó
Ñˆˆlð �TˆzÐØ	�Q‰˜:Ò	%Ø*ÐÜ˜{¨1™~Ó.ÐØ% a™.×3Ñ3Ó5ˆØ˜mÒ+Ð0@ÀAÒ0EØ# AÑ& qÑ)¨XÒ5ÜØÐ1°!Ñ4°QÑ7Ð8Ð8pÐqÜôð Ü+ØÐ-¨y¸%À!¹)ó
Ñˆˆlð �\Ð!Ð!ð ØØØØØØñ*€Hð 	�‰�_Ó%ò 	Ü�—‘Ó!Ó"Ð#3Ñ4ò	àð 	ð �˜‘ÐÐó    ÚdataÚsizeÚbitsc                 ó&  — d|z  dz
  }t        |d   |d   z  «      }d}d|z
  }t        |d   «      D ]S  }|d|z
  k7  r
|dz  }d|z
  }t        |d   «      D ].  }| |   |z	  |z  ||||d   z  z   <   ||z  }|dk  sŒ%|dz  }d|z
  }Œ0 ŒU t        |«      S )Nr   r   é   )Ú	bytearrayÚrangeÚbytes)	rI   rJ   rK   ÚmaskÚbyte_bufferÚ
data_indexÚbitÚyÚxs	            rG   Ú	bits2byterW   z   sÉ   € Ø�‰I˜‰?€DÜ˜D ™G d¨1¡gÑ-Ó.€KØ€JØ
ˆd‰(€CÜ�4˜‘7Ž^ˆØ�!�d‘(Š?Ø˜!‰OˆJØ�d‘(ˆCÜ�t˜A‘w–ˆAØ,0°Ñ,<ÀÑ,CÀtÑ+KˆK˜˜A  Q¡™K™Ñ(Ø�4‰KˆCØ�Q‹wØ˜a‘�
Ø˜$‘h‘ñ  ð	 ô �ÓÐrH   rC   c                 óL  ‡— 	 t        j                  | ||«      }|S # t        $ r~}|d   |d   z  }t        |«      }|dk(  rt	        d«      |‚||z  dk7  r|‚|t        | «      z  |z  Šdj                  ˆfd„|D «       «      }t        j                  | ||«      }Y d }~|S d }~ww xY w)Nr   r   z9Data is 0 bytes, cannot process an image from empty data.rH   c              3   óN   •K  — | ]  }t        |ft        ‰«      z  «      –— Œ y ­w©N)rP   r;   )Ú.0rV   Úks     €rG   Ú	<genexpr>z,_extended_image_frombytes.<locals>.<genexpr>›   s!   øè ø€ Ð;±d°œ˜q˜d¤S¨£V™m×,±dùs   ƒ"%)r   Ú	frombytesÚ
ValueErrorr>   r   Újoin)rC   rJ   rI   ÚimgÚexcÚnb_pixÚdata_lengthr\   s          @rG   Ú_extended_image_frombytesre   Œ   s»   ø€ ð0Ü�o‰o˜d D¨$Ó/ˆð €Jøô ò 0Ø�a‘˜4 ™7Ñ"ˆÜ˜$“iˆØ˜!ÒÜ%ØKóàðð ˜Ñ 1Ò$ØˆIØ”S˜“YÑ Ñ,ˆØ�x‰xÓ;±dÓ;Ó;ˆÜ�o‰o˜d D¨$Ó/ŒØ€Jûð0ús   ƒ œ	B#¥A3BÂB#c                 ób  — t        | «      }|dk(  rd„ | D «       \  } }}}| |||fS | d   }t        |t        «      r|n|j                  «       }|dk(  rOd|v rK| d   j                  «       | d   j                  «       }} |j	                  d«      \  }}t        |«      }| |||fS t        d|› d	| › �«      ‚)
Nr-   c              3   ó<   K  — | ]  }|j                  «       –— Œ y ­wrZ   )r:   )r[   Úvalues     rG   r]   z*__handle_flate__indexed.<locals>.<genexpr>£   s   è ø€ Ð+XÉKÀ5¨E×,<Ñ,<×,>ÉKùs   ‚r   r   Ú r   r   z(Expected color space with 4 values, got z: )r>   r6   r7   r:   Úsplitr;   r   )r'   ÚcountÚbaseÚhivalÚlookupÚelement1s         rG   Ú__handle_flate__indexedrp       sÍ   € Ü�Ó€EØ�‚zÙ+XÉKÓ+XÑ(ˆ�T˜5 &Ø˜D %¨Ð/Ð/ð ˜1‰~€HÜ% h´Ô4‰x¸(×:MÑ:MÓ:O€HØ�‚z�f Ñ(Ø)¨!™n×7Ñ7Ó9¸;Àq¹>×;TÑ;TÓ;V�VˆØ—n‘n VÓ,‰ˆˆeÜ�E“
ˆØ˜D %¨Ð/Ð/Ü
ÐAÀ%ÀÈÈ;È-ÐXÓ
YÐYrH   ÚcolorsÚobj_as_textc           
      ó\  ‡‡‡— d}d}t        |t        «      r|d   dk(  rt        |«      \  }}}	Š|dk(  rd}t        || d«      }n|dk(  rd}t        || d	«      }t	        || |«      Š|dk(  �rÅt        ‰t
        t        f«      r‰j                  «       Št        ‰t        «      r‰j                  Št        ‰t        «      r‰j                  «       Š	 d
dd
dddœt        dd«      d      \  }
}}‰j                  dk(  rÏd|
z  }t        ‰«      }||k7  r\||k  r-t        d|› d|› d�t         «       ‰t#        dg||z
  z  «      z  Šn%t%        ‰|d «      st        d|› d|› d�t         «       ‰d| Š‰d|
 ‰|
d gŠdj'                  ˆˆfd„t)        ‰j*                  d   «      D «       «      }t-        j.                  |‰j*                  |«      Š�n@‰j1                  |«      Št        ‰«      	dz   |
z  k7  rt        d|› �t         «       dŠnð|dk(  r.dj'                  ‰D �cg c]  }t#        |||g«      ‘Œ c}«      Šd}n½|dk(  r¸g }ˆfd„t)        dd	t        ‰«      d	z  z  d	«      D «       D ]{  \  }}}}t3        dd|dz  z
  z  d|dz  z
  z  «      }t3        dd|dz  z
  z  d|dz  z
  z  «      }t3        dd|dz  z
  z  d|dz  z
  z  «      }|j5                  t#        |||f«      «       Œ} dj'                  |«      Šd}‰�‰j7                  ‰|¬«       ‰j1                  |t8        j:                  k(  rdnd«      ŠnDt        |t>        «      s4|d   d"k(  r,t        |||«      d   }||k7  rt-        j.                  || |«      Š|dk(  rd#}d$}‰||d%fS c c}w # t<        $ r t        d › d!�t         «       dŠY Œ5w xY w)&zh
    Process image encoded in flateEncode
    Returns img, image_format, extension, color inversion
    z.pngÚPNGr   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   z#Not enough lookup values: Expected z, got Ú.Nz!Too many lookup values: Expected rH   c              3   ó„   •‡K  — | ]6  Šd j                  ˆˆˆfd„t        ‰j                  d   «      D «       «      –— Œ8 y­w)rH   c              3   óX   •K  — | ]!  }‰‰j                  |‰f«      d kD  rdnd   –— Œ# y­w)é   r   r   N)Úgetpixel)r[   rV   Ú
colors_arrra   rU   s     €€€rG   r]   z*_handle_flate.<locals>.<genexpr>.<genexpr>õ   s4   øè ø€ ð á!3˜Að #¨¯©°a¸°VÓ(<¸sÒ(B¡1ÈÕJÙ!3ùs   ƒ'*r   N)r`   rO   rJ   )r[   rU   rz   ra   s    @€€rG   r]   z _handle_flate.<locals>.<genexpr>ô   s@   ùè ø€ ð ñ
 0˜ð	 —H‘Hõ ä!& s§x¡x°¡{Ô!3ó÷ ñ 0ùs   „<A r   zInvalid Lookup Table in r"   r   r$   c              3   ó.   •K  — | ]  }‰||d z    –— Œ y­w)r-   N© )r[   Únrn   s     €rG   r]   z _handle_flate.<locals>.<genexpr>	  s!   øè ø€ ð +Ù3V¨a˜˜q 1 q¡5Ô)Ñ3Vùs   ƒéÿ   )ÚrawmodezBase z8 not coded please share the pdf file with pypdf dev teamr.   z.tifÚTIFFF) r6   r   rp   rW   re   r   r   Úget_datar   Úoriginal_bytesr7   Úencoder=   rC   r>   r
   r?   rP   r	   r`   rO   rJ   r   r^   Úconvertr;   ÚappendÚ
putpaletter   ÚDEVICE_GRAYÚKeyErrorr   )rJ   rI   rC   r'   rq   rr   Ú	extensionÚimage_formatrl   rm   ÚnbÚconvÚexpected_countÚactual_countÚarrÚbÚ_rgbÚ_cÚ_mÚ_yÚ_kÚ_rÚ_gÚ_bÚmode2rz   ra   rn   s                            @@@rG   Ú_handle_flaterš   ²   s!  ú€ ð €IØ€Lô �+œ{Ô+°¸A±À*Ò0LÜ+BÀ;Ó+OÑ(ˆ�T˜5 &Øˆw‚ØˆÜ˜˜t QÓ'‰Ø	�ŠØˆÜ˜˜t QÓ'ˆÜ
# D¨$°Ó
5€CØ�jÓ Ü�fÔ2Ô4GÐHÔIØ—_‘_Ó&ˆFÜ�fÔ.Ô/Ø×*Ñ*ˆFÜ�fœcÔ"Ø—]‘]“_ˆFðA	Qà Ø"Ø Ø&Ø(ñô ˜T 1 bÓ)¨!Ñ,ñ.‰NˆB��dð �x‰x˜3Šà!" R¡�Ü" 6›{�Ø >Ò1Ø# nÒ4Ü&ØAÀ.ÐAQÐQWÐXdÐWeÐefÐgÜ$ôð ¤%¨¨¨~ÀÑ/LÑ(MÓ"NÑN™Ü5°f¸^¸_Ð6MÔNÜ&Ø?ÀÐ?OÈvÐVbÐUcÐcdÐeÜ$ôð $ O ^Ð4�FØ$ S b˜k¨6°"°#¨;Ð7�
Ø—h‘hô ô
 # 3§8¡8¨A¡;Ô/óó �ô —o‘o d¨C¯H©H°cÓ:’à—k‘k $Ó'�Ü�v“; 5¨1¡9°Ñ"2Ò2Ü"Ð%=¸k¸]Ð#KÌXÔVØ!‘FØ˜S’[à ŸX™XÁÓ&HÁ¸A¤u¨a°°A¨YÕ'7ÀÑ&HÓI�FØ ‘Dð ˜V’^Ø�Dó+Ü38¸¸AÄÀVÃÐPQÑAQÑ<RÐTUÔ3Vö+™˜˜B  Bô ! ¨¨B°©H©Ñ!5¸¸RÀ#¹X¹Ñ!FÓG˜Ü  ¨¨B°©H©Ñ!5¸¸RÀ#¹X¹Ñ!FÓG˜Ü  ¨¨B°©H©Ñ!5¸¸RÀ#¹X¹Ñ!FÓG˜ØŸ™¤E¨2¨r°2¨,Ó$7Õ8ð+ð !ŸX™X d›^�FØ �DØÐ%Ø—N‘N 6°4�NÔ8Ø—+‘+ T¬[×-DÑ-DÒ%D™cÈ%ÓP‰CÜ˜¤ZÔ0°[À±^À{Ò5Rô ˜{¨F°DÓ9¸!Ñ<ˆØ�5Š=Ü—/‘/ %¨¨tÓ4ˆCØˆv‚~Øˆ	ØˆØ�˜i¨Ð.Ð.ùò7 'IøôQ ò 	ÜØ˜�vÐUÐVÜôð ŠFð	ús   ÃN	 ÈNÎ	N+Î*N+c                 ó  — d}t        j                  t        |«      d¬«      }t        |||«      \  }}|dk(  rt	        t
        |j                  «      }|dv }|j                  dk(  r|dk(  rd}|j                  |k(  s|j                  |hdd	hk(  r|}nT|j                  |hdd
hk(  r0t        j                  ||j                  |j                  «       «      }n|j                  |«      }|j                  d
k(  r|j                  d«      }d}	||	||fS )zb
    Process image encoded in flateEncode
    Returns img, image_format, extension, inversion
    z.jp2)ÚJPEG2000)Úformatsr   )r$   r#   r   r"   r!   r$   rœ   )r   Úopenr   r=   r   r%   rC   r^   rJ   Útobytesr„   )
rJ   rI   rC   r'   rq   r‰   Úimg1rD   ra   rŠ   s
             rG   Ú_handle_jpxr¡   !  sÿ   € ð €IÜ�:‰:”g˜d“m¨]Ô;€DÜ'¨°V¸TÓBÑ€Dˆ,Øˆr‚zÜ”M 4§9¡9Ó-ˆØ˜yÐ(ˆØ‡y�y�FÒ˜t uš}Øˆà‡y�y�DÒ˜TŸY™Y¨Ð-°#°s°Ò;à‰Ø
�)‰)�TÐ	˜v vÐ.Ò	.ô �o‰o˜d D§I¡I¨t¯|©|«~Ó>‰à�l‰l˜4Ó ˆð ‡x�x�6ÒØ�k‰k˜%Ó ˆØ€LØ�˜i¨Ð5Ð5rH   ra   Úx_object_objÚlfiltersrD   c                 óò  ‡‡‡	— |j                  t        j                  | j                  dk(  r"|t        j
                  t        j                  fv s|r-| j                  dk(  rddgt        | j                  «       «      z  nd «      Št        |t        «      r|d   j                  «       dk(  rd Št        |t        «      r4|d   j                  «       dk(  rddgt        | j                  «       «      z  Š‰�…t        ˆfd„t        t        ‰«      «      D «       «      s_g }t        dt        ‰«      d	«      D ]3  }‰|   Š	‰|d
z      Š|j                  ˆˆ	fd„t        d«      D «       «       Œ5 | j                  |«      } | S )Nr$   r"   g      ð?g        r   r/   r0   c              3   ó4   •K  — | ]  }‰|   |d z  k(  –— Œ y­w)r   Nr|   )r[   ÚiÚdecodes     €rG   r]   z _apply_decode.<locals>.<genexpr>c  s!   øè ø€ Ð%UÑBT¸Q f¨Q¡i°1°q±5Õ&8ÑBTùs   ƒr   r   c              3   óR   •K  — | ]  }t        d |d z  ‰‰z
  z  ‰z   z  «      –— Œ  y­w)g     ào@N)Úround)r[   ÚjÚdmaxÚdmins     €€rG   r]   z _apply_decode.<locals>.<genexpr>h  s1   øè ø€ ð ÙKUÀa”�e˜q 5™y¨D°4©KÑ8¸4Ñ?Ñ@×AÉ:ùs   ƒ$'é   )r<   ÚIAÚDECODErC   ÚFTÚ
DCT_DECODEÚ
JPX_DECODEr>   Úgetbandsr6   r   r:   ÚallrO   ÚextendÚpoint)
ra   r¢   r£   r'   rD   Úlutr¦   r§   r«   r¬   s
          @@@rG   Ú_apply_decoder¸   G  sG  ú€ ð ×ÑÜ
�	‰	ð �X‰X˜Ò H´·±ÄÇÁÐ0NÑ$NÙ §¡¨S¢ð ˆsˆ”c˜#Ÿ,™,›.Ó)Ò	)ð
 ó€Fô 	�;¤Ô,Ø˜‰N×%Ñ%Ó'¨:Ò5àˆä�;¤Ô,Ø˜‰N×%Ñ%Ó'¨=Ò8à�s�œc #§,¡,£.Ó1Ñ1ˆØÐ¤#Ó%UÄ%ÌÈFËÔBTÓ%UÔ"UØˆÜ�qœ#˜f›+ qÖ)ˆAØ˜!‘9ˆDØ˜!˜a™%‘=ˆDØ�J‰Jô ÜKPÐQTÌ:óõ ð *ð �i‰i˜‹nˆØ€JrH   c                 ó>  — t         j                  | v r&| t         j                     t        j                  k(  rd}| j	                  dd«      dk  r't        | j	                  dd«      › d�dd«      \  }}||fS t        ||dk(  rt        |«      sd|vrd	n|d«      \  }}||fS )
Nr   z/BitsPerComponentrM   rT   r   r   r   ÚGrayr   )r®   ÚCOLOR_SPACEr   Ú
DEVICE_RGBr<   r=   r   )r¢   rq   r'   rC   rD   s        rG   Ú_get_mode_and_invert_colorr½   o  sÄ   € ô 	�‰˜,Ñ&ØœŸ™Ñ(¬K×,BÑ,BÒBð $ˆØ×ÑÐ+¨QÓ/°!Ò3Ü+Ø×ÑÐ 3°QÓ7Ð8¸Ð<¸aÀó
Ñˆˆlð" �ÐÐô ,Øð ˜!’ä'¨Ô4Ø kÑ1ñ ð Øó
Ñˆˆlð �ÐÐrH   )r   )5Ú__doc__ÚsysÚior   Útypingr   r   r   r   Ú_utilsr	   r
   Ú	constantsr   r   r°   r   r®   Úerrorsr   r   Úgenericr   r   r   r   r   r   Úversion_infor   Útyping_extensionsÚPILr   r   ÚImportErrorr%   Ú__annotations__r&   r;   r7   r8   ÚtupleÚboolr=   rP   rW   re   rp   rš   r¡   Údictr¸   r½   r|   rH   rG   Ú<module>rÎ      sØ  ðÚ ?ã 
Ý ß ,Ó ,ç <Ý "Ý (Ý ,ß 5÷÷ ð ×Ñ�B�QÐ˜7Ò"Þ å+ðß1ð #Ø>ñ€ˆyó ð %'Ð ˜cÓ &ð ñ	M Ø�s˜D ™I sÐ*Ñ+ðM àðM ð ðM ð ð	M ð
 ˆ=˜$ÐÑóM ð`�Eð   s¨C x¡ð ¸ð Àó ð$Ø
ðØ˜3 ˜8‘_ðØ,1ðà
‡[�[óð(Z¨ð Z¸¸sÀCÈÈcÐ?QÑ9Ró Zð$l/Ø
��S�‰/ðl/à
ðl/ð ðl/ð ð	l/ð
 ðl/ð ðl/ð ˆ5�;‰;˜˜S $Ð&Ñ'ól/ð^#6Ø
��S�‰/ð#6à
ð#6ð ð#6ð ð	#6ð
 ð#6ð ˆ5�;‰;˜˜S $Ð&Ñ'ó#6ðL%Ø	�‰ð%à�s˜C�x‘.ð%ð ð%ð �s˜D ™I sÐ*Ñ+ð	%ð
 ð%ð ‡[�[ó%ðPØ�s˜C�x‘.ðØ*-ðØ<AÀ#ÀtÈCÁyÐRUÐBUÑ<Vðà
ˆ=˜$ÐÑôøðe
 ò Ù
ð	=óð ðús   Á,E> Å>F