Ë
    ¾�jê!  ã                   ó¦  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlZd dlZd dlZd dlZd dlZd dlmZ d dlmZ dZdej(                  eej,                  f   dedefd„Zd	edefd
„Zdedefd„Zd„ Zdej(                  eef   fd„Zd„ Z d„ Z!defd„Z"dd„Z#defd„Z$ G d„ d«      Z% G d„ d«      Z& G d„ d«      Z'dedefd„Z(y)é    N)Úwhich)ÚAdbErrori   ÚbaseÚadditionÚreturnc                 ó†   — t        | t        j                  «      r| |z  j                  «       S | d   dk7  r| dz   |z   S | |z   S )Néÿÿÿÿú/)Ú
isinstanceÚpathlibÚPathÚas_posix)r   r   s     úP/var/www/api.ozpay.ru/ozpay/venv/lib/python3.12/site-packages/adbutils/_utils.pyÚappend_pathr      sE   € Ü�$œŸ™Ô%Ø�x‘×)Ñ)Ó+Ð+à(,¨R©°Cªˆt�c‰z˜HÑ$ÐL¸TÀH¹_ÐLó    Únc                 ó,   — dt        | «      t        z  z  S )Nz%.1f MB)ÚfloatÚMB)r   s    r   Úhumanizer      s   € Øœ˜a›¤2™Ñ&Ð&r   Úportc                 ó¾   — t        j                   t         j                  t         j                  «      5 }|j                  d| f«      dk(  cd d d «       S # 1 sw Y   y xY w)Nú	127.0.0.1r   )ÚsocketÚAF_INETÚSOCK_STREAMÚ
connect_ex)r   Úss     r   Úis_port_in_user   #   sG   € Ü	�‰”v—~‘~¤v×'9Ñ'9Ó	:ð 6¸aØ�|‰|˜[¨$Ð/Ó0°AÑ5÷6÷ 6ò 6ús   ³AÁAc                  óš  — 	 t        j                   t         j                  t         j                  «      } | j                  d«       	 | j	                  «       d   | j                  «        S # | j                  «        w xY w# t        $ rC t        d«      D ])  }t        j                  dd«      }t        |«      rŒ%|c cY S  t        d«      ‚w xY w)N)r   r   é   é   i'  i N  zNo free port found)r   r   r   ÚbindÚgetsocknameÚcloseÚOSErrorÚrangeÚrandomÚrandintr   r   )r   Ú_r   s      r   Úget_free_portr+   (   s¢   € ð-Ü�M‰Mœ&Ÿ.™.¬&×*<Ñ*<Ó=ˆØ	�‰ÐÔ ð	Ø—=‘=“? 1Ñ%à�G‰G�IøˆA�G‰G�IûÜò -ô �r“ò 	ˆAÜ—>‘> %¨Ó/ˆDÜ! $Õ'Ø”ð	ô Ð+Ó,Ð,ð-ús0   ‚AA> ÁA) ÁA> Á)A;Á;A> Á>8C
Â7C
Â=C
Úargsc                 óT   — dj                  t        t        j                  | «      «      S )z¥ do not use subprocess.list2cmdline, use this instead

    Reason:
        subprocess.list2cmdline(['echo', '&']) --> "a &", but what I expect should be "a '&'"
    ú )ÚjoinÚmapÚshlexÚquote)r,   s    r   Úlist2cmdliner3   :   s   € ð �8‰8”CœŸ™ TÓ*Ó+Ð+r   c                  ó<  — t        j                   t         j                  t         j                  «      } 	 | j                  d«       | j	                  «       d   }|| j                  «        S # t        $ r Y | j                  «        yw xY w# | j                  «        w xY w)N)z8.8.8.8éP   r   r   )r   r   Ú
SOCK_DGRAMÚconnectr$   r%   r&   )r   Úips     r   Ú
current_ipr9   C   st   € Ü�‰”f—n‘n¤f×&7Ñ&7Ó8€AðØ	�	‰	�/Ô"Ø�]‰]‹_˜QÑˆØð 	
�‰�	øô ò Øà	�‰�	ðûð 	
�‰�	ús#   ´%A* Á*	BÁ3B	 ÂBÂB	 Â	Bc                  óF  — t         j                  dk  r!t        j                  j	                  dd«      } nAt        j                  j                  d«      dz  }t        j                  j                  |«      } | 5 }	 d d d «       t        j                  «      S # 1 sw Y   ŒxY w)N)é   é	   zadbutils.binariesz__init__.py)	ÚsysÚversion_infoÚ	importlibÚ	resourcesÚpathÚfilesÚas_fileÚstrÚparent)ÚcontextÚrefrA   s      r   Ú_get_bin_dirrH   N   s‰   € Ü
×Ñ˜&Ò Ü×%Ñ%×*Ñ*Ð+>ÀÓN‰ä×!Ñ!×'Ñ'Ð(;Ó<¸}ÑLˆÜ×%Ñ%×-Ñ-¨cÓ2ˆØ	ð �DØ÷ô ˆt�{‰{ÓÐ÷ð ús   Á8BÂB c                  óv  — t        j                  d«      rt        j                  d«      S t        d«      } | rt        | «      r| S t	        «       }t         j
                  j                  |t         j                  dk(  rdnd«      } t         j
                  j                  | «      rt        | «      r| S t        d«      ‚)NÚADBUTILS_ADB_PATHÚadbÚntzadb.exez5No adb exe could be found. Install adb on your system)
ÚosÚgetenvr   Ú_is_valid_exerH   rA   r/   ÚnameÚisfiler   )ÚexeÚbin_dirs     r   Úadb_pathrT   Z   sŠ   € ä	‡y�yÐ$Ô%Ü�y‰yÐ,Ó-Ð-ô �‹,€CÙ
Œ}˜SÔ!Øˆ
ô ‹n€GÜ
�'‰'�,‰,�w¬R¯W©W¸ª_¡	À%Ó
H€CÜ	‡w�w‡~�~�cÔœ}¨SÔ1Øˆ
ä
ÐJÓ
KÐKr   c                 ó.  — d }d }d}t         j                  j                  d«      r7t        j                  «       }|xj
                  t        j                  z  c_        | r2t         j                  j                  d«      rd}nt        j                  }|||dœS )Nr   Úwini   )ÚstartupinfoÚcreationflagsÚ
preexec_fn)	r=   ÚplatformÚ
startswithÚ
subprocessÚSTARTUPINFOÚdwFlagsÚSTARTF_USESHOWWINDOWrM   Úsetpgrp)Úprevent_sigintrW   rY   rX   s       r   Ú_popen_kwargsrb   m   s€   € Ø€KØ€JØ€MÜ
‡|�|×Ñ˜uÔ%ä ×,Ñ,Ó.ˆØ×Òœz×>Ñ>Ñ>ÕÙô �<‰<×"Ñ" 5Ô)Ø&‰MäŸ™ˆJà"Ø&Ø ñð r   rR   c                 óî   — | dg}	 t        j                  |ft         j                  t         j                  t         j                  dœt	        «       ¤Ž y# t
        t        t         j                  f$ r Y yw xY w)NÚversion)ÚstdinÚstdoutÚstderrTF)r\   Ú
check_callÚDEVNULLÚSTDOUTrb   r&   Ú
ValueErrorÚCalledProcessError)rR   Úcmds     r   rO   rO   ƒ   so   € Ø�	Ð
€CðÜ×ÑØð	
Ü!×)Ñ)´*×2DÑ2DÜ×$Ñ$ñ	
ä(5«ò	
ð øÜ”Z¤×!>Ñ!>Ð?ò Ùðús   †AA ÁA4Á3A4c                   ó<   — e Zd Zd
defd„Zdefd„Zdedefd„Zd	„ Zy)ÚReadProgressNÚ
total_sizec                 ó,  — || _         || _        d| _        t        j                  «       | _        t        j                  «       | _        t        j                  «       | _        d| _	        d| _
        |rdnt        j                  d¬«      | _        || _        y)zU
        Args:
            source_path (str): store read content to filepath
        r   Ú Nz.apk)Úsuffix)ÚrÚtotalÚcopiedÚtimeÚ
start_timeÚupdate_timeÚhashlibÚmd5ÚmÚ_chunk_sizeÚ_hashÚtempfileÚNamedTemporaryFileÚ_tmpfdÚ	_filepath)Úselfrt   rp   Úsource_paths       r   Ú__init__zReadProgress.__init__�   sn   € ð
 ˆŒØˆŒ
ØˆŒÜŸ)™)›+ˆŒÜŸ9™9›;ˆÔÜ—‘“ˆŒØˆÔØˆŒ
Ù)‘d¬x×/JÑ/JÐRXÔ/YˆŒØ$ˆ�r   Úchunkc                 óÖ  — t        |«      }| j                  j                  |«       |dk(  r| j                  j                  «       | _        | xj
                  |z  c_        | xj                  |z  c_        | j                  r&t        | j
                  «      | j                  z  dz  }n|rdnd}t        |«      }t        j                  «       | j                  z
  }|dk(  s|dkD  �r|rt        | j                  |z  «      dz   }nFt        dt        j                  «       | j                  z
  «      }t        | j
                  |z  «      dz   }t        j                  «       | _        d| _        t        | j
                  «      }t        | j                  «      }	t        t         j"                  d«      r=t         j"                  j%                  «       rt'        d	j)                  ||||	«      «       y y y y )
Nr   éd   g        g      Y@g      ð?z/sgš™™™™™¹?Úisattyz{:.1f}%	{} [{}/{}])Úlenr|   ÚupdateÚ	hexdigestr~   rv   r}   ru   r   Úintrw   ry   r   Úmaxrx   Úhasattrr=   rf   r‰   ÚprintÚformat)
rƒ   r†   Ú
chunk_sizeÚpercentÚpÚdurationÚspeedÚcopytimeÚcopysizeÚ	totalsizes
             r   r‹   zReadProgress.update    sy  € Ü˜“Zˆ
Ø�‰�‰�eÔØ˜Š?ØŸ™×)Ñ)Ó+ˆDŒJØ�Š�zÑ!�Ø×Ò˜JÑ&Õà�:Š:Ü˜DŸK™KÓ(¨4¯:©:Ñ5¸Ñ;‰Gá'‘c¨UˆGä�‹LˆÜ—9‘9“; ×!1Ñ!1Ñ1ˆØ�Š:˜ C›ÙÜ  ×!1Ñ!1°HÑ!<Ó=ÀÑD‘ä˜s¤D§I¡I£K°$·/±/Ñ$AÓB�Ü  §¡¨xÑ!7Ó8¸4Ñ?�ä#Ÿy™y›{ˆDÔØ ˆDÔä §¡Ó,ˆHÜ  §¡Ó,ˆIÜ”s—z‘z 8Ô,´·±×1BÑ1BÔ1DÜÐ+×2Ñ2°7¸EÀ8Ø3<ó>õ ?ð 2EÐ,ð (r   r   r   c                 ó¬   — | j                   j                  |«      }| j                  |«       | j                  r| j                  j	                  |«       |S ©N)rt   Úreadr‹   r�   Úwrite)rƒ   r   r†   s      r   rœ   zReadProgress.read¿   s=   € Ø—‘—‘˜A“ˆØ�‰�EÔØ�;Š;Ø�K‰K×Ñ˜eÔ$Øˆr   c                 ó”   — | j                   r| j                   S | j                  j                  d«       | j                  j                  S )Nr   )r‚   r�   ÚseekrP   ©rƒ   s    r   ÚfilepathzReadProgress.filepathÆ   s5   € Ø�>Š>Ø—>‘>Ð!Ø�‰×Ñ˜ÔØ�{‰{×ÑÐr   r›   )	Ú__name__Ú
__module__Ú__qualname__r�   r…   Úbytesr‹   rœ   r¡   © r   r   ro   ro   �   s2   „ ñ% có %ð ?˜Eó ?ð>�cð ˜eó ó r   ro   c                   ó2   — e Zd Zdej                  fd„Zd„ Zy)Ú	APKReaderÚfpc                 ó   — || _         y r›   )Ú_fp)rƒ   r©   s     r   r…   zAPKReader.__init__Î   s	   € Øˆ�r   c                 ó¸  — 	 ddl m} j                  | j                  «      }|j                  «        |j                  «       }|j                  }|r|d   nd }|r|j                  d«      dk(  rd|z   }t        d|«       t        d|«       t        d|j                  «       t        d	|j                  «       y # t        $ r t        j                  d«       Y ŒÐw xY w)
Nr   )ÚAPKz2apkutils is not installed, please install it firstú.r	   zpackage:zmain-activity:zversion-name:zversion-code:)Úapkutilsr­   ÚImportErrorr=   ÚexitÚfrom_ior«   Úget_manifestÚget_manifest_main_activitiesÚpackage_nameÚfindr�   Ú_version_nameÚ_version_code)rƒ   r­   ÚapkÚ
activitiesrµ   Úmain_activitys         r   Ú	dump_infozAPKReader.dump_infoÑ   sÅ   € ð	KÝ$ð �k‰k˜$Ÿ(™(Ó#ˆØ×ÑÔØ×5Ñ5Ó7ˆ
Ø×'Ñ'ˆá)3˜
 1š¸ˆÙ˜]×/Ñ/°Ó4¸Ò:Ø -Ñ/ˆMäˆj˜,Ô'ÜÐ Ô.Üˆo˜s×0Ñ0Ô1Üˆo˜s×0Ñ0Õ1øô ò 	KÜ�H‰HÐIÖJð	Kús   ‚B8 Â8CÃCN)r¢   r£   r¤   ÚtypingÚBinaryIOr…   r¼   r¦   r   r   r¨   r¨   Í   s   „ ð˜6Ÿ?™?ó ó2r   r¨   c                   óD   — e Zd Zd„ Zd
d„Zd„ Zdefd„Zd„ Zdefd„Z	d	„ Z
y)Ú	StopEventc                 óh   — t        j                  «       | _        t        j                  «       | _        y r›   )Ú	threadingÚEventÚ_StopEvent__stopÚ_StopEvent__doner    s    r   r…   zStopEvent.__init__æ   s   € Ü—o‘oÓ'ˆŒÜ—o‘oÓ'ˆ�r   Nc                 ó†   — | j                   j                  «        | j                  j                  |«      st	        d|«      ‚y)zf send stop signal and wait signal accepted 
        
        Raises:
            TimeoutError
        zwait for stopped timeoutN)rÄ   ÚsetrÅ   ÚwaitÚTimeoutError)rƒ   Útimeouts     r   ÚstopzStopEvent.stopê   s7   € ð 	�‰�‰ÔØ�{‰{×Ñ Ô(ÜÐ9¸7ÓCÐCð )r   c                 ó8   — | j                   j                  «        y)z send stop signal N)rÄ   rÇ   r    s    r   Ústop_nowaitzStopEvent.stop_nowaitô   ó   € à�‰�‰Õr   r   c                 ó6   — | j                   j                  «       S r›   )rÄ   Úis_setr    s    r   Ú
is_stoppedzStopEvent.is_stoppedø   s   € Ø�{‰{×!Ñ!Ó#Ð#r   c                 ó8   — | j                   j                  «        y)z2 for worker thread to notify stop signal accepted N)rÅ   rÇ   r    s    r   ÚdonezStopEvent.doneû   rÎ   r   c                 ó6   — | j                   j                  «       S )z( check if background worker has stopped )rÅ   rÐ   r    s    r   Úis_donezStopEvent.is_doneÿ   s   € à�{‰{×!Ñ!Ó#Ð#r   c                 ól   — | j                   j                  «        | j                  j                  «        y r›   )rÄ   ÚclearrÅ   r    s    r   ÚresetzStopEvent.reset  s"   € Ø�‰×ÑÔØ�‰×ÑÕr   r›   )r¢   r£   r¤   r…   rË   rÍ   ÚboolrÑ   rÓ   rÕ   rØ   r¦   r   r   rÀ   rÀ   å   s4   „ ò(óDòð$˜Dó $òð$˜ó $ór   rÀ   Útextc                 ó  — | j                  t        j                  i dd“dd“dd“dd“d	d
“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd “d!d"“i d#d$“d%d&“d'd(“d)d*“d+d,“d-d.“d/d0“d1d2“d3d4“d5d6“d7d8“d9d:“d;d<“d=d>“d?d@“dAdB“¥«      «      }|S )CzN
    A helper that escape special characters

    Args:
        text: str
    ú-z\-ú+z\+ú[z\[ú]z\]ú(z\(ú)z\)ú{z\{ú}z\}ú\z\\\\ú^z\^ú$z\$Ú*z\*r®   z\.ú,z\,ú:z\:ú~z\~ú;z\;ú>z\>ú<z\<ú%z\%ú#z\#ú'z\\'ú"z\\"ú`z\`ú!z\!ú?z\?ú|z\|ú=z\=ú@z\@r
   z\/r*   z\_r.   z%sú&z\&)Ú	translaterD   Ú	maketrans)rÚ   Úescapeds     r   Úescape_special_charactersrü     s·  € ð �n‰nÜ�‰ð "
Ø�ð"
à�ð"
ð �ð"
ð �ð	"
ð
 �ð"
ð �ð"
ð �ð"
ð �ð"
ð �'ð"
ð �ð"
ð �ð"
ð �ð"
ð �ð"
ð �ð"
ð �ð"
ð  �ð!"
ð" �ñ#"
ð$ �ð%"
ð& �ð'"
ð( �ð)"
ð* �ð+"
ð, �&ð-"
ð. �&ð/"
ð0 �ð1"
ð2 �ð3"
ð4 �ð5"
ð6 �ð7"
ð8 �ð9"
ð: �ð;"
ð< �ð="
ð> �ð?"
ð@ �ðA"
ðB �ñC"
ó "	ó#€GðH €Nr   )F))rz   Úimportlib.resourcesr?   rM   r(   r1   r   r\   r=   r   rÂ   rw   r½   Úzipfiler   Úshutilr   Úadbutils.errorsr   r   ÚUnionrD   r   r   r�   r   rÙ   r   r+   ÚlistÚtupler3   r9   rH   rT   rb   rO   ro   r¨   rÀ   rü   r¦   r   r   ú<module>r     s  ðÛ Û Û 	Û Û Û Û Û 
Û Û Û Û Û Û Û å å $ð €ðM�f—l‘l 3¨¯©Ð#4Ñ5ð MÀð MÈó Mð'�ð '˜ó 'ð6˜ð 6 ó 6ò
-ð$,�v—|‘| D¨% KÑ0ó ,ò	ò	ðL�#ó Ló&ð,	�só 	÷; ñ ; ÷|2ñ 2÷0 ñ  ðF+ Cð +¨Cô +r   