ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ nf\c@sddlZddlmZddlZddlZyddlmZWn!ek rkddlmZnXdddgZde fdYZ ej dkrd Z n d Z e e dd Ze e ddZdZdZdaddZddZdS(iN(tpartial(t monotonic(ttimetNoWayToWaitForSocketErrort wait_for_readtwait_for_writecBseZRS((t__name__t __module__(((s5/usr/lib/python2.7/site-packages/urllib3/util/wait.pyR siicCs ||S(N((tfnttimeout((s5/usr/lib/python2.7/site-packages/urllib3/util/wait.pyt_retry_on_intr)scCs|dkrtd}n t|}xtry||SWq+ttjfk r}|jdtj krvq|t}|dkrd}n|tdkr+d}q+q+q+Xq+WdS(Ntinfi( tNonetfloatRtTruetOSErrortselectterrortargsterrnotEINTR(RR tdeadlinete((s5/usr/lib/python2.7/site-packages/urllib3/util/wait.pyR -s       c Cs| r| rtdng}g}|r?|j|n|rU|j|nttj|||}t||\}}} t|p|p| S(Ns2must specify at least one of read=True, write=True(t RuntimeErrortappendRRR tbool( tsocktreadtwriteR trchecktwcheckRtrreadytwreadytxready((s5/usr/lib/python2.7/site-packages/urllib3/util/wait.pytselect_wait_for_socketDscs| r| rtdnd}|r9|tjO}n|rO|tjO}ntjj||fd}tt||S(Ns2must specify at least one of read=True, write=Trueics&|dk r|d9}nj|S(Ni(R tpoll(tt(tpoll_obj(s5/usr/lib/python2.7/site-packages/urllib3/util/wait.pytdo_pollcs  (RRtPOLLINtPOLLOUTR#tregisterRR (RRRR tmaskR&((R%s5/usr/lib/python2.7/site-packages/urllib3/util/wait.pytpoll_wait_for_socketWs cOstddS(Nsno select-equivalent available(R(Rtkwargs((s5/usr/lib/python2.7/site-packages/urllib3/util/wait.pytnull_wait_for_socketkscCsCy tj}t|jdWnttfk r:tSXtSdS(Ni(RR#R tAttributeErrorRtFalseR(R%((s5/usr/lib/python2.7/site-packages/urllib3/util/wait.pyt_have_working_pollos  cOs=trtanttdr*tantat||S(NR(R0R+twait_for_socketthasattrRR"R-(RR,((s5/usr/lib/python2.7/site-packages/urllib3/util/wait.pyR1|s    cCst|dtd|S(s Waits for reading to be available on a given socket. Returns True if the socket is readable, or False if the timeout expired. RR (R1R(RR ((s5/usr/lib/python2.7/site-packages/urllib3/util/wait.pyRscCst|dtd|S(s Waits for writing to be available on a given socket. Returns True if the socket is readable, or False if the timeout expired. RR (R1R(RR ((s5/usr/lib/python2.7/site-packages/urllib3/util/wait.pyRs(ii(Rt functoolsRRtsysRRt ImportErrort__all__t ExceptionRt version_infoR R/R R"R+R-R0R1RR(((s5/usr/lib/python2.7/site-packages/urllib3/util/wait.pyts&