B
    Jd                 @   s~   d dl Z d dlZyd dlZW n ek
r4   dZY n
X d dlZdd Zdd Zdd Zdd	d
ZdddZ	dd Z
dd ZdS )    Nc             C   s   t d| dd \}|d? }|d@ }|dkr0nT|dkrztrztjt d|| dd   }t||krttd	 q|} n
td
 | |fS )Nz>L         ir      z<LzTable decompression failed.z:Table is compressed with an unsupported compression scheme)	structunpacklz4block
decompresspacklenwarningswarn)datacompressionschemesizeres r   P/var/www/html/venv/lib/python3.7/site-packages/fontTools/ttLib/tables/grUtils.pyr
      s     
r
   c             C   sj   |d d t d| d> t|d@   }| dkr4|S | dkr\tr\tjj|ddd	d
}|| S td |S )Nr   z>Lr   ir   r   Zhigh_compression   F)moder   Z
store_sizez:Table failed to compress by unsupported compression scheme)r   r   r   r   r	   compressr   r   )r   r   hdrr   r   r   r   r      s    (
r   c             c   s   d}g }d}xb| D ]Z\}}t |rZ||d ks:|rZ||krZ|t | d t ||fV  g }|}|| |}qW |t | d t ||fV  d S )Nr   r   )r   append)attrssamevalZakvalsZlastvkvr   r   r   _entries&   s     
r    Fc             C   s   t t|  dd d|}|S )Nc             S   s   t | d S )Nr   )int)xr   r   r   <lambda>4       zentries.<locals>.<lambda>)key)r    sorteditems)
attributesr   gr   r   r   entries3   s    r*   r   c             C   sv   | dkrt dddddS d}d}x|| kr>|d9 }|d7 }q$W |d8 }|d }||9 }| | | }t d| |||S )Nr   z>4Hr      )r   r   )numr   srangeselectshiftr   r   r   bininfo7   s    
r0   c             C   s8   | dk rt | S tdtd| d dd S d S )Ni    Z4sz>Lr       r$   )strr   r   r   replacedecode)nr   r   r   num2tagE   s    r6   c          	   C   sD   yt | S  tk
r>   | d d d } td| dd S X d S )Nz    r   z>Lasciir   )r!   
ValueErrorr   r   encode)r5   r   r   r   tag2numK   s
    r:   )F)r   )r   r   r   ImportErrorZ	lz4.blockr
   r   r    r*   r0   r6   r:   r   r   r   r   <module>   s   


