
    z%ia                        	 d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZg dZd\  Z	Z
ZZZd\  ZZdZdZdZdZd	ej(                  z  Zd
edddfdZd Z G d d      Z G d de      Z G d dej6                        Z G d dej:                        Zd Zd Z  G d dejB                        Z"	 d!de#de$fdZ%efdddZ&d Z'd Z(e)d k(  r e(        yy)"    N)BadGzipFileGzipFileopencompress
decompress)               )r   r	   r      	   i   r
   rbc                    	 d|v rd|v r5t        d|      |t        d      |t        d      |t        d      |j                  dd      }t        | t        t        t
        j                  f      rt        | ||      }n2t        | d      st        | d	      rt        d |||       }nt        d
      d|v r-t        j                  |      }t        j                  ||||      S |S )NtbzInvalid mode: z0Argument 'encoding' not supported in binary modez.Argument 'errors' not supported in binary modez/Argument 'newline' not supported in binary mode readwritez1filename must be a str or bytes object, or a file)
ValueErrorreplace
isinstancestrbytesosPathLiker   hasattr	TypeErroriotext_encodingTextIOWrapper)filenamemodecompresslevelencodingerrorsnewlinegz_modebinary_files           8/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/gzip.pyr   r      s    $ d{$;49::OPPMNNNOOll3#G(S%56x-@	6	"gh&@tWmXFKLL
d{##H-XvwGG    c                 N    | j                  t        j                  d|             y )Nz<L)r   structpack)outputvalues     r*   write32ur1   I   s     LLT5)*r+   c                   0    e Zd Z	 ddZd ZddZd Zd Zy)_PaddedFilec                 N    || _         t        |      | _        || _        d| _        y Nr   )_bufferlen_lengthfile_read)selffprepends      r*   __init__z_PaddedFile.__init__S   s"    7|	
r+   c                    | j                   | j                  j                  |      S | j                   |z   | j                  k  r:| j                   }| xj                   |z  c_         | j                  || j                    S | j                   }d | _         | j                  |d  | j                  j                  || j                  z
  |z         z   S N)r:   r9   r   r8   r6   )r;   sizer   s      r*   r   z_PaddedFile.readY   s    ::99>>$''::,::DJJ$J<<TZZ00::DDJ<<&99>>$t||"3D"89: :r+   c                     | j                   || _        n| xj                   t        |      z  c_         y t        | j                        | _        d| _         y r5   )r:   r6   r7   r8   )r;   r=   s     r*   r=   z_PaddedFile.prependf   s?    ::"DLJJ#g,&J4<<(
r+   c                 T    d | _         d | _        | j                  j                  |      S r@   )r:   r6   r9   seek)r;   offs     r*   rD   z_PaddedFile.seeko   s#    
yy~~c""r+   c                      yNT r;   s    r*   seekablez_PaddedFile.seekablet       r+   N)r+   )__name__
__module____qualname__r>   r   r=   rD   rJ   rH   r+   r*   r3   r3   N   s      :#
r+   r3   c                       e Zd Zy)r   N)rL   rM   rN   rH   r+   r*   r   r   x   s    @r+   r   c                   &    e Zd Z	 d Zd Zd Zd Zy)_WriteBufferStreamc                     || _         y r@   )	gzip_file)r;   rS   s     r*   r>   z_WriteBufferStream.__init__~   s	    "r+   c                 8    | j                   j                  |      S r@   )rS   
_write_raw)r;   datas     r*   r   z_WriteBufferStream.write   s    ~~((..r+   c                      y)NFrH   rI   s    r*   rJ   z_WriteBufferStream.seekable   s    r+   c                      yrG   rH   rI   s    r*   writablez_WriteBufferStream.writable   rK   r+   N)rL   rM   rN   r>   r   rJ   rY   rH   r+   r*   rQ   rQ   |   s    B#/r+   rQ   c                        e Zd Z	 dZddeddfdZed        Zd Zd Z	 fdZ
d Zd Zd	 Zdd
ZddZd Zed        Zd Zej(                  fdZd Zd Zd Zd Zd Zej8                  fdZddZ xZS )r   Nc                    	 |r"d|v sd|v rt        dj                  |            |r	d|vr|dz  }|!t        j                  ||xs d      x}| _        |&t        |dd      }t        |t        t        f      sd}nt        j                  |      }|}|t        |dd      }|j                  d	      r8t        | _        t        |      }t        j                   |      | _        || _        n|j                  d
      r|dd l}|j)                  dt*        d       t,        | _        | j/                  |       t1        j2                  |t0        j4                  t0        j6                   t0        j8                  d      | _        || _        t>        | _         t        jB                  tE        |       | j@                        | _        nt        dj                  |            || _#        | j                  t,        k(  r| jI                  |       y y )Nr   UzInvalid mode: {!r}r   r   namer   r#   r)waxr   zGzipFile was opened for writing, but this will change in future Python releases.  Specify the mode argument for opening it for writing.r	   )buffer_size)%r   formatbuiltinsr   	myfileobjgetattrr   r   r   r   fspath
startswithREADr#   _GzipReaderr   BufferedReaderr6   r]   warningswarnFutureWarningWRITE_init_writezlibcompressobjDEFLATED	MAX_WBITSDEF_MEM_LEVELr   _write_mtime_WRITE_BUFFER_SIZE_buffer_sizeBufferedWriterrQ   fileobj_write_gzip_header)	r;   r"   r#   r$   rz   mtimeorigmoderawrl   s	            r*   r>   zGzipFile.__init__   s   	B SD[C4K188>??CtOCKD?'/}}Xt|t'LLGdnw3Hhe5yy*H<7FD1D ??3DIg&C,,S1DL DI___-L "1	&
 DIX& ,,]-1]].2nn_-1-?-?-.	0DM
 !&D 2D,,-?-E9=9J9JLDL 188>??99##M2 r+   c                 D    	 | j                   j                  j                  S r@   )r6   r~   _last_mtimerI   s    r*   r|   zGzipFile.mtime   s    >||+++r+   c                 r    t        | j                        }d|dd z   dz   t        t        |             z   dz   S )Nz<gzip r    >)reprrz   hexid)r;   ss     r*   __repr__zGzipFile.__repr__   s8    !Ab'!C'#bh-7#==r+   c                 ~    || _         t        j                  d      | _        d| _        g | _        d| _        d| _        y Nr+   r   )r]   rq   crc32crcrA   writebufbufsizeoffset)r;   r"   s     r*   rp   zGzipFile._init_write   s4    	::c?	r+   c                 t    | j                          | j                  j                          t        |          S r@   )_check_not_closedr6   flushsupertellr;   	__class__s    r*   r   zGzipFile.tell   s+     w|~r+   c                 2   | j                   j                  d       | j                   j                  d       	 t        j                  j	                  | j
                        }t        |t              s|j                  d      }|j                  d      r|d d }d}|rt        }| j                   j                  t        |      j                  d             | j                  }|t        j                         }t        | j                   t!        |             |t"        k(  rd}n|t$        k(  rd	}nd
}| j                   j                  |       | j                   j                  d       |r| j                   j                  |d
z          y y # t        $ r d}Y w xY w)N      zlatin-1s   .gzr+   r                )rz   r   r   pathbasenamer]   r   r   encodeendswithUnicodeEncodeErrorFNAMEchrrv   timer1   int_COMPRESS_LEVEL_BEST_COMPRESS_LEVEL_FAST)r;   r$   fnameflagsr|   xfls         r*   r{   zGzipFile._write_gzip_header  sJ   ;'7#		 GG$$TYY/EeU+Y/~~f%cr
 E3u:,,Y78!!=IIKEs5z*00C22CC37#LLuw/ % " 	E	s   A F FFc                     | j                          | j                  t        k7  rdd l}t	        |j
                  d      | j                  t        d      | j                  j                  |      S )Nr   z$write() on read-only GzipFile objectz!write() on closed GzipFile object)
r   r#   ro   errnoOSErrorEBADFrz   r   r6   r   )r;   rV   r   s      r*   r   zGzipFile.write#  sZ     99%++'MNN<<@AA||!!$''r+   c                    t        |t        t        f      rt        |      }nt	        |      }|j
                  }|dkD  r| j                  j                  | j                  j                  |             | xj                  |z  c_	        t        j                  || j                        | _        | xj                  |z  c_        |S r5   )r   r   	bytearrayr7   
memoryviewnbytesrz   r   r   rA   rq   r   r   r   )r;   rV   lengths      r*   rU   zGzipFile._write_raw.  s    dUI./YF d#D[[FA:LLt}}55d;<IIIzz$1DHKK6!Kr+   c                     | j                          | j                  t        k7  rdd l}t	        |j
                  d      | j                  j                  |      S )Nr   z$read() on write-only GzipFile object)r   r#   ri   r   r   r   r6   r   r;   rA   r   s      r*   r   zGzipFile.read?  sD     99%++'MNN||  &&r+   c                     	 | j                          | j                  t        k7  rdd l}t	        |j
                  d      |dk  rt        j                  }| j                  j                  |      S )Nr   z%read1() on write-only GzipFile object)
r   r#   ri   r   r   r   r   DEFAULT_BUFFER_SIZEr6   read1r   s      r*   r   zGzipFile.read1F  s^    	E 	 99%++'NOO!8))D||!!$''r+   c                     | j                          | j                  t        k7  rdd l}t	        |j
                  d      | j                  j                  |      S )Nr   z$peek() on write-only GzipFile object)r   r#   ri   r   r   r   r6   peek)r;   nr   s      r*   r   zGzipFile.peekS  sD     99%++'MNN||  ##r+   c                     | j                   d u S r@   )rz   rI   s    r*   closedzGzipFile.closedZ  s    ||t##r+   c                 H   | j                   }|y 	 | j                  t        k(  rs| j                  j	                          |j                  | j                  j	                                t        || j                         t        || j                  dz         n-| j                  t        k(  r| j                  j                          d | _         | j                  }|rd | _        |j                          y y # d | _         | j                  }|rd | _        |j                          w w xY w)N    )rz   r#   ro   r6   r   r   r   r1   r   rA   ri   closere   )r;   rz   re   s      r*   r   zGzipFile.close^  s    ,,?	"yyE!""$dmm1134$((+$))j"89d"""$DLI!%!   DLI!%! s   B3C2 2/D!c                    | j                          | j                  t        k(  ri| j                  j	                          | j
                  j                  | j                  j	                  |             | j
                  j	                          y y r@   )r   r#   ro   r6   r   rz   r   r   )r;   	zlib_modes     r*   r   zGzipFile.flushr  s`     99LL LLt}}229=>LL 	 r+   c                 8    	 | j                   j                         S r@   )rz   filenorI   s    r*   r   zGzipFile.filenoz  s    	
 ||""$$r+   c                 x    	 | j                   t        k7  rt        d      | j                  j	                  d       y )NzCan't rewind in write moder   )r#   ri   r   r6   rD   rI   s    r*   rewindzGzipFile.rewind  s1    	!99677!r+   c                 (    | j                   t        k(  S r@   )r#   ri   rI   s    r*   readablezGzipFile.readable  s    yyD  r+   c                 (    | j                   t        k(  S r@   )r#   ro   rI   s    r*   rY   zGzipFile.writable  s    yyE!!r+   c                      yrG   rH   rI   s    r*   rJ   zGzipFile.seekable  rK   r+   c                    | j                   t        k(  r| j                          | j                  j	                          |t
        j                  k7  r.|t
        j                  k(  r| j                  |z   }nt        d      || j                  k  rt        d      || j                  z
  }d| j                  z  }t        || j                  z        D ]  }| j                  |        | j                  d|| j                  z  z         | j                  S | j                   t        k(  r,| j                          | j                  j                  ||      S | j                  S )NzSeek from end not supportedzNegative seek in write moder   )r#   ro   r   r6   r   r   SEEK_SETSEEK_CURr   r   r   rx   ranger   ri   rD   )r;   r   whencecountchunkis         r*   rD   zGzipFile.seek  s    99""$LL $R[[(![[61F$%BCC#;<<T[[(ED---E5D$5$556 "

5!"JJu(9(9 9:;
 {{	 YY$""$<<$$VV44{{r+   c                 X    | j                          | j                  j                  |      S r@   )r   r6   readline)r;   rA   s     r*   r   zGzipFile.readline  s#     ||$$T**r+   r   ) rL   rM   rN   re   r   r>   propertyr|   r   rp   r   r{   r   rU   r   r   r   r   r   rq   Z_SYNC_FLUSHr   r   r   r   rY   rJ   r   r   rD   r   __classcell__r   s   @r*   r   r      s     I $43TS3j , ,>
0@	("'($ $ $"( ".. !%!" #%++ .+r+   r   c                     	 | j                  |      }t        |      |k  r>| j                  |t        |      z
        }|st        d      ||z  }t        |      |k  r>|S )NACompressed file ended before the end-of-stream marker was reached)r   r7   EOFError)fpr   rV   r   s       r*   _read_exactr     si    
 771:D
d)a-GGAD	M" > ? ?	 d)a- Kr+   c                    	 | j                  d      }|dk(  ry |dk7  rt        d|z        t        j                  dt	        | d            \  }}}|dk7  rt        d      |t
        z  r.t        j                  dt	        | d            \  }t	        | |       |t        z  r	 | j                  d	      }|r|d
k(  rn|t        z  r	 | j                  d	      }|r|d
k(  rn|t        z  rt	        | d       |S )Nr	   r+   r   zNot a gzipped file (%r)z<BBIxxr   zUnknown compression methodz<Hr   r   )	r   r   r-   unpackr   FEXTRAr   FCOMMENTFHCRC)r   magicmethodflag
last_mtime	extra_lenr   s          r*   _read_gzip_headerr     s     GGAJE|3e;<<!'xR9K!LVT:{677f}]]4R);<
	B	"e|
A7
  h
A7
  e|Br+   c                   B     e Zd Z fdZd Zd ZddZd Z fdZ xZ	S )rj   c                     t         |   t        |      t        j                  t        j
                          d| _        d | _        y )NwbitsT)r   r>   r3   rq   _ZlibDecompressorrt   _new_memberr   )r;   r   r   s     r*   r>   z_GzipReader.__init__  s>    R$*@*@ $ 	 	0  r+   c                 F    t        j                  d      | _        d| _        y r   )rq   r   _crc_stream_sizerI   s    r*   
_init_readz_GzipReader._init_read  s    JJsO	r+   c                 B    t        | j                        }|y|| _        y)NFT)r   _fpr   )r;   r   s     r*   r   z_GzipReader._read_gzip_header  s$    &txx0
%r+   c                    |dk  r| j                         S |sy	 | j                  j                  r8| j                          d| _         | j
                  di | j                  | _        | j                  r9| j                          | j                         s| j                  | _
        yd| _        | j                  j                  r<| j                  j                  t              }| j                  j                  ||      }n| j                  j                  d|      }| j                  j                   dk7  r/| j                  j#                  | j                  j                          |dk7  rndk(  rt%        d      at'        j(                  || j*                        | _        | xj,                  t/        |      z  c_        | xj                  t/        |      z  c_	        |S )Nr   r+   TFr   rH   )readall_decompressoreof	_read_eofr   _decomp_factory_decomp_argsr   r   _pos_sizeneeds_inputr   r   READ_BUFFER_SIZEr   unused_datar=   r   rq   r   r   r   r7   )r;   rA   buf
uncompresss       r*   r   z_GzipReader.read  s   !8<<>!
 !!%%
  #' %9T%9%9 &)''&)"  !--/!%DJ#(  !!--hhmm$45!//::3E
!//::3E
!!--4   !3!3!?!?@S cz  B C CG L JJz4995	S_,		S_$	r+   c                    t        j                  dt        | j                  d            \  }}|| j                  k7  r-t        dt        |      dt        | j                              || j                  dz  k7  rt        d      d}|dk(  r!| j                  j                  d      }|dk(  r!|r| j                  j                  |       y y )	N<IIr   zCRC check failed z != r   !Incorrect length of data producedr   r   )
r-   r   r   r   r   r   r   r   r   r=   )r;   r   isizecs       r*   r   z_GzipReader._read_eof+  s    
 }}UK!,DEuDIISZ=@^M N Nt((:56ABB
 7la A 7lHHQ r+   c                 0    t         |           d| _        y rG   )r   _rewindr   r   s    r*   r  z_GzipReader._rewind@  s    r+   r   )
rL   rM   rN   r>   r   r   r   r   r  r   r   s   @r*   rj   rj     s'     3j *   r+   rj   r$   returnc           
          	 |t        j                          }| t        k(  rd}n| t        k(  rd}nd}t        j                  dddddt        |      |d      S )	Nr	   r
   r   z<BBBBLBB      r      )r   r   r   r-   r.   r   )r$   r|   r   s      r*   _create_simple_gzip_headerr  E  s]     }		,,	.	. ;;z4q!SZcJJr+   )r|   c                    	 |dk(  rt        j                  | |d      S t        ||      }t        j                  dt        j
                  |       t        |       dz        }|t        j                  | |d      z   |z   S )Nr   r  )levelr   z<LLr   i)rq   r   r  r-   r.   r   r7   )rV   r$   r|   headertrailers        r*   r   r   Z  sw     z }}TbAA'u=Fkk%D!1CI
4JLGT]]4}CHH r+   c                    	 g }	 t        j                  |       }t        |      dj                  |      S t	        j
                  t        j                         }|j                  | |j                         d        }|j                  rt        |j                        dk  rt        d      t        j                  d|j                  d d       \  }}|t	        j                  |      k7  rt!        d      |t        |      dz  k7  rt!        d      |j#                  |       |j                  dd  j%                  d	      } =)
Nr+   r   r   r   r  zCRC check failedr   r	  r   )r   BytesIOr   joinrq   decompressobjrt   r   r   r   r7   r  r   r-   r   r   r   appendlstrip)rV   decompressed_membersr   dodecompressedr   r   s          r*   r   r   l  s    
ZZR (88011t~~o6}}T"'')*%56vvR^^,q0 0 1 1mmE2>>"1+=>V$**\**011c,'*45ABB##L1~~ab!((1# r+   c                     ddl m}   | d      }|j                         }|j                  ddd       |j                  d	dd
       |j                  dddd       |j                  dddgd       |j	                         }t
        }|j                  rt        }n|j                  rt        }|j                  D ]  }|j                  r|dk(  rAt        ddt        j                  j                        }t        j                   j                  }n|dd  dk7  rt        j"                  d|       t%        |d      }t'        j$                  |d d d      }nl|dk(  rBt        j                  j                  }t        ddt        j                   j                  |      }n%t'        j$                  |d      }t%        |dz   d      }	 |j)                  t*              }|sn|j-                  |       *|t        j                   j                  ur|j/                          |t        j                  j                  us}|j/                           y )Nr   )ArgumentParserzeA simple command line interface for the gzip module: act like gzip, but do not delete the input file.)descriptionz--fast
store_truezcompress faster)actionhelpz--bestzcompress betterz-dz--decompresszact like gunzip instead of gzipargs*-r9   )nargsdefaultmetavarr   r   )r"   r#   rz   r   z.gzzfilename doesn't end in .gz: wb)r"   r#   rz   r$   )argparser"  add_mutually_exclusive_groupadd_argument
parse_args_COMPRESS_LEVEL_TRADEOFFfastr   bestr   r'  r   r   sysstdinbufferstdoutexitr   rd   r   r  r   r   )	r"  parsergroupr'  r$   argr<   gr   s	            r*   mainr>    s   '	,-F //1E	x;LM	x;LM	t^L>  @ cC5&ID,Myy,	,yy ??czbtSYY=M=MNJJ%%rs8u$HH<SGDEdOMM#cr(D1czII$$btSZZ=N=N+8: MM#t,ud+FF+,EGGEN	 
 CJJ%%%GGICII$$$GGI5r+   __main__r@   )*r-   r5  r   r   rq   rd   r   _compression__all__FTEXTr   r   r   r   ri   ro   r   r2  r   r  r   rw   r   r1   r3   r   r   	RawIOBaserQ   
BaseStreamr   r   r   DecompressReaderrj   r   r   r  r   r   r>  rL   rH   r+   r*   <module>rF     s)  %     	 
G(6 %ufeXe    ///  ,@tT+Z+
' 'TA' A `+|&& `+F	 "J_ ,// _ F (,Kc K05K* "6  $22.` zF r+   