tzh
2024-08-22 c7d0944258c7d0943aa7b2211498fd612971ce27
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
L\¬Qc@stdZddlmZddlZddlZddlmZddlmZddlZej    ƒ-erƒej
dde ƒnddl Z WdQXyddl mZWn!ek
rÌddlmZnXd    d
d d d ddddddddddddgZdZdZdZdZdZdZd Zd!Zd"Zd#Zd$Zd%Zd&Zd'Zd(Zd)Z d*Z!d+Z"d,Z#d-Z$d.Z%d/Z&d0Z'd1Z(d2Z)d3Z*d4Z+d5Z,d6Z-d7Z.d8Z/d9Z0d:Z1d;Z2d<Z3d=Z4d>Z5d?Z6d@Z7dAZ8dBZ9dCZ:dDZ;dEZ<dFZ=dGZ>dHZ?dIZ@dJZAdKZBdLZCdMZDdNZEdOZFdPZGi)dQd 6dRd!6dSd#6dTd$6dUd%6dVd&6dWd'6dXd(6dYd)6dZd,6d[d-6d\d.6d]d/6d^d06d_d16d`da6dbd26dcd36ddd46ded56dfd66dgd76dhd86did96djd:6dkd;6dld<6dmd=6dnd>6dod?6dpd@6dqdA6drdB6dsdC6dtdD6dudI6dvdJ6dwdK6dxdL6dydM6dzdN6ZHd{ZId|ZJd}e jKfd~„ƒYZLd
fd„ƒYZMd fd€„ƒYZNd    fd„ƒYZOyddlPZPWnek
rönCXd‚eNfdƒ„ƒYZQejRd‚ƒd„eOfd…„ƒYZSd†„ZTd eUfd‡„ƒYZVd eVfdˆ„ƒYZWdeVfd‰„ƒYZXdeVfdŠ„ƒYZYdeVfd‹„ƒYZZdeVfdŒ„ƒYZ[deVfd„ƒYZ\deVfdŽ„ƒYZ]de]fd„ƒYZ^de]fd„ƒYZ_de]fd‘„ƒYZ`deVfd’„ƒYZad“eVfd”„ƒYZbeVZcd•fd–„ƒYZddS(—sý    HTTP/1.1 client library
 
<intro stuff goes here>
<other stuff, too>
 
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           <response_class>
Req-started-unread-response    _CS_REQ_STARTED    <response_class>
Req-sent-unread-response       _CS_REQ_SENT       <response_class>
iÿÿÿÿ(tarrayN(t py3kwarning(turlsplittignores.*mimetools has been removed(tStringIOtHTTPt HTTPResponsetHTTPConnectiont HTTPExceptiont NotConnectedtUnknownProtocoltUnknownTransferEncodingtUnimplementedFileModetIncompleteReadt
InvalidURLtImproperConnectionStatetCannotSendRequesttCannotSendHeadertResponseNotReadyt BadStatusLineterrort    responsesiPi»tUNKNOWNtIdlesRequest-starteds Request-sentidieifiÈiÉiÊiËiÌiÍiÎiÏiâ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ôiõiöi÷iøiùiûiþtContinuesSwitching ProtocolstOKtCreatedtAcceptedsNon-Authoritative Informations
No Contents Reset ContentsPartial ContentsMultiple ChoicessMoved PermanentlytFounds    See Others Not Modifieds    Use Proxys(Unused)i2sTemporary Redirects Bad Requestt UnauthorizedsPayment Requiredt    Forbiddens    Not FoundsMethod Not AllowedsNot AcceptablesProxy Authentication RequiredsRequest TimeouttConflicttGonesLength RequiredsPrecondition FailedsRequest Entity Too LargesRequest-URI Too LongsUnsupported Media TypesRequested Range Not SatisfiablesExpectation FailedsInternal Server ErrorsNot Implementeds Bad GatewaysService UnavailablesGateway TimeoutsHTTP Version Not Supportediit HTTPMessagecBs#eZd„Zd„Zd„ZRS(cCsT|jj|ƒ}|dkr.||j|<n"dj||fƒ}||j|<dS(s*Add header for field key handling repeats.s, N(tdicttgettNonetjoin(tselftkeytvaluetprevtcombined((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyt    addheaderÜs
 cCs&|j|}|d||j|<dS(s-Add more field data from a continuation line.s
 N(R"(R&R'tmoreR)((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyt addcontinueås cCsRi|_d|_g|_}d|_d}d}d }}}t|jdƒrc|jj}n|jr{|jj    }nxÐt
rM|rÁy |ƒ}WqÁt k
r½d }}d|_qÁXn|jj t dƒ}t|ƒt krøtdƒ‚n|s d|_Pn|r6|jdƒr6|j||_q~nd}|r{|ddkr{|j|ƒ|j||jƒƒq~n(|j|ƒrq~n|j|ƒr£Pn|j|ƒ}|rï|j|ƒ|j||t|ƒdjƒƒq~q~|jsd    |_n    d
|_|r ||ƒn)|r9|jj|ƒn|jd |_Pq~Wd S( s:Read header lines.
 
        Read header lines up to the entirely blank line that terminates them.
        The (normally blank) line that ends the headers is skipped, but not
        included in the returned list.  If a non-header line ends the headers,
        (which is an error), an attempt is made to backspace over it; it is
        never included in the returned list.
 
        The variable self.status is set to the empty string if all went well,
        otherwise it is an error message.  The variable self.headers is a
        completely uninterpreted list of lines contained in the header (so
        printing them will reproduce the header exactly as it appears in the
        file).
 
        If multiple header fields with the same name occur, they are combined
        according to the rules in RFC 2616 sec 4.2:
 
        Appending each subsequent field-value to the first, each separated
        by a comma. The order in which header fields with the same field-name
        are received is significant to the interpretation of the combined
        field value.
        titunreadis header linesEOF in headerssFrom s     s
No headerss%Non-header line where header expecteds
; bad seekN(R"tunixfromtheaderststatusR$thasattrtfpR/tseekablettelltTruetIOErrortreadlinet_MAXLINEtlent LineTooLongt
startswithtappendR-tstript    iscommenttislasttisheaderR+tseek(R&thlistt
headerseent    firstlinet startoflineR/R6tline((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyt readheadersêsd                       
      $          (t__name__t
__module__R+R-RI(((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyR!Ús            cBs†eZddd ed„Zd„Zd„Zd„Zd„Zd„Z    d d„Z
d„Z d    „Z d
„Z d d „Zd „ZRS(icCs—|r|jdƒ|_n|jddƒ|_||_||_||_d|_t|_t|_    t|_
t|_ t|_ t|_ t|_dS(Ntrbi(tmakefileR4t
debugleveltstrictt_methodR$tmsgt_UNKNOWNtversionR2treasontchunkedt
chunk_lefttlengtht
will_close(R&tsockRNROtmethodt    buffering((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyt__init__Os                                        cCs|jjtdƒ}t|ƒtkr7tdƒ‚n|jdkrXdGt|ƒGHn|smt|ƒ‚ny|jddƒ\}}}WnMt
k
rÛy"|jddƒ\}}d}WqÜt
k
r×d}qÜXnX|j dƒs)|j r |j ƒt|ƒ‚q)t||jƒ|_d Sny7t|ƒ}|d
ksP|d kr_t|ƒ‚nWnt
k
rt|ƒ‚nX|||fS( Nis header lineisreply:iR.sHTTP/sHTTP/0.9iÈidiç(sHTTP/0.9iÈR.(R4R9R:R;R<RNtreprRtsplitR$t
ValueErrorR=ROtclosetLineAndFileWrappertint(R&RHRSR2RT((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyt _read_statusks8 
     
  c
Cs |jdk    rdSx¤tr¹|jƒ\}}}|tkrAPnxrtrµ|jjtdƒ}t|ƒtkrt    dƒ‚n|j
ƒ}|s—Pn|j dkrDdG|GHqDqDWqW||_ |j
ƒ|_ |dkrêd|_n?|jdƒrd|_n$|d    krd
|_n t|ƒ‚|jd
krid|_d|_d|_ttƒƒ|_dSt|jdƒ|_|j dkr¯x|jjD]}dG|GqšWnd|j_|jjd ƒ}|rú|jƒd krúd|_d|_n    d|_|jƒ|_|jjd ƒ}|r‚|j r‚yt|ƒ|_Wntk
rcd|_q‹X|jdkr‹d|_q‹n    d|_|tksÎ|tksÎd|koºdknsÎ|jdkrÚd|_n|j r    |j r    |jdkr    d|_ndS(Nis header lineisheader:sHTTP/1.0i
sHTTP/1.i sHTTP/0.9i    stransfer-encodingRUscontent-lengthidiÈtHEAD( RQR$R7RctCONTINUER4R9R:R;R<R?RNR2RTRSR=R
RWRURXR!RR1t    getheadertlowerRVt _check_closeRbR_t
NO_CONTENTt NOT_MODIFIEDRP(R&RSR2RTtskipthdrttr_encRW((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pytbegin’st                                                 
 
cCs·|jjdƒ}|jdkrS|jjdƒ}|rOd|jƒkrOtStS|jjdƒritS|r…d|jƒkr…tS|jjdƒ}|r³d|jƒkr³tStS(Nt
connectioni R`s
keep-alivesproxy-connection(RQRfRSRgR7tFalse(R&tconntpconn((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyRhèscCs&|jr"|jjƒd|_ndS(N(R4R`R$(R&((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyR`s     cCs |jdkS(N(R4R$(R&((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pytisclosed scCsT|jdkrdS|jdkr0|jƒdS|jrF|j|ƒS|dkrÁ|jdkrs|jjƒ}n@y|j|jƒ}Wnt    k
r©|jƒ‚nXd|_|jƒ|S|jdk    rî||jkrî|j}qîn|jj|ƒ}|s|jƒn|jdk    rP|jt
|ƒ8_|jsP|jƒqPn|S(NR.Rdi( R4R$RPR`RUt _read_chunkedRWtreadt
_safe_readR R;(R&tamtts((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyRus:
       
    
     cCsC|jtkst‚|j}g}x§trÍ|dkrñ|jjtdƒ}t    |ƒtkrpt
dƒ‚n|j dƒ}|dkr˜|| }nyt |dƒ}Wn0t k
rÝ|jƒtdj|ƒƒ‚nX|dkrñPqñn|dkr|j|j|ƒƒn¡||krR|j|j|ƒƒ|||_dj|ƒS||kr—|j|j|ƒƒ|jdƒd|_dj|ƒS|j|j|ƒƒ||8}|jdƒd}q'Wx[tr+|jjtdƒ}t    |ƒtkrt
dƒ‚n|sPn|d    krÑPqÑqÑW|jƒdj|ƒS(
Nis
chunk sizet;iiR.is trailer lines
(RURRtAssertionErrorRVR7R$R4R9R:R;R<tfindRbR_R`R R%R>Rv(R&RwRVR(RHti((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyRtCsV            
            
 
     
cCsg}xi|dkrq|jjt|tƒƒ}|sQtdj|ƒ|ƒ‚n|j|ƒ|t|ƒ8}q    Wdj|ƒS(sVRead 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 <amt> 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.
        iR.(R4Rutmint    MAXAMOUNTR R%R>R;(R&RwRxtchunk((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyRv}s cCs |jjƒS(N(R4tfileno(R&((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyR€™scCs.|jdkrtƒ‚n|jj||ƒS(N(RQR$RRf(R&tnametdefault((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyRfœs cCs(|jdkrtƒ‚n|jjƒS(s&Return list of (header, value) tuples.N(RQR$Rtitems(R&((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyt
getheaders¡s N(RJRKR$RpR\RcRnRhR`RsRuRtRvR€RfR„(((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyREs
    '    V             -    :         cBsõeZdZdZeZeZdZdZ    dZ
dde j dd„Zddd„Zd„Zd„Zd„Zd    „Zd
„Zd „Zd „Zdd „Zddd„Zd„Zdd„Zdid„Zd„Zd„Zed„ZRS(i sHTTP/1.1iicCs†||_||_d|_g|_d|_t|_d|_d|_    d|_
i|_ |j ||ƒ|dk    r‚||_ ndS(N(ttimeouttsource_addressR$RYt_buffert_HTTPConnection__responset_CS_IDLEt_HTTPConnection__stateRPt _tunnel_hostt _tunnel_portt_tunnel_headerst _set_hostportRO(R&thosttportROR…R†((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyR\³s                                         cCs5||_||_|r$||_n |jjƒdS(sº 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tclear(R&RRR1((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyt
set_tunnelÄs
         cCsÿ|dkré|jdƒ}|jdƒ}||kr§yt||dƒ}WnItk
r™||ddkr~|j}qštd||dƒ‚nX|| }n    |j}|ré|ddkré|ddkré|dd!}qén||_||_dS(    Nt:t]iR.snonnumeric port: '%s'it[iÿÿÿÿ(R$trfindRbR_t default_portRRR(R&RRR|tj((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyRŽÑs          &    cCs ||_dS(N(RN(R&tlevel((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pytset_debuglevelåscCsJ|j|j|jƒ|jd|j|jfƒx4|jjƒD]#\}}|jd||fƒqCW|jdƒ|j|j    d|j
d|j ƒ}|j ƒ\}}}|dkrè|j ƒtjd||jƒfƒ‚nx[trE|jjtdƒ}t|ƒtkr(td    ƒ‚n|s2Pn|dkrëPqëqëWdS(
NsCONNECT %s:%d HTTP/1.0
s%s: %s
s
RORZiÈsTunnel connection failed: %d %sis header line(RŽR‹RŒtsendRRRt    iteritemstresponse_classRYRORPRcR`tsocketRR?R7R4R9R:R;R<(R&theaderR(tresponseRStcodetmessageRH((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyt_tunnelès(   
      cCsDtj|j|jf|j|jƒ|_|jr@|jƒndS(s3Connect to the host and port specified in __init__.N(    Ržtcreate_connectionRRR…R†RYR‹R£(R&((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pytconnects    cCsQ|jr"|jjƒd|_n|jrD|jjƒd|_nt|_dS(s(Close the connection to the HTTP server.N(RYR`R$RˆR‰RŠ(R&((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyR`    s            cCsà|jdkr1|jr%|jƒq1tƒ‚n|jdkrRdGt|ƒGHnd}t|dƒrÌt|t    ƒ rÌ|jdkrŽdGHn|j
|ƒ}x<|rÈ|jj |ƒ|j
|ƒ}q Wn|jj |ƒdS(sSend `data' to the server.issend:i RussendIng a read()ableN( RYR$t    auto_openR¥R    RNR]R3t
isinstanceRRutsendall(R&tdatat    blocksizet    datablock((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyR›s          cCs|jj|ƒdS(suAdd a line of output to the current request buffer.
 
        Assumes that the line does *not* end with \r\n.
        N(R‡R>(R&Rx((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyt_output'scCsx|jjdƒdj|jƒ}|j2t|tƒrK||7}d}n|j|ƒ|dk    rt|j|ƒndS(s¸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.
        R.s
N(R.R.(R‡textendR%R§tstrR$R›(R&t message_bodyRQ((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyt _send_output.s
      c
Csá|jr$|jjƒr$d|_n|jtkr?t|_n    tƒ‚||_|s`d}nd|||jf}|j    |ƒ|j
dkrÝ|sÁd}|j dƒrËt |ƒ\}}}}}n|ry|j dƒ}Wn tk
r|j dƒ}nX|jd|ƒqÁy|jj dƒ}    Wn#tk
rU|jj dƒ}    nX|    jd    ƒd
kr|d |    d }    n|j|jkr¡|jd|    ƒqÁ|jdd |    |jfƒn|sÝ|jddƒqÝndS(s`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
        t/s%s %s %si R.thttptasciitidnatHostR“iR•R”s%s:%ssAccept-EncodingtidentityN(RˆRsR$RŠR‰t_CS_REQ_STARTEDRRPt _http_vsn_strR¬t    _http_vsnR=RtencodetUnicodeEncodeErrort    putheaderRR{RR—(
R&RZturlt    skip_hosttskip_accept_encodingRltnetloctnilt
netloc_encthost_enc((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyt
putrequestCsB                   
 cGs^|jtkrtƒ‚nd|djg|D]}t|ƒ^q.ƒf}|j|ƒdS(skSend a request header line to the server.
 
        For example: h.putheader('Accept', 'text/html')
        s%s: %ss
   N(RŠR·RR%R®R¬(R&RŸtvaluestvRl((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyR¼±s 2cCs5|jtkrt|_n    tƒ‚|j|ƒdS(s‡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 string, otherwise it is
        sent as a separate packet.
        N(RŠR·t _CS_REQ_SENTRR°(R&R¯((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyt
endheaders¼s         cCs|j||||ƒdS(s&Send a complete request to the server.N(t _send_request(R&RZR½tbodyR1((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pytrequestËscCs¨d}ytt|ƒƒ}Wnftk
r„}y"ttj|jƒƒjƒ}Wq…tt    fk
r€|j
dkrdGHqq…XnX|dk    r¤|j d|ƒndS(Nis Cannot stat!!sContent-Length( R$R®R;t    TypeErrortostfstatR€tst_sizetAttributeErrortOSErrorRNR¼(R&RÊtthelentte((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyt_set_content_lengthÏs" c
CsÙtjg|D]}|jƒ^q ƒ}i}d|krGd|d<nd|kr`d|d<n|j||||dk    r›d|kr›|j|ƒnx*|jƒD]\}}    |j||    ƒq¨W|j|ƒdS(NRiR¾saccept-encodingR¿scontent-length(    R"tfromkeysRgRÄR$RÔRœR¼RÈ(
R&RZR½RÊR1tkt header_namestskipsRlR(((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyRÉàs(    cCs|jr$|jjƒr$d|_n|jtks<|jrHtƒ‚n|jf}i|jd6|jd6}|j    dkr||j    f7}n|r£t
|d<n|j ||Ž}|j ƒ|j tksÔt‚t|_|j ró|jƒn    ||_|S(s!Get the response from the server.RORZiR[N(RˆRsR$RŠRÇRRYRORPRNR7RRnRXRRRzR‰R`(R&R[targstkwdsR ((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyt getresponseñs$    
             N( RJRKR¹R¸RRt    HTTP_PORTR—R¦RNROR$Ržt_GLOBAL_DEFAULT_TIMEOUTR\R’RŽRšR£R¥R`R›R¬R°RÄR¼RÈRËRÔRÉRpRÛ(((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyR¨s2                    
        n             cBsneZdZdZdZdZeZdd d d„Z    d„Z
d d d„Z d„Z e d    „Zd
„ZRS( s-Compatibility class with httplib.py from 1.5.i
sHTTP/1.0iR.cCs5|dkrd}n|j|j|||ƒƒdS(s:Provide a default host, since the superclass requires one.iN(R$t_setupt_connection_class(R&RRRO((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyR\-s     cCsj||_|j|_|j|_|j|_|j|_|j|_|j|_|j|_d|_    dS(N(
t_connR›RÄR¼RÈRšR¹R¸R$tfile(R&Rq((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyRÞ9s           cCs3|dk    r"|jj||ƒn|jjƒdS(sDAccept arguments to set the host/port, since the superclass doesn't.N(R$RàRŽR¥(R&RR((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyR¥Hs cCs|jS(sCProvide a getfile, since the superclass' does not use this concept.(Rá(R&((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pytgetfileOscCs­y.|s|jjƒ}n|jj|ƒ}WnNtk
r~}|jjjddƒ|_|jƒd|_d|j    dfSX|j
|_|j |_|j |j |j
fS(sCompat definition since superclass does not define it.
 
        Returns a tuple consisting of:
        - server status code (e.g. '200' if all goes well)
        - server "reason" corresponding to status code
        - any RFC822 headers in the response from the server
        RLiiÿÿÿÿN(RàRÛRRYRMRáR`R$R1RHRQR4R2RT(R&R[R te((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pytgetreplySs
      cCs|jjƒd|_dS(N(RàR`R$Rá(R&((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyR`ts N(RJRKt__doc__R¹R¸RNRRßR$R\RÞR¥RâRpRäR`(((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyR#s         !tHTTPSConnectioncBs;eZdZeZddddejdd„Zd„Z    RS(s(This class allows communication via SSL.cCs2tj||||||ƒ||_||_dS(N(RR\tkey_filet    cert_file(R&RRRçRèROR…R†((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyR\ˆs    cCshtj|j|jf|j|jƒ}|jrF||_|jƒnt    j
||j |j ƒ|_dS(s(Connect to a host on a given (SSL) port.N( RžR¤RRR…R†R‹RYR£tsslt wrap_socketRçRè(R&RY((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyR¥s          N(
RJRKRåt
HTTPS_PORTR—R$RžRÝR\R¥(((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyRæƒs          tHTTPScBs,eZdZeZdddddd„ZRS(sÉCompatibility with 1.5 httplib interface
 
        Python 1.5.2 did not have an HTTPS class, but it defined an
        interface for sending http requests that is also useful for
        https.
        R.cCsM|dkrd}n|j|j|||||ƒƒ||_||_dS(Ni(R$RÞRßRçRè(R&RRRçRèRO((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyR\¦s           N(RJRKRåRæRßR$R\(((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyRìœs cCstjddtddƒ|S(Ns0FakeSocket is deprecated, and won't be in 3.x.  s5Use the result of ssl.wrap_socket() directly instead.t
stackleveli(twarningstwarntDeprecationWarning(RYtsslobj((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyt
FakeSocket¶s     cBseZRS((RJRK(((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyR½scBseZRS((RJRK(((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyR    ÂscBseZRS((RJRK(((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyRÅscBseZd„ZRS(cCs|f|_||_dS(N(RÙRS(R&RS((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyR\És (RJRKR\(((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyR
ÈscBseZRS((RJRK(((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyR ÍscBseZRS((RJRK(((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyR ÐscBs&eZdd„Zd„Zd„ZRS(cCs"|f|_||_||_dS(N(RÙtpartialtexpected(R&RóRô((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyR\Ôs     cCs<|jdk    rd|j}nd}dt|jƒ|fS(Ns, %i more expectedR.sIncompleteRead(%i bytes read%s)(RôR$R;Ró(R&Rã((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyt__repr__ØscCs
t|ƒS(N(R](R&((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyt__str__ÞsN(RJRKR$R\RõRö(((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyR Ós     cBseZRS((RJRK(((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyRáscBseZRS((RJRK(((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyRäscBseZRS((RJRK(((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyRçscBseZRS((RJRK(((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyRêscBseZd„ZRS(cCs.|st|ƒ}n|f|_||_dS(N(R]RÙRH(R&RH((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyR\îs (RJRKR\(((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyRísR<cBseZd„ZRS(cCstj|dt|fƒdS(Ns&got more than %d bytes when reading %s(RR\R:(R&t    line_type((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyR\õs (RJRKR\(((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyR<ôsRacBsJeZdZd„Zd„Zd„Zdd„Zd„Zdd„Z    RS(s2A limited file-like object for HTTP/0.9 responses.cCs7||_||_d|_d|_t|ƒ|_dS(Ni(t_linet_filet_line_consumedt _line_offsetR;t
_line_left(R&RHRá((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyR\s
                cCst|j|ƒS(N(tgetattrRù(R&tattr((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyt __getattr__ scCs:d|_|jj|_|jj|_|jj|_dS(Ni(RúRùRuR9t    readlines(R&((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyt_dones    cCs|jr|jj|ƒS|js(t‚|dksC||jkr›|j|j}|jƒ|dkrz||jjƒS||jj|t    |ƒƒSnp||jks°t‚|j}||}|j||!}||_|j|8_|jdkr|jƒn|SdS(Ni(
RúRùRuRüRzR$RøRûRR;(R&RwRxR|R˜((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyRus$    
 !    
     cCsC|jr|jjƒS|js%t‚|j|j}|jƒ|S(N(RúRùR9RüRzRøRûR(R&Rx((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyR9-s      
cCsz|jr|jj|ƒS|js(t‚|j|jg}|jƒ|dkrb||jjƒS||jj|ƒSdS(N(    RúRùRRüRzRøRûRR$(R&tsizetL((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyR5s    
 N(
RJRKRåR\RÿRR$RuR9R(((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyRaüs                     (eRåRRÍRžtsysRturlparseRRîtcatch_warningstfilterwarningsRðt    mimetoolst    cStringIORt ImportErrort__all__RÜRëRRR‰R·RÇRetSWITCHING_PROTOCOLSt
PROCESSINGRtCREATEDtACCEPTEDtNON_AUTHORITATIVE_INFORMATIONRit RESET_CONTENTtPARTIAL_CONTENTt MULTI_STATUStIM_USEDtMULTIPLE_CHOICEStMOVED_PERMANENTLYtFOUNDt    SEE_OTHERRjt    USE_PROXYtTEMPORARY_REDIRECTt BAD_REQUESTt UNAUTHORIZEDtPAYMENT_REQUIREDt    FORBIDDENt    NOT_FOUNDtMETHOD_NOT_ALLOWEDtNOT_ACCEPTABLEtPROXY_AUTHENTICATION_REQUIREDtREQUEST_TIMEOUTtCONFLICTtGONEtLENGTH_REQUIREDtPRECONDITION_FAILEDtREQUEST_ENTITY_TOO_LARGEtREQUEST_URI_TOO_LONGtUNSUPPORTED_MEDIA_TYPEtREQUESTED_RANGE_NOT_SATISFIABLEtEXPECTATION_FAILEDtUNPROCESSABLE_ENTITYtLOCKEDtFAILED_DEPENDENCYtUPGRADE_REQUIREDtINTERNAL_SERVER_ERRORtNOT_IMPLEMENTEDt BAD_GATEWAYtSERVICE_UNAVAILABLEtGATEWAY_TIMEOUTtHTTP_VERSION_NOT_SUPPORTEDtINSUFFICIENT_STORAGEt NOT_EXTENDEDRR~R:tMessageR!RRRRéRæR>RìRòt    ExceptionRR    RR
R R R RRRRRR<RRa(((sO/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/httplib.pyt<module>Cs*     
                 
kÿdÿ|[