ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     
    ֦i0                         	 d Z ddlZddlmZmZ ddlmZ ddlmZm	Z	 ddl
mZmZmZ  e	e      dz  Zddlm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y)z%Michael Felt <aixtools@felt.demon.nl>    N)environpath)
executable)c_void_psizeof)PopenPIPEDEVNULL   )maxsizec                 :    fd}t        t        |       |      S )Nc                     | j                        }g }	 |r,|j                  dt        |j                                      |r,|xs t
        gS # t        $ r Y w xY w)Nr   )splitinsertintpop
ValueErrorr   )libnamepartsnumsseps      $/usr/lib64/python3.12/ctypes/_aix.py_num_versionz#_last_version.<locals>._num_version>   s_    c"	As599;/0   y   		s   -A 	AA)key)maxreversed)libnamesr   r   s    ` r   _last_versionr   =   s    	! x!|44    c                     d }| j                   D ]-  }|j                  d      r|}d|v s|j                  d      c S  y )N)/z./z../INDEX
)stdout
startswithrstrip)p	ld_headerlines      r   get_ld_headerr*   J   sD    I??-.I_##D))	 
 r   c                     g }| j                   D ],  }t        j                  d|      r|j                  |       + |S  |S )Nz[0-9])r$   rematchappend)r'   infor)   s      r   get_ld_header_infor0   T   sB     D88GT"KK K  Kr   c                    	 g }t        ddt         d| gdt        t              }t	        |      x}r*|j                  |t        |      f       t	        |      x}r*|j                  j                          |j                          |S )Nz/usr/bin/dumpz-Xz-HT)universal_newlinesr$   stderr)
r   AIX_ABIr	   r
   r*   r.   r0   r$   closewait)fileldr_headersr'   r(   s       r   get_ld_headersr9   a   s     K"WId;W	>A %Q'
')
'I'9!'<=> %Q'
')
'HHNNFFHr   c                 p    	 g }| D ]-  \  }}d|v s|j                  ||j                  d      d        / |S )N[)r.   index)
ld_headerssharedr)   _s       r   
get_sharedrA   u   sG     F	q $;MM$tzz#r23   Mr   c                      	 d  d t        t        d  fd|D                    }t        |      dk(  r|d   j                  d      S y )Nz\[(z)\]c              3   J   K   | ]  }t        j                  |        y w)N)r,   search).0r)   exprs     r   	<genexpr>z get_one_match.<locals>.<genexpr>   s      I544!65s    #   r   )listfilterlengroup)rF   linesmatchess   `  r   get_one_matchrO      sS    
 $sD6$ I5 IJKG
7|qqz""r   c                     	 t         dk(  rd}t        ||       }|r|S y dD ]'  }t        t        j                  |      |       }|s%|c S  y )N@   zshr4?_?64\.o)zshr.ozshr4.o)r4   rO   r,   escape)membersrF   membernames       r   
get_legacyrV      s[     "}tW-M 	 (D"299T?G<F ( r   c                     	 d|  dd|  dg}|D ]T  }g }|D ];  }t        j                  ||      }|s|j                  |j                  d             = |sHt	        |d      c S  y )Nlibz\.so\.[0-9]+[0-9.]*z_?64\.so\.[0-9]+[0-9.]*r   .)r,   rD   r.   rL   r   )rU   rS   exprsrF   versionsr)   ms          r   get_versionr]      s    2 D6,-tf+,.ED		$%A
+   3//  r   c                     	 d|  d}t        ||      }|r|S t        dk(  rd|  d}t        ||      }|r|S t        | |      }|r|S t        |      S )NrX   z\.sorQ   z64\.so)rO   r4   r]   rV   )rU   rS   rF   rT   s       r   
get_memberr_      su     $tD4)F	BdV6"tW- w'F'""r   c                  >   	 t        j                  d      } | t        j                  d      } | g } n| j                  d      } t        t              }|D ]E  \  }}|D ];  }|j                         d   }d|v s| j                   |j                  d             = G | S )NLD_LIBRARY_PATHLIBPATH:rH   r!   )r   getr   r9   r   extend)libpathsobjectsr@   rM   r)   r   s         r   get_libpathsrh      s     {{,-H;;y)>>#&Z(G
ED::<?Dd{


30	   Or   c                     	 | D ]v  }|dk(  r	d| d}t        j                  ||      }t        j                  |      s;t        t	        |            }t        t        j                  |      |      }|||fc S  y y)N/librX   z.a)NN)r   joinexistsrA   r9   r_   r,   rR   )pathsrU   dirbasearchiverS   rT   s          r   find_sharedrq     s     &= TF"~))C&;;w !89G		$9F!f~%#  r   c                     	 t               }t        ||       \  }}|| d| dS d|  d}|D ]7  }|dk(  r	t        j                  ||      }t        j                  |      s5|c S  y )N()rX   z.sorj   )rh   rq   r   rk   rl   )rU   rf   ro   rT   sonamern   shlibs          r   find_libraryrw     s      ~H 40NT6q"" 4&_F&=		#v&;;uM  r   )
__author__r,   osr   r   sysr   ctypesr   r   
subprocessr   r	   r
   r4   r   r   r*   r0   r9   rA   rO   rV   r]   r_   rh   rq   rw    r   r   <module>r~      sw   -\ 5
 	   # + + 
Q
 5( .$L#842(r   