
    )ii                         S SK r S SKJr  S SKJrJrJrJrJr  \ R                  " \
5      r " S S\5      r " S S5      rS\S	\4S
 jrg)    N)BytesIO)BinaryIOIteratorListOptionalcastc                       \ rS rSrSrg)CorruptDataError    N)__name__
__module____qualname____firstlineno____static_attributes__r       L/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/pdfminer/lzw.pyr
   r
      s    r   r
   c                   ^    \ rS rSrS\SS4S jrS\S\4S jrS\S\4S	 jr	S\
\   4S
 jrSrg)
LZWDecoder   fpreturnNc                 V    Xl         SU l        SU l        SU l        / U l        S U l        g )Nr   r   	   )r   buffbposnbitstableprevbuf)selfr   s     r   __init__LZWDecoder.__init__   s*    		
,.
(,r   bitsc                 \   Sn SU R                   -
  nX::  a7  X!-  U R                  X1-
  -	  SU-  S-
  -  -  nU =R                   U-  sl          U$ X#-  U R                  SU-  S-
  -  -  nX-  nU R                  R                  S5      nU(       d  [        e[        U5      U l        SU l         M  )Nr      r   )r   r   r   readEOFErrorord)r    r#   vrxs        r   readbitsLZWDecoder.readbits   s    DIIAy YDII!($;da#PQ		T!	  V		a1f\ :;	GGLLO"NF		) r   codec                    SnUS:X  aq  [        S5       Vs/ s H  n[        U45      PM     snU l        U R                  R                  S 5        U R                  R                  S 5        SU l        SU l        U$ US:X  a   U$ U R                  (       d%  [        [        U R                  U   5      =o l        U$ U[        U R                  5      :  aI  [        [        U R                  U   5      nU R                  R                  U R                  US S -   5        OrU[        U R                  5      :X  aS  U R                  R                  U R                  U R                  S S -   5        [        [        U R                  U   5      nO[        e[        U R                  5      nUS:X  a  SU l        OUS:X  a  S	U l        OUS
:X  a  SU l        X l        U$ s  snf )Nr      r   i  r%   i  
   i     i  r   )	rangebytesr   appendr   r   r   lenr
   )r    r.   r+   ctable_lengths        r   feedLZWDecoder.feed/   s   3;/4Sz:z!%+z:DJJJd#JJd#DLDJ, + S[( ' #E4::d+;<<A$ ! c$**o%

4 01

!!$,,2A"67TZZ(

!!$,,bq1A"AB

4 01&&tzz?Ls"
%
%
L5 ;s   Gc           	   #     #      U R                  U R                  5      n U R                  U5      nUv   [
        R                  SU R                  UUU R                  SS  5        Md  ! [         a     g f = f! [         a     g f = f7f)Nz&nbits=%d, code=%d, output=%r, table=%ri  )r,   r   r'   r9   r
   loggerdebugr   )r    r.   r+   s      r   runLZWDecoder.runN   s     }}TZZ0IIdO GLL8



34     $ sD   BA( A8 6B(
A52B4A55B8
BBBB)r   r   r   r   r   r   )r   r   r   r   r   r!   intr,   r4   r9   r   r>   r   r   r   r   r   r      sK    -8 - -S S 2  >Xe_ r   r   datar   c                 l    [        U 5      n[        U5      R                  5       nSR                  U5      $ )Nr   )r   r   r>   join)rA   r   ss      r   	lzwdecoderE   d   s+    	B2A88A;r   )loggingior   typingr   r   r   r   r   	getLoggerr   r<   	Exceptionr
   r   r4   rE   r   r   r   <module>rK      sM      ; ;			8	$	y 	U UpE e r   