
    EgO                          d dl Z d dlZd dlZd dlmZ d dlmZmZmZ d dlm	Z
 d dlmZ ddlmZ  ee
           ed          k     r ed	e
z             G d
 de          ZdS )    N)Enum)BytesIOKaitaiStreamKaitaiStruct)__version__)parse_version   )Exifz0.7zPIncompatible Kaitai Struct Python API: 0.7 or later is required, but you have %sc                       e Zd Z G d de          ZddZ G d de          Z G d de          Z G d	 d
e          Z	 G d de          Z
 G d de          Z G d de          ZdS )Jpegc                   "    e Zd ZdZdZdZdZdZdS )Jpeg.ComponentIdr	               N)__name__
__module____qualname__ycbcriq     p/var/www/sysmax/venv/lib/python3.11/site-packages/seleniumwire/thirdparty/mitmproxy/contrib/kaitaistruct/jpeg.pyComponentIdr      s'        r   r   Nc                 *   || _         || _        |r|n| | _        g | _        | j                                         sY| j                            | j                            | j         | | j                             | j                                         Wd S d S N)_io_parent_rootsegmentsis_eofappendSegmentselfr!   r"   r#   s       r   __init__zJpeg.__init__   s    #-UU
(//## 	QM  !3!3DHdDJ!O!OPPP (//## 	Q 	Q 	Q 	Q 	Qr   c                   2    e Zd Z G d de          ZddZdS )Jpeg.Segmentc                       e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"S )#Jpeg.Segment.MarkerEnumr	                                                                                                   N)$r   r   r   temsof0sof1sof2sof3dhtsof5sof6sof7soieoisosdqtdnldridhpapp0app1app2app3app4app5app6app7app8app9app10app11app12app13app14app15comr   r   r   
MarkerEnumr.   %   s        CDDDDCDDDCCCCCCCDDDDDDDDDDEEEEEECCCr   rp   Nc                 p   || _         || _        |r|n| | _        | j                             t	          j        dd                    | _        | j        j                            | j         	                                          | _
        | j
        | j        j        j        j        k    r=| j
        | j        j        j        j        k    r| j                                         | _        | j
        | j        j        j        j        k    rt| j
        | j        j        j        j        k    rT| j
        }|| j        j        j        j        k    rp| j                             | j        dz
            | _        t%          t'          | j                            }| j                            || | j                  | _        n|| j        j        j        j        k    rp| j                             | j        dz
            | _        t%          t'          | j                            }| j                            || | j                  | _        n9|| j        j        j        j        k    ro| j                             | j        dz
            | _        t%          t'          | j                            }| j                            || | j                  | _        n|| j        j        j        j        k    ro| j                             | j        dz
            | _        t%          t'          | j                            }| j                            || | j                  | _        n'| j                             | j        dz
            | _        | j
        | j        j        j        j        k    r | j                                         | _        d S d S )N1br   )r!   r"   r#   ensure_fixed_contentsstructpackmagicr'   rp   read_u1markerrX   rY   	read_u2belengthrZ   
read_bytes	_raw_datar   r   
SegmentSosdatar`   SegmentApp1rP   SegmentSof0r_   SegmentApp0read_bytes_full
image_data)r)   r!   r"   r#   _onios         r   r*   zJpeg.Segment.__init__G   s   DH"DL"'1TDJ77D"8M8MNNDJ*,778H8H8J8JKKDK+!3!>!BBBX\XbXjXuXyIyIy"h0022+!3!>!BBBX\XbXjXuXyIyIyk$*,7;;;%)X%8%8$+/%K%KDN%gdn&=&=>>B $
 5 5b$
 K KDIIDJ.9>>>%)X%8%8$+/%K%KDN%gdn&=&=>>B $
 6 6r4 L LDIIDJ.9>>>%)X%8%8$+/%K%KDN%gdn&=&=>>B $
 6 6r4 L LDIIDJ.9>>>%)X%8%8$+/%K%KDN%gdn&=&=>>B $
 6 6r4 L LDII $ 3 3T[1_ F FDI{dj0;???"&(":":"<"< @?r   NN)r   r   r   r   rp   r*   r   r   r   r'   r,   #   sS        !	 !	 !	 !	 !	 !	 !	 !	D	= 	= 	= 	= 	= 	=r   r'   c                   2    e Zd ZddZ G d de          ZdS )Jpeg.SegmentSosNc                    || _         || _        |r|n| | _        | j                                         | _        d g| j        z  | _        t          | j                  D ]5}| j        j                            | j         | | j                  | j        |<   6| j                                         | _	        | j                                         | _
        | j                                         | _        d S r    )r!   r"   r#   rx   num_components
componentsranger~   	Componentstart_spectral_selectionend_spectralappr_bit_posr)   r!   r"   r#   r   s        r   r*   zJpeg.SegmentSos.__init__k   s    DH"DL"'1TDJ"&("2"2"4"4D#f(;<DO4.// a a%)Z%:%D%DTXtUYU_%`%`"",0H,<,<,>,>D) $ 0 0 2 2D $ 0 0 2 2Dr   c                       e Zd ZddZdS )Jpeg.SegmentSos.ComponentNc                     || _         || _        |r|n| | _        | j                            | j                                                   | _        | j                                         | _        d S r    )r!   r"   r#   r   rx   idhuffman_tabler(   s       r   r*   z"Jpeg.SegmentSos.Component.__init__y   sa    &&+5UU
*001A1A1C1CDD%)X%5%5%7%7"""r   r   r   r   r   r*   r   r   r   r   r   x   s(        8 8 8 8 8 8r   r   r   r   r   r   r*   r   r   r   r   r   r~   r   j   sR        	3 	3 	3 	3	8 	8 	8 	8 	8 	8 	8 	8 	8 	8r   r~   c                       e Zd ZddZdS )Jpeg.SegmentApp1Nc                    || _         || _        |r|n| | _        | j                             dddd                              d          | _        | j        }|dk    r-| j                            | j         | | j                  | _        d S d S )Nr   FTASCIIr
   )r!   r"   r#   read_bytes_termdecoderw   
ExifInJpegbody)r)   r!   r"   r#   r   s        r   r*   zJpeg.SegmentApp1.__init__   s    DH"DL"'1TDJ(221eT4HHPPQYZZDJ*Cg~~ J11$(D$*MM			 ~r   r   r   r   r   r   r   r      s.        	N 	N 	N 	N 	N 	Nr   r   c                   2    e Zd ZddZ G d de          ZdS )Jpeg.SegmentSof0Nc                    || _         || _        |r|n| | _        | j                                         | _        | j                                         | _        | j                                         | _        | j                                         | _        d g| j        z  | _	        t          | j                  D ]5}| j        j                            | j         | | j                  | j	        |<   6d S r    )r!   r"   r#   rx   bits_per_samplerz   image_heightimage_widthr   r   r   r   r   r   s        r   r*   zJpeg.SegmentSof0.__init__   s    DH"DL"'1TDJ#'8#3#3#5#5D  $ 2 2 4 4D#x1133D"&("2"2"4"4D#f(;<DO4.// b b%)Z%;%E%EdhPTVZV`%a%a""b br   c                   B    e Zd ZddZed             Zed             ZdS )Jpeg.SegmentSof0.ComponentNc                    || _         || _        |r|n| | _        | j                            | j                                                   | _        | j                                         | _        | j                                         | _        d S r    )r!   r"   r#   r   rx   r   sampling_factorsquantization_table_idr(   s       r   r*   z#Jpeg.SegmentSof0.Component.__init__   sw    &&+5UU
*001A1A1C1CDD(,(8(8(:(:%-1X-=-=-?-?***r   c                     t          | d          rt          | d          r| j        nd S | j        dz  dz	  | _        t          | d          r| j        nd S )N_m_sampling_x   r   )hasattrr   r   r)   s    r   
sampling_xz%Jpeg.SegmentSof0.Component.sampling_x   sf    411 Z181O1OY4--UYY'+'<s'Bq&H"-4T?-K-KUt))QUUr   c                     t          | d          rt          | d          r| j        nd S | j        dz  | _        t          | d          r| j        nd S )N_m_sampling_y   )r   r   r   r   s    r   
sampling_yz%Jpeg.SegmentSof0.Component.sampling_y   sa    411 Z181O1OY4--UYY&*&;b&@"-4T?-K-KUt))QUUr   r   )r   r   r   r*   propertyr   r   r   r   r   r   r      sj        @ @ @ @ V V XV V V XV V Vr   r   r   r   r   r   r   r   r      s`        
	b 
	b 
	b 
	b	V 	V 	V 	V 	V 	V 	V 	V 	V 	Vr   r   c                       e Zd ZddZdS )Jpeg.ExifInJpegNc                 B   || _         || _        |r|n| | _        | j                             t	          j        dd                    | _        | j                                         | _        t          t          | j                            }t          |          | _        d S )Nrr   r   )r!   r"   r#   rt   ru   rv   
extra_zeror   r}   r   r   r
   r   )r)   r!   r"   r#   r   s        r   r*   zJpeg.ExifInJpeg.__init__   s    DH"DL"'1TDJ"h<<V[q=Q=QRRDO!X5577DNgdn5566BRDIIIr   r   r   r   r   r   r   r      s(        	! 	! 	! 	! 	! 	!r   r   c                   2    e Zd Z G d de          ZddZdS )Jpeg.SegmentApp0c                       e Zd ZdZdZdZdS )Jpeg.SegmentApp0.DensityUnitr   r	   r   N)r   r   r   no_unitspixels_per_inchpixels_per_cmr   r   r   DensityUnitr      s        HOMMMr   r   Nc                    || _         || _        |r|n| | _        | j                             d                              d          | _        | j                                         | _        | j                                         | _        | j        j	        
                    | j                                                   | _        | j                                         | _        | j                                         | _        | j                                         | _        | j                                         | _        | j                             | j        | j        z  dz            | _        d S )Nr   r   r   )r!   r"   r#   r|   r   rw   rx   version_majorversion_minorr   r   density_unitsrz   	density_x	density_ythumbnail_xthumbnail_y	thumbnailr(   s       r   r*   zJpeg.SegmentApp0.__init__   s   DH"DL"'1TDJ(--a0088BBDJ!%!1!1!3!3D!%!1!1!3!3D!%!7!C!CDHDTDTDVDV!W!WD!X//11DN!X//11DN#x//11D#x//11D!X0043CdFV3VZ[2[]]DNNNr   r   )r   r   r   r   r   r*   r   r   r   r   r      sX        	 	 	 	 	$ 	 	 		^ 	^ 	^ 	^ 	^ 	^r   r   r   )r   r   r   r   r   r*   r   r'   r~   r   r   r   r   r   r   r   r   r      sv           d   Q Q Q QC= C= C= C= C=, C= C= C=N8 8 8 8 8\ 8 8 80N N N N Nl N N N%V %V %V %V %Vl %V %V %VR! ! ! ! !\ ! ! !^ ^ ^ ^ ^l ^ ^ ^ ^ ^r   r   )arrayru   zlibenumr   kaitaistructr   r   r   r   
ks_versionpkg_resourcesr   exifr
   	Exceptionr   r   r   r   <module>r      s            < < < < < < < < < < 2 2 2 2 2 2 ' ' ' ' ' '      =}}U3333
)fjtu
v
vvA^ A^ A^ A^ A^< A^ A^ A^ A^ A^r   