
    :h                       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    P/var/www/urcfiles/bundle/venv/lib/python3.12/site-packages/PIL/FliImagePlugin.py_acceptr      s:    Fq 	&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                  d      }t        |      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(  r]| j                  t        |      z   | _        | j                   j                  | j                         | 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     znot an FLI/FLC filer   r   P   
      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>e   s,     K7iq!QBqEBqEMBqE17s   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arC   number_of_subchunks
chunk_size_
chunk_types              r   _openzFliImageFile._open1   s/   GGLL
qBx;6'Cc"" Aq	==1, 
AYAr
*
 q":Aq	F? 4B.H (		* ',Cj1jAq!9j1GGLLq!9 MMCF2DMGGLL'R Aq!9"%a)%)J./)GGLLa=GGLLO AY
(MM'
b0@1aH V
! 0 $''388K7KK

 77		!I 2s   Jc                   d}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   )r;   r   r2   r3   r   )
rH   rC   shiftierI   nr-   r.   r/   s
             r   r@   zFliImageFile._paletten   s     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_checkrD   _seekr;   )rH   framefs      r   r=   zFliImageFile.seek   sS    &4<<JJqMt||a'3AJJqM 4r   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   r1   r   r   zcannot seek to frame r   zmissing frame sizefli)r   r   )
isinstancerE   r   exrD   r=   rG   r<   load
ValueErrorr2   r3   EOFErrorr9   decodermaxblockr   _Tilesizetile)rH   rZ   rJ   rI   	framesizes        r   rY   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+   )rD   )rH   s    r   rF   zFliImageFile.tell   s    ||r   N)returnNone)rC   zlist[tuple[int, int, int]]rS   intri   rj   )rZ   rk   ri   rj   )ri   rk   )__name__
__module____qualname__formatformat_description!_close_exclusive_fp_after_loadingrQ   r@   r=   rY   rF    r   r   r   r   ,   s.    F5(-%;z$#@r   r   z.fliz.flc)r   bytesri   bool)
__future__r   r>    r   r   r   _binaryr   r   r	   r9   r   _utilr   r   r   register_openro   register_extensionsrr   r   r   <module>r{      sr   " # 	 , , ! !   ~9&& ~H   L''w ?   ,--/? @r   