
    q&f                     *   d dl Z d dlZd dlZddlmZ d Z e       r8 eedd      dk7  r+ej                  j                  ej                        Z
e
Zd Znbej                  j                  ej                  j                   ej                  e                  Z
ej                  j                  e
      Zd Z	 d d	lmZ  eed
      rej$                   nej&                    eedd      dv re	 ddlmZ d Zd Zd Zy# eef$ r d Zd Zd ZY yw xY w)    N   )pycompatc                  t    t        t        d      xs' t        t        d      xs t        j                  d      S )zreturn True if we are a frozen executable.

    The code supports py2exe (most common, Windows only) and tools/freeze
    (portable, not much used).
    frozen	importers__main__)hasattrsys_imp	is_frozen     >/usr/lib/python3/dist-packages/mercurial/utils/resourceutil.py
mainfrozenr      s3     	X 	&3$	&>>*%r   r   
macosx_appc                     | j                  d      }|d   dk(  sJ t        j                  j                  t        g|dd   S )N   .r   s	   mercurial   )splitospathjoin	_rootpath)packagedirss     r   _package_pathr   *   s@    }}T"Aw,&&&ww||I1QR11r   c                 h    t        j                  j                  t        g| j	                  d       S )Nr   )r   r   r   r   r   )r   s    r   r   r   4   s#    ww||I<d(;<<r   )	resourcesfiles)console_exewindows_exe)encodingc                 L   t        t        d      rYt        j                  t        j                  |             j                  t        j                  |            j                  d      S t        j                  t        j                  |       t        j                  |            S )Nr   rb)r	   r   r   r   sysstrjoinpathopenopen_binaryr   names     r   open_resourcer+   a   ss    9g&OOG, (//$/0d ((((//$*? r   c                 z    t        j                  t        j                  |       t	        j
                  |            S N)r   is_resourcer   r%   r"   strfromlocalr)   s     r   r.   r.   o   s.    $$OOG$h&;&;D&A
 	
r   c              #      K   t        j                  t        j                  |             D ]  }t	        j
                  |        y wr-   )r   contentsr   r%   r"   
strtolocal)r   rs     r   r1   r1   t   s:     ##HOOG$<= 	)A%%a((	)s   AAc                 l    t         j                  j                  t        |       |      }t	        |d      S )Nr$   )r   r   r   r   r'   r   r*   r   s      r   r+   r+   K   s(    ww||M'2D9D$r   c                     t         j                  j                  t        |       |      }	 t         j                  j	                  t        j                  |            S # t        t        f$ r Y yw xY w)NF)	r   r   r   r   isfiler   fsdecodeIOErrorOSErrorr5   s      r   r.   r.   O   sU    ww||M'2D9	77>>("3"3D"9::! 		s   1A A/.A/c              #      K   t        j                  t        |             }t        j                  |      D ]  }t        j
                  |        y wr-   )r   r8   r   r   listdirfsencode)r   r   ps      r   r1   r1   W   sD       w!78D! 	'A##A&&	's   AA)r   r   r
    r   r   getattrr   dirnamesysexecutabledatapathr   r   r=   __file__	importlibr   r	   r   r(   ImportErrorr"   r+   r.   r1   AttributeErrorr   r   r   <module>rH      s    	 
 
 <GC40L@wwx556HI2 wwrww/@x/@/@/JKLH)I=@) $ y'" sHd#'EE F6 

)[ 	^$ ' '!'s   86C? ?DD