§
    K˜ºh]*  ã                   óN  — U d 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mZ ddlmZ ddlmZ dd	lmZmZmZmZmZ ej        dd
…         dk    rddlmZ nddlmZ ej        dd
…         dk    rddlmZ nddlmZ 	 ddlmZ n# e$ r  ed¦  «        ‚w xY w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e!e!f         de%dede"de!de"deej        e"e"e#f         fd „Z&dee!e!f         de%dede"de!deej        e"e"e#f         fd!„Z'dS )#z9Code in here is only used by pypdf.filters._xobj_to_imageé    N)ÚBytesIO)ÚAnyÚListÚTupleÚUnionÚcasté   )Úcheck_if_whitespace_onlyÚlogger_warning)ÚColorSpaces)ÚPdfReadError)ÚArrayObjectÚDecodedStreamObjectÚEncodedStreamObjectÚIndirectObjectÚ
NullObjecté   )é   é   )ÚLiteral)r   é
   )Ú	TypeAlias)ÚImagez]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                 óh  — |t           k    rt          d¦  «        ‚t          | t          ¦  «        rdS t          | t          ¦  «        r�nt          | t
          ¦  «        st          d| ¦  «        ‚| d                              d¦  «        rd| d         dd…         z   } �nÆ| d         d	k    rM| d
                              ¦   «         }t          t          |d         ¦  «        }| 
                    dd¦  «        } �nm| d         dk    rS| d
         } t          | t          ¦  «        r|                      ¦   «         } t          | |||d
z   ¦  «        \  }}|dv rd}||fS | d         dk    rM| d         } t          | t          ¦  «        r|                      ¦   «         } t          | |||d
z   ¦  «        \  }}|dfS | d         dk    r©| }t          | d
         ¦  «        }| d         } t          | t          ¦  «        r|                      ¦   «         } | dk    r?|d
k    r9|d
         d         dk    r%t          d|d
         d         › d�t          ¦  «         dS t          | |||d
z   ¦  «        \  }}||fS dddddddd œ}| 
                    | ¦  «        p(t          |                     ¦   «         ¦  «        |         p|}	|	|	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 deep. If required, consider increasing MAX_IMAGE_MODE_NESTING_DEPTH.)r   Fzcan not interprete colorspacer   z/Calz/Deviceé   Nú	/ICCBasedr	   z/Nz
/Alternater   ú/Indexed)r   r"   r   z/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
/DeviceRGBr.   Ú2bitÚ4bit)r$   r   Ú
isinstancer   ÚstrÚlistÚ
startswithÚ
get_objectr   ÚintÚgetr   Ú_get_imagemodeÚlenr   Ú__name__Úvalues)
r%   r&   r'   r(   Úicc_profileÚmode2Úinvert_colorÚoriginal_color_spaceÚmode_mapÚmodes
             úa/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/pypdf/_xobj_image_helpers.pyr:   r:   .   s6  € ð Õ+Ò+Ð+ÝØjñ
ô 
ð 	
õ �+�zÑ*Ô*ð ØˆyÝ�+�sÑ#Ô#ð .#ÙÝ˜¥TÑ*Ô*ð ,#ÝØ+¨[ñ
ô 
ð 	
ð 
�QŒ×	"Ò	" 6Ñ	*Ô	*ð (#Ø +¨a¤.°°°Ô"4Ñ4ˆ‰Ø	�QŒ˜;Ò	&Ð	&Ø! !”n×/Ò/Ñ1Ô1ˆÝ¥ [°Ô%6Ñ7Ô7ÐØ!—o’o l°BÑ7Ô7ˆ‰Ø	�QŒ˜:Ò	%Ð	%Ø! !”nˆÝ�k¥>Ñ2Ô2ð 	3Ø%×0Ò0Ñ2Ô2ˆKÝ,ØÐ)¨9°e¸a±iñ
ô 
Ñˆˆ|ð �OÐ#Ð#ØˆEØ�lÐ"Ð"Ø	�QŒ˜=Ò	(Ð	(Ø! !”nˆÝ�k¥>Ñ2Ô2ð 	3Ø%×0Ò0Ñ2Ô2ˆKÝ,ØÐ)¨9°e¸a±iñ
ô 
Ñˆˆ|ð �dˆ{ÐØ	�QŒ˜:Ò	%Ð	%Ø*ÐÝ˜{¨1œ~Ñ.Ô.ÐØ! !”nˆÝ�k¥>Ñ2Ô2ð 	3Ø%×0Ò0Ñ2Ô2ˆKØ˜-Ò'Ð'Ð,<ÀÒ,AÐ,AØ# AÔ& qÔ)¨XÒ5Ð5ÝØqÐ1°!Ô4°QÔ7ÐqÐqÐqÝñô ð ð �9Ý,ØÐ)¨9°e¸a±iñ
ô 
Ñˆˆ|ð �lÐ"Ð"ð ØØØØØØðð €Hð 	�Š�[Ñ!Ô!ð 	Ý�—’Ñ!Ô!Ñ"Ô"Ð#3Ô4ð	àð 	ð
 �˜’ÐÐó    ÚsizeÚdatarC   ÚcolorsÚobj_as_textc                 óö  ‡‡‡— dt           dt          t          t          f         dt          dt           fd„}d}d}t          |t          ¦  «        r|d         d	k    rd
„ |D ¦   «         \  }}	}
Š|dk    rd} ||| d¦  «        }n|dk    rd} ||| d¦  «        }t          j        || |¦  «        Š|d	k    �rcddlm} t          ‰t          t          f¦  «        r‰                     ¦   «         Št          ‰|¦  «        r‰j        Št          ‰t          ¦  «        r‰                     ¦   «         Š	 ddddddœt          |	dd¦  «        d                  \  }}}‰j        dk    rýd|z  }t#          ‰¦  «        |k    rzt#          ‰¦  «        |k     r#t%          d|› dt#          ‰¦  «        › d�¦  «        ‚t'          ‰|d…         ¦  «        s#t%          d|› dt#          ‰¦  «        › d�¦  «        ‚‰d|…         Š‰d|…         ‰|d…         gŠd                     ˆˆfd„t+          ‰j        d         ¦  «        D ¦   «         ¦  «        }t          j        |‰j        |¦  «        Š�nj‰                     |¦  «        Št#          ‰¦  «        |
dz   |z  k    rt1          d |› �t2          ¦  «         dŠ�n|d!k    r"d                     d"„ ‰D ¦   «         ¦  «        Šd#}nß|d$k    rÙg }ˆfd%„t+          ddt#          ‰¦  «        dz  z  d¦  «        D ¦   «         D ]�\  }}}}t          d&d|d&z  z
  z  d|d&z  z
  z  ¦  «        }t          d&d|d&z  z
  z  d|d&z  z
  z  ¦  «        }t          d&d|d&z  z
  z  d|d&z  z
  z  ¦  «        }|                     t          |||f¦  «        ¦  «         Œ�d                     |¦  «        Šd#}‰�‰                     ‰|¬'¦  «         ‰                     |	t8          j        k    rd!nd#¦  «        Šn# t<          $ r t1          d(|	› d)�t2          ¦  «         dŠY nXw xY wt          |t>          ¦  «        s?|d         d*k    r3t          |||¦  «        d         }||k    rt          j        || |¦  «        Š|d$k    rd+}d,}‰||d-fS ).zh
    Process image encoded in flateEncode
    Returns img, image_format, extension, color inversion
    rG   rF   Úbitsr)   c                 óp  — d|z  dz
  }t          |d         |d         z  ¦  «        }d}d|z
  }t          |d         ¦  «        D ]e}|dk    r|d|z
  k    r
|dz  }d|z
  }t          |d         ¦  «        D ]4}| |         |z	  |z  |||d         z  |z   <   ||z  }|dk     r
|dz  }d|z
  }Œ5Œft          |¦  «        S )Nr   r	   r   r   )Ú	bytearrayÚrangeÚbytes)	rG   rF   rK   ÚmaskÚnbuffÚbyÚbitÚyÚxs	            rD   Ú	bits2bytez _handle_flate.<locals>.bits2byte�   së   € Ø�T‘	˜Q‰ˆÝ˜$˜qœ' D¨¤GÑ+Ñ,Ô,ˆØˆØ�$‰hˆÝ�t˜A”w‘”ð 		#ð 		#ˆAØ�q’�˜s a¨$¡hš˜Ø�a‘�Ø˜$‘h�Ý˜4 œ7‘^”^ð #ð #�Ø*.¨r¬(°c©/¸TÑ)A��a˜$˜qœ'‘k A‘oÑ&Ø�t‘�Ø˜’7�7Ø˜!‘G�BØ˜d™(�Cøð#õ �U‰|Œ|ÐrE   z.pngÚPNGr   r-   c              3   ó>   K  — | ]}|                      ¦   «         V — Œd S )N)r7   )Ú.0Úvalues     rD   ú	<genexpr>z _handle_flate.<locals>.<genexpr>¤   s.   è è € Ð+XÐ+XÀ5¨E×,<Ò,<Ñ,>Ô,>Ð+XÐ+XÐ+XÐ+XÐ+XÐ+XrE   r   r   r   r   r+   r	   )ÚTextStringObject)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 rE   c           	      óˆ   •‡— g | ]=Šd                       ˆˆˆfd„t          ‰j        d         ¦  «        D ¦   «         ¦  «        ‘Œ>S )rE   c                 óZ   •— g | ]'}‰‰                      |‰f¦  «        d k    rdnd         ‘Œ(S )é   r	   r   )Úgetpixel)rY   rU   Ú
colors_arrÚimgrT   s     €€€rD   ú
<listcomp>z,_handle_flate.<locals>.<listcomp>.<listcomp>Ñ   sM   ø€ ð ð ð à$%ð !+°·²¸aÀ¸VÑ0DÔ0DÀsÒ0JÐ0J¨1¨1ÐPQÔ Rðð ð rE   r   )ÚjoinrN   rF   )rY   rT   rb   rc   s    @€€rD   rd   z!_handle_flate.<locals>.<listcomp>Ï   sx   øø€ ð ð ð ð ð Ÿšðð ð ð ð ð å).¨s¬x¸¬{Ñ);Ô);ðñ ô ñô ðð ð rE   zInvalid Lookup Table in r    c                 ó2   — g | ]}t          |||g¦  «        ‘ŒS © )rO   )rY   Úbs     rD   rd   z!_handle_flate.<locals>.<listcomp>á   s&   € Ð&HÐ&HÐ&H¸A¥u¨a°°A¨YÑ'7Ô'7Ð&HÐ&HÐ&HrE   r   r"   c              3   ó2   •K  — | ]}‰||d z   …         V — ŒdS )r+   Nrg   )rY   ÚnÚlookups     €rD   r[   z _handle_flate.<locals>.<genexpr>ç   sA   øè è € ð +ð +Ø./˜˜q 1 q¡5˜yÔ)ð+ð +ð +ð +ð +ð +rE   éÿ   )ÚrawmodezBase z8 not coded please share the pdf file with pypdf dev teamr,   z.tifÚTIFFF) rO   r   r8   r3   r   r   Ú	frombytesÚgenericr\   r   r   Úget_dataÚoriginal_bytesr4   Úencoder:   rC   r;   r   r
   re   rN   rF   Úconvertr   r<   ÚappendÚ
putpaletter   ÚDEVICE_GRAYÚKeyErrorr   )rF   rG   rC   r%   rH   rI   rV   Ú	extensionÚimage_formatÚbaseÚhivalr\   ÚnbÚconvÚexpected_countÚarrÚ_rgbÚ_cÚ_mÚ_yÚ_kÚ_rÚ_gÚ_br?   rb   rc   rk   s                            @@@rD   Ú_handle_flater‰   €   sp  øøø€ ð�ð ¥U­3µ¨8¤_ð ½Cð ÅEð ð ð ð ð" €IØ€Lõ �+�{Ñ+Ô+ð Y°¸A´À*Ò0LÐ0LØ+XÐ+XÈKÐ+XÑ+XÔ+XÑ(ˆ�T˜5 &Øˆw‚€ØˆØˆy˜˜t QÑ'Ô'ˆˆØ	�ŠˆØˆØˆy˜˜t QÑ'Ô'ˆÝ
Œ/˜$  dÑ
+Ô
+€CØ�jÒ Ñ Ø-Ð-Ð-Ð-Ð-Ð-å�fÕ2Õ4GÐHÑIÔIð 	'Ø—_’_Ñ&Ô&ˆFÝ�fÐ.Ñ/Ô/ð 	+ØÔ*ˆFÝ�f�cÑ"Ô"ð 	%Ø—]’]‘_”_ˆFð=	Qà Ø"Ø Ø&Ø(ðð õ ˜T 1 bÑ)Ô)¨!Ô,ô.‰NˆB��dð Œx˜3Šˆà!" R¡�Ý�v‘;”; .Ò0Ð0Ý˜6‘{”{ ^Ò3Ð3Ý*Ð+uÐQ_Ð+uÐ+uÕgjÐkqÑgrÔgrÐ+uÐ+uÐ+uÑvÔvÐvÝ3°F¸>¸?¸?Ô4KÑLÔLð uÝ*Ð+sÈ~Ð+sÐ+sÕehÐioÑepÔepÐ+sÐ+sÐ+sÑtÔtÐtØ# O ^ OÔ4�FØ$ S b Sœk¨6°"°#°#¬;Ð7�
Ø—h’hðð ð ð ð õ "' s¤x°¤{Ñ!3Ô!3ðñ ô ñ
ô 
�õ ”o d¨C¬H°cÑ:Ô:�‘à—k’k $Ñ'Ô'�Ý�v‘;”; 5¨1¡9°Ñ"2Ò2Ð2Ý"Ð#K¸kÐ#KÐ#KÍXÑVÔVÐVØ!�F‘FØ˜S’[�[à ŸXšXÐ&HÐ&HÀÐ&HÑ&HÔ&HÑIÔI�FØ �D�Dð ˜V’^�^Ø�Dð+ð +ð +ð +Ý38¸¸AÅÀVÁÄÐPQÑAQÑ<RÐTUÑ3VÔ3Vð+ñ +ô +ð 9ð 9™˜˜B  Bõ ! ¨¨B°©H©Ñ!5¸¸RÀ#¹X¹Ñ!FÑGÔG˜Ý  ¨¨B°©H©Ñ!5¸¸RÀ#¹X¹Ñ!FÑGÔG˜Ý  ¨¨B°©H©Ñ!5¸¸RÀ#¹X¹Ñ!FÑGÔG˜ØŸš¥E¨2¨r°2¨,Ñ$7Ô$7Ñ8Ô8Ð8Ð8Ø ŸXšX d™^œ^�FØ �DØÐ%Ø—N’N 6°4�NÑ8Ô8Ð8Ø—+’+ T­[Ô-DÒ%DÐ%D˜c˜cÈ%ÑPÔPˆCˆCøõk ð 	ð 	ð 	ÝØV˜ÐVÐVÐVÝñô ð ð ˆFˆFˆFð	øøøõl ˜¥ZÑ0Ô0ð 5°[À´^À{Ò5RÐ5Rõ ˜{¨F°DÑ9Ô9¸!Ô<ˆØ�5Š=ˆ=Ý”/ %¨¨tÑ4Ô4ˆCØˆv‚~€~Øˆ	ØˆØ�˜i¨Ð.Ð.s   Ä+'O, Ï,%PÐP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    r.t          j        ||j        | 	                    ¦   «         ¦  «        }n|}n=# t          $ r0 t          j        ||j        | 	                    ¦   «         ¦  «        }Y nw xY w|j        dk    r|                     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   Úopenr   r:   r   r#   rC   ro   rF   ÚtobytesÚOSErrorrt   )
rF   rG   rC   r%   rH   ry   Úimg1r@   rc   rz   s
             rD   Ú_handle_jpxr‘   ÿ   s  € ð €IÝŒ:•g˜d‘m”m¨]Ð;Ñ;Ô;€DÝ'¨°V¸TÑBÔBÑ€Dˆ,Øˆr‚z€zÝ•M 4¤9Ñ-Ô-ˆØ˜yÐ(ˆØ„y�FÒÐ˜t uš}˜}Øˆð?ØŒ9˜ÒÐÝ”/ $¨¬	°4·<²<±>´>ÑBÔBˆCˆCàˆCøøÝð ?ð ?ð ?ÝŒo˜d D¤I¨t¯|ª|©~¬~Ñ>Ô>ˆˆˆð?øøøð
 „x�6ÒÐØ�kŠk˜%Ñ Ô ˆØ€LØ�˜i¨Ð5Ð5s   Á2;B. Â.7C(Ã'C()r   )(Ú__doc__ÚsysÚior   Útypingr   r   r   r   r   Ú_utilsr
   r   Ú	constantsr   Úerrorsr   rp   r   r   r   r   r   Úversion_infor   Útyping_extensionsr   ÚPILr   ÚImportErrorr#   Ú__annotations__r$   r8   r4   Úboolr:   rO   r‰   r‘   rg   rE   rD   ú<module>rŸ      s/  ðØ ?Ð ?Ð ?à 
€
€
€
Ø Ð Ð Ð Ð Ð Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0à <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ø "Ð "Ð "Ð "Ð "Ð "Ø  Ð  Ð  Ð  Ð  Ð  ðð ð ð ð ð ð ð ð ð ð ð ð ð ð Ô�B�Q�BÔ˜6Ò!Ð!ØÐÐÐÐÐÐð *Ð)Ð)Ð)Ð)Ð)àÔ�B�Q�BÔ˜7Ò"Ð"Ø Ð Ð Ð Ð Ð Ð à+Ð+Ð+Ð+Ð+Ð+ðØÐÐÐÐÐÐøØð ð ð Ø
ˆ+ð	=ñô ð ðøøøð #Ø>ô€ˆyð ð ñ ð %'Ð ˜cÐ &Ð &Ñ &ð ð	O ð O Ø�s˜D œI sÐ*Ô+ðO àðO ð ðO ð ð	O ð
 ˆ=˜$ÐÔðO ð O ð O ð O ðd|/Ø
��S�Œ/ð|/à
ð|/ð ð|/ð ð	|/ð
 ð|/ð ð|/ð ˆ5Œ;˜˜S $Ð&Ô'ð|/ð |/ð |/ð |/ð~!6Ø
��S�Œ/ð!6à
ð!6ð ð!6ð ð	!6ð
 ð!6ð ˆ5Œ;˜˜S $Ð&Ô'ð!6ð !6ð !6ð !6ð !6ð !6s   Á?B ÂB