§ {<ˆjò¹ã ó—dZddlmZmZmZmZddlmZmZm Z m Z ddl m Z ddl mZddl mZddlmZddlZddlZddlZdd lmZddlZdd lmZe rdd lmZndd lmZgd ¢Zd Z dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(dZ)dZ*dZ+dZ,dZ-dZ.dZ/dZ0dZ1dZ2d Z3d!Z4d"Z5d#Z6d$Z7d%Z8d&Z9d'Z:d(Z;d)Zd,Z?d-Z@d.ZAd/ZBd0ZCd1ZDd2ZEd3ZFd4ZGd5ZHd6ZId7ZJd8ZKd9ZLd:ZMd;ZNdZQd?ZRd@ZSdAZTdBZUdCZVdDZWdEZXdFZYdGZZiddH“ddI“ddJ“ddK“ddL“ddM“ddN“ddO“ddP“ddQ“d dR“d!dS“d"dT“d#dU“d$dV“dWdX“d%dY“id&dZ“d'd[“d(d\“d)d]“d*d^“d+d_“d,d`“d-da“d.db“d/dc“d0dd“d1de“d2df“d3dg“d4dh“d5di“d6dj“¥dkdldmdndodpdqdrdsdtdudvœ ¥Z[dwZ\dxZ]dZ^Gdy„dzej_¦«Z`e`fd{„Zaeb¦«ZcGd|„d}ejd¦«ZeGd~„deb¦«Zf ddlgZgdd€lgmhZhGd�„d‚ef¦«Zie jd‚¦«n #ek$rYnwxYwGdƒ„d„el¦«ZmGd…„d†em¦«ZnGd‡„dˆem¦«ZoGd‰„dŠem¦«ZpGd‹„dŒem¦«ZqGd�„dŽem¦«ZrGd�„d�em¦«ZsGd‘„d’em¦«ZtGd“„d”et¦«ZuGd•„d–et¦«ZvGd—„d˜et¦«ZwGd™„dšem¦«ZxGd›„dœem¦«ZyemZzdS)�aD HTTP/1.1 client library A backport of the Python 3.3 http/client.py module for python-future. HTTPConnection goes through a number of "states", which define when a client may legally make another request or fetch the response for a particular request. This diagram details these state transitions: (null) | | HTTPConnection() v Idle | | putrequest() v Request-started | | ( putheader() )* endheaders() v Request-sent | | response = getresponse() v Unread-response [Response-headers-read] |\____________________ | | | response.read() | putrequest() v v Idle Req-started-unread-response ______/| / | response.read() | | ( putheader() )* endheaders() v v Request-started Req-sent-unread-response | | response.read() v Request-sent This diagram presents the following rules: -- a second request may not be started until {response-headers-read} -- a response [object] cannot be retrieved until {request-sent} -- there is no differentiation between an unread response body and a partially read response body Note: this enforcement is applied by the HTTPConnection class. The HTTPResponse class does not enforce this state machine, which implies sophisticated clients may accelerate the request/response pipeline. Caution should be taken, though: accelerating the states beyond the above pattern may imply knowledge of the server's connection-close behavior for certain requests. For example, it is impossible to tell whether the server will close the connection UNTIL the response headers have been read; this means that further requests cannot be placed into the pipeline until it is known that the server will NOT be closing the connection. Logical State __state __response ------------- ------- ---------- Idle _CS_IDLE None Request-started _CS_REQ_STARTED None Request-sent _CS_REQ_SENT None Unread-response _CS_IDLE Req-started-unread-response _CS_REQ_STARTED Req-sent-unread-response _CS_REQ_SENT é)Úabsolute_importÚdivisionÚprint_functionÚunicode_literals)ÚbytesÚintÚstrÚsuper)ÚPY2)Úparser)Úmessage)Úcreate_connectionN)Úurlsplit)Úarray)ÚIterable)Ú HTTPResponseÚHTTPConnectionÚ HTTPExceptionÚ NotConnectedÚUnknownProtocolÚUnknownTransferEncodingÚUnimplementedFileModeÚIncompleteReadÚ InvalidURLÚImproperConnectionStateÚCannotSendRequestÚCannotSendHeaderÚResponseNotReadyÚ BadStatusLineÚerrorÚ responseséPi»ÚUNKNOWNÚIdlezRequest-startedz Request-sentédéeéféÈéÉéÊéËéÌéÍéÎéÏéâi,i-i.i/i0i1i3i�i‘i’i“i”i•i–i—i˜i™iši›iœi�ižiŸi é¡i¦i§i¨iªé¬é­é¯éôéõéöé÷éøéùiûiþéÿÚContinuezSwitching ProtocolsÚOKÚCreatedÚAcceptedzNon-Authoritative Informationz No Contentz Reset ContentzPartial ContentzMultiple ChoiceszMoved PermanentlyÚFoundz See Otherz Not Modifiedz Use Proxyi2z(Unused)zTemporary Redirectz Bad RequestÚ UnauthorizedzPayment RequiredÚ Forbiddenz Not FoundzMethod Not AllowedzNot AcceptablezProxy Authentication RequiredzRequest TimeoutÚConflictÚGonezLength RequiredzPrecondition FailedzRequest Entity Too LargezRequest-URI Too LongzUnsupported Media TypezRequested Range Not SatisfiablezExpectation FailedzPrecondition RequiredzToo Many RequestszRequest Header Fields Too LargezInternal Server ErrorzNot Implementedz Bad GatewayzService UnavailablezGateway TimeoutzHTTP Version Not SupportedzNetwork Authentication Required) r1r2r3r4r5r6r7r8r9r:r;iicó—eZdZd„ZdS)Ú HTTPMessagecó8—| ¦«dz}t|¦«}g}d}| ¦«D]Z}|d|… ¦«|krd}n|dd… ¦«sd}|r| |¦«Œ[|S)aºFind all header lines matching a given header name. Look through the list of headers and find all lines matching a given header name (and their continuation lines). A list of the lines is returned, without interpretation. If the header does not occur, an empty list is returned. If the header occurs multiple times, all occurrences are returned. Case is not important in the header name. ú:rNé)ÚlowerÚlenÚkeysÚisspaceÚappend)ÚselfÚnameÚnÚlstÚhitÚlines ún/builddir/build/BUILD/cloudlinux-venv-1.0.12/venv/lib/python3.11/site-packages/future/backports/http/client.pyÚgetallmatchingheadersz!HTTPMessage.getallmatchingheadersðs§€ð�zŠz‰|Œ|˜cÑ!ˆÝ �‰IŒIˆØˆØˆØ—I’I‘K”Kð !ð !ˆDØ�B�Q�BŒx�~Š~ÑÔ 4Ò'Ð'Ø��ؘ"˜1˜"”X×%Ò%Ñ'Ô'ð Ø�Øð !Ø— ’ ˜4Ñ Ô Ð øØˆ óN)Ú__name__Ú __module__Ú __qualname__rV©rWrUrFrFés#€€€€€ðððððrWrFcóÞ—g} | tdz¦«}t|¦«tkrtd¦«‚| |¦«t|¦«t krt dt z¦«‚|dvrnŒŽtd¦« |¦«  d¦«}tj |¬¦«  |¦«S) aGParses only RFC2822 headers from a file pointer. email Parser wants to see strings rather than bytes. But a TextIOWrapper around self.rfile would buffer too many bytes from the stream, bytes which we later need to read as bytes. So we read the correct bytes here, as bytes, for email Parser to parse. TrIú header linezgot more than %d headers©ó ó rWrWú iso-8859-1)Ú_class) ÚreadlineÚ_MAXLINErKÚ LineTooLongrNÚ _MAXHEADERSrrÚjoinÚdecodeÚ email_parserÚParserÚparsestr)ÚfprbÚheadersrTÚhstrings rUÚ parse_headersrosÖ€ð€GðØ�{Š{�8 a™<Ñ(Ô(ˆÝ ˆt‰9Œ9•xÒ Ð Ý˜mÑ,Ô,Ð ,Ø�Š�tÑÔÐÝ ˆw‰<Œ<�+Ò %Ð %ÝÐ :½[Ñ HÑIÔIÐ IØ Ð(Ð (Ð (Ø ðõ�C‰jŒj�oŠo˜gÑ&Ô&×-Ò-¨lÑ;Ô;€GÝ Ô  fÐ -Ñ -Ô -× 6Ò 6°wÑ ?Ô ?Ð?rWc󾇗eZdZdeddfd„Zd„Zd„Zd„Zd„Zˆfd„Z ˆfd „Z d „Z d „Z dˆfd „ Z d „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zdd„Zd„Zd„Zd„Zd„Zd„ZˆxZS)rrNcób—| d¦«|_||_|turt jdt d¦«||_dx|_|_ t|_ t|_ t|_ t|_t|_t|_t|_dS)NÚrbúithe 'strict' argument isn't supported anymore; http.client now always assumes HTTP/1.x compliant servers.é)ÚmakefilerlÚ debuglevelÚ_strict_sentinelÚwarningsÚwarnÚDeprecationWarningÚ_methodrmÚmsgÚ_UNKNOWNÚversionÚstatusÚreasonÚchunkedÚ chunk_leftÚlengthÚ will_close)rOÚsockrvÚstrictÚmethodÚurls rUÚ__init__zHTTPResponse.__init__*s™€ð—-’- Ñ%Ô%ˆŒØ$ˆŒØ Õ)Ð )Ð )Ý ŒMðMå" Añ 'ô 'ð 'ðˆŒ ð#'Ð&ˆŒ �t”xõ ˆŒ ݈Œ ݈Œ 刌 Ý"ˆŒÝˆŒ Ý"ˆŒˆˆrWcóä—t|j tdz¦«d¦«}t |¦«tkrt d¦«‚|jdkrtdt|¦«¦«|st|¦«‚ |  dd¦«\}}}n?#t$r2 |  dd¦«\}}d}n#t$rd}YnwxYwYnwxYw|  d¦«s#|  ¦«t|¦«‚ t|¦«}|d ks|d krt|¦«‚n#t$rt|¦«‚wxYw|||fS) NrIraz status linerzreply:rtÚzHTTP/r%iç)r rlrcrdrKrervÚprintÚreprrÚsplitÚ ValueErrorÚ startswithÚ _close_connr)rOrTr~rr€s rUÚ _read_statuszHTTPResponse._read_statusLs¦€Ý�4”7×#Ò#¥H¨q¡LÑ1Ô1°<Ñ@Ô@ˆÝ ˆt‰9Œ9•xÒ Ð Ý˜mÑ,Ô,Ð ,Ø Œ?˜QÒ Ð Ý �(�D ™JœJÑ 'Ô 'Ð 'Øð &õ  Ñ%Ô%Ð %ð Ø&*§j¢j°°qÑ&9Ô&9Ñ #ˆG�V˜V˜VøÝð ð ð ð Ø"&§*¢*¨T°1Ñ"5Ô"5‘�˜Ø��øÝð ð ð à���ð øøøøøð  øøøð×!Ò! 'Ñ*Ô*ð &Ø × Ò Ñ Ô Ð Ý Ñ%Ô%Ð %ð &ݘ‘[”[ˆFؘŠ|ˆ|˜v¨š|˜|Ý# DÑ)Ô)Ð)ð ,øåð &ð &ð &Ý Ñ%Ô%Ð %ð &øøøà˜ Ð&Ð&sBÂB-Â- C)Â8CÃC)à C#à C)Ã"C#Ã#C)Ã(C)Ä%*EÅE*có6—|j�dS | ¦«\}}}|tkrn~ |j t dz¦«}t |¦«t krtd¦«‚| ¦«}|sn|j dkrtd|¦«Œ|Œ¢|x|_ |_ | ¦«|_ |dvrd|_n,| d¦«rd |_nt!|¦«‚t#|j¦«x|_|_|j dkr|jD]}td|d ¬ ¦«Œ|j d ¦«}|r'| ¦«d krd|_d|_nd|_| ¦«|_d|_|j d¦«}|j d ¦«}|rF|js? t5|¦«|_|jdkrd|_n#t6$r d|_Yn wxYwd|_|t8ks%|t:ksd|cxkrdks n|jdkrd|_|js|js|j€ d|_dSdSdSdS)NTrIr]rzheader:)zHTTP/1.0zHTTP/0.9é zHTTP/1.é ú )Úendztransfer-encodingr�Fúcontent-lengthr%r(ÚHEAD)rmr’ÚCONTINUErlrcrdrKreÚstriprvrŒÚcoderr€r~r�rror|ÚgetrJr�r‚Ú _check_closer„rƒrr�Ú NO_CONTENTÚ NOT_MODIFIEDr{)rOr~rr€ÚskipÚhdrÚtr_encrƒs rUÚbeginzHTTPResponse.beginlsð€Ø Œ<Ð #à ˆFð +Ø&*×&7Ò&7Ñ&9Ô&9Ñ #ˆG�V˜VØ�Ò!Ð!Øð +Ø”w×'Ò'­°1© Ñ5Ô5�Ý�t‘9”9�xÒ'Ð'Ý% mÑ4Ô4Ð4Ø—z’z‘|”|�ØðØØ”? QÒ&Ð&ݘ) TÑ*Ô*Ð*ð +ð +ð#)Ð(ˆŒ �D”KØ—l’l‘n”nˆŒ Ø Ð.Ð .Ð .àˆDŒLˆLØ × Ò   Ñ *Ô *ð +؈DŒLˆLå! 'Ñ*Ô*Ð *å"/°´Ñ"8Ô"8Ð8ˆŒ �t”xà Œ?˜QÒ Ð Ø”|ð /ð /�Ý�i ¨#Ð.Ñ.Ô.Ð.Ð.ð”×!Ò!Ð"5Ñ6Ô6ˆØ ð !�f—l’l‘n”n¨ Ò1Ð1؈DŒLØ"ˆDŒOˆOà ˆDŒLð×+Ò+Ñ-Ô-ˆŒðˆŒ Ø”×!Ò!Ð"2Ñ3Ô3ˆð”×!Ò!Ð"5Ñ6Ô6ˆØ ð ˜$œ,ð ð 'Ý! &™kœk�” ð”; ’?�?Ø"&�D”Køøõ ð #ð #ð #Ø"�” � � ð #øøøð ˆDŒKð •jÒ Ð  F­lÒ$:Ð$:Ø �6Ð Ð Ò Ð ˜CÒ Ð Ð Ð Ø ŒL˜FÒ "Ð "؈DŒKð ”ð #Ø” ð #à ŒKÐ Ø"ˆDŒOˆOˆOð #ð #ð #ð #à Ð sÇ;H"È"H6È5H6có�—|j d¦«}|jdkr6|j d¦«}|rd| ¦«vrdSdS|j d¦«rdS|rd| ¦«vrdS|j d¦«}|rd| ¦«vrdSdS)NÚ connectionr•ÚcloseTFz keep-alivezproxy-connection)rmr�r~rJ)rOÚconnÚpconns rUržzHTTPResponse._check_close¼s݀،|×Ò  Ñ-Ô-ˆØ Œ<˜2Ò Ð ð”<×#Ò# LÑ1Ô1ˆDØð ˜ 4§:¢:¡<¤<Ð/Ð/Ø�tØ�5ð Œ<× Ò ˜LÑ )Ô )ð Ø�5ð ð �L D§J¢J¡L¤LÐ0Ð0Ø�5ð” × Ò Ð!3Ñ4Ô4ˆØ ð �\ U§[¢[¡]¤]Ð2Ð2Ø�5ðˆtrWcóJ—|j}d|_| ¦«dS©N)rlr§)rOrls rUr‘zHTTPResponse._close_connÚs!€Ø ŒWˆØˆŒØ �Љ Œ ˆ ˆ ˆ rWcó‚•—t¦« ¦«|jr| ¦«dSdSr«)r r§rlr‘©rOÚ __class__s €rUr§zHTTPResponse.closeßs@ø€Ý ‰Œ� Š ‰ŒˆØ Œ7ð Ø × Ò Ñ Ô Ð Ð Ð ð ð rWc󌕗t¦« ¦«|jr|j ¦«dSdSr«)r Úflushrlr­s €rUr°zHTTPResponse.flushés;ø€Ý ‰Œ� Š ‰ŒˆØ Œ7ð Ø ŒG�MŠM‰OŒOˆOˆOˆOð ð rWcó—dS)NTr[©rOs rUÚreadablezHTTPResponse.readableîs€ØˆtrWcó—|jduS)z!True if the connection is closed.N)rlr²s rUÚisclosedzHTTPResponse.isclosedós€ðŒw˜$ˆÐrWcóD•—|j€td¦«S|jdkr#| ¦«td¦«S|�5tt t |¦« |¦«¦«S|jr| ¦«S|j €|j ¦«}nF |  |j ¦«}n##t$r| ¦«‚wxYwd|_ | ¦«t|¦«S)NrWr™r) rlrr{r‘r rÚreadr�Ú_readall_chunkedrƒÚ _safe_readr)rOÚamtÚsr®s €rUr·zHTTPResponse.readýsø€Ø Œ7ˆ?ݘ‘:”:Ð à Œ<˜6Ò !Ð !Ø × Ò Ñ Ô Ð Ý˜‘:”:Ð à ˆ?õ��|¨TÑ2Ô2×7Ò7¸Ñ<Ô<Ñ=Ô=Ð =ð Œ|ð /Ø×,Ò,Ñ.Ô.Ð.àŒ{Ð"Ø”G—L’L‘N”N��ðØŸš¨¬ Ñ4Ô4�A�AøÝ%ðððØ×$Ò$Ñ&Ô&Ð&Øðøøøð �” Ø × Ò Ñ Ô Ð Ý˜‘8”8ˆOs Â:Cà C5có\—|j€dS|jdkr| ¦«dS|jr| |¦«S|j�4t |¦«|jkrt|¦«d|j…}tr>|j  t |¦«¦«}t |¦«}||d|…<n|j  |¦«}|s|r| ¦«n2|j�+|xj|zc_|js| ¦«|S)Nrr™) rlr{r‘r�Ú_readinto_chunkedrƒrKÚ memoryviewr r·Úreadinto)rOÚbÚdatarQs rUr¿zHTTPResponse.readintos2€Ø Œ7ˆ?Ø�1à Œ<˜6Ò !Ð !Ø × Ò Ñ Ô Ð Ø�1à Œ<ð -Ø×)Ò)¨!Ñ,Ô,Ð ,à Œ;Ð "Ý�1‰vŒv˜œ Ò#Ð#å˜q‘M”M ! D¤K -Ô0�õ ð $Ø”7—<’<¥ A¡¤Ñ'Ô'ˆDÝ�D‘ ” ˆA؈Aˆbˆqˆb‰EˆEà”× Ò  Ñ#Ô#ˆAàð #�Qð #ð × Ò Ñ Ô Ð Ð Ø Œ[Ð $Ø ˆKŒK˜1Ñ ˆKŒKØ”;ð #Ø× Ò Ñ"Ô"Ð"؈rWcóF—|j tdz¦«}t|¦«tkrt d¦«‚| d¦«}|dkr |d|…} t |d¦«S#t$r| ¦«‚wxYw)NrIz chunk sizeó;ré) rlrcrdrKreÚfindrr�r‘)rOrTÚis rUÚ_read_next_chunk_sizez"HTTPResponse._read_next_chunk_sizeAs¤€àŒw×Ò¥¨1¡ Ñ-Ô-ˆÝ ˆt‰9Œ9•xÒ Ð Ý˜lÑ+Ô+Ð +Ø �IŠI�d‰OŒOˆØ �Š6ˆ6ؘ˜˜”8ˆDð Ý�t˜R‘=”=Ð øÝð ð ð ð × Ò Ñ Ô Ð Ø ð  øøøs Á0B B có¬— |j tdz¦«}t|¦«tkrt d¦«‚|sdS|dvrdSŒT)NTrIz trailer liner^)rlrcrdrKre©rOrTs rUÚ_read_and_discard_trailerz&HTTPResponse._read_and_discard_trailerQsd€ð Ø”7×#Ò#¥H¨q¡LÑ1Ô1ˆDÝ�4‰yŒy�8Ò#Ð#Ý! .Ñ1Ô1Ð1Øð ð�ØÐ,Ð,Ð,Ø�ð rWcó—|jtksJ‚|j}g} |€Z | ¦«}|dkrn~n=#t$r0t t d¦« |¦«¦«‚wxYw| |  |¦«¦«|  d¦«d}Œœ|  ¦«|  ¦«t d¦« |¦«S)NTrrWrt) r�r}r‚rÇr�rrrgrNr¹rÊr‘)rOr‚Úvalues rUr¸zHTTPResponse._readall_chunked_s€ØŒ|�xÒ'Ð'Ð'Ð'Ø”_ˆ ؈ð ØÐ!ðAØ!%×!;Ò!;Ñ!=Ô!=�JØ! Q’�Øð'øå!ðAðAðAÝ(­¨s©¬¯ª¸Ñ)?Ô)?Ñ@Ô@Ð@ðAøøøà �LŠL˜Ÿš¨Ñ4Ô4Ñ 5Ô 5Ð 5ð �OŠO˜AÑ Ô Ð ØˆJð ð ×&Ò&Ñ(Ô(Ð(ð ×ÒÑÔÐå�S‰zŒz�Š˜uÑ%Ô%Ð%s  <¼:A6cóÜ—|jtksJ‚|j}d}t|¦«} |€O | ¦«}|dkrnún2#t $r%t t|d|…¦«¦«‚wxYwt|¦«|kr$|  |¦«}||z |_||zSt|¦«|kr6|  |¦«}|  d¦«d|_||zS|d|…}|  |¦«}||d…}||z }|  d¦«d}�Œ|  ¦«|  ¦«|S)NrTrt) r�r}r‚r¾rÇr�rrrKÚ_safe_readintor¹rÊr‘)rOrÀr‚Ú total_bytesÚmvbrQÚtemp_mvbs rUr½zHTTPResponse._readinto_chunkedxs£€ØŒ|�xÒ'Ð'Ð'Ð'Ø”_ˆ àˆ Ý˜‰mŒmˆð ØÐ!ðBØ!%×!;Ò!;Ñ!=Ô!=�JØ! Q’�Øð'øå!ðBðBðBÝ(­¨q°°;°Ô/?Ñ)@Ô)@ÑAÔAÐAðBøøøõ�3‰xŒx˜*Ò$Ð$Ø×'Ò'¨Ñ,Ô,�Ø",¨q¡.�”Ø" Q‘Ð&Ý�S‘”˜ZÒ'Ð'Ø×'Ò'¨Ñ,Ô,�Ø—’ Ñ"Ô"Ð"Ø"&�”Ø" Q‘Ð&à˜q ˜|Ô,�Ø×'Ò'¨Ñ1Ô1�ؘ!˜"˜"”g�ؘqÑ � ð �OŠO˜AÑ Ô Ð ØˆJñ5 ð8 ×&Ò&Ñ(Ô(Ð(ð ×ÒÑÔÐàÐs ¯A Á /A:cón—g}|dkrŒ|j t|t¦«¦«}|s0t t d¦« |¦«|¦«‚| |¦«|t|¦«z}|dk°Œt d¦« |¦«S)aVRead the number of bytes requested, compensating for partial reads. Normally, we have a blocking socket, but a read() can be interrupted by a signal (resulting in a partial read). Note that we cannot distinguish between EOF and an interrupt when zero bytes have been read. IncompleteRead() will be raised in this situation. This function should be used when bytes "should" be present for reading. If the bytes are truly not available (due to EOF), then the IncompleteRead exception can be used to detect the problem. rrW) rlr·ÚminÚ MAXAMOUNTrrrgrNrK)rOrºr»Úchunks rUr¹zHTTPResponse._safe_read¡s�€ð ˆØ�AŠgˆgØ”G—L’L¥ S­)Ñ!4Ô!4Ñ5Ô5ˆEØð >Ý$¥U¨3¡Z¤Z§_¢_°QÑ%7Ô%7¸Ñ=Ô=Ð=Ø �HŠH�U‰OŒOˆOØ •3�u‘:”:Ñ ˆCð �AŠgˆgõ �S‰zŒz�Š˜qÑ!Ô!Ð!rWcóÊ—d}t|¦«}|t|¦«k�r=tt|¦«kro|dt…}tr>|j t|¦«¦«}t|¦«}||d|…<nz|j |¦«}n_tr>|j t|¦«¦«}t|¦«}||d|…<n|j |¦«}|s2tt|d|…¦«t|¦«¦«‚||d…}||z }|t|¦«k�°=|S)z2Same as _safe_read, but for reading into a buffer.rN) r¾rKrÔr rlr·r¿rr)rOrÀrÏrÐrÑrÁrQs rUrÎzHTTPResponse._safe_readinto¸sF€àˆ ݘ‰mŒmˆØ�C ™FœFÒ"Ñ"Ý�3˜s™8œ8Ò#Ð#ؘq¥˜{Ô+�Ýð3Øœ7Ÿ<š<­¨H© ¬ Ñ6Ô6�DݘD™ œ �AØ#'�H˜R˜a˜R‘L�Làœ×(Ò(¨Ñ2Ô2�A�Aåð.Øœ7Ÿ<š<­¨C©¬Ñ1Ô1�DݘD™ œ �AØ"�C˜˜˜‘G�Gàœ×(Ò(¨Ñ-Ô-�AØð HÝ$¥U¨3¨q°¨}Ô+=Ñ%>Ô%>ÅÀAÁÄÑGÔGÐGØ�a�b�b”'ˆCØ ˜1Ñ ˆKð'�C ™FœFÒ"Ñ"ð(ÐrWcó4—|j ¦«Sr«)rlÚfilenor²s rUrØzHTTPResponse.filenoÒs€ØŒw�~Š~ÑÔÐrWcóÜ—|j€t¦«‚|j |¦«p|}t|t¦«st |d¦«s|Sd |¦«S)NÚ__iter__z, )rmrÚget_allÚ isinstancer Úhasattrrg)rOrPÚdefaultrms rUÚ getheaderzHTTPResponse.getheaderÕsj€Ø Œ<Ð Ý"Ñ$Ô$Ð $Ø”,×&Ò& tÑ,Ô,Ð7°ˆÝ �g�sÑ #Ô #ð &­7°7¸JÑ+GÔ+Gð &؈Nà—9’9˜WÑ%Ô%Ð %rWcóx—|j€t¦«‚t|j ¦«¦«S)z&Return list of (header, value) tuples.)rmrÚlistÚitemsr²s rUÚ getheaderszHTTPResponse.getheadersÞs2€à Œ<Ð Ý"Ñ$Ô$Ð $Ý�D”L×&Ò&Ñ(Ô(Ñ)Ô)Ð)rWcó—|Sr«r[r²s rUrÚzHTTPResponse.__iter__æs€Øˆ rWcó—|jSr«)rmr²s rUÚinfozHTTPResponse.infoës €ØŒ|ÐrWcó—|jSr«)rˆr²s rUÚgeturlzHTTPResponse.geturlîs €ØŒxˆrWcó—|jSr«)rr²s rUÚgetcodezHTTPResponse.getcodeñs €ØŒ{ÐrWr«)rXrYrZrwr‰r’r¤ržr‘r§r°r³rµr·r¿rÇrÊr¸r½r¹rÎrØrßrãrÚrærèrêÚ __classcell__©r®s@rUrr!sÉø€€€€€ð)*Ð2BÈ4ÐUYð #ð #ð #ð #ðD'ð'ð'ð@N#ðN#ðN#ð`ððð<ððð ðððððððððð ððð ððððððððð>#ð#ð#ðJððð ð ð ð&ð&ð&ð2'ð'ð'ðR"ð"ð"ð.ððð4 ð ð ð&ð&ð&ð&ð*ð*ð*ðððð ððððððððððððrWrcó®—eZdZdZdZeZeZdZ dZ de e j dfd„Zdd„Zd„Zd „Zd „Zd „Zd „Zd „Zd„Zdd„Zdd„Zd„Zdd„Zdifd„Zd„Zd„Zd„ZdS)rr•zHTTP/1.1rIrNcó—|turtjdtd¦«||_||_d|_g|_d|_t|_ d|_ d|_ d|_ i|_| ||¦«dS)Nrsrt)rwrxryrzÚtimeoutÚsource_addressr…Ú_bufferÚ_HTTPConnection__responseÚ_CS_IDLEÚ_HTTPConnection__stater{Ú _tunnel_hostÚ _tunnel_portÚ_tunnel_headersÚ _set_hostport)rOÚhostÚportr†rïrðs rUr‰zHTTPConnection.__init__þs•€à Õ)Ð )Ð )Ý ŒMðMå" Añ 'ô 'ð 'ðˆŒ Ø,ˆÔ؈Œ ؈Œ ؈ŒÝˆŒ ؈Œ Ø ˆÔØ ˆÔØ!ˆÔà ×Ò˜4 Ñ&Ô&Ð&Ð&Ð&rWcój—||_||_|r ||_dS|j ¦«dS)zº Sets up the host and the port for the HTTP CONNECT Tunnelling. The headers argument should be a mapping of extra HTTP headers to send with the CONNECT request. N)rõrör÷Úclear)rOrùrúrms rUÚ set_tunnelzHTTPConnection.set_tunnelsE€ð !ˆÔØ ˆÔØ ð )Ø#*ˆDÔ Ð Ð à Ô × &Ò &Ñ (Ô (Ð (Ð (Ð (rWcó¶—|€È| d¦«}| d¦«}||krm t||dzd…¦«}nF#t$r9||dzd…dkr|j}nt d||dzd…z¦«‚YnwxYw|d|…}n|j}|r"|ddkr|ddkr |dd…}||_||_dS) NrHú]rIr‹znonnumeric port: '%s'rú[éÿÿÿÿ)Úrfindrr�Ú default_portrrùrú)rOrùrúrÆÚjs rUrøzHTTPConnection._set_hostports €Ø ˆ<Ø— ’ ˜3‘”ˆAØ— ’ ˜3‘”ˆAØ�1ŠuˆuðOݘt A a¡C D Dœz™?œ?�D�DøÝ!ðOðOðOؘA˜a™C˜D˜D”z RÒ'Ð'Ø#Ô0˜˜å(Ð)@À4ÈÈ!ÉÈÈÄ:Ñ)MÑNÔNÐNð˜ðOøøøð ˜B˜Q˜B”x��àÔ(�Øð "˜˜Qœ 3š˜¨4°¬8°sª?¨?ؘA˜b˜D”z�؈Œ ؈Œ ˆ ˆ s´AÁABÂBcó—||_dSr«)rv)rOÚlevels rUÚset_debuglevelzHTTPConnection.set_debuglevel2s €ØˆŒˆˆrWcóD—| |j|j¦«d|j|jfz}| d¦«}| |¦«|j ¦«D]7\}}|›d|›d�}| d¦«}| |¦«Œ8| td¦«¦«|  |j |j ¬¦«}|  ¦«\}} } | dkr?| ¦«tjd | |  ¦«fz¦«‚ |j t(d z¦«} t+| ¦«t(krt-d ¦«‚| sdS| d vrdSŒT)NzCONNECT %s:%d HTTP/1.0 Úasciiz: z úlatin-1r_©r‡r(zTunnel connection failed: %d %sTrIr]r^)rørõrörùrúÚencodeÚsendr÷rârÚresponse_classr…r{r’r§Úsocketr r›rlrcrdrKre) rOÚ connect_strÚ connect_bytesÚheaderrÌÚ header_strÚ header_bytesÚresponser~rœr rTs rUÚ_tunnelzHTTPConnection._tunnel5s¨€Ø ×Ò˜4Ô,¨dÔ.?Ñ@Ô@Ð@Ø2°d´iÀÄÐ5KÑKˆ Ø#×*Ò*¨7Ñ3Ô3ˆ Ø � Š �-Ñ Ô Ð Ø!Ô1×7Ò7Ñ9Ô9ð $ð $‰MˆF�EØ)/¨¨°°°Ð7ˆJØ%×,Ò,¨YÑ7Ô7ˆLØ �IŠI�lÑ #Ô #Ð #Ð #Ø � Š •%˜‘.”.Ñ!Ô!Ð!à×&Ò& t¤y¸¼Ð&ÑFÔFˆØ#+×#8Ò#8Ñ#:Ô#:Ñ ˆ�$˜à �3Š;ˆ;Ø �JŠJ‰LŒLˆLÝ”,Ð@ÀDØDKÇMÂMÁOÄOðDUñ UñVôVð Vð Ø”;×'Ò'­°1© Ñ5Ô5ˆDÝ�4‰yŒy�8Ò#Ð#Ý! -Ñ0Ô0Ð0Øð à�ØÐ,Ð,Ð,Ø�ð rWcó˜—t|j|jf|j|j¦«|_|jr| ¦«dSdS)z3Connect to the host and port specified in __init__.N)Úsocket_create_connectionrùrúrïrðr…rõrr²s rUÚconnectzHTTPConnection.connectQsP€å,¨d¬i¸¼ Ð-BØ-1¬\¸4Ô;NñPôPˆŒ à Ô ð Ø �LŠL‰NŒNˆNˆNˆNð ð rWcóº—|jr |j ¦«d|_|jr |j ¦«d|_t|_dS)z(Close the connection to the HTTP server.N)r…r§ròrórôr²s rUr§zHTTPConnection.closeXsU€à Œ9ð Ø ŒI�OŠOÑ Ô Ð ØˆDŒIØ Œ?ð #Ø ŒO× !Ò !Ñ #Ô #Ð #Ø"ˆDŒO݈Œ ˆ ˆ rWcóH—|j€*|jr| ¦«nt¦«‚|jdkrt dt |¦«¦«d}t|d¦«r·t|t¦«s¢|jdkrt d¦«d} |j }d|vrd }|jdkrt d ¦«n#t$rYnwxYw |  |¦«}|sn2|r|  d ¦«}|j |¦«ŒJdS |j |¦«dS#t$rWt|t ¦«r"|D]}|j |¦«ŒYdStd t#|¦«z¦«‚wxYw)z¿Send `data' to the server. ``data`` can be a string object, a bytes object, an array object, a file-like object that supports a .read() method, or an iterable object. Nrzsend:i r·zsendIng a read()ableFrÀTzencoding file using iso-8859-1rIraz9data should be a bytes-like object or an iterable, got %r)r…Ú auto_openrrrvrŒr�rÝrÜrÚmodeÚAttributeErrorr·r ÚsendallÚ TypeErrorrÚtype)rOrÁÚ blocksizer rÚ datablockÚds rUr zHTTPConnection.sendbs€ð Œ9Ð ØŒ~ð %Ø— ’ ‘”��å"‘n”nÐ$à Œ?˜QÒ Ð Ý �'�4 ™:œ:Ñ &Ô &Ð &؈ õ �4˜Ñ Ô ð ­°D½%Ñ)@Ô)@ð ØŒ Ò"Ð"ÝÐ,Ñ-Ô-Ð-؈Fð @Ø”y�ð ˜d�?�?Ø!�FØ”¨Ò*Ð*ÝÐ>Ñ?Ô?Ð?øøõ"ð ð ð ð�ð øøøð -Ø ŸIšI iÑ0Ô0� Ø ðØØð?Ø )× 0Ò 0°Ñ >Ô >�IØ” ×!Ò! )Ñ,Ô,Ð,ð  -ð ˆFð GØ ŒI× Ò ˜dÑ #Ô #Ð #Ð #Ð #øÝð Gð Gð Gݘ$¥Ñ)Ô)ð GØð)ð)�AØ”I×%Ò% aÑ(Ô(Ð(Ð(ð)ð)ð)õ ð!9Ý;?À¹:¼:ñ!FñGôGðGð  Gøøøs$ÂCà CÃCÄ$EÅ>F!Æ F!có:—|j |¦«dS)zuAdd a line of output to the current request buffer. Assumes that the line does *not* end with \r\n. N)rñrN)rOr»s rUÚ_outputzHTTPConnection._output”s €ð Œ ×Ò˜AÑÔÐÐÐrWcóh—|j td¦«td¦«f¦«td¦« |j¦«}|jdd…=t |t¦«r||z }d}| |¦«|�| |¦«dSdS)z¸Send the currently buffered request and clear the buffer. Appends an extra \r\n to the buffer. A message_body may be specified, to be appended to the request. rWr_N)rñÚextendrrgrÜr )rOÚ message_bodyr|s rUÚ _send_outputzHTTPConnection._send_output›s­€ð Œ ×Ò�U 3™ZœZ­¨s©¬Ð4Ñ5Ô5Ð5Ý�G‰nŒn×!Ò! $¤,Ñ/Ô/ˆØ ŒL˜˜˜ˆOõ �l¥EÑ *Ô *ð Ø �<Ñ ˆC؈LØ � Š �#‰ŒˆØ Ð #ð �IŠI�lÑ #Ô #Ð #Ð #Ð #ð $Ð #rWcó<—|jr |j ¦«rd|_|jtkr t|_nt |j¦«‚||_|sd}|›d|›d|j›�}| |  d¦«¦«|j dk�ru|�sVd}|  d¦«rt|¦«\}}}}}|rS |  d¦«}n%#t$r|  d¦«}YnwxYw| d |¦«nÕ |j  d¦«} n*#t$r|j  d¦«} YnwxYw|j d ¦«d krt#d | zd z¦«} |j|jkr| d | ¦«n5|  d¦«} | d | ›d |j›�¦«|s| dd¦«dSdSdS)a`Send a request to the server. `method' specifies an HTTP request method, e.g. 'GET'. `url' specifies the object being requested, e.g. '/index.html'. `skip_host' if True does not add automatically a 'Host:' header `skip_accept_encoding' if True does not add automatically an 'Accept-Encoding:' header Nú/r–r r•r‹ÚhttpÚidnaÚHostrHró[ó]zAccept-EncodingÚidentity)ròrµrôróÚ_CS_REQ_STARTEDrr{Ú _http_vsn_strr&r Ú _http_vsnr�rÚUnicodeEncodeErrorÚ putheaderrùrÅrrúrrh) rOr‡rˆÚ skip_hostÚskip_accept_encodingÚrequestÚnetlocÚnilÚ netloc_encÚhost_encs rUÚ putrequestzHTTPConnection.putrequest°sc€ð Œ?ð #˜tœ×7Ò7Ñ9Ô9ð #Ø"ˆDŒOð* Œ<�8Ò #Ð #Ý*ˆDŒLˆLå# D¤LÑ1Ô1Ð 1ðˆŒ Øð ؈CØ &  ¨¨¨¨TÔ-?Ð-?Ð@ˆð � Š �W—^’^ GÑ,Ô,Ñ-Ô-Ð-à Œ>˜RÒ Ñ ðñ) Pð�Ø—>’> &Ñ)Ô)ð?Ý19¸#±´Ñ.�C˜  c¨3àðPð;Ø%+§]¢]°7Ñ%;Ô%;˜ ˜ øÝ-ð;ð;ð;Ø%+§]¢]°6Ñ%:Ô%:˜ ˜ ˜ ð;øøøà—N’N 6¨:Ñ6Ô6Ð6Ð6ð<Ø#'¤9×#3Ò#3°GÑ#<Ô#<˜˜øÝ-ð<ð<ð<Ø#'¤9×#3Ò#3°FÑ#;Ô#;˜˜˜ð<øøøð ”y—~’~ cÑ*Ô*¨aÒ/Ð/Ý#(¨°©¸4Ñ)?Ñ#@Ô#@˜à”y DÔ$5Ò5Ð5ØŸš v¨xÑ8Ô8Ð8Ð8à#+§?¢?°7Ñ#;Ô#;˜ØŸš v¸(¸(¸(ÀDÄIÀIÐ/NÑOÔOÐOð(ð >Ø—’Ð0°*Ñ=Ô=Ð=Ð=Ð=ð >ð >ð ˆDs$ÃC/Ã/DÄDÄ,EÅ$E.Å-E.có2—|jtkrt¦«‚t|d¦«r| d¦«}t |¦«}t |¦«D]h\}}t|d¦«r| d¦«||<Œ.t|t¦«r%t|¦« d¦«||<Œitd¦«  |¦«}|td¦«z|z}|  |¦«dS)zkSend a request header line to the server. For example: h.putheader('Accept', 'text/html') r r r s s: N) rôr3rrÝr ráÚ enumeraterÜrr rrgr&)rOrÚvaluesrÆÚ one_valuerÌs rUr7zHTTPConnection.putheader$s €ð Œ<�?Ò *Ð *Ý"Ñ$Ô$Ð $å �6˜8Ñ $Ô $ð ,Ø—]’] 7Ñ+Ô+ˆFÝ�f‘”ˆÝ% fÑ-Ô-ð ;ð ;‰LˆAˆyÝ�y (Ñ+Ô+ð ;Ø%×,Ò,¨YÑ7Ô7��q‘ � ݘI¥sÑ+Ô+ð ;Ý  ™NœN×1Ò1°'Ñ:Ô:��q‘ øÝ�iÑ Ô ×%Ò% fÑ-Ô-ˆØ�% ™,œ,Ñ&¨Ñ.ˆØ � Š �VÑÔÐÐÐrWcó†—|jtkr t|_nt¦«‚| |¦«dS)a‰Indicate that the last header line has been sent to the server. This method sends the request to the server. The optional message_body argument can be used to pass a message body associated with the request. The message body will be sent in the same packet as the message headers if it is a string, otherwise it is sent as a separate packet. N)rôr3Ú _CS_REQ_SENTrr*)rOr)s rUÚ endheaderszHTTPConnection.endheaders8s@€ð Œ<�?Ò *Ð *Ý'ˆDŒLˆLå"Ñ$Ô$Ð $Ø ×Ò˜,Ñ'Ô'Ð'Ð'Ð'rWcó6—| ||||¦«dS)z&Send a complete request to the server.N)Ú _send_request)rOr‡rˆÚbodyrms rUr:zHTTPConnection.requestGs"€à ×Ò˜6 3¨¨gÑ6Ô6Ð6Ð6Ð6rWcó~—d} tt|¦«¦«}n‚#t$ru} ttj| ¦«¦«j¦«}n1#ttf$r|j dkrtd¦«YnwxYwYd}~nd}~wwxYw|�|  d|¦«dSdS)Nrz Cannot stat!!zContent-Length) r rKr ÚosÚfstatrØÚst_sizerÚOSErrorrvrŒr7)rOrIÚthelenÚtes rUÚ_set_content_lengthz"HTTPConnection._set_content_lengthKsÓ€àˆð ?Ý�˜T™œ‘^”^ˆFˆFøÝð ?ð ?ð ?ð ?Ý�RœX d§k¢k¡m¤mÑ4Ô4Ô<Ñ=Ô=��øÝ"¥GÐ,ð ?ð ?ð ?à”? QÒ&Ð&­¨oÑ(>Ô(>Ð(>øøð ?øøøøøøøøøøøøð  ?øøøð Ð Ø �NŠNÐ+¨VÑ 4Ô 4Ð 4Ð 4Ð 4ð Ð s2„!¡ B ¬8A%Á$BÁ%+BÂBÂBÂBÂB có¨—t d„|D¦«¦«}i}d|vrd|d<d|vrd|d<|j||fi|¤Ž|�d|vr| |¦«| ¦«D]\}}| ||¦«Œt |t¦«r| d¦«}|  |¦«dS) Ncó6—g|]}| ¦«‘ŒSr[)rJ)Ú.0Úks rUú z0HTTPConnection._send_request..^s €Ð%AÐ%AÐ%A°A a§g¢g¡i¤iÐ%AÐ%AÐ%ArWrùrIr8zaccept-encodingr9r˜ra) ÚdictÚfromkeysr?rQrâr7rÜr r rF) rOr‡rˆrIrmÚ header_namesÚskipsr¢rÌs rUrHzHTTPConnection._send_request\s€å—}’}Ð%AÐ%A¸Ð%AÑ%AÔ%AÑBÔBˆ ØˆØ �\Ð !Ð !Ø!"ˆE�+Ñ Ø   Ð ,Ð ,Ø,-ˆEÐ(Ñ )àˆŒ˜ Ð-Ð- uÐ-Ð-Ð-à Ð Ð!1¸Ð!EÐ!EØ × $Ò $ TÑ *Ô *Ð *Ø!Ÿ-š-™/œ/ð 'ð '‰JˆC�Ø �NŠN˜3 Ñ &Ô &Ð &Ð &Ý �d�CÑ Ô ð -ð—;’;˜|Ñ,Ô,ˆDØ �Š˜ÑÔÐÐÐrWcóü—|jr |j ¦«rd|_|jtks|jrt |j¦«‚|jdkr(| |j|j|j¬¦«}n!| |j|j¬¦«}|  ¦«|j tksJ‚t|_|j r|  ¦«n||_|S)a/Get the response from the server. If the HTTPConnection is in the correct state, returns an instance of HTTPResponse or of whatever object is returned by class the response_class variable. If a request has not been sent or if a previous response has not be handled, ResponseNotReady is raised. If the HTTP response indicates that the connection should be closed, then it will be closed before the response is returned. When the connection is closed, the underlying socket is closed. Nrr )ròrµrôrErrvrr…r{r¤r„r}rór§)rOrs rUÚ getresponsezHTTPConnection.getresponseqsù€ð Œ?ð #˜tœ×7Ò7Ñ9Ô9ð #Ø"ˆDŒOð" Œ<�<Ò 'Ð '¨4¬?Ð 'Ý" 4¤<Ñ0Ô0Ð 0à Œ?˜QÒ Ð Ø×*Ò*¨4¬9°d´oØ26´,ð+ñ@ô@ˆHˆHð×*Ò*¨4¬9¸T¼\Ð*ÑJÔJˆHà�ŠÑÔÐØÔ"¥hÒ.Ð.Ð.Ð.݈Œ à Ô ð 'à �JŠJ‰LŒLˆLˆLð'ˆDŒOàˆrW)NNr«)rr)rXrYrZr5r4rrÚ HTTP_PORTrrrvrwrÚ_GLOBAL_DEFAULT_TIMEOUTr‰rýrørrrr§r r&r*r?r7rFr:rQrHr\r[rWrUrrôsm€€€€€à€IØ€Mà!€NØ€LØ€IØ€Jà"&Ð/?ØÔ7Èð'ð'ð'ð'ð& )ð )ð )ð )ðððð( ð ð ðððð8ððð ð ð ð0Gð0Gð0Gðdððð$ð$ð$ð$ð*rðrðrðrðhððð( (ð (ð (ð (ð)-°bð7ð7ð7ð7ð5ð5ð5ð"ððð*5ð5ð5ð5ð5rWr)Ú SSLContextcóD‡—eZdZdZeZdddeejdfˆfd„ Z d„Z ˆxZ S)ÚHTTPSConnectionz(This class allows communication via SSL.Nc óâ•—d|vr |d} |d=nd} d|vr |d} |d=nd} tt|¦« |||||¦«||_||_| €8t jt j¦«} | xjt j zc_| j t j k} | €| } n| r| std¦«‚|s|r|   ||¦«| |_| |_dS)NÚcheck_hostnameÚcontextzMcheck_hostname needs a SSL context with either CERT_OPTIONAL or CERT_REQUIRED)r rar‰Úkey_fileÚ cert_fileÚsslr_ÚPROTOCOL_SSLv23ÚoptionsÚ OP_NO_SSLv2Ú verify_modeÚ CERT_NONEr�Úload_cert_chainÚ_contextÚ_check_hostname) rOrùrúrerfr†rïrðÚ _3to2kwargsrcrdÚ will_verifyr®s €rUr‰zHTTPSConnection.__init__µsDø€ð  ;Ð.Ð.ÀÐM]ÔA^°ÐdoðqAðeBðeBØ#'�.ؘKÐ'Ð'°;¸yÔ3I¨È{Ð[dÐOeÐOeØ �'Ý •/ 4Ñ (Ô (× 1Ò 1°$¸¸fÀgØ2@ñ Bô Bð Bà$ˆDŒMØ&ˆDŒN؈åœ.­Ô)<Ñ=Ô=�Ø�”¥3¤?Ñ2�”Ø!Ô-µ´Ò>ˆKØÐ%Ø!,��Øð J¨ ð JÝ ð"IñJôJðJàð =˜9ð =Ø×'Ò'¨ °8Ñ<Ô<Ð<Ø#ˆDŒMØ#1ˆDÔ Ð Ð rWcó—t|j|jf|j|j¦«}|jr||_| ¦«tj r|jnd}|j   ||¬¦«|_ |j r3tj |j ¦«|j¦«dSdS#t$r?|j t"j¦«|j ¦«‚wxYw)z(Connect to a host on a given (SSL) port.N)Úserver_hostname)rrùrúrïrðrõr…rrgÚHAS_SNIrnÚ wrap_socketroÚmatch_hostnameÚ getpeercertÚ ExceptionÚshutdownrÚ SHUT_RDWRr§)rOr…rss rUrzHTTPSConnection.connectÏs€õ,¨T¬Y¸¼ Ð,BØ,0¬L¸$Ô:MñOôOˆDðÔ ð Ø �” Ø— ’ ‘”�å+.¬;Ð@˜dœi˜i¸DˆOØœ ×1Ò1°$ØBQð2ñSôSˆDŒIð ØÔ'ðKÝÔ& t¤y×'<Ò'<Ñ'>Ô'>ÀÄ ÑJÔJÐJÐJÐJðKðKøåð ð ð Ø” ×"Ò"¥6Ô#3Ñ4Ô4Ð4Ø” —’Ñ!Ô!Ð!Øð øøøs Â8B=Â=A D) rXrYrZÚ__doc__Ú HTTPS_PORTrrwrr^r‰rrërìs@rUrara®skø€€€€€Ø2Ð2à!ˆ ð'+°TÀTØ,°fÔ6TØ$(ð 2ð 2ð 2ð 2ð 2ð 2ð4 ð ð ð ð ð ð rWracó—eZdZdS)rN©rXrYrZr[rWrUrrs€€€€€ð €DrWrcó—eZdZdS)rNr~r[rWrUrr ó€€€€€Ø€DrWrcó—eZdZdS)rNr~r[rWrUrr r€rWrcó—eZdZd„ZdS)rcó$—|f|_||_dSr«)Úargsr~)rOr~s rUr‰zUnknownProtocol.__init__s€Ø�HˆŒ ؈Œ ˆ ˆ rWN©rXrYrZr‰r[rWrUrrs#€€€€€ðððððrWrcó—eZdZdS)rNr~r[rWrUrrr€rWrcó—eZdZdS)rNr~r[rWrUrrr€rWrcó"—eZdZdd„Zd„Zd„ZdS)rNcó2—|f|_||_||_dSr«)r„ÚpartialÚexpected)rOrŠr‹s rUr‰zIncompleteRead.__init__s€Ø�HˆŒ ؈Œ Ø ˆŒ ˆ ˆ rWcó\—|j� d|jz}nd}dt|j¦«|fzS)Nz, %i more expectedr‹zIncompleteRead(%i bytes read%s))r‹rKrŠ)rOÚes rUÚ__repr__zIncompleteRead.__repr__ s7€Ø Œ=Ð $Ø$ t¤}Ñ4ˆAˆAàˆAØ0µC¸¼ Ñ4EÔ4EÀqÐ3IÑIÐIrWcó —t|¦«Sr«)r�r²s rUÚ__str__zIncompleteRead.__str__&s€Ý�D‰zŒzÐrWr«)rXrYrZr‰rŽr�r[rWrUrrsI€€€€€ð!ð!ð!ð!ðJðJðJð ððððrWrcó—eZdZdS)rNr~r[rWrUrr)r€rWrcó—eZdZdS)rNr~r[rWrUrr,r€rWrcó—eZdZdS)rNr~r[rWrUrr/r€rWrcó—eZdZdS)rNr~r[rWrUrr2r€rWrcó—eZdZd„ZdS)rcóF—|st|¦«}|f|_||_dSr«)r�r„rTrÉs rUr‰zBadStatusLine.__init__6s)€Øð ݘ‘:”:ˆDØ�EˆŒ ؈Œ ˆ ˆ rWNr…r[rWrUrr5s#€€€€€ðððððrWrcó—eZdZd„ZdS)recóP—t |dt|fz¦«dS)Nz&got more than %d bytes when reading %s)rr‰rd)rOÚ line_types rUr‰zLineTooLong.__init__=s6€Ý×Ò˜tÐ%MÝ(0°)Ð'<ñ&=ñ >ô >ð >ð >ð >rWNr…r[rWrUrere<s#€€€€€ð>ð>ð>ð>ð>rWre){r{Ú __future__rrrrÚfuture.builtinsrrr r Ú future.utilsr Úfuture.backports.emailr rir Ú email_messageÚfuture.backports.miscrrÚiorKrÚfuture.backports.urllib.parserrxrÚ collectionsrÚcollections.abcÚ__all__r]r|r}rór3rEršÚSWITCHING_PROTOCOLSÚ PROCESSINGr=ÚCREATEDÚACCEPTEDÚNON_AUTHORITATIVE_INFORMATIONrŸÚ RESET_CONTENTÚPARTIAL_CONTENTÚ MULTI_STATUSÚIM_USEDÚMULTIPLE_CHOICESÚMOVED_PERMANENTLYÚFOUNDÚ SEE_OTHERr Ú USE_PROXYÚTEMPORARY_REDIRECTÚ BAD_REQUESTÚ UNAUTHORIZEDÚPAYMENT_REQUIREDÚ FORBIDDENÚ NOT_FOUNDÚMETHOD_NOT_ALLOWEDÚNOT_ACCEPTABLEÚPROXY_AUTHENTICATION_REQUIREDÚREQUEST_TIMEOUTÚCONFLICTÚGONEÚLENGTH_REQUIREDÚPRECONDITION_FAILEDÚREQUEST_ENTITY_TOO_LARGEÚREQUEST_URI_TOO_LONGÚUNSUPPORTED_MEDIA_TYPEÚREQUESTED_RANGE_NOT_SATISFIABLEÚEXPECTATION_FAILEDÚUNPROCESSABLE_ENTITYÚLOCKEDÚFAILED_DEPENDENCYÚUPGRADE_REQUIREDÚPRECONDITION_REQUIREDÚTOO_MANY_REQUESTSÚREQUEST_HEADER_FIELDS_TOO_LARGEÚINTERNAL_SERVER_ERRORÚNOT_IMPLEMENTEDÚ BAD_GATEWAYÚSERVICE_UNAVAILABLEÚGATEWAY_TIMEOUTÚHTTP_VERSION_NOT_SUPPORTEDÚINSUFFICIENT_STORAGEÚ NOT_EXTENDEDÚNETWORK_AUTHENTICATION_REQUIREDr!rÔrdrfÚMessagerFroÚobjectrwÚ RawIOBaserrrgr_rarNÚ ImportErrorrxrrrrrrrrrrrrrer r[rWrUúrÚsððDðDðL:ð:ð:ð:ð:ð:ð:ð:ð:ð:ð:ð:à2Ð2Ð2Ð2Ð2Ð2Ð2Ð2Ð2Ð2Ð2Ð2ØÐÐÐÐÐà9Ð9Ð9Ð9Ð9Ð9Ø;Ð;Ð;Ð;Ð;Ð;ØOÐOÐOÐOÐOÐOØ € € € Ø € € € Ø € € € Ø2Ð2Ð2Ð2Ð2Ð2Ø€€€ØÐÐÐÐÐàð)Ø$Ð$Ð$Ð$Ð$Ð$Ð$à(Ð(Ð(Ð(Ð(Ð(ð 2ð 2ð 2€ð € Ø € à €ð €Ø#€Ø€ ð €ØÐØ € ð €Ø €Ø €Ø #ÐØ € Ø€ ؀؀ Ø €ðÐØÐØ €Ø € Ø€ Ø € ØÐð€ Ø€ ØÐØ € Ø € ØÐØ€Ø #ÐØ€Ø €Ø €Ø€ØÐØÐØÐØÐØ"%ÐØÐØÐØ €ØÐØÐØÐØÐØ"%ÐðÐØ€Ø€ ØÐØ€Ø ÐØÐØ€ Ø"%Ðð2 ؈ð2 àÐ ð2 ðˆð 2 ð ˆð 2 ð ˆð 2 ðÐ (ð2 ðˆð2 ðˆð2 ðÐ ð2 ðÐ ð2 ðÐ ð2 ðˆð2 ðˆð2 ð ˆð!2 ð"ˆð#2 ð$ˆð%2 ð&Ð ð'2 ð2 ð*ˆð+2 ð,ˆð-2 ð.Ð ð/2 ð0ˆð12 ð2ˆð32 ð4Ð ð52 ð6Ð ð72 ð8Ð (ð92 ð:Ð ð;2 ð<ˆð=2 ð>ˆð?2 ð@Ð ðA2 ðBÐ ðC2 ðDÐ #ðE2 ðFÐ ðG2 ðHÐ !ðI2 ðJÐ *ðK2 ð2 ðL Ø Ø Ø *à Ø Ø Ø Ø Ø %Ø *ðc2 ð2 ð2 € ðj € ð €Ø€ ððððð�-Ô'ñôðð<)ð@ð@ð@ð@ð0�6‘8”8ÐðQðQðQðQðQ�2”<ñQôQðQðfrðrðrðrðr�Vñrôrðrðh <&Ø€J€J€JØÐÐÐÐÐð4ð4ð4ð4ð4˜.ñ4ô4ð4ðl ‡N‚NÐ$Ñ%Ô%Ð%Ð%øðsð ð ð Ø€Dð øøøðt ð ð ð ð �Iñ ô ð ð  ð ð ð ð �=ñ ô ð ð ð ð ð ð �ñ ô ð ððððð�mñôðð  ð ð ð ð ˜mñ ô ð ð ð ð ð ð ˜Mñ ô ð ð ð ð ð ð �]ñ ô ð ð ð ð ð ð ˜mñ ô ð ð ð ð ð ð Ð/ñ ô ð ð ð ð ð ð Ð.ñ ô ð ð ð ð ð ð Ð.ñ ô ð ððððð�Mñôðð>ð>ð>ð>ð>�-ñ>ô>ð>ð €€€sÆ GÇGÇG