
    i                    z   d dl m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 dd	l
mZ d
dddddddZ G d dej                  ZdddddddZd&d#Z ej        ej        e            ej        ej        e            ej        ej        g d$            ej        ej        d%           dS )'    )annotationsN)IO   )Image	ImageFileImagePalette)i16le)i32le)o8)o16leP1LLABGRA;15ZBGRBGRA))r      )   r   )r   r   )r      )   r   )r      )r       c                  &    e Zd ZdZdZddZddZdS )	TgaImageFileTGATargareturnNonec                   | j         J | j                             d          }|d         }|d         }|d         }|d         }|d         }t          |d          t          |d          f| _        |d	vs&| j        d         dk    s| j        d         dk    s|d
vrd}t          |          |dv r#d| _        |dk    rd| _        nC|dk    rd| _        n5|dv r|rdnd| _        n%|dv r|dk    rdnd| _        nd}t          |          |dz  }|dv | _        |dv rd}n|dv rd}nd}t          |          || j        d<   |dz  r
d| j        d <   |r"| j                             |          | j        d!<   |r2t          |d"          t          |d#          |d$         }}
}	|dk    rUt          j
        d%t          d|	z            | j                             d|
z            z             | _        d| j        _        n|dk    rIt          j
        d&t          d"|	z            | j                             d"|
z            z             | _        n`|d'k    rIt          j
        d(t          d)|	z            | j                             d)|
z            z             | _        nd*}t          |          	 t          |d$z  |f         }|dz  rAt          j        dd+| j        z   | j                                         |||f          g| _        d S t          j        d,d+| j        z   | j                                         |d|f          g| _        d S # t&          $ r Y d S w xY w)-N   r   r   r   r            )r   r   )r   r   r   r   r   znot a TGA file)r      r   r   r   )r   	   r   )r   
   r   RGBRGBAzunknown TGA mode0   )r   r*   )r   r*   )r   r   zunknown TGA orientationorientationr   tga_rlecompression
id_sectionr         r   r   r   r      zunknown TGA map depthr   r   raw)fpreadi16_sizesizeSyntaxError_mode_flip_horizontallyinfor   r4   bytespalettemodeMODESr   _TiletelltileKeyError)selfsid_lencolormaptype	imagetypedepthflagsmsgr,   startr9   mapdepthrawmodes                Y/home/ubuntu/.hermes/hermes-agent/venv/lib/python3.11/site-packages/PIL/TgaImagePlugin.py_openzTgaImageFile._open7   s   w"""GLL1taD	""BZZQ+
 &&y|q  y|q  ..."Cc""" DJzz 

"!
&   ,5#DJJ'!!"'2++6DJJ$Cc""" dl"-"=,&&KKI%%KK+Cc"""#.	- q= 	1'0DIm$ 	;&*gll6&:&:DIl# 	'$'1IIs1ayy!A$4E2~~+/a%i 0 047<<D3I3I I    %+!!R+/5U++dgll1t8.D.DD    R+/E!e),,tw||AH/E/EE    .!#&&&	Y]E23G1}  O!* +u5	 			 O* ![1	 			  	 	 	DD	s   (AM  ?M 
MMc                   | j         dk    r| j        J | j                            dt          j                   | j                            d          }|                    d          rit          |          }|rX| j                            |dz              | j                            d          }|dk    r| j        	                    dd	           | j
        r0| j                            t          j        j                  | _        d S d S )
Nr)   i   s   TRUEVISION-XFILE. i  r       r      )r@   r5   seekosSEEK_ENDr6   endswithi32imfillbandr<   	transposer   	TransposeFLIP_LEFT_RIGHT)rF   footerextension_offsetattributes_types       rQ   load_endzTgaImageFile.load_end   s    97&&&GLLbk***W\\"%%F788 1#&v;; # 1GLL!1C!7888&*gll1ooO&'11((C000" 	Ig''(GHHDGGG	I 	I    N)r   r   )__name__
__module____qualname__formatformat_descriptionrR   rd    re   rQ   r   r   3   sR        F h h h hTI I I I I Ire   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   r(   r)   r\   Image.Imager5   	IO[bytes]filenamestr | bytesr   r   c                P   	 t           | j                 \  }}}}n-# t          $ r }d| j         d}t          |          |d }~ww xY wd| j        v r| j        d         }	n9| j                            d| j                            d                    }
|
dk    }	|	r|dz  }| j                            d| j                            dd                    }t          |          }|d	k    r d	}|d d	         }t          j	        d
           |r0| j
                            dd          }t          |          dz  d}}nd\  }}| j        dv rd}nd}| j                            d| j                            dd                    }|dk    r|dz  }|                    t          |          t          |          z   t          |          z   t          d          z   t          |          z   t          |          z   t          d          z   t          d          z   t          | j        d                   z   t          | j        d                   z   t          |          z   t          |          z              |r|                    |           |r|                    |           |	r7t!          j        | |t!          j        dd| j        z   d||f          g           n7t!          j        | |t!          j        dd| j        z   d|d|f          g           |                    d           d S )Nzcannot write mode z as TGArler.   r-   r   r/    rV   z-id_section has been trimmed to 255 charactersr(   r   r   r   r3   )r   r)   r   r,   r+   r   r   r4   s           TRUEVISION-XFILE. )SAVEr@   rE   OSErrorencoderinfogetr=   lenwarningswarnr\   
getpalettewriter   o16r9   r   _saverB   )r\   r5   rn   rP   bitsrI   rJ   erM   rq   r.   r/   rH   r?   colormaplengthcolormapentryrL   r,   s                     rQ   r}   r}      s`   "15bg.|YY " " "327333cll!" nU#n((M8R8RSSY&
 Q	##L"'++lB2O2OPPJ__F||%
EFFF -%""5%00(+G(92(,%	w.  .$$]BGKKr4R4RSSKQHH
6


\

	
Y--	 a&&	 n

		
 ]

	 a&&	 a&&	 bgaj//	 bgaj//		 T((
	 U))	    
 

 
_Y(8!g{=STTU	
 	
 	
 	
 	_UFRW$4a'1k9RSST	
 	
 	
 HH9:::::s    
A?A)z.tgaz.icbz.vdaz.vstzimage/x-tga)r\   rl   r5   rm   rn   ro   r   r   )
__future__r   rX   rx   typingr   rr   r   r   r   _binaryr	   r7   r
   r[   r   r   r|   rA   r   rs   r}   register_openri   register_saveregister_extensionsregister_mimerk   re   rQ   <module>r      s  $ # " " " " " 				        , , , , , , , , , , ! ! ! ! ! ! ! ! ! ! ! !       ! ! ! ! ! ! 		 		 ~I ~I ~I ~I ~I9& ~I ~I ~IN 
	
	 H; H; H; H;`  L' 6 6 6  L' / / /  ,-/O/O/O P P P  L' 7 7 7 7 7re   