ó
    •JÕiù  ã                   ó¸   • S SK r S SKrS SKJr  S SKJrJr  Sr\S-  rS r " S S\ R                  5      r
 " S	 S
\ R                  5      rSrSrSr " S S5      rg)é    N)ÚRLock)ÚsleepÚtimei   é   c                 óÖ   • [         R                  (       a  g [        U 5      q[	        US[         R
                  5      [         l        [	        US[         R                  5      [         l        g )Nzpython.stdoutzpython.stderr)ÚsysÚ
executableÚLogcatÚlogcatÚTextLogStreamÚstdoutÚstderr)Úandroid_log_writeÚstdout_prioÚstderr_prios      ÚLib\_android_support.pyÚinit_streamsr      sA   € Ü
‡~‡~Øô Ð%Ó&€FÜ˜{¨O¼S¿Z¹ZÓH„C„JÜ˜{¨O¼S¿Z¹ZÓH„C…Jó    c                   óT   ^ • \ rS rSrS	U 4S jjrS rS rS rS r\	S 5       r
SrU =r$ )
r   é$   c                 ó*  >• U(       a-  UR                  SUR                  5        UR                  5       nOS nUR                  SS5        UR                  SS5        [        TU ]  " [        XU5      40 UD6  [        5       U l        / U l        SU l	        g )NÚwrite_throughÚencodingzUTF-8ÚerrorsÚbackslashreplacer   )
Ú
setdefaultr   ÚfilenoÚsuperÚ__init__ÚBinaryLogStreamr   Ú_lockÚ_pending_bytesÚ_pending_bytes_count)ÚselfÚprioÚtagÚoriginalÚkwargsr   Ú	__class__s         €r   r   ÚTextLogStream.__init__%   s‚   ø€ æØ×Ñ˜o¨x×/EÑ/EÔFØ—_‘_Ó&‰FàˆFð
 	×Ñ˜* gÔ.Ø×Ñ˜(Ð$6Ô7ä‰Òœ¨°FÓ;ÑF¸vÒFÜ“WˆŒ
Ø ˆÔØ$%ˆÕ!r   c                 ó8   • SU R                   R                  < S3$ )Nz<TextLogStream Ú>)Úbufferr&   ©r$   s    r   Ú__repr__ÚTextLogStream.__repr__8   s   € Ø  §¡§¡Ñ 3°1Ð5Ð5r   c                 ó�  • [        U[        5      (       d!  [        S[        U5      R                   35      e[        R                  U5      nU R                     UR                  SS9 H8  nU(       d  M  US [         nU[        S  nU R                  U5        U(       a  M,  M:     S S S 5        [        U5      $ ! , (       d  f       N= f)Nz"write() argument must be str, not T)Úkeepends)Ú
isinstanceÚstrÚ	TypeErrorÚtypeÚ__name__Ú__str__r!   Ú
splitlinesÚMAX_CHARS_PER_WRITEÚ_write_chunkÚlen)r$   ÚsÚlineÚchunks       r   ÚwriteÚTextLogStream.write;   s®   € Ü˜!œS×!Ñ!ÜØ4´T¸!³W×5EÑ5EÐ4FÐGóIð Iô
 �K‰K˜‹Nˆð
 �Z‹ZØŸ™¨d˜Ó3�ß�dØ Ð!5Ô"5Ð6�EØÔ 3Ð 4Ð5�DØ×%Ñ% eÔ,÷ ’dñ 4÷ ô �1‹vˆ÷ �Zús   ÁB7Á4*B7Â B7Â7
Cc                 óº  • UR                  U R                  U R                  5      nU R                  [	        U5      -   [
        :”  a  U R                  5         U R                  R                  U5        U =R                  [	        U5      -  sl        U R                  (       d*  UR                  S5      (       d  U R                  [
        :”  a  U R                  5         g g )Nó   
)Úencoder   r   r#   r<   ÚMAX_BYTES_PER_WRITEÚflushr"   Úappendr   Úendswith)r$   r=   Úbs      r   r;   ÚTextLogStream._write_chunkR   s™   € Ø�H‰H�T—]‘] D§K¡KÓ0ˆØ×$Ñ$¤s¨1£vÑ-Ô0CÓCØ�J‰JŒLà×Ñ×"Ñ" 1Ô%Ø×!Ò!¤S¨£VÑ+Õ!à××Ø�z‰z˜%× Ñ Ø×(Ñ(Ô+>Ó>à�J‰J�Lð ?r   c                 óú   • U R                      U R                  R                  SR                  U R                  5      5        U R                  R                  5         SU l        S S S 5        g ! , (       d  f       g = f)Nr   r   )r!   r-   r@   Újoinr"   Úclearr#   r.   s    r   rF   ÚTextLogStream.flush`   sN   € Ø�Z‹ZØ�K‰K×Ñ˜cŸh™h t×':Ñ':Ó;Ô<Ø×Ñ×%Ñ%Ô'Ø()ˆDÔ%÷ �ZŽZús   �AA,Á,
A:c                 ó   • g©NT© r.   s    r   Úline_bufferingÚTextLogStream.line_bufferingh   s   € àr   )r!   r"   r#   ©N)r7   Ú
__module__Ú__qualname__Ú__firstlineno__r   r/   r@   r;   rF   ÚpropertyrR   Ú__static_attributes__Ú__classcell__)r)   s   @r   r   r   $   s0   ø† ÷&ò&6òò.ò*ð ñó ör   r   c                   ó6   • \ rS rSrS	S jrS rS rS rS rSr	g)
r    ém   Nc                 ó(   • Xl         X l        X0l        g rT   )r%   r&   Ú_fileno)r$   r%   r&   r   s       r   r   ÚBinaryLogStream.__init__n   s   € ØŒ	ØŒØ�r   c                 ó$   • SU R                   < S3$ )Nz<BinaryLogStream r,   )r&   r.   s    r   r/   ÚBinaryLogStream.__repr__s   s   € Ø" 4§8¡8¡,¨aÐ0Ð0r   c                 ó   • grP   rQ   r.   s    r   ÚwritableÚBinaryLogStream.writablev   s   € Ør   c                 ó*  • [        U5      [        La   [        [        U5      5      nU(       a+  [
        R                  U R                  U R                  U5        [        U5      $ ! [         a#    [        S[        U5      R                   35      S ef = f)Nz)write() argument must be bytes-like, not )
r6   ÚbytesÚ
memoryviewr5   r7   r   r@   r%   r&   r<   )r$   rI   s     r   r@   ÚBinaryLogStream.writey   s}   € Ü�‹7œ%ÒðÜœ* Q›-Ó(�ö Ü�L‰L˜Ÿ™ D§H¡H¨aÔ0Ü�1‹vˆøô ó ÜØ?ÄÀQÃ×@PÑ@PÐ?QÐRóàððús   ”A% Á%-Bc                 ó`   • U R                   c  [        R                  " S5      eU R                   $ )Nr   )r^   ÚioÚUnsupportedOperationr.   s    r   r   ÚBinaryLogStream.filenoˆ   s'   € Ø�<‰<ÑÜ×)Ò)¨(Ó3Ð3Ø�|‰|Ðr   )r^   r%   r&   rT   )
r7   rU   rV   rW   r   r/   rc   r@   r   rY   rQ   r   r   r    r    m   s   † ôò
1òòõr   r    i   i   é   c                   ó    • \ rS rSrS rS rSrg)r
   éŸ   c                 óZ   • Xl         [        5       U l        SU l        [	        5       U l        g )Nr   )r   r   r!   Ú_bucket_levelr   Ú_prev_write_time)r$   r   s     r   r   ÚLogcat.__init__    s#   € Ø!2ÔÜ“WˆŒ
ØˆÔÜ $£ˆÕr   c                 óL  • UR                  SS5      nUR                  S5      (       a  SU-   nU R                     [        5       nU =R                  X@R
                  -
  [        -  -  sl        [        S[        U R                  [        5      5      U l        X@l        U =R                  [        [        U5      -   [        U5      -   -  sl        U R                  S:  a  [        U R                  * [        -  5        U R                  XU5        S S S 5        g ! , (       d  f       g = f)Nó    s   À€rC   ó    r   )ÚreplaceÚ
startswithr!   r   rq   rr   ÚMAX_BYTES_PER_SECONDÚmaxÚminÚBUCKET_SIZEÚPER_MESSAGE_OVERHEADr<   r   r   )r$   r%   r&   ÚmessageÚnows        r   r@   ÚLogcat.write¦   sé   € ð —/‘/ '¨;Ó7ˆð ×Ñ˜e×$Ñ$Ø˜W‘nˆGà�Z‹ZÜ“&ˆCØ×ÒØ×,Ñ,Ñ,Ô0DÑDñFÕô
 "% Q¬¨D×,>Ñ,>ÄÓ(LÓ!MˆDÔØ$'Ô!à×ÒÔ"6¼¸S»Ñ"AÄCÈÃLÑ"PÑPÕØ×!Ñ! AÓ%Ü�t×)Ñ)Ð)Ô,@Ñ@ÔAà×"Ñ" 4¨gÔ6÷ �ZŽZús   ºCDÄ
D#)rq   r!   rr   r   N)r7   rU   rV   rW   r   r@   rY   rQ   r   r   r
   r
   Ÿ   s   † ò'õ7r   r
   )rj   r   Ú	threadingr   r   r   rE   r:   r   ÚTextIOWrapperr   Ú	RawIOBaser    ry   r|   r}   r
   rQ   r   r   Ú<module>r„      ss   ðÛ 	Û 
Ý ß ð Ð ð *¨QÑ.Ð òIôF�B×$Ñ$ô FôR�b—l‘lô ðL #Ð ð €ð Ð ÷!7ò !7r   