ó
     Hj  ã                  ó.  • S SK Jr  S SKrS SKrSSKJrJr  SS jr " S S\R                  5      r " S S	\R                  5      r
\R                  " \R                  \\5        \R                  " S
\
5        \R                  " \R                  SS/5        g)é    )ÚannotationsNé   )ÚImageÚ	ImageFilec                ó   • U S S S:H  $ )Né   ó   SIMPLE© )Úprefixs    Ú5/usr/lib/python3/dist-packages/PIL/FitsImagePlugin.pyÚ_acceptr      s   € Ø�"�1ˆ:˜Ñ"Ð"ó    c                  óN   • \ rS rSrSrSrSS jr      S	S jr    S
S jrSr	g)ÚFitsImageFileé   ÚFITSc                ó˜  • U R                   c   e0 nSnSn U R                   R                  S5      nU(       d  Sn[        U5      eUS S R                  5       nUS;   a  SnO�U(       a  U(       d  OúUS:X  al  U R                   R	                  [
        R                  " U R                   R                  5       S	-  5      S	-  5        U(       d  U R                  U5      u  p7nSnMÍ  U(       a  MÖ  USS  R                  S
5      S   R                  5       n	U	R                  S5      (       a  U	SS  R                  5       n	U(       d#  [        U5      (       a  U	S:w  a  Sn[        U5      eX‘U'   GMT  U(       d  Sn[        U5      eWU R                   R                  5       S-
  -  n[        R                  " USU R                   -   UW5      /U l        g )NFÚ TéP   zTruncated FITS fileé   )r	   ó   XTENSIONs   ENDi@  ó   /r   ó   =r   ó   TzNot a FITS filezNo image data©r   r   )ÚfpÚreadÚOSErrorÚstripÚseekÚmathÚceilÚtellÚ_parse_headersÚsplitÚ
startswithr   ÚSyntaxErrorÚ
ValueErrorr   Ú_TileÚsizeÚtile)
ÚselfÚheadersÚheader_in_progressÚdecoder_nameÚheaderÚmsgÚkeywordÚoffsetÚargsÚvalues
             r   Ú_openÚFitsImageFile._open   s˜  € Ø�w‰wÑ"Ð"Ð"à&(ˆØ"ÐØˆØØ—W‘W—\‘\ "Ó%ˆFÞØ+�Ü˜c“lÐ"Ø˜R˜a�j×&Ñ&Ó(ˆGØÐ2Ó2Ø%)Ñ"ÞÖ!3àØ˜FÓ"à—‘—‘œTŸYšY t§w¡w§|¡|£~¸Ñ'<Ó=ÀÑDÔEÞ#Ø15×1DÑ1DÀWÓ1MÑ.�L¨$à%*Ð"Ùæáà˜1˜2�J×$Ñ$ TÓ*¨1Ñ-×3Ñ3Ó5ˆEØ×Ñ ×%Ñ%Ø˜a˜b˜	Ÿ™Ó)�Þ¤G¨G×$4Ñ$4¸À»Ø'�Ü! #Ó&Ð&Ø$�GÑò= ö@ Ø!ˆCÜ˜S“/Ð!à�$—'‘'—,‘,“. 2Ñ%Ñ%ˆÜ—_’_ \°6¸D¿I¹IÑ3EÀvÈtÓTÐUˆ�	r   c                ó    • [        XS-      5      nUS:X  a  g US:X  a  S[        XS-      5      4$ [        XS-      5      [        XS-      5      4$ )Ns   NAXISr   r   s   NAXIS1s   NAXIS2)Úint)r,   r-   r   Únaxiss       r   Ú	_get_sizeÚFitsImageFile._get_sizeH   sd   € ô �G XÑ-Ñ.Ó/ˆØ�A‹:Øà�A‹:Ø”c˜'¨9Ñ"4Ñ5Ó6Ð6Ð6ä�w¨	Ñ1Ñ2Ó3´S¸È)ÑASÑ9TÓ5UÐUÐUr   c                óô  • SnSnSnUR                  S5      S:X  a[  UR                  S5      S:X  aF  US   S	:X  a=  U R                  X5      =(       d    S
n[        US   5      nUS   US   -  US-  -  nSnSnU R                  X5      nU(       d  gXpl        [        XS-      5      nUS:X  a  SU l        O)US:X  a  SU l        OUS:X  a  SU l        OUS;   a  SU l        US:X  a  U R
                  SS4nOU4nX4U4$ )Nr   Úrawr   r   s
   'BINTABLE's   ZIMAGEr   s   ZCMPTYPEs
   'GZIP_1  'r   s   BITPIXr   r   ó   ZÚ	fits_gzip)r   r   r
   ÚLé   zI;16é    ÚI)iàÿÿÿiÀÿÿÿÚFéÿÿÿÿ)Úgetr;   r9   Ú_sizeÚ_modeÚmode)	r,   r-   r   r/   r3   Úno_prefix_sizeÚnumber_of_bitsr*   r4   s	            r   r$   ÚFitsImageFile._parse_headersT   s!  € ð ˆØˆØˆà�K‰K˜Ó$¨Ó5Ø—‘˜IÓ&¨$Ó.Ø˜Ñ$¨Ó5à!Ÿ^™^¨GÓ<×FÀˆNÜ  ¨Ñ!3Ó4ˆNØ# AÑ&¨¸Ñ):Ñ:¸nÐPQÑ>QÑRˆFàˆFØ&ˆLà�~‰~˜gÓ.ˆÞØàŒ
ä˜W¨iÑ%7Ñ8Ó9ˆØ˜QÓØˆD�JØ˜rÓ!ØˆD�JØ˜rÓ!ØˆD�JØ˜zÓ)ØˆDŒJð ˜5Ó Ø—I‘I˜q "Ð%‰Dà"Ð$ˆDØ TÐ)Ð)r   )rI   rH   r+   N)ÚreturnÚNone)r-   údict[bytes, bytes]r   ÚbytesrN   ztuple[int, int] | None)r-   rP   rN   z&tuple[str, int, tuple[str | int, ...]])
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚformatÚformat_descriptionr6   r;   r$   Ú__static_attributes__r
   r   r   r   r      sJ   † Ø€FØÐô+VðZ
VØ)ð
VØ38ð
Và	ô
Vð'*Ø)ð'*à	/÷'*r   r   c                  ó"   • \ rS rSrSrSS jrSrg)ÚFitsGzipDecoderé~   Tc           
     óÎ  • U R                   c   e[        R                  " U R                   5       nUR                  U R                  R
                  U R                  R                  -  S-  5      n/ nSn[        U R                  S   S-  S5      n[        U R                  R                  5       HY  n[        5       n[        U R                  R
                  5       H  n	XƒUSU-
  -   US-    -  nUS-  nM     UR                  U5        M[     S S S 5        U R                  [        WS S S2    VV
s/ s H  oˆ  H  oªPM     M     sn
n5      5        g! , (       d  f       NJ= fs  sn
nf )Né   r   r   rF   )rF   r   )ÚfdÚgzipÚopenr   ÚstateÚxsizeÚysizeÚminr4   ÚrangeÚ	bytearrayÚappendÚ
set_as_rawrQ   )r,   Úbufferr   r5   Úrowsr3   rL   ÚyÚrowÚxÚpixels              r   ÚdecodeÚFitsGzipDecoder.decode�   s(  € Ø�w‰wÑ"Ð"Ð"Ü�YŠY�t—w‘wÔ 2Ø—G‘G˜DŸJ™J×,Ñ,¨t¯z©z×/?Ñ/?Ñ?À!ÑCÓDˆEàˆDØˆFÜ  §¡¨1¡°Ñ!2°AÓ6ˆNÜ˜4Ÿ:™:×+Ñ+Ö,�Ü“k�Ü˜tŸz™z×/Ñ/Ö0�AØ ¨1¨~Ñ+=Ñ!>ÀÈ!ÁÐLÑL�CØ˜a‘K’Fñ 1ð —‘˜CÖ ñ -÷  ð 	�‰œ°±T°r°T²
ÔL²
¨Ë¸ušuÉ™u±
ÒLÓMÔNØ÷  Õüó Ms   °CEÄ/E!Å
Er
   N)ri   z$bytes | Image.SupportsArrayInterfacerN   ztuple[int, int])rR   rS   rT   rU   Ú	_pulls_fdro   rX   r
   r   r   rZ   rZ   ~   s   † Ø€I÷r   rZ   r@   z.fitz.fits)r   rQ   rN   Úbool)Ú
__future__r   r_   r!   r   r   r   r   r   Ú	PyDecoderrZ   Úregister_openrV   Úregister_decoderÚregister_extensionsr
   r   r   Ú<module>rx      s„   ðõ #ã Û ç ô#ôd*�I×'Ñ'ô d*ôN�i×)Ñ)ô ð0 × Ò �M×(Ñ(¨-¸Ô AØ × Ò �{ OÔ 4à × Ò ˜-×.Ñ.°¸Ð0AÕ Br   