+
    /ixi                        R .t ^ RIt^ RIt^ RIt^ RIt^ RIt^R^R^R^R^R^R^R^R^	R	^
R^R^R
^R^R^R/t^ R^R^R^R^R^
R^R^R^R^R^R^R^R^R/t/ t	R t
R tR tR tR  tR! tR" tR# tR$ tR% tR& tR' tR( t ! R) R*4      t ! R+ R,]4      tR- tR. tR/ tR0 tR1 tR2 tR3 tR4 t R5 t!R6 t"R7 t# ! R8 R9]$4      t%R;R: lt&R# )<readsavNz>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DESCRIPTIONc                    V P                  4       pV^,          ^ 8w  d'   V P                  V^,           V^,          ,
          4       R# )z+Align to the next 32-bit position in a fileN)tellseek)fposs   & K/var/www/html/photoedit/myenv/lib/python3.14/site-packages/scipy/io/_idl.py	_align_32r   K   s6     &&(C
Qw!|	sQwq !
    c                (    V P                  V4       R# )zSkip `n` bytesNreadr   ns   &&r   _skip_bytesr   T   s    FF1I
r   c                $    V P                  V4      # )zRead the next `n` bytesr   r   s   &&r   _read_bytesr    Z   s    66!9r   c                    \         P                  ! \        P                  ! RV P	                  ^4      R,          4      ^ ,          4      # )zRead a single bytez>B:N   N)npuint8structunpackr   r   s   &r   
_read_byter(   _   s-    88FMM$q	"6q9::r   c                    \         P                  ! \        P                  ! RV P	                  ^4      4      ^ ,          4      # )Read a signed 32-bit integer>lr#   int32r%   r&   r   r'   s   &r   
_read_longr.   d   )    88FMM$q	21566r   c                    \         P                  ! \        P                  ! RV P	                  ^4      R,          4      ^ ,          4      # )zRead a signed 16-bit integerz>h      N)r#   int16r%   r&   r   r'   s   &r   _read_int16r5   i   s-    88FMM$q	#7:;;r   c                    \         P                  ! \        P                  ! RV P	                  ^4      4      ^ ,          4      # )r*   z>ir,   r'   s   &r   _read_int32r7   n   r/   r   c                    \         P                  ! \        P                  ! RV P	                  ^4      4      ^ ,          4      # )zRead a signed 64-bit integerz>q)r#   int64r%   r&   r   r'   s   &r   _read_int64r:   s   r/   r   c                    \         P                  ! \        P                  ! RV P	                  ^4      R,          4      ^ ,          4      # )zRead an unsigned 16-bit integerz>Hr1   )r#   uint16r%   r&   r   r'   s   &r   _read_uint16r=   x   s-    99V]]438;<<r   c                    \         P                  ! \        P                  ! RV P	                  ^4      4      ^ ,          4      # )zRead an unsigned 32-bit integer>I)r#   uint32r%   r&   r   r'   s   &r   _read_uint32rA   }   )    99V]]43A677r   c                    \         P                  ! \        P                  ! RV P	                  ^4      4      ^ ,          4      # )zRead an unsigned 64-bit integerz>Q)r#   uint64r%   r&   r   r'   s   &r   _read_uint64rE      rB   r   c                    \         P                  ! \        P                  ! RV P	                  ^4      4      ^ ,          4      # )zRead a 32-bit floatz>f)r#   float32r%   r&   r   r'   s   &r   _read_float32rH      )    ::fmmD!&&)4Q788r   c                    \         P                  ! \        P                  ! RV P	                  ^4      4      ^ ,          4      # )zRead a 64-bit floatz>d)r#   float64r%   r&   r   r'   s   &r   _read_float64rL      rI   r   c                   *   a  ] tR t^t o RtR tRtV tR# )PointerzClass used to define pointersc                    Wn         R # Nindex)selfrR   s   &&r   __init__Pointer.__init__   s
    
r   rQ   N)__name__
__module____qualname____firstlineno____doc__rT   __static_attributes____classdictcell__)__classdict__s   @r   rN   rN      s     ' r   rN   c                       ] tR t^tRtRtR# )ObjectPointerz$Class used to define object pointers N)rV   rW   rX   rY   rZ   r[   r`   r   r   r_   r_      s    .r   r_   c                |    \        V 4      pV^ 8  d(   \        W4      P                  R4      p\        V 4       V# RpV# )zRead a stringlatin1 )r.   r    decoder   )r   lengthcharss   &  r   _read_stringrg      sA    ]FzA&--h7! L Lr   c                t    \        V 4      pV^ 8  d$   \        V 4      p\        W4      p\        V 4       V# RpV# )z.Read a data string (length is specified twice)rc   )r.   r    r   )r   re   string_datas   &  r   _read_string_datarj      sA    ]FzA!!,!  r   c                N   V^8X  d'   \        V 4      ^8w  d   \        R4      h\        V 4      # V^8X  d   \        V 4      # V^8X  d   \        V 4      # V^8X  d   \	        V 4      # V^8X  d   \        V 4      # V^8X  d:   \	        V 4      p\	        V 4      p\        P                  ! W#R,          ,           4      # V^8X  d   \        V 4      # V^8X  d   \        R4      hV^	8X  d:   \        V 4      p\        V 4      p\        P                  ! W#R,          ,           4      # V^
8X  d   \        \        V 4      4      # V^8X  d   \        \        V 4      4      # V^8X  d   \        V 4      # V^8X  d   \        V 4      # V^8X  d   \        V 4      # V^8X  d   \        V 4      # \        RV R24      h)z*Read a variable with a specified data typez*Error occurred while reading byte variabley              ?z'Should not be here - please report thiszUnknown IDL type: z - please report this)r7   	Exceptionr(   r5   rH   rL   r#   	complex64rj   
complex128rN   r_   r=   rA   r:   rE   )r   dtyperealimags   &&  r   
_read_datarr      s~   zq>QHII!}	!1~	!1~	!Q	!Q	!QQ||D"9,--	! ##	!ABB	!QQ}}T2I-..	"{1~&&	"[^,,	"A	"A	"1~	"A,UG3HIJJr   c           	     `   VR,          pVR,          p. pV F  pVR,          '       g   VR,          '       dB   VP                  VR,          P                  4       VR,          3\        P                  34       Kb  VR,          \        9   dF   VP                  VR,          P                  4       VR,          3\        VR,          ,          34       K  \        RVR,           R24      h	  \        P                  P                  V3VR	7      p\        V4       F  pV F  pVR,          pVR,          '       dJ   \        V VR
,          VR,          ,          VR,          VR,          ,          4      WvR,          ,          V&   Kd  VR,          '       d4   \        WVR
,          VR,          ,          4      WvR,          ,          V&   K  \        W4      WvR,          ,          V&   K  	  K  	  VR,          ^8  d>   VR,          R\        VR,          4       p	V	P                  4        VP                  V	4      pV# )zu
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ro   arrtablestructtablendimsdimsN)appendlowerr#   object_
DTYPE_DICTrl   recrecarrayrange_read_structure_read_arrayrr   intreversereshape)
r   
array_descstruct_descnrowscolumnsro   colrv   ir   s
   &&&       r   r   r      s    {#E*%GE{s7||LL3v;,,.F<bjjIJ:*,s6{002CK@$.s:$?A B  .Z0AAQ RSS  	7I5\C
OE;,;A&1*&=c&k&J&1-&@V&M-O	f+&q) W,7&1*&=c&k&J-L	f+&q) -7q,@	f+&q)   'Q&!";3z'':#;<%%d+	r   c                   VR
9   dr   V^8X  d1   \        V 4      pW2R,          8w  d   \        P                  ! R^R7       \        P                  ! V P                  VR,          4      \        V,          R7      pMVR9   dI   \        P                  ! V P                  VR,          ^,          4      \        V,          R7      R,          pM_. p\        VR,          4       F!  pTp\        W4      pVP                  V4       K#  	  \        P                  ! V\        P                  R7      pVR,          ^8  d>   VR,          R	\        VR,          4       pVP                  4        VP                  V4      p\        V 4       V# )zT
Read an array of type `typecode`, with the array descriptor given as
`array_desc`.
nbytesz.Not able to verify number of bytes from header
stacklevelr{   :r"   Nr2   rt   r~   r   N)	r"      r3         	            )r2      )r7   warningswarnr#   
frombufferr   r   r   rr   r   rw   r   r   r   r   r   )	r   ry   r   r   rw   r   ro   datar   s	   &&&      r   r   r     s>    11q= ^FH--N)*, affZ%9:$.x$8: 
W	 affZ%9!%;<$.x$8::>@ z+./AEa'DLL 0
 bjj1 'Q&!";3z'':#;<d# aLLr   c                   R\        V 4      /p\        V 4      pV\        V 4      P                  \        P                  4      R1,          ,          p\        V ^4       VR,          \        9  d   \        RVR,           24      h\        VR,          ,          VR&   VR,          R29   Ed	   VR,          R8X  d   \        V 4      VR&   M\        V 4      VR&   \        V ^4       \        V 4      pVR,          ^ 8X  d'   W P                  4       8X  d   RVR&   EM\        R	4      h\        V 4      pV^8w  d   \        R
4      hVR,          '       d    \        WR,          VR,          4      VR&   EMgVR,          '       d    \        WR,          VR,          4      VR&   EM9VR,          p\        W4      VR&   EM VR,          R8X  d9   \        V R34       \        V 4      VR&   \        V 4      VR&   \        V 4      VR&   EMVR,          R8X  d;   \        V 4      VR&   \        V 4      VR&   \        V 4      VR&   \        V 4      VR&   EMVR,          R8X  d-   \        V 4      VR&   \        V 4      VR&   \        V 4      VR&   EMXVR,          R8X  d   \        V 4      VR&   EM:VR,          R8X  d   \        V 4      VR&   EMVR,          R 8X  d>   \        V 4      VR!&   \!        VR!,          4       Uu. uF  p\        V 4      NK  	  upVR"&   MVR,          R#8X  dL   \        V 4      VR$&   \        V 4      VR%&   \!        VR$,          4       Uu. uF  p\        V 4      NK  	  upVR&&   MxVR,          R'8X  d   R(VR)&   MdVR,          R*8X  d   \"        P$                  ! R+^R,7       M=VR,          R-8X  d   \"        P$                  ! R.^R,7       M\        R/VR,           R024      hV P'                  V4       V# u upi u upi )4z!Function to read in a full recordrectypezUnknown RECTYPE: r   varname
heap_indexry   Nr   zUnexpected type code: 0zVARSTART is not 7rv   r   r   rw   r   dateuserhostr   formatarchosreleaseIDENTIFICATONauthortitleidcoder   noticer   descriptionr   nvaluesindicesCOMMONBLOCKnvarsrx   varnamesr   TendUNKNOWNzSkipping UNKNOWN recordr   r   zSkipping SYSTEM_VARIABLE recordzrecord['rectype']=rz           )r   r   i   )r.   rA   astyper#   r9   r   RECTYPE_DICTrl   rg   _read_typedescr   
ValueErrorr   r   rr   rj   r   r   r   r   )r   recordnextrecrectypedescvarstartro   _s   &      r   _read_recordr   ;  s    A'F1oG|A%%bhh/%77G1i,+F9,=+>?@@$VI%67F9i55)
* ,QF9#-a=F< 1$Q'z"a'&&("!%v !:;; "!}H1} 344;''!04M4?4N"PvW%%!,QJ0G0;L0I"Kv $J/!+A!5v			k	)Au%av%av%av			i	'%a=x%av#At(Oy			o	-'?x&q/w'?x			h	&'?x			m	+ 1! 4}			m	+&qMy49&:K4LM4LqZ]4LMy			m	+$Q-w%av7<VG_7MN7M!l1o7MNz			l	*u			i	'/A>			/	/7AF ,VI->,??OPQQFF7OM5 N Os   $O#=O(c                b   R\        V 4      R\        V 4      /pVR,          ^,          ^8X  d   \        R4      hVR,          ^,          ^8H  VR&   VR,          ^ ,          ^ 8H  VR&   VR,          '       d   \        V 4      VR&   \        V 4      VR&   V# VR,          '       d   \        V 4      VR&   V# )z%Function to read in a type descriptorry   varflagsz System variables not implementedrw   rv   r   r   )r.   rl   _read_arraydesc_read_structdesc)r   typedescs   & r   r   r     s     JqM:z!}EH
a1$:;; ,q0A5HW$Z025;H[!0!3"21"5 O 
'		!0!3Or   c                   R\        V 4      /pVR,          ^8X  d   \        V ^4       \        V 4      VR&   \        V 4      VR&   \        V 4      VR&   \        V ^4       \        V 4      VR&   \        VR,          4       Uu. uF  p\        V 4      NK  	  upVR&   V# VR,          ^8X  d   \        P                  ! R^R7       \        V ^4       \        V 4      VR&   \        V 4      VR&   \        V 4      VR&   \        V ^4       ^VR&   . VR&   \        VR,          4       FA  p\        V 4      pV^ 8w  d   \        R	4      hVR,          P                  \        V 4      4       KC  	  V# \        R
VR,           24      hu upi )z'Function to read in an array descriptorarrstartr   rt   r~   nmaxr   z$Using experimental 64-bit array readr   zExpected a zero in ARRAY_DESCzUnknown ARRSTART: )r.   r   r   r   r   rE   rl   r   )r   	arraydescr   dvs   &    r   r   r     s|    Z]+I!Aq(m	(!+A	+']	'Aq&qM	&49)F:K4LM4LqZ]4LM	&4 1 
:	"	$<KAq*1o	(!-a	+']	'Aq	&	&y()A1AAv ?@@f$$Z]3	 *  ,Yz-B,CDEE1 Ns    E<c                   / p\        V 4      pV^	8w  d   \        R4      h\        V 4      VR&   \        V 4      p\        V 4      VR&   \        V 4      VR&   V^,          VR&   V^,          VR&   V^,          VR&   VR,          '       Egq   \        VR,          4       Uu. uF  p\	        V 4      NK  	  upVR&   VR,           F  p\        V 4      VR&   K  	  VR,           Uu/ uF'  pVR	,          '       g   K  VR,          \        V 4      bK)  	  upVR
&   VR,           Uu/ uF'  pVR,          '       g   K  VR,          \        V 4      bK)  	  upVR&   VR,          '       g   VR,          '       dy   \        V 4      VR&   \        V 4      VR&   \        VR,          4       Uu. uF  p\        V 4      NK  	  upVR&   \        VR,          4       Uu. uF  p\        V 4      NK  	  upVR&   V\        VR,          &   V# VR,          \        9  d   \        R4      h\        VR,          ,          pV# u upi u upi u upi u upi u upi )z*Function to read in a structure descriptorzSTRUCTSTART should be 9rx   ntagsr   predefinheritsis_superru   rw   r|   rv   r}   	classnamensupclassessupclassnamessupclasstablez"PREDEF=1 but can't find definition)r.   rl   rg   r   _read_tagdescr   r   STRUCT_DICT)r   
structdescstructstartr   r   tags   &     r   r   r     sg    JQ-Ka122%aJv]F$Q-Jw%a=Jx!A:Jx#aZJz#aZJzh ,1G1D+E"G+Ea #0"2+E"G
: j))C&q/CK * .8
-C"3-Cc%(\\ #B#f+q/A"A-C"3
:
 1;:0F%:0F(+K(8(8 &FS[2B12E%E0F%:
=! j!!Z
%;%;&21oJ{#(21J}%).z-/H)I+K)IAQ)I+KJ' .3:m3L-M+O-M #-M+OJ' +5Jv&'  f[0@AA F!34
?"G"3%:+K+Os*   H, H16H1H64H6H;I c                    R\        V 4      /pVR,          R8X  d   \        V 4      VR&   \        V 4      VR&   \        V 4      pV^,          ^8H  VR&   V^ ,          ^ 8H  VR&   VR,          \        9   VR&   V# )z$Function to read in a tag descriptoroffsetry   rw   rv   scalar)r.   rE   r   )r   tagdesctagflagss   &  r   r   r     s     A'GxB(O$Q-GJ!}H!|q(GG#b=B.GK
+z9GH Nr   c                    \        V \        4      '       d   \        V \        4      '       dW   V P                  ^ 8X  d   Rp K+  V P                  V9   d   WP                  ,          p KP  \        P                  ! R^R7       Rp Kl  \        W4      w  r#V'       d   Tp RV 3# \        V \        P                  P                  4      '       d4   \        V 4       F   w  rE\        WQ4      w  r#V'       g   K  W0V&   K"  	  RV 3# \        V \        P                  4      '       d4   \        V 4       F   w  rg\        Wq4      w  r#V'       g   K  W0V&   K"  	  RV 3# \        V \        P                  4      '       d   V P                  P                  \        P                  J dW   \        V P                   4       F=  p\        V P#                  V4      V4      w  r#V'       g   K*  W0P%                  R4      V&   K?  	  RV 3# RV 3# )    NzNVariable referenced by pointer not found in heap: variable will be set to Noner   TFr   )
isinstancerN   rR   r   r   _replace_heapr#   r   r   	enumerater   ndarrayro   typer   r   sizeitemr   )variableheapreplacenewirr   ivvalues   &&      r   r   r   2  s   (G$$7++~~">>T)#NN3HMM #J-.0  $H$X4HX~	Hbffoo	.	. $H-JB(6LGw" . h	Hbii	(	( #8,IB(5LGw" - h	Hbjj	)	) >>"**,HMM*,X]]2->E7/2$$R(, + h hr   c                   Z   a a ] tR tRt oRtRR ltV 3R ltV 3R ltR t]t	]t
RtVtV ;t# )	AttrDictiu  a  
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                <    Vf   / p\         P                  W4       R # rP   )dictrT   )rS   inits   &&r   rT   AttrDict.__init__  s    <Dd!r   c                >   < \         SV `  VP                  4       4      # rP   )super__getitem__r   )rS   rx   	__class__s   &&r   r   AttrDict.__getitem__  s    w"4::<00r   c                @   < \         SV `  VP                  4       V4      # rP   )r   __setitem__r   )rS   keyr   r   s   &&&r   r   AttrDict.__setitem__  s    w"399;66r   c                |     V P                  V4      #   \         d    \        R \        T 4       RT R 24      Rhi ; i)'z' object has no attribute 'N)r   KeyErrorAttributeErrorr   )rS   rx   s   &&r   __getattr__AttrDict.__getattr__  sS    	N##D)) 	N DJ<:4&BDIMN	Ns    (;r`   rP   )rV   rW   rX   rY   rZ   rT   r   r   r  __setattr____call__r[   r\   __classcell__)r   r]   s   @@r   r   r   u  s-     2"
17N KHHr   r   c           
        . pV'       g	   V'       d   / pM
\        4       p\        V R4      p\        V^4      pVR8w  d   \        RV 24      h\        V^4      p	V	R8X  d   EMV	R8X  Ed   V'       d   \	        R4       V'       d   \        VR4      p
M\
        P                  ! RR	7      p
V'       d   \	        R
V
P                   24       V
P                  R4        \        V4      pV
P                  \        P                  ! R\        V4      4      4       \        V4      pV\        V4      P                  \        P                   4      R8,          ,          pVP#                  ^4      p\$        V,          R8X  d   \        P                   ! R84      pV
P                  \        P                  ! R\        V4      V,          4      4       V
P                  \        P                  ! R\        WV,          ,
          V,          4      4      4       V
P                  V4       EM VP'                  4       p\(        P*                  ! VP#                  W,
          4      4      pV
P'                  4       \-        V4      ,           ^,           pV
P                  \        P                  ! R\        VR8,          4      4      4       V
P                  \        P                  ! R\        WR8,          ,
          R8,          4      4      4       V
P                  V4       V
P                  V4       EKA  VP/                  4        T
pVP1                  ^4       M\        RV	 24      h \3        V4      pVP5                  V4       RV9   g   K&  VR,          '       g   K7   TP/                  4        / pT F&  pTR,          R8X  g   K  TR,          TTR,          &   K(  	  T FW  pTR,          R8X  g   K  \7        TR,          T4      w  ppT'       d   TTR&   TR,          TTR,          P9                  4       &   KY  	  T'       EdA   T F]  pTR,          R8X  g   K  \	        R94       \	        RTR,           24       \	        RTR,           24       \	        RTR,           24        M	  T Fr  pTR,          R8X  g   K  \	        R94       \	        RTR ,           24       \	        R!TR",           24       \	        R#TR$,           24       \	        R%TR&,           24        M	  T F]  pTR,          R'8X  g   K  \	        R94       \	        R(TR),           24       \	        R*TR+,           24       \	        R,TR-,           24        M	  T F3  pTR,          R.8X  g   K  \	        R94       \	        R/TR0,           24        M	  \	        R94       \	        R1\-        T4       R224       T Uu. uF  pTR,          NK  	  pp\;        T4       F,  pTR8w  g   K  \	        R3TP=                  T4       R4T 24       K.  	  \	        R94       RT9   dB   \	        R54       T F%  p\	        R3T R6\?        TT,          4       R724       K'  	  \	        R94       T'       d   T F  pTT,          TT&   K  	  T# T# u upi ):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.]

rbs   SRzInvalid SIGNATURE: s    s    zIDL Save file is compressedzw+bz.sav)suffixz -> expanding to s   SR r+   r   r?   zInvalid RECFMT: r   r   r   r   r   r   r   r   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   z2--------------------------------------------------) r   openr    rl   printtempfileNamedTemporaryFilerx   writer.   r%   packr   rA   r   r#   r9   r   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 Aq!IE-i[9:: AF	;	/0!.6D..f=D%dii[12 	

=!  !mGJJv{{4W67 #1oG|A--bhh7%??G ffQiG G$4%

6;;tS\F-BCD

KKc76F+G6*Q&RS 

7# &&(C )<=J iikC
O3b8G JJv{{4Wu_)=>?JJv{{4g5.IU-R)STUJJwJJz" 	
	 	q	 *6(344 OqA:xx GGI DY<;&$%fID<! 
 Y<:%(6D9LGS&	./iIa	l((*+  w Fi K/fvf~./0vf~./0vf~./0  Fi I-f!1 234vf~&678*6$<.9:fY&7%89:  Fi O3f!1 234w012	&"2!345  Fi M1ff]&;%<=>	  	f"3w<.0BCD +22'QAiLL'2h-B\!HNN2./}RDAB   	f!() C54	##7"8:; !&MC"3E#J % 3s   Z
)NFNF)'__all__r%   numpyr#   r  r  r   r   r   r   r   r   r    r(   r.   r5   r7   r:   r=   rA   rE   rH   rL   rN   r_   rg   rj   rr   r   r   r   r   r   r   r   r   r   r   r   r`   r   r   <module>r/     su  < +      $$%%%%
" >$:$<KJ$IMKKHM#  
;
7
<
7
7
=
8
8
9
9
 	G 	
	'KT)X-`iX(+\3l&@F-t -`pr   