Ë
    $Æ%hÚ$  ã                  óP  — d dl mZ d dlZd dlZddlmZmZmZ 	 d dlZ	 d dlZdd„Z G d„ d«      Z G d„ d	«      Z G d
„ d«      Z G d„ d«      Z G d„ d«      Z G d„ d«      Z G d„ d«      Z G d„ d«      Z G d„ d«      Z G d„ d«      Zy# e	e
f$ r dZY Œyw xY w# e	$ r dZY Œ�w xY w)é    )ÚannotationsNé   )ÚExceptionMappingÚPoolTimeoutÚmap_exceptionsc                 óÈ   — 	 dd l } | j                  «       }|dvrt        d«      ‚|dk(  rt        €t        d«      ‚|dk(  rt
        €t        d«      ‚|S # t        $ r d}Y ŒJw xY w)Nr   Úasyncio)r	   Útrioz/Running under an unsupported async environment.zBRunning with asyncio requires installation of 'httpcore[asyncio]'.r
   z<Running with trio requires installation of 'httpcore[trio]'.)ÚsniffioÚcurrent_async_libraryÚImportErrorÚRuntimeErrorÚanyior
   )r   Úenvironments     úW/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/httpcore/_synchronization.pyr   r      s‡   € ð6Ûð ×3Ñ3Ó5ˆàÐ-Ñ-ÜÐLÓMÐMà�iÒ¤E MÜØPó
ð 	
ð �fÒ¤ ÜØJó
ð 	
ð Ðøô% ò  ØŠð ús   ‚A ÁA!Á A!c                  óF   — e Zd ZdZdd„Zdd„Zdd„Z	 	 	 d		 	 	 	 	 	 	 d
d„Zy)Ú	AsyncLockú’
    This is a standard lock.

    In the sync case `Lock` provides thread locking.
    In the async case `AsyncLock` provides async locking.
    c                ó   — d| _         y ©NÚ ©Ú_backend©Úselfs    r   Ú__init__zAsyncLock.__init__8   ó	   € Øˆ�ó    c                óÆ   — t        «       | _        | j                  dk(  rt        j                  «       | _        y| j                  dk(  rt        j                  «       | _        yy©z~
        Detect if we're running under 'asyncio' or 'trio' and create
        a lock with the correct implementation.
        r
   r	   N)r   r   r
   ÚLockÚ
_trio_lockr   Ú_anyio_lockr   s    r   ÚsetupzAsyncLock.setup;   sF   € ô
 .Ó/ˆŒØ�=‰=˜FÒ"Ü"Ÿi™i›kˆD�OØ�]‰]˜iÒ'Ü$Ÿz™z›|ˆDÕð (r   c              ƒ  ó  K  — | j                   s| j                  «        | j                   dk(  r$| j                  j                  «       ƒ d {  –—†  | S | j                   dk(  r"| j                  j                  «       ƒ d {  –—†  | S 7 Œ97 Œ­w©Nr
   r	   )r   r$   r"   Úacquirer#   r   s    r   Ú
__aenter__zAsyncLock.__aenter__F   ss   è ø€ Ø�}Š}Ø�J‰JŒLà�=‰=˜FÒ"Ø—/‘/×)Ñ)Ó+×+Ð+ð ˆð �]‰]˜iÒ'Ø×"Ñ"×*Ñ*Ó,×,Ð,àˆð	 ,øà,ús$   ‚A	B	ÁBÁ2B	Á>BÁ?B	ÂB	Nc              ƒ  ó´   K  — | j                   dk(  r| j                  j                  «        y | j                   dk(  r| j                  j                  «        y y ­wr&   )r   r"   Úreleaser#   ©r   Úexc_typeÚ	exc_valueÚ	tracebacks       r   Ú	__aexit__zAsyncLock.__aexit__Q   sG   è ø€ ð �=‰=˜FÒ"Ø�O‰O×#Ñ#Õ%Ø�]‰]˜iÒ'Ø×Ñ×$Ñ$Õ&ð (ùó   ‚AA©ÚreturnÚNone)r2   r   ©NNN©r,   ztype[BaseException] | Noner-   zBaseException | Noner.   ztypes.TracebackType | Noner2   r3   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r$   r(   r/   © r   r   r   r   0   sL   „ ñóó	,ó	ð 04Ø*.Ø04ð		'à,ð	'ð (ð	'ð .ð		'ð
 
ô	'r   r   c                  ó6   — e Zd ZdZdd„Z	 	 	 d	 	 	 	 	 	 	 dd„Zy)ÚAsyncThreadLockú¬
    This is a threading-only lock for no-I/O contexts.

    In the sync case `ThreadLock` provides thread locking.
    In the async case `AsyncThreadLock` is a no-op.
    c                ó   — | S ©Nr:   r   s    r   Ú	__enter__zAsyncThreadLock.__enter__e   ó   € Øˆr   Nc                 ó   — y r?   r:   r+   s       r   Ú__exit__zAsyncThreadLock.__exit__h   ó   € ð 	r   )r2   r<   r4   r5   )r6   r7   r8   r9   r@   rC   r:   r   r   r<   r<   ]   sB   „ ñóð
 04Ø*.Ø04ð	à,ðð (ðð .ð	ð
 
ôr   r<   c                  ó.   — e Zd Zdd„Zdd„Zdd„Zddd„Zy)	Ú
AsyncEventc                ó   — d| _         y r   r   r   s    r   r   zAsyncEvent.__init__r   r   r   c                óÆ   — t        «       | _        | j                  dk(  rt        j                  «       | _        y| j                  dk(  rt        j                  «       | _        yyr    )r   r   r
   ÚEventÚ_trio_eventr   Ú_anyio_eventr   s    r   r$   zAsyncEvent.setupu   sG   € ô
 .Ó/ˆŒØ�=‰=˜FÒ"Ü#Ÿz™z›|ˆDÕØ�]‰]˜iÒ'Ü %§¡£ˆDÕð (r   c                óä   — | j                   s| j                  «        | j                   dk(  r| j                  j                  «        y | j                   dk(  r| j                  j                  «        y y r&   )r   r$   rJ   ÚsetrK   r   s    r   rM   zAsyncEvent.set€   sS   € Ø�}Š}Ø�J‰JŒLà�=‰=˜FÒ"Ø×Ñ× Ñ Õ"Ø�]‰]˜iÒ'Ø×Ñ×!Ñ!Õ#ð (r   Nc              ƒ  óž  K  — | j                   s| j                  «        | j                   dk(  rzt        j                  t        i}|€t        d«      n|}t        |«      5  t        j                  |«      5  | j                  j                  «       ƒ d {  –—†  d d d «       d d d «       y | j                   dk(  rat        t        i}t        |«      5  t        j                  |«      5  | j                  j                  «       ƒ d {  –—†  d d d «       d d d «       y y 7 Œ†# 1 sw Y   Œ…xY w# 1 sw Y   y xY w7 Œ0# 1 sw Y   Œ/xY w# 1 sw Y   y xY w­w)Nr
   Úinfr	   )r   r$   r
   ÚTooSlowErrorr   Úfloatr   Ú
fail_afterrJ   ÚwaitÚTimeoutErrorr   rK   )r   ÚtimeoutÚtrio_exc_mapÚtimeout_or_infÚanyio_exc_maps        r   rS   zAsyncEvent.wait‰   s!  è ø€ Ø�}Š}Ø�J‰JŒLà�=‰=˜FÒ"Ü.2×.?Ñ.?ÄÐ-MˆLØ-4¨_œU 5œ\À'ˆNÜ Ó-ñ 2Ü—_‘_ ^Ó4ñ 2Ø×*Ñ*×/Ñ/Ó1×1Ð1÷2÷2ð 2ð �]‰]˜iÒ'Ü/;¼[Ð.IˆMÜ Ó.ñ 3Ü×%Ñ% gÓ.ñ 3Ø×+Ñ+×0Ñ0Ó2×2Ð2÷3÷3ð 3ð (ð 2ø÷2ð 2ú÷2ð 2úð 3ø÷3ð 3ú÷3ð 3üsŠ   ‚AEÁD'Á4DÂDÂDÂD'Â/EÃEÃ$D5ÄD3ÄD5ÄEÄ
EÄDÄD$	Ä D'Ä'D0Ä,EÄ3D5Ä5D>	Ä:EÅE
ÅEr1   r?   ©rU   zfloat | Noner2   r3   )r6   r7   r8   r   r$   rM   rS   r:   r   r   rF   rF   q   s   „ óó	.ó$õ3r   rF   c                  ó,   — e Zd Zdd„Zdd„Zdd„Zdd„Zy)ÚAsyncSemaphorec                ó    — || _         d| _        y r   )Ú_boundr   ©r   Úbounds     r   r   zAsyncSemaphore.__init__›   s   € ØˆŒØˆ�r   c                ó"  — t        «       | _        | j                  dk(  r1t        j                  | j                  | j                  ¬«      | _        y| j                  dk(  r1t        j                  | j                  | j                  ¬«      | _        yy)zƒ
        Detect if we're running under 'asyncio' or 'trio' and create
        a semaphore with the correct implementation.
        r
   )Úinitial_valueÚ	max_valuer	   N)r   r   r
   Ú	Semaphorer]   Ú_trio_semaphorer   Ú_anyio_semaphorer   s    r   r$   zAsyncSemaphore.setupŸ   si   € ô
 .Ó/ˆŒØ�=‰=˜FÒ"Ü#'§>¡>Ø"Ÿk™k°T·[±[ô$ˆDÕ ð �]‰]˜iÒ'Ü$)§O¡OØ"Ÿk™k°T·[±[ô%ˆDÕ!ð (r   c              ƒ  ó  K  — | j                   s| j                  «        | j                   dk(  r#| j                  j                  «       ƒ d {  –—†  y | j                   dk(  r#| j                  j                  «       ƒ d {  –—†  y y 7 Œ87 Œ­wr&   )r   r$   rd   r'   re   r   s    r   r'   zAsyncSemaphore.acquire®   sl   è ø€ Ø�}Š}Ø�J‰JŒLà�=‰=˜FÒ"Ø×&Ñ&×.Ñ.Ó0×0Ñ0Ø�]‰]˜iÒ'Ø×'Ñ'×/Ñ/Ó1×1Ñ1ð (ð 1øà1ús$   ‚A	BÁBÁ1BÁ=BÁ>BÂBc              ƒ  ó´   K  — | j                   dk(  r| j                  j                  «        y | j                   dk(  r| j                  j                  «        y y ­wr&   )r   rd   r*   re   r   s    r   r*   zAsyncSemaphore.release·   sG   è ø€ Ø�=‰=˜FÒ"Ø× Ñ ×(Ñ(Õ*Ø�]‰]˜iÒ'Ø×!Ñ!×)Ñ)Õ+ð (ùr0   N©r_   Úintr2   r3   r1   )r6   r7   r8   r   r$   r'   r*   r:   r   r   r[   r[   š   s   „ óóó2ô,r   r[   c                  ó:   — e Zd Zdd„Zdd„Z	 	 	 d	 	 	 	 	 	 	 dd„Zy)	ÚAsyncShieldCancellationc                óÎ   — t        «       | _        | j                  dk(  rt        j                  d¬«      | _        y| j                  dk(  rt        j                  d¬«      | _        yy)zˆ
        Detect if we're running under 'asyncio' or 'trio' and create
        a shielded scope with the correct implementation.
        r
   T)Úshieldr	   N)r   r   r
   ÚCancelScopeÚ_trio_shieldr   Ú_anyio_shieldr   s    r   r   z AsyncShieldCancellation.__init__Æ   sQ   € ô
 .Ó/ˆŒà�=‰=˜FÒ"Ü $× 0Ñ 0¸Ô =ˆDÕØ�]‰]˜iÒ'Ü!&×!2Ñ!2¸$Ô!?ˆDÕð (r   c                ó®   — | j                   dk(  r| j                  j                  «        | S | j                   dk(  r| j                  j                  «        | S r&   )r   ro   r@   rp   r   s    r   r@   z!AsyncShieldCancellation.__enter__Ò   sL   € Ø�=‰=˜FÒ"Ø×Ñ×'Ñ'Ô)ð ˆð �]‰]˜iÒ'Ø×Ñ×(Ñ(Ô*Øˆr   Nc                ó¸   — | j                   dk(  r| j                  j                  |||«       y | j                   dk(  r| j                  j                  |||«       y y r&   )r   ro   rC   rp   r+   s       r   rC   z AsyncShieldCancellation.__exit__Ù   sQ   € ð �=‰=˜FÒ"Ø×Ñ×&Ñ& x°¸IÕFØ�]‰]˜iÒ'Ø×Ñ×'Ñ'¨°)¸YÕGð (r   r1   )r2   rk   r4   r5   )r6   r7   r8   r   r@   rC   r:   r   r   rk   rk   ¾   sH   „ ó
@óð 04Ø*.Ø04ð		Hà,ð	Hð (ð	Hð .ð		Hð
 
ô	Hr   rk   c                  ó>   — e Zd ZdZdd„Zdd„Z	 	 	 d	 	 	 	 	 	 	 d	d„Zy)
r!   r   c                ó6   — t        j                  «       | _        y r?   ©Ú	threadingr!   Ú_lockr   s    r   r   zLock.__init__ð   ó   € Ü—^‘^Ó%ˆ�
r   c                ó:   — | j                   j                  «        | S r?   ©rw   r'   r   s    r   r@   zLock.__enter__ó   ó   € Ø�
‰
×ÑÔØˆr   Nc                ó8   — | j                   j                  «        y r?   ©rw   r*   r+   s       r   rC   zLock.__exit__÷   ó   € ð 	�
‰
×ÑÕr   r1   )r2   r!   r4   r5   ©r6   r7   r8   r9   r   r@   rC   r:   r   r   r!   r!   è   óG   „ ñó&óð 04Ø*.Ø04ð	à,ðð (ðð .ð	ð
 
ôr   r!   c                  ó>   — e Zd ZdZdd„Zdd„Z	 	 	 d	 	 	 	 	 	 	 d	d„Zy)
Ú
ThreadLockr=   c                ó6   — t        j                  «       | _        y r?   ru   r   s    r   r   zThreadLock.__init__  rx   r   c                ó:   — | j                   j                  «        | S r?   rz   r   s    r   r@   zThreadLock.__enter__  r{   r   Nc                ó8   — | j                   j                  «        y r?   r}   r+   s       r   rC   zThreadLock.__exit__  r~   r   r1   )r2   r‚   r4   r5   r   r:   r   r   r‚   r‚      r€   r   r‚   c                  ó&   — e Zd Zdd„Zdd„Zddd„Zy)rI   c                ó6   — t        j                  «       | _        y r?   )rv   rI   Ú_eventr   s    r   r   zEvent.__init__  s   € Ü—o‘oÓ'ˆ�r   c                ó8   — | j                   j                  «        y r?   )rˆ   rM   r   s    r   rM   z	Event.set  s   € Ø�‰�‰Õr   Nc                óp   — |t        d«      k(  rd }| j                  j                  |¬«      s
t        «       ‚y )NrO   )rU   )rQ   rˆ   rS   r   )r   rU   s     r   rS   z
Event.wait  s5   € Ø”e˜E“lÒ"ØˆGØ�{‰{×Ñ¨ÐÔ0Ü“-Ðð 1r   r1   r?   rY   )r6   r7   r8   r   rM   rS   r:   r   r   rI   rI     s   „ ó(óõ r   rI   c                  ó$   — e Zd Zdd„Zdd„Zdd„Zy)rc   c                ó:   — t        j                  |¬«      | _        y )N)Úvalue)rv   rc   Ú
_semaphorer^   s     r   r   zSemaphore.__init__'  s   € Ü#×-Ñ-°EÔ:ˆ�r   c                ó8   — | j                   j                  «        y r?   )rŽ   r'   r   s    r   r'   zSemaphore.acquire*  ó   € Ø�‰×ÑÕ!r   c                ó8   — | j                   j                  «        y r?   )rŽ   r*   r   s    r   r*   zSemaphore.release-  r�   r   Nrh   r1   )r6   r7   r8   r   r'   r*   r:   r   r   rc   rc   &  s   „ ó;ó"ô"r   rc   c                  ó2   — e Zd Zdd„Z	 	 	 d	 	 	 	 	 	 	 dd„Zy)ÚShieldCancellationc                ó   — | S r?   r:   r   s    r   r@   zShieldCancellation.__enter__5  rA   r   Nc                 ó   — y r?   r:   r+   s       r   rC   zShieldCancellation.__exit__8  rD   r   )r2   r“   r4   r5   )r6   r7   r8   r@   rC   r:   r   r   r“   r“   1  s=   „ óð
 04Ø*.Ø04ð	à,ðð (ðð .ð	ð
 
ôr   r“   )r2   Ústr)Ú
__future__r   rv   ÚtypesÚ_exceptionsr   r   r   r
   r   ÚNotImplementedErrorr   r   r   r<   rF   r[   rk   r!   r‚   rI   rc   r“   r:   r   r   ú<module>r›      sÅ   ðÝ "ã Û ç FÑ Fð
ÛðÛó
÷4*'ñ *'÷Zñ ÷(&3ñ &3÷R!,ñ !,÷H$Hñ $H÷Tñ ÷0ñ ÷0 ñ  ÷"ñ "÷ò øðI	 	Ð(Ð)ò Ø‚Dðûð
 ò Ø‚Eðús"   šB ŸB Â	BÂBÂB%Â$B%