
    h4hA                       d dl mZ d dl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 ddlmZ dd	Z G d
 dej
                        Z ej"                  ej$                  ee        ej&                  ej$                  ddg       y)    )annotationsN   )Image	ImageFileImagePalette)i16le)i32leo8)DeferredErrorc                ^    t        |       dk\  xr t        | d      dv xr t        | d      dv S )N      )  i     )r      )leni16)prefixs    J/var/www/flask-api/venv/lib/python3.12/site-packages/PIL/FliImagePlugin.py_acceptr      s:    Fr 	&N..	&Ov%    c                  @    e Zd ZdZdZdZd
dZddZddZddZ	ddZ
y	)FliImageFileFLIzAutodesk FLI/FLC AnimationFc                >   | j                   J | j                   j                  d      }t        |      r|dd dk(  r|dd dk(  r|dd  d	k(  sd
}t        |      t	        |d      | _        | j
                  dkD  | _        d| _        t	        |d      t	        |d      f| _        t        |d      }t	        |d      }|dk(  r|dz  dz  }|| j                  d<   t        d      D cg c]  }|||f	 }}| j                   j                  d      }d| _        t	        |d      dk(  rL| j                   j                  | j                  t        |      z          | j                   j                  d      }t	        |d      dk(  rt	        |d      }d }t        |      D ]  }	|-| j                   j                  |dz
  t        j                         | j                   j                  d      }t	        |d      }
|
dv r| j!                  ||
dk(  rdnd        nt        |      }|r n t#        j$                  ddj'                  d |D                    | _        d | _        | j                   | _        | j                   j/                         | _        | j                  d       y c c}w )!N         s     *   P   s&                                         X   s(                                           znot an FLI/FLC file   r   P   
   r   r   r   i  F   duration   i   i  )r      r*      r   RGBr   c              3  j   K   | ]+  \  }}}t        |      t        |      z   t        |      z    - y wNr
   ).0rgbs       r   	<genexpr>z%FliImageFile._open.<locals>.<genexpr>j   s+     Kiq!QBqEBqEMBqE1Ks   13)fpreadr   SyntaxErrorr   n_framesis_animated_mode_sizei32inforange_FliImageFile__offsetseekosSEEK_CUR_paletter   rawjoinpalette_FliImageFile__frame_fptell_FliImageFile__rewind)selfsmsgr(   magicarF   number_of_subchunks
chunk_size_
chunk_types              r   _openzFliImageFile._open1   sU   ww"""GGLLAJ"RK'"RL("#,&'Cc"" Aq	==1, 
AYAr
*
 q":Aq	F? 4B.H (		* ',Cj1Aq!911GGLLq!9GGLLQ/0R Aq!9"%a)%)J./ 
)GGLLa=GGLLO AY
(MM'
b0@1aH V
!
 $''388K7KK

 77		!G 2s   $Jc                   d}| j                   J t        t        | j                   j                  d                  D ]  }| j                   j                  d      }||d   z   }|d   }|dk(  rd}| j                   j                  |dz        }t        dt	        |      d      D ]-  }||   |z  }||dz      |z  }||dz      |z  }	|||	f||<   |dz  }/  y )Nr   r+   r   r)   r   )r5   r>   r   r6   r   )
rK   rF   shiftierL   nr0   r1   r2   s
             r   rC   zFliImageFile._palettes   s     ww"""s477<<?+, 	AQAAaDA!AAvQU#A1c!fa( aDEMa!eH%a!eH%AY
Q	r   c                    | j                  |      sy || j                  k  r| j                  d       t        | j                  dz   |dz         D ]  }| j                  |        y )Nr   r   )_seek_checkrG   _seekr>   )rK   framefs      r   r@   zFliImageFile.seek   sX    &4<<JJqMt||a'3 	AJJqM	r   c                   t        | j                  t              r| j                  j                  |dk(  r4d| _        | j                  j                  | j                         d| _        n| j                          || j                  dz   k7  rd| }t        |      || _        | j                  | _
        | j                  j                  | j                         | j                  j                  d      }|sd}t        |      t        |      }|| _        t        j                   dd	| j"                  z   | j                        g| _        | xj                  |z  c_        y )
Nr   r4   r   r   zcannot seek to frame r   zmissing frame sizefli)r   r   )
isinstancerH   r   exrG   r@   rJ   r?   load
ValueErrorr5   r6   EOFErrorr<   decodermaxblockr   _Tilesizetile)rK   r]   rM   rL   	framesizes        r   r\   zFliImageFile._seek   s   dhh.((++A:DLHHMM$--(DM IIKDLL1$$)%1CS/! ((T]]#GGLLO&C3-F	(__UFTYY,>NO	"r   c                    | j                   S r.   )rG   )rK   s    r   rI   zFliImageFile.tell   s    ||r   N)returnNone)rF   zlist[tuple[int, int, int]]rV   intrl   rm   )r]   rn   rl   rm   )rl   rn   )__name__
__module____qualname__formatformat_description!_close_exclusive_fp_after_loadingrT   rC   r@   r\   rI    r   r   r   r   ,   s/    F5(-%@D&#@r   r   z.fliz.flc)r   bytesrl   bool)
__future__r   rA    r   r   r   _binaryr   r   r	   r<   r   _utilr   r   r   register_openrr   register_extensionsru   r   r   <module>r~      sr   " # 	 , , ! !   D9&& DT   L''w ?   ,--/? @r   