§
    öÛg€  ã                   ó<   — d Z ddlmZ efd„Zd„ Zd„ Zd„ Zefd„ZdS )	z6Parse pgpass files and subsequently lookup a password.é    )Úexistsc                 ó¬  — |                       ¦   «         } | sd S g }d}|                      d¦  «        D ]�}|r0|d         d d…         dz   |                     dd¦  «        z   |d<   d}n)|                     |                     dd¦  «        ¦  «          ||¦  «         ||                     d¦  «        ¦  «        z
  dz  dk    rd}Œ‘ ||¦  «        d	k    rd S |S )
NFú:éÿÿÿÿz\\ú\é   é   Té   )ÚstripÚsplitÚreplaceÚappendÚrstrip)ÚlineÚlenÚrÚcontinuationÚxs        úK/granary/edev/quantum/lib/python3.11/site-packages/postgresql/pgpassfile.pyr   r      sñ   € Ø�
Š
‰Œ€Øð Ø	ˆØ€Ø€Ø
�*Š*�S‰/Œ/ð ð €QØð 	%ð ˆRŒ5��"�Œ:˜Ñ˜aŸiši¨°Ñ5Ô5Ñ5€1€R�5Ø€<€<ð ‡8‚8ˆA�IŠI�f˜dÑ#Ô#Ñ$Ô$Ð$à	€cˆ!�f„fˆsˆs�1—8’8˜D‘>”>Ñ"Ô"Ñ" aÑ'¨1Ò,Ð,Ø€<øØ€Cˆ�F„Fˆa‚K€Kà	ˆØ	€ó    c                 ó.   — d„ d„ | D ¦   «         D ¦   «         S )zMproduce a list of [(word, (host,port,dbname,user))] from a pgpass file objectc                 ó6   — g | ]}|¯|d          |dd…         f‘ŒS )r   r   é   © )Ú.0r   s     r   ú
<listcomp>zparse.<locals>.<listcomp>"   s=   € ð 	ð 	ð 	Ø¸Qð	Ø€R„5ˆ!ˆAˆaˆCŒ&€/ð	ð 	ð 	r   c                 ó,   — g | ]}t          |¦  «        ‘ŒS r   )r   )r   r   s     r   r   zparse.<locals>.<listcomp>#   s   € Ð9Ð9Ð9¨D�E $™KœKÐ9Ð9Ð9r   r   )Údatas    r   Úparser       s1   € ð	ð 	Ø9Ð9°DÐ9Ñ9Ô9ð	ñ 	ô 	ð r   c                 ó–   — |\  }}}}| D ]>\  }\  }}}	}
|
dk    s|
|k    r(|dk    s||k    r|dk    s||k    r|	dk    s|	|k    r|c S Œ?dS )zv
	lookup_password(words, (user, host, port, database)) -> password

	Where 'words' is the output from pgpass.parse()
	Ú*Nr   )ÚwordsÚuhpdÚuserÚhostÚportÚdatabaseÚwordÚw_hostÚw_portÚ
w_databaseÚw_users              r   Úlookup_passwordr-   &   s‹   € ð #Ñ€€tˆT�8Ø38ð ð Ñ/€TÑ/ˆF�F˜J¨Ø�‚m€m�v ’~�~Ø
ˆc‚M€M�V˜t’^�^Ø
ˆc‚M€M�V˜t’^�^Ø�ÒÐ˜
 hÒ.Ð.Ø
€;€;€;øðð r   c                 óŽ   — t          | ¦  «        5 }t          t          |¦  «        |¦  «        cddd¦  «         S # 1 swxY w Y   dS )z+like lookup_password, but takes a file pathN)Úopenr-   r   )ÚpathÚtÚfs      r   Úlookup_password_filer3   4   s‚   € å
ˆ4�j„jð &�AÝ	�˜q™œ 1Ñ	%Ô	%ð&ð &ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &ð &ð &s   �:º>Á>c                 ó  —  ||¦  «        rtt          |t          | d         ¦  «        t          | d         ¦  «        t          | d         ¦  «        t          |                      d| d         ¦  «        ¦  «        f¦  «        S d S )Nr$   r%   r&   r'   )r3   ÚstrÚget)ÚdÚpassfiler   s      r   Úlookup_pgpassr9   9   s{   € ð €Fˆ8ÑÔð Ý	˜hÝ€qˆ„y�>„>•3�q˜”y‘>”>¥3 q¨¤y¡>¤>Ý€q‡u‚uˆZ˜˜6œÑ#Ô#Ñ$Ô$ð)ñ 
ô 
ð ðð r   N)	Ú__doc__Úos.pathr   r   r   r   r-   r3   r9   r   r   r   ú<module>r<      s†   ðð 9Ð 8Ø Ð Ð Ð Ð Ð àð 
ð 
ð 
ð 
ð2ð ð ðð ð ð&ð &ð &ð
 )/ð ð ð ð ð ð r   