+
    € ’e0•  ã                   óR  € R t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
t
^ RIt^ RIt^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^R	IHt ^R
IHt ^RIHt ^RIHt R t]
P6                  R8X  d	   ]! R4      hR tR t ! R R]P>                  4      t  ! R R]PB                  4      t" ! R R]PF                  ]PH                  4      t% ! R R]PL                  4      t' ! R R4      t( ! R R4      t)R t* ! R R]PV                  4      t,] t-],t.]-t/R# )!z2Selector event loop for Unix with signal handling.N)Úbase_events)Úbase_subprocess)Ú	constants)Ú
coroutines)Úevents)Ú
exceptions)Úfutures)Úselector_events)Útasks)Ú
transports)ÚloggerÚwin32z+Signals are not really supported on Windowsc                ó   € R# )zDummy signal handler.N© )ÚsignumÚframes   &&Úa/home/ubuntu/.hermes/tools/python-3.14.9+20261021-linux-x64/lib/python3.14/asyncio/unix_events.pyÚ_sighandler_noopr   '   s   € áó    c                 óV   €  \         P                  ! V 4      #   \         d    T u # i ; i©N)ÚosÚwaitstatus_to_exitcodeÚ
ValueError)Ústatuss   &r   r   r   ,   s.   € ðÜ×(Ò(¨Ó0Ð0øÜô ð Šð	ús   ‚ ˜(§(c                   óø   a a€ ] tR t^6t oRtRV 3R lltV 3R ltR tR tR t	R t
R	 tR R
 ltR R ltRR ltR tRRRRRRRRRRR/R lltRRRR^dRRRRRRRRRR/R lltR tR tR tR tV 3R ltRtVtV ;t# )!Ú_UnixSelectorEventLoopz\Unix event loop.

Adds signal handling and UNIX Domain Socket support to
SelectorEventLoop.
Nc                ó¢   <€ \         SV `  V4       / V n        / V n        \	        4       '       d   \        4       V n        R # \        4       V n        R # r   )ÚsuperÚ__init__Ú_signal_handlersÚ_unix_server_socketsÚcan_use_pidfdÚ_PidfdChildWatcherÚ_watcherÚ_ThreadedChildWatcher)ÚselfÚselectorÚ	__class__s   &&€r   r   Ú_UnixSelectorEventLoop.__init__=   s;   ø€ Ü‰Ñ˜Ô"Ø "ˆÔØ$&ˆÔ!Ü�?Š?Ü.Ó0ˆDŽMä1Ó3ˆDŽMr   c                óX  <€ \         SV `  4        \        P                  ! 4       '       g0   \	        V P
                  4       F  pV P                  V4       K  	  R# V P
                  '       d?   \        P                  ! R V : R2\        V R7       V P
                  P                  4        R# R# )zClosing the loop z@ on interpreter shutdown stage, skipping signal handlers removal©ÚsourceN)r   ÚcloseÚsysÚis_finalizingÚlistr    Úremove_signal_handlerÚwarningsÚwarnÚResourceWarningÚclear)r&   Úsigr(   s   & €r   r-   Ú_UnixSelectorEventLoop.closeF   sŒ   ø€ Ü‰‰ŒÜ× Ò ×"Ò"Ü˜D×1Ñ1Ö2�Ø×*Ñ*¨3Ö/ó 3ð ×$×$Ð$Ü—’Ð 1°$±ð :Hð Iô .Ø%)õ	+ð
 ×%Ñ%×+Ñ+Ö-ñ %r   c                óN   € V F  pV'       g   K  V P                  V4       K   	  R # r   )Ú_handle_signal)r&   Údatar   s   && r   Ú_process_self_dataÚ)_UnixSelectorEventLoop._process_self_dataT   s    € ÛˆFßáØ×Ñ Ö'ó	 r   c                ó”  € \         P                  ! V4      '       g   \         P                  ! V4      '       d   \        R4      hV P	                  V4       V P                  4         \        P                  ! V P                  P                  4       4       \        P                  ! Y#T R4      pYPP                   T&    \        P                  ! T\"        4       \        P$                  ! TR4       R#   \        \        3 d   p\        \        T4      4      hRp?ii ; i  \         d¡   pT P                   T T P                   '       gN    \        P                  ! R4       M5  \        \        3 d"   p\&        P(                  ! RT4        Rp?MRp?ii ; iTP*                  \*        P,                  8X  d   \        RT R24      hh Rp?ii ; i)z«Add a handler for a signal.  UNIX only.

Raise ValueError if the signal number is invalid or uncatchable.
Raise RuntimeError if there is a problem setting up the handler.
z3coroutines cannot be used with add_signal_handler()NFúset_wakeup_fd(-1) failed: %súsig ú cannot be caughtéÿÿÿÿ)r   ÚiscoroutineÚ_iscoroutinefunctionÚ	TypeErrorÚ_check_signalÚ_check_closedÚsignalÚset_wakeup_fdÚ_csockÚfilenor   ÚOSErrorÚRuntimeErrorÚstrr   ÚHandler    r   Úsiginterruptr   ÚinfoÚerrnoÚEINVAL)r&   r6   ÚcallbackÚargsÚexcÚhandleÚnexcs   &&&*   r   Úadd_signal_handlerÚ)_UnixSelectorEventLoop.add_signal_handler[   sv  € ô ×"Ò" 8×,Ò,Ü×/Ò/°×9Ò9Üð 8ó 9ð 9à×Ñ˜3ÔØ×ÑÔð	)ô
 × Ò  §¡×!3Ñ!3Ó!5Ô6ô —’˜x¨t°TÓ:ˆØ%+×Ñ˜cÑ"ð	ô �MŠM˜#Ô/Ô0ô ×Ò  UÖ+øô œGÐ$ô 	)Üœs 3›xÓ(Ð(ûð	)ûô ô 	Ø×%Ñ% cÐ*Ø×(×(Ð(ðFÜ×(Ò(¨Õ,øÜ"¤GÐ,ô FÜ—K’KÐ >À×EÑEûðFúð �y‰yœEŸL™LÔ(Ü" T¨#¨Ð.?Ð#@ÓAÐAàûð	úsZ   Á&.C/ Â;2D Ã/DÄ DÄDÄGÄ'GÅEÅGÅFÅ/FÆGÆFÆ2GÇGc                ó´   € V P                   P                  V4      pVf   R# VP                  '       d   V P                  V4       R# V P	                  V4       R# )z2Internal helper that is the actual signal handler.N)r    ÚgetÚ
_cancelledr1   Ú_add_callback_signalsafe)r&   r6   rV   s   && r   r9   Ú%_UnixSelectorEventLoop._handle_signalˆ   sH   € à×&Ñ&×*Ñ*¨3Ó/ˆØŠ>ÙØ××ÐØ×&Ñ& sÖ+à×)Ñ)¨&Ö1r   c                óH  € V P                  V4        V P                  V T\        P                  8X  d   \        P
                  pM\        P                  p \        P                  ! Y4       T P                  '       g    \        P                  ! R4       R# R#   \         d     R# i ; i  \         d5   pTP                  \        P                  8X  d   \        RT R24      hh Rp?ii ; i  \        \        3 d#   p\        P                  ! RT4        Rp?R# Rp?ii ; i)zgRemove a handler for a signal.  UNIX only.

Return True if a signal handler was removed, False if not.
Fr?   r@   Nr>   TrA   )rE   r    ÚKeyErrorrG   ÚSIGINTÚdefault_int_handlerÚSIG_DFLrK   rQ   rR   rL   rH   r   r   rP   )r&   r6   ÚhandlerrU   s   &&  r   r1   Ú,_UnixSelectorEventLoop.remove_signal_handler’   sù   € ð
 	×Ñ˜3Ôð	Ø×%Ñ% cÐ*ð ”&—-‘-ÔÜ×0Ñ0‰Gä—n‘nˆGð	Ü�MŠM˜#Ô'ð ×$×$Ð$ðAÜ×$Ò$ RÔ(ó øô- ô 	Úð	ûô ô 	Ø�y‰yœEŸL™LÔ(Ü" T¨#¨Ð.?Ð#@ÓAÐAàûð		ûô ¤Ð(ô AÜ—’Ð:¸C×@Ð@áûðAúsA   “B ÁB, Â C. ÂB)Â(B)Â,C+Â7/C&Ã&C+Ã.D!Ã?DÄD!c                ó    € \        V\        4      '       g   \        RV: 24      hV\        P                  ! 4       9  d   \        RV 24      hR# )z©Internal helper to validate a signal.

Raise ValueError if the signal number is invalid or uncatchable.
Raise RuntimeError if there is a problem setting up the handler.
zsig must be an int, not zinvalid signal number N)Ú
isinstanceÚintrD   rG   Úvalid_signalsr   )r&   r6   s   &&r   rE   Ú$_UnixSelectorEventLoop._check_signal²   sM   € ô ˜#œs×#Ò#ÜÐ6°s±gÐ>Ó?Ð?à”f×*Ò*Ó,Ô,ÜÐ5°c°UÐ;Ó<Ð<ñ -r   c                ó   € \        WW#V4      # r   )Ú_UnixReadPipeTransport©r&   ÚpipeÚprotocolÚwaiterÚextras   &&&&&r   Ú_make_read_pipe_transportÚ0_UnixSelectorEventLoop._make_read_pipe_transport¾   s   € ä% d°(ÀEÓJÐJr   c                ó   € \        WW#V4      # r   )Ú_UnixWritePipeTransportrm   s   &&&&&r   Ú_make_write_pipe_transportÚ1_UnixSelectorEventLoop._make_write_pipe_transportÂ   s   € ä& t°8ÀUÓKÐKr   c	           
   ‹  ó˜  "  € V P                   p
V P                  4       p\        WW#WEWg3R VRV/V	B pV
P                  VP	                  4       V P
                  V4        VG Rj  x€L
  V#  L  \        \        3 d    h \         d@    TP                  4        \        P                  ! TP                  4       4      G Rj  x€L 
  h i ; i5i)rp   rq   N)r$   Úcreate_futureÚ_UnixSubprocessTransportÚadd_child_handlerÚget_pidÚ_child_watcher_callbackÚ
SystemExitÚKeyboardInterruptÚBaseExceptionr-   r
   ÚshieldÚ_wait)r&   ro   rT   ÚshellÚstdinÚstdoutÚstderrÚbufsizerq   ÚkwargsÚwatcherrp   Útransps   &&&&&&&&&,   r   Ú_make_subprocess_transportÚ1_UnixSelectorEventLoop._make_subprocess_transportÆ   sË   é € ð —-‘-ˆØ×#Ñ#Ó%ˆÜ)¨$¸$Ø(-°vñ2à/5ð2à=Bð2ð +1ñ2ˆð 	×!Ñ! &§.¡.Ó"2Ø $× <Ñ <¸fô	Fð	Ø�LˆLð ˆñ øÜÔ-Ð.ô 	ØÜô 	Ø�L‰LŒNÜ—,’,˜vŸ|™|›~Ó.×.Ñ.Øð	üsB   ‚AC
ÁA, Á#A*Á$A, Á(C
Á*A, Á,CÂ8CÂ?CÃ CÃC
c                ó(   € VP                  V4       R # r   )Ú_process_exited)r&   ÚpidÚ
returncoderŠ   s   &&&&r   r}   Ú._UnixSelectorEventLoop._child_watcher_callbackÜ   s   € Ø×Ñ˜zÖ*r   ÚsslÚsockÚserver_hostnameÚssl_handshake_timeoutÚssl_shutdown_timeoutc          	   ƒ  ó0  "  € Ve   \        V\        4      '       g   Q hV'       d   Vf   \        R4      hM-Ve   \        R4      hVe   \        R4      hVe   \        R4      hVe†   Ve   \        R4      h\        P                  ! V4      p\
        P
                  ! \
        P                  \
        P                  ^ 4      p VP                  R4       V P                  WB4      G R j  x€L
  MmVf   \        R4      hVP                  \
        P                  8w  g    VP                  \
        P                  8w  d   \        RV: 24      hVP                  R4       V P                  WAW5VVR	7      G R j  x€L
 w  r‰W‰3#  L”   TP                  4        h ; i L!5i)
Nz/you have to pass server_hostname when using sslz+server_hostname is only meaningful with sslú1ssl_handshake_timeout is only meaningful with sslú0ssl_shutdown_timeout is only meaningful with sslú3path and sock can not be specified at the same timeFzno path and sock were specifiedú.A UNIX Domain Stream Socket was expected, got )r•   r–   )rg   rM   r   r   ÚfspathÚsocketÚAF_UNIXÚSOCK_STREAMÚsetblockingÚsock_connectr-   ÚfamilyÚtypeÚ_create_connection_transport)
r&   Úprotocol_factoryÚpathr’   r“   r”   r•   r–   Ú	transportro   s
   &&&$$$$$  r   Úcreate_unix_connectionÚ-_UnixSelectorEventLoop.create_unix_connectionß   s¢  é € ð Ò&¬*°_Äc×*JÒ*JÐJÐJßØÒ&Ü ØEóGð Gð 'ð Ò*Ü Ð!NÓOÐOØ$Ò0Ü ØGóIð Ià#Ò/Ü ØFóHð Hð ÒØÒÜ ØIóKð Kô —9’9˜T“?ˆDÜ—=’=¤§¡´×1CÑ1CÀQÓGˆDðØ× Ñ  Ô'Ø×'Ñ'¨Ó3×3Ñ3ð Š|Ü Ð!BÓCÐCØ—‘œvŸ~™~Ô-Ø—I‘I¤×!3Ñ!3Ô3Ü ØDÀTÁHÐMóOð Oà×Ñ˜UÔ#à$(×$EÑ$EØ CØ"7Ø!5ð %Fó %7÷ 7Ñˆ	ð Ð"Ð"ñ% 4øðØ—
‘
”Øúñ7ùsB   ‚$F§BFÃ%E> Ã'E<Ã(E> Ã,BFÅ2FÅ3	FÅ<E> Å>FÆFÚbacklogÚstart_servingTÚcleanup_socketc          	   ƒ  óú  "  € \        V\        4      '       d   \        R 4      hVe   V'       g   \        R4      hVe   V'       g   \        R4      hVeË   Ve   \        R4      h\        P
                  ! V4      p\        P                  ! \        P                  \        P                  4      pV^ ,          R9  dR    \        P                  ! \        P                  ! V4      P                  4      '       d   \        P                  ! V4        VP#                  V4       M\Vf   \        R4      hVP*                  \        P                  8w  g    VP,                  \        P                  8w  d   \        R	V: 24      hV	'       dM   VP/                  4       pV^ ,          R9  d/    \        P                  ! V4      P0                  V P2                  V&   VP5                  R
4       \6        P8                  ! W.VWTVV4      pV'       d/   VP;                  4        \<        P>                  ! ^ 4      G Rj  x€L
  V#   \         d     EL5\         d#   p
\        P                   ! RY*4        Rp
?
EL\Rp
?
ii ; i  \         dX   pTP%                  4        TP&                  \&        P(                  8X  d#   RT: R2p\        \&        P(                  T4      Rhh Rp?i TP%                  4        h ; i  \         d     EL%i ; i LË5i)z*ssl argument must be an SSLContext or NoneNr˜   r™   rš   z2Unable to check or remove stale UNIX socket %r: %rzAddress z is already in usez-path was not specified, and no sock specifiedr›   F)é    Ú ) rg   ÚboolrD   r   r   rœ   r�   rž   rŸ   ÚstatÚS_ISSOCKÚst_modeÚremoveÚFileNotFoundErrorrK   r   ÚerrorÚbindr-   rQ   Ú
EADDRINUSEr¢   r£   ÚgetsocknameÚst_inor!   r    r   ÚServerÚ_start_servingr
   Úsleep)r&   r¥   r¦   r“   rª   r’   r•   r–   r«   r¬   ÚerrrU   ÚmsgÚservers   &&&$$$$$$$    r   Úcreate_unix_serverÚ)_UnixSelectorEventLoop.create_unix_server  s‹  é € ô �cœ4× Ò ÜÐHÓIÐIà Ò,·SÜØCóEð Eð  Ò+·CÜØBóDð Dð ÒØÒÜ ØIóKð Kô —9’9˜T“?ˆDÜ—=’=¤§¡´×1CÑ1CÓDˆDð �A�w˜kÔ)ð6Ü—}’}¤R§W¢W¨T£]×%:Ñ%:×;Ò;ÜŸ	š	 $œðØ—	‘	˜$•ð Š|Ü ØCóEð Eð —‘œvŸ~™~Ô-Ø—I‘I¤×!3Ñ!3Ô3Ü ØDÀTÁHÐMóOð O÷ Ø×#Ñ#Ó%ˆDà�A�w˜kÔ)ðÜ68·g²g¸d³m×6JÑ6J�D×-Ñ-¨dÑ3ð 	×Ñ˜ÔÜ×#Ò# D¨&Ð2BØ$'Ð2GØ$8ó:ˆ÷ Ø×!Ñ!Ô#ô —+’+˜a“.× Ð àˆøôe )ô ÚÜô 6ä—L’Lð "*Ø+/÷6ò 6ûð6ûô ô Ø—
‘
”Ø—9‘9¤× 0Ñ 0Ô0ð % T¡HÐ,>Ð?�CÜ!¤%×"2Ñ"2°CÓ8¸dÐBàûðØ—
‘
”Øûô" )ô Úðúñ !ùsª   ‚-K;°K;ÁA5K;Â=9H4 Ã7H4 ÄI1 ÄA$K;ÆK;Æ#-K' ÇAK;È-K9È.K;È4I.È?K;ÉI.ÉI.ÉI)É#K;É)I.É.K;É1K$É<AKËK$Ë$K;Ë'K6Ë2K;Ë5K6Ë6K;c           
   ƒ  ó&  "  €  \         P                    TP                  4       p \         P                  ! T4      P                  pT'       d   TMTpT'       g   ^ # T P                  4       p	T P                  T	RYY4T^ 4       T	G Rj  x€L
 #   \         d    \        P                  ! R 4      hi ; i  \        \        P                  3 d   p\        P                  ! R4      hRp?ii ; i  \         d    \        P                  ! R4      hi ; i L‡5i)zos.sendfile() is not availableznot a regular fileN)r   ÚsendfileÚAttributeErrorr   ÚSendfileNotAvailableErrorrJ   ÚioÚUnsupportedOperationÚfstatÚst_sizerK   ry   Ú_sock_sendfile_native_impl)
r&   r“   ÚfileÚoffsetÚcountrJ   r¾   ÚfsizeÚ	blocksizeÚfuts
   &&&&&     r   Ú_sock_sendfile_nativeÚ,_UnixSelectorEventLoop._sock_sendfile_nativec  sÿ   é € ð	2Ü�KŠKð	MØ—[‘[“]ˆFð	MÜ—H’H˜VÓ$×,Ñ,ˆE÷ #‘E¨ˆ	ßÙà× Ñ Ó"ˆØ×'Ñ'¨¨T°4Ø(.°yÀ!ô	Eà�yÐøô% ô 	2Ü×6Ò6Ø0ó2ð 2ð	2ûô
 ¤× 7Ñ 7Ð8ô 	MÜ×6Ò6Ð7KÓLÐLûð	Mûô ô 	MÜ×6Ò6Ð7KÓLÐLð	Múñ ùsb   ‚D„B •B1 ¦ C* ÁDÁDÁ-DÂDÂDÂ"B.Â.DÂ1C'ÃC"Ã"C'Ã'DÃ*"DÄDc	                óF  € VP                  4       p	Ve   V P                  V4       VP                  4       '       d   V P                  WE4       R # V'       d4   Wh,
          pV^ 8:  d%   V P                  WE4       VP	                  V4       R # \        V\        P                  ^,          ^,           4      p \        P                  ! W”WW4      p
V
^ 8X  d%   V P                  WE4       VP	                  V4       R # WZ,          pWŠ,          pVf   V P                  W4       V P                  W�P                  VW“VWVWx4
       R #   \        \        3 d:    Tf   T P                  Y4       T P                  Y�P                  TY“TYVYx4
        R # \         dË   pTeU   TP                   \         P"                  8X  d6   \%        T4      \&        Jd#   \'        R\         P"                  4      pY¼n        TpT^ 8X  d?   \*        P,                  ! R4      pT P                  YE4       TP/                  T4        R p?R # T P                  YE4       TP/                  T4        R p?R # R p?i\0        \2        3 d    h \4         d.   pT P                  YE4       TP/                  T4        R p?R # R p?ii ; i)Nzsocket is not connectedzos.sendfile call failed)rJ   Úremove_writerÚ	cancelledÚ_sock_sendfile_update_fileposÚ
set_resultÚminr.   Úmaxsizer   rÄ   Ú_sock_add_cancellation_callbackÚ
add_writerrË   ÚBlockingIOErrorÚInterruptedErrorrK   rQ   ÚENOTCONNr£   ÚConnectionErrorÚ	__cause__r   rÆ   Úset_exceptionr~   r   r€   )r&   rÑ   Úregistered_fdr“   rJ   rÍ   rÎ   rÐ   Ú
total_sentÚfdÚsentrU   Únew_excr¾   s   &&&&&&&&&     r   rË   Ú1_UnixSelectorEventLoop._sock_sendfile_native_implz  s5  € à�[‰[‹]ˆØÒ$ð
 ×Ñ˜}Ô-Ø�=‰=�?Š?Ø×.Ñ.¨vÔ>ÙßØÕ*ˆIØ˜AŒ~Ø×2Ñ2°6ÔBØ—‘˜zÔ*Ùô ˜	¤3§;¡;°¥>°AÕ#5Ó6ˆ	ð1	FÜ—;’;˜r¨6Ó=ˆDðJ �qŒyà×2Ñ2°6ÔBØ—‘˜zÖ*à•�ØÕ"�
Ø Ò(Ø×8Ñ8¸ÔCØ—‘ ×$CÑ$CÀSØ "¨&Ø &¨yöFøô[  Ô!1Ð2ô 	BØÒ$Ø×4Ñ4°SÔ?Ø�O‰O˜B× ?Ñ ?ÀØ fØ"¨9÷Bô ô 	'ØÒ)Ø—I‘I¤§¡Ô/Ü˜“I¤_Ó4ô
 *Ø-¬u¯~©~ó?�à$'Ô!Ø�Ø˜QŒô
 !×:Ò:Ø-ó/�à×2Ñ2°6ÔBØ×!Ñ! #×&Ò&à×2Ñ2°6ÔBØ×!Ñ! #×&Ò&ûÜÔ-Ð.ô 	ØÜô 	#Ø×.Ñ.¨vÔ>Ø×Ñ˜c×"Ò"ûð	#úsD   Â3D< Ä<AJ ÆJ ÆJ ÆBIÈ,"IÉJ É'
J É2J É3"JÊJ c                óP   € \         P                  ! W\         P                  4       R # r   )r   ÚlseekÚSEEK_SET)r&   rJ   rÍ   s   &&&r   r×   Ú4_UnixSelectorEventLoop._sock_sendfile_update_fileposÃ  s   € ä
�Š�¤§¡Ö-r   c                ó:   a a€ V V3R  lpVP                  V4       R# )c                 óŒ   <€ V P                  4       '       d-   SP                  4       pVR8w  d   SP                  V4       R# R# R# )é   NrA   )rÖ   rJ   rÕ   )rÑ   rå   r&   r“   s   & €€r   ÚcbÚB_UnixSelectorEventLoop._sock_add_cancellation_callback.<locals>.cbÈ  s8   ø€ Ø�}‰}�ŠØ—[‘[“]�Ø˜”8Ø×&Ñ& rÖ*ñ ñ r   N)Úadd_done_callback)r&   rÑ   r“   rð   s   f&f r   rÛ   Ú6_UnixSelectorEventLoop._sock_add_cancellation_callbackÇ  s   ù€ ö	+ð
 	×Ñ˜bÖ!r   c                ó®  <€ WP                   9   d   VP                  4       pMR p\        SV `  V4       Vea   V P                   V,          pV P                   V  \        P
                  ! V4      P                  V8X  d   \        P                  ! V4       R # R # R #   \         d     R # \         d#   p\        P                  ! RY$4        R p?R # R p?ii ; i)Nz/Unable to clean up listening UNIX socket %r: %r)r!   r¹   r   Ú_stop_servingr   r±   rº   Úunlinkrµ   rK   r   r¶   )r&   r“   r¦   Úprev_inor¾   r(   s   &&   €r   rõ   Ú$_UnixSelectorEventLoop._stop_servingÏ  s¹   ø€ à×,Ñ,Ô,Ø×#Ñ#Ó%‰DàˆDä‰Ñ˜dÔ#àÒØ×0Ñ0°Õ6ˆHØ×)Ñ)¨$Ð/ð2Ü—7’7˜4“=×'Ñ'¨8Ô3Ü—I’I˜d–Oñ 4ñ	 øô %ô ÚÜô 2Ü—’ð &Ø'+÷2ò 2ûð2ús$   Á;B ÂCÂ(CÂ1CÂ2CÃC)r    r!   r$   r   ©NN)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r-   r;   rX   r9   r1   rE   rr   rv   r‹   r}   r¨   rÁ   rÒ   rË   r×   rÛ   rõ   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©r(   Ú__classdict__s   @@r   r   r   6   sè   ù‡ € ñ÷4õ.ò(ò+òZ2òò@
=ôKôLôò,+ñ0#àð0#àð0#ð !ð0#ð #'ð	0#ð
 "&õ0#ñdPàðPà"ðPà(,ðPð #'ðPð "&ð	Pð
 ðPð
 04õPòdò.GFòR.ò"÷2õ 2r   r   c                   ó¬   a a€ ] tR tRt oRtRV 3R lltR tR tR tR t	R t
R tR	 tR
 tR tR t]P"                  3R ltRR ltR tR tRtVtV ;t# )rl   iå  c                ób  <€ \         SV `  V4       W P                  R &   Wn        W n        VP                  4       V n        W0n        RV n        RV n	        \        P                  ! V P                  4      P                  p\        P                  ! V4      '       gY   \        P                  ! V4      '       g=   \        P                   ! V4      '       g!   RV n        RV n        RV n        \#        R4      h\        P$                  ! V P                  R4       V P                  P'                  V P                  P(                  V 4       V P                  P'                  V P*                  V P                  V P,                  4       Ve.   V P                  P'                  \.        P0                  VR4       R# R# )rn   FNz)Pipe transport is for pipes/sockets only.)r   r   Ú_extraÚ_loopÚ_piperJ   Ú_filenoÚ	_protocolÚ_closingÚ_pausedr   rÉ   r³   r±   ÚS_ISFIFOr²   ÚS_ISCHRr   Úset_blockingÚ	call_soonÚconnection_madeÚ_add_readerÚ_read_readyr   Ú_set_result_unless_cancelled)r&   Úlooprn   ro   rp   rq   Úmoder(   s   &&&&&& €r   r   Ú_UnixReadPipeTransport.__init__é  s/  ø€ Ü‰Ñ˜ÔØ"�‰�FÑØŒ
ØŒ
Ø—{‘{“}ˆŒØ!ŒØˆŒØˆŒä�xŠx˜Ÿ™Ó%×-Ñ-ˆÜ—’˜d×#Ò#Ü—’˜d×#Ò#Ü—’˜T×"Ò"ØˆDŒJØˆDŒLØ!ˆDŒNÜÐHÓIÐIä
�Š˜Ÿ™ eÔ,à�
‰
×Ñ˜TŸ^™^×;Ñ;¸TÔBà�
‰
×Ñ˜T×-Ñ-Ø!Ÿ\™\¨4×+;Ñ+;ô	=àÒà�J‰J× Ñ ¤×!EÑ!EØ!'¨ö/ñ r   c                ól   € V P                  4       '       g   R # V P                  P                  W4       R # r   )Ú
is_readingr  r  )r&   rå   rS   s   &&&r   r  Ú"_UnixReadPipeTransport._add_reader  s$   € Ø�‰× Ò ÙØ�
‰
×Ñ˜rÖ,r   c                óV   € V P                   '       * ;'       d    V P                  '       * # r   )r  r  ©r&   s   &r   r  Ú!_UnixReadPipeTransport.is_reading  s   € Ø—<‘<Ô×5Ð5¨¯©Ô$5Ð5r   c                óœ  € V P                   P                  .pV P                  f   VP                  R4       M#V P                  '       d   VP                  R4       VP                  RV P
                   24       \        V P                  RR 4      pV P                  e`   Ve\   \        P                  ! W P
                  \        P                  4      pV'       d   VP                  R4       MCVP                  R4       M1V P                  e   VP                  R4       MVP                  R4       RP                  R	P                  V4      4      # )
NÚclosedÚclosingúfd=Ú	_selectorÚpollingÚidleÚopenú<{}>Ú )r(   rú   r  Úappendr  r	  Úgetattrr  r	   Ú_test_selector_eventÚ	selectorsÚ
EVENT_READÚformatÚjoin)r&   rP   r'   r#  s   &   r   Ú__repr__Ú_UnixReadPipeTransport.__repr__  sê   € Ø—‘×'Ñ'Ð(ˆØ�:‰:ÒØ�K‰K˜Õ!Ø�]�]ˆ]Ø�K‰K˜	Ô"Ø�‰�c˜$Ÿ,™,˜Ð(Ô)Ü˜4Ÿ:™: {°DÓ9ˆØ�:‰:Ò! hÒ&:Ü%×:Ò:ØŸ,™,¬	×(<Ñ(<ó>ˆGçØ—‘˜IÕ&à—‘˜FÕ#Ø�Z‰ZÒ#Ø�K‰K˜Õà�K‰K˜Ô!Ø�}‰}˜SŸX™X d›^Ó,Ð,r   c                ó”  €  \         P                  ! V P                  V P                  4      pV'       d   V P                  P                  V4       R# V P                  P                  4       '       d   \        P                  ! R V 4       RV n
        V P                  P                  V P                  4       V P                  P                  V P                  P                  4       V P                  P                  V P                  R4       R#   \        \         3 d     R# \"         d   pT P%                  TR4        Rp?R# Rp?ii ; i)ú%r was closed by peerTNz"Fatal read error on pipe transport)r   Úreadr	  Úmax_sizer
  Údata_receivedr  Ú	get_debugr   rP   r  Ú_remove_readerr  Úeof_receivedÚ_call_connection_lostrÝ   rÞ   rK   Ú_fatal_error)r&   r:   rU   s   &  r   r  Ú"_UnixReadPipeTransport._read_ready$  så   € ð	GÜ—7’7˜4Ÿ<™<¨¯©Ó7ˆD÷ Ø—‘×,Ñ,¨TÖ2à—:‘:×'Ñ'×)Ò)Ü—K’KÐ 7¸Ô>Ø $�”Ø—
‘
×)Ñ)¨$¯,©,Ô7Ø—
‘
×$Ñ$ T§^¡^×%@Ñ%@ÔAØ—
‘
×$Ñ$ T×%?Ñ%?ÀÖFøô  Ô!1Ð2ô 	ÚÜô 	IØ×Ñ˜cÐ#G×HÒHûð	Iús#   ‚+D ÄEÄ EÄ)EÄ*EÅEc                ó   € V P                  4       '       g   R # RV n        V P                  P                  V P                  4       V P                  P                  4       '       d   \        P                  ! RV 4       R # R # )NTz%r pauses reading)r  r  r  r7  r	  r6  r   Údebugr  s   &r   Úpause_readingÚ$_UnixReadPipeTransport.pause_reading6  sV   € Ø�‰× Ò ÙØˆŒØ�
‰
×!Ñ! $§,¡,Ô/Ø�:‰:×Ñ×!Ò!Ü�LŠLÐ,¨dÖ3ñ "r   c                ó2  € V P                   '       g   V P                  '       g   R # RV n        V P                  P                  V P                  V P
                  4       V P                  P                  4       '       d   \        P                  ! RV 4       R # R # )NFz%r resumes reading)	r  r  r  r  r	  r  r6  r   r=  r  s   &r   Úresume_readingÚ%_UnixReadPipeTransport.resume_reading>  sb   € Ø�=�=ˆ= §§ ÙØˆŒØ�
‰
×Ñ˜tŸ|™|¨T×-=Ñ-=Ô>Ø�:‰:×Ñ×!Ò!Ü�LŠLÐ-¨tÖ4ñ "r   c                ó   € Wn         R # r   ©r
  ©r&   ro   s   &&r   Úset_protocolÚ#_UnixReadPipeTransport.set_protocolF  ó   € Ø!Žr   c                ó   € V P                   # r   rD  r  s   &r   Úget_protocolÚ#_UnixReadPipeTransport.get_protocolI  ó   € Ø�~‰~Ðr   c                ó   € V P                   # r   ©r  r  s   &r   Ú
is_closingÚ!_UnixReadPipeTransport.is_closingL  ó   € Ø�}‰}Ðr   c                óP   € V P                   '       g   V P                  R 4       R # R # r   )r  Ú_closer  s   &r   r-   Ú_UnixReadPipeTransport.closeO  s   € Ø�}�}ˆ}Ø�K‰K˜Öñ r   c                ó€   € V P                   e0   V! RV : 2\        V R7       V P                   P                  4        R # R # ©Nzunclosed transport r+   ©r  r4   r-   ©r&   Ú_warns   &&r   Ú__del__Ú_UnixReadPipeTransport.__del__S  ó5   € Ø�:‰:Ò!ÙÐ'¨¡xÐ0´/È$ÕOØ�J‰J×ÑÖñ "r   c           
     ó`  € \        V\        4      '       dZ   VP                  \        P                  8X  d;   V P                  P                  4       '       d   \        P                  ! R WRR7       M-V P                  P                  RVRVRV RV P                  /4       V P                  V4       R# ©z%r: %sT)Úexc_infoÚmessageÚ	exceptionr§   ro   N)rg   rK   rQ   ÚEIOr  r6  r   r=  Úcall_exception_handlerr
  rS  ©r&   rU   r`  s   &&&r   r:  Ú#_UnixReadPipeTransport._fatal_errorX  s   € ä�sœG×$Ò$¨¯©´e·i±iÔ)?Ø�z‰z×#Ñ#×%Ò%Ü—’˜X t¸tÕDøà�J‰J×-Ñ-Ø˜7Ø˜SØ˜TØ˜DŸN™Nð	/ô ð 	�‰�CÖr   c                óª   € R V n         V P                  P                  V P                  4       V P                  P	                  V P
                  V4       R# ©TN)r  r  r7  r	  r  r9  ©r&   rU   s   &&r   rS  Ú_UnixReadPipeTransport._closef  s9   € ØˆŒØ�
‰
×!Ñ! $§,¡,Ô/Ø�
‰
×Ñ˜T×7Ñ7¸Ö=r   c                ó  €  V P                   P                  V4       V P                  P                  4        R V n        R V n         R V n        R #   T P                  P                  4        R T n        R T n         R T n        i ; ir   ©r
  Úconnection_lostr  r-   r  rh  s   &&r   r9  Ú,_UnixReadPipeTransport._call_connection_lostk  óg   € ð	Ø�N‰N×*Ñ*¨3Ô/à�J‰J×ÑÔØˆDŒJØ!ˆDŒNØˆDŽJøð �J‰J×ÑÔØˆDŒJØ!ˆDŒNØˆD�Júó   ‚A Á1A?)r  r	  r  r  r  r
  i   rù   ©zFatal error on pipe transport)rú   rû   rü   rý   r4  r   r  r  r/  r  r>  rA  rF  rJ  rO  r-   r2   r3   rZ  r:  rS  r9  rÿ   r   r  r  s   @@r   rl   rl   å  sd   ù‡ € à€H÷/ò<-ò
6ò-ò*Gò$4ò5ò"òòòð %ŸM™Mô ô
ò>÷
ò r   rl   c                   ó¸   a a€ ] tR tRt oRV 3R lltR tR tR tR tR t	R t
R	 tR
 tR tR tR t]P"                  3R ltR tRR ltRR ltR tRtVtV ;t# )ru   iu  c                óz  <€ \         SV `  WQ4       W P                  R &   W n        VP	                  4       V n        W0n        \        4       V n        ^ V n	        RV n
        \        P                  ! V P
                  4      pVP                  p\        P                  ! V4      p\        P                   ! V4      p	\        P"                  ! V4      p
V'       g1   V	'       g)   V
'       g!   RV n        RV n        RV n        \%        R4      h\        P&                  ! V P
                  R4       V P(                  P+                  V P                  P,                  V 4       \.        P0                  R9   ;'       d    T	;'       d    VP2                  ^ 8„  pV
'       g6   V	'       ds   \.        P0                  P5                  R4      '       gN   V'       gF   V P(                  P+                  V P(                  P6                  V P
                  V P8                  4       Ve.   V P(                  P+                  \:        P<                  VR4       R# R# )rn   FNz?Pipe transport is only for pipes, sockets and character devicesÚaix>   ÚiosÚtvosÚdarwinÚsunos5Úwatchos)r   r   r  r  rJ   r	  r
  Ú	bytearrayÚ_bufferÚ
_conn_lostr  r   rÉ   r³   r±   r  r  r²   r   r  r  r  r  r.   ÚplatformÚst_nlinkÚ
startswithr  r  r   r  )r&   r  rn   ro   rp   rq   Ú	pipe_statr  Úis_charÚis_fifoÚ	is_socketÚ!is_named_fifo_without_close_eventr(   s   &&&&&&      €r   r   Ú _UnixWritePipeTransport.__init__x  s¦  ø€ Ü‰Ñ˜Ô%Ø"�‰�FÑØŒ
Ø—{‘{“}ˆŒØ!ŒÜ “{ˆŒØˆŒØˆŒä—H’H˜TŸ\™\Ó*ˆ	Ø× Ñ ˆÜ—,’,˜tÓ$ˆÜ—-’- Ó%ˆÜ—M’M $Ó'ˆ	ßŸ7§iØˆDŒJØˆDŒLØ!ˆDŒNÜð Dó Eð Eô 	�Š˜Ÿ™ eÔ,Ø�
‰
×Ñ˜TŸ^™^×;Ñ;¸TÔBô �L‰LÐJÑJ÷ 3ð 3Ø÷3ð 3Ø%×.Ñ.°Ñ2ð 	*÷ ŸÜ!$§¡×!8Ñ!8¸×!?Ò!?ß!Bà�J‰J× Ñ  §¡×!7Ñ!7Ø!%§¡¨t×/?Ñ/?ôAð Òà�J‰J× Ñ ¤×!EÑ!EØ!'¨ö/ñ r   c                óä  € V P                   P                  .pV P                  f   VP                  R4       M#V P                  '       d   VP                  R4       VP                  RV P
                   24       \        V P                  RR 4      pV P                  e„   Ve€   \        P                  ! W P
                  \        P                  4      pV'       d   VP                  R4       MVP                  R4       V P                  4       pVP                  RV 24       M1V P                  e   VP                  R4       MVP                  R4       R	P                  R
P                  V4      4      # )Nr  r   r!  r"  r#  r$  zbufsize=r%  r&  r'  )r(   rú   r  r(  r  r	  r)  r  r	   r*  r+  ÚEVENT_WRITEÚget_write_buffer_sizer-  r.  )r&   rP   r'   r#  r‡   s   &    r   r/  Ú _UnixWritePipeTransport.__repr__ª  s  € Ø—‘×'Ñ'Ð(ˆØ�:‰:ÒØ�K‰K˜Õ!Ø�]�]ˆ]Ø�K‰K˜	Ô"Ø�‰�c˜$Ÿ,™,˜Ð(Ô)Ü˜4Ÿ:™: {°DÓ9ˆØ�:‰:Ò! hÒ&:Ü%×:Ò:ØŸ,™,¬	×(=Ñ(=ó?ˆGçØ—‘˜IÕ&à—‘˜FÔ#à×0Ñ0Ó2ˆGØ�K‰K˜( 7 )Ð,Õ-Ø�Z‰ZÒ#Ø�K‰K˜Õà�K‰K˜Ô!Ø�}‰}˜SŸX™X d›^Ó,Ð,r   c                ó,   € \        V P                  4      # r   )Úlenrz  r  s   &r   r‡  Ú-_UnixWritePipeTransport.get_write_buffer_sizeÂ  s   € Ü�4—<‘<Ó Ð r   c                óî   € V P                   P                  4       '       d   \        P                  ! R V 4       V P                  '       d   V P                  \        4       4       R# V P                  4        R# )r2  N)r  r6  r   rP   rz  rS  ÚBrokenPipeErrorr  s   &r   r  Ú#_UnixWritePipeTransport._read_readyÅ  sE   € à�:‰:×Ñ×!Ò!Ü�KŠKÐ/°Ô6Ø�<�<ˆ<Ø�K‰KœÓ)Ö*à�K‰KŽMr   c                óà  € \        V\        \        \        34      '       g   Q \	        V4      4       h\        V\        4      '       d   \        V4      pV'       g   R # V P
                  '       g   V P                  '       dQ   V P
                  \        P                  8¼  d   \        P                  ! R4       V ;P
                  ^,          un        R # V P                  '       gz    \        P                  ! V P                  V4      pT\+        T4      8X  d   R # T^ 8”  d   \        T4      TR  pT P,                  P/                  T P                  T P0                  4       V ;P                  V,          un        V P3                  4        R #   \        \         3 d    ^ p L—\"        \$        3 d    h \&         d7   pT ;P
                  ^,          un        T P)                  TR4        R p?R # R p?ii ; i)Nz=pipe closed by peer or os.write(pipe, data) raised exception.ú#Fatal write error on pipe transport)rg   Úbytesry  Ú
memoryviewÚreprr{  r  r   Ú!LOG_THRESHOLD_FOR_CONNLOST_WRITESr   Úwarningrz  r   Úwriter	  rÝ   rÞ   r~   r   r€   r:  rŠ  r  Ú_add_writerÚ_write_readyÚ_maybe_pause_protocol)r&   r:   ÚnrU   s   &&  r   r–  Ú_UnixWritePipeTransport.writeÎ  sc  € Ü˜$¤¬	´:Ð >×?Ò?ÐKÄÀdÃÓKÐ?Ü�dœI×&Ò&Ü˜dÓ#ˆDßÙà�?�?ˆ?˜dŸmŸm˜mØ�‰¤)×"MÑ"MÔMÜ—’ð  Hô Ià�OŠO˜qÕ �OÙà�|�|ˆ|ð	Ü—H’H˜TŸ\™\¨4Ó0�ð ”C˜“IŒ~ÙØ�Q”Ü! $Ó'¨¨Ð+�Ø�J‰J×"Ñ" 4§<¡<°×1BÑ1BÔCà�Š˜Õ�Ø×"Ñ"Ö$øô $Ô%5Ð6ô Ø’ÜÔ 1Ð2ô ØÜ ô Ø—’ 1Õ$•Ø×!Ñ! #Ð'LÔMÝûðús*   Ã$!F ÆG-ÆG-Æ+
G-Æ6G-Æ7+G(Ç(G-c                ót  € V P                   '       g   Q R 4       h \        P                  ! V P                  V P                   4      pV\	        V P                   4      8X  dš   V P                   P                  4        V P                  P                  V P                  4       V P                  4        V P                  '       d7   V P                  P                  V P                  4       V P                  R4       R# V^ 8”  d   V P                   RV1 R# R#   \        \        3 d     R# \        \        3 d    h \          dv   pT P                   P                  4        T ;P"                  ^,          un        T P                  P                  T P                  4       T P%                  TR4        Rp?R# Rp?ii ; i)zData should not be emptyNr�  )rz  r   r–  r	  rŠ  r5   r  Ú_remove_writerÚ_maybe_resume_protocolr  r7  r9  rÝ   rÞ   r~   r   r€   r{  r:  )r&   rš  rU   s   &  r   r˜  Ú$_UnixWritePipeTransport._write_readyñ  sD  € Ø�|�|ˆ|Ð7Ð7Ó7ˆ|ð	%Ü—’˜Ÿ™ t§|¡|Ó4ˆAð ”C˜Ÿ™Ó%Ô%Ø—‘×"Ñ"Ô$Ø—
‘
×)Ñ)¨$¯,©,Ô7Ø×+Ñ+Ô-Ø—=—=�=Ø—J‘J×-Ñ-¨d¯l©lÔ;Ø×.Ñ.¨tÔ4ÙØ�Q”Ø—L‘L  ! Ò$ñ øô)  Ô!1Ð2ô 	ÚÜÔ-Ð.ô 	ØÜô 	JØ�L‰L×ÑÔ Ø�OŠO˜qÕ �Oð �J‰J×%Ñ% d§l¡lÔ3Ø×Ñ˜cÐ#H×IÒIûð	Jús*   ›+D ÄF7Ä'F7Ä6
F7ÅF7ÅA*F2Æ2F7c                ó   € R # )Tr   r  s   &r   Úcan_write_eofÚ%_UnixWritePipeTransport.can_write_eof  s   € Ùr   c                ó"  € V P                   '       d   R # V P                  '       g   Q hRV n         V P                  '       gN   V P                  P	                  V P
                  4       V P                  P                  V P                  R 4       R # R # )NT)r  r  rz  r  r7  r	  r  r9  r  s   &r   Ú	write_eofÚ!_UnixWritePipeTransport.write_eof  sa   € Ø�=�=ˆ=ÙØ�z�zˆzÐˆzØˆŒØ�|�|ˆ|Ø�J‰J×%Ñ% d§l¡lÔ3Ø�J‰J× Ñ  ×!;Ñ!;¸TÖBñ r   c                ó   € Wn         R # r   rD  rE  s   &&r   rF  Ú$_UnixWritePipeTransport.set_protocol  rH  r   c                ó   € V P                   # r   rD  r  s   &r   rJ  Ú$_UnixWritePipeTransport.get_protocol  rL  r   c                ó   € V P                   # r   rN  r  s   &r   rO  Ú"_UnixWritePipeTransport.is_closing  rQ  r   c                ón   € V P                   e'   V P                  '       g   V P                  4        R # R # R # r   )r  r  r¤  r  s   &r   r-   Ú_UnixWritePipeTransport.close"  s&   € Ø�:‰:Ò!¨$¯-¯-¨-à�N‰NÖñ +8Ñ!r   c                ó€   € V P                   e0   V! RV : 2\        V R7       V P                   P                  4        R # R # rV  rW  rX  s   &&r   rZ  Ú_UnixWritePipeTransport.__del__'  r\  r   c                ó(   € V P                  R 4       R # r   )rS  r  s   &r   ÚabortÚ_UnixWritePipeTransport.abort,  s   € Ø�‰�DÖr   c           
     ó"  € \        V\        4      '       d;   V P                  P                  4       '       d   \        P
                  ! R WRR7       M-V P                  P                  RVRVRV RV P                  /4       V P                  V4       R# r^  )	rg   rK   r  r6  r   r=  rc  r
  rS  rd  s   &&&r   r:  Ú$_UnixWritePipeTransport._fatal_error/  sp   € ä�cœ7×#Ò#Ø�z‰z×#Ñ#×%Ò%Ü—’˜X t¸tÕDøà�J‰J×-Ñ-Ø˜7Ø˜SØ˜TØ˜DŸN™Nð	/ô ð 	�‰�CÖr   c                óL  € R V n         V P                  '       d&   V P                  P                  V P                  4       V P                  P                  4        V P                  P                  V P                  4       V P                  P                  V P                  V4       R# rg  )	r  rz  r  r�  r	  r5   r7  r  r9  rh  s   &&r   rS  Ú_UnixWritePipeTransport._close=  sh   € ØˆŒØ�<�<ˆ<Ø�J‰J×%Ñ% d§l¡lÔ3Ø�‰×ÑÔØ�
‰
×!Ñ! $§,¡,Ô/Ø�
‰
×Ñ˜T×7Ñ7¸Ö=r   c                ó  €  V P                   P                  V4       V P                  P                  4        R V n        R V n         R V n        R #   T P                  P                  4        R T n        R T n         R T n        i ; ir   rk  rh  s   &&r   r9  Ú-_UnixWritePipeTransport._call_connection_lostE  rn  ro  )rz  r  r{  r	  r  r  r
  rù   rp  r   )rú   rû   rü   rý   r   r/  r‡  r  r–  r˜  r¡  r¤  rF  rJ  rO  r-   r2   r3   rZ  r±  r:  rS  r9  rÿ   r   r  r  s   @@r   ru   ru   u  sk   ù‡ € ÷0/òd-ò0!òò!%òF%ò8òCò"òòòð
 %ŸM™Mô ò
ôô>÷ò r   ru   c                   ó&   a € ] tR tRt o R tRtV tR# )rz   iO  c                ó   € R pV\         P                  8X  d=   \        P                  P	                  R4      '       d   \
        P                  ! 4       w  r8 \         P                  ! V3RVRVRVRVRRRV/VB V n        Ve>   VP                  4        \        VP                  4       R	VR
7      V P                  n        R pVe#   VP                  4        VP                  4        R # R #   Te"   TP                  4        TP                  4        i i ; i)Nrs  rƒ   r„   r…   r†   Úuniversal_newlinesFr‡   Úwb)Ú	buffering)Ú
subprocessÚPIPEr.   r|  r~  r�   Ú
socketpairÚPopenÚ_procr-   r%  Údetachr„   )	r&   rT   rƒ   r„   r…   r†   r‡   rˆ   Ústdin_ws	   &&&&&&&, r   Ú_startÚ_UnixSubprocessTransport._startQ  s   € ØˆØ”J—O‘OÔ#¬¯©×(?Ñ(?À×(FÒ(Fô
 $×.Ò.Ó0‰NˆEð	 Ü#×)Ò)ØñEØ!ðEØ).ðEØ7=ðEØFLðEà#(ðEà29ðEà=CñEˆDŒJð Ò"Ø—‘”Ü#'¨¯©Ó(8¸$È'Ô#R�—
‘
Ô Ø�àÒ"Ø—‘”Ø—‘–ñ #øˆwÒ"Ø—‘”Ø—‘•ð #ús   ÁA)C& Ã&'D)rÂ  N)rú   rû   rü   rý   rÅ  rÿ   r   ©r  s   @r   rz   rz   O  s   ø‡ € ÷ ð  r   rz   c                   ó0   a € ] tR tRt o RtR tR tRtV tR# )r#   ig  a  Child watcher implementation using Linux's pid file descriptors.

This child watcher polls process file descriptors (pidfds) to await child
process termination. In some respects, PidfdChildWatcher is a "Goldilocks"
child watcher implementation. It doesn't require signals or threads, doesn't
interfere with any processes launched outside the event loop, and scales
linearly with the number of subprocesses launched by the event loop. The
main disadvantage is that pidfds are specific to Linux, and only work on
recent (5.3+) kernels.
c                ó–   € \         P                  ! 4       p\        P                  ! V4      pVP	                  WPP
                  WW#4       R # r   )r   Úget_running_loopr   Ú
pidfd_openr  Ú_do_wait)r&   r�   rS   rT   r  Úpidfds   &&&*  r   r{   Ú$_PidfdChildWatcher.add_child_handlers  s4   € Ü×&Ò&Ó(ˆÜ—’˜cÓ"ˆØ×Ñ˜§¡¨s¸8ÖJr   c                óf  € \         P                  ! 4       pVP                  V4        \        P                  ! V^ 4      w  rg\        V4      p\        P                  ! V4       V! W.VO5!   R#   \         d    ^ÿp\        P                  ! RT4        LHi ; i  \        P                  ! T4       i ; i)r®   zJchild process pid %d exit status already read:  will report returncode 255N)
r   rÊ  r7  r   Úwaitpidr   ÚChildProcessErrorr   r•  r-   )	r&   r�   rÍ  rS   rT   r  Ú_r   r�   s	   &&&&&    r   rÌ  Ú_PidfdChildWatcher._do_waitx  s“   € Ü×&Ò&Ó(ˆØ×Ñ˜EÔ"ð	ÜŸ
š
 3¨Ó*‰IˆAô 0°Ó7ˆJä�HŠH�UŒOÙ�Ð( 4Ö(øô !ô 	ð ˆJÜ�NŠNð.àöð		ûô �HŠH�U�Oús)   ¨A. ÁB Á.$BÂB ÂBÂB ÂB0r   N)	rú   rû   rü   rý   rþ   r{   rÌ  rÿ   r   rÇ  s   @r   r#   r#   g  s   ø‡ € ñ	òK÷
)ð )r   r#   c                   ób   a € ] tR tRt o RtR t]P                  3R ltR t	R t
R tR tR	tV tR
# )r%   i‹  a%  Threaded child watcher implementation.

The watcher uses a thread per process
for waiting for the process finish.

It doesn't require subscription on POSIX signal
but a thread creation is not free.

The watcher has O(1) complexity, its performance doesn't depend
on amount of spawn processes.
c                óJ   € \         P                  ! ^ 4      V n        / V n        R# )r®   N)Ú	itertoolsrÎ   Ú_pid_counterÚ_threadsr  s   &r   r   Ú_ThreadedChildWatcher.__init__˜  s   € Ü%ŸOšO¨AÓ.ˆÔØˆŽr   c                óð   € \        V P                  P                  4       4       Uu. uF  pVP                  4       '       g   K  VNK  	  ppV'       d   V! V P                   R 2\
        V R7       R# R# u upi )z0 has registered but not finished child processesr+   N)r0   rØ  ÚvaluesÚis_aliver(   r4   )r&   rY  ÚthreadÚthreadss   &&  r   rZ  Ú_ThreadedChildWatcher.__del__œ  sg   € Ü(,¨T¯]©]×-AÑ-AÓ-CÔ(Dó )Ñ(D˜fØ—o‘o×'÷ �6Ñ(Dˆð )çÙ�T—^‘^Ð$Ð$TÐUÜ!Ø÷ñ ùò)s   ¦A3ÁA3c                óä   € \         P                  ! 4       p\        P                  ! V P                  R \        V P                  4       2WAW#3RR7      pWPP                  V&   VP                  4        R# )zasyncio-waitpid-T)ÚtargetÚnamerT   ÚdaemonN)	r   rÊ  Ú	threadingÚThreadÚ_do_waitpidÚnextr×  rØ  Ústart)r&   r�   rS   rT   r  rÝ  s   &&&*  r   r{   Ú'_ThreadedChildWatcher.add_child_handler¤  s`   € Ü×&Ò&Ó(ˆÜ×!Ò!¨×)9Ñ)9Ø)9¼$¸t×?PÑ?PÓ:QÐ9RÐ'SØ(,°8Ð'BØ)-ô/ˆð $�‰�cÑØ�‰Žr   c                ó  € V^ 8”  g   Q h\        \        R4      '       d«    \        P                  ! \        P                  V\        P                  \        P
                  ,          4       VP                  4       '       d,   V P                  W4      w  rV\        P                  ! RW4       Mu VP                  V P                  WW44       MVV P                  W4      w  rWVP                  4       '       d   \        P                  ! RW4       MVP                  ! W5V.VO5!   V P                  P                  V4       R#   \         d     Lài ; i  \         d.    T P                  Y4      w  rV\        P                  ! RY4        Lei ; i)r®   Úwaitidz%Loop %r that handles pid %r is closedN)Úhasattrr   rë  ÚP_PIDÚWEXITEDÚWNOWAITrÑ  Ú	is_closedÚ_reapr   r•  Úcall_soon_threadsafeÚ_reap_and_notifyrL   rØ  Úpop)r&   r  Úexpected_pidrS   rT   r�   rÒ  r�   s   &&&&&   r   ræ  Ú!_ThreadedChildWatcher._do_waitpid­  s5  € Ø˜aÔÐÐä”2�x× Ò ðÜ—	’	œ"Ÿ(™( L´"·*±*¼r¿z¹zÕ2IÔJð �~‰~×ÒàŸ™ DÓ7‘�Ü—’ÐFØ#õ*ð.Ø×-Ñ-Ø×-Ñ-¨tØ õ(ð #Ÿj™j¨Ó<‰OˆCØ�~‰~×ÒÜ—’ÐFØ#õ*ð ×)Ò)¨(¸ÐKÀdÔKà�‰×Ñ˜,Ö'øô9 %ô áðûô $ô .à!ŸZ™Z¨Ó;‘F�CÜ—N’NÐ#JØ#'ö.ð.ús$   ¡A	D= Â,E Ä=EÅ
EÅ5FÆFc                ó@   € V P                  W4      w  rVV! WV.VO5!   R # r   )rñ  )r&   r  rõ  rS   rT   r�   r�   s   &&&&&  r   ró  Ú&_ThreadedChildWatcher._reap_and_notifyÖ  s   € ØŸ*™* TÓ8‰ˆÙ�Ð( 4Ö(r   c                ó  €  \         P                  ! V^ 4      w  r4\        V4      pVP                  4       '       d   \        P
                  ! RW%4       W53#   \         d!    Tp^ÿp\        P                  ! RT4        Y53# i ; i)r®   z$process %s exited with returncode %sz8Unknown child process pid %d, will report returncode 255)r   rÐ  r   r6  r   r=  rÑ  r•  )r&   r  rõ  r�   r   r�   s   &&&   r   rñ  Ú_ThreadedChildWatcher._reapÚ  s…   € ð	7ÜŸ*š* \°1Ó5‰KˆCô 0°Ó7ˆJØ�~‰~×ÒÜ—’ÐCØ)ô7àˆÐøô !ô 	ð ˆCØˆJÜ�NŠNØJØõð ˆÐð	ús   ‚A Á&BÂ B)r×  rØ  N)rú   rû   rü   rý   rþ   r   r2   r3   rZ  r{   ræ  ró  rñ  rÿ   r   rÇ  s   @r   r%   r%   ‹  s7   ø‡ € ñ
òð %ŸM™Mô òò'(òR)÷ð r   r%   c                  óÜ   € \        \        R 4      '       g   R#  \        P                  ! 4       p \        P                  ! \        P                  ! V ^ 4      4       R#   \
         d     R# i ; i)rË  FT)rì  r   Úgetpidr-   rË  rK   )r�   s    r   r"   r"   ì  sR   € Ü”2�|×$Ò$ÙðÜ�iŠi‹kˆÜ
�Š”—’˜s AÓ&Ô'ñ øô ô âðús   šA A ÁA+Á*A+c                   ó   € ] tR tRtRt]tRtR# )Ú_UnixDefaultEventLoopPolicyiø  zUNIX event loop policyr   N)rú   rû   rü   rý   rþ   r   Ú_loop_factoryrÿ   r   r   r   rþ  rþ  ø  s
   † Ù Ø*„Mr   rþ  )ÚSelectorEventLoopÚ	EventLoop)0rþ   rQ   rÇ   rÖ  r   r+  rG   r�   r±   r¾  r.   rä  r2   Ú r   r   r   r   r   r   r   r	   r
   r   Úlogr   Ú__all__r|  ÚImportErrorr   r   ÚBaseSelectorEventLoopr   ÚReadTransportrl   Ú_FlowControlMixinÚWriteTransportru   ÚBaseSubprocessTransportrz   r#   r%   r"   Ú_BaseDefaultEventLoopPolicyrþ  r   Ú_DefaultEventLoopPolicyr  r   r   r   Ú<module>r     s  ðÙ 8ã Û 	Û Û 	Û Û Û Û Û Û 
Û Û å Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý ð€ð ‡<�<�7ÔÙ
ÐCÓ
DÐDò	ò
ôl2˜_×BÑBô l2ô^M˜Z×5Ñ5ô Mô`W˜j×:Ñ:Ø(×7Ñ7ôWôt ˜×FÑFô  ÷0")ñ ")÷H_ñ _òB	ô+ &×"DÑ"Dô +ð
 +Ð Ø5Ð Ø‚	r   