From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.2 required=5.0 tests=ALL_TRUSTED, DKIM_ADSP_NXDOMAIN autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 30424 invoked from network); 20 Feb 2021 22:24:47 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 20 Feb 2021 22:24:47 -0000 Content-Type: multipart/mixed; boundary="===============4684821797118233003==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_python3-BeautifulSoup4=3A_update_to_4=2E9=2E3?= To: ml@inbox.vuxu.org From: heliocat Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Sat, 20 Feb 2021 23:24:44 +0100 List-Id: Message-ID: <20210220222444.RAXO48QN2rLD19J1UXSak5f55cyosb1LYovMjZPFIc4@z> GitHub notification mails are now in MIME to allow UTF8. --===============4684821797118233003== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgaGVsaW9jYXQgYWdhaW5zdCBtYXN0 ZXIgb24gdGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29tL2hl bGlvY2F0L3ZvaWQtcGFja2FnZXMgYmVhdXRpZnVsc291cApodHRwczovL2dpdGh1Yi5jb20vdm9p ZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMjg5MDIKCnB5dGhvbjMtQmVhdXRpZnVsU291cDQ6 IHVwZGF0ZSB0byA0LjkuMwo8IS0tIE1hcmsgaXRlbXMgd2l0aCBbeF0gd2hlcmUgYXBwbGljYWJs ZSAtLT4NCg0KIyMjIyBHZW5lcmFsDQotIFsgXSBUaGlzIGlzIGEgbmV3IHBhY2thZ2UgYW5kIGl0 IGNvbmZvcm1zIHRvIHRoZSBbcXVhbGl0eSByZXF1aXJlbWVudHNdKGh0dHBzOi8vZ2l0aHViLmNv bS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvYmxvYi9tYXN0ZXIvTWFudWFsLm1kI3F1YWxpdHkt cmVxdWlyZW1lbnRzKQ0KDQojIyMjIEhhdmUgdGhlIHJlc3VsdHMgb2YgdGhlIHByb3Bvc2VkIGNo YW5nZXMgYmVlbiB0ZXN0ZWQ/DQotIFsgXSBJIHVzZSB0aGUgcGFja2FnZXMgYWZmZWN0ZWQgYnkg dGhlIHByb3Bvc2VkIGNoYW5nZXMgb24gYSByZWd1bGFyIGJhc2lzIGFuZCBjb25maXJtIHRoaXMg UFIgd29ya3MgZm9yIG1lDQotIFt4XSBJIGdlbmVyYWxseSBkb24ndCB1c2UgdGhlIGFmZmVjdGVk IHBhY2thZ2VzIGJ1dCBicmllZmx5IHRlc3RlZCB0aGlzIFBSDQoNCjwhLS0NCklmIEdpdEh1YiBD SSBjYW5ub3QgYmUgdXNlZCB0byB2YWxpZGF0ZSB0aGUgYnVpbGQgcmVzdWx0IChmb3IgZXhhbXBs ZSwgaWYgdGhlDQpidWlsZCBpcyBsaWtlbHkgdG8gdGFrZSBzZXZlcmFsIGhvdXJzKSwgbWFrZSBz dXJlIHRvDQpbc2tpcCBDSV0oaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNr YWdlcy9ibG9iL21hc3Rlci9DT05UUklCVVRJTkcubWQjY29udGludW91cy1pbnRlZ3JhdGlvbiku DQpXaGVuIHNraXBwaW5nIENJLCB1bmNvbW1lbnQgYW5kIGZpbGwgb3V0IHRoZSBmb2xsb3dpbmcg c2VjdGlvbi4NCk5vdGU6IGZvciBidWlsZHMgdGhhdCBhcmUgbGlrZWx5IHRvIGNvbXBsZXRlIGlu IGxlc3MgdGhhbiAyIGhvdXJzLCBpdCBpcyBub3QNCmFjY2VwdGFibGUgdG8gc2tpcCBDSS4NCi0t Pg0KPCEtLSANCiMjIyMgRG9lcyBpdCBidWlsZCBhbmQgcnVuIHN1Y2Nlc3NmdWxseT8gDQooUGxl YXNlIGNob29zZSBhdCBsZWFzdCBvbmUgbmF0aXZlIGJ1aWxkIGFuZCwgaWYgc3VwcG9ydGVkLCBh dCBsZWFzdCBvbmUgY3Jvc3MgYnVpbGQuIE1vcmUgYXJlIGJldHRlci4pDQotIFsgXSBJIGJ1aWx0 IHRoaXMgUFIgbG9jYWxseSBmb3IgbXkgbmF0aXZlIGFyY2hpdGVjdHVyZSwgKEFSQ0gtTElCQykN Ci0gWyBdIEkgYnVpbHQgdGhpcyBQUiBsb2NhbGx5IGZvciB0aGVzZSBhcmNoaXRlY3R1cmVzIChp ZiBzdXBwb3J0ZWQuIG1hcmsgY3Jvc3NidWlsZHMpOg0KICAtIFsgXSBhYXJjaDY0LW11c2wNCiAg LSBbIF0gYXJtdjdsDQogIC0gWyBdIGFybXY2bC1tdXNsDQotLT4NClVwZGF0aW5nIHNvbWUgbG93 LWhhbmdpbmcgZnJ1aXQKCkEgcGF0Y2ggZmlsZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lk LWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8yODkwMi5wYXRjaCBpcyBhdHRhY2hlZA== --===============4684821797118233003== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-beautifulsoup-28902.patch" RnJvbSBkNWI4YjY5ZDIzMDM4YTQyNDYwZjg5ZWQwMGYzYTQ1YTQ2N2JlN2Q5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBDb2xpbiBCb290aCA8Y29saW5AaGVsaW9jYXQubmV0PgpEYXRl OiBGcmksIDE5IEZlYiAyMDIxIDAwOjQ3OjMzIC0wODAwClN1YmplY3Q6IFtQQVRDSF0gcHl0aG9u My1CZWF1dGlmdWxTb3VwNDogdXBkYXRlIHRvIDQuOS4zCgotLS0KIHNyY3BrZ3MvcHl0aG9uMy1C ZWF1dGlmdWxTb3VwNC9DSEFOR0VMT0cgfCAxNTQ3ICsrKysrKysrKysrKysrKysrKysrKysKIHNy Y3BrZ3MvcHl0aG9uMy1CZWF1dGlmdWxTb3VwNC90ZW1wbGF0ZSAgfCAgICA2ICstCiAyIGZpbGVz IGNoYW5nZWQsIDE1NTAgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL3B5dGhvbjMtQmVhdXRpZnVsU291cDQvQ0hBTkdFTE9HCgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9weXRob24zLUJlYXV0aWZ1bFNvdXA0L0NIQU5HRUxPRyBiL3NyY3BrZ3Mv cHl0aG9uMy1CZWF1dGlmdWxTb3VwNC9DSEFOR0VMT0cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAuLjYyNWJiMzRjNDJiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9w eXRob24zLUJlYXV0aWZ1bFNvdXA0L0NIQU5HRUxPRwpAQCAtMCwwICsxLDE1NDcgQEAKKz0gNC45 LjMgKDIwMjAxMDAzKQorCisqIEltcGxlbWVudGVkIGEgc2lnbmlmaWNhbnQgcGVyZm9ybWFuY2Ug b3B0aW1pemF0aW9uIHRvIHRoZSBwcm9jZXNzIG9mCisgIHNlYXJjaGluZyB0aGUgcGFyc2UgdHJl ZS4gUGF0Y2ggYnkgTW9yb3R0aS4gW2J1Zz0xODk4MjEyXQorCis9IDQuOS4yICgyMDIwMDkyNikK KworKiBGaXhlZCBhIGJ1ZyB0aGF0IGNhdXNlZCB0b28gbWFueSB0YWdzIHRvIGJlIHBvcHBlZCBm cm9tIHRoZSB0YWcKKyAgc3RhY2sgZHVyaW5nIHRyZWUgYnVpbGRpbmcsIHdoZW4gZW5jb3VudGVy aW5nIGEgY2xvc2luZyB0YWcgdGhhdCBoYWQKKyAgbm8gbWF0Y2hpbmcgb3BlbmluZyB0YWcuIFti dWc9MTg4MDQyMF0KKworKiBGaXhlZCBhIGJ1ZyB0aGF0IGluY29uc2lzdGVudGx5IG1vdmVkIGVs ZW1lbnRzIG92ZXIgd2hlbiBwYXNzaW5nCisgIGEgVGFnLCByYXRoZXIgdGhhbiBhIGxpc3QsIGlu dG8gVGFnLmV4dGVuZCgpLiBbYnVnPTE4ODU3MTBdCisKKyogU3BlY2lmeSB0aGUgc291cHNpZXZl IGRlcGVuZGVuY3kgaW4gYSB3YXkgdGhhdCBjb21wbGllcyB3aXRoCisgIFBFUCA1MDguIFBhdGNo IGJ5IE1pa2UgTmVyb25lLiBbYnVnPTE4OTM2OTZdCisKKyogQ2hhbmdlIHRoZSBzaWduYXR1cmVz IGZvciBCZWF1dGlmdWxTb3VwLmluc2VydF9iZWZvcmUgYW5kIGluc2VydF9hZnRlcgorICAod2hp Y2ggYXJlIG5vdCBpbXBsZW1lbnRlZCkgdG8gbWF0Y2ggUGFnZUVsZW1lbnQuaW5zZXJ0X2JlZm9y ZSBhbmQKKyAgaW5zZXJ0X2FmdGVyLCBxdWlldGluZyB3YXJuaW5ncyBpbiBzb21lIElERXMuIFti dWc9MTg5NzEyMF0KKworPSA0LjkuMSAoMjAyMDA1MTcpCisKKyogQWRkZWQgYSBrZXl3b3JkIGFy Z3VtZW50ICdvbl9kdXBsaWNhdGVfYXR0cmlidXRlJyB0byB0aGUKKyAgQmVhdXRpZnVsU291cEhU TUxQYXJzZXIgY29uc3RydWN0b3IgKHVzZWQgYnkgdGhlIGh0bWwucGFyc2VyIHRyZWUKKyAgYnVp bGRlcikgd2hpY2ggbGV0cyB5b3UgY3VzdG9taXplIHRoZSBoYW5kbGluZyBvZiBtYXJrdXAgdGhh dAorICBjb250YWlucyB0aGUgc2FtZSBhdHRyaWJ1dGUgbW9yZSB0aGFuIG9uY2UsIGFzIGluOgor ICA8YSBocmVmPSJ1cmwxIiBocmVmPSJ1cmwyIj4gW2J1Zz0xODc4MjA5XQorCisqIEFkZGVkIGEg ZGlzdGluY3Qgc3ViY2xhc3MsIEd1ZXNzZWRBdFBhcnNlcldhcm5pbmcsIGZvciB0aGUgd2Fybmlu ZworICBpc3N1ZWQgd2hlbiBCZWF1dGlmdWxTb3VwIGlzIGluc3RhbnRpYXRlZCB3aXRob3V0IGEg cGFyc2VyIGJlaW5nCisgIHNwZWNpZmllZC4gW2J1Zz0xODczNzg3XQorCisqIEFkZGVkIGEgZGlz dGluY3Qgc3ViY2xhc3MsIE1hcmt1cFJlc2VtYmxlc0xvY2F0b3JXYXJuaW5nLCBmb3IgdGhlCisg IHdhcm5pbmcgaXNzdWVkIHdoZW4gQmVhdXRpZnVsU291cCBpcyBpbnN0YW50aWF0ZWQgd2l0aCAn bWFya3VwJyB0aGF0CisgIGFjdHVhbGx5IHNlZW1zIHRvIGJlIGEgVVJMIG9yIHRoZSBwYXRoIHRv IGEgZmlsZSBvbgorICBkaXNrLiBbYnVnPTE4NzM3ODddCisKKyogVGhlIG5ldyBOYXZpZ2FibGVT dHJpbmcgc3ViY2xhc3NlcyAoU3R5bGVzaGVldCwgU2NyaXB0LCBhbmQKKyAgVGVtcGxhdGVTdHJp bmcpIGNhbiBub3cgYmUgaW1wb3J0ZWQgZGlyZWN0bHkgZnJvbSB0aGUgYnM0IHBhY2thZ2UuCisK KyogSWYgeW91IGVuY29kZSBhIGRvY3VtZW50IHdpdGggYSBQeXRob24tc3BlY2lmaWMgZW5jb2Rp bmcgbGlrZQorICAndW5pY29kZV9lc2NhcGUnLCB0aGF0IGVuY29kaW5nIGlzIG5vIGxvbmdlciBt ZW50aW9uZWQgaW4gdGhlIGZpbmFsCisgIFhNTCBvciBIVE1MIGRvY3VtZW50LiBJbnN0ZWFkLCBl bmNvZGluZyBpbmZvcm1hdGlvbiBpcyBvbWl0dGVkIG9yCisgIGxlZnQgYmxhbmsuIFtidWc9MTg3 NDk1NV0KKworKiBGaXhlZCB0ZXN0IGZhaWx1cmVzIHdoZW4gcnVuIGFnYWluc3Qgc291cHNlbGVj dCAyLjAuIFBhdGNoIGJ5IFRvbcOhxaEKKyAgQ2h2w6F0YWwuIFtidWc9MTg3MjI3OV0KKworPSA0 LjkuMCAoMjAyMDA0MDUpCisKKyogQWRkZWQgUGFnZUVsZW1lbnQuZGVjb21wb3NlZCwgYSBuZXcg cHJvcGVydHkgd2hpY2ggbGV0cyB5b3UKKyAgY2hlY2sgd2hldGhlciB5b3UndmUgYWxyZWFkeSBj YWxsZWQgZGVjb21wb3NlKCkgb24gYSBUYWcgb3IKKyAgTmF2aWdhYmxlU3RyaW5nLgorCisqIEVt YmVkZGVkIENTUyBhbmQgSmF2YXNjcmlwdCBpcyBub3cgc3RvcmVkIGluIGRpc3RpbmN0IFN0eWxl c2hlZXQgYW5kCisgIFNjcmlwdCB0YWdzLCB3aGljaCBhcmUgaWdub3JlZCBieSBtZXRob2RzIGxp a2UgZ2V0X3RleHQoKSBzaW5jZSBtb3N0CisgIHBlb3BsZSBkb24ndCBjb25zaWRlciB0aGlzIHNv cnQgb2YgY29udGVudCB0byBiZSAndGV4dCcuIFRoaXMKKyAgZmVhdHVyZSBpcyBub3Qgc3VwcG9y dGVkIGJ5IHRoZSBodG1sNWxpYiB0cmVlYnVpbGRlci4gW2J1Zz0xODY4ODYxXQorCisqIEFkZGVk IGEgUnVzc2lhbiB0cmFuc2xhdGlvbiBieSAnYXV0aG9yZXNzJyB0byB0aGUgcmVwb3NpdG9yeS4K KworKiBGaXhlZCBhbiB1bmhhbmRsZWQgZXhjZXB0aW9uIHdoZW4gZm9ybWF0dGluZyBhIFRhZyB0 aGF0IGhhZCBiZWVuCisgIGRlY29tcG9zZWQuW2J1Zz0xODU3NzY3XQorCisqIEZpeGVkIGEgYnVn IHRoYXQgaGFwcGVuZWQgd2hlbiBwYXNzaW5nIGEgVW5pY29kZSBmaWxlbmFtZSBjb250YWluaW5n CisgIG5vbi1BU0NJSSBjaGFyYWN0ZXJzIGFzIG1hcmt1cCBpbnRvIEJlYXV0aWZ1bCBTb3VwLCBv biBhIHN5c3RlbSB0aGF0CisgIGFsbG93cyBVbmljb2RlIGZpbGVuYW1lcy4gW2J1Zz0xODY2NzE3 XQorCisqIEFkZGVkIGEgcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uIHRvIFBhZ2VFbGVtZW50LmV4 dHJhY3QoKS4gUGF0Y2ggYnkKKyAgQXJ0aHVyIERhcmNldC4KKworPSA0LjguMiAoMjAxOTEyMjQp CisKKyogQWRkZWQgUHl0aG9uIGRvY3N0cmluZ3MgdG8gYWxsIHB1YmxpYyBtZXRob2RzIG9mIHRo ZSBtb3N0IGNvbW1vbmx5CisgIHVzZWQgY2xhc3Nlcy4KKworKiBBZGRlZCBhIENoaW5lc2UgdHJh bnNsYXRpb24gYnkgRGVyb24gV2FuZyBhbmQgYSBCcmF6aWxpYW4gUG9ydHVndWVzZQorICB0cmFu c2xhdGlvbiBieSBDZXphciBQZWl4ZWlybyB0byB0aGUgcmVwb3NpdG9yeS4KKworKiBGaXhlZCB0 d28gZGVwcmVjYXRpb24gd2FybmluZ3MuIFBhdGNoZXMgYnkgQ29saW4KKyAgV2F0c29uIGFuZCBO aWNob2xhcyBOZXVtYW5uLiBbYnVnPTE4NDc1OTJdIFtidWc9MTg1NTMwMV0KKworKiBUaGUgaHRt bC5wYXJzZXIgdHJlZSBidWlsZGVyIG5vdyBjb3JyZWN0bHkgaGFuZGxlcyBET0NUWVBFcyB0aGF0 IGFyZQorICBub3QgdXBwZXJjYXNlLiBbYnVnPTE4NDg0MDFdCisKKyogUGFnZUVsZW1lbnQuc2Vs ZWN0KCkgbm93IHJldHVybnMgYSBSZXN1bHRTZXQgcmF0aGVyIHRoYW4gYSByZWd1bGFyCisgIGxp c3QsIG1ha2luZyBpdCBjb25zaXN0ZW50IHdpdGggbWV0aG9kcyBsaWtlIGZpbmRfYWxsKCkuCisK Kz0gNC44LjEgKDIwMTkxMDA2KQorCisqIFdoZW4gdGhlIGh0bWwucGFyc2VyIG9yIGh0bWw1bGli IHBhcnNlcnMgYXJlIGluIHVzZSwgQmVhdXRpZnVsIFNvdXAKKyAgd2lsbCwgYnkgZGVmYXVsdCwg cmVjb3JkIHRoZSBwb3NpdGlvbiBpbiB0aGUgb3JpZ2luYWwgZG9jdW1lbnQgd2hlcmUKKyAgZWFj aCB0YWcgd2FzIGVuY291bnRlcmVkLiBUaGlzIGluY2x1ZGVzIGxpbmUgbnVtYmVyIChUYWcuc291 cmNlbGluZSkKKyAgYW5kIHBvc2l0aW9uIHdpdGhpbiBhIGxpbmUgKFRhZy5zb3VyY2Vwb3MpLiAg QmFzZWQgb24gY29kZSBieSBDaHJpcworICBNYXlvLiBbYnVnPTE3NDI5MjFdCisKKyogV2hlbiBp bnN0YW50aWF0aW5nIGEgQmVhdXRpZnVsU291cCBvYmplY3QsIGl0J3Mgbm93IHBvc3NpYmxlIHRv CisgICBwcm92aWRlIGEgZGljdGlvbmFyeSAoJ2VsZW1lbnRfY2xhc3NlcycpIG9mIHRoZSBjbGFz c2VzIHlvdSdkIGxpa2UgdG8gYmUKKyAgIGluc3RhbnRpYXRlZCBpbnN0ZWFkIG9mIFRhZywgTmF2 aWdhYmxlU3RyaW5nLCBldGMuCisKKyogRml4ZWQgdGhlIGRlZmluaXRpb24gb2YgdGhlIGRlZmF1 bHQgWE1MIG5hbWVzcGFjZSB3aGVuIHVzaW5nCisgICBseG1sIDQuNC4gUGF0Y2ggYnkgSXNhYWMg TXVzZS4gW2J1Zz0xODQwMTQxXQorCisqIEZpeGVkIGEgY3Jhc2ggd2hlbiBwcmV0dHktcHJpbnRp bmcgdGFncyB0aGF0IHdlcmUgbm90IGNyZWF0ZWQKKyAgIGR1cmluZyBpbml0aWFsIHBhcnNpbmcu IFtidWc9MTgzODkwM10KKworKiBDb3B5aW5nIGEgVGFnIHByZXNlcnZlcyBpbmZvcm1hdGlvbiB0 aGF0IHdhcyBvcmlnaW5hbGx5IG9idGFpbmVkIGZyb20KKyAgIHRoZSBUcmVlQnVpbGRlciB1c2Vk IHRvIGJ1aWxkIHRoZSBvcmlnaW5hbCBUYWcuIFtidWc9MTgzODkwM10KKworKiBSYWlzZSBhbiBl eHBsYW5hdG9yeSBleGNlcHRpb24gd2hlbiB0aGUgdW5kZXJseWluZyBwYXJzZXIKKyAgIGNvbXBs ZXRlbHkgcmVqZWN0cyB0aGUgaW5jb21pbmcgbWFya3VwLiBbYnVnPTE4Mzg4NzddCisKKyogQXZv aWQgYSBjcmFzaCB3aGVuIHRyeWluZyB0byBkZXRlY3QgdGhlIGRlY2xhcmVkIGVuY29kaW5nIG9m IGEKKyAgIFVuaWNvZGUgZG9jdW1lbnQuIFtidWc9MTgzODg3N10KKworKiBBdm9pZCBhIGNyYXNo IHdoZW4gdW5waWNrbGluZyBjZXJ0YWluIHBhcnNlIHRyZWVzIGdlbmVyYXRlZAorICAgdXNpbmcg aHRtbDVsaWIgb24gUHl0aG9uIDMuIFtidWc9MTg0MzU0NV0KKworPSA0LjguMCAoMjAxOTA3MjAs ICJPbmUgU21hbGwgU291cCIpCisKK1RoaXMgcmVsZWFzZSBmb2N1c2VzIG9uIG1ha2luZyBpdCBl YXNpZXIgdG8gY3VzdG9taXplIEJlYXV0aWZ1bCBTb3VwJ3MKK2lucHV0IG1lY2hhbmlzbSAodGhl IFRyZWVCdWlsZGVyKSBhbmQgb3V0cHV0IG1lY2hhbmlzbSAodGhlIEZvcm1hdHRlcikuCisKKyog WW91IGNhbiBjdXN0b21pemUgdGhlIFRyZWVCdWlsZGVyIG9iamVjdCBieSBwYXNzaW5nIGtleXdv cmQKKyAgYXJndW1lbnRzIGludG8gdGhlIEJlYXV0aWZ1bFNvdXAgY29uc3RydWN0b3IuIFRob3Nl IGtleXdvcmQKKyAgYXJndW1lbnRzIHdpbGwgYmUgcGFzc2VkIGFsb25nIGludG8gdGhlIFRyZWVC dWlsZGVyIGNvbnN0cnVjdG9yLgorCisgIFRoZSBtYWluIHJlYXNvbiB0byBkbyB0aGlzIHJpZ2h0 IG5vdyBpcyB0byBjaGFuZ2UgaG93IHdoaWNoCisgIGF0dHJpYnV0ZXMgYXJlIHRyZWF0ZWQgYXMg bXVsdGktdmFsdWVkIGF0dHJpYnV0ZXMgKHRoZSB3YXkgJ2NsYXNzJworICBpcyB0cmVhdGVkIGJ5 IGRlZmF1bHQpLiBZb3UgY2FuIGRvIHRoaXMgd2l0aCB0aGUKKyAgJ211bHRpX3ZhbHVlZF9hdHRy aWJ1dGVzJyBhcmd1bWVudC4gW2J1Zz0xODMyOTc4XQorCisqIFRoZSByb2xlIG9mIEZvcm1hdHRl ciBvYmplY3RzIGhhcyBiZWVuIGdyZWF0bHkgZXhwYW5kZWQuIFRoZSBGb3JtYXR0ZXIKKyAgY2xh c3Mgbm93IGNvbnRyb2xzIHRoZSBmb2xsb3dpbmc6CisKKyAgLSBUaGUgZnVuY3Rpb24gdG8gY2Fs bCB0byBwZXJmb3JtIGVudGl0eSBzdWJzdGl0dXRpb24uIChUaGlzIHdhcworICAgIHByZXZpb3Vz bHkgRm9ybWF0dGVyJ3Mgb25seSBqb2IuKQorICAtIFdoaWNoIHRhZ3Mgc2hvdWxkIGJlIHRyZWF0 ZWQgYXMgY29udGFpbmluZyBDREFUQSBhbmQgaGF2ZSB0aGVpcgorICAgIGNvbnRlbnRzIGV4ZW1w dCBmcm9tIGVudGl0eSBzdWJzdGl0dXRpb24uCisgIC0gVGhlIG9yZGVyIGluIHdoaWNoIGEgdGFn J3MgYXR0cmlidXRlcyBhcmUgb3V0cHV0LiBbYnVnPTE4MTI0MjJdCisgIC0gV2hldGhlciBvciBu b3QgdG8gcHV0IGEgJy8nIGluc2lkZSBhIHZvaWQgZWxlbWVudCwgZS5nLiAnPGJyLz4nIHZzICc8 YnI+JworCisgIEFsbCBwcmVleGlzdGluZyBjb2RlIHNob3VsZCB3b3JrIGFzIGJlZm9yZS4KKwor KiBBZGRlZCBhIG5ldyBtZXRob2QgdG8gdGhlIEFQSSwgVGFnLnNtb290aCgpLCB3aGljaCBjb25z b2xpZGF0ZXMKKyAgbXVsdGlwbGUgYWRqYWNlbnQgTmF2aWdhYmxlU3RyaW5nIGVsZW1lbnRzLiBb YnVnPTE2OTcyOTZdCisKKyogJmFwb3M7ICh3aGljaCBpcyB2YWxpZCBpbiBYTUwsIFhIVE1MLCBh bmQgSFRNTCA1LCBidXQgbm90IEhUTUwgNCkgaXMgYWx3YXlzCisgIHJlY29nbml6ZWQgYXMgYSBu YW1lZCBlbnRpdHkgYW5kIGNvbnZlcnRlZCB0byBhIHNpbmdsZSBxdW90ZS4gW2J1Zz0xODE4NzIx XQorCis9IDQuNy4xICgyMDE5MDEwNikKKworKiBGaXhlZCBhIHNpZ25pZmljYW50IHBlcmZvcm1h bmNlIHByb2JsZW0gaW50cm9kdWNlZCBpbiA0LjcuMC4gW2J1Zz0xODEwNjE3XQorCisqIEZpeGVk IGFuIGluY29ycmVjdGx5IHJhaXNlZCBleGNlcHRpb24gd2hlbiBpbnNlcnRpbmcgYSB0YWcgYmVm b3JlIG9yCisgIGFmdGVyIGFuIGlkZW50aWNhbCB0YWcuIFtidWc9MTgxMDY5Ml0KKworKiBCZWF1 dGlmdWwgU291cCB3aWxsIG5vIGxvbmdlciB0cnkgdG8ga2VlcCB0cmFjayBvZiBuYW1lc3BhY2Vz IHRoYXQKKyAgYXJlIG5vdCBkZWZpbmVkIHdpdGggYSBwcmVmaXg7IHRoaXMgY2FuIGNvbmZ1c2Ug c291cHNlbGVjdC4gW2J1Zz0xODEwNjgwXQorCisqIFRyaWVkIGV2ZW4gaGFyZGVyIHRvIGF2b2lk IHRoZSBkZXByZWNhdGlvbiB3YXJuaW5nIG9yaWdpbmFsbHkgZml4ZWQgaW4KKyAgIDQuNi4xLiBb YnVnPTE3Nzg5MDldCisKKz0gNC43LjAgKDIwMTgxMjMxKQorCisqIEJlYXV0aWZ1bCBTb3VwJ3Mg Q1NTIFNlbGVjdG9yIGltcGxlbWVudGF0aW9uIGhhcyBiZWVuIHJlcGxhY2VkIGJ5IGEKKyAgZGVw ZW5kZW5jeSBvbiBJc2FhYyBNdXNlJ3MgU291cFNpZXZlIHByb2plY3QgKHRoZSBzb3Vwc2lldmUg cGFja2FnZQorICBvbiBQeVBJKS4gVGhlIGdvb2QgbmV3cyBpcyB0aGF0IFNvdXBTaWV2ZSBoYXMg YSBtdWNoIG1vcmUgcm9idXN0IGFuZAorICBjb21wbGV0ZSBpbXBsZW1lbnRhdGlvbiBvZiBDU1Mg c2VsZWN0b3JzLCByZXNvbHZpbmcgYSBsYXJnZSBudW1iZXIKKyAgb2YgbG9uZ3N0YW5kaW5nIGlz c3Vlcy4gVGhlIGJhZCBuZXdzIGlzIHRoYXQgZnJvbSB0aGlzIHBvaW50IG9ud2FyZCwKKyAgU291 cFNpZXZlIG11c3QgYmUgaW5zdGFsbGVkIGlmIHlvdSB3YW50IHRvIHVzZSB0aGUgc2VsZWN0KCkg bWV0aG9kLgorCisgIFlvdSBkb24ndCBoYXZlIHRvIGNoYW5nZSBhbnl0aGluZyBsZiB5b3UgaW5z dGFsbGVkIEJlYXV0aWZ1bCBTb3VwCisgIHRocm91Z2ggcGlwIChTb3VwU2lldmUgd2lsbCBiZSBh dXRvbWF0aWNhbGx5IGluc3RhbGxlZCB3aGVuIHlvdQorICB1cGdyYWRlIEJlYXV0aWZ1bCBTb3Vw KSBvciBpZiB5b3UgZG9uJ3QgdXNlIENTUyBzZWxlY3RvcnMgZnJvbQorICB3aXRoaW4gQmVhdXRp ZnVsIFNvdXAuCisKKyAgU291cFNpZXZlIGRvY3VtZW50YXRpb246IGh0dHBzOi8vZmFjZWxlc3N1 c2VyLmdpdGh1Yi5pby9zb3Vwc2lldmUvCisKKyogQWRkZWQgdGhlIFBhZ2VFbGVtZW50LmV4dGVu ZCgpIG1ldGhvZCwgd2hpY2ggd29ya3MgbGlrZSBsaXN0LmFwcGVuZCgpLgorICAgW2J1Zz0xNTE0 OTcwXQorCisqIFBhZ2VFbGVtZW50Lmluc2VydF9iZWZvcmUoKSBhbmQgaW5zZXJ0X2FmdGVyKCkg bm93IHRha2UgYSB2YXJpYWJsZQorICAgbnVtYmVyIG9mIGFyZ3VtZW50cy4gW2J1Zz0xNTE0OTcw XQorCisqIEZpeCBhIG51bWJlciBvZiBwcm9ibGVtcyB3aXRoIHRoZSB0cmVlIGJ1aWxkZXIgdGhh dCBjYXVzZWQKKyAgdHJlZXMgdGhhdCB3ZXJlIHN1cGVyZmljaWFsbHkgb2theSwgYnV0IHdoaWNo IGZlbGwgYXBhcnQgd2hlbiBiaXRzCisgIHdlcmUgZXh0cmFjdGVkLiBQYXRjaCBieSBJc2FhYyBN dXNlLiBbYnVnPTE3ODI5MjgsMTgwOTkxMF0KKworKiBGaXhlZCBhIHByb2JsZW0gd2l0aCB0aGUg dHJlZSBidWlsZGVyIGluIHdoaWNoIGVsZW1lbnRzIHRoYXQKKyAgY29udGFpbmVkIG5vIGNvbnRl bnQgKHN1Y2ggYXMgZW1wdHkgY29tbWVudHMgYW5kIGFsbC13aGl0ZXNwYWNlCisgIGVsZW1lbnRz KSB3ZXJlIG5vdCBiZWluZyB0cmVhdGVkIGFzIHBhcnQgb2YgdGhlIHRyZWUuIFBhdGNoIGJ5IElz YWFjCisgIE11c2UuIFtidWc9MTc5ODY5OV0KKworKiBGaXhlZCBhIHByb2JsZW0gd2l0aCBtdWx0 aS12YWx1ZWQgYXR0cmlidXRlcyB3aGVyZSB0aGUgdmFsdWUKKyAgY29udGFpbmVkIHdoaXRlc3Bh Y2UuIFRoYW5rcyB0byBKZW5zIFN2YWxnYWFyZCBmb3IgdGhlCisgIGZpeC4gW2J1Zz0xNzg3NDUz XQorCisqIENsYXJpZmllZCBhbWJpZ3VvdXMgbGljZW5zZSBzdGF0ZW1lbnRzIGluIHRoZSBzb3Vy Y2UgY29kZS4gQmVhdXRpZnVsCisgIFNvdXAgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNl bnNlLCBhbmQgaGFzIGJlZW4gc2luY2UgNC40LjAuCisKKyogVGhpcyBmaWxlIGhhcyBiZWVuIHJl bmFtZWQgZnJvbSBORVdTLnR4dCB0byBDSEFOR0VMT0cuCisKKz0gNC42LjMgKDIwMTgwODEyKQor CisqIEV4YWN0bHkgdGhlIHNhbWUgYXMgNC42LjIuIFJlLXJlbGVhc2VkIHRvIG1ha2UgdGhlIFJF QURNRSBmaWxlCisgIHJlbmRlciBwcm9wZXJseSBvbiBQeVBJLgorCis9IDQuNi4yICgyMDE4MDgx MikKKworKiBGaXggYW4gZXhjZXB0aW9uIHdoZW4gYSBjdXN0b20gZm9ybWF0dGVyIHdhcyBhc2tl ZCB0byBmb3JtYXQgYSB2b2lkCisgIGVsZW1lbnQuIFtidWc9MTc4NDQwOF0KKworPSA0LjYuMSAo MjAxODA3MjgpCisKKyogU3RvcCBkYXRhIGxvc3Mgd2hlbiBlbmNvdW50ZXJpbmcgYW4gZW1wdHkg bnVtZXJpYyBlbnRpdHksIGFuZAorICBwb3NzaWJseSBpbiBvdGhlciBjYXNlcy4gIFRoYW5rcyB0 byB0b3Mua2FtaXlhIGZvciB0aGUgZml4LiBbYnVnPTE2OTg1MDNdCisKKyogUHJlc2VydmUgWE1M IG5hbWVzcGFjZXMgaW50cm9kdWNlZCBpbnNpZGUgYW4gWE1MIGRvY3VtZW50LCBub3QganVzdAor ICAgdGhlIG9uZXMgaW50cm9kdWNlZCBhdCB0aGUgdG9wIGxldmVsLiBbYnVnPTE3MTg3ODddCisK KyogQWRkZWQgYSBuZXcgZm9ybWF0dGVyLCAiaHRtbDUiLCB3aGljaCByZXByZXNlbnRzIHZvaWQg ZWxlbWVudHMKKyAgIGFzICI8ZWxlbWVudD4iIHJhdGhlciB0aGFuICI8ZWxlbWVudC8+Ii4gIFti dWc9MTcxNjI3Ml0KKworKiBGaXhlZCBhIHByb2JsZW0gd2hlcmUgdGhlIGh0bWwucGFyc2VyIHRy ZWUgYnVpbGRlciBpbnRlcnByZXRlZAorICBhIHN0cmluZyBsaWtlICImZm9vICIgYXMgdGhlIGNo YXJhY3RlciBlbnRpdHkgIiZmb287IiAgW2J1Zz0xNzI4NzA2XQorCisqIENvcnJlY3RseSBoYW5k bGUgaW52YWxpZCBIVE1MIG51bWVyaWMgY2hhcmFjdGVyIGVudGl0aWVzIGxpa2UgJiMxNDc7Cisg IHdoaWNoIHJlZmVyZW5jZSBjb2RlIHBvaW50cyB0aGF0IGFyZSBub3QgVW5pY29kZSBjb2RlIHBv aW50cy4gTm90ZQorICB0aGF0IHRoaXMgaXMgb25seSBmaXhlZCB3aGVuIEJlYXV0aWZ1bCBTb3Vw IGlzIHVzZWQgd2l0aCB0aGUKKyAgaHRtbC5wYXJzZXIgcGFyc2VyIC0tIGh0bWw1bGliIGFscmVh ZHkgd29ya2VkIGFuZCBJIGNvdWxkbid0IGZpeCBpdAorICB3aXRoIGx4bWwuICBbYnVnPTE3ODI5 MzNdCisKKyogSW1wcm92ZWQgdGhlIHdhcm5pbmcgZ2l2ZW4gd2hlbiBubyBwYXJzZXIgaXMgc3Bl Y2lmaWVkLiBbYnVnPTE3ODA1NzFdCisKKyogV2hlbiBtYXJrdXAgY29udGFpbnMgZHVwbGljYXRl IGVsZW1lbnRzLCBhIHNlbGVjdCgpIGNhbGwgdGhhdAorICBpbmNsdWRlcyBtdWx0aXBsZSBtYXRj aCBjbGF1c2VzIHdpbGwgbWF0Y2ggYWxsIHJlbGV2YW50CisgIGVsZW1lbnRzLiBbYnVnPTE3NzA1 OTZdCisKKyogRml4ZWQgY29kZSB0aGF0IHdhcyBjYXVzaW5nIGRlcHJlY2F0aW9uIHdhcm5pbmdz IGluIHJlY2VudCBQeXRob24gMworICB2ZXJzaW9ucy4gSW5jbHVkZXMgYSBwYXRjaCBmcm9tIFZp bGxlIFNreXR0w6QuIFtidWc9MTc3ODkwOV0gW2J1Zz0xNjg5NDk2XQorCisqIEZpeGVkIGEgV2lu ZG93cyBjcmFzaCBpbiBkaWFnbm9zZSgpIHdoZW4gY2hlY2tpbmcgd2hldGhlciBhIGxvbmcKKyAg bWFya3VwIHN0cmluZyBpcyBhIGZpbGVuYW1lLiBbYnVnPTE3MzcxMjFdCisKKyogU3RvcHBlZCBI VE1MUGFyc2VyIGZyb20gcmFpc2luZyBhbiBleGNlcHRpb24gaW4gdmVyeSByYXJlIGNhc2VzIG9m CisgIGJhZCBtYXJrdXAuIFtidWc9MTcwODgzMV0KKworKiBGaXhlZCBhIGJ1ZyB3aGVyZSBmaW5k X2FsbCgpIHdhcyBub3Qgd29ya2luZyB3aGVuIGFza2VkIHRvIGZpbmQgYQorICB0YWcgd2l0aCBh IG5hbWVzcGFjZWQgbmFtZSBpbiBhbiBYTUwgZG9jdW1lbnQgdGhhdCB3YXMgcGFyc2VkIGFzCisg IEhUTUwuIFtidWc9MTcyMzc4M10KKworKiBZb3UgY2FuIGdldCBmaW5lciBjb250cm9sIG92ZXIg Zm9ybWF0dGluZyBieSBzdWJjbGFzc2luZworICBiczQuZWxlbWVudC5Gb3JtYXR0ZXIgYW5kIHBh c3NpbmcgYSBGb3JtYXR0ZXIgaW5zdGFuY2UgaW50byAoZS5nLikKKyAgZW5jb2RlKCkuIFtidWc9 MTcxNjI3Ml0KKworKiBZb3UgY2FuIHBhc3MgYSBkaWN0aW9uYXJ5IG9mIGBhdHRyc2AgaW50bwor ICBCZWF1dGlmdWxTb3VwLm5ld190YWcuIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgdG8gY3JlYXRl IGEgdGFnIHdpdGgKKyAgYW4gYXR0cmlidXRlIGxpa2UgJ25hbWUnIHRoYXQgd291bGQgb3RoZXJ3 aXNlIGJlIG1hc2tlZCBieSBhbm90aGVyCisgIGFyZ3VtZW50IG9mIG5ld190YWcuIFtidWc9MTc3 OTI3Nl0KKworKiBDbGFyaWZpZWQgdGhlIGRlcHJlY2F0aW9uIHdhcm5pbmcgd2hlbiBhY2Nlc3Np bmcgdGFnLmZvb1RhZywgdG8gY292ZXIKKyAgdGhlIHBvc3NpYmlsaXR5IHRoYXQgeW91IG1pZ2h0 IHJlYWxseSBoYXZlIGJlZW4gbG9va2luZyBmb3IgYSB0YWcKKyAgY2FsbGVkICdmb29UYWcnLgor Cis9IDQuNi4wICgyMDE3MDUwNykgPQorCisqIEFkZGVkIHRoZSBgVGFnLmdldF9hdHRyaWJ1dGVf bGlzdGAgbWV0aG9kLCB3aGljaCBhY3RzIGxpa2UgYFRhZy5nZXRgIGZvcgorICBnZXR0aW5nIHRo ZSB2YWx1ZSBvZiBhbiBhdHRyaWJ1dGUsIGJ1dCB3aGljaCBhbHdheXMgcmV0dXJucyBhIGxpc3Qs CisgIHdoZXRoZXIgb3Igbm90IHRoZSBhdHRyaWJ1dGUgaXMgYSBtdWx0aS12YWx1ZSBhdHRyaWJ1 dGUuIFtidWc9MTY3ODU4OV0KKworKiBJdCdzIG5vdyBwb3NzaWJsZSB0byB1c2UgYSB0YWcncyBu YW1lc3BhY2UgcHJlZml4IHdoZW4gc2VhcmNoaW5nLAorICBlLmcuIHNvdXAuZmluZCgnbmFtZXNw YWNlOnRhZycpIFtidWc9MTY1NTMzMl0KKworKiBJbXByb3ZlZCB0aGUgaGFuZGxpbmcgb2YgZW1w dHktZWxlbWVudCB0YWdzIGxpa2UgPGJyPiB3aGVuIHVzaW5nIHRoZQorICBodG1sLnBhcnNlciBw YXJzZXIuIFtidWc9MTY3NjkzNV0KKworKiBIVE1MIHBhcnNlcnMgdHJlYXQgYWxsIEhUTUw0IGFu ZCBIVE1MNSBlbXB0eSBlbGVtZW50IHRhZ3MgKGFrYSB2b2lkCisgIGVsZW1lbnQgdGFncykgY29y cmVjdGx5LiBbYnVnPTE2NTY5MDldCisKKyogTmFtZXNwYWNlIHByZWZpeCBpcyBwcmVzZXJ2ZWQg d2hlbiBhbiBYTUwgdGFnIGlzIGNvcGllZC4gVGhhbmtzCisgIHRvIFZpa2FzIGZvciBhIHBhdGNo IGFuZCB0ZXN0LiBbYnVnPTE2ODUxNzJdCisKKz0gNC41LjMgKDIwMTcwMTAyKSA9CisKKyogRml4 ZWQgZm9zdGVyIHBhcmVudGluZyB3aGVuIGh0bWw1bGliIGlzIHRoZSB0cmVlIGJ1aWxkZXIuIFRo YW5rcyB0bworICBHZW9mZnJleSBTbmVkZG9uIGZvciBhIHBhdGNoIGFuZCB0ZXN0LgorICAKKyog Rml4ZWQgeWV0IGFub3RoZXIgcHJvYmxlbSB0aGF0IGNhdXNlZCB0aGUgaHRtbDVsaWIgdHJlZSBi dWlsZGVyIHRvCisgIGNyZWF0ZSBhIGRpc2Nvbm5lY3RlZCBwYXJzZSB0cmVlLiBbYnVnPTE2Mjk4 MjVdCisKKz0gNC41LjIgKDIwMTcwMTAyKSA9CisKKyogQXBhcnQgZnJvbSB0aGUgdmVyc2lvbiBu dW1iZXIsIHRoaXMgcmVsZWFzZSBpcyBpZGVudGljYWwgdG8KKyAgNC41LjMuIER1ZSB0byB1c2Vy IGVycm9yLCBpdCBjb3VsZCBub3QgYmUgY29tcGxldGVseSB1cGxvYWRlZCB0bworICBQeVBJLiBV c2UgNC41LjMgaW5zdGVhZC4KKworPSA0LjUuMSAoMjAxNjA4MDIpID0KKworKiBGaXhlZCBhIGNy YXNoIHdoZW4gcGFzc2luZyBVbmljb2RlIG1hcmt1cCB0aGF0IGNvbnRhaW5lZCBhCisgIHByb2Nl c3NpbmcgaW5zdHJ1Y3Rpb24gaW50byB0aGUgbHhtbCBIVE1MIHBhcnNlciBvbiBQeXRob24KKyAg My4gW2J1Zz0xNjA4MDQ4XQorCis9IDQuNS4wICgyMDE2MDcxOSkgPQorCisqIEJlYXV0aWZ1bCBT b3VwIGlzIG5vIGxvbmdlciBjb21wYXRpYmxlIHdpdGggUHl0aG9uIDIuNi4gVGhpcworICBhY3R1 YWxseSBoYXBwZW5lZCBhIGZldyByZWxlYXNlcyBhZ28sIGJ1dCBpdCdzIG5vdyBvZmZpY2lhbC4K KworKiBCZWF1dGlmdWwgU291cCB3aWxsIG5vdyB3b3JrIHdpdGggdmVyc2lvbnMgb2YgaHRtbDVs aWIgZ3JlYXRlciB0aGFuCisgIDAuOTk5OTk5OTkuIFtidWc9MTYwMzI5OV0KKworKiBJZiBhIHNl YXJjaCBhZ2FpbnN0IGVhY2ggaW5kaXZpZHVhbCB2YWx1ZSBvZiBhIG11bHRpLXZhbHVlZAorICBh dHRyaWJ1dGUgZmFpbHMsIHRoZSBzZWFyY2ggd2lsbCBiZSBydW4gb25lIGZpbmFsIHRpbWUgYWdh aW5zdCB0aGUKKyAgY29tcGxldGUgYXR0cmlidXRlIHZhbHVlIGNvbnNpZGVyZWQgYXMgYSBzaW5n bGUgc3RyaW5nLiBUaGF0IGlzLCBpZgorICBhIHRhZyBoYXMgY2xhc3M9ImZvbyBiYXIiIGFuZCBu ZWl0aGVyICJmb28iIG5vciAiYmFyIiBtYXRjaGVzLCBidXQKKyAgImZvbyBiYXIiIGRvZXMsIHRo ZSB0YWcgaXMgbm93IGNvbnNpZGVyZWQgYSBtYXRjaC4KKworICBUaGlzIGhhcHBlbmVkIGluIHBy ZXZpb3VzIHZlcnNpb25zLCBidXQgb25seSB3aGVuIHRoZSB2YWx1ZSBiZWluZworICBzZWFyY2hl ZCBmb3Igd2FzIGEgc3RyaW5nLiBOb3cgaXQgYWxzbyB3b3JrcyB3aGVuIHRoYXQgdmFsdWUgaXMK KyAgYSByZWd1bGFyIGV4cHJlc3Npb24sIGEgbGlzdCBvZiBzdHJpbmdzLCBldGMuIFtidWc9MTQ3 Njg2OF0KKworKiBGaXhlZCBhIGJ1ZyB0aGF0IGRlcmFuZ2VkIHRoZSB0cmVlIHdoZW4gYSB3aGl0 ZXNwYWNlIGVsZW1lbnQgd2FzCisgIHJlcGFyZW50ZWQgaW50byBhIHRhZyB0aGF0IGNvbnRhaW5l ZCBhbiBpZGVudGljYWwgd2hpdGVzcGFjZQorICBlbGVtZW50LiBbYnVnPTE1MDUzNTFdCisKKyog QWRkZWQgc3VwcG9ydCBmb3IgQ1NTIHNlbGVjdG9yIHZhbHVlcyB0aGF0IGNvbnRhaW4gcXVvdGVk IHNwYWNlcywKKyAgc3VjaCBhcyB0YWdbc3R5bGU9ImRpc3BsYXk6IGZvbyJdLiBbYnVnPTE1NDA1 ODhdCisKKyogQ29ycmVjdGVkIGhhbmRsaW5nIG9mIFhNTCBwcm9jZXNzaW5nIGluc3RydWN0aW9u cy4gW2J1Zz0xNTA0MzkzXQorCisqIENvcnJlY3RlZCBhbiBlbmNvZGluZyBlcnJvciB0aGF0IGhh cHBlbmVkIHdoZW4gYSBCZWF1dGlmdWxTb3VwCisgIG9iamVjdCB3YXMgY29waWVkLiBbYnVnPTE1 NTQ0MzldCisKKyogVGhlIGNvbnRlbnRzIG9mIDx0ZXh0YXJlYT4gdGFncyB3aWxsIG5vIGxvbmdl ciBiZSBtb2RpZmllZCB3aGVuIHRoZQorICB0cmVlIGlzIHByZXR0aWZpZWQuIFtidWc9MTU1NTgy OV0KKworKiBXaGVuIGEgQmVhdXRpZnVsU291cCBvYmplY3QgaXMgcGlja2xlZCBidXQgaXRzIHRy ZWUgYnVpbGRlciBjYW5ub3QKKyAgYmUgcGlja2xlZCwgaXRzIC5idWlsZGVyIGF0dHJpYnV0ZSBp cyBzZXQgdG8gTm9uZSBpbnN0ZWFkIG9mIGJlaW5nCisgIGRlc3Ryb3llZC4gVGhpcyBhdm9pZHMg YSBwZXJmb3JtYW5jZSBwcm9ibGVtIG9uY2UgdGhlIG9iamVjdCBpcworICB1bnBpY2tsZWQuIFti dWc9MTUyMzYyOV0KKworKiBTcGVjaWZ5IHRoZSBmaWxlIGFuZCBsaW5lIG51bWJlciB3aGVuIHdh cm5pbmcgYWJvdXQgYQorICBCZWF1dGlmdWxTb3VwIG9iamVjdCBiZWluZyBpbnN0YW50aWF0ZWQg d2l0aG91dCBhIHBhcnNlciBiZWluZworICBzcGVjaWZpZWQuIFtidWc9MTU3NDY0N10KKworKiBU aGUgYGxpbWl0YCBhcmd1bWVudCB0byBgc2VsZWN0KClgIG5vdyB3b3JrcyBjb3JyZWN0bHksIHRo b3VnaCBpdCdzCisgIG5vdCBpbXBsZW1lbnRlZCB2ZXJ5IGVmZmljaWVudGx5LiBbYnVnPTE1MjA1 MzBdCisKKyogRml4ZWQgYSBQeXRob24gMyBCeXRlV2FybmluZyB3aGVuIGEgVVJMIHdhcyBwYXNz ZWQgaW4gYXMgdGhvdWdoIGl0CisgIHdlcmUgbWFya3VwLiBUaGFua3MgdG8gSmFtZXMgU2FsdGVy IGZvciBhIHBhdGNoIGFuZAorICB0ZXN0LiBbYnVnPTE1MzM3NjJdCisKKyogV2UgZG9uJ3QgcnVu IHRoZSBjaGVjayBmb3IgYSBmaWxlbmFtZSBwYXNzZWQgaW4gYXMgbWFya3VwIGlmIHRoZQorICAn ZmlsZW5hbWUnIGNvbnRhaW5zIGEgbGVzcy10aGFuIGNoYXJhY3RlcjsgdGhlIGxlc3MtdGhhbiBj aGFyYWN0ZXIKKyAgaW5kaWNhdGVzIGl0J3MgbW9zdCBsaWtlbHkgYSB2ZXJ5IHNtYWxsIGRvY3Vt ZW50LiBbYnVnPTE1Nzc4NjRdCisKKz0gNC40LjEgKDIwMTUwOTI4KSA9CisKKyogRml4ZWQgYSBi dWcgdGhhdCBkZXJhbmdlZCB0aGUgdHJlZSB3aGVuIHBhcnQgb2YgaXQgd2FzCisgIHJlbW92ZWQu IFRoYW5rcyB0byBFcmljIFdlaXNlciBmb3IgdGhlIHBhdGNoIGFuZCBKb2huIFdpc2VtYW4gZm9y IGEKKyAgdGVzdC4gW2J1Zz0xNDgxNTIwXQorCisqIEZpeGVkIGEgcGFyc2UgYnVnIHdpdGggdGhl IGh0bWw1bGliIHRyZWUtYnVpbGRlci4gVGhhbmtzIHRvIFJvZWwKKyAgS3JhbWVyIGZvciB0aGUg cGF0Y2guIFtidWc9MTQ4Mzc4MV0KKworKiBJbXByb3ZlZCB0aGUgaW1wbGVtZW50YXRpb24gb2Yg Q1NTIHNlbGVjdG9yIGdyb3VwaW5nLiBUaGFua3MgdG8KKyAgT3JhbmdhaW4gZm9yIHRoZSBwYXRj aC4gW2J1Zz0xNDg0NTQzXQorCisqIEZpeGVkIHRoZSB0ZXN0X2RldGVjdF91dGY4IHRlc3Qgc28g dGhhdCBpdCB3b3JrcyB3aGVuIGNoYXJkZXQgaXMKKyAgaW5zdGFsbGVkLiBbYnVnPTE0NzEzNTld CisKKyogQ29ycmVjdGVkIHRoZSBvdXRwdXQgb2YgRGVjbGFyYXRpb24gb2JqZWN0cy4gW2J1Zz0x NDc3ODQ3XQorCisKKz0gNC40LjAgKDIwMTUwNzAzKSA9CisKK0VzcGVjaWFsbHkgaW1wb3J0YW50 IGNoYW5nZXM6CisKKyogQWRkZWQgYSB3YXJuaW5nIHdoZW4geW91IGluc3RhbnRpYXRlIGEgQmVh dXRpZnVsU291cCBvYmplY3Qgd2l0aG91dAorICBleHBsaWNpdGx5IG5hbWluZyBhIHBhcnNlci4g W2J1Zz0xMzk4ODY2XQorCisqIF9fcmVwcl9fIG5vdyByZXR1cm5zIGFuIEFTQ0lJIGJ5dGVzdHJp bmcgaW4gUHl0aG9uIDIsIGFuZCBhIFVuaWNvZGUKKyAgc3RyaW5nIGluIFB5dGhvbiAzLCBpbnN0 ZWFkIG9mIGEgVVRGOC1lbmNvZGVkIGJ5dGVzdHJpbmcgaW4gYm90aAorICB2ZXJzaW9ucy4gSW4g UHl0aG9uIDMsIF9fc3RyX18gbm93IHJldHVybnMgYSBVbmljb2RlIHN0cmluZyBpbnN0ZWFkCisg IG9mIGEgYnl0ZXN0cmluZy4gW2J1Zz0xNDIwMTMxXQorCisqIFRoZSBgdGV4dGAgYXJndW1lbnQg dG8gdGhlIGZpbmRfKiBtZXRob2RzIGlzIG5vdyBjYWxsZWQgYHN0cmluZ2AsCisgIHdoaWNoIGlz IG1vcmUgYWNjdXJhdGUuIGB0ZXh0YCBzdGlsbCB3b3JrcywgYnV0IGBzdHJpbmdgIGlzIHRoZQor ICBhcmd1bWVudCBkZXNjcmliZWQgaW4gdGhlIGRvY3VtZW50YXRpb24uIGB0ZXh0YCBtYXkgZXZl bnR1YWxseQorICBjaGFuZ2UgaXRzIG1lYW5pbmcsIGJ1dCBub3QgZm9yIGEgdmVyeSBsb25nIHRp bWUuIFtidWc9MTM2Njg1Nl0KKworKiBDaGFuZ2VkIHRoZSB3YXkgc291cCBvYmplY3RzIHdvcmsg dW5kZXIgY29weS5jb3B5KCkuIENvcHlpbmcgYQorICBOYXZpZ2FibGVTdHJpbmcgb3IgYSBUYWcg d2lsbCBnaXZlIHlvdSBhIG5ldyBOYXZpZ2FibGVTdHJpbmcgdGhhdCdzCisgIGVxdWFsIHRvIHRo ZSBvbGQgb25lIGJ1dCBub3QgY29ubmVjdGVkIHRvIHRoZSBwYXJzZSB0cmVlLiBQYXRjaCBieQor ICBNYXJ0aWpuIFBldGVycy4gW2J1Zz0xMzA3NDkwXQorCisqIFN0YXJ0ZWQgdXNpbmcgYSBzdGFu ZGFyZCBNSVQgbGljZW5zZS4gW2J1Zz0xMjk0NjYyXQorCisqIEFkZGVkIGEgQ2hpbmVzZSB0cmFu c2xhdGlvbiBvZiB0aGUgZG9jdW1lbnRhdGlvbiBieSBEZWxvbmcgLncuCisKK05ldyBmZWF0dXJl czoKKworKiBJbnRyb2R1Y2VkIHRoZSBzZWxlY3Rfb25lKCkgbWV0aG9kLCB3aGljaCB1c2VzIGEg Q1NTIHNlbGVjdG9yIGJ1dAorICBvbmx5IHJldHVybnMgdGhlIGZpcnN0IG1hdGNoLCBpbnN0ZWFk IG9mIGEgbGlzdCBvZgorICBtYXRjaGVzLiBbYnVnPTEzNDkzNjddCisKKyogWW91IGNhbiBub3cg Y3JlYXRlIGEgVGFnIG9iamVjdCB3aXRob3V0IHNwZWNpZnlpbmcgYQorICBUcmVlQnVpbGRlci4g UGF0Y2ggYnkgTWFydGlqbiBQaWV0ZXJzLiBbYnVnPTEzMDc0NzFdCisKKyogWW91IGNhbiBub3cg Y3JlYXRlIGEgTmF2aWdhYmxlU3RyaW5nIG9yIGEgc3ViY2xhc3MganVzdCBieSBpbnZva2luZwor ICB0aGUgY29uc3RydWN0b3IuIFtidWc9MTI5NDMxNV0KKworKiBBZGRlZCBhbiBgZXhjbHVkZV9l bmNvZGluZ3NgIGFyZ3VtZW50IHRvIFVuaWNvZGVEYW1taXQgYW5kIHRvIHRoZQorICBCZWF1dGlm dWwgU291cCBjb25zdHJ1Y3Rvciwgd2hpY2ggbGV0cyB5b3UgcHJvaGliaXQgdGhlIGRldGVjdGlv biBvZgorICBhbiBlbmNvZGluZyB0aGF0IHlvdSBrbm93IGlzIHdyb25nLiBbYnVnPTE0Njk0MDhd CisKKyogVGhlIHNlbGVjdCgpIG1ldGhvZCBub3cgc3VwcG9ydHMgc2VsZWN0b3IgZ3JvdXBpbmcu IFBhdGNoIGJ5CisgIEZyYW5jaXNjbyBDYW5hcyBbYnVnPTExOTE5MTddCisKK0J1ZyBmaXhlczoK KworKiBGaXhlZCB5ZXQgYW5vdGhlciBwcm9ibGVtIHRoYXQgY2F1c2VkIHRoZSBodG1sNWxpYiB0 cmVlIGJ1aWxkZXIgdG8KKyAgY3JlYXRlIGEgZGlzY29ubmVjdGVkIHBhcnNlIHRyZWUuIFtidWc9 MTIzNzc2M10KKworKiBGb3JjZSBvYmplY3Rfd2FzX3BhcnNlZCgpIHRvIGtlZXAgdGhlIHRyZWUg aW50YWN0IGV2ZW4gd2hlbiBhbiBlbGVtZW50CisgIGZyb20gbGF0ZXIgaW4gdGhlIGRvY3VtZW50 IGlzIG1vdmVkIGludG8gcGxhY2UuIFtidWc9MTQzMDYzM10KKworKiBGaXhlZCB5ZXQgYW5vdGhl ciBidWcgdGhhdCBjYXVzZWQgYSBkaXNjb25uZWN0ZWQgdHJlZSB3aGVuIGh0bWw1bGliCisgIGNv cGllZCBhbiBlbGVtZW50IGZyb20gb25lIHBhcnQgb2YgdGhlIHRyZWUgdG8gYW5vdGhlci4gW2J1 Zz0xMjcwNjExXQorCisqIEZpeGVkIGEgYnVnIHdoZXJlIEVsZW1lbnQuZXh0cmFjdCgpIGNvdWxk IGNyZWF0ZSBhbiBpbmZpbml0ZSBsb29wIGluCisgIHRoZSByZW1haW5pbmcgdHJlZS4KKworKiBU aGUgc2VsZWN0KCkgbWV0aG9kIGNhbiBub3cgZmluZCB0YWdzIHdob3NlIG5hbWVzIGNvbnRhaW4K KyAgZGFzaGVzLiBQYXRjaCBieSBGcmFuY2lzY28gQ2FuYXMuIFtidWc9MTI3NjIxMV0KKworKiBU aGUgc2VsZWN0KCkgbWV0aG9kIGNhbiBub3cgZmluZCB0YWdzIHdpdGggYXR0cmlidXRlcyB3aG9z ZSBuYW1lcworICBjb250YWluIGRhc2hlcy4gUGF0Y2ggYnkgTWFyZWsgS2Fwb2xrYS4gW2J1Zz0x MzA0MDA3XQorCisqIEltcHJvdmVkIHRoZSBseG1sIHRyZWUgYnVpbGRlcidzIGhhbmRsaW5nIG9m IHByb2Nlc3NpbmcKKyAgaW5zdHJ1Y3Rpb25zLiBbYnVnPTEyOTQ2NDVdCisKKyogUmVzdG9yZWQg dGhlIGhlbHBmdWwgc3ludGF4IGVycm9yIHRoYXQgaGFwcGVucyB3aGVuIHlvdSB0cnkgdG8KKyAg aW1wb3J0IHRoZSBQeXRob24gMiBlZGl0aW9uIG9mIEJlYXV0aWZ1bCBTb3VwIHVuZGVyIFB5dGhv bgorICAzLiBbYnVnPTEyMTMzODddCisKKyogSW4gUHl0aG9uIDMuNCBhbmQgYWJvdmUsIHNldCB0 aGUgbmV3IGNvbnZlcnRfY2hhcnJlZnMgYXJndW1lbnQgdG8KKyAgdGhlIGh0bWwucGFyc2VyIGNv bnN0cnVjdG9yIHRvIGF2b2lkIGEgd2FybmluZyBhbmQgZnV0dXJlCisgIGZhaWx1cmVzLiBQYXRj aCBieSBTdGVmYW5vIFJldmVyYS4gW2J1Zz0xMzc1NzIxXQorCisqIFRoZSB3YXJuaW5nIHdoZW4g eW91IHBhc3MgaW4gYSBmaWxlbmFtZSBvciBVUkwgYXMgbWFya3VwIHdpbGwgbm93IGJlCisgIGRp c3BsYXllZCBjb3JyZWN0bHkgZXZlbiBpZiB0aGUgZmlsZW5hbWUgb3IgVVJMIGlzIGEgVW5pY29k ZQorICBzdHJpbmcuIFtidWc9MTI2ODg4OF0KKworKiBJZiB0aGUgaW5pdGlhbCA8aHRtbD4gdGFn IGNvbnRhaW5zIGEgQ0RBVEEgbGlzdCBhdHRyaWJ1dGUgc3VjaCBhcworICAnY2xhc3MnLCB0aGUg aHRtbDVsaWIgdHJlZSBidWlsZGVyIHdpbGwgbm93IHR1cm4gaXRzIHZhbHVlIGludG8gYQorICBs aXN0LCBhcyBpdCB3b3VsZCB3aXRoIGFueSBvdGhlciB0YWcuIFtidWc9MTI5NjQ4MV0KKworKiBG aXhlZCBhbiBpbXBvcnQgZXJyb3IgaW4gUHl0aG9uIDMuNSBjYXVzZWQgYnkgdGhlIHJlbW92YWwg b2YgdGhlCisgIEhUTUxQYXJzZUVycm9yIGNsYXNzLiBbYnVnPTE0MjAwNjNdCisKKyogSW1wcm92 ZWQgZG9jc3RyaW5nIGZvciBlbmNvZGVfY29udGVudHMoKSBhbmQKKyAgZGVjb2RlX2NvbnRlbnRz KCkuIFtidWc9MTQ0MTU0M10KKworKiBGaXhlZCBhIGNyYXNoIGluIFVuaWNvZGUsIERhbW1pdCdz IGVuY29kaW5nIGRldGVjdG9yIHdoZW4gdGhlIG5hbWUKKyAgb2YgdGhlIGVuY29kaW5nIGl0c2Vs ZiBjb250YWluZWQgaW52YWxpZCBieXRlcy4gW2J1Zz0xMzYwOTEzXQorCisqIEltcHJvdmVkIHRo ZSBleGNlcHRpb24gcmFpc2VkIHdoZW4geW91IGNhbGwgLnVud3JhcCgpIG9yCisgIC5yZXBsYWNl X3dpdGgoKSBvbiBhbiBlbGVtZW50IHRoYXQncyBub3QgYXR0YWNoZWQgdG8gYSB0cmVlLgorCisq IFJhaXNlIGEgTm90SW1wbGVtZW50ZWRFcnJvciB3aGVuZXZlciBhbiB1bnN1cHBvcnRlZCBDU1Mg cHNldWRvY2xhc3MKKyAgaXMgdXNlZCBpbiBzZWxlY3QoKS4gUHJldmlvdXNseSBzb21lIGNhc2Vz IGRpZCBub3QgcmVzdWx0IGluIGEKKyAgTm90SW1wbGVtZW50ZWRFcnJvci4KKworKiBJdCdzIG5v dyBwb3NzaWJsZSB0byBwaWNrbGUgYSBCZWF1dGlmdWxTb3VwIG9iamVjdCBubyBtYXR0ZXIgd2hp Y2gKKyAgdHJlZSBidWlsZGVyIHdhcyB1c2VkIHRvIGNyZWF0ZSBpdC4gSG93ZXZlciwgdGhlIG9u bHkgdHJlZSBidWlsZGVyCisgIHRoYXQgc3Vydml2ZXMgdGhlIHBpY2tsaW5nIHByb2Nlc3MgaXMg dGhlIEhUTUxQYXJzZXJUcmVlQnVpbGRlcgorICAoJ2h0bWwucGFyc2VyJykuIElmIHlvdSB1bnBp Y2tsZSBhIEJlYXV0aWZ1bFNvdXAgb2JqZWN0IGNyZWF0ZWQgd2l0aAorICBzb21lIG90aGVyIHRy ZWUgYnVpbGRlciwgc291cC5idWlsZGVyIHdpbGwgYmUgTm9uZS4gW2J1Zz0xMjMxNTQ1XQorCis9 IDQuMy4yICgyMDEzMTAwMikgPQorCisqIEZpeGVkIGEgYnVnIGluIHdoaWNoIHNob3J0IFVuaWNv ZGUgaW5wdXQgd2FzIGltcHJvcGVybHkgZW5jb2RlZCB0bworICBBU0NJSSB3aGVuIGNoZWNraW5n IHdoZXRoZXIgb3Igbm90IGl0IHdhcyB0aGUgbmFtZSBvZiBhIGZpbGUgb24KKyAgZGlzay4gW2J1 Zz0xMjI3MDE2XQorCisqIEZpeGVkIGEgY3Jhc2ggd2hlbiBhIHNob3J0IGlucHV0IGNvbnRhaW5z IGRhdGEgbm90IHZhbGlkIGluCisgIGZpbGVuYW1lcy4gW2J1Zz0xMjMyNjA0XQorCisqIEZpeGVk IGEgYnVnIHRoYXQgY2F1c2VkIFVuaWNvZGUgZGF0YSBwdXQgaW50byBVbmljb2RlRGFtbWl0IHRv CisgIHJldHVybiBOb25lIGluc3RlYWQgb2YgdGhlIG9yaWdpbmFsIGRhdGEuIFtidWc9MTIxNDk4 M10KKworKiBDb21iaW5lZCB0d28gdGVzdHMgdG8gc3RvcCBhIHNwdXJpb3VzIHRlc3QgZmFpbHVy ZSB3aGVuIHRlc3RzIGFyZQorICBydW4gYnkgbm9zZXRlc3RzLiBbYnVnPTEyMTI0NDVdCisKKz0g NC4zLjEgKDIwMTMwODE1KSA9CisKKyogRml4ZWQgeWV0IGFub3RoZXIgcHJvYmxlbSB3aXRoIHRo ZSBodG1sNWxpYiB0cmVlIGJ1aWxkZXIsIGNhdXNlZCBieQorICBodG1sNWxpYidzIHRlbmRlbmN5 IHRvIHJlYXJyYW5nZSB0aGUgdHJlZSBkdXJpbmcKKyAgcGFyc2luZy4gW2J1Zz0xMTg5MjY3XQor CisqIEZpeGVkIGEgYnVnIHRoYXQgY2F1c2VkIHRoZSBvcHRpbWl6ZWQgdmVyc2lvbiBvZiBmaW5k X2FsbCgpIHRvCisgIHJldHVybiBub3RoaW5nLiBbYnVnPTEyMTI2NTVdCisKKz0gNC4zLjAgKDIw MTMwODEyKSA9CisKKyogSW5zdGVhZCBvZiBjb252ZXJ0aW5nIGluY29taW5nIGRhdGEgdG8gVW5p Y29kZSBhbmQgZmVlZGluZyBpdCB0byB0aGUKKyAgbHhtbCB0cmVlIGJ1aWxkZXIgaW4gY2h1bmtz LCBCZWF1dGlmdWwgU291cCBub3cgbWFrZXMgc3VjY2Vzc2l2ZQorICBndWVzc2VzIGF0IHRoZSBl bmNvZGluZyBvZiB0aGUgaW5jb21pbmcgZGF0YSwgYW5kIHRlbGxzIGx4bWwgdG8KKyAgcGFyc2Ug dGhlIGRhdGEgYXMgdGhhdCBlbmNvZGluZy4gR2l2aW5nIGx4bWwgbW9yZSBjb250cm9sIG92ZXIg dGhlCisgIHBhcnNpbmcgcHJvY2VzcyBpbXByb3ZlcyBwZXJmb3JtYW5jZSBhbmQgYXZvaWRzIGEg bnVtYmVyIG9mIGJ1Z3MgYW5kCisgIGlzc3VlcyB3aXRoIHRoZSBseG1sIHBhcnNlciB3aGljaCBo YWQgcHJldmlvdXNseSByZXF1aXJlZCBlbGFib3JhdGUKKyAgd29ya2Fyb3VuZHM6CisKKyAgLSBB biBpc3N1ZSBpbiB3aGljaCBseG1sIHJlZnVzZXMgdG8gcGFyc2UgVW5pY29kZSBzdHJpbmdzIG9u IHNvbWUKKyAgICBzeXN0ZW1zLiBbYnVnPTExODA1MjddCisKKyAgLSBBIHJldHVybmluZyBidWcg dGhhdCB0cnVuY2F0ZWQgZG9jdW1lbnRzIGxvbmdlciB0aGFuIGEgKHZlcnkKKyAgICBzbWFsbCkg c2l6ZS4gW2J1Zz05NjM4ODBdCisKKyAgLSBBIHJldHVybmluZyBidWcgaW4gd2hpY2ggZXh0cmEg c3BhY2VzIHdlcmUgYWRkZWQgdG8gYSBkb2N1bWVudCBpZgorICAgIHRoZSBkb2N1bWVudCBkZWZp bmVkIGEgY2hhcnNldCBvdGhlciB0aGFuIFVURi04LiBbYnVnPTk3MjQ2Nl0KKworICBUaGlzIHJl cXVpcmVkIGEgbWFqb3Igb3ZlcmhhdWwgb2YgdGhlIHRyZWUgYnVpbGRlciBhcmNoaXRlY3R1cmUu IElmCisgIHlvdSB3cm90ZSB5b3VyIG93biB0cmVlIGJ1aWxkZXIgYW5kIGRpZG4ndCB0ZWxsIG1l LCB5b3UnbGwgbmVlZCB0bworICBtb2RpZnkgeW91ciBwcmVwYXJlX21hcmt1cCgpIG1ldGhvZC4K KworKiBUaGUgVW5pY29kZURhbW1pdCBjb2RlIHRoYXQgbWFrZXMgZ3Vlc3NlcyBhdCBlbmNvZGlu Z3MgaGFzIGJlZW4KKyAgc3BsaXQgaW50byBpdHMgb3duIGNsYXNzLCBFbmNvZGluZ0RldGVjdG9y LiBBIGxvdCBvZiBhcHBhcmVudGx5CisgIHJlZHVuZGFudCBjb2RlIGhhcyBiZWVuIHJlbW92ZWQg ZnJvbSBVbmljb2RlLCBEYW1taXQsIGFuZCBzb21lCisgIHVuZG9jdW1lbnRlZCBmZWF0dXJlcyBo YXZlIGFsc28gYmVlbiByZW1vdmVkLgorCisqIEJlYXV0aWZ1bCBTb3VwIHdpbGwgaXNzdWUgYSB3 YXJuaW5nIGlmIGluc3RlYWQgb2YgbWFya3VwIHlvdSBwYXNzIGl0CisgIGEgVVJMIG9yIHRoZSBu YW1lIG9mIGEgZmlsZSBvbiBkaXNrIChhIGNvbW1vbiBiZWdpbm5lcidzIG1pc3Rha2UpLgorCisq IEEgbnVtYmVyIG9mIG9wdGltaXphdGlvbnMgaW1wcm92ZSB0aGUgcGVyZm9ybWFuY2Ugb2YgdGhl IGx4bWwgdHJlZQorICBidWlsZGVyIGJ5IGFib3V0IDMzJSwgdGhlIGh0bWwucGFyc2VyIHRyZWUg YnVpbGRlciBieSBhYm91dCAyMCUsIGFuZAorICB0aGUgaHRtbDVsaWIgdHJlZSBidWlsZGVyIGJ5 IGFib3V0IDE1JS4KKworKiBBbGwgZmluZF9hbGwgY2FsbHMgc2hvdWxkIG5vdyByZXR1cm4gYSBS ZXN1bHRTZXQgb2JqZWN0LiBQYXRjaCBieQorICBBYXJvbiBEZVZvcmUuIFtidWc9MTE5NDAzNF0K KworPSA0LjIuMSAoMjAxMzA1MzEpID0KKworKiBUaGUgZGVmYXVsdCBYTUwgZm9ybWF0dGVyIHdp bGwgbm93IHJlcGxhY2UgYW1wZXJzYW5kcyBldmVuIGlmIHRoZXkKKyAgYXBwZWFyIHRvIGJlIHBh cnQgb2YgZW50aXRpZXMuIFRoYXQgaXMsICImbHQ7IiB3aWxsIGJlY29tZQorICAiJmFtcDtsdDsi LiBUaGUgb2xkIGNvZGUgd2FzIGxlZnQgb3ZlciBmcm9tIEJlYXV0aWZ1bCBTb3VwIDMsIHdoaWNo CisgIGRpZG4ndCBhbHdheXMgdHVybiBlbnRpdGllcyBpbnRvIFVuaWNvZGUgY2hhcmFjdGVycy4K KworICBJZiB5b3UgcmVhbGx5IHdhbnQgdGhlIG9sZCBiZWhhdmlvciAobWF5YmUgYmVjYXVzZSB5 b3UgYWRkIG5ldworICBzdHJpbmdzIHRvIHRoZSB0cmVlLCB0aG9zZSBzdHJpbmdzIGluY2x1ZGUg ZW50aXRpZXMsIGFuZCB5b3Ugd2FudAorICB0aGUgZm9ybWF0dGVyIHRvIGxlYXZlIHRoZW0gYWxv bmUgb24gb3V0cHV0KSwgaXQgY2FuIGJlIGZvdW5kIGluCisgIEVudGl0eVN1YnN0aXR1dGlvbi5z dWJzdGl0dXRlX3htbF9jb250YWluaW5nX2VudGl0aWVzKCkuIFtidWc9MTE4MjE4M10KKworKiBH YXZlIG5ld19zdHJpbmcoKSB0aGUgYWJpbGl0eSB0byBjcmVhdGUgc3ViY2xhc3NlcyBvZgorICBO YXZpZ2FibGVTdHJpbmcuIFtidWc9MTE4MTk4Nl0KKworKiBGaXhlZCBhbm90aGVyIGJ1ZyBieSB3 aGljaCB0aGUgaHRtbDVsaWIgdHJlZSBidWlsZGVyIGNvdWxkIGNyZWF0ZSBhCisgIGRpc2Nvbm5l Y3RlZCB0cmVlLiBbYnVnPTExODIwODldCisKKyogVGhlIC5wcmV2aW91c19lbGVtZW50IG9mIGEg QmVhdXRpZnVsU291cCBvYmplY3QgaXMgbm93IGFsd2F5cyBOb25lLAorICBub3QgdGhlIGxhc3Qg ZWxlbWVudCB0byBiZSBwYXJzZWQuIFtidWc9MTE4MjA4OV0KKworKiBGaXhlZCB0ZXN0IGZhaWx1 cmVzIHdoZW4gbHhtbCBpcyBub3QgaW5zdGFsbGVkLiBbYnVnPTExODE1ODldCisKKyogaHRtbDVs aWIgbm93IHN1cHBvcnRzIFB5dGhvbiAzLiBGaXhlZCBzb21lIFB5dGhvbiAyLXNwZWNpZmljCisg IGNvZGUgaW4gdGhlIGh0bWw1bGliIHRlc3Qgc3VpdGUuIFtidWc9MTE4MTYyNF0KKworKiBUaGUg aHRtbC5wYXJzZXIgdHJlZWJ1aWxkZXIgY2FuIG5vdyBoYW5kbGUgbnVtZXJpYyBhdHRyaWJ1dGVz IGluCisgIHRleHQgd2hlbiB0aGUgaGV4aWRlY2ltYWwgbmFtZSBvZiB0aGUgYXR0cmlidXRlIHN0 YXJ0cyB3aXRoIGEKKyAgY2FwaXRhbCBYLiBQYXRjaCBieSBUaW0gU2hpcmxleS4gW2J1Zz0xMTg2 MjQyXQorCis9IDQuMi4wICgyMDEzMDUxNCkgPQorCisqIFRoZSBUYWcuc2VsZWN0KCkgbWV0aG9k IG5vdyBzdXBwb3J0cyBhIG11Y2ggd2lkZXIgdmFyaWV0eSBvZiBDU1MKKyAgc2VsZWN0b3JzLgor CisgLSBBZGRlZCBzdXBwb3J0IGZvciB0aGUgYWRqYWNlbnQgc2libGluZyBjb21iaW5hdG9yICgr KSBhbmQgdGhlCisgICBnZW5lcmFsIHNpYmxpbmcgY29tYmluYXRvciAofikuIFRlc3RzIGJ5ICJs aXF1aWRlciIuIFtidWc9MTA4MjE0NF0KKworIC0gVGhlIGNvbWJpbmF0b3JzICg+LCArLCBhbmQg fikgY2FuIG5vdyBjb21iaW5lIHdpdGggYW55IHN1cHBvcnRlZAorICAgc2VsZWN0b3IsIG5vdCBq dXN0IG9uZSB0aGF0IHNlbGVjdHMgYmFzZWQgb24gdGFnIG5hbWUuCisKKyAtIEFkZGVkIGxpbWl0 ZWQgc3VwcG9ydCBmb3IgdGhlICJudGgtb2YtdHlwZSIgcHNldWRvLWNsYXNzLiBDb2RlCisgICBi eSBTdmVuIFNsb290d2VnLiBbYnVnPTExMDk5NTJdCisKKyogVGhlIEJlYXV0aWZ1bFNvdXAgY2xh c3MgaXMgbm93IGFsaWFzZWQgdG8gIl9zIiBhbmQgIl9zb3VwIiwgbWFraW5nCisgIGl0IHF1aWNr ZXIgdG8gdHlwZSB0aGUgaW1wb3J0IHN0YXRlbWVudCBpbiBhbiBpbnRlcmFjdGl2ZSBzZXNzaW9u OgorCisgIGZyb20gYnM0IGltcG9ydCBfcworICAgb3IKKyAgZnJvbSBiczQgaW1wb3J0IF9zb3Vw CisKKyAgVGhlIGFsaWFzIG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZSwgc28gZG9uJ3QgdXNlIHRo aXMgaW4gY29kZSB5b3UncmUKKyAgZ29pbmcgdG8gcnVuIG1vcmUgdGhhbiBvbmNlLgorCisqIEFk ZGVkIHRoZSAnZGlhZ25vc2UnIHN1Ym1vZHVsZSwgd2hpY2ggaW5jbHVkZXMgc2V2ZXJhbCB1c2Vm dWwKKyAgZnVuY3Rpb25zIGZvciByZXBvcnRpbmcgcHJvYmxlbXMgYW5kIGRvaW5nIHRlY2ggc3Vw cG9ydC4KKworICAtIGRpYWdub3NlKGRhdGEpIHRyaWVzIHRoZSBnaXZlbiBtYXJrdXAgb24gZXZl cnkgaW5zdGFsbGVkIHBhcnNlciwKKyAgICByZXBvcnRpbmcgZXhjZXB0aW9ucyBhbmQgZGlzcGxh eWluZyBzdWNjZXNzZXMuIElmIGEgcGFyc2VyIGlzIG5vdAorICAgIGluc3RhbGxlZCwgZGlhZ25v c2UoKSBtZW50aW9ucyB0aGlzIGZhY3QuCisKKyAgLSBseG1sX3RyYWNlKGRhdGEsIGh0bWw9VHJ1 ZSkgcnVucyB0aGUgZ2l2ZW4gbWFya3VwIHRocm91Z2ggbHhtbCdzCisgICAgWE1MIHBhcnNlciBv ciBIVE1MIHBhcnNlciwgYW5kIHByaW50cyBvdXQgdGhlIHBhcnNlciBldmVudHMgYXMKKyAgICB0 aGV5IGhhcHBlbi4gVGhpcyBoZWxwcyB5b3UgcXVpY2tseSBkZXRlcm1pbmUgd2hldGhlciBhIGdp dmVuCisgICAgcHJvYmxlbSBvY2N1cnMgaW4gbHhtbCBjb2RlIG9yIEJlYXV0aWZ1bCBTb3VwIGNv ZGUuCisKKyAgLSBodG1scGFyc2VyX3RyYWNlKGRhdGEpIGlzIHRoZSBzYW1lIHRoaW5nLCBidXQg Zm9yIFB5dGhvbidzCisgICAgYnVpbHQtaW4gSFRNTFBhcnNlciBjbGFzcy4KKworKiBJbiBhbiBI VE1MIGRvY3VtZW50LCB0aGUgY29udGVudHMgb2YgYSA8c2NyaXB0PiBvciA8c3R5bGU+IHRhZyB3 aWxsCisgIG5vIGxvbmdlciB1bmRlcmdvIGVudGl0eSBzdWJzdGl0dXRpb24gYnkgZGVmYXVsdC4g WE1MIGRvY3VtZW50cyB3b3JrCisgIHRoZSBzYW1lIHdheSB0aGV5IGRpZCBiZWZvcmUuIFtidWc9 MTA4NTk1M10KKworKiBNZXRob2RzIGxpa2UgZ2V0X3RleHQoKSBhbmQgcHJvcGVydGllcyBsaWtl IC5zdHJpbmdzIG5vdyBvbmx5IGdpdmUKKyAgeW91IHN0cmluZ3MgdGhhdCBhcmUgdmlzaWJsZSBp biB0aGUgZG9jdW1lbnQtLW5vIGNvbW1lbnRzIG9yCisgIHByb2Nlc3NpbmcgY29tbWFuZHMuIFti dWc9MTA1MDE2NF0KKworKiBUaGUgcHJldHRpZnkoKSBtZXRob2Qgbm93IGxlYXZlcyB0aGUgY29u dGVudHMgb2YgPHByZT4gdGFncworICBhbG9uZS4gW2J1Zz0xMDk1NjU0XQorCisqIEZpeCBhIGJ1 ZyBpbiB0aGUgaHRtbDVsaWIgdHJlZWJ1aWxkZXIgd2hpY2ggc29tZXRpbWVzIGNyZWF0ZWQKKyAg ZGlzY29ubmVjdGVkIHRyZWVzLiBbYnVnPTEwMzk1MjddCisKKyogRml4IGEgYnVnIGluIHRoZSBs eG1sIHRyZWVidWlsZGVyIHdoaWNoIGNyYXNoZWQgd2hlbiBhIHRhZyBpbmNsdWRlZAorICBhbiBh dHRyaWJ1dGUgZnJvbSB0aGUgcHJlZGVmaW5lZCAieG1sOiIgbmFtZXNwYWNlLiBbYnVnPTEwNjU2 MTddCisKKyogRml4IGEgYnVnIGJ5IHdoaWNoIGtleXdvcmQgYXJndW1lbnRzIHRvIGZpbmRfcGFy ZW50KCkgd2VyZSBub3QKKyAgYmVpbmcgcGFzc2VkIG9uLiBbYnVnPTExMjY3MzRdCisKKyogU3Rv cCBhIGNyYXNoIHdoZW4gdW53aXNlbHkgbWVzc2luZyB3aXRoIGEgdGFnIHRoYXQncyBiZWVuCisg IGRlY29tcG9zZWQuIFtidWc9MTA5NzY5OV0KKworKiBOb3cgdGhhdCBseG1sJ3Mgc2VnZmF1bHQg b24gaW52YWxpZCBkb2N0eXBlIGhhcyBiZWVuIGZpeGVkLCBmaXhlZCBhCisgIGNvcnJlc3BvbmRp bmcgcHJvYmxlbSBvbiB0aGUgQmVhdXRpZnVsIFNvdXAgZW5kIHRoYXQgd2FzIHByZXZpb3VzbHkK KyAgaW52aXNpYmxlLiBbYnVnPTk4NDkzNl0KKworKiBGaXhlZCBhbiBleGNlcHRpb24gd2hlbiBh biBvdmVyc3BlY2lmaWVkIENTUyBzZWxlY3RvciBkaWRuJ3QgbWF0Y2gKKyAgYW55dGhpbmcuIENv ZGUgYnkgU3RlZmFhbiBMaXBwZW5zLiBbYnVnPTExNjgxNjddCisKKz0gNC4xLjMgKDIwMTIwODIw KSA9CisKKyogU2tpcHBlZCBhIHRlc3QgdW5kZXIgUHl0aG9uIDIuNiBhbmQgUHl0aG9uIDMuMSB0 byBhdm9pZCBhIHNwdXJpb3VzCisgIHRlc3QgZmFpbHVyZSBjYXVzZWQgYnkgdGhlIGxvdXN5IEhU TUxQYXJzZXIgaW4gdGhvc2UKKyAgdmVyc2lvbnMuIFtidWc9MTAzODUwM10KKworKiBSYWlzZSBh IG1vcmUgc3BlY2lmaWMgZXJyb3IgKEZlYXR1cmVOb3RGb3VuZCkgd2hlbiBhIHJlcXVlc3RlZAor ICBwYXJzZXIgb3IgcGFyc2VyIGZlYXR1cmUgaXMgbm90IGluc3RhbGxlZC4gUmFpc2UgTm90SW1w bGVtZW50ZWRFcnJvcgorICBpbnN0ZWFkIG9mIFZhbHVlRXJyb3Igd2hlbiB0aGUgdXNlciBjYWxs cyBpbnNlcnRfYmVmb3JlKCkgb3IKKyAgaW5zZXJ0X2FmdGVyKCkgb24gdGhlIEJlYXV0aWZ1bFNv dXAgb2JqZWN0IGl0c2VsZi4gUGF0Y2ggYnkgQWFyb24KKyAgRGV2b3JlLiBbYnVnPTEwMzgzMDFd CisKKz0gNC4xLjIgKDIwMTIwODE3KSA9CisKKyogQXMgcGVyIFBFUC04LCBhbGxvdyBzZWFyY2hp bmcgYnkgQ1NTIGNsYXNzIHVzaW5nIHRoZSAnY2xhc3NfJworICBrZXl3b3JkIGFyZ3VtZW50LiBb YnVnPTEwMzc2MjRdCisKKyogRGlzcGxheSBuYW1lc3BhY2UgcHJlZml4ZXMgZm9yIG5hbWVzcGFj ZWQgYXR0cmlidXRlIG5hbWVzLCBpbnN0ZWFkIG9mCisgIHRoZSBmdWxseS1xdWFsaWZpZWQgbmFt ZXMgZ2l2ZW4gYnkgdGhlIGx4bWwgcGFyc2VyLiBbYnVnPTEwMzc1OTddCisKKyogRml4ZWQgYSBj cmFzaCBvbiBlbmNvZGluZyB3aGVuIGFuIGF0dHJpYnV0ZSBuYW1lIGNvbnRhaW5lZAorICBub24t QVNDSUkgY2hhcmFjdGVycy4KKworKiBXaGVuIHNuaWZmaW5nIGVuY29kaW5ncywgaWYgdGhlIGNj aGFyZGV0IGxpYnJhcnkgaXMgaW5zdGFsbGVkLAorICBCZWF1dGlmdWwgU291cCB1c2VzIGl0IGlu c3RlYWQgb2YgY2hhcmRldC4gY2NoYXJkZXQgaXMgbXVjaAorICBmYXN0ZXIuIFtidWc9MTAyMDc0 OF0KKworKiBVc2UgbG9nZ2luZy53YXJuaW5nKCkgaW5zdGVhZCBvZiB3YXJuaW5nLndhcm4oKSB0 byBub3RpZnkgdGhlIHVzZXIKKyAgdGhhdCBjaGFyYWN0ZXJzIHdlcmUgcmVwbGFjZWQgd2l0aCBS RVBMQUNFTUVOVAorICBDSEFSQUNURVIuIFtidWc9MTAxMzg2Ml0KKworPSA0LjEuMSAoMjAxMjA3 MDMpID0KKworKiBGaXhlZCBhbiBodG1sNWxpYiB0cmVlIGJ1aWxkZXIgY3Jhc2ggd2hpY2ggaGFw cGVuZWQgd2hlbiBodG1sNWxpYgorICBtb3ZlZCBhIHRhZyB3aXRoIGEgbXVsdGl2YWx1ZWQgYXR0 cmlidXRlIGZyb20gb25lIHBhcnQgb2YgdGhlIHRyZWUKKyAgdG8gYW5vdGhlci4gW2J1Zz0xMDE5 NjAzXQorCisqIENvcnJlY3RseSBkaXNwbGF5IGNsb3NpbmcgdGFncyB3aXRoIGFuIFhNTCBuYW1l c3BhY2UgZGVjbGFyZWQuIFBhdGNoCisgIGJ5IEFuZHJlYXMgS29zdHlya2EuIFtidWc9MTAxOTYz NV0KKworKiBGaXhlZCBhIHR5cG8gdGhhdCBtYWRlIHBhcnNpbmcgc2lnbmlmaWNhbnRseSBzbG93 ZXIgdGhhbiBpdCBzaG91bGQKKyAgaGF2ZSBiZWVuLCBhbmQgYWxzbyB3YWl0ZWQgdG9vIGxvbmcg dG8gY2xvc2UgdGFncyB3aXRoIFhNTAorICBuYW1lc3BhY2VzLiBbYnVnPTEwMjAyNjhdCisKKyog Z2V0X3RleHQoKSBub3cgcmV0dXJucyBhbiBlbXB0eSBVbmljb2RlIHN0cmluZyBpZiB0aGVyZSBp cyBubyB0ZXh0LAorICByYXRoZXIgdGhhbiBhbiBlbXB0eSBieXRlc3RyaW5nLiBbYnVnPTEwMjAz ODddCisKKz0gNC4xLjAgKDIwMTIwNTI5KSA9CisKKyogQWRkZWQgZXhwZXJpbWVudGFsIHN1cHBv cnQgZm9yIGZpeGluZyBXaW5kb3dzLTEyNTIgY2hhcmFjdGVycworICBlbWJlZGRlZCBpbiBVVEYt OCBkb2N1bWVudHMuIChVbmljb2RlRGFtbWl0LmRldHdpbmdsZSgpKQorCisqIEZpeGVkIHRoZSBo YW5kbGluZyBvZiAmcXVvdDsgd2l0aCB0aGUgYnVpbHQtaW4gcGFyc2VyLiBbYnVnPTk5Mzg3MV0K KworKiBDb21tZW50cywgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbnMsIGRvY3VtZW50IHR5cGUgZGVj bGFyYXRpb25zLCBhbmQKKyAgbWFya3VwIGRlY2xhcmF0aW9ucyBhcmUgbm93IHRyZWF0ZWQgYXMg cHJlZm9ybWF0dGVkIHN0cmluZ3MsIHRoZSB3YXkKKyAgQ0RhdGEgYmxvY2tzIGFyZS4gW2J1Zz0x MDAxMDI1XQorCisqIEZpeGVkIGEgYnVnIHdpdGggdGhlIGx4bWwgdHJlZWJ1aWxkZXIgdGhhdCBw cmV2ZW50ZWQgdGhlIHVzZXIgZnJvbQorICBhZGRpbmcgYXR0cmlidXRlcyB0byBhIHRhZyB0aGF0 IGRpZG4ndCBvcmlnaW5hbGx5IGhhdmUKKyAgYXR0cmlidXRlcy4gW2J1Zz0xMDAyMzc4XSBUaGFu a3MgdG8gT2xpdmVyIEJlYXR0aWUgZm9yIHRoZSBwYXRjaC4KKworKiBGaXhlZCBzb21lIGVkZ2Ut Y2FzZSBidWdzIGhhdmluZyB0byBkbyB3aXRoIGluc2VydGluZyBhbiBlbGVtZW50CisgIGludG8g YSB0YWcgaXQncyBhbHJlYWR5IGluc2lkZSwgYW5kIHJlcGxhY2luZyBvbmUgb2YgYSB0YWcncwor ICBjaGlsZHJlbiB3aXRoIGFub3RoZXIuIFtidWc9OTk3NTI5XQorCisqIEFkZGVkIHRoZSBhYmls aXR5IHRvIHNlYXJjaCBmb3IgYXR0cmlidXRlIHZhbHVlcyBzcGVjaWZpZWQgaW4gVVRGLTguIFti dWc9MTAwMzk3NF0KKworICBUaGlzIGNhdXNlZCBhIG1ham9yIHJlZmFjdG9yaW5nIG9mIHRoZSBz ZWFyY2ggY29kZS4gQWxsIHRoZSB0ZXN0cworICBwYXNzLCBidXQgaXQncyBwb3NzaWJsZSB0aGF0 IHNvbWUgc2VhcmNoZXMgd2lsbCBiZWhhdmUgZGlmZmVyZW50bHkuCisKKz0gNC4wLjUgKDIwMTIw NDI3KSA9CisKKyogQWRkZWQgYSBuZXcgbWV0aG9kLCB3cmFwKCksIHdoaWNoIHdyYXBzIGFuIGVs ZW1lbnQgaW4gYSB0YWcuCisKKyogUmVuYW1lZCByZXBsYWNlX3dpdGhfY2hpbGRyZW4oKSB0byB1 bndyYXAoKSwgd2hpY2ggaXMgZWFzaWVyIHRvCisgIHVuZGVyc3RhbmQgYW5kIGFsc28gdGhlIGpR dWVyeSBuYW1lIG9mIHRoZSBmdW5jdGlvbi4KKworKiBNYWRlIGVuY29kaW5nIHN1YnN0aXR1dGlv biBpbiA8bWV0YT4gdGFncyBjb21wbGV0ZWx5IHRyYW5zcGFyZW50IChubworICBtb3JlICVTT1VQ LUVOQ09ESU5HJSkuCisKKyogRml4ZWQgYSBidWcgaW4gZGVjb2RpbmcgZGF0YSB0aGF0IGNvbnRh aW5lZCBhIGJ5dGUtb3JkZXIgbWFyaywgc3VjaAorICBhcyBkYXRhIGVuY29kZWQgaW4gVVRGLTE2 TEUuIFtidWc9OTg4OTgwXQorCisqIEZpeGVkIGEgYnVnIHRoYXQgbWFkZSB0aGUgSFRNTFBhcnNl ciB0cmVlYnVpbGRlciBnZW5lcmF0ZSBYTUwKKyAgZGVmaW5pdGlvbnMgZW5kaW5nIHdpdGggdHdv IHF1ZXN0aW9uIG1hcmtzIGluc3RlYWQgb2YKKyAgb25lLiBbYnVnPTk4NDI1OF0KKworKiBVcG9u IGRvY3VtZW50IGdlbmVyYXRpb24sIENEYXRhIG9iamVjdHMgYXJlIG5vIGxvbmdlciBydW4gdGhy b3VnaAorICB0aGUgZm9ybWF0dGVyLiBbYnVnPTk4ODkwNV0KKworKiBUaGUgdGVzdCBzdWl0ZSBu b3cgcGFzc2VzIHdoZW4gbHhtbCBpcyBub3QgaW5zdGFsbGVkLCB3aGV0aGVyIG9yIG5vdAorICBo dG1sNWxpYiBpcyBpbnN0YWxsZWQuIFtidWc9OTg3MDA0XQorCisqIFByaW50IGEgd2FybmluZyBv biBIVE1MUGFyc2VFcnJvcnMgdG8gbGV0IHBlb3BsZSBrbm93IHRoZXkgc2hvdWxkCisgIGluc3Rh bGwgYSBiZXR0ZXIgcGFyc2VyIGxpYnJhcnkuCisKKz0gNC4wLjQgKDIwMTIwNDE2KSA9CisKKyog Rml4ZWQgYSBidWcgdGhhdCBzb21ldGltZXMgY3JlYXRlZCBkaXNjb25uZWN0ZWQgdHJlZXMuCisK KyogRml4ZWQgYSBidWcgd2l0aCB0aGUgc3RyaW5nIHNldHRlciB0aGF0IG1vdmVkIGEgc3RyaW5n IGFyb3VuZCB0aGUKKyAgdHJlZSBpbnN0ZWFkIG9mIGNvcHlpbmcgaXQuIFtidWc9OTgzMDUwXQor CisqIEF0dHJpYnV0ZSB2YWx1ZXMgYXJlIG5vdyBydW4gdGhyb3VnaCB0aGUgcHJvdmlkZWQgb3V0 cHV0IGZvcm1hdHRlci4KKyAgUHJldmlvdXNseSB0aGV5IHdlcmUgYWx3YXlzIHJ1biB0aHJvdWdo IHRoZSAnbWluaW1hbCcgZm9ybWF0dGVyLiBJbgorICB0aGUgZnV0dXJlIEkgbWF5IG1ha2UgaXQg cG9zc2libGUgdG8gc3BlY2lmeSBkaWZmZXJlbnQgZm9ybWF0dGVycworICBmb3IgYXR0cmlidXRl IHZhbHVlcyBhbmQgc3RyaW5ncywgYnV0IGZvciBub3csIGNvbnNpc3RlbnQgYmVoYXZpb3IKKyAg aXMgYmV0dGVyIHRoYW4gaW5jb25zaXN0ZW50IGJlaGF2aW9yLiBbYnVnPTk4MDIzN10KKworKiBB ZGRlZCB0aGUgbWlzc2luZyByZW5kZXJDb250ZW50cyBtZXRob2QgZnJvbSBCZWF1dGlmdWwgU291 cCAzLiBBbHNvCisgIGFkZGVkIGFuIGVuY29kZV9jb250ZW50cygpIG1ldGhvZCB0byBnbyBhbG9u ZyB3aXRoIGRlY29kZV9jb250ZW50cygpLgorCisqIEdpdmUgYSBtb3JlIHVzZWZ1bCBlcnJvciB3 aGVuIHRoZSB1c2VyIHRyaWVzIHRvIHJ1biB0aGUgUHl0aG9uIDIKKyAgdmVyc2lvbiBvZiBCUyB1 bmRlciBQeXRob24gMy4KKworKiBVbmljb2RlRGFtbWl0IGNhbiBub3cgY29udmVydCBNaWNyb3Nv ZnQgc21hcnQgcXVvdGVzIHRvIEFTQ0lJIHdpdGgKKyAgVW5pY29kZURhbW1pdChtYXJrdXAsIHNt YXJ0X3F1b3Rlc190bz0iYXNjaWkiKS4KKworPSA0LjAuMyAoMjAxMjA0MDMpID0KKworKiBGaXhl ZCBhIHR5cG8gdGhhdCBjYXVzZWQgc29tZSB2ZXJzaW9ucyBvZiBQeXRob24gMyB0byBjb252ZXJ0 IHRoZQorICBCZWF1dGlmdWwgU291cCBjb2RlYmFzZSBpbmNvcnJlY3RseS4KKworKiBHb3Qgcmlk IG9mIHRoZSA0LjAuMiB3b3JrYXJvdW5kIGZvciBIVE1MIGRvY3VtZW50cy0taXQgd2FzCisgIHVu bmVjZXNzYXJ5IGFuZCB0aGUgd29ya2Fyb3VuZCB3YXMgdHJpZ2dlcmluZyBhIChwb3NzaWJseSBk aWZmZXJlbnQsCisgIGJ1dCByZWxhdGVkKSBidWcgaW4gbHhtbC4gW2J1Zz05NzI0NjZdCisKKz0g NC4wLjIgKDIwMTIwMzI2KSA9CisKKyogV29ya2VkIGFyb3VuZCBhIHBvc3NpYmxlIGJ1ZyBpbiBs eG1sIHRoYXQgcHJldmVudHMgbm9uLXRpbnkgWE1MCisgIGRvY3VtZW50cyBmcm9tIGJlaW5nIHBh cnNlZC4gW2J1Zz05NjM4ODAsIGJ1Zz05NjM5MzZdCisKKyogRml4ZWQgYSBidWcgd2hlcmUgc3Bl Y2lmeWluZyBgdGV4dGAgd2hpbGUgYWxzbyBzZWFyY2hpbmcgZm9yIGEgdGFnCisgIG9ubHkgd29y a2VkIGlmIGB0ZXh0YCB3YW50ZWQgYW4gZXhhY3Qgc3RyaW5nIG1hdGNoLiBbYnVnPTk1NTk0Ml0K KworPSA0LjAuMSAoMjAxMjAzMTQpID0KKworKiBUaGlzIGlzIHRoZSBmaXJzdCBvZmZpY2lhbCBy ZWxlYXNlIG9mIEJlYXV0aWZ1bCBTb3VwIDQuIFRoZXJlIGlzIG5vCisgIDQuMC4wIHJlbGVhc2Us IHRvIGVsaW1pbmF0ZSBhbnkgcG9zc2liaWxpdHkgdGhhdCBwYWNrYWdpbmcgc29mdHdhcmUKKyAg bWlnaHQgdHJlYXQgIjQuMC4wIiBhcyBiZWluZyBhbiBlYXJsaWVyIHZlcnNpb24gdGhhbiAiNC4w LjBiMTAiLgorCisqIEJyb3VnaHQgQlMgdXAgdG8gZGF0ZSB3aXRoIHRoZSBsYXRlc3QgcmVsZWFz ZSBvZiBzb3Vwc2VsZWN0LCBhZGRpbmcKKyAgQ1NTIHNlbGVjdG9yIHN1cHBvcnQgZm9yIGRpcmVj dCBkZXNjZW5kYW50IG1hdGNoZXMgYW5kIG11bHRpcGxlIENTUworICBjbGFzcyBtYXRjaGVzLgor Cis9IDQuMC4wYjEwICgyMDEyMDMwMikgPQorCisqIEFkZGVkIHN1cHBvcnQgZm9yIHNpbXBsZSBD U1Mgc2VsZWN0b3JzLCB0YWtlbiBmcm9tIHRoZSBzb3Vwc2VsZWN0IHByb2plY3QuCisKKyogRml4 ZWQgYSBjcmFzaCB3aGVuIHVzaW5nIGh0bWw1bGliLiBbYnVnPTk0MzI0Nl0KKworKiBJbiBIVE1M NS1zdHlsZSA8bWV0YSBjaGFyc2V0PSJmb28iPiB0YWdzLCB0aGUgdmFsdWUgb2YgdGhlICJjaGFy c2V0IgorICBhdHRyaWJ1dGUgaXMgbm93IHJlcGxhY2VkIHdpdGggdGhlIGFwcHJvcHJpYXRlIGVu Y29kaW5nIG9uCisgIG91dHB1dC4gW2J1Zz05NDI3MTRdCisKKyogRml4ZWQgYSBidWcgdGhhdCBj YXVzZWQgY2FsbGluZyBhIHRhZyB0byBzb21ldGltZXMgY2FsbCBmaW5kX2FsbCgpCisgIHdpdGgg dGhlIHdyb25nIGFyZ3VtZW50cy4gW2J1Zz05NDQ0MjZdCisKKyogRm9yIGJhY2t3YXJkcyBjb21w YXRpYmlsaXR5LCBicm91Z2h0IGJhY2sgdGhlIEJlYXV0aWZ1bFN0b25lU291cAorICBjbGFzcyBh cyBhIGRlcHJlY2F0ZWQgd3JhcHBlciBhcm91bmQgQmVhdXRpZnVsU291cC4KKworPSA0LjAuMGI5 ICgyMDEyMDIyOCkgPQorCisqIEZpeGVkIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgRE9D VFlQRXMgdGhhdCBoYXZlIGJvdGggYSBwdWJsaWMKKyAgSUQgYW5kIGEgc3lzdGVtIElELgorCisq IEZpeGVkIHRoZSBnZW5lcmF0ZWQgWE1MIGRlY2xhcmF0aW9uLgorCisqIFJlbmFtZWQgVGFnLm5z cHJlZml4IHRvIFRhZy5wcmVmaXgsIGZvciBjb25zaXN0ZW5jeSB3aXRoCisgIE5hbWVzcGFjZWRB dHRyaWJ1dGUuCisKKyogRml4ZWQgYSB0ZXN0IGZhaWx1cmUgdGhhdCBvY2N1cnJlZCBvbiBQeXRo b24gMy54IHdoZW4gY2hhcmRldCB3YXMKKyAgaW5zdGFsbGVkLgorCisqIE1hZGUgcHJldHRpZnko KSByZXR1cm4gVW5pY29kZSBieSBkZWZhdWx0LCBzbyBpdCB3aWxsIGxvb2sgbmljZSBvbgorICBQ eXRob24gMyB3aGVuIHBhc3NlZCBpbnRvIHByaW50KCkuCisKKz0gNC4wLjBiOCAoMjAxMjAyMjQp ID0KKworKiBBbGwgdHJlZSBidWlsZGVycyBub3cgcHJlc2VydmUgbmFtZXNwYWNlIGluZm9ybWF0 aW9uIGluIHRoZQorICBkb2N1bWVudHMgdGhleSBwYXJzZS4gSWYgeW91IHVzZSB0aGUgaHRtbDVs aWIgcGFyc2VyIG9yIGx4bWwncyBYTUwKKyAgcGFyc2VyLCB5b3UgY2FuIGFjY2VzcyB0aGUgbmFt ZXNwYWNlIFVSTCBmb3IgYSB0YWcgYXMgdGFnLm5hbWVzcGFjZS4KKworICBIb3dldmVyLCB0aGVy ZSBpcyBubyBzcGVjaWFsIHN1cHBvcnQgZm9yIG5hbWVzcGFjZS1vcmllbnRlZAorICBzZWFyY2hp bmcgb3IgdHJlZSBtYW5pcHVsYXRpb24uIFdoZW4geW91IHNlYXJjaCB0aGUgdHJlZSwgeW91IG5l ZWQKKyAgdG8gdXNlIG5hbWVzcGFjZSBwcmVmaXhlcyBleGFjdGx5IGFzIHRoZXkncmUgdXNlZCBp biB0aGUgb3JpZ2luYWwKKyAgZG9jdW1lbnQuCisKKyogVGhlIHN0cmluZyByZXByZXNlbnRhdGlv biBvZiBhIERPQ1RZUEUgYWx3YXlzIGVuZHMgaW4gYSBuZXdsaW5lLgorCisqIElzc3VlIGEgd2Fy bmluZyBpZiB0aGUgdXNlciB0cmllcyB0byB1c2UgYSBTb3VwU3RyYWluZXIgaW4KKyAgY29uanVu Y3Rpb24gd2l0aCB0aGUgaHRtbDVsaWIgdHJlZSBidWlsZGVyLCB3aGljaCBkb2Vzbid0IHN1cHBv cnQKKyAgdGhlbS4KKworPSA0LjAuMGI3ICgyMDEyMDIyMykgPQorCisqIFVwb24gZGVjb2Rpbmcg dG8gc3RyaW5nLCBhbnkgY2hhcmFjdGVycyB0aGF0IGNhbid0IGJlIHJlcHJlc2VudGVkIGluCisg IHlvdXIgY2hvc2VuIGVuY29kaW5nIHdpbGwgYmUgY29udmVydGVkIGludG8gbnVtZXJpYyBYTUwg ZW50aXR5CisgIHJlZmVyZW5jZXMuCisKKyogSXNzdWUgYSB3YXJuaW5nIGlmIGNoYXJhY3RlcnMg d2VyZSByZXBsYWNlZCB3aXRoIFJFUExBQ0VNRU5UCisgIENIQVJBQ1RFUiBkdXJpbmcgVW5pY29k ZSBjb252ZXJzaW9uLgorCisqIFJlc3RvcmVkIGNvbXBhdGliaWxpdHkgd2l0aCBQeXRob24gMi42 LgorCisqIFRoZSBpbnN0YWxsIHByb2Nlc3Mgbm8gbG9uZ2VyIGluc3RhbGxzIGRvY3Mgb3IgYXV4 aWxpYXJ5IHRleHQgZmlsZXMuCisKKyogSXQncyBub3cgcG9zc2libGUgdG8gZGVlcGNvcHkgYSBC ZWF1dGlmdWxTb3VwIG9iamVjdCBjcmVhdGVkIHdpdGgKKyAgUHl0aG9uJ3MgYnVpbHQtaW4gSFRN TCBwYXJzZXIuCisKKyogQWJvdXQgMTAwIHVuaXQgdGVzdHMgdGhhdCAidGVzdCIgdGhlIGJlaGF2 aW9yIG9mIHZhcmlvdXMgcGFyc2VycyBvbgorICBpbnZhbGlkIG1hcmt1cCBoYXZlIGJlZW4gcmVt b3ZlZC4gTGVnaXRpbWF0ZSBjaGFuZ2VzIHRvIHRob3NlCisgIHBhcnNlcnMgY2F1c2VkIHRoZXNl IHRlc3RzIHRvIGZhaWwsIGluZGljYXRpbmcgdGhhdCBwZXJoYXBzCisgIEJlYXV0aWZ1bCBTb3Vw IHNob3VsZCBub3QgdGVzdCB0aGUgYmVoYXZpb3Igb2YgZm9yZWlnbgorICBsaWJyYXJpZXMuCisK KyAgVGhlIHByb2JsZW1hdGljIHVuaXQgdGVzdHMgaGF2ZSBiZWVuIHJlZm9ybXVsYXRlZCBhcyBp bmZvcm1hdGlvbmFsCisgIGNvbXBhcmlzb25zIGdlbmVyYXRlZCBieSB0aGUgc2NyaXB0CisgIHNj cmlwdHMvZGVtb25zdHJhdGVfcGFyc2VyX2RpZmZlcmVuY2VzLnB5LgorCisgIFRoaXMgbWFrZXMg QmVhdXRpZnVsIFNvdXAgY29tcGF0aWJsZSB3aXRoIGh0bWw1bGliIHZlcnNpb24gMC45NSBhbmQK KyAgZnV0dXJlIHZlcnNpb25zIG9mIEhUTUxQYXJzZXIuCisKKz0gNC4wLjBiNiAoMjAxMjAyMTYp ID0KKworKiBNdWx0aS12YWx1ZWQgYXR0cmlidXRlcyBsaWtlICJjbGFzcyIgYWx3YXlzIGhhdmUg YSBsaXN0IG9mIHZhbHVlcywKKyAgZXZlbiBpZiB0aGVyZSdzIG9ubHkgb25lIHZhbHVlIGluIHRo ZSBsaXN0LgorCisqIEFkZGVkIGEgbnVtYmVyIG9mIG11bHRpLXZhbHVlZCBhdHRyaWJ1dGVzIGRl ZmluZWQgaW4gSFRNTDUuCisKKyogU3RvcHBlZCBnZW5lcmF0aW5nIGEgc3BhY2UgYmVmb3JlIHRo ZSBzbGFzaCB0aGF0IGNsb3NlcyBhbgorICBlbXB0eS1lbGVtZW50IHRhZy4gVGhpcyBtYXkgY29t ZSBiYWNrIGlmIEkgYWRkIGEgc3BlY2lhbCBYSFRNTCBtb2RlCisgIChodHRwOi8vd3d3LnczLm9y Zy9UUi94aHRtbDEvI0NfMiksIGJ1dCByaWdodCBub3cgaXQncyBwcmV0dHkKKyAgdXNlbGVzcy4K KworKiBQYXNzaW5nIHRleHQgYWxvbmcgd2l0aCB0YWctc3BlY2lmaWMgYXJndW1lbnRzIHRvIGEg ZmluZCogbWV0aG9kOgorCisgICBmaW5kKCJhIiwgdGV4dD0iQ2xpY2sgaGVyZSIpCisKKyAgd2ls bCBmaW5kIHRhZ3MgdGhhdCBjb250YWluIHRoZSBnaXZlbiB0ZXh0IGFzIHRoZWlyCisgIC5zdHJp bmcuIFByZXZpb3VzbHksIHRoZSB0YWctc3BlY2lmaWMgYXJndW1lbnRzIHdlcmUgaWdub3JlZCBh bmQKKyAgb25seSBzdHJpbmdzIHdlcmUgc2VhcmNoZWQuCisKKyogRml4ZWQgYSBidWcgdGhhdCBj YXVzZWQgdGhlIGh0bWw1bGliIHRyZWUgYnVpbGRlciB0byBidWlsZCBhCisgIHBhcnRpYWxseSBk aXNjb25uZWN0ZWQgdHJlZS4gR2VuZXJhbGx5IGNsZWFuZWQgdXAgdGhlIGh0bWw1bGliIHRyZWUK KyAgYnVpbGRlci4KKworKiBJZiB5b3UgcmVzdHJpY3QgYSBtdWx0aS12YWx1ZWQgYXR0cmlidXRl IGxpa2UgImNsYXNzIiB0byBhIHN0cmluZworICB0aGF0IGNvbnRhaW5zIHNwYWNlcywgQmVhdXRp ZnVsIFNvdXAgd2lsbCBvbmx5IGNvbnNpZGVyIGl0IGEgbWF0Y2gKKyAgaWYgdGhlIHZhbHVlcyBj b3JyZXNwb25kIHRvIHRoYXQgc3BlY2lmaWMgc3RyaW5nLgorCis9IDQuMC4wYjUgKDIwMTIwMjA5 KSA9CisKKyogUmF0aW9uYWxpemVkIEJlYXV0aWZ1bCBTb3VwJ3MgdHJlYXRtZW50IG9mIENTUyBj bGFzcy4gQSB0YWcKKyAgYmVsb25naW5nIHRvIG11bHRpcGxlIENTUyBjbGFzc2VzIGlzIHRyZWF0 ZWQgYXMgaGF2aW5nIGEgbGlzdCBvZgorICB2YWx1ZXMgZm9yIHRoZSAnY2xhc3MnIGF0dHJpYnV0 ZS4gU2VhcmNoaW5nIGZvciBhIENTUyBjbGFzcyB3aWxsCisgIG1hdGNoICphbnkqIG9mIHRoZSBD U1MgY2xhc3Nlcy4KKworICBUaGlzIGFjdHVhbGx5IGFmZmVjdHMgYWxsIGF0dHJpYnV0ZXMgdGhh dCB0aGUgSFRNTCBzdGFuZGFyZCBkZWZpbmVzCisgIGFzIHRha2luZyBtdWx0aXBsZSB2YWx1ZXMg KGNsYXNzLCByZWwsIHJldiwgYXJjaGl2ZSwgYWNjZXB0LWNoYXJzZXQsCisgIGFuZCBoZWFkZXJz KSwgYnV0ICdjbGFzcycgaXMgYnkgZmFyIHRoZSBtb3N0IGNvbW1vbi4gW2J1Zz00MTAzNF0KKwor KiBJZiB5b3UgcGFzcyBhbnl0aGluZyBvdGhlciB0aGFuIGEgZGljdGlvbmFyeSBhcyB0aGUgc2Vj b25kIGFyZ3VtZW50CisgIHRvIG9uZSBvZiB0aGUgZmluZCogbWV0aG9kcywgaXQnbGwgYXNzdW1l IHlvdSB3YW50IHRvIHVzZSB0aGF0CisgIG9iamVjdCB0byBzZWFyY2ggYWdhaW5zdCBhIHRhZydz IENTUyBjbGFzc2VzLiBQcmV2aW91c2x5IHRoaXMgb25seQorICB3b3JrZWQgaWYgeW91IHBhc3Nl ZCBpbiBhIHN0cmluZy4KKworKiBGaXhlZCBhIGJ1ZyB0aGF0IGNhdXNlZCBhIGNyYXNoIHdoZW4g eW91IHBhc3NlZCBhIGRpY3Rpb25hcnkgYXMgYW4KKyAgYXR0cmlidXRlIHZhbHVlIChwb3NzaWJs eSBiZWNhdXNlIHlvdSBtaXN0eXBlZCAiYXR0cnMiKS4gW2J1Zz04NDI0MTldCisKKyogVW5pY29k ZSwgRGFtbWl0IG5vdyBkZXRlY3RzIHRoZSBlbmNvZGluZyBpbiBIVE1MIDUtc3R5bGUgPG1ldGE+ IHRhZ3MKKyAgbGlrZSA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4uIFtidWc9ODM3MjY4XQorCisq IElmIFVuaWNvZGUsIERhbW1pdCBjYW4ndCBmaWd1cmUgb3V0IGEgY29uc2lzdGVudCBlbmNvZGlu ZyBmb3IgYQorICBwYWdlLCBpdCB3aWxsIHRyeSBlYWNoIG9mIGl0cyBndWVzc2VzIGFnYWluLCB3 aXRoIGVycm9ycz0icmVwbGFjZSIKKyAgaW5zdGVhZCBvZiBlcnJvcnM9InN0cmljdCIuIFRoaXMg bWF5IG1lYW4gdGhhdCBzb21lIGRhdGEgZ2V0cworICByZXBsYWNlZCB3aXRoIFJFUExBQ0VNRU5U IENIQVJBQ1RFUiwgYnV0IGF0IGxlYXN0IG1vc3Qgb2YgaXQgd2lsbAorICBnZXQgdHVybmVkIGlu dG8gVW5pY29kZS4gW2J1Zz03NTQ5MDNdCisKKyogUGF0Y2hlZCBvdmVyIGEgYnVnIGluIGh0bWw1 bGliICg/KSB0aGF0IHdhcyBjcmFzaGluZyBCZWF1dGlmdWwgU291cAorICBvbiBjZXJ0YWluIGtp bmRzIG9mIG1hcmt1cC4gW2J1Zz04Mzg4MDBdCisKKyogRml4ZWQgYSBidWcgdGhhdCB3cmVja2Vk IHRoZSB0cmVlIGlmIHlvdSByZXBsYWNlZCBhbiBlbGVtZW50IHdpdGggYW4KKyAgZW1wdHkgc3Ry aW5nLiBbYnVnPTcyODY5N10KKworKiBJbXByb3ZlZCBVbmljb2RlLCBEYW1taXQncyBiZWhhdmlv ciB3aGVuIHlvdSBnaXZlIGl0IFVuaWNvZGUgdG8KKyAgYmVnaW4gd2l0aC4KKworPSA0LjAuMGI0 ICgyMDEyMDIwOCkgPQorCisqIEFkZGVkIEJlYXV0aWZ1bFNvdXAubmV3X3N0cmluZygpIHRvIGdv IGFsb25nIHdpdGggQmVhdXRpZnVsU291cC5uZXdfdGFnKCkKKworKiBCZWF1dGlmdWxTb3VwLm5l d190YWcoKSB3aWxsIGZvbGxvdyB0aGUgcnVsZXMgb2Ygd2hhdGV2ZXIKKyAgdHJlZS1idWlsZGVy IHdhcyB1c2VkIHRvIGNyZWF0ZSB0aGUgb3JpZ2luYWwgQmVhdXRpZnVsU291cCBvYmplY3QuIEEK KyAgbmV3IDxwPiB0YWcgd2lsbCBsb29rIGxpa2UgIjxwIC8+IiBpZiB0aGUgc291cCBvYmplY3Qg d2FzIGNyZWF0ZWQgdG8KKyAgcGFyc2UgWE1MLCBidXQgaXQgd2lsbCBsb29rIGxpa2UgIjxwPjwv cD4iIGlmIHRoZSBzb3VwIG9iamVjdCB3YXMKKyAgY3JlYXRlZCB0byBwYXJzZSBIVE1MLgorCisq IFdlIHBhc3MgaW4gc3RyaWN0PUZhbHNlIHRvIGh0bWwucGFyc2VyIG9uIFB5dGhvbiAzLCBncmVh dGx5CisgIGltcHJvdmluZyBodG1sLnBhcnNlcidzIGFiaWxpdHkgdG8gaGFuZGxlIGJhZCBIVE1M LgorCisqIFdlIGFsc28gbW9ua2V5cGF0Y2ggYSBzZXJpb3VzIGJ1ZyBpbiBodG1sLnBhcnNlciB0 aGF0IG1hZGUKKyAgc3RyaWN0PUZhbHNlIGRpc2FzdHJvdXMgb24gUHl0aG9uIDMuMi4yLgorCisq IFJlcGxhY2VkIHRoZSAic3Vic3RpdHV0ZV9odG1sX2VudGl0aWVzIiBhcmd1bWVudCB3aXRoIHRo ZQorICBtb3JlIGdlbmVyYWwgImZvcm1hdHRlciIgYXJndW1lbnQuCisKKyogQmFyZSBhbXBlcnNh bmRzIGFuZCBhbmdsZSBicmFja2V0cyBhcmUgYWx3YXlzIGNvbnZlcnRlZCB0byBYTUwKKyAgZW50 aXRpZXMgdW5sZXNzIHRoZSB1c2VyIHByZXZlbnRzIGl0LgorCisqIEFkZGVkIFBhZ2VFbGVtZW50 Lmluc2VydF9iZWZvcmUoKSBhbmQgUGFnZUVsZW1lbnQuaW5zZXJ0X2FmdGVyKCksCisgIHdoaWNo IGxldCB5b3UgcHV0IGFuIGVsZW1lbnQgaW50byB0aGUgcGFyc2UgdHJlZSB3aXRoIHJlc3BlY3Qg dG8KKyAgc29tZSBvdGhlciBlbGVtZW50LgorCisqIFJhaXNlIGFuIGV4Y2VwdGlvbiB3aGVuIHRo ZSB1c2VyIHRyaWVzIHRvIGRvIHNvbWV0aGluZyBub25zZW5zaWNhbAorICBsaWtlIGluc2VydCBh IHRhZyBpbnRvIGl0c2VsZi4KKworCis9IDQuMC4wYjMgKDIwMTIwMjAzKSA9CisKK0JlYXV0aWZ1 bCBTb3VwIDQgaXMgYSBuZWFybHktY29tcGxldGUgcmV3cml0ZSB0aGF0IHJlbW92ZXMgQmVhdXRp ZnVsCitTb3VwJ3MgY3VzdG9tIEhUTUwgcGFyc2VyIGluIGZhdm9yIG9mIGEgc3lzdGVtIHRoYXQg bGV0cyB5b3Ugd3JpdGUgYQorbGl0dGxlIGdsdWUgY29kZSBhbmQgcGx1ZyBpbiBhbnkgSFRNTCBv ciBYTUwgcGFyc2VyIHlvdSB3YW50LgorCitCZWF1dGlmdWwgU291cCA0LjAgY29tZXMgd2l0aCBn bHVlIGNvZGUgZm9yIGZvdXIgcGFyc2VyczoKKworICogUHl0aG9uJ3Mgc3RhbmRhcmQgSFRNTFBh cnNlciAoaHRtbC5wYXJzZXIgaW4gUHl0aG9uIDMpCisgKiBseG1sJ3MgSFRNTCBhbmQgWE1MIHBh cnNlcnMKKyAqIGh0bWw1bGliJ3MgSFRNTCBwYXJzZXIKKworSFRNTFBhcnNlciBpcyB0aGUgZGVm YXVsdCwgYnV0IEkgcmVjb21tZW5kIHlvdSBpbnN0YWxsIGx4bWwgaWYgeW91CitjYW4uCisKK0Zv ciBjb21wbGV0ZSBkb2N1bWVudGF0aW9uLCBzZWUgdGhlIFNwaGlueCBkb2N1bWVudGF0aW9uIGlu CiticzQvZG9jL3NvdXJjZS8uIFdoYXQgZm9sbG93cyBpcyBhIHN1bW1hcnkgb2YgdGhlIGNoYW5n ZXMgZnJvbQorQmVhdXRpZnVsIFNvdXAgMy4KKworPT09IFRoZSBtb2R1bGUgbmFtZSBoYXMgY2hh bmdlZCA9PT0KKworUHJldmlvdXNseSB5b3UgaW1wb3J0ZWQgdGhlIEJlYXV0aWZ1bFNvdXAgY2xh c3MgZnJvbSBhIG1vZHVsZSBhbHNvCitjYWxsZWQgQmVhdXRpZnVsU291cC4gVG8gc2F2ZSBrZXlz dHJva2VzIGFuZCBtYWtlIGl0IGNsZWFyIHdoaWNoCit2ZXJzaW9uIG9mIHRoZSBBUEkgaXMgaW4g dXNlLCB0aGUgbW9kdWxlIGlzIG5vdyBjYWxsZWQgJ2JzNCc6CisKKyAgICA+Pj4gZnJvbSBiczQg aW1wb3J0IEJlYXV0aWZ1bFNvdXAKKworPT09IEl0IHdvcmtzIHdpdGggUHl0aG9uIDMgPT09CisK K0JlYXV0aWZ1bCBTb3VwIDMuMS4wIHdvcmtlZCB3aXRoIFB5dGhvbiAzLCBidXQgdGhlIHBhcnNl ciBpdCB1c2VkIHdhcworc28gYmFkIHRoYXQgaXQgYmFyZWx5IHdvcmtlZCBhdCBhbGwuIEJlYXV0 aWZ1bCBTb3VwIDQgd29ya3Mgd2l0aAorUHl0aG9uIDMsIGFuZCBzaW5jZSBpdHMgcGFyc2VyIGlz IHBsdWdnYWJsZSwgeW91IGRvbid0IHNhY3JpZmljZQorcXVhbGl0eS4KKworU3BlY2lhbCB0aGFu a3MgdG8gVGhvbWFzIEtsdXl2ZXIgYW5kIEV6aW8gTWVsb3R0aSBmb3IgZ2V0dGluZyBQeXRob24g Mworc3VwcG9ydCB0byB0aGUgZmluaXNoIGxpbmUuIEV6aW8gTWVsb3R0aSBpcyBhbHNvIHRvIHRo YW5rIGZvciBncmVhdGx5CitpbXByb3ZpbmcgdGhlIEhUTUwgcGFyc2VyIHRoYXQgY29tZXMgd2l0 aCBQeXRob24gMy4yLgorCis9PT0gQ0RBVEEgc2VjdGlvbnMgYXJlIG5vcm1hbCB0ZXh0LCBpZiB0 aGV5J3JlIHVuZGVyc3Rvb2QgYXQgYWxsLiA9PT0KKworQ3VycmVudGx5LCB0aGUgbHhtbCBhbmQg aHRtbDVsaWIgSFRNTCBwYXJzZXJzIGlnbm9yZSBDREFUQSBzZWN0aW9ucyBpbgorbWFya3VwOgor CisgPHA+PCFbQ0RBVEFbZm9vXV0+PC9wPiA9PiA8cD48L3A+CisKK0EgZnV0dXJlIHZlcnNpb24g b2YgaHRtbDVsaWIgd2lsbCB0dXJuIENEQVRBIHNlY3Rpb25zIGludG8gdGV4dCBub2RlcywKK2J1 dCBvbmx5IHdpdGhpbiB0YWdzIGxpa2UgPHN2Zz4gYW5kIDxtYXRoPjoKKworIDxzdmc+PCFbQ0RB VEFbZm9vXV0+PC9zdmc+ID0+IDxwPmZvbzwvcD4KKworVGhlIGRlZmF1bHQgWE1MIHBhcnNlciAo d2hpY2ggdXNlcyBseG1sIGJlaGluZCB0aGUgc2NlbmVzKSB0dXJucyBDREFUQQorc2VjdGlvbnMg aW50byBvcmRpbmFyeSB0ZXh0IGVsZW1lbnRzOgorCisgPHA+PCFbQ0RBVEFbZm9vXV0+PC9wPiA9 PiA8cD5mb288L3A+CisKK0luIHRoZW9yeSBpdCdzIHBvc3NpYmxlIHRvIHByZXNlcnZlIHRoZSBD REFUQSBzZWN0aW9ucyB3aGVuIHVzaW5nIHRoZQorWE1MIHBhcnNlciwgYnV0IEkgZG9uJ3Qgc2Vl IGhvdyB0byBnZXQgaXQgdG8gd29yayBpbiBwcmFjdGljZS4KKworPT09IE1pc2NlbGxhbmVvdXMg b3RoZXIgc3R1ZmYgPT09CisKK0lmIHRoZSBCZWF1dGlmdWxTb3VwIGluc3RhbmNlIGhhcyAuaXNf eG1sIHNldCB0byBUcnVlLCBhbiBhcHByb3ByaWF0ZQorWE1MIGRlY2xhcmF0aW9uIHdpbGwgYmUg ZW1pdHRlZCB3aGVuIHRoZSB0cmVlIGlzIHRyYW5zZm9ybWVkIGludG8gYQorc3RyaW5nOgorCisg ICAgPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPgorICAgIDxtYXJrdXA+Cisg ICAgIC4uLgorICAgIDwvbWFya3VwPgorCitUaGUgWydseG1sJywgJ3htbCddIHRyZWUgYnVpbGRl ciBzZXRzIC5pc194bWwgdG8gVHJ1ZTsgdGhlIG90aGVyIHRyZWUKK2J1aWxkZXJzIHNldCBpdCB0 byBGYWxzZS4gSWYgeW91IHdhbnQgdG8gcGFyc2UgWEhUTUwgd2l0aCBhbiBIVE1MCitwYXJzZXIs IHlvdSBjYW4gc2V0IGl0IG1hbnVhbGx5LgorCisKKz0gMy4yLjAgPQorCitUaGUgMy4xIHNlcmll cyB3YXNuJ3QgdmVyeSB1c2VmdWwsIHNvIEkgcmVuYW1lZCB0aGUgMy4wIHNlcmllcyB0byAzLjIK K3RvIG1ha2UgaXQgb2J2aW91cyB3aGljaCBvbmUgeW91IHNob3VsZCB1c2UuCisKKz0gMy4xLjAg PQorCitBIGh5YnJpZCB2ZXJzaW9uIHRoYXQgc3VwcG9ydHMgMi40IGFuZCBjYW4gYmUgYXV0b21h dGljYWxseSBjb252ZXJ0ZWQKK3RvIHJ1biB1bmRlciBQeXRob24gMy4wLiBUaGVyZSBhcmUgdGhy ZWUgYmFja3dhcmRzLWluY29tcGF0aWJsZQorY2hhbmdlcyB5b3Ugc2hvdWxkIGJlIGF3YXJlIG9m LCBidXQgbm8gbmV3IGZlYXR1cmVzIG9yIGRlbGliZXJhdGUKK2JlaGF2aW9yIGNoYW5nZXMuCisK KzEuIHN0cigpIG1heSBubyBsb25nZXIgZG8gd2hhdCB5b3Ugd2FudC4gVGhpcyBpcyBiZWNhdXNl IHRoZSBtZWFuaW5nCitvZiBzdHIoKSBpbnZlcnRzIGJldHdlZW4gUHl0aG9uIDIgYW5kIDM7IGlu IFB5dGhvbiAyIGl0IGdpdmVzIHlvdSBhCitieXRlIHN0cmluZywgaW4gUHl0aG9uIDMgaXQgZ2l2 ZXMgeW91IGEgVW5pY29kZSBzdHJpbmcuCisKK1RoZSBlZmZlY3Qgb2YgdGhpcyBpcyB0aGF0IHlv dSBjYW4ndCBwYXNzIGFuIGVuY29kaW5nIHRvIC5fX3N0cl9fCithbnltb3JlLiBVc2UgZW5jb2Rl KCkgdG8gZ2V0IGEgc3RyaW5nIGFuZCBkZWNvZGUoKSB0byBnZXQgVW5pY29kZSwgYW5kCit5b3Un bGwgYmUgcmVhZHkgKHdlbGwsIHJlYWRpZXIpIGZvciBQeXRob24gMy4KKworMi4gQmVhdXRpZnVs IFNvdXAgaXMgbm93IGJhc2VkIG9uIEhUTUxQYXJzZXIgcmF0aGVyIHRoYW4gU0dNTFBhcnNlciwK K3doaWNoIGlzIGdvbmUgaW4gUHl0aG9uIDMuIFRoZXJlJ3Mgc29tZSBiYWQgSFRNTCB0aGF0IFNH TUxQYXJzZXIKK2hhbmRsZWQgYnV0IEhUTUxQYXJzZXIgZG9lc24ndCwgdXN1YWxseSB0byBkbyB3 aXRoIGF0dHJpYnV0ZSB2YWx1ZXMKK3RoYXQgYXJlbid0IGNsb3NlZCBvciBoYXZlIGJyYWNrZXRz IGluc2lkZSB0aGVtOgorCisgIDxhIGhyZWY9ImZvbzwvYT4sIDwvYT48YSBocmVmPSJiYXIiPmJh ejwvYT4KKyAgPGEgYj0iPGE+Ij4nLCAnPGEgYj0iJmx0O2EmZ3Q7Ij48L2E+PGE+Ij48L2E+CisK K0EgbGF0ZXIgdmVyc2lvbiBvZiBCZWF1dGlmdWwgU291cCB3aWxsIGFsbG93IHlvdSB0byBwbHVn IGluIGRpZmZlcmVudAorcGFyc2VycyB0byBtYWtlIHRyYWRlb2ZmcyBiZXR3ZWVuIHNwZWVkIGFu ZCB0aGUgYWJpbGl0eSB0byBoYW5kbGUgYmFkCitIVE1MLgorCiszLiBJbiBQeXRob24gMyAoYnV0 IG5vdCBQeXRob24gMiksIEhUTUxQYXJzZXIgY29udmVydHMgZW50aXRpZXMgd2l0aGluCithdHRy aWJ1dGVzIHRvIHRoZSBjb3JyZXNwb25kaW5nIFVuaWNvZGUgY2hhcmFjdGVycy4gSW4gUHl0aG9u IDIgaXQncworcG9zc2libGUgdG8gcGFyc2UgdGhpcyBzdHJpbmcgYW5kIGxlYXZlIHRoZSAmZWFj dXRlOyBpbnRhY3QuCisKKyA8YSBocmVmPSJodHRwOi8vY3J1bW15LmNvbT9zYWNyJmVhY3V0ZTsm YmxldSI+CisKK0luIFB5dGhvbiAzLCB0aGUgJmVhY3V0ZTsgaXMgYWx3YXlzIGNvbnZlcnRlZCB0 byBceGU5IGR1cmluZworcGFyc2luZy4KKworCis9IDMuMC43YSA9CisKK0FkZGVkIGFuIGltcG9y dCB0aGF0IG1ha2VzIEJTIHdvcmsgaW4gUHl0aG9uIDIuMy4KKworCis9IDMuMC43ID0KKworRml4 ZWQgYSBVbmljb2RlRGVjb2RlRXJyb3Igd2hlbiB1bnBpY2tsaW5nIGRvY3VtZW50cyB0aGF0IGNv bnRhaW4KK25vbi1BU0NJSSBjaGFyYWN0ZXJzLgorCitGaXhlZCBhIFR5cGVFcnJvciB0aGF0IG9j Y3VycmVkIGluIHNvbWUgY2lyY3Vtc3RhbmNlcyB3aGVuIGEgdGFnCitjb250YWluZWQgbm8gdGV4 dC4KKworSnVtcCB0aHJvdWdoIGhvb3BzIHRvIGF2b2lkIHRoZSB1c2Ugb2YgY2hhcmRldCwgd2hp Y2ggY2FuIGJlIGV4dHJlbWVseQorc2xvdyBpbiBzb21lIGNpcmN1bXN0YW5jZXMuIFVURi04IGRv Y3VtZW50cyBzaG91bGQgbmV2ZXIgdHJpZ2dlciB0aGUKK3VzZSBvZiBjaGFyZGV0LgorCitXaGl0 ZXNwYWNlIGlzIHByZXNlcnZlZCBpbnNpZGUgPHByZT4gYW5kIDx0ZXh0YXJlYT4gdGFncyB0aGF0 IGNvbnRhaW4KK25vdGhpbmcgYnV0IHdoaXRlc3BhY2UuCisKK0JlYXV0aWZ1bCBTb3VwIGNhbiBu b3cgcGFyc2UgYSBkb2N0eXBlIHRoYXQncyBzY29wZWQgdG8gYW4gWE1MIG5hbWVzcGFjZS4KKwor Cis9IDMuMC42ID0KKworR290IHJpZCBvZiBhIHZlcnkgb2xkIGRlYnVnIGxpbmUgdGhhdCBwcmV2 ZW50ZWQgY2hhcmRldCBmcm9tIHdvcmtpbmcuCisKK0FkZGVkIGEgVGFnLmRlY29tcG9zZSgpIG1l dGhvZCB0aGF0IGNvbXBsZXRlbHkgZGlzY29ubmVjdHMgYSB0cmVlIG9yIGEKK3N1YnNldCBvZiBh IHRyZWUsIGJyZWFraW5nIGl0IHVwIGludG8gYml0ZS1zaXplZCBwaWVjZXMgdGhhdCBhcmUKK2Vh c3kgZm9yIHRoZSBnYXJiYWdlIGNvbGxlY3RlciB0byBjb2xsZWN0LgorCitUYWcuZXh0cmFjdCgp IG5vdyByZXR1cm5zIHRoZSB0YWcgdGhhdCB3YXMgZXh0cmFjdGVkLgorCitUYWcuZmluZE5leHQo KSBub3cgZG9lcyBzb21ldGhpbmcgd2l0aCB0aGUga2V5d29yZCBhcmd1bWVudHMgeW91IHBhc3MK K2l0IGluc3RlYWQgb2YgZHJvcHBpbmcgdGhlbSBvbiB0aGUgZmxvb3IuCisKK0ZpeGVkIGEgVW5p Y29kZSBjb252ZXJzaW9uIGJ1Zy4KKworRml4ZWQgYSBidWcgdGhhdCBnYXJibGVkIHNvbWUgPG1l dGE+IHRhZ3Mgd2hlbiByZXdyaXRpbmcgdGhlbS4KKworCis9IDMuMC41ID0KKworU291cCBvYmpl Y3RzIGNhbiBub3cgYmUgcGlja2xlZCwgYW5kIGNvcGllZCB3aXRoIGNvcHkuZGVlcGNvcHkuCisK K1RhZy5hcHBlbmQgbm93IHdvcmtzIHByb3Blcmx5IG9uIGV4aXN0aW5nIEJTIG9iamVjdHMuIChJ dCB3YXNuJ3QKK29yaWdpbmFsbHkgaW50ZW5kZWQgZm9yIG91dHNpZGUgdXNlLCBidXQgaXQgY2Fu IGJlIG5vdy4pIChHaWxlcworUmFkZm9yZCkKKworUGFzc2luZyBpbiBhIG5vbmV4aXN0ZW50IGVu Y29kaW5nIHdpbGwgbm8gbG9uZ2VyIGNyYXNoIHRoZSBwYXJzZXIgb24KK1B5dGhvbiAyLjQgKEpv aG4gTmFnbGUpLgorCitGaXhlZCBhbiB1bmRlcmx5aW5nIGJ1ZyBpbiBTR01MUGFyc2VyIHRoYXQg dGhpbmtzIEFTQ0lJIGhhcyAyNTUKK2NoYXJhY3RlcnMgaW5zdGVhZCBvZiAxMjcgKEpvaG4gTmFn bGUpLgorCitFbnRpdGllcyBhcmUgY29udmVydGVkIG1vcmUgY29uc2lzdGVudGx5IHRvIFVuaWNv ZGUgY2hhcmFjdGVycy4KKworRW50aXR5IHJlZmVyZW5jZXMgaW4gYXR0cmlidXRlIHZhbHVlcyBh cmUgbm93IGNvbnZlcnRlZCB0byBVbmljb2RlCitjaGFyYWN0ZXJzIHdoZW4gYXBwcm9wcmlhdGUu IE51bWVyaWMgZW50aXRpZXMgYXJlIGFsd2F5cyBjb252ZXJ0ZWQsCitiZWNhdXNlIFNHTUxQYXJz ZXIgYWx3YXlzIGNvbnZlcnRzIHRoZW0gb3V0c2lkZSBvZiBhdHRyaWJ1dGUgdmFsdWVzLgorCitB TExfRU5USVRJRVMgaGFwcGVucyB0byBqdXN0IGJlIHRoZSBYSFRNTCBlbnRpdGllcywgc28gSSBy ZW5hbWVkIGl0IHRvCitYSFRNTF9FTlRJVElFUy4KKworVGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBm b3IgYmFyZSBhbXBlcnNhbmRzIHdhcyB0b28gbG9vc2UuIEluIHNvbWUKK2Nhc2VzIGFtcGVyc2Fu ZHMgd2VyZSBub3QgYmVpbmcgZXNjYXBlZC4gKFNhbSBSdWJ5PykKKworTm9uLWJyZWFraW5nIHNw YWNlcyBhbmQgb3RoZXIgc3BlY2lhbCBVbmljb2RlIHNwYWNlIGNoYXJhY3RlcnMgYXJlIG5vCits b25nZXIgZm9sZGVkIHRvIEFTQ0lJIHNwYWNlcy4gKFJvYmVydCBMZWZ0d2ljaCkKKworSW5mb3Jt YXRpb24gaW5zaWRlIGEgVEVYVEFSRUEgdGFnIGlzIG5vdyBwYXJzZWQgbGl0ZXJhbGx5LCBub3Qg YXMgSFRNTAordGFncy4gVEVYVEFSRUEgbm93IHdvcmtzIGV4YWN0bHkgdGhlIHNhbWUgd2F5IGFz IFNDUklQVC4gKFplcGh5ciBGYW5nKQorCis9IDMuMC40ID0KKworRml4ZWQgYSBidWcgdGhhdCBj cmFzaGVkIFVuaWNvZGUgY29udmVyc2lvbiBpbiBzb21lIGNhc2VzLgorCitGaXhlZCBhIGJ1ZyB0 aGF0IHByZXZlbnRlZCBVbmljb2RlRGFtbWl0IGZyb20gYmVpbmcgdXNlZCBhcyBhCitnZW5lcmFs LXB1cnBvc2UgZGF0YSBzY3J1YmJlci4KKworRml4ZWQgc29tZSB1bml0IHRlc3QgZmFpbHVyZXMg d2hlbiBydW5uaW5nIGFnYWluc3QgUHl0aG9uIDIuNS4KKworV2hlbiBjb25zaWRlcmluZyB3aGV0 aGVyIHRvIGNvbnZlcnQgc21hcnQgcXVvdGVzLCBVbmljb2RlRGFtbWl0IG5vdworbG9va3MgYXQg dGhlIG9yaWdpbmFsIGVuY29kaW5nIGluIGEgY2FzZS1pbnNlbnNpdGl2ZSB3YXkuCisKKz0gMy4w LjMgKDIwMDYwNjA2KSA9CisKK0JlYXV0aWZ1bCBTb3VwIGlzIG5vdyB1c2FibGUgYXMgYSB3YXkg dG8gY2xlYW4gdXAgaW52YWxpZCBYTUwvSFRNTCAoYmUKK3N1cmUgdG8gcGFzcyBpbiBhbiBhcHBy b3ByaWF0ZSB2YWx1ZSBmb3IgY29udmVydEVudGl0aWVzLCBvciBYTUwvSFRNTAorZW50aXRpZXMg bWlnaHQgc3RpY2sgYXJvdW5kIHRoYXQgYXJlbid0IHZhbGlkIGluIEhUTUwvWE1MKS4gVGhlIHJl c3VsdAorbWF5IG5vdCB2YWxpZGF0ZSwgYnV0IGl0IHNob3VsZCBiZSBnb29kIGVub3VnaCB0byBu b3QgY2hva2UgYQorcmVhbC13b3JsZCBYTUwgcGFyc2VyLiBTcGVjaWZpY2FsbHksIHRoZSBvdXRw dXQgb2YgYSBwcm9wZXJseQorY29uc3RydWN0ZWQgc291cCBvYmplY3Qgc2hvdWxkIGFsd2F5cyBi ZSB2YWxpZCBhcyBwYXJ0IG9mIGFuIFhNTAorZG9jdW1lbnQsIGJ1dCBwYXJ0cyBtYXkgYmUgbWlz c2luZyBpZiB0aGV5IHdlcmUgbWlzc2luZyBpbiB0aGUKK29yaWdpbmFsLiBBcyBhbHdheXMsIGlm IHRoZSBpbnB1dCBpcyB2YWxpZCBYTUwsIHRoZSBvdXRwdXQgd2lsbCBhbHNvCitiZSB2YWxpZC4K KworPSAzLjAuMiAoMjAwNjA2MDIpID0KKworUHJldmlvdXNseSwgQmVhdXRpZnVsIFNvdXAgY29y cmVjdGx5IGhhbmRsZWQgYXR0cmlidXRlIHZhbHVlcyB0aGF0Citjb250YWluZWQgZW1iZWRkZWQg cXVvdGVzIChzb21ldGltZXMgYnkgZXNjYXBpbmcpLCBidXQgbm90IG90aGVyIGtpbmRzCitvZiBY TUwgY2hhcmFjdGVyLiBOb3csIGl0IGNvcnJlY3RseSBoYW5kbGVzIG9yIGVzY2FwZXMgYWxsIHNw ZWNpYWwgWE1MCitjaGFyYWN0ZXJzIGluIGF0dHJpYnV0ZSB2YWx1ZXMuCisKK0kgYWxpYXNlZCBt ZXRob2RzIHRvIHRoZSAyLnggbmFtZXMgKGZldGNoLCBmaW5kLCBmaW5kVGV4dCwgZXRjLikgZm9y CitiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBwdXJwb3Nlcy4gVGhvc2UgbmFtZXMgYXJlIGRlcHJl Y2F0ZWQgYW5kIGlmIEkKK2V2ZXIgZG8gYSA0LjAgSSB3aWxsIHJlbW92ZSB0aGVtLiBJIHdpbGws IEkgdGVsbCB5b3UhCisKK0ZpeGVkIGEgYnVnIHdoZXJlIHRoZSBmaW5kQWxsIG1ldGhvZCB3YXNu J3QgcGFzc2luZyBhbG9uZyBhbnkga2V5d29yZAorYXJndW1lbnRzLgorCitXaGVuIHJ1biBmcm9t IHRoZSBjb21tYW5kIGxpbmUsIEJlYXV0aWZ1bCBTb3VwIG5vdyBhY3RzIGFzIGFuIEhUTUwKK3By ZXR0eS1wcmludGVyLCBub3QgYW4gWE1MIHByZXR0eS1wcmludGVyLgorCis9IDMuMC4xICgyMDA2 MDUzMCkgPQorCitSZWludHJvZHVjZWQgdGhlICJmZXRjaCBieSBDU1MgY2xhc3MiIHNob3J0Y3V0 LiBJIHRob3VnaHQga2V5d29yZAorYXJndW1lbnRzIHdvdWxkIHJlcGxhY2UgaXQsIGJ1dCB0aGV5 IGRvbid0LiBZb3UgY2FuJ3QgY2FsbCBzb3VwKCdhJywKK2NsYXNzPSdmb28nKSBiZWNhdXNlIGNs YXNzIGlzIGEgUHl0aG9uIGtleXdvcmQuCisKK0lmIEJlYXV0aWZ1bCBTb3VwIGVuY291bnRlcnMg YSBtZXRhIHRhZyB0aGF0IGRlY2xhcmVzIHRoZSBlbmNvZGluZywKK2J1dCBhIFNvdXBTdHJhaW5l ciB0ZWxscyBpdCBub3QgdG8gcGFyc2UgdGhhdCB0YWcsIEJlYXV0aWZ1bCBTb3VwIHdpbGwKK25v IGxvbmdlciB0cnkgdG8gcmV3cml0ZSB0aGUgbWV0YSB0YWcgdG8gbWVudGlvbiB0aGUgbmV3Citl bmNvZGluZy4gQmFzaWNhbGx5LCB0aGlzIG1ha2VzIFNvdXBTdHJhaW5lcnMgd29yayBpbiByZWFs LXdvcmxkCithcHBsaWNhdGlvbnMgaW5zdGVhZCBvZiBjcmFzaGluZyB0aGUgcGFyc2VyLgorCis9 IDMuMC4wICJXaG8gd291bGQgbm90IGdpdmUgYWxsIGVsc2UgZm9yIHR3byBwIiAoMjAwNjA1Mjgp ID0KKworVGhpcyByZWxlYXNlIGlzIG5vdCBiYWNrd2FyZC1jb21wYXRpYmxlIHdpdGggcHJldmlv dXMgcmVsZWFzZXMuIElmCit5b3UndmUgZ290IGNvZGUgd3JpdHRlbiB3aXRoIGEgcHJldmlvdXMg dmVyc2lvbiBvZiB0aGUgbGlicmFyeSwgZ28KK2FoZWFkIGFuZCBrZWVwIHVzaW5nIGl0LCB1bmxl c3Mgb25lIG9mIHRoZSBmZWF0dXJlcyBtZW50aW9uZWQgaGVyZQorcmVhbGx5IG1ha2VzIHlvdXIg bGlmZSBlYXNpZXIuIFNpbmNlIHRoZSBsaWJyYXJ5IGlzIHNlbGYtY29udGFpbmVkLAoreW91IGNh biBpbmNsdWRlIGFuIG9sZCBjb3B5IG9mIHRoZSBsaWJyYXJ5IGluIHlvdXIgb2xkIGFwcGxpY2F0 aW9ucywKK2FuZCB1c2UgdGhlIG5ldyB2ZXJzaW9uIGZvciBldmVyeXRoaW5nIGVsc2UuCisKK1Ro ZSBkb2N1bWVudGF0aW9uIGhhcyBiZWVuIHJld3JpdHRlbiBhbmQgZ3JlYXRseSBleHBhbmRlZCB3 aXRoIG1hbnkKK21vcmUgZXhhbXBsZXMuCisKK0JlYXV0aWZ1bCBTb3VwIGF1dG9kZXRlY3RzIHRo ZSBlbmNvZGluZyBvZiBhIGRvY3VtZW50IChvciB1c2VzIHRoZSBvbmUKK3lvdSBzcGVjaWZ5KSwg YW5kIGNvbnZlcnRzIGl0IGZyb20gaXRzIG5hdGl2ZSBlbmNvZGluZyB0bworVW5pY29kZS4gSW50 ZXJuYWxseSwgaXQgb25seSBkZWFscyB3aXRoIFVuaWNvZGUgc3RyaW5ncy4gV2hlbiB5b3UKK3By aW50IG91dCB0aGUgZG9jdW1lbnQsIGl0IGNvbnZlcnRzIHRvIFVURi04IChvciBhbm90aGVyIGVu Y29kaW5nIHlvdQorc3BlY2lmeSkuIFtEb2MgcmVmZXJlbmNlXQorCitJdCdzIG5vdyBlYXN5IHRv IG1ha2UgbGFyZ2Utc2NhbGUgY2hhbmdlcyB0byB0aGUgcGFyc2UgdHJlZSB3aXRob3V0CitzY3Jl d2luZyB1cCB0aGUgbmF2aWdhdGlvbiBtZW1iZXJzLiBUaGUgbWV0aG9kcyBhcmUgZXh0cmFjdCwK K3JlcGxhY2VXaXRoLCBhbmQgaW5zZXJ0LiBbRG9jIHJlZmVyZW5jZS4gU2VlIGFsc28gSW1wcm92 aW5nIE1lbW9yeQorVXNhZ2Ugd2l0aCBleHRyYWN0XQorCitQYXNzaW5nIFRydWUgaW4gYXMgYW4g YXR0cmlidXRlIHZhbHVlIGdpdmVzIHlvdSB0YWdzIHRoYXQgaGF2ZSBhbnkKK3ZhbHVlIGZvciB0 aGF0IGF0dHJpYnV0ZS4gWW91IGRvbid0IGhhdmUgdG8gY3JlYXRlIGEgcmVndWxhcgorZXhwcmVz c2lvbi4gUGFzc2luZyBOb25lIGZvciBhbiBhdHRyaWJ1dGUgdmFsdWUgZ2l2ZXMgeW91IHRhZ3Mg dGhhdAorZG9uJ3QgaGF2ZSB0aGF0IGF0dHJpYnV0ZSBhdCBhbGwuCisKK1RhZyBvYmplY3RzIG5v dyBrbm93IHdoZXRoZXIgb3Igbm90IHRoZXkncmUgc2VsZi1jbG9zaW5nLiBUaGlzIGF2b2lkcwor dGhlIHByb2JsZW0gd2hlcmUgQmVhdXRpZnVsIFNvdXAgdGhvdWdodCB0aGF0IHRhZ3MgbGlrZSA8 QlIgLz4gd2VyZQorc2VsZi1jbG9zaW5nIGV2ZW4gaW4gWE1MIGRvY3VtZW50cy4gWW91IGNhbiBj dXN0b21pemUgdGhlIHNlbGYtY2xvc2luZwordGFncyBmb3IgYSBwYXJzZXIgb2JqZWN0IGJ5IHBh c3NpbmcgdGhlbSBpbiBhcyBhIGxpc3Qgb2YKK3NlbGZDbG9zaW5nVGFnczogeW91IGRvbid0IGhh dmUgdG8gc3ViY2xhc3MgYW55bW9yZS4KKworVGhlcmUncyBhIG5ldyBidWlsdC1pbiBwYXJzZXIs IE1pbmltYWxTb3VwLCB3aGljaCBoYXMgbW9zdCBvZgorQmVhdXRpZnVsU291cCdzIEhUTUwtc3Bl Y2lmaWMgcnVsZXMsIGJ1dCBubyB0YWcgbmVzdGluZyBydWxlcy4gW0RvYworcmVmZXJlbmNlXQor CitZb3UgY2FuIHVzZSBhIFNvdXBTdHJhaW5lciB0byB0ZWxsIEJlYXV0aWZ1bCBTb3VwIHRvIHBh cnNlIG9ubHkgcGFydAorb2YgYSBkb2N1bWVudC4gVGhpcyBzYXZlcyB0aW1lIGFuZCBtZW1vcnks IG9mdGVuIG1ha2luZyBCZWF1dGlmdWwgU291cAorYWJvdXQgYXMgZmFzdCBhcyBhIGN1c3RvbS1i dWlsdCBTR01MUGFyc2VyIHN1YmNsYXNzLiBbRG9jIHJlZmVyZW5jZSwKK1NvdXBTdHJhaW5lciBy ZWZlcmVuY2VdCisKK1lvdSBjYW4gKHVzdWFsbHkpIHVzZSBrZXl3b3JkIGFyZ3VtZW50cyBpbnN0 ZWFkIG9mIHBhc3NpbmcgYQorZGljdGlvbmFyeSBvZiBhdHRyaWJ1dGVzIHRvIGEgc2VhcmNoIG1l dGhvZC4gVGhhdCBpcywgeW91IGNhbiByZXBsYWNlCitzb3VwKGFyZ3M9eyJpZCIgOiAiNSJ9KSB3 aXRoIHNvdXAoaWQ9IjUiKS4gWW91IGNhbiBzdGlsbCB1c2UgYXJncyBpZgorKGZvciBpbnN0YW5j ZSkgeW91IG5lZWQgdG8gZmluZCBhbiBhdHRyaWJ1dGUgd2hvc2UgbmFtZSBjbGFzaGVzIHdpdGgK K3RoZSBuYW1lIG9mIGFuIGFyZ3VtZW50IHRvIGZpbmRBbGwuIFtEb2MgcmVmZXJlbmNlOiAqKmt3 YXJncyBhdHRyc10KKworVGhlIG1ldGhvZCBuYW1lcyBoYXZlIGNoYW5nZWQgdG8gdGhlIGJldHRl ciBtZXRob2QgbmFtZXMgdXNlZCBpbgorUnVieWZ1bCBTb3VwLiBJbnN0ZWFkIG9mIGZpbmQgbWV0 aG9kcyBhbmQgZmV0Y2ggbWV0aG9kcywgdGhlcmUgYXJlCitvbmx5IGZpbmQgbWV0aG9kcy4gSW5z dGVhZCBvZiBhIHNjaGVtZSB3aGVyZSB5b3UgY2FuJ3QgcmVtZW1iZXIgd2hpY2gKK21ldGhvZCBm aW5kcyBvbmUgZWxlbWVudCBhbmQgd2hpY2ggb25lIGZpbmRzIHRoZW0gYWxsLCB3ZSBoYXZlIGZp bmQKK2FuZCBmaW5kQWxsLiBJbiBnZW5lcmFsLCBpZiB0aGUgbWV0aG9kIG5hbWUgbWVudGlvbnMg QWxsIG9yIGEgcGx1cmFsCitub3VuIChlZy4gZmluZE5leHRTaWJsaW5ncyksIHRoZW4gaXQgZmlu ZHMgbWFueSBlbGVtZW50cworbWV0aG9kLiBPdGhlcndpc2UsIGl0IG9ubHkgZmluZHMgb25lIGVs ZW1lbnQuIFtEb2MgcmVmZXJlbmNlXQorCitTb21lIG9mIHRoZSBhcmd1bWVudCBuYW1lcyBoYXZl IGJlZW4gcmVuYW1lZCBmb3IgY2xhcml0eS4gRm9yIGluc3RhbmNlCithdm9pZFBhcnNlclByb2Js ZW1zIGlzIG5vdyBwYXJzZXJNYXNzYWdlLgorCitCZWF1dGlmdWwgU291cCBubyBsb25nZXIgaW1w bGVtZW50cyBhIGZlZWQgbWV0aG9kLiBZb3UgbmVlZCB0byBwYXNzIGEKK3N0cmluZyBvciBhIGZp bGVoYW5kbGUgaW50byB0aGUgc291cCBjb25zdHJ1Y3Rvciwgbm90IHdpdGggZmVlZCBhZnRlcgor dGhlIHNvdXAgaGFzIGJlZW4gY3JlYXRlZC4gVGhlcmUgaXMgc3RpbGwgYSBmZWVkIG1ldGhvZCwg YnV0IGl0J3MgdGhlCitmZWVkIG1ldGhvZCBpbXBsZW1lbnRlZCBieSBTR01MUGFyc2VyIGFuZCBj YWxsaW5nIGl0IHdpbGwgYnlwYXNzCitCZWF1dGlmdWwgU291cCBhbmQgY2F1c2UgcHJvYmxlbXMu CisKK1RoZSBOYXZpZ2FibGVUZXh0IGNsYXNzIGhhcyBiZWVuIHJlbmFtZWQgdG8gTmF2aWdhYmxl U3RyaW5nLiBUaGVyZSBpcworbm8gTmF2aWdhYmxlVW5pY29kZVN0cmluZyBhbnltb3JlLCBiZWNh dXNlIGV2ZXJ5IHN0cmluZyBpbnNpZGUgYQorQmVhdXRpZnVsIFNvdXAgcGFyc2UgdHJlZSBpcyBh IFVuaWNvZGUgc3RyaW5nLgorCitmaW5kVGV4dCBhbmQgZmV0Y2hUZXh0IGFyZSBnb25lLiBKdXN0 IHBhc3MgYSB0ZXh0IGFyZ3VtZW50IGludG8gZmluZAorb3IgZmluZEFsbC4KKworTnVsbCB3YXMg bW9yZSB0cm91YmxlIHRoYW4gaXQgd2FzIHdvcnRoLCBzbyBJIGdvdCByaWQgb2YgaXQuIEFueXRo aW5nCit0aGF0IHVzZWQgdG8gcmV0dXJuIE51bGwgbm93IHJldHVybnMgTm9uZS4KKworU3BlY2lh bCBYTUwgY29uc3RydWN0cyBsaWtlIGNvbW1lbnRzIGFuZCBDREFUQSBub3cgaGF2ZSB0aGVpciBv d24KK05hdmlnYWJsZVN0cmluZyBzdWJjbGFzc2VzLCBpbnN0ZWFkIG9mIGJlaW5nIHRyZWF0ZWQg YXMgb2RkbHktZm9ybWVkCitkYXRhLiBJZiB5b3UgcGFyc2UgYSBkb2N1bWVudCB0aGF0IGNvbnRh aW5zIENEQVRBIGFuZCB3cml0ZSBpdCBiYWNrCitvdXQsIHRoZSBDREFUQSB3aWxsIHN0aWxsIGJl IHRoZXJlLgorCitXaGVuIHlvdSdyZSBwYXJzaW5nIGEgZG9jdW1lbnQsIHlvdSBjYW4gZ2V0IEJl YXV0aWZ1bCBTb3VwIHRvIGNvbnZlcnQKK1hNTCBvciBIVE1MIGVudGl0aWVzIGludG8gdGhlIGNv cnJlc3BvbmRpbmcgVW5pY29kZSBjaGFyYWN0ZXJzLiBbRG9jCityZWZlcmVuY2VdCisKKz0gMi4x LjEgKDIwMDUwOTE4KSA9CisKK0ZpeGVkIGEgc2VyaW91cyBwZXJmb3JtYW5jZSBidWcgaW4gQmVh dXRpZnVsU3RvbmVTb3VwIHdoaWNoIHdhcworY2F1c2luZyBwYXJzaW5nIHRvIGJlIGluY3JlZGli bHkgc2xvdy4KKworQ29ycmVjdGVkIHNldmVyYWwgZW50aXRpZXMgdGhhdCB3ZXJlIHByZXZpb3Vz bHkgYmVpbmcgaW5jb3JyZWN0bHkKK3RyYW5zbGF0ZWQgZnJvbSBNaWNyb3NvZnQgc21hcnQtcXVv dGUtbGlrZSBjaGFyYWN0ZXJzLgorCitGaXhlZCBhIGJ1ZyB0aGF0IHdhcyBicmVha2luZyB0ZXh0 IGZldGNoLgorCitGaXhlZCBhIGJ1ZyB0aGF0IGNyYXNoZWQgdGhlIHBhcnNlciB3aGVuIHRleHQg Y2h1bmtzIHRoYXQgbG9vayBsaWtlCitIVE1MIHRhZyBuYW1lcyBzaG93ZWQgdXAgd2l0aGluIGEg U0NSSVBUIHRhZy4KKworVEhFQUQsIFRCT0RZLCBhbmQgVEZPT1QgdGFncyBhcmUgbm93IG5lc3Rh YmxlIHdpdGhpbiBUQUJMRQordGFncy4gTmVzdGVkIHRhYmxlcyBzaG91bGQgcGFyc2UgbW9yZSBz ZW5zaWJseSBub3cuCisKK0JBU0UgaXMgbm93IGNvbnNpZGVyZWQgYSBzZWxmLWNsb3NpbmcgdGFn LgorCis9IDIuMS4wICJHYW1lLCBvciBhbnkgb3RoZXIgZGlzaD8iICgyMDA1MDUwNCkgPQorCitB ZGRlZCBhIHdpZGUgdmFyaWV0eSBvZiBuZXcgc2VhcmNoIG1ldGhvZHMgd2hpY2gsIGdpdmVuIGEg c3RhcnRpbmcKK3BvaW50IGluc2lkZSB0aGUgdHJlZSwgZm9sbG93IGEgcGFydGljdWxhciBuYXZp Z2F0aW9uIG1lbWJlciAobGlrZQorbmV4dFNpYmxpbmcpIG92ZXIgYW5kIG92ZXIgYWdhaW4sIGxv b2tpbmcgZm9yIFRhZyBhbmQgTmF2aWdhYmxlVGV4dAorb2JqZWN0cyB0aGF0IG1hdGNoIGNlcnRh aW4gY3JpdGVyaWEuIFRoZSBuZXcgbWV0aG9kcyBhcmUgZmluZE5leHQsCitmZXRjaE5leHQsIGZp bmRQcmV2aW91cywgZmV0Y2hQcmV2aW91cywgZmluZE5leHRTaWJsaW5nLAorZmV0Y2hOZXh0U2li bGluZ3MsIGZpbmRQcmV2aW91c1NpYmxpbmcsIGZldGNoUHJldmlvdXNTaWJsaW5ncywKK2ZpbmRQ YXJlbnQsIGFuZCBmZXRjaFBhcmVudHMuIEFsbCBvZiB0aGVzZSB1c2UgdGhlIHNhbWUgYmFzaWMg Y29kZQordXNlZCBieSBmaXJzdCBhbmQgZmV0Y2gsIHNvIHlvdSBjYW4gcGFzcyB5b3VyIHdlaXJk IHdheXMgb2YgbWF0Y2hpbmcKK3RoaW5ncyBpbnRvIHRoZXNlIG1ldGhvZHMuCisKK1RoZSBmZXRj aCBtZXRob2QgYW5kIGl0cyBkZXJpdmF0aXZlcyBub3cgYWNjZXB0IGEgbGltaXQgYXJndW1lbnQu CisKK1lvdSBjYW4gbm93IHBhc3Mga2V5d29yZCBhcmd1bWVudHMgd2hlbiBjYWxsaW5nIGEgVGFn IG9iamVjdCBhcyB0aG91Z2gKK2l0IHdlcmUgYSBtZXRob2QuCisKK0ZpeGVkIGEgYnVnIHRoYXQg Y2F1c2VkIGFsbCBoYW5kLWNyZWF0ZWQgdGFncyB0byBzaGFyZSBhIHNpbmdsZSBzZXQgb2YKK2F0 dHJpYnV0ZXMuCisKKz0gMi4wLjMgKDIwMDUwNTAxKSA9CisKK0ZpeGVkIFB5dGhvbiAyLjIgc3Vw cG9ydCBmb3IgaXRlcmF0b3JzLgorCitGaXhlZCBhIGJ1ZyB0aGF0IGdhdmUgdGhlIHdyb25nIHJl cHJlc2VudGF0aW9uIHRvIHRhZ3Mgd2l0aGluIHF1b3RlCit0YWdzIGxpa2UgPHNjcmlwdD4uCisK K1Rvb2sgc29tZSBjb2RlIGZyb20gTWFyayBQaWxncmltIHRoYXQgdHJlYXRzIENEQVRBIGRlY2xh cmF0aW9ucyBhcworZGF0YSBpbnN0ZWFkIG9mIGlnbm9yaW5nIHRoZW0uCisKK0JlYXV0aWZ1bCBT b3VwJ3Mgc2V0dXAucHkgd2lsbCBub3cgZG8gYW4gaW5zdGFsbCBldmVuIGlmIHRoZSB1bml0Cit0 ZXN0cyBmYWlsLiBJdCB3b24ndCBidWlsZCBhIHNvdXJjZSBkaXN0cmlidXRpb24gaWYgdGhlIHVu aXQgdGVzdHMKK2ZhaWwsIHNvIEkgY2FuJ3QgcmVsZWFzZSBhIG5ldyB2ZXJzaW9uIHVubGVzcyB0 aGV5IHBhc3MuCisKKz0gMi4wLjIgKDIwMDUwNDE2KSA9CisKK0FkZGVkIHRoZSB1bml0IHRlc3Rz IGluIGEgc2VwYXJhdGUgbW9kdWxlLCBhbmQgcGFja2FnZWQgaXQgd2l0aAorZGlzdHV0aWxzLgor CitGaXhlZCBhIGJ1ZyB0aGF0IHNvbWV0aW1lcyBjYXVzZWQgcmVuZGVyQ29udGVudHMoKSB0byBy ZXR1cm4gYSBVbmljb2RlCitzdHJpbmcgZXZlbiBpZiB0aGVyZSB3YXMgbm8gVW5pY29kZSBpbiB0 aGUgb3JpZ2luYWwgc3RyaW5nLgorCitBZGRlZCB0aGUgZG9uZSgpIG1ldGhvZCwgd2hpY2ggY2xv c2VzIGFsbCBvZiB0aGUgcGFyc2VyJ3Mgb3BlbgordGFncy4gSXQgZ2V0cyBjYWxsZWQgYXV0b21h dGljYWxseSB3aGVuIHlvdSBwYXNzIGluIHNvbWUgdGV4dCB0byB0aGUKK2NvbnN0cnVjdG9yIG9m IGEgcGFyc2VyIGNsYXNzOyBvdGhlcndpc2UgeW91IG11c3QgY2FsbCBpdCB5b3Vyc2VsZi4KKwor UmVpbnN0YXRlZCBzb21lIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdpdGggMS54IHZlcnNpb25z OiByZWZlcmVuY2luZwordGhlIHN0cmluZyBtZW1iZXIgb2YgYSBOYXZpZ2FibGVUZXh0IG9iamVj dCByZXR1cm5zIHRoZSBOYXZpZ2FibGVUZXh0CitvYmplY3QgaW5zdGVhZCBvZiB0aHJvd2luZyBh biBlcnJvci4KKworPSAyLjAuMSAoMjAwNTA0MTIpID0KKworRml4ZWQgYSBidWcgdGhhdCBjYXVz ZWQgYmFkIHJlc3VsdHMgd2hlbiB5b3UgdHJpZWQgdG8gcmVmZXJlbmNlIGEgdGFnCituYW1lIHNo b3J0ZXIgdGhhbiAzIGNoYXJhY3RlcnMgYXMgYSBtZW1iZXIgb2YgYSBUYWcsIGVnLiB0YWcudGFi bGUudGQuCisKK01hZGUgc3VyZSBhbGwgVGFncyBoYXZlIHRoZSAnaGlkZGVuJyBhdHRyaWJ1dGUg c28gdGhhdCBhbiBhdHRlbXB0IHRvCithY2Nlc3MgdGFnLmhpZGRlbiBkb2Vzbid0IHNwYXduIGFu IGF0dGVtcHQgdG8gZmluZCBhIHRhZyBuYW1lZAorJ2hpZGRlbicuCisKK0ZpeGVkIGEgYnVnIGlu IHRoZSBjb21wYXJpc29uIG9wZXJhdG9yLgorCis9IDIuMC4wICJXaG8gY2FyZXMgZm9yIGZpc2g/ IiAoMjAwNTA0MTApCisKK0JlYXV0aWZ1bCBTb3VwIHZlcnNpb24gMSB3YXMgdmVyeSB1c2VmdWwg YnV0IGFsc28gcHJldHR5IHN0dXBpZC4gSQorb3JpZ2luYWxseSB3cm90ZSBpdCB3aXRob3V0IG5v dGljaW5nIGFueSBvZiB0aGUgcHJvYmxlbXMgaW5oZXJlbnQgaW4KK3RyeWluZyB0byBidWlsZCBh IHBhcnNlIHRyZWUgb3V0IG9mIGFtYmlndW91cyBIVE1MIHRhZ3MuIFRoaXMgdmVyc2lvbgorc29s dmVzIGFsbCBvZiB0aG9zZSBwcm9ibGVtcyB0byBteSBzYXRpc2ZhY3Rpb24uIEl0IGFsc28gYWRk cyBtYW55IG5ldworY2xldmVyIHRoaW5ncyB0byBtYWtlIHVwIGZvciB0aGUgcmVtb3ZhbCBvZiB0 aGUgc3R1cGlkIHRoaW5ncy4KKworPT0gUGFyc2luZyA9PQorCitUaGUgcGFyc2VyIGxvZ2ljIGhh cyBiZWVuIGdyZWF0bHkgaW1wcm92ZWQsIGFuZCB0aGUgQmVhdXRpZnVsU291cAorY2xhc3Mgc2hv dWxkIG11Y2ggbW9yZSByZWxpYWJseSB5aWVsZCBhIHBhcnNlIHRyZWUgdGhhdCBsb29rcyBsaWtl Cit3aGF0IHRoZSBwYWdlIGF1dGhvciBpbnRlbmRlZC4gRm9yIGEgcGFydGljdWxhciBjbGFzcyBv ZiBvZGQgZWRnZQorY2FzZXMgdGhhdCBub3cgY2F1c2VzIHByb2JsZW1zLCB0aGVyZSBpcyBhIG5l dyBjbGFzcywKK0lDYW50QmVsaWV2ZUl0c0JlYXV0aWZ1bFNvdXAuCisKK0J5IGRlZmF1bHQsIEJl YXV0aWZ1bCBTb3VwIG5vdyBwZXJmb3JtcyBzb21lIGNsZWFudXAgb3BlcmF0aW9ucyBvbgordGV4 dCBiZWZvcmUgcGFyc2luZyBpdC4gVGhpcyBpcyB0byBhdm9pZCBjb21tb24gcHJvYmxlbXMgd2l0 aCBiYWQKK2RlZmluaXRpb25zIGFuZCBzZWxmLWNsb3NpbmcgdGFncyB0aGF0IGNyYXNoIFNHTUxQ YXJzZXIuIFlvdSBjYW4KK3Byb3ZpZGUgeW91ciBvd24gc2V0IG9mIGNsZWFudXAgb3BlcmF0aW9u cywgb3IgdHVybiBpdCBvZmYKK2FsdG9nZXRoZXIuIFRoZSBjbGVhbnVwIG9wZXJhdGlvbnMgaW5j bHVkZSBmaXhpbmcgc2VsZi1jbG9zaW5nIHRhZ3MKK3RoYXQgZG9uJ3QgY2xvc2UsIGFuZCByZXBs YWNpbmcgTWljcm9zb2Z0IHNtYXJ0IHF1b3RlcyBhbmQgc2ltaWxhcgorY2hhcmFjdGVycyB3aXRo IHRoZWlyIEhUTUwgZW50aXR5IGVxdWl2YWxlbnRzLgorCitZb3UgY2FuIG5vdyBnZXQgYSBwcmV0 dHktcHJpbnQgdmVyc2lvbiBvZiBwYXJzZWQgSFRNTCB0byBnZXQgYSB2aXN1YWwKK3BpY3R1cmUg b2YgaG93IEJlYXV0aWZ1bCBTb3VwIHBhcnNlcyBpdCwgd2l0aCB0aGUgVGFnLnByZXR0aWZ5KCkK K21ldGhvZC4KKworPT0gU3RyaW5ncyBhbmQgVW5pY29kZSA9PQorCitUaGVyZSBhcmUgc2VwYXJh dGUgTmF2aWdhYmxlVGV4dCBzdWJjbGFzc2VzIGZvciBBU0NJSSBhbmQgVW5pY29kZQorc3RyaW5n cy4gVGhlc2UgY2xhc3NlcyBkaXJlY3RseSBzdWJjbGFzcyB0aGUgY29ycmVzcG9uZGluZyBiYXNl IGRhdGEKK3R5cGVzLiBUaGlzIG1lYW5zIHlvdSBjYW4gdHJlYXQgTmF2aWdhYmxlVGV4dCBvYmpl Y3RzIGFzIHN0cmluZ3MKK2luc3RlYWQgb2YgaGF2aW5nIHRvIGNhbGwgbWV0aG9kcyBvbiB0aGVt IHRvIGdldCB0aGUgc3RyaW5ncy4KKworc3RyKCkgb24gYSBUYWcgYWx3YXlzIHJldHVybnMgYSBz dHJpbmcsIGFuZCB1bmljb2RlKCkgYWx3YXlzIHJldHVybnMKK1VuaWNvZGUuIFByZXZpb3VzbHkg aXQgd2FzIGluY29uc2lzdGVudC4KKworPT0gVHJlZSB0cmF2ZXJzYWwgPT0KKworSW4gYSBmaXJz dCgpIG9yIGZldGNoKCkgY2FsbCwgdGhlIHRhZyBuYW1lIG9yIHRoZSBkZXNpcmVkIHZhbHVlIG9m IGFuCithdHRyaWJ1dGUgY2FuIG5vdyBiZSBhbnkgb2YgdGhlIGZvbGxvd2luZzoKKworICogQSBz dHJpbmcgKG1hdGNoZXMgdGhhdCBzcGVjaWZpYyB0YWcgb3IgdGhhdCBzcGVjaWZpYyBhdHRyaWJ1 dGUgdmFsdWUpCisgKiBBIGxpc3Qgb2Ygc3RyaW5ncyAobWF0Y2hlcyBhbnkgdGFnIG9yIGF0dHJp YnV0ZSB2YWx1ZSBpbiB0aGUgbGlzdCkKKyAqIEEgY29tcGlsZWQgcmVndWxhciBleHByZXNzaW9u IG9iamVjdCAobWF0Y2hlcyBhbnkgdGFnIG9yIGF0dHJpYnV0ZQorICAgdmFsdWUgdGhhdCBtYXRj aGVzIHRoZSByZWd1bGFyIGV4cHJlc3Npb24pCisgKiBBIGNhbGxhYmxlIG9iamVjdCB0aGF0IHRh a2VzIHRoZSBUYWcgb2JqZWN0IG9yIGF0dHJpYnV0ZSB2YWx1ZSBhcyBhCisgICBzdHJpbmcuIEl0 IHJldHVybnMgTm9uZS9mYWxzZS9lbXB0eSBzdHJpbmcgaWYgdGhlIGdpdmVuIHN0cmluZworICAg ZG9lc24ndCBtYXRjaCwgYW5kIGFueSBvdGhlciB2YWx1ZSBpZiBpdCBkb2VzLgorCitUaGlzIGlz IG11Y2ggZWFzaWVyIHRvIHVzZSB0aGFuIFNRTC1zdHlsZSB3aWxkY2FyZHMgKHNlZSwgcmVndWxh cgorZXhwcmVzc2lvbnMgYXJlIGdvb2QgZm9yIHNvbWV0aGluZykuIEJlY2F1c2Ugb2YgdGhpcywg SSB0b29rIG91dAorU1FMLXN0eWxlIHdpbGRjYXJkcy4gSSdsbCBwdXQgdGhlbSBiYWNrIGlmIHNv bWVvbmUgY29tcGxhaW5zLCBidXQKK3RoZWlyIHJlbW92YWwgc2ltcGxpZmllcyB0aGUgY29kZSBh IGxvdC4KKworWW91IGNhbiB1c2UgZmV0Y2goKSBhbmQgZmlyc3QoKSB0byBzZWFyY2ggZm9yIHRl eHQgaW4gdGhlIHBhcnNlIHRyZWUsCitub3QganVzdCB0YWdzLiBUaGVyZSBhcmUgbmV3IGFsaWFz IG1ldGhvZHMgZmV0Y2hUZXh0KCkgYW5kIGZpcnN0VGV4dCgpCitkZXNpZ25lZCBmb3IgdGhpcyBw dXJwb3NlLiBBcyB3aXRoIHNlYXJjaGluZyBmb3IgdGFncywgeW91IGNhbiBwYXNzIGluCithIHN0 cmluZywgYSByZWd1bGFyIGV4cHJlc3Npb24gb2JqZWN0LCBvciBhIG1ldGhvZCB0byBtYXRjaCB5 b3VyIHRleHQuCisKK0lmIHlvdSBwYXNzIGluIHNvbWV0aGluZyBiZXNpZGVzIGEgbWFwIHRvIHRo ZSBhdHRycyBhcmd1bWVudCBvZgorZmV0Y2goKSBvciBmaXJzdCgpLCBCZWF1dGlmdWwgU291cCB3 aWxsIGFzc3VtZSB5b3Ugd2FudCB0byBtYXRjaCB0aGF0Cit0aGluZyBhZ2FpbnN0IHRoZSAiY2xh c3MiIGF0dHJpYnV0ZS4gV2hlbiB5b3UncmUgc2NyYXBpbmcKK3dlbGwtc3RydWN0dXJlZCBIVE1M LCB0aGlzIG1ha2VzIHlvdXIgY29kZSBhIGxvdCBjbGVhbmVyLgorCisxLnggYW5kIDIueCBib3Ro IGxldCB5b3UgY2FsbCBhIFRhZyBvYmplY3QgYXMgYSBzaG9ydGhhbmQgZm9yCitmZXRjaCgpLiBG b3IgaW5zdGFuY2UsIGZvbygiYmFyIikgaXMgYSBzaG9ydGhhbmQgZm9yCitmb28uZmV0Y2goImJh ciIpLiBJbiAyLngsIHlvdSBjYW4gYWxzbyBhY2Nlc3MgYSBzcGVjaWFsbHktbmFtZWQgbWVtYmVy CitvZiBhIFRhZyBvYmplY3QgYXMgYSBzaG9ydGhhbmQgZm9yIGZpcnN0KCkuIEZvciBpbnN0YW5j ZSwgZm9vLmJhclRhZworaXMgYSBzaG9ydGhhbmQgZm9yIGZvby5maXJzdCgiYmFyIikuIEJ5IGNo YWluaW5nIHRoZXNlIHNob3J0Y3V0cyB5b3UKK3RyYXZlcnNlIGEgdHJlZSBpbiB2ZXJ5IGxpdHRs ZSBjb2RlOiBmb3IgaGVhZGVyIGluCitzb3VwLmJvZHlUYWcucFRhZy50YWJsZVRhZygndGgnKToK KworSWYgYW4gZWxlbWVudCByZWxhdGlvbnNoaXAgKGxpa2UgcGFyZW50IG9yIG5leHQpIGRvZXNu J3QgYXBwbHkgdG8gYQordGFnLCBpdCdsbCBub3cgc2hvdyB1cCBOdWxsIGluc3RlYWQgb2YgTm9u ZS4gZmlyc3QoKSB3aWxsIGFsc28gcmV0dXJuCitOdWxsIGlmIHlvdSBhc2sgaXQgZm9yIGEgbm9u ZXhpc3RlbnQgdGFnLiBOdWxsIGlzIGFuIG9iamVjdCB0aGF0J3MKK2p1c3QgbGlrZSBOb25lLCBl eGNlcHQgeW91IGNhbiBkbyB3aGF0ZXZlciB5b3Ugd2FudCB0byBpdCBhbmQgaXQnbGwKK2dpdmUg eW91IE51bGwgaW5zdGVhZCBvZiB0aHJvd2luZyBhbiBlcnJvci4KKworVGhpcyBsZXRzIHlvdSBk byB0cmVlIHRyYXZlcnNhbHMgbGlrZSBzb3VwLmh0bWxUYWcuaGVhZFRhZy50aXRsZVRhZword2l0 aG91dCBoYXZpbmcgdG8gd29ycnkgaWYgdGhlIGludGVybWVkaWF0ZSBzdGFnZXMgYXJlIGFjdHVh bGx5Cit0aGVyZS4gUHJldmlvdXNseSwgaWYgdGhlcmUgd2FzIG5vICdoZWFkJyB0YWcgaW4gdGhl IGRvY3VtZW50LCBoZWFkVGFnCitpbiB0aGF0IGluc3RhbmNlIHdvdWxkIGhhdmUgYmVlbiBOb25l LCBhbmQgYWNjZXNzaW5nIGl0cyAndGl0bGVUYWcnCittZW1iZXIgd291bGQgaGF2ZSB0aHJvd24g YW4gQXR0cmlidXRlRXJyb3IuIE5vdywgeW91IGNhbiBnZXQgd2hhdCB5b3UKK3dhbnQgd2hlbiBp dCBleGlzdHMsIGFuZCBnZXQgTnVsbCB3aGVuIGl0IGRvZXNuJ3QsIHdpdGhvdXQgaGF2aW5nIHRv CitkbyBhIGxvdCBvZiBjb25kaXRpb25hbHMgY2hlY2tpbmcgdG8gc2VlIGlmIGV2ZXJ5IHN0YWdl IGlzIE5vbmUuCisKK1RoZXJlIGFyZSB0d28gbmV3IHJlbGF0aW9ucyBiZXR3ZWVuIHBhZ2UgZWxl bWVudHM6IHByZXZpb3VzU2libGluZyBhbmQKK25leHRTaWJsaW5nLiBUaGV5IHJlZmVyZW5jZSB0 aGUgcHJldmlvdXMgYW5kIG5leHQgZWxlbWVudCBhdCB0aGUgc2FtZQorbGV2ZWwgb2YgdGhlIHBh cnNlIHRyZWUuIEZvciBpbnN0YW5jZSwgaWYgeW91IGhhdmUgSFRNTCBsaWtlIHRoaXM6CisKKyAg PHA+PHVsPjxsaT5Gb288YnIgLz48bGk+QmFyPC91bD4KKworVGhlIGZpcnN0ICdsaScgdGFnIGhh cyBhIHByZXZpb3VzU2libGluZyBvZiBOdWxsIGFuZCBpdHMgbmV4dFNpYmxpbmcKK2lzIHRoZSBz ZWNvbmQgJ2xpJyB0YWcuIFRoZSBzZWNvbmQgJ2xpJyB0YWcgaGFzIGEgbmV4dFNpYmxpbmcgb2Yg TnVsbAorYW5kIGl0cyBwcmV2aW91c1NpYmxpbmcgaXMgdGhlIGZpcnN0ICdsaScgdGFnLiBUaGUg cHJldmlvdXNTaWJsaW5nIG9mCit0aGUgJ3VsJyB0YWcgaXMgdGhlIGZpcnN0ICdwJyB0YWcuIFRo ZSBuZXh0U2libGluZyBvZiAnRm9vJyBpcyB0aGUKKydicicgdGFnLgorCitJIHRvb2sgb3V0IHRo ZSBhYmlsaXR5IHRvIHVzZSBmZXRjaCgpIHRvIGZpbmQgdGFncyB0aGF0IGhhdmUgYQorc3BlY2lm aWMgbGlzdCBvZiBjb250ZW50cy4gU2VlLCBJIGNhbid0IGV2ZW4gZXhwbGFpbiBpdCB3ZWxsLiBJ dCB3YXMKK3JlYWxseSBkaWZmaWN1bHQgdG8gdXNlLCBJIG5ldmVyIHVzZWQgaXQsIGFuZCBJIGRv bid0IHRoaW5rIGFueW9uZQorZWxzZSBldmVyIHVzZWQgaXQuIFRvIHRoZSBleHRlbnQgYW55b25l IGRpZCwgdGhleSBjYW4gcHJvYmFibHkgdXNlCitmZXRjaFRleHQoKSBpbnN0ZWFkLiBJZiBpdCB0 dXJucyBvdXQgc29tZW9uZSBuZWVkcyBpdCBJJ2xsIHRoaW5rIG9mCithbm90aGVyIHNvbHV0aW9u LgorCis9PSBUcmVlIG1hbmlwdWxhdGlvbiA9PQorCitZb3UgY2FuIGFkZCBuZXcgYXR0cmlidXRl cyB0byBhIHRhZywgYW5kIGRlbGV0ZSBhdHRyaWJ1dGVzIGZyb20gYQordGFnLiBJbiAxLnggeW91 IGNvdWxkIG9ubHkgY2hhbmdlIGEgdGFnJ3MgZXhpc3RpbmcgYXR0cmlidXRlcy4KKworPT0gUG9y dGluZyBDb25zaWRlcmF0aW9ucyA9PQorCitUaGVyZSBhcmUgdGhyZWUgY2hhbmdlcyBpbiAyLjAg dGhhdCBicmVhayBvbGQgY29kZToKKworSW4gdGhlIHBvc3QtMS4yIHJlbGVhc2UgeW91IGNvdWxk IHBhc3MgaW4gYSBmdW5jdGlvbiBpbnRvIGZldGNoKCkuIFRoZQorZnVuY3Rpb24gdG9vayBhIHN0 cmluZywgdGhlIHRhZyBuYW1lLiBJbiAyLjAsIHRoZSBmdW5jdGlvbiB0YWtlcyB0aGUKK2FjdHVh bCBUYWcgb2JqZWN0LgorCitJdCdzIG5vIGxvbmdlciB0byBwYXNzIGluIFNRTC1zdHlsZSB3aWxk Y2FyZHMgdG8gZmV0Y2goKS4gVXNlIGEKK3JlZ3VsYXIgZXhwcmVzc2lvbiBpbnN0ZWFkLgorCitU aGUgZGlmZmVyZW50IHBhcnNpbmcgYWxnb3JpdGhtIG1lYW5zIHRoZSBwYXJzZSB0cmVlIG1heSBu b3QgYmUgc2hhcGVkCitsaWtlIHlvdSBleHBlY3QuIFRoaXMgd2lsbCBvbmx5IGFjdHVhbGx5IGFm ZmVjdCB5b3UgaWYgeW91ciBjb2RlIHVzZXMKK29uZSBvZiB0aGUgYWZmZWN0ZWQgcGFydHMuIEkg aGF2ZW4ndCBydW4gaW50byB0aGlzIHByb2JsZW0geWV0IHdoaWxlCitwb3J0aW5nIG15IGNvZGUu CisKKz0gQmV0d2VlbiAxLjIgYW5kIDIuMCA9CisKK1RoaXMgaXMgdGhlIHJlbGVhc2UgdG8gZ2V0 IGlmIHlvdSB3YW50IFB5dGhvbiAxLjUgY29tcGF0aWJpbGl0eS4KKworVGhlIGRlc2lyZWQgdmFs dWUgb2YgYW4gYXR0cmlidXRlIGNhbiBub3cgYmUgYW55IG9mIHRoZSBmb2xsb3dpbmc6CisKKyAq IEEgc3RyaW5nCisgKiBBIHN0cmluZyB3aXRoIFNRTC1zdHlsZSB3aWxkY2FyZHMKKyAqIEEgY29t cGlsZWQgUkUgb2JqZWN0CisgKiBBIGNhbGxhYmxlIHRoYXQgcmV0dXJucyBOb25lL2ZhbHNlL2Vt cHR5IHN0cmluZyBpZiB0aGUgZ2l2ZW4gdmFsdWUKKyAgIGRvZXNuJ3QgbWF0Y2gsIGFuZCBhbnkg b3RoZXIgdmFsdWUgb3RoZXJ3aXNlLgorCitUaGlzIGlzIG11Y2ggZWFzaWVyIHRvIHVzZSB0aGFu IFNRTC1zdHlsZSB3aWxkY2FyZHMgKHNlZSwgcmVndWxhcgorZXhwcmVzc2lvbnMgYXJlIGdvb2Qg Zm9yIHNvbWV0aGluZykuIEJlY2F1c2Ugb2YgdGhpcywgSSBubyBsb25nZXIKK3JlY29tbWVuZCB5 b3UgdXNlIFNRTC1zdHlsZSB3aWxkY2FyZHMuIFRoZXkgbWF5IGdvIGF3YXkgaW4gYSBmdXR1cmUK K3JlbGVhc2UgdG8gY2xlYW4gdXAgdGhlIGNvZGUuCisKK01hZGUgQmVhdXRpZnVsIFNvdXAgaGFu ZGxlIHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb25zIGFzIHRleHQgaW5zdGVhZCBvZgoraWdub3Jpbmcg dGhlbS4KKworQXBwbGllZCBwYXRjaCBmcm9tIFJpY2hpZSBIaW5kbGUgKHJpY2hpZSBhdCBlbnRy aWFuIGRvdCBjb20pIHRoYXQKK21ha2VzIHRhZy5zdHJpbmcgYSBzaG9ydGhhbmQgZm9yIHRhZy5j b250ZW50c1swXS5zdHJpbmcgd2hlbiB0aGUgdGFnCitoYXMgb25seSBvbmUgc3RyaW5nLW93bmlu ZyBjaGlsZC4KKworQWRkZWQgc3RpbGwgbW9yZSBuZXN0YWJsZSB0YWdzLiBUaGUgbmVzdGFibGUg dGFncyB0aGluZyB3b24ndCB3b3JrIGluCithIGxvdCBvZiBjYXNlcyBhbmQgbmVlZHMgdG8gYmUg cmV0aG91Z2h0LgorCitGaXhlZCBhbiBlZGdlIGNhc2Ugd2hlcmUgc2VhcmNoaW5nIGZvciAiJWZv byIgd291bGQgbWF0Y2ggYW55IHN0cmluZworc2hvcnRlciB0aGFuICJmb28iLgorCis9IDEuMiAi V2hvIGZvciBzdWNoIGRhaW50aWVzIHdvdWxkIG5vdCBzdG9vcD8iICgyMDA0MDcwOCkgPQorCitB cHBsaWVkIHBhdGNoIGZyb20gQmVuIExhc3QgKGJlbiBhdCBiZW5sYXN0IGRvdCBjb20pIHRoYXQg bWFkZQorVGFnLnJlbmRlckNvbnRlbnRzKCkgY29ycmVjdGx5IGhhbmRsZSBVbmljb2RlLgorCitN YWRlIEJlYXV0aWZ1bFN0b25lU291cCBldmVuIGR1bWJlciBieSBtYWtpbmcgaXQgbm90IGltcGxp Y2l0bHkgY2xvc2UKK2EgdGFnIHdoZW4gYW5vdGhlciB0YWcgb2YgdGhlIHNhbWUgdHlwZSBpcyBl bmNvdW50ZXJlZDsgb25seSB3aGVuIGFuCithY3R1YWwgY2xvc2luZyB0YWcgaXMgZW5jb3VudGVy ZWQuIFRoaXMgY2hhbmdlIGNvdXJ0ZXN5IG9mIEZ1enp5IChtaWtlCithdCBwY2Jsb2tlcyBkb3Qg Y29tKS4gQmVhdXRpZnVsU291cCBzdGlsbCB3b3JrcyBhcyBiZWZvcmUuCisKKz0gMS4xICJTd2lt bWluZyBpbiBhIGhvdCB0dXJlZW4iID0KKworQWRkZWQgbW9yZSAnbmVzdGFibGUnIHRhZ3MuIENo YW5nZWQgcG9wcGluZyBzZW1hbnRpY3Mgc28gdGhhdCB3aGVuIGEKK25lc3RhYmxlIHRhZyBpcyBl bmNvdW50ZXJlZCwgdGFncyBhcmUgcG9wcGVkIHVwIHRvIHRoZSBwcmV2aW91c2x5CitlbmNvdW50 ZXJlZCBuZXN0YWJsZSB0YWcgKG9mIHdoYXRldmVyIGtpbmQpLiBJIHdpbGwgcmV2ZXJ0IHRoaXMg aWYKK2Vub3VnaCBwZW9wbGUgY29tcGxhaW4sIGJ1dCBpdCBzaG91bGQgbWFrZSBtb3JlIHBlb3Bs ZSdzIGxpdmVzIGVhc2llcgordGhhbiBoYXJkZXIuIFRoaXMgZW5oYW5jZW1lbnQgd2FzIHN1Z2dl c3RlZCBieSBBbnRob255IEJheHRlciAoYW50aG9ueQorYXQgaW50ZXJsaW5rIGRvdCBjb20gZG90 IGF1KS4KKworPSAxLjAgIlNvIHJpY2ggYW5kIGdyZWVuIiAoMjAwNDA0MjApID0KKworSW5pdGlh bCByZWxlYXNlLgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9weXRob24zLUJlYXV0aWZ1bFNvdXA0L3Rl bXBsYXRlIGIvc3JjcGtncy9weXRob24zLUJlYXV0aWZ1bFNvdXA0L3RlbXBsYXRlCmluZGV4IDY2 YmE2OTBjZjM2Li45MWVlY2IzOTFiMyAxMDA2NDQKLS0tIGEvc3JjcGtncy9weXRob24zLUJlYXV0 aWZ1bFNvdXA0L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcHl0aG9uMy1CZWF1dGlmdWxTb3VwNC90 ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3B5dGhvbjMtQmVh dXRpZnVsU291cDQnCiBwa2duYW1lPXB5dGhvbjMtQmVhdXRpZnVsU291cDQKLXZlcnNpb249NC44 LjIKLXJldmlzaW9uPTMKK3ZlcnNpb249NC45LjMKK3JldmlzaW9uPTEKIHdya3NyYz0iYmVhdXRp ZnVsc291cDQtJHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPXB5dGhvbjMtbW9kdWxlCiBob3N0bWFr ZWRlcGVuZHM9InB5dGhvbjMtc2V0dXB0b29scyIKQEAgLTExLDcgKzExLDcgQEAgbWFpbnRhaW5l cj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9Ik1JVCIKIGhvbWVw YWdlPSJodHRwczovL3d3dy5jcnVtbXkuY29tL3NvZnR3YXJlL0JlYXV0aWZ1bFNvdXAiCiBkaXN0 ZmlsZXM9IiR7UFlQSV9TSVRFfS9iL2JlYXV0aWZ1bHNvdXA0L2JlYXV0aWZ1bHNvdXA0LSR7dmVy c2lvbn0udGFyLmd6IgotY2hlY2tzdW09MDVmZDgyNWViMDFjMjkwODc3NjU3YTU2ZGY0YzZlNGMz MTFiMzk2NWJkYTc5MGM2MTNhM2Q2ZmIwMWE1NDYyYQorY2hlY2tzdW09ODQ3MjllMzIyYWQxZDVi NGQyNWY4MDViZmEwNWI5MDJkZDk2NDUwZjQzODQyYzRlOTkwNjdkNWUxMzY5ZWIyNQogCiBkb19j aGVjaygpIHsKIAk6Cg== --===============4684821797118233003==--