+
    öÙ†jB  ã                   ó&  € R t ^ RIt]P                  R8w  d	   ]! R4      h^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	Rt
Rt]P                  t]P                  t]P                  ! 4       t^tRRR	RR
]/R lt ! R R4      t ! R R]P&                  4      tR# )z)Various Windows specific bits and pieces.NÚwin32z
win32 onlyÚPopenÚ
PipeHandlei    ÚduplexFÚ
overlappedÚbufsizec                ó   € V '       d9   \         P                  p\         P                  \         P                  ,          pY"reM#\         P                  p\         P                  p^ TreV\         P
                  ,          pV^ ,          '       d   V\         P                  ,          pV^,          '       d   \         P                  pM^ pR;r‰ \        P                  ! 4        Fž  p
RP                  \        P                  ! 4       \        \        4      \        P                  ! ^4      P                  4       4      p \         P                   ! W³\         P"                  ^WV\         P$                  \         P&                  4      p M	  \         P2                  ! XV^ \         P&                  \         P4                  V\         P&                  4      p	\         P6                  ! VRR7      pVP9                  R4       W‰3#   \(         dI   pT
\*        8¼  d   h TP,                  \         P.                  \         P0                  39  d   h  Rp?EKb  Rp?ii ; i   Te   \         P:                  ! T4       T	e   \         P:                  ! T	4       h ; i)zELike os.pipe() but with overlapped support and using handles not fds.Nz!\\.\pipe\python-pipe-{:d}-{:d}-{}T©r   )Ú_winapiÚPIPE_ACCESS_DUPLEXÚGENERIC_READÚGENERIC_WRITEÚPIPE_ACCESS_INBOUNDÚFILE_FLAG_FIRST_PIPE_INSTANCEÚFILE_FLAG_OVERLAPPEDÚ	itertoolsÚcountÚformatÚosÚgetpidÚnextÚ_mmap_counterÚurandomÚhexÚCreateNamedPipeÚ	PIPE_WAITÚNMPWAIT_WAIT_FOREVERÚNULLÚOSErrorÚ_MAX_PIPE_ATTEMPTSÚwinerrorÚERROR_PIPE_BUSYÚERROR_ACCESS_DENIEDÚ
CreateFileÚOPEN_EXISTINGÚConnectNamedPipeÚGetOverlappedResultÚCloseHandle)r   r   r   ÚopenmodeÚaccessÚobsizeÚibsizeÚflags_and_attribsÚh1Úh2ÚattemptsÚaddressÚeÚovs   $$$           Ú,/usr/lib/python3.14/asyncio/windows_utils.pyÚpiper4       sé  € çÜ×-Ñ-ˆÜ×%Ñ%¬×(=Ñ(=Õ=ˆØ ‘ä×.Ñ.ˆÜ×&Ñ&ˆØ˜G�à”×5Ñ5Õ5€Hà�!‡}„}Ø”G×0Ñ0Õ0ˆà�!‡}„}Ü#×8Ñ8ÑàÐà€N€BðÜ!ŸšÖ)ˆHØ:×AÑAÜ—	’	“œT¤-Ó0´"·*²*¸Q³-×2CÑ2CÓ2EóGˆGð
Ü×,Ò,Ø¤w×'8Ñ'8Ø�v¤w×'CÑ'CÄWÇ\Á\óS�ñ ñ *ô ×ÒØ�V˜Q¤§¡¬g×.CÑ.CØœwŸ|™|ó-ˆô ×%Ò% b°TÔ:ˆØ
×Ñ˜tÔ$Øˆvˆøô ô ØÔ1Ô1ØØ—:‘:¤g×&=Ñ&=Ü&-×&AÑ&Að&Cô CàöCûðûðØŠ>Ü×Ò Ô#ØŠ>Ü×Ò Ô#Øús9   ÃA-I Ä5AG0Å:A5I Ç0IÇ;<H>È7I È>IÉI É7I=c                   ó”   a € ] tR t^Xt o RtR tR t]R 4       tR t	R]
P                  /R lt]P                  3R ltR	 tR
 tRtV tR# )r   z‡Wrapper for an overlapped pipe handle which is vaguely file-object like.

The IOCP event loop can use these instead of socket objects.
c                ó   € Wn         R # ©N©Ú_handle©ÚselfÚhandles   &&r3   Ú__init__ÚPipeHandle.__init__]   s   € ØŽó    c                ó~   € V P                   e   RV P                   : 2pMRpRV P                  P                   RV R2# )Nzhandle=ÚclosedÚ<Ú Ú>)r9   Ú	__class__Ú__name__r:   s   & r3   Ú__repr__ÚPipeHandle.__repr__`   sB   € Ø�<‰<Ò#Ø˜tŸ|™|Ñ.Ð/‰FàˆFØ�4—>‘>×*Ñ*Ð+¨1¨V¨H°AÐ6Ð6r?   c                ó   € V P                   # r7   r8   ©r;   s   &r3   r<   ÚPipeHandle.handleg   s   € à�|‰|Ðr?   c                óL   € V P                   f   \        R4      hV P                   # )NzI/O operation on closed pipe)r9   Ú
ValueErrorrJ   s   &r3   ÚfilenoÚPipeHandle.filenok   s"   € Ø�<‰<ÒÜÐ;Ó<Ð<Ø�|‰|Ðr?   r'   c               óX   € V P                   e   V! V P                   4       R V n         R # R # r7   r8   )r;   r'   s   &$r3   ÚcloseÚPipeHandle.closep   s$   € Ø�<‰<Ò#Ù˜Ÿ™Ô%ØˆDŽLñ $r?   c                ól   € V P                   e&   V! RV : 2\        V R7       V P                  4        R # R # )Nz	unclosed )Úsource)r9   ÚResourceWarningrQ   )r;   Ú_warns   &&r3   Ú__del__ÚPipeHandle.__del__u   s-   € Ø�<‰<Ò#Ù�I˜d™XÐ&¬ÀÕEØ�J‰JŽLñ $r?   c                ó   € V # r7   © rJ   s   &r3   Ú	__enter__ÚPipeHandle.__enter__z   s   € Øˆr?   c                ó&   € V P                  4        R # r7   )rQ   )r;   ÚtÚvÚtbs   &&&&r3   Ú__exit__ÚPipeHandle.__exit__}   s   € Ø�
‰
Žr?   r8   N)rF   Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r=   rG   Úpropertyr<   rN   r
   r'   rQ   ÚwarningsÚwarnrW   r[   ra   Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @r3   r   r   X   s\   ø‡ € ñòò7ð ñó ðòð
  7×#6Ñ#6ô  ð
 %ŸM™Mô ò
÷ð r?   c                   ó:   a a€ ] tR t^„t oRtRV 3R lltRtVtV ;t# )r   z€Replacement for subprocess.Popen using overlapped pipe handles.

The stdin, stdout, stderr are None or instances of PipeHandle.
c           	     óŠ  <€ VP                  R 4      '       d   Q hVP                  R^ 4      ^ 8X  g   Q hR;p;rxR;p	;r«V\        8X  d6   \        R	RR7      w  rÉ\        P                  ! V\
        P                  4      pMTpV\        8X  d'   \        R
R7      w  r­\        P                  ! V^ 4      pMTpV\        8X  d'   \        R
R7      w  r¾\        P                  ! V^ 4      pMV\        8X  d   TpMTp \        SV `$  ! V3RVRVRV/VB  V	e   \        V	4      V n        V
e   \        V
4      V n        Ve   \        V4      V n        T\        8X  d   \
        P                   ! T4       T\        8X  d   \
        P                   ! T4       T\        8X  d   \
        P                   ! T4       R# R#    YšT3 F  pTf   K	  \        P                  ! T4       K!  	  h ; i  T\        8X  d   \
        P                   ! T4       T\        8X  d   \
        P                   ! T4       T\        8X  d   \
        P                   ! T4       i i ; i)Úuniversal_newlinesr   NT)r   r   r	   ÚstdinÚstdoutÚstderr)FT)TF)ÚgetÚPIPEr4   ÚmsvcrtÚopen_osfhandler   ÚO_RDONLYÚSTDOUTÚsuperr=   r   rp   rq   rr   r
   r'   rQ   )r;   Úargsrp   rq   rr   ÚkwdsÚ	stdin_rfdÚ
stdout_wfdÚ
stderr_wfdÚstdin_whÚ	stdout_rhÚ	stderr_rhÚstdin_rhÚ	stdout_whÚ	stderr_whÚhrE   s   &&&&&,          €r3   r=   ÚPopen.__init__‰   s÷  ø€ Ø—8‘8Ð0×1Ò1Ð1Ð1Ø�x‰x˜	 1Ó%¨Ô*Ð*Ð*Ø.2Ð2ˆ	Ð2�JØ+/Ð/ˆÐ/�9Ø”DŒ=Ü!%°ÀtÔ!LÑˆHÜ×-Ò-¨h¼¿¹ÓD‰IàˆIØ”TŒ>Ü#'°=Ô#AÑ ˆIÜ×.Ò.¨y¸!Ó<‰JàˆJØ”TŒ>Ü#'°=Ô#AÑ ˆIÜ×.Ò.¨y¸!Ó<‰JØ”vÔØ#‰JàˆJð	%Ü‰GÒ˜Tñ 8¨ð 8¸:ð 8Ø$.ð8Ø26ò8ð Ò#Ü'¨Ó1�”
ØÒ$Ü(¨Ó3�”ØÒ$Ü(¨Ó3�”àœŒ}Ü—’˜Ô#ØœŒ~Ü—’˜Ô$ØœŒ~Ü—’˜Ö$ñ øð#	Ø¨9Ó5�Ø”=Ü×'Ò'¨Ö*ñ 6ð ûð œŒ}Ü—’˜Ô#ØœŒ~Ü—’˜Ô$ØœŒ~Ü—’˜Õ$ð ús%   Ã5F/ Ä<G Æ/
GÆ>GÇG ÇA&I)rr   rp   rq   )NNN)	rF   rc   rd   re   rf   r=   rj   rk   Ú__classcell__)rE   rl   s   @@r3   r   r   „   s   ù‡ € ñ÷+%÷ +%r?   )r4   r   rt   r   )TT)rf   ÚsysÚplatformÚImportErrorr
   r   ru   r   Ú
subprocessrh   Ú__all__ÚBUFSIZErt   rx   r   r   r   r4   r   r   rZ   r?   r3   Ú<module>rŽ      s    ðÙ /ã 
à‡<�<�7ÔÙ
�lÓ
#Ð#ã Û Û Û 	Û Û ð 0€ð €Ø‡�€Ø	×	Ñ	€Ø—’Ó!€ØÐ ð2�5ð 2 \ð 2¸7ô 2÷p&ñ &ôX0%ˆJ×Ñö 0%r?   