a  Ðh ã@sddlZddlZdd„ZdS)éNcsRttdƒs0ddl‰ddl‰d‡‡fdd„ }|t_ttdƒsNGdd„dƒ}|t_dS) z#Add shims for older Python versionsÚrecv_fdsrNc s‚ˆ d¡}| |ˆ ||j¡¡\}}}}|D]B\}} } |ˆjkr.| ˆjkr.| | dt| ƒt| ƒ|j…¡q.|t|ƒ||fS)NÚi) ÚarrayZrecvmsgZCMSG_LENÚitemsizeZ SOL_SOCKETZ SCM_RIGHTSZ frombytesÚlenÚlist) ZsockÚbufsizeZmaxfdsÚflagsZfdsÚmsgZancdataÚaddrZ cmsg_levelZ cmsg_typeZ cmsg_data©Ú_socketr©ú5/usr/lib/python3.9/site-packages/cockpit/polyfills.pyrs   &zinstall..recv_fdsÚAsyncExitStackc@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) zinstall..AsyncExitStackcÓsg|_g|_|S©N)ÚcmsÚ async_cms)ÚselfrrrÚ __aenter__+sz*install..AsyncExitStack.__aenter__cÓs| ¡IdH}|j |¡|Sr)rrÚappend©rÚcmÚresultrrrÚenter_async_context0s z3install..AsyncExitStack.enter_async_contextcSs| ¡}|j |¡|Sr)Ú __enter__rrrrrrÚ enter_context5s z-install..AsyncExitStack.enter_contextcÓs8|jD]}| |||¡q|jD]}| |||¡q dSr)rÚ __aexit__rÚ__exit__)rÚexc_typeÚ exc_valueÚ tracebackrrrrr:s  z)install..AsyncExitStack.__aexit__N)Ú__name__Ú __module__Ú __qualname__rrrrrrrrr*s)r)ÚhasattrÚsocketr rrÚ contextlibr)rrrr rÚinstalls  r()r'r&r(rrrrÚs