From: Eric Hodel Date: 2010-12-01T02:06:43+09:00 Subject: [ruby-core:33495] [Ruby 1.9-Feature#4100] Improve Net::HTTP documentation --mimepart_4cf52f2311667_2c1fbb1f53432a7 Content-Type: text/plain Content-Transfer-Encoding: Quoted-printable Content-Disposition: inline Issue #4100 has been updated by Eric Hodel. File net.http.rb.doc.2.patch added I see you changed the proxy example, I agree. I have fixed the examples to use #value instead of #error! Attached is an updated patch that applies atop the existing changes and r= emoves the rejected chunks. Also, the usage documentation in lib/net/https.rb is removed as it has be= en moved to lib/net/http.rb. (Also, it was inaccessible to ri.) ---------------------------------------- http://redmine.ruby-lang.org/issues/show/4100 ---------------------------------------- http://redmine.ruby-lang.org --mimepart_4cf52f2311667_2c1fbb1f53432a7 Content-Type: application/octet-stream; name=net.http.rb.doc.2.patch Content-Transfer-Encoding: Base64 Content-Disposition: attachment; filename=net.http.rb.doc.2.patch SW5kZXg6IGxpYi9uZXQvaHR0cC5yYgo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLSBsaWIvbmV0L2h0dHAucmIJKHJldmlzaW9uIDI5OTgzKQorKysgbGli L25ldC9odHRwLnJiCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwzMTQgKzMyLDM1 MCBAQCBtb2R1bGUgTmV0ICAgIzpub2RvYzoKIAogICAjID09IEFuIEhUVFAg Y2xpZW50IEFQSSBmb3IgUnVieS4KICAgIwotICAjIEZvciBtb3JlIGRldGFp bHMgYWJvdXQgSFRUUCwgc2VlIFtSRkMyNjE2XShodHRwOi8vd3d3LmlldGYu b3JnL3JmYy9yZmMyNjE2LnR4dCkuCisgICMgTmV0OjpIVFRQIHByb3ZpZGVz IGEgcmljaCBsaWJyYXJ5IHdoaWNoIGNhbiBiZSB1c2VkIHRvIGJ1aWxkIEhU VFAKKyAgIyB1c2VyLWFnZW50cy4gIEZvciBtb3JlIGRldGFpbHMgYWJvdXQg SFRUUCBzZWUKKyAgIyBbUkZDMjYxNl0oaHR0cDovL3d3dy5pZXRmLm9yZy9y ZmMvcmZjMjYxNi50eHQpCiAgICMKLSAgIyA9PSBFeGFtcGxlcworICAjIE5l dDo6SFRUUCBpcyBkZXNpZ25lZCB0byB3b3JrIGNsb3NlbHkgd2l0aCBVUkku ICBVUkk6OkhUVFAjaG9zdCwKKyAgIyBVUkk6OkhUVFAjcG9ydCBhbmQgVVJJ OjpIVFRQI3JlcXVlc3RfdXJpIGFyZSBkZXNpZ25lZCB0byB3b3JrIHdpdGgK KyAgIyBOZXQ6OkhUVFAuCiAgICMKLSAgIyA9PT0gRmV0Y2hpbmcgRG9jdW1l bnRzCisgICMgSWYgeW91IGFyZSBvbmx5IHBlcmZvcm1pbmcgYSBmZXcgR0VU IHJlcXVlc3RzIHlvdSBzaG91bGQgdHJ5IE9wZW5VUkkuCiAgICMKLSAgIyBT aW1wbGUgR0VUCisgICMgPT0gSG93IHRvIHVzZSBOZXQ6OkhUVFAKICAgIwot ICAjICAgICByZXF1aXJlICduZXQvaHR0cCcKLSAgIyAgICAgTmV0OjpIVFRQ LmdldCgnd3d3LmV4YW1wbGUuY29tJywgJy9pbmRleC5odG1sJykgPT4gU3Ry aW5nCisgICMgTmV0OjpIVFRQIHByb3ZpZGVzIHNldmVyYWwgY29udmVuaWVu Y2UgbWV0aG9kcyBmb3IgcGVyZm9ybWluZyBhIEdFVCBvbiBhCisgICMgd2Vi IHNlcnZlciB3aGljaCBhcmUgZGVzY3JpYmVkIGJlbG93LgogICAjCi0gICMg U2ltcGxlIEdFVCBieSBVUkkgb2JqZWN0CisgICMgQWxsIGV4YW1wbGVzIGFz c3VtZSB5b3UgaGF2ZSBsb2FkZWQgTmV0OjpIVFRQIHdpdGg6CiAgICMKLSAg IyAgICAgcmVxdWlyZSAnbmV0L2h0dHAnCi0gICMgICAgIHJlcXVpcmUgJ3Vy aScKLSAgIyAgICAgTmV0OjpIVFRQLmdldChVUkkucGFyc2UoJ2h0dHA6Ly93 d3cuZXhhbXBsZS5jb20vaW5kZXguaHRtbD9jb3VudD0xMCcpKSA9PiBTdHJp bmcKKyAgIyAgIHJlcXVpcmUgJ25ldC9odHRwJwogICAjCi0gICMgTW9yZSBn ZW5lcmljIEdFVCB3aXRoIGR5bmFtaWMgcGFyYW1ldGVycworICAjIFRoaXMg d2lsbCBhbHNvIHJlcXVpcmUgJ3VyaScgc28geW91IGRvbid0IG5lZWQgdG8g cmVxdWlyZSBpdCBzZXBhcmF0ZWx5LgogICAjCi0gICMgICAgcmVxdWlyZSAn bmV0L2h0dHAnCi0gICMgICAgcmVxdWlyZSAndXJpJworICAjIFRoZSBmb2xs b3dpbmcgZXhhbXBsZSBjb2RlIGNhbiBiZSB1c2VkIGFzIHRoZSBiYXNpcyBv ZiBhIEhUVFAgdXNlci1hZ2VudAorICAjIHdoaWNoIHdpbGwgcGVyZm9ybSBh IHZhcmlldHkgb2YgcmVxdWVzdCB0eXBlcy4KICAgIwotICAjICAgIHVyaSA9 IFVSSS5wYXJzZSgnaHR0cDovL3d3dy5leGFtcGxlLmNvbS9pbmRleC5odG1s JykKLSAgIyAgICBwYXJhbXMgPSB7IDpsaW1pdCA9PiAxMCwgOnBhZ2UgPT4g MyB9Ci0gICMgICAgdXJpLnF1ZXJ5ID0gVVJJLmVuY29kZV93d3dfZm9ybShw YXJhbXMpCi0gICMgICAgcmVzID0gTmV0OjpIVFRQLmdldF9yZXNwb25zZSh1 cmkpCi0gICMgICAgcHV0cyByZXMuYm9keSBpZiByZXMuaXNfYT8oTmV0OjpI VFRQU3VjY2VzcykKKyAgIyAgIHVyaSA9IFVSSS5wYXJzZSAnaHR0cDovL2V4 YW1wbGUuY29tL3NvbWVfcGF0aD9xdWVyeT1zdHJpbmcnCiAgICMKLSAgIyBF dmVuIG1vcmUgZ2VuZXJpYyBHRVQgd2l0aCBCYXNpYyBBdXRoIGFuZCBjdXN0 b20gaGVhZGVyCisgICMgICBOZXQ6OkhUVFAuc3RhcnQgdXJpLmhvc3QsIHVy aS5wb3J0IGRvIHxodHRwfAorICAjICAgICByZXF1ZXN0ID0gTmV0OjpIVFRQ OjpHZXQubmV3IHVyaS5yZXF1ZXN0X3VyaQogICAjCi0gICMgICAgcmVxdWly ZSAnbmV0L2h0dHAnCisgICMgICAgIHJlc3BvbnNlID0gaHR0cC5yZXF1ZXN0 IHJlcXVlc3QgIyBOZXQ6OkhUVFBSZXNwb25zZSBvYmplY3QKKyAgIyAgIGVu ZAogICAjCi0gICMgICAgdXJpID0gVVJJLnBhcnNlKCdodHRwOi8vd3d3LmV4 YW1wbGUuY29tL2luZGV4Lmh0bWw/a2V5PXZhbHVlJykKLSAgIyAgICByZXEg PSBOZXQ6OkhUVFA6OkdldC5uZXcodXJpLnJlcXVlc3RfdXJpKQotICAjICAg IHJlcS5iYXNpY19hdXRoICd1c2VyJywgJ3Bhc3MnCi0gICMgICAgcmVxWydY LUN1c3RvbS1IZWFkZXInXSA9IFRpbWUubm93LnRvX2kKLSAgIyAgICByZXMg PSBOZXQ6OkhUVFAuc3RhcnQodXJpLmhvc3RuYW1lLCB1cmkucG9ydCkge3xo dHRwfAotICAjICAgICAgaHR0cC5yZXF1ZXN0KHJlcSkKLSAgIyAgICB9Ci0g ICMgICAgcHV0cyByZXMuYm9keQorICAjIE5ldDo6SFRUUDo6c3RhcnQgaW1t ZWRpYXRlbHkgY3JlYXRlcyBhIGNvbm5lY3Rpb24gdG8gYW4gSFRUUCBzZXJ2 ZXIgd2hpY2gKKyAgIyBpcyBrZXB0IG9wZW4gZm9yIHRoZSBkdXJhdGlvbiBv ZiB0aGUgYmxvY2suICBUaGUgY29ubmVjdGlvbiB3aWxsIHJlbWFpbgorICAj IG9wZW4gZm9yIG11bHRpcGxlIHJlcXVlc3RzIGluIHRoZSBibG9jayBpZiB0 aGUgc2VydmVyIGluZGljYXRlcyBpdAorICAjIHN1cHBvcnRzIHBlcnNpc3Rl bnQgY29ubmVjdGlvbnMuCiAgICMKLSAgIyBBY2Nlc3NpbmcgUmVzcG9uc2Ug ZGF0YToKKyAgIyBUaGUgcmVxdWVzdCB0eXBlcyBOZXQ6OkhUVFAgc3VwcG9y dHMgYXJlIGxpc3RlZCBiZWxvdyBpbiB0aGUgc2VjdGlvbiAiSFRUUAorICAj IFJlcXVlc3QgQ2xhc3NlcyIuCiAgICMKLSAgIyAgICAgcmVzID0gTmV0OjpI VFRQLmdldF9yZXNwb25zZShVUkkucGFyc2UoJ2h0dHA6Ly93d3cuZXhhbXBs ZS5jb20vaW5kZXguaHRtbCcpKQotICAjICAgICAjIEhlYWRlcnMKLSAgIyAg ICAgcmVzWydTZXQtQ29va2llJ10gICAgICAgICAgICA9PiBTdHJpbmcKLSAg IyAgICAgcmVzLmdldF9maWVsZHMoJ3NldC1jb29raWUnKSA9PiBBcnJheQot ICAjICAgICByZXMudG9faGFzaFsnc2V0LWNvb2tpZSddICAgID0+IEFycmF5 Ci0gICMgICAgIHB1dHMgIkhlYWRlcnM6ICN7cmVzLnRvX2hhc2guaW5zcGVj dH0iCi0gICMgICAgICMgU3RhdHVzCi0gICMgICAgIHB1dHMgcmVzLmNvZGUg PT4gJzIwMCcKLSAgIyAgICAgcHV0cyByZXMubWVzc2FnZSA9PiAnT0snCi0g ICMgICAgIHB1dHMgcmVzLmNsYXNzLm5hbWUgPT4gJ0hUVFBPSycKLSAgIyAg ICAgcHV0cyByZXMuYm9keQorICAjIElmIHlvdSB3aXNoIHRvIHJlLXVzZSBh IGNvbm5lY3Rpb24gYWNyb3NzIG11bHRpcGxlIEhUVFAgcmVxdWVzdHMgd2l0 aG91dAorICAjIGF1dG9tYXRpY2FsbHkgY2xvc2luZyBpdCB5b3UgY2FuIHVz ZSA6Om5ldyBpbnN0ZWFkIG9mIDo6c3RhcnQuICAjcmVxdWVzdAorICAjIHdp bGwgYXV0b21hdGljYWxseSBvcGVuIGEgY29ubmVjdGlvbiB0byB0aGUgc2Vy dmVyIGlmIG9uZSBpcyBub3QgY3VycmVudGx5CisgICMgb3Blbi4gIFlvdSBj YW4gbWFudWFsbHkgY2xvc2UgdGhlIGNvbm5lY3Rpb24gd2l0aCAjY2xvc2Uu CiAgICMKLSAgIyA9PT0gUG9zdGluZyBGb3JtIERhdGEKKyAgIyA9PT0gUmVz cG9uc2UgRGF0YQogICAjCi0gICMgICAgIHJlcXVpcmUgJ25ldC9odHRwJwot ICAjICAgICByZXF1aXJlICd1cmknCisgICMgICB1cmkgPSBVUkkucGFyc2Uo J2h0dHA6Ly9leGFtcGxlLmNvbS9pbmRleC5odG1sJykKKyAgIyAgIHJlcyA9 IE5ldDo6SFRUUC5nZXRfcmVzcG9uc2UodXJpKQogICAjCi0gICMgICAgICMx OiBTaW1wbGUgUE9TVAotICAjICAgICByZXMgPSBOZXQ6OkhUVFAucG9zdF9m b3JtKFVSSS5wYXJzZSgnaHR0cDovL3d3dy5leGFtcGxlLmNvbS9zZWFyY2gu Y2dpJyksCi0gICMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeydx JyA9PiAncnVieScsICdtYXgnID0+ICc1MCd9KQotICAjICAgICBwdXRzIHJl cy5ib2R5CisgICMgICAjIEhlYWRlcnMKKyAgIyAgIHJlc1snU2V0LUNvb2tp ZSddICAgICAgICAgICAgIyA9PiBTdHJpbmcKKyAgIyAgIHJlcy5nZXRfZmll bGRzKCdzZXQtY29va2llJykgIyA9PiBBcnJheQorICAjICAgcmVzLnRvX2hh c2hbJ3NldC1jb29raWUnXSAgICAjID0+IEFycmF5CisgICMgICBwdXRzICJI ZWFkZXJzOiAje3Jlcy50b19oYXNoLmluc3BlY3R9IgogICAjCi0gICMgICAg ICMyOiBEZXRhaWxlZCBjb250cm9sIG9mIFBPU1Qgd2l0aCBhdXRoZW50aWNh dGlvbgorICAjICAgIyBTdGF0dXMKKyAgIyAgIHB1dHMgcmVzLmNvZGUgICAg ICAgIyA9PiAnMjAwJworICAjICAgcHV0cyByZXMubWVzc2FnZSAgICAjID0+ ICdPSycKKyAgIyAgIHB1dHMgcmVzLmNsYXNzLm5hbWUgIyA9PiAnSFRUUE9L JwogICAjCi0gICMgICAgIHVyaSA9IFVSSS5wYXJzZSgnaHR0cDovL3d3dy5l eGFtcGxlLmNvbS90b2RvLmNnaScpCi0gICMgICAgIHJlcSA9IE5ldDo6SFRU UDo6UG9zdC5uZXcodXJpLnBhdGgpCi0gICMgICAgIHJlcS5iYXNpY19hdXRo ICdqYWNrJywgJ3Bhc3MnCi0gICMgICAgIHJlcS5zZXRfZm9ybV9kYXRhKHsn ZnJvbScgPT4gJzIwMDUtMDEtMDEnLCAndG8nID0+ICcyMDA1LTAzLTMxJ30s ICc7JykKLSAgIyAgICAgcmVzID0gTmV0OjpIVFRQLm5ldyh1cmkuaG9zdG5h bWUsIHVyaS5wb3J0KS5zdGFydCB7fGh0dHB8IGh0dHAucmVxdWVzdChyZXEp IH0KLSAgIyAgICAgY2FzZSByZXMKLSAgIyAgICAgd2hlbiBOZXQ6OkhUVFBT dWNjZXNzLCBOZXQ6OkhUVFBSZWRpcmVjdGlvbgotICAjICAgICAgICMgT0sK KyAgIyAgICMgQm9keQorICAjICAgcHV0cyByZXMuYm9keSBpZiByZXMucmVz cG9uc2VfYm9keV9wZXJtaXR0ZWQ/CisgICMKKyAgIyA9PT0gRm9sbG93aW5n IFJlZGlyZWN0aW9uCisgICMKKyAgIyBFYWNoIE5ldDo6SFRUUFJlc3BvbnNl IG9iamVjdCBiZWxvbmdzIHRvIGEgY2xhc3MgZm9yIGl0cyByZXNwb25zZSBj b2RlLgorICAjCisgICMgRm9yIGV4YW1wbGUsIGFsbCAyWFggcmVzcG9uc2Vz IGFyZSBpbnN0YW5jZXMgb2YgYSBOZXQ6OkhUVFBTdWNjZXNzCisgICMgc3Vi Y2xhc3MsIGEgM1hYIHJlc3BvbnNlIGlzIGFuIGluc3RhbmNlIG9mIGEgTmV0 OjpIVFRQUmVkaXJlY3Rpb24KKyAgIyBzdWJjbGFzcyBhbmQgYSAyMDAgcmVz cG9uc2UgaXMgYW4gaW5zdGFuY2Ugb2YgdGhlIE5ldDo6SFRUUE9LIGNsYXNz LiAgRm9yCisgICMgZGV0YWlscyBvZiByZXNwb25zZSBjbGFzc2VzLCBzZWUg dGhlIHNlY3Rpb24gIkhUVFAgUmVzcG9uc2UgQ2xhc3NlcyIKKyAgIyBiZWxv dy4KKyAgIworICAjIFVzaW5nIGEgY2FzZSBzdGF0ZW1lbnQgeW91IGNhbiBo YW5kbGUgdmFyaW91cyB0eXBlcyBvZiByZXNwb25zZXMgcHJvcGVybHk6Cisg ICMKKyAgIyAgIGRlZiBmZXRjaCh1cmlfc3RyLCBsaW1pdCA9IDEwKQorICAj ICAgICAjIFlvdSBzaG91bGQgY2hvb3NlIGEgYmV0dGVyIGV4Y2VwdGlvbi4K KyAgIyAgICAgcmFpc2UgQXJndW1lbnRFcnJvciwgJ3RvbyBtYW55IEhUVFAg cmVkaXJlY3RzJyBpZiBsaW1pdCA9PSAwCisgICMKKyAgIyAgICAgcmVzcG9u c2UgPSBOZXQ6OkhUVFAuZ2V0X3Jlc3BvbnNlKFVSSS5wYXJzZSh1cmlfc3Ry KSkKKyAgIworICAjICAgICBjYXNlIHJlc3BvbnNlCisgICMgICAgIHdoZW4g TmV0OjpIVFRQU3VjY2VzcyB0aGVuCisgICMgICAgICAgcmVzcG9uc2UKKyAg IyAgICAgd2hlbiBOZXQ6OkhUVFBSZWRpcmVjdGlvbiB0aGVuCisgICMgICAg ICAgbG9jYXRpb24gPSByZXNwb25zZVsnbG9jYXRpb24nXQorICAjICAgICAg IHdhcm4gInJlZGlyZWN0ZWQgdG8gI3tsb2NhdGlvbn0iCisgICMgICAgICAg ZmV0Y2gobG9jYXRpb24sIGxpbWl0IC0gMSkKICAgIyAgICAgZWxzZQotICAj ICAgICAgIHJlcy5lcnJvciEKKyAgIyAgICAgICByZXNwb25zZS52YWx1ZQog ICAjICAgICBlbmQKKyAgIyAgIGVuZAogICAjCi0gICMgICAgICMzOiBNdWx0 aXBsZSB2YWx1ZXMKLSAgIyAgICAgcmVzID0gTmV0OjpIVFRQLnBvc3RfZm9y bShVUkkucGFyc2UoJ2h0dHA6Ly93d3cuZXhhbXBsZS5jb20vc2VhcmNoLmNn aScpLAotICAjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsncScg PT4gWydydWJ5JywgJ3BlcmwnXSwgJ21heCcgPT4gJzUwJ30pCi0gICMgICAg IHB1dHMgcmVzLmJvZHkKLSAgIwotICAjID09PSBBY2Nlc3NpbmcgdmlhIFBy b3h5Ci0gICMKLSAgIyBOZXQ6OkhUVFAuUHJveHkgaXMgYW4gaHR0cCBwcm94 eSBjbGFzcy4gSXQgaGFzIHRoZSBzYW1lCi0gICMgbWV0aG9kcyBhcyBOZXQ6 OkhUVFAsIGJ1dCBpdHMgaW5zdGFuY2VzIGFsd2F5cyBjb25uZWN0IHZpYSBh IHByb3h5LAotICAjIGluc3RlYWQgb2YgZGlyZWN0bHkgdG8gdGhlIGdpdmVu IGhvc3QuCi0gICMKLSAgIyAgICAgcmVxdWlyZSAnbmV0L2h0dHAnCi0gICMK LSAgIyAgICAgcHJveHlfYWRkciA9ICd5b3VyLnByb3h5Lmhvc3QnCi0gICMg ICAgIHByb3h5X3BvcnQgPSA4MDgwCi0gICMgICAgICAgICAgICAgOgotICAj ICAgICBOZXQ6OkhUVFA6OlByb3h5KHByb3h5X2FkZHIsIHByb3h5X3BvcnQp LnN0YXJ0KCd3d3cuZXhhbXBsZS5jb20nKSB7fGh0dHB8Ci0gICMgICAgICAg IyBhbHdheXMgY29ubmVjdCB0byB5b3VyLnByb3h5LmFkZHI6ODA4MAotICAj ICAgICAgICAgICAgIDoKLSAgIyAgICAgfQotICAjCi0gICMgVGhlIHRvcC1s ZXZlbCBOZXQ6OkhUVFAgY2xhc3MgY3JlYXRlcyBvYmplY3RzIHdoaWNoIHJl cHJlc2VudAotICAjIEhUVFAgc2Vzc2lvbnMuCi0gICMKLSAgIyBTaW5jZSBO ZXQ6OkhUVFAuUHJveHkgcmV0dXJucyBOZXQ6OkhUVFAgaXRzZWxmIHdoZW4g K3Byb3h5X2FkZHIrIGlzIG5pbCwKLSAgIyB0aGVyZSdzIG5vIG5lZWQgdG8g Y2hhbmdlIHlvdXIgY29kZSBkZXBlbmRpbmcgb24gd2hldGhlciB0aGVyZSdz IGEgcHJveHkKLSAgIyBvciBub3QuCi0gICMKLSAgIyBUaGVyZSBhcmUgdHdv IGFkZGl0aW9uYWwgcGFyYW1ldGVycyBpbiBOZXQ6OkhUVFAuUHJveHkgd2hp Y2ggYWxsb3cgeW91IHRvCi0gICMgc3BlY2lmeSBhIHVzZXIgbmFtZSBhbmQg cGFzc3dvcmQgZm9yIHRoZSBwcm94eToKLSAgIwotICAjICAgICBOZXQ6OkhU VFA6OlByb3h5KHByb3h5X2FkZHIsIHByb3h5X3BvcnQsIHByb3h5X3VzZXIg PSBuaWwsIHByb3h5X3Bhc3MgPSBuaWwpCi0gICMKLSAgIyBZb3UgY2FuIHVz ZSB0aGVtIHRvIHdvcmsgd2l0aCBhdXRob3JpemF0aW9uLWVuYWJsZWQgcHJv eGllczoKLSAgIwotICAjICAgICByZXF1aXJlICduZXQvaHR0cCcKLSAgIyAg ICAgcmVxdWlyZSAndXJpJwotICAjCi0gICMgICAgIHByb3h5X2hvc3QgPSAn eW91ci5wcm94eS5ob3N0JwotICAjICAgICBwcm94eV9wb3J0ID0gODA4MAot ICAjICAgICB1cmkgPSBVUkkucGFyc2UoRU5WWydodHRwX3Byb3h5J10pCi0g ICMgICAgIHByb3h5X3VzZXIsIHByb3h5X3Bhc3MgPSB1cmkudXNlcmluZm8u c3BsaXQoLzovKSBpZiB1cmkudXNlcmluZm8KLSAgIyAgICAgTmV0OjpIVFRQ OjpQcm94eShwcm94eV9ob3N0LCBwcm94eV9wb3J0LAotICAjICAgICAgICAg ICAgICAgICAgICAgIHByb3h5X3VzZXIsIHByb3h5X3Bhc3MpLnN0YXJ0KCd3 d3cuZXhhbXBsZS5jb20nKSB7fGh0dHB8Ci0gICMgICAgICAgIyBhbHdheXMg Y29ubmVjdCB0byB5b3VyLnByb3h5LmFkZHI6ODA4MCB1c2luZyBzcGVjaWZp ZWQgdXNlcm5hbWUgYW5kIHBhc3N3b3JkCi0gICMgICAgICAgICAgICAgOgot ICAjICAgICB9CisgICMgICBwcmludCBmZXRjaCgnaHR0cDovL3d3dy5ydWJ5 LWxhbmcub3JnJykKICAgIwotICAjIE5vdGUgdGhhdCBuZXQvaHR0cCBkb2Vz IG5vdCB1c2UgdGhlIEhUVFBfUFJPWFkgZW52aXJvbm1lbnQgdmFyaWFibGUu Ci0gICMgSWYgeW91IHdhbnQgdG8gdXNlIGEgcHJveHksIHlvdSBtdXN0IGRv IHNvIGV4cGxpY2l0bHkuCisgICMgPT09IFBPU1QKICAgIwotICAjID09PSBG b2xsb3dpbmcgUmVkaXJlY3Rpb24KKyAgIyBBIFBPU1QgY2FuIGJlIG1hZGUg dXNpbmcgdGhlIE5ldDo6SFRUUDo6UG9zdCByZXF1ZXN0IGNsYXNzLiAgVGhp cyBleGFtcGxlCisgICMgY3JlYXRlcyBhIHVybGVuY29kZWQgUE9TVCBib2R5 OgogICAjCi0gICMgICAgIHJlcXVpcmUgJ25ldC9odHRwJwotICAjICAgICBy ZXF1aXJlICd1cmknCisgICMgICB1cmkgPSBVUkkucGFyc2UoJ2h0dHA6Ly93 d3cuZXhhbXBsZS5jb20vdG9kby5jZ2knKQorICAjICAgcmVxID0gTmV0OjpI VFRQOjpQb3N0Lm5ldyh1cmkucGF0aCkKKyAgIyAgIHJlcS5zZXRfZm9ybV9k YXRhKCdmcm9tJyA9PiAnMjAwNS0wMS0wMScsICd0bycgPT4gJzIwMDUtMDMt MzEnKQogICAjCi0gICMgICAgIGRlZiBmZXRjaCh1cmlfc3RyLCBsaW1pdCA9 IDEwKQotICAjICAgICAgICMgWW91IHNob3VsZCBjaG9vc2UgYmV0dGVyIGV4 Y2VwdGlvbi4KLSAgIyAgICAgICByYWlzZSBBcmd1bWVudEVycm9yLCAnSFRU UCByZWRpcmVjdCB0b28gZGVlcCcgaWYgbGltaXQgPT0gMAotICAjCi0gICMg ICAgICAgcmVzcG9uc2UgPSBOZXQ6OkhUVFAuZ2V0X3Jlc3BvbnNlKFVSSS5w YXJzZSh1cmlfc3RyKSkKLSAgIyAgICAgICBjYXNlIHJlc3BvbnNlCi0gICMg ICAgICAgd2hlbiBOZXQ6OkhUVFBTdWNjZXNzICAgICB0aGVuIHJlc3BvbnNl Ci0gICMgICAgICAgd2hlbiBOZXQ6OkhUVFBSZWRpcmVjdGlvbiB0aGVuIGZl dGNoKHJlc3BvbnNlWydsb2NhdGlvbiddLCBsaW1pdCAtIDEpCi0gICMgICAg ICAgZWxzZQotICAjICAgICAgICAgcmVzcG9uc2UuZXJyb3IhCi0gICMgICAg ICAgZW5kCi0gICMgICAgIGVuZAorICAjICAgcmVzID0gTmV0OjpIVFRQLm5l dyh1cmkuaG9zdG5hbWUsIHVyaS5wb3J0KS5zdGFydCBkbyB8aHR0cHwKKyAg IyAgICAgaHR0cC5yZXF1ZXN0KHJlcSkKKyAgIyAgIGVuZAogICAjCi0gICMg ICAgIHByaW50IGZldGNoKCdodHRwOi8vd3d3LnJ1YnktbGFuZy5vcmcnKQor ICAjICAgY2FzZSByZXMKKyAgIyAgIHdoZW4gTmV0OjpIVFRQU3VjY2Vzcywg TmV0OjpIVFRQUmVkaXJlY3Rpb24KKyAgIyAgICAgIyBPSworICAjICAgZWxz ZQorICAjICAgICByZXMudmFsdWUKKyAgIyAgIGVuZAogICAjCi0gICMgTmV0 OjpIVFRQU3VjY2VzcyBhbmQgTmV0OjpIVFRQUmVkaXJlY3Rpb24gYXJlIEhU VFBSZXNwb25zZSBzdWJjbGFzc2VzLgotICAjIEFsbCBIVFRQUmVzcG9uc2Ug b2JqZWN0cyBiZWxvbmcgdG8gdGhlaXIgb3duIHJlc3BvbnNlIGNsYXNzLCB3 aGljaAotICAjIGluZGljYXRlcyB0aGUgSFRUUCByZXN1bHQgc3RhdHVzLiBG b3IgZGV0YWlscyBvZiB0aGUgcmVzcG9uc2UgY2xhc3NlcywKLSAgIyBzZWUg dGhlIHNlY3Rpb24gIkhUVFAgUmVzcG9uc2UgQ2xhc3NlcyIuCisgICMgQXQg dGhpcyB0aW1lIE5ldDo6SFRUUCBkb2VzIG5vdCBzdXBwb3J0IG11bHRpcGFy dC9mb3JtLWRhdGEuICBUbyBzZW5kCisgICMgbXVsdGlwYXJ0L2Zvcm0tZGF0 YSB1c2UgTmV0OjpIVFRQUmVxdWVzdCNib2R5PSBhbmQKKyAgIyBOZXQ6OkhU VFBSZXF1ZXN0I2NvbnRlbnRfdHlwZT06CiAgICMKLSAgIyA9PT0gRnVsbCBl eGFtcGxlIHdpdGggcmV0cnlpbmcgYW5kIGVycm9yIHJlcG9ydGluZworICAj ICAgcmVxID0gTmV0OjpIVFRQOjpQb3N0Lm5ldyh1cmkucGF0aCkKKyAgIyAg IHJlcS5ib2R5ID0gbXVsdGlwYXJ0X2RhdGEKKyAgIyAgIHJlcS5jb250ZW50 X3R5cGUgPSAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScKICAgIwotICAjICAgICBy ZXF1aXJlICd1cmknCi0gICMgICAgIHJlcXVpcmUgJ25ldC9odHRwJworICAj IE90aGVyIHJlcXVlc3RzIHRoYXQgY2FuIGNvbnRhaW4gYSBib2R5IHN1Y2gg YXMgUFVUIGNhbiBiZSBjcmVhdGVkIGluIHRoZQorICAjIHNhbWUgd2F5IHVz aW5nIHRoZSBjb3JyZXNwb25kaW5nIHJlcXVlc3QgY2xhc3MgKE5ldDo6SFRU UDo6UHV0KS4KICAgIwotICAjICAgICB1cmwgPSAiaHR0cDovL3d3dy5leGFt cGxlLmNvbS8iCisgICMgPT09IFNldHRpbmcgSGVhZGVycwogICAjCi0gICMg ICAgICMgQnJlYWsgYXBhcnQgdGhlIFVSTAotICAjICAgICB1cmkgPSBVUkku cGFyc2UodXJsKQotICAjICAgICAjIFJlYXNzZW1ibGUgdGhlIHBhdGggZm9y IHRoZSBIVFRQIHJlcXVlc3QKLSAgIyAgICAgaWYgdXJpLnF1ZXJ5Ci0gICMg ICAgICAgcGF0aCA9IHVyaS5wYXRoICsgJz8nICsgdXJpLnF1ZXJ5Ci0gICMg ICAgIGVsc2UKLSAgIyAgICAgICBwYXRoID0gdXJpLnBhdGgKLSAgIyAgICAg ZW5kCisgICMgVGhlIGZvbGxvd2luZyBleGFtcGxlIHBlcmZvcm1zIGEgY29u ZGl0aW9uYWwgR0VUIHVzaW5nIHRoZQorICAjIElmLU1vZGlmaWVkLVNpbmNl IGhlYWRlci4gIElmIHRoZSBmaWxlcyBoYXMgbm90IGJlZW4gbW9kaWZpZWQg c2luY2UgdGhlCisgICMgdGltZSBpbiB0aGUgaGVhZGVyIGEgTm90IE1vZGlm aWVkIHJlc3BvbnNlIHdpbGwgYmUgcmV0dXJuZWQuICBTZWUgUkZDIDI2MTYK KyAgIyBzZWN0aW9uIDkuMyBmb3IgZnVydGhlciBkZXRhaWxzLgogICAjCi0g ICMgICAgICMgQ3JlYXRlIGEgcmVxdWVzdCBvYmplY3QKLSAgIyAgICAgcmVx dWVzdCA9IE5ldDo6SFRUUDo6R2V0Lm5ldyhwYXRoKQorICAjICAgdXJpID0g VVJJLnBhcnNlKCdodHRwOi8vZXhhbXBsZS5jb20vY2FjaGVkX3Jlc3BvbnNl JykKKyAgIyAgIGZpbGUgPSBGaWxlLnN0YXQgJ2NhY2hlZF9yZXNwb25zZScK ICAgIwotICAjICAgICAjIFByZXBhcmUgYW4gSFRUUCBjb25uZWN0aW9uIG9i amVjdAotICAjICAgICBodHRwID0gTmV0OjpIVFRQLm5ldyh1cmkuaG9zdCwg dXJpLnBvcnQpCisgICMgICByZXEgPSBOZXQ6OkhUVFA6OkdldC5uZXcodXJp LnJlcXVlc3RfdXJpKQorICAjICAgcmVxWydJZi1Nb2RpZmllZC1TaW5jZSdd ID0gZmlsZS5tdGltZS5yZmMyODIyCiAgICMKLSAgIyAgICAgIyBPcGVuIHRo ZSBjb25uZWN0aW9uIGFuZCBpc3N1ZSB0aGUgcmVxdWVzdCwgcmV0cnlpbmcg dXAgdG8gMyB0aW1lcyBpZiB0aGVyZQotICAjICAgICAjIGlzIGEgdGltZW91 dAotICAjICAgICBhdHRlbXB0cyA9IDEKLSAgIyAgICAgYmVnaW4KLSAgIyAg ICAgICByZXNwb25zZSA9IGh0dHAucmVxdWVzdChyZXF1ZXN0KQotICAjICAg ICByZXNjdWUgRXhjZXB0aW9uID0+IGUKLSAgIyAgICAgICBwdXRzIGUKLSAg IyAgICAgICBwdXRzICJbUmV0cnlpbmddIgotICAjICAgICAgIGF0dGVtcHRz ICs9IDEKLSAgIyAgICAgICByZXRyeSBpZiBhdHRlbXB0cyA8PSAzCi0gICMg ICAgIGVuZAorICAjICAgcmVzID0gTmV0OjpIVFRQLnN0YXJ0KHVyaS5ob3N0 bmFtZSwgdXJpLnBvcnQpIHt8aHR0cHwKKyAgIyAgICAgaHR0cC5yZXF1ZXN0 KHJlcSkKKyAgIyAgIH0KICAgIwotICAjICAgICAjIFJlcG9ydCB0aGUgcmVz dWx0Ci0gICMgICAgIGlmIHJlc3BvbnNlLmtpbmRfb2Y/IE5ldDo6SFRUUFN1 Y2Nlc3MKLSAgIyAgICAgICBwdXRzIHJlc3BvbnNlLmJvZHkKLSAgIyAgICAg ZWxzZQotICAjICAgICAgIHJhaXNlICJFcnJvciBmZXRjaGluZyAje3VybH06 ICN7cmVzcG9uc2UuY29kZX0gI3tyZXNwb25zZS5tZXNzYWdlfSIKLSAgIyAg ICAgZW5kCisgICMgICBvcGVuICdjYWNoZWRfcmVzcG9uc2UnLCAndycgZG8g fGlvfAorICAjICAgICBpby53cml0ZSByZXMuYm9keQorICAjICAgZW5kIGlm IHJlcy5pc19hPyhOZXQ6OkhUVFBTdWNjZXNzKQogICAjCi0gICMgPT09IEhU VFAgUmVxdWVzdCBDbGFzc2VzCisgICMgPT09IEJhc2ljIEF1dGhlbnRpY2F0 aW9uCiAgICMKLSAgIyBIZXJlIGlzIEhUVFAgcmVxdWVzdCBjbGFzcyBoaWVy YXJjaHkuCisgICMgQmFzaWMgYXV0aGVudGljYXRpb24gaXMgcGVyZm9ybWVk IGFjY29yZGluZyB0bworICAjIFtSRkMyNjE3XShodHRwOi8vd3d3LmlldGYu b3JnL3JmYy9yZmMyNjE3LnR4dCkKICAgIwotICAjICAgTmV0OjpIVFRQUmVx dWVzdAotICAjICAgICAgIE5ldDo6SFRUUDo6R2V0Ci0gICMgICAgICAgTmV0 OjpIVFRQOjpIZWFkCi0gICMgICAgICAgTmV0OjpIVFRQOjpQb3N0Ci0gICMg ICAgICAgTmV0OjpIVFRQOjpQdXQKLSAgIyAgICAgICBOZXQ6OkhUVFA6OlBy b3BwYXRjaAotICAjICAgICAgIE5ldDo6SFRUUDo6TG9jawotICAjICAgICAg IE5ldDo6SFRUUDo6VW5sb2NrCi0gICMgICAgICAgTmV0OjpIVFRQOjpPcHRp b25zCi0gICMgICAgICAgTmV0OjpIVFRQOjpQcm9wZmluZAotICAjICAgICAg IE5ldDo6SFRUUDo6RGVsZXRlCi0gICMgICAgICAgTmV0OjpIVFRQOjpNb3Zl Ci0gICMgICAgICAgTmV0OjpIVFRQOjpDb3B5Ci0gICMgICAgICAgTmV0OjpI VFRQOjpNa2NvbAotICAjICAgICAgIE5ldDo6SFRUUDo6VHJhY2UKKyAgIyAg IHVyaSA9IFVSSS5wYXJzZSgnaHR0cDovL2V4YW1wbGUuY29tL2luZGV4Lmh0 bWw/a2V5PXZhbHVlJykKICAgIwotICAjID09PSBIVFRQIFJlc3BvbnNlIENs YXNzZXMKKyAgIyAgIHJlcSA9IE5ldDo6SFRUUDo6R2V0Lm5ldyh1cmkucmVx dWVzdF91cmkpCisgICMgICByZXEuYmFzaWNfYXV0aCAndXNlcicsICdwYXNz JwogICAjCi0gICMgVGhlIHJlcXVlc3QoKSBtZXRob2QgcmV0dXJucyBhIHJl c3BvbnNlIG9mIGEgc3BlY2lmaWMgY2xhc3MsIGRlcGVuZGluZwotICAjIG9u IHRoZSByZXN1bHQgb2YgdGhlIEhUVFAgcmVxdWVzdC4KKyAgIyAgIHJlcyA9 IE5ldDo6SFRUUC5zdGFydCh1cmkuaG9zdG5hbWUsIHVyaS5wb3J0KSB7fGh0 dHB8CisgICMgICAgIGh0dHAucmVxdWVzdChyZXEpCisgICMgICB9CisgICMg ICBwdXRzIHJlcy5ib2R5CiAgICMKLSAgIyBUbyBoYW5kbGUgdGhlIHJlc3Vs dCwgeW91IGNhbiB1c2UgY2FzZS93aGVuIHN0YXRlbWVudHMuIEV4YW1wbGU6 CisgICMgPT09IFN0cmVhbWluZyBSZXNwb25zZSBCb2RpZXMKICAgIwotICAj ICAgICByZXNwb25zZSA9IGh0dHAucmVxdWVzdChyZXEpCi0gICMgICAgIGNh c2UgcmVzcG9uc2UKLSAgIyAgICAgICB3aGVuIE5ldDo6SFRUUFN1Y2Nlc3MK LSAgIyAgICAgICAgICMgU3VjY2VlZGVkCi0gICMgICAgICAgd2hlbiBOZXQ6 OkhUVFBJbmZvcm1hdGlvbgotICAjICAgICAgICAgIyBDb250aW51aW5nIHBy b2Nlc3MKLSAgIyAgICAgICB3aGVuIE5ldDo6SFRUUFJlZGlyZWN0aW9uCi0g ICMgICAgICAgICAjIFBhZ2UgaGFzIG1vdmVkLCBoYW5kbGUgcmVkaXJlY3QK LSAgIyAgICAgICB3aGVuIE5ldDo6SFRUUENsaWVudEVycm9yCi0gICMgICAg ICAgICAjIENsaWVudCBpcyB3cm9uZwotICAjICAgICAgIHdoZW4gTmV0OjpI VFRQU2VydmVyRXJyb3IKLSAgIyAgICAgICAgICMgU2l0ZSBpcyBicm9rZW4K LSAgIyAgICAgICBlbHNlCi0gICMgICAgICAgICAjIFVua25vd24KKyAgIyBC eSBkZWZhdWx0IE5ldDo6SFRUUCByZWFkcyBhbiBlbnRpcmUgcmVzcG9uc2Ug aW50byBtZW1vcnkuICBJZiB5b3UgYXJlCisgICMgaGFuZGxpbmcgbGFyZ2Ug ZmlsZXMgb3Igd2lzaCB0byBpbXBsZW1lbnQgYSBwcm9ncmVzcyBiYXIgeW91 IGNhbiBpbnN0ZWFkCisgICMgc3RyZWFtIHRoZSBib2R5IGRpcmVjdGx5IHRv IGFuIElPLgorICAjCisgICMgICB1cmkgPSBVUkkucGFyc2UgJ2h0dHA6Ly9l eGFtcGxlLmNvbS9sYXJnZV9maWxlJworICAjCisgICMgICBOZXQ6OkhUVFAu c3RhcnQgdXJpLmhvc3QsIHVyaS5wb3J0IGRvIHxodHRwfAorICAjICAgICBy ZXF1ZXN0ID0gTmV0OjpIVFRQOjpHZXQubmV3IHVyaS5yZXF1ZXN0X3VyaQor ICAjCisgICMgICAgIGh0dHAucmVxdWVzdCByZXF1ZXN0IGRvIHxyZXNwb25z ZXwKKyAgIyAgICAgICBvcGVuICdsYXJnZV9maWxlJywgJ3cnIGRvIHxpb3wK KyAgIyAgICAgICAgIHJlc3BvbnNlLnJlYWRfYm9keSBkbyB8Y2h1bmt8Cisg ICMgICAgICAgICAgIGlvLndyaXRlIGNodW5rCisgICMgICAgICAgICBlbmQK KyAgIyAgICAgICBlbmQKICAgIyAgICAgZW5kCisgICMgICBlbmQKKyAgIwor ICAjID09PSBIVFRQUworICAjCisgICMgSFRUUFMgaXMgZW5hYmxlZCBmb3Ig YW4gSFRUUCBjb25uZWN0aW9uIGJ5IE5ldDo6SFRUUCN1c2Vfc3NsPS4KKyAg IworICAjICAgdXJpID0gVVJJLnBhcnNlICdodHRwczovL3NlY3VyZS5leGFt cGxlLmNvbS9zb21lX3BhdGg/cXVlcnk9c3RyaW5nJworICAjCisgICMgICBO ZXQ6OkhUVFAubmV3IHVyaS5ob3N0LCB1cmkucG9ydAorICAjICAgaHR0cC51 c2Vfc3NsID0gdXJpLnNjaGVtZSA9PSAnaHR0cHMnCisgICMKKyAgIyAgIGh0 dHAuc3RhcnQgZG8KKyAgIyAgICAgcmVxdWVzdCA9IE5ldDo6SFRUUDo6R2V0 Lm5ldyB1cmkucmVxdWVzdF91cmkKKyAgIworICAjICAgICByZXNwb25zZSA9 IGh0dHAucmVxdWVzdCByZXF1ZXN0ICMgTmV0OjpIVFRQUmVzcG9uc2Ugb2Jq ZWN0CisgICMgICBlbmQKKyAgIworICAjIEluIHByZXZpb3VzIHZlcnNpb25z IG9mIHJ1YnkgeW91IHdvdWxkIG5lZWQgdG8gcmVxdWlyZSAnbmV0L2h0dHBz JyB0byB1c2UKKyAgIyBIVFRQUy4gIFRoaXMgaXMgbm8gbG9uZ2VyIHRydWUu CisgICMKKyAgIyA9PT0gUHJveGllcworICAjCisgICMgTmV0OjpIVFRQOjpQ cm94eSBoYXMgdGhlIHNhbWUgbWV0aG9kcyBhcyBOZXQ6OkhUVFAgYnV0IGl0 cyBpbnN0YW5jZXMgYWx3YXlzCisgICMgY29ubmVjdCB2aWEgdGhlIHByb3h5 IGluc3RlYWQgb2YgZGlyZWN0bHkgdG8gdGhlIGdpdmVuIGhvc3QuCisgICMK KyAgIyAgIHByb3h5X2FkZHIgPSAneW91ci5wcm94eS5ob3N0JworICAjICAg cHJveHlfcG9ydCA9IDgwODAKKyAgIworICAjICAgTmV0OjpIVFRQOjpQcm94 eShwcm94eV9hZGRyLCBwcm94eV9wb3J0KS5zdGFydCgnd3d3LmV4YW1wbGUu Y29tJykge3xodHRwfAorICAjICAgICAjIGFsd2F5cyBjb25uZWN0IHRvIHlv dXIucHJveHkuYWRkcjo4MDgwCisgICMgICB9CisgICMKKyAgIyBOZXQ6OkhU VFA6OlByb3h5IHJldHVybnMgYSBOZXQ6OkhUVFAgaW5zdGFuY2Ugd2hlbiBw cm94eV9hZGRyIGlzIG5pbCBzbworICAjIHRoZXJlIGlzIG5vIG5lZWQgZm9y IGNvbmRpdGlvbmFsIGNvZGUuCisgICMKKyAgIyBTZWUgTmV0OjpIVFRQOjpQ cm94eSBmb3IgZnVydGhlciBkZXRhaWxzIGFuZCBleGFtcGxlcyBzdWNoIGFz IHByb3hpZXMgdGhhdAorICAjIHJlcXVpcmUgYSB1c2VybmFtZSBhbmQgcGFz c3dvcmQuCisgICMKKyAgIyA9PSBTaW1wbGUgRXhhbXBsZXMKKyAgIworICAj IFRoZSBOZXQ6OkhUVFAgbWV0aG9kcyBpbiB0aGUgZm9sbG93aW5nIGV4YW1w bGVzIGRvIG5vdCBwZXJzaXN0CisgICMgY29ubmVjdGlvbnMuICBUaGV5IGFy ZSBub3QgcmVjb21tZW5kZWQgaWYgeW91IGFyZSBwZXJmb3JtaW5nIG1hbnkg SFRUUAorICAjIHJlcXVlc3RzLgorICAjCisgICMgPT09IEdFVAorICAjCisg ICMgICBOZXQ6OkhUVFAuZ2V0KCdleGFtcGxlLmNvbScsICcvaW5kZXguaHRt bCcpICMgPT4gU3RyaW5nCisgICMKKyAgIyA9PT0gR0VUIGJ5IFVSSQorICAj CisgICMgICB1cmkgPSBVUkkucGFyc2UoJ2h0dHA6Ly9leGFtcGxlLmNvbS9p bmRleC5odG1sP2NvdW50PTEwJykKKyAgIyAgIE5ldDo6SFRUUC5nZXQodXJp KSAjID0+IFN0cmluZworICAjCisgICMgPT09IEdFVCB3aXRoIER5bmFtaWMg UGFyYW1ldGVycworICAjCisgICMgICB1cmkgPSBVUkkucGFyc2UoJ2h0dHA6 Ly9leGFtcGxlLmNvbS9pbmRleC5odG1sJykKKyAgIyAgIHBhcmFtcyA9IHsg OmxpbWl0ID0+IDEwLCA6cGFnZSA9PiAzIH0KKyAgIyAgIHVyaS5xdWVyeSA9 IFVSSS5lbmNvZGVfd3d3X2Zvcm0ocGFyYW1zKQorICAjCisgICMgICByZXMg PSBOZXQ6OkhUVFAuZ2V0X3Jlc3BvbnNlKHVyaSkKKyAgIyAgIHB1dHMgcmVz LmJvZHkgaWYgcmVzLmlzX2E/KE5ldDo6SFRUUFN1Y2Nlc3MpCisgICMKKyAg IyA9PT0gUE9TVAorICAjCisgICMgICB1cmkgPSBVUkkucGFyc2UoJ2h0dHA6 Ly93d3cuZXhhbXBsZS5jb20vc2VhcmNoLmNnaScpCisgICMgICByZXMgPSBO ZXQ6OkhUVFAucG9zdF9mb3JtKHVyaSwgJ3EnID0+ICdydWJ5JywgJ21heCcg PT4gJzUwJykKKyAgIyAgIHB1dHMgcmVzLmJvZHkKKyAgIworICAjID09PSBQ T1NUIHdpdGggTXVsdGlwbGUgVmFsdWVzCisgICMKKyAgIyAgIHVyaSA9IFVS SS5wYXJzZSgnaHR0cDovL3d3dy5leGFtcGxlLmNvbS9zZWFyY2guY2dpJykK KyAgIyAgIHJlcyA9IE5ldDo6SFRUUC5wb3N0X2Zvcm0odXJpLCAncScgPT4g WydydWJ5JywgJ3BlcmwnXSwgJ21heCcgPT4gJzUwJykKKyAgIyAgIHB1dHMg cmVzLmJvZHkKKyAgIworICAjID09IEhUVFAgUmVxdWVzdCBDbGFzc2VzCisg ICMKKyAgIyBIZXJlIGlzIHRoZSBIVFRQIHJlcXVlc3QgY2xhc3MgaGllcmFy Y2h5LgorICAjCisgICMgKiBOZXQ6OkhUVFBSZXF1ZXN0CisgICMgICAqIE5l dDo6SFRUUDo6R2V0CisgICMgICAqIE5ldDo6SFRUUDo6SGVhZAorICAjICAg KiBOZXQ6OkhUVFA6OlBvc3QKKyAgIyAgICogTmV0OjpIVFRQOjpQdXQKKyAg IyAgICogTmV0OjpIVFRQOjpQcm9wcGF0Y2gKKyAgIyAgICogTmV0OjpIVFRQ OjpMb2NrCisgICMgICAqIE5ldDo6SFRUUDo6VW5sb2NrCisgICMgICAqIE5l dDo6SFRUUDo6T3B0aW9ucworICAjICAgKiBOZXQ6OkhUVFA6OlByb3BmaW5k CisgICMgICAqIE5ldDo6SFRUUDo6RGVsZXRlCisgICMgICAqIE5ldDo6SFRU UDo6TW92ZQorICAjICAgKiBOZXQ6OkhUVFA6OkNvcHkKKyAgIyAgICogTmV0 OjpIVFRQOjpNa2NvbAorICAjICAgKiBOZXQ6OkhUVFA6OlRyYWNlCisgICMK KyAgIyA9PSBIVFRQIFJlc3BvbnNlIENsYXNzZXMKKyAgIworICAjIEhlcmUg aXMgSFRUUCByZXNwb25zZSBjbGFzcyBoaWVyYXJjaHkuICBBbGwgY2xhc3Nl cyBhcmUgZGVmaW5lZCBpbiBOZXQKKyAgIyBtb2R1bGUgYW5kIGFyZSBzdWJj bGFzc2VzIG9mIE5ldDo6SFRUUFJlc3BvbnNlLgorICAjCisgICMgSFRUUFVu a25vd25SZXNwb25zZTo6IEZvciB1bmhhbmRsZWQgSFRUUCBleHRlbmVuc2lv bnMKKyAgIyBIVFRQSW5mb3JtYXRpb246OiAgICAgICAgICAgICAgICAgICAg MXh4CisgICMgICBIVFRQQ29udGludWU6OiAgICAgICAgICAgICAgICAgICAg ICAgIDEwMAorICAjICAgSFRUUFN3aXRjaFByb3RvY29sOjogICAgICAgICAg ICAgICAgICAxMDEKKyAgIyBIVFRQU3VjY2Vzczo6ICAgICAgICAgICAgICAg ICAgICAgICAgMnh4CisgICMgICBIVFRQT0s6OiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDIwMAorICAjICAgSFRUUENyZWF0ZWQ6OiAgICAgICAg ICAgICAgICAgICAgICAgICAyMDEKKyAgIyAgIEhUVFBBY2NlcHRlZDo6ICAg ICAgICAgICAgICAgICAgICAgICAgMjAyCisgICMgICBIVFRQTm9uQXV0aG9y aXRhdGl2ZUluZm9ybWF0aW9uOjogICAgIDIwMworICAjICAgSFRUUE5vQ29u dGVudDo6ICAgICAgICAgICAgICAgICAgICAgICAyMDQKKyAgIyAgIEhUVFBS ZXNldENvbnRlbnQ6OiAgICAgICAgICAgICAgICAgICAgMjA1CisgICMgICBI VFRQUGFydGlhbENvbnRlbnQ6OiAgICAgICAgICAgICAgICAgIDIwNgorICAj IEhUVFBSZWRpcmVjdGlvbjo6ICAgICAgICAgICAgICAgICAgICAzeHgKKyAg IyAgIEhUVFBNdWx0aXBsZUNob2ljZTo6ICAgICAgICAgICAgICAgICAgMzAw CisgICMgICBIVFRQTW92ZWRQZXJtYW5lbnRseTo6ICAgICAgICAgICAgICAg IDMwMQorICAjICAgSFRUUEZvdW5kOjogICAgICAgICAgICAgICAgICAgICAg ICAgICAzMDIKKyAgIyAgIEhUVFBTZWVPdGhlcjo6ICAgICAgICAgICAgICAg ICAgICAgICAgMzAzCisgICMgICBIVFRQTm90TW9kaWZpZWQ6OiAgICAgICAg ICAgICAgICAgICAgIDMwNAorICAjICAgSFRUUFVzZVByb3h5OjogICAgICAg ICAgICAgICAgICAgICAgICAzMDUKKyAgIyAgIEhUVFBUZW1wb3JhcnlSZWRp cmVjdDo6ICAgICAgICAgICAgICAgMzA3CisgICMgSFRUUENsaWVudEVycm9y OjogICAgICAgICAgICAgICAgICAgIDR4eAorICAjICAgSFRUUEJhZFJlcXVl c3Q6OiAgICAgICAgICAgICAgICAgICAgICA0MDAKKyAgIyAgIEhUVFBVbmF1 dGhvcml6ZWQ6OiAgICAgICAgICAgICAgICAgICAgNDAxCisgICMgICBIVFRQ UGF5bWVudFJlcXVpcmVkOjogICAgICAgICAgICAgICAgIDQwMgorICAjICAg SFRUUEZvcmJpZGRlbjo6ICAgICAgICAgICAgICAgICAgICAgICA0MDMKKyAg IyAgIEhUVFBOb3RGb3VuZDo6ICAgICAgICAgICAgICAgICAgICAgICAgNDA0 CisgICMgICBIVFRQTWV0aG9kTm90QWxsb3dlZDo6ICAgICAgICAgICAgICAg IDQwNQorICAjICAgSFRUUE5vdEFjY2VwdGFibGU6OiAgICAgICAgICAgICAg ICAgICA0MDYKKyAgIyAgIEhUVFBQcm94eUF1dGhlbnRpY2F0aW9uUmVxdWly ZWQ6OiAgICAgNDA3CisgICMgICBIVFRQUmVxdWVzdFRpbWVPdXQ6OiAgICAg ICAgICAgICAgICAgIDQwOAorICAjICAgSFRUUENvbmZsaWN0OjogICAgICAg ICAgICAgICAgICAgICAgICA0MDkKKyAgIyAgIEhUVFBHb25lOjogICAgICAg ICAgICAgICAgICAgICAgICAgICAgNDEwCisgICMgICBIVFRQTGVuZ3RoUmVx dWlyZWQ6OiAgICAgICAgICAgICAgICAgIDQxMQorICAjICAgSFRUUFByZWNv bmRpdGlvbkZhaWxlZDo6ICAgICAgICAgICAgICA0MTIKKyAgIyAgIEhUVFBS ZXF1ZXN0RW50aXR5VG9vTGFyZ2U6OiAgICAgICAgICAgNDEzCisgICMgICBI VFRQUmVxdWVzdFVSSVRvb0xvbmc6OiAgICAgICAgICAgICAgIDQxNAorICAj ICAgSFRUUFVuc3VwcG9ydGVkTWVkaWFUeXBlOjogICAgICAgICAgICA0MTUK KyAgIyAgIEhUVFBSZXF1ZXN0ZWRSYW5nZU5vdFNhdGlzZmlhYmxlOjogICAg NDE2CisgICMgICBIVFRQRXhwZWN0YXRpb25GYWlsZWQ6OiAgICAgICAgICAg ICAgIDQxNworICAjIEhUVFBTZXJ2ZXJFcnJvcjo6ICAgICAgICAgICAgICAg ICAgICA1eHgKKyAgIyAgIEhUVFBJbnRlcm5hbFNlcnZlckVycm9yOjogICAg ICAgICAgICAgNTAwCisgICMgICBIVFRQTm90SW1wbGVtZW50ZWQ6OiAgICAg ICAgICAgICAgICAgIDUwMQorICAjICAgSFRUUEJhZEdhdGV3YXk6OiAgICAg ICAgICAgICAgICAgICAgICA1MDIKKyAgIyAgIEhUVFBTZXJ2aWNlVW5hdmFp bGFibGU6OiAgICAgICAgICAgICAgNTAzCisgICMgICBIVFRQR2F0ZXdheVRp bWVPdXQ6OiAgICAgICAgICAgICAgICAgIDUwNAorICAjICAgSFRUUFZlcnNp b25Ob3RTdXBwb3J0ZWQ6OiAgICAgICAgICAgICA1MDUKICAgIwotICAjIFRo ZSBIVFRQUmVzcG9uc2UgY2xhc3NlcyBhbGwgcHJvdmlkZSArY29kZSsgYW5k ICttZXNzYWdlKyBhY2Nlc3NvcnMgdG8KLSAgIyBvYnRhaW4gdGhlIDMtZGln aXQgSFRUUCByZXN1bHQgY29kZSBhbmQgdGhlIEhUVFAgcmVzdWx0IG1lc3Nh Z2Ugc2VudCBieQotICAjIHRoZSBzZXJ2ZXIuCi0gICMKLSAgIyBIZXJlIGlz IEhUVFAgcmVzcG9uc2UgY2xhc3MgaGllcmFyY2h5LgotICAjIEFsbCBjbGFz c2VzIGFyZSBkZWZpbmVkIGluIE5ldCBtb2R1bGUuCi0gICMKLSAgIyAgIEhU VFBSZXNwb25zZQotICAjICAgICAgIEhUVFBVbmtub3duUmVzcG9uc2UKLSAg IyAgICAgICBIVFRQSW5mb3JtYXRpb24gICAgICAgICAgICAgICAgICAgICMg MXh4Ci0gICMgICAgICAgICAgIEhUVFBDb250aW51ZSAgICAgICAgICAgICAg ICAgICAgICAgIyAxMDAKLSAgIyAgICAgICAgICAgSFRUUFN3aXRjaFByb3Rv Y29sICAgICAgICAgICAgICAgICAjIDEwMQotICAjICAgICAgIEhUVFBTdWNj ZXNzICAgICAgICAgICAgICAgICAgICAgICAgIyAyeHgKLSAgIyAgICAgICAg ICAgSFRUUE9LICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIDIwMAot ICAjICAgICAgICAgICBIVFRQQ3JlYXRlZCAgICAgICAgICAgICAgICAgICAg ICAgICMgMjAxCi0gICMgICAgICAgICAgIEhUVFBBY2NlcHRlZCAgICAgICAg ICAgICAgICAgICAgICAgIyAyMDIKLSAgIyAgICAgICAgICAgSFRUUE5vbkF1 dGhvcml0YXRpdmVJbmZvcm1hdGlvbiAgICAjIDIwMwotICAjICAgICAgICAg ICBIVFRQTm9Db250ZW50ICAgICAgICAgICAgICAgICAgICAgICMgMjA0Ci0g ICMgICAgICAgICAgIEhUVFBSZXNldENvbnRlbnQgICAgICAgICAgICAgICAg ICAgIyAyMDUKLSAgIyAgICAgICAgICAgSFRUUFBhcnRpYWxDb250ZW50ICAg ICAgICAgICAgICAgICAjIDIwNgotICAjICAgICAgIEhUVFBSZWRpcmVjdGlv biAgICAgICAgICAgICAgICAgICAgIyAzeHgKLSAgIyAgICAgICAgICAgSFRU UE11bHRpcGxlQ2hvaWNlICAgICAgICAgICAgICAgICAjIDMwMAotICAjICAg ICAgICAgICBIVFRQTW92ZWRQZXJtYW5lbnRseSAgICAgICAgICAgICAgICMg MzAxCi0gICMgICAgICAgICAgIEhUVFBGb3VuZCAgICAgICAgICAgICAgICAg ICAgICAgICAgIyAzMDIKLSAgIyAgICAgICAgICAgSFRUUFNlZU90aGVyICAg ICAgICAgICAgICAgICAgICAgICAjIDMwMwotICAjICAgICAgICAgICBIVFRQ Tm90TW9kaWZpZWQgICAgICAgICAgICAgICAgICAgICMgMzA0Ci0gICMgICAg ICAgICAgIEhUVFBVc2VQcm94eSAgICAgICAgICAgICAgICAgICAgICAgIyAz MDUKLSAgIyAgICAgICAgICAgSFRUUFRlbXBvcmFyeVJlZGlyZWN0ICAgICAg ICAgICAgICAjIDMwNwotICAjICAgICAgIEhUVFBDbGllbnRFcnJvciAgICAg ICAgICAgICAgICAgICAgIyA0eHgKLSAgIyAgICAgICAgICAgSFRUUEJhZFJl cXVlc3QgICAgICAgICAgICAgICAgICAgICAjIDQwMAotICAjICAgICAgICAg ICBIVFRQVW5hdXRob3JpemVkICAgICAgICAgICAgICAgICAgICMgNDAxCi0g ICMgICAgICAgICAgIEhUVFBQYXltZW50UmVxdWlyZWQgICAgICAgICAgICAg ICAgIyA0MDIKLSAgIyAgICAgICAgICAgSFRUUEZvcmJpZGRlbiAgICAgICAg ICAgICAgICAgICAgICAjIDQwMwotICAjICAgICAgICAgICBIVFRQTm90Rm91 bmQgICAgICAgICAgICAgICAgICAgICAgICMgNDA0Ci0gICMgICAgICAgICAg IEhUVFBNZXRob2ROb3RBbGxvd2VkICAgICAgICAgICAgICAgIyA0MDUKLSAg IyAgICAgICAgICAgSFRUUE5vdEFjY2VwdGFibGUgICAgICAgICAgICAgICAg ICAjIDQwNgotICAjICAgICAgICAgICBIVFRQUHJveHlBdXRoZW50aWNhdGlv blJlcXVpcmVkICAgICMgNDA3Ci0gICMgICAgICAgICAgIEhUVFBSZXF1ZXN0 VGltZU91dCAgICAgICAgICAgICAgICAgIyA0MDgKLSAgIyAgICAgICAgICAg SFRUUENvbmZsaWN0ICAgICAgICAgICAgICAgICAgICAgICAjIDQwOQotICAj ICAgICAgICAgICBIVFRQR29uZSAgICAgICAgICAgICAgICAgICAgICAgICAg ICMgNDEwCi0gICMgICAgICAgICAgIEhUVFBMZW5ndGhSZXF1aXJlZCAgICAg ICAgICAgICAgICAgIyA0MTEKLSAgIyAgICAgICAgICAgSFRUUFByZWNvbmRp dGlvbkZhaWxlZCAgICAgICAgICAgICAjIDQxMgotICAjICAgICAgICAgICBI VFRQUmVxdWVzdEVudGl0eVRvb0xhcmdlICAgICAgICAgICMgNDEzCi0gICMg ICAgICAgICAgIEhUVFBSZXF1ZXN0VVJJVG9vTG9uZyAgICAgICAgICAgICAg IyA0MTQKLSAgIyAgICAgICAgICAgSFRUUFVuc3VwcG9ydGVkTWVkaWFUeXBl ICAgICAgICAgICAjIDQxNQotICAjICAgICAgICAgICBIVFRQUmVxdWVzdGVk UmFuZ2VOb3RTYXRpc2ZpYWJsZSAgICMgNDE2Ci0gICMgICAgICAgICAgIEhU VFBFeHBlY3RhdGlvbkZhaWxlZCAgICAgICAgICAgICAgIyA0MTcKLSAgIyAg ICAgICBIVFRQU2VydmVyRXJyb3IgICAgICAgICAgICAgICAgICAgICMgNXh4 Ci0gICMgICAgICAgICAgIEhUVFBJbnRlcm5hbFNlcnZlckVycm9yICAgICAg ICAgICAgIyA1MDAKLSAgIyAgICAgICAgICAgSFRUUE5vdEltcGxlbWVudGVk ICAgICAgICAgICAgICAgICAjIDUwMQotICAjICAgICAgICAgICBIVFRQQmFk R2F0ZXdheSAgICAgICAgICAgICAgICAgICAgICMgNTAyCi0gICMgICAgICAg ICAgIEhUVFBTZXJ2aWNlVW5hdmFpbGFibGUgICAgICAgICAgICAgIyA1MDMK LSAgIyAgICAgICAgICAgSFRUUEdhdGV3YXlUaW1lT3V0ICAgICAgICAgICAg ICAgICAjIDUwNAotICAjICAgICAgICAgICBIVFRQVmVyc2lvbk5vdFN1cHBv cnRlZCAgICAgICAgICAgICMgNTA1CisgICMgVGhlcmUgaXMgYWxzbyB0aGUg TmV0OjpIVFRQQmFkUmVzcG9uc2UgZXhjZXB0aW9uIHdoaWNoIGlzIHJhaXNl ZCB3aGVuCisgICMgdGhlcmUgaXMgYSBwcm90b2NvbCBlcnJvci4KICAgIwog ICAjID09IFN3aXRjaGluZyBOZXQ6OkhUVFAgdmVyc2lvbnMKICAgIwotICAj IFlvdSBjYW4gdXNlIG5ldC9odHRwLnJiIDEuMSBmZWF0dXJlcyAoYnVuZGxl ZCB3aXRoIFJ1YnkgMS42KQotICAjIGJ5IGNhbGxpbmcgSFRUUC52ZXJzaW9u XzFfMS4gQ2FsbGluZyBOZXQ6OkhUVFAudmVyc2lvbl8xXzIKLSAgIyBhbGxv d3MgeW91IHRvIHVzZSAxLjIgZmVhdHVyZXMgYWdhaW4uCisgICMgWW91IGNh biB1c2UgbmV0L2h0dHAucmIgMS4xIGZlYXR1cmVzIChidW5kbGVkIHdpdGgg UnVieSAxLjYpIGJ5IGNhbGxpbmcKKyAgIyBIVFRQLnZlcnNpb25fMV8xLiBD YWxsaW5nIE5ldDo6SFRUUC52ZXJzaW9uXzFfMiBhbGxvd3MgeW91IHRvIHVz ZSAxLjIKKyAgIyBmZWF0dXJlcyBhZ2Fpbi4gIERvIG5vdCBjb25mdXNlIHRo aXMgd2l0aCBIVFRQIHByb3RvY29sIGZlYXR1cmVzLgogICAjCi0gICMgICAg ICMgZXhhbXBsZQotICAjICAgICBOZXQ6OkhUVFAuc3RhcnQge3xodHRwMXwg Li4uKGh0dHAxIGhhcyAxLjIgZmVhdHVyZXMpLi4uIH0KKyAgIyAgICMgZXhh bXBsZQorICAjICAgTmV0OjpIVFRQLnN0YXJ0IHt8aHR0cDF8IC4uLihodHRw MSBoYXMgMS4yIGZlYXR1cmVzKS4uLiB9CiAgICMKLSAgIyAgICAgTmV0OjpI VFRQLnZlcnNpb25fMV8xCi0gICMgICAgIE5ldDo6SFRUUC5zdGFydCB7fGh0 dHAyfCAuLi4oaHR0cDIgaGFzIDEuMSBmZWF0dXJlcykuLi4gfQorICAjICAg TmV0OjpIVFRQLnZlcnNpb25fMV8xCisgICMgICBOZXQ6OkhUVFAuc3RhcnQg e3xodHRwMnwgLi4uKGh0dHAyIGhhcyAxLjEgZmVhdHVyZXMpLi4uIH0KICAg IwotICAjICAgICBOZXQ6OkhUVFAudmVyc2lvbl8xXzIKLSAgIyAgICAgTmV0 OjpIVFRQLnN0YXJ0IHt8aHR0cDN8IC4uLihodHRwMyBoYXMgMS4yIGZlYXR1 cmVzKS4uLiB9CisgICMgICBOZXQ6OkhUVFAudmVyc2lvbl8xXzIKKyAgIyAg IE5ldDo6SFRUUC5zdGFydCB7fGh0dHAzfCAuLi4oaHR0cDMgaGFzIDEuMiBm ZWF0dXJlcykuLi4gfQogICAjCiAgICMgU3dpdGNoaW5nIHZlcnNpb25zIGlz IE5PVCB0aHJlYWQtc2FmZS4KICAgIwpJbmRleDogbGliL25ldC9odHRwcy5y Ygo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBsaWIvbmV0L2h0dHBzLnJi CShyZXZpc2lvbiAyOTk4MykKKysrIGxpYi9uZXQvaHR0cHMucmIJKHdvcmtp bmcgY29weSkKQEAgLTIsNiArMiwxMSBAQAogCiA9IG5ldC9odHRwcyAtLSBT U0wvVExTIGVuaGFuY2VtZW50IGZvciBOZXQ6OkhUVFAuCiAKKyAgVGhpcyBm aWxlIGhhcyBiZWVuIG1lcmdlZCB3aXRoIG5ldC9odHRwLiAgVGhlcmUgaXMg bm8gbG9uZ2VyIGFueSBuZWVkIHRvCisgIHJlcXVpcmUgJ25ldC9odHRwcycg dG8gdXNlIEhUVFBTLgorCisgIFNlZSBOZXQ6OkhUVFAgZm9yIGRldGFpbHMg b24gaG93IHRvIG1ha2UgSFRUUFMgY29ubmVjdGlvbnMuCisKID09IEluZm8K ICAgJ09wZW5TU0wgZm9yIFJ1YnkgMicgcHJvamVjdAogICBDb3B5cmlnaHQg KEMpIDIwMDEgR09UT1UgWXV1em91IDxnb3RveXV6b0Bub3R3b3JrLm9yZz4K QEAgLTExLDgxICsxNiw2IEBACiAgIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbmNl ZCB1bmRlciB0aGUgc2FtZSBsaWNlbmNlIGFzIFJ1YnkuCiAgIChTZWUgdGhl IGZpbGUgJ0xJQ0VOQ0UnLikKIAotPT0gRXhhbXBsZQotCi1IZXJlIGlzIGEg c2ltcGxlIEhUVFAgY2xpZW50OgotCi0gICAgcmVxdWlyZSAnbmV0L2h0dHAn Ci0gICAgcmVxdWlyZSAndXJpJwotCi0gICAgdXJpID0gVVJJLnBhcnNlKEFS R1ZbMF0gfHwgJ2h0dHA6Ly9sb2NhbGhvc3QvJykKLSAgICBodHRwID0gTmV0 OjpIVFRQLm5ldyh1cmkuaG9zdCwgdXJpLnBvcnQpCi0gICAgaHR0cC5zdGFy dCB7Ci0gICAgICBodHRwLnJlcXVlc3RfZ2V0KHVyaS5wYXRoKSB7fHJlc3wK LSAgICAgICAgcHJpbnQgcmVzLmJvZHkKLSAgICAgIH0KLSAgICB9Ci0KLUl0 IGNhbiBiZSByZXBsYWNlZCBieSB0aGUgZm9sbG93aW5nIGNvZGU6Ci0KLSAg ICByZXF1aXJlICduZXQvaHR0cHMnCi0gICAgcmVxdWlyZSAndXJpJwotCi0g ICAgdXJpID0gVVJJLnBhcnNlKEFSR1ZbMF0gfHwgJ2h0dHBzOi8vbG9jYWxo b3N0LycpCi0gICAgaHR0cCA9IE5ldDo6SFRUUC5uZXcodXJpLmhvc3QsIHVy aS5wb3J0KQotICAgIGh0dHAudXNlX3NzbCA9IHRydWUgaWYgdXJpLnNjaGVt ZSA9PSAiaHR0cHMiICAjIGVuYWJsZSBTU0wvVExTCi0gICAgaHR0cC5zdGFy dCB7Ci0gICAgICBodHRwLnJlcXVlc3RfZ2V0KHVyaS5wYXRoKSB7fHJlc3wK LSAgICAgICAgcHJpbnQgcmVzLmJvZHkKLSAgICAgIH0KLSAgICB9Ci0KLT09 IGNsYXNzIE5ldDo6SFRUUAotCi09PT0gSW5zdGFuY2UgTWV0aG9kcwotCi06 IHVzZV9zc2w/Ci0gICAgcmV0dXJucyB0cnVlIGlmIHVzZSBTU0wvVExTIHdp dGggSFRUUC4KLQotOiB1c2Vfc3NsPSgofHRydWVfb3JfZmFsc2V8KSkKLSAg ICBzZXRzIHVzZV9zc2wuCi0KLTogcGVlcl9jZXJ0Ci0gICAgcmV0dXJuIHRo ZSBYLjUwOSBjZXJ0aWZpY2F0ZXMgdGhlIHNlcnZlciBwcmVzZW50ZWQuCi0K LToga2V5LCBrZXk9KCh8a2V5fCkpCi0gICAgU2V0cyBhbiBPcGVuU1NMOjpQ S2V5OjpSU0Egb3IgT3BlblNTTDo6UEtleTo6RFNBIG9iamVjdC4KLSAgICAo VGhpcyBtZXRob2QgaXMgYXBwZWFyZWQgaW4gTWljaGFsIFJva29zJ3MgT3Bl blNTTCBleHRlbnNpb24uKQotCi06IGNlcnQsIGNlcnQ9KCh8Y2VydHwpKQot ICAgIFNldHMgYW4gT3BlblNTTDo6WDUwOTo6Q2VydGlmaWNhdGUgb2JqZWN0 IGFzIGNsaWVudCBjZXJ0aWZpY2F0ZQotICAgIChUaGlzIG1ldGhvZCBpcyBh cHBlYXJlZCBpbiBNaWNoYWwgUm9rb3MncyBPcGVuU1NMIGV4dGVuc2lvbiku Ci0KLTogY2FfZmlsZSwgY2FfZmlsZT0oKHxwYXRofCkpCi0gICAgU2V0cyBw YXRoIG9mIGEgQ0EgY2VydGlmaWNhdGlvbiBmaWxlIGluIFBFTSBmb3JtYXQu Ci0gICAgVGhlIGZpbGUgY2FuIGNvbnRyYWluIHNldmVyYWwgQ0EgY2VydGlm aWNhdGVzLgotCi06IGNhX3BhdGgsIGNhX3BhdGg9KCh8cGF0aHwpKQotICAg IFNldHMgcGF0aCBvZiBhIENBIGNlcnRpZmljYXRpb24gZGlyZWN0b3J5IGNv bnRhaW5pbmcgY2VydGlmaWNhdGlvbnMKLSAgICBpbiBQRU0gZm9ybWF0Lgot Ci06IHZlcmlmeV9tb2RlLCB2ZXJpZnlfbW9kZT0oKHxtb2RlfCkpCi0gICAg U2V0cyB0aGUgZmxhZ3MgZm9yIHNlcnZlciB0aGUgY2VydGlmaWNhdGlvbiB2 ZXJpZmljYXRpb24gYXQKLSAgICBiZWdpbm5pbmcgb2YgU1NML1RMUyBzZXNz aW9uLgotICAgIE9wZW5TU0w6OlNTTDo6VkVSSUZZX05PTkUgb3IgT3BlblNT TDo6U1NMOjpWRVJJRllfUEVFUiBpcyBhY2NlcHRhYmxlLgotCi06IHZlcmlm eV9jYWxsYmFjaywgdmVyaWZ5X2NhbGxiYWNrPSgofHByb2N8KSkKLSAgICBT ZXRzIHRoZSB2ZXJpZnkgY2FsbGJhY2sgZm9yIHRoZSBzZXJ2ZXIgY2VydGlm aWNhdGlvbiB2ZXJpZmljYXRpb24uCi0KLTogdmVyaWZ5X2RlcHRoLCB2ZXJp ZnlfZGVwdGg9KCh8bnVtfCkpCi0gICAgU2V0cyB0aGUgbWF4aW11bSBkZXB0 aCBmb3IgdGhlIGNlcnRpZmljYXRlIGNoYWluIHZlcmlmaWNhdGlvbi4KLQot OiBjZXJ0X3N0b3JlLCBjZXJ0X3N0b3JlPSgofHN0b3JlfCkpCi0gICAgU2V0 cyB0aGUgWDUwOTo6U3RvcmUgdG8gdmVyaWZ5IHBlZXIgY2VydGlmaWNhdGUu Ci0KLTogc3NsX3RpbWVvdXQsIHNzbF90aW1lb3V0PSgofHNlY3wpKQotICAg IFNldHMgdGhlIFNTTCB0aW1lb3V0IHNlY29uZHMuCi0KID1lbmQKIAogcmVx dWlyZSAnbmV0L2h0dHAnCg== --mimepart_4cf52f2311667_2c1fbb1f53432a7--