/opt/alt/python311/lib64/python3.11/asyncio/__pycache__
NameSizeModeActions
base_events.cpython-311.opt-1.pyc911360644editdlrm
base_events.cpython-311.opt-2.pyc826860644editdlrm
base_events.cpython-311.pyc912190644editdlrm
base_futures.cpython-311.opt-1.pyc34020644editdlrm
base_futures.cpython-311.opt-2.pyc31630644editdlrm
base_futures.cpython-311.pyc34020644editdlrm
base_subprocess.cpython-311.opt-1.pyc165420644editdlrm
base_subprocess.cpython-311.opt-2.pyc164490644editdlrm
base_subprocess.cpython-311.pyc167170644editdlrm
base_tasks.cpython-311.opt-1.pyc41900644editdlrm
base_tasks.cpython-311.opt-2.pyc41900644editdlrm
base_tasks.cpython-311.pyc41900644editdlrm
constants.cpython-311.opt-1.pyc9770644editdlrm
constants.cpython-311.opt-2.pyc9770644editdlrm
constants.cpython-311.pyc9770644editdlrm
coroutines.cpython-311.opt-1.pyc39520644editdlrm
coroutines.cpython-311.opt-2.pyc38640644editdlrm
coroutines.cpython-311.pyc40110644editdlrm
events.cpython-311.opt-1.pyc378050644editdlrm
events.cpython-311.opt-2.pyc285000644editdlrm
events.cpython-311.pyc378050644editdlrm
exceptions.cpython-311.opt-1.pyc36570644editdlrm
exceptions.cpython-311.opt-2.pyc29840644editdlrm
exceptions.cpython-311.pyc36570644editdlrm
format_helpers.cpython-311.opt-1.pyc41450644editdlrm
format_helpers.cpython-311.opt-2.pyc39150644editdlrm
format_helpers.cpython-311.pyc41450644editdlrm
futures.cpython-311.opt-1.pyc181130644editdlrm
futures.cpython-311.opt-2.pyc147230644editdlrm
futures.cpython-311.pyc185180644editdlrm
locks.cpython-311.opt-1.pyc292210644editdlrm
locks.cpython-311.opt-2.pyc220200644editdlrm
locks.cpython-311.pyc292210644editdlrm
log.cpython-311.opt-1.pyc3080644editdlrm
log.cpython-311.opt-2.pyc2700644editdlrm
log.cpython-311.pyc3080644editdlrm
mixins.cpython-311.opt-1.pyc12100644editdlrm
mixins.cpython-311.opt-2.pyc11760644editdlrm
mixins.cpython-311.pyc12100644editdlrm
proactor_events.cpython-311.opt-1.pyc471640644editdlrm
proactor_events.cpython-311.opt-2.pyc467680644editdlrm
proactor_events.cpython-311.pyc477550644editdlrm
protocols.cpython-311.opt-1.pyc94590644editdlrm
protocols.cpython-311.opt-2.pyc44490644editdlrm
protocols.cpython-311.pyc94590644editdlrm
queues.cpython-311.opt-1.pyc128400644editdlrm
queues.cpython-311.opt-2.pyc102220644editdlrm
queues.cpython-311.pyc128400644editdlrm
runners.cpython-311.opt-1.pyc102470644editdlrm
runners.cpython-311.opt-2.pyc86400644editdlrm
runners.cpython-311.pyc102470644editdlrm
selector_events.cpython-311.opt-1.pyc641260644editdlrm
selector_events.cpython-311.opt-2.pyc621250644editdlrm
selector_events.cpython-311.pyc642060644editdlrm
sslproto.cpython-311.opt-1.pyc434600644editdlrm
sslproto.cpython-311.opt-2.pyc395190644editdlrm
sslproto.cpython-311.pyc435260644editdlrm
staggered.cpython-311.opt-1.pyc62190644editdlrm
staggered.cpython-311.opt-2.pyc40940644editdlrm
staggered.cpython-311.pyc66500644editdlrm
streams.cpython-311.opt-1.pyc346000644editdlrm
streams.cpython-311.opt-2.pyc287960644editdlrm
streams.cpython-311.pyc350040644editdlrm
subprocess.cpython-311.opt-1.pyc126490644editdlrm
subprocess.cpython-311.opt-2.pyc125270644editdlrm
subprocess.cpython-311.pyc126760644editdlrm
taskgroups.cpython-311.opt-1.pyc80010644editdlrm
taskgroups.cpython-311.opt-2.pyc73180644editdlrm
taskgroups.cpython-311.pyc81050644editdlrm
tasks.cpython-311.opt-1.pyc409290644editdlrm
tasks.cpython-311.opt-2.pyc330120644editdlrm
tasks.cpython-311.pyc410190644editdlrm
threads.cpython-311.opt-1.pyc13070644editdlrm
threads.cpython-311.opt-2.pyc8490644editdlrm
threads.cpython-311.pyc13070644editdlrm
timeouts.cpython-311.opt-1.pyc78420644editdlrm
timeouts.cpython-311.opt-2.pyc62410644editdlrm
timeouts.cpython-311.pyc80040644editdlrm
transports.cpython-311.opt-1.pyc151630644editdlrm
transports.cpython-311.opt-2.pyc98100644editdlrm
transports.cpython-311.pyc151830644editdlrm
trsock.cpython-311.opt-1.pyc53980644editdlrm
trsock.cpython-311.opt-2.pyc51410644editdlrm
trsock.cpython-311.pyc53980644editdlrm
unix_events.cpython-311.opt-1.pyc725750644editdlrm
unix_events.cpython-311.opt-2.pyc674910644editdlrm
unix_events.cpython-311.pyc733380644editdlrm
windows_events.cpython-311.opt-1.pyc470030644editdlrm
windows_events.cpython-311.opt-2.pyc459050644editdlrm
windows_events.cpython-311.pyc470370644editdlrm
windows_utils.cpython-311.opt-1.pyc75840644editdlrm
windows_utils.cpython-311.opt-2.pyc71540644editdlrm
windows_utils.cpython-311.pyc77700644editdlrm
__init__.cpython-311.opt-1.pyc13580644editdlrm
__init__.cpython-311.opt-2.pyc13030644editdlrm
__init__.cpython-311.pyc13580644editdlrm
__main__.cpython-311.opt-1.pyc60290644editdlrm
__main__.cpython-311.opt-2.pyc60290644editdlrm
__main__.cpython-311.pyc60290644editdlrm
Edit: /opt/alt/python311/lib64/python3.11/asyncio/__pycache__/unix_events.cpython-311.pyc (73338B)
§ ÁýPÿœ€èãó¾—dZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl mZddl mZddl mZddl mZddl mZdd l mZdd l mZdd l mZdd l mZdd l mZddlmZdZe jdkr ed¦«‚d„Zd„ZGd„dej¦«Z Gd„dej!¦«Z"Gd„dej#ej$¦«Z%Gd„dej&¦«Z'Gd„d¦«Z(Gd„de(¦«Z)Gd „d!e(¦«Z*Gd"„d#e*¦«Z+Gd$„d%e*¦«Z,Gd&„d'e(¦«Z-Gd(„d)e(¦«Z.Gd*„d+ej/¦«Z0e Z1e0Z2dS),z2Selector event loop for Unix with signal handling.éNé)Ú base_events)Úbase_subprocess)Ú constants)Ú coroutines)Úevents)Ú exceptions)Úfutures)Úselector_events)Útasks)Ú transports)Úlogger)ÚSelectorEventLoopÚAbstractChildWatcherÚSafeChildWatcherÚFastChildWatcherÚPidfdChildWatcherÚMultiLoopChildWatcherÚThreadedChildWatcherÚDefaultEventLoopPolicyÚwin32z+Signals are not really supported on Windowscó—dS)zDummy signal handler.N©)ÚsignumÚframes ú:/opt/alt/python311/lib64/python3.11/asyncio/unix_events.pyÚ_sighandler_noopr*s€à€DócóP— tj|¦«S#t$r|cYSwxYw©N)ÚosÚwaitstatus_to_exitcodeÚ ValueError)Ústatuss rr"r"/s>€ðÝÔ(¨Ñ0Ô0Ð0øÝ ððððˆ ˆ ˆ ð øøøs ‚– %¤%c󾇗eZdZdZdˆfd„ Zˆfd„Zd„Zd„Zd„Zd„Z d „Z dd „Z dd „Z dd „Z d „Z dddddddœd„Z ddddddddœd„Zd„Zd„Zd„Zd„ZˆxZS)Ú_UnixSelectorEventLoopzdUnix event loop. Adds signal handling and UNIX Domain Socket support to SelectorEventLoop. NcóX•—t¦« |¦«i|_dSr )ÚsuperÚ__init__Ú_signal_handlers)ÚselfÚselectorÚ __class__s €rr)z_UnixSelectorEventLoop.__init__?s)ø€Ý ‰Œ×Ò˜Ñ"Ô"Ð"Ø "ˆÔÐÐrcóN•—t¦« ¦«tj¦«s.t |j¦«D]}| |¦«ŒdS|jr;tjd|›d�t|¬¦«|j  ¦«dSdS)NzClosing the loop z@ on interpreter shutdown stage, skipping signal handlers removal©Úsource) r(ÚcloseÚsysÚ is_finalizingÚlistr*Úremove_signal_handlerÚwarningsÚwarnÚResourceWarningÚclear)r+Úsigr-s €rr1z_UnixSelectorEventLoop.closeCsÏø€Ý ‰Œ� Š ‰ŒˆÝÔ Ñ"Ô"ð .ݘDÔ1Ñ2Ô2ð 0ð 0�Ø×*Ò*¨3Ñ/Ô/Ð/Ð/ð 0ð 0ðÔ$ð .Ý” ðI°$ðIðIðIõ.Ø%)ð +ñ+ô+ð+ð Ô%×+Ò+Ñ-Ô-Ð-Ð-Ð-ð  .ð .rcó@—|D]}|sŒ| |¦«ŒdSr )Ú_handle_signal)r+Údatars rÚ_process_self_dataz)_UnixSelectorEventLoop._process_self_dataQs=€Øð (ð (ˆFØð àØ × Ò  Ñ 'Ô 'Ð 'Ð 'ð  (ð (rcóR—tj|¦«stj|¦«rtd¦«‚| |¦«| ¦« t j|j  ¦«¦«n5#ttf$r!}tt|¦«¦«‚d}~wwxYwtj|||d¦«}||j|< t j|t"¦«t j|d¦«dS#t$r†}|j|=|jsI t jd¦«n3#ttf$r}t'jd|¦«Yd}~nd}~wwxYw|jt*jkrtd|›d�¦«‚‚d}~wwxYw)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+r:ÚcallbackÚargsÚexcÚhandleÚnexcs rÚadd_signal_handlerz)_UnixSelectorEventLoop.add_signal_handlerXsé€õ Ô " 8Ñ ,Ô ,ð 9ÝÔ.¨xÑ8Ô8ð 9åð8ñ9ô9ð 9à ×Ò˜3ÑÔÐØ ×ÒÑÔÐð )õ Ô  ¤×!3Ò!3Ñ!5Ô!5Ñ 6Ô 6Ð 6Ð 6øÝ�GÐ$ð )ð )ð )Ý�s 3™xœxÑ(Ô(Ð (øøøøð )øøøõ”˜x¨¨t°TÑ:Ô:ˆØ%+ˆÔ˜cÑ"ð õ ŒM˜#Õ/Ñ 0Ô 0Ð 0õ Ô   UÑ +Ô +Ð +Ð +Ð +øÝð ð ð ØÔ% cÐ*ØÔ(ð FðFÝÔ(¨Ñ,Ô,Ð,Ð,øÝ"¥GÐ,ðFðFðFÝ”KÐ >ÀÑEÔEÐEÐEÐEÐEÐEÐEøøøøðFøøøðŒy�EœLÒ(Ð(Ý"Ð#@¨#Ð#@Ð#@Ð#@ÑAÔAÐAàøøøøð øøøsZÁ"+BÂCÂB;Â;CÃ%/DÄ F&Ä F!Ä0EÅF!ÅE5ÅE0Å+F!Å0E5Å5,F!Æ!F&có¨—|j |¦«}|€dS|jr| |¦«dS| |¦«dS)z2Internal helper that is the actual signal handler.N)r*ÚgetÚ _cancelledr5Ú_add_callback_signalsafe)r+r:rXs rr<z%_UnixSelectorEventLoop._handle_signal…sa€àÔ&×*Ò*¨3Ñ/Ô/ˆØ ˆ>Ø ˆFØ Ô ð 2Ø × &Ò & sÑ +Ô +Ð +Ð +Ð +à × )Ò )¨&Ñ 1Ô 1Ð 1Ð 1Ð 1rcóü—| |¦« |j|=n#t$rYdSwxYw|tjkr tj}n tj} tj||¦«n;#t$r.}|jtj krtd|›d�¦«‚‚d}~wwxYw|jsI tj d¦«n3#ttf$r}tjd|¦«Yd}~nd}~wwxYwdS)zwRemove a handler for a signal. UNIX only. Return True if a signal handler was removed, False if not. FrBrCNr@rAT)rGr*ÚKeyErrorrIÚSIGINTÚdefault_int_handlerÚSIG_DFLrMrSrTrNrJr#rrR)r+r:ÚhandlerrWs rr5z,_UnixSelectorEventLoop.remove_signal_handler�sK€ð ×Ò˜3ÑÔÐð ØÔ% cÐ*Ð*øÝð ð ð Ø�5�5ð øøøð •&”-Ò Ð ÝÔ0ˆGˆGå”nˆGð Ý ŒM˜#˜wÑ 'Ô 'Ð 'Ð 'øÝð ð ð ØŒy�EœLÒ(Ð(Ý"Ð#@¨#Ð#@Ð#@Ð#@ÑAÔAÐAàøøøøð  øøøð Ô$ð Að AÝÔ$ RÑ(Ô(Ð(Ð(øÝ¥Ð(ð Að Að AÝ” Ð:¸CÑ@Ô@Ð@Ð@Ð@Ð@Ð@Ð@øøøøð Aøøøðˆts<—   .­.ÁA1Á1 B)Á;)B$Â$B)Â4C à C9ÃC4Ã4C9có¢—t|t¦«std|›�¦«‚|tj¦«vrt d|›�¦«‚dS)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. zsig must be an int, not zinvalid signal number N)Ú isinstanceÚintrFrIÚ valid_signalsr#)r+r:s rrGz$_UnixSelectorEventLoop._check_signal¯sa€õ ˜#�sÑ#Ô#ð @ÝÐ>°sÐ>Ð>Ñ?Ô?Ð ?à •fÔ*Ñ,Ô,Ð ,Ð ,ÝÐ;°cÐ;Ð;Ñ<Ô<Ð <ð -Ð ,rcó(—t|||||¦«Sr )Ú_UnixReadPipeTransport©r+ÚpipeÚprotocolÚwaiterÚextras rÚ_make_read_pipe_transportz0_UnixSelectorEventLoop._make_read_pipe_transport»s€å% d¨D°(¸FÀEÑJÔJÐJrcó(—t|||||¦«Sr )Ú_UnixWritePipeTransportrks rÚ_make_write_pipe_transportz1_UnixSelectorEventLoop._make_write_pipe_transport¿s€å& t¨T°8¸VÀUÑKÔKÐKrc ‹ó K—tj¦«5} |  ¦«std¦«‚| ¦«} t ||||||||f| |dœ| ¤Ž} |  |  ¦«|j| ¦« | ƒd{V—†nN#ttf$r‚t$r0|   ¦«|   ¦«ƒd{V—†‚wxYw ddd¦«n #1swxYwY| S)NzRasyncio.get_child_watcher() is not activated, subprocess support is not installed.)rnro)rÚget_child_watcherÚ is_activerNÚ create_futureÚ_UnixSubprocessTransportÚadd_child_handlerÚget_pidÚ_child_watcher_callbackÚ SystemExitÚKeyboardInterruptÚ BaseExceptionr1Ú_wait) r+rmrVÚshellÚstdinÚstdoutÚstderrÚbufsizeroÚkwargsÚwatcherrnÚtransps rÚ_make_subprocess_transportz1_UnixSelectorEventLoop._make_subprocess_transportÃs èè€õÔ %Ñ 'Ô 'ð ¨7Ø×$Ò$Ñ&Ô&ð Kõ #ð$JñKôKðKà×'Ò'Ñ)Ô)ˆFÝ-¨d°H¸dÀEØ.3°V¸VÀWð8à5;À5ð8ð8ð17ð8ð8ˆFð × %Ò % f§n¢nÑ&6Ô&6Ø&*Ô&BÀFñ Lô Lð Lð Ø� � � � � � � � øÝÕ 1Ð2ð ð ð ØÝ ð ð ð Ø— ’ ‘”�Ø—l’l‘n”nÐ$Ð$Ð$Ð$Ð$Ð$Ð$Øð øøøðð# ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð2ˆ s+–A=C8ÂBÂC8ÂA C(Ã(C8Ã8C<Ã?C<cóH—| |j|j|¦«dSr )Úcall_soon_threadsafeÚ call_soonÚ_process_exited)r+ÚpidÚ returncoder‡s rr{z._UnixSelectorEventLoop._child_watcher_callbackás%€à ×!Ò! $¤.°&Ô2HÈ*ÑUÔUÐUÐUÐUr)ÚsslÚsockÚserver_hostnameÚssl_handshake_timeoutÚssl_shutdown_timeoutcƒóK—|�t|t¦«sJ‚|r|€td¦«‚n3|�td¦«‚|�td¦«‚|�td¦«‚|�œ|�td¦«‚tj|¦«}t jt jt jd¦«} | d¦«|  ||¦«ƒd{V—†n|#|  ¦«‚xYw|€td¦«‚|j t jks|j t jkrtd |›�¦«‚| d¦«|  ||||||¬ ¦«ƒd{V—†\}} || fS) 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 timerFzno path and sock were specifiedú.A UNIX Domain Stream Socket was expected, got )r’r“)rfrOr#r!ÚfspathÚsocketÚAF_UNIXÚ SOCK_STREAMÚ setblockingÚ sock_connectr1ÚfamilyÚtypeÚ_create_connection_transport) r+Úprotocol_factoryÚpathr�r�r‘r’r“Ú transportrms rÚcreate_unix_connectionz-_UnixSelectorEventLoop.create_unix_connectionåsèè€ð Ð&­*°_ÅcÑ*JÔ*JÐ&Ð&ÐJØ ð HØÐ&Ý ØEñGôGðGð'ðÐ*Ý Ð!NÑOÔOÐOØ$Ð0Ý ØGñIôIðIà#Ð/Ý ØFñHôHðHð Ð ØÐÝ ØIñKôKðKõ”9˜T‘?”?ˆDÝ”=¥¤µÔ1CÀQÑGÔGˆDð Ø× Ò  Ñ'Ô'Ð'Ø×'Ò'¨¨dÑ3Ô3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ð3øð Ø— ’ ‘ ” � Øøøøðˆ|Ý Ð!BÑCÔCÐCØ” �vœ~Ò-Ð-Ø”I¥Ô!3Ò3Ð3Ý ØMÀTÐMÐMñOôOðOà × Ò ˜UÑ #Ô #Ð #à$(×$EÒ$EØ Ð" C¨Ø"7Ø!5ð%Fñ%7ô%7ð7ð7ð7ð7ð7ð7ш �8ð˜(Ð"Ð"s Â51C'Ã'C>édT)r�Úbacklogr�r’r“Ú start_servingc ƒó²K—t|t¦«rtd¦«‚|�|std¦«‚|�|std¦«‚|��Z|�td¦«‚t j|¦«}t jt jt j¦«}|ddvry tj t j |¦«j ¦«rt j |¦«n8#t$rYn,t$r } tjd|| ¦«Yd} ~ nd} ~ wwxYw | |¦«n¿#t$rP} | ¦«| jt&jkr!d|›d �} tt&j| ¦«d‚‚d} ~ w| ¦«‚xYw|€td ¦«‚|jt jks|jt jkrtd |›�¦«‚| d ¦«t1j||g|||||¦«} |r.|  ¦«t7jd¦«ƒd{V—†| S) Nz*ssl argument must be an SSLContext or Noner•r–r—r)rúz2Unable to check or remove stale UNIX socket %r: %rzAddress z is already in usez-path was not specified, and no sock specifiedr˜F)rfÚboolrFr#r!r™ršr›rœÚstatÚS_ISSOCKÚst_modeÚremoveÚFileNotFoundErrorrMrÚerrorÚbindr1rSÚ EADDRINUSErŸr r�rÚServerÚ_start_servingr Úsleep) r+r¢r£r�r§r�r’r“r¨ÚerrrWÚmsgÚservers rÚcreate_unix_serverz)_UnixSelectorEventLoop.create_unix_serversÕèè€õ �c�4Ñ Ô ð JÝÐHÑIÔIÐ Ià Ð ,°SÐ ,ÝØCñEôEð Eð Ð +°CÐ +ÝØBñDôDð Dð Ñ ØÐÝ ØIñKôKðKõ”9˜T‘?”?ˆDÝ”=¥¤µÔ1CÑDÔDˆDð�AŒw˜kÐ)Ð)ð6Ý”}¥R¤W¨T¡]¤]Ô%:Ñ;Ô;ð(Ýœ  $™œ˜øøÝ(ðððØ�DÝð6ð6ð6å”Lð"*Ø+/°ñ6ô6ð6ð6ð6ð6ð6ð6øøøøð6øøøð Ø— ’ ˜$‘”��øÝð ð ð Ø— ’ ‘ ” � Ø”9¥Ô 0Ò0Ð0ð@ TÐ?Ð?Ð?�CÝ!¥%Ô"2°CÑ8Ô8¸dÐBàøøøøð Ø— ’ ‘ ” � Øøøøàˆ|Ý ØCñEôEðEð” �vœ~Ò-Ð-Ø”I¥Ô!3Ò3Ð3Ý ØMÀTÐMÐMñOôOðOð ×Ò˜ÑÔÐÝÔ# D¨4¨&Ð2BØ$'¨Ð2GØ$8ñ:ô:ˆð ð !Ø × !Ò !Ñ #Ô #Ð #õ”+˜a‘.”.Ð Ð Ð Ð Ð Ð Ð àˆ s7Â)?C)Ã) DÃ5 DÃ>DÄDÄ"D8Ä8 F'ÅA F Æ F'c ƒóôK— tjn"#t$rtjd¦«‚wxYw | ¦«}n2#tt jf$r}tjd¦«‚d}~wwxYw tj|¦«j }n"#t$rtjd¦«‚wxYw|r|n|}|sdS|  ¦«} |  | d|||||d¦«| ƒd{V—†S)Nzos.sendfile() is not availableznot a regular filer) r!ÚsendfileÚAttributeErrorr ÚSendfileNotAvailableErrorrLÚioÚUnsupportedOperationÚfstatÚst_sizerMrwÚ_sock_sendfile_native_impl) r+r�ÚfileÚoffsetÚcountrLr·ÚfsizeÚ blocksizeÚfuts rÚ_sock_sendfile_nativez,_UnixSelectorEventLoop._sock_sendfile_native`sNèè€ð 2Ý ŒKˆKˆKøÝð 2ð 2ð 2ÝÔ6Ø0ñ2ô2ð 2ð 2øøøð MØ—[’[‘]”]ˆFˆFøÝ¥Ô 7Ð8ð Mð Mð MÝÔ6Ð7KÑLÔLÐ Løøøøð Møøøð MÝ”H˜VÑ$Ô$Ô,ˆEˆEøÝð Mð Mð MÝÔ6Ð7KÑLÔLÐ Lð Møøøà"Ð-�E�E¨ˆ Øð Ø�1à× Ò Ñ"Ô"ˆØ ×'Ò'¨¨T°4¸Ø(.°°yÀ!ñ Eô Eð EàˆyˆyˆyˆyˆyˆyÐs+„ ‘0´A Á A8ÁA3Á3A8Á<BÂB5c óL—| ¦«} |�| |¦«| ¦«r| |||¦«dS|r9||z }|dkr.| |||¦«| |¦«dS t j| |||¦«} | dkr.| |||¦«| |¦«dS|| z }|| z }|€| ||¦«| | |j || ||||||¦ « dS#ttf$r?|€| ||¦«| | |j || ||||||¦ « YdSt$rÔ} |�N| j tjkr9t| ¦«t ur#t!dtj¦«} | | _| } |dkrAt%jd¦«} | |||¦«| | ¦«n2| |||¦«| | ¦«Yd} ~ dSYd} ~ dSd} ~ wt*t,f$r‚t.$r7} | |||¦«| | ¦«Yd} ~ dSd} ~ wwxYw)Nrzsocket is not connectedzos.sendfile call failed)rLÚ remove_writerÚ cancelledÚ_sock_sendfile_update_fileposÚ set_resultr!r¼Ú_sock_add_cancellation_callbackÚ add_writerrÃÚBlockingIOErrorÚInterruptedErrorrMrSÚENOTCONNr ÚConnectionErrorÚ __cause__r r¾Ú set_exceptionr|r}r~)r+rÉÚ registered_fdr�rLrÅrÆrÈÚ total_sentÚfdÚsentrWÚnew_excr·s rrÃz1_UnixSelectorEventLoop._sock_sendfile_native_implwsb€à �[Š[‰]Œ]ˆØ Ð $ð × Ò ˜}Ñ -Ô -Ð -Ø �=Š=‰?Œ?ð Ø × .Ò .¨v°v¸zÑ JÔ JÐ JØ ˆFØ ð Ø  Ñ*ˆIؘAŠ~ˆ~Ø×2Ò2°6¸6À:ÑNÔNÐNØ—’˜zÑ*Ô*Ð*Ø�ð1 FÝ”;˜r 6¨6°9Ñ=Ô=ˆDðJ�qŠyˆyà×2Ò2°6¸6À:ÑNÔNÐNØ—’˜zÑ*Ô*Ð*Ð*Ð*à˜$‘�ؘdÑ"� Ø Ð(Ø×8Ò8¸¸dÑCÔCÐCØ—’  DÔ$CÀSØ " D¨&Ø &¨¨y¸*ñFôFðFðFðFøõ[ Õ!1Ð2ð Bð Bð BØÐ$Ø×4Ò4°S¸$Ñ?Ô?Ð?Ø �OŠO˜B Ô ?ÀØ  fØ" E¨9°jñ Bô Bð Bð Bð Bð Bõð 'ð 'ð 'ØÐ)Ø”I¥¤Ò/Ð/ݘ‘I”I¥_Ð4Ð4õ *Ø-­u¬~ñ?ô?�à$'�Ô!Ø�ؘQŠˆõ !Ô:Ø-ñ/ô/�à×2Ò2°6¸6À:ÑNÔNÐNØ×!Ò! #Ñ&Ô&Ð&Ð&à×2Ò2°6¸6À:ÑNÔNÐNØ×!Ò! #Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&ð'Ð&Ð&Ð&Ð&Ð&øøøøõÕ-Ð.ð ð ð Ø Ýð #ð #ð #Ø × .Ò .¨v°v¸zÑ JÔ JÐ JØ × Ò ˜cÑ "Ô "Ð "Ð "Ð "Ð "Ð "Ð "Ð "øøøøð #øøøs,ÂD'Ä'A J#Å6 J#Å?CIÉJ#É,,JÊJ#cóV—|dkr"tj||tj¦«dSdS©Nr)r!ÚlseekÚSEEK_SET)r+rLrÅrÙs rrÎz4_UnixSelectorEventLoop._sock_sendfile_update_filepos½s.€Ø ˜Š>ˆ>Ý ŒH�V˜V¥R¤[Ñ 1Ô 1Ð 1Ð 1Ð 1ð ˆ>rcó@‡‡—ˆˆfd„}| |¦«dS)Ncó–•—| ¦«r1‰ ¦«}|dkr‰ |¦«dSdSdS)Nr@)rÍrLrÌ)rÉrÚr+r�s €€rÚcbzB_UnixSelectorEventLoop._sock_add_cancellation_callback..cbÂsRø€Ø�}Š}‰Œð +Ø—[’[‘]”]�ؘ’8�8Ø×&Ò& rÑ*Ô*Ð*Ð*Ð*ð +ð +à�8r)Úadd_done_callback)r+rÉr�rãs` ` rrÐz6_UnixSelectorEventLoop._sock_add_cancellation_callbackÁs>øø€ð +ð +ð +ð +ð +ð +ð ×Ò˜bÑ!Ô!Ð!Ð!Ð!rr ©NN)Ú__name__Ú __module__Ú __qualname__Ú__doc__r)r1r>rZr<r5rGrprsrˆr{r¥rºrÊrÃrÎrÐÚ __classcell__©r-s@rr&r&9sËø€€€€€ððð #ð#ð#ð#ð#ð#ð .ð .ð .ð .ð .ð(ð(ð(ð+ð+ð+ðZ2ð2ð2ðððð@ =ð =ð =ð@DØ(,ðKðKðKðKðAEØ)-ðLðLðLðLð 04ððððð<VðVðVð *.ð0#à˜4Ø Ø"&Ø!%ð 0#ð0#ð0#ð0#ð0#ðf*.ðGà˜s¨Ø"&Ø!%Øð GðGðGðGðGðRððð.DFðDFðDFðL2ð2ð2ð"ð"ð"ð"ð"ð"ð"rr&c󈇗eZdZdZdˆfd„ Zd„Zd„Zd„Zd„Zd„Z d „Z d „Z d „Z d „Z d „Zejfd„Zdd„Zd„Zd„ZˆxZS)rjiNcóú•—t¦« |¦«||jd<||_||_| ¦«|_||_d|_d|_ tj |j¦«j }tj|¦«sLtj|¦«s8tj|¦«s$d|_d|_d|_t#d¦«‚tj|jd¦«|j |jj|¦«|j |j|j|j¦«|�(|j t.j|d¦«dSdS)NrlFz)Pipe transport is for pipes/sockets only.)r(r)Ú_extraÚ_loopÚ_piperLÚ_filenoÚ _protocolÚ_closingÚ_pausedr!rÁr®r¬ÚS_ISFIFOr­ÚS_ISCHRr#Ú set_blockingr‹Úconnection_madeÚ _add_readerÚ _read_readyr Ú_set_result_unless_cancelled)r+ÚlooprlrmrnroÚmoder-s €rr)z_UnixReadPipeTransport.__init__Îsbø€Ý ‰Œ×Ò˜ÑÔÐØ"ˆŒ �FÑØˆŒ ؈Œ Ø—{’{‘}”}ˆŒ Ø!ˆŒØˆŒ ؈Œ åŒx˜œ Ñ%Ô%Ô-ˆÝ” ˜dÑ#Ô#ð JÝ” ˜dÑ#Ô#ð Jå” ˜TÑ"Ô"ð JðˆDŒJ؈DŒLØ!ˆDŒNÝÐHÑIÔIÐ Iå Œ˜œ  eÑ,Ô,Ð,à Œ ×Ò˜Tœ^Ô;¸TÑBÔBÐBà Œ ×Ò˜TÔ-Ø!œ\¨4Ô+;ñ =ô =ð =à Ð à ŒJ× Ò ¥Ô!EØ!'¨ñ /ô /ð /ð /ð /ð Ð rcóh—| ¦«sdS|j ||¦«dSr )Ú is_readingrïrù)r+rÚrUs rrùz"_UnixReadPipeTransport._add_readerìs7€Ø�ŠÑ Ô ð Ø ˆFØ Œ ×Ò˜r 8Ñ,Ô,Ð,Ð,Ð,rcó"—|j o|j Sr )rôró©r+s rrÿz!_UnixReadPipeTransport.is_readingñs€Ø”<ÐÐ5¨¬ Ð$5Ð5rcó`—|jjg}|j€| d¦«n|jr| d¦«| d|j›�¦«t |jdd¦«}|j�U|�Stj ||jtj ¦«}|r| d¦«nH| d¦«n2|j�| d¦«n| d¦«d  d   |¦«¦«S) NÚclosedÚclosingúfd=Ú _selectorÚpollingÚidleÚopenú<{}>ú )r-rærðÚappendrórñÚgetattrrïr Ú_test_selector_eventÚ selectorsÚ EVENT_READÚformatÚjoin)r+rRr,rs rÚ__repr__z_UnixReadPipeTransport.__repr__ôs €Ø”Ô'Ð(ˆØ Œ:Ð Ø �KŠK˜Ñ !Ô !Ð !Ð !Ø Œ]ð #Ø �KŠK˜ Ñ "Ô "Ð "Ø � Š Ð(˜$œ,Ð(Ð(Ñ)Ô)Ð)ݘ4œ: {°DÑ9Ô9ˆØ Œ:Ð ! hÐ&:Ý%Ô:ؘ$œ,­ Ô(<ñ>ô>ˆGàð $Ø— ’ ˜IÑ&Ô&Ð&Ð&à— ’ ˜FÑ#Ô#Ð#Ð#Ø ŒZÐ #Ø �KŠK˜Ñ Ô Ð Ð à �KŠK˜Ñ !Ô !Ð !Ø�}Š}˜SŸXšX d™^œ^Ñ,Ô,Ð,rcó4— tj|j|j¦«}|r|j |¦«dS|j ¦«rtj d|¦«d|_ |j  |j¦«|j  |jj ¦«|j  |jd¦«dS#tt f$rYdSt"$r!}| |d¦«Yd}~dSd}~wwxYw)Nú%r was closed by peerTz"Fatal read error on pipe transport)r!ÚreadrñÚmax_sizeròÚ data_receivedrïÚ get_debugrrRróÚ_remove_readerr‹Ú eof_receivedÚ_call_connection_lostrÒrÓrMÚ _fatal_error)r+r=rWs rrúz"_UnixReadPipeTransport._read_ready s5€ð GÝ”7˜4œ<¨¬Ñ7Ô7ˆDð ð GØ”×,Ò,¨TÑ2Ô2Ð2Ð2Ð2à”:×'Ò'Ñ)Ô)ð?Ý”KÐ 7¸Ñ>Ô>Ð>Ø $�” Ø” ×)Ò)¨$¬,Ñ7Ô7Ð7Ø” ×$Ò$ T¤^Ô%@ÑAÔAÐAØ” ×$Ò$ TÔ%?ÀÑFÔFÐFÐFÐFøõ Õ!1Ð2ð ð ð Ø ˆDˆDÝð Ið Ið IØ × Ò ˜cÐ#GÑ HÔ HÐ HÐ HÐ HÐ HÐ HÐ HÐ Høøøøð Iøøøs‚CÃDÃ- DÃ6DÄDcóÞ—| ¦«sdSd|_|j |j¦«|j ¦«rt jd|¦«dSdS)NTz%r pauses reading)rÿrôrïrrñrrÚdebugrs rÚ pause_readingz$_UnixReadPipeTransport.pause_readingsq€Ø�ŠÑ Ô ð Ø ˆF؈Œ Ø Œ ×!Ò! $¤,Ñ/Ô/Ð/Ø Œ:× Ò Ñ !Ô !ð 4Ý ŒLÐ,¨dÑ 3Ô 3Ð 3Ð 3Ð 3ð 4ð 4rcóÞ—|js|jsdSd|_|j |j|j¦«|j ¦«rtjd|¦«dSdS)NFz%r resumes reading) rórôrïrùrñrúrrrrs rÚresume_readingz%_UnixReadPipeTransport.resume_reading#sw€Ø Œ=ð  ¤ ð Ø ˆF؈Œ Ø Œ ×Ò˜tœ|¨TÔ-=Ñ>Ô>Ð>Ø Œ:× Ò Ñ !Ô !ð 5Ý ŒLÐ-¨tÑ 4Ô 4Ð 4Ð 4Ð 4ð 5ð 5rcó—||_dSr ©rò©r+rms rÚ set_protocolz#_UnixReadPipeTransport.set_protocol+ó €Ø!ˆŒˆˆrcó—|jSr r$rs rÚ get_protocolz#_UnixReadPipeTransport.get_protocol.ó €ØŒ~Ðrcó—|jSr ©rórs rÚ is_closingz!_UnixReadPipeTransport.is_closing1ó €ØŒ}ÐrcóB—|js| d¦«dSdSr )róÚ_closers rr1z_UnixReadPipeTransport.close4s.€ØŒ}ð Ø �KŠK˜Ñ Ô Ð Ð Ð ð ð rcóv—|j�1|d|›�t|¬¦«|j ¦«dSdS©Nzunclosed transport r/©rðr8r1©r+Ú_warns rÚ__del__z_UnixReadPipeTransport.__del__8óL€Ø Œ:Ð !Ø ˆEÐ0¨Ð0Ð0µ/È$Ð OÑ OÔ OÐ OØ ŒJ× Ò Ñ Ô Ð Ð Ð ð "Ð !rúFatal error on pipe transportcó0—t|t¦«rG|jtjkr2|j ¦«rt jd||d¬¦«n$|j ||||j dœ¦«|  |¦«dS©Nz%r: %sT©Úexc_info)ÚmessageÚ exceptionr¤rm) rfrMrSÚEIOrïrrrÚcall_exception_handlerròr0©r+rWr=s rrz#_UnixReadPipeTransport._fatal_error=sŸ€å �s�GÑ $Ô $𠨬µe´iÒ)?Ð)?ØŒz×#Ò#Ñ%Ô%ð EÝ” ˜X t¨W¸tÐDÑDÔDÐDøà ŒJ× -Ò -Ø"Ø Ø!Ø œNð /ð/ñ ô ð ð � Š �CÑÔÐÐÐrcó’—d|_|j |j¦«|j |j|¦«dS©NT)rórïrrñr‹r©r+rWs rr0z_UnixReadPipeTransport._closeKsB€ØˆŒ Ø Œ ×!Ò! $¤,Ñ/Ô/Ð/Ø Œ ×Ò˜TÔ7¸Ñ=Ô=Ð=Ð=Ð=rcóþ— |j |¦«|j ¦«d|_d|_d|_dS#|j ¦«d|_d|_d|_wxYwr ©ròÚconnection_lostrðr1rïrDs rrz,_UnixReadPipeTransport._call_connection_lostPó‚€ð Ø ŒN× *Ò *¨3Ñ /Ô /Ð /à ŒJ× Ò Ñ Ô Ð ØˆDŒJØ!ˆDŒN؈DŒJˆJˆJøð ŒJ× Ò Ñ Ô Ð ØˆDŒJØ!ˆDŒN؈DŒJÐ Ð Ð Ð ó ‚A Á 0A<rå©r8)rærçrèrr)rùrÿrrúr r"r&r)r-r1r6r7r6rr0rrêrës@rrjrjÊs(ø€€€€€à€Hð/ð/ð/ð/ð/ð/ð<-ð-ð-ð 6ð6ð6ð-ð-ð-ð*GðGðGð$4ð4ð4ð5ð5ð5ð"ð"ð"ðððððððððð%œMððððð ð ð ð ð>ð>ð>ð ððððððrrjcó’‡—eZdZdˆfd„ Zd„Zd„Zd„Zd„Zd„Zd„Z d „Z d „Z d „Z d „Z d „Zejfd„Zd„Zdd„Zdd„Zd„ZˆxZS)rrNcóp•—t¦« ||¦«||jd<||_| ¦«|_||_t¦«|_d|_ d|_ tj |j¦«j }tj|¦«}tj|¦«}tj|¦«} |s(|s&| s$d|_d|_d|_t%d¦«‚tj|jd¦«|j |jj|¦«| s!|rOt.j d¦«s0|j |jj|j|j¦«|�(|j t8j|d¦«dSdS)NrlrFz?Pipe transport is only for pipes, sockets and character devicesÚaix)r(r)rîrðrLrñròÚ bytearrayÚ_bufferÚ _conn_lostrór!rÁr®r¬rörõr­r#r÷rïr‹rør2ÚplatformÚ startswithrùrúr rû) r+rürlrmrnrorýÚis_charÚis_fifoÚ is_socketr-s €rr)z _UnixWritePipeTransport.__init__]s³ø€Ý ‰Œ×Ò˜ Ñ%Ô%Ð%Ø"ˆŒ �FÑØˆŒ Ø—{’{‘}”}ˆŒ Ø!ˆŒÝ ‘{”{ˆŒ ؈ŒØˆŒ åŒx˜œ Ñ%Ô%Ô-ˆÝ”,˜tÑ$Ô$ˆÝ”- Ñ%Ô%ˆÝ”M $Ñ'Ô'ˆ Øð E˜7ð E ið E؈DŒJ؈DŒLØ!ˆDŒNÝðDñEôEð Eõ Œ˜œ  eÑ,Ô,Ð,Ø Œ ×Ò˜Tœ^Ô;¸TÑBÔBÐBð ð A˜ð A­¬×)@Ò)@ÀÑ)GÔ)Gð Aà ŒJ× Ò  ¤Ô!7Ø!%¤¨tÔ/?ñ Aô Að Að Ð à ŒJ× Ò ¥Ô!EØ!'¨ñ /ô /ð /ð /ð /ð Ð rcó¸—|jjg}|j€| d¦«n|jr| d¦«| d|j›�¦«t |jdd¦«}|j��|�tj ||jtj ¦«}|r| d¦«n| d¦«|  ¦«}| d|›�¦«n2|j�| d¦«n| d¦«d   d  |¦«¦«S) Nrrrrrrzbufsize=r r r )r-rærðr rórñr rïr rrÚ EVENT_WRITEÚget_write_buffer_sizerr)r+rRr,rr„s rrz _UnixWritePipeTransport.__repr__‚sL€Ø”Ô'Ð(ˆØ Œ:Ð Ø �KŠK˜Ñ !Ô !Ð !Ð !Ø Œ]ð #Ø �KŠK˜ Ñ "Ô "Ð "Ø � Š Ð(˜$œ,Ð(Ð(Ñ)Ô)Ð)ݘ4œ: {°DÑ9Ô9ˆØ Œ:Ð ! hÐ&:Ý%Ô:ؘ$œ,­ Ô(=ñ?ô?ˆGàð $Ø— ’ ˜IÑ&Ô&Ð&Ð&à— ’ ˜FÑ#Ô#Ð#à×0Ò0Ñ2Ô2ˆGØ �KŠKÐ, 7Ð,Ð,Ñ -Ô -Ð -Ð -Ø ŒZÐ #Ø �KŠK˜Ñ Ô Ð Ð à �KŠK˜Ñ !Ô !Ð !Ø�}Š}˜SŸXšX d™^œ^Ñ,Ô,Ð,rcó*—t|j¦«Sr )ÚlenrOrs rrXz-_UnixWritePipeTransport.get_write_buffer_sizešs€Ý�4”<Ñ Ô Ð rcóÞ—|j ¦«rtjd|¦«|jr#| t ¦«¦«dS| ¦«dS)Nr)rïrrrRrOr0ÚBrokenPipeErrorrs rrúz#_UnixWritePipeTransport._read_ready�sd€à Œ:× Ò Ñ !Ô !ð 7Ý ŒKÐ/°Ñ 6Ô 6Ð 6Ø Œ<ð Ø �KŠK�Ñ)Ô)Ñ *Ô *Ð *Ð *Ð *à �KŠK‰MŒMˆMˆMˆMrcó\—t|tttf¦«sJt |¦«¦«‚t|t¦«rt|¦«}|sdS|js|jr;|jtjkrtj d¦«|xjdz c_dS|j sÖ tj |j|¦«}nc#tt f$rd}YnNt"t$f$r‚t&$r1}|xjdz c_| |d¦«Yd}~dSd}~wwxYw|t+|¦«krdS|dkrt|¦«|d…}|j |j|j¦«|xj |z c_ | ¦«dS)Nz=pipe closed by peer or os.write(pipe, data) raised exception.rrú#Fatal write error on pipe transport)rfÚbytesrNÚ memoryviewÚreprrPrórÚ!LOG_THRESHOLD_FOR_CONNLOST_WRITESrÚwarningrOr!ÚwriterñrÒrÓr|r}r~rrZrïÚ _add_writerÚ _write_readyÚ_maybe_pause_protocol)r+r=ÚnrWs rrdz_UnixWritePipeTransport.write¦s܀ݘ$¥­ µ:Ð >Ñ?Ô?ÐKÐKÅÀdÁÄÑKÔKÐ?Ý �d�IÑ &Ô &ð $ݘdÑ#Ô#ˆDØð Ø ˆFà Œ?ð ˜dœmð ØŒ¥)Ô"MÒMÐMÝ”ð HñIôIðIà ˆOŒO˜qÑ ˆOŒOØ ˆFàŒ|ð Dð Ý”H˜Tœ\¨4Ñ0Ô0��øÝ#Õ%5Ð6ð ð ð Ø���ÝÕ 1Ð2ð ð ð ØÝ ð ð ð Ø�” 1Ñ$�”Ø×!Ò! #Ð'LÑMÔMÐMØ�����øøøøð øøøð•C˜‘I”IŠ~ˆ~Ø�Ø�Q’�Ý! $Ñ'Ô'¨¨¨Ô+�Ø ŒJ× "Ò " 4¤<°Ô1BÑ CÔ CÐ Cà ˆ Œ ˜Ñˆ Œ Ø ×"Ò"Ñ$Ô$Ð$Ð$Ð$sÂ3CÃD.Ã#D.Ã=&D)Ä)D.có—|js Jd¦«‚ tj|j|j¦«}|t |j¦«kr‰|j ¦«|j |j¦«| ¦«|j r4|j  |j¦«|  d¦«dS|dkr |jd|…=dSdS#ttf$rYdSttf$r‚t $ri}|j ¦«|xjdz c_|j |j¦«| |d¦«Yd}~dSd}~wwxYw)NzData should not be emptyrrr^)rOr!rdrñrZr9rïÚ_remove_writerÚ_maybe_resume_protocolrórrrÒrÓr|r}r~rPr)r+rhrWs rrfz$_UnixWritePipeTransport._write_readyÉs¬€ØŒ|Ð7Ð7Ð7Ñ7Ô7ˆ|ð %Ý”˜œ t¤|Ñ4Ô4ˆAð•C˜œ Ñ%Ô%Ò%Ð%Ø” ×"Ò"Ñ$Ô$Ð$Ø” ×)Ò)¨$¬,Ñ7Ô7Ð7Ø×+Ò+Ñ-Ô-Ð-Ø”=ð5Ø”J×-Ò-¨d¬lÑ;Ô;Ð;Ø×.Ò.¨tÑ4Ô4Ð4Ø�Ø�Q’�Ø”L  ! Ð$Ð$Ð$ð�øõ) Õ!1Ð2ð ð ð Ø ˆDˆDÝÕ-Ð.ð ð ð Ø Ýð Jð Jð JØ ŒL× Ò Ñ Ô Ð Ø ˆOŒO˜qÑ ˆOŒOð ŒJ× %Ò % d¤lÑ 3Ô 3Ð 3Ø × Ò ˜cÐ#HÑ IÔ IÐ IÐ IÐ IÐ IÐ IÐ IÐ Iøøøøð  Jøøøs“C'Ã'E>Ã;E>ÄAE9Å9E>có—dSrCrrs rÚ can_write_eofz%_UnixWritePipeTransport.can_write_eofåó€ØˆtrcóÈ—|jrdS|jsJ‚d|_|jsA|j |j¦«|j |jd¦«dSdSrC)rórðrOrïrrñr‹rrs rÚ write_eofz!_UnixWritePipeTransport.write_eofèsu€Ø Œ=ð Ø ˆFØŒzÐЈz؈Œ ØŒ|ð CØ ŒJ× %Ò % d¤lÑ 3Ô 3Ð 3Ø ŒJ× Ò  Ô!;¸TÑ BÔ BÐ BÐ BÐ Bð Cð Crcó—||_dSr r$r%s rr&z$_UnixWritePipeTransport.set_protocolñr'rcó—|jSr r$rs rr)z$_UnixWritePipeTransport.get_protocolôr*rcó—|jSr r,rs rr-z"_UnixWritePipeTransport.is_closing÷r.rcóR—|j�|js| ¦«dSdSdSr )rðrórprs rr1z_UnixWritePipeTransport.closeús5€Ø Œ:Ð !¨$¬-Ð !à �NŠNÑ Ô Ð Ð Ð ð "Ð !Ð !Ð !rcóv—|j�1|d|›�t|¬¦«|j ¦«dSdSr2r3r4s rr6z_UnixWritePipeTransport.__del__ÿr7rcó0—| d¦«dSr )r0rs rÚabortz_UnixWritePipeTransport.aborts€Ø � Š �DÑÔÐÐÐrr8có—t|t¦«r2|j ¦«rt jd||d¬¦«n$|j ||||jdœ¦«| |¦«dSr:) rfrMrïrrrr@ròr0rAs rrz$_UnixWritePipeTransport._fatal_errors‘€å �c�7Ñ #Ô #ð ØŒz×#Ò#Ñ%Ô%ð EÝ” ˜X t¨W¸tÐDÑDÔDÐDøà ŒJ× -Ò -Ø"Ø Ø!Ø œNð /ð/ñ ô ð ð � Š �CÑÔÐÐÐrcó—d|_|jr|j |j¦«|j ¦«|j |j¦«|j |j|¦«dSrC) rórOrïrjrñr9rr‹rrDs rr0z_UnixWritePipeTransport._closesx€ØˆŒ Ø Œ<ð 4Ø ŒJ× %Ò % d¤lÑ 3Ô 3Ð 3Ø Œ ×ÒÑÔÐØ Œ ×!Ò! $¤,Ñ/Ô/Ð/Ø Œ ×Ò˜TÔ7¸Ñ=Ô=Ð=Ð=Ð=rcóþ— |j |¦«|j ¦«d|_d|_d|_dS#|j ¦«d|_d|_d|_wxYwr rFrDs rrz-_UnixWritePipeTransport._call_connection_lostrHrIrårJr )rærçrèr)rrXrúrdrfrmrpr&r)r-r1r6r7r6rwrr0rrêrës@rrrrrZsHø€€€€€ð#/ð#/ð#/ð#/ð#/ð#/ðJ-ð-ð-ð0!ð!ð!ðððð!%ð!%ð!%ðF%ð%ð%ð8ðððCðCðCð"ð"ð"ðððððððððð %œMððððð ððð ð ð ð ð>ð>ð>ð>ðððððððrrrcó—eZdZd„ZdS)rxc ó—d}|tjkr5tj d¦«rt j¦«\}} tj|f||||d|dœ|¤Ž|_|�D|  ¦«t|  ¦«d|¬¦«|j_ d}|�*|  ¦«|  ¦«dSdS#|�)|  ¦«|  ¦«wwxYw)NrMF)r€r�r‚rƒÚuniversal_newlinesr„Úwb)Ú buffering) Ú subprocessÚPIPEr2rQrRršÚ socketpairÚPopenÚ_procr1r Údetachr�) r+rVr€r�r‚rƒr„r…Ústdin_ws rÚ_startz_UnixSubprocessTransport._start)s€ØˆØ •J”OÒ #Ð #­¬ ×(?Ò(?ÀÑ(FÔ(FÐ #õ $Ô.Ñ0Ô0‰NˆE�7ð Ý#Ô)ØðEØ!¨°vÀfØ#(°'ðEðEà=CðEðEˆDŒJðÐ"Ø— ’ ‘ ” � Ý#'¨¯ªÑ(8Ô(8¸$È'Ð#RÑ#RÔ#R�” Ô Ø�àÐ"Ø— ’ ‘ ” � Ø— ’ ‘”���ð#Ð"øˆwÐ"Ø— ’ ‘ ” � Ø— ’ ‘”��ð#øøøs Á A$CÃ-DN)rærçrèr‡rrrrxrx's#€€€€€ð ð ð ð ð rrxcó<—eZdZdZd„Zd„Zd„Zd„Zd„Zd„Z d„Z d S) raHAbstract base class for monitoring child processes. Objects derived from this class monitor a collection of subprocesses and report their termination or interruption by a signal. New callbacks are registered with .add_child_handler(). Starting a new process must be done within a 'with' block to allow the watcher to suspend its activity until the new process if fully registered (this is needed to prevent a race condition in some implementations). Example: with watcher: proc = subprocess.Popen("sleep 1") watcher.add_child_handler(proc.pid, callback) Notes: Implementations of this class must be thread-safe. Since child watcher objects may catch the SIGCHLD signal and call waitpid(-1), there should be only one active object per process. có—t¦«‚)aRegister a new child handler. Arrange for callback(pid, returncode, *args) to be called when process 'pid' terminates. Specifying another callback for the same process replaces the previous handler. Note: callback() must be thread-safe. ©ÚNotImplementedError©r+r�rUrVs rryz&AbstractChildWatcher.add_child_handlerVs€õ"Ñ#Ô#Ð#rcó—t¦«‚)z Removes the handler for process 'pid'. The function returns True if the handler was successfully removed, False if there was nothing to remove.rŠ©r+r�s rÚremove_child_handlerz)AbstractChildWatcher.remove_child_handleras€õ "Ñ#Ô#Ð#rcó—t¦«‚)zÔAttach the watcher to an event loop. If the watcher was previously attached to an event loop, then it is first detached before attaching to the new loop. Note: loop may be None. rŠ©r+rüs rÚ attach_loopz AbstractChildWatcher.attach_loopis€õ"Ñ#Ô#Ð#rcó—t¦«‚)zlClose the watcher. This must be called to make sure that any underlying resource is freed. rŠrs rr1zAbstractChildWatcher.closess€õ "Ñ#Ô#Ð#rcó—t¦«‚)zºReturn ``True`` if the watcher is active and is used by the event loop. Return True if the watcher is installed and ready to handle process exit notifications. rŠrs rrvzAbstractChildWatcher.is_activezs€õ"Ñ#Ô#Ð#rcó—t¦«‚)zdEnter the watcher's context and allow starting new processes This function must return selfrŠrs rÚ __enter__zAbstractChildWatcher.__enter__ƒs€õ"Ñ#Ô#Ð#rcó—t¦«‚)zExit the watcher's contextrŠ©r+ÚaÚbÚcs rÚ__exit__zAbstractChildWatcher.__exit__‰s€å!Ñ#Ô#Ð#rN) rærçrèréryr�r’r1rvr–rœrrrrr?s‡€€€€€ððð, $ð $ð $ð$ð$ð$ð$ð$ð$ð$ð$ð$ð$ð$ð$ð$ð$ð$ð $ð$ð$ð$ð$rrcóH—eZdZdZd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z d „Z d S) ra6Child 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ó"—d|_i|_dSr ©rïÚ _callbacksrs rr)zPidfdChildWatcher.__init__šó€ØˆŒ ؈Œˆˆrcó—|Sr rrs rr–zPidfdChildWatcher.__enter__žó€Øˆ rcó—dSr r)r+Úexc_typeÚ exc_valueÚ exc_tracebacks rrœzPidfdChildWatcher.__exit__¡ó€Ø ˆrcóF—|jduo|j ¦«Sr ©rïÚ is_runningrs rrvzPidfdChildWatcher.is_active¤ó"€ØŒz Ð%ÐA¨$¬*×*?Ò*?Ñ*AÔ*AÐArcó0—| d¦«dSr ©r’rs rr1zPidfdChildWatcher.close§ó€Ø ×Ò˜ÑÔÐÐÐrcó6—|j�#|€!|jrtjdt¦«|j ¦«D]4\}}}|j |¦«tj|¦«Œ5|j  ¦«||_dS©NzCA loop is being detached from a child watcher with pending handlers) rïr r6r7ÚRuntimeWarningÚvaluesrr!r1r9)r+rüÚpidfdÚ_s rr’zPidfdChildWatcher.attach_loopªs™€Ø Œ:Ð ! d l°t´ lÝ ŒMð=åñ ô ð ð œ?×1Ò1Ñ3Ô3ð ð ‰KˆE�1�aØ ŒJ× %Ò % eÑ ,Ô ,Ð ,Ý ŒH�U‰OŒOˆOˆOØ Œ×ÒÑÔÐØˆŒ ˆ ˆ rcóì—|j |¦«}|�|d||f|j|<dStj|¦«}|j ||j|¦«|||f|j|<dSrÞ)r r\r!Ú pidfd_openrïrùÚ_do_wait)r+r�rUrVÚexistingr´s rryz#PidfdChildWatcher.add_child_handler¶s~€Ø”?×&Ò& sÑ+Ô+ˆØ Ð Ø#+¨A¤;°¸$Ð#>ˆDŒO˜CÑ Ð Ð å”M #Ñ&Ô&ˆEØ ŒJ× "Ò " 5¨$¬-¸Ñ =Ô =Ð =Ø#(¨(°DÐ#8ˆDŒO˜CÑ Ð Ð rcóR—|j |¦«\}}}|j |¦« t j|d¦«\}}t |¦«}n'#t$rd}tj d|¦«YnwxYwt j |¦«|||g|¢RŽdS)NréÿzJchild process pid %d exit status already read: will report returncode 255) r Úpoprïrr!Úwaitpidr"ÚChildProcessErrorrrcr1)r+r�r´rUrVrµr$rŽs rr¸zPidfdChildWatcher._do_wait¿sØ€Ø $¤× 3Ò 3°CÑ 8Ô 8шˆx˜Ø Œ ×!Ò! %Ñ(Ô(Ð(ð 8Ýœ  3¨Ñ*Ô*‰IˆAˆvõ0°Ñ7Ô7ˆJˆJøõ!ð ð ð ðˆJÝ ŒNð.àñ ô ð ð ð ð  øøøõ Œ�‰ŒˆØˆ��jÐ( 4Ð(Ð(Ð(Ð(Ð(Ð(sºA"Á"!BÂBcóÄ— |j |¦«\}}}n#t$rYdSwxYw|j |¦«t j|¦«dS)NFT)r r¼r`rïrr!r1)r+r�r´rµs rr�z&PidfdChildWatcher.remove_child_handlerÒsn€ð Øœ/×-Ò-¨cÑ2Ô2‰KˆE�1�a�aøÝð ð ð Ø�5�5ð øøøà Œ ×!Ò! %Ñ(Ô(Ð(Ý Œ�‰ŒˆØˆts ‚!¡ /®/N) rærçrèrér)r–rœrvr1r’ryr¸r�rrrrrŽs¨€€€€€ð ð ððððððð ð ð ðBðBðBðððð ð ð ð9ð9ð9ð)ð)ð)ð&ððððrrcó8—eZdZd„Zd„Zd„Zd„Zd„Zd„Zd„Z dS) ÚBaseChildWatchercó"—d|_i|_dSr rŸrs rr)zBaseChildWatcher.__init__Þr¡rcó0—| d¦«dSr r®rs rr1zBaseChildWatcher.closeâr¯rcóF—|jduo|j ¦«Sr rªrs rrvzBaseChildWatcher.is_activeår¬rcó—t¦«‚r rŠ)r+Ú expected_pids rÚ _do_waitpidzBaseChildWatcher._do_waitpidèó€Ý!Ñ#Ô#Ð#rcó—t¦«‚r rŠrs rÚ_do_waitpid_allz BaseChildWatcher._do_waitpid_allërÈrcót—|�t|tj¦«sJ‚|j�#|€!|jrt jdt¦«|j�$|j tj ¦«||_|�;|  tj |j ¦«|  ¦«dSdSr±)rfrÚAbstractEventLooprïr r6r7r²r5rIÚSIGCHLDrZÚ _sig_chldrÊr‘s rr’zBaseChildWatcher.attach_loopîs¶€Øˆ|�z¨$µÔ0HÑIÔIˆ|ˆ|ÐIà Œ:Ð ! d l°t´ lÝ ŒMð=åñ ô ð ð Œ:Ð !Ø ŒJ× ,Ò ,­V¬^Ñ <Ô <Ð <àˆŒ Ø Ð Ø × #Ò #¥F¤N°D´NÑ CÔ CÐ Cð × Ò Ñ "Ô "Ð "Ð "Ð "ð Ð rcó¼— | ¦«dS#ttf$r‚t$r(}|j d|dœ¦«Yd}~dSd}~wwxYw)Nú$Unknown exception in SIGCHLD handler)r=r>)rÊr|r}r~rïr@rDs rrÎzBaseChildWatcher._sig_chlds£€ð Ø × Ò Ñ "Ô "Ð "Ð "Ð "øÝÕ-Ð.ð ð ð Ø Ýð ð ð ð ŒJ× -Ò -ØAØ ð/ð/ñ ô ð ð ð ð ð ð ð øøøøð  øøøs‚˜A³AÁAN) rærçrèr)r1rvrÇrÊr’rÎrrrrÁrÁÜs€€€€€€ðððððððBðBðBð$ð$ð$ð$ð$ð$ð#ð#ð#ð( ð ð ð ð rrÁcóF‡—eZdZdZˆfd„Zd„Zd„Zd„Zd„Zd„Z d„Z ˆxZ S) rad'Safe' child watcher implementation. This implementation avoids disrupting other code spawning processes by polling explicitly each process in the SIGCHLD handler instead of calling os.waitpid(-1). This is a safe solution but it has a significant overhead when handling a big number of children (O(n) each time SIGCHLD is raised) cóz•—|j ¦«t¦« ¦«dSr )r r9r(r1©r+r-s €rr1zSafeChildWatcher.closes,ø€Ø Œ×ÒÑÔÐÝ ‰Œ� Š ‰Œˆˆˆrcó—|Sr rrs rr–zSafeChildWatcher.__enter__ r£rcó—dSr rr˜s rrœzSafeChildWatcher.__exit__#r¨rcóH—||f|j|<| |¦«dSr )r rÇrŒs rryz"SafeChildWatcher.add_child_handler&s/€Ø (¨$Ð/ˆŒ˜Ñð ×Ò˜ÑÔÐÐÐrcó:— |j|=dS#t$rYdSwxYw©NTF©r r`rŽs rr�z%SafeChildWatcher.remove_child_handler,ó8€ð Ø” Ð$Ø�4øÝð ð ð Ø�5�5ð øøøó ‚ Œ ™có^—t|j¦«D]}| |¦«ŒdSr ©r4r rÇrŽs rrÊz SafeChildWatcher._do_waitpid_all3s<€å˜œÑ(Ô(ð "ð "ˆCØ × Ò ˜SÑ !Ô !Ð !Ð !ð "ð "rcó—|dksJ‚ tj|tj¦«\}}|dkrdSt|¦«}|j ¦«rt jd||¦«n)#t$r|}d}t j d|¦«YnwxYw |j   |¦«\}}|||g|¢RŽdS#t$r7|j ¦«rt j d|d¬¦«YdSYdSwxYw)Nrú$process %s exited with returncode %sr»ú8Unknown child process pid %d, will report returncode 255ú'Child watcher got an unexpected pid: %rTr;) r!r½ÚWNOHANGr"rïrrrr¾rcr r¼r`)r+rÆr�r$rŽrUrVs rrÇzSafeChildWatcher._do_waitpid8s€€Ø˜aÒÐÐÐð 7Ýœ* \µ2´:Ñ>Ô>‰KˆC�ð�aŠxˆxà�å/°Ñ7Ô7ˆJØŒz×#Ò#Ñ%Ô%ð 7Ý” ÐCØ)¨:ñ7ô7ð7øøõ!ð ð ð ðˆC؈JÝ ŒNØJØñ ô ð ð ð ð  øøøð$ -Ø!œ_×0Ò0°Ñ5Ô5‰NˆH�dð ˆH�S˜*Ð , tÐ ,Ð ,Ð ,Ð ,Ð ,Ð ,øõð 3ð 3ð 3ðŒz×#Ò#Ñ%Ô%ð 3Ý”ÐHØ"¨Tð3ñ3ô3ð3ð3ð3ð3ð 3ð 3ð 3ð 3øøøs#Š"A3Á3#BÂBÂCÃ:DÄD) rærçrèrér1r–rœryr�rÊrÇrêrës@rrrsœø€€€€€ððððððððððð ð ð ðððð ððð"ð"ð"ð -ð -ð -ð -ð -ð -ð -rrcóJ‡—eZdZdZˆfd„Zˆfd„Zd„Zd„Zd„Zd„Z d„Z ˆxZ S) raW'Fast' child watcher implementation. This implementation reaps every terminated processes by calling os.waitpid(-1) directly, possibly breaking other code spawning processes and waiting for their termination. There is no noticeable overhead when handling a big number of children (O(1) each time a child terminates). có”•—t¦« ¦«tj¦«|_i|_d|_dSrÞ)r(r)Ú threadingÚLockÚ_lockÚ_zombiesÚ_forksrÓs €rr)zFastChildWatcher.__init__es:ø€Ý ‰Œ×ÒÑÔÐÝ”^Ñ%Ô%ˆŒ ؈Œ ؈Œ ˆ ˆ rc󬕗|j ¦«|j ¦«t¦« ¦«dSr )r r9rèr(r1rÓs €rr1zFastChildWatcher.closeks@ø€Ø Œ×ÒÑÔÐØ Œ ×ÒÑÔÐÝ ‰Œ� Š ‰Œˆˆˆrcóh—|j5|xjdz c_|cddd¦«S#1swxYwYdS)Nr)rçrérs rr–zFastChildWatcher.__enter__ps�€Ø ŒZð ð Ø ˆKŒK˜1Ñ ˆKŒKàð ð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ð s ˆ'§+®+có —|j5|xjdzc_|js|js ddd¦«dSt|j¦«}|j ¦«ddd¦«n #1swxYwYt jd|¦«dS)Nrz5Caught subprocesses termination from unknown pids: %s)rçrérèrOr9rrc)r+r™ršr›Úcollateral_victimss rrœzFastChildWatcher.__exit__vsù€Ø ŒZð "ð "Ø ˆKŒK˜1Ñ ˆKŒKàŒ{ð  $¤-ð Øð  "ð "ð "ñ "ô "ð "ð "ð "õ "% T¤]Ñ!3Ô!3Ð Ø ŒM× Ò Ñ !Ô !Ð !ð "ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "õ ŒØ CØ ñ ô ð ð ð sˆ A.µ-A.Á.A2Á5A2có—|js Jd¦«‚|j5 |j |¦«}n(#t$r||f|j|<Yddd¦«dSwxYw ddd¦«n #1swxYwY|||g|¢RŽdS)NzMust use the context manager)rérçrèr¼r`r )r+r�rUrVrŽs rryz"FastChildWatcher.add_child_handler„s€ØŒ{Ð:Ð:Ð:Ñ:Ô:ˆ{à ŒZð ð ð Ø!œ]×.Ò.¨sÑ3Ô3� � øÝð ð ð à'/° ~�” Ñ$Øð  ð ð ñ ô ð ð ð ð øøøðð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ˆ��jÐ( 4Ð(Ð(Ð(Ð(Ð(Ð(s1™A+›6µA+¶AÁ A+ÁAÁA+Á+A/Á2A/có:— |j|=dS#t$rYdSwxYwrØrÙrŽs rr�z%FastChildWatcher.remove_child_handler’rÚrÛcó~— tjdtj¦«\}}|dkrdSt|¦«}n#t$rYdSwxYw|j5 |j |¦«\}}|j  ¦«rtj d||¦«n_#t$rR|j rF||j|<|j  ¦«rtj d||¦«Yddd¦«Œúd}YnwxYwddd¦«n #1swxYwY|€tjd||¦«n |||g|¢RŽ�Œ=)NTr@rrßz,unknown process %s exited with returncode %sz8Caught subprocess termination from unknown pid: %d -> %d)r!r½râr"r¾rçr r¼rïrrrr`rérèrc)r+r�r$rŽrUrVs rrÊz FastChildWatcher._do_waitpid_all™sÿ€ð% 1ð <Ý œj¨­R¬ZÑ8Ô8‘ ��Vð ˜!’8�8à�Få3°FÑ;Ô;� � øõ%ð ð ð à��ð øøøð”ð 6ð 6ð6Ø%)¤_×%8Ò%8¸Ñ%=Ô%=‘N�H˜dð”z×+Ò+Ñ-Ô-ð6Ýœ Ð%KØ%(¨*ñ6ô6ð6øøõ ð $ð $ð $à”{ð!à-7˜œ  cÑ*Øœ:×/Ò/Ñ1Ô1ð:Ý"œLð*>à),¨jñ:ô:ð:ð!ð 6ð 6ð 6ñ 6ô 6ð 6ð 6ð $�H�H�Hð $øøøð 6ð 6ð 6ñ 6ô 6ð 6ð 6ð 6ð 6ð 6ð 6øøøð 6ð 6ð 6ð 6ð&ÐÝ”ðØ # Zñ1ô1ð1ð1ð�˜˜jÐ0¨4Ð0Ð0Ð0Ð0ñK% 1sRƒ"=½ A Á A ÁDÁB$Á40DÂ$A DÃ.DÃ;DÃ=DÃ?DÄDÄDÄD) rærçrèrér)r1r–rœryr�rÊrêrës@rrr[s¦ø€€€€€ðððððððð ððððð ððð  ð  ð  ð )ð )ð )ðððð(1ð(1ð(1ð(1ð(1ð(1ð(1rrcóT—eZdZdZd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z d „Z d „Z d „Zd S)ra~A watcher that doesn't require running loop in the main thread. This implementation registers a SIGCHLD signal handler on instantiation (which may conflict with other code that install own handler for this signal). The solution is safe but it has a significant overhead when handling a big number of processes (*O(n)* each time a SIGCHLD is received). có"—i|_d|_dSr )r Ú_saved_sighandlerrs rr)zMultiLoopChildWatcher.__init__×s€ØˆŒØ!%ˆÔÐÐrcó—|jduSr )rórs rrvzMultiLoopChildWatcher.is_activeÛs€ØÔ%¨TÐ1Ð1rcó—|j ¦«|j€dStjtj¦«}||jkrtjd¦«n$tjtj|j¦«d|_dS)Nz+SIGCHLD handler was changed by outside code) r r9rórIÚ getsignalrÍrÎrrc)r+rds rr1zMultiLoopChildWatcher.closeÞs|€Ø Œ×ÒÑÔÐØ Ô !Ð )Ø ˆFåÔ"¥6¤>Ñ2Ô2ˆØ �d”nÒ $Ð $Ý ŒNÐHÑ IÔ IÐ IÐ Iå ŒM�&œ.¨$Ô*@Ñ AÔ AÐ AØ!%ˆÔÐÐrcó—|Sr rrs rr–zMultiLoopChildWatcher.__enter__êr£rcó—dSr r©r+r¥Úexc_valÚexc_tbs rrœzMultiLoopChildWatcher.__exit__ír¨rcóp—tj¦«}|||f|j|<| |¦«dSr )rÚget_running_loopr rÇ)r+r�rUrVrüs rryz'MultiLoopChildWatcher.add_child_handlerðs?€ÝÔ&Ñ(Ô(ˆØ $ h°Ð5ˆŒ˜Ñð ×Ò˜ÑÔÐÐÐrcó:— |j|=dS#t$rYdSwxYwrØrÙrŽs rr�z*MultiLoopChildWatcher.remove_child_handler÷rÚrÛcó—|j�dStjtj|j¦«|_|j€%t jd¦«tj|_tjtjd¦«dS)NzaPrevious SIGCHLD handler was set by non-Python code, restore to default handler on watcher close.F)rórIrÍrÎrrcrcrQr‘s rr’z!MultiLoopChildWatcher.attach_loopþsw€ð Ô !Ð -Ø ˆFå!'¤­v¬~¸t¼~Ñ!NÔ!NˆÔØ Ô !Ð )Ý ŒNðJñ Kô Kð Kå%+¤^ˆDÔ "õ Ô�FœN¨EÑ2Ô2Ð2Ð2Ð2rcó^—t|j¦«D]}| |¦«ŒdSr rÝrŽs rrÊz%MultiLoopChildWatcher._do_waitpid_alls<€Ý˜œÑ(Ô(ð "ð "ˆCØ × Ò ˜SÑ !Ô !Ð !Ð !ð "ð "rcóD—|dksJ‚ tj|tj¦«\}}|dkrdSt|¦«}d}n+#t$r|}d}t jd|¦«d}YnwxYw |j |¦«\}}}|  ¦«rt jd||¦«dS|r*|  ¦«rt j d||¦«|j |||g|¢RŽdS#t$rt jd|d¬ ¦«YdSwxYw) NrTr»ràFú%Loop %r that handles pid %r is closedrßrár;)r!r½râr"r¾rrcr r¼Ú is_closedrrrŠr`) r+rÆr�r$rŽÚ debug_logrürUrVs rrÇz!MultiLoopChildWatcher._do_waitpidsœ€Ø˜aÒÐÐÐð Ýœ* \µ2´:Ñ>Ô>‰KˆC�ð�aŠxˆxà�å/°Ñ7Ô7ˆJ؈IˆIøõ!ð ð ð ðˆC؈JÝ ŒNØJØñ ô ð ðˆIˆIˆIð øøøð  LØ#'¤?×#6Ò#6°sÑ#;Ô#;Ñ ˆD�(˜Dð�~Š~ÑÔð LÝ”ÐFÈÈcÑRÔRÐRÐRÐRàð; §¢Ñ!1Ô!1ð;Ý”LÐ!GØ!-¨zñ;ô;ð;à)�Ô)¨(°C¸ÐKÀdÐKÐKÐKÐKÐKÐKøõð /ð /ð /õ ŒNÐDبð /ñ /ô /ð /ð /ð /ð /ð /øøøs#Š"AÁ%A.Á-A.Á2C:Ã:!DÄDcó — | ¦«dS#ttf$r‚t$rt jdd¬¦«YdSwxYw)NrÐTr;)rÊr|r}r~rrc)r+rrs rrÎzMultiLoopChildWatcher._sig_chld8sy€ð RØ × Ò Ñ "Ô "Ð "Ð "Ð "øÝÕ-Ð.ð ð ð Ø Ýð Rð Rð RÝ ŒNÐAÈDÐ QÑ QÔ QÐ QÐ QÐ QÐ Qð Røøøs‚˜1A Á A N)rærçrèrér)rvr1r–rœryr�r’rÊrÇrÎrrrrrÄsÌ€€€€€ð ð ð$&ð&ð&ð2ð2ð2ð &ð &ð &ðððð ð ð ððððððð3ð3ð3ð""ð"ð"ð#Lð#Lð#LðJRðRðRðRðRrrcó\—eZdZdZd„Zd„Zd„Zd„Zd„Ze j fd„Z d„Z d „Z d „Zd „Zd S) raAThreaded 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óF—tjd¦«|_i|_dSrÞ)Ú itertoolsrÆÚ _pid_counterÚ_threadsrs rr)zThreadedChildWatcher.__init__Ns€Ý%œO¨AÑ.Ô.ˆÔ؈Œ ˆ ˆ rcó—dSrCrrs rrvzThreadedChildWatcher.is_activeRrnrcó—dSr rrs rr1zThreadedChildWatcher.closeUr¨rcó—|Sr rrs rr–zThreadedChildWatcher.__enter__Xr£rcó—dSr rrùs rrœzThreadedChildWatcher.__exit__[r¨rcó¤—d„t|j ¦«¦«D¦«}|r||j›d�t|¬¦«dSdS)Ncó:—g|]}| ¦«¯|‘ŒSr)Úis_alive)Ú.0Úthreads rú z0ThreadedChildWatcher.__del__.._s6€ð)ð)ð)˜fØ—o’oÑ'Ô'ð)�6ð)ð)ð)rz0 has registered but not finished child processesr/)r4r r³r-r8)r+r5Úthreadss rr6zThreadedChildWatcher.__del__^s}€ð)ð)­¨T¬]×-AÒ-AÑ-CÔ-CÑ(DÔ(Dð)ñ)ô)ˆà ð Ø ˆE�T”^ÐUÐUÐUÝ!Øð ñ ô ð ð ð ð ð rcóÔ—tj¦«}tj|jdt |j¦«›�||||fd¬¦«}||j|<| ¦«dS)Nzasyncio-waitpid-T)ÚtargetÚnamerVÚdaemon) rrýråÚThreadrÇÚnextr r Ústart)r+r�rUrVrürs rryz&ThreadedChildWatcher.add_child_handlerfsp€ÝÔ&Ñ(Ô(ˆÝÔ!¨Ô)9Ø'S½$¸tÔ?PÑ:QÔ:QÐ'SÐ'SØ(,¨c°8¸TÐ'BØ)-ð/ñ/ô/ˆð$ˆŒ �cÑØ� Š ‰Œˆˆˆrcó—dSrCrrŽs rr�z)ThreadedChildWatcher.remove_child_handleros €ðˆtrcó—dSr rr‘s rr’z ThreadedChildWatcher.attach_loopur¨rcó¸—|dksJ‚ tj|d¦«\}}t|¦«}| ¦«rt jd||¦«n)#t $r|}d}t jd|¦«YnwxYw| ¦«rt jd||¦«n|j |||g|¢RŽ|j   |¦«dS)Nrrßr»ràr) r!r½r"rrrr¾rcrrŠr r¼)r+rürÆrUrVr�r$rŽs rrÇz ThreadedChildWatcher._do_waitpidxs €Ø˜aÒÐÐÐð 7Ýœ* \°1Ñ5Ô5‰KˆC�õ0°Ñ7Ô7ˆJØ�~Š~ÑÔð 7Ý” ÐCØ)¨:ñ7ô7ð7øøõ!ð ð ð ðˆC؈JÝ ŒNØJØñ ô ð ð ð ð  øøøð �>Š>Ñ Ô ð HÝ ŒNÐBÀDÈ#Ñ NÔ NÐ NÐ Nà %ˆDÔ % h°°ZÐ GÀ$Ð GÐ GÐ GÐ Gà Œ ×Ò˜,Ñ'Ô'Ð'Ð'Ð'sŠAÁ#BÂBN)rærçrèrér)rvr1r–rœr6r7r6ryr�r’rÇrrrrrAsÀ€€€€€ð ð ððððððð ð ð ðððð ð ð ð%œMððððððððððð  ð ð ð(ð(ð(ð(ð(rrcóB‡—eZdZdZeZˆfd„Zd„Zˆfd„Zd„Z d„Z ˆxZ S)Ú_UnixDefaultEventLoopPolicyz:UNIX event loop policy with a watcher for child processes.cóV•—t¦« ¦«d|_dSr )r(r)Ú_watcherrÓs €rr)z$_UnixDefaultEventLoopPolicy.__init__—s$ø€Ý ‰Œ×ÒÑÔÐØˆŒ ˆ ˆ rcó„—tj5|j€t¦«|_ddd¦«dS#1swxYwYdSr )rrçr#rrs rÚ _init_watcherz)_UnixDefaultEventLoopPolicy._init_watcher›sƒ€Ý Œ\ð 7ð 7ØŒ}Ð$Ý 4Ñ 6Ô 6�” ð 7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7ð 7ð 7s �5µ9¼9cóà•—t¦« |¦«|j�Btj¦«tj¦«ur|j |¦«dSdSdS)zÑSet the event loop. As a side effect, if a child watcher was set before, then calling .set_event_loop() from the main thread will call .attach_loop(loop) on the child watcher. N)r(Úset_event_loopr#råÚcurrent_threadÚ main_threadr’)r+rür-s €rr'z*_UnixDefaultEventLoopPolicy.set_event_loop slø€õ ‰Œ×Ò˜tÑ$Ô$Ð$à ŒMÐ %ÝÔ(Ñ*Ô*­iÔ.CÑ.EÔ.EÐEÐEØ ŒM× %Ò % dÑ +Ô +Ð +Ð +Ð +ð &Ð %ØEÐErcóF—|j€| ¦«|jS)z~Get the watcher for child processes. If not yet set, a ThreadedChildWatcher object is automatically created. )r#r%rs rruz-_UnixDefaultEventLoopPolicy.get_child_watcher®s&€ð Œ=Ð Ø × Ò Ñ Ô Ð àŒ}Ðrcó†—|�t|t¦«sJ‚|j�|j ¦«||_dS)z$Set the watcher for child processes.N)rfrr#r1)r+r†s rÚset_child_watcherz-_UnixDefaultEventLoopPolicy.set_child_watcher¸sD€ðˆ¥*¨WÕ6JÑ"KÔ"KˆˆÐKà Œ=Ð $Ø ŒM× Ò Ñ !Ô !Ð !àˆŒ ˆ ˆ r) rærçrèrér&Ú _loop_factoryr)r%r'rur,rêrës@rr!r!“s‰ø€€€€€ØDÐDØ*€Mðððððð7ð7ð7ð ,ð ,ð ,ð ,ð ,ðððð ð ð ð ð ð ð rr!)3rérSr¿rr!rrIršr¬r€r2rår6Úrrrrrr r r r r ÚlogrÚ__all__rQÚ ImportErrorrr"ÚBaseSelectorEventLoopr&Ú ReadTransportrjÚ_FlowControlMixinÚWriteTransportrrÚBaseSubprocessTransportrxrrrÁrrrrÚBaseDefaultEventLoopPolicyr!rrrrrúr8sðØ8Ð8à € € € Ø € € € ØÐÐÐØ € € € ØÐÐÐØ € € € Ø € € € Ø € € € ØÐÐÐØ € € € ØÐÐÐØ€€€àÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐð €ð„<�7ÒÐØ ˆ+ÐCÑ DÔ DÐDð ð ð ð ðððN"ðN"ðN"ðN"ðN"˜_ÔBñN"ôN"ðN"ðb MðMðMðMðM˜ZÔ5ñMôMðMð`JðJðJðJðJ˜jÔ:Ø(Ô7ñJôJðJðZ ð ð ð ð ˜ÔFñ ô ð ð0L$ðL$ðL$ðL$ðL$ñL$ôL$ðL$ð^KðKðKðKðKÐ,ñKôKðKð\2ð2ð2ð2ð2Ð+ñ2ô2ð2ðjG-ðG-ðG-ðG-ðG-Ð'ñG-ôG-ðG-ðTf1ðf1ðf1ðf1ðf1Ð'ñf1ôf1ðf1ðRzRðzRðzRðzRðzRÐ0ñzRôzRðzRðzO(ðO(ðO(ðO(ðO(Ð/ñO(ôO(ðO(ðd- ð- ð- ð- ð-  &Ô"Cñ- ô- ð- ð`+ÐØ4ÐÐÐr