U
    
ڲg                     @   sV  d dl Z d dlZd dlmZ dd Zdd ZG dd deZd d	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd dddddddg ZdS (      N)CommonChecksumc                 C   s   t  }| |_|| |jS )aY  Update an existing CRC checksum with new chunk of data.

    Args
        crc (int): An existing CRC check sum.
        chunk (Union[bytes, List[int], Tuple[int]]): A new chunk of data.
            Intended to be a byte string or similar.

    Returns
        int: New CRC checksum computed by extending existing CRC
        with ``chunk``.
    )Checksum_crcupdate)crcchunkc r	   8/tmp/pip-unpacked-wheel-1p3hnion/google_crc32c/python.pyextend   s    
r   c                 C   s   t  }||  |jS )zCompute a CRC checksum for a chunk of data.

    Args
        chunk (Union[bytes, List[int], Tuple[int]]): A new chunk of data.
            Intended to be a byte string or similar.

    Returns
        int: New CRC checksum computed for ``chunk``.
    )r   r   r   )r   r   r	   r	   r
   value'   s    

r   c                   @   s"   e Zd ZdZdddZdd ZdS )	r   zHashlib-alike helper for CRC32C operations.

    Args:
        initial_value (Optional[bytes]): the initial chunk of data from
            which the CRC32C checksum is computed.  Defaults to b''.
        c                 C   s   d| _ |dkr| | d S )Nr   r   )r   r   )selfinitial_valuer	   r	   r
   __init__>   s    zChecksum.__init__c                 C   sv   t |tjks|jdkr&td|}n|}| jdA | _|D ]*}t|| jA d@  }|| jd? d@ A | _q:| jdA | _dS )zUpdate the checksum with a new chunk of data.

        Args:
            chunk (Optional[bytes]): a chunk of data used to extend
                the CRC32C checksum.
           Bl          N)typearrayitemsizer   _TABLE)r   databufferbZ
table_polyr	   r	   r
   r   C   s    zChecksum.updateN)r   )__name__
__module____qualname____doc__r   r   r	   r	   r	   r
   r   6   s   
r   l   d l   pvB iPl   5 i5i&l   d) l   X i۲xi8(kl   ;+3 iCMl   LP~ l   '?X i$<^io^l   lDjD l   7b i4l   pP/ isӯ%i 6l   #)	 l   5 ihiW{l   Tl i]l   ^ l   HxLx iKMNiގ l   % l   )~ i*}3l   NN iLi6il   5jh l   VT iUXi_Kl   %hr iAml   B+? l   1 i~iI0l   J l   F9# iE#l   ^n i]iYBl   Z-RH l   ~tt i}QHia[l   bR ia}l   b l   v79 iuni{Al   !f l   Km@ iH+Rl   
 i	tiTgl   Wyb+ l   sED ip9i5*l   61 il8l   oQ| l   "Z i!hi%Ql   YF l   $*=` i')uBl   M~- idi;=wl   8> l   7 i)i:l   qX ifl    \ l   ez i6ibal   aZ' l   c i`rl   }L i~7TitgGl   wj l   K?V iHtiZ$
l   Y8p i\,l   _= l   E,| iF?iTql   W l   $F! ibl   Cl i@iDi9Wl   0J l   v i*	i5|zl   6#P iݛ<l   ` l   *k; i)h/l   x; i{piKcl   HM# iglEl   d/n l   \H i_<Vic/l   `t l   @(R iCl   tk iw=i_.l   \9 l   |Q% i`isl    ik2Ul   hN l   h ibFiؤql   '4T l   /Tr i,W!l   3? iİ-i0C>l   3@w l   5D i6 PiQpCl   RF6b i"el   !u/ l   NR	 iMсvii(l   jn5 l   S i;l   vz^ iuci
3l   	x l   r*d i~@i>.Sl   =B iul   f l   !i) i"fi*8l   )O l   Z3 iٜ+l   =~ i>=iml   NX l   & iǥ1i3V"l   0U! i۱l   2l l   ,AYJ i/BGi~TIl   }v l   P iZl   i ij|iol   <; l   a' ib!i\2l   _ ivIl   uEL l   Cj i@id
Yl   g:V l   Icp iJZJl   {. = ixli^l   ] l   (aF i+[il   [` i?$l   <- l   O" i7iil   s7 l   "  i!zl   g\ i\i=HOl   >Gz l   uof iviUl   }@ ij4l   i{> l   + i'i7yl   4 l   MG1 iNjl    [| i#FLiR_l   QSZ )r   structZgoogle_crc32c._checksumr   r   r   r   r   r	   r	   r	   r
   <module>   s  !                                                                                                                                                                                                                           