Guzzle 在 16kB 后截断 headers
Guzzle truncates headers after 16kB
我在 php7.4.
的 ubuntu 机器上安装了 curl 7.58 和 guzzle 7.3(源代码:7008573)
当我 运行 一个请求
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'http://mockbin.org/bin/e61ded3e-d2e1-4071-8c27-9c35f1d7cb72?foo=bar&foo=baz',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HEADER => true,
));
$response = curl_exec($curl);
// Then, after your curl_exec call:
$header_size = curl_getinfo($curl, CURLINFO_HEADER_SIZE);
$header = substr($response, 0, $header_size);
$body = substr($response, $header_size);
curl_close($curl);
echo $header;
我可以看到整个延续令牌都在那里。而当我 运行 使用 guzzle 时,你可以看到我得到了什么:
>>> $client = new GuzzleHttp\Client();
=> GuzzleHttp\Client {#4501}
>>> $res = $client->head('http://mockbin.org/bin/e61ded3e-d2e1-4071-8c27-9c35f1d7cb72?foo=bar&foo=baz');
=> GuzzleHttp\Psr7\Response {#4524}
>>> $res->getHeaders();
=> [
"Date" => [
"Tue, 14 Sep 2021 14:52:30 GMT",
],
"Content-Type" => [
"text/html; charset=utf-8",
],
"Connection" => [
"keep-alive",
],
"continuation" => [
"eyJUb3RhbENvdW50IjpudWxsLCJUb2tlbiI6Ilt7XCJ0b2tlblwiOlwiK1JJRDp+enpaakFMZlpzOXBYNHdFQUFBQUFBQT09I1JUOjEjVFJDOjEwMCNJU1Y6MiNJRU86NjU1NTEjUUNGOjQjRlBQOkFnSUhBTklCQndBYUFGVWpnR0FoWUFBQ0YwZ01BSUVPUkFJS2lnS0FjZ0lBUWdFQUNBQVFBUEVPQUF1UkVRREFVUXBpQVpxRjhZUUpBQmdBQm9IN2phcURQNGRKaFNTQTZvRFdnTldJVllXS2hkK0lDZ0FNQURhbXVZUDVqVUNCT1lVYWdBc0FFZ0RaaXpDQTlJQkFnbW1CRFlGYmdneU5iWThNQUJBQU9wQmNoT1NCVUlNRGcwMkFBSUFPZ0EwQUlnRDBoQ3FBNzRjR2dCSUFBSmdBQWt1QUlvSWdnemVGbVlSUkJRQUo0SWRVaFlXQ0R3QUVBTUdLdTZVUUFBSUFpNFVTQUFRQTVvQkVoeE1BQWdEQ2hoUUFCQUNNakVPRkZRQUdBRk9zaUl1NmdoWUFBZ0RjaWhjQUJnREpoQ0dYMVpvWkFBSUFFWklhQUF3QXphQ2tpWWlQUVlBM2dNaUFHd0FPQUZLRUFJQ0JDZ1VBeElDcm1mT0dIQUFDQUl1SkhRQUtBSjJMS29UN2dIK2pBb0FlQUFZQXJac0ZnRWlJSHdBQ0FBMnNJQUFDQUJTa0lRQVdBRWFMNGFJaGdTR0Jlb05aZ2lhQkpvRlRnaUtCZm9NaUFCd0FHNEZVZ3FtQ3NvWWhnYVNFZm9NcmdZYURKWUgvalplS2c0UGZnaU1BQWdEeWdpUUFBZ0RDaUNVQUJBRFJtRG1NSmdBRUFJMmgzbzBuQUFnQVlRZGdBSkNNLzVjb0FBb0FJSWg3aVlxT0I0QlRtU2tBQ0FEZWdpU21Lb0JEalNvQURnRHRrYWlDN1lmSmhmbUF0bzZmaGlzQUFnQXNwU3dBQmdDWmljU1d4Wk10QUFnQVdvaUJrL3FhZG9VdUFBWUFQS2hoaHIyUUx3QU9BSUVKSkFCeWlPdUZGSUNGaVJ5WU1BQUVBR21ud3BVeEFBZ0F3SklibUFtR09vY3lBQUlBMkpjekFBb0FBNlpTZ1ZFQUFFaVlsRFFBQWdDbWxUVUFEQUMraDEyb2Nvb2lnVkdDSVlFMkFCQUFmNEJlZ2pHQlVJSjdoc0NHR2FxcWdEY0FFZ0IyajBhR0FjQUlBYWlQUUpDS2gxaUFQb0E0QUJJQS9ZV0JpQmVCa3BIamdHU0dxWWJNamdHQU9RQUlBR0NGKzRlNGdCK0dPZ0FNQUZpVEc0Z3JnRHVBd1puWGdEc0FCQUJYZ3N1dFBBQUVBRk9WVjZvK0FBZ0FtNXlSQUJBQ1BKVS9BQWdBS0lNRm5TRVVSQUJBQUE0QXQ0VG1obWFBQ3AxWWdJNk5TSVZCQUJnQS9wZ0tnQTZBZzRFL2dBeUEwWU51Z1hXR0hZRG9qbkdIUWdBU0FEK0Jnb0J6aDJlSFo0RkhoL2FWL29kSWlFTUFJQUJSbTBlQ0pvRWhnUitCVzRLdWhJaUJINEYzaFUrQ0tvR09oSm1BSElBRmdFUUFHQUM3Z2FXQVpJZkpoVkdBZFllbWdRV0Fqbzc5Z1c2T3E0ZEZBQTRBWW9IWWpqaUNHbzdIZ0l5Q3k0aEdBQTRBR0luNGdDbUpKYUZ3Z1RLQSs0WkhBQXdBZ0lNcmdCaUJGb2FWaUlLQ1NBQTJBSTJCTllBRWdJZUFKb0NhZ0JpQUNJQlJnQnlBSUlBQndBQ0JrWUVDd0FnUUNBRFBpQU9Bc1FjQVNDbUdUWUhaaHBHSmtJRGhqa2tBRUFERGpDRU5FQUVSQjRnQVNJaUJnWDJJU2dBUUFNS0NQb0N2aUVxUkFSR0JBSEtBOVkxTEFCb0FBNUlaaVFHQU00REZpZFNCWDRob2dDaUEwNEFMZ1BFSzhBQk1BQkFBZ1EzQUM3T0hvUWNoQU9FUUlBWDVoMDBBRkFCUkRBQTQwUWlBREkyUEFjQmdBS0dFWVlzK2hVNEFEZ0JSQ2RBQU1RbzBBS2lSTVFwQUFrOEFFQUFSQWdBaTBSRUFVT0VhREFDeENJQUVVQUFNQUh5QWNRb0FwQUVUT0NqOGpsRUFIZ0RoQjNnQmdRcFFBYUVJQU5xTGpRUEFDQkFBSUFCQXI0UWVoUUNBM0lwU0FCZ0FjUWhRQVdFTDBDUHhDWUFnc2dvQVlBOEFVaEVBd0FrQVV3QUtBTVdCMFIwQUZSbUdzcE5VQUJBQUVRTUFWUEVMOGdTdmxRSEFCUUI1aWxVQUVBQXhCQUNRMzRpUGtRR0E0UWtEQU9XUVZnQUdBRmVlUVJFQUdGY0FGQUFzakFIQURnQUZrQkVESUJRQkRRQVZzUXZRZGxnQUhBQ3lDakpFSUFDaUNJZ0FBUUJSRTBBRUF4RmdvQUVBdUFOUGh3S0FXUUFVQUhHRWlZemhBaVFBckpMeEFuZ0FHWlR4QVFNSVdnQU1BTlNHbm9zS2dJT1dFUkJBQWxzQUhBRFNDZ0R3REFBMmlnSEFCUURZaGRJREFNQUJBTk9Kb2hFQUpBRUFYQUFTQUZFREF3Q1RpdUVSWGdBeEVnQVU0UWdBY0YwQUZBQ0JDd0FONFFiQUFVcUllWTh4Q2dCSVlRcUFCMTRBRUFDQkNnQWhjWW1RajdHS0Q0QUJ3QU1BWHdBU0FHRURBQ0doQ2hnQTVZZ0VpWklWQUtBRkFHQUFGQUFTQ0FEQUFRQkNpRUVJd0FEYmtnQ0FnUWczQUdFQUNBQnRpSklrQU1BaEFHSUFGQUN4QUFCZ2ZZa0J3REFBVjRuS2gySVRnSUFFQUdNQUZnQWlBVUlBSVFBQ0VhRGpFUURSaUFPQU1oa0FxZ0VBWkFBRUFNRUpRQkpsQUNJQXd3TUFjTzBDQVFDaENBQmdQNUVCd0JFQmtRa0pBUDZIb1FjWUFDRUlBSUV0Z0dZQUZBQlJFUUVNYnBFQndBa0FvUWlBQlk2SkFjQ2ZBR2NBRUFDaUI0Q0VBUUFSSDVBS3pwRUJ3Qm9BYUFBU0FMQ0JVaElBaUFnQWVKWUpnQUNBTVJRQWpHa0FEQUF4Q2dCSTE0d3BsSUVLZ0NKcUFBNEFzZ3lBSVQ0QTlJb3hrY0dDQklGckFCNEE0Z2NBRWc0QVFRdktBNkdMQXNBQXdCQUFLNFFTQlFDZ0F3QlJGVUFCYkFBTUFJT0VBaGNBd0JnQXdTSW9BRzBBRmdBaEFBMEFrZzhBSXBjQVVSWVlDRCtRYklRQndBYUFiZ0FNQUtJREFDSUlBR0lXSUFJQ0FHOEFBZ0I5c1hBQUFnQ2prSEVBQWdENnMzSUFBZ0NUdVhNQUNnRE1pOXFSWWdnQkFnSUFkQUFJQVBTSWNSQkVBR1dQZFFBQ0FFdVJkZ0FHQUFtNEk0QjloM2NBQWdCcXEzZ0FDQUErblJXQkFvQVVqSGtBQkFBOXFpK0FlZ0FDQUpLS2V3QUlBQkNMRDRDYWdDaWVmQUFJQUpFSEFDRUJOeUJBZlFBRUFKaVg2cU4rQUFZQUVTeEFBVDJBZndBRUFJRWFEQUNBQUFRQUVTQUJCSUVBQWdBMmc0TUFCQUQ3bkRHQWhBQUtBT0VKd0FBNGdFRWtBYUNHQUFnQUFvMXdnQlNBUXErSEFBUUFEYWtuZ0lnQUFnQXlzWW9BQ0FCUWd3cUFBY0NBQW9zQUNBQkRDUUJRWUFBR0lJd0FDQURoSFFBaUtvQVhnSTRBQWdBd3JZOEFGZ0Q3a1ZPQ0lJRkpnaWFCZm9PQmczYURVNEpPZ2xxQ2tBQUNBQVdsa2dBRUFKbUhBb0NUQUFJQUxMV1VBQUlBRjZpV0FBSUFkSUNYQUJBQUtJbEJBQ2dBVUlvanBRaUFDSUFBZ0prQUJBQXNuVVNBbWdBS0FMT290SVdQaVlPRFVvS2JBQVFBQklYamdad0FCQURzandDQW5RQUlBUFdLN2JKSmdIbUFuZ0FFQUJLQVRvS2ZBQkFBWG9jUkFFQUlNUklBRkRFUWdFQXNnS0FBQWdCV21LRUFBZ0NSamFJQUZBQXZraXlCS0lFcWdWbUMyNFZVZ2xPQ2dJTTFncVFBQWdCa21xVUFBZ0RFbUtZQUFnRENvcW9BQkFDM2pLV25yUUFDQUlTY3NnQUNBSGlKdGdBQ0FOZTZ0d0FDQURTSHVBQUdBQ0VHRUFnUm43a0FBZ0NodmIwQUJBQ1VraWVqdmdBR0FQSXFzT1grQUw4QUhBREFrQnVEeUlyMEFRQWtZeGllTERJQUE0V2tCQURURi96ZnFRNEF3QUFjQUpJUEFDeG1BQnlHd2dMSTkxNFY0UXR3Q0dXRnN3K0FWTEQzcXdQQkFESUFZZ1VBYVBvSGk0UkJCWTIvQ29SdmhRUEFCMXZpaXc4QVFRQkFDMElOQUdyQUdESUxBTkRWQnRLQnhvWVloQTJBRklEQ0FEQUFCcEZialp1SXFvY0RCU0JPMG9FQkFKTUFBQ2lBVGdJQVZnQVJCRUFDRUlpU1RBUkNDQUIraVFQQUJxS2dTZ0VBd3dCR0FJQ0lBOEFBQlVLbEdBSVhnS01KQURoa3dnSUV4WVBDQnhDUUZ3QXpBQUNLUmpxZ0JJWUxBS0FRQUVKQUFnUWdBQVFBWDRvRndBaGxSUlFCRVltZ1FBQTRnQUhBTkFERUFESUFBd2ZLREZ1ZzBnRURBU0JDbEFnREFDRVdBQmJpQVFCQmdRQXVnRk1BZ0tnQXFCQUFNaDRnU2hFQU13QUFHbDhBa0FERkFHb0FBZ3NBU3UwQlFnQmcrdFlKTVFxWUQ1RUJRQ0FSQUFCUUZnMGlGQUVGRUNBZ0lRQVFBQ0FaQUFCQ0lWQUFCUUVDRklBQUFnRUJnQVNCQVBTU3JvTUdnQUNBZ3dBSVFJRUFBUUJqZ0FXQUVvQUx3RUFnS0FSQUhNQUNBRUlVcWdRQ1VSQ1FTQXkyQVFBNmdNWUFHQURRb2F5RHdnSUFVTFVBcGcwVTFJSUFnNWdZUUNFU3hNYkhBRm9BNUFFZ1JJU3BnSWtBSWorUENJQURnQTZBQUlBaUFBUUlCQUFqQUFBaEFCQUFTQldBQWNCQUNIU0dUWVFDd0FRRVFBQXhBQW9DSWdBQURCQUNGb0RjaCtHRUw0SUZ3TURQa0VOWUVHdEFTWUYwREFCZ1RFbkNaUTBBeUFBNEFKMlVBOEJDQkFpQUJMQzFDNFFFdE1JV1FKU3JBUUIwZ0FTQXU0V3ppaGVBS3doQnp5QUFJRkVtM1pnR0FGaE1RaXpBS2dkUWtBa0F5UUFrQUdJRVVBRUFCTUlMb1FReEFES05zWTZ6RGVCcG1kdWpCZlVBSUFnQWxDQ1NSQVFKQU1vQVFnQVJGUUEwTG9BRndBb0FBQUFna29GQUp3QUVnYlFBUUFTQUlBaEVnUUFxazd1QWtnd0FoSXdzMDRJTHdFZ0FJb0FRQ0FFSUFBSWdBQWdBRWlBSUlBZ0FCQURMQUQ0QTE0UnVtZ0xBa2JpRUdtZUJCY0FCSUFBSUFJQWdJSUNBRllBZWdaMk1JZ0FBa0FBRUVRQUZBRHlJSmdJRVVBU1lFQUlDRUFBSUFVWWhBQ01BRm9ETUFGQUFkWVFSQllBUUVJRFRJUUNFSTVOQUFmMkJGUUNFZ0lhSUNDSUNBUWdBUG9BNUFBRXBCQUFDSWdpQ0FnQUlBQ0VSQ0FRQ0FNb0xDQUVDQWhBUUFFQUNRQUFFQkFBUUVBQUJDQUFSQUNBQ1JvSE5BRHdBbEFZWUFnSklGQW9CQUIrQUJNQWdDQ0lCQUJEQUFJZUZZaDFBTTVnQzJZQUJ3SWdBcW9GQWhoSUNBR0FCQUhXQkdJQUV3QUJFSUVDTTZTTUF6Z0ErQU4yQUFZQ2ZnQWJBRXlQOEpBc1hDTXNxNGcwQUZnMkJFRkkwUkFnS29BQUNRQUNTQ2dCSVV3eittZ25BUUFrQ29PQTJJa0NZZ0dLNHRDRVlJb0JnendCR0FCeURCOENvV1FHQUFBRUFBQlFRS0FnQ0FISU9JVFNBd09NQUVoQ2lrR2tNVjU0eWdBYkFRRkFBQkFBb0NBUURJRUFBTG9BQ2dBV0E0Z29BVEFBUWN3RkFFb1FnRUFEUUFEQUFzWWtGd0VBaEZDQ1FwUUFKQUFqUGl3TEFXclNZQmdNYVVBQ0tRRElBYVk0Q3dBSUJBQkFRZ0FIQVJnQWhBQUJDMFFBaUFHU3JHb1FKd0hDTGFVVVRKRkpLWWdBRERnRUFIczQ0TVVpRE9Jc0N3QmdCQlFEU0FFd0FycG5LaXdiQVFrQUFBQWdDQ0FBQkFBUUFrd2lneGN5Y0RBQWpBSkFBQzVWREFNRUtVSkRYZ0R5QUFjQUFJaUVBRkFDc2dCeUFCNEFlZ01TQUFZQUJnQVhBQWdFQUVnZ0FBQUdBQU5NQUhnQVlEOElpQUVBZ1VqSUFUQU1HQUNCQUlCUVJBQUFSd2c4QXdNQUJNcHZVQUVvQTRSWklBQmlBeDRBQndCRUF3b0JQaHduQWdZMEVDNnlqQzRBMUFBSGtJQlVXb0FBUXY0UVJnQTJBRVFBU0VES0dJSUZOZ2l5REI4REFFQUVBQUFJQkFCQ0FRRUFRQUFxQlVvblZBRzRBRkFoQUtBUUFBQ01JQUYrQUNvQVJnQVBBSUVaeWdDQUFHSUNtaE1RR0VjQUVLQUxnWUFBbGdRMkczNFlDd0IyQUhRQk5nOVdGSW9HVmdCMkFBc0JFQUFBZ0xJQU9nQkdBQzRBQ2dTR0JINEZjZ2hJQkFJZ0VBRDZBRFlCQ2dBMkFNZ0FRRUFFQUtZQUFnQmVCcElUV0FFNEFub0lzZ1FXQUhvRXhnUjZCWDRLTmcweUFBSUFSQUFBd3JZQ3JoRlNDV29KREFRQlFEUUVCQUxNRkFGQ1NFQUFnTVFBTUFHQ0tNd0FBREFBWVJZcXlBTUFFRHdCN2lsTURBSW5ZQkp3QTF3QTJBTmlCQk1BUlFBNGhTRkFJQkNFQUtTYlNpSXlDQjhCaUNpQmlnRWdBMmlCWUJBQ0NDdUVBUndzZGpBTEFvQkFCQUZJajkzVUNBTmdBT2dBeEJnSUJSd0JBUWdLRTFBQ0FJRUNuSkFDb1kvUUl3QXN3SWNTd1FZQ2lGY0JBU0FnVmdHdUlKQUFBaUJTNFV2b0NCUFNDUVlreEJJQUMyUUFvQUdjY2dCQ0dFTUFyTE1IZ2dvNUNJZ2lVQUFCQ0VJU2xDZ1lBZm9mVkJUSWlCZ0FLRkEyVlpnRGFBRElBODRWRUFRQlFBa3Rkd0NCQVA0QUV3RTRra2ljR0JBSUFCUnhBZ0JEaFFBaFFGS0FHRWdEa1FCSUVrdzBBZ2dBQjFBamJBREFBWWcwQWtBd0Fad0lBT2lBZ2xvVWlVWUpBV3NJZ0FCT0FaUThBWUpBQ0pBT2tzQWhFNVJvQWtFRkxUQVdJYWthTTNBQUtBQklPaGFpSkFJS0tZSkhkQUJRQWpZeVNFRWl4RndBVkFFQmlpU0tXYnhZU0VRRGVBQ1FBeUFSZTE5ZmEzdWRjMVBJRVAzaHRHZ0lBNHdvZ2hVdjFBUUNFRFFqNTJnUmlwcXNBM3dCWUFBSUQvQ0Mwb0dJQUJYaEprbTZBQXNBQ21mMENnZ3VBRVYrN3lZOEJ3QklBa1JwUUFCaUFBWUFKd0FHQUFBQUFEQUZBQUFRSUJBQUFoQUFBQkJHQUxvQUN3QkFDQUlBZWdBbUFCc0FFRUVRQUFBQUlnQkFBQVFEZ0FEUUFENVVQZ0E3QUFBV2hJQWdRVTZGQU1rQ0pBZ0lBUUFnQUFBZ0FnQUJBZ0VCQUlJUVFnQ0FFQUFBRUdpQWpFa2d6RlFBUUFPRUFQZ0Rkamc2QUlRQUlZQjZBT2dBQVFRQ0FBQUlCU0lCQkVvRUlNcUNCS3hpQUFsUU1RZ0pBa0VJQUVBQWhEQUJGVWdCWVFBRUFkQTBBa0dFc295Q0NnT0lBVGdERUF5U2dHR1RRUWdJQXJZc0N3QXFhUlFTcGl6T0FQNEF4Z0FMQUFnd0JBQ3lBQXNBQUpBZ0FSWWF5QWlBbFJRQ3pDZ0NvQUFJREJCYUFBY0FBYXhJSW1ZTlFBQTZHQWNDV25pZUFIWURqQUVZQU1RYUFBZUVFQUg5U2hmMkRBY0N3QzhFREFHQkRBQUJRS1Q0MkVpK0FBY0FNQktFRGRnSWhDb0FTUElBQndBVUFJZzRBSEF3QU5nQUFTQVdBQUVBRUFBQUJBQVI1Z2VRQWFnQ1RBV0FBQUNRRUFESURBSU1GQUlRTUFNdzJBQUJaQkFBUkFBWUFrd0lBT0ZKMkFRQXlBQUJVQWdyV2dVSUJBSGFEWFBFQzVBUC9oQUxBd0ZBNkJFQ1FDb0FCZ0dJQ0FHSUNBREVBQUFOQkEvUUJrUUJTQVJHQXI0TGFnQVBBQUlqQnFKZ3BJZ0JBQWhBRjVRQmtBQkNBQXNDNkFKSUFDb2lUQndDUUVFQlVBQ01BRUNVRlVnQUVjd1FvYUZMS0VRQmlBQUJJQWdBakJCcUFaVWcrRVZNRkNKZ1JDUkFIa3c4QVRFVUpBZ0FpQUNJSUJCQVRBQUNVQ2lFSUFCRUFBRlVpQkFSd0NBQVRCYVlERUFMTkFPRUZJd1RtQUU0QWxBUUE0QUlnM0lRQlFnY0ZDQXdJQUFFZ0FBUVFBQk5JQVF4VENTU1JJQkVFQUhJRkFPQVpQd1FFQUpRS0loSlJvQUNTQlJEQkNnaGxCZ0dBQURFc1FCaXN5RkNSQmdBbUNJUUtnUEtBNXdCSUFDSUhBTUJBQUZJQUFDUUtBQ3FBQXNCcEVFUUFaZ1lFRFFZQUFFQkJBcEFrQWdBQ0JrQVpDUUF4QUFBR0lnWUFvT2tBSm80SWdBWEFRQ0FBQUFRQ0NJQUVBbklCb05JRUl1Z0FSZ0FqQ1VnSlRLQUdBREVORFFBMGdBTEFDRUFnQUcyRUFJRFRBQWdnQUlBZ0FCeUFDb0hHaFF5QWdJSktqWllDQUNJU0FBSUFBRUJVQXdRUlpJQUpnVitEUElJY2dUMkI2UURrQU1pQVFvS3RnUUhBb0RZeEFBQkNXb0lXZ2dIQVNBQWNnQU9CTG9MVEFZRUlBQVFGSUNlQUJJQUxnQVNBMjRJQ3dJZ0lDQUFhZ0pPQUVZQU9nQWVBQklBRWdBR0FNNEFrZ0JHQVdJQWpBSUlBQ0FnUUFDSUFCQWdDQUN5QUNJQUl3Q0FnZ0NBQkFBSUFBZ0tnQUFFUUFnaGlnQklBQklFQUVEeUFCNEFEd0FpQUFFQVFDQnVBU0lrRmdNVUFBSUpBQ1VCQUpDZ2lBQ2dBQUJGeUVFR1FXWkFBQVlPZ1NRSFpBaE1BQUtnREFBSUFCQUVBTUNtQkZBQUFJRXlJQXNBN0RPUUdIb0FDZ09JSEFnSTNBSllIWUNqa0tneVFLa3VDVlFFQUc0QU9nQUxBb0JCRkFPb0FVZ0RHQXdDb0JoUUpCUUVKQWhBQkFES0FINGNDd0FQVURBQnNpUUxBQ1luQUFXK1NGb0JUZ0FDQUM0QUJ3QUJJY1FjQU1IcUlGQUJFRUlSeEFFQWhnQkVBQ1FCSGdBWEFVQUJJSUZBZ0NBQUFRRVNBNndCU0FJVURBS0JaSUFvcW9CRmtNNU1KQUJTa1FtSUFMNGtFd0FpQ0pNSUFBQmtBS29IbEJva0VJZ0VCQUFBSUFDZ29ob1NBMVFDZ0tBVUlRSkZDSVVFQTRnOEFncUEvUG9BVkFKU0FOTlNSSVFnc0JDRHNBR1FBUFlMUkIwQWlHNEFJd0NCUVFpb0lBZ0FBRVNDSVFpS0JFb0FEQndCQ2daQWtVZkdDc1FZS0FGcUFCTUFtQVlFRUFnR0FBQ0lBaWdCQUFLSUd3ak1VQUlZSUFnSUJoTUVRUXdnSkFDd0V1SVlDd0VqRUZBTXhBQUNvMUFnQVZGQWcyWEVCQU8wQUtnRENCUkFFQUlMM2dDdUFBSUFOZ0FxQUFjQUFFY0tBNnBDQWdjT0FKb0JSZ0ppR0dZTlhoRGFBVElUdUFDZ0FacTh4QUFESWd3QWhBU0FJQ1FDdmdoWUdFRlJXT0JnUkFrQTJSQUVBTkFBVUtDSkpGUUFBQXU4QWZnQmpnd1BBQUJJaE5FMEk5SU9yaHNtQ0V3QWhDQ0lDRUFEb2h3TEFSQWdJSUNlQUVRQUFnakNBSllBQ3dJQUlBRUFoQUFEQUZJQ1NrZ3ZBUlBFTUFRTUlpZ3NOQVFBQWdDSUNRQ0FBQ0JBQUFSS0FQNEE1Z0FTQVM0QUVnR1VBQkFFRUJBQUVBQUVRQU4yQUlvRGJoaTJBQmNBU2tKR2d3aUFFS2dZQXU0UHdBSkFBaUlKUGlYUUJRQUlRZ0FRaEV3QVJBQWdCcTRwWmdBYUFEWUFYQUFJSWdBQUNBQUFCZ0FBQUFnQ0FNWUFJZ0FXQUVnQWdFQUFTUlJFQXlBUkFBSUdBQUFBQ0w0QVRBSUdBQUlFUUFCYUNHWUFJd0FNUUNJQVFBSUVnQkFvQWdBZ0FFQkcwQVpRSUFrQUNnQUVBUDRBTGdBR0FQNEFCd0VFQVI0b2hnaGtBQUFwUWt5Z0FnS0tJU0FnZzZnZ0RBUVlBOFFCT0FNZVpVSUFEd0VBeExCQUtBSUlHSUNweUFaeURjSVJLZ0FPQUd3QUFPQUVEQUFzSzhRQVEwR2pFeEFpTW9pN3F6Z01BTXdFSUFZZ0VCZ0N6QndGRkVRS2dRQlFBQUcvR29BQUVCZ0F3Z3ZJQWhnREZCWklBQVpLQVNBQkpnQUNaQUFBREVNTUZBQ0FRQUlNR0FoZ0FvQUNBQUpLRDFRVUFoc0FJTUFFWkFEQXdFZ0JBQVFJWXFBY0lZQVFCZ0VnUlJFQVlBQkFBQ2dnQTU0bW1BQUNCRUFRQUVJQUFBQ0FFQURPS0FzQ0lBQWdBVFlBRXdJQUNBQ1FNQURBQUlnQmdBQVlBUVFBQWhDRUFDUUFVaVJ5QUJNQWdnSmdnQW9nQ0FQTUFlQUJ5QWdpUlFDRG5peHFBRG9BRHdFQUNnQUFBSUMrQUE4QmlBZ0FBQ0JIRGhZeUJBY0NRa1NhQUFZQmhnT3lBWFlBc2dGbUFmSVVDd0FrQkZDQWJnQUhBUkFBdWdBSEFnQkROaVVhQ1hZQWVnU0tBWDRBQmdPTURBZ2FJUkVRVUVJQVBndm9GQU1vWkxBRUJEQUFHQVFBRmhvQ0FCWUtGQXdEMEFDUUFYNEVsQVFEQWpGQUFKREt3QkFDa0JoQU5CUUFBWUFFQUlnQUFZR1lFSG9BQndNd0FCd0ZNQU1FYklBUVRBS0daTVFBQUFaTUVBZ1FCQUFBTUVnQU1BQVFBSm9EQ0J0VGtrSUlqZ0FQQUFRZ0FDQUNBOWdnM0JNQ0FBTUZJQXdCZ1FBRVlDQUJnUUdMa0FBQUdBQ2FSaHMwUkFBWUlBVlFBcFlFWWdCTUFEQUFBR0FBR053QWtCQU14RUpBSUFJWUJNQUFFQUNhQzhRc0pBS0VBQUNJZmdBVEFoTUlEUUZKZEJ3QmlCZ0FZbTVhMEI4aWd0K0krVndNQUVnZ0F3ejB2c2dnZzhjSXBnZ3NBNEg4QUNRRU9BT3VNRWdBRW5XWTdYNEg1Z2FXVkNnRmtBSHVBbEFBQWZHemIvM2QvQzdxSGU0QWhBeUFFM29xM0N3QmdLWHZ4QUFDUVlFQTRRU0FBRFlFS3dJQmdGQ2ZsR0NmeGhVaXpWS2lSSlFRcEJ3SUFkSUFCZ0FIQU1BRXFnQXFBQk1BUVFBQUFHQUJZSEUyR0FjQTRBTklEQUlKSUFPRUhBQ1FMQVVBQVZJa013R0RQWHNJUHZ2OTk5ai9PVDFJczRQL2pSQVVIQU44TEFDMkowUkpBRm82R0FjRG5YZWlBMGdRQThEY0Ftb0ZpQmdEQUY2WnpCTUFCWEVmNEFRd0JXZ0RUQXY3Mkw5d0JBREVBREFBaEFBNEFRWVF5Qk1EWHpBd2tGd0RBbkFaaUhFQUFGZ1l3Zk1lMmRFZ0NEdVlTU1FZbUNFR2k3Z1RBbjJzNkRwd05BQmNJQUVROUJsQTBqMnpIOEhmQUVBREZCQURBSHZtLzN2bi9Ed0FOQVRnQUJRckFlbnJyNC96b2YwYTlnd1JBaFVXQUJ3RDloRlFHTWhCYUFBUmdFZ0FqQmdnSUFBS0FBTElBZ0loRUFHUU01dmJ0QVBUOUJ3QU9BV1lBa2dnRWdPUUlzb1N3aGxpQVlRY2NDUk1Ba2dIOCswY3JvUUFBeU9RTmpKQUFDUWdBQUJBVmdCK0FCNEFMd0VFSUFnaUFBT1FBRUJnQkFDSUJnQUFBb0VBSVJZUktnQzZCVVFDQUFrS0FkQUFnS0hVRkFFalNBaUVGR2dJU0FDWjFIQUM5aUNxQUR3RkdBSm9GSUExWDJYdmRJM3Q3NlRob3lVdy9BQVFBQUFqaUFBRGdDQUFlZ0FLQUJJQWhBT1FBY3dZZ2w2bkdBUUFxalNNQXdNOWZmMjhBQVFrQUdGSUo5RnNBQXJTSGZZQVFBU3dBTjRJa2dMRUJnSmtYQUFEQXJMSjN6N1hTOWc3Z0lETUFWSkF1aGdTQW40QmtnOGViVW9KbmdNRUFBS0FSQVZnQUFRRUFZRUlEWUhpMEt2eUJyb0hDQVFDa3B3UzloN3NHQU5Bb0VRQWlhZUtpTUNHb0FOMTdLeEViMjZBRUFDUUFXQUVCQUFFd3pBRWtnQWJBWXdxZzl6UnZJRnBGSUFFQVl3WUF6REVBQUV3d2dCRUFDUUNsaXhJQlFnQW5qTEVnWUFCUkFGQUFRZ0FBb0FNQXY0QWNBQUJnQTNlNEhvY0xNQU1OQUF3OEZDcitVQUlFQUdVQ0FKVUFnRWtBVmhTTUY2UHNBQk1BQUVnUXNBZ0FxSUFUQVNvQVV3QUFHTGc4QkFEaUR3QXdBQTY1cHBFQUFBTVdnQVRBR0FCc1FBRUFVTkJFQUFKQURKcWFBQ1FBRkFFNEFCaUVIb0NwZ0JlRVRZQUV3QXdBd1FVYmhBREFFSUFCd0F3QUhJQUR3Q0JqQUl3QUEvV1ZEb0FGd0lBK1RIVUNnSHVvQndDeEFoWUFGUUVzQU53cEVnQUFERUJCTUNBY3luVGJBTjcxQUlBUktBWUFNa3cvUVFJT0FCRUpBQWJ4QUlBa0VRS2dDRHVBRmdFTUFNZU5GNENaZ2hhRXc1QWFpQmNCTWdBdGdJZUE3cEFabVFIQVFCMnJnQVRBSUVBQWdVQUNDQUFwQUFTQUVBQ0NBQUFFZ3FDSUFBcWdnZ0FCSUJFQUVRQnlneGdCQ2dBVmdldVR1cFZnZzNHQUdRRXdBRUVUQUdBVWdFZUE0UUNZREMrQUZBQWdISUNzQm1BNkFDdUFUSUI4Z2F5Qmk0Y3lnc1NIeG9JemdIZUFnWUZ1aFJvQmNBQnVFd0JndUg4VHhGKzFEUUF3MlA2MjM4Y0NHTjArZkRCQVd1dytCQURTQUlCait3ZGJnQVRBcUFGSXRReEo4eHR6Q1FZZk5OY2JBQ1FBQXdCd0JHQUtXQUErZ0FIQUhBT3NnQWJBQmtBVTRFa0JDQVVZd0F3QTB3NEExUDE5L2dCS2dBYkFBVmdtUUFDNEFSQk9DZ1VBR3dFNEFOSVNCQU1BUUJNQXdId1F4N2EySmcwQTREVTRBSUJBVUFMQUJ3QVVBQVFFaUZJQUNRZ0F3aERSY3dvQUl3Q0lJQUhDd0FNdGdBT0FIQUY2QVBRQ0lNRy84LzhTRGdDRmwwR0FCNEFhZ0ErQUFzQ0JCQkFBSG9BRGdBSEFBS0FSZ0M2QUJZQXlBQUNnQXdCbGdHRUFDQUV5QUFCQ0JBQWZnQUxBQlFBQVFXRUFBR1FSQUZCYTh3QUEwQUVBQVl2SWdCa0FBQ0lvQUlKQUFJblpZQUNRTWZocllnQUN4UTFpZ09FY1BBQWcvUUJnZ1FBUUNGT0FIUUV3QUhJQlFMd0hoaVFQQUhoV01FOGlzQUV2a0FUQUFLNGY4RmJBQ3dBeUZnRGdaalJtQUFDaUFGUFpZTmdBQUhnR0FCNEJLZ0J5SHdCRUJRRElndUVQWWhBOGdBZkF3QUk3bm1DTkxFT1lnREFRd0FDR2dBTEFJV0FnZ0lFQUNBUWZBU1lBU0FWQkFRQ0FTR0NDUkVHUkJBQUVEQVFJRlFDQUJDZ2dFTlJRUUNFQXdnSTg4TDhQSG9FZ0FSWUE4cWM1RHdnTndTQUNBQUVBQUNBQ0FBU0FBekFRQUNFQldnQUNFNEFDQUJEaWdIR0FFUUFnQVRDQUFzQ0FnQUlBTW9rM0FNZ0EyREJCUkFxRUpnVUFCd0FCSndBQUVUZ1NBTElDblFNRUFBd0lCQ3VBUm95RWlCRUFBQklTZ0NRQUFpQUFJZ0FNeUpZUkFBWUFFd0FBS0JDQVdnRWlBWG9Ba29remdBckFnREFBU0lBamNCaEFDa0FBQWd3RWhBWHdCZ0RWRUFBekFFQUVFQUFCVUlVUkFDVUFsdzhBMkdNNEFRQUNBRUFnS2drQVFSYUFDTUFRQ0FBRUVBQVFRQkFLQ0FBWUFBQUlFNEFId0NFQUlBQUFCQUNBQUFJZ0FBSUFFWUJMRWhCQXh4RUFPQVFCZ0JRa0FBUUFCQVNBQUJBRUNBSWpBU0FBQUlDVkFBQ1JCQ2dBeEVEQUFBRnlFa0pRMEJBUkFBQmdvcEV1Z0ZLQlNvRWtBYllBZ0pOaEV3S0FlUUFDZ0FIQk1MdzBMaWVObkFtR1F3QVEwQUFjZ0FiQUdreFVJSEFIZ0V3V0VBQUNTWUFmZ0FmQUFnRWd3QUEwU0RBaUlrc0hjQnNjZ0FPQUE0QU93QUlJQkFHUUIxRTRQMGVBaEdXeURJQUpxZ0FoRWdIQUFrUUFBUURnZ1NDQUNjQUFVQ0lBQVJBZ1FBZ0FDSUFBQ1VRQUJ3RXpBQUFvb2dBQVFDRUFGZ0RoQVJnQUVZQUN3QWdCQUNBakFBQklEb0FCQUN1QUJNQUFpUUFFQUFLRUdOUUtnRWdBQVVFZ0pBQVNBQkNpQVFBbEFUd0FGQkFBZ2c4QUFGN3pBN2tXQUZJQVlrU2dRQUFJUUlBQUFBUUFCQUFLRzRBSGdPVVRnQWtHRkFBUUFFU25JRkNDTzRBTWdBUEFwSUFBZ2dFQUpnRlFBSEVPSEFDWWpMR0dGTUJnRXdCZ0RZS2dDQUFBQUZVQUJnR1FxQWdNRUVBZ0lBUUFnYUlDQ2doRFFrUWdVREFNRUFRQWRCRTBkS291QkRtT1NMbUFEWUFTQUlFQUVFZ3hBQUFrRUlCaEFBQm9Kd0V3QUVRTmdLa0RBT2hOSndBaEZnQXdNUUFRR0tVQkVDQkFDQVFoT29BQUFtZ1JSQWdNQUJRQkNJSEFVQ0FnaHJBRUFDZ0JHZ0I1clFIQUJoQWJnQWpBZGphTWlEQUFJQUdBbUJBRFFFQVlBQ2tCU0FET2h3WEFJZ1NoQ0JnQ0FBQkVRaklBOEdzQU1SMEFEQUFFQUNHa1JJQUNGRElBQUVBQVNGREJSQUZUQWdBa2dBRy9rUWpBQVJFZ0lFNUFBQUlTZ0F5RVVDSUJCZU9CalowcUFTQUFseFVBVndJY2hRQmdFZzRCdmdBc0FEQ0EwUmZDQkJRQUZ2QUFHd2RNaUlFckFUSUFHb2cyRkFCU2dRZ0RnSmlCSkVBSUFTZUFCTUFrQ1FBaUFoaUFBQTJUQ2NBUkFNQU1EK2dnd1JZSzRKSmdGSUlFd3dBc0FUUUFPSWNEd01QS3hNUU1BQ29BRFF5d0JReVVnb2dpaUJKUWhDZ2hTUVFBQUFIUmdKQ3JRZ0FBUk5ZZ2I0QUR3SlVBUUdBQWpDMEJPQUF4aVFiQUVESElBQUtBS0JNQWdCSUEzb3dqQ0lnNG9ra1lBSDJBQk1BRWdrQUFBQ1FnQUJZUTRLR0lFRXc0aUFNeEl4SUFuWUFUZ0M0QklBRGpDREJwR29hS0FaUVNBSTRMTUpFR0FRRG1GRURFQVFBQWdDV2lZeElFQUM4Qk5nQzFBZ0RBQURjR0FFQVVKSWdqQUFDZ29CRUpBTE9RMWdEazVCaElWaXdTQUFERXBnQWxnQUdBSFlCa0cwQVNvSUFGZ0FBUVpZSXdBVFFBNTQwWERCQU1CbUtnQUVCQUlRQ0FBQUFEeElJa2dGR0lub29Md0J5S0VUV0FMQTRBb1NJWUFBQUFBTUVoSGNCMUc0RHNnekVCSEFEa0JRQW9HR0llRFJVQlV4d0FSSkFDRVFSTGdBUEFZVGdJb0FrQk1nRWNBSkVIRFlDb0pBQlNTQUNRQUVBQ0FBRlFtRkFBQWtBU2dBSEFnQU09XCIsXCJyYW5nZVwiOntcIm1pblwiOlwiXC",
],
"IsXCJtYXhcIjpcIkZGXCJ9fV0ifQ==" => [
"",
],
"vary" => [
"Accept-Encoding",
],
"via" => [
"1.1 vegur",
],
"CF-Cache-Status" => [
"DYNAMIC",
],
"Report-To" => [
"{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=afJelUgPFRe7kA2sBEYLOB9b6vRv1qOqHbuGOeCsKdYsWCo%2BR5%2FH1irm9F47G9Uq5EeZ0ONypPsCRFfMm%2B7Nl5dgQ3zuafnjblABdJv7d96EWwUetWMN4483%2FanpPQ%3D%3D"}],"group":"cf-nel","max_age":604800}",
],
"NEL" => [
"{"success_fraction":0,"report_to":"cf-nel","max_age":604800}",
],
"Server" => [
"cloudflare",
],
"CF-RAY" => [
"68ea7081aba00c01-AMS",
],
"alt-svc" => [
"h3=":443"; ma=86400, h3-29=":443"; ma=86400, h3-28=":443"; ma=86400, h3-27=":443"; ma=86400",
],
]
如您所见,延续令牌 运行 恰好位于 16kb 上。 (16384 个字符)。
我在写这里之前检查了很多东西,但是,我似乎无法弄清楚。我看不到会导致此问题的任何 guzzle 配置。是否有任何我应该更改的默认值?
这是 curl 7.58 中的错误。它已在 7.59 版本中修复。 curl 应该 支持最大 header 大小 CURL_MAX_HTTP_HEADER (100kB)。参见 this issue and this email chain。
在错误修复之前,curl 会在将超过 CURL_MAX_WRITE_SIZE (16kB) 的 header 传递给 header 回调函数 (doc). Guzzle is affected since it uses CURLOPT_HEADERFUNCTION internally (Guzzle source, PHP docs) 之前意外地将其切碎。
解决方案是升级系统的 curl 安装,这可能并不简单。
我在 php7.4.
的 ubuntu 机器上安装了 curl 7.58 和 guzzle 7.3(源代码:7008573)当我 运行 一个请求
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'http://mockbin.org/bin/e61ded3e-d2e1-4071-8c27-9c35f1d7cb72?foo=bar&foo=baz',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HEADER => true,
));
$response = curl_exec($curl);
// Then, after your curl_exec call:
$header_size = curl_getinfo($curl, CURLINFO_HEADER_SIZE);
$header = substr($response, 0, $header_size);
$body = substr($response, $header_size);
curl_close($curl);
echo $header;
我可以看到整个延续令牌都在那里。而当我 运行 使用 guzzle 时,你可以看到我得到了什么:
>>> $client = new GuzzleHttp\Client();
=> GuzzleHttp\Client {#4501}
>>> $res = $client->head('http://mockbin.org/bin/e61ded3e-d2e1-4071-8c27-9c35f1d7cb72?foo=bar&foo=baz');
=> GuzzleHttp\Psr7\Response {#4524}
>>> $res->getHeaders();
=> [
"Date" => [
"Tue, 14 Sep 2021 14:52:30 GMT",
],
"Content-Type" => [
"text/html; charset=utf-8",
],
"Connection" => [
"keep-alive",
],
"continuation" => [
"eyJUb3RhbENvdW50IjpudWxsLCJUb2tlbiI6Ilt7XCJ0b2tlblwiOlwiK1JJRDp+enpaakFMZlpzOXBYNHdFQUFBQUFBQT09I1JUOjEjVFJDOjEwMCNJU1Y6MiNJRU86NjU1NTEjUUNGOjQjRlBQOkFnSUhBTklCQndBYUFGVWpnR0FoWUFBQ0YwZ01BSUVPUkFJS2lnS0FjZ0lBUWdFQUNBQVFBUEVPQUF1UkVRREFVUXBpQVpxRjhZUUpBQmdBQm9IN2phcURQNGRKaFNTQTZvRFdnTldJVllXS2hkK0lDZ0FNQURhbXVZUDVqVUNCT1lVYWdBc0FFZ0RaaXpDQTlJQkFnbW1CRFlGYmdneU5iWThNQUJBQU9wQmNoT1NCVUlNRGcwMkFBSUFPZ0EwQUlnRDBoQ3FBNzRjR2dCSUFBSmdBQWt1QUlvSWdnemVGbVlSUkJRQUo0SWRVaFlXQ0R3QUVBTUdLdTZVUUFBSUFpNFVTQUFRQTVvQkVoeE1BQWdEQ2hoUUFCQUNNakVPRkZRQUdBRk9zaUl1NmdoWUFBZ0RjaWhjQUJnREpoQ0dYMVpvWkFBSUFFWklhQUF3QXphQ2tpWWlQUVlBM2dNaUFHd0FPQUZLRUFJQ0JDZ1VBeElDcm1mT0dIQUFDQUl1SkhRQUtBSjJMS29UN2dIK2pBb0FlQUFZQXJac0ZnRWlJSHdBQ0FBMnNJQUFDQUJTa0lRQVdBRWFMNGFJaGdTR0Jlb05aZ2lhQkpvRlRnaUtCZm9NaUFCd0FHNEZVZ3FtQ3NvWWhnYVNFZm9NcmdZYURKWUgvalplS2c0UGZnaU1BQWdEeWdpUUFBZ0RDaUNVQUJBRFJtRG1NSmdBRUFJMmgzbzBuQUFnQVlRZGdBSkNNLzVjb0FBb0FJSWg3aVlxT0I0QlRtU2tBQ0FEZWdpU21Lb0JEalNvQURnRHRrYWlDN1lmSmhmbUF0bzZmaGlzQUFnQXNwU3dBQmdDWmljU1d4Wk10QUFnQVdvaUJrL3FhZG9VdUFBWUFQS2hoaHIyUUx3QU9BSUVKSkFCeWlPdUZGSUNGaVJ5WU1BQUVBR21ud3BVeEFBZ0F3SklibUFtR09vY3lBQUlBMkpjekFBb0FBNlpTZ1ZFQUFFaVlsRFFBQWdDbWxUVUFEQUMraDEyb2Nvb2lnVkdDSVlFMkFCQUFmNEJlZ2pHQlVJSjdoc0NHR2FxcWdEY0FFZ0IyajBhR0FjQUlBYWlQUUpDS2gxaUFQb0E0QUJJQS9ZV0JpQmVCa3BIamdHU0dxWWJNamdHQU9RQUlBR0NGKzRlNGdCK0dPZ0FNQUZpVEc0Z3JnRHVBd1puWGdEc0FCQUJYZ3N1dFBBQUVBRk9WVjZvK0FBZ0FtNXlSQUJBQ1BKVS9BQWdBS0lNRm5TRVVSQUJBQUE0QXQ0VG1obWFBQ3AxWWdJNk5TSVZCQUJnQS9wZ0tnQTZBZzRFL2dBeUEwWU51Z1hXR0hZRG9qbkdIUWdBU0FEK0Jnb0J6aDJlSFo0RkhoL2FWL29kSWlFTUFJQUJSbTBlQ0pvRWhnUitCVzRLdWhJaUJINEYzaFUrQ0tvR09oSm1BSElBRmdFUUFHQUM3Z2FXQVpJZkpoVkdBZFllbWdRV0Fqbzc5Z1c2T3E0ZEZBQTRBWW9IWWpqaUNHbzdIZ0l5Q3k0aEdBQTRBR0luNGdDbUpKYUZ3Z1RLQSs0WkhBQXdBZ0lNcmdCaUJGb2FWaUlLQ1NBQTJBSTJCTllBRWdJZUFKb0NhZ0JpQUNJQlJnQnlBSUlBQndBQ0JrWUVDd0FnUUNBRFBpQU9Bc1FjQVNDbUdUWUhaaHBHSmtJRGhqa2tBRUFERGpDRU5FQUVSQjRnQVNJaUJnWDJJU2dBUUFNS0NQb0N2aUVxUkFSR0JBSEtBOVkxTEFCb0FBNUlaaVFHQU00REZpZFNCWDRob2dDaUEwNEFMZ1BFSzhBQk1BQkFBZ1EzQUM3T0hvUWNoQU9FUUlBWDVoMDBBRkFCUkRBQTQwUWlBREkyUEFjQmdBS0dFWVlzK2hVNEFEZ0JSQ2RBQU1RbzBBS2lSTVFwQUFrOEFFQUFSQWdBaTBSRUFVT0VhREFDeENJQUVVQUFNQUh5QWNRb0FwQUVUT0NqOGpsRUFIZ0RoQjNnQmdRcFFBYUVJQU5xTGpRUEFDQkFBSUFCQXI0UWVoUUNBM0lwU0FCZ0FjUWhRQVdFTDBDUHhDWUFnc2dvQVlBOEFVaEVBd0FrQVV3QUtBTVdCMFIwQUZSbUdzcE5VQUJBQUVRTUFWUEVMOGdTdmxRSEFCUUI1aWxVQUVBQXhCQUNRMzRpUGtRR0E0UWtEQU9XUVZnQUdBRmVlUVJFQUdGY0FGQUFzakFIQURnQUZrQkVESUJRQkRRQVZzUXZRZGxnQUhBQ3lDakpFSUFDaUNJZ0FBUUJSRTBBRUF4RmdvQUVBdUFOUGh3S0FXUUFVQUhHRWlZemhBaVFBckpMeEFuZ0FHWlR4QVFNSVdnQU1BTlNHbm9zS2dJT1dFUkJBQWxzQUhBRFNDZ0R3REFBMmlnSEFCUURZaGRJREFNQUJBTk9Kb2hFQUpBRUFYQUFTQUZFREF3Q1RpdUVSWGdBeEVnQVU0UWdBY0YwQUZBQ0JDd0FONFFiQUFVcUllWTh4Q2dCSVlRcUFCMTRBRUFDQkNnQWhjWW1RajdHS0Q0QUJ3QU1BWHdBU0FHRURBQ0doQ2hnQTVZZ0VpWklWQUtBRkFHQUFGQUFTQ0FEQUFRQkNpRUVJd0FEYmtnQ0FnUWczQUdFQUNBQnRpSklrQU1BaEFHSUFGQUN4QUFCZ2ZZa0J3REFBVjRuS2gySVRnSUFFQUdNQUZnQWlBVUlBSVFBQ0VhRGpFUURSaUFPQU1oa0FxZ0VBWkFBRUFNRUpRQkpsQUNJQXd3TUFjTzBDQVFDaENBQmdQNUVCd0JFQmtRa0pBUDZIb1FjWUFDRUlBSUV0Z0dZQUZBQlJFUUVNYnBFQndBa0FvUWlBQlk2SkFjQ2ZBR2NBRUFDaUI0Q0VBUUFSSDVBS3pwRUJ3Qm9BYUFBU0FMQ0JVaElBaUFnQWVKWUpnQUNBTVJRQWpHa0FEQUF4Q2dCSTE0d3BsSUVLZ0NKcUFBNEFzZ3lBSVQ0QTlJb3hrY0dDQklGckFCNEE0Z2NBRWc0QVFRdktBNkdMQXNBQXdCQUFLNFFTQlFDZ0F3QlJGVUFCYkFBTUFJT0VBaGNBd0JnQXdTSW9BRzBBRmdBaEFBMEFrZzhBSXBjQVVSWVlDRCtRYklRQndBYUFiZ0FNQUtJREFDSUlBR0lXSUFJQ0FHOEFBZ0I5c1hBQUFnQ2prSEVBQWdENnMzSUFBZ0NUdVhNQUNnRE1pOXFSWWdnQkFnSUFkQUFJQVBTSWNSQkVBR1dQZFFBQ0FFdVJkZ0FHQUFtNEk0QjloM2NBQWdCcXEzZ0FDQUErblJXQkFvQVVqSGtBQkFBOXFpK0FlZ0FDQUpLS2V3QUlBQkNMRDRDYWdDaWVmQUFJQUpFSEFDRUJOeUJBZlFBRUFKaVg2cU4rQUFZQUVTeEFBVDJBZndBRUFJRWFEQUNBQUFRQUVTQUJCSUVBQWdBMmc0TUFCQUQ3bkRHQWhBQUtBT0VKd0FBNGdFRWtBYUNHQUFnQUFvMXdnQlNBUXErSEFBUUFEYWtuZ0lnQUFnQXlzWW9BQ0FCUWd3cUFBY0NBQW9zQUNBQkRDUUJRWUFBR0lJd0FDQURoSFFBaUtvQVhnSTRBQWdBd3JZOEFGZ0Q3a1ZPQ0lJRkpnaWFCZm9PQmczYURVNEpPZ2xxQ2tBQUNBQVdsa2dBRUFKbUhBb0NUQUFJQUxMV1VBQUlBRjZpV0FBSUFkSUNYQUJBQUtJbEJBQ2dBVUlvanBRaUFDSUFBZ0prQUJBQXNuVVNBbWdBS0FMT290SVdQaVlPRFVvS2JBQVFBQklYamdad0FCQURzandDQW5RQUlBUFdLN2JKSmdIbUFuZ0FFQUJLQVRvS2ZBQkFBWG9jUkFFQUlNUklBRkRFUWdFQXNnS0FBQWdCV21LRUFBZ0NSamFJQUZBQXZraXlCS0lFcWdWbUMyNFZVZ2xPQ2dJTTFncVFBQWdCa21xVUFBZ0RFbUtZQUFnRENvcW9BQkFDM2pLV25yUUFDQUlTY3NnQUNBSGlKdGdBQ0FOZTZ0d0FDQURTSHVBQUdBQ0VHRUFnUm43a0FBZ0NodmIwQUJBQ1VraWVqdmdBR0FQSXFzT1grQUw4QUhBREFrQnVEeUlyMEFRQWtZeGllTERJQUE0V2tCQURURi96ZnFRNEF3QUFjQUpJUEFDeG1BQnlHd2dMSTkxNFY0UXR3Q0dXRnN3K0FWTEQzcXdQQkFESUFZZ1VBYVBvSGk0UkJCWTIvQ29SdmhRUEFCMXZpaXc4QVFRQkFDMElOQUdyQUdESUxBTkRWQnRLQnhvWVloQTJBRklEQ0FEQUFCcEZialp1SXFvY0RCU0JPMG9FQkFKTUFBQ2lBVGdJQVZnQVJCRUFDRUlpU1RBUkNDQUIraVFQQUJxS2dTZ0VBd3dCR0FJQ0lBOEFBQlVLbEdBSVhnS01KQURoa3dnSUV4WVBDQnhDUUZ3QXpBQUNLUmpxZ0JJWUxBS0FRQUVKQUFnUWdBQVFBWDRvRndBaGxSUlFCRVltZ1FBQTRnQUhBTkFERUFESUFBd2ZLREZ1ZzBnRURBU0JDbEFnREFDRVdBQmJpQVFCQmdRQXVnRk1BZ0tnQXFCQUFNaDRnU2hFQU13QUFHbDhBa0FERkFHb0FBZ3NBU3UwQlFnQmcrdFlKTVFxWUQ1RUJRQ0FSQUFCUUZnMGlGQUVGRUNBZ0lRQVFBQ0FaQUFCQ0lWQUFCUUVDRklBQUFnRUJnQVNCQVBTU3JvTUdnQUNBZ3dBSVFJRUFBUUJqZ0FXQUVvQUx3RUFnS0FSQUhNQUNBRUlVcWdRQ1VSQ1FTQXkyQVFBNmdNWUFHQURRb2F5RHdnSUFVTFVBcGcwVTFJSUFnNWdZUUNFU3hNYkhBRm9BNUFFZ1JJU3BnSWtBSWorUENJQURnQTZBQUlBaUFBUUlCQUFqQUFBaEFCQUFTQldBQWNCQUNIU0dUWVFDd0FRRVFBQXhBQW9DSWdBQURCQUNGb0RjaCtHRUw0SUZ3TURQa0VOWUVHdEFTWUYwREFCZ1RFbkNaUTBBeUFBNEFKMlVBOEJDQkFpQUJMQzFDNFFFdE1JV1FKU3JBUUIwZ0FTQXU0V3ppaGVBS3doQnp5QUFJRkVtM1pnR0FGaE1RaXpBS2dkUWtBa0F5UUFrQUdJRVVBRUFCTUlMb1FReEFES05zWTZ6RGVCcG1kdWpCZlVBSUFnQWxDQ1NSQVFKQU1vQVFnQVJGUUEwTG9BRndBb0FBQUFna29GQUp3QUVnYlFBUUFTQUlBaEVnUUFxazd1QWtnd0FoSXdzMDRJTHdFZ0FJb0FRQ0FFSUFBSWdBQWdBRWlBSUlBZ0FCQURMQUQ0QTE0UnVtZ0xBa2JpRUdtZUJCY0FCSUFBSUFJQWdJSUNBRllBZWdaMk1JZ0FBa0FBRUVRQUZBRHlJSmdJRVVBU1lFQUlDRUFBSUFVWWhBQ01BRm9ETUFGQUFkWVFSQllBUUVJRFRJUUNFSTVOQUFmMkJGUUNFZ0lhSUNDSUNBUWdBUG9BNUFBRXBCQUFDSWdpQ0FnQUlBQ0VSQ0FRQ0FNb0xDQUVDQWhBUUFFQUNRQUFFQkFBUUVBQUJDQUFSQUNBQ1JvSE5BRHdBbEFZWUFnSklGQW9CQUIrQUJNQWdDQ0lCQUJEQUFJZUZZaDFBTTVnQzJZQUJ3SWdBcW9GQWhoSUNBR0FCQUhXQkdJQUV3QUJFSUVDTTZTTUF6Z0ErQU4yQUFZQ2ZnQWJBRXlQOEpBc1hDTXNxNGcwQUZnMkJFRkkwUkFnS29BQUNRQUNTQ2dCSVV3eittZ25BUUFrQ29PQTJJa0NZZ0dLNHRDRVlJb0JnendCR0FCeURCOENvV1FHQUFBRUFBQlFRS0FnQ0FISU9JVFNBd09NQUVoQ2lrR2tNVjU0eWdBYkFRRkFBQkFBb0NBUURJRUFBTG9BQ2dBV0E0Z29BVEFBUWN3RkFFb1FnRUFEUUFEQUFzWWtGd0VBaEZDQ1FwUUFKQUFqUGl3TEFXclNZQmdNYVVBQ0tRRElBYVk0Q3dBSUJBQkFRZ0FIQVJnQWhBQUJDMFFBaUFHU3JHb1FKd0hDTGFVVVRKRkpLWWdBRERnRUFIczQ0TVVpRE9Jc0N3QmdCQlFEU0FFd0FycG5LaXdiQVFrQUFBQWdDQ0FBQkFBUUFrd2lneGN5Y0RBQWpBSkFBQzVWREFNRUtVSkRYZ0R5QUFjQUFJaUVBRkFDc2dCeUFCNEFlZ01TQUFZQUJnQVhBQWdFQUVnZ0FBQUdBQU5NQUhnQVlEOElpQUVBZ1VqSUFUQU1HQUNCQUlCUVJBQUFSd2c4QXdNQUJNcHZVQUVvQTRSWklBQmlBeDRBQndCRUF3b0JQaHduQWdZMEVDNnlqQzRBMUFBSGtJQlVXb0FBUXY0UVJnQTJBRVFBU0VES0dJSUZOZ2l5REI4REFFQUVBQUFJQkFCQ0FRRUFRQUFxQlVvblZBRzRBRkFoQUtBUUFBQ01JQUYrQUNvQVJnQVBBSUVaeWdDQUFHSUNtaE1RR0VjQUVLQUxnWUFBbGdRMkczNFlDd0IyQUhRQk5nOVdGSW9HVmdCMkFBc0JFQUFBZ0xJQU9nQkdBQzRBQ2dTR0JINEZjZ2hJQkFJZ0VBRDZBRFlCQ2dBMkFNZ0FRRUFFQUtZQUFnQmVCcElUV0FFNEFub0lzZ1FXQUhvRXhnUjZCWDRLTmcweUFBSUFSQUFBd3JZQ3JoRlNDV29KREFRQlFEUUVCQUxNRkFGQ1NFQUFnTVFBTUFHQ0tNd0FBREFBWVJZcXlBTUFFRHdCN2lsTURBSW5ZQkp3QTF3QTJBTmlCQk1BUlFBNGhTRkFJQkNFQUtTYlNpSXlDQjhCaUNpQmlnRWdBMmlCWUJBQ0NDdUVBUndzZGpBTEFvQkFCQUZJajkzVUNBTmdBT2dBeEJnSUJSd0JBUWdLRTFBQ0FJRUNuSkFDb1kvUUl3QXN3SWNTd1FZQ2lGY0JBU0FnVmdHdUlKQUFBaUJTNFV2b0NCUFNDUVlreEJJQUMyUUFvQUdjY2dCQ0dFTUFyTE1IZ2dvNUNJZ2lVQUFCQ0VJU2xDZ1lBZm9mVkJUSWlCZ0FLRkEyVlpnRGFBRElBODRWRUFRQlFBa3Rkd0NCQVA0QUV3RTRra2ljR0JBSUFCUnhBZ0JEaFFBaFFGS0FHRWdEa1FCSUVrdzBBZ2dBQjFBamJBREFBWWcwQWtBd0Fad0lBT2lBZ2xvVWlVWUpBV3NJZ0FCT0FaUThBWUpBQ0pBT2tzQWhFNVJvQWtFRkxUQVdJYWthTTNBQUtBQklPaGFpSkFJS0tZSkhkQUJRQWpZeVNFRWl4RndBVkFFQmlpU0tXYnhZU0VRRGVBQ1FBeUFSZTE5ZmEzdWRjMVBJRVAzaHRHZ0lBNHdvZ2hVdjFBUUNFRFFqNTJnUmlwcXNBM3dCWUFBSUQvQ0Mwb0dJQUJYaEprbTZBQXNBQ21mMENnZ3VBRVYrN3lZOEJ3QklBa1JwUUFCaUFBWUFKd0FHQUFBQUFEQUZBQUFRSUJBQUFoQUFBQkJHQUxvQUN3QkFDQUlBZWdBbUFCc0FFRUVRQUFBQUlnQkFBQVFEZ0FEUUFENVVQZ0E3QUFBV2hJQWdRVTZGQU1rQ0pBZ0lBUUFnQUFBZ0FnQUJBZ0VCQUlJUVFnQ0FFQUFBRUdpQWpFa2d6RlFBUUFPRUFQZ0Rkamc2QUlRQUlZQjZBT2dBQVFRQ0FBQUlCU0lCQkVvRUlNcUNCS3hpQUFsUU1RZ0pBa0VJQUVBQWhEQUJGVWdCWVFBRUFkQTBBa0dFc295Q0NnT0lBVGdERUF5U2dHR1RRUWdJQXJZc0N3QXFhUlFTcGl6T0FQNEF4Z0FMQUFnd0JBQ3lBQXNBQUpBZ0FSWWF5QWlBbFJRQ3pDZ0NvQUFJREJCYUFBY0FBYXhJSW1ZTlFBQTZHQWNDV25pZUFIWURqQUVZQU1RYUFBZUVFQUg5U2hmMkRBY0N3QzhFREFHQkRBQUJRS1Q0MkVpK0FBY0FNQktFRGRnSWhDb0FTUElBQndBVUFJZzRBSEF3QU5nQUFTQVdBQUVBRUFBQUJBQVI1Z2VRQWFnQ1RBV0FBQUNRRUFESURBSU1GQUlRTUFNdzJBQUJaQkFBUkFBWUFrd0lBT0ZKMkFRQXlBQUJVQWdyV2dVSUJBSGFEWFBFQzVBUC9oQUxBd0ZBNkJFQ1FDb0FCZ0dJQ0FHSUNBREVBQUFOQkEvUUJrUUJTQVJHQXI0TGFnQVBBQUlqQnFKZ3BJZ0JBQWhBRjVRQmtBQkNBQXNDNkFKSUFDb2lUQndDUUVFQlVBQ01BRUNVRlVnQUVjd1FvYUZMS0VRQmlBQUJJQWdBakJCcUFaVWcrRVZNRkNKZ1JDUkFIa3c4QVRFVUpBZ0FpQUNJSUJCQVRBQUNVQ2lFSUFCRUFBRlVpQkFSd0NBQVRCYVlERUFMTkFPRUZJd1RtQUU0QWxBUUE0QUlnM0lRQlFnY0ZDQXdJQUFFZ0FBUVFBQk5JQVF4VENTU1JJQkVFQUhJRkFPQVpQd1FFQUpRS0loSlJvQUNTQlJEQkNnaGxCZ0dBQURFc1FCaXN5RkNSQmdBbUNJUUtnUEtBNXdCSUFDSUhBTUJBQUZJQUFDUUtBQ3FBQXNCcEVFUUFaZ1lFRFFZQUFFQkJBcEFrQWdBQ0JrQVpDUUF4QUFBR0lnWUFvT2tBSm80SWdBWEFRQ0FBQUFRQ0NJQUVBbklCb05JRUl1Z0FSZ0FqQ1VnSlRLQUdBREVORFFBMGdBTEFDRUFnQUcyRUFJRFRBQWdnQUlBZ0FCeUFDb0hHaFF5QWdJSktqWllDQUNJU0FBSUFBRUJVQXdRUlpJQUpnVitEUElJY2dUMkI2UURrQU1pQVFvS3RnUUhBb0RZeEFBQkNXb0lXZ2dIQVNBQWNnQU9CTG9MVEFZRUlBQVFGSUNlQUJJQUxnQVNBMjRJQ3dJZ0lDQUFhZ0pPQUVZQU9nQWVBQklBRWdBR0FNNEFrZ0JHQVdJQWpBSUlBQ0FnUUFDSUFCQWdDQUN5QUNJQUl3Q0FnZ0NBQkFBSUFBZ0tnQUFFUUFnaGlnQklBQklFQUVEeUFCNEFEd0FpQUFFQVFDQnVBU0lrRmdNVUFBSUpBQ1VCQUpDZ2lBQ2dBQUJGeUVFR1FXWkFBQVlPZ1NRSFpBaE1BQUtnREFBSUFCQUVBTUNtQkZBQUFJRXlJQXNBN0RPUUdIb0FDZ09JSEFnSTNBSllIWUNqa0tneVFLa3VDVlFFQUc0QU9nQUxBb0JCRkFPb0FVZ0RHQXdDb0JoUUpCUUVKQWhBQkFES0FINGNDd0FQVURBQnNpUUxBQ1luQUFXK1NGb0JUZ0FDQUM0QUJ3QUJJY1FjQU1IcUlGQUJFRUlSeEFFQWhnQkVBQ1FCSGdBWEFVQUJJSUZBZ0NBQUFRRVNBNndCU0FJVURBS0JaSUFvcW9CRmtNNU1KQUJTa1FtSUFMNGtFd0FpQ0pNSUFBQmtBS29IbEJva0VJZ0VCQUFBSUFDZ29ob1NBMVFDZ0tBVUlRSkZDSVVFQTRnOEFncUEvUG9BVkFKU0FOTlNSSVFnc0JDRHNBR1FBUFlMUkIwQWlHNEFJd0NCUVFpb0lBZ0FBRVNDSVFpS0JFb0FEQndCQ2daQWtVZkdDc1FZS0FGcUFCTUFtQVlFRUFnR0FBQ0lBaWdCQUFLSUd3ak1VQUlZSUFnSUJoTUVRUXdnSkFDd0V1SVlDd0VqRUZBTXhBQUNvMUFnQVZGQWcyWEVCQU8wQUtnRENCUkFFQUlMM2dDdUFBSUFOZ0FxQUFjQUFFY0tBNnBDQWdjT0FKb0JSZ0ppR0dZTlhoRGFBVElUdUFDZ0FacTh4QUFESWd3QWhBU0FJQ1FDdmdoWUdFRlJXT0JnUkFrQTJSQUVBTkFBVUtDSkpGUUFBQXU4QWZnQmpnd1BBQUJJaE5FMEk5SU9yaHNtQ0V3QWhDQ0lDRUFEb2h3TEFSQWdJSUNlQUVRQUFnakNBSllBQ3dJQUlBRUFoQUFEQUZJQ1NrZ3ZBUlBFTUFRTUlpZ3NOQVFBQWdDSUNRQ0FBQ0JBQUFSS0FQNEE1Z0FTQVM0QUVnR1VBQkFFRUJBQUVBQUVRQU4yQUlvRGJoaTJBQmNBU2tKR2d3aUFFS2dZQXU0UHdBSkFBaUlKUGlYUUJRQUlRZ0FRaEV3QVJBQWdCcTRwWmdBYUFEWUFYQUFJSWdBQUNBQUFCZ0FBQUFnQ0FNWUFJZ0FXQUVnQWdFQUFTUlJFQXlBUkFBSUdBQUFBQ0w0QVRBSUdBQUlFUUFCYUNHWUFJd0FNUUNJQVFBSUVnQkFvQWdBZ0FFQkcwQVpRSUFrQUNnQUVBUDRBTGdBR0FQNEFCd0VFQVI0b2hnaGtBQUFwUWt5Z0FnS0tJU0FnZzZnZ0RBUVlBOFFCT0FNZVpVSUFEd0VBeExCQUtBSUlHSUNweUFaeURjSVJLZ0FPQUd3QUFPQUVEQUFzSzhRQVEwR2pFeEFpTW9pN3F6Z01BTXdFSUFZZ0VCZ0N6QndGRkVRS2dRQlFBQUcvR29BQUVCZ0F3Z3ZJQWhnREZCWklBQVpLQVNBQkpnQUNaQUFBREVNTUZBQ0FRQUlNR0FoZ0FvQUNBQUpLRDFRVUFoc0FJTUFFWkFEQXdFZ0JBQVFJWXFBY0lZQVFCZ0VnUlJFQVlBQkFBQ2dnQTU0bW1BQUNCRUFRQUVJQUFBQ0FFQURPS0FzQ0lBQWdBVFlBRXdJQUNBQ1FNQURBQUlnQmdBQVlBUVFBQWhDRUFDUUFVaVJ5QUJNQWdnSmdnQW9nQ0FQTUFlQUJ5QWdpUlFDRG5peHFBRG9BRHdFQUNnQUFBSUMrQUE4QmlBZ0FBQ0JIRGhZeUJBY0NRa1NhQUFZQmhnT3lBWFlBc2dGbUFmSVVDd0FrQkZDQWJnQUhBUkFBdWdBSEFnQkROaVVhQ1hZQWVnU0tBWDRBQmdPTURBZ2FJUkVRVUVJQVBndm9GQU1vWkxBRUJEQUFHQVFBRmhvQ0FCWUtGQXdEMEFDUUFYNEVsQVFEQWpGQUFKREt3QkFDa0JoQU5CUUFBWUFFQUlnQUFZR1lFSG9BQndNd0FCd0ZNQU1FYklBUVRBS0daTVFBQUFaTUVBZ1FCQUFBTUVnQU1BQVFBSm9EQ0J0VGtrSUlqZ0FQQUFRZ0FDQUNBOWdnM0JNQ0FBTUZJQXdCZ1FBRVlDQUJnUUdMa0FBQUdBQ2FSaHMwUkFBWUlBVlFBcFlFWWdCTUFEQUFBR0FBR053QWtCQU14RUpBSUFJWUJNQUFFQUNhQzhRc0pBS0VBQUNJZmdBVEFoTUlEUUZKZEJ3QmlCZ0FZbTVhMEI4aWd0K0krVndNQUVnZ0F3ejB2c2dnZzhjSXBnZ3NBNEg4QUNRRU9BT3VNRWdBRW5XWTdYNEg1Z2FXVkNnRmtBSHVBbEFBQWZHemIvM2QvQzdxSGU0QWhBeUFFM29xM0N3QmdLWHZ4QUFDUVlFQTRRU0FBRFlFS3dJQmdGQ2ZsR0NmeGhVaXpWS2lSSlFRcEJ3SUFkSUFCZ0FIQU1BRXFnQXFBQk1BUVFBQUFHQUJZSEUyR0FjQTRBTklEQUlKSUFPRUhBQ1FMQVVBQVZJa013R0RQWHNJUHZ2OTk5ai9PVDFJczRQL2pSQVVIQU44TEFDMkowUkpBRm82R0FjRG5YZWlBMGdRQThEY0Ftb0ZpQmdEQUY2WnpCTUFCWEVmNEFRd0JXZ0RUQXY3Mkw5d0JBREVBREFBaEFBNEFRWVF5Qk1EWHpBd2tGd0RBbkFaaUhFQUFGZ1l3Zk1lMmRFZ0NEdVlTU1FZbUNFR2k3Z1RBbjJzNkRwd05BQmNJQUVROUJsQTBqMnpIOEhmQUVBREZCQURBSHZtLzN2bi9Ed0FOQVRnQUJRckFlbnJyNC96b2YwYTlnd1JBaFVXQUJ3RDloRlFHTWhCYUFBUmdFZ0FqQmdnSUFBS0FBTElBZ0loRUFHUU01dmJ0QVBUOUJ3QU9BV1lBa2dnRWdPUUlzb1N3aGxpQVlRY2NDUk1Ba2dIOCswY3JvUUFBeU9RTmpKQUFDUWdBQUJBVmdCK0FCNEFMd0VFSUFnaUFBT1FBRUJnQkFDSUJnQUFBb0VBSVJZUktnQzZCVVFDQUFrS0FkQUFnS0hVRkFFalNBaUVGR2dJU0FDWjFIQUM5aUNxQUR3RkdBSm9GSUExWDJYdmRJM3Q3NlRob3lVdy9BQVFBQUFqaUFBRGdDQUFlZ0FLQUJJQWhBT1FBY3dZZ2w2bkdBUUFxalNNQXdNOWZmMjhBQVFrQUdGSUo5RnNBQXJTSGZZQVFBU3dBTjRJa2dMRUJnSmtYQUFEQXJMSjN6N1hTOWc3Z0lETUFWSkF1aGdTQW40QmtnOGViVW9KbmdNRUFBS0FSQVZnQUFRRUFZRUlEWUhpMEt2eUJyb0hDQVFDa3B3UzloN3NHQU5Bb0VRQWlhZUtpTUNHb0FOMTdLeEViMjZBRUFDUUFXQUVCQUFFd3pBRWtnQWJBWXdxZzl6UnZJRnBGSUFFQVl3WUF6REVBQUV3d2dCRUFDUUNsaXhJQlFnQW5qTEVnWUFCUkFGQUFRZ0FBb0FNQXY0QWNBQUJnQTNlNEhvY0xNQU1OQUF3OEZDcitVQUlFQUdVQ0FKVUFnRWtBVmhTTUY2UHNBQk1BQUVnUXNBZ0FxSUFUQVNvQVV3QUFHTGc4QkFEaUR3QXdBQTY1cHBFQUFBTVdnQVRBR0FCc1FBRUFVTkJFQUFKQURKcWFBQ1FBRkFFNEFCaUVIb0NwZ0JlRVRZQUV3QXdBd1FVYmhBREFFSUFCd0F3QUhJQUR3Q0JqQUl3QUEvV1ZEb0FGd0lBK1RIVUNnSHVvQndDeEFoWUFGUUVzQU53cEVnQUFERUJCTUNBY3luVGJBTjcxQUlBUktBWUFNa3cvUVFJT0FCRUpBQWJ4QUlBa0VRS2dDRHVBRmdFTUFNZU5GNENaZ2hhRXc1QWFpQmNCTWdBdGdJZUE3cEFabVFIQVFCMnJnQVRBSUVBQWdVQUNDQUFwQUFTQUVBQ0NBQUFFZ3FDSUFBcWdnZ0FCSUJFQUVRQnlneGdCQ2dBVmdldVR1cFZnZzNHQUdRRXdBRUVUQUdBVWdFZUE0UUNZREMrQUZBQWdISUNzQm1BNkFDdUFUSUI4Z2F5Qmk0Y3lnc1NIeG9JemdIZUFnWUZ1aFJvQmNBQnVFd0JndUg4VHhGKzFEUUF3MlA2MjM4Y0NHTjArZkRCQVd1dytCQURTQUlCait3ZGJnQVRBcUFGSXRReEo4eHR6Q1FZZk5OY2JBQ1FBQXdCd0JHQUtXQUErZ0FIQUhBT3NnQWJBQmtBVTRFa0JDQVVZd0F3QTB3NEExUDE5L2dCS2dBYkFBVmdtUUFDNEFSQk9DZ1VBR3dFNEFOSVNCQU1BUUJNQXdId1F4N2EySmcwQTREVTRBSUJBVUFMQUJ3QVVBQVFFaUZJQUNRZ0F3aERSY3dvQUl3Q0lJQUhDd0FNdGdBT0FIQUY2QVBRQ0lNRy84LzhTRGdDRmwwR0FCNEFhZ0ErQUFzQ0JCQkFBSG9BRGdBSEFBS0FSZ0M2QUJZQXlBQUNnQXdCbGdHRUFDQUV5QUFCQ0JBQWZnQUxBQlFBQVFXRUFBR1FSQUZCYTh3QUEwQUVBQVl2SWdCa0FBQ0lvQUlKQUFJblpZQUNRTWZocllnQUN4UTFpZ09FY1BBQWcvUUJnZ1FBUUNGT0FIUUV3QUhJQlFMd0hoaVFQQUhoV01FOGlzQUV2a0FUQUFLNGY4RmJBQ3dBeUZnRGdaalJtQUFDaUFGUFpZTmdBQUhnR0FCNEJLZ0J5SHdCRUJRRElndUVQWWhBOGdBZkF3QUk3bm1DTkxFT1lnREFRd0FDR2dBTEFJV0FnZ0lFQUNBUWZBU1lBU0FWQkFRQ0FTR0NDUkVHUkJBQUVEQVFJRlFDQUJDZ2dFTlJRUUNFQXdnSTg4TDhQSG9FZ0FSWUE4cWM1RHdnTndTQUNBQUVBQUNBQ0FBU0FBekFRQUNFQldnQUNFNEFDQUJEaWdIR0FFUUFnQVRDQUFzQ0FnQUlBTW9rM0FNZ0EyREJCUkFxRUpnVUFCd0FCSndBQUVUZ1NBTElDblFNRUFBd0lCQ3VBUm95RWlCRUFBQklTZ0NRQUFpQUFJZ0FNeUpZUkFBWUFFd0FBS0JDQVdnRWlBWG9Ba29remdBckFnREFBU0lBamNCaEFDa0FBQWd3RWhBWHdCZ0RWRUFBekFFQUVFQUFCVUlVUkFDVUFsdzhBMkdNNEFRQUNBRUFnS2drQVFSYUFDTUFRQ0FBRUVBQVFRQkFLQ0FBWUFBQUlFNEFId0NFQUlBQUFCQUNBQUFJZ0FBSUFFWUJMRWhCQXh4RUFPQVFCZ0JRa0FBUUFCQVNBQUJBRUNBSWpBU0FBQUlDVkFBQ1JCQ2dBeEVEQUFBRnlFa0pRMEJBUkFBQmdvcEV1Z0ZLQlNvRWtBYllBZ0pOaEV3S0FlUUFDZ0FIQk1MdzBMaWVObkFtR1F3QVEwQUFjZ0FiQUdreFVJSEFIZ0V3V0VBQUNTWUFmZ0FmQUFnRWd3QUEwU0RBaUlrc0hjQnNjZ0FPQUE0QU93QUlJQkFHUUIxRTRQMGVBaEdXeURJQUpxZ0FoRWdIQUFrUUFBUURnZ1NDQUNjQUFVQ0lBQVJBZ1FBZ0FDSUFBQ1VRQUJ3RXpBQUFvb2dBQVFDRUFGZ0RoQVJnQUVZQUN3QWdCQUNBakFBQklEb0FCQUN1QUJNQUFpUUFFQUFLRUdOUUtnRWdBQVVFZ0pBQVNBQkNpQVFBbEFUd0FGQkFBZ2c4QUFGN3pBN2tXQUZJQVlrU2dRQUFJUUlBQUFBUUFCQUFLRzRBSGdPVVRnQWtHRkFBUUFFU25JRkNDTzRBTWdBUEFwSUFBZ2dFQUpnRlFBSEVPSEFDWWpMR0dGTUJnRXdCZ0RZS2dDQUFBQUZVQUJnR1FxQWdNRUVBZ0lBUUFnYUlDQ2doRFFrUWdVREFNRUFRQWRCRTBkS291QkRtT1NMbUFEWUFTQUlFQUVFZ3hBQUFrRUlCaEFBQm9Kd0V3QUVRTmdLa0RBT2hOSndBaEZnQXdNUUFRR0tVQkVDQkFDQVFoT29BQUFtZ1JSQWdNQUJRQkNJSEFVQ0FnaHJBRUFDZ0JHZ0I1clFIQUJoQWJnQWpBZGphTWlEQUFJQUdBbUJBRFFFQVlBQ2tCU0FET2h3WEFJZ1NoQ0JnQ0FBQkVRaklBOEdzQU1SMEFEQUFFQUNHa1JJQUNGRElBQUVBQVNGREJSQUZUQWdBa2dBRy9rUWpBQVJFZ0lFNUFBQUlTZ0F5RVVDSUJCZU9CalowcUFTQUFseFVBVndJY2hRQmdFZzRCdmdBc0FEQ0EwUmZDQkJRQUZ2QUFHd2RNaUlFckFUSUFHb2cyRkFCU2dRZ0RnSmlCSkVBSUFTZUFCTUFrQ1FBaUFoaUFBQTJUQ2NBUkFNQU1EK2dnd1JZSzRKSmdGSUlFd3dBc0FUUUFPSWNEd01QS3hNUU1BQ29BRFF5d0JReVVnb2dpaUJKUWhDZ2hTUVFBQUFIUmdKQ3JRZ0FBUk5ZZ2I0QUR3SlVBUUdBQWpDMEJPQUF4aVFiQUVESElBQUtBS0JNQWdCSUEzb3dqQ0lnNG9ra1lBSDJBQk1BRWdrQUFBQ1FnQUJZUTRLR0lFRXc0aUFNeEl4SUFuWUFUZ0M0QklBRGpDREJwR29hS0FaUVNBSTRMTUpFR0FRRG1GRURFQVFBQWdDV2lZeElFQUM4Qk5nQzFBZ0RBQURjR0FFQVVKSWdqQUFDZ29CRUpBTE9RMWdEazVCaElWaXdTQUFERXBnQWxnQUdBSFlCa0cwQVNvSUFGZ0FBUVpZSXdBVFFBNTQwWERCQU1CbUtnQUVCQUlRQ0FBQUFEeElJa2dGR0lub29Md0J5S0VUV0FMQTRBb1NJWUFBQUFBTUVoSGNCMUc0RHNnekVCSEFEa0JRQW9HR0llRFJVQlV4d0FSSkFDRVFSTGdBUEFZVGdJb0FrQk1nRWNBSkVIRFlDb0pBQlNTQUNRQUVBQ0FBRlFtRkFBQWtBU2dBSEFnQU09XCIsXCJyYW5nZVwiOntcIm1pblwiOlwiXC",
],
"IsXCJtYXhcIjpcIkZGXCJ9fV0ifQ==" => [
"",
],
"vary" => [
"Accept-Encoding",
],
"via" => [
"1.1 vegur",
],
"CF-Cache-Status" => [
"DYNAMIC",
],
"Report-To" => [
"{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=afJelUgPFRe7kA2sBEYLOB9b6vRv1qOqHbuGOeCsKdYsWCo%2BR5%2FH1irm9F47G9Uq5EeZ0ONypPsCRFfMm%2B7Nl5dgQ3zuafnjblABdJv7d96EWwUetWMN4483%2FanpPQ%3D%3D"}],"group":"cf-nel","max_age":604800}",
],
"NEL" => [
"{"success_fraction":0,"report_to":"cf-nel","max_age":604800}",
],
"Server" => [
"cloudflare",
],
"CF-RAY" => [
"68ea7081aba00c01-AMS",
],
"alt-svc" => [
"h3=":443"; ma=86400, h3-29=":443"; ma=86400, h3-28=":443"; ma=86400, h3-27=":443"; ma=86400",
],
]
如您所见,延续令牌 运行 恰好位于 16kb 上。 (16384 个字符)。
我在写这里之前检查了很多东西,但是,我似乎无法弄清楚。我看不到会导致此问题的任何 guzzle 配置。是否有任何我应该更改的默认值?
这是 curl 7.58 中的错误。它已在 7.59 版本中修复。 curl 应该 支持最大 header 大小 CURL_MAX_HTTP_HEADER (100kB)。参见 this issue and this email chain。
在错误修复之前,curl 会在将超过 CURL_MAX_WRITE_SIZE (16kB) 的 header 传递给 header 回调函数 (doc). Guzzle is affected since it uses CURLOPT_HEADERFUNCTION internally (Guzzle source, PHP docs) 之前意外地将其切碎。
解决方案是升级系统的 curl 安装,这可能并不简单。