Ë
    ÏÍ:j‹i  ã                   ón  — U d gZ ddlZddlZddlZddlZddlZddddddd	d	d
d	d	dddddœZdddddddddddddddœZi Z	e
ee
f   ed<   d „ Zd!„ Zd"„ Zd#„ Zd$„ Zd%„ Zd&„ Zd'„ Zd(„ Zd)„ Zd*„ Zd+„ Zd,„ Z G d-„ d.«      Z G d/„ d0e«      Zd1„ Zd2„ Zd3„ Zd4„ Zd5„ Z d6„ Z!d7„ Z"d8„ Z#d9„ Z$d:„ Z%d;„ Z& G d<„ d=e
«      Z'	 	 d?d>„Z(y)@Úreadsavé    Nz>u1z>i2z>i4z>f4z>f8z>c8z|Oz>c16z>u2z>u4z>i8z>u8)é   é   é   é   é   é   é   é   é	   é
   é   é   é   é   é   ÚSTART_MARKERÚCOMMON_VARIABLEÚVARIABLEÚSYSTEM_VARIABLEÚ
END_MARKERÚ	TIMESTAMPÚCOMPILEDÚIDENTIFICATIONÚVERSIONÚHEAP_HEADERÚ	HEAP_DATAÚ	PROMOTE64ÚNOTICEÚDESCRIPTION)r   r   r   r   r	   r   r   r   r   r   é   é   é   é   ÚSTRUCT_DICTc                 óh   — | j                  «       }|dz  dk7  r| j                  |dz   |dz  z
  «       y)z+Align to the next 32-bit position in a filer   r   N)ÚtellÚseek)ÚfÚposs     úb/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/scipy/io/_idl.pyÚ	_align_32r,   K   s6   € ð �&‰&‹(€CØ
ˆQ�w�!‚|Ø	�‰ˆs�Q‰w˜˜q™Ñ Ô!Ø
ó    c                 ó&   — | j                  |«       y)zSkip `n` bytesN©Úread©r)   Úns     r+   Ú_skip_bytesr3   T   s   € à‡F�Fˆ1„IØ
r-   c                 ó$   — | j                  |«      S )zRead the next `n` bytesr/   r1   s     r+   Ú_read_bytesr5   Z   s   € à�6‰6�!‹9Ðr-   c                 ó~   — t        j                  t        j                  d| j	                  d«      dd «      d   «      S )zRead a single bytez>Br   Nr   r   )ÚnpÚuint8ÚstructÚunpackr0   ©r)   s    r+   Ú
_read_byter<   _   s/   € ä�8‰8”F—M‘M $¨¯©¨q«	°"°1¨Ó6°qÑ9Ó:Ð:r-   c                 óx   — t        j                  t        j                  d| j	                  d«      «      d   «      S )úRead a signed 32-bit integerú>lr   r   ©r7   Úint32r9   r:   r0   r;   s    r+   Ú
_read_longrB   d   ó)   € ä�8‰8”F—M‘M $¨¯©¨q«	Ó2°1Ñ5Ó6Ð6r-   c                 ó~   — t        j                  t        j                  d| j	                  d«      dd «      d   «      S )zRead a signed 16-bit integerz>hr   r   r   )r7   Úint16r9   r:   r0   r;   s    r+   Ú_read_int16rF   i   s/   € ä�8‰8”F—M‘M $¨¯©¨q«	°!°A¨Ó7¸Ñ:Ó;Ð;r-   c                 óx   — t        j                  t        j                  d| j	                  d«      «      d   «      S )r>   z>ir   r   r@   r;   s    r+   Ú_read_int32rH   n   rC   r-   c                 óx   — t        j                  t        j                  d| j	                  d«      «      d   «      S )zRead a signed 64-bit integerz>qr   r   )r7   Úint64r9   r:   r0   r;   s    r+   Ú_read_int64rK   s   rC   r-   c                 ó~   — t        j                  t        j                  d| j	                  d«      dd «      d   «      S )zRead an unsigned 16-bit integerz>Hr   r   r   )r7   Úuint16r9   r:   r0   r;   s    r+   Ú_read_uint16rN   x   s/   € ä�9‰9”V—]‘] 4¨¯©°«°1°Q¨Ó8¸Ñ;Ó<Ð<r-   c                 óx   — t        j                  t        j                  d| j	                  d«      «      d   «      S )zRead an unsigned 32-bit integerú>Ir   r   )r7   Úuint32r9   r:   r0   r;   s    r+   Ú_read_uint32rR   }   ó)   € ä�9‰9”V—]‘] 4¨¯©°«Ó3°AÑ6Ó7Ð7r-   c                 óx   — t        j                  t        j                  d| j	                  d«      «      d   «      S )zRead an unsigned 64-bit integerz>Qr   r   )r7   Úuint64r9   r:   r0   r;   s    r+   Ú_read_uint64rV   ‚   rS   r-   c                 óx   — t        j                  t        j                  d| j	                  d«      «      d   «      S )zRead a 32-bit floatz>fr   r   )r7   Úfloat32r9   r:   r0   r;   s    r+   Ú_read_float32rY   ‡   ó)   € ä�:‰:”f—m‘m D¨!¯&©&°«)Ó4°QÑ7Ó8Ð8r-   c                 óx   — t        j                  t        j                  d| j	                  d«      «      d   «      S )zRead a 64-bit floatz>dr   r   )r7   Úfloat64r9   r:   r0   r;   s    r+   Ú_read_float64r]   Œ   rZ   r-   c                   ó   — e Zd ZdZd„ Zy)ÚPointerzClass used to define pointersc                 ó   — || _         y ©N)Úindex)Úselfrb   s     r+   Ú__init__zPointer.__init__”   s   € ØˆŒ
Ør-   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rd   © r-   r+   r_   r_   ‘   s
   „ Ù'ór-   r_   c                   ó   — e Zd ZdZy)ÚObjectPointerz$Class used to define object pointersN)re   rf   rg   rh   ri   r-   r+   rk   rk   ™   s   „ Ù.Ør-   rk   c                 óz   — t        | «      }|dkD  r(t        | |«      j                  d«      }t        | «       |S d}|S )zRead a stringr   Úlatin1Ú )rB   r5   Údecoder,   )r)   ÚlengthÚcharss      r+   Ú_read_stringrr   ž   sC   € ä˜‹]€FØ�‚zÜ˜A˜vÓ&×-Ñ-¨hÓ7ˆÜ�!Œð €Lð ˆØ€Lr-   c                 ór   — t        | «      }|dkD  r$t        | «      }t        | |«      }t        | «       |S d}|S )z.Read a data string (length is specified twice)r   rn   )rB   r5   r,   )r)   rp   Ústring_datas      r+   Ú_read_string_dataru   ©   sC   € ä˜‹]€FØ�‚zÜ˜A“ˆÜ! ! VÓ,ˆÜ�!Œð Ðð ˆØÐr-   c                 óî  — |dk(  r$t        | «      dk7  rt        d«      ‚t        | «      S |dk(  rt        | «      S |dk(  rt        | «      S |dk(  rt	        | «      S |dk(  rt        | «      S |dk(  r1t	        | «      }t	        | «      }t        j                  ||dz  z   «      S |d	k(  rt        | «      S |d
k(  rt        d«      ‚|dk(  r1t        | «      }t        | «      }t        j                  ||dz  z   «      S |dk(  rt        t        | «      «      S |dk(  rt        t        | «      «      S |dk(  rt        | «      S |dk(  rt        | «      S |dk(  rt        | «      S |dk(  rt        | «      S t        d|› d�«      ‚)z*Read a variable with a specified data typer   z*Error occurred while reading byte variabler   r   r   r   r	   y              ð?r
   r   z'Should not be here - please report thisr   r   r   r   r   r   r   zUnknown IDL type: z - please report this)rH   Ú	Exceptionr<   rF   rY   r]   r7   Ú	complex64ru   Ú
complex128r_   rk   rN   rR   rK   rV   )r)   ÚdtypeÚrealÚimags       r+   Ú
_read_datar}   µ   s‚  € à�‚zÜ�q‹>˜QÒÜÐHÓIÐIÜ˜!‹}ÐØ	�!ŠÜ˜1‹~ÐØ	�!ŠÜ˜1‹~ÐØ	�!ŠÜ˜QÓÐØ	�!ŠÜ˜QÓÐØ	�!ŠÜ˜QÓˆÜ˜QÓˆÜ�|‰|˜D 4¨"¡9Ñ,Ó-Ð-Ø	�!ŠÜ  Ó#Ð#Ø	�!ŠÜÐAÓBÐBØ	�!ŠÜ˜QÓˆÜ˜QÓˆÜ�}‰}˜T D¨2¡IÑ-Ó.Ð.Ø	�"ŠÜ”{ 1“~Ó&Ð&Ø	�"ŠÜœ[¨›^Ó,Ð,Ø	�"ŠÜ˜A‹ÐØ	�"ŠÜ˜A‹ÐØ	�"ŠÜ˜1‹~ÐØ	�"ŠÜ˜A‹ÐäÐ,¨U¨GÐ3HÐIÓJÐJr-   c           	      ó  — |d   }|d   }g }|D ]”  }|d   s|d   r8|j                  |d   j                  «       |d   ft        j                  f«       ŒE|d   t        v r4|j                  |d   j                  «       |d   ft        |d      f«       Œ„t        d|d   › d�«      ‚ t        j                  j                  |f|¬	«      }t        |«      D ]v  }|D ]o  }|d   }|d   r)t        | |d
   |d      |d   |d      «      ||d      |<   Œ6|d   r t        | ||d
   |d      «      ||d      |<   Œ[t        | |«      ||d      |<   Œq Œx |d   dkD  r5|d   dt        |d   «       }	|	j                  «        |j                  |	«      }|S )z�
    Read a structure, with the array and structure descriptors given as
    `array_desc` and `structure_desc` respectively.
    Ú	nelementsÚtagtableÚ	structureÚarrayÚnameÚtypecodezVariable type ú not implemented©rz   ÚarrtableÚstructtableÚndimsr   ÚdimsN)ÚappendÚlowerr7   Úobject_Ú
DTYPE_DICTrw   ÚrecÚrecarrayÚrangeÚ_read_structureÚ_read_arrayr}   ÚintÚreverseÚreshape)
r)   Ú
array_descÚstruct_descÚnrowsÚcolumnsrz   Úcolr�   ÚirŠ   s
             r+   r’   r’   ß   sñ  € ð �{Ñ#€EØ˜*Ñ%€Gà€EØò TˆØˆ{Ò˜s 7š|Ø�L‰L˜3˜v™;×,Ñ,Ó.°°F±Ð<¼b¿j¹jÐIÕJà�:‰¤*Ñ,Ø—‘˜s 6™{×0Ñ0Ó2°C¸±KÐ@Ü$.¨s°:©Ñ$?ðAõ Bô   .°°Z±Ð0AÐAQÐ RÓSÐSðTô —‘—‘  	°�Ó7€Iä�5‹\ò AˆØò 
	AˆCØ˜
‘OˆEØ�;ÒÜ,;¸AØ&1°*Ñ&=¸cÀ&¹kÑ&JØ&1°-Ñ&@ÀÀVÁÑ&Mó-O�	˜#˜f™+Ñ& qÒ)ð �W’Ü,7¸¸5Ø&1°*Ñ&=¸cÀ&¹kÑ&Jó-L�	˜#˜f™+Ñ& qÒ)ô -7°q¸%Ó,@�	˜#˜f™+Ñ& qÒ)ñ
	AðAð �'Ñ˜QÒØ˜&Ñ!Ð";¤3 z°'Ñ':Ó#;Ð<ˆØ�‰ŒØ×%Ñ% dÓ+ˆ	àÐr-   c                 óŒ  — |dv r`|dk(  r*t        | «      }||d   k7  rt        j                  dd¬«       t        j                  | j                  |d   «      t        |   ¬«      }n—|dv r:t        j                  | j                  |d   d	z  «      t        |   ¬«      dd
d	…   }nYg }t        |d   «      D ]!  }|}t        | |«      }|j                  |«       Œ# t        j                  |t        j                  ¬«      }|d   dkD  r5|d   d
t        |d   «       }|j                  «        |j                  |«      }t        | «       |S )z`
    Read an array of type `typecode`, with the array descriptor given as
    `array_desc`.
    )	r   r   r   r   r	   r   r   r   r   r   Únbytesz.Not able to verify number of bytes from headerr   ©Ú
stacklevelr†   )r   r   r   Nr   r‰   rŠ   )rH   ÚwarningsÚwarnr7   Ú
frombufferr0   rŽ   r‘   r}   r‹   r‚   r�   r”   r•   r–   r,   )	r)   r„   r—   rž   r‚   rœ   rz   ÚdatarŠ   s	            r+   r“   r“     sM  € ð Ð1Ñ1à�qŠ=Ü  “^ˆFØ˜ HÑ-Ò-Ü—‘ÐNØ)*õ,ô —‘˜aŸf™f Z°Ñ%9Ó:Ü$.¨xÑ$8ô:‰ð 
�WÑ	ô —‘˜aŸf™f Z°Ñ%9¸!Ñ%;Ó<Ü$.¨xÑ$8ô:Ø:;¸$¸Q¸$ñ@‰ð ˆÜ�z +Ñ.Ó/ò 	ˆAØˆEÜ˜a Ó'ˆDØ�L‰L˜Õð	ô
 —‘˜¤b§j¡jÔ1ˆð �'Ñ˜QÒØ˜&Ñ!Ð";¤3 z°'Ñ':Ó#;Ð<ˆØ�‰ŒØ—‘˜dÓ#ˆô ˆa„Là€Lr-   c                 óŽ  — dt        | «      i}t        | «      }|t        | «      j                  t        j                  «      dz  z  }t        | d«       |d   t        vrt        d|d   › �«      ‚t        |d      |d<   |d   dv rÔ|d   dk(  rt        | «      |d<   nt        | «      |d<   t        | d«       t        | «      }|d	   d
k(  r%|| j                  «       k(  rd|d<   �nGt        d«      ‚t        | «      }|dk7  rt        d«      ‚|d   rt        | |d   |d   «      |d<   �n|d   rt        | |d	   |d   «      |d<   �nç|d	   }t        | |«      |d<   �nÑ|d   dk(  r8t        | d«       t        | «      |d<   t        | «      |d<   t        | «      |d<   �n‘|d   dk(  r:t        | «      |d<   t        | «      |d<   t        | «      |d<   t        | «      |d<   �nO|d   dk(  r,t        | «      |d<   t        | «      |d <   t        | «      |d!<   �n|d   d"k(  rt        | «      |d#<   �n|d   d$k(  rt        | «      |d%<   nì|d   d&k(  r7t        | «      |d'<   t!        |d'   «      D �cg c]  }t        | «      ‘Œ c}|d(<   n­|d   d)k(  rEt        | «      |d*<   t        | «      |d+<   t!        |d*   «      D �cg c]  }t        | «      ‘Œ c}|d,<   n`|d   d-k(  rd.|d/<   nR|d   d0k(  rt#        j$                  d1d2¬3«       n2|d   d4k(  rt#        j$                  d5d2¬3«       nt        d6|d   › d7�«      ‚| j'                  |«       |S c c}w c c}w )8z!Function to read in a full recordÚrectypeì        r   zUnknown RECTYPE: )r   r   r   ÚvarnameÚ
heap_indexr„   r   Nr¤   zUnexpected type code: 0r
   zVARSTART is not 7r�   r—   r˜   r‚   r   i   ÚdateÚuserÚhostr   ÚformatÚarchÚosÚreleaser   ÚauthorÚtitleÚidcoder   Únoticer    Údescriptionr   ÚnvaluesÚindicesÚCOMMONBLOCKÚnvarsrƒ   Úvarnamesr   TÚendÚUNKNOWNzSkipping UNKNOWN recordr   rŸ   r   zSkipping SYSTEM_VARIABLE recordzrecord['rectype']=r…   )rB   rR   Úastyper7   rJ   r3   ÚRECTYPE_DICTrw   rr   Ú_read_typedescr'   Ú
ValueErrorr’   r“   r}   ru   r‘   r¡   r¢   r(   )r)   ÚrecordÚnextrecÚrectypedescÚvarstartrz   Ú_s          r+   Ú_read_recordrÆ   ;  s…  € ð œ A›Ð'€Fä˜1‹o€GØŒ|˜A‹×%Ñ%¤b§h¡hÓ/°%Ñ7Ñ7€Gä��1ÔàˆiÑ¤Ñ,ÜÐ+¨F°9Ñ,=Ð+>Ð?Ó@Ð@ä$ V¨IÑ%6Ñ7€Fˆ9ÑàˆiÑÐ5Ñ5à�)Ñ 
Ò*Ü ,¨Q£ˆF�9Òä#-¨a£=ˆF�<Ñ Ü˜˜1Ôä$ QÓ'ˆà�zÑ" aÒ'à˜!Ÿ&™&›(Ò"Ø!%��v“ä Ð!:Ó;Ð;ô " !“}ˆHØ˜1Š}ÜÐ 3Ó4Ð4à˜;Ò'Ü!0°°KÀÑ4MØ4?ÀÑ4Nó"P��v“à˜WÒ%Ü!,¨Q°¸JÑ0GØ0;¸LÑ0Ió"K��v“ð $ JÑ/�Ü!+¨A¨uÓ!5��v“à	�	Ñ	˜kÒ	)ä�A�uÔÜ% a›ˆˆv‰Ü% a›ˆˆv‰Ü% a›ˆˆv‹à	�	Ñ	˜iÒ	'ä% a›=ˆˆxÑÜ% a›ˆˆv‰Ü# A“ˆˆt‰Ü(¨›OˆˆyÓà	�	Ñ	Ð.Ò	.ä'¨›?ˆˆxÑÜ& q›/ˆˆw‰Ü'¨›?ˆˆxÓà	�	Ñ	˜hÒ	&ä'¨›?ˆˆxÓà	�	Ñ	˜mÒ	+ä 1°!Ó 4ˆˆ}Òà	�	Ñ	˜mÒ	+ä& q›MˆˆyÑÜ49¸&ÀÑ:KÓ4LÖM¨qœZ¨�]ÒMˆˆyÒà	�	Ñ	˜mÒ	+ä$ Q›-ˆˆw‰Ü% a›ˆˆv‰Ü7<¸VÀG¹_Ó7MÖN°!œl¨1�oÒNˆˆzÒà	�	Ñ	˜lÒ	*àˆˆuŠà	�	Ñ	˜iÒ	'ä�‰Ð/¸AÖ>à	�	Ñ	Ð/Ò	/ä�‰Ð7ÀAÖFô Ð,¨V°IÑ->Ð,?Ð?OÐPÓQÐQà‡F�Fˆ7„Oà€Mùò5 Nùò Os   É$L=Ê1Mc                 ó  — t        | «      t        | «      dœ}|d   dz  dk(  rt        d«      ‚|d   dz  dk(  |d<   |d   dz  dk(  |d<   |d   rt        | «      |d	<   t        | «      |d
<   |S |d   rt        | «      |d	<   |S )z%Function to read in a type descriptor)r„   ÚvarflagsrÈ   r   z System variables not implementedr   r‚   é    r�   r—   r˜   )rB   rw   Ú_read_arraydescÚ_read_structdesc)r)   Útypedescs     r+   r¿   r¿   §  s±   € ô ' q›M´zÀ!³}ÑE€Hà�
Ñ˜aÑ 1Ò$ÜÐ:Ó;Ð;à  Ñ,¨qÑ0°AÑ5€HˆWÑØ$ ZÑ0°2Ñ5¸Ñ;€Hˆ[Ñà�ÒÜ!0°Ó!3ˆ�ÑÜ"2°1Ó"5ˆ�Ñð €Oð 
�'Ò	Ü!0°Ó!3ˆ�Ñà€Or-   c                 ó¼  — dt        | «      i}|d   dk(  rzt        | d«       t        | «      |d<   t        | «      |d<   t        | «      |d<   t        | d«       t        | «      |d<   t        |d   «      D �cg c]  }t        | «      ‘Œ c}|d<   |S |d   d	k(  r°t        j                  d
d¬«       t        | d«       t        | «      |d<   t        | «      |d<   t        | «      |d<   t        | d«       d|d<   g |d<   t        |d   «      D ]:  }t        | «      }|dk7  rt        d«      ‚|d   j                  t        | «      «       Œ< |S t        d|d   › �«      ‚c c}w )z'Function to read in an array descriptorÚarrstartr   r   rž   r   r‰   ÚnmaxrŠ   é   z$Using experimental 64-bit array readr   rŸ   r   zExpected a zero in ARRAY_DESCzUnknown ARRSTART: )rB   r3   r‘   r¡   r¢   rV   rw   r‹   )r)   Ú	arraydescrÅ   ÚdÚvs        r+   rÊ   rÊ   »  s{  € ð œZ¨›]Ð+€Ià�Ñ Ò!ä�A�qÔä(¨›mˆ	�(ÑÜ!+¨A£ˆ	�+ÑÜ'¨›]ˆ	�'Ñä�A�qÔä& q›Mˆ	�&Ñä49¸)ÀFÑ:KÓ4LÖM¨qœZ¨�]ÒMˆ	�&Ñð4 Ðð1 
�:Ñ	 "Ò	$ä�‰Ð<ÈÕKä�A�qÔä*¨1›oˆ	�(ÑÜ!-¨a£ˆ	�+ÑÜ'¨›]ˆ	�'Ñä�A�qÔàˆ	�&Ñàˆ	�&ÑÜ�y Ñ(Ó)ò 	4ˆAÜ˜1“ˆAØ�AŠvÜÐ ?Ó@Ð@Ø�fÑ×$Ñ$¤Z°£]Õ3ð		4ð Ðô Ð,¨Y°zÑ-BÐ,CÐDÓEÐEùò1 Ns   Á6Ec                 ó„  — i }t        | «      }|dk7  rt        d«      ‚t        | «      |d<   t        | «      }t        | «      |d<   t        | «      |d<   |dz  |d<   |dz  |d	<   |d
z  |d<   |d   �st        |d   «      D �cg c]  }t	        | «      ‘Œ c}|d<   |d   D ]  }t        | «      |d<   Œ |d   D �ci c]  }|d   r|d   t        | «      “Œ c}|d<   |d   D �ci c]  }|d   r|d   t        | «      “Œ c}|d<   |d	   s|d   rlt        | «      |d<   t        | «      |d<   t        |d   «      D �cg c]  }t        | «      ‘Œ c}|d<   t        |d   «      D �cg c]  }t        | «      ‘Œ c}|d<   |t        |d   <   |S |d   t        vrt        d«      ‚t        |d      }|S c c}w c c}w c c}w c c}w c c}w )z*Function to read in a structure descriptorr   zSTRUCTSTART should be 9rƒ   Úntagsrž   r   Úpredefr   Úinheritsr   Úis_superr€   r‚   r‡   r�   rˆ   Ú	classnameÚnsupclassesÚsupclassnamesÚsupclasstablez"PREDEF=1 but can't find definition)rB   rw   rr   r‘   Ú_read_tagdescrÊ   rË   r%   )r)   Ú
structdescÚstructstartrÖ   rÅ   Útags         r+   rË   rË   é  s<  € ð €Jä˜Q“-€KØ�aÒÜÐ1Ó2Ð2ä% a›€JˆvÑÜ˜‹]€FÜ$ Q›-€JˆwÑÜ% a›=€JˆxÑà! A™:€JˆxÑØ# a™Z€JˆzÑØ# a™Z€JˆzÑà�hÓô ,1°¸GÑ1DÓ+Eö"GØ&'ô #0°Õ"2ò "Gˆ
�:Ñð ˜jÑ)ò 	*ˆCÜ& q›/ˆC�ŠKð	*ð .8¸
Ñ-Cö"3Ø&)Ø%(¨¢\ð #& f¡+¬¸qÓ/AÑ"Aò "3ˆ
�:Ñð
 1;¸:Ñ0Fö%:Ø),Ø(+¨KÒ(8ð &)¨¡[Ô2BÀ1Ó2EÑ%Eò %:ˆ
�=Ñ!ð �jÒ! Z°
Ò%;Ü&2°1£oˆJ�{Ñ#Ü(2°1«ˆJ�}Ñ%ä).¨z¸-Ñ/HÓ)Iö+KØ$%”˜Q•ò+KˆJ�Ñ'ô .3°:¸mÑ3LÓ-Mö+OØ()Ô  Õ#ò+OˆJ�Ñ'ð +5Œ�J˜vÑ&Ñ'ð Ðð �fÑ¤[Ñ0ÜÐ@ÓAÐAä  ¨FÑ!3Ñ4ˆ
àÐùò?"Gùò"3ùò%:ùò+Kùò+Os   ÂF)Â8F.Ã F3Ä7F8ÅF=c                 óÆ   — dt        | «      i}|d   dk(  rt        | «      |d<   t        | «      |d<   t        | «      }|dz  dk(  |d<   |dz  dk(  |d<   |d   t        v |d<   |S )	z$Function to read in a tag descriptorÚoffsetéÿÿÿÿr„   r   r‚   rÉ   r�   Úscalar)rB   rV   rŽ   )r)   ÚtagdescÚtagflagss      r+   rÝ   rÝ     s…   € ð œ A›Ð'€GàˆxÑ˜BÒÜ(¨›Oˆ�Ñä$ Q›-€GˆJÑÜ˜!‹}€Hà !‘| qÑ(€GˆGÑØ# b™=¨BÑ.€GˆKÑØ 
Ñ+¬zÐ9€GˆHÑð €Nr-   c                 ó†  — t        | t        «      r�t        | t        «      rZ| j                  dk(  rd } n7| j                  |v r|| j                     } nt        j                  dd¬«       d } t        | t        «      rŒZt        | |«      \  }}|r|} d| fS t        | t        j                  j                  «      r.t        | «      D ]  \  }}t        ||«      \  }}|sŒ|| |<   Œ d| fS t        | t        j                  «      r.t        | «      D ]  \  }}t        ||«      \  }}|sŒ|| |<   Œ d| fS t        | t        j                  «      ry| j                  j                  t        j                  u rOt        | j                   «      D ]7  }t        | j#                  |«      |«      \  }}|sŒ$|| j%                  d«      |<   Œ9 d| fS d| fS )Nr   zNVariable referenced by pointer not found in heap: variable will be set to Noner   rŸ   TFrã   )Ú
isinstancer_   rb   r¡   r¢   Ú_replace_heapr7   r�   r�   Ú	enumeraterÁ   Úndarrayrz   Útyper�   r‘   ÚsizeÚitemr–   )ÚvariableÚheapÚreplaceÚnewÚirrÁ   ÚivÚvalues           r+   ré   ré   2  s¸  € ä�(œGÔ$ä˜¤7Ô+à�~‰~ Ò"Ø‘à—>‘> TÑ)Ø# H§N¡NÑ3‘Hä—M‘Mð #Jà-.õ0ð  $�Hô ˜¤7Õ+ô % X¨tÓ4‰ˆ�áØˆHà�Xˆ~Ðä	�HœbŸf™fŸo™oÔ	.ô $ HÓ-ò 	#‰JˆB�ä(¨°Ó6‰LˆG�SâØ"�˜’ð	#ð �hˆÐä	�HœbŸi™iÔ	(ô # 8Ó,ò 	#‰IˆB�ä(¨°Ó5‰LˆG�SâØ"�˜’ð	#ð �hˆÐä	�HœbŸj™jÔ	)ð �>‰>×Ñ¤"§*¡*Ñ,ä˜HŸM™MÓ*ò 3�ä,¨X¯]©]¸2Ó->ÀÓE‘�˜âØ/2�H×$Ñ$ RÓ(¨Ò,ð3ð �hˆÐð �hˆÐr-   c                   óB   ‡ — e Zd ZdZdd„Zˆ fd„Zˆ fd„Zd„ ZeZeZ	ˆ xZ
S )ÚAttrDicta]  
    A case-insensitive dictionary with access via item, attribute, and call
    notations:

        >>> from scipy.io._idl import AttrDict
        >>> d = AttrDict()
        >>> d['Variable'] = 123
        >>> d['Variable']
        123
        >>> d.Variable
        123
        >>> d.variable
        123
        >>> d('VARIABLE')
        123
        >>> d['missing']
        Traceback (most recent error last):
        ...
        KeyError: 'missing'
        >>> d.missing
        Traceback (most recent error last):
        ...
        AttributeError: 'AttrDict' object has no attribute 'missing'
    c                 ó8   — |€i }t         j                  | |«       y ra   )Údictrd   )rc   Úinits     r+   rd   zAttrDict.__init__�  s   € Øˆ<ØˆDÜ�‰�d˜DÕ!r-   c                 ó>   •— t         ‰| �  |j                  «       «      S ra   )ÚsuperÚ__getitem__rŒ   )rc   rƒ   Ú	__class__s     €r+   rý   zAttrDict.__getitem__”  s   ø€ Ü‰wÑ" 4§:¡:£<Ó0Ð0r-   c                 ó@   •— t         ‰| �  |j                  «       |«      S ra   )rü   Ú__setitem__rŒ   )rc   Úkeyrõ   rþ   s      €r+   r   zAttrDict.__setitem__—  s   ø€ Ü‰wÑ" 3§9¡9£;°Ó6Ð6r-   c                 óx   — 	 | j                  |«      S # t        $ r t        dt        | «      › d|› d�«      d ‚w xY w)Nú'z' object has no attribute ')rý   ÚKeyErrorÚAttributeErrorrì   )rc   rƒ   s     r+   Ú__getattr__zAttrDict.__getattr__š  sS   € ð	NØ×#Ñ# DÓ)Ð)øÜò 	NÜ Ø”D˜“J�<Ð:¸4¸&ÀÐBóDØIMðNð	Nús   ‚ “&9ra   )re   rf   rg   rh   rd   rý   r   r  Ú__setattr__Ú__call__Ú__classcell__)rþ   s   @r+   r÷   r÷   u  s)   ø„ ñó2"ô
1ô7òNð €KØ„Hr-   r÷   c           
      óø
  — g }|s|ri }n
t        «       }t        | d«      }t        |d«      }|dk7  rt        d|› �«      ‚t        |d«      }	|	dk(  r�n–|	dk(  �r‚|rt	        d«       |rt        |d«      }
nt        j                  d	¬
«      }
|rt	        d|
j                  › �«       |
j                  d«       	 t        |«      }|
j                  t        j                  dt        |«      «      «       t        |«      }|t        |«      j                  t        j                   «      dz  z  }|j#                  d«      }t$        |   dk(  r�t        j                   d«      }|
j                  t        j                  dt        |«      |z  «      «       |
j                  t        j                  dt        |||z  z
  |z  «      «      «       |
j                  |«       nâ|j'                  «       }t)        j*                  |j#                  ||z
  «      «      }|
j'                  «       t-        |«      z   dz   }|
j                  t        j                  dt        |dz  «      «      «       |
j                  t        j                  dt        ||dz  z
  dz  «      «      «       |
j                  |«       |
j                  |«       �Œ |j/                  «        |
}|j1                  d«       nt        d|	› �«      ‚	 t3        |«      }|j5                  |«       d|v r|d   rnŒ'|j/                  «        i }|D ]  }|d   dk(  sŒ|d   ||d   <   Œ |D ]=  }|d   dk(  sŒt7        |d   |«      \  }}|r||d<   |d   ||d   j9                  «       <   Œ? |�rà|D ]J  }|d   dk(  sŒt	        d«       t	        d|d   › �«       t	        d|d    › �«       t	        d!|d"   › �«        n |D ][  }|d   d#k(  sŒt	        d«       t	        d$|d%   › �«       t	        d&|d'   › �«       t	        d(|d)   › �«       t	        d*|d+   › �«        n |D ]J  }|d   d,k(  sŒt	        d«       t	        d-|d.   › �«       t	        d/|d0   › �«       t	        d1|d2   › �«        n |D ](  }|d   d3k(  sŒt	        d«       t	        d4|d5   › �«        n t	        d«       t	        d6t-        |«      › d7�«       |D �cg c]  }|d   ‘Œ	 }}t;        |«      D ](  }|dk7  sŒ	t	        d8|j=                  |«      › d9|› �«       Œ* t	        d«       d|v r;t	        d:«       |D ]   }t	        d8|› d;t?        ||   «      › d<�«       Œ" t	        d«       |r|D ]
  }||   ||<   Œ |S |S c c}w )=aâ	  
    Read an IDL .sav file.

    Parameters
    ----------
    file_name : str
        Name of the IDL save file.
    idict : dict, optional
        Dictionary in which to insert .sav file variables.
    python_dict : bool, optional
        By default, the object return is not a Python dictionary, but a
        case-insensitive dictionary with item, attribute, and call access
        to variables. To get a standard Python dictionary, set this option
        to True.
    uncompressed_file_name : str, optional
        This option only has an effect for .sav files written with the
        /compress option. If a file name is specified, compressed .sav
        files are uncompressed to this file. Otherwise, readsav will use
        the `tempfile` module to determine a temporary filename
        automatically, and will remove the temporary file upon successfully
        reading it in.
    verbose : bool, optional
        Whether to print out information about the save file, including
        the records read, and available variables.

    Returns
    -------
    idl_dict : AttrDict or dict
        If `python_dict` is set to False (default), this function returns a
        case-insensitive dictionary with item, attribute, and call access
        to variables. If `python_dict` is set to True, this function
        returns a Python dictionary with all variable names in lowercase.
        If `idict` was specified, then variables are written to the
        dictionary specified, and the updated dictionary is returned.

    Examples
    --------
    >>> from os.path import dirname, join as pjoin
    >>> import scipy.io as sio
    >>> from scipy.io import readsav

    Get the filename for an example .sav file from the tests/data directory.

    >>> data_dir = pjoin(dirname(sio.__file__), 'tests', 'data')
    >>> sav_fname = pjoin(data_dir, 'array_float32_1d.sav')

    Load the .sav file contents.

    >>> sav_data = readsav(sav_fname)

    Get keys of the .sav file contents.

    >>> print(sav_data.keys())
    dict_keys(['array1d'])

    Access a content with a key.

    >>> print(sav_data['array1d'])
    [0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
     0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
     0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
     0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
     0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
     0. 0. 0.]

    Úrbr   s   SRzInvalid SIGNATURE: s    s    zIDL Save file is compressedzw+bz.sav)Úsuffixz -> expanding to s   SR r?   r§   r   r   rP   r   zInvalid RECFMT: r»   r¦   r   r¤   r©   r   r¨   r   z2--------------------------------------------------zDate: rª   zUser: r«   zHost: r¬   r   zFormat: r­   zArchitecture: r®   zOperating System: r¯   zIDL Version: r°   r   zAuthor: r±   zTitle: r²   z	ID Code: r³   r    zDescription: rµ   zSuccessfully read z records of which:z - z are of type zAvailable variables:z [ú]) r÷   Úopenr5   rw   ÚprintÚtempfileÚNamedTemporaryFilerƒ   ÚwriterB   r9   Úpackr”   rR   r½   r7   rJ   r0   r¾   r'   ÚzlibÚ
decompressÚlenÚcloser(   rÆ   r‹   ré   rŒ   ÚsetÚcountrì   )Ú	file_nameÚidictÚpython_dictÚuncompressed_file_nameÚverboseÚrecordsÚ	variablesr)   Ú	signatureÚrecfmtÚfoutr¦   rÂ   ÚunknownÚmodvalr*   Ú
rec_stringÚrrð   rñ   rò   rÁ   ÚrectypesÚrtÚvars                            r+   r   r   ¥  sË  € ðL €GÙ‘eØ‰	ä“Jˆ	ô 	ˆY˜Ó€Aô ˜A˜qÓ!€IØ�EÒÜÐ-¨i¨[Ð9Ó:Ð:ô ˜˜AÓ€Fà�ÒÙà	�;Ó	áÜÐ/Ô0á!ÜÐ.°Ó6‰Dä×.Ñ.°fÔ=ˆDáÜÐ% d§i¡i [Ð1Ô2ð 	�
‰
�=Ô!ð ô ! “mˆGØ�J‰J”v—{‘{ 4¬¨W«Ó6Ô7ô # 1“oˆGØ”| A“×-Ñ-¬b¯h©hÓ7¸%Ñ?Ñ?ˆGð —f‘f˜Q“iˆGô ˜GÑ$¨Ò4ÜŸ™ %›�Ø—
‘
œ6Ÿ;™; t¬S°«\¸FÑ-BÓCÔDØ—
‘
Ü—K‘K ¤c¨7°gÀÑ6FÑ+GÈ6Ñ*QÓ&RÓSôð —
‘
˜7Ô#Øð —&‘&“(ˆCô Ÿ™¨¯©°¸±Ó)<Ó=ˆJð —i‘i“k¤C¨
£OÑ3°bÑ8ˆGð �J‰J”v—{‘{ 4¬¨W°u©_Ó)=Ó>Ô?Ø�J‰J”v—{‘{ 4¬¨g¸À5¹Ñ.IÈUÑ-RÓ)SÓTÔUØ�J‰J�wÔØ�J‰J�zÔ"ñI ðN 	
�‰Œ	ð ˆØ	�‰ˆq�	ô Ð*¨6¨(Ð3Ó4Ð4ð Ü˜‹OˆØ�‰�qÔØ�A‰:Ø�ŠxØð ð ‡G�G„Ið €DØò .ˆØˆY‰<˜;Ó&Ø$% f¡IˆD��<‘Ò!ð.ð
 ò 8ˆØˆY‰<˜:Ó%Ü(¨¨6©°DÓ9‰LˆG�SÙØ��&‘	Ø./°©iˆI�a˜	‘l×(Ñ(Ó*Ò+ð8ò ð ò 	ˆFØ�iÑ  KÓ/Ü�f”Ü˜˜v f™~Ð.Ð/Ô0Ü˜˜v f™~Ð.Ð/Ô0Ü˜˜v f™~Ð.Ð/Ô0Ùð	ð ò 	ˆFØ�iÑ  IÓ-Ü�f”Ü˜ ¨Ñ!1Ð 2Ð3Ô4Ü˜ v¨f¡~Ð&6Ð7Ô8ÜÐ*¨6°$©<¨.Ð9Ô:Ü˜ f¨YÑ&7Ð%8Ð9Ô:Ùð	ð ò 	ˆFØ�iÑ Ð$4Ó4Ü�f”Ü˜ ¨Ñ!1Ð 2Ð3Ô4Ü˜  w¡Ð0Ð1Ô2Ü˜	 &¨Ñ"2Ð!3Ð4Ô5Ùð	ð ò 	ˆFØ�iÑ  MÓ1Ü�f”Ü˜ f¨]Ñ&;Ð%<Ð=Ô>Ùð		ô 	ˆfŒÜÐ"¤3 w£< .Ð0BÐCÔDð +2Ö2 Q�A�i“LÐ2ˆÐ2ä�h“-ò 	CˆBØ�\Ó!Ü˜˜HŸN™N¨2Ó.Ð/¨}¸R¸DÐAÕBð	Cô 	ˆfŒà˜Ñ!ÜÐ(Ô)Ø ò <�Ü˜˜C˜5 ¤4¨	°#©Ó#7Ð"8¸Ð:Õ;ð<ä�&ŒMáØò 	(ˆCØ" 3™ˆE�#ŠJð	(àˆàÐùò% 3s   ÓU7)NFNF))Ú__all__r9   Únumpyr7   r  r  r¡   rŽ   r¾   r%   rù   ÚstrÚ__annotations__r,   r3   r5   r<   rB   rF   rH   rK   rN   rR   rV   rY   r]   r_   rk   rr   ru   r}   r’   r“   rÆ   r¿   rÊ   rË   rÝ   ré   r÷   r   ri   r-   r+   ú<module>r/     sO  ðð< ˆ9ˆ+€ã Û Û Û Û ð ØØØØØØØØØØØØØØñ€
ð" "Ø$ØØ$ØØØØ$ØØ!ØØØØ!ñ#€ð   "€ˆT�#�t�)‰_Ó !òòòò
;ò
7ò
<ò
7ò
7ò
=ò
8ò
8ò
9ò
9÷
ñ ô	�Gô 	ò
ò	ò'KòT)òX-ò`iòXò(+ò\3òlò&@ôF-ˆtô -ð` 05Ø16ôpr-   