Ë
    ñEjû$  ã                  ó@  — d dl mZ d dlZd dlZd dlZddlmZmZ d„ Zg d¢Z	d„ Z
d„ Z G d	„ d
ej                  «      Zdd„Zd„ Zd„ Zd„ Z ej"                  ej$                  e«        ej&                  ej$                  e«       edk(  �r‰ eej,                  «      dk  r ed«        ej0                  «        ej,                  d   Z ee«      s ed«        ej0                  «         ej4                  e«      5 Z ed ee«      z   «        ed eej$                  «      z   «        ed eej:                  «      z   «        ed eej<                  «      z   «        edd¬«        eej?                  «       «        eej,                  «      dkD  rxej,                  d   Z ejC                  ejD                  jF                  «      Z edejH                  jK                  e«      › de › d�«       ejM                  e ej$                  «       ddd«       yy# 1 sw Y   yxY w)é    )ÚannotationsNé   )ÚImageÚ	ImageFilec                óX   — 	 t        | «      }| |z
  dk(  ryy# t        t        f$ r Y yw xY w)Nr   r   )ÚintÚ
ValueErrorÚOverflowError)ÚfÚis     úX/var/www/html/peoplehubportal/venv/lib/python3.12/site-packages/PIL/SpiderImagePlugin.pyÚisIntr   ,   s8   € ðÜ�‹FˆØˆq‰5�AŠ:ØàøÜœÐ&ò Ùðús   ‚ —)¨))r   é   iõÿÿÿiôÿÿÿiëÿÿÿiêÿÿÿc                óÒ   — d| z   }dD ]  }t        ||   «      rŒ y t        |d   «      }|t        vryt        |d   «      }t        |d   «      }t        |d   «      }|||z  k7  ry|S )N©éc   )r   é   é   é   é   é   é   r   r   r   r   r   )r   r   Úiforms)ÚtÚhr   ÚiformÚlabrecÚlabbytÚlenbyts          r   ÚisSpiderHeaderr    @   s}   € Ø�‰	€Aà&ò ˆÜ�Q�q‘T�{Ùðô ��!‘‹I€EØ”FÑØä��2‘‹Z€FÜ��2‘‹Z€FÜ��2‘‹Z€FØ�&˜6‘/Ò"Øà€Mó    c                óø   — t        | d«      5 }|j                  d«      }d d d «       t        j                  d«      }t	        |«      }|dk(  r!t        j                  d|«      }t	        |«      }|S # 1 sw Y   ŒRxY w)NÚrbé\   z>23fr   z<23f)ÚopenÚreadÚstructÚunpackr    )ÚfilenameÚfpr   r   Úhdrlens        r   ÚisSpiderImager,   T   sp   € Ü	ˆh˜Ó	ð  Ø�G‰G�B‹Kˆ÷ä�‰�f˜aÓ €AÜ˜AÓ€FØ�‚{Ü�M‰M˜& !Ó$ˆÜ Ó"ˆØ€M÷ð ús   �A0Á0A9c                  óX   — e Zd ZdZdZdZd„ Zed„ «       Zed„ «       Z	d„ Z
d„ Zdd	„Zd
„ Zy)ÚSpiderImageFileÚSPIDERzSpider 2D imageFc                ó”  — d}| j                   j                  |«      }	 d| _        t        j                  d|«      }t        |«      }|dk(  r(d| _        t        j                  d|«      }t        |«      }|dk(  rd}t        |«      ‚	 d|z   }t        |d   «      }|dk7  rd	}t        |«      ‚t        |d
   «      t        |d   «      f| _	        t        |d   «      | _
        t        |d   «      | _        | j                  dk(  r| j                  dk(  r
|}	d| _        n¬| j                  dkD  r[| j                  dk(  rLt        |d
   «      t        |d   «      z  dz  | _        || _        t        |d   «      | _        |dz  }	d| _        nB| j                  dk(  r&| j                  dkD  r|| j                  z   }	d| _
        nd}t        |«      ‚| j                  rd| _        nd| _        d| _        dd| j$                  z   |	| j                   ddffg| _        | j                   | _        y # t        j                  $ r}d}t        |«      |‚d }~ww xY w)Nél   r   z>27fr   z<27fznot a valid Spider filer   r   znot a Spider 2D imager   r   é   é   é   é   z inconsistent stack header valueszF;32BFzF;32FÚFÚraw©r   r   )r*   r&   Ú	bigendianr'   r(   r    ÚSyntaxErrorÚerrorr   Ú_sizeÚistackÚ	imgnumberÚ_nimagesÚimgbytesr+   Ú	stkoffsetÚrawmodeÚ_modeÚsizeÚtileÚ_fp)
ÚselfÚnr   r   r+   ÚmsgÚer   r   Úoffsets
             r   Ú_openzSpiderImageFile._opend   s  € àˆØ�G‰G�L‰L˜‹Oˆð	*ØˆDŒNÜ—‘˜f aÓ(ˆAÜ# AÓ&ˆFØ˜Š{Ø!"�”Ü—M‘M &¨!Ó,�Ü'¨Ó*�Ø˜Š{Ø/�Ü! #Ó&Ð&ð ð �A‰IˆÜ�A�a‘D“	ˆØ�AŠ:Ø)ˆCÜ˜cÓ"Ð"ä˜˜2™“Z¤ Q q¡T£Ð*ˆŒ
Ü˜!˜B™%“jˆŒÜ˜Q˜r™U›ˆŒà�;‰;˜!Ò §¡°!Ò 3àˆFØˆD�MØ�[‰[˜1Š_ §¡°1Ò!4ä  "¡›J¬¨Q¨q©T«Ñ2°QÑ6ˆDŒMØ ˆDŒKÜ  "¡›JˆDŒMà˜a‘ZˆFØˆD�NØ�[‰[˜AÒ $§.¡.°1Ò"4à˜dŸn™nÑ,ˆFØˆD�Kà4ˆCÜ˜cÓ"Ð"à�>Š>Ø#ˆD�Là"ˆDŒLØˆŒ
à˜V d§i¡iÑ/°¸$¿,¹,ÈÈ1Ð9MÐNÐOˆŒ	Ø—7‘7ˆ�øôS �|‰|ò 	*Ø+ˆCÜ˜cÓ"¨Ð)ûð	*ús   ŸA'H! È!IÈ4IÉIc                ó   — | j                   S ©N©r?   ©rG   s    r   Ún_frameszSpiderImageFile.n_framesŸ   s   € à�}‰}Ðr!   c                ó    — | j                   dkD  S ©Nr   rO   rP   s    r   Úis_animatedzSpiderImageFile.is_animated£   s   € à�}‰}˜qÑ Ð r!   c                ó@   — | j                   dk  ry| j                   dz
  S )Nr   r   )r>   rP   s    r   ÚtellzSpiderImageFile.tell¨   s    € Ø�>‰>˜AÒØà—>‘> AÑ%Ð%r!   c                óH  — | j                   dk(  rd}t        |«      ‚| j                  |«      sy | j                  || j                  | j                  z   z  z   | _        | j                  | _        | j                  j                  | j
                  «       | j                  «        y )Nr   z#attempt to seek in a non-stack file)
r=   ÚEOFErrorÚ_seek_checkr+   r@   rA   rF   r*   ÚseekrL   )rG   ÚframerI   s      r   rZ   zSpiderImageFile.seek®   sx   € Ø�;‰;˜!ÒØ7ˆCÜ˜3“-ÐØ×Ñ Ô&ØØŸ™ u°·±¸d¿m¹mÑ0KÑ'LÑLˆŒØ—(‘(ˆŒØ�‰�‰�T—^‘^Ô$Ø�
‰
�r!   c                óš   — | j                  «       \  }}d}||k7  r|||z
  z  }| |z  }| j                  ||fd„«      j                  d«      S )Nr   c                ó   — | |z  |z   S rN   © )r   ÚmÚbs      r   ú<lambda>z.SpiderImageFile.convert2byte.<locals>.<lambda>À   s   € ¨a°!©e°a©i€ r!   ÚL)Ú
getextremaÚpointÚconvert)rG   ÚdepthÚminimumÚmaximumr_   r`   s         r   Úconvert2bytezSpiderImageFile.convert2byteº   sY   € Ø!Ÿ_™_Ó.Ñˆ�'ØˆØ�gÒØ˜ 7Ñ*Ñ+ˆAØˆB�‰LˆØ�z‰z a¨1Ò7Ó8×@Ñ@ÀÓEÐEr!   c                óP   — ddl m} |j                  | j                  «       d¬«      S )Nr   )ÚImageTké   )Úpalette)Ú rk   Ú
PhotoImageri   )rG   rk   s     r   ÚtkPhotoImagezSpiderImageFile.tkPhotoImageÃ   s$   € Ýà×!Ñ! $×"3Ñ"3Ó"5¸sÐ!ÓCÐCr!   N)éÿ   )Ú__name__Ú
__module__Ú__qualname__ÚformatÚformat_descriptionÚ!_close_exclusive_fp_after_loadingrL   ÚpropertyrQ   rT   rV   rZ   ri   rp   r^   r!   r   r.   r.   _   sW   „ Ø€FØ*ÐØ(-Ð%ò9ðv ñó ðð ñ!ó ð!ò&ò	óFóDr!   r.   c                óœ  — | �t        | «      dk  ryg }| D ]  }t        j                  j                  |«      st	        d|› �«       Œ1	 t        j                  |«      5 }|j                  «       }ddd«       |j                  d<   |j                  |«       Œ� |S # 1 sw Y   Œ-xY w# t        $ r t        |«      st	        |dz   «       Y Œ´w xY w)zJcreate a list of :py:class:`~PIL.Image.Image` objects for use in a montageNr   zunable to find z is not a Spider image filer)   )ÚlenÚosÚpathÚexistsÚprintr   r%   ri   Ú	Exceptionr,   ÚinfoÚappend)ÚfilelistÚimglistÚimgÚims       r   ÚloadImageSeriesr†   Î   sÉ   € àÐœ3˜x›=¨1Ò,Øà€GØò ˆÜ�w‰w�~‰~˜cÔ"Ü�O C 5Ð)Ô*Øð	Ü—‘˜C“ð ' BØ—_‘_Ó&�÷'ð "ˆ�‰�
ÑØ�‰�rÕðð €N÷'ð 'ûäò 	Ü  Ô%Ü�cÐ9Ñ9Ô:Ùð	ús*   ÁB&ÁBÁ.B&ÂB#	ÂB&Â&"CÃ
Cc                óÚ  — | j                   \  }}|dz  }t        d|z  «      }d|z  dk7  r|dz  }||z  }t        |dz  «      }|dk  rg S dg|z  }d|d<   t        |«      |d<   t        |«      |d	<   d|d
<   t        |«      |d<   t        |«      |d<   t        |«      |d<   t        |«      |d<   |dd  }|j                  d«       |D �cg c]  }t	        j
                  d|«      ‘Œ c}S c c}w )Nr4   i   r   r   r   g        g      ð?r   r   r   r   r   r   r   )rD   r   Úfloatr�   r'   Úpack)	r…   ÚnsamÚnrowr   r   r   ÚnvaluesÚhdrÚvs	            r   ÚmakeSpiderHeaderr�   è   s  € Ø—‘�J€Dˆ$Ø�A‰X€FÜ�˜‘Ó€FØˆf�}˜ÒØ�!‰ˆØ�f‰_€FÜ�&˜1‘*‹o€GØ�‚|Øˆ	àˆ%�'‰/€Cð €Cˆ�FÜ�4‹[€Cˆ�FÜ�4‹[€Cˆ�FØ€Cˆ�FÜ�D‹k€Cˆ�GÜ�F‹m€Cˆ�GÜ�F‹m€Cˆ�GÜ�F‹m€Cˆ�Gð ˆaˆbˆ'€CØ‡J�Jˆs„Oà),Ö- AŒF�K‰K˜˜QÕÒ-Ð-ùÒ-s   ÃC(c           
     ó  — | j                   d   dk7  r| j                  d«      } t        | «      }t        |«      dk  rd}t	        |«      ‚|j                  |«       d}t        j                  | |dd| j                  z   d|ddffg«       y )	Nr   r6   rl   zError creating Spider headerzF;32NFr7   r8   r   )	Úmodere   r�   rz   ÚOSErrorÚ
writelinesr   Ú_saverD   )r…   r*   r)   r�   rI   rB   s         r   r”   r”     s�   € Ø	‡w�wˆq�z�SÒØ�Z‰Z˜‹_ˆä
˜2Ó
€CÜ
ˆ3ƒx�#‚~Ø,ˆÜ�c‹lÐð ‡M�M�#Ôà€GÜ‡O�O�B˜˜e V¨b¯g©gÑ%5°q¸7ÀAÀq¸/ÐJÐKÕLr!   c                óª   — t         j                  j                  |«      d   }t        j                  t
        j                  |«       t        | ||«       y rS   )r{   r|   Úsplitextr   Úregister_extensionr.   ru   r”   )r…   r*   r)   Úexts       r   Ú_save_spiderr™     s=   € ä
�'‰'×
Ñ
˜8Ó
$ QÑ
'€CÜ	×Ñœ_×3Ñ3°SÔ9Ü	ˆ"ˆb�(Õr!   Ú__main__r   z7Syntax: python3 SpiderImagePlugin.py [infile] [outfile]z$input image must be in Spider formatzimage: zformat: zsize: zmode: z
max, min: ú )Úendzsaving a flipped version of z as rN   )'Ú
__future__r   r{   r'   Úsysrn   r   r   r   r   r    r,   r.   r†   r�   r”   r™   Úregister_openru   Úregister_saverr   rz   Úargvr~   Úexitr)   r%   r…   ÚstrrD   r‘   rc   ÚoutfileÚ	transposeÚ	TransposeÚFLIP_LEFT_RIGHTr|   ÚbasenameÚsaver^   r!   r   ú<module>rª      sõ  ðõF #ã 	Û Û 
ç òò 
$€òò(ôgD�i×)Ñ)ô gDó^ò4.ò<Mò ð €× Ñ �O×*Ñ*¨OÔ <Ø €× Ñ �O×*Ñ*¨LÔ 9àˆzÓÙ
ˆ3�8‰8ƒ}�qÒÙÐGÔHØˆ�‰Œ
à�x‰x˜‰{€HÙ˜Ô"ÙÐ4Ô5Øˆ�‰Œ
à	ˆ�‰�HÓ	ð 5 Ùˆi™#˜b›'Ñ!Ô"Ùˆj™3˜rŸy™y›>Ñ)Ô*Ùˆh™˜RŸW™W›Ñ%Ô&Ùˆh™˜RŸW™W›Ñ%Ô&Ùˆl Õ$Ùˆb�m‰m‹oÔáˆs�x‰x‹=˜1ÒØ—h‘h˜q‘kˆGð —‘˜eŸo™o×=Ñ=Ó>ˆBÙØ.¨r¯w©w×/?Ñ/?ÀÓ/IÐ.Jð KØ�Y˜að!ôð �G‰G�G˜_×3Ñ3Ô4÷#5ð 5ð ÷5ð 5ús   Ã:DHÈH