+
    i0  c                   s    R t ^ RIt^ RIHtHt ^ RIHt ^ RIHtH	t	 ^ RI
HtHtHt ]	! ]4      ^,          t^ RIH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# )z%Michael Felt <aixtools@felt.demon.nl>N)environpath)
executable)c_void_psizeof)PopenPIPEDEVNULL)maxsizec                 s<   a V3R  lp\        \        V 4      VR7      # )c                 s   < V P                  S4      p. p V'       d,   VP                  ^ \        VP                  4       4      4       K3   T;'       g    \
        .#   \         d     Li ; i)i    )splitZinsertZintZpopZ
ValueErrorr   )ZlibnameZpartsZnumsseps   &  $/usr/lib64/python3.14/ctypes/_aix.py_num_versionZ#_last_version.<locals>._num_version>   sb    c"	As599;/0    y   		s   A +A A)(A))Zkey)ZmaxZreversed)Zlibnamesr
   r   s   &f r   _last_versionr   =   s    	! x!|44    c                 s    R pV P                    F8  pVP                  R4      '       d   TpK  RV9   g   K'  VP                  R4      u # 	  R # )NZINDEXZ
)/z./z../)stdoutZ
startswithZrstrip)p	ld_headerline   &  r   get_ld_headerr   J   sG    I??-..I_##D))	 
 r   c                 s    . pV P                    F4  p\        P                  ! R V4      '       d   VP                  V4       K3   V# 	  V# )z[0-9])r   reZmatchappend)r   Zinfor   r   r   get_ld_header_infor   T   sE     D88GT""KK K  Kr   c                 s   . p\        R R\         2RV .R\        \        R7      p\	        V4      ;p'       d   VP                  V\        V4      34       K1  VP                  P                  4        VP                  4        V# )z/usr/bin/dumpz-Xz-HT)Zuniversal_newlinesr   Zstderr)
r   AIX_ABIr   r   r   r   r   r   ZcloseZwait)ZfileZldr_headersr   r      &   r   get_ld_headersr   a   ss     K"WId;W	>A %Q'
')
'I'9!'<=>HHNNFFHr   c                 sv    . pV  F0  w  r#R V9   g   K  VP                  W"P                  R 4      R 4       K2  	  V# )Z[i)r   Zindex)Z
ld_headersZsharedr   _r   r   
get_sharedr   u   s>     F	 $;MM$zz#r23   Mr   c                 s   a  R S  R2o \        \        RV 3R lV 4       4      4      p\        V4      ^8X  d   V^ ,          P                  ^4      # R# )z\[(z)\]Nc              3   sR   <"   T F  p\         P                  ! SV4      x  K  	  R # 5i)N)r   search)Z.0r   exprs   & r   Z	<genexpr>Z get_one_match.<locals>.<genexpr>   s      I544!6!65s   $')ZlistZfilterZlengroup)r   linesZmatchess   f& r   get_one_matchr"      sN     $sD6$ I5 IJKG
7|qqz""r   c                 s    \         ^@8X  d   Rp\        W4      pV'       d   V#  R# R F/  p\        \        P                  ! V4      V 4      pV'       g   K-  Vu # 	  R# )i@   zshr4?_?64\.oN)zshr.ozshr4.o)r   r"   r   escape)membersr   membernamer   r   
get_legacyr'      s[     "}t-M  	 (D"299T?G<Fv ( r   c                 s    R V  R2R V  R2.pV Fd  p. pV FC  p\         P                  ! W54      pV'       g   K#  VP                  VP                  ^ 4      4       KE  	  V'       g   KX  \	        VR4      u # 	  R# )libz\.so\.[0-9]+[0-9.]*z_?64\.so\.[0-9]+[0-9.]*Z.N)r   r   r   r    r   )r&   r$   Zexprsr   Zversionsr   Zm   &&     r   get_versionr*      s~    4 D6,-tf+,.ED		$%Aq
+  8 3//  r   c                 s    R V  R2p\        W!4      pV'       d   V# \        ^@8X  d   R V  R2p\        W!4      pV'       d   V# \        W4      pV'       d   V# \        V4      # )r(   z\.soz64\.so)r"   r   r*   r'   )r&   r$   r   r%   s   &&  r   
get_memberr+      sj     $tD4)F	BdV6"t- 'F'""r   c                  s^   \         P                  ! R 4      p V f   \         P                  ! R4      p V f   . p MV P                  R4      p \        \        4      pV FO  w  r#V FD  pVP                  4       ^,          pRV9   g   K#  V P                  VP                  ! R4      4       KF  	  KQ  	  V # )ZLD_LIBRARY_PATHZLIBPATHZ:r   )r    Zgetr	   r   r   Zextend)libpathsZobjectsr   r!   r   r   s         r   get_libpathsr-      s     {{,-H;;y)>>#&Z(G
D::<?Dd{

30	   Or   c                 s   V  F  pVR 8X  d   K  RV R2p\         P                  ! W#4      p\         P                  ! V4      '       g   KF  \        \	        V4      4      p\        \        P                  ! V4      V4      pVe   W63u # Ru # 	  R# )/libr(   z.a)NN)r   joinexistsr   r   r+   r   r#   )Zpathsr&   dirbaseZarchiver$   r%   r)   r   find_sharedr3     s     &= TF"~))C&;;w !89G		$9F!~%##  r   c                 s    \        4       p\        W4      w  r#Ve	   V RV R2# RV  R2pV FB  pVR8X  d   K  \        P                  ! WT4      p\        P                  ! V4      '       g   K@  Vu # 	  R # )NZ(Z)r(   z.sor.   )r-   r3   r   r/   r0   )r&   r,   r2   r%   Zsonamer1   Zshlibs   &      r   find_libraryr4     sz    " ~H 0NTq"" 4&_F&=		#&;;uM  r   )Z
__author__r   Zosr    r   Zsysr   Zctypesr   r   Z
subprocessr   r   r   r   r   r   r   r   r   r   r"   r'   r*   r+   r-   r3   r4   ) r   r   <module>r5      sr   ^ 5
 	   # + + 
Q
 5( .$L#842(r   