From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (qmail 30070 invoked from network); 20 Nov 2022 18:03:22 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 20 Nov 2022 18:03:22 -0000 Content-Type: multipart/mixed; boundary="===============6169556125541534490==" MIME-Version: 1.0 Subject: =?utf8?b?UmU6IFtQUiBQQVRDSF0gW1VwZGF0ZWRdIGdjYzogdXBkYXRlIHRvIDEyLjIuMC4=?= To: ml@inbox.vuxu.org From: oreo639 Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Sun, 20 Nov 2022 19:03:21 +0100 List-Id: Message-ID: <20221120180321.6MpueHmrDpP9McYEIlwzEWHbr7PEflGCeyXTLiCXnCc@z> GitHub notification mails are now in MIME to allow UTF8. --===============6169556125541534490== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgb3JlbzYzOSBhZ2FpbnN0IG1hc3Rl ciBvbiB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vb3Jl bzYzOS92b2lkLXBhY2thZ2VzIGdjYzExCmh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3Zv aWQtcGFja2FnZXMvcHVsbC8zNDkwMgoKZ2NjOiB1cGRhdGUgdG8gMTIuMi4wLgo8IS0tIFVuY29t bWVudCByZWxldmFudCBzZWN0aW9ucyBhbmQgZGVsZXRlIG9wdGlvbnMgd2hpY2ggYXJlIG5vdCBh cHBsaWNhYmxlIC0tPg0KW2NpIHNraXBdDQoNCkVkaXQ6IHRoaXMgUFIgaGFkIGJlZW4gdXBkYXRl ZCBmb3IgZ2NjIDEyLjIuMA0KDQpUaGVyZSBpcyBhIGxpc3Qgb2YgZmFpbGluZyBidWlsZHMgaGVy ZTogaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9pc3N1ZXMvMzk4 MDkNCg0KSSB0ZXN0ZWQgdGhpcyBQUiB3aXRoIGdsaWJjIGFuZCBhZnRlciB1cGRhdGluZyBnbGli YywgaXQgc2VlbXMgdG8gd29yayBmaW5lLg0KSSBhbHNvIHRlc3RlZCB0aGlzIFBSIHdpdGggeDg2 XzY0LW11c2wsIGFuZCBpdCBhcHBlYXJzIHRvIHJ1biBmaW5lIGluIGEgbXVzbCBjaHJvb3QsIGFu ZCByZWNvbXBpbGluZyBhbmQgaW5zdGFsbGluZyBtdXNsIHdpdGggZ2NjIDEyIGRvZXNuJ3QgYXBw ZWFyIHRvIHJlc3VsdCBpbiBhbnkgaXNzdWVzLiAobW9yZSB0ZXN0aW5nIGlzIG5lZWRlZCkNCg0K UGxlYXNlIGxldCBtZSBrbm93IGlmIHRoZXJlIGFyZSBhbnkgaXNzdWVzLg0KDQpJIGNvbXBpbGVk IGJhc2Utc3lzdGVtIGFuZCBiYXNlLWNocm9vdCBvbiB4ODZfNjQtZ2xpYmMgYW5kIHg4Nl82NC1t dXNsIHRvIGVuc3VyZSB0aGF0IGNvbXBpbGVzIGFuZCBpdCBhcHBlYXJzIHRvIHdvcmsgZmluZS4N Cg0KSSB0ZXN0ZWQgc29tZSBvZiB0aGUgY3Jvc3MgY29tcGlsZXJzIGFuZCBhZnRlciBzb21lIGRl YnVnZ2luZyB3aXRoIHRoZSBoZWxwIG9mIENhbWVyb25OZW1vLCB3ZSBmaWd1cmVkIG91dCB0aGUg aXNzdWUuDQpUaGUgY3Jvc3MgY29tcGlsZXJzIGFyZSBidWlsdCB3aXRoIGBub3BpZT15ZXNgIChz cGVjaWZpZWQgaW4gZW52aXJvbm1lbnQvYnVpbGQtc3R5bGUpLCB3aGljaCBjYXVzZXMgaXNzdWVz IHdpdGggZ2xpYmMgMi4zNSsgd2hpY2ggdXNlcyBQSUUgYnkgZGVmYXVsdC4NCmdjYyBhbHdheXMg YnVpbGRzIGl0c2VsZiBhcyBub3BpZS4NCkkgYWRkZWQgYSB3b3JrYXJvdW5kIHRvIGNvbW1vbi9i dWlsZC1zdHlsZS92b2lkLWNyb3NzIGJ1dCBpZiB5b3UgaGF2ZSBhbnkgb3RoZXIgcmVjb21tZW5k YXRpb25zIG9uIGhvdyB0byBoYW5kbGUgaXQsIGZlZWwgZnJlZSB0byBsZXQgbWUga25vdy4NCg0K VGhpcyBQUiBhbHNvIHVwZGF0ZXMgZ2xpYmMgdG8gMi4zNjoNCmh0dHBzOi8vc291cmNld2FyZS5v cmcvZ2xpYmMvd2lraS9SZWxlYXNlLzIuMzYNCg0KTmVjZXNzYXJ5IHRvIGZpeCBwcmV2aW91c2x5 IGV4aXN0aW5nIGJ1aWxkIGZhaWx1cmVzICh1bnJlbGF0ZWQgdG8gdGhpcyBQUik6DQotIFt4XSBm aXJlZm94LWVzciBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1 bGwvMzk2NzcNCi0gW3hdIGd1cG5wIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQt cGFja2FnZXMvcHVsbC8zODg0NA0KDQpLbm93biBwYWNrYWdlcyB0aGF0IG5lZWQgdG8gYmUgZml4 ZWQvdXBkYXRlZCBmb3IgZ2xpYmMgMi4zNjoNCi0gW3hdIHNhbWJhIGh0dHBzOi8vZ2l0aHViLmNv bS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8zODcwMA0KLSBbeF0gcWVtdSBodHRwczov L2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMzg3NjkNCi0gW3hdIGxs dm0gaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzM4Njk0 DQotIFt4XSBtNCBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1 bGwvMzM3MzANCi0gW3hdIGJ0cmZzLXByb2dzIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4 L3ZvaWQtcGFja2FnZXMvcHVsbC8zODc3OA0KLSBbeF0gbnRwIGh0dHBzOi8vZ2l0aHViLmNvbS92 b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8zODc3Mg0KLSBbeF0gbGliYXJjaGl2ZSBodHRw czovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMzg3NzMNCi0gW3hd IGJvb3N0IGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8z ODc4NA0KLSBbeF0gY2hyb290LWdyZXAgaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9p ZC1wYWNrYWdlcy9wdWxsLzM4Nzg1DQotIFt4XSBwbHltb3V0aCBodHRwczovL2dpdGh1Yi5jb20v dm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMzg4MjENCi0gW3hdIGZ1c2UgaHR0cHM6Ly9n aXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzM4ODI3DQotIFt4XSBsaWJv c3RyZWUgaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzM4 ODI4DQotIFt4XSBsaWJ2aXJ0IGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFj a2FnZXMvcHVsbC8zODg0Mg0KLSBbeF0gc3lzbGludXggaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQt bGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzM4ODc2DQotIFt4XSBlZml2YXIgaHR0cHM6Ly9naXRo dWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzM4ODc0DQotIFt4XSBncGdtZSBo dHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMzg4MjUNCg0K S25vd24gcGFja2FnZXMgdGhhdCBuZWVkZWQgdG8gYmUgZml4ZWQvdXBkYXRlZCBmb3IgZ2NjMTI6 DQotIFt4XSBvcGVuc3NoIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2Fn ZXMvcHVsbC8zODg0OQ0KLSBbeF0geGY4Ni12aWRlby12bXdhcmUgaHR0cHM6Ly9naXRodWIuY29t L3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzM4ODQ3DQotIFt4XSBkb3h5Z2VuIGh0dHBz Oi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8zODg0Ng0KLSBbeF0g ZmlyZWZveC1lc3IgaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9w dWxsLzM5Njc3DQotIFt4XSBsaWJwcm94eSBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92 b2lkLXBhY2thZ2VzL3B1bGwvMzg4MTgNCi0gW3hdIGV4ZW1waSBodHRwczovL2dpdGh1Yi5jb20v dm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMzg4MjANCi0gW3hdIG9wZW5qZGs3LWJvb3Rz dHJhcCBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMzg4 MjINCi0gW3hdIGxpYnVuaXF1ZTEgaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1w YWNrYWdlcy9wdWxsLzM4ODQ4IG9yIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQt cGFja2FnZXMvcHVsbC8zODg3Mw0KLSBbeF0gbGlid3BkIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lk LWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8zODg3OA0KLSBbeF0gY2dsbSBodHRwczovL2dpdGh1 Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMzk3NDgNCi0gW3hdIGNvcmVib290 LXV0aWxzIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8z OTc0OQ0KLSBbeF0gYXBsIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2Fn ZXMvcHVsbC8zOTc1MA0KLSBbeF0gaWd0LWdwdS10b29scyBodHRwczovL2dpdGh1Yi5jb20vdm9p ZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMzk3ODANCg0KTmVlZHMgdG8gYmUgZml4ZWQvdXBk YXRlZCBmb3IgYmludXRpbHM6DQotIFt4XSBncnViIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxp bnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8zODg3NQ0KLSBbeF0gbGludXgtdG9vbHMgaHR0cHM6Ly9n aXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzM4ODc3DQotIFt4XSBrY292 IGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8zOTI5MQ0K DQpbSVNPIHBhY2thZ2VzXShodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLW1rbGl2 ZS9ibG9iL2VlNjk1OTZjNTg1YmVlMzEwMjY3YTQzN2MzY2UwZmMzZWZiY2FmNzIvYnVpbGQteDg2 LWltYWdlcy5zaC5pbiNMMzYtTDY2KSB2ZXJpZmllZDoNCi0gW3hdIGJhc2Ugc3lzdGVtDQotIFt4 XSBiYXNlIGNocm9vdA0KLSBbeF0gZ25vbWUNCi0gW3hdIHhmY2UNCi0gW3hdIG1hdGUNCi0gW3hd IGNpbm5hbW9uDQotIFt4XSBlbmxpZ2h0ZW5tZW50DQotIFt4XSBrZGUNCi0gW3hdIGx4ZGUNCi0g W3hdIGx4cXQNCg0KWW91IGNhbiB0ZXN0IHRoZSBJU09zIGhlcmU6DQpodHRwczovL2RyaXZlLmdv b2dsZS5jb20vZHJpdmUvZm9sZGVycy8xaXg5MkNZU0xVUC1LV2pMeGx0ZGdHNGU4TnUySkNZNW4/ dXNwPXNoYXJpbmcNCg0KIyMjIyBUZXN0aW5nIHRoZSBjaGFuZ2VzDQotIEkgdGVzdGVkIHRoZSBj aGFuZ2VzIGluIHRoaXMgUFI6ICoqYnJpZWZseSoqDQoNCjwhLS0NCiMjIyMgTmV3IHBhY2thZ2UN Ci0gVGhpcyBuZXcgcGFja2FnZSBjb25mb3JtcyB0byB0aGUgW3F1YWxpdHkgcmVxdWlyZW1lbnRz XShodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2Jsb2IvbWFzdGVy L01hbnVhbC5tZCNxdWFsaXR5LXJlcXVpcmVtZW50cyk6ICoqWUVTKip8KipOTyoqDQotLT4NCg0K PCEtLSBOb3RlOiBJZiB0aGUgYnVpbGQgaXMgbGlrZWx5IHRvIHRha2UgbW9yZSB0aGFuIDIgaG91 cnMsIHBsZWFzZSBbc2tpcCBDSV0oaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1w YWNrYWdlcy9ibG9iL21hc3Rlci9DT05UUklCVVRJTkcubWQjY29udGludW91cy1pbnRlZ3JhdGlv bikNCmFuZCB0ZXN0IGF0IGxlYXN0IG9uZSBuYXRpdmUgYnVpbGQgYW5kLCBpZiBzdXBwb3J0ZWQs IGF0IGxlYXN0IG9uZSBjcm9zcyBidWlsZC4NCklnbm9yZSB0aGlzIHNlY3Rpb24gaWYgdGhpcyBQ UiBpcyBub3Qgc2tpcHBpbmcgQ0kuDQotLT4NCg0KIyMjIyBMb2NhbCBidWlsZCB0ZXN0aW5nDQot IEkgYnVpbHQgdGhpcyBQUiBsb2NhbGx5IGZvciBteSBuYXRpdmUgYXJjaGl0ZWN0dXJlLCAoeDg2 XzY0LWdsaWJjKQ0KLSBJIGJ1aWx0IHRoaXMgUFIgbG9jYWxseSBmb3IgdGhlc2UgYXJjaGl0ZWN0 dXJlcyAoaWYgc3VwcG9ydGVkLiBtYXJrIGNyb3NzYnVpbGRzKToNCiAgLSB4ODZfNjQtbXVzbAoK QSBwYXRjaCBmaWxlIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNr YWdlcy9wdWxsLzM0OTAyLnBhdGNoIGlzIGF0dGFjaGVk --===============6169556125541534490== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-gcc11-34902.patch" RnJvbSBkNmYzMDQ1NDVlMTUzZDViZmYxNzEyNDdmNjQwNzM5ZjE0ODNjMWI2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDxvcmVvNjM5MUBnbWFpbC5jb20+CkRhdGU6IFNh dCwgNSBOb3YgMjAyMiAxMTozMzoxMSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDEvMzddIGJpbnV0 aWxzOiB1cGRhdGUgdG8gMi4zOS4KCi0tLQogLi4uZTNmM2JkNmQ0NjA0OTFmOGM4ZDAzMmE3ZmVh ODhkNWVjOGZmLnBhdGNoIHwgNjAgLS0tLS0tLS0tLS0tLS0tLS0KIC4uLi9maXgtbGliY29sbGVj dG9yLXdpdGhvdXQtamF2YS5wYXRjaCAgICAgICB8IDUzICsrKysrKysrKysrKysrKwogLi4uL3Bh dGNoZXMvcHBjNjQtcmV2ZXJ0LWdudS1hdHRyaWJ1dGVzLnBhdGNoIHwgNjYgKysrKystLS0tLS0t LS0tLS0tLQogc3JjcGtncy9iaW51dGlscy90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgIHwg MjUgKysrKy0tLQogNCBmaWxlcyBjaGFuZ2VkLCA4NyBpbnNlcnRpb25zKCspLCAxMTcgZGVsZXRp b25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9iaW51dGlscy9wYXRjaGVzLzE3Njdl M2YzYmQ2ZDQ2MDQ5MWY4YzhkMDMyYTdmZWE4OGQ1ZWM4ZmYucGF0Y2gKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL2JpbnV0aWxzL3BhdGNoZXMvZml4LWxpYmNvbGxlY3Rvci13aXRob3V0LWph dmEucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2JpbnV0aWxzL3BhdGNoZXMvMTc2N2UzZjNi ZDZkNDYwNDkxZjhjOGQwMzJhN2ZlYTg4ZDVlYzhmZi5wYXRjaCBiL3NyY3BrZ3MvYmludXRpbHMv cGF0Y2hlcy8xNzY3ZTNmM2JkNmQ0NjA0OTFmOGM4ZDAzMmE3ZmVhODhkNWVjOGZmLnBhdGNoCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNTU0MzJkODNjZmYuLjAwMDAwMDAwMDAwMAot LS0gYS9zcmNwa2dzL2JpbnV0aWxzL3BhdGNoZXMvMTc2N2UzZjNiZDZkNDYwNDkxZjhjOGQwMzJh N2ZlYTg4ZDVlYzhmZi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDYwICswLDAgQEAKLUZyb20g MTc2N2UzZjNiZDZkNDYwNDkxZjhjOGQwMzJhN2ZlYTg4ZDVlYzhmZiBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKLUZyb206ICJILkouIEx1IiA8aGpsLnRvb2xzQGdtYWlsLmNvbT4KLURhdGU6IE1v biwgMTYgTm92IDIwMjAgMDY6Mzc6NTMgLTA4MDAKLVN1YmplY3Q6IFtQQVRDSF0gZWxmOiBTZXQg cmVsX2Zyb21fYWJzIHRvIDEgZm9yIF9fZWhkcl9zdGFydAotCi1iZmRsaW5rLmggaGFzCi0KLSAg LyogU3ltYm9sIHdpbGwgYmUgY29udmVydGVkIGZyb20gYWJzb2x1dGUgdG8gc2VjdGlvbi1yZWxh dGl2ZS4gIFNldCBmb3IKLSAgICAgc3ltYm9scyBkZWZpbmVkIGJ5IGEgc2NyaXB0IGZyb20gImRv dCIgKGFsc28gU0VHTUVOVF9TVEFSVCBvciBPUklHSU4pCi0gICAgIG91dHNpZGUgb2YgYW4gb3V0 cHV0IHNlY3Rpb24gc3RhdGVtZW50LiAgKi8KLSAgdW5zaWduZWQgaW50IHJlbF9mcm9tX2FicyA6 IDE7Ci0KLWxpbmtlci5jIGhhcwotCi0ueyogUmV0dXJuIFRSVUUgaWYgdGhlIHN5bWJvbCBkZXNj cmliZWQgYnkgYSBsaW5rZXIgaGFzaCBlbnRyeSBICi0uICAgaXMgZ29pbmcgdG8gYmUgYWJzb2x1 dGUuICBMaW5rZXItc2NyaXB0IGRlZmluZWQgc3ltYm9scyBjYW4gYmUKLS4gICBjb252ZXJ0ZWQg ZnJvbSBhYnNvbHV0ZSB0byBzZWN0aW9uLXJlbGF0aXZlIG9uZXMgbGF0ZSBpbiB0aGUKLS4gICBs aW5rLiAgVXNlIHRoaXMgbWFjcm8gdG8gY29ycmVjdGx5IGRldGVybWluZSB3aGV0aGVyIHRoZSBz eW1ib2wKLS4gICB3aWxsIGFjdHVhbGx5IGVuZCB1cCBhYnNvbHV0ZSBpbiBvdXRwdXQuICAqfQot LiNkZWZpbmUgYmZkX2lzX2Fic19zeW1ib2woSCkgXAotLiAgKCgoSCktPnR5cGUgPT0gYmZkX2xp bmtfaGFzaF9kZWZpbmVkIFwKLS4gICAgfHwgKEgpLT50eXBlID09IGJmZF9saW5rX2hhc2hfZGVm d2VhaykgXAotLiAgICYmIGJmZF9pc19hYnNfc2VjdGlvbiAoKEgpLT51LmRlZi5zZWN0aW9uKSBc Ci0uICAgJiYgIShIKS0+cmVsX2Zyb21fYWJzKQotLgotCi1TZXQgcmVsX2Zyb21fYWJzIHRvIDEg Zm9yIF9fZWhkcl9zdGFydCB3aGljaCB3aWxsIGJlIGNvbnZlcnRlZCBmcm9tCi1hYnNvbHV0ZSB0 byBzZWN0aW9uLXJlbGF0aXZlIGluIGFzc2lnbl9maWxlX3Bvc2l0aW9uc19mb3JfbG9hZF9zZWN0 aW9ucy4KLQotCVBSIGxkLzI2ODY5Ci0JKiBsZGVsZi5jIChsZGVsZl9iZWZvcmVfYWxsb2NhdGlv bik6IFNldCByZWxfZnJvbV9hYnMgdG8gMSBmb3IKLQlfX2VoZHJfc3RhcnQuCi0JKiB0ZXN0c3Vp dGUvbGQtaTM4Ni9pMzg2LmV4cDogUnVuIHByMjY4NjkuCi0JKiB0ZXN0c3VpdGUvbGQtaTM4Ni9w cjI2ODY5LmQ6IE5ldyBmaWxlLgotCSogdGVzdHN1aXRlL2xkLWkzODYvcHIyNjg2OS5zOiBMaWtl d2lzZS4KLQotKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgY2JkNWI5OWNjZTA3MzI3M2Y2Njhi MTU0ZDQ1MTRlOGU3ZTdjY2M1MSkKLS0tLQotIGxkL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAg ICB8ICA5ICsrKysrKysrKwotIGxkL2xkZWxmLmMgICAgICAgICAgICAgICAgICAgICB8ICAyICsr Ci0gbGQvdGVzdHN1aXRlL2xkLWkzODYvaTM4Ni5leHAgIHwgIDEgKwotIGxkL3Rlc3RzdWl0ZS9s ZC1pMzg2L3ByMjY4NjkuZCB8IDE0ICsrKysrKysrKysrKysrCi0gbGQvdGVzdHN1aXRlL2xkLWkz ODYvcHIyNjg2OS5zIHwgIDMgKysrCi0gNSBmaWxlcyBjaGFuZ2VkLCAyOSBpbnNlcnRpb25zKCsp Ci0gY3JlYXRlIG1vZGUgMTAwNjQ0IGxkL3Rlc3RzdWl0ZS9sZC1pMzg2L3ByMjY4NjkuZAotIGNy ZWF0ZSBtb2RlIDEwMDY0NCBsZC90ZXN0c3VpdGUvbGQtaTM4Ni9wcjI2ODY5LnMKLQotZGlmZiAt LWdpdCBhL2xkL2xkZWxmLmMgYi9sZC9sZGVsZi5jCi1pbmRleCBiYWRhM2FkZTJkNy4uODMxZDAz MmZlNTYgMTAwNjQ0Ci0tLS0gYS9sZC9sZGVsZi5jCi0rKysgYi9sZC9sZGVsZi5jCi1AQCAtMTU4 OSw2ICsxNTg5LDggQEAgbGRlbGZfYmVmb3JlX2FsbG9jYXRpb24gKGNoYXIgKmF1ZGl0LCBjaGFy ICpkZXBhdWRpdCwKLSAJCSAgICAgIChjaGFyICopICZlaGRyX3N0YXJ0LT51ICsgc2l6ZW9mIGVo ZHJfc3RhcnQtPnUuZGVmLm5leHQsCi0gCQkgICAgICBzaXplb2YgZWhkcl9zdGFydF9zYXZlX3Up OwotIAkgICAgICBlaGRyX3N0YXJ0LT50eXBlID0gYmZkX2xpbmtfaGFzaF9kZWZpbmVkOwotKwkg ICAgICAvKiBJdCB3aWxsIGJlIGNvbnZlcnRlZCB0byBzZWN0aW9uLXJlbGF0aXZlIGxhdGVyLiAg Ki8KLSsJICAgICAgZWhkcl9zdGFydC0+cmVsX2Zyb21fYWJzID0gMTsKLSAJICAgICAgZWhkcl9z dGFydC0+dS5kZWYuc2VjdGlvbiA9IGJmZF9hYnNfc2VjdGlvbl9wdHI7Ci0gCSAgICAgIGVoZHJf c3RhcnQtPnUuZGVmLnZhbHVlID0gMDsKLSAJICAgIH0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYmlu dXRpbHMvcGF0Y2hlcy9maXgtbGliY29sbGVjdG9yLXdpdGhvdXQtamF2YS5wYXRjaCBiL3NyY3Br Z3MvYmludXRpbHMvcGF0Y2hlcy9maXgtbGliY29sbGVjdG9yLXdpdGhvdXQtamF2YS5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjU0Mzg0ODc1ZjM1OAotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvYmludXRpbHMvcGF0Y2hlcy9maXgtbGliY29sbGVjdG9y LXdpdGhvdXQtamF2YS5wYXRjaApAQCAtMCwwICsxLDUzIEBACitGcm9tIDQ5ZGRkODE0YWMxMDcx YWY3YzRmNDVkNWY4Mzk4YjkxODYyZjJjN2YgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9t OiBWbGFkaW1pciBNZXplbnRzZXYgPHZsYWRpbWlyLm1lemVudHNldkBvcmFjbGUuY29tPgorRGF0 ZTogV2VkLCAxNyBBdWcgMjAyMiAxOTo1NToyMyAtMDcwMAorU3ViamVjdDogW1BBVENIXSBncHJv Zm5nOiBmaXggYnVnIDI5NDc5IENvbGxlY3Rpb24gZmFpbHMgd2hlbiBidWlsdCB3aXRob3V0Cisg amF2YSBzdXBwb3J0CisKK2dwcm9mbmcvQ2hhbmdlTG9nCisyMDIyLTA4LTE3ICBWbGFkaW1pciBN ZXplbnRzZXYgIDx2bGFkaW1pci5tZXplbnRzZXZAb3JhY2xlLmNvbT4KKworCVBSIGdwcm9mbmcv Mjk0NzkKKwkqIGxpYmNvbGxlY3Rvci9jb2xsZWN0b3IuYzogQWRkICNpZiBkZWZpbmVkKEdQUk9G TkdfSkFWQV9QUk9GSUxJTkcpIGZvcgorCWphdmEgc3BlY2lmaWMgY29kZS4KKwkqIGxpYmNvbGxl Y3Rvci91bndpbmQuYzogTGlrZXdpc2UuCistLS0KKyBncHJvZm5nL2xpYmNvbGxlY3Rvci9jb2xs ZWN0b3IuYyB8IDIgKysKKyBncHJvZm5nL2xpYmNvbGxlY3Rvci91bndpbmQuYyAgICB8IDIgKysK KyAyIGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvZ3Byb2Zu Zy9saWJjb2xsZWN0b3IvY29sbGVjdG9yLmMgYi9ncHJvZm5nL2xpYmNvbGxlY3Rvci9jb2xsZWN0 b3IuYworaW5kZXggOTNjOWQzMzMwZGU1Li5jZWZmMmMxY2FjY2IgMTAwNjQ0CistLS0gYS9ncHJv Zm5nL2xpYmNvbGxlY3Rvci9jb2xsZWN0b3IuYworKysrIGIvZ3Byb2ZuZy9saWJjb2xsZWN0b3Iv Y29sbGVjdG9yLmMKK0BAIC05MTMsOCArOTEzLDEwIEBAIF9fY29sbGVjdG9yX29wZW5fZXhwZXJp bWVudCAoY29uc3QgY2hhciAqZXhwLCBjb25zdCBjaGFyICpwYXJhbXMsIHNwX29yaWdpbl90IG9y CisgICBfX2NvbGxlY3Rvcl9leHRfdW53aW5kX2tleV9pbml0ICgxLCBOVUxMKTsKKyAKKyAgIC8q IHN0YXJ0IGphdmEgYXR0YWNoIGlmIHN1aXRhYmxlICovCisrI2lmIGRlZmluZWQoR1BST0ZOR19K QVZBX1BST0ZJTElORykKKyAgIGlmIChleHBfb3JpZ2luID09IFNQX09SSUdJTl9EQlhfQVRUQUNI KQorICAgICBfX2NvbGxlY3Rvcl9qcHJvZmlsZV9zdGFydF9hdHRhY2ggKCk7CisrI2VuZGlmCisg ICBzdGFydF9zZWNfdGltZSA9IENBTExfVVRJTCAodGltZSkoTlVMTCk7CisgICBfX2NvbGxlY3Rv cl9zdGFydF90aW1lID0gY29sbGVjdG9yX2ludGVyZmFjZS5nZXRIaVJlc1RpbWUgKCk7CisgICBU cHJpbnRmVCAoREJHX0xUMCwgIlx0X19jb2xsZWN0b3Jfb3Blbl9leHBlcmltZW50OyByZXNldHRp bmcgc3RhcnRfdGltZVxuIik7CitkaWZmIC0tZ2l0IGEvZ3Byb2ZuZy9saWJjb2xsZWN0b3IvdW53 aW5kLmMgYi9ncHJvZm5nL2xpYmNvbGxlY3Rvci91bndpbmQuYworaW5kZXggMTE5MjQzNzg4MDIw Li5mOGUxMTgyM2M4MWUgMTAwNjQ0CistLS0gYS9ncHJvZm5nL2xpYmNvbGxlY3Rvci91bndpbmQu YworKysrIGIvZ3Byb2ZuZy9saWJjb2xsZWN0b3IvdW53aW5kLmMKK0BAIC01NTcsNiArNTU3LDcg QEAgX19jb2xsZWN0b3JfZ2V0X2ZyYW1lX2luZm8gKGhydGltZV90IHRzLCBpbnQgbW9kZSwgdm9p ZCAqYXJnKQorICAgaW50IHNpemUgPSBtYXhfZnJhbWVfc2l6ZTsKKyAKKyAjZGVmaW5lIE1JTihh LGIpICgoYSk8KGIpPyhhKTooYikpCisrI2lmIGRlZmluZWQoR1BST0ZOR19KQVZBX1BST0ZJTElO RykKKyAgIC8qIGdldCBKYXZhIGluZm8gKi8KKyAgIGlmIChfX2NvbGxlY3Rvcl9qYXZhX21vZGUg JiYgX19jb2xsZWN0b3JfamF2YV9hc3luY2dldGNhbGx0cmFjZV9sb2FkZWQgJiYgY29udGV4dCAm JiAhcHNldWRvX2NvbnRleHQpCisgICAgIHsKK0BAIC01NjksNiArNTcwLDcgQEAgX19jb2xsZWN0 b3JfZ2V0X2ZyYW1lX2luZm8gKGhydGltZV90IHRzLCBpbnQgbW9kZSwgdm9pZCAqYXJnKQorIAkg IHNpemUgLT0gc3o7CisgCX0KKyAgICAgfQorKyNlbmRpZgorIAorICAgLyogZ2V0IG5hdGl2ZSBz dGFjayAqLworICAgaWYgKGNvbnRleHQpCmRpZmYgLS1naXQgYS9zcmNwa2dzL2JpbnV0aWxzL3Bh dGNoZXMvcHBjNjQtcmV2ZXJ0LWdudS1hdHRyaWJ1dGVzLnBhdGNoIGIvc3JjcGtncy9iaW51dGls cy9wYXRjaGVzL3BwYzY0LXJldmVydC1nbnUtYXR0cmlidXRlcy5wYXRjaAppbmRleCA1ZGU5Mzdm NGZjY2UuLjFjMjA4ZGQ4OTU1YyAxMDA2NDQKLS0tIGEvc3JjcGtncy9iaW51dGlscy9wYXRjaGVz L3BwYzY0LXJldmVydC1nbnUtYXR0cmlidXRlcy5wYXRjaAorKysgYi9zcmNwa2dzL2JpbnV0aWxz L3BhdGNoZXMvcHBjNjQtcmV2ZXJ0LWdudS1hdHRyaWJ1dGVzLnBhdGNoCkBAIC0xLDM5ICsxLDI0 IEBACi1Gcm9tIGIxZmFmOTlmM2U1NDZkZjJjZDMwMmJiMWFkMzZhMjA3ODIyNGZlOGIgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCitGcm9tIGJiZjA1Yjc0MmZkZTUxOGZiOTdjNzg5YjA0M2ZlMGQz YWFmNTQ5ZjAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBBcmlhZG5lIENvbmlsbCA8 YXJpYWRuZUBkZXJlZmVyZW5jZWQub3JnPgotRGF0ZTogRnJpLCAzMCBPY3QgMjAyMCAxNjo1OTo0 OCAtMDYwMAorRGF0ZTogVHVlLCAyMSBTZXAgMjAyMSAxNDo1MzoxMyArMDAwMAogU3ViamVjdDog W1BBVENIXSBSZXZlcnQgIlBSMjU4ODIsIC5nbnUuYXR0cmlidXRlcyBhcmUgbm90IGNoZWNrZWQg Zm9yIHNoYXJlZAogIGxpYnJhcmllcyIKIAorVGhpcyByZXZlcnQgaXMgbmVlZGVkIHRvIGF2b2lk IHdyb25nbHkgdGFnZ2luZyBvYmplY3RzIHdpdGggdGhlIGluY29tcGF0aWJsZQorSUJNIGxvbmcg ZG91YmxlIEFCSSwgd2hpY2ggaXMgbm90IHN1cHBvcnRlZCBieSBtdXNsIGFuZCB3aWxsIHJlc3Vs dCBpbgorbGlua2luZyBlcnJvcnMgaWYgdXNlZC4KKwogVGhpcyByZXZlcnRzIGNvbW1pdCBhOGFj ZDZlZWI2ZGMyY2M1NDYwZWNlOTBmOTBlYmUzNmI1NmIyMGJhLgogLS0tCi0gYmZkL0NoYW5nZUxv ZyAgICAgfCA2IC0tLS0tLQotIGJmZC9lbGYzMi10aWM2eC5jIHwgMyAtLS0KLSBsZC9DaGFuZ2VM b2cgICAgICB8IDYgLS0tLS0tCi0gbGQvbGRsYW5nLmMgICAgICAgfCA5ICsrKystLS0tLQotIDQg ZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAyMCBkZWxldGlvbnMoLSkKKyBiZmQvZWxm MzItdGljNnguYyB8ICAzIC0tLQorIGxkL2xkbGFuZy5jICAgICAgIHwgMTAgKysrKy0tLS0tLQor IDIgZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQogCi1kaWZm IC0tZ2l0IGEvYmZkL0NoYW5nZUxvZyBiL2JmZC9DaGFuZ2VMb2cKLWluZGV4IDlmYWMxMjUzOGEu LmI1NDYxNDk0ZTggMTAwNjQ0Ci0tLS0gYS9iZmQvQ2hhbmdlTG9nCi0rKysgYi9iZmQvQ2hhbmdl TG9nCi1AQCAtMTQyMiwxMiArMTQyMiw2IEBACi0gCWFjY2Vzc2luZyByb290LnUuZGVmIG9mIHN5 bWJvbHMuICBBbHNvIGNoZWNrIHJvb3QudS5kZWYuc2VjdGlvbgotIAlpcyBub24tTlVMTC4gIFJl dmVyc2UgdGVzdHMgc28gYXMgdG8gbWFrZSB0aGUgbG9naWMgcG9zaXRpdmUuCi0gCi0tMjAyMC0w NS0wMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBnbWFpbC5jb20+Ci0tCi0tCVBSIDI1ODgyCi0tCSog ZWxmMzItdGljNnguYyAoZWxmMzJfdGljNnhfbWVyZ2VfYXR0cmlidXRlcyk6IERvbid0IHRyYW5z ZmVyCi0tCVRhZ19BQklfUElDIG9yIFRhZ19BQklfUElEIGZyb20gZHluYW1pYyBvYmplY3RzIHRv IHRoZSBvdXRwdXQuCi0tCi0gMjAyMC0wNS0wMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBnbWFpbC5j b20+Ci0gCi0gCVBSIDI1ODgyCiBkaWZmIC0tZ2l0IGEvYmZkL2VsZjMyLXRpYzZ4LmMgYi9iZmQv ZWxmMzItdGljNnguYwotaW5kZXggYjhiOTE2YmZkMy4uOTFiYjZhMTBiMSAxMDA2NDQKK2luZGV4 IDU3NTRmM2NiODYwLi4zYWQxZDYxMjc0OSAxMDA2NDQKIC0tLSBhL2JmZC9lbGYzMi10aWM2eC5j CiArKysgYi9iZmQvZWxmMzItdGljNnguYwotQEAgLTM3NDgsOSArMzc0OCw2IEBAIGVsZjMyX3Rp YzZ4X21lcmdlX2F0dHJpYnV0ZXMgKGJmZCAqaWJmZCwgc3RydWN0IGJmZF9saW5rX2luZm8gKmlu Zm8pCitAQCAtMzczNSw5ICszNzM1LDYgQEAgZWxmMzJfdGljNnhfbWVyZ2VfYXR0cmlidXRlcyAo YmZkICppYmZkLCBzdHJ1Y3QgYmZkX2xpbmtfaW5mbyAqaW5mbykKICAKICAJY2FzZSBUYWdfQUJJ X1BJQzoKICAJY2FzZSBUYWdfQUJJX1BJRDoKQEAgLTQzLDM2ICsyOCwyMCBAQCBpbmRleCBiOGI5 MTZiZmQzLi45MWJiNmExMGIxIDEwMDY0NAogIAkgIGlmIChvdXRfYXR0cltpXS5pID4gaW5fYXR0 cltpXS5pKQogIAkgICAgb3V0X2F0dHJbaV0uaSA9IGluX2F0dHJbaV0uaTsKICAJICBicmVhazsK LWRpZmYgLS1naXQgYS9sZC9DaGFuZ2VMb2cgYi9sZC9DaGFuZ2VMb2cKLWluZGV4IDRlZWM3ZDI5 NzcuLmI5MzQ1MmY3MGMgMTAwNjQ0Ci0tLS0gYS9sZC9DaGFuZ2VMb2cKLSsrKyBiL2xkL0NoYW5n ZUxvZwotQEAgLTEzMTksMTIgKzEzMTksNiBAQAotIAkqIHRlc3RzdWl0ZS9sZC1hYXJjaDY0L2Zh cmNhbGwtZ3JvdXAuZDogTmV3IHRlc3QgZHJpdmVyLgotIAkqIHRlc3RzdWl0ZS9sZC1hYXJjaDY0 L2FhcmNoNjQtZWxmLmV4cDogUnVuIHRoZSBuZXcgdGVzdC4KLSAKLS0yMDIwLTA1LTAxICBBbGFu IE1vZHJhICA8YW1vZHJhQGdtYWlsLmNvbT4KLS0KLS0JUFIgMjU4ODIKLS0JKiBsZGxhbmcuYyAo bGFuZ19jaGVjayk6IENhbGwgYmZkX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEgZm9yCi0tCXNoYXJl ZCBsaWJyYXJpZXMuCi0tCi0gMjAyMC0wNS0wMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBnbWFpbC5j b20+Ci0gCi0gCSogcG8vQkxELVBPVEZJTEVTLmluOiBSZWdlbmVyYXRlLgogZGlmZiAtLWdpdCBh L2xkL2xkbGFuZy5jIGIvbGQvbGRsYW5nLmMKLWluZGV4IDk5NzcxOTUwNzQuLjE3M2Q4ZWMzNDkg MTAwNjQ0CitpbmRleCAzN2I2NGM4OWVlMS4uZjEzYmVhZWY5ZDkgMTAwNjQ0CiAtLS0gYS9sZC9s ZGxhbmcuYwogKysrIGIvbGQvbGRsYW5nLmMKLUBAIC02OTcyLDEyICs2OTcyLDExIEBAIGxhbmdf Y2hlY2sgKHZvaWQpCitAQCAtNzA3MSwxMyArNzA3MSwxMSBAQCBsYW5nX2NoZWNrICh2b2lkKQog IAkJICAgYmZkX3ByaW50YWJsZV9uYW1lIChpbnB1dF9iZmQpLCBpbnB1dF9iZmQsCiAgCQkgICBi ZmRfcHJpbnRhYmxlX25hbWUgKGxpbmtfaW5mby5vdXRwdXRfYmZkKSk7CiAgCX0KIC0KIC0gICAg ICAvKiBJZiB0aGUgaW5wdXQgYmZkIGhhcyBubyBjb250ZW50cywgaXQgc2hvdWxkbid0IHNldCB0 aGUKIC0JIHByaXZhdGUgZGF0YSBvZiB0aGUgb3V0cHV0IGJmZC4gICovCi0tICAgICAgZWxzZSBp ZiAoKGlucHV0X2JmZC0+ZmxhZ3MgJiBEWU5BTUlDKSAhPSAwCi0tCSAgICAgICB8fCBiZmRfY291 bnRfc2VjdGlvbnMgKGlucHV0X2JmZCkgIT0gMCkKKy0gICAgICBlbHNlIGlmICghZmlsZS0+Zmxh Z3MuanVzdF9zeW1zCistCSAgICAgICAmJiAoKGlucHV0X2JmZC0+ZmxhZ3MgJiBEWU5BTUlDKSAh PSAwCistCQkgICB8fCBiZmRfY291bnRfc2VjdGlvbnMgKGlucHV0X2JmZCkgIT0gMCkpCiArICAg ICAgZWxzZSBpZiAoYmZkX2NvdW50X3NlY3Rpb25zIChpbnB1dF9iZmQpKQogIAl7CiArCSAgLyog SWYgdGhlIGlucHV0IGJmZCBoYXMgbm8gY29udGVudHMsIGl0IHNob3VsZG4ndCBzZXQgdGhlCkBA IC04Miw1ICs1MSw0IEBAIGluZGV4IDk5NzcxOTUwNzQuLjE3M2Q4ZWMzNDkgMTAwNjQ0CiAgCiAg CSAgLyogSWYgd2UgYXJlbid0IHN1cHBvc2VkIHRvIHdhcm4gYWJvdXQgbWlzbWF0Y2hlZCBpbnB1 dAogLS0gCi0yLjI5LjIKLQorMi4zMy4wCmRpZmYgLS1naXQgYS9zcmNwa2dzL2JpbnV0aWxzL3Rl bXBsYXRlIGIvc3JjcGtncy9iaW51dGlscy90ZW1wbGF0ZQppbmRleCA2MjcwZjg2MThjODcuLmMz NTVhNWZjODAxNiAxMDA2NDQKLS0tIGEvc3JjcGtncy9iaW51dGlscy90ZW1wbGF0ZQorKysgYi9z cmNwa2dzL2JpbnV0aWxzL3RlbXBsYXRlCkBAIC0xLDE5ICsxLDIwIEBACiAjIFRlbXBsYXRlIGZp bGUgZm9yICdiaW51dGlscycKIHBrZ25hbWU9YmludXRpbHMKLXZlcnNpb249Mi4zNS4xCi1yZXZp c2lvbj00Cit2ZXJzaW9uPTIuMzkKK3JldmlzaW9uPTEKIGJvb3RzdHJhcD15ZXMKK2hvc3RtYWtl ZGVwZW5kcz0icGtnY29uZiIKIG1ha2VkZXBlbmRzPSJ6bGliLWRldmVsIgogc2hvcnRfZGVzYz0i R05VIGJpbmFyeSB1dGlsaXRpZXMiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZv aWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTMuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRw Oi8vd3d3LmdudS5vcmcvc29mdHdhcmUvYmludXRpbHMvIgogZGlzdGZpbGVzPSIke0dOVV9TSVRF fS8kcGtnbmFtZS8kcGtnbmFtZS0kdmVyc2lvbi50YXIueHoiCi1jaGVja3N1bT0zY2VkOTFkYjli ZjAxMTgyYjdlNDIwZWFiNjgwMzlmMjA4M2FlZDBhMjE0YzA0MjRlMjU3ZWFlM2RkZWU4NjA3Citj aGVja3N1bT02NDVjMjVmNTYzYjhhZGMwYTgxZGJkNmE0MWNmZmJmNGQzNzA4M2EzODJlMDJkNWQz ZGY0ZjY1YzA5NTE2ZDAwCiAKIHN1YnBhY2thZ2VzPSJiaW51dGlscy1kb2MiCiBpZiBbICIkQ0hS T09UX1JFQURZIiBdOyB0aGVuCi0JaG9zdG1ha2VkZXBlbmRzPSJmbGV4IHBlcmwgdGV4aW5mbyIK Kwlob3N0bWFrZWRlcGVuZHMrPSIgZmxleCBwZXJsIHRleGluZm8iCiAJbWFrZWRlcGVuZHMrPSIg ZWxmdXRpbHMtZGV2ZWwiCiAJY2hlY2tkZXBlbmRzPSJiYyIKIAlkZXBlbmRzPSJiaW51dGlscy1k b2MiCkBAIC0zNSwxNSArMzYsMjEgQEAgZG9fY29uZmlndXJlKCkgewogCWxvY2FsIGNvbmYKIAog CWlmIFsgIiRDSFJPT1RfUkVBRFkiIF07IHRoZW4KLQkJY29uZis9IiAtLXdpdGgtZGVidWdpbmZv ZCIKKwkJY29uZis9IiAtLXdpdGgtZGVidWdpbmZvZCAtLWVuYWJsZS1zaGFyZWQiCiAJZWxzZQot CQljb25mKz0iIC0td2l0aG91dC1kZWJ1Z2luZm9kIC0tZGlzYWJsZS1pbnN0YWxsLWxpYmJmZCIK KwkJY29uZis9IiAtLXdpdGhvdXQtZGVidWdpbmZvZCAtLWRpc2FibGUtc2hhcmVkIC0tZGlzYWJs ZS1pbnN0YWxsLWxpYmJmZCIKIAlmaQogCWlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgogCQkj IHdlIGRvbid0IHdhbnQgLS13aXRoLXN5c3Jvb3Q9JHtYQlBTX0NST1NTX0JBU0V9IGxpa2UgZ251 LWNvbmZpZ3VyZQogCQljb25mKz0iIC0taG9zdD0ke1hCUFNfQ1JPU1NfVFJJUExFVH0gLS13aXRo LWJ1aWxkLXN5c3Jvb3Q9JHtYQlBTX0NST1NTX0JBU0V9IgogCWZpCiAKKwkjIGdwcm9mbmcgY3Vy cmVudGx5IG9ubHkgc3VwcG9ydHMgeDg2IGFuZCBhYXJjaDY0IGdsaWJjLgorCWNhc2UgIiRYQlBT X1RBUkdFVF9NQUNISU5FIiBpbgorCQl4ODZfNjR8aTM4NnxhYXJjaDY0KSBjb25mKz0iIC0tZW5h YmxlLWdwcm9mbmciIDs7CisJCSopIGNvbmYrPSIgLS1kaXNhYmxlLWdwcm9mbmciIDs7CisJZXNh YworCiAJY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCiAJCXBwYyopCiAJCQljb25mKz0i IC0tZW5hYmxlLXNlY3VyZXBsdCIKQEAgLTc2LDEzICs4MywxNCBAQCBkb19jb25maWd1cmUoKSB7 CiAJCS0tbGliZGlyPS91c3IvbGliIFwKIAkJLS1tYW5kaXI9L3Vzci9zaGFyZS9tYW4gXAogCQkt LWluZm9kaXI9L3Vzci9zaGFyZS9pbmZvIFwKKwkJLS1zeXNjb25mZGlyPS9ldGMgXAogCQktLWRp c2FibGUtd2Vycm9yIFwKLQkJLS1kaXNhYmxlLXNoYXJlZCBcCiAJCS0tZGlzYWJsZS1ubHMgXAog CQktLWVuYWJsZS10aHJlYWRzIFwKIAkJLS1lbmFibGUtcGx1Z2lucyBcCiAJCS0tZW5hYmxlLXJl bHJvIFwKIAkJLS1lbmFibGUtZ29sZCBcCisJCS0tZW5hYmxlLW5ldy1kdGFncyBcCiAJCS0tZW5h YmxlLWRldGVybWluaXN0aWMtYXJjaGl2ZXMgXAogCQktLWVuYWJsZS02NC1iaXQtYmZkIFwKIAkJ LS1lbmFibGUtbGQ9ZGVmYXVsdCBcCkBAIC0xNDIsNyArMTUwLDggQEAgYmludXRpbHMtZGV2ZWxf cGFja2FnZSgpIHsKIAlwa2dfaW5zdGFsbCgpIHsKIAkJdm1vdmUgdXNyL2luY2x1ZGUKIAkJdm1v dmUgInVzci9saWIvKi5hIgotCQl2bW92ZSAidXNyL2xpYi8qLnNvIgorCQl2bW92ZSAidXNyL2xp Yi9saWJiZmQuc28iCisJCXZtb3ZlICJ1c3IvbGliL2xpYm9wY29kZXMuc28iCiAJfQogfQogCgpG cm9tIDk0MWVmNjYyMzE0YTQ4ZjUyZTU2MWMwMDg2MTYwZGQyNWIwYTQwZmEgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IG9yZW82MzkgPG9yZW82MzkxQGdtYWlsLmNvbT4KRGF0ZTogU2F0 LCA1IE5vdiAyMDIyIDExOjMzOjExIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwMi8zN10gZ2RiOiBy ZXNvbHZlIGNvbmZsaWN0IHdpdGggYmludXRpbHMgMi4zOQoKLS0tCiBzcmNwa2dzL2dkYi90ZW1w bGF0ZSB8IDUgKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDIgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nZGIvdGVtcGxhdGUgYi9zcmNwa2dzL2dkYi90 ZW1wbGF0ZQppbmRleCA5YzVmMTdmZmM1MTkuLmI2NjYzNDhmZWExOSAxMDA2NDQKLS0tIGEvc3Jj cGtncy9nZGIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nZGIvdGVtcGxhdGUKQEAgLTEsNyArMSw3 IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnZGInCiBwa2duYW1lPWdkYgogdmVyc2lvbj0xMi4x Ci1yZXZpc2lvbj0yCityZXZpc2lvbj0zCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBweWNv bXBpbGVfZGlycz0iL3Vzci9zaGFyZS9nZGIvcHl0aG9uIgogY29uZmlndXJlX2FyZ3M9Ii0tZGlz YWJsZS13ZXJyb3IgLS1kaXNhYmxlLW5scyAtLXdpdGgtc3lzdGVtLXJlYWRsaW5lCkBAIC00OCw3 ICs0OCw4IEBAIHZvcHRfY29uZmxpY3QgZGVidWdpbmZvZCBzdGF0aWMKIAogcG9zdF9pbnN0YWxs KCkgewogCSMgcmVzb2x2ZSBjb25mbGljdHMgd2l0aCBiaW51dGlscwotCXJtIC1yICR7REVTVERJ Un0vdXNyL3tpbmNsdWRlLGxpYixzaGFyZS9pbmZvL2JmZC5pbmZvKn0KKwlybSAtcmYgJHtERVNU RElSfS91c3Ive2luY2x1ZGUsbGlifQorCXJtIC1yZiAke0RFU1RESVJ9L3Vzci9zaGFyZS9pbmZv L3tiZmQsY3RmLXNwZWN9LmluZm8qCiB9CiAKIGdkYi1jb21tb25fcGFja2FnZSgpIHsKCkZyb20g ODg3YmI1YTEyNTYxNGM1MDNmZTAxYTFkYTJjOTdjODBhZTRlYzkxOSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogb3JlbzYzOSA8b3JlbzYzOTFAZ21haWwuY29tPgpEYXRlOiBTYXQsIDUg Tm92IDIwMjIgMTE6MzM6MTEgLTA3MDAKU3ViamVjdDogW1BBVENIIDAzLzM3XSBnY2M6IHVwZGF0 ZSB0byAxMi4yLjAuCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IDEwICstLQogc3JjcGtncy9nY2MvZmlsZXMvZ2NjZ28tbXVzbC5wYXRjaCAgICAg ICAgICAgIHwgNzEgKysrLS0tLS0tLS0tLS0tCiBzcmNwa2dzL2djYy9maWxlcy9saWJnbmFybC1t dXNsLnBhdGNoICAgICAgICAgfCAxOCArKy0tCiBzcmNwa2dzL2djYy9maWxlcy9saWJzc3AtbXVz bC5wYXRjaCAgICAgICAgICAgfCAxMCArLS0KIHNyY3BrZ3MvZ2NjL3BhdGNoZXMvbGliZmZpX2du dWxpbnV4LnBhdGNoICAgICB8IDExIC0tLQogLi4uL2djYy9wYXRjaGVzL2xpYmdjYy1pYm0xMjgt bm8tdGFnLnBhdGNoICAgIHwgMTAgKystCiBzcmNwa2dzL2djYy9wYXRjaGVzL21pcHMtc2dpZGVm c19oLnBhdGNoICAgICAgfCAgMiArLQogc3JjcGtncy9nY2MvdGVtcGxhdGUgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgODcgKysrKysrKysrLS0tLS0tLS0tLQogOCBmaWxlcyBjaGFuZ2VkLCA4 MCBpbnNlcnRpb25zKCspLCAxMzkgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9nY2MvcGF0Y2hlcy9saWJmZmlfZ251bGludXgucGF0Y2gKCmRpZmYgLS1naXQgYS9jb21t b24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCAzYjEwM2Y0NzlkNWEuLjA0Y2JhZGU1MjQ2 OCAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC02MCw3 ICs2MCw3IEBAIGxpYmNjMXBsdWdpbi5zby4wIGdjYy02LjIuMV8xCiBsaWJpdG0uc28uMSBsaWJp dG0tNC43LjNfMQogbGlibHRvX3BsdWdpbi5zby4wIGdjYy00LjcuM18xCiBsaWJnY2Nfcy5zby4x IGxpYmdjYy00LjQuMF8xCi1saWJnby5zby4xNiBsaWJnby0xMC4yLjBfMQorbGliZ28uc28uMjEg bGliZ28tMTIuMi4wXzEKIGxpYmdjY2ppdC5zby4wIGxpYmdjY2ppdC0xMC4yLjFwcmUxXzEKIGxp YnBlcmwuc28uNS4zNiBwZXJsLTUuMzYuMF8xCiBsaWJnbXAuc28uMTAgZ21wLTUuMC4xXzEKQEAg LTg1Nyw4ICs4NTcsOCBAQCBsaWJnZGttbS0yLjQuc28uMSBndGttbTItMi4yNC4wXzEKIGxpYmd0 a21tLTIuNC5zby4xIGd0a21tMi0yLjI0LjBfMQogbGlicXVhZG1hdGguc28uMCBsaWJxdWFkbWF0 aC00LjQuMF8xCiBsaWJnZm9ydHJhbi5zby41IGxpYmdmb3J0cmFuLTguMi4wXzEKLWxpYmduYXJs LTEwLnNvIGxpYmFkYS0xMC4yLjBfMQotbGliZ25hdC0xMC5zbyBsaWJhZGEtMTAuMi4wXzEKK2xp YmduYXJsLTEyLnNvIGxpYmFkYS0xMi4yLjBfMQorbGliZ25hdC0xMi5zbyBsaWJhZGEtMTIuMi4w XzEKIGxpYndlYnAuc28uNyBsaWJ3ZWJwLTAuNi4wXzEKIGxpYndlYnBtdXguc28uMyBsaWJ3ZWJw LTAuNi4wXzEKIGxpYndlYnBkZW11eC5zby4yIGxpYndlYnAtMC41LjBfMQpAQCAtMTcxMCw4ICsx NzEwLDggQEAgbGliZXh0cmFjdG9yLnNvLjMgbGliZXh0cmFjdG9yLTEuMV8xCiBsaWJleHRyYWN0 b3JfY29tbW9uLnNvLjEgbGliZXh0cmFjdG9yLTEuMV8xCiBsaWJwYW5vMTMuc28uMyBsaWJwYW5v MTMtMi45LjE5XzEKIGxpYnVic2FuLnNvLjEgbGlic2FuaXRpemVyLTguMi4wXzEKLWxpYnRzYW4u c28uMCBsaWJzYW5pdGl6ZXItNi4zLjBfMQotbGliYXNhbi5zby42IGxpYnNhbml0aXplci0xMC4y LjBfMQorbGlidHNhbi5zby4yIGxpYnNhbml0aXplci0xMi4yLjBfMQorbGliYXNhbi5zby44IGxp YnNhbml0aXplci0xMi4yLjBfMQogbGlibHNhbi5zby4wIGxpYnNhbml0aXplci02LjMuMF8xCiBs aWJ2dHYuc28uMCBsaWJ2dHYtNi4zLjBfMQogbGliYXRvbWljLnNvLjEgbGliYXRvbWljLTQuOS4w XzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ2NjL2ZpbGVzL2djY2dvLW11c2wucGF0Y2ggYi9zcmNw a2dzL2djYy9maWxlcy9nY2Nnby1tdXNsLnBhdGNoCmluZGV4IDk3NjI3Mzk2MTVhZi4uMTJlYzY4 ZGQ4YWEzIDEwMDY0NAotLS0gYS9zcmNwa2dzL2djYy9maWxlcy9nY2Nnby1tdXNsLnBhdGNoCisr KyBiL3NyY3BrZ3MvZ2NjL2ZpbGVzL2djY2dvLW11c2wucGF0Y2gKQEAgLTUzLDE3ICs1Myw2IEBA IFVSTDogaHR0cHM6Ly9jb2RlLmZveGtpdC51cy9hZGVsaWUvcGFja2FnZXMvdHJlZS9tYXN0ZXIv c3lzdGVtL2djYwogIAlwIDo9IHN5c01tYXAoYWRkciwgbiwgcHJvdCwgZmxhZ3MsIGZkLCBvZmYp CiAgCWlmIHVpbnRwdHIocCkgPT0gX01BUF9GQUlMRUQgewogIAkJcmV0dXJuIG5pbCwgZXJybm8o KQotLS0tIGEvbGliZ28vZ28vcnVudGltZS9zaWduYWxfZ2NjZ28uZ28KLSsrKyBiL2xpYmdvL2dv L3J1bnRpbWUvc2lnbmFsX2djY2dvLmdvCi1AQCAtMTExLDcgKzExMSw3IEBAIGZ1bmMgZ2V0c2ln KGkgdWludDMyKSB1aW50cHRyIHsKLSAJaWYgc2lnYWN0aW9uKGksIG5pbCwgJnNhKSA8IDAgewot IAkJLy8gT24gR05VL0xpbnV4IGdsaWJjIHJlamVjdHMgYXR0ZW1wdHMgdG8gY2FsbAotIAkJLy8g c2lnYWN0aW9uIHdpdGggc2lnbmFsIDMyIChTSUdDQU5DRUwpIG9yIDMzIChTSUdTRVRYSUQpLgot LQkJaWYgR09PUyA9PSAibGludXgiICYmIChpID09IDMyIHx8IGkgPT0gMzMpIHsKLSsJCWlmIEdP T1MgPT0gImxpbnV4IiAmJiAoaSA9PSAzMiB8fCBpID09IDMzIHx8IGkgPT0gMzQpIHsKLSAJCQly ZXR1cm4gX1NJR19ERkwKLSAJCX0KLSAJCXRocm93KCJzaWdhY3Rpb24gcmVhZCBmYWlsdXJlIikK IC0tLSBhL2xpYmdvL2dvL3N5c2NhbGwvZXJyc3RyLmdvCiArKysgYi9saWJnby9nby9zeXNjYWxs L2VycnN0ci5nbwogQEAgLTUsNyArNSw2IEBACkBAIC0xNDAsNTUgKzEyOSw2IEBAIFVSTDogaHR0 cHM6Ly9jb2RlLmZveGtpdC51cy9hZGVsaWUvcGFja2FnZXMvdHJlZS9tYXN0ZXIvc3lzdGVtL2dj YwogIAkJcGx3b2ZmID0gJmx3b2ZmCiAgCX0KICAJbiwgZXJyID0gc3BsaWNlKHJmZCwgcGxyb2Zm LCB3ZmQsIHBsd29mZiwgbGVuLCBmbGFncykKLS0tLSBhL2xpYmdvL21rc2lndGFiLnNoCi0rKysg Yi9saWJnby9ta3NpZ3RhYi5zaAotQEAgLTgyLDcgKzgyLDcgQEAgY2hlY2tzaWcgX1NJR1BXUiAg ICAgJ3tfU2lnTm90aWZ5LCAiU0lHUFdSOiBwb3dlciBmYWlsdXJlIHJlc3RhcnQifScKLSBjaGVj a3NpZyBfU0lHRU1UICAgICAne19TaWdUaHJvdywgIlNJR0VNVDogZW11bGF0ZSBpbnN0cnVjdGlv biBleGVjdXRlZCJ9JwotIGNoZWNrc2lnIF9TSUdJTkZPICAgICd7X1NpZ05vdGlmeSwgIlNJR0lO Rk86IHN0YXR1cyByZXF1ZXN0IGZyb20ga2V5Ym9hcmQifScKLSBjaGVja3NpZyBfU0lHVEhSICAg ICAne19TaWdOb3RpZnksICJTSUdUSFI6IHJlc2VydmVkIn0nCi0tY2hlY2tzaWcgX1NJR1BPTEwg ICAgJ3tfU2lnTm90aWZ5LCAiU0lHUE9MTDogcG9sbGFibGUgZXZlbnQgb2NjdXJyZWQifScKLSsj Y2hlY2tzaWcgX1NJR1BPTEwgICAgJ3tfU2lnTm90aWZ5LCAiU0lHUE9MTDogcG9sbGFibGUgZXZl bnQgb2NjdXJyZWQifScKLSBjaGVja3NpZyBfU0lHV0FJVElORyAne19TaWdOb3RpZnksICJTSUdX QUlUSU5HOiByZXNlcnZlZCBzaWduYWwgbm8gbG9uZ2VyIHVzZWQgYnkifScKLSBjaGVja3NpZyBf U0lHTFdQICAgICAne19TaWdOb3RpZnksICJTSUdMV1A6IHJlc2VydmVkIHNpZ25hbCBubyBsb25n ZXIgdXNlZCBieSJ9JwotIGNoZWNrc2lnIF9TSUdGUkVFWkUgICd7X1NpZ05vdGlmeSwgIlNJR0ZS RUVaRTogc3BlY2lhbCBzaWduYWwgdXNlZCBieSBDUFIifScKLUBAIC05NSwxMCArOTUsMTIgQEAg Y2hlY2tzaWcgX1NJR0xPU1QgJyAgIHtfU2lnTm90aWZ5LCAiU0lHTE9TVDogcmVzb3VyY2UgbG9z dCAoU3VuKTsgc2VydmVyIGRpZWQgKEcKLSAKLSAjIFNwZWNpYWwgaGFuZGxpbmcgb2Ygc2lnbmFs cyAzMiBhbmQgMzMgb24gR05VL0xpbnV4IHN5c3RlbXMsCi0gIyBiZWNhdXNlIHRoZXkgYXJlIHNw ZWNpYWwgdG8gZ2xpYmMuCi0rIyBTaWduYWwgMzQgaXMgYWRkaXRpb25hbGx5IHNwZWNpYWwgdG8g TGludXggc3lzdGVtcyB3aXRoIG11c2wuCi0gaWYgdGVzdCAiJHtHT09TfSIgPSAibGludXgiOyB0 aGVuCi0tICAgIFNJR0xJU1Q9JFNJR0xJU1QiXzMyX18zM18iCi0rICAgIFNJR0xJU1Q9JFNJR0xJ U1QiXzMyX18zM19fMzRfIgotICAgICBlY2hvICcJMzI6IHtfU2lnU2V0U3RhY2sgKyBfU2lnVW5i bG9jaywgInNpZ25hbCAzMiJ9LCAvKiBTSUdDQU5DRUw7IHNlZSBpc3N1ZSA2OTk3ICovJwotICAg ICBlY2hvICcJMzM6IHtfU2lnU2V0U3RhY2sgKyBfU2lnVW5ibG9jaywgInNpZ25hbCAzMyJ9LCAv KiBTSUdTRVRYSUQ7IHNlZSBpc3N1ZXMgMzg3MSwgOTQwMCwgMTI0OTggKi8nCi0rICAgIGVjaG8g JwkzNDoge19TaWdTZXRTdGFjayArIF9TaWdVbmJsb2NrLCAic2lnbmFsIDM0In0sIC8qIHNlZSBp c3N1ZSAzMDA2MiAqLycKLSBmaQotIAotIGlmIHRlc3QgIiR7R09PU30iID0gImFpeCI7IHRoZW4K LS0tLSBhL2xpYmdvL3J1bnRpbWUvZ28tc2lnbmFsLmMJMjAyMC0wNy0yMyAwODozNToxOS4wMDQ0 MDI4NDAgKzAyMDAKLSsrKyBiL2xpYmdvL3J1bnRpbWUvZ28tc2lnbmFsLmMJMjAyMC0wOC0wOSAy MTozNTo1NC4zNTI4ODYyMzIgKzAyMDAKLUBAIC0yMjQsNyArMjI0LDExIEBACi0gI2VsaWYgZGVm aW5lZChfX2FscGhhX18pICYmIGRlZmluZWQoX19saW51eF9fKQotIAlyZXQuc2lncGMgPSAoKHVj b250ZXh0X3QqKShjb250ZXh0KSktPnVjX21jb250ZXh0LnNjX3BjOwotICNlbGlmIGRlZmluZWQo X19QUENfXykgJiYgZGVmaW5lZChfX2xpbnV4X18pCi0tCXJldC5zaWdwYyA9ICgodWNvbnRleHRf dCopKGNvbnRleHQpKS0+dWNfbWNvbnRleHQucmVncy0+bmlwOwotKwkjaWZkZWYgX19QUEM2NF9f Ci0rCQlyZXQuc2lncGMgPSAoKHVjb250ZXh0X3QqKShjb250ZXh0KSktPnVjX21jb250ZXh0Lmdw X3JlZ3NbMzJdOwotKwkjZWxzZQotKwkJcmV0LnNpZ3BjID0gKCh1Y29udGV4dF90KikoY29udGV4 dCkpLT51Y19tY29udGV4dC5ncmVnc1szMl07Ci0rCSNlbmRpZgotICNlbGlmIGRlZmluZWQoX19Q UENfXykgJiYgZGVmaW5lZChfQUlYKQotIAlyZXQuc2lncGMgPSAoKHVjb250ZXh0X3QqKShjb250 ZXh0KSktPnVjX21jb250ZXh0LmptcF9jb250ZXh0LmlhcjsKLSAjZWxpZiBkZWZpbmVkKF9fYWFy Y2g2NF9fKSAmJiBkZWZpbmVkKF9fbGludXhfXykKLUBAIC0zMzMsNyArMzM3LDcgQEAKLSAJCXJ1 bnRpbWVfcHJpbnRmKCJzcCAgJVhcbiIsIG0tPnNjX3JlZ3NbMzBdKTsKLSAJCXJ1bnRpbWVfcHJp bnRmKCJwYyAgJVhcbiIsIG0tPnNjX3BjKTsKLSAJICB9Ci0tI2VsaWYgZGVmaW5lZChfX1BQQ19f KSAmJiBkZWZpbmVkKF9fTElUVExFX0VORElBTl9fKSAmJiBkZWZpbmVkKF9fbGludXhfXykKLSsj ZWxpZiBkZWZpbmVkKF9fUFBDX18pICYmIGRlZmluZWQoX19MSVRUTEVfRU5ESUFOX18pICYmIGRl ZmluZWQoX19saW51eF9fKSAmJiBkZWZpbmVkKF9fR0xJQkNfXykKLSAJICB7Ci0gCQltY29udGV4 dF90ICptID0gJigodWNvbnRleHRfdCopKGNvbnRleHQpKS0+dWNfbWNvbnRleHQ7Ci0gCQlpbnQg aTsKIC0tLSBhL2xpYmdvL3J1bnRpbWUvcnVudGltZS5oCiArKysgYi9saWJnby9ydW50aW1lL3J1 bnRpbWUuaAogQEAgLTUwMCwxMCArNTAwLDEzIEBAIGludCBfX2dvX3NldGNvbnRleHQoX19nb19j b250ZXh0X3QqKTsKQEAgLTIyMCwzICsxNjAsMTQgQEAgVVJMOiBodHRwczovL2NvZGUuZm94a2l0 LnVzL2FkZWxpZS9wYWNrYWdlcy90cmVlL21hc3Rlci9zeXN0ZW0vZ2NjCiAgI2lmIGRlZmluZWQo SEFWRV9TWVNfVVRTTkFNRV9IKQogICNpbmNsdWRlIDxzeXMvdXRzbmFtZS5oPgogICNlbmRpZgor LS0tIGEvbGliZ28vZ28vcnVudGltZS9vc19saW51eC5nbworKysrIGIvbGliZ28vZ28vcnVudGlt ZS9vc19saW51eC5nbworQEAgLTM2NSw3ICszNjUsNyBAQCBmdW5jIHNldFRocmVhZENQVVByb2Zp bGVyKGh6IGludDMyKSB7CisgCXZhciBzZXZwIF9zaWdldmVudAorIAlzZXZwLnNpZ2V2X25vdGlm eSA9IF9TSUdFVl9USFJFQURfSUQKKyAJc2V2cC5zaWdldl9zaWdubyA9IF9TSUdQUk9GCistCSoo KCppbnQzMikodW5zYWZlLlBvaW50ZXIoJnNldnAuX3NpZ2V2X3VuKSkpID0gaW50MzIobXAucHJv Y2lkKQorKwkqKCgqaW50MzIpKHVuc2FmZS5Qb2ludGVyKCZzZXZwLl9fc2V2X2ZpZWxkcykpKSA9 IGludDMyKG1wLnByb2NpZCkKKyAJcmV0IDo9IHRpbWVyX2NyZWF0ZShfQ0xPQ0tfVEhSRUFEX0NQ VVRJTUVfSUQsICZzZXZwLCAmdGltZXJpZCkKKyAJaWYgcmV0ICE9IDAgeworIAkJLy8gSWYgd2Ug Y2Fubm90IGNyZWF0ZSBhIHRpbWVyIGZvciB0aGlzIE0sIGxlYXZlIHByb2ZpbGVUaW1lclZhbGlk IGZhbHNlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2djYy9maWxlcy9saWJnbmFybC1tdXNsLnBhdGNo IGIvc3JjcGtncy9nY2MvZmlsZXMvbGliZ25hcmwtbXVzbC5wYXRjaAppbmRleCA5OWE3MzRjNDJj OTAuLjkxYzk1OTQ5ZTBlOSAxMDA2NDQKLS0tIGEvc3JjcGtncy9nY2MvZmlsZXMvbGliZ25hcmwt bXVzbC5wYXRjaAorKysgYi9zcmNwa2dzL2djYy9maWxlcy9saWJnbmFybC1tdXNsLnBhdGNoCkBA IC01LDcgKzUsNyBAQCBSZWFzb246IFBhdGNoIGxpYmduYXJsIHRvIG5vdCB1c2UgZnVuY3Rpb24g bWlzc2luZyBmcm9tIG11c2wuCiBkaWZmIC1ydXAgZ2NjLTguMi4wL2djYy9hZGEvbGliZ25hcmwv cy1vc2ludGVfX2xpbnV4LmFkcyBnY2MtOC4yLjAtbmV3L2djYy9hZGEvbGliZ25hcmwvcy1vc2lu dGVfX2xpbnV4LmFkcwogLS0tIGEvZ2NjL2FkYS9saWJnbmFybC9zLW9zaW50ZV9fbGludXguYWRz CTIwMTgtMDEtMTEgMDA6NTU6MjUuMDAwMDAwMDAwIC0wODAwCiArKysgYi9nY2MvYWRhL2xpYmdu YXJsL3Mtb3NpbnRlX19saW51eC5hZHMJMjAxOC0xMS0wMSAxNjoxNjoyMy4zNzI0NTI5NTEgLTA3 MDAKLUBAIC0zOTQsMTIgKzM5NCw2IEBAIHBhY2thZ2UgU3lzdGVtLk9TX0ludGVyZmFjZSBpcwor QEAgLTQwMywxMiArNDAzLDYgQEAgcGFja2FnZSBTeXN0ZW0uT1NfSW50ZXJmYWNlIGlzCiAgICAg UFRIUkVBRF9SV0xPQ0tfUFJFRkVSX1dSSVRFUl9OUCAgICAgICAgICAgICAgOiBjb25zdGFudCA6 PSAxOwogICAgIFBUSFJFQURfUldMT0NLX1BSRUZFUl9XUklURVJfTk9OUkVDVVJTSVZFX05QIDog Y29uc3RhbnQgOj0gMjsKICAKQEAgLTE4LDcgKzE4LDcgQEAgZGlmZiAtcnVwIGdjYy04LjIuMC9n Y2MvYWRhL2xpYmduYXJsL3Mtb3NpbnRlX19saW51eC5hZHMgZ2NjLTguMi4wLW5ldy9nY2MvYWRh L2wKICAgICBmdW5jdGlvbiBwdGhyZWFkX3J3bG9ja19pbml0CiAgICAgICAobXV0ZXggOiBhY2Nl c3MgcHRocmVhZF9yd2xvY2tfdDsKICAgICAgICBhdHRyICA6IGFjY2VzcyBwdGhyZWFkX3J3bG9j a2F0dHJfdCkgcmV0dXJuIGludDsKLUBAIC00NjQsMTEgKzQ1OCw2IEBAIHBhY2thZ2UgU3lzdGVt Lk9TX0ludGVyZmFjZSBpcworQEAgLTQ3MCwxMSArNDY0LDYgQEAgcGFja2FnZSBTeXN0ZW0uT1Nf SW50ZXJmYWNlIGlzCiAgICAgICAgcHJvdG9jb2wgOiBpbnQpIHJldHVybiBpbnQ7CiAgICAgcHJh Z21hIEltcG9ydCAoQywgcHRocmVhZF9tdXRleGF0dHJfc2V0cHJvdG9jb2wpOwogIApAQCAtMzMs NyArMzMsNyBAQCBkaWZmIC1ydXAgZ2NjLTguMi4wL2djYy9hZGEvbGliZ25hcmwvcy1vc2ludGVf X2xpbnV4LmFkcyBnY2MtOC4yLjAtbmV3L2djYy9hZGEvbAogZGlmZiAtcnVwIGdjYy04LjIuMC9n Y2MvYWRhL2xpYmduYXJsL3MtdGFwcm9wX19saW51eC5hZGIgZ2NjLTguMi4wLW5ldy9nY2MvYWRh L2xpYmduYXJsL3MtdGFwcm9wX19saW51eC5hZGIKIC0tLSBhL2djYy9hZGEvbGliZ25hcmwvcy10 YXByb3BfX2xpbnV4LmFkYgkyMDE4LTAxLTExIDAwOjU1OjI1LjAwMDAwMDAwMCAtMDgwMAogKysr IGIvZ2NjL2FkYS9saWJnbmFybC9zLXRhcHJvcF9fbGludXguYWRiCTIwMTgtMTEtMTMgMTE6Mjg6 MzYuNDMzOTY0NDQ5IC0wODAwCi1AQCAtMjAyLDkgKzIwMiw2IEBAIHBhY2thZ2UgYm9keSBTeXN0 ZW0uVGFza19QcmltaXRpdmVzLk9wZXIKK0BAIC0xOTgsOSArMTk4LDYgQEAgcGFja2FnZSBib2R5 IFN5c3RlbS5UYXNrX1ByaW1pdGl2ZXMuT3BlcgogICAgIHByYWdtYSBJbXBvcnQKICAgICAgIChD LCBHTkFUX3B0aHJlYWRfY29uZGF0dHJfc2V0dXAsICJfX2duYXRfcHRocmVhZF9jb25kYXR0cl9z ZXR1cCIpOwogIApAQCAtNDMsNyArNDMsNyBAQCBkaWZmIC1ydXAgZ2NjLTguMi4wL2djYy9hZGEv bGliZ25hcmwvcy10YXByb3BfX2xpbnV4LmFkYiBnY2MtOC4yLjAtbmV3L2djYy9hZGEvbAogICAg IC0tICBXZSBkbyBub3QgaGF2ZSBwcmFnbWEgTGlua2VyX09wdGlvbnMgKCItbGNhcCIpOyBoZXJl LCBiZWNhdXNlIHRoaXMKICAgICAtLSAgbGlicmFyeSBpcyBub3QgcHJlc2VudCBvbiBtYW55IExp bnV4IHN5c3RlbXMuICdsaWJjYXAnIGlzIHRoZSBMaW51eAogICAgIC0tICAiY2FwYWJpbGl0aWVz IiBsaWJyYXJ5LCBjYWxsZWQgYnkgX19nbmF0X2hhc19jYXBfc3lzX25pY2UuCi1AQCAtMjE0LDM4 ICsyMTEsNiBAQCBwYWNrYWdlIGJvZHkgU3lzdGVtLlRhc2tfUHJpbWl0aXZlcy5PcGVyCitAQCAt MjEwLDM4ICsyMDcsNiBAQCBwYWNrYWdlIGJvZHkgU3lzdGVtLlRhc2tfUHJpbWl0aXZlcy5PcGVy CiAgICAgLS0gIENvbnZlcnQgQWRhIHByaW9yaXR5IHRvIExpbnV4IHByaW9yaXR5LiBQcmlvcml0 aWVzIGFyZSAxIC4uIDk5IG9uCiAgICAgLS0gIEdOVS9MaW51eCwgc28gd2UgbWFwIDAgLi4gOTgg dG8gMSAuLiA5OS4KICAKQEAgLTc2LDEzICs3NiwxMyBAQCBkaWZmIC1ydXAgZ2NjLTguMi4wL2dj Yy9hZGEvbGliZ25hcmwvcy10YXByb3BfX2xpbnV4LmFkYiBnY2MtOC4yLjAtbmV3L2djYy9hZGEv bAogLSAgICAgIHJldHVybiBDZWlsaW5nX1N1cHBvcnQ7CiAtICAgZW5kIEdldF9DZWlsaW5nX1N1 cHBvcnQ7CiAtCi0tICAgcHJhZ21hIFdhcm5pbmdzIChPZmYsICJub24tc3RhdGljIGNhbGwgbm90 IGFsbG93ZWQgaW4gcHJlZWxhYm9yYXRlZCB1bml0Iik7CistICAgcHJhZ21hIFdhcm5pbmdzIChP ZmYsICJub24tcHJlZWxhYm9yYWJsZSBjYWxsIG5vdCBhbGxvd2VkKiIpOwogLSAgIENlaWxpbmdf U3VwcG9ydCA6IGNvbnN0YW50IEJvb2xlYW4gOj0gR2V0X0NlaWxpbmdfU3VwcG9ydDsKLS0gICBw cmFnbWEgV2FybmluZ3MgKE9uLCAibm9uLXN0YXRpYyBjYWxsIG5vdCBhbGxvd2VkIGluIHByZWVs YWJvcmF0ZWQgdW5pdCIpOworLSAgIHByYWdtYSBXYXJuaW5ncyAoT24sICJub24tcHJlZWxhYm9y YWJsZSBjYWxsIG5vdCBhbGxvd2VkKiIpOwogICAgIC0tICBUcnVlIGlmIHRoZSBsb2NraW5nIHBv bGljeSBpcyBDZWlsaW5nX0xvY2tpbmcsIGFuZCB0aGUgY3VycmVudCBwcm9jZXNzCiAgICAgLS0g IGhhcyBwZXJtaXNzaW9uIHRvIHVzZSB0aGlzIHBvbGljeS4gVGhlIHByb2Nlc3MgaGFzIHBlcm1p c3Npb24gaWYgaXQgaXMKICAgICAtLSAgcnVubmluZyBhcyAncm9vdCcsIG9yIGlmIHRoZSBjYXBh YmlsaXR5IHdhcyBzZXQgYnkgdGhlIHNldGNhcCBjb21tYW5kLAotQEAgLTM0OCw3ICszMTMsOSBA QCBwYWNrYWdlIGJvZHkgU3lzdGVtLlRhc2tfUHJpbWl0aXZlcy5PcGVyCitAQCAtMzQ0LDcgKzMw OSw5IEBAIHBhY2thZ2UgYm9keSBTeXN0ZW0uVGFza19QcmltaXRpdmVzLk9wZXIKICAgICAtLSBJ bml0X011dGV4IC0tCiAgICAgLS0tLS0tLS0tLS0tLS0tLQogIApAQCAtOTIsNyArOTIsNyBAQCBk aWZmIC1ydXAgZ2NjLTguMi4wL2djYy9hZGEvbGliZ25hcmwvcy10YXByb3BfX2xpbnV4LmFkYiBn Y2MtOC4yLjAtbmV3L2djYy9hZGEvbAogICAgICAgIE11dGV4X0F0dHIgOiBhbGlhc2VkIHB0aHJl YWRfbXV0ZXhhdHRyX3Q7CiAgICAgICAgUmVzdWx0LCBSZXN1bHRfMiA6IEMuaW50OwogIAotQEAg LTM2MCwxNiArMzI3LDcgQEAgcGFja2FnZSBib2R5IFN5c3RlbS5UYXNrX1ByaW1pdGl2ZXMuT3Bl cgorQEAgLTM1NiwxNiArMzIzLDcgQEAgcGFja2FnZSBib2R5IFN5c3RlbS5UYXNrX1ByaW1pdGl2 ZXMuT3BlcgogICAgICAgICAgIHJldHVybiBSZXN1bHQ7CiAgICAgICAgZW5kIGlmOwogIApAQCAt MTEwLDcgKzExMCw3IEBAIGRpZmYgLXJ1cCBnY2MtOC4yLjAvZ2NjL2FkYS9saWJnbmFybC9zLXRh cHJvcF9fbGludXguYWRiIGdjYy04LjIuMC1uZXcvZ2NjL2FkYS9sCiAgICAgICAgICAgUmVzdWx0 IDo9IHB0aHJlYWRfbXV0ZXhhdHRyX3NldHByb3RvY29sCiAgICAgICAgICAgICAoTXV0ZXhfQXR0 cidBY2Nlc3MsIFBUSFJFQURfUFJJT19JTkhFUklUKTsKICAgICAgICAgICBwcmFnbWEgQXNzZXJ0 IChSZXN1bHQgPSAwKTsKLUBAIC00MDksMTEgKzM2Nyw2IEBAIHBhY2thZ2UgYm9keSBTeXN0ZW0u VGFza19QcmltaXRpdmVzLk9wZXIKK0BAIC00MDUsMTEgKzM2Myw2IEBAIHBhY2thZ2UgYm9keSBT eXN0ZW0uVGFza19QcmltaXRpdmVzLk9wZXIKICAgICAgICAgICAgICBSZXN1bHQgOj0gcHRocmVh ZF9yd2xvY2thdHRyX2luaXQgKFJXbG9ja19BdHRyJ0FjY2Vzcyk7CiAgICAgICAgICAgICAgcHJh Z21hIEFzc2VydCAoUmVzdWx0ID0gMCk7CiAgCmRpZmYgLS1naXQgYS9zcmNwa2dzL2djYy9maWxl cy9saWJzc3AtbXVzbC5wYXRjaCBiL3NyY3BrZ3MvZ2NjL2ZpbGVzL2xpYnNzcC1tdXNsLnBhdGNo CmluZGV4IGIyMWEyYzI5ZTU3Yy4uOTlmMjQ4NDAxYTFjIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dj Yy9maWxlcy9saWJzc3AtbXVzbC5wYXRjaAorKysgYi9zcmNwa2dzL2djYy9maWxlcy9saWJzc3At bXVzbC5wYXRjaApAQCAtMiw5ICsyLDkgQEAgRmlyc3QgcGFydCB0YWtlbiBmcm9tIEFscGluZS4K IAogU2Vjb25kIHBhcnQgYWRkZWQgdG8gcHJldmVudCBnY2NnbyBmcm9tIHRoaW5raW5nIGl0IGNh biAtZnNwbGl0LXN0YWNrIG9uIG11c2wuCiAKLS0tLSBhL2djYy9nY2MuYwotKysrIGIvZ2NjL2dj Yy5jCi1AQCAtODc0LDEwICs4NzQsMTUgQEAgcHJvcGVyIHBvc2l0aW9uIGFtb25nIHRoZSBvdGhl ciBvdXRwdXQgZmlsZXMuICAqLworLS0tIGEvZ2NjL2djYy5jYworKysrIGIvZ2NjL2djYy5jYwor QEAgLTk4NCwxMCArOTg0LDE1IEBAIHByb3BlciBwb3NpdGlvbiBhbW9uZyB0aGUgb3RoZXIgb3V0 cHV0IGYKICAjZGVmaW5lIExJTktfR0NDX0NfU0VRVUVOQ0VfU1BFQyAiJUcgJXshbm9saWJjOiVM ICVHfSIKICAjZW5kaWYKICAKQEAgLTIyLDEwICsyMiwxMCBAQCBTZWNvbmQgcGFydCBhZGRlZCB0 byBwcmV2ZW50IGdjY2dvIGZyb20gdGhpbmtpbmcgaXQgY2FuIC1mc3BsaXQtc3RhY2sgb24gbXVz bC4KICAjZWxzZQogICNkZWZpbmUgTElOS19TU1BfU1BFQyAiJXtmc3RhY2stcHJvdGVjdG9yfGZz dGFjay1wcm90ZWN0b3ItYWxsIiBcCiAgCQkgICAgICAgInxmc3RhY2stcHJvdGVjdG9yLXN0cm9u Z3xmc3RhY2stcHJvdGVjdG9yLWV4cGxpY2l0IiBcCi1AQCAtMTE1NSw3ICsxMTYwLDcgQEAgc3Rh dGljIGNvbnN0IGNoYXIgKmNjMV9vcHRpb25zID0KK0BAIC0xMjgwLDcgKzEyODUsNyBAQCBzdGF0 aWMgY29uc3QgY2hhciAqY2MxX29wdGlvbnMgPQogICAley12ZXJzaW9uOi0tdmVyc2lvbn1cCiAg ICV7LWhlbHA9KjotLWhlbHA9JSp9XAotICAleyFmc3ludGF4LW9ubHk6JXtTOiVXe28qfSV7IW8q Oi1vICViLnN9fX1cCisgICV7IWZzeW50YXgtb25seTole1M6JVd7byp9JXshbyo6LW8gJXclYi5z fX19XAogLSAle2ZzeW50YXgtb25seTotbyAlan0gJXstcGFyYW0qfVwKICsgJXtmc3ludGF4LW9u bHk6LW8gJWp9ICV7LXBhcmFtKn0gIiBOT19TU1BfU1BFQyAiXAogICAle2NvdmVyYWdlOi1mcHJv ZmlsZS1hcmNzIC1mdGVzdC1jb3ZlcmFnZX1cCmRpZmYgLS1naXQgYS9zcmNwa2dzL2djYy9wYXRj aGVzL2xpYmZmaV9nbnVsaW51eC5wYXRjaCBiL3NyY3BrZ3MvZ2NjL3BhdGNoZXMvbGliZmZpX2du dWxpbnV4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ODI0NWJkNWJlMWEu LjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2djYy9wYXRjaGVzL2xpYmZmaV9nbnVsaW51eC5w YXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLS0tLSBhL2xpYmZmaS9zcmMvY2xv c3VyZXMuYwotKysrIGIvbGliZmZpL3NyYy9jbG9zdXJlcy5jCi1AQCAtMzQsNyArMzQsNyBAQAot ICNpbmNsdWRlIDxmZmlfY29tbW9uLmg+Ci0KLSAjaWYgIUZGSV9NTUFQX0VYRUNfV1JJVCAmJiAh RkZJX0VYRUNfVFJBTVBPTElORV9UQUJMRQotLSMgaWYgX19nbnVfbGludXhfXyAmJiAhZGVmaW5l ZChfX0FORFJPSURfXykKLSsjIGlmIF9fbGludXhfXyAmJiAhZGVmaW5lZChfX0FORFJPSURfXykK LSAvKiBUaGlzIG1hY3JvIGluZGljYXRlcyBpdCBtYXkgYmUgZm9yYmlkZGVuIHRvIG1hcCBhbm9u eW1vdXMgbWVtb3J5Ci0gICAgd2l0aCBib3RoIHdyaXRlIGFuZCBleGVjdXRlIHBlcm1pc3Npb24u ICBDb2RlIGNvbXBpbGVkIHdoZW4gdGhpcwotICAgIG9wdGlvbiBpcyBkZWZpbmVkIHdpbGwgYXR0 ZW1wdCB0byBtYXAgc3VjaCBwYWdlcyBvbmNlLCBidXQgaWYgaXQKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvZ2NjL3BhdGNoZXMvbGliZ2NjLWlibTEyOC1uby10YWcucGF0Y2ggYi9zcmNwa2dzL2djYy9w YXRjaGVzL2xpYmdjYy1pYm0xMjgtbm8tdGFnLnBhdGNoCmluZGV4IGJkZjVjNzVkOTE3ZC4uMjZk ODAzNTZhZDBkIDEwMDY0NAotLS0gYS9zcmNwa2dzL2djYy9wYXRjaGVzL2xpYmdjYy1pYm0xMjgt bm8tdGFnLnBhdGNoCisrKyBiL3NyY3BrZ3MvZ2NjL3BhdGNoZXMvbGliZ2NjLWlibTEyOC1uby10 YWcucGF0Y2gKQEAgLTI5LDEwICsyOSwxNCBAQCBkaWZmIC0tZ2l0IGEvbGliZ2NjL2NvbmZpZy9y czYwMDAvdC1saW51eCBiL2xpYmdjYy9jb25maWcvcnM2MDAwL3QtbGludXgKIGluZGV4IDRmNmQ0 YzQuLmZhOTNiYjYgMTAwNjQ0CiAtLS0gYS9saWJnY2MvY29uZmlnL3JzNjAwMC90LWxpbnV4CiAr KysgYi9saWJnY2MvY29uZmlnL3JzNjAwMC90LWxpbnV4Ci1AQCAtMSwzICsxLDMgQEAKK0BAIC0x LDYgKzEsNiBAQAogIFNITElCX01BUEZJTEVTICs9ICQoc3JjZGlyKS9jb25maWcvcnM2MDAwL2xp YmdjYy1nbGliYy52ZXIKICAKLS1IT1NUX0xJQkdDQzJfQ0ZMQUdTICs9IC1tbG9uZy1kb3VibGUt MTI4IC1tbm8tbWluaW1hbC10b2MKLStIT1NUX0xJQkdDQzJfQ0ZMQUdTICs9IC1tbG9uZy1kb3Vi bGUtMTI4IC1tbm8tZ251LWF0dHJpYnV0ZSAtbW5vLW1pbmltYWwtdG9jCistSE9TVF9MSUJHQ0My X0NGTEFHUyArPSAtbWxvbmctZG91YmxlLTEyOAorK0hPU1RfTElCR0NDMl9DRkxBR1MgKz0gLW1s b25nLWRvdWJsZS0xMjggLW1uby1nbnUtYXR0cmlidXRlCisgCisgIyBUaGlzIGlzIGEgd2F5IG9m IHNlbGVjdGluZyAtbWNtb2RlbD1zbWFsbCBmb3IgcHBjNjQsIHdoaWNoIGdpdmVzCisgIyBzbWFs bGVyIGFuZCBmYXN0ZXIgbGliZ2NjIGNvZGUuICBEaXJlY3RseSBzcGVjaWZ5aW5nIC1tY21vZGVs PXNtYWxsCisKIC0tIAogMi4yNC4wCmRpZmYgLS1naXQgYS9zcmNwa2dzL2djYy9wYXRjaGVzL21p cHMtc2dpZGVmc19oLnBhdGNoIGIvc3JjcGtncy9nY2MvcGF0Y2hlcy9taXBzLXNnaWRlZnNfaC5w YXRjaAppbmRleCBkZGRmZTEwZThjMDYuLmNkMGFlN2EzODBkZiAxMDA2NDQKLS0tIGEvc3JjcGtn cy9nY2MvcGF0Y2hlcy9taXBzLXNnaWRlZnNfaC5wYXRjaAorKysgYi9zcmNwa2dzL2djYy9wYXRj aGVzL21pcHMtc2dpZGVmc19oLnBhdGNoCkBAIC0zLDcgKzMsNyBAQAogQEAgLTQyLDcgKzQyLDcg QEAKICAjZGVmaW5lIF9NSVBTX1NJTV9OQUJJMzIJMgogICNkZWZpbmUgX01JUFNfU0lNX0FCSTY0 CQkzCi0gI2VsaWYgIWRlZmluZWQoX19PcGVuQlNEX18pCisgI2VsaWYgIWRlZmluZWQoX19PcGVu QlNEX18pICYmICFkZWZpbmVkKF9fRnJlZUJTRF9fKQogLSMgaW5jbHVkZSA8c2dpZGVmcy5oPgog KyMgaW5jbHVkZSA8YXNtL3NnaWRlZnMuaD4KICAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv Z2NjL3RlbXBsYXRlIGIvc3JjcGtncy9nY2MvdGVtcGxhdGUKaW5kZXggYWIzNjQzZGU0Zjk4Li5h MjBhZjdjMGVmMmUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ2NjL3RlbXBsYXRlCisrKyBiL3NyY3Br Z3MvZ2NjL3RlbXBsYXRlCkBAIC0zLDE4ICszLDE0IEBACiAjIHdoaWNoIHVzZSB0aGUgdmVyc2lv biBudW1iZXIuCiAKIHBrZ25hbWU9Z2NjCi0jIHdlIGFyZSB1c2luZyBhIDEwLXN0YWJsZSBnaXQg c25hcHNob3QgYWxwaW5lIGlzIHVzaW5nIGluIG9yZGVyCi0jIHRvIGdldCByZWdyZXNzaW9uIGZp eGVzIG5vdCB5ZXQgaW5jb3Jwb3JhdGUgaW50byBhIHN0YWJsZSByZWxlYXNlCi0jIGl0IHNob3Vs ZCBiZSBwb3NzaWJsZSB0byBzd2l0Y2ggYmFjayB0byBzdGFibGUgd2l0aCAxMC4zIG9yIDExCi12 ZXJzaW9uPTEwLjIuMXByZTEKLXJldmlzaW9uPTMKLV9wYXRjaHZlcj0iJHt2ZXJzaW9uJXByZSp9 IgotX21pbm9ydmVyPSIke19wYXRjaHZlciUuKn0iCit2ZXJzaW9uPTEyLjIuMAorcmV2aXNpb249 MQorX21pbm9ydmVyPSIke3ZlcnNpb24lLip9IgogX21ham9ydmVyPSIke19taW5vcnZlciUuKn0i Ci1fZ21wX3ZlcnNpb249Ni4yLjAKK19nbXBfdmVyc2lvbj02LjIuMQogX21wZnJfdmVyc2lvbj00 LjEuMAotX21wY192ZXJzaW9uPTEuMS4wCi1faXNsX3ZlcnNpb249MC4yMQorX21wY192ZXJzaW9u PTEuMi4xCitfaXNsX3ZlcnNpb249MC4yNAogY3JlYXRlX3dya3NyYz15ZXMKIHNob3J0X2Rlc2M9 IkdOVSBDb21waWxlciBDb2xsZWN0aW9uIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRv eEB2b2lkbGludXgub3JnPiIKQEAgLTIyLDE2ICsxOCwxNiBAQCBob21lcGFnZT0iaHR0cDovL2dj Yy5nbnUub3JnIgogbGljZW5zZT0iR0ZETC0xLjItb3ItbGF0ZXIsIEdQTC0zLjAtb3ItbGF0ZXIs IExHUEwtMi4xLW9yLWxhdGVyIgogIyAqLW11c2wgYnVpbGRlcnMgaGF2ZSBpc3N1ZXMgZmV0Y2hp bmcgaHR0cHM6Ly9mdHAuZ251Lm9yZy9nbnUvbXBjL21wYy0xLjEuMC50YXIuZ3oKIGRpc3RmaWxl cz0iCi0gaHR0cHM6Ly9kZXYuYWxwaW5lbGludXgub3JnL35uZW5vbG9kL2djYy0ke3ZlcnNpb24v cHJlL19wcmV9LnRhci54egorICR7R05VX1NJVEV9L2djYy9nY2MtJHt2ZXJzaW9ufS9nY2MtJHt2 ZXJzaW9ufS50YXIueHoKICBodHRwczovL2dtcGxpYi5vcmcvZG93bmxvYWQvZ21wL2dtcC0ke19n bXBfdmVyc2lvbn0udGFyLnh6CiAgJHtHTlVfU0lURX0vbXBmci9tcGZyLSR7X21wZnJfdmVyc2lv bn0udGFyLnh6CiAgJHtHTlVfU0lURX0vbXBjL21wYy0ke19tcGNfdmVyc2lvbn0udGFyLmd6CiAg JHtTT1VSQ0VGT1JHRV9TSVRFfS9saWJpc2wvaXNsLSR7X2lzbF92ZXJzaW9ufS50YXIuYnoyIgot Y2hlY2tzdW09Ijc3MmNmZDVkMzBlYjljYzVhOTk2ZmVjOWJhOGNkY2I0NWQzN2RmMWM5YjU3NzA2 MTAxMDNiODE0YjczMmM1OTAKLSAyNThlNmNkNTFiM2ZiZGZjMTg1YzcxNmQ1NWY4MmMwOGFmZjU3 ZGYwYzZmYmQxNDNjZjZlZDU2MTI2N2ExNTI2CitjaGVja3N1bT0iZTU0OWNmOWNmMzU5NGEwMGUy N2I2NTg5ZDQzMjJkNzBlMDcyMGNkZDIxM2YzOWJlYjQxODFlMDY5MjYyMzBmZgorIGZkNDgyOTkx MmNkZGQxMmY4NDE4MWMzNDUxY2M3NTJiZTIyNDY0M2U4N2ZhYzQ5N2I2OWVkZGRhZGM0OWI0ZjIK ICAwYzk4YTNmMTczMmZmNmNhNGVhNjkwNTUyMDc5ZGE5YzU5Nzg3MmQzMGU5NmVjMjg0MTRlZTIz Yzk1NTU4YTdmCi0gNjk4NWM1MzgxNDNjMTIwOGRjYjFhYzQyY2VkYWQ2ZmY1MmUyNjdiNDdlNWY5 NzAxODNhM2U3NTEyNWI0M2MyZQotIGQxOGNhMTFmOGFkMWEzOWFiNmQwM2QzZGNiMzM2NWFiNDE2 NzIwZmNiNjViNDJkNjlmMzRmNTFiZjBhMGU4NTkiCisgMTc1MDNkMmMzOTVkZmNmMTA2YjYyMmRj MTQyNjgzYzExOTk0MzFkMDk1MzY3YzZhYWNiYTZlZWMzMDM0MDQ1OQorIGZjZjc4ZGQ5NjU2YzEw ZWI4Y2Y5ZmJkNWY1OWEwYjZiMDEzODYyMDVmZTE5MzRiM2IyODdhMGExODk4MTQ1YzAiCiAKIG5v cGllPXllcwogbGliMzJkaXNhYmxlZD15ZXMKQEAgLTUyLDggKzQ4LDExIEBAIGlmIFsgIiRDSFJP T1RfUkVBRFkiIF07IHRoZW4KIAlob3N0bWFrZWRlcGVuZHM9InRhciB0ZXhpbmZvIHBlcmwgZmxl eCIKIGVsc2UKIAlfaGF2ZV9nY2Nnbz1ubworCSMgbGlienN0ZCBmYWlscyB0byBsaW5rIGluIGJv b3RzdHJhcCB3aXRoIGdsaWJjIDIuMzYKKwkjIHdoZW4gemxpYiBoYXMgYmVlbiBjb21waWxlZCB3 aXRoIGdsaWJjIDIuMzIuCisJTERGTEFHUz0iLWx6c3RkIC1wdGhyZWFkIgogZmkKLW1ha2VkZXBl bmRzPSJ6bGliLWRldmVsIgorbWFrZWRlcGVuZHM9InpsaWItZGV2ZWwgbGlienN0ZC1kZXZlbCIK IGRlcGVuZHM9ImJpbnV0aWxzIGxpYmdjYy1kZXZlbC0ke3ZlcnNpb259XyR7cmV2aXNpb259CiAg bGlic3RkYysrLWRldmVsLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0gbGlic3NwLWRldmVsLSR7dmVy c2lvbn1fJHtyZXZpc2lvbn0iCiBjaGVja2RlcGVuZHM9ImRlamFnbnUiCkBAIC03MCwxMyArNjks MTMgQEAgaWYgWyAiJGJ1aWxkX29wdGlvbl9nbmF0Ym9vdCIgXTsgdGhlbgogCWNhc2UgIiRYQlBT X1RBUkdFVF9NQUNISU5FIiBpbgogCXg4Nl82NCkKIAkJX2duYXRfdGFyYmFsbD0iZ25hdC1ncGwt MjAxNy14ODZfNjQtbGludXgtYmluLnRhci5neiIKLQkJZGlzdGZpbGVzKz0iIGh0dHA6Ly9taXJy b3JzLmNkbi5hZGFjb3JlLmNvbS9hcnQvNTkxYzZkODBjN2E0NDdhZjJkZWVkMWQ3PiRfZ25hdF90 YXJiYWxsIgorCQlkaXN0ZmlsZXMrPSIgaHR0cHM6Ly9jb21tdW5pdHkuZG93bmxvYWQuYWRhY29y ZS5jb20vdjEvOTY4MmUyZTFmMmYyMzJjZTAzZmUyMWQ3N2IxNGMzN2EwZGU1NjQ5Yj9maWxlbmFt ZT0kX2duYXRfdGFyYmFsbD4kX2duYXRfdGFyYmFsbCIKIAkJY2hlY2tzdW0rPSIgYjk0MmJjYWMy MGRlYTM5NzQ4YjM5ZjhiNjI0ZDk2MTlmNjBhOGRlZTJlODE5NWRiZTM4MjljODM1YjA5NTZlNiIK IAkJYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnbmF0Ym9vdCIKIAkJOzsKIAlpNjg2KQogCQlfZ25h dF90YXJiYWxsPSJnbmF0LWdwbC0yMDE0LXg4Ni1saW51eC1iaW4udGFyLmd6IgotCQlkaXN0Zmls ZXMrPSIgaHR0cDovL21pcnJvcnMuY2RuLmFkYWNvcmUuY29tL2FydC81NjRiM2U5ZGM4ZTE5NmIw NDBmYmUyNDg+JF9nbmF0X3RhcmJhbGwiCisJCWRpc3RmaWxlcys9IiBodHRwczovL2NvbW11bml0 eS5kb3dubG9hZC5hZGFjb3JlLmNvbS92MS9jNWU5ZTZmZGZmNWNiNzdlZDkwY2Y4YzYyNTM2NjUz ZTI3YzBiZWQ2P2ZpbGVuYW1lPSRfZ25hdF90YXJiYWxsPiRfZ25hdF90YXJiYWxsIgogCQljaGVj a3N1bSs9IiAzYjY5MzUxMGY1ZDIyYTI0MGFiYjMwMzQ5MzRjMWFkYmQ4MGNjZDZlNGY2MWE0ZjQ5 MWNjNDA4ZmRmZDljMDQyIgogCQlidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImduYXRib290IgogCQk7 OwpAQCAtMTU1LDggKzE1NCw4IEBAIGlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgogZmkKIAog cG9zdF9leHRyYWN0KCkgewotCW12IGdjYy0ke3ZlcnNpb24vcHJlL19wcmV9LyogZ2NjLSR7dmVy c2lvbi9wcmUvX3ByZX0vLj8/KiAuCi0Jcm1kaXIgZ2NjLSR7dmVyc2lvbi9wcmUvX3ByZX0KKwlt diBnY2MtJHt2ZXJzaW9ufS8qIGdjYy0ke3ZlcnNpb259Ly4/PyogLgorCXJtZGlyIGdjYy0ke3Zl cnNpb259CiAJbXYgZ21wLSR7X2dtcF92ZXJzaW9ufSBnbXAKIAltdiBtcGZyLSR7X21wZnJfdmVy c2lvbn0gbXBmcgogCW12IG1wYy0ke19tcGNfdmVyc2lvbn0gbXBjCkBAIC0xODYsOSArMTg1LDkg QEAgcHJlX2NvbmZpZ3VyZSgpIHsKIAlzZWQgLWkgJ3NAXC4vZml4aW5jXC5zaEAtYyB0cnVlQCcg Z2NjL01ha2VmaWxlLmluCiAKIAlpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSBtdXNsIF07IHRo ZW4KLQkJcGF0Y2ggLXAxIC1pICR7RklMRVNESVJ9L2xpYmduYXJsLW11c2wucGF0Y2gKLQkJcGF0 Y2ggLXAxIC1pICR7RklMRVNESVJ9L2xpYnNzcC1tdXNsLnBhdGNoCi0JCXBhdGNoIC1wMSAtaSAk e0ZJTEVTRElSfS9nY2Nnby1tdXNsLnBhdGNoCisJCWZvciBwIGluICR7RklMRVNESVJ9LyotbXVz bC5wYXRjaDsgZG8KKwkJCXBhdGNoIC1wMSAtaSAkcAorCQlkb25lCiAJZmkKIH0KIGRvX2NvbmZp Z3VyZSgpIHsKQEAgLTM0MywxNiArMzQyLDE2IEBAIGRvX2luc3RhbGwoKSB7CiAKIAkjIE1ha2Ug dmVyc2lvbiBhIHN5bWxpbmsgb2YgbWFqb3IgdmVyc2lvbiB0byBtYWtlIGFsbCB2ZXJzaW9ucwog CSMgZnJvbSB0aGUgc2FtZSBzZXJpZXMgd29yayBhdXRvbWFnaWNhbGx5LgotCW12ICR7REVTVERJ Un0vdXNyL2xpYi9nY2MvJHtfdHJpcGxldH0vJHtfcGF0Y2h2ZXJ9IFwKKwltdiAke0RFU1RESVJ9 L3Vzci9saWIvZ2NjLyR7X3RyaXBsZXR9LyR7dmVyc2lvbn0gXAogCQkke0RFU1RESVJ9L3Vzci9s aWIvZ2NjLyR7X3RyaXBsZXR9LyR7X21pbm9ydmVyfQogCWxuIC1zZnIgJHtERVNURElSfS91c3Iv bGliL2djYy8ke190cmlwbGV0fS8ke19taW5vcnZlcn0gXAotCQkke0RFU1RESVJ9L3Vzci9saWIv Z2NjLyR7X3RyaXBsZXR9LyR7X3BhdGNodmVyfQorCQkke0RFU1RESVJ9L3Vzci9saWIvZ2NjLyR7 X3RyaXBsZXR9LyR7dmVyc2lvbn0KIAogCSMgRGl0dG8gZm9yIGMrKyBoZWFkZXJzLgotCW12ICR7 REVTVERJUn0vdXNyL2luY2x1ZGUvYysrLyR7X3BhdGNodmVyfSBcCisJbXYgJHtERVNURElSfS91 c3IvaW5jbHVkZS9jKysvJHt2ZXJzaW9ufSBcCiAJCSR7REVTVERJUn0vdXNyL2luY2x1ZGUvYysr LyR7X21pbm9ydmVyfQogCWxuIC1zZnIgJHtERVNURElSfS91c3IvaW5jbHVkZS9jKysvJHtfbWlu b3J2ZXJ9IFwKLQkJJHtERVNURElSfS91c3IvaW5jbHVkZS9jKysvJHtfcGF0Y2h2ZXJ9CisJCSR7 REVTVERJUn0vdXNyL2luY2x1ZGUvYysrLyR7dmVyc2lvbn0KIAogCSMgY2Mgc3ltbGluawogCWxu IC1zZnIgJHtERVNURElSfS91c3IvYmluL2djYyAke0RFU1RESVJ9L3Vzci9iaW4vY2MKQEAgLTM2 MSw3ICszNjAsNyBAQCBkb19pbnN0YWxsKCkgewogCiAJIyBsdG8gcGx1Z2luIHN5bWxpbmsKIAl2 bWtkaXIgdXNyL2xpYi9iZmQtcGx1Z2lucwotCWxuIC1zZnIgJHtERVNURElSfS91c3IvbGliL2dj Yy8ke190cmlwbGV0fS8ke19wYXRjaHZlcn0vbGlibHRvX3BsdWdpbi5zbyBcCisJbG4gLXNmciAk e0RFU1RESVJ9L3Vzci9saWIvZ2NjLyR7X3RyaXBsZXR9LyR7dmVyc2lvbn0vbGlibHRvX3BsdWdp bi5zbyBcCiAJCSR7REVTVERJUn0vdXNyL2xpYi9iZmQtcGx1Z2lucwogCiAJIyBSZW1vdmUgImZp eGVkIiBoZWFkZXIKQEAgLTM3MiwxMyArMzcxLDkgQEAgZG9faW5zdGFsbCgpIHsKIAlybSAtZiAk e0RFU1RESVJ9L3Vzci9saWIvbGliZmZpKgogCXJtIC1mICR7REVTVERJUn0vdXNyL3NoYXJlL21h bi9tYW4zL2ZmaSoKIAotCSMgUmVtb3ZlIGFsbCBweXRob24gc2NyaXB0cyBpbiBsaWJkaXIuCi0J cm0gLWYgJHtERVNURElSfS91c3IvbGliLyoucHkKLQotCSMgUmVtb3ZlIG1vcmUgcHl0aG9uIHN0 dWZmLgotCWlmIFsgLWQgJHtERVNURElSfS91c3Ivc2hhcmUvZ2NjLSR7X3BhdGNodmVyfS9weXRo b24gXTsgdGhlbgotCQlybSAtcmYgJHtERVNURElSfS91c3Ivc2hhcmUvZ2NjLSR7X3BhdGNodmVy fS9weXRob24KLQlmaQorCSMgTW92ZSBsaWJzdGRjKysgZ2RiIGhlbHBlcnMgdG8gbG9jYXRpb24g d2hlcmUgZ2RiIGNhbiBhdXRvbG9hZCB0aGVtCisJbWtkaXIgLXAgJHtERVNURElSfS91c3Ivc2hh cmUvZ2RiL2F1dG8tbG9hZC91c3IvbGliCisJbXYgJHtERVNURElSfS91c3IvbGliLyoucHkgJHtE RVNURElSfS91c3Ivc2hhcmUvZ2RiL2F1dG8tbG9hZC91c3IvbGliCiAKIAkjIEluc3RhbGwgYzg5 IGFuZCBjOTkgd3JhcHBlcnMgYW5kIGl0cyBtYW5wYWdlcywgZnJvbSBOZXRCU0QuCiAJZm9yIGYg aW4gYzg5IGM5OTsgZG8KQEAgLTM5Nyw3ICszOTIsNyBAQCBnY2MtYWRhX3BhY2thZ2UoKSB7CiAJ ZGVwZW5kcz0iZ2NjPj0ke19taW5vcnZlcn0gbGliYWRhLWRldmVsPj0ke19taW5vcnZlcn0iCiAJ c2hvcnRfZGVzYys9IiAtIEFkYSBjb21waWxlciBmcm9udGVuZCIKIAlwa2dfaW5zdGFsbCgpIHsK LQkJZm9yIGYgaW4gZ25hdHssYmluZCxjaG9wLGNsZWFuLGZpbmQsa3IsbGluayxscyxtYWtlLG5h bWUscHJlcCx4cmVmfTsgZG8KKwkJZm9yIGYgaW4gZ25hdHssYmluZCxjaG9wLGNsZWFuLGtyLGxp bmssbHMsbWFrZSxuYW1lLHByZXB9OyBkbwogCQkJdm1vdmUgdXNyL2Jpbi8ke2Z9CiAJCWRvbmUK IAl9CkBAIC00NTAsNyArNDQ1LDcgQEAgZ2NjLWZvcnRyYW5fcGFja2FnZSgpIHsKIAkJaWYgWyAi JENST1NTX0JVSUxEIiBdOyB0aGVuCiAJCQkjIEEgbnVtYmVyIG9mIE9NUCBtb2R1bGVzIGFyZSBu b3QgYnVpbHQgd2hlbiBjcm9zcwogCQkJIyBjb21waWxpbmcgZ2NjLiBDb3B5IHRoZW0gZnJvbSB0 aGUgY3Jvc3MgY29tcGlsZXIuCi0JCQlsb2NhbCBzcmM9Ii91c3IvbGliL2djYy8ke190cmlwbGV0 fS8ke19wYXRjaHZlcn0vZmluY2x1ZGUiCisJCQlsb2NhbCBzcmM9Ii91c3IvbGliL2djYy8ke190 cmlwbGV0fS8ke3ZlcnNpb259L2ZpbmNsdWRlIgogCQkJbG9jYWwgZHN0PSJ1c3IvbGliL2djYy8k e190cmlwbGV0fS8ke19taW5vcnZlcn0vZmluY2x1ZGUiCiAJCQlmb3IgZiBpbiBvbXBfbGliLmY5 MCBvbXBfbGliLmggb21wX2xpYi5tb2Qgb21wX2xpYl9raW5kcy5tb2QgXAogCQkJCW9wZW5hY2Mu ZjkwIG9wZW5hY2MubW9kIG9wZW5hY2Nfa2luZHMubW9kIG9wZW5hY2NfbGliLmg7IGRvCkBAIC01 MTcsNyArNTEyLDcgQEAgbGliZ2ZvcnRyYW5fcGFja2FnZSgpIHsKIAlzaG9ydF9kZXNjKz0iIC0g Rm9ydHJhbiBsaWJyYXJ5IgogCXBrZ19pbnN0YWxsKCkgewogCQl2bW92ZSAidXNyL2xpYi9saWJn Zm9ydHJhbi5zbyoiCi0JCXZsaWNlbnNlICR7d3Jrc3JjfS9DT1BZSU5HLlJVTlRJTUUgUlVOVElN RS5MSUJSQVJZLkVYQ0VQVElPTgorCQl2bGljZW5zZSBDT1BZSU5HLlJVTlRJTUUgUlVOVElNRS5M SUJSQVJZLkVYQ0VQVElPTgogCX0KIH0KIApAQCAtNTM4LDcgKzUzMyw3IEBAIGxpYmdvX3BhY2th Z2UoKSB7CiAJbm9zdHJpcD15ZXMKIAlwa2dfaW5zdGFsbCgpIHsKIAkJdm1vdmUgInVzci9saWIv bGliZ28uc28qIgotCQl2bGljZW5zZSAke3dya3NyY30vQ09QWUlORy5SVU5USU1FIFJVTlRJTUUu TElCUkFSWS5FWENFUFRJT04KKwkJdmxpY2Vuc2UgQ09QWUlORy5SVU5USU1FIFJVTlRJTUUuTElC UkFSWS5FWENFUFRJT04KIAl9CiB9CiAKQEAgLTU1NCw3ICs1NDksNyBAQCBsaWJvYmpjX3BhY2th Z2UoKSB7CiAJc2hvcnRfZGVzYys9IiAtIE9iamVjdGl2ZS1DIGxpYnJhcnkiCiAJcGtnX2luc3Rh bGwoKSB7CiAJCXZtb3ZlICJ1c3IvbGliL2xpYm9iamMuc28qIgotCQl2bGljZW5zZSAke3dya3Ny Y30vQ09QWUlORy5SVU5USU1FIFJVTlRJTUUuTElCUkFSWS5FWENFUFRJT04KKwkJdmxpY2Vuc2Ug Q09QWUlORy5SVU5USU1FIFJVTlRJTUUuTElCUkFSWS5FWENFUFRJT04KIAl9CiB9CiAKQEAgLTU3 Myw3ICs1NjgsNyBAQCBsaWJxdWFkbWF0aF9wYWNrYWdlKCkgewogCXNob3J0X2Rlc2MrPSIgLSBx dWFkbWF0aCBsaWJyYXJ5IgogCXBrZ19pbnN0YWxsKCkgewogCQl2bW92ZSAidXNyL2xpYi9saWJx dWFkbWF0aC5zbyoiCi0JCXZsaWNlbnNlICR7d3Jrc3JjfS9DT1BZSU5HLlJVTlRJTUUgUlVOVElN RS5MSUJSQVJZLkVYQ0VQVElPTgorCQl2bGljZW5zZSBDT1BZSU5HLlJVTlRJTUUgUlVOVElNRS5M SUJSQVJZLkVYQ0VQVElPTgogCX0KIH0KIApAQCAtNjE1LDcgKzYxMCw3IEBAIGxpYmdjY19wYWNr YWdlKCkgewogCW5vdmVyaWZ5cmRlcHM9eWVzCiAJcGtnX2luc3RhbGwoKSB7CiAJCXZtb3ZlICJ1 c3IvbGliL2xpYmdjY19zLnNvKiIKLQkJdmxpY2Vuc2UgJHt3cmtzcmN9L0NPUFlJTkcuUlVOVElN RSBSVU5USU1FLkxJQlJBUlkuRVhDRVBUSU9OCisJCXZsaWNlbnNlIENPUFlJTkcuUlVOVElNRSBS VU5USU1FLkxJQlJBUlkuRVhDRVBUSU9OCiAJfQogfQogCkBAIC02NDYsNyArNjQxLDcgQEAgbGli Z29tcF9wYWNrYWdlKCkgewogCXNob3J0X2Rlc2MrPSIgLSBPcGVuTVAgdjQuMCBsaWJyYXJ5Igog CXBrZ19pbnN0YWxsKCkgewogCQl2bW92ZSAidXNyL2xpYi9saWJnb21wKi5zby4qIgotCQl2bGlj ZW5zZSAke3dya3NyY30vQ09QWUlORy5SVU5USU1FIFJVTlRJTUUuTElCUkFSWS5FWENFUFRJT04K KwkJdmxpY2Vuc2UgQ09QWUlORy5SVU5USU1FIFJVTlRJTUUuTElCUkFSWS5FWENFUFRJT04KIAl9 CiB9CiAKQEAgLTcwMSw3ICs2OTYsNyBAQCBsaWJzc3BfcGFja2FnZSgpIHsKIAlzaG9ydF9kZXNj Kz0iIC0gU1NQIChTdGFja1NtYXNoaW5nUHJvdGVjdGlvbikgbGlicmFyeSIKIAlwa2dfaW5zdGFs bCgpIHsKIAkJdm1vdmUgInVzci9saWIvbGlic3NwLnNvKiIKLQkJdmxpY2Vuc2UgJHt3cmtzcmN9 L0NPUFlJTkcuUlVOVElNRSBSVU5USU1FLkxJQlJBUlkuRVhDRVBUSU9OCisJCXZsaWNlbnNlIENP UFlJTkcuUlVOVElNRSBSVU5USU1FLkxJQlJBUlkuRVhDRVBUSU9OCiAJfQogfQogCkBAIC03MTgs NyArNzEzLDkgQEAgbGlic3RkYysrLWRldmVsX3BhY2thZ2UoKSB7CiBsaWJzdGRjKytfcGFja2Fn ZSgpIHsKIAlzaG9ydF9kZXNjKz0iIC0gU3RhbmRhcmQgQysrIExpYnJhcnkiCiAJcGtnX2luc3Rh bGwoKSB7CisJCXZtb3ZlIHVzci9zaGFyZS9nZGIKKwkJdm1vdmUgdXNyL3NoYXJlL2djYy0ke3Zl cnNpb259L3B5dGhvbgogCQl2bW92ZSAidXNyL2xpYi9saWJzdGRjKysuc28qIgotCQl2bGljZW5z ZSAke3dya3NyY30vQ09QWUlORy5SVU5USU1FIFJVTlRJTUUuTElCUkFSWS5FWENFUFRJT04KKwkJ dmxpY2Vuc2UgQ09QWUlORy5SVU5USU1FIFJVTlRJTUUuTElCUkFSWS5FWENFUFRJT04KIAl9CiB9 CgpGcm9tIDNiYWZkY2EzOGFkMTRlMWY0MGRmMjFkY2VhOWQ3YTljYzhkOGI4ZjMgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IG9yZW82MzkgPG9yZW82MzkxQGdtYWlsLmNvbT4KRGF0ZTog U2F0LCA1IE5vdiAyMDIyIDExOjMzOjExIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwNC8zN10gbGli dG9vbDogcmVidWlsZCBmb3IgZ2NjIDEyCgotLS0KIHNyY3BrZ3MvbGlidG9vbC90ZW1wbGF0ZSB8 IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvbGlidG9vbC90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGlidG9vbC90ZW1w bGF0ZQppbmRleCBmYzVjNTNhOWMzZTkuLmFlYmFkOTI5NGVlZiAxMDA2NDQKLS0tIGEvc3JjcGtn cy9saWJ0b29sL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbGlidG9vbC90ZW1wbGF0ZQpAQCAtMSw3 ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2xpYnRvb2wnCiBwa2duYW1lPWxpYnRvb2wK IHZlcnNpb249Mi40LjcKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPWdudS1j b25maWd1cmUKIGhvc3RtYWtlZGVwZW5kcz0idGV4aW5mbyBwZXJsIGF1dG9tYWtlIGhlbHAybWFu IHh6IgogZGVwZW5kcz0idGFyIHNlZCIKCkZyb20gMWU3ZDFiN2UzYmEzZTVkNTZjOTA0YjMwMmJk OGY2YzA2YWNmMTRlOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogb3JlbzYzOSA8b3Jl bzYzOTFAZ21haWwuY29tPgpEYXRlOiBTYXQsIDUgTm92IDIwMjIgMTE6MzM6MTIgLTA3MDAKU3Vi amVjdDogW1BBVENIIDA1LzM3XSBsaWJpYmVydHktZGV2ZWw6IHVwZGF0ZSB0byAyMDIyMDcxMy4K Ci0tLQogc3JjcGtncy9saWJpYmVydHktZGV2ZWwvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBj aGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9saWJpYmVydHktZGV2ZWwvdGVtcGxhdGUgYi9zcmNwa2dzL2xpYmliZXJ0eS1kZXZlbC90 ZW1wbGF0ZQppbmRleCA3ZTAxYmJiODUxZmQuLmQ5NjE4ZTM4MDZiYSAxMDA2NDQKLS0tIGEvc3Jj cGtncy9saWJpYmVydHktZGV2ZWwvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9saWJpYmVydHktZGV2 ZWwvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdsaWJpYmVy dHktZGV2ZWwnCiBwa2duYW1lPWxpYmliZXJ0eS1kZXZlbAotdmVyc2lvbj0yMDIxMDEwNgordmVy c2lvbj0yMDIyMDcxMwogcmV2aXNpb249MQogYnVpbGRfd3Jrc3JjPWxpYmliZXJ0eQogYnVpbGRf c3R5bGU9Z251LWNvbmZpZ3VyZQpAQCAtMTAsNyArMTAsNyBAQCBtYWludGFpbmVyPSJPcnBoYW5l ZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTMuMC1vci1sYXRlciIKIGhv bWVwYWdlPSJodHRwOi8vZ2NjLmdudS5vcmcvIgogZGlzdGZpbGVzPSJodHRwOi8vZGViLmRlYmlh bi5vcmcvZGViaWFuL3Bvb2wvbWFpbi9saWJpL2xpYmliZXJ0eS9saWJpYmVydHlfJHt2ZXJzaW9u fS5vcmlnLnRhci54eiIKLWNoZWNrc3VtPTlkZjE1M2Q2OTkxNGMwZjVhOTE0NWUwYWJiYjI0OGU3 MmZlZWJhYjY3NzdjNzEyYTMwZjFjM2I4YzE5MDQ3ZDQKK2NoZWNrc3VtPWI1OTA1MGY0OGM4YTBm OWM5ZTZmYmE1ZDE3YzdhNGYxMWQxMzI5ZGUwYzBkY2E3MzMxYjc2N2E2ZDJiYmU4ZDkKIGNvbmZs aWN0cz0iYmludXRpbHMtZGV2ZWw8PTIuMzUuMV8zIgogCiBDRkxBR1M9Ii1mUElDIgoKRnJvbSAy MTRjZWJmZTQxMjcxZWI1YTc5YzI0NDUxYzYxM2U4YTg1MWY5Y2YwIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDxvcmVvNjM5MUBnbWFpbC5jb20+CkRhdGU6IFNhdCwgNSBO b3YgMjAyMiAxMTozMzoxMiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDYvMzddIGdsaWJjOiB1cGRh dGUgdG8gMi4zNi4KCi0tLQogY29tbW9uL3NobGlicyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgNjAgKy0KIC4uLmUtaGFzaC1zdHlsZS1ib3RoLWZvci1idWlsZGluZy1nbGli Yy5wYXRjaCB8ICAgIDUxICsKIHNyY3BrZ3MvZ2xpYmMvcGF0Y2hlcy9naXQtdXBkYXRlcy5wYXRj aCAgICAgICB8IDEwODcyICsrKysrKysrKysrKysrKysKIC4uLi9nbGliYy9wYXRjaGVzL2dsaWJj LWMtdXRmOC1sb2NhbGUucGF0Y2ggICB8ICAgMjg2IC0KIHNyY3BrZ3MvZ2xpYmMvdGVtcGxhdGUg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDYyICstCiA1IGZpbGVzIGNoYW5nZWQsIDEwOTc4 IGluc2VydGlvbnMoKyksIDM1MyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2dsaWJjL3BhdGNoZXMvMDAwMS1SZXZlcnQtRG8tbm90LXVzZS1oYXNoLXN0eWxlLWJvdGgt Zm9yLWJ1aWxkaW5nLWdsaWJjLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9nbGli Yy9wYXRjaGVzL2dpdC11cGRhdGVzLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9n bGliYy9wYXRjaGVzL2dsaWJjLWMtdXRmOC1sb2NhbGUucGF0Y2gKCmRpZmYgLS1naXQgYS9jb21t b24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCAwNGNiYWRlNTI0NjguLmE4YzNhMjQ0Zjlh YyAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC0xNywz OCArMTcsMzggQEAKICMgb25lIChvcmRlciB0b3AtPmJvdHRvbSkgaXMgcHJlZmVycmVkIG92ZXIg dGhlIG5leHQgb25lcy4KICMKIGxpYmMuc28gbXVzbC0xLjEuMjRfNwotbGliYy5zby42IGdsaWJj LTIuMzJfMQotbGlibS5zby42IGdsaWJjLTIuMzJfMQotbGlicHRocmVhZC5zby4wIGdsaWJjLTIu MzJfMQotbGlicnQuc28uMSBnbGliYy0yLjMyXzEKLWxpYmRsLnNvLjIgZ2xpYmMtMi4zMl8xCi1s ZC1saW51eC14ODYtNjQuc28uMiBnbGliYy0yLjMyXzEgeDg2XzY0Ci1sZC1saW51eC5zby4yIGds aWJjLTIuMzJfMSBpNjg2Ci1sZC1saW51eC5zby4zIGdsaWJjLTIuMzJfMSBhcm12NXRlbAotbGQt bGludXgtYWFyY2g2NC5zby4xIGdsaWJjLTIuMzJfMSBhYXJjaDY0Ci1sZDY0LnNvLjIgZ2xpYmMt Mi4zMl8xIHBwYzY0Ci1sZC5zby4xIGdsaWJjLTIuMzJfMSBtaXBzCi1sZC5zby4xIGdsaWJjLTIu MzJfMSBwcGMKLWxkLWxpbnV4LWFybWhmLnNvLjMgZ2xpYmMtMi4zMl8xCi1saWJyZXNvbHYuc28u MiBnbGliYy0yLjMyXzEKLWxpYmFubC5zby4xIGdsaWJjLTIuMzJfMQotbGlidGhyZWFkX2RiLnNv LjEgZ2xpYmMtMi4zMl8xCi1saWJ1dGlsLnNvLjEgZ2xpYmMtMi4zMl8xCi1saWJuc2wuc28uMSBn bGliYy0yLjMyXzEKLWxpYm5zc19kYi5zby4yIGdsaWJjLTIuMzJfMQotbGlibnNzX2ZpbGVzLnNv LjIgZ2xpYmMtMi4zMl8xCi1saWJuc3NfY29tcGF0LnNvLjIgZ2xpYmMtMi4zMl8xCi1saWJuc3Nf ZG5zLnNvLjIgZ2xpYmMtMi4zMl8xCi1saWJuc3NfaGVzaW9kLnNvLjIgZ2xpYmMtMi4zMl8xCi1s aWJjcnlwdC5zby4xIGdsaWJjLTIuMzJfMQotbGliQnJva2VuTG9jYWxlLnNvLjEgZ2xpYmMtMi4z Ml8xCitsaWJjLnNvLjYgZ2xpYmMtMi4zNl8xCitsaWJtLnNvLjYgZ2xpYmMtMi4zNl8xCitsaWJw dGhyZWFkLnNvLjAgZ2xpYmMtMi4zNl8xCitsaWJydC5zby4xIGdsaWJjLTIuMzZfMQorbGliZGwu c28uMiBnbGliYy0yLjM2XzEKK2xkLWxpbnV4LXg4Ni02NC5zby4yIGdsaWJjLTIuMzZfMSB4ODZf NjQKK2xkLWxpbnV4LnNvLjIgZ2xpYmMtMi4zNl8xIGk2ODYKK2xkLWxpbnV4LnNvLjMgZ2xpYmMt Mi4zNl8xIGFybXY1dGVsCitsZC1saW51eC1hYXJjaDY0LnNvLjEgZ2xpYmMtMi4zNl8xIGFhcmNo NjQKK2xkNjQuc28uMiBnbGliYy0yLjM2XzEgcHBjNjQKK2xkLnNvLjEgZ2xpYmMtMi4zNl8xIG1p cHMKK2xkLnNvLjEgZ2xpYmMtMi4zNl8xIHBwYworbGQtbGludXgtYXJtaGYuc28uMyBnbGliYy0y LjM2XzEKK2xpYnJlc29sdi5zby4yIGdsaWJjLTIuMzZfMQorbGliYW5sLnNvLjEgZ2xpYmMtMi4z Nl8xCitsaWJ0aHJlYWRfZGIuc28uMSBnbGliYy0yLjM2XzEKK2xpYnV0aWwuc28uMSBnbGliYy0y LjM2XzEKK2xpYm5zbC5zby4xIGdsaWJjLTIuMzZfMQorbGlibnNzX2RiLnNvLjIgZ2xpYmMtMi4z Nl8xCitsaWJuc3NfZmlsZXMuc28uMiBnbGliYy0yLjM2XzEKK2xpYm5zc19jb21wYXQuc28uMiBn bGliYy0yLjM2XzEKK2xpYm5zc19kbnMuc28uMiBnbGliYy0yLjM2XzEKK2xpYm5zc19oZXNpb2Qu c28uMiBnbGliYy0yLjM2XzEKK2xpYmNyeXB0LnNvLjEgZ2xpYmMtMi4zNl8xCitsaWJCcm9rZW5M b2NhbGUuc28uMSBnbGliYy0yLjM2XzEKIGxpYlNpbUdlYXJDb3JlLnNvLjIwMjAuMy4xMyBzaW1n ZWFyLTIwMjAuMy4xM18xCiBsaWJTaW1HZWFyU2NlbmUuc28uMjAyMC4zLjEzIHNpbWdlYXItMjAy MC4zLjEzXzEKLWxpYm1lbXVzYWdlLnNvIGdsaWJjLTIuMzJfMQotbGliU2VnRmF1bHQuc28gZ2xp YmMtMi4zMl8xCi1saWJwY3Byb2ZpbGUuc28gZ2xpYmMtMi4zMl8xCi1saWJjaWRuLnNvLjEgZ2xp YmMtMi4zMl8xCi1saWJtdmVjLnNvLjEgZ2xpYmMtMi4zMl8xCitsaWJtZW11c2FnZS5zbyBnbGli Yy0yLjM2XzEKK2xpYlNlZ0ZhdWx0LnNvIGdsaWJjLTIuMzZfMQorbGlicGNwcm9maWxlLnNvIGds aWJjLTIuMzZfMQorbGliY2lkbi5zby4xIGdsaWJjLTIuMzZfMQorbGlibXZlYy5zby4xIGdsaWJj LTIuMzZfMQogbGliY2RkZ21wLnNvLjAgY2RkbGliLTAuOTRtXzEKIGxpYmNkZC5zby4wIGNkZGxp Yi0wLjk0bV8xCiBsaWJ6LnNvLjEgemxpYi0xLjIuM18xCmRpZmYgLS1naXQgYS9zcmNwa2dzL2ds aWJjL3BhdGNoZXMvMDAwMS1SZXZlcnQtRG8tbm90LXVzZS1oYXNoLXN0eWxlLWJvdGgtZm9yLWJ1 aWxkaW5nLWdsaWJjLnBhdGNoIGIvc3JjcGtncy9nbGliYy9wYXRjaGVzLzAwMDEtUmV2ZXJ0LURv LW5vdC11c2UtaGFzaC1zdHlsZS1ib3RoLWZvci1idWlsZGluZy1nbGliYy5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjljNTU1M2U5MjYwOQotLS0gL2Rldi9u dWxsCisrKyBiL3NyY3BrZ3MvZ2xpYmMvcGF0Y2hlcy8wMDAxLVJldmVydC1Eby1ub3QtdXNlLWhh c2gtc3R5bGUtYm90aC1mb3ItYnVpbGRpbmctZ2xpYmMucGF0Y2gKQEAgLTAsMCArMSw1MSBAQAor VGVtcG9yYXJ5IHdvcmthcm91bmQgZm9yIEVBQyBidWcuCisKK1NlZTogaHR0cHM6Ly9zb3VyY2V3 YXJlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9Mjk0NTYKKworRnJvbSA4ZTkwZTJjYzVl NTdkN2NhM2E0MDYwMmQyNzhlOTY0MmE4YjY2NzE2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQor RnJvbTogb3JlbzYzOSA8b3JlbzYzOTFAZ21haWwuY29tPgorRGF0ZTogVHVlLCAxMyBTZXAgMjAy MiAxNDozMDozNSAtMDcwMAorU3ViamVjdDogW1BBVENIXSBSZXZlcnQgIkRvIG5vdCB1c2UgLS1o YXNoLXN0eWxlPWJvdGggZm9yIGJ1aWxkaW5nIGdsaWJjCisgc2hhcmVkIG9iamVjdHMiCisKK1Ro aXMgcmV2ZXJ0cyBjb21taXQgZTQ3ZGU1Y2IyZDRkYmVjYjU4ZjU2OWVkMjQxZThlOTVjNTY4ZjAz Yy4KKy0tLQorIE1ha2Vjb25maWcgICAgIHwgIDkgKysrKysrKysrCisgTWFrZXJ1bGVzICAgICAg fCAgNyArKysrKysrCisgNSBmaWxlcyBjaGFuZ2VkLCA2MSBpbnNlcnRpb25zKCspCisKK2RpZmYg LS1naXQgYS9NYWtlY29uZmlnIGIvTWFrZWNvbmZpZworaW5kZXggYmE3MDMyMWFmMS4uZTIxMzFk NDM4OSAxMDA2NDQKKy0tLSBhL01ha2Vjb25maWcKKysrKyBiL01ha2Vjb25maWcKK0BAIC0zNzEs NiArMzcxLDEzIEBAIGR0LXJlbHItbGRmbGFnID0KKyBuby1kdC1yZWxyLWxkZmxhZyA9CisgZW5k aWYKKyAKKysjIEZvciB0aGUgdGltZSBiZWluZyB3ZSB1bmNvbmRpdGlvbmFsbHkgdXNlICdib3Ro Jy4gIEF0IHNvbWUgdGltZSB3ZQorKyMgc2hvdWxkIGRlY2xhcmUgc3RhdGljYWxseSBsaW5rZWQg Y29kZSBhcyAnb3V0IG9mIGx1Y2snIGFuZCBjb21waWxlCisrIyB3aXRoIC0taGFzaC1zdHlsZT1n bnUgb25seS4KKytoYXNoc3R5bGUtTERGTEFHUyA9IC1XbCwtLWhhc2gtc3R5bGU9Ym90aAorK0xE RkxBR1Muc28gKz0gJChoYXNoc3R5bGUtTERGTEFHUykKKytMREZMQUdTLXJ0bGQgKz0gJChoYXNo c3R5bGUtTERGTEFHUykKKysKKyBpZmVxIChubywkKGJ1aWxkLXBpZS1kZWZhdWx0KSkKKyBwaWUt ZGVmYXVsdCA9ICQobm8tcGllLWNjZmxhZykKKyBlbHNlICMgYnVpbGQtcGllLWRlZmF1bHQKK2Rp ZmYgLS1naXQgYS9NYWtlcnVsZXMgYi9NYWtlcnVsZXMKK2luZGV4IGQxZTEzOWQwM2MuLjQ0MTM0 ZTM3Y2UgMTAwNjQ0CistLS0gYS9NYWtlcnVsZXMKKysrKyBiL01ha2VydWxlcworQEAgLTU1OCw2 ICs1NTgsOSBAQCAkKGNvbW1vbi1vYmpwZngpc2hsaWIubGRzOiAkKGNvbW1vbi1vYmpwZngpY29u ZmlnLm1ha2UgJCguLilNYWtlcnVsZXMKKyAJCSAgLVdsLC0tdmVyYm9zZSAyPi9kZXYvbnVsbCB8 IFwKKyAJICBzZWQgPiAkQFQgXAorIAkgICAgICAtZSAnL149PT09PT09PT0vLC9ePT09PT09PT09 LyFkOy9ePT09PT09PT09L2QnIFwKKysJCSAgIC1lICdzL14uKlwuZ251XC5oYXNoWyAJXSo6Liok JC8gIC5ub3RlLkFCSS10YWcgOiB7ICooLm5vdGUuQUJJLXRhZykgfSAmLycgXAorKwkJICAgLWUg Jy9eWyAJXSpcLmhhc2hbIAldKjouKiQkL3toO2Q7fScgXAorKwkJICAgLWUgJy9EQVRBX1NFR01F TlRfQUxJR04ve0g7Z30nIFwKKyAJICAgICAgLWUgJ3MvXi4qXCooXC5keW5ic3MpLiokJC8mIFwK KyAJCSBQUk9WSURFKF9fc3RhcnRfX19saWJjX2ZyZWVyZXNfcHRycyA9IC4pOyBcCisgCQkgKihf X2xpYmNfZnJlZXJlc19wdHJzKSBcCistLSAKKzIuMzcuMworCmRpZmYgLS1naXQgYS9zcmNwa2dz L2dsaWJjL3BhdGNoZXMvZ2l0LXVwZGF0ZXMucGF0Y2ggYi9zcmNwa2dzL2dsaWJjL3BhdGNoZXMv Z2l0LXVwZGF0ZXMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw Li4wYzc0ZTNlYzAzZGIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2dsaWJjL3BhdGNoZXMv Z2l0LXVwZGF0ZXMucGF0Y2gKQEAgLTAsMCArMSwxMDg3MiBAQAorVGhpcyB3YXMgZ2VuZXJhdGVk IGZyb20gdGhlIHJlbGVhc2UvJHt2ZXJzaW9ufS9tYXN0ZXIgYnJhbmNoIHVzaW5nOgorZ2l0IGZv cm1hdC1wYXRjaCAtayAkKGdpdCBkZXNjcmliZSAtLWFiYnJldj0wIC0tbWF0Y2ggJ2dsaWJjLSon KSAtLXN0ZG91dCA+IGdpdC11cGRhdGVzLnBhdGNoCisKK0Zyb20gYzNmZGE0ODljZmRiMjI2MGY5 ZmVjNzA2ZTZmZDcyNTk4NThjNDQ2NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFRv bSBIb25lcm1hbm4gPHRvbUBob25lcm1hbm4ubmV0PgorRGF0ZTogU3VuLCAyNCBKdWwgMjAyMiAw MToxMTo0MyAtMDQwMAorU3ViamVjdDogc3RkbGliOiBTdXBwcmVzcyBnY2MgZGlhZ25vc3RpYyB0 aGF0IGNoYXI4X3QgaXMgYSBrZXl3b3JkIGluIEMrKzIwIGluCisgdWNoYXIuaC4KK01JTUUtVmVy c2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRl bnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworZ2NjIDEzIGlzc3VlcyB0aGUgZm9sbG93aW5n IGRpYWdub3N0aWMgZm9yIHRoZSB1Y2hhci5oIGhlYWRlciB3aGVuIHRoZQorLVdjKysyMC1jb21w YXQgb3B0aW9uIGlzIGVuYWJsZWQgaW4gQysrIG1vZGVzIHRoYXQgZG8gbm90IGVuYWJsZSBjaGFy OF90CithcyBhIGJ1aWx0aW4gdHlwZSAoQysrMTcgYW5kIGVhcmxpZXIgYnkgZGVmYXVsdDsgc3Vi amVjdCB0byBfR05VX1NPVVJDRQorYW5kIHRoZSBnY2MgLWZbbm8tXWNoYXI4X3Qgb3B0aW9uKS4K KyAgd2FybmluZzogaWRlbnRpZmllciDigJhjaGFyOF904oCZIGlzIGEga2V5d29yZCBpbiBDKysy MCBbLVdjKysyMC1jb21wYXRdCitUaGlzIGNoYW5nZSBtb2RpZmllcyB0aGUgdWNoYXIuaCBoZWFk ZXIgdG8gc3VwcHJlc3MgdGhlIGRpYWdub3N0aWMgdGhyb3VnaAordGhlIHVzZSBvZiAnI3ByYWdt YSBHQ0MgZGlhZ25vc3RpYycgZGlyZWN0aXZlcyBmb3IgZ2NjIDEwIGFuZCBsYXRlciAodGhlCist V2MrKzIwLWNvbXBhdCBvcHRpb24gd2FzIGFkZGVkIGluIGdjYyB2ZXJzaW9uIDEwKS4gIFVuZm9y dHVuYXRlbHksIGEgYnVnCitpbiBnY2MgY3VycmVudGx5IHByZXZlbnRzIHRob3NlIGRpcmVjdGl2 ZXMgZnJvbSBoYXZpbmcgdGhlIGludGVuZGVkIGVmZmVjdAorYXMgcmVwb3J0ZWQgYXQgaHR0cHM6 Ly9nY2MuZ251Lm9yZy9QUjEwNjQyMy4gIEEgcGF0Y2ggZm9yIHRoYXQgaXNzdWUgaGFzCitiZWVu IHN1Ym1pdHRlZCBhbmQgaXMgYXZhaWxhYmxlIGluIHRoZSBlbWFpbCB0aHJlYWQgYXJjaGl2ZSBs aW5rZWQgYmVsb3cuCisgIGh0dHBzOi8vZ2NjLmdudS5vcmcvcGlwZXJtYWlsL2djYy1wYXRjaGVz LzIwMjItSnVseS81OTg3MzYuaHRtbAorCisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA4MjVm ODRmMTMzYmQ4NDAzNDdkYzQ5MjI5YjZkODMxZjA3ZDA0Nzc1KQorLS0tCisgd2NzbWJzL3VjaGFy LmggfCA4ICsrKysrKysrCisgMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKQorCitkaWZm IC0tZ2l0IGEvd2NzbWJzL3VjaGFyLmggYi93Y3NtYnMvdWNoYXIuaAoraW5kZXggYzM3ZTg2MTlh MC4uNWY3MTM5ZjI3OSAxMDA2NDQKKy0tLSBhL3djc21icy91Y2hhci5oCisrKysgYi93Y3NtYnMv dWNoYXIuaAorQEAgLTM0LDggKzM0LDE2IEBACisgLyogRGVjbGFyZSB0aGUgQzJ4IGNoYXI4X3Qg dHlwZWRlZiBpbiBDMnggbW9kZXMsIGJ1dCBvbmx5IGlmIHRoZSBDKysKKyAgIF9fY3BwX2NoYXI4 X3QgZmVhdHVyZSB0ZXN0IG1hY3JvIGlzIG5vdCBkZWZpbmVkLiAgKi8KKyAjaWYgX19HTElCQ19V U0UgKElTT0MyWCkgJiYgIWRlZmluZWQgX19jcHBfY2hhcjhfdAorKyNpZiBfX0dOVUNfUFJFUkVR ICgxMCwgMCkgJiYgZGVmaW5lZCBfX2NwbHVzcGx1cworKy8qIFN1cHByZXNzIHRoZSBkaWFnbm9z dGljIHJlZ2FyZGluZyBjaGFyOF90IGJlaW5nIGEga2V5d29yZCBpbiBDKysyMC4gICovCisrIyBw cmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAorKyMgcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9y ZWQgIi1XYysrMjAtY29tcGF0IgorKyNlbmRpZgorIC8qIERlZmluZSB0aGUgOC1iaXQgY2hhcmFj dGVyIHR5cGUuICAqLworIHR5cGVkZWYgdW5zaWduZWQgY2hhciBjaGFyOF90OworKyNpZiBfX0dO VUNfUFJFUkVRICgxMCwgMCkgJiYgZGVmaW5lZCBfX2NwbHVzcGx1cworKyMgcHJhZ21hIEdDQyBk aWFnbm9zdGljIHBvcAorKyNlbmRpZgorICNlbmRpZgorIAorICNpZm5kZWYgX19VU0VfSVNPQ1hY MTEKKy0tIAorMi4zOC4xCisKKworRnJvbSAzM2YxYjRjMTQ1MmIzMzk5MWU2NzBmNjM2ZWJlOThi OTBhNDA1ZTEwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogIkguSi4gTHUiIDxoamwu dG9vbHNAZ21haWwuY29tPgorRGF0ZTogRnJpLCAyOSBKdWwgMjAyMiAxMDo1MDo1NiAtMDcwMAor U3ViamVjdDogd2NzbWJzOiBBZGQgbWlzc2luZyB0ZXN0LWM4cnRvbWIvdGVzdC1tYnJ0b2M4IGRl cGVuZGVuY3kKKworTWFrZSB0ZXN0LWM4cnRvbWIub3V0IGFuZCB0ZXN0LW1icnRvYzgub3V0IGRl cGVuZCBvbiAkKGdlbi1sb2NhbGVzKSBmb3IKKworICB4c2V0bG9jYWxlIChMQ19BTEwsICJkZV9E RS5VVEYtOCIpOworICB4c2V0bG9jYWxlIChMQ19BTEwsICJ6aF9ISy5CSUc1LUhLU0NTIik7CisK K1Jldmlld2VkLWJ5OiBTdW5pbCBLIFBhbmRleSA8c2twZ2twMkBnbWFpbC5jb20+CitSZXZpZXdl ZC1ieTogQ2FybG9zIE8nRG9uZWxsIDxjYXJsb3NAcmVkaGF0LmNvbT4KKyhjaGVycnkgcGlja2Vk IGZyb20gY29tbWl0IGUwM2Y1Y2NkNmNjOGY4Mjk0MTYxNTZlYWM3NWFjZWU1MDE2MjZjMWYpCist LS0KKyB3Y3NtYnMvTWFrZWZpbGUgfCAyICsrCisgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9u cygrKQorCitkaWZmIC0tZ2l0IGEvd2NzbWJzL01ha2VmaWxlIGIvd2NzbWJzL01ha2VmaWxlCitp bmRleCBlNmI5ZTg3NDNhLi4zZDE5ZDU1NTZmIDEwMDY0NAorLS0tIGEvd2NzbWJzL01ha2VmaWxl CisrKysgYi93Y3NtYnMvTWFrZWZpbGUKK0BAIC03Myw2ICs3Myw4IEBAICQob2JqcGZ4KXRzdC13 Y3N0b2wtbG9jYWxlLm91dDogJChnZW4tbG9jYWxlcykKKyAkKG9ianBmeCl0c3Qtd2NzdG9kLW5h bi1sb2NhbGUub3V0OiAkKGdlbi1sb2NhbGVzKQorICQob2JqcGZ4KXRzdC1jMTYtc3Vycm9nYXRl Lm91dDogJChnZW4tbG9jYWxlcykKKyAkKG9ianBmeCl0c3QtYzMyLXN0YXRlLm91dDogJChnZW4t bG9jYWxlcykKKyskKG9ianBmeCl0ZXN0LWM4cnRvbWIub3V0OiAkKGdlbi1sb2NhbGVzKQorKyQo b2JqcGZ4KXRlc3QtbWJydG9jOC5vdXQ6ICQoZ2VuLWxvY2FsZXMpCisgZW5kaWYKKyAKKyAkKG9i anBmeCl0c3Qtd2NzdG9kLXJvdW5kOiAkKGxpYm0pCistLSAKKzIuMzguMQorCisKK0Zyb20gYzc0 YmI5M2NmZGIwNGQ0OTE1NWIwZTMwOTgzYTNjODY2MTY3YmJjYSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKK0Zyb206IEZsb3JpYW4gV2VpbWVyIDxmd2VpbWVyQHJlZGhhdC5jb20+CitEYXRlOiBU aHUsIDQgQXVnIDIwMjIgMTc6NTQ6NDggKzAyMDAKK1N1YmplY3Q6IGRsZmNuOiBQYXNzIGNhbGxl ciBwb2ludGVyIHRvIHN0YXRpYyBkbG9wZW4gaW1wbGVtZW50YXRpb24gKGJ1ZworIDI5NDQ2KQor CitGaXhlcyBjb21taXQgMGMxYzNhNzcxZWNlZWM0NmU2NmNlMTE4M2NmOTg4ZTIzMDNiZDM3MyAo ImRsZmNuOiBNb3ZlCitkbG9wZW4gaW50byBsaWJjIikuCisKKyhjaGVycnkgcGlja2VkIGZyb20g Y29tbWl0IGVkMDE4NWU0MTI5MTMwY2JlMDgxYzIyMWVmYjc1OGZiNDAwNjIzY2UpCistLS0KKyBO RVdTICAgICAgICAgICB8IDcgKysrKysrKworIGRsZmNuL2Rsb3Blbi5jIHwgMiArLQorIDIgZmls ZXMgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQg YS9ORVdTIGIvTkVXUworaW5kZXggZjYxZTUyMWZjOC4uMTVmM2RkMmNkYiAxMDA2NDQKKy0tLSBh L05FV1MKKysrKyBiL05FV1MKK0BAIC00LDYgKzQsMTMgQEAgU2VlIHRoZSBlbmQgZm9yIGNvcHlp bmcgY29uZGl0aW9ucy4KKyAKKyBQbGVhc2Ugc2VuZCBHTlUgQyBsaWJyYXJ5IGJ1ZyByZXBvcnRz IHZpYSA8aHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9idWd6aWxsYS8+CisgdXNpbmcgYGdsaWJjJyBp biB0aGUgInByb2R1Y3QiIGZpZWxkLgorKwwKKytWZXJzaW9uIDIuMzYuMQorKworK1RoZSBmb2xs b3dpbmcgYnVncyBhcmUgcmVzb2x2ZWQgd2l0aCB0aGlzIHJlbGVhc2U6CisrCisrICBbMjk0NDZd IF9kbG9wZW4gbm93IGlnbm9yZXMgZGxfY2FsbGVyIGFyZ3VtZW50IGluIHN0YXRpYyBtb2RlCisr CisgDAorIFZlcnNpb24gMi4zNgorIAorZGlmZiAtLWdpdCBhL2RsZmNuL2Rsb3Blbi5jIGIvZGxm Y24vZGxvcGVuLmMKK2luZGV4IDI2OTZkZGU0YjEuLjliMDdiNGUxMzIgMTAwNjQ0CistLS0gYS9k bGZjbi9kbG9wZW4uYworKysrIGIvZGxmY24vZGxvcGVuLmMKK0BAIC05MCw3ICs5MCw3IEBAIGNv bXBhdF9zeW1ib2wgKGxpYmRsLCBfX19kbG9wZW4sIGRsb3BlbiwgR0xJQkNfMl8xKTsKKyB2b2lk ICoKKyBfX2Rsb3BlbiAoY29uc3QgY2hhciAqZmlsZSwgaW50IG1vZGUsIHZvaWQgKmRsX2NhbGxl cikKKyB7CistICByZXR1cm4gZGxvcGVuX2ltcGxlbWVudGF0aW9uIChmaWxlLCBtb2RlLCBSRVRV Uk5fQUREUkVTUyAoMCkpOworKyAgcmV0dXJuIGRsb3Blbl9pbXBsZW1lbnRhdGlvbiAoZmlsZSwg bW9kZSwgZGxfY2FsbGVyKTsKKyB9CisgCisgdm9pZCAqCistLSAKKzIuMzguMQorCisKK0Zyb20g YWM0N2Q4ZjZjZjk3NDQxMzlhZGIxMmY1NDBmYjljYzYxMGNhYzU3OSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKK0Zyb206IEpvc2VwaCBNeWVycyA8am9zZXBoQGNvZGVzb3VyY2VyeS5jb20+CitE YXRlOiBUdWUsIDIgQXVnIDIwMjIgMjE6MDU6MDcgKzAwMDAKK1N1YmplY3Q6IFVwZGF0ZSBzeXNj YWxsIGxpc3RzIGZvciBMaW51eCA1LjE5CisKK0xpbnV4IDUuMTkgaGFzIG5vIG5ldyBzeXNjYWxs cywgYnV0IGVuYWJsZXMgbWVtZmRfc2VjcmV0IGluIHRoZSB1YXBpCitoZWFkZXJzIGZvciBSSVND LVYuICBVcGRhdGUgdGhlIHZlcnNpb24gbnVtYmVyIGluIHN5c2NhbGwtbmFtZXMubGlzdAordG8g cmVmbGVjdCB0aGF0IGl0IGlzIHN0aWxsIGN1cnJlbnQgZm9yIDUuMTkgYW5kIHJlZ2VuZXJhdGUg dGhlCithcmNoLXN5c2NhbGwuaCBoZWFkZXJzIHdpdGggYnVpbGQtbWFueS1nbGliY3MucHkgdXBk YXRlLXN5c2NhbGxzLgorCitUZXN0ZWQgd2l0aCBidWlsZC1tYW55LWdsaWJjcy5weS4KKworKGNo ZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgZmNjYWRjZGY1YmVkN2VlNjdhNmNlZjQ3MTRlMGI0Nzdk NmM4NDcyYykKKy0tLQorIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3Jpc2N2L3J2MzIvYXJjaC1z eXNjYWxsLmggfCAxICsKKyBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9yaXNjdi9ydjY0L2FyY2gt c3lzY2FsbC5oIHwgMSArCisgc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzY2FsbC1uYW1lcy5s aXN0ICAgICAgICB8IDQgKystLQorIDMgZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAy IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvcmlz Y3YvcnYzMi9hcmNoLXN5c2NhbGwuaCBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3Jpc2N2L3J2 MzIvYXJjaC1zeXNjYWxsLmgKK2luZGV4IGJmNGJlODBmOGQuLjIwMjUyMGVlMjUgMTAwNjQ0Cist LS0gYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9yaXNjdi9ydjMyL2FyY2gtc3lzY2FsbC5oCisr KysgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9yaXNjdi9ydjMyL2FyY2gtc3lzY2FsbC5oCitA QCAtMTIyLDYgKzEyMiw3IEBACisgI2RlZmluZSBfX05SX21iaW5kIDIzNQorICNkZWZpbmUgX19O Ul9tZW1iYXJyaWVyIDI4MworICNkZWZpbmUgX19OUl9tZW1mZF9jcmVhdGUgMjc5CisrI2RlZmlu ZSBfX05SX21lbWZkX3NlY3JldCA0NDcKKyAjZGVmaW5lIF9fTlJfbWlncmF0ZV9wYWdlcyAyMzgK KyAjZGVmaW5lIF9fTlJfbWluY29yZSAyMzIKKyAjZGVmaW5lIF9fTlJfbWtkaXJhdCAzNAorZGlm ZiAtLWdpdCBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3Jpc2N2L3J2NjQvYXJjaC1zeXNjYWxs LmggYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9yaXNjdi9ydjY0L2FyY2gtc3lzY2FsbC5oCitp bmRleCBkNjU2YWVkY2MyLi40ZTY1ZjMzN2Q0IDEwMDY0NAorLS0tIGEvc3lzZGVwcy91bml4L3N5 c3YvbGludXgvcmlzY3YvcnY2NC9hcmNoLXN5c2NhbGwuaAorKysrIGIvc3lzZGVwcy91bml4L3N5 c3YvbGludXgvcmlzY3YvcnY2NC9hcmNoLXN5c2NhbGwuaAorQEAgLTEyNyw2ICsxMjcsNyBAQAor ICNkZWZpbmUgX19OUl9tYmluZCAyMzUKKyAjZGVmaW5lIF9fTlJfbWVtYmFycmllciAyODMKKyAj ZGVmaW5lIF9fTlJfbWVtZmRfY3JlYXRlIDI3OQorKyNkZWZpbmUgX19OUl9tZW1mZF9zZWNyZXQg NDQ3CisgI2RlZmluZSBfX05SX21pZ3JhdGVfcGFnZXMgMjM4CisgI2RlZmluZSBfX05SX21pbmNv cmUgMjMyCisgI2RlZmluZSBfX05SX21rZGlyYXQgMzQKK2RpZmYgLS1naXQgYS9zeXNkZXBzL3Vu aXgvc3lzdi9saW51eC9zeXNjYWxsLW5hbWVzLmxpc3QgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51 eC9zeXNjYWxsLW5hbWVzLmxpc3QKK2luZGV4IDZjN2IyZjcwMTEuLjAyOGFkMzEwN2EgMTAwNjQ0 CistLS0gYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXNjYWxsLW5hbWVzLmxpc3QKKysrKyBi L3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5c2NhbGwtbmFtZXMubGlzdAorQEAgLTIxLDggKzIx LDggQEAKKyAjIFRoaXMgZmlsZSBjYW4gbGlzdCBhbGwgcG90ZW50aWFsIHN5c3RlbSBjYWxscy4g IFRoZSBuYW1lcyBhcmUgb25seQorICMgdXNlZCBpZiB0aGUgaW5zdGFsbGVkIGtlcm5lbCBoZWFk ZXJzIGFsc28gcHJvdmlkZSB0aGVtLgorIAorLSMgVGhlIGxpc3Qgb2Ygc3lzdGVtIGNhbGxzIGlz IGN1cnJlbnQgYXMgb2YgTGludXggNS4xOC4KKy1rZXJuZWwgNS4xOAorKyMgVGhlIGxpc3Qgb2Yg c3lzdGVtIGNhbGxzIGlzIGN1cnJlbnQgYXMgb2YgTGludXggNS4xOS4KKytrZXJuZWwgNS4xOQor IAorIEZBU1RfYXRvbWljX3VwZGF0ZQorIEZBU1RfY21weGNoZworLS0gCisyLjM4LjEKKworCitG cm9tIDMwMmJjMzNiYzUzYzc4N2RhNmU3NDE2MmE3MDkyZTljMGZiOTY0YTggTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCitGcm9tOiBOb2FoIEdvbGRzdGVpbiA8Z29sZHN0ZWluLncubkBnbWFpbC5j b20+CitEYXRlOiBNb24sIDggQXVnIDIwMjIgMTE6MjY6MjIgKzA4MDAKK1N1YmplY3Q6IGVsZjog UmVwbGFjZSBgc3RyY3B5YCBjYWxsIHdpdGggYG1lbWNweWAgW0JaICMyOTQ1NF0KKworR0NDIG5v cm1hbGx5IGRvZXMgdGhpcyBvcHRpbWl6YXRpb24gZm9yIHVzIGluCitzdHJsZW5fcGFzczo6aGFu ZGxlX2J1aWx0aW5fc3RyY3B5IGJ1dCBvbmx5IGZvciBvcHRpbWl6ZWQKK2J1aWxkLiBUbyBhdm9p ZCBuZWVkaW5nIHRvIGluY2x1ZGUgc3RyY3B5LlMgaW4gdGhlIHJ0bGQgYnVpbGQgdG8KK3N1cHBv cnQgdGhlIGRlYnVnIGJ1aWxkLCBqdXN0IGRvIHRoZSBvcHRpbWl6YXRpb24gYnkgaGFuZC4KKwor KGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgNDgzY2ZlMWE2YTMzZDYzMzViMTkwMTU4MWI0MTA0 MGQyZDQxMjUxMSkKKy0tLQorIGVsZi9kbC1jYWNoZS5jIHwgNSArKystLQorIDEgZmlsZSBjaGFu Z2VkLCAzIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9lbGYv ZGwtY2FjaGUuYyBiL2VsZi9kbC1jYWNoZS5jCitpbmRleCA4YmJmMTEwZDAyLi5iOTdjMTdiM2E5 IDEwMDY0NAorLS0tIGEvZWxmL2RsLWNhY2hlLmMKKysrKyBiL2VsZi9kbC1jYWNoZS5jCitAQCAt NTA5LDggKzUwOSw5IEBAIF9kbF9sb2FkX2NhY2hlX2xvb2t1cCAoY29uc3QgY2hhciAqbmFtZSkK KyAgICAgIHdlIGFyZSBhY2Nlc3NpbmcuIFRoZXJlZm9yZSB3ZSBtdXN0IG1ha2UgdGhlIGNvcHkg b2YgdGhlCisgICAgICBtYXBwaW5nIGRhdGEgd2l0aG91dCB1c2luZyBtYWxsb2MuICAqLworICAg Y2hhciAqdGVtcDsKKy0gIHRlbXAgPSBhbGxvY2EgKHN0cmxlbiAoYmVzdCkgKyAxKTsKKy0gIHN0 cmNweSAodGVtcCwgYmVzdCk7CisrICBzaXplX3QgYmVzdF9sZW4gPSBzdHJsZW4gKGJlc3QpICsg MTsKKysgIHRlbXAgPSBhbGxvY2EgKGJlc3RfbGVuKTsKKysgIG1lbWNweSAodGVtcCwgYmVzdCwg YmVzdF9sZW4pOworICAgcmV0dXJuIF9fc3RyZHVwICh0ZW1wKTsKKyB9CisgCistLSAKKzIuMzgu MQorCisKK0Zyb20gZTk4MjY1NzA3M2M0ZGIyMTQ1OWZmZDllMTdiYzUwNWIxZDY0Yjg3NiBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEZsb3JpYW4gV2VpbWVyIDxmd2VpbWVyQHJlZGhh dC5jb20+CitEYXRlOiBNb24sIDE1IEF1ZyAyMDIyIDE2OjQzOjU5ICswMjAwCitTdWJqZWN0OiBM aW51eDogVGVybWluYXRlIHN1YnByb2Nlc3Mgb24gbGF0ZSBmYWlsdXJlIGluIHRzdC1waWRmZCAo YnVnIDI5NDg1KQorCitSZXZpZXdlZC1ieTogQ2FybG9zIE8nRG9uZWxsIDxjYXJsb3NAcmVkaGF0 LmNvbT4KKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IGY4MmUwNWViYjI5NWNhZGQzNWY3Mzcy ZjY1MmM3MjI2NGRhODEwYWQpCistLS0KKyBORVdTICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8IDEgKworIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3RzdC1waWRmZC5jIHwgNyArKysr Ky0tCisgMiBmaWxlcyBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisK K2RpZmYgLS1naXQgYS9ORVdTIGIvTkVXUworaW5kZXggMTVmM2RkMmNkYi4uZjhmYjhkYjUxMCAx MDA2NDQKKy0tLSBhL05FV1MKKysrKyBiL05FV1MKK0BAIC0xMCw2ICsxMCw3IEBAIFZlcnNpb24g Mi4zNi4xCisgVGhlIGZvbGxvd2luZyBidWdzIGFyZSByZXNvbHZlZCB3aXRoIHRoaXMgcmVsZWFz ZToKKyAKKyAgIFsyOTQ0Nl0gX2Rsb3BlbiBub3cgaWdub3JlcyBkbF9jYWxsZXIgYXJndW1lbnQg aW4gc3RhdGljIG1vZGUKKysgIFsyOTQ4NV0gTGludXg6IFRlcm1pbmF0ZSBzdWJwcm9jZXNzIG9u IGxhdGUgZmFpbHVyZSBpbiB0c3QtcGlkZmQKKyAKKyAMCisgVmVyc2lvbiAyLjM2CitkaWZmIC0t Z2l0IGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvdHN0LXBpZGZkLmMgYi9zeXNkZXBzL3VuaXgv c3lzdi9saW51eC90c3QtcGlkZmQuYworaW5kZXggMDM3YWYyMjI5MC4uNTcxMWQxYzMxMiAxMDA2 NDQKKy0tLSBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3RzdC1waWRmZC5jCisrKysgYi9zeXNk ZXBzL3VuaXgvc3lzdi9saW51eC90c3QtcGlkZmQuYworQEAgLTE0Nyw4ICsxNDcsMTEgQEAgZG9f dGVzdCAodm9pZCkKKyAgICAgICAgbWF5IGJlIGRlbmllZCBpZiB0aGUgcHJvY2VzcyBkb2Vzbid0 IGhhdmUgQ0FQX1NZU19QVFJBQ0Ugb3IKKyAgICAgICAgaWYgYSBMU00gc2VjdXJpdHlfcHRyYWNl X2FjY2Vzc19jaGVjayBkZW5pZXMgYWNjZXNzLiAgKi8KKyAgICAgaWYgKGZkID09IC0xICYmIGVy cm5vID09IEVQRVJNKQorLSAgICAgIEZBSUxfVU5TVVBQT1JURUQgKCJkb24ndCBoYXZlIHBlcm1p c3Npb24gdG8gdXNlIHBpZGZkX2dldGZkIG9uIHBpZGZkLCAiCistCQkJInNraXBwaW5nIHRlc3Qi KTsKKysgICAgICB7CisrCVRFU1RfQ09NUEFSRSAocGlkZmRfc2VuZF9zaWduYWwgKHBpZGZkLCBT SUdLSUxMLCBOVUxMLCAwKSwgMCk7CisrCUZBSUxfVU5TVVBQT1JURUQgKCJkb24ndCBoYXZlIHBl cm1pc3Npb24gdG8gdXNlIHBpZGZkX2dldGZkIG9uIHBpZGZkLCAiCisrCQkJICAic2tpcHBpbmcg dGVzdCIpOworKyAgICAgIH0KKyAgICAgVEVTVF9WRVJJRlkgKGZkID4gMCk7CisgCisgICAgIGNo YXIgKnBhdGggPSB4YXNwcmludGYgKCIvcHJvYy8lZC9mZC8lZCIsIHBpZCwgcmVtb3RlX2ZkKTsK Ky0tIAorMi4zOC4xCisKKworRnJvbSA4YjEzOWNkNGYxMDc0YWUwZDk1ZDliZmY2MGRiMjgzYTFl ZDcyNzM0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRmxvcmlhbiBXZWltZXIgPGZ3 ZWltZXJAcmVkaGF0LmNvbT4KK0RhdGU6IE1vbiwgMjIgQXVnIDIwMjIgMTE6MDQ6NDcgKzAyMDAK K1N1YmplY3Q6IGFscGhhOiBGaXggZ2VuZXJpYyBicmsgc3lzdGVtIGNhbGwgZW11bGF0aW9uIGlu IF9fYnJrX2NhbGwgKGJ1ZworIDI5NDkwKQorCitUaGUga2VybmVsIHNwZWNpYWwtY2FzZXMgdGhl IHplcm8gYXJndW1lbnQgZm9yIGFscGhhIGJyaywgYW5kIHdlIGNhbgordXNlIHRoYXQgdG8gcmVz dG9yZSB0aGUgZ2VuZXJpYyBMaW51eCBlcnJvciBoYW5kbGluZyBiZWhhdmlvci4KKworRml4ZXMg Y29tbWl0IGI1N2FiMjU4YzExNDBiYzQ1NDY0YjRiOTkwODcxM2UzZTBlZTM1YWEgKCJMaW51eDoK K0ludHJvZHVjZSBfX2Jya19jYWxsIGZvciBpbnZva2luZyB0aGUgYnJrIHN5c3RlbSBjYWxsIiku CisKKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IGU3YWQyNmVlM2NiNzRlNjFkMDYzN2M4ODhm MjRkZDQ3OGQ3N2FmNTgpCistLS0KKyBORVdTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgMSArCisgc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvYnJrX2NhbGwuaCB8 IDcgKysrLS0tLQorIDIgZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9u cygtKQorCitkaWZmIC0tZ2l0IGEvTkVXUyBiL05FV1MKK2luZGV4IGY4ZmI4ZGI1MTAuLmJlY2Fi M2FkZTkgMTAwNjQ0CistLS0gYS9ORVdTCisrKysgYi9ORVdTCitAQCAtMTEsNiArMTEsNyBAQCBU aGUgZm9sbG93aW5nIGJ1Z3MgYXJlIHJlc29sdmVkIHdpdGggdGhpcyByZWxlYXNlOgorIAorICAg WzI5NDQ2XSBfZGxvcGVuIG5vdyBpZ25vcmVzIGRsX2NhbGxlciBhcmd1bWVudCBpbiBzdGF0aWMg bW9kZQorICAgWzI5NDg1XSBMaW51eDogVGVybWluYXRlIHN1YnByb2Nlc3Mgb24gbGF0ZSBmYWls dXJlIGluIHRzdC1waWRmZAorKyAgWzI5NDkwXSBhbHBoYTogTmV3IF9fYnJrX2NhbGwgaW1wbGVt ZW50YXRpb24gaXMgYnJva2VuCisgCisgDAorIFZlcnNpb24gMi4zNgorZGlmZiAtLWdpdCBhL3N5 c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL2Jya19jYWxsLmggYi9zeXNkZXBzL3VuaXgvc3lz di9saW51eC9hbHBoYS9icmtfY2FsbC5oCitpbmRleCBiODA4OGNmMTNmLi4wYjg1MWI2Yzg2IDEw MDY0NAorLS0tIGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvYnJrX2NhbGwuaAorKysr IGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvYnJrX2NhbGwuaAorQEAgLTIxLDggKzIx LDcgQEAgX19icmtfY2FsbCAodm9pZCAqYWRkcikKKyB7CisgICB1bnNpZ25lZCBsb25nIGludCBy ZXN1bHQgPSBJTlRFUk5BTF9TWVNDQUxMX0NBTEwgKGJyaywgYWRkcik7CisgICBpZiAocmVzdWx0 ID09IC1FTk9NRU0pCistICAgIC8qIE1pbWljIHRoZSBkZWZhdWx0IGVycm9yIHJlcG9ydGluZyBi ZWhhdmlvci4gICovCistICAgIHJldHVybiBhZGRyOworLSAgZWxzZQorLSAgICByZXR1cm4gKHZv aWQgKikgcmVzdWx0OworKyAgICAvKiBNaW1pYyB0aGUgZ2VuZXJpYyBlcnJvciByZXBvcnRpbmcg YmVoYXZpb3IuICAqLworKyAgICByZXN1bHQgPSBJTlRFUk5BTF9TWVNDQUxMX0NBTEwgKGJyaywg MCk7CisrICByZXR1cm4gKHZvaWQgKikgcmVzdWx0OworIH0KKy0tIAorMi4zOC4xCisKKworRnJv bSBkMTNhN2E2ZjEwMDU3NmIxZTMwZGMwNDRiMmUwYzRjYmNiNjE5NmY2IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQorRnJvbTogQXJqdW4gU2hhbmthciA8YXJqdW5AcmVkaGF0LmNvbT4KK0RhdGU6 IFR1ZSwgMiBBdWcgMjAyMiAxMToxMDoyNSArMDIwMAorU3ViamVjdDogc29ja2V0OiBDaGVjayBs ZW5ndGhzIGJlZm9yZSBhZHZhbmNpbmcgcG9pbnRlciBpbiBDTVNHX05YVEhEUgorCitUaGUgaW5s aW5lIGFuZCBsaWJyYXJ5IGZ1bmN0aW9ucyB0aGF0IHRoZSBDTVNHX05YVEhEUiBtYWNybyBtYXkg ZXhwYW5kCit0byBpbmNyZW1lbnQgdGhlIHBvaW50ZXIgdG8gdGhlIGhlYWRlciBiZWZvcmUgY2hl Y2tpbmcgdGhlIHN0cmlkZSBvZgordGhlIGluY3JlbWVudCBhZ2FpbnN0IGF2YWlsYWJsZSBzcGFj ZS4gIFNpbmNlIEMgb25seSBhbGxvd3MgaW5jcmVtZW50aW5nCitwb2ludGVycyB0byBvbmUgcGFz dCB0aGUgZW5kIG9mIGFuIGFycmF5LCB0aGUgaW5jcmVtZW50IG11c3QgYmUgZG9uZQorYWZ0ZXIg YSBsZW5ndGggY2hlY2suICBUaGlzIGNvbW1pdCBmaXhlcyB0aGF0IGFuZCBpbmNsdWRlcyBhIHJl Z3Jlc3Npb24KK3Rlc3QgZm9yIENNU0dfRklSU1RIRFIgYW5kIENNU0dfTlhUSERSLgorCitUaGUg TGludXgsIEh1cmQsIGFuZCBnZW5lcmljIGhlYWRlcnMgYXJlIGFsbCBjaGFuZ2VkLgorCitUZXN0 ZWQgb24gTGludXggb24gYXJtdjdobCwgaTY4NiwgeDg2XzY0LCBhYXJjaDY0LCBwcGM2NGxlLCBh bmQgczM5MHguCisKK1tCWiAjMjg4NDZdCisKK1Jldmlld2VkLWJ5OiBTaWRkaGVzaCBQb3lhcmVr YXIgPHNpZGRoZXNoQHNvdXJjZXdhcmUub3JnPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQg OWM0NDNhYzQ1NTlhNDdlZDk5ODU5YmQ4MGQxNGRjNGI2ZGQyMjBhMSkKKy0tLQorIGJpdHMvc29j a2V0LmggICAgICAgICAgICAgICAgICAgICAgICAgfCA0MCArKysrKysrKysrLS0KKyBzb2NrZXQv TWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAgIHwgIDEgKworIHNvY2tldC90c3QtY21zZ2hk ci1za2VsZXRvbi5jICAgICAgICAgfCA5MiArKysrKysrKysrKysrKysrKysrKysrKysrKysKKyBz b2NrZXQvdHN0LWNtc2doZHIuYyAgICAgICAgICAgICAgICAgIHwgNTYgKysrKysrKysrKysrKysr KworIHN5c2RlcHMvbWFjaC9odXJkL2JpdHMvc29ja2V0LmggICAgICAgfCA0MCArKysrKysrKysr LS0KKyBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9iaXRzL3NvY2tldC5oIHwgNDAgKysrKysrKysr Ky0tCisgc3lzZGVwcy91bml4L3N5c3YvbGludXgvY21zZ19ueHRoZHIuYyB8IDM2ICsrKysrKysr LS0tCisgNyBmaWxlcyBjaGFuZ2VkLCAyNzYgaW5zZXJ0aW9ucygrKSwgMjkgZGVsZXRpb25zKC0p CisgY3JlYXRlIG1vZGUgMTAwNjQ0IHNvY2tldC90c3QtY21zZ2hkci1za2VsZXRvbi5jCisgY3Jl YXRlIG1vZGUgMTAwNjQ0IHNvY2tldC90c3QtY21zZ2hkci5jCisKK2RpZmYgLS1naXQgYS9iaXRz L3NvY2tldC5oIGIvYml0cy9zb2NrZXQuaAoraW5kZXggMmI5OWRlYTMzYi4uYWFjOGM0OWIwMCAx MDA2NDQKKy0tLSBhL2JpdHMvc29ja2V0LmgKKysrKyBiL2JpdHMvc29ja2V0LmgKK0BAIC0yNDUs NiArMjQ1LDEyIEBAIHN0cnVjdCBjbXNnaGRyCisgCQkJICsgQ01TR19BTElHTiAoc2l6ZW9mIChz dHJ1Y3QgY21zZ2hkcikpKQorICNkZWZpbmUgQ01TR19MRU4obGVuKSAgIChDTVNHX0FMSUdOIChz aXplb2YgKHN0cnVjdCBjbXNnaGRyKSkgKyAobGVuKSkKKyAKKysvKiBHaXZlbiBhIGxlbmd0aCwg cmV0dXJuIHRoZSBhZGRpdGlvbmFsIHBhZGRpbmcgbmVjZXNzYXJ5IHN1Y2ggdGhhdAorKyAgIGxl biArIF9fQ01TR19QQURESU5HKGxlbikgPT0gQ01TR19BTElHTiAobGVuKS4gICovCisrI2RlZmlu ZSBfX0NNU0dfUEFERElORyhsZW4pICgoc2l6ZW9mIChzaXplX3QpIFwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAtICgobGVuKSAmIChzaXplb2YgKHNpemVfdCkgLSAxKSkpIFwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICYgKHNpemVvZiAoc2l6ZV90KSAtIDEpKQorKwor IGV4dGVybiBzdHJ1Y3QgY21zZ2hkciAqX19jbXNnX254dGhkciAoc3RydWN0IG1zZ2hkciAqX19t aGRyLAorIAkJCQkgICAgICBzdHJ1Y3QgY21zZ2hkciAqX19jbXNnKSBfX1RIUk9XOworICNpZmRl ZiBfX1VTRV9FWFRFUk5fSU5MSU5FUworQEAgLTI1NCwxOCArMjYwLDM4IEBAIGV4dGVybiBzdHJ1 Y3QgY21zZ2hkciAqX19jbXNnX254dGhkciAoc3RydWN0IG1zZ2hkciAqX19taGRyLAorIF9FWFRF Uk5fSU5MSU5FIHN0cnVjdCBjbXNnaGRyICoKKyBfX05USCAoX19jbXNnX254dGhkciAoc3RydWN0 IG1zZ2hkciAqX19taGRyLCBzdHJ1Y3QgY21zZ2hkciAqX19jbXNnKSkKKyB7CisrICAvKiBXZSBt YXkgc2FmZWx5IGFzc3VtZSB0aGF0IF9fY21zZyBsaWVzIGJldHdlZW4gX19taGRyLT5tc2dfY29u dHJvbCBhbmQKKysgICAgIF9fbWhkci0+bXNnX2NvbnRyb2xsZW4gYmVjYXVzZSB0aGUgdXNlciBp cyByZXF1aXJlZCB0byBvYnRhaW4gdGhlIGZpcnN0CisrICAgICBjbXNnIHZpYSBDTVNHX0ZJUlNU SERSLCBzZXQgaXRzIGxlbmd0aCwgdGhlbiBvYnRhaW4gc3Vic2VxdWVudCBjbXNncworKyAgICAg dmlhIENNU0dfTlhUSERSLCBzZXR0aW5nIGxlbmd0aHMgYWxvbmcgdGhlIHdheS4gIEhvd2V2ZXIs IHdlIGRvbid0IHlldAorKyAgICAgdHJ1c3QgdGhlIHZhbHVlIG9mIF9fY21zZy0+Y21zZ19sZW4g YW5kIHRoZXJlZm9yZSBkbyBub3QgdXNlIGl0IGluIGFueQorKyAgICAgcG9pbnRlciBhcml0aG1l dGljIHVudGlsIHdlIGNoZWNrIGl0cyB2YWx1ZS4gICovCisrCisrICB1bnNpZ25lZCBjaGFyICog X19tc2dfY29udHJvbF9wdHIgPSAodW5zaWduZWQgY2hhciAqKSBfX21oZHItPm1zZ19jb250cm9s OworKyAgdW5zaWduZWQgY2hhciAqIF9fY21zZ19wdHIgPSAodW5zaWduZWQgY2hhciAqKSBfX2Nt c2c7CisrCisrICBzaXplX3QgX19zaXplX25lZWRlZCA9IHNpemVvZiAoc3RydWN0IGNtc2doZHIp CisrICAgICAgICAgICAgICAgICAgICAgICAgICsgX19DTVNHX1BBRERJTkcgKF9fY21zZy0+Y21z Z19sZW4pOworKworKyAgLyogVGhlIGN1cnJlbnQgaGVhZGVyIGlzIG1hbGZvcm1lZCwgdG9vIHNt YWxsIHRvIGJlIGEgZnVsbCBoZWFkZXIuICAqLworICAgaWYgKChzaXplX3QpIF9fY21zZy0+Y21z Z19sZW4gPCBzaXplb2YgKHN0cnVjdCBjbXNnaGRyKSkKKy0gICAgLyogVGhlIGtlcm5lbCBoZWFk ZXIgZG9lcyB0aGlzIHNvIHRoZXJlIG1heSBiZSBhIHJlYXNvbi4gICovCisgICAgIHJldHVybiAo c3RydWN0IGNtc2doZHIgKikgMDsKKyAKKysgIC8qIFRoZXJlIGlzbid0IGVub3VnaCBzcGFjZSBi ZXR3ZWVuIF9fY21zZyBhbmQgdGhlIGVuZCBvZiB0aGUgYnVmZmVyIHRvCisrICBob2xkIHRoZSBj dXJyZW50IGNtc2cgKmFuZCogdGhlIG5leHQgb25lLiAgKi8KKysgIGlmICgoKHNpemVfdCkKKysg ICAgICAgICAoX19tc2dfY29udHJvbF9wdHIgKyBfX21oZHItPm1zZ19jb250cm9sbGVuIC0gX19j bXNnX3B0cikKKysgICAgICAgPCBfX3NpemVfbmVlZGVkKQorKyAgICAgIHx8ICgoc2l6ZV90KQor KyAgICAgICAgICAgIChfX21zZ19jb250cm9sX3B0ciArIF9fbWhkci0+bXNnX2NvbnRyb2xsZW4g LSBfX2Ntc2dfcHRyCisrICAgICAgICAgICAgIC0gX19zaXplX25lZWRlZCkKKysgICAgICAgICAg PCBfX2Ntc2ctPmNtc2dfbGVuKSkKKysKKysgICAgcmV0dXJuIChzdHJ1Y3QgY21zZ2hkciAqKSAw OworKworKyAgLyogTm93LCB3ZSB0cnVzdCBjbXNnX2xlbiBhbmQgY2FuIHVzZSBpdCB0byBmaW5k IHRoZSBuZXh0IGhlYWRlci4gICovCisgICBfX2Ntc2cgPSAoc3RydWN0IGNtc2doZHIgKikgKCh1 bnNpZ25lZCBjaGFyICopIF9fY21zZworIAkJCSAgICAgICArIENNU0dfQUxJR04gKF9fY21zZy0+ Y21zZ19sZW4pKTsKKy0gIGlmICgodW5zaWduZWQgY2hhciAqKSAoX19jbXNnICsgMSkgPiAoKHVu c2lnbmVkIGNoYXIgKikgX19taGRyLT5tc2dfY29udHJvbAorLQkJCQkJKyBfX21oZHItPm1zZ19j b250cm9sbGVuKQorLSAgICAgIHx8ICgodW5zaWduZWQgY2hhciAqKSBfX2Ntc2cgKyBDTVNHX0FM SUdOIChfX2Ntc2ctPmNtc2dfbGVuKQorLQkgID4gKCh1bnNpZ25lZCBjaGFyICopIF9fbWhkci0+ bXNnX2NvbnRyb2wgKyBfX21oZHItPm1zZ19jb250cm9sbGVuKSkpCistICAgIC8qIE5vIG1vcmUg ZW50cmllcy4gICovCistICAgIHJldHVybiAoc3RydWN0IGNtc2doZHIgKikgMDsKKyAgIHJldHVy biBfX2Ntc2c7CisgfQorICNlbmRpZgkvKiBVc2UgYGV4dGVybiBpbmxpbmUnLiAgKi8KK2RpZmYg LS1naXQgYS9zb2NrZXQvTWFrZWZpbGUgYi9zb2NrZXQvTWFrZWZpbGUKK2luZGV4IDE1NmVlYzZj ODUuLjJiZGU3ODM4N2YgMTAwNjQ0CistLS0gYS9zb2NrZXQvTWFrZWZpbGUKKysrKyBiL3NvY2tl dC9NYWtlZmlsZQorQEAgLTM0LDYgKzM0LDcgQEAgcm91dGluZXMgOj0gYWNjZXB0IGJpbmQgY29u bmVjdCBnZXRwZWVybmFtZSBnZXRzb2NrbmFtZSBnZXRzb2Nrb3B0CVwKKyB0ZXN0cyA6PSBcCisg ICB0c3QtYWNjZXB0NCBcCisgICB0c3Qtc29ja29wdCBcCisrICB0c3QtY21zZ2hkciBcCisgICAj IHRlc3RzCisgCisgdGVzdHMtaW50ZXJuYWwgOj0gXAorZGlmZiAtLWdpdCBhL3NvY2tldC90c3Qt Y21zZ2hkci1za2VsZXRvbi5jIGIvc29ja2V0L3RzdC1jbXNnaGRyLXNrZWxldG9uLmMKK25ldyBm aWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwLi40YzY4OTg1NjliCistLS0gL2Rldi9u dWxsCisrKysgYi9zb2NrZXQvdHN0LWNtc2doZHItc2tlbGV0b24uYworQEAgLTAsMCArMSw5MiBA QAorKy8qIFRlc3QgYW5jaWxsYXJ5IGRhdGEgaGVhZGVyIGNyZWF0aW9uLgorKyAgIENvcHlyaWdo dCAoQykgMjAyMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysgICBUaGlzIGZpbGUg aXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKysKKysgICBUaGUgR05VIEMgTGlicmFyeSBp cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKysgICBtb2Rp ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisr ICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg ZWl0aGVyCisrICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv bikgYW55IGxhdGVyIHZlcnNpb24uCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJp YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgICBidXQgV0lUSE9V VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAg IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl ZSB0aGUgR05VCisrICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0 YWlscy4KKysKKysgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg TGVzc2VyIEdlbmVyYWwgUHVibGljCisrICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBM aWJyYXJ5OyBpZiBub3QsIHNlZQorKyAgIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4u ICAqLworKworKy8qIFdlIHVzZSB0aGUgcHJlcHJvY2Vzc29yIHRvIGdlbmVyYXRlIHRoZSBmdW5j dGlvbi9tYWNybyB0ZXN0cyBpbnN0ZWFkIG9mCisrICAgdXNpbmcgaW5kaXJlY3Rpb24gYmVjYXVz ZSBoYXZpbmcgYWxsIHRoZSBtYWNybyBleHBhbnNpb25zIGFsb25nc2lkZQorKyAgIGVhY2ggb3Ro ZXIgbGV0cyB0aGUgY29tcGlsZXIgd2FybiB1cyBhYm91dCBzdXNwaWNpb3VzIHBvaW50ZXIKKysg ICBhcml0aG1ldGljIGFjcm9zcyBzdWJzZXF1ZW50IENNU0dfe0ZJUlNULE5YVH1IRFIgZXhwYW5z aW9ucy4gICovCisrCisrI2luY2x1ZGUgPHN0ZGludC5oPgorKworKyNkZWZpbmUgUlVOX1RFU1Rf Q09OQ0FUKHN1ZmZpeCkgcnVuX3Rlc3RfIyNzdWZmaXgKKysjZGVmaW5lIFJVTl9URVNUX0ZVTkNO QU1FKHN1ZmZpeCkgUlVOX1RFU1RfQ09OQ0FUIChzdWZmaXgpCisrCisrc3RhdGljIHZvaWQKKytS VU5fVEVTVF9GVU5DTkFNRSAoQ01TR19OWFRIRFJfSU1QTCkgKHZvaWQpCisreworKyAgc3RydWN0 IG1zZ2hkciBtID0gezB9OworKyAgc3RydWN0IGNtc2doZHIgKmNtc2c7CisrICBjaGFyIGNtc2di dWZbMyAqIENNU0dfU1BBQ0UgKHNpemVvZiAoUEFZTE9BRCkpXSA9IHswfTsKKysKKysgIG0ubXNn X2NvbnRyb2wgPSBjbXNnYnVmOworKyAgbS5tc2dfY29udHJvbGxlbiA9IHNpemVvZiAoY21zZ2J1 Zik7CisrCisrICAvKiBGaXJzdCBoZWFkZXIgc2hvdWxkIHBvaW50IHRvIHRoZSBzdGFydCBvZiB0 aGUgYnVmZmVyLiAgKi8KKysgIGNtc2cgPSBDTVNHX0ZJUlNUSERSICgmbSk7CisrICBURVNUX1ZF UklGWV9FWElUICgoY2hhciAqKSBjbXNnID09IGNtc2didWYpOworKworKyAgLyogSWYgdGhlIGZp cnN0IGhlYWRlciBsZW5ndGggY29uc3VtZXMgdGhlIGVudGlyZSBidWZmZXIsIHRoZXJlIGlzIG5v CisrICAgICBzcGFjZSByZW1haW5pbmcgZm9yIGFkZGl0aW9uYWwgaGVhZGVycy4gICovCisrICBj bXNnLT5jbXNnX2xlbiA9IHNpemVvZiAoY21zZ2J1Zik7CisrICBjbXNnID0gQ01TR19OWFRIRFJf SU1QTCAoJm0sIGNtc2cpOworKyAgVEVTVF9WRVJJRllfRVhJVCAoY21zZyA9PSBOVUxMKTsKKysK KysgIC8qIFRoZSBmaXJzdCBoZWFkZXIgbGVuZ3RoIGlzIHNvIGJpZywgdXNpbmcgaXQgd291bGQg Y2F1c2UgYW4gb3ZlcmZsb3cuICAqLworKyAgY21zZyA9IENNU0dfRklSU1RIRFIgKCZtKTsKKysg IFRFU1RfVkVSSUZZX0VYSVQgKChjaGFyICopIGNtc2cgPT0gY21zZ2J1Zik7CisrICBjbXNnLT5j bXNnX2xlbiA9IFNJWkVfTUFYOworKyAgY21zZyA9IENNU0dfTlhUSERSX0lNUEwgKCZtLCBjbXNn KTsKKysgIFRFU1RfVkVSSUZZX0VYSVQgKGNtc2cgPT0gTlVMTCk7CisrCisrICAvKiBUaGUgZmly c3QgaGVhZGVyIGxlYXZlcyBqdXN0IGVub3VnaCBzcGFjZSB0byBob2xkIGFub3RoZXIgaGVhZGVy LiAgKi8KKysgIGNtc2cgPSBDTVNHX0ZJUlNUSERSICgmbSk7CisrICBURVNUX1ZFUklGWV9FWElU ICgoY2hhciAqKSBjbXNnID09IGNtc2didWYpOworKyAgY21zZy0+Y21zZ19sZW4gPSBzaXplb2Yg KGNtc2didWYpIC0gc2l6ZW9mIChzdHJ1Y3QgY21zZ2hkcik7CisrICBjbXNnID0gQ01TR19OWFRI RFJfSU1QTCAoJm0sIGNtc2cpOworKyAgVEVTVF9WRVJJRllfRVhJVCAoY21zZyAhPSBOVUxMKTsK KysKKysgIC8qIFRoZSBmaXJzdCBoZWFkZXIgbGVhdmVzIHNwYWNlIGJ1dCBub3QgZW5vdWdoIGZv ciBhbm90aGVyIGhlYWRlci4gICovCisrICBjbXNnID0gQ01TR19GSVJTVEhEUiAoJm0pOworKyAg VEVTVF9WRVJJRllfRVhJVCAoKGNoYXIgKikgY21zZyA9PSBjbXNnYnVmKTsKKysgIGNtc2ctPmNt c2dfbGVuICsrOworKyAgY21zZyA9IENNU0dfTlhUSERSX0lNUEwgKCZtLCBjbXNnKTsKKysgIFRF U1RfVkVSSUZZX0VYSVQgKGNtc2cgPT0gTlVMTCk7CisrCisrICAvKiBUaGUgc2Vjb25kIGhlYWRl ciBsZWF2ZXMganVzdCBlbm91Z2ggc3BhY2UgdG8gaG9sZCBhbm90aGVyIGhlYWRlci4gICovCisr ICBjbXNnID0gQ01TR19GSVJTVEhEUiAoJm0pOworKyAgVEVTVF9WRVJJRllfRVhJVCAoKGNoYXIg KikgY21zZyA9PSBjbXNnYnVmKTsKKysgIGNtc2ctPmNtc2dfbGVuID0gQ01TR19MRU4gKHNpemVv ZiAoUEFZTE9BRCkpOworKyAgY21zZyA9IENNU0dfTlhUSERSX0lNUEwgKCZtLCBjbXNnKTsKKysg IFRFU1RfVkVSSUZZX0VYSVQgKGNtc2cgIT0gTlVMTCk7CisrICBjbXNnLT5jbXNnX2xlbiA9IHNp emVvZiAoY21zZ2J1ZikKKysgICAgICAgICAgICAgICAgICAgLSBDTVNHX1NQQUNFIChzaXplb2Yg KFBBWUxPQUQpKSAvKiBGaXJzdCBoZWFkZXIuICAqLworKyAgICAgICAgICAgICAgICAgICAtIHNp emVvZiAoc3RydWN0IGNtc2doZHIpOworKyAgY21zZyA9IENNU0dfTlhUSERSX0lNUEwgKCZtLCBj bXNnKTsKKysgIFRFU1RfVkVSSUZZX0VYSVQgKGNtc2cgIT0gTlVMTCk7CisrCisrICAvKiBUaGUg c2Vjb25kIGhlYWRlciBsZWF2ZXMgc3BhY2UgYnV0IG5vdCBlbm91Z2ggZm9yIGFub3RoZXIgaGVh ZGVyLiAgKi8KKysgIGNtc2cgPSBDTVNHX0ZJUlNUSERSICgmbSk7CisrICBURVNUX1ZFUklGWV9F WElUICgoY2hhciAqKSBjbXNnID09IGNtc2didWYpOworKyAgY21zZyA9IENNU0dfTlhUSERSX0lN UEwgKCZtLCBjbXNnKTsKKysgIFRFU1RfVkVSSUZZX0VYSVQgKGNtc2cgIT0gTlVMTCk7CisrICBj bXNnLT5jbXNnX2xlbiArKzsKKysgIGNtc2cgPSBDTVNHX05YVEhEUl9JTVBMICgmbSwgY21zZyk7 CisrICBURVNUX1ZFUklGWV9FWElUIChjbXNnID09IE5VTEwpOworKworKyAgcmV0dXJuOworK30K K2RpZmYgLS1naXQgYS9zb2NrZXQvdHN0LWNtc2doZHIuYyBiL3NvY2tldC90c3QtY21zZ2hkci5j CituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMC4uNjhjOTZkM2M5ZAorLS0t IC9kZXYvbnVsbAorKysrIGIvc29ja2V0L3RzdC1jbXNnaGRyLmMKK0BAIC0wLDAgKzEsNTYgQEAK KysvKiBUZXN0IGFuY2lsbGFyeSBkYXRhIGhlYWRlciBjcmVhdGlvbi4KKysgICBDb3B5cmlnaHQg KEMpIDIwMjIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrICAgVGhpcyBmaWxlIGlz IHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkgaXMg ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisrICAgbW9kaWZ5 IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAg IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp dGhlcgorKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p IGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1 dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0IFdJVEhPVVQg QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysgICBN RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg dGhlIEdOVQorKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp bHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExl c3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGli cmFyeTsgaWYgbm90LCBzZWUKKysgICA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAg Ki8KKysKKysjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgorKyNpbmNsdWRlIDxnbnUvbGliLW5hbWVz Lmg+CisrI2luY2x1ZGUgPHN1cHBvcnQveGRsZmNuLmg+CisrI2luY2x1ZGUgPHN1cHBvcnQvY2hl Y2suaD4KKysKKysjZGVmaW5lIFBBWUxPQUQgIkhlbGxvLCBXb3JsZCEiCisrCisrLyogQ01TR19O WFRIRFIgaXMgYSBtYWNybyB0aGF0IGNhbGxzIGFuIGlubGluZSBmdW5jdGlvbiBkZWZpbmVkIGlu CisrICAgYml0cy9zb2NrZXQuaC4gIEluIGNhc2UgdGhlIGZ1bmN0aW9uIGNhbm5vdCBiZSBpbmxp bmVkLCBsaWJjLnNvIGNhcnJpZXMKKysgICBhIGNvcHkuICBCb3RoIHZlcnNpb25zIG5lZWQgdG8g YmUgdGVzdGVkLiAgKi8KKysKKysjZGVmaW5lIENNU0dfTlhUSERSX0lNUEwgQ01TR19OWFRIRFIK KysjaW5jbHVkZSAidHN0LWNtc2doZHItc2tlbGV0b24uYyIKKysjdW5kZWYgQ01TR19OWFRIRFJf SU1QTAorKworK3N0YXRpYyBzdHJ1Y3QgY21zZ2hkciAqICgqIGNtc2dfbnh0aGRyKSAoc3RydWN0 IG1zZ2hkciAqLCBzdHJ1Y3QgY21zZ2hkciAqKTsKKysKKysjZGVmaW5lIENNU0dfTlhUSERSX0lN UEwgY21zZ19ueHRoZHIKKysjaW5jbHVkZSAidHN0LWNtc2doZHItc2tlbGV0b24uYyIKKysjdW5k ZWYgQ01TR19OWFRIRFJfSU1QTAorKworK3N0YXRpYyBpbnQKKytkb190ZXN0ICh2b2lkKQorK3sK KysgIHN0YXRpYyB2b2lkICpoYW5kbGU7CisrCisrICBydW5fdGVzdF9DTVNHX05YVEhEUiAoKTsK KysKKysgIGhhbmRsZSA9IHhkbG9wZW4gKExJQkNfU08sIFJUTERfTEFaWSk7CisrICBjbXNnX254 dGhkciA9IChzdHJ1Y3QgY21zZ2hkciAqICgqKSAoc3RydWN0IG1zZ2hkciAqLCBzdHJ1Y3QgY21z Z2hkciAqKSkKKysgICAgICAgICAgICAgICAgICB4ZGxzeW0gKGhhbmRsZSwgIl9fY21zZ19ueHRo ZHIiKTsKKysKKysgIHJ1bl90ZXN0X2Ntc2dfbnh0aGRyICgpOworKworKyAgcmV0dXJuIDA7Cisr fQorKworKyNpbmNsdWRlIDxzdXBwb3J0L3Rlc3QtZHJpdmVyLmM+CitkaWZmIC0tZ2l0IGEvc3lz ZGVwcy9tYWNoL2h1cmQvYml0cy9zb2NrZXQuaCBiL3N5c2RlcHMvbWFjaC9odXJkL2JpdHMvc29j a2V0LmgKK2luZGV4IDViMzVlYTgxZWMuLjcwZmNlNGZiMjcgMTAwNjQ0CistLS0gYS9zeXNkZXBz L21hY2gvaHVyZC9iaXRzL3NvY2tldC5oCisrKysgYi9zeXNkZXBzL21hY2gvaHVyZC9iaXRzL3Nv Y2tldC5oCitAQCAtMjQ5LDYgKzI0OSwxMiBAQCBzdHJ1Y3QgY21zZ2hkcgorIAkJCSArIENNU0df QUxJR04gKHNpemVvZiAoc3RydWN0IGNtc2doZHIpKSkKKyAjZGVmaW5lIENNU0dfTEVOKGxlbikg ICAoQ01TR19BTElHTiAoc2l6ZW9mIChzdHJ1Y3QgY21zZ2hkcikpICsgKGxlbikpCisgCisrLyog R2l2ZW4gYSBsZW5ndGgsIHJldHVybiB0aGUgYWRkaXRpb25hbCBwYWRkaW5nIG5lY2Vzc2FyeSBz dWNoIHRoYXQKKysgICBsZW4gKyBfX0NNU0dfUEFERElORyhsZW4pID09IENNU0dfQUxJR04gKGxl bikuICAqLworKyNkZWZpbmUgX19DTVNHX1BBRERJTkcobGVuKSAoKHNpemVvZiAoc2l6ZV90KSBc CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSAoKGxlbikgJiAoc2l6ZW9mIChzaXpl X3QpIC0gMSkpKSBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmIChzaXplb2YgKHNp emVfdCkgLSAxKSkKKysKKyBleHRlcm4gc3RydWN0IGNtc2doZHIgKl9fY21zZ19ueHRoZHIgKHN0 cnVjdCBtc2doZHIgKl9fbWhkciwKKyAJCQkJICAgICAgc3RydWN0IGNtc2doZHIgKl9fY21zZykg X19USFJPVzsKKyAjaWZkZWYgX19VU0VfRVhURVJOX0lOTElORVMKK0BAIC0yNTgsMTggKzI2NCwz OCBAQCBleHRlcm4gc3RydWN0IGNtc2doZHIgKl9fY21zZ19ueHRoZHIgKHN0cnVjdCBtc2doZHIg Kl9fbWhkciwKKyBfRVhURVJOX0lOTElORSBzdHJ1Y3QgY21zZ2hkciAqCisgX19OVEggKF9fY21z Z19ueHRoZHIgKHN0cnVjdCBtc2doZHIgKl9fbWhkciwgc3RydWN0IGNtc2doZHIgKl9fY21zZykp CisgeworKyAgLyogV2UgbWF5IHNhZmVseSBhc3N1bWUgdGhhdCBfX2Ntc2cgbGllcyBiZXR3ZWVu IF9fbWhkci0+bXNnX2NvbnRyb2wgYW5kCisrICAgICBfX21oZHItPm1zZ19jb250cm9sbGVuIGJl Y2F1c2UgdGhlIHVzZXIgaXMgcmVxdWlyZWQgdG8gb2J0YWluIHRoZSBmaXJzdAorKyAgICAgY21z ZyB2aWEgQ01TR19GSVJTVEhEUiwgc2V0IGl0cyBsZW5ndGgsIHRoZW4gb2J0YWluIHN1YnNlcXVl bnQgY21zZ3MKKysgICAgIHZpYSBDTVNHX05YVEhEUiwgc2V0dGluZyBsZW5ndGhzIGFsb25nIHRo ZSB3YXkuICBIb3dldmVyLCB3ZSBkb24ndCB5ZXQKKysgICAgIHRydXN0IHRoZSB2YWx1ZSBvZiBf X2Ntc2ctPmNtc2dfbGVuIGFuZCB0aGVyZWZvcmUgZG8gbm90IHVzZSBpdCBpbiBhbnkKKysgICAg IHBvaW50ZXIgYXJpdGhtZXRpYyB1bnRpbCB3ZSBjaGVjayBpdHMgdmFsdWUuICAqLworKworKyAg dW5zaWduZWQgY2hhciAqIF9fbXNnX2NvbnRyb2xfcHRyID0gKHVuc2lnbmVkIGNoYXIgKikgX19t aGRyLT5tc2dfY29udHJvbDsKKysgIHVuc2lnbmVkIGNoYXIgKiBfX2Ntc2dfcHRyID0gKHVuc2ln bmVkIGNoYXIgKikgX19jbXNnOworKworKyAgc2l6ZV90IF9fc2l6ZV9uZWVkZWQgPSBzaXplb2Yg KHN0cnVjdCBjbXNnaGRyKQorKyAgICAgICAgICAgICAgICAgICAgICAgICArIF9fQ01TR19QQURE SU5HIChfX2Ntc2ctPmNtc2dfbGVuKTsKKysKKysgIC8qIFRoZSBjdXJyZW50IGhlYWRlciBpcyBt YWxmb3JtZWQsIHRvbyBzbWFsbCB0byBiZSBhIGZ1bGwgaGVhZGVyLiAgKi8KKyAgIGlmICgoc2l6 ZV90KSBfX2Ntc2ctPmNtc2dfbGVuIDwgc2l6ZW9mIChzdHJ1Y3QgY21zZ2hkcikpCistICAgIC8q IFRoZSBrZXJuZWwgaGVhZGVyIGRvZXMgdGhpcyBzbyB0aGVyZSBtYXkgYmUgYSByZWFzb24uICAq LworICAgICByZXR1cm4gKHN0cnVjdCBjbXNnaGRyICopIDA7CisgCisrICAvKiBUaGVyZSBpc24n dCBlbm91Z2ggc3BhY2UgYmV0d2VlbiBfX2Ntc2cgYW5kIHRoZSBlbmQgb2YgdGhlIGJ1ZmZlciB0 bworKyAgaG9sZCB0aGUgY3VycmVudCBjbXNnICphbmQqIHRoZSBuZXh0IG9uZS4gICovCisrICBp ZiAoKChzaXplX3QpCisrICAgICAgICAgKF9fbXNnX2NvbnRyb2xfcHRyICsgX19taGRyLT5tc2df Y29udHJvbGxlbiAtIF9fY21zZ19wdHIpCisrICAgICAgIDwgX19zaXplX25lZWRlZCkKKysgICAg ICB8fCAoKHNpemVfdCkKKysgICAgICAgICAgICAoX19tc2dfY29udHJvbF9wdHIgKyBfX21oZHIt Pm1zZ19jb250cm9sbGVuIC0gX19jbXNnX3B0cgorKyAgICAgICAgICAgICAtIF9fc2l6ZV9uZWVk ZWQpCisrICAgICAgICAgIDwgX19jbXNnLT5jbXNnX2xlbikpCisrCisrICAgIHJldHVybiAoc3Ry dWN0IGNtc2doZHIgKikgMDsKKysKKysgIC8qIE5vdywgd2UgdHJ1c3QgY21zZ19sZW4gYW5kIGNh biB1c2UgaXQgdG8gZmluZCB0aGUgbmV4dCBoZWFkZXIuICAqLworICAgX19jbXNnID0gKHN0cnVj dCBjbXNnaGRyICopICgodW5zaWduZWQgY2hhciAqKSBfX2Ntc2cKKyAJCQkgICAgICAgKyBDTVNH X0FMSUdOIChfX2Ntc2ctPmNtc2dfbGVuKSk7CistICBpZiAoKHVuc2lnbmVkIGNoYXIgKikgKF9f Y21zZyArIDEpID4gKCh1bnNpZ25lZCBjaGFyICopIF9fbWhkci0+bXNnX2NvbnRyb2wKKy0JCQkJ CSsgX19taGRyLT5tc2dfY29udHJvbGxlbikKKy0gICAgICB8fCAoKHVuc2lnbmVkIGNoYXIgKikg X19jbXNnICsgQ01TR19BTElHTiAoX19jbXNnLT5jbXNnX2xlbikKKy0JICA+ICgodW5zaWduZWQg Y2hhciAqKSBfX21oZHItPm1zZ19jb250cm9sICsgX19taGRyLT5tc2dfY29udHJvbGxlbikpKQor LSAgICAvKiBObyBtb3JlIGVudHJpZXMuICAqLworLSAgICByZXR1cm4gKHN0cnVjdCBjbXNnaGRy ICopIDA7CisgICByZXR1cm4gX19jbXNnOworIH0KKyAjZW5kaWYJLyogVXNlIGBleHRlcm4gaW5s aW5lJy4gICovCitkaWZmIC0tZ2l0IGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvYml0cy9zb2Nr ZXQuaCBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2JpdHMvc29ja2V0LmgKK2luZGV4IDRmMWY4 MTBlYTEuLjUzOWI4ZDc3MTYgMTAwNjQ0CistLS0gYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9i aXRzL3NvY2tldC5oCisrKysgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9iaXRzL3NvY2tldC5o CitAQCAtMzA3LDYgKzMwNywxMiBAQCBzdHJ1Y3QgY21zZ2hkcgorIAkJCSArIENNU0dfQUxJR04g KHNpemVvZiAoc3RydWN0IGNtc2doZHIpKSkKKyAjZGVmaW5lIENNU0dfTEVOKGxlbikgICAoQ01T R19BTElHTiAoc2l6ZW9mIChzdHJ1Y3QgY21zZ2hkcikpICsgKGxlbikpCisgCisrLyogR2l2ZW4g YSBsZW5ndGgsIHJldHVybiB0aGUgYWRkaXRpb25hbCBwYWRkaW5nIG5lY2Vzc2FyeSBzdWNoIHRo YXQKKysgICBsZW4gKyBfX0NNU0dfUEFERElORyhsZW4pID09IENNU0dfQUxJR04gKGxlbikuICAq LworKyNkZWZpbmUgX19DTVNHX1BBRERJTkcobGVuKSAoKHNpemVvZiAoc2l6ZV90KSBcCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLSAoKGxlbikgJiAoc2l6ZW9mIChzaXplX3QpIC0g MSkpKSBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmIChzaXplb2YgKHNpemVfdCkg LSAxKSkKKysKKyBleHRlcm4gc3RydWN0IGNtc2doZHIgKl9fY21zZ19ueHRoZHIgKHN0cnVjdCBt c2doZHIgKl9fbWhkciwKKyAJCQkJICAgICAgc3RydWN0IGNtc2doZHIgKl9fY21zZykgX19USFJP VzsKKyAjaWZkZWYgX19VU0VfRVhURVJOX0lOTElORVMKK0BAIC0zMTYsMTggKzMyMiwzOCBAQCBl eHRlcm4gc3RydWN0IGNtc2doZHIgKl9fY21zZ19ueHRoZHIgKHN0cnVjdCBtc2doZHIgKl9fbWhk ciwKKyBfRVhURVJOX0lOTElORSBzdHJ1Y3QgY21zZ2hkciAqCisgX19OVEggKF9fY21zZ19ueHRo ZHIgKHN0cnVjdCBtc2doZHIgKl9fbWhkciwgc3RydWN0IGNtc2doZHIgKl9fY21zZykpCisgewor KyAgLyogV2UgbWF5IHNhZmVseSBhc3N1bWUgdGhhdCBfX2Ntc2cgbGllcyBiZXR3ZWVuIF9fbWhk ci0+bXNnX2NvbnRyb2wgYW5kCisrICAgICBfX21oZHItPm1zZ19jb250cm9sbGVuIGJlY2F1c2Ug dGhlIHVzZXIgaXMgcmVxdWlyZWQgdG8gb2J0YWluIHRoZSBmaXJzdAorKyAgICAgY21zZyB2aWEg Q01TR19GSVJTVEhEUiwgc2V0IGl0cyBsZW5ndGgsIHRoZW4gb2J0YWluIHN1YnNlcXVlbnQgY21z Z3MKKysgICAgIHZpYSBDTVNHX05YVEhEUiwgc2V0dGluZyBsZW5ndGhzIGFsb25nIHRoZSB3YXku ICBIb3dldmVyLCB3ZSBkb24ndCB5ZXQKKysgICAgIHRydXN0IHRoZSB2YWx1ZSBvZiBfX2Ntc2ct PmNtc2dfbGVuIGFuZCB0aGVyZWZvcmUgZG8gbm90IHVzZSBpdCBpbiBhbnkKKysgICAgIHBvaW50 ZXIgYXJpdGhtZXRpYyB1bnRpbCB3ZSBjaGVjayBpdHMgdmFsdWUuICAqLworKworKyAgdW5zaWdu ZWQgY2hhciAqIF9fbXNnX2NvbnRyb2xfcHRyID0gKHVuc2lnbmVkIGNoYXIgKikgX19taGRyLT5t c2dfY29udHJvbDsKKysgIHVuc2lnbmVkIGNoYXIgKiBfX2Ntc2dfcHRyID0gKHVuc2lnbmVkIGNo YXIgKikgX19jbXNnOworKworKyAgc2l6ZV90IF9fc2l6ZV9uZWVkZWQgPSBzaXplb2YgKHN0cnVj dCBjbXNnaGRyKQorKyAgICAgICAgICAgICAgICAgICAgICAgICArIF9fQ01TR19QQURESU5HIChf X2Ntc2ctPmNtc2dfbGVuKTsKKysKKysgIC8qIFRoZSBjdXJyZW50IGhlYWRlciBpcyBtYWxmb3Jt ZWQsIHRvbyBzbWFsbCB0byBiZSBhIGZ1bGwgaGVhZGVyLiAgKi8KKyAgIGlmICgoc2l6ZV90KSBf X2Ntc2ctPmNtc2dfbGVuIDwgc2l6ZW9mIChzdHJ1Y3QgY21zZ2hkcikpCistICAgIC8qIFRoZSBr ZXJuZWwgaGVhZGVyIGRvZXMgdGhpcyBzbyB0aGVyZSBtYXkgYmUgYSByZWFzb24uICAqLworICAg ICByZXR1cm4gKHN0cnVjdCBjbXNnaGRyICopIDA7CisgCisrICAvKiBUaGVyZSBpc24ndCBlbm91 Z2ggc3BhY2UgYmV0d2VlbiBfX2Ntc2cgYW5kIHRoZSBlbmQgb2YgdGhlIGJ1ZmZlciB0bworKyAg aG9sZCB0aGUgY3VycmVudCBjbXNnICphbmQqIHRoZSBuZXh0IG9uZS4gICovCisrICBpZiAoKChz aXplX3QpCisrICAgICAgICAgKF9fbXNnX2NvbnRyb2xfcHRyICsgX19taGRyLT5tc2dfY29udHJv bGxlbiAtIF9fY21zZ19wdHIpCisrICAgICAgIDwgX19zaXplX25lZWRlZCkKKysgICAgICB8fCAo KHNpemVfdCkKKysgICAgICAgICAgICAoX19tc2dfY29udHJvbF9wdHIgKyBfX21oZHItPm1zZ19j b250cm9sbGVuIC0gX19jbXNnX3B0cgorKyAgICAgICAgICAgICAtIF9fc2l6ZV9uZWVkZWQpCisr ICAgICAgICAgIDwgX19jbXNnLT5jbXNnX2xlbikpCisrCisrICAgIHJldHVybiAoc3RydWN0IGNt c2doZHIgKikgMDsKKysKKysgIC8qIE5vdywgd2UgdHJ1c3QgY21zZ19sZW4gYW5kIGNhbiB1c2Ug aXQgdG8gZmluZCB0aGUgbmV4dCBoZWFkZXIuICAqLworICAgX19jbXNnID0gKHN0cnVjdCBjbXNn aGRyICopICgodW5zaWduZWQgY2hhciAqKSBfX2Ntc2cKKyAJCQkgICAgICAgKyBDTVNHX0FMSUdO IChfX2Ntc2ctPmNtc2dfbGVuKSk7CistICBpZiAoKHVuc2lnbmVkIGNoYXIgKikgKF9fY21zZyAr IDEpID4gKCh1bnNpZ25lZCBjaGFyICopIF9fbWhkci0+bXNnX2NvbnRyb2wKKy0JCQkJCSsgX19t aGRyLT5tc2dfY29udHJvbGxlbikKKy0gICAgICB8fCAoKHVuc2lnbmVkIGNoYXIgKikgX19jbXNn ICsgQ01TR19BTElHTiAoX19jbXNnLT5jbXNnX2xlbikKKy0JICA+ICgodW5zaWduZWQgY2hhciAq KSBfX21oZHItPm1zZ19jb250cm9sICsgX19taGRyLT5tc2dfY29udHJvbGxlbikpKQorLSAgICAv KiBObyBtb3JlIGVudHJpZXMuICAqLworLSAgICByZXR1cm4gKHN0cnVjdCBjbXNnaGRyICopIDA7 CisgICByZXR1cm4gX19jbXNnOworIH0KKyAjZW5kaWYJLyogVXNlIGBleHRlcm4gaW5saW5lJy4g ICovCitkaWZmIC0tZ2l0IGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvY21zZ19ueHRoZHIuYyBi L3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2Ntc2dfbnh0aGRyLmMKK2luZGV4IDE1YjdhM2E5MjUu LjI0ZjcyYjc5N2EgMTAwNjQ0CistLS0gYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9jbXNnX254 dGhkci5jCisrKysgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9jbXNnX254dGhkci5jCitAQCAt MjMsMTggKzIzLDM4IEBACisgc3RydWN0IGNtc2doZHIgKgorIF9fY21zZ19ueHRoZHIgKHN0cnVj dCBtc2doZHIgKm1oZHIsIHN0cnVjdCBjbXNnaGRyICpjbXNnKQorIHsKKysgIC8qIFdlIG1heSBz YWZlbHkgYXNzdW1lIHRoYXQgY21zZyBsaWVzIGJldHdlZW4gbWhkci0+bXNnX2NvbnRyb2wgYW5k CisrICAgICBtaGRyLT5tc2dfY29udHJvbGxlbiBiZWNhdXNlIHRoZSB1c2VyIGlzIHJlcXVpcmVk IHRvIG9idGFpbiB0aGUgZmlyc3QKKysgICAgIGNtc2cgdmlhIENNU0dfRklSU1RIRFIsIHNldCBp dHMgbGVuZ3RoLCB0aGVuIG9idGFpbiBzdWJzZXF1ZW50IGNtc2dzCisrICAgICB2aWEgQ01TR19O WFRIRFIsIHNldHRpbmcgbGVuZ3RocyBhbG9uZyB0aGUgd2F5LiAgSG93ZXZlciwgd2UgZG9uJ3Qg eWV0CisrICAgICB0cnVzdCB0aGUgdmFsdWUgb2YgY21zZy0+Y21zZ19sZW4gYW5kIHRoZXJlZm9y ZSBkbyBub3QgdXNlIGl0IGluIGFueQorKyAgICAgcG9pbnRlciBhcml0aG1ldGljIHVudGlsIHdl IGNoZWNrIGl0cyB2YWx1ZS4gICovCisrCisrICB1bnNpZ25lZCBjaGFyICogbXNnX2NvbnRyb2xf cHRyID0gKHVuc2lnbmVkIGNoYXIgKikgbWhkci0+bXNnX2NvbnRyb2w7CisrICB1bnNpZ25lZCBj aGFyICogY21zZ19wdHIgPSAodW5zaWduZWQgY2hhciAqKSBjbXNnOworKworKyAgc2l6ZV90IHNp emVfbmVlZGVkID0gc2l6ZW9mIChzdHJ1Y3QgY21zZ2hkcikKKysgICAgICAgICAgICAgICAgICAg ICAgICsgX19DTVNHX1BBRERJTkcgKGNtc2ctPmNtc2dfbGVuKTsKKysKKysgIC8qIFRoZSBjdXJy ZW50IGhlYWRlciBpcyBtYWxmb3JtZWQsIHRvbyBzbWFsbCB0byBiZSBhIGZ1bGwgaGVhZGVyLiAg Ki8KKyAgIGlmICgoc2l6ZV90KSBjbXNnLT5jbXNnX2xlbiA8IHNpemVvZiAoc3RydWN0IGNtc2do ZHIpKQorLSAgICAvKiBUaGUga2VybmVsIGhlYWRlciBkb2VzIHRoaXMgc28gdGhlcmUgbWF5IGJl IGEgcmVhc29uLiAgKi8KKy0gICAgcmV0dXJuIE5VTEw7CisrICAgIHJldHVybiAoc3RydWN0IGNt c2doZHIgKikgMDsKKysKKysgIC8qIFRoZXJlIGlzbid0IGVub3VnaCBzcGFjZSBiZXR3ZWVuIGNt c2cgYW5kIHRoZSBlbmQgb2YgdGhlIGJ1ZmZlciB0bworKyAgaG9sZCB0aGUgY3VycmVudCBjbXNn ICphbmQqIHRoZSBuZXh0IG9uZS4gICovCisrICBpZiAoKChzaXplX3QpCisrICAgICAgICAgKG1z Z19jb250cm9sX3B0ciArIG1oZHItPm1zZ19jb250cm9sbGVuIC0gY21zZ19wdHIpCisrICAgICAg IDwgc2l6ZV9uZWVkZWQpCisrICAgICAgfHwgKChzaXplX3QpCisrICAgICAgICAgICAgKG1zZ19j b250cm9sX3B0ciArIG1oZHItPm1zZ19jb250cm9sbGVuIC0gY21zZ19wdHIKKysgICAgICAgICAg ICAgLSBzaXplX25lZWRlZCkKKysgICAgICAgICAgPCBjbXNnLT5jbXNnX2xlbikpCisrCisrICAg IHJldHVybiAoc3RydWN0IGNtc2doZHIgKikgMDsKKyAKKysgIC8qIE5vdywgd2UgdHJ1c3QgY21z Z19sZW4gYW5kIGNhbiB1c2UgaXQgdG8gZmluZCB0aGUgbmV4dCBoZWFkZXIuICAqLworICAgY21z ZyA9IChzdHJ1Y3QgY21zZ2hkciAqKSAoKHVuc2lnbmVkIGNoYXIgKikgY21zZworIAkJCSAgICAg KyBDTVNHX0FMSUdOIChjbXNnLT5jbXNnX2xlbikpOworLSAgaWYgKCh1bnNpZ25lZCBjaGFyICop IChjbXNnICsgMSkgPiAoKHVuc2lnbmVkIGNoYXIgKikgbWhkci0+bXNnX2NvbnRyb2wKKy0JCQkJ ICAgICAgKyBtaGRyLT5tc2dfY29udHJvbGxlbikKKy0gICAgICB8fCAoKHVuc2lnbmVkIGNoYXIg KikgY21zZyArIENNU0dfQUxJR04gKGNtc2ctPmNtc2dfbGVuKQorLQkgID4gKCh1bnNpZ25lZCBj aGFyICopIG1oZHItPm1zZ19jb250cm9sICsgbWhkci0+bXNnX2NvbnRyb2xsZW4pKSkKKy0gICAg LyogTm8gbW9yZSBlbnRyaWVzLiAgKi8KKy0gICAgcmV0dXJuIE5VTEw7CisgICByZXR1cm4gY21z ZzsKKyB9CisgbGliY19oaWRkZW5fZGVmIChfX2Ntc2dfbnh0aGRyKQorLS0gCisyLjM4LjEKKwor CitGcm9tIDVjNjI4NzRmNDIzYWY5M2U5N2I1MWJjOWE1N2FmMjI4YTU0NjE1NmYgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCitGcm9tOiBBcmp1biBTaGFua2FyIDxhcmp1bkByZWRoYXQuY29tPgor RGF0ZTogTW9uLCAyMiBBdWcgMjAyMiAxODoyMToxNCArMDIwMAorU3ViamVjdDogTkVXUzogQWRk IGVudHJ5IGZvciBidWcgMjg4NDYKKworLS0tCisgTkVXUyB8IDEgKworIDEgZmlsZSBjaGFuZ2Vk LCAxIGluc2VydGlvbigrKQorCitkaWZmIC0tZ2l0IGEvTkVXUyBiL05FV1MKK2luZGV4IGJlY2Fi M2FkZTkuLmFlMzA5MDBiYmMgMTAwNjQ0CistLS0gYS9ORVdTCisrKysgYi9ORVdTCitAQCAtOSw2 ICs5LDcgQEAgVmVyc2lvbiAyLjM2LjEKKyAKKyBUaGUgZm9sbG93aW5nIGJ1Z3MgYXJlIHJlc29s dmVkIHdpdGggdGhpcyByZWxlYXNlOgorIAorKyAgWzI4ODQ2XSBDTVNHX05YVEhEUiBtYXkgdHJp Z2dlciAtV3N0cmljdC1vdmVyZmxvdyB3YXJuaW5nCisgICBbMjk0NDZdIF9kbG9wZW4gbm93IGln bm9yZXMgZGxfY2FsbGVyIGFyZ3VtZW50IGluIHN0YXRpYyBtb2RlCisgICBbMjk0ODVdIExpbnV4 OiBUZXJtaW5hdGUgc3VicHJvY2VzcyBvbiBsYXRlIGZhaWx1cmUgaW4gdHN0LXBpZGZkCisgICBb Mjk0OTBdIGFscGhhOiBOZXcgX19icmtfY2FsbCBpbXBsZW1lbnRhdGlvbiBpcyBicm9rZW4KKy0t IAorMi4zOC4xCisKKworRnJvbSAwMDYyZTdkZDFjMzY3NGVjZTJkYWNhNTNhODk4YmFkZDI4YjYw NDIxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQWRoZW1lcnZhbCBaYW5lbGxhIDxh ZGhlbWVydmFsLnphbmVsbGFAbGluYXJvLm9yZz4KK0RhdGU6IFdlZCwgMTAgQXVnIDIwMjIgMTY6 MjQ6MDYgLTAzMDAKK1N1YmplY3Q6IGdsaWJjZXh0cmFjdC5weTogQWRkIGNvbXBpbGVfY19zbmlw cGV0CisKK0l0IG1pZ2h0IGJlIHVzZWQgb24gdGVzdHMgdG8gY2hlY2sgaWYgYSBzbmlwcGV0IGJ1 aWxkIHdpdGggdGhlIHByb3ZpZGVkCitjb21waWxlciBhbmQgZmxhZ3MuCisKK1Jldmlld2VkLWJ5 OiBGbG9yaWFuIFdlaW1lciA8ZndlaW1lckByZWRoYXQuY29tPgorKGNoZXJyeSBwaWNrZWQgZnJv bSBjb21taXQgODQxYWZhMTE2ZTMyYjNjNzE5NTQ3NTc2OWMyNmJmNDZmZDg3MGQzMikKKy0tLQor IHNjcmlwdHMvZ2xpYmNleHRyYWN0LnB5IHwgMTkgKysrKysrKysrKysrKysrKysrKworIDEgZmls ZSBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9zY3JpcHRzL2dsaWJj ZXh0cmFjdC5weSBiL3NjcmlwdHMvZ2xpYmNleHRyYWN0LnB5CitpbmRleCA0M2FiNThmZmUyLi4z NmQyMDRjOWIwIDEwMDY0NAorLS0tIGEvc2NyaXB0cy9nbGliY2V4dHJhY3QucHkKKysrKyBiL3Nj cmlwdHMvZ2xpYmNleHRyYWN0LnB5CitAQCAtMTcsNiArMTcsNyBAQAorICMgTGljZW5zZSBhbG9u ZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorICMgPGh0dHBzOi8vd3d3Lmdu dS5vcmcvbGljZW5zZXMvPi4KKyAKKytpbXBvcnQgY29sbGVjdGlvbnMKKyBpbXBvcnQgb3MucGF0 aAorIGltcG9ydCByZQorIGltcG9ydCBzdWJwcm9jZXNzCitAQCAtMTczLDMgKzE3NCwyMSBAQCBk ZWYgY29tcGFyZV9tYWNyb19jb25zdHMoc291cmNlXzEsIHNvdXJjZV8yLCBjYywgbWFjcm9fcmUs IGV4Y2x1ZGVfcmU9Tm9uZSwKKyAgICAgICAgICAgICBpZiBub3QgYWxsb3dfZXh0cmFfMjoKKyAg ICAgICAgICAgICAgICAgcmV0ID0gMQorICAgICByZXR1cm4gcmV0CisrCisrQ29tcGlsZVJlc3Vs dCA9IGNvbGxlY3Rpb25zLm5hbWVkdHVwbGUoIkNvbXBpbGVSZXN1bHQiLCAicmV0dXJuY29kZSBv dXRwdXQiKQorKworK2RlZiBjb21waWxlX2Nfc25pcHBldChzbmlwcGV0LCBjYywgZXh0cmFfY2Nf YXJncz0nJyk6CisrICAgICIiIkNvbXBpbGUgYW5kIHJldHVybiB3aGV0aGVyIHRoZSBTTklQUEVU IGNhbiBiZSBidWlsZCB3aXRoIENDIGFsb25nCisrICAgICAgIEVYVFJBX0NDX0FSR1MgY29tcGls ZXIgZmxhZ3MuICBSZXR1cm4gYSBDb21waWxlUmVzdWx0IHdpdGggUkVUVVJOQ09ERQorKyAgICAg ICBiZWluZyAwIGZvciBzdWNjZXNzLCBvciB0aGUgZmFpbHVyZSB2YWx1ZSBhbmQgdGhlIGNvbXBp bGVyIG91dHB1dC4KKysgICAgIiIiCisrICAgIHdpdGggdGVtcGZpbGUuVGVtcG9yYXJ5RGlyZWN0 b3J5KCkgYXMgdGVtcF9kaXI6CisrICAgICAgICBjX2ZpbGVfbmFtZSA9IG9zLnBhdGguam9pbih0 ZW1wX2RpciwgJ3Rlc3QuYycpCisrICAgICAgICBvYmpfZmlsZV9uYW1lID0gb3MucGF0aC5qb2lu KHRlbXBfZGlyLCAndGVzdC5vJykKKysgICAgICAgIHdpdGggb3BlbihjX2ZpbGVfbmFtZSwgJ3cn KSBhcyBjX2ZpbGU6CisrICAgICAgICAgICAgY19maWxlLndyaXRlKHNuaXBwZXQgKyAnXG4nKQor KyAgICAgICAgY21kID0gY2Muc3BsaXQoKSArIGV4dHJhX2NjX2FyZ3Muc3BsaXQoKSArIFsnLWMn LCAnLW8nLCBvYmpfZmlsZV9uYW1lLAorKyAgICAgICAgICAgICAgICBjX2ZpbGVfbmFtZV0KKysg ICAgICAgIHIgPSBzdWJwcm9jZXNzLnJ1bihjbWQsIGNoZWNrPUZhbHNlLCBzdGRvdXQ9c3VicHJv Y2Vzcy5QSVBFLAorKyAgICAgICAgICAgICAgICBzdGRlcnI9c3VicHJvY2Vzcy5TVERPVVQpCisr ICAgICAgICByZXR1cm4gQ29tcGlsZVJlc3VsdChyLnJldHVybmNvZGUsIHIuc3Rkb3V0KQorLS0g CisyLjM4LjEKKworCitGcm9tIDFjYzU1MTMxMTRlNzYwODM2NjljYmExYjExMjUyYWFkMzU1MjVl NjkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBZGhlbWVydmFsIFphbmVsbGEgPGFk aGVtZXJ2YWwuemFuZWxsYUBsaW5hcm8ub3JnPgorRGF0ZTogV2VkLCAxMCBBdWcgMjAyMiAxNDoy NDo0NCAtMDMwMAorU3ViamVjdDogbGludXg6IFVzZSBjb21waWxlX2Nfc25pcHBldCB0byBjaGVj ayBsaW51eC9waWRmZC5oIGF2YWlsYWJpbGl0eQorCitJbnN0ZWFkIG9mIHR5aW5nIHRvIGEgc3Bl Y2lmaWMga2VybmVsIHZlcnNpb24uCisKK0NoZWNrZWQgb24geDg2XzY0LWxpbnV4LWdudS4KKwor UmV2aWV3ZWQtYnk6IEZsb3JpYW4gV2VpbWVyIDxmd2VpbWVyQHJlZGhhdC5jb20+CisoY2hlcnJ5 IHBpY2tlZCBmcm9tIGNvbW1pdCAxNTQyMDE5YjY5YjdlYzdiMmNkMzQzNTdhZjAzNWU0MDZkMTUz NjMxKQorLS0tCisgc3lzZGVwcy91bml4L3N5c3YvbGludXgvdHN0LXBpZGZkLWNvbnN0cy5weSB8 IDEwICsrKysrKy0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA0IGRlbGV0 aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvdHN0LXBpZGZk LWNvbnN0cy5weSBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3RzdC1waWRmZC1jb25zdHMucHkK K2luZGV4IDkwY2JiOWJlNjQuLmQ3MzIxNzNhYmQgMTAwNjQ0CistLS0gYS9zeXNkZXBzL3VuaXgv c3lzdi9saW51eC90c3QtcGlkZmQtY29uc3RzLnB5CisrKysgYi9zeXNkZXBzL3VuaXgvc3lzdi9s aW51eC90c3QtcGlkZmQtY29uc3RzLnB5CitAQCAtMzMsMTEgKzMzLDEzIEBAIGRlZiBtYWluKCk6 CisgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0nQyBjb21waWxlciAoaW5jbHVkaW5nIG9w dGlvbnMpIHRvIHVzZScpCisgICAgIGFyZ3MgPSBwYXJzZXIucGFyc2VfYXJncygpCisgCistICAg IGxpbnV4X3ZlcnNpb25faGVhZGVycyA9IGdsaWJjc3lzY2FsbHMubGludXhfa2VybmVsX3ZlcnNp b24oYXJncy5jYykKKy0gICAgIyBMaW51eCBzdGFydGVkIHRvIHByb3ZpZGUgcGlkZmQuaCB3aXRo IDUuMTAuCistICAgIGlmIGxpbnV4X3ZlcnNpb25faGVhZGVycyA8ICg1LCAxMCk6CisrICAgIGlm IGdsaWJjZXh0cmFjdC5jb21waWxlX2Nfc25pcHBldCgKKysgICAgICAgICAgICAnI2luY2x1ZGUg PGxpbnV4L3BpZGZkLmg+JywKKysgICAgICAgICAgICBhcmdzLmNjKS5yZXR1cm5jb2RlICE9IDA6 CisgICAgICAgICBzeXMuZXhpdCAoNzcpCistICAgIGxpbnV4X3ZlcnNpb25fZ2xpYmMgPSAoNSwg MTgpCisrCisrICAgIGxpbnV4X3ZlcnNpb25faGVhZGVycyA9IGdsaWJjc3lzY2FsbHMubGludXhf a2VybmVsX3ZlcnNpb24oYXJncy5jYykKKysgICAgbGludXhfdmVyc2lvbl9nbGliYyA9ICg1LCAx OSkKKyAgICAgc3lzLmV4aXQoZ2xpYmNleHRyYWN0LmNvbXBhcmVfbWFjcm9fY29uc3RzKAorICAg ICAgICAgICAgICAgICAnI2luY2x1ZGUgPHN5cy9waWRmZC5oPlxuJywKKyAgICAgICAgICAgICAg ICAgJyNpbmNsdWRlIDxhc20vZmNudGwuaD5cbicKKy0tIAorMi4zOC4xCisKKworRnJvbSA0ZGFk OTdlMmEyZTUxMGM2YjUzYTBhZGQyOWEyMTg4NzE0ZmNmNGFiIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQorRnJvbTogQWRoZW1lcnZhbCBaYW5lbGxhIDxhZGhlbWVydmFsLnphbmVsbGFAbGluYXJv Lm9yZz4KK0RhdGU6IFdlZCwgMTAgQXVnIDIwMjIgMTQ6MjQ6NDUgLTAzMDAKK1N1YmplY3Q6IGxp bnV4OiBNaW1pYyBrZXJuZWwgZGVmaXRpb24gZm9yIEJMT0NLX1NJWkUKKworVG8gYXZvaWQgcG9z c2libGUgd2FybmluZ3MgaWYgdGhlIGtlcm5lbCBoZWFkZXIgaXMgaW5jbHVkZWQgYmVmb3JlCitz eXMvbW91bnQuaC4KKworUmV2aWV3ZWQtYnk6IEZsb3JpYW4gV2VpbWVyIDxmd2VpbWVyQHJlZGhh dC5jb20+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBjNjhiNjA0NGJjNzk0NTcxNjQzMWYx YWRjMDkxYjE3YzM5YjgwYTA2KQorLS0tCisgc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL21v dW50LmggfCAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9u KC0pCisKK2RpZmYgLS1naXQgYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMvbW91bnQuaCBi L3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9tb3VudC5oCitpbmRleCBmOTY1OTg2YmE4Li5k ZjZiMGRiYjQyIDEwMDY0NAorLS0tIGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL21vdW50 LmgKKysrKyBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9tb3VudC5oCitAQCAtMjcsOCAr MjcsOCBAQAorICNpbmNsdWRlIDxzdGRkZWYuaD4KKyAjaW5jbHVkZSA8c3lzL2lvY3RsLmg+Cisg CistI2RlZmluZSBCTE9DS19TSVpFCTEwMjQKKyAjZGVmaW5lIEJMT0NLX1NJWkVfQklUUwkxMAor KyNkZWZpbmUgQkxPQ0tfU0laRQkoMTw8QkxPQ0tfU0laRV9CSVRTKQorIAorIAorIC8qIFRoZXNl IGFyZSB0aGUgZnMtaW5kZXBlbmRlbnQgbW91bnQtZmxhZ3M6IHVwIHRvIDE2IGZsYWdzIGFyZQor LS0gCisyLjM4LjEKKworCitGcm9tIGQ0ODgxMzIyN2I2M2EwZDkyZWEzNTdlYTA3MzMyMjllZDc0 ZTMxYWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBZGhlbWVydmFsIFphbmVsbGEg PGFkaGVtZXJ2YWwuemFuZWxsYUBsaW5hcm8ub3JnPgorRGF0ZTogV2VkLCAxMCBBdWcgMjAyMiAx NDoyNDo0NiAtMDMwMAorU3ViamVjdDogbGludXg6IFVzZSBjb21waWxlX2Nfc25pcHBldCB0byBj aGVjayBsaW51eC9tb3VudC5oIGF2YWlsYWJpbGl0eQorCitDaGVja2VkIG9uIHg4Nl82NC1saW51 eC1nbnUuCisKK1Jldmlld2VkLWJ5OiBGbG9yaWFuIFdlaW1lciA8ZndlaW1lckByZWRoYXQuY29t PgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgZTEyMjZjZGM2YjIwOTUzOWE5MmQzMmQ1YjYy MGJhNTNmZDM1YWJmMykKKy0tLQorIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3RzdC1tb3VudC1j b25zdHMucHkgfCA1ICsrKysrCisgMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKQorCitk aWZmIC0tZ2l0IGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvdHN0LW1vdW50LWNvbnN0cy5weSBi L3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3RzdC1tb3VudC1jb25zdHMucHkKK2luZGV4IGE2MmY4 MDMxMjMuLmJlMmVmMmRhZjEgMTAwNzU1CistLS0gYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC90 c3QtbW91bnQtY29uc3RzLnB5CisrKysgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC90c3QtbW91 bnQtY29uc3RzLnB5CitAQCAtMzMsNiArMzMsMTEgQEAgZGVmIG1haW4oKToKKyAgICAgICAgICAg ICAgICAgICAgICAgICBoZWxwPSdDIGNvbXBpbGVyIChpbmNsdWRpbmcgb3B0aW9ucykgdG8gdXNl JykKKyAgICAgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKCkKKyAKKysgICAgaWYgZ2xpYmNleHRy YWN0LmNvbXBpbGVfY19zbmlwcGV0KAorKyAgICAgICAgICAgICcjaW5jbHVkZSA8bGludXgvbW91 bnQuaD4nLAorKyAgICAgICAgICAgIGFyZ3MuY2MpLnJldHVybmNvZGUgIT0gMDoKKysgICAgICAg IHN5cy5leGl0ICg3NykKKysKKyAgICAgbGludXhfdmVyc2lvbl9oZWFkZXJzID0gZ2xpYmNzeXNj YWxscy5saW51eF9rZXJuZWxfdmVyc2lvbihhcmdzLmNjKQorICAgICAjIENvbnN0YW50cyBpbiBn bGliYyB3ZXJlIHVwZGF0ZWQgdG8gbWF0Y2ggTGludXggdjUuMTYuICBXaGVuIGdsaWJjCisgICAg ICMgY29uc3RhbnRzIGFyZSB1cGRhdGVkIHRoaXMgdmFsdWUgc2hvdWxkIGJlIHVwZGF0ZWQgdG8g bWF0Y2ggdGhlCistLSAKKzIuMzguMQorCisKK0Zyb20gYmIxZThiMGNhOTliNWNiZWRmYWUzZTYy NDU1MjhhODdkOTVmZjNlMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFkaGVtZXJ2 YWwgWmFuZWxsYSA8YWRoZW1lcnZhbC56YW5lbGxhQGxpbmFyby5vcmc+CitEYXRlOiBXZWQsIDEw IEF1ZyAyMDIyIDE0OjI0OjQ3IC0wMzAwCitTdWJqZWN0OiBsaW51eDogRml4IHN5cy9tb3VudC5o IHVzYWdlIHdpdGgga2VybmVsIGhlYWRlcnMKKworTm93IHRoYXQga2VybmVsIGV4cG9ydHMgbGlu dXgvbW91bnQuaCBhbmQgaW5jbHVkZXMgaXQgb24gbGludXgvZnMuaCwKK2l0cyBkZWZpbml0aW9u cyBtaWdodCBjbGFzaCB3aXRoIGdsaWJjIGV4cG9ydHMgc3lzL21vdW50LmguICBUbyBhdm9pZAor dGhlIG5lZWQgdG8gcmVhcnJhbmdlIHRoZSBMaW51eCBoZWFkZXIgdG8gYmUgYWx3YXlzIGFmdGVy IGdsaWJjIG9uZSwKK3RoZSBnbGliYyBzeXMvbW91bnQuaCBpcyBjaGFuZ2VkIHRvOgorCisgIDEu IFVuZGVmaW5lIHRoZSBtYWNyb3MgYWxzbyB1c2VkIGFzIGVudW0gY29uc3RhbnRzLiAgVGhpcyBj b3ZlcnMgcHJpb3IKKyAgICAgaW5jbHVzaW9uIG9mIDxsaW51eC9tb3VudC5oPiAoZm9yIGluc3Rh bmNlIE1TX1JET05MWSkuCisKKyAgMi4gSW5jbHVkZSA8bGludXgvbW91bnQuaD4gYmFzZWQgb24g dGhlIHVzdWFsIF9faGFzX2luY2x1ZGUgY2hlY2sKKyAgICAgKG5lZWRzIHRvIHVzZSBfX2hhc19p bmNsdWRlICgibGludXgvbW91bnQuaCIpIHRvIHBhcGVyIG92ZXIgR0NDCisgICAgIGJ1Z3MuCisK KyAgMy4gRGVmaW5lIGVudW0gZnNjb25maWdfY29tbWFuZCBvbmx5IGlmIEZTT1BFTl9DTE9FWEVD IGlzIG5vdCBkZWZpbmVkLgorICAgICAoRlNPUEVOX0NMT0VYRUMgc2hvdWxkIGJlIGEgdmVyeSBj bG9zZSBwcm94eS4pCisKKyAgNC4gRGVmaW5lIHN0cnVjdCBtb3VudF9hdHRyIGlmIE1PVU5UX0FU VFJfU0laRV9WRVIwIGlzIG5vdCBkZWZpbmVkLgorICAgICAoQWRkZWQgaW4gdGhlIHNhbWUgY29t bWl0IG9uIHRoZSBMaW51eCBzaWRlLikKKworVGhpcyBwYXRjaCBhbHNvIGFkZHMgc29tZSB0ZXN0 cyB0byBjaGVjayBpZiBpbmNsdWRpbmcgbGludXgvZnMuaCBhbmQKK2xpbnV4L21vdW50LmggYWZ0 ZXIgYW5kIGJlZm9yZSBzeXMvbW91bnQuaCBkb2VzIHdvcmsuCisKK0NoZWNrZWQgb24geDg2XzY0 LWxpbnV4LWdudS4KKworUmV2aWV3ZWQtYnk6IEZsb3JpYW4gV2VpbWVyIDxmd2VpbWVyQHJlZGhh dC5jb20+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA3NzQwNThkNzI5NDIyNDlmNzFkNzRl N2YyYjYzOWY3NzE4NDE2MGE2KQorLS0tCisgc3lzZGVwcy91bml4L3N5c3YvbGludXgvTWFrZWZp bGUgICAgICAgICAgICAgfCAgOCArKysKKyBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMvbW91 bnQuaCAgICAgICAgICB8IDcxICsrKysrKysrKysrKysrKysrLS0tCisgc3lzZGVwcy91bml4L3N5 c3YvbGludXgvdHN0LW1vdW50LWNvbXBpbGUucHkgfCA2NiArKysrKysrKysrKysrKysrKysKKyAz IGZpbGVzIGNoYW5nZWQsIDEzNyBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQorIGNyZWF0 ZSBtb2RlIDEwMDc1NSBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC90c3QtbW91bnQtY29tcGlsZS5w eQorCitkaWZmIC0tZ2l0IGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvTWFrZWZpbGUgYi9zeXNk ZXBzL3VuaXgvc3lzdi9saW51eC9NYWtlZmlsZQoraW5kZXggYTEzOWExNjUzMi4uM2NlZGE5ZmRi ZiAxMDA2NDQKKy0tLSBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L01ha2VmaWxlCisrKysgYi9z eXNkZXBzL3VuaXgvc3lzdi9saW51eC9NYWtlZmlsZQorQEAgLTI2NSw2ICsyNjUsMTQgQEAgJChv YmpwZngpdHN0LW1vdW50LWNvbnN0cy5vdXQ6IC4uL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3Rz dC1tb3VudC1jb25zdHMucHkKKyAJICA8IC9kZXYvbnVsbCA+ICRAIDI+JjE7ICQoZXZhbHVhdGUt dGVzdCkKKyAkKG9ianBmeCl0c3QtbW91bnQtY29uc3RzLm91dDogJChzeXNkZXBzLWxpbnV4LXB5 dGhvbi1kZXBzKQorIAorK3Rlc3RzLXNwZWNpYWwgKz0gJChvYmpwZngpdHN0LW1vdW50LWNvbXBp bGUub3V0CisrJChvYmpwZngpdHN0LW1vdW50LWNvbXBpbGUub3V0OiAuLi9zeXNkZXBzL3VuaXgv c3lzdi9saW51eC90c3QtbW91bnQtY29tcGlsZS5weQorKwkkKHN5c2RlcHMtbGludXgtcHl0aG9u KSBcCisrCSAgLi4vc3lzZGVwcy91bml4L3N5c3YvbGludXgvdHN0LW1vdW50LWNvbXBpbGUucHkg XAorKwkgICAgJChzeXNkZXBzLWxpbnV4LXB5dGhvbi1jYykgXAorKwkgIDwgL2Rldi9udWxsID4g JEAgMj4mMTsgJChldmFsdWF0ZS10ZXN0KQorKyQob2JqcGZ4KXRzdC1tb3VudC1jb21waWxlLm91 dDogJChzeXNkZXBzLWxpbnV4LXB5dGhvbi1kZXBzKQorKworIHRzdC1yc2VxLWRpc2FibGUtRU5W ID0gR0xJQkNfVFVOQUJMRVM9Z2xpYmMucHRocmVhZC5yc2VxPTAKKyAKKyBlbmRpZiAjICQoc3Vi ZGlyKSA9PSBtaXNjCitkaWZmIC0tZ2l0IGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL21v dW50LmggYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMvbW91bnQuaAoraW5kZXggZGY2YjBk YmI0Mi4uMmUzZmQ2YTdmZSAxMDA2NDQKKy0tLSBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5 cy9tb3VudC5oCisrKysgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMvbW91bnQuaAorQEAg LTI3LDYgKzI3LDEzIEBACisgI2luY2x1ZGUgPHN0ZGRlZi5oPgorICNpbmNsdWRlIDxzeXMvaW9j dGwuaD4KKyAKKysjaWZkZWYgX19oYXNfaW5jbHVkZQorKyMgaWYgX19oYXNfaW5jbHVkZSAoImxp bnV4L21vdW50LmgiKQorKyMgIGluY2x1ZGUgImxpbnV4L21vdW50LmgiCisrIyBlbmRpZgorKyNl bmRpZgorKworKworICNkZWZpbmUgQkxPQ0tfU0laRV9CSVRTCTEwCisgI2RlZmluZSBCTE9DS19T SVpFCSgxPDxCTE9DS19TSVpFX0JJVFMpCisgCitAQCAtMzUsNjkgKzQyLDk4IEBACisgICAgc3Vw cG9ydGVkICAqLworIGVudW0KKyB7CisrI3VuZGVmIE1TX1JET05MWQorICAgTVNfUkRPTkxZID0g MSwJCS8qIE1vdW50IHJlYWQtb25seS4gICovCisgI2RlZmluZSBNU19SRE9OTFkJTVNfUkRPTkxZ CisrI3VuZGVmIE1TX05PU1VJRAorICAgTVNfTk9TVUlEID0gMiwJCS8qIElnbm9yZSBzdWlkIGFu ZCBzZ2lkIGJpdHMuICAqLworICNkZWZpbmUgTVNfTk9TVUlECU1TX05PU1VJRAorKyN1bmRlZiBN U19OT0RFVgorICAgTVNfTk9ERVYgPSA0LAkJCS8qIERpc2FsbG93IGFjY2VzcyB0byBkZXZpY2Ug c3BlY2lhbCBmaWxlcy4gICovCisgI2RlZmluZSBNU19OT0RFVglNU19OT0RFVgorKyN1bmRlZiBN U19OT0VYRUMKKyAgIE1TX05PRVhFQyA9IDgsCQkvKiBEaXNhbGxvdyBwcm9ncmFtIGV4ZWN1dGlv bi4gICovCisgI2RlZmluZSBNU19OT0VYRUMJTVNfTk9FWEVDCisrI3VuZGVmIE1TX1NZTkNIUk9O T1VTCisgICBNU19TWU5DSFJPTk9VUyA9IDE2LAkJLyogV3JpdGVzIGFyZSBzeW5jZWQgYXQgb25j ZS4gICovCisgI2RlZmluZSBNU19TWU5DSFJPTk9VUwlNU19TWU5DSFJPTk9VUworKyN1bmRlZiBN U19SRU1PVU5UCisgICBNU19SRU1PVU5UID0gMzIsCQkvKiBBbHRlciBmbGFncyBvZiBhIG1vdW50 ZWQgRlMuICAqLworICNkZWZpbmUgTVNfUkVNT1VOVAlNU19SRU1PVU5UCisrI3VuZGVmIE1TX01B TkRMT0NLCisgICBNU19NQU5ETE9DSyA9IDY0LAkJLyogQWxsb3cgbWFuZGF0b3J5IGxvY2tzIG9u IGFuIEZTLiAgKi8KKyAjZGVmaW5lIE1TX01BTkRMT0NLCU1TX01BTkRMT0NLCisrI3VuZGVmIE1T X0RJUlNZTkMKKyAgIE1TX0RJUlNZTkMgPSAxMjgsCQkvKiBEaXJlY3RvcnkgbW9kaWZpY2F0aW9u cyBhcmUgc3luY2hyb25vdXMuICAqLworICNkZWZpbmUgTVNfRElSU1lOQwlNU19ESVJTWU5DCisr I3VuZGVmIE1TX05PU1lNRk9MTE9XCisgICBNU19OT1NZTUZPTExPVyA9IDI1NiwJCS8qIERvIG5v dCBmb2xsb3cgc3ltbGlua3MuICAqLworICNkZWZpbmUgTVNfTk9TWU1GT0xMT1cJTVNfTk9TWU1G T0xMT1cKKysjdW5kZWYgTVNfTk9BVElNRQorICAgTVNfTk9BVElNRSA9IDEwMjQsCQkvKiBEbyBu b3QgdXBkYXRlIGFjY2VzcyB0aW1lcy4gICovCisgI2RlZmluZSBNU19OT0FUSU1FCU1TX05PQVRJ TUUKKysjdW5kZWYgTVNfTk9ESVJBVElNRQorICAgTVNfTk9ESVJBVElNRSA9IDIwNDgsCQkvKiBE byBub3QgdXBkYXRlIGRpcmVjdG9yeSBhY2Nlc3MgdGltZXMuICAqLworICNkZWZpbmUgTVNfTk9E SVJBVElNRQlNU19OT0RJUkFUSU1FCisrI3VuZGVmIE1TX0JJTkQKKyAgIE1TX0JJTkQgPSA0MDk2 LAkJLyogQmluZCBkaXJlY3RvcnkgYXQgZGlmZmVyZW50IHBsYWNlLiAgKi8KKyAjZGVmaW5lIE1T X0JJTkQJCU1TX0JJTkQKKysjdW5kZWYgTVNfTU9WRQorICAgTVNfTU9WRSA9IDgxOTIsCisgI2Rl ZmluZSBNU19NT1ZFCQlNU19NT1ZFCisrI3VuZGVmIE1TX1JFQworICAgTVNfUkVDID0gMTYzODQs CisgI2RlZmluZSBNU19SRUMJCU1TX1JFQworKyN1bmRlZiBNU19TSUxFTlQKKyAgIE1TX1NJTEVO VCA9IDMyNzY4LAorICNkZWZpbmUgTVNfU0lMRU5UCU1TX1NJTEVOVAorKyN1bmRlZiBNU19QT1NJ WEFDTAorICAgTVNfUE9TSVhBQ0wgPSAxIDw8IDE2LAkvKiBWRlMgZG9lcyBub3QgYXBwbHkgdGhl IHVtYXNrLiAgKi8KKyAjZGVmaW5lIE1TX1BPU0lYQUNMCU1TX1BPU0lYQUNMCisrI3VuZGVmIE1T X1VOQklOREFCTEUKKyAgIE1TX1VOQklOREFCTEUgPSAxIDw8IDE3LAkvKiBDaGFuZ2UgdG8gdW5i aW5kYWJsZS4gICovCisgI2RlZmluZSBNU19VTkJJTkRBQkxFCU1TX1VOQklOREFCTEUKKysjdW5k ZWYgTVNfUFJJVkFURQorICAgTVNfUFJJVkFURSA9IDEgPDwgMTgsCQkvKiBDaGFuZ2UgdG8gcHJp dmF0ZS4gICovCisgI2RlZmluZSBNU19QUklWQVRFCU1TX1BSSVZBVEUKKysjdW5kZWYgTVNfU0xB VkUKKyAgIE1TX1NMQVZFID0gMSA8PCAxOSwJCS8qIENoYW5nZSB0byBzbGF2ZS4gICovCisgI2Rl ZmluZSBNU19TTEFWRQlNU19TTEFWRQorKyN1bmRlZiBNU19TSEFSRUQKKyAgIE1TX1NIQVJFRCA9 IDEgPDwgMjAsCQkvKiBDaGFuZ2UgdG8gc2hhcmVkLiAgKi8KKyAjZGVmaW5lIE1TX1NIQVJFRAlN U19TSEFSRUQKKysjdW5kZWYgTVNfUkVMQVRJTUUKKyAgIE1TX1JFTEFUSU1FID0gMSA8PCAyMSwJ LyogVXBkYXRlIGF0aW1lIHJlbGF0aXZlIHRvIG10aW1lL2N0aW1lLiAgKi8KKyAjZGVmaW5lIE1T X1JFTEFUSU1FCU1TX1JFTEFUSU1FCisrI3VuZGVmIE1TX0tFUk5NT1VOVAorICAgTVNfS0VSTk1P VU5UID0gMSA8PCAyMiwJLyogVGhpcyBpcyBhIGtlcm5fbW91bnQgY2FsbC4gICovCisgI2RlZmlu ZSBNU19LRVJOTU9VTlQJTVNfS0VSTk1PVU5UCisrI3VuZGVmIE1TX0lfVkVSU0lPTgorICAgTVNf SV9WRVJTSU9OID0gIDEgPDwgMjMsCS8qIFVwZGF0ZSBpbm9kZSBJX3ZlcnNpb24gZmllbGQuICAq LworICNkZWZpbmUgTVNfSV9WRVJTSU9OCU1TX0lfVkVSU0lPTgorKyN1bmRlZiBNU19TVFJJQ1RB VElNRQorICAgTVNfU1RSSUNUQVRJTUUgPSAxIDw8IDI0LAkvKiBBbHdheXMgcGVyZm9ybSBhdGlt ZSB1cGRhdGVzLiAgKi8KKyAjZGVmaW5lIE1TX1NUUklDVEFUSU1FCU1TX1NUUklDVEFUSU1FCisr I3VuZGVmIE1TX0xBWllUSU1FCisgICBNU19MQVpZVElNRSA9IDEgPDwgMjUsCS8qIFVwZGF0ZSB0 aGUgb24tZGlzayBbYWNtXXRpbWVzIGxhemlseS4gICovCisgI2RlZmluZSBNU19MQVpZVElNRQlN U19MQVpZVElNRQorKyN1bmRlZiBNU19BQ1RJVkUKKyAgIE1TX0FDVElWRSA9IDEgPDwgMzAsCisg I2RlZmluZSBNU19BQ1RJVkUJTVNfQUNUSVZFCisrI3VuZGVmIE1TX05PVVNFUgorICAgTVNfTk9V U0VSID0gMSA8PCAzMQorICNkZWZpbmUgTVNfTk9VU0VSCU1TX05PVVNFUgorIH07CisgCisgLyog RmxhZ3MgdGhhdCBjYW4gYmUgYWx0ZXJlZCBieSBNU19SRU1PVU5UICAqLworKyN1bmRlZiBNU19S TVRfTUFTSworICNkZWZpbmUgTVNfUk1UX01BU0sgKE1TX1JET05MWXxNU19TWU5DSFJPTk9VU3xN U19NQU5ETE9DS3xNU19JX1ZFUlNJT04gXAorIAkJICAgICB8TVNfTEFaWVRJTUUpCisgCisgCisg LyogTWFnaWMgbW91bnQgZmxhZyBudW1iZXIuIEhhcyB0byBiZSBvci1lZCB0byB0aGUgZmxhZyB2 YWx1ZXMuICAqLworIAorKyN1bmRlZiBNU19NR0NfVkFMCisgI2RlZmluZSBNU19NR0NfVkFMIDB4 YzBlZDAwMDAJLyogTWFnaWMgZmxhZyBudW1iZXIgdG8gaW5kaWNhdGUgIm5ldyIgZmxhZ3MgKi8K KyAjZGVmaW5lIE1TX01HQ19NU0sgMHhmZmZmMDAwMAkvKiBNYWdpYyBmbGFnIG51bWJlciBtYXNr ICovCisgCitAQCAtMTA2LDIwICsxNDIsMzUgQEAgZW51bQorICAgIGlzIHByb2JhYmx5IGFzIGJh ZCBhbmQgSSBkb24ndCB3YW50IHRvIGNyZWF0ZSB5ZXQgYW5vdGhlciBpbmNsdWRlCisgICAgZmls ZS4gICovCisgCisrI3VuZGVmIEJMS1JPU0VUCisgI2RlZmluZSBCTEtST1NFVCAgIF9JTygweDEy LCA5MykgLyogU2V0IGRldmljZSByZWFkLW9ubHkgKDAgPSByZWFkLXdyaXRlKS4gICovCisrI3Vu ZGVmIEJMS1JPR0VUCisgI2RlZmluZSBCTEtST0dFVCAgIF9JTygweDEyLCA5NCkgLyogR2V0IHJl YWQtb25seSBzdGF0dXMgKDAgPSByZWFkX3dyaXRlKS4gICovCisrI3VuZGVmIEJMS1JSUEFSVAor ICNkZWZpbmUgQkxLUlJQQVJUICBfSU8oMHgxMiwgOTUpIC8qIFJlLXJlYWQgcGFydGl0aW9uIHRh YmxlLiAgKi8KKysjdW5kZWYgQkxLR0VUU0laRQorICNkZWZpbmUgQkxLR0VUU0laRSBfSU8oMHgx MiwgOTYpIC8qIFJldHVybiBkZXZpY2Ugc2l6ZS4gICovCisrI3VuZGVmIEJMS0ZMU0JVRgorICNk ZWZpbmUgQkxLRkxTQlVGICBfSU8oMHgxMiwgOTcpIC8qIEZsdXNoIGJ1ZmZlciBjYWNoZS4gICov CisrI3VuZGVmIEJMS1JBU0VUCisgI2RlZmluZSBCTEtSQVNFVCAgIF9JTygweDEyLCA5OCkgLyog U2V0IHJlYWQgYWhlYWQgZm9yIGJsb2NrIGRldmljZS4gICovCisrI3VuZGVmIEJMS1JBR0VUCisg I2RlZmluZSBCTEtSQUdFVCAgIF9JTygweDEyLCA5OSkgLyogR2V0IGN1cnJlbnQgcmVhZCBhaGVh ZCBzZXR0aW5nLiAgKi8KKysjdW5kZWYgQkxLRlJBU0VUCisgI2RlZmluZSBCTEtGUkFTRVQgIF9J TygweDEyLDEwMCkgLyogU2V0IGZpbGVzeXN0ZW0gcmVhZC1haGVhZC4gICovCisrI3VuZGVmIEJM S0ZSQUdFVAorICNkZWZpbmUgQkxLRlJBR0VUICBfSU8oMHgxMiwxMDEpIC8qIEdldCBmaWxlc3lz dGVtIHJlYWQtYWhlYWQuICAqLworKyN1bmRlZiBCTEtTRUNUU0VUCisgI2RlZmluZSBCTEtTRUNU U0VUIF9JTygweDEyLDEwMikgLyogU2V0IG1heCBzZWN0b3JzIHBlciByZXF1ZXN0LiAgKi8KKysj dW5kZWYgQkxLU0VDVEdFVAorICNkZWZpbmUgQkxLU0VDVEdFVCBfSU8oMHgxMiwxMDMpIC8qIEdl dCBtYXggc2VjdG9ycyBwZXIgcmVxdWVzdC4gICovCisrI3VuZGVmIEJMS1NTWkdFVAorICNkZWZp bmUgQkxLU1NaR0VUICBfSU8oMHgxMiwxMDQpIC8qIEdldCBibG9jayBkZXZpY2Ugc2VjdG9yIHNp emUuICAqLworKyN1bmRlZiBCTEtCU1pHRVQKKyAjZGVmaW5lIEJMS0JTWkdFVCAgX0lPUigweDEy LDExMixzaXplX3QpCisrI3VuZGVmIEJMS0JTWlNFVAorICNkZWZpbmUgQkxLQlNaU0VUICBfSU9X KDB4MTIsMTEzLHNpemVfdCkKKysjdW5kZWYgQkxLR0VUU0laRTY0CisgI2RlZmluZSBCTEtHRVRT SVpFNjQgX0lPUigweDEyLDExNCxzaXplX3QpIC8qIHJldHVybiBkZXZpY2Ugc2l6ZS4gICovCisg CisgCitAQCAtMTU3LDYgKzIwOCw3IEBAIGVudW0KKyAjZGVmaW5lIE1PVU5UX0FUVFJfTk9TWU1G T0xMT1cgIDB4MDAyMDAwMDAgLyogRG8gbm90IGZvbGxvdyBzeW1saW5rcy4gICovCisgCisgCisr I2lmbmRlZiBNT1VOVF9BVFRSX1NJWkVfVkVSMAorIC8qIEZvciBtb3VudF9zZXRhdHRyLiAgKi8K KyBzdHJ1Y3QgbW91bnRfYXR0cgorIHsKK0BAIC0xNjUsNiArMjE3LDcgQEAgc3RydWN0IG1vdW50 X2F0dHIKKyAgIHVpbnQ2NF90IHByb3BhZ2F0aW9uOworICAgdWludDY0X3QgdXNlcm5zX2ZkOwor IH07CisrI2VuZGlmCisgCisgI2RlZmluZSBNT1VOVF9BVFRSX1NJWkVfVkVSMCAgICAzMiAvKiBz aXplb2YgZmlyc3QgcHVibGlzaGVkIHN0cnVjdCAqLworIAorQEAgLTE4NSwyNiArMjM4LDI4IEBA IHN0cnVjdCBtb3VudF9hdHRyCisgI2RlZmluZSBGU1BJQ0tfRU1QVFlfUEFUSCAgICAgICAweDAw MDAwMDA4CisgCisgCisrI2lmbmRlZiBGU09QRU5fQ0xPRVhFQworIC8qIFRoZSB0eXBlIG9mIGZz Y29uZmlnIGNhbGwgbWFkZS4gICAqLworIGVudW0gZnNjb25maWdfY29tbWFuZAorIHsKKyAgIEZT Q09ORklHX1NFVF9GTEFHICAgICAgID0gMCwgICAgLyogU2V0IHBhcmFtZXRlciwgc3VwcGx5aW5n IG5vIHZhbHVlICovCistI2RlZmluZSBGU0NPTkZJR19TRVRfRkxBRyBGU0NPTkZJR19TRVRfRkxB RworKyMgZGVmaW5lIEZTQ09ORklHX1NFVF9GTEFHIEZTQ09ORklHX1NFVF9GTEFHCisgICBGU0NP TkZJR19TRVRfU1RSSU5HICAgICA9IDEsICAgIC8qIFNldCBwYXJhbWV0ZXIsIHN1cHBseWluZyBh IHN0cmluZyB2YWx1ZSAqLworLSNkZWZpbmUgRlNDT05GSUdfU0VUX1NUUklORyBGU0NPTkZJR19T RVRfU1RSSU5HCisrIyBkZWZpbmUgRlNDT05GSUdfU0VUX1NUUklORyBGU0NPTkZJR19TRVRfU1RS SU5HCisgICBGU0NPTkZJR19TRVRfQklOQVJZICAgICA9IDIsICAgIC8qIFNldCBwYXJhbWV0ZXIs IHN1cHBseWluZyBhIGJpbmFyeSBibG9iIHZhbHVlICovCistI2RlZmluZSBGU0NPTkZJR19TRVRf QklOQVJZIEZTQ09ORklHX1NFVF9CSU5BUlkKKysjIGRlZmluZSBGU0NPTkZJR19TRVRfQklOQVJZ IEZTQ09ORklHX1NFVF9CSU5BUlkKKyAgIEZTQ09ORklHX1NFVF9QQVRIICAgICAgID0gMywgICAg LyogU2V0IHBhcmFtZXRlciwgc3VwcGx5aW5nIGFuIG9iamVjdCBieSBwYXRoICovCistI2RlZmlu ZSBGU0NPTkZJR19TRVRfUEFUSCBGU0NPTkZJR19TRVRfUEFUSAorKyMgZGVmaW5lIEZTQ09ORklH X1NFVF9QQVRIIEZTQ09ORklHX1NFVF9QQVRICisgICBGU0NPTkZJR19TRVRfUEFUSF9FTVBUWSA9 IDQsICAgIC8qIFNldCBwYXJhbWV0ZXIsIHN1cHBseWluZyBhbiBvYmplY3QgYnkgKGVtcHR5KSBw YXRoICovCistI2RlZmluZSBGU0NPTkZJR19TRVRfUEFUSF9FTVBUWSBGU0NPTkZJR19TRVRfUEFU SF9FTVBUWQorKyMgZGVmaW5lIEZTQ09ORklHX1NFVF9QQVRIX0VNUFRZIEZTQ09ORklHX1NFVF9Q QVRIX0VNUFRZCisgICBGU0NPTkZJR19TRVRfRkQgICAgICAgICA9IDUsICAgIC8qIFNldCBwYXJh bWV0ZXIsIHN1cHBseWluZyBhbiBvYmplY3QgYnkgZmQgKi8KKy0jZGVmaW5lIEZTQ09ORklHX1NF VF9GRCBGU0NPTkZJR19TRVRfRkQKKysjIGRlZmluZSBGU0NPTkZJR19TRVRfRkQgRlNDT05GSUdf U0VUX0ZECisgICBGU0NPTkZJR19DTURfQ1JFQVRFICAgICA9IDYsICAgIC8qIEludm9rZSBzdXBl cmJsb2NrIGNyZWF0aW9uICovCistI2RlZmluZSBGU0NPTkZJR19DTURfQ1JFQVRFIEZTQ09ORklH X0NNRF9DUkVBVEUKKysjIGRlZmluZSBGU0NPTkZJR19DTURfQ1JFQVRFIEZTQ09ORklHX0NNRF9D UkVBVEUKKyAgIEZTQ09ORklHX0NNRF9SRUNPTkZJR1VSRSA9IDcsICAgLyogSW52b2tlIHN1cGVy YmxvY2sgcmVjb25maWd1cmF0aW9uICovCistI2RlZmluZSBGU0NPTkZJR19DTURfUkVDT05GSUdV UkUgRlNDT05GSUdfQ01EX1JFQ09ORklHVVJFCisrIyBkZWZpbmUgRlNDT05GSUdfQ01EX1JFQ09O RklHVVJFIEZTQ09ORklHX0NNRF9SRUNPTkZJR1VSRQorIH07CisrI2VuZGlmCisgCisgLyogb3Bl bl90cmVlIGZsYWdzLiAgKi8KKyAjZGVmaW5lIE9QRU5fVFJFRV9DTE9ORSAgICAxICAgICAgICAg LyogQ2xvbmUgdGhlIHRhcmdldCB0cmVlIGFuZCBhdHRhY2ggdGhlIGNsb25lICovCitkaWZmIC0t Z2l0IGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvdHN0LW1vdW50LWNvbXBpbGUucHkgYi9zeXNk ZXBzL3VuaXgvc3lzdi9saW51eC90c3QtbW91bnQtY29tcGlsZS5weQorbmV3IGZpbGUgbW9kZSAx MDA3NTUKK2luZGV4IDAwMDAwMDAwMDAuLjBlYzc0ZDRlMGIKKy0tLSAvZGV2L251bGwKKysrKyBi L3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3RzdC1tb3VudC1jb21waWxlLnB5CitAQCAtMCwwICsx LDY2IEBACisrIyEvdXNyL2Jpbi9weXRob24zCisrIyBDaGVjayBpZiBnbGliYyBwcm92aWRlZCBz eXMvbW91bnQuaCBjYW4gYmUgdXNlZCBhbG9uZyByZWxhdGVkIGtlcm5lbAorKyMgaGVhZGVycy4K KysjIENvcHlyaWdodCAoQykgMjAyMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysj IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5LgorKyMKKysjIFRoZSBHTlUg QyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v cgorKyMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs IFB1YmxpYworKyMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbjsgZWl0aGVyCisrIyB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGUgR05VIEMgTGlicmFyeSBp cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0 IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RS4gIFNlZSB0aGUgR05VCisrIyBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y ZSBkZXRhaWxzLgorKyMKKysjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKysjIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05V IEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKysjIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2Vz Lz4uCisrCisraW1wb3J0IGFyZ3BhcnNlCisraW1wb3J0IHN5cworKworK2ltcG9ydCBnbGliY2V4 dHJhY3QKKysKKysKKytkZWYgbWFpbigpOgorKyAgICAiIiJUaGUgbWFpbiBlbnRyeSBwb2ludC4i IiIKKysgICAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoCisrICAgICAgICBkZXNj cmlwdGlvbj0nQ2hlY2sgaWYgZ2xpYmMgcHJvdmlkZWQgc3lzL21vdW50LmggY2FuIGJlICcKKysg ICAgICAgICAgICAgICAgICAgICcgdXNlZCBhbG9uZyByZWxhdGVkIGtlcm5lbCBoZWFkZXJzLicp CisrICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy0tY2MnLCBtZXRhdmFyPSdDQycsCisrICAgICAg ICAgICAgICAgICAgICAgICAgaGVscD0nQyBjb21waWxlciAoaW5jbHVkaW5nIG9wdGlvbnMpIHRv IHVzZScpCisrICAgIGFyZ3MgPSBwYXJzZXIucGFyc2VfYXJncygpCisrCisrICAgIGlmIGdsaWJj ZXh0cmFjdC5jb21waWxlX2Nfc25pcHBldCgKKysgICAgICAgICAgICAnI2luY2x1ZGUgPGxpbnV4 L21vdW50Lmg+JywKKysgICAgICAgICAgICBhcmdzLmNjKS5yZXR1cm5jb2RlICE9IDA6CisrICAg ICAgICBzeXMuZXhpdCAoNzcpCisrCisrICAgIGRlZiBjaGVjayh0ZXN0bmFtZSwgc25pcHBldCk6 CisrICAgICAgICAjIEFkZCAtV2Vycm9yIHRvIGNhdGNoIG1hY3JvIHJlZGVmaW5pdGlvbnMgYW5k IF9JU09NQUMgdG8gYXZvaWQKKysgICAgICAgICMgaW50ZXJuYWwgZ2xpYmMgZGVmaW5pdGlvbnMu CisrICAgICAgICByID0gZ2xpYmNleHRyYWN0LmNvbXBpbGVfY19zbmlwcGV0KHNuaXBwZXQsIGFy Z3MuY2MsCisrICAgICAgICAgICAgICAgICctV2Vycm9yIC1EX0lTT01BQycpCisrICAgICAgICBp ZiByLnJldHVybmNvZGUgIT0gMDoKKysgICAgICAgICAgICBwcmludCgnZXJyb3I6IHRlc3Qge306 XG57fScuZm9ybWF0KHRlc3RuYW1lLCByLm91dHB1dC5kZWNvZGUoKSkpCisrICAgICAgICByZXR1 cm4gci5yZXR1cm5jb2RlCisrCisrICAgIHN0YXR1cyA9IG1heCgKKysgICAgICAgIGNoZWNrKCJz eXMvbW91bnQuaCArIGxpbnV4L21vdW50LmgiLAorKyAgICAgICAgICAgICAgIiNpbmNsdWRlIDxz eXMvbW91bnQuaD5cbiIKKysgICAgICAgICAgICAgICIjaW5jbHVkZSA8bGludXgvbW91bnQuaD4i KSwKKysgICAgICAgIGNoZWNrKCJzeXMvbW91bnQuaCArIGxpbnV4L2ZzLmgiLAorKyAgICAgICAg ICAgICAgIiNpbmNsdWRlIDxzeXMvbW91bnQuaD5cbiIKKysgICAgICAgICAgICAgICIjaW5jbHVk ZSA8bGludXgvZnMuaD4iKSwKKysgICAgICAgIGNoZWNrKCJsaW51eC9tb3VudC5oICsgc3lzL21v dW50LmgiLAorKyAgICAgICAgICAgICAgIiNpbmNsdWRlIDxsaW51eC9tb3VudC5oPlxuIgorKyAg ICAgICAgICAgICAgIiNpbmNsdWRlIDxzeXMvbW91bnQuaD4iKSwKKysgICAgICAgIGNoZWNrKCJs aW51eC9mcy5oICsgc3lzL21vdW50LmgiLAorKyAgICAgICAgICAgICAgIiNpbmNsdWRlIDxsaW51 eC9mcy5oPlxuIgorKyAgICAgICAgICAgICAgIiNpbmNsdWRlIDxzeXMvbW91bnQuaD4iKSkKKysg ICAgc3lzLmV4aXQoc3RhdHVzKQorKworK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisrICAg IG1haW4oKQorLS0gCisyLjM4LjEKKworCitGcm9tIDNiZDNjNjEyZTk4YTUzY2U2MGVkOTcyZjVj ZDJiOTA2MjhiM2NiYTUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBGbG9yaWFuIFdl aW1lciA8ZndlaW1lckByZWRoYXQuY29tPgorRGF0ZTogVHVlLCAxNiBBdWcgMjAyMiAwOToyNToy MyArMDIwMAorU3ViamVjdDogTGludXg6IEZpeCBlbnVtIGZzY29uZmlnX2NvbW1hbmQgZGV0ZWN0 aW9uIGluIDxzeXMvbW91bnQuaD4KKworVGhlICNpZmRlZiBGU09QRU5fQ0xPRVhFQyBjaGVjayBk aWQgbm90IHdvcmsgYmVjYXVzZSB0aGUgbWFjcm8KK3dhcyBhbHdheXMgZGVmaW5lZCBpbiB0aGlz IGhlYWRlciBwcmlvciB0byB0aGUgY2hlY2ssIHNvIHRoYXQKK3RoZSA8bGludXgvbW91bnQuaD4g Y29udGVudHMgZGlkIG5vdCBtYXR0ZXIuCisKK0ZpeGVzIGNvbW1pdCA3NzQwNThkNzI5NDIyNDlm NzFkNzRlN2YyYjYzOWY3NzE4NDE2MGE2CisoImxpbnV4OiBGaXggc3lzL21vdW50LmggdXNhZ2Ug d2l0aCBrZXJuZWwgaGVhZGVycyIpLgorCisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCAyOTU1 ZWY0YjdjOWI1NmZjZDdhYmZlZGRlZjdlZTgzYzYwYWJmZjk4KQorLS0tCisgc3lzZGVwcy91bml4 L3N5c3YvbGludXgvc3lzL21vdW50LmggfCA2ICsrKy0tLQorIDEgZmlsZSBjaGFuZ2VkLCAzIGlu c2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zeXNkZXBzL3VuaXgv c3lzdi9saW51eC9zeXMvbW91bnQuaCBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9tb3Vu dC5oCitpbmRleCAyZTNmZDZhN2ZlLi4xOTg0MWQwNzM4IDEwMDY0NAorLS0tIGEvc3lzZGVwcy91 bml4L3N5c3YvbGludXgvc3lzL21vdW50LmgKKysrKyBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4 L3N5cy9tb3VudC5oCitAQCAtMTg4LDkgKzE4OCw2IEBAIGVudW0KKyB9OworIAorIAorLS8qIGZz b3BlbiBmbGFncy4gICovCistI2RlZmluZSBGU09QRU5fQ0xPRVhFQyAgICAgICAgICAweDAwMDAw MDAxCistCisgLyogZnNtb3VudCBmbGFncy4gICovCisgI2RlZmluZSBGU01PVU5UX0NMT0VYRUMg ICAgICAgICAweDAwMDAwMDAxCisgCitAQCAtMjYxLDYgKzI1OCw5IEBAIGVudW0gZnNjb25maWdf Y29tbWFuZAorIH07CisgI2VuZGlmCisgCisrLyogZnNvcGVuIGZsYWdzLiAgKi8KKysjZGVmaW5l IEZTT1BFTl9DTE9FWEVDICAgICAgICAgIDB4MDAwMDAwMDEKKysKKyAvKiBvcGVuX3RyZWUgZmxh Z3MuICAqLworICNkZWZpbmUgT1BFTl9UUkVFX0NMT05FICAgIDEgICAgICAgICAvKiBDbG9uZSB0 aGUgdGFyZ2V0IHRyZWUgYW5kIGF0dGFjaCB0aGUgY2xvbmUgKi8KKyAjZGVmaW5lIE9QRU5fVFJF RV9DTE9FWEVDICBPX0NMT0VYRUMgLyogQ2xvc2UgdGhlIGZpbGUgb24gZXhlY3ZlKCkgKi8KKy0t IAorMi4zOC4xCisKKworRnJvbSBiMGU3ODg4ZDFmYTJkYmQyZDllMTY0NWVjOGM3OTZhYmY3ODg4 MGI5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQWRoZW1lcnZhbCBaYW5lbGxhIDxh ZGhlbWVydmFsLnphbmVsbGFAbGluYXJvLm9yZz4KK0RhdGU6IFN1biwgMjggQXVnIDIwMjIgMTY6 NTI6NTMgLTAzMDAKK1N1YmplY3Q6IHN5c2xvZzogRml4IGxhcmdlIG1lc3NhZ2VzIChCWiMyOTUz NikKKworVGhlIGE1ODNiNmFkZDQwN2MxN2NkIGNoYW5nZSBkaWQgbm90IGhhbmRsZSBsYXJnZSBt ZXNzYWdlcyB0aGF0Cit3b3VsZCByZXF1aXJlIGEgaGVhcCBhbGxvY2F0aW9uIGNvcnJlY3RseSwg d2hlcmUgdGhlIG1lc3NhZ2UgaXRzZWxmCitpcyBub3QgdGFrZSBpbiBjb25zaWRlcmF0aW9uLgor CitUaGlzIHBhdGNoIGZpeGVzIGl0IGFuZCBleHRlbmQgdGhlIHRzdC1zeXNsb2cgdG8gY2hlY2sg Zm9yIGxhcmdlCittZXNzYWdlcyBhcyB3ZWxsLgorCitDaGVja2VkIG9uIHg4Nl82NC1saW51eC1n bnUuCisKK1Jldmlld2VkLWJ5OiBTaWRkaGVzaCBQb3lhcmVrYXIgPHNpZGRoZXNoQHNvdXJjZXdh cmUub3JnPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgNTJhNWJlMGRmNDExZWYzZmY0NWMx MGM3YzMwOGNiOTI5OTNkMTViMSkKKy0tLQorIG1pc2Mvc3lzbG9nLmMgICAgIHwgIDE4ICsrKy0t LQorIG1pc2MvdHN0LXN5c2xvZy5jIHwgMTUyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKy0tLS0tLS0KKyAyIGZpbGVzIGNoYW5nZWQsIDE0MiBpbnNlcnRpb25zKCspLCAy OCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL21pc2Mvc3lzbG9nLmMgYi9taXNjL3N5c2xv Zy5jCitpbmRleCA1NTQwODliZmM0Li5iODhmNjZjODM1IDEwMDY0NAorLS0tIGEvbWlzYy9zeXNs b2cuYworKysrIGIvbWlzYy9zeXNsb2cuYworQEAgLTE5MywyOCArMTkzLDMyIEBAIF9fdnN5c2xv Z19pbnRlcm5hbCAoaW50IHByaSwgY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFwLAorICAgICAg IGludCB2bCA9IF9fdnNucHJpbnRmX2ludGVybmFsIChidWZzICsgbCwgc2l6ZW9mIGJ1ZnMgLSBs LCBmbXQsIGFwYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZV9m bGFncyk7CisgICAgICAgaWYgKDAgPD0gdmwgJiYgdmwgPCBzaXplb2YgYnVmcyAtIGwpCistICAg ICAgICB7CistICAgICAgICAgIGJ1ZiA9IGJ1ZnM7CistICAgICAgICAgIGJ1ZnNpemUgPSBsICsg dmw7CistICAgICAgICB9CisrICAgICAgICBidWYgPSBidWZzOworKyAgICAgIGJ1ZnNpemUgPSBs ICsgdmw7CisgCisgICAgICAgdmFfZW5kIChhcGMpOworICAgICB9CisgCisgICBpZiAoYnVmID09 IE5VTEwpCisgICAgIHsKKy0gICAgICBidWYgPSBtYWxsb2MgKGwgKiBzaXplb2YgKGNoYXIpKTsK KysgICAgICBidWYgPSBtYWxsb2MgKChidWZzaXplICsgMSkgKiBzaXplb2YgKGNoYXIpKTsKKyAg ICAgICBpZiAoYnVmICE9IE5VTEwpCisgCXsKKyAJICAvKiBUZWxsIHRoZSBjYW5jZWxsYXRpb24g aGFuZGxlciB0byBmcmVlIHRoaXMgYnVmZmVyLiAgKi8KKyAJICBjbGFyZy5idWYgPSBidWY7Cisg CisgCSAgaWYgKGhhc190cykKKy0JICAgIF9fc25wcmludGYgKGJ1ZnMsIHNpemVvZiBidWZzLAor KwkgICAgX19zbnByaW50ZiAoYnVmLCBsICsgMSwKKyAJCQlTWVNMT0dfSEVBREVSIChwcmksIHRp bWVzdGFtcCwgJm1zZ29mZiwgcGlkKSk7CisgCSAgZWxzZQorLQkgICAgX19zbnByaW50ZiAoYnVm cywgc2l6ZW9mIGJ1ZnMsCisrCSAgICBfX3NucHJpbnRmIChidWYsIGwgKyAxLAorIAkJCVNZU0xP R19IRUFERVJfV0lUSE9VVF9UUyAocHJpLCAmbXNnb2ZmKSk7CisrCisrCSAgdmFfbGlzdCBhcGM7 CisrCSAgdmFfY29weSAoYXBjLCBhcCk7CisrCSAgX192c25wcmludGZfaW50ZXJuYWwgKGJ1ZiAr IGwsIGJ1ZnNpemUgLSBsICsgMSwgZm10LCBhcGMsCisrCQkJCW1vZGVfZmxhZ3MpOworKwkgIHZh X2VuZCAoYXBjKTsKKyAJfQorICAgICAgIGVsc2UKKyAgICAgICAgIHsKK2RpZmYgLS1naXQgYS9t aXNjL3RzdC1zeXNsb2cuYyBiL21pc2MvdHN0LXN5c2xvZy5jCitpbmRleCBlNTUwZDE1Nzk2Li4x ZDMzMmVjZTUzIDEwMDY0NAorLS0tIGEvbWlzYy90c3Qtc3lzbG9nLmMKKysrKyBiL21pc2MvdHN0 LXN5c2xvZy5jCitAQCAtNjgsMjEgKzY4LDE5IEBAIHN0YXRpYyBjb25zdCBpbnQgcHJpb3JpdGll c1tdID0KKyAgICAgTE9HX0RFQlVHCisgICB9OworIAorLWVudW0KKy0gIHsKKy0gICAgaWRlbnRf bGVuZ3RoID0gNjQsCistICAgIG1zZ19sZW5ndGggPSA2NAorLSAgfTsKKysjZGVmaW5lIElERU5U X0xFTkdUSCA2NAorKyNkZWZpbmUgTVNHX0xFTkdUSCAgIDEwMjQKKyAKKyAjZGVmaW5lIFNZU0xP R19NU0dfQkFTRSAic3lzbG9nX21lc3NhZ2UiCisgI2RlZmluZSBPUEVOTE9HX0lERU5UICAgIm9w ZW5sb2dfaWRlbnQiCisrc3RhdGljIGNoYXIgbGFyZ2VfbWVzc2FnZVtNU0dfTEVOR1RIXTsKKyAK KyBzdHJ1Y3QgbXNnX3QKKyAgIHsKKyAgICAgaW50IHByaW9yaXR5OworICAgICBpbnQgZmFjaWxp dHk7CistICAgIGNoYXIgaWRlbnRbaWRlbnRfbGVuZ3RoXTsKKy0gICAgY2hhciBtc2dbbXNnX2xl bmd0aF07CisrICAgIGNoYXIgaWRlbnRbSURFTlRfTEVOR1RIXTsKKysgICAgY2hhciBtc2dbTVNH X0xFTkdUSF07CisgICAgIHBpZF90IHBpZDsKKyAgIH07CisgCitAQCAtMTQ3LDYgKzE0NSwzNyBA QCBjaGVja19zeXNsb2dfbWVzc2FnZSAoY29uc3Qgc3RydWN0IG1zZ190ICptc2csIGludCBtc2du dW0sIGludCBvcHRpb25zLAorICAgcmV0dXJuIHRydWU7CisgfQorIAorK3N0YXRpYyB2b2lkCisr c2VuZF9zeXNsb2dfbGFyZ2UgKGludCBvcHRpb25zKQorK3sKKysgIGludCBmYWNpbGl0eSA9IExP R19VU0VSOworKyAgaW50IHByaW9yaXR5ID0gTE9HX0lORk87CisrCisrICBzeXNsb2cgKGZhY2ls aXR5IHwgcHJpb3JpdHksICIlcyAlZCAlZCIsIGxhcmdlX21lc3NhZ2UsIGZhY2lsaXR5LAorKwkg IHByaW9yaXR5KTsKKyt9CisrCisrc3RhdGljIHZvaWQKKytzZW5kX3ZzeXNsb2dfbGFyZ2UgKGlu dCBvcHRpb25zKQorK3sKKysgIGludCBmYWNpbGl0eSA9IExPR19VU0VSOworKyAgaW50IHByaW9y aXR5ID0gTE9HX0lORk87CisrCisrICBjYWxsX3ZzeXNsb2cgKGZhY2lsaXR5IHwgcHJpb3JpdHks ICIlcyAlZCAlZCIsIGxhcmdlX21lc3NhZ2UsIGZhY2lsaXR5LAorKwkJcHJpb3JpdHkpOworK30K KysKKytzdGF0aWMgYm9vbAorK2NoZWNrX3N5c2xvZ19tZXNzYWdlX2xhcmdlIChjb25zdCBzdHJ1 Y3QgbXNnX3QgKm1zZywgaW50IG1zZ251bSwgaW50IG9wdGlvbnMsCisrCQkJICAgIHBpZF90IHBp ZCkKKyt7CisrICBURVNUX0NPTVBBUkUgKG1zZy0+ZmFjaWxpdHksIExPR19VU0VSKTsKKysgIFRF U1RfQ09NUEFSRSAobXNnLT5wcmlvcml0eSwgTE9HX0lORk8pOworKyAgVEVTVF9DT01QQVJFX1NU UklORyAobXNnLT5tc2csIGxhcmdlX21lc3NhZ2UpOworKworKyAgcmV0dXJuIGZhbHNlOworK30K KysKKyBzdGF0aWMgdm9pZAorIHNlbmRfb3BlbmxvZyAoaW50IG9wdGlvbnMpCisgeworQEAgLTE3 OSw2ICsyMDgsMTcgQEAgc2VuZF9vcGVubG9nIChpbnQgb3B0aW9ucykKKyAgIGNsb3NlbG9nICgp OworIH0KKyAKKytzdGF0aWMgdm9pZAorK3NlbmRfb3BlbmxvZ19sYXJnZSAoaW50IG9wdGlvbnMp CisreworKyAgLyogRGVmaW5lIGEgbm9uLWRlZmF1bHQgSURFTlQgYW5kIGEgbm90IGRlZmF1bHQg ZmFjaWxpdHkuICAqLworKyAgb3BlbmxvZyAoT1BFTkxPR19JREVOVCwgb3B0aW9ucywgTE9HX0xP Q0FMMCk7CisrCisrICBzeXNsb2cgKExPR19JTkZPLCAiJXMgJWQgJWQiLCBsYXJnZV9tZXNzYWdl LCBMT0dfTE9DQUwwLCBMT0dfSU5GTyk7CisrCisrICBjbG9zZWxvZyAoKTsKKyt9CisrCisgc3Rh dGljIGJvb2wKKyBjaGVja19vcGVubG9nX21lc3NhZ2UgKGNvbnN0IHN0cnVjdCBtc2dfdCAqbXNn LCBpbnQgbXNnbnVtLAorICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9wdGlvbnMsIHBpZF90 IHBpZCkKK0BAIC0xODksNyArMjI5LDcgQEAgY2hlY2tfb3BlbmxvZ19tZXNzYWdlIChjb25zdCBz dHJ1Y3QgbXNnX3QgKm1zZywgaW50IG1zZ251bSwKKyAgIGludCBleHBlY3RlZF9wcmlvcml0eSA9 IHByaW9yaXRpZXNbbXNnbnVtICUgYXJyYXlfbGVuZ3RoIChwcmlvcml0aWVzKV07CisgICBURVNU X0NPTVBBUkUgKG1zZy0+cHJpb3JpdHksIGV4cGVjdGVkX3ByaW9yaXR5KTsKKyAKKy0gIGNoYXIg ZXhwZWN0ZWRfaWRlbnRbaWRlbnRfbGVuZ3RoXTsKKysgIGNoYXIgZXhwZWN0ZWRfaWRlbnRbSURF TlRfTEVOR1RIXTsKKyAgIHNucHJpbnRmIChleHBlY3RlZF9pZGVudCwgc2l6ZW9mIChleHBlY3Rl ZF9pZGVudCksICIlcyVzJS4wZCVzOiIsCisgICAgICAgICAgICAgT1BFTkxPR19JREVOVCwKKyAg ICAgICAgICAgICBvcHRpb25zICYgTE9HX1BJRCA/ICJbIiA6ICIiLAorQEAgLTIxMSwxNSArMjUx LDM4IEBAIGNoZWNrX29wZW5sb2dfbWVzc2FnZSAoY29uc3Qgc3RydWN0IG1zZ190ICptc2csIGlu dCBtc2dudW0sCisgICByZXR1cm4gdHJ1ZTsKKyB9CisgCisrc3RhdGljIGJvb2wKKytjaGVja19v cGVubG9nX21lc3NhZ2VfbGFyZ2UgKGNvbnN0IHN0cnVjdCBtc2dfdCAqbXNnLCBpbnQgbXNnbnVt LAorKwkJCSAgICAgaW50IG9wdGlvbnMsIHBpZF90IHBpZCkKKyt7CisrICBjaGFyIGV4cGVjdGVk X2lkZW50W0lERU5UX0xFTkdUSF07CisrICBzbnByaW50ZiAoZXhwZWN0ZWRfaWRlbnQsIHNpemVv ZiAoZXhwZWN0ZWRfaWRlbnQpLCAiJXMlcyUuMGQlczoiLAorKyAgICAgICAgICAgIE9QRU5MT0df SURFTlQsCisrICAgICAgICAgICAgb3B0aW9ucyAmIExPR19QSUQgPyAiWyIgOiAiIiwKKysgICAg ICAgICAgICBvcHRpb25zICYgTE9HX1BJRCA/IHBpZCA6IDAsCisrICAgICAgICAgICAgb3B0aW9u cyAmIExPR19QSUQgPyAiXSIgOiAiIik7CisrCisrICBURVNUX0NPTVBBUkVfU1RSSU5HIChtc2ct PmlkZW50LCBleHBlY3RlZF9pZGVudCk7CisrICBURVNUX0NPTVBBUkVfU1RSSU5HIChtc2ctPm1z ZywgbGFyZ2VfbWVzc2FnZSk7CisrICBURVNUX0NPTVBBUkUgKG1zZy0+cHJpb3JpdHksIExPR19J TkZPKTsKKysgIFRFU1RfQ09NUEFSRSAobXNnLT5mYWNpbGl0eSwgTE9HX0xPQ0FMMCk7CisrCisr ICByZXR1cm4gZmFsc2U7CisrfQorKworIHN0YXRpYyBzdHJ1Y3QgbXNnX3QKKyBwYXJzZV9zeXNs b2dfbXNnIChjb25zdCBjaGFyICptc2cpCisgeworICAgc3RydWN0IG1zZ190IHIgPSB7IC5waWQg PSAtMSB9OworICAgaW50IG51bWJlcjsKKyAKKysjZGVmaW5lIFNUUklOUFVUKHNpemUpICBYU1RS SU5QVVQoc2l6ZSkKKysjZGVmaW5lIFhTVFJJTlBVVChzaXplKSAiJSIgIyBzaXplICJzIgorKwor ICAgLyogVGhlIG1lc3NhZ2UgaW4gdGhlIGZvcm06CistICAgICA8MTc5PkFwciAgOCAxNDo1MTox OSB0c3Qtc3lzbG9nOiBzeXNsb2cgbWVzc2FnZSAxNzYgMyAgKi8KKy0gIGludCBuID0gc3NjYW5m IChtc2csICI8JTNkPiUqcyAlKmQgJSpkOiUqZDolKmQgJTMycyAlNjRzICUqZCAlKmQiLAorKyAg ICAgPDE3OT5BcHIgIDggMTQ6NTE6MTkgIHRzdC1zeXNsb2c6IG1lc3NhZ2UgMTc2IDMgICovCisr ICBpbnQgbiA9IHNzY2FuZiAobXNnLCAiPCUzZD4lKnMgJSpkICUqZDolKmQ6JSpkICIgU1RSSU5Q VVQoSURFTlRfTEVOR1RIKQorKwkJICAgICAgICIgIiBTVFJJTlBVVChNU0dfTEVOR1RIKSAiICUq ZCAlKmQiLAorICAgICAgICAgICAgICAgICAgICZudW1iZXIsIHIuaWRlbnQsIHIubXNnKTsKKyAg IFRFU1RfQ09NUEFSRSAobiwgMyk7CisgCitAQCAtMjQ2LDcgKzMwOSw3IEBAIHBhcnNlX3N5c2xv Z19jb25zb2xlIChjb25zdCBjaGFyICptc2cpCisgCisgICAvKiBUaGUgbWVzc2FnZSBpbiB0aGUg Zm9ybToKKyAgICAgIG9wZW5sb2dfaWRlbnQ6IHN5c2xvZ19tZXNzYWdlIDEyOCAwICAqLworLSAg aW50IG4gPSBzc2NhbmYgKG1zZywgIiUzMnMgJTY0cyAlZCAlZCIsCisrICBpbnQgbiA9IHNzY2Fu ZiAobXNnLCBTVFJJTlBVVChJREVOVF9MRU5HVEgpICIgIiBTVFJJTlBVVChNU0dfTEVOR1RIKSAi ICVkICVkIiwKKyAgICAgICByLmlkZW50LCByLm1zZywgJmZhY2lsaXR5LCAmcHJpb3JpdHkpOwor ICAgVEVTVF9DT01QQVJFIChuLCA0KTsKKyAKK0BAIC0yODEsNyArMzQ0LDcgQEAgY2hlY2tfc3lz bG9nX3VkcCAodm9pZCAoKnN5c2xvZ19zZW5kKShpbnQpLCBpbnQgb3B0aW9ucywKKyAgIGludCBt c2dudW0gPSAwOworICAgd2hpbGUgKDEpCisgICAgIHsKKy0gICAgICBjaGFyIGJ1Zls1MTJdOwor KyAgICAgIGNoYXIgYnVmWzIwNDhdOworICAgICAgIHNpemVfdCBsID0geHJlY3Zmcm9tIChzZXJ2 ZXJfdWRwLCBidWYsIHNpemVvZiAoYnVmKSwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKHN0cnVjdCBzb2NrYWRkciAqKSAmYWRkciwgJmFkZHJsZW4pOworICAgICAgIGJ1ZltsXSA9 ICdcMCc7CitAQCAtMzI1LDcgKzM4OCw3IEBAIGNoZWNrX3N5c2xvZ190Y3AgKHZvaWQgKCpzeXNs b2dfc2VuZCkoaW50KSwgaW50IG9wdGlvbnMsCisgCisgICBpbnQgY2xpZW50X3RjcCA9IHhhY2Nl cHQgKHNlcnZlcl90Y3AsIE5VTEwsIE5VTEwpOworIAorLSAgY2hhciBidWZbNTEyXSwgKnJiID0g YnVmOworKyAgY2hhciBidWZbMjA0OF0sICpyYiA9IGJ1ZjsKKyAgIHNpemVfdCByYmwgPSBzaXpl b2YgKGJ1Zik7CisgICBzaXplX3QgcHJsID0gMDsgIC8qIFRyYWNrIHRoZSBzaXplIG9mIHRoZSBw YXJ0aWFsIHJlY29yZC4gICovCisgICBpbnQgbXNnbnVtID0gMDsKK0BAIC0zOTMsMjAgKzQ1Niwz NCBAQCBjaGVja19zeXNsb2dfY29uc29sZV9yZWFkIChGSUxFICpmcCkKKyB9CisgCisgc3RhdGlj IHZvaWQKKy1jaGVja19zeXNsb2dfY29uc29sZSAodm9pZCkKKytjaGVja19zeXNsb2dfY29uc29s ZV9yZWFkX2xhcmdlIChGSUxFICpmcCkKKyt7CisrICBjaGFyIGJ1ZlsyMDQ4XTsKKysgIFRFU1Rf VkVSSUZZIChmZ2V0cyAoYnVmLCBzaXplb2YgKGJ1ZiksIGZwKSAhPSBOVUxMKTsKKysgIHN0cnVj dCBtc2dfdCBtc2cgPSBwYXJzZV9zeXNsb2dfY29uc29sZSAoYnVmKTsKKysKKysgIFRFU1RfQ09N UEFSRV9TVFJJTkcgKG1zZy5pZGVudCwgT1BFTkxPR19JREVOVCAiOiIpOworKyAgVEVTVF9DT01Q QVJFX1NUUklORyAobXNnLm1zZywgbGFyZ2VfbWVzc2FnZSk7CisrICBURVNUX0NPTVBBUkUgKG1z Zy5wcmlvcml0eSwgTE9HX0lORk8pOworKyAgVEVTVF9DT01QQVJFIChtc2cuZmFjaWxpdHksIExP R19MT0NBTDApOworK30KKysKKytzdGF0aWMgdm9pZAorK2NoZWNrX3N5c2xvZ19jb25zb2xlICh2 b2lkICgqc3lzbG9nX3NlbmQpKGludCksCisrCQkgICAgICB2b2lkICgqc3lzbG9nX2NoZWNrKShG SUxFICpmcCkpCisgeworICAgeG1rZmlmbyAoX1BBVEhfQ09OU09MRSwgMDY2Nik7CisgCisgICBw aWRfdCBzZW5kZXJfcGlkID0geGZvcmsgKCk7CisgICBpZiAoc2VuZGVyX3BpZCA9PSAwKQorICAg ICB7CistICAgICAgc2VuZF9vcGVubG9nIChMT0dfQ09OUyk7CisrICAgICAgc3lzbG9nX3NlbmQg KExPR19DT05TKTsKKyAgICAgICBfZXhpdCAoMCk7CisgICAgIH0KKyAKKyAgIHsKKyAgICAgRklM RSAqZnAgPSB4Zm9wZW4gKF9QQVRIX0NPTlNPTEUsICJyKyIpOworLSAgICBjaGVja19zeXNsb2df Y29uc29sZV9yZWFkIChmcCk7CisrICAgIHN5c2xvZ19jaGVjayAoZnApOworICAgICB4ZmNsb3Nl IChmcCk7CisgICB9CisgCitAQCAtNDI1LDE2ICs1MDIsMjggQEAgc2VuZF9vcGVubG9nX2NhbGxi YWNrICh2b2lkICpjbG91c3VyZSkKKyB9CisgCisgc3RhdGljIHZvaWQKKy1jaGVja19zeXNsb2df cGVycm9yICh2b2lkKQorK3NlbmRfb3BlbmxvZ19jYWxsYmFja19sYXJnZSAodm9pZCAqY2xvdXN1 cmUpCisreworKyAgaW50IG9wdGlvbnMgPSAqKGludCAqKSBjbG91c3VyZTsKKysgIHNlbmRfb3Bl bmxvZ19sYXJnZSAob3B0aW9ucyk7CisrfQorKworK3N0YXRpYyB2b2lkCisrY2hlY2tfc3lzbG9n X3BlcnJvciAoYm9vbCBsYXJnZSkKKyB7CisgICBzdHJ1Y3Qgc3VwcG9ydF9jYXB0dXJlX3N1YnBy b2Nlc3MgcmVzdWx0OworLSAgcmVzdWx0ID0gc3VwcG9ydF9jYXB0dXJlX3N1YnByb2Nlc3MgKHNl bmRfb3BlbmxvZ19jYWxsYmFjaywKKysgIHJlc3VsdCA9IHN1cHBvcnRfY2FwdHVyZV9zdWJwcm9j ZXNzIChsYXJnZQorKwkJCQkgICAgICAgPyBzZW5kX29wZW5sb2dfY2FsbGJhY2tfbGFyZ2UKKysJ CQkJICAgICAgIDogc2VuZF9vcGVubG9nX2NhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICYoaW50KXtMT0dfUEVSUk9SfSk7CisgCisgICBGSUxFICptZnAg PSBmbWVtb3BlbiAocmVzdWx0LmVyci5idWZmZXIsIHJlc3VsdC5lcnIubGVuZ3RoLCAiciIpOwor ICAgaWYgKG1mcCA9PSBOVUxMKQorICAgICBGQUlMX0VYSVQxICgiZm1lbW9wZW46ICVtIik7Cist ICBjaGVja19zeXNsb2dfY29uc29sZV9yZWFkIChtZnApOworKyAgaWYgKGxhcmdlKQorKyAgICBj aGVja19zeXNsb2dfY29uc29sZV9yZWFkX2xhcmdlIChtZnApOworKyAgZWxzZQorKyAgICBjaGVj a19zeXNsb2dfY29uc29sZV9yZWFkIChtZnApOworICAgeGZjbG9zZSAobWZwKTsKKyAKKyAgIHN1 cHBvcnRfY2FwdHVyZV9zdWJwcm9jZXNzX2NoZWNrICgmcmVzdWx0LCAidHN0LW9wZW5sb2ctY2hp bGQiLCAwLAorQEAgLTQ2MiwxMCArNTUxLDMxIEBAIGRvX3Rlc3QgKHZvaWQpCisgICBjaGVja19z eXNsb2dfdGNwIChzZW5kX29wZW5sb2csIExPR19QSUQsIGNoZWNrX29wZW5sb2dfbWVzc2FnZSk7 CisgCisgICAvKiBDaGVjayB0aGUgTE9HX0NPTlMgb3B0aW9uLiAgKi8KKy0gIGNoZWNrX3N5c2xv Z19jb25zb2xlICgpOworKyAgY2hlY2tfc3lzbG9nX2NvbnNvbGUgKHNlbmRfb3BlbmxvZywgY2hl Y2tfc3lzbG9nX2NvbnNvbGVfcmVhZCk7CisgCisgICAvKiBDaGVjayB0aGUgTE9HX1BFUlJPUiBv cHRpb24uICAqLworLSAgY2hlY2tfc3lzbG9nX3BlcnJvciAoKTsKKysgIGNoZWNrX3N5c2xvZ19w ZXJyb3IgKGZhbHNlKTsKKysKKysgIC8qIFNpbWlsYXIgdGVzdHMgYXMgYmVmb3JlLCBidXQgd2l0 aCBhIGxhcmdlIG1lc3NhZ2UgdG8gdHJpZ2dlciB0aGUKKysgICAgIHN5c2xvZyBwYXRoIHRoYXQg dXNlcyBkeW5hbWljYWxseSBhbGxvY2F0ZWQgbWVtb3J5LiAgKi8KKysgIG1lbXNldCAobGFyZ2Vf bWVzc2FnZSwgJ2EnLCBzaXplb2YgbGFyZ2VfbWVzc2FnZSAtIDEpOworKyAgbGFyZ2VfbWVzc2Fn ZVtzaXplb2YgbGFyZ2VfbWVzc2FnZSAtIDFdID0gJ1wwJzsKKysKKysgIGNoZWNrX3N5c2xvZ191 ZHAgKHNlbmRfc3lzbG9nX2xhcmdlLCAwLCBjaGVja19zeXNsb2dfbWVzc2FnZV9sYXJnZSk7Cisr ICBjaGVja19zeXNsb2dfdGNwIChzZW5kX3N5c2xvZ19sYXJnZSwgMCwgY2hlY2tfc3lzbG9nX21l c3NhZ2VfbGFyZ2UpOworKworKyAgY2hlY2tfc3lzbG9nX3VkcCAoc2VuZF92c3lzbG9nX2xhcmdl LCAwLCBjaGVja19zeXNsb2dfbWVzc2FnZV9sYXJnZSk7CisrICBjaGVja19zeXNsb2dfdGNwIChz ZW5kX3ZzeXNsb2dfbGFyZ2UsIDAsIGNoZWNrX3N5c2xvZ19tZXNzYWdlX2xhcmdlKTsKKysKKysg IGNoZWNrX3N5c2xvZ191ZHAgKHNlbmRfb3BlbmxvZ19sYXJnZSwgMCwgY2hlY2tfb3BlbmxvZ19t ZXNzYWdlX2xhcmdlKTsKKysgIGNoZWNrX3N5c2xvZ190Y3AgKHNlbmRfb3BlbmxvZ19sYXJnZSwg MCwgY2hlY2tfb3BlbmxvZ19tZXNzYWdlX2xhcmdlKTsKKysKKysgIGNoZWNrX3N5c2xvZ191ZHAg KHNlbmRfb3BlbmxvZ19sYXJnZSwgTE9HX1BJRCwgY2hlY2tfb3BlbmxvZ19tZXNzYWdlX2xhcmdl KTsKKysgIGNoZWNrX3N5c2xvZ190Y3AgKHNlbmRfb3BlbmxvZ19sYXJnZSwgTE9HX1BJRCwgY2hl Y2tfb3BlbmxvZ19tZXNzYWdlX2xhcmdlKTsKKysKKysgIGNoZWNrX3N5c2xvZ19jb25zb2xlIChz ZW5kX29wZW5sb2dfbGFyZ2UsIGNoZWNrX3N5c2xvZ19jb25zb2xlX3JlYWRfbGFyZ2UpOworKwor KyAgY2hlY2tfc3lzbG9nX3BlcnJvciAodHJ1ZSk7CisgCisgICByZXR1cm4gMDsKKyB9CistLSAK KzIuMzguMQorCisKK0Zyb20gOTI0ZTRmM2VhYTUwMmNlODJmY2NmODUzN2YwMjFhNzk2ZDE1ODc3 MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEZsb3JpYW4gV2VpbWVyIDxmd2VpbWVy QHJlZGhhdC5jb20+CitEYXRlOiBGcmksIDI2IEF1ZyAyMDIyIDIxOjE1OjQzICswMjAwCitTdWJq ZWN0OiBlbGY6IENhbGwgX19saWJjX2Vhcmx5X2luaXQgZm9yIHJldXNlZCBuYW1lc3BhY2VzIChi dWcgMjk1MjgpCisKK2xpYmNfbWFwIGlzIG5ldmVyIHJlc2V0IHRvIE5VTEwsIG5laXRoZXIgZHVy aW5nIGRsY2xvc2Ugbm9yIG9uIGEKK2Rsb3BlbiBjYWxsIHdoaWNoIHJldXNlcyB0aGUgbmFtZXNw YWNlIHN0cnVjdHVyZS4gIEFzIGEgcmVzdWx0LCBpZiBhCituYW1lc3BhY2UgaXMgcmV1c2VkLCBp dHMgbGliYyBpcyBub3QgaW5pdGlhbGl6ZWQgcHJvcGVybHkuICBUaGUgbW9zdAordmlzaWJsZSBy ZXN1bHQgaXMgYSBjcmFzaCBpbiB0aGUgPGN0eXBlLmg+IGZ1bmN0aW9ucy4KKworVG8gcHJldmVu dCBzaW1pbGFyIGJ1Z3Mgb24gbmFtZXNwYWNlIHJldXNlIGZyb20gc3VyZmFjaW5nLAordW5jb25k aXRpb25hbGx5IGluaXRpYWxpemUgdGhlIGNob3NlbiBuYW1lc3BhY2UgdG8gemVybyB1c2luZyBt ZW1zZXQuCisKKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IGQwZTM1N2ZmNDVhNzU1NTNkZWUz YjE3ZWQ3ZDMwM2JmYTU0NGY2ZmUpCistLS0KKyBORVdTICAgICAgICAgICAgICAgICAgICAgICAg IHwgIDEgKworIGVsZi9NYWtlZmlsZSAgICAgICAgICAgICAgICAgfCAyNSArKysrKysrKysrKysr KysrKysKKyBlbGYvZGwtb3Blbi5jICAgICAgICAgICAgICAgIHwgMTMgKysrKysrLS0tLQorIGVs Zi90c3QtZGxtb3Blbi10d2ljZS1tb2QxLmMgfCAzNyArKysrKysrKysrKysrKysrKysrKysrKysr KworIGVsZi90c3QtZGxtb3Blbi10d2ljZS1tb2QyLmMgfCA1MCArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysKKyBlbGYvdHN0LWRsbW9wZW4tdHdpY2UuYyAgICAgIHwgMzQgKysr KysrKysrKysrKysrKysrKysrKysrCisgNiBmaWxlcyBjaGFuZ2VkLCAxNTUgaW5zZXJ0aW9ucygr KSwgNSBkZWxldGlvbnMoLSkKKyBjcmVhdGUgbW9kZSAxMDA2NDQgZWxmL3RzdC1kbG1vcGVuLXR3 aWNlLW1vZDEuYworIGNyZWF0ZSBtb2RlIDEwMDY0NCBlbGYvdHN0LWRsbW9wZW4tdHdpY2UtbW9k Mi5jCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGVsZi90c3QtZGxtb3Blbi10d2ljZS5jCisKK2RpZmYg LS1naXQgYS9ORVdTIGIvTkVXUworaW5kZXggYWUzMDkwMGJiYy4uNmQzMWU1YWJiYSAxMDA2NDQK Ky0tLSBhL05FV1MKKysrKyBiL05FV1MKK0BAIC0xMyw2ICsxMyw3IEBAIFRoZSBmb2xsb3dpbmcg YnVncyBhcmUgcmVzb2x2ZWQgd2l0aCB0aGlzIHJlbGVhc2U6CisgICBbMjk0NDZdIF9kbG9wZW4g bm93IGlnbm9yZXMgZGxfY2FsbGVyIGFyZ3VtZW50IGluIHN0YXRpYyBtb2RlCisgICBbMjk0ODVd IExpbnV4OiBUZXJtaW5hdGUgc3VicHJvY2VzcyBvbiBsYXRlIGZhaWx1cmUgaW4gdHN0LXBpZGZk CisgICBbMjk0OTBdIGFscGhhOiBOZXcgX19icmtfY2FsbCBpbXBsZW1lbnRhdGlvbiBpcyBicm9r ZW4KKysgIFsyOTUyOF0gZWxmOiBDYWxsIF9fbGliY19lYXJseV9pbml0IGZvciByZXVzZWQgbmFt ZXNwYWNlcworIAorIAwKKyBWZXJzaW9uIDIuMzYKK2RpZmYgLS1naXQgYS9lbGYvTWFrZWZpbGUg Yi9lbGYvTWFrZWZpbGUKK2luZGV4IGZkNzdkMGM3YzguLjQzMzUzYTRiMDggMTAwNjQ0CistLS0g YS9lbGYvTWFrZWZpbGUKKysrKyBiL2VsZi9NYWtlZmlsZQorQEAgLTQwOCw2ICs0MDgsNyBAQCB0 ZXN0cyArPSBcCisgICB0c3QtZGxtb3BlbjQgXAorICAgdHN0LWRsbW9wZW4tZGxlcnJvciBcCisg ICB0c3QtZGxtb3Blbi1nZXRob3N0YnluYW1lIFwKKysgIHRzdC1kbG1vcGVuLXR3aWNlIFwKKyAg IHRzdC1kbG9wZW5mYWlsIFwKKyAgIHRzdC1kbG9wZW5mYWlsLTIgXAorICAgdHN0LWRsb3BlbnJw YXRoIFwKK0BAIC04MzQsNiArODM1LDggQEAgbW9kdWxlcy1uYW1lcyArPSBcCisgICB0c3QtZGxt b3BlbjFtb2QgXAorICAgdHN0LWRsbW9wZW4tZGxlcnJvci1tb2QgXAorICAgdHN0LWRsbW9wZW4t Z2V0aG9zdGJ5bmFtZS1tb2QgXAorKyAgdHN0LWRsbW9wZW4tdHdpY2UtbW9kMSBcCisrICB0c3Qt ZGxtb3Blbi10d2ljZS1tb2QyIFwKKyAgIHRzdC1kbG9wZW5mYWlsbGlua21vZCBcCisgICB0c3Qt ZGxvcGVuZmFpbG1vZDEgXAorICAgdHN0LWRsb3BlbmZhaWxtb2QyIFwKK0BAIC0yOTY3LDMgKzI5 NzAsMjUgQEAgJChvYmpwZngpdHN0LXRscy1hbGxvY2F0aW9uLWZhaWx1cmUtc3RhdGljLXBhdGNo ZWQub3V0OiBcCisgCWdyZXAgLXEgJ15GYXRhbCBnbGliYyBlcnJvcjogQ2Fubm90IGFsbG9jYXRl IFRMUyBibG9jayQkJyAkQCBcCisgCSAgJiYgZ3JlcCAtcSAnXnN0YXR1czogMTI3JCQnICRAOyBc CisgCSAgJChldmFsdWF0ZS10ZXN0KQorKworKyQob2JqcGZ4KXRzdC1hdWRpdC10bHNkZXNjOiAk KG9ianBmeCl0c3QtYXVkaXQtdGxzZGVzYy1tb2QxLnNvIFwKKysJCQkgICAgJChvYmpwZngpdHN0 LWF1ZGl0LXRsc2Rlc2MtbW9kMi5zbyBcCisrCQkJICAgICQoc2hhcmVkLXRocmVhZC1saWJyYXJ5 KQorK2lmZXEgKHllcywkKGhhdmUtbXRscy1kaWFsZWN0LWdudTIpKQorKyMgVGhlIHRlc3QgaXMg dmFsaWQgZm9yIGFsbCBUTFMgdHlwZXMsIGJ1dCB3ZSB3YW50IHRvIGV4ZXJjaXNlIEdOVTIKKysj IFRMUyBpZiBwb3NzaWJsZS4KKytDRkxBR1MtdHN0LWF1ZGl0LXRsc2Rlc2MtbW9kMS5jICs9IC1t dGxzLWRpYWxlY3Q9Z251MgorK0NGTEFHUy10c3QtYXVkaXQtdGxzZGVzYy1tb2QyLmMgKz0gLW10 bHMtZGlhbGVjdD1nbnUyCisrZW5kaWYKKyskKG9ianBmeCl0c3QtYXVkaXQtdGxzZGVzYy1kbG9w ZW46ICQoc2hhcmVkLXRocmVhZC1saWJyYXJ5KQorKyQob2JqcGZ4KXRzdC1hdWRpdC10bHNkZXNj LWRsb3Blbi5vdXQ6ICQob2JqcGZ4KXRzdC1hdWRpdC10bHNkZXNjLW1vZDEuc28gXAorKwkJCQkg ICAgICAgJChvYmpwZngpdHN0LWF1ZGl0LXRsc2Rlc2MtbW9kMi5zbworKyQob2JqcGZ4KXRzdC1h dWRpdC10bHNkZXNjLW1vZDEuc286ICQob2JqcGZ4KXRzdC1hdWRpdC10bHNkZXNjLW1vZDIuc28K KyskKG9ianBmeCl0c3QtYXVkaXQtdGxzZGVzYy5vdXQ6ICQob2JqcGZ4KXRzdC1hdWRpdG1vZC10 bHNkZXNjLnNvCisrdHN0LWF1ZGl0LXRsc2Rlc2MtRU5WID0gTERfQVVESVQ9JChvYmpwZngpdHN0 LWF1ZGl0bW9kLXRsc2Rlc2Muc28KKyskKG9ianBmeCl0c3QtYXVkaXQtdGxzZGVzYy1kbG9wZW4u b3V0OiAkKG9ianBmeCl0c3QtYXVkaXRtb2QtdGxzZGVzYy5zbworK3RzdC1hdWRpdC10bHNkZXNj LWRsb3Blbi1FTlYgPSBMRF9BVURJVD0kKG9ianBmeCl0c3QtYXVkaXRtb2QtdGxzZGVzYy5zbwor KworKyQob2JqcGZ4KXRzdC1kbG1vcGVuLXR3aWNlLm91dDogXAorKyAgJChvYmpwZngpdHN0LWRs bW9wZW4tdHdpY2UtbW9kMS5zbyBcCisrICAkKG9ianBmeCl0c3QtZGxtb3Blbi10d2ljZS1tb2Qy LnNvCitkaWZmIC0tZ2l0IGEvZWxmL2RsLW9wZW4uYyBiL2VsZi9kbC1vcGVuLmMKK2luZGV4IGEy M2U2NTkyNmIuLjQ2ZTgwNjZmZDggMTAwNjQ0CistLS0gYS9lbGYvZGwtb3Blbi5jCisrKysgYi9l bGYvZGwtb3Blbi5jCitAQCAtODQ0LDExICs4NDQsMTQgQEAgX2RsX29wZW4gKGNvbnN0IGNoYXIg KmZpbGUsIGludCBtb2RlLCBjb25zdCB2b2lkICpjYWxsZXJfZGxvcGVuLCBMbWlkX3QgbnNpZCwK KyAJICBfZGxfc2lnbmFsX2Vycm9yIChFSU5WQUwsIGZpbGUsIE5VTEwsIE5fKCJcCisgbm8gbW9y ZSBuYW1lc3BhY2VzIGF2YWlsYWJsZSBmb3IgZGxtb3BlbigpIikpOworIAl9CistICAgICAgZWxz ZSBpZiAobnNpZCA9PSBHTChkbF9ubnMpKQorLQl7CistCSAgX19ydGxkX2xvY2tfaW5pdGlhbGl6 ZSAoR0woZGxfbnMpW25zaWRdLl9uc191bmlxdWVfc3ltX3RhYmxlLmxvY2spOworLQkgICsrR0wo ZGxfbm5zKTsKKy0JfQorKworKyAgICAgIGlmIChuc2lkID09IEdMKGRsX25ucykpCisrCSsrR0wo ZGxfbm5zKTsKKysKKysgICAgICAvKiBJbml0aWFsaXplIHRoZSBuZXcgbmFtZXNwYWNlLiAgTW9z dCBtZW1iZXJzIGFyZQorKwkgemVyby1pbml0aWFsaXplZCwgb25seSB0aGUgbG9jayBuZWVkcyBz cGVjaWFsIHRyZWF0bWVudC4gICovCisrICAgICAgbWVtc2V0ICgmR0woZGxfbnMpW25zaWRdLCAw LCBzaXplb2YgKEdMKGRsX25zKVtuc2lkXSkpOworKyAgICAgIF9fcnRsZF9sb2NrX2luaXRpYWxp emUgKEdMKGRsX25zKVtuc2lkXS5fbnNfdW5pcXVlX3N5bV90YWJsZS5sb2NrKTsKKyAKKyAgICAg ICBfZGxfZGVidWdfdXBkYXRlIChuc2lkKS0+cl9zdGF0ZSA9IFJUX0NPTlNJU1RFTlQ7CisgICAg IH0KK2RpZmYgLS1naXQgYS9lbGYvdHN0LWRsbW9wZW4tdHdpY2UtbW9kMS5jIGIvZWxmL3RzdC1k bG1vcGVuLXR3aWNlLW1vZDEuYworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAw MDAuLjBlYWYwNDk0OGMKKy0tLSAvZGV2L251bGwKKysrKyBiL2VsZi90c3QtZGxtb3Blbi10d2lj ZS1tb2QxLmMKK0BAIC0wLDAgKzEsMzcgQEAKKysvKiBJbml0aWFsaXphdGlvbiBvZiBsaWJjIGFm dGVyIGRsbW9wZW4vZGxjbG9zZS9kbG1vcGVuIChidWcgMjk1MjgpLiAgTW9kdWxlIDEuCisrICAg Q29weXJpZ2h0IChDKSAyMDIyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyAgIFRo aXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5LgorKworKyAgIFRoZSBHTlUgQyBM aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor KyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ dWJsaWMKKysgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uOyBlaXRoZXIKKysgICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysKKysgICBUaGUgR05VIEMgTGlicmFyeSBp cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAgIGJ1 dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFLiAgU2VlIHRoZSBHTlUKKysgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig bW9yZSBkZXRhaWxzLgorKworKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKysgICBMaWNlbnNlIGFsb25nIHdpdGggdGhl IEdOVSBDIExpYnJhcnk7IGlmIG5vdCwgc2VlCisrICAgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGlj ZW5zZXMvPi4gICovCisrCisrI2luY2x1ZGUgPHN0ZGlvLmg+CisrCisrc3RhdGljIHZvaWQgX19h dHRyaWJ1dGVfXyAoKGNvbnN0cnVjdG9yKSkKKytpbml0ICh2b2lkKQorK3sKKysgIHB1dHMgKCJp bmZvOiB0c3QtZGxtb3Blbi10d2ljZS1tb2QxLnNvIGxvYWRlZCIpOworKyAgZmZsdXNoIChzdGRv dXQpOworK30KKysKKytzdGF0aWMgdm9pZCBfX2F0dHJpYnV0ZV9fICgoZGVzdHJ1Y3RvcikpCisr ZmluaSAodm9pZCkKKyt7CisrICBwdXRzICgiaW5mbzogdHN0LWRsbW9wZW4tdHdpY2UtbW9kMS5z byBhYm91dCB0byBiZSB1bmxvYWRlZCIpOworKyAgZmZsdXNoIChzdGRvdXQpOworK30KKysKKysv KiBMYXJnZSBhbGxvY2F0aW9uLiAgVGhlIHNlY29uZCBtb2R1bGUgZG9lcyBub3QgaGF2ZSB0aGlz LCBzbyBpdAorKyAgIHNob3VsZCBsb2FkIGxpYmMgYXQgYSBkaWZmZXJlbnQgYWRkcmVzcy4gICov CisrY2hhciBsYXJnZV9hbGxvY2F0ZVsxNiAqIDEwMjQgKiAxMDI0XTsKK2RpZmYgLS1naXQgYS9l bGYvdHN0LWRsbW9wZW4tdHdpY2UtbW9kMi5jIGIvZWxmL3RzdC1kbG1vcGVuLXR3aWNlLW1vZDIu YworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAuLjQwYzZjMDFmOTYKKy0t LSAvZGV2L251bGwKKysrKyBiL2VsZi90c3QtZGxtb3Blbi10d2ljZS1tb2QyLmMKK0BAIC0wLDAg KzEsNTAgQEAKKysvKiBJbml0aWFsaXphdGlvbiBvZiBsaWJjIGFmdGVyIGRsbW9wZW4vZGxjbG9z ZS9kbG1vcGVuIChidWcgMjk1MjgpLiAgTW9kdWxlIDIuCisrICAgQ29weXJpZ2h0IChDKSAyMDIy IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9m IHRoZSBHTlUgQyBMaWJyYXJ5LgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29m dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorKyAgIG1vZGlmeSBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKysgICBMaWNlbnNl IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKysg ICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0 ZXIgdmVyc2lvbi4KKysKKysgICBUaGUgR05VIEMgTGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0 aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJS QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK KysgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKwor KyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu ZXJhbCBQdWJsaWMKKysgICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJhcnk7IGlm IG5vdCwgc2VlCisrICAgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisr I2luY2x1ZGUgPGN0eXBlLmg+CisrI2luY2x1ZGUgPHN0ZGlvLmg+CisrCisrc3RhdGljIHZvaWQg X19hdHRyaWJ1dGVfXyAoKGNvbnN0cnVjdG9yKSkKKytpbml0ICh2b2lkKQorK3sKKysgIHB1dHMg KCJpbmZvOiB0c3QtZGxtb3Blbi10d2ljZS1tb2QyLnNvIGxvYWRlZCIpOworKyAgZmZsdXNoIChz dGRvdXQpOworK30KKysKKytzdGF0aWMgdm9pZCBfX2F0dHJpYnV0ZV9fICgoZGVzdHJ1Y3Rvcikp CisrZmluaSAodm9pZCkKKyt7CisrICBwdXRzICgiaW5mbzogdHN0LWRsbW9wZW4tdHdpY2UtbW9k Mi5zbyBhYm91dCB0byBiZSB1bmxvYWRlZCIpOworKyAgZmZsdXNoIChzdGRvdXQpOworK30KKysK KytpbnQKKytydW5fY2hlY2sgKHZvaWQpCisreworKyAgcHV0cyAoImluZm86IGFib3V0IHRvIGNh bGwgaXNhbHBoYSIpOworKyAgZmZsdXNoIChzdGRvdXQpOworKworKyAgdm9sYXRpbGUgY2hhciBj aCA9ICdhJzsKKysgIGlmICghaXNhbHBoYSAoY2gpKQorKyAgICB7CisrICAgICAgcHV0cyAoImVy cm9yOiBpc2FscGhhICgnYScpIGlzIG5vdCB0cnVlIik7CisrICAgICAgZmZsdXNoIChzdGRvdXQp OworKyAgICAgIHJldHVybiAxOworKyAgICB9CisrICByZXR1cm4gMDsKKyt9CitkaWZmIC0tZ2l0 IGEvZWxmL3RzdC1kbG1vcGVuLXR3aWNlLmMgYi9lbGYvdHN0LWRsbW9wZW4tdHdpY2UuYworbmV3 IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAuLjQ0OWYzYzhmYTkKKy0tLSAvZGV2 L251bGwKKysrKyBiL2VsZi90c3QtZGxtb3Blbi10d2ljZS5jCitAQCAtMCwwICsxLDM0IEBACisr LyogSW5pdGlhbGl6YXRpb24gb2YgbGliYyBhZnRlciBkbG1vcGVuL2RsY2xvc2UvZGxtb3BlbiAo YnVnIDI5NTI4KS4gIE1haW4uCisrICAgQ29weXJpZ2h0IChDKSAyMDIyIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgorKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJy YXJ5LgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKysgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKysgICB2ZXJzaW9uIDIuMSBv ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysK KysgICBUaGUgR05VIEMgTGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKysgICBMZXNzZXIgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyAgIFlvdSBzaG91bGQg aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKysg ICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJhcnk7IGlmIG5vdCwgc2VlCisrICAg PGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrI2luY2x1ZGUgPHN1cHBv cnQveGRsZmNuLmg+CisrI2luY2x1ZGUgPHN1cHBvcnQvY2hlY2suaD4KKysKKytzdGF0aWMgaW50 CisrZG9fdGVzdCAodm9pZCkKKyt7CisrICB2b2lkICpoYW5kbGUgPSB4ZGxtb3BlbiAoTE1fSURf TkVXTE0sICJ0c3QtZGxtb3Blbi10d2ljZS1tb2QxLnNvIiwgUlRMRF9OT1cpOworKyAgeGRsY2xv c2UgKGhhbmRsZSk7CisrICBoYW5kbGUgPSB4ZGxtb3BlbiAoTE1fSURfTkVXTE0sICJ0c3QtZGxt b3Blbi10d2ljZS1tb2QyLnNvIiwgUlRMRF9OT1cpOworKyAgaW50ICgqcnVuX2NoZWNrKSAodm9p ZCkgPSB4ZGxzeW0gKGhhbmRsZSwgInJ1bl9jaGVjayIpOworKyAgVEVTVF9DT01QQVJFIChydW5f Y2hlY2sgKCksIDApOworKyAgeGRsY2xvc2UgKGhhbmRsZSk7CisrICByZXR1cm4gMDsKKyt9Cisr CisrI2luY2x1ZGUgPHN1cHBvcnQvdGVzdC1kcml2ZXIuYz4KKy0tIAorMi4zOC4xCisKKworRnJv bSAzYzc5MWYyMDMxY2E4ZjZiOTllOTZiNzc0ZWQxYzUwNWNlYjkzNTk1IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQorRnJvbTogUmFwaGFlbCBNb3JlaXJhIFppbnNseSA8cnppbnNseUBsaW51eC5p Ym0uY29tPgorRGF0ZTogV2VkLCAyNCBBdWcgMjAyMiAxMTo0MzozNyAtMDMwMAorU3ViamVjdDog QXBwbHkgYXNtIHJlZGlyZWN0aW9ucyBpbiB3Y2hhci5oIGJlZm9yZSBmaXJzdCB1c2UKKworU2lt aWxhciB0byBkMGZhMDlhNzcwLCBidXQgZm9yIHdjaGFyLmguICBGaXhlcyBbQlogIzI3MDg3XSBi eSBhcHBseWluZworYWxsIGxvbmcgZG91YmxlIHJlbGF0ZWQgYXNtIHJlZGlyZWN0aW9ucyBiZWZv cmUgdXNpbmcgZnVuY3Rpb25zIGluCitiaXRzL3djaGFyMi5oLgorTW92ZXMgdGhlIGZ1bmN0aW9u IGRlY2xhcmF0aW9ucyBmcm9tIHdjc21icy9iaXRzL3djaGFyMi5oIHRvIGEgbmV3IGZpbGUKK3dj c21icy9iaXRzL3djaGFyMi1kZWNsLmggdGhhdCB3aWxsIGJlIGluY2x1ZGVkIGZpcnN0IGluIHdj c21icy93Y2hhci5oLgorCitUZXN0ZWQgd2l0aCBidWlsZC1tYW55LWdsaWJjcy5weS4KK1Jldmll d2VkLWJ5OiBBZGhlbWVydmFsIFphbmVsbGEgIDxhZGhlbWVydmFsLnphbmVsbGFAbGluYXJvLm9y Zz4KKworKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgYzc1MDlkNDljNGU4ZmE0OTQxMjBjNWVh ZDIxMzM4NTU5ZGFkMTZmNSkKKy0tLQorIGluY2x1ZGUvYml0cy93Y2hhcjItZGVjbC5oIHwgICAx ICsKKyB3Y3NtYnMvTWFrZWZpbGUgICAgICAgICAgICB8ICAgNSArLQorIHdjc21icy9iaXRzL3dj aGFyMi1kZWNsLmggIHwgMTI0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK KyB3Y3NtYnMvYml0cy93Y2hhcjIuaCAgICAgICB8ICA3MiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyB3Y3NtYnMvd2NoYXIuaCAgICAgICAgICAgICB8ICAxMSArKystCisgNSBmaWxlcyBjaGFuZ2Vk LCAxMzcgaW5zZXJ0aW9ucygrKSwgNzYgZGVsZXRpb25zKC0pCisgY3JlYXRlIG1vZGUgMTAwNjQ0 IGluY2x1ZGUvYml0cy93Y2hhcjItZGVjbC5oCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHdjc21icy9i aXRzL3djaGFyMi1kZWNsLmgKKworZGlmZiAtLWdpdCBhL2luY2x1ZGUvYml0cy93Y2hhcjItZGVj bC5oIGIvaW5jbHVkZS9iaXRzL3djaGFyMi1kZWNsLmgKK25ldyBmaWxlIG1vZGUgMTAwNjQ0Citp bmRleCAwMDAwMDAwMDAwLi4wMGIxYjkzMzQyCistLS0gL2Rldi9udWxsCisrKysgYi9pbmNsdWRl L2JpdHMvd2NoYXIyLWRlY2wuaAorQEAgLTAsMCArMSBAQAorKyNpbmNsdWRlIDx3Y3NtYnMvYml0 cy93Y2hhcjItZGVjbC5oPgorZGlmZiAtLWdpdCBhL3djc21icy9NYWtlZmlsZSBiL3djc21icy9N YWtlZmlsZQoraW5kZXggM2QxOWQ1NTU2Zi4uNGFmMTAyYTNmNiAxMDA2NDQKKy0tLSBhL3djc21i cy9NYWtlZmlsZQorKysrIGIvd2NzbWJzL01ha2VmaWxlCitAQCAtMjIsOCArMjIsOSBAQCBzdWJk aXIJOj0gd2NzbWJzCisgCisgaW5jbHVkZSAuLi9NYWtlY29uZmlnCisgCistaGVhZGVycwk6PSB3 Y2hhci5oIGJpdHMvd2NoYXIuaCBiaXRzL3djaGFyMi5oIGJpdHMvd2NoYXItbGRibC5oIHVjaGFy LmggXAorLQkgICBiaXRzL3R5cGVzL19fbWJzdGF0ZV90LmggYml0cy90eXBlcy9tYnN0YXRlX3Qu aCBiaXRzL3R5cGVzL3dpbnRfdC5oCisraGVhZGVycwk6PSB3Y2hhci5oIGJpdHMvd2NoYXIuaCBi aXRzL3djaGFyMi5oIGJpdHMvd2NoYXIyLWRlY2wuaCBcCisrCSAgIGJpdHMvd2NoYXItbGRibC5o IHVjaGFyLmggYml0cy90eXBlcy9fX21ic3RhdGVfdC5oIFwKKysJICAgYml0cy90eXBlcy9tYnN0 YXRlX3QuaCBiaXRzL3R5cGVzL3dpbnRfdC5oCisgCisgcm91dGluZXMgOj0gd2NzY2F0IHdjc2No ciB3Y3NjbXAgd2NzY3B5IHdjc2NzcG4gd2NzZHVwIHdjc2xlbiB3Y3NuY2F0IFwKKyAJICAgIHdj c25jbXAgd2NzbmNweSB3Y3NwYnJrIHdjc3JjaHIgd2Nzc3BuIHdjc3RvayB3Y3NzdHIgd21lbWNo ciBcCitkaWZmIC0tZ2l0IGEvd2NzbWJzL2JpdHMvd2NoYXIyLWRlY2wuaCBiL3djc21icy9iaXRz L3djaGFyMi1kZWNsLmgKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwLi44 ZTE3MzVjMzNiCistLS0gL2Rldi9udWxsCisrKysgYi93Y3NtYnMvYml0cy93Y2hhcjItZGVjbC5o CitAQCAtMCwwICsxLDEyNCBAQAorKy8qIENoZWNraW5nIG1hY3JvcyBmb3Igd2NoYXIgZnVuY3Rp b25zLiAgRGVjbGFyYXRpb25zIG9ubHkuCisrICAgQ29weXJpZ2h0IChDKSAyMDA0LTIwMjIgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhl IEdOVSBDIExpYnJhcnkuCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisrICAgbW9kaWZ5IGl0IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYXMg cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorKyAgIHZl cnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2 ZXJzaW9uLgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFCSUxJ VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorKyAg IExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAg WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs IFB1YmxpYworKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90 LCBzZWUKKysgICA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKysKKysjaWZu ZGVmIF9CSVRTX1dDSEFSMl9ERUNMX0gKKysjZGVmaW5lIF9CSVRTX1dDSEFSMl9ERUNMX0ggMQor KworKyNpZm5kZWYgX1dDSEFSX0gKKysjIGVycm9yICJOZXZlciBpbmNsdWRlIDxiaXRzL3djaGFy Mi1kZWNsLmg+IGRpcmVjdGx5OyB1c2UgPHdjaGFyLmg+IGluc3RlYWQuIgorKyNlbmRpZgorKwor KworK2V4dGVybiB3Y2hhcl90ICpfX3dtZW1jcHlfY2hrICh3Y2hhcl90ICpfX3Jlc3RyaWN0IF9f czEsCisrCQkJICAgICAgIGNvbnN0IHdjaGFyX3QgKl9fcmVzdHJpY3QgX19zMiwgc2l6ZV90IF9f biwKKysJCQkgICAgICAgc2l6ZV90IF9fbnMxKSBfX1RIUk9XOworK2V4dGVybiB3Y2hhcl90ICpf X3dtZW1tb3ZlX2NoayAod2NoYXJfdCAqX19zMSwgY29uc3Qgd2NoYXJfdCAqX19zMiwKKysJCQkJ c2l6ZV90IF9fbiwgc2l6ZV90IF9fbnMxKSBfX1RIUk9XOworKworKworKyNpZmRlZiBfX1VTRV9H TlUKKysKKytleHRlcm4gd2NoYXJfdCAqX193bWVtcGNweV9jaGsgKHdjaGFyX3QgKl9fcmVzdHJp Y3QgX19zMSwKKysJCQkJY29uc3Qgd2NoYXJfdCAqX19yZXN0cmljdCBfX3MyLCBzaXplX3QgX19u LAorKwkJCQlzaXplX3QgX19uczEpIF9fVEhST1c7CisrCisrI2VuZGlmCisrCisrCisrZXh0ZXJu IHdjaGFyX3QgKl9fd21lbXNldF9jaGsgKHdjaGFyX3QgKl9fcywgd2NoYXJfdCBfX2MsIHNpemVf dCBfX24sCisrCQkJICAgICAgIHNpemVfdCBfX25zKSBfX1RIUk9XOworK2V4dGVybiB3Y2hhcl90 ICpfX3djc2NweV9jaGsgKHdjaGFyX3QgKl9fcmVzdHJpY3QgX19kZXN0LAorKwkJCSAgICAgIGNv bnN0IHdjaGFyX3QgKl9fcmVzdHJpY3QgX19zcmMsCisrCQkJICAgICAgc2l6ZV90IF9fbikgX19U SFJPVzsKKytleHRlcm4gd2NoYXJfdCAqX193Y3BjcHlfY2hrICh3Y2hhcl90ICpfX3Jlc3RyaWN0 IF9fZGVzdCwKKysJCQkgICAgICBjb25zdCB3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fc3JjLAorKwkJ CSAgICAgIHNpemVfdCBfX2Rlc3RsZW4pIF9fVEhST1c7CisrZXh0ZXJuIHdjaGFyX3QgKl9fd2Nz bmNweV9jaGsgKHdjaGFyX3QgKl9fcmVzdHJpY3QgX19kZXN0LAorKwkJCSAgICAgICBjb25zdCB3 Y2hhcl90ICpfX3Jlc3RyaWN0IF9fc3JjLCBzaXplX3QgX19uLAorKwkJCSAgICAgICBzaXplX3Qg X19kZXN0bGVuKSBfX1RIUk9XOworK2V4dGVybiB3Y2hhcl90ICpfX3djcG5jcHlfY2hrICh3Y2hh cl90ICpfX3Jlc3RyaWN0IF9fZGVzdCwKKysJCQkgICAgICAgY29uc3Qgd2NoYXJfdCAqX19yZXN0 cmljdCBfX3NyYywgc2l6ZV90IF9fbiwKKysJCQkgICAgICAgc2l6ZV90IF9fZGVzdGxlbikgX19U SFJPVzsKKytleHRlcm4gd2NoYXJfdCAqX193Y3NjYXRfY2hrICh3Y2hhcl90ICpfX3Jlc3RyaWN0 IF9fZGVzdCwKKysJCQkgICAgICBjb25zdCB3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fc3JjLAorKwkJ CSAgICAgIHNpemVfdCBfX2Rlc3RsZW4pIF9fVEhST1c7CisrZXh0ZXJuIHdjaGFyX3QgKl9fd2Nz bmNhdF9jaGsgKHdjaGFyX3QgKl9fcmVzdHJpY3QgX19kZXN0LAorKwkJCSAgICAgICBjb25zdCB3 Y2hhcl90ICpfX3Jlc3RyaWN0IF9fc3JjLAorKwkJCSAgICAgICBzaXplX3QgX19uLCBzaXplX3Qg X19kZXN0bGVuKSBfX1RIUk9XOworK2V4dGVybiBpbnQgX19zd3ByaW50Zl9jaGsgKHdjaGFyX3Qg Kl9fcmVzdHJpY3QgX19zLCBzaXplX3QgX19uLAorKwkJCSAgIGludCBfX2ZsYWcsIHNpemVfdCBf X3NfbGVuLAorKwkJCSAgIGNvbnN0IHdjaGFyX3QgKl9fcmVzdHJpY3QgX19mb3JtYXQsIC4uLikK KysgICAgIF9fVEhST1cgLyogX19hdHRyaWJ1dGVfXyAoKF9fZm9ybWF0X18gKF9fd3ByaW50Zl9f LCA1LCA2KSkpICovOworK2V4dGVybiBpbnQgX192c3dwcmludGZfY2hrICh3Y2hhcl90ICpfX3Jl c3RyaWN0IF9fcywgc2l6ZV90IF9fbiwKKysJCQkgICAgaW50IF9fZmxhZywgc2l6ZV90IF9fc19s ZW4sCisrCQkJICAgIGNvbnN0IHdjaGFyX3QgKl9fcmVzdHJpY3QgX19mb3JtYXQsCisrCQkJICAg IF9fZ251Y192YV9saXN0IF9fYXJnKQorKyAgICAgX19USFJPVyAvKiBfX2F0dHJpYnV0ZV9fICgo X19mb3JtYXRfXyAoX193cHJpbnRmX18sIDUsIDApKSkgKi87CisrCisrI2lmIF9fVVNFX0ZPUlRJ RllfTEVWRUwgPiAxCisrCisrZXh0ZXJuIGludCBfX2Z3cHJpbnRmX2NoayAoX19GSUxFICpfX3Jl c3RyaWN0IF9fc3RyZWFtLCBpbnQgX19mbGFnLAorKwkJCSAgIGNvbnN0IHdjaGFyX3QgKl9fcmVz dHJpY3QgX19mb3JtYXQsIC4uLik7CisrZXh0ZXJuIGludCBfX3dwcmludGZfY2hrIChpbnQgX19m bGFnLCBjb25zdCB3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fZm9ybWF0LAorKwkJCSAgLi4uKTsKKytl eHRlcm4gaW50IF9fdmZ3cHJpbnRmX2NoayAoX19GSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtLCBp bnQgX19mbGFnLAorKwkJCSAgICBjb25zdCB3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fZm9ybWF0LAor KwkJCSAgICBfX2dudWNfdmFfbGlzdCBfX2FwKTsKKytleHRlcm4gaW50IF9fdndwcmludGZfY2hr IChpbnQgX19mbGFnLCBjb25zdCB3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fZm9ybWF0LAorKwkJCSAg IF9fZ251Y192YV9saXN0IF9fYXApOworKworKyNlbmRpZgorKworK2V4dGVybiB3Y2hhcl90ICpf X2ZnZXR3c19jaGsgKHdjaGFyX3QgKl9fcmVzdHJpY3QgX19zLCBzaXplX3QgX19zaXplLCBpbnQg X19uLAorKwkJCSAgICAgIF9fRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSkgX193dXI7CisrCisr I2lmZGVmIF9fVVNFX0dOVQorKworK2V4dGVybiB3Y2hhcl90ICpfX2ZnZXR3c191bmxvY2tlZF9j aGsgKHdjaGFyX3QgKl9fcmVzdHJpY3QgX19zLCBzaXplX3QgX19zaXplLAorKwkJCQkgICAgICAg aW50IF9fbiwgX19GSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtKQorKyAgICAgICBfX3d1cjsKKysK KysjZW5kaWYKKysKKytleHRlcm4gc2l6ZV90IF9fd2NydG9tYl9jaGsgKGNoYXIgKl9fcmVzdHJp Y3QgX19zLCB3Y2hhcl90IF9fd2NoYXIsCisrCQkJICAgICBtYnN0YXRlX3QgKl9fcmVzdHJpY3Qg X19wLAorKwkJCSAgICAgc2l6ZV90IF9fYnVmbGVuKSBfX1RIUk9XIF9fd3VyOworK2V4dGVybiBz aXplX3QgX19tYnNydG93Y3NfY2hrICh3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fZHN0LAorKwkJCSAg ICAgICBjb25zdCBjaGFyICoqX19yZXN0cmljdCBfX3NyYywKKysJCQkgICAgICAgc2l6ZV90IF9f bGVuLCBtYnN0YXRlX3QgKl9fcmVzdHJpY3QgX19wcywKKysJCQkgICAgICAgc2l6ZV90IF9fZHN0 bGVuKSBfX1RIUk9XOworK2V4dGVybiBzaXplX3QgX193Y3NydG9tYnNfY2hrIChjaGFyICpfX3Jl c3RyaWN0IF9fZHN0LAorKwkJCSAgICAgICBjb25zdCB3Y2hhcl90ICoqX19yZXN0cmljdCBfX3Ny YywKKysJCQkgICAgICAgc2l6ZV90IF9fbGVuLCBtYnN0YXRlX3QgKl9fcmVzdHJpY3QgX19wcywK KysJCQkgICAgICAgc2l6ZV90IF9fZHN0bGVuKSBfX1RIUk9XOworKworKyNpZmRlZglfX1VTRV9Y T1BFTjJLOAorKworK2V4dGVybiBzaXplX3QgX19tYnNucnRvd2NzX2NoayAod2NoYXJfdCAqX19y ZXN0cmljdCBfX2RzdCwKKysJCQkJY29uc3QgY2hhciAqKl9fcmVzdHJpY3QgX19zcmMsIHNpemVf dCBfX25tYywKKysJCQkJc2l6ZV90IF9fbGVuLCBtYnN0YXRlX3QgKl9fcmVzdHJpY3QgX19wcywK KysJCQkJc2l6ZV90IF9fZHN0bGVuKSBfX1RIUk9XOworK2V4dGVybiBzaXplX3QgX193Y3NucnRv bWJzX2NoayAoY2hhciAqX19yZXN0cmljdCBfX2RzdCwKKysJCQkJY29uc3Qgd2NoYXJfdCAqKl9f cmVzdHJpY3QgX19zcmMsCisrCQkJCXNpemVfdCBfX253Yywgc2l6ZV90IF9fbGVuLAorKwkJCQlt YnN0YXRlX3QgKl9fcmVzdHJpY3QgX19wcywgc2l6ZV90IF9fZHN0bGVuKQorKyAgICAgICBfX1RI Uk9XOworKworKyNlbmRpZgorKworKyNlbmRpZiAvKiBiaXRzL3djaGFyMi1kZWNsLmguICAqLwor ZGlmZiAtLWdpdCBhL3djc21icy9iaXRzL3djaGFyMi5oIGIvd2NzbWJzL2JpdHMvd2NoYXIyLmgK K2luZGV4IDBlMDE3ZjQ1OGIuLjNmMTEwZWZlNTcgMTAwNjQ0CistLS0gYS93Y3NtYnMvYml0cy93 Y2hhcjIuaAorKysrIGIvd2NzbWJzL2JpdHMvd2NoYXIyLmgKK0BAIC0yMSw5ICsyMSw2IEBACisg I2VuZGlmCisgCisgCistZXh0ZXJuIHdjaGFyX3QgKl9fd21lbWNweV9jaGsgKHdjaGFyX3QgKl9f cmVzdHJpY3QgX19zMSwKKy0JCQkgICAgICAgY29uc3Qgd2NoYXJfdCAqX19yZXN0cmljdCBfX3My LCBzaXplX3QgX19uLAorLQkJCSAgICAgICBzaXplX3QgX19uczEpIF9fVEhST1c7CisgZXh0ZXJu IHdjaGFyX3QgKl9fUkVESVJFQ1RfTlRIIChfX3dtZW1jcHlfYWxpYXMsCisgCQkJCSh3Y2hhcl90 ICpfX3Jlc3RyaWN0IF9fczEsCisgCQkJCSBjb25zdCB3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fczIs IHNpemVfdCBfX24pLAorQEAgLTQ1LDggKzQyLDYgQEAgX19OVEggKHdtZW1jcHkgKHdjaGFyX3Qg Kl9fcmVzdHJpY3QgX19zMSwgY29uc3Qgd2NoYXJfdCAqX19yZXN0cmljdCBfX3MyLAorIH0KKyAK KyAKKy1leHRlcm4gd2NoYXJfdCAqX193bWVtbW92ZV9jaGsgKHdjaGFyX3QgKl9fczEsIGNvbnN0 IHdjaGFyX3QgKl9fczIsCistCQkJCXNpemVfdCBfX24sIHNpemVfdCBfX25zMSkgX19USFJPVzsK KyBleHRlcm4gd2NoYXJfdCAqX19SRURJUkVDVF9OVEggKF9fd21lbW1vdmVfYWxpYXMsICh3Y2hh cl90ICpfX3MxLAorIAkJCQkJCSAgIGNvbnN0IHdjaGFyX3QgKl9fczIsCisgCQkJCQkJICAgc2l6 ZV90IF9fbiksIHdtZW1tb3ZlKTsKK0BAIC02Niw5ICs2MSw2IEBAIF9fTlRIICh3bWVtbW92ZSAo d2NoYXJfdCAqX19zMSwgY29uc3Qgd2NoYXJfdCAqX19zMiwgc2l6ZV90IF9fbikpCisgCisgCisg I2lmZGVmIF9fVVNFX0dOVQorLWV4dGVybiB3Y2hhcl90ICpfX3dtZW1wY3B5X2NoayAod2NoYXJf dCAqX19yZXN0cmljdCBfX3MxLAorLQkJCQljb25zdCB3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fczIs IHNpemVfdCBfX24sCistCQkJCXNpemVfdCBfX25zMSkgX19USFJPVzsKKyBleHRlcm4gd2NoYXJf dCAqX19SRURJUkVDVF9OVEggKF9fd21lbXBjcHlfYWxpYXMsCisgCQkJCSh3Y2hhcl90ICpfX3Jl c3RyaWN0IF9fczEsCisgCQkJCSBjb25zdCB3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fczIsCitAQCAt OTEsOCArODMsNiBAQCBfX05USCAod21lbXBjcHkgKHdjaGFyX3QgKl9fcmVzdHJpY3QgX19zMSwg Y29uc3Qgd2NoYXJfdCAqX19yZXN0cmljdCBfX3MyLAorICNlbmRpZgorIAorIAorLWV4dGVybiB3 Y2hhcl90ICpfX3dtZW1zZXRfY2hrICh3Y2hhcl90ICpfX3MsIHdjaGFyX3QgX19jLCBzaXplX3Qg X19uLAorLQkJCSAgICAgICBzaXplX3QgX19ucykgX19USFJPVzsKKyBleHRlcm4gd2NoYXJfdCAq X19SRURJUkVDVF9OVEggKF9fd21lbXNldF9hbGlhcywgKHdjaGFyX3QgKl9fcywgd2NoYXJfdCBf X2MsCisgCQkJCQkJICBzaXplX3QgX19uKSwgd21lbXNldCk7CisgZXh0ZXJuIHdjaGFyX3QgKl9f UkVESVJFQ1RfTlRIIChfX3dtZW1zZXRfY2hrX3dhcm4sCitAQCAtMTEwLDkgKzEwMCw2IEBAIF9f TlRIICh3bWVtc2V0ICh3Y2hhcl90ICpfX3MsIHdjaGFyX3QgX19jLCBzaXplX3QgX19uKSkKKyB9 CisgCisgCistZXh0ZXJuIHdjaGFyX3QgKl9fd2NzY3B5X2NoayAod2NoYXJfdCAqX19yZXN0cmlj dCBfX2Rlc3QsCistCQkJICAgICAgY29uc3Qgd2NoYXJfdCAqX19yZXN0cmljdCBfX3NyYywKKy0J CQkgICAgICBzaXplX3QgX19uKSBfX1RIUk9XOworIGV4dGVybiB3Y2hhcl90ICpfX1JFRElSRUNU X05USCAoX193Y3NjcHlfYWxpYXMsCisgCQkJCSh3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fZGVzdCwK KyAJCQkJIGNvbnN0IHdjaGFyX3QgKl9fcmVzdHJpY3QgX19zcmMpLCB3Y3NjcHkpOworQEAgLTEy Nyw5ICsxMTQsNiBAQCBfX05USCAod2NzY3B5ICh3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fZGVzdCwg Y29uc3Qgd2NoYXJfdCAqX19yZXN0cmljdCBfX3NyYykpCisgfQorIAorIAorLWV4dGVybiB3Y2hh cl90ICpfX3djcGNweV9jaGsgKHdjaGFyX3QgKl9fcmVzdHJpY3QgX19kZXN0LAorLQkJCSAgICAg IGNvbnN0IHdjaGFyX3QgKl9fcmVzdHJpY3QgX19zcmMsCistCQkJICAgICAgc2l6ZV90IF9fZGVz dGxlbikgX19USFJPVzsKKyBleHRlcm4gd2NoYXJfdCAqX19SRURJUkVDVF9OVEggKF9fd2NwY3B5 X2FsaWFzLAorIAkJCQkod2NoYXJfdCAqX19yZXN0cmljdCBfX2Rlc3QsCisgCQkJCSBjb25zdCB3 Y2hhcl90ICpfX3Jlc3RyaWN0IF9fc3JjKSwgd2NwY3B5KTsKK0BAIC0xNDQsOSArMTI4LDYgQEAg X19OVEggKHdjcGNweSAod2NoYXJfdCAqX19yZXN0cmljdCBfX2Rlc3QsIGNvbnN0IHdjaGFyX3Qg Kl9fcmVzdHJpY3QgX19zcmMpKQorIH0KKyAKKyAKKy1leHRlcm4gd2NoYXJfdCAqX193Y3NuY3B5 X2NoayAod2NoYXJfdCAqX19yZXN0cmljdCBfX2Rlc3QsCistCQkJICAgICAgIGNvbnN0IHdjaGFy X3QgKl9fcmVzdHJpY3QgX19zcmMsIHNpemVfdCBfX24sCistCQkJICAgICAgIHNpemVfdCBfX2Rl c3RsZW4pIF9fVEhST1c7CisgZXh0ZXJuIHdjaGFyX3QgKl9fUkVESVJFQ1RfTlRIIChfX3djc25j cHlfYWxpYXMsCisgCQkJCSh3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fZGVzdCwKKyAJCQkJIGNvbnN0 IHdjaGFyX3QgKl9fcmVzdHJpY3QgX19zcmMsCitAQCAtMTY4LDkgKzE0OSw2IEBAIF9fTlRIICh3 Y3NuY3B5ICh3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fZGVzdCwgY29uc3Qgd2NoYXJfdCAqX19yZXN0 cmljdCBfX3NyYywKKyB9CisgCisgCistZXh0ZXJuIHdjaGFyX3QgKl9fd2NwbmNweV9jaGsgKHdj aGFyX3QgKl9fcmVzdHJpY3QgX19kZXN0LAorLQkJCSAgICAgICBjb25zdCB3Y2hhcl90ICpfX3Jl c3RyaWN0IF9fc3JjLCBzaXplX3QgX19uLAorLQkJCSAgICAgICBzaXplX3QgX19kZXN0bGVuKSBf X1RIUk9XOworIGV4dGVybiB3Y2hhcl90ICpfX1JFRElSRUNUX05USCAoX193Y3BuY3B5X2FsaWFz LAorIAkJCQkod2NoYXJfdCAqX19yZXN0cmljdCBfX2Rlc3QsCisgCQkJCSBjb25zdCB3Y2hhcl90 ICpfX3Jlc3RyaWN0IF9fc3JjLAorQEAgLTE5Miw5ICsxNzAsNiBAQCBfX05USCAod2NwbmNweSAo d2NoYXJfdCAqX19yZXN0cmljdCBfX2Rlc3QsIGNvbnN0IHdjaGFyX3QgKl9fcmVzdHJpY3QgX19z cmMsCisgfQorIAorIAorLWV4dGVybiB3Y2hhcl90ICpfX3djc2NhdF9jaGsgKHdjaGFyX3QgKl9f cmVzdHJpY3QgX19kZXN0LAorLQkJCSAgICAgIGNvbnN0IHdjaGFyX3QgKl9fcmVzdHJpY3QgX19z cmMsCistCQkJICAgICAgc2l6ZV90IF9fZGVzdGxlbikgX19USFJPVzsKKyBleHRlcm4gd2NoYXJf dCAqX19SRURJUkVDVF9OVEggKF9fd2NzY2F0X2FsaWFzLAorIAkJCQkod2NoYXJfdCAqX19yZXN0 cmljdCBfX2Rlc3QsCisgCQkJCSBjb25zdCB3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fc3JjKSwgd2Nz Y2F0KTsKK0BAIC0yMDksOSArMTg0LDYgQEAgX19OVEggKHdjc2NhdCAod2NoYXJfdCAqX19yZXN0 cmljdCBfX2Rlc3QsIGNvbnN0IHdjaGFyX3QgKl9fcmVzdHJpY3QgX19zcmMpKQorIH0KKyAKKyAK Ky1leHRlcm4gd2NoYXJfdCAqX193Y3NuY2F0X2NoayAod2NoYXJfdCAqX19yZXN0cmljdCBfX2Rl c3QsCistCQkJICAgICAgIGNvbnN0IHdjaGFyX3QgKl9fcmVzdHJpY3QgX19zcmMsCistCQkJICAg ICAgIHNpemVfdCBfX24sIHNpemVfdCBfX2Rlc3RsZW4pIF9fVEhST1c7CisgZXh0ZXJuIHdjaGFy X3QgKl9fUkVESVJFQ1RfTlRIIChfX3djc25jYXRfYWxpYXMsCisgCQkJCSh3Y2hhcl90ICpfX3Jl c3RyaWN0IF9fZGVzdCwKKyAJCQkJIGNvbnN0IHdjaGFyX3QgKl9fcmVzdHJpY3QgX19zcmMsCitA QCAtMjI4LDEwICsyMDAsNiBAQCBfX05USCAod2NzbmNhdCAod2NoYXJfdCAqX19yZXN0cmljdCBf X2Rlc3QsIGNvbnN0IHdjaGFyX3QgKl9fcmVzdHJpY3QgX19zcmMsCisgfQorIAorIAorLWV4dGVy biBpbnQgX19zd3ByaW50Zl9jaGsgKHdjaGFyX3QgKl9fcmVzdHJpY3QgX19zLCBzaXplX3QgX19u LAorLQkJCSAgIGludCBfX2ZsYWcsIHNpemVfdCBfX3NfbGVuLAorLQkJCSAgIGNvbnN0IHdjaGFy X3QgKl9fcmVzdHJpY3QgX19mb3JtYXQsIC4uLikKKy0gICAgIF9fVEhST1cgLyogX19hdHRyaWJ1 dGVfXyAoKF9fZm9ybWF0X18gKF9fd3ByaW50Zl9fLCA1LCA2KSkpICovOworIAorIGV4dGVybiBp bnQgX19SRURJUkVDVF9OVEhfTERCTCAoX19zd3ByaW50Zl9hbGlhcywKKyAJCQkJKHdjaGFyX3Qg Kl9fcmVzdHJpY3QgX19zLCBzaXplX3QgX19uLAorQEAgLTI1OCwxMSArMjI2LDYgQEAgX19OVEgg KHN3cHJpbnRmICh3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fcywgc2l6ZV90IF9fbiwKKyAgICA6IHN3 cHJpbnRmIChzLCBuLCBfX1ZBX0FSR1NfXykpCisgI2VuZGlmCisgCistZXh0ZXJuIGludCBfX3Zz d3ByaW50Zl9jaGsgKHdjaGFyX3QgKl9fcmVzdHJpY3QgX19zLCBzaXplX3QgX19uLAorLQkJCSAg ICBpbnQgX19mbGFnLCBzaXplX3QgX19zX2xlbiwKKy0JCQkgICAgY29uc3Qgd2NoYXJfdCAqX19y ZXN0cmljdCBfX2Zvcm1hdCwKKy0JCQkgICAgX19nbnVjX3ZhX2xpc3QgX19hcmcpCistICAgICBf X1RIUk9XIC8qIF9fYXR0cmlidXRlX18gKChfX2Zvcm1hdF9fIChfX3dwcmludGZfXywgNSwgMCkp KSAqLzsKKyAKKyBleHRlcm4gaW50IF9fUkVESVJFQ1RfTlRIX0xEQkwgKF9fdnN3cHJpbnRmX2Fs aWFzLAorIAkJCQkod2NoYXJfdCAqX19yZXN0cmljdCBfX3MsIHNpemVfdCBfX24sCitAQCAtMjgz LDE2ICsyNDYsNiBAQCBfX05USCAodnN3cHJpbnRmICh3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fcywg c2l6ZV90IF9fbiwKKyAKKyAjaWYgX19VU0VfRk9SVElGWV9MRVZFTCA+IDEKKyAKKy1leHRlcm4g aW50IF9fZndwcmludGZfY2hrIChfX0ZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0sIGludCBfX2Zs YWcsCistCQkJICAgY29uc3Qgd2NoYXJfdCAqX19yZXN0cmljdCBfX2Zvcm1hdCwgLi4uKTsKKy1l eHRlcm4gaW50IF9fd3ByaW50Zl9jaGsgKGludCBfX2ZsYWcsIGNvbnN0IHdjaGFyX3QgKl9fcmVz dHJpY3QgX19mb3JtYXQsCistCQkJICAuLi4pOworLWV4dGVybiBpbnQgX192ZndwcmludGZfY2hr IChfX0ZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0sIGludCBfX2ZsYWcsCistCQkJICAgIGNvbnN0 IHdjaGFyX3QgKl9fcmVzdHJpY3QgX19mb3JtYXQsCistCQkJICAgIF9fZ251Y192YV9saXN0IF9f YXApOworLWV4dGVybiBpbnQgX192d3ByaW50Zl9jaGsgKGludCBfX2ZsYWcsIGNvbnN0IHdjaGFy X3QgKl9fcmVzdHJpY3QgX19mb3JtYXQsCistCQkJICAgX19nbnVjX3ZhX2xpc3QgX19hcCk7Cist CisgIyBpZmRlZiBfX3ZhX2FyZ19wYWNrCisgX19mb3J0aWZ5X2Z1bmN0aW9uIGludAorIHdwcmlu dGYgKGNvbnN0IHdjaGFyX3QgKl9fcmVzdHJpY3QgX19mbXQsIC4uLikKK0BAIC0zMjgsOCArMjgx LDYgQEAgdmZ3cHJpbnRmIChfX0ZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0sCisgCisgI2VuZGlm CisgCistZXh0ZXJuIHdjaGFyX3QgKl9fZmdldHdzX2NoayAod2NoYXJfdCAqX19yZXN0cmljdCBf X3MsIHNpemVfdCBfX3NpemUsIGludCBfX24sCistCQkJICAgICAgX19GSUxFICpfX3Jlc3RyaWN0 IF9fc3RyZWFtKSBfX3d1cjsKKyBleHRlcm4gd2NoYXJfdCAqX19SRURJUkVDVCAoX19mZ2V0d3Nf YWxpYXMsCisgCQkJICAgICh3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fcywgaW50IF9fbiwKKyAJCQkg ICAgIF9fRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSksIGZnZXR3cykgX193dXI7CitAQCAtMzUx LDkgKzMwMiw2IEBAIGZnZXR3cyAod2NoYXJfdCAqX19yZXN0cmljdCBfX3MsIGludCBfX24sIF9f RklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSkKKyB9CisgCisgI2lmZGVmIF9fVVNFX0dOVQorLWV4 dGVybiB3Y2hhcl90ICpfX2ZnZXR3c191bmxvY2tlZF9jaGsgKHdjaGFyX3QgKl9fcmVzdHJpY3Qg X19zLCBzaXplX3QgX19zaXplLAorLQkJCQkgICAgICAgaW50IF9fbiwgX19GSUxFICpfX3Jlc3Ry aWN0IF9fc3RyZWFtKQorLSAgX193dXI7CisgZXh0ZXJuIHdjaGFyX3QgKl9fUkVESVJFQ1QgKF9f ZmdldHdzX3VubG9ja2VkX2FsaWFzLAorIAkJCSAgICAod2NoYXJfdCAqX19yZXN0cmljdCBfX3Ms IGludCBfX24sCisgCQkJICAgICBfX0ZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0pLCBmZ2V0d3Nf dW5sb2NrZWQpCitAQCAtMzc5LDkgKzMyNyw2IEBAIGZnZXR3c191bmxvY2tlZCAod2NoYXJfdCAq X19yZXN0cmljdCBfX3MsIGludCBfX24sIF9fRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSkKKyAj ZW5kaWYKKyAKKyAKKy1leHRlcm4gc2l6ZV90IF9fd2NydG9tYl9jaGsgKGNoYXIgKl9fcmVzdHJp Y3QgX19zLCB3Y2hhcl90IF9fd2NoYXIsCistCQkJICAgICBtYnN0YXRlX3QgKl9fcmVzdHJpY3Qg X19wLAorLQkJCSAgICAgc2l6ZV90IF9fYnVmbGVuKSBfX1RIUk9XIF9fd3VyOworIGV4dGVybiBz aXplX3QgX19SRURJUkVDVF9OVEggKF9fd2NydG9tYl9hbGlhcywKKyAJCQkgICAgICAoY2hhciAq X19yZXN0cmljdCBfX3MsIHdjaGFyX3QgX193Y2hhciwKKyAJCQkgICAgICAgbWJzdGF0ZV90ICpf X3Jlc3RyaWN0IF9fcHMpLCB3Y3J0b21iKSBfX3d1cjsKK0BAIC00MDQsMTAgKzM0OSw2IEBAIF9f TlRIICh3Y3J0b21iIChjaGFyICpfX3Jlc3RyaWN0IF9fcywgd2NoYXJfdCBfX3djaGFyLAorIH0K KyAKKyAKKy1leHRlcm4gc2l6ZV90IF9fbWJzcnRvd2NzX2NoayAod2NoYXJfdCAqX19yZXN0cmlj dCBfX2RzdCwKKy0JCQkgICAgICAgY29uc3QgY2hhciAqKl9fcmVzdHJpY3QgX19zcmMsCistCQkJ ICAgICAgIHNpemVfdCBfX2xlbiwgbWJzdGF0ZV90ICpfX3Jlc3RyaWN0IF9fcHMsCistCQkJICAg ICAgIHNpemVfdCBfX2RzdGxlbikgX19USFJPVzsKKyBleHRlcm4gc2l6ZV90IF9fUkVESVJFQ1Rf TlRIIChfX21ic3J0b3djc19hbGlhcywKKyAJCQkgICAgICAod2NoYXJfdCAqX19yZXN0cmljdCBf X2RzdCwKKyAJCQkgICAgICAgY29uc3QgY2hhciAqKl9fcmVzdHJpY3QgX19zcmMsCitAQCAtNDMx LDEwICszNzIsNiBAQCBfX05USCAobWJzcnRvd2NzICh3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fZHN0 LCBjb25zdCBjaGFyICoqX19yZXN0cmljdCBfX3NyYywKKyB9CisgCisgCistZXh0ZXJuIHNpemVf dCBfX3djc3J0b21ic19jaGsgKGNoYXIgKl9fcmVzdHJpY3QgX19kc3QsCistCQkJICAgICAgIGNv bnN0IHdjaGFyX3QgKipfX3Jlc3RyaWN0IF9fc3JjLAorLQkJCSAgICAgICBzaXplX3QgX19sZW4s IG1ic3RhdGVfdCAqX19yZXN0cmljdCBfX3BzLAorLQkJCSAgICAgICBzaXplX3QgX19kc3RsZW4p IF9fVEhST1c7CisgZXh0ZXJuIHNpemVfdCBfX1JFRElSRUNUX05USCAoX193Y3NydG9tYnNfYWxp YXMsCisgCQkJICAgICAgKGNoYXIgKl9fcmVzdHJpY3QgX19kc3QsCisgCQkJICAgICAgIGNvbnN0 IHdjaGFyX3QgKipfX3Jlc3RyaWN0IF9fc3JjLAorQEAgLTQ1OCwxMCArMzk1LDYgQEAgX19OVEgg KHdjc3J0b21icyAoY2hhciAqX19yZXN0cmljdCBfX2RzdCwgY29uc3Qgd2NoYXJfdCAqKl9fcmVz dHJpY3QgX19zcmMsCisgCisgCisgI2lmZGVmCV9fVVNFX1hPUEVOMks4CistZXh0ZXJuIHNpemVf dCBfX21ic25ydG93Y3NfY2hrICh3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fZHN0LAorLQkJCQljb25z dCBjaGFyICoqX19yZXN0cmljdCBfX3NyYywgc2l6ZV90IF9fbm1jLAorLQkJCQlzaXplX3QgX19s ZW4sIG1ic3RhdGVfdCAqX19yZXN0cmljdCBfX3BzLAorLQkJCQlzaXplX3QgX19kc3RsZW4pIF9f VEhST1c7CisgZXh0ZXJuIHNpemVfdCBfX1JFRElSRUNUX05USCAoX19tYnNucnRvd2NzX2FsaWFz LAorIAkJCSAgICAgICh3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fZHN0LAorIAkJCSAgICAgICBjb25z dCBjaGFyICoqX19yZXN0cmljdCBfX3NyYywgc2l6ZV90IF9fbm1jLAorQEAgLTQ4NSwxMSArNDE4 LDYgQEAgX19OVEggKG1ic25ydG93Y3MgKHdjaGFyX3QgKl9fcmVzdHJpY3QgX19kc3QsIGNvbnN0 IGNoYXIgKipfX3Jlc3RyaWN0IF9fc3JjLAorIH0KKyAKKyAKKy1leHRlcm4gc2l6ZV90IF9fd2Nz bnJ0b21ic19jaGsgKGNoYXIgKl9fcmVzdHJpY3QgX19kc3QsCistCQkJCWNvbnN0IHdjaGFyX3Qg KipfX3Jlc3RyaWN0IF9fc3JjLAorLQkJCQlzaXplX3QgX19ud2MsIHNpemVfdCBfX2xlbiwKKy0J CQkJbWJzdGF0ZV90ICpfX3Jlc3RyaWN0IF9fcHMsIHNpemVfdCBfX2RzdGxlbikKKy0gICAgIF9f VEhST1c7CisgZXh0ZXJuIHNpemVfdCBfX1JFRElSRUNUX05USCAoX193Y3NucnRvbWJzX2FsaWFz LAorIAkJCSAgICAgIChjaGFyICpfX3Jlc3RyaWN0IF9fZHN0LAorIAkJCSAgICAgICBjb25zdCB3 Y2hhcl90ICoqX19yZXN0cmljdCBfX3NyYywKK2RpZmYgLS1naXQgYS93Y3NtYnMvd2NoYXIuaCBi L3djc21icy93Y2hhci5oCitpbmRleCA1ZDZhNDA4NTNkLi5jMTMyMWM3NTE4IDEwMDY0NAorLS0t IGEvd2NzbWJzL3djaGFyLmgKKysrKyBiL3djc21icy93Y2hhci5oCitAQCAtODY0LDE0ICs4NjQs MjEgQEAgZXh0ZXJuIHNpemVfdCB3Y3NmdGltZV9sICh3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fcywg c2l6ZV90IF9fbWF4c2l6ZSwKKyAKKyAvKiBEZWZpbmUgc29tZSBtYWNyb3MgaGVscGluZyB0byBj YXRjaCBidWZmZXIgb3ZlcmZsb3dzLiAgKi8KKyAjaWYgX19VU0VfRk9SVElGWV9MRVZFTCA+IDAg JiYgZGVmaW5lZCBfX2ZvcnRpZnlfZnVuY3Rpb24KKy0jIGluY2x1ZGUgPGJpdHMvd2NoYXIyLmg+ CisrLyogRGVjbGFyZSBhbGwgZnVuY3Rpb25zIGZyb20gYml0cy93Y2hhcjItZGVjbC5oIGZpcnN0 LiAgKi8KKysjIGluY2x1ZGUgPGJpdHMvd2NoYXIyLWRlY2wuaD4KKyAjZW5kaWYKKyAKKy0jaW5j bHVkZSA8Yml0cy9mbG9hdG4uaD4KKysvKiBUaGUgZm9sbG93aW5nIGhlYWRlcnMgcHJvdmlkZSBh c20gcmVkaXJlY3Rpb25zLiAgVGhlc2UgcmVkaXJlY3Rpb25zIG11c3QKKysgICBhcHBlYXIgYmVm b3JlIHRoZSBmaXJzdCB1c2FnZSBvZiB0aGVzZSBmdW5jdGlvbnMsIGUuZy4gaW4gYml0cy93Y2hh ci5oLiAgKi8KKyAjaWYgZGVmaW5lZCBfX0xEQkxfQ09NUEFUIHx8IF9fTERPVUJMRV9SRURJUkVD VFNfVE9fRkxPQVQxMjhfQUJJID09IDEKKyAjIGluY2x1ZGUgPGJpdHMvd2NoYXItbGRibC5oPgor ICNlbmRpZgorIAorKyNpZiBfX1VTRV9GT1JUSUZZX0xFVkVMID4gMCAmJiBkZWZpbmVkIF9fZm9y dGlmeV9mdW5jdGlvbgorKy8qIE5vdyBpbmNsdWRlIHRoZSBmdW5jdGlvbiBkZWZpbml0aW9ucyBh bmQgcmVkaXJlY3RzIHRvby4gICovCisrIyBpbmNsdWRlIDxiaXRzL3djaGFyMi5oPgorKyNlbmRp ZgorKworIF9fRU5EX0RFQ0xTCisgCisgI2VuZGlmIC8qIHdjaGFyLmggICovCistLSAKKzIuMzgu MQorCisKK0Zyb20gYjM3MzZkMWEzYzYwYTNlYzk5NTliZjNiMzg3OTQ5NTg1NDZiZjZhMiBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFkaGVtZXJ2YWwgWmFuZWxsYSA8YWRoZW1lcnZh bC56YW5lbGxhQGxpbmFyby5vcmc+CitEYXRlOiBUdWUsIDMwIEF1ZyAyMDIyIDEzOjM1OjUyIC0w MzAwCitTdWJqZWN0OiBlbGY6IFJlc3RvcmUgaG93IHZEU08gZGVwZW5kZW5jeSBpcyBwcmludGVk IHdpdGgKKyBMRF9UUkFDRV9MT0FERURfT0JKRUNUUyAoQlogIzI5NTM5KQorCitUaGUgZDc3MDNk MzE3NmQyMjVkNTc0M2IyMTgxMWQ4ODg2MTllYmEzOWU4MiBjaGFuZ2VkIGhvdyB2RFNPIGxpa2UK K2RlcGVuZGVuY2llcyBhcmUgcHJpbnRlZCwgaW5zdGVhZCBvZiBqdXN0IHRoZSBuYW1lIGFuZCBh ZGRyZXNzIGl0Citmb2xsb3dzIG90aGVyIGxpYnJhcmllcyBtb2RlIGFuZCBwcmludHMgJ25hbWUg PT4gcGF0aCcuCisKK1VuZm9ydHVuYXRlbHksIHRoaXMgYnJva2Ugc29tZSBsZGQgY29uc3VtZXIg dGhhdCB1c2VzIHRoZSBvdXRwdXQgdG8KK2ZpbHRlciBvdXQgdGhlIHByb2dyYW0ncyBkZXBlbmRl bmNpZXMuICBGb3IgaW5zdGFuY2UgQ01ha2UKK2J1bmRsZXV0aWxpdGllcyBtb2R1bGUgWzFdLCB3 aGVyZSBHZXRQcmVxdWlyaXRlIHVzZXMgdGhlIHJlZ2V4IHRvIGZpbHRlcgorb3V0ICduYW1lID0+ IHBhdGgnIFsyXS4KKworVGhpcyBwYXRjaCByZXN0b3JlIHRoZSBwcmV2aW91cyB3YXkgdG8gcHJp bnQganVzdCB0aGUgbmFtZSBhbmQgdGhlCittYXBwaW5nIGFkZHJlc3MuCisKK0NoZWNrZWQgb24g eDg2XzY0LWxpbnV4LWdudS4KKworWzFdIGh0dHBzOi8vZ2l0aHViLmNvbS9LaXR3YXJlL0NNYWtl L3RyZWUvbWFzdGVyL1Rlc3RzL0J1bmRsZVV0aWxpdGllcworWzJdIGh0dHBzOi8vZ2l0aHViLmNv bS9LaXR3YXJlL0NNYWtlL2Jsb2IvbWFzdGVyL01vZHVsZXMvR2V0UHJlcmVxdWlzaXRlcy5jbWFr ZSNMNzMzCisKK1Jldmlld2VkLWJ5OiBGbG9yaWFuIFdlaW1lciA8ZndlaW1lckByZWRoYXQuY29t PgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgMWU5MDMxMjRjZWM0NDkyNDYzZDA3NWM2YzA2 MWEyYTc3MmRiNzdiZikKKy0tLQorIE5FV1MgICAgICAgfCAyICstCisgZWxmL3J0bGQuYyB8IDYg KysrKysrCisgMiBmaWxlcyBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkK KworZGlmZiAtLWdpdCBhL05FV1MgYi9ORVdTCitpbmRleCA2ZDMxZTVhYmJhLi43NTdkZWQ4NWUw IDEwMDY0NAorLS0tIGEvTkVXUworKysrIGIvTkVXUworQEAgLTE0LDcgKzE0LDcgQEAgVGhlIGZv bGxvd2luZyBidWdzIGFyZSByZXNvbHZlZCB3aXRoIHRoaXMgcmVsZWFzZToKKyAgIFsyOTQ4NV0g TGludXg6IFRlcm1pbmF0ZSBzdWJwcm9jZXNzIG9uIGxhdGUgZmFpbHVyZSBpbiB0c3QtcGlkZmQK KyAgIFsyOTQ5MF0gYWxwaGE6IE5ldyBfX2Jya19jYWxsIGltcGxlbWVudGF0aW9uIGlzIGJyb2tl bgorICAgWzI5NTI4XSBlbGY6IENhbGwgX19saWJjX2Vhcmx5X2luaXQgZm9yIHJldXNlZCBuYW1l c3BhY2VzCistCisrICBbMjk1MzldIGxpYmM6IExEX1RSQUNFX0xPQURFRF9PQkpFQ1RTIGNoYW5n ZWQgaG93IHZEU08gbGlicmFyeSBhcmUKKyAMCisgVmVyc2lvbiAyLjM2CisgCitkaWZmIC0tZ2l0 IGEvZWxmL3J0bGQuYyBiL2VsZi9ydGxkLmMKK2luZGV4IGNiYmFmNGEzMzEuLjNlNzcxYTkzZDgg MTAwNjQ0CistLS0gYS9lbGYvcnRsZC5jCisrKysgYi9lbGYvcnRsZC5jCitAQCAtMjEyMiw2ICsy MTIyLDEyIEBAIGRsX21haW4gKGNvbnN0IEVsZlcoUGhkcikgKnBoZHIsCisgCSAgICBpZiAobC0+ bF9mYWtlZCkKKyAJICAgICAgLyogVGhlIGxpYnJhcnkgd2FzIG5vdCBmb3VuZC4gICovCisgCSAg ICAgIF9kbF9wcmludGYgKCJcdCVzID0+IG5vdCBmb3VuZFxuIiwgIGwtPmxfbGlibmFtZS0+bmFt ZSk7CisrCSAgICBlbHNlIGlmIChzdHJjbXAgKGwtPmxfbGlibmFtZS0+bmFtZSwgbC0+bF9uYW1l KSA9PSAwKQorKwkgICAgICAvKiBQcmludCB2RFNPIGxpa2UgbGlicmFyaWVzIHdpdGhvdXQgZHVw bGljYXRlIG5hbWUuICBTb21lCisrCQkgY29uc3VtZXJzIGRlcGVuZCBvZiB0aGlzIGZvcm1hdC4g ICovCisrCSAgICAgIF9kbF9wcmludGYgKCJcdCVzICgweCUwKlp4KVxuIiwgbC0+bF9saWJuYW1l LT5uYW1lLAorKwkJCSAgKGludCkgc2l6ZW9mIGwtPmxfbWFwX3N0YXJ0ICogMiwKKysJCQkgIChz aXplX3QpIGwtPmxfbWFwX3N0YXJ0KTsKKyAJICAgIGVsc2UKKyAJICAgICAgX2RsX3ByaW50ZiAo Ilx0JXMgPT4gJXMgKDB4JTAqWngpXG4iLAorIAkJCSAgRFNPX0ZJTEVOQU1FIChsLT5sX2xpYm5h bWUtPm5hbWUpLAorLS0gCisyLjM4LjEKKworCitGcm9tIDY0NWQ5NDgwOGFhYTkwZmIxYjIwYTI1 ZmY3MGJiNTBkOWViMWQ1NWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBZGhlbWVy dmFsIFphbmVsbGEgPGFkaGVtZXJ2YWwuemFuZWxsYUBsaW5hcm8ub3JnPgorRGF0ZTogTW9uLCA1 IFNlcCAyMDIyIDA5OjM0OjM5IC0wMzAwCitTdWJqZWN0OiBzeXNsb2c6IFJlbW92ZSBleHRyYSB3 aGl0ZXNwYWNlIGJldHdlZW4gdGltZXN0YW1wIGFuZCBtZXNzYWdlCisgKEJaIzI5NTQ0KQorCitU aGUgcmZjMzE2NCBjbGVhciBzdGF0ZXMgdGhhdCBhIHNpbmdsZSBzcGFjZSBjaGFyYWN0ZXIgbXVz dCBmb2xsb3cKK3RoZSB0aW1lc3RhbXAgZmllbGQuCisKK0NoZWNrZWQgb24geDg2XzY0LWxpbnV4 LWdudS4KKy0tLQorIG1pc2Mvc3lzbG9nLmMgICAgIHwgMiArLQorIG1pc2MvdHN0LXN5c2xvZy5j IHwgOSArKysrKystLS0KKyAyIGZpbGVzIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgNCBkZWxl dGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL21pc2Mvc3lzbG9nLmMgYi9taXNjL3N5c2xvZy5jCitp bmRleCBiODhmNjZjODM1Li5mNjdkNGI1OGE0IDEwMDY0NAorLS0tIGEvbWlzYy9zeXNsb2cuYwor KysrIGIvbWlzYy9zeXNsb2cuYworQEAgLTE2Nyw3ICsxNjcsNyBAQCBfX3ZzeXNsb2dfaW50ZXJu YWwgKGludCBwcmksIGNvbnN0IGNoYXIgKmZtdCwgdmFfbGlzdCBhcCwKKyAJCSAgX25sX0NfbG9j b2JqX3B0cik7CisgCisgI2RlZmluZSBTWVNMT0dfSEVBREVSKF9fcHJpLCBfX3RpbWVzdGFtcCwg X19tc2dvZmYsIHBpZCkgXAorLSAgIjwlZD4lcyAlbiVzJXMlLjBkJXM6ICIsICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKKysgICI8JWQ+JXMlbiVzJXMlLjBkJXM6ICIsICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCisgICBfX3ByaSwgX190aW1lc3RhbXAsIF9fbXNnb2Zm LCAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgTG9nVGFnID09IE5VTEwgPyBfX3Byb2du YW1lIDogTG9nVGFnLCAgICAgICAgICAgICAgICAgIFwKKyAgICJbIiArIChwaWQgPT0gMCksIHBp ZCwgIl0iICsgKHBpZCA9PSAwKQorZGlmZiAtLWdpdCBhL21pc2MvdHN0LXN5c2xvZy5jIGIvbWlz Yy90c3Qtc3lzbG9nLmMKK2luZGV4IDFkMzMyZWNlNTMuLjM1NjBiNTE4YTIgMTAwNjQ0CistLS0g YS9taXNjL3RzdC1zeXNsb2cuYworKysrIGIvbWlzYy90c3Qtc3lzbG9nLmMKK0BAIC0yNzUsMTYg KzI3NSwxOSBAQCBwYXJzZV9zeXNsb2dfbXNnIChjb25zdCBjaGFyICptc2cpCisgeworICAgc3Ry dWN0IG1zZ190IHIgPSB7IC5waWQgPSAtMSB9OworICAgaW50IG51bWJlcjsKKysgIGludCB3c2Is IHdzYTsKKyAKKyAjZGVmaW5lIFNUUklOUFVUKHNpemUpICBYU1RSSU5QVVQoc2l6ZSkKKyAjZGVm aW5lIFhTVFJJTlBVVChzaXplKSAiJSIgIyBzaXplICJzIgorIAorICAgLyogVGhlIG1lc3NhZ2Ug aW4gdGhlIGZvcm06CistICAgICA8MTc5PkFwciAgOCAxNDo1MToxOSAgdHN0LXN5c2xvZzogbWVz c2FnZSAxNzYgMyAgKi8KKy0gIGludCBuID0gc3NjYW5mIChtc2csICI8JTNkPiUqcyAlKmQgJSpk OiUqZDolKmQgIiBTVFJJTlBVVChJREVOVF9MRU5HVEgpCisrICAgICA8MTc5PkFwciAgOCAxNDo1 MToxOSB0c3Qtc3lzbG9nOiBtZXNzYWdlIDE3NiAzICAqLworKyAgaW50IG4gPSBzc2NhbmYgKG1z ZywgIjwlM2Q+JSpzICUqZCAlKmQ6JSpkOiUqZCVuICVuIiBTVFJJTlBVVChJREVOVF9MRU5HVEgp CisgCQkgICAgICAgIiAiIFNUUklOUFVUKE1TR19MRU5HVEgpICIgJSpkICUqZCIsCistICAgICAg ICAgICAgICAgICAgJm51bWJlciwgci5pZGVudCwgci5tc2cpOworKyAgICAgICAgICAgICAgICAg ICZudW1iZXIsICZ3c2IsICZ3c2EsIHIuaWRlbnQsIHIubXNnKTsKKyAgIFRFU1RfQ09NUEFSRSAo biwgMyk7CisrICAvKiBJdCBzaG91bGQgb25seSBvbmUgc3BhY2UgYmV0d2VlbiB0aW1lc3RhbXAg YW5kIG1lc3NhZ2UuICAqLworKyAgVEVTVF9DT01QQVJFICh3c2EgLSB3c2IsIDEpOworIAorICAg ci5mYWNpbGl0eSA9IG51bWJlciAmIExPR19GQUNNQVNLOworICAgci5wcmlvcml0eSA9IG51bWJl ciAmIExPR19QUklNQVNLOworLS0gCisyLjM4LjEKKworCitGcm9tIGI0NjQxMmZiMTdlOGJmYzZj OWUxZjE0NGJiY2Y4MzMzMjBjODBmOGEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBT aWRkaGVzaCBQb3lhcmVrYXIgPHNpZGRoZXNoQHNvdXJjZXdhcmUub3JnPgorRGF0ZTogVHVlLCA2 IFNlcCAyMDIyIDA5OjMxOjUwIC0wNDAwCitTdWJqZWN0OiBBZGQgTkVXUyBlbnRyeSBmb3IgQ1ZF LTIwMjItMzkwNDYKKworKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgNzZmZTU2MDIwZTdlZjM1 NDY4NWIyMjg0NTgwYWMxNjMwYzA3OGEyYikKKy0tLQorIE5FV1MgfCA3ICsrKysrKysKKyAxIGZp bGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9ORVdTIGIvTkVXUwor aW5kZXggNzU3ZGVkODVlMC4uMTBhNzYxM2YwOSAxMDA2NDQKKy0tLSBhL05FV1MKKysrKyBiL05F V1MKK0BAIC03LDYgKzcsMTMgQEAgdXNpbmcgYGdsaWJjJyBpbiB0aGUgInByb2R1Y3QiIGZpZWxk LgorIAwKKyBWZXJzaW9uIDIuMzYuMQorIAorK1NlY3VyaXR5IHJlbGF0ZWQgY2hhbmdlczoKKysK KysgIENWRS0yMDIyLTM5MDQ2OiBXaGVuIHRoZSBzeXNsb2cgZnVuY3Rpb24gaXMgcGFzc2VkIGEg Y3JhZnRlZCBpbnB1dAorKyAgc3RyaW5nIGxhcmdlciB0aGFuIDEwMjQgYnl0ZXMsIGl0IHJlYWRz IHVuaW5pdGlhbGl6ZWQgbWVtb3J5IGZyb20gdGhlCisrICBoZWFwIGFuZCBwcmludHMgaXQgdG8g dGhlIHRhcmdldCBsb2cgZmlsZSwgcG90ZW50aWFsbHkgcmV2ZWFsaW5nIGEKKysgIHBvcnRpb24g b2YgdGhlIGNvbnRlbnRzIG9mIHRoZSBoZWFwLgorKworIFRoZSBmb2xsb3dpbmcgYnVncyBhcmUg cmVzb2x2ZWQgd2l0aCB0aGlzIHJlbGVhc2U6CisgCisgICBbMjg4NDZdIENNU0dfTlhUSERSIG1h eSB0cmlnZ2VyIC1Xc3RyaWN0LW92ZXJmbG93IHdhcm5pbmcKKy0tIAorMi4zOC4xCisKKworRnJv bSBjMzk5MjcxYzEwYmQwMDcxNDUwNGU4ZDRkZmJlYzhhZWJmOTk2ZGQ0IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQorRnJvbTogRmFiaWFuIFZvZ3QgPGZ2b2d0QHN1c2UuZGU+CitEYXRlOiBXZWQs IDI3IEp1bCAyMDIyIDExOjQ0OjA3ICswMjAwCitTdWJqZWN0OiBuc2NkOiBGaXggbmV0bGluayBj YWNoZSBpbnZhbGlkYXRpb24gaWYgZXBvbGwgaXMgdXNlZCBbQlogIzI5NDE1XQorCitQcm9jZXNz ZXMgY2FjaGUgbmV0d29yayBpbnRlcmZhY2UgaW5mb3JtYXRpb24gc3VjaCBhcyB3aGV0aGVyIElQ djQgb3IgSVB2NgorYXJlIGVuYWJsZWQuIFRoaXMgaXMgb25seSBjaGVja2VkIGFnYWluIGlmIHRo ZSAibmV0bGluayB0aW1lc3RhbXAiIHByb3ZpZGVkCitieSBuc2NkIGNoYW5nZWQsIHdoaWNoIGlz IHRyaWdnZXJlZCBieSBuZXRsaW5rIHNvY2tldCBhY3Rpdml0eS4KKworSG93ZXZlciwgaW4gdGhl IGVwb2xsIGhhbmRsZXIgZm9yIHRoZSBuZXRsaW5rIHNvY2tldCwgaXQgd2FzIG1pc3NlZCB0bwor YXNzaWduIHRoZSBuZXcgdGltZXN0YW1wIHRvIHRoZSBuc2NkIGRhdGFiYXNlLiBUaGUgaGFuZGxl ciBmb3IgcGxhaW4gcG9sbAorZGlkIHRoYXQgcHJvcGVybHksIGNvcHkgdGhhdCBvdmVyLgorCitU aGlzIGJ1ZyBjYXVzZWQgdGhhdCBlLmcuIHByb2Nlc3NlcyB3aGljaCBzdGFydGVkIGJlZm9yZSBu ZXR3b3JrCitjb25maWd1cmF0aW9uIGdvdCB1bnVzdWFibGUgYWRkcmVzc2VzIGZyb20gZ2V0YWRk cmluZm8sIGxpa2UgSVB2NiBvbmx5IGV2ZW4KK3Rob3VnaCBvbmx5IElQdjQgaXMgYXZhaWxhYmxl OgoraHR0cHM6Ly9naXRsYWIuZnJlZWRlc2t0b3Aub3JnL05ldHdvcmtNYW5hZ2VyL05ldHdvcmtN YW5hZ2VyLy0vaXNzdWVzLzEwNDEKKworSXQncyBhIGJpdCBoYXJkIHRvIHJlcHJvZHVjZSwgc28g SSB2ZXJpZmllZCB0aGlzIGJ5IGNoZWNraW5nIHRoZSB0aW1lc3RhbXAKK29uIGNhbGxzIHRvIF9f Y2hlY2tfcGYgbWFudWFsbHkuIFdpdGhvdXQgdGhpcyBwYXRjaCBpdCdzIHN0dWNrIGF0IDEsIG5v dworaXQncyBpbmNyZWFzaW5nIG9uIG5ldHdvcmsgY2hhbmdlcyBhcyBleHBlY3RlZC4KKworU2ln bmVkLW9mZi1ieTogRmFiaWFuIFZvZ3QgPGZ2b2d0QHN1c2UuZGU+CisoY2hlcnJ5IHBpY2tlZCBm cm9tIGNvbW1pdCAwMmNhMjVmZWYyNzg1OTc0MDExZTljNWJlZWNjOTliOTAwYjY5ZmQ3KQorLS0t CisgTkVXUyAgICAgICAgICAgICAgIHwgMSArCisgbnNjZC9jb25uZWN0aW9ucy5jIHwgMyArKy0K KyAyIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQorCitkaWZm IC0tZ2l0IGEvTkVXUyBiL05FV1MKK2luZGV4IDEwYTc2MTNmMDkuLjkzNjA1OTZmY2MgMTAwNjQ0 CistLS0gYS9ORVdTCisrKysgYi9ORVdTCitAQCAtMTcsNiArMTcsNyBAQCBTZWN1cml0eSByZWxh dGVkIGNoYW5nZXM6CisgVGhlIGZvbGxvd2luZyBidWdzIGFyZSByZXNvbHZlZCB3aXRoIHRoaXMg cmVsZWFzZToKKyAKKyAgIFsyODg0Nl0gQ01TR19OWFRIRFIgbWF5IHRyaWdnZXIgLVdzdHJpY3Qt b3ZlcmZsb3cgd2FybmluZworKyAgWzI5NDE1XSBuc2NkOiBGaXggbmV0bGluayBjYWNoZSBpbnZh bGlkYXRpb24gaWYgZXBvbGwgaXMgdXNlZAorICAgWzI5NDQ2XSBfZGxvcGVuIG5vdyBpZ25vcmVz IGRsX2NhbGxlciBhcmd1bWVudCBpbiBzdGF0aWMgbW9kZQorICAgWzI5NDg1XSBMaW51eDogVGVy bWluYXRlIHN1YnByb2Nlc3Mgb24gbGF0ZSBmYWlsdXJlIGluIHRzdC1waWRmZAorICAgWzI5NDkw XSBhbHBoYTogTmV3IF9fYnJrX2NhbGwgaW1wbGVtZW50YXRpb24gaXMgYnJva2VuCitkaWZmIC0t Z2l0IGEvbnNjZC9jb25uZWN0aW9ucy5jIGIvbnNjZC9jb25uZWN0aW9ucy5jCitpbmRleCA2MWQx Njc0ZWI0Li41MzFkMmU4M2RmIDEwMDY0NAorLS0tIGEvbnNjZC9jb25uZWN0aW9ucy5jCisrKysg Yi9uc2NkL2Nvbm5lY3Rpb25zLmMKK0BAIC0yMjg0LDcgKzIyODQsOCBAQCBtYWluX2xvb3BfZXBv bGwgKGludCBlZmQpCisgCQkJCQkgICAgIHNpemVvZiAoYnVmKSkpICE9IC0xKQorIAkgICAgICA7 CisgCistCSAgICBfX2J1bXBfbmxfdGltZXN0YW1wICgpOworKwkgICAgZGJzW2hzdGRiXS5oZWFk LT5leHRyYV9kYXRhW05TQ0RfSFNUX0lEWF9DT05GX1RJTUVTVEFNUF0KKysJICAgICAgPSBfX2J1 bXBfbmxfdGltZXN0YW1wICgpOworIAkgIH0KKyAjIGVuZGlmCisgCWVsc2UKKy0tIAorMi4zOC4x CisKKworRnJvbSA5ZDdlZWJkZThmMTM0ZWEyNWJkYjlhYjYxYmM3NGQ1ZTcxZTQxMjg4IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRmxvcmlhbiBXZWltZXIgPGZ3ZWltZXJAcmVkaGF0 LmNvbT4KK0RhdGU6IFR1ZSwgMzAgQXVnIDIwMjIgMTA6MDI6NDkgKzAyMDAKK1N1YmplY3Q6IHJl c29sdjogQWRkIHRzdC1yZXNvbHYtYnlhZGRyIGZvciB0ZXN0aW5nIHJldmVyc2UgbG9va3VwCisK K1Jldmlld2VkLWJ5OiBTaWRkaGVzaCBQb3lhcmVrYXIgPHNpZGRoZXNoQHNvdXJjZXdhcmUub3Jn PgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgMGI5OTgyOGQ1NGU1ZDFmYzhmNWFkM2VkZjVi YTI2MmFkMmU5YzViMCkKKy0tLQorIHJlc29sdi9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAg ICB8ICAgMiArCisgcmVzb2x2L3RzdC1yZXNvbHYtYnlhZGRyLmMgICAgICAgICAgIHwgMzI2ICsr KysrKysrKysrKysrKysrKysrKysrKysrKworIHJlc29sdi90c3QtcmVzb2x2LW1heWJlX2luc2Vy dF9zaWcuaCB8ICAzMiArKysKKyAzIGZpbGVzIGNoYW5nZWQsIDM2MCBpbnNlcnRpb25zKCspCisg Y3JlYXRlIG1vZGUgMTAwNjQ0IHJlc29sdi90c3QtcmVzb2x2LWJ5YWRkci5jCisgY3JlYXRlIG1v ZGUgMTAwNjQ0IHJlc29sdi90c3QtcmVzb2x2LW1heWJlX2luc2VydF9zaWcuaAorCitkaWZmIC0t Z2l0IGEvcmVzb2x2L01ha2VmaWxlIGIvcmVzb2x2L01ha2VmaWxlCitpbmRleCA1YjE1MzIxZjli Li45OGIxMGQ5N2EwIDEwMDY0NAorLS0tIGEvcmVzb2x2L01ha2VmaWxlCisrKysgYi9yZXNvbHYv TWFrZWZpbGUKK0BAIC05MSw2ICs5MSw3IEBAIHRlc3RzICs9IFwKKyAgIHRzdC1yZXNfaG5vayBc CisgICB0c3QtcmVzb2x2LWJhc2ljIFwKKyAgIHRzdC1yZXNvbHYtYmluYXJ5IFwKKysgIHRzdC1y ZXNvbHYtYnlhZGRyIFwKKyAgIHRzdC1yZXNvbHYtZWRucyBcCisgICB0c3QtcmVzb2x2LW5ldHdv cmsgXAorICAgdHN0LXJlc29sdi1ub2FhYWEgXAorQEAgLTI2MCw2ICsyNjEsNyBAQCAkKG9ianBm eCl0c3QtcmVzb2x2LWFpX2lkbi1ub2xpYmlkbjIub3V0OiBcCisgICAkKGdlbi1sb2NhbGVzKSAk KG9ianBmeCl0c3Qtbm8tbGliaWRuMi5zbworICQob2JqcGZ4KXRzdC1yZXNvbHYtYmFzaWM6ICQo b2JqcGZ4KWxpYnJlc29sdi5zbyAkKHNoYXJlZC10aHJlYWQtbGlicmFyeSkKKyAkKG9ianBmeCl0 c3QtcmVzb2x2LWJpbmFyeTogJChvYmpwZngpbGlicmVzb2x2LnNvICQoc2hhcmVkLXRocmVhZC1s aWJyYXJ5KQorKyQob2JqcGZ4KXRzdC1yZXNvbHYtYnlhZGRyOiAkKG9ianBmeClsaWJyZXNvbHYu c28gJChzaGFyZWQtdGhyZWFkLWxpYnJhcnkpCisgJChvYmpwZngpdHN0LXJlc29sdi1lZG5zOiAk KG9ianBmeClsaWJyZXNvbHYuc28gJChzaGFyZWQtdGhyZWFkLWxpYnJhcnkpCisgJChvYmpwZngp dHN0LXJlc29sdi1uZXR3b3JrOiAkKG9ianBmeClsaWJyZXNvbHYuc28gJChzaGFyZWQtdGhyZWFk LWxpYnJhcnkpCisgJChvYmpwZngpdHN0LXJlc29sdi1yZXNfaW5pdDogJChvYmpwZngpbGlicmVz b2x2LnNvCitkaWZmIC0tZ2l0IGEvcmVzb2x2L3RzdC1yZXNvbHYtYnlhZGRyLmMgYi9yZXNvbHYv dHN0LXJlc29sdi1ieWFkZHIuYworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAw MDAuLjYyOTllODk4MzcKKy0tLSAvZGV2L251bGwKKysrKyBiL3Jlc29sdi90c3QtcmVzb2x2LWJ5 YWRkci5jCitAQCAtMCwwICsxLDMyNiBAQAorKy8qIFRlc3QgcmV2ZXJzZSBETlMgbG9va3VwLgor KyAgIENvcHlyaWdodCAoQykgMjAyMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysg ICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKysKKysgICBUaGUgR05V IEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IKKysgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy YWwgUHVibGljCisrICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbjsgZWl0aGVyCisrICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChh dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrCisrICAgVGhlIEdOVSBDIExpYnJh cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysg ICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZgorKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUgR05VCisrICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug Zm9yIG1vcmUgZGV0YWlscy4KKysKKysgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5 IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisrICAgTGljZW5zZSBhbG9uZyB3aXRo IHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorKyAgIDxodHRwczovL3d3dy5nbnUub3Jn L2xpY2Vuc2VzLz4uICAqLworKworKyNpbmNsdWRlIDxhcnBhL2luZXQuaD4KKysjaW5jbHVkZSA8 ZXJybm8uaD4KKysjaW5jbHVkZSA8bmV0ZGIuaD4KKysjaW5jbHVkZSA8c3RkYm9vbC5oPgorKyNp bmNsdWRlIDxzdGRpby5oPgorKyNpbmNsdWRlIDxzdGRsaWIuaD4KKysjaW5jbHVkZSA8c3RyaW5n Lmg+CisrI2luY2x1ZGUgPHN1cHBvcnQvY2hlY2suaD4KKysjaW5jbHVkZSA8c3VwcG9ydC9jaGVj a19uc3MuaD4KKysjaW5jbHVkZSA8c3VwcG9ydC9uZXh0X3RvX2ZhdWx0Lmg+CisrI2luY2x1ZGUg PHN1cHBvcnQvcmVzb2x2X3Rlc3QuaD4KKysjaW5jbHVkZSA8c3VwcG9ydC9zdXBwb3J0Lmg+Cisr CisrI2luY2x1ZGUgInRzdC1yZXNvbHYtbWF5YmVfaW5zZXJ0X3NpZy5oIgorKworKy8qIFFOQU1F IGZvcm1hdDoKKysKKysgICBBRERSRVNTRVMuQ05BTUVTLi4uKGxvdHMgb2YgMHMpLi4uOC5iLmQu MC4xLjAuMC4yLmlwNi5hcnBhLgorKyAgIENOQU1FU3xBRERSRVNTRVMuMi4wLjE5Mi5pbi1hZGRy LWFycGEuCisrCisrICAgRm9yIHRoZSBJUHY0IHJldmVyc2UgbG9va3VwLCB0aGUgYWRkcmVzcyBj b3VudCBpcyBpbiB0aGUgbG93ZXIKKysgICBiaXRzLgorKworKyAgIENOQU1FUyBpcyB0aGUgbGVu Z3RoIG9mIHRoZSBDTkFNRSBjaGFpbiwgQUREUkVTU0VTIGlzIHRoZSBudW1iZXIgb2YKKysgICBh ZGRyZXNzZXMgaW4gdGhlIHJlc3BvbnNlLiAgVGhlIHNwZWNpYWwgdmFsdWUgMTUgbWVhbnMgdGhh dCB0aGVyZQorKyAgIGFyZSBubyBhZGRyZXNzZXMsIGFuZCB0aGUgUkNPREUgaXMgTlhET01BSU4u ICAqLworK3N0YXRpYyB2b2lkCisrcmVzcG9uc2UgKGNvbnN0IHN0cnVjdCByZXNvbHZfcmVzcG9u c2VfY29udGV4dCAqY3R4LAorKyAgICAgICAgICBzdHJ1Y3QgcmVzb2x2X3Jlc3BvbnNlX2J1aWxk ZXIgKmIsCisrICAgICAgICAgIGNvbnN0IGNoYXIgKnFuYW1lLCB1aW50MTZfdCBxY2xhc3MsIHVp bnQxNl90IHF0eXBlKQorK3sKKysgIFRFU1RfQ09NUEFSRSAocWNsYXNzLCBDX0lOKTsKKysgIFRF U1RfQ09NUEFSRSAocXR5cGUsIFRfUFRSKTsKKysKKysgIHVuc2lnbmVkIGludCBhZGRyZXNzZXMs IGNuYW1lcywgYml0czsKKysgIGNoYXIgKnRhaWw7CisrICBpZiAoc3Ryc3RyIChxbmFtZSwgImlw Ni5hcnBhIikgIT0gTlVMTAorKyAgICAgICYmIHNzY2FuZiAocW5hbWUsICIleC4leC4lbXMiLCAm YWRkcmVzc2VzLCAmY25hbWVzLCAmdGFpbCkgPT0gMykKKysgICAgVEVTVF9DT01QQVJFX1NUUklO RyAodGFpbCwgIlwKKyswLjAuMC4wLjAuMC4wLjAuMC4wLjAuMC4wLjAuMC4wLjAuMC4wLjAuMC4w LjguYi5kLjAuMS4wLjAuMi5pcDYuYXJwYSIpOworKyAgZWxzZSBpZiAoc3NjYW5mIChxbmFtZSwg IiV1LiVtcyIsICZiaXRzLCAmdGFpbCkgPT0gMikKKysgICAgeworKyAgICAgIFRFU1RfQ09NUEFS RV9TVFJJTkcgKHRhaWwsICIyLjAuMTkyLmluLWFkZHIuYXJwYSIpOworKyAgICAgIGFkZHJlc3Nl cyA9IGJpdHMgJiAweDBmOworKyAgICAgIGNuYW1lcyA9IGJpdHMgPj4gNDsKKysgICAgfQorKyAg ZWxzZQorKyAgICBGQUlMX0VYSVQxICgiaW52YWxpZCBRTkFNRTogJXMiLCBxbmFtZSk7CisrICBm cmVlICh0YWlsKTsKKysKKysgIGludCByY29kZTsKKysgIGlmIChhZGRyZXNzZXMgPT0gMTUpCisr ICAgIHsKKysgICAgICAvKiBTcGVjaWFsIGNhc2U6IFVzZSBubyBhZGRyZXNzZXMgd2l0aCBOWERP TUFJTiByZXNwb25zZS4gICovCisrICAgICAgcmNvZGUgPSBuc19yX254ZG9tYWluOworKyAgICAg IGFkZHJlc3NlcyA9IDA7CisrICAgIH0KKysgIGVsc2UKKysgICAgcmNvZGUgPSAwOworKworKyAg c3RydWN0IHJlc29sdl9yZXNwb25zZV9mbGFncyBmbGFncyA9IHsgLnJjb2RlID0gcmNvZGUgfTsK KysgIHJlc29sdl9yZXNwb25zZV9pbml0IChiLCBmbGFncyk7CisrICByZXNvbHZfcmVzcG9uc2Vf YWRkX3F1ZXN0aW9uIChiLCBxbmFtZSwgcWNsYXNzLCBxdHlwZSk7CisrICByZXNvbHZfcmVzcG9u c2Vfc2VjdGlvbiAoYiwgbnNfc19hbik7CisrICBtYXliZV9pbnNlcnRfc2lnIChiLCBxbmFtZSk7 CisrCisrICAvKiBQcm92aWRlIHRoZSByZXF1ZXN0ZWQgbnVtYmVyIG9mIENOQU1FIHJlY29yZHMu ICAqLworKyAgY2hhciAqcHJldmlvdXNfbmFtZSA9IChjaGFyICopIHFuYW1lOworKyAgZm9yIChp bnQgdW5pcXVlID0gMDsgdW5pcXVlIDwgY25hbWVzOyArK3VuaXF1ZSkKKysgICAgeworKyAgICAg IHJlc29sdl9yZXNwb25zZV9vcGVuX3JlY29yZCAoYiwgcHJldmlvdXNfbmFtZSwgcWNsYXNzLCBU X0NOQU1FLCA2MCk7CisrICAgICAgY2hhciAqbmV3X25hbWUgPSB4YXNwcmludGYgKCIlZC5hbGlh cy5leGFtcGxlIiwgdW5pcXVlKTsKKysgICAgICByZXNvbHZfcmVzcG9uc2VfYWRkX25hbWUgKGIs IG5ld19uYW1lKTsKKysgICAgICByZXNvbHZfcmVzcG9uc2VfY2xvc2VfcmVjb3JkIChiKTsKKysK KysgICAgICBtYXliZV9pbnNlcnRfc2lnIChiLCBxbmFtZSk7CisrCisrICAgICAgaWYgKHByZXZp b3VzX25hbWUgIT0gcW5hbWUpCisrICAgICAgICBmcmVlIChwcmV2aW91c19uYW1lKTsKKysgICAg ICBwcmV2aW91c19uYW1lID0gbmV3X25hbWU7CisrICAgIH0KKysKKysgIGZvciAoaW50IHVuaXF1 ZSA9IDA7IHVuaXF1ZSA8IGFkZHJlc3NlczsgKyt1bmlxdWUpCisrICAgIHsKKysgICAgICByZXNv bHZfcmVzcG9uc2Vfb3Blbl9yZWNvcmQgKGIsIHByZXZpb3VzX25hbWUsIHFjbGFzcywgVF9QVFIs IDYwKTsKKysgICAgICBjaGFyICpwdHIgPSB4YXNwcmludGYgKCJ1bmlxdWUtJWQuY25hbWVzLSV1 LmFkZHJlc3Nlcy0ldS5leGFtcGxlIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu aXF1ZSwgY25hbWVzLCBhZGRyZXNzZXMpOworKyAgICAgIHJlc29sdl9yZXNwb25zZV9hZGRfbmFt ZSAoYiwgcHRyKTsKKysgICAgICBmcmVlIChwdHIpOworKyAgICAgIHJlc29sdl9yZXNwb25zZV9j bG9zZV9yZWNvcmQgKGIpOworKyAgICB9CisrCisrICBpZiAocHJldmlvdXNfbmFtZSAhPSBxbmFt ZSkKKysgICAgZnJlZSAocHJldmlvdXNfbmFtZSk7CisrfQorKworKy8qIFVzZWQgdG8gY2hlY2sg dGhhdCBnZXRob3N0YnlhZGRyX3IgZG9lcyBub3Qgd3JpdGUgcGFzdCB0aGUgYnVmZmVyCisrICAg ZW5kLiAgKi8KKytzdGF0aWMgc3RydWN0IHN1cHBvcnRfbmV4dF90b19mYXVsdCBudGY7CisrCisr LyogUGVyZm9ybSBhIGdldGhvc3RieWFkZHIgY2FsbCBhbmQgY2hlY2sgdGhlIHJlc3VsdC4gICov Cisrc3RhdGljIHZvaWQKKytjaGVja19nZXRob3N0YnlhZGRyIChjb25zdCBjaGFyICphZGRyZXNz LCBjb25zdCBjaGFyICpleHBlY3RlZCkKKyt7CisrICB1bnNpZ25lZCBjaGFyIGJ5dGVzWzE2XTsK KysgIHVuc2lnbmVkIGludCBieXRlc2xlbjsKKysgIGludCBmYW1pbHk7CisrICBpZiAoc3RyY2hy IChhZGRyZXNzLCAnOicpICE9IE5VTEwpCisrICAgIHsKKysgICAgICBmYW1pbHkgPSBBRl9JTkVU NjsKKysgICAgICBieXRlc2xlbiA9IDE2OworKyAgICB9CisrICBlbHNlCisrICAgIHsKKysgICAg ICBmYW1pbHkgPSBBRl9JTkVUOworKyAgICAgIGJ5dGVzbGVuID0gNDsKKysgICAgfQorKyAgVEVT VF9DT01QQVJFIChpbmV0X3B0b24gKGZhbWlseSwgYWRkcmVzcywgYnl0ZXMpLCAxKTsKKysKKysg IHN0cnVjdCBob3N0ZW50ICplID0gZ2V0aG9zdGJ5YWRkciAoYnl0ZXMsIGJ5dGVzbGVuLCBmYW1p bHkpOworKyAgY2hlY2tfaG9zdGVudCAoYWRkcmVzcywgZSwgZXhwZWN0ZWQpOworKworKyAgaWYg KGUgPT0gTlVMTCkKKysgICAgcmV0dXJuOworKworKyAgLyogVHJ5IGdldGhvc3RieWFkZHJfciB3 aXRoIGluY3JlYXNpbmcgc2l6ZXMgdW50aWwgc3VjY2Vzcy4gIEZpcnN0CisrICAgICBjb21wdXRl IGEgcmVhc29uYWJsZSBtaW5pbXVtIGJ1ZmZlciBzaXplLCB0byBhdm9pZCBtYW55IHBvaW50bGVz cworKyAgICAgYXR0ZW1wdHMuICAqLworKyAgc2l6ZV90IG1pbmltdW1fc2l6ZSA9IHN0cmxlbiAo ZS0+aF9uYW1lKTsKKysgIGZvciAoaW50IGkgPSAwOyBlLT5oX2FkZHJfbGlzdFtpXSAhPSBOVUxM OyArK2kpCisrICAgIG1pbmltdW1fc2l6ZSArPSBlLT5oX2xlbmd0aCArIHNpemVvZiAoY2hhciAq KTsKKysgIGZvciAoaW50IGkgPSAwOyBlLT5oX2FsaWFzZXNbaV0gIT0gTlVMTDsgKytpKQorKyAg ICBtaW5pbXVtX3NpemUgKz0gc3RybGVuIChlLT5oX2FsaWFzZXNbaV0pICsgMSArIHNpemVvZiAo Y2hhciAqKTsKKysKKysgIC8qIEdyYWR1YWxseSBpbmNyZWFzZSB0aGUgc2l6ZSB1bnRpbCBzdWNj ZXNzLiAgKi8KKysgIGZvciAoc2l6ZV90IHNpemUgPSBtaW5pbXVtX3NpemU7IHNpemUgPCBudGYu bGVuZ3RoOyArK3NpemUpCisrICAgIHsKKysgICAgICBzdHJ1Y3QgaG9zdGVudCByZXN1bHQ7Cisr ICAgICAgaW50IGhlcnJubzsKKysgICAgICBpbnQgcmV0ID0gZ2V0aG9zdGJ5YWRkcl9yIChieXRl cywgYnl0ZXNsZW4sIGZhbWlseSwgJnJlc3VsdCwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBudGYuYnVmZmVyICsgbnRmLmxlbmd0aCAtIHNpemUsIHNpemUsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJmUsICZoZXJybm8pOworKyAgICAgIGlmIChyZXQgPT0g RVJBTkdFKQorKyAgICAgICAgLyogUmV0cnkgd2l0aCBsYXJnZXIgc2l6ZS4gICovCisrICAgICAg ICBURVNUX0NPTVBBUkUgKGhlcnJubywgTkVUREJfSU5URVJOQUwpOworKyAgICAgIGVsc2UgaWYg KHJldCA9PSAwKQorKyAgICAgICAgeworKyAgICAgICAgIFRFU1RfVkVSSUZZIChzaXplID4gbWlu aW11bV9zaXplKTsKKysgICAgICAgICBjaGVja19ob3N0ZW50IChhZGRyZXNzLCBlLCBleHBlY3Rl ZCk7CisrICAgICAgICAgcmV0dXJuOworKyAgICAgICAgfQorKyAgICAgIGVsc2UKKysgICAgICAg IEZBSUxfRVhJVDEgKCJVbmV4cGVjdGVkIGdldGhvc3RieWFkZHJfciBmYWlsdXJlOiAlZCIsIHJl dCk7CisrICAgIH0KKysKKysgIEZBSUxfRVhJVDEgKCJnZXRob3N0YnlhZGRyX3IgYWx3YXlzIGZh aWxlZCBmb3I6ICVzIiwgYWRkcmVzcyk7CisrfQorKworKy8qIFBlcmZvcm0gYSBnZXRuYW1laW5m byBjYWxsIGFuZCBjaGVjayB0aGUgcmVzdWx0LiAgKi8KKytzdGF0aWMgdm9pZAorK2NoZWNrX2dl dG5hbWVpbmZvIChjb25zdCBjaGFyICphZGRyZXNzLCBjb25zdCBjaGFyICpleHBlY3RlZCkKKyt7 CisrICBzdHJ1Y3Qgc29ja2FkZHJfaW4gc2luID0geyB9OworKyAgc3RydWN0IHNvY2thZGRyX2lu NiBzaW42ID0geyB9OworKyAgdm9pZCAqc2E7CisrICBzb2NrbGVuX3Qgc2FsZW47CisrICBpZiAo c3RyY2hyIChhZGRyZXNzLCAnOicpICE9IE5VTEwpCisrICAgIHsKKysgICAgICBzaW42LnNpbjZf ZmFtaWx5ID0gQUZfSU5FVDY7CisrICAgICAgVEVTVF9DT01QQVJFIChpbmV0X3B0b24gKEFGX0lO RVQ2LCBhZGRyZXNzLCAmc2luNi5zaW42X2FkZHIpLCAxKTsKKysgICAgICBzaW42LnNpbjZfcG9y dCA9IGh0b25zICg4MCk7CisrICAgICAgc2EgPSAmc2luNjsKKysgICAgICBzYWxlbiA9IHNpemVv ZiAoc2luNik7CisrICAgIH0KKysgIGVsc2UKKysgICAgeworKyAgICAgIHNpbi5zaW5fZmFtaWx5 ID0gQUZfSU5FVDsKKysgICAgICBURVNUX0NPTVBBUkUgKGluZXRfcHRvbiAoQUZfSU5FVCwgYWRk cmVzcywgJnNpbi5zaW5fYWRkciksIDEpOworKyAgICAgIHNpbi5zaW5fcG9ydCA9IGh0b25zICg4 MCk7CisrICAgICAgc2EgPSAmc2luOworKyAgICAgIHNhbGVuID0gc2l6ZW9mIChzaW4pOworKyAg ICB9CisrCisrICBjaGFyIGhvc3RbNjRdOworKyAgY2hhciBzZXJ2aWNlWzY0XTsKKysgIGludCBy ZXQgPSBnZXRuYW1laW5mbyAoc2EsIHNhbGVuLCBob3N0LAorKyAgICAgICAgICAgICAgICAgICAg ICAgICBzaXplb2YgKGhvc3QpLCBzZXJ2aWNlLCBzaXplb2YgKHNlcnZpY2UpLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICBOSV9OQU1FUkVRRCB8IE5JX05VTUVSSUNTRVJWKTsKKysgIHN3aXRj aCAocmV0KQorKyAgICB7CisrICAgIGNhc2UgMDoKKysgICAgICBURVNUX0NPTVBBUkVfU1RSSU5H IChob3N0LCBleHBlY3RlZCk7CisrICAgICAgVEVTVF9DT01QQVJFX1NUUklORyAoc2VydmljZSwg IjgwIik7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgRUFJX1NZU1RFTToKKysgICAgICBURVNU X0NPTVBBUkVfU1RSSU5HIChzdHJlcnJvciAoZXJybm8pLCBleHBlY3RlZCk7CisrICAgICAgYnJl YWs7CisrICAgIGRlZmF1bHQ6CisrICAgICAgVEVTVF9DT01QQVJFX1NUUklORyAoZ2FpX3N0cmVy cm9yIChyZXQpLCBleHBlY3RlZCk7CisrICAgIH0KKyt9CisrCisrc3RhdGljIGludAorK2RvX3Rl c3QgKHZvaWQpCisreworKyAgLyogU29tZSByZWFzb25hYmx5IHVwcGVyIGJvdW5kIGZvciB0aGUg bWF4aW11bSByZXNwb25zZSBzaXplLiAgKi8KKysgIG50ZiA9IHN1cHBvcnRfbmV4dF90b19mYXVs dF9hbGxvY2F0ZSAoNDA5Nik7CisrCisrICBzdHJ1Y3QgcmVzb2x2X3Rlc3QgKm9iaiA9IHJlc29s dl90ZXN0X3N0YXJ0CisrICAgICgoc3RydWN0IHJlc29sdl9yZWRpcmVjdF9jb25maWcpCisrICAg ICB7CisrICAgICAgIC5yZXNwb25zZV9jYWxsYmFjayA9IHJlc3BvbnNlCisrICAgICB9KTsKKysK KysgIGZvciAoaW50IGRvX2luc2VydF9zaWcgPSAwOyBkb19pbnNlcnRfc2lnIDwgMjsgKytkb19p bnNlcnRfc2lnKQorKyAgICB7CisrICAgICAgaW5zZXJ0X3NpZyA9IGRvX2luc2VydF9zaWc7Cisr CisrICAgICAgLyogTm8gUFRSIHJlY29yZCwgUkNPREU9MC4gICovCisrICAgICAgY2hlY2tfZ2V0 aG9zdGJ5YWRkciAoIjE5Mi4wLjIuMCIsICJlcnJvcjogTk9fUkVDT1ZFUllcbiIpOworKyAgICAg IGNoZWNrX2dldG5hbWVpbmZvICgiMTkyLjAuMi4wIiwgIk5hbWUgb3Igc2VydmljZSBub3Qga25v d24iKTsKKysgICAgICBjaGVja19nZXRob3N0YnlhZGRyICgiMTkyLjAuMi4xNiIsICJlcnJvcjog Tk9fUkVDT1ZFUllcbiIpOworKyAgICAgIGNoZWNrX2dldG5hbWVpbmZvICgiMTkyLjAuMi4xNiIs ICJOYW1lIG9yIHNlcnZpY2Ugbm90IGtub3duIik7CisrICAgICAgY2hlY2tfZ2V0aG9zdGJ5YWRk ciAoIjE5Mi4wLjIuMzIiLCAiZXJyb3I6IE5PX1JFQ09WRVJZXG4iKTsKKysgICAgICBjaGVja19n ZXRuYW1laW5mbyAoIjE5Mi4wLjIuMzIiLCAiTmFtZSBvciBzZXJ2aWNlIG5vdCBrbm93biIpOwor KyAgICAgIGNoZWNrX2dldGhvc3RieWFkZHIgKCIyMDAxOmRiODo6IiwgImVycm9yOiBOT19SRUNP VkVSWVxuIik7CisrICAgICAgY2hlY2tfZ2V0bmFtZWluZm8gKCIyMDAxOmRiODo6IiwgIk5hbWUg b3Igc2VydmljZSBub3Qga25vd24iKTsKKysgICAgICBjaGVja19nZXRob3N0YnlhZGRyICgiMjAw MTpkYjg6OjEwIiwgImVycm9yOiBOT19SRUNPVkVSWVxuIik7CisrICAgICAgY2hlY2tfZ2V0bmFt ZWluZm8gKCIyMDAxOmRiODo6MTAiLCAiTmFtZSBvciBzZXJ2aWNlIG5vdCBrbm93biIpOworKyAg ICAgIGNoZWNrX2dldGhvc3RieWFkZHIgKCIyMDAxOmRiODo6MjAiLCAiZXJyb3I6IE5PX1JFQ09W RVJZXG4iKTsKKysgICAgICBjaGVja19nZXRuYW1laW5mbyAoIjIwMDE6ZGI4OjoyMCIsICJOYW1l IG9yIHNlcnZpY2Ugbm90IGtub3duIik7CisrCisrICAgICAgLyogTm8gUFRSIHJlY29yZCwgTlhE T01BSU4uICAqLworKyAgICAgIGNoZWNrX2dldGhvc3RieWFkZHIgKCIxOTIuMC4yLjE1IiwgImVy cm9yOiBIT1NUX05PVF9GT1VORFxuIik7CisrICAgICAgY2hlY2tfZ2V0bmFtZWluZm8gKCIxOTIu MC4yLjE1IiwgIk5hbWUgb3Igc2VydmljZSBub3Qga25vd24iKTsKKysgICAgICBjaGVja19nZXRo b3N0YnlhZGRyICgiMTkyLjAuMi4zMSIsICJlcnJvcjogSE9TVF9OT1RfRk9VTkRcbiIpOworKyAg ICAgIGNoZWNrX2dldG5hbWVpbmZvICgiMTkyLjAuMi4zMSIsICJOYW1lIG9yIHNlcnZpY2Ugbm90 IGtub3duIik7CisrICAgICAgY2hlY2tfZ2V0aG9zdGJ5YWRkciAoIjE5Mi4wLjIuNDciLCAiZXJy b3I6IEhPU1RfTk9UX0ZPVU5EXG4iKTsKKysgICAgICBjaGVja19nZXRuYW1laW5mbyAoIjE5Mi4w LjIuNDciLCAiTmFtZSBvciBzZXJ2aWNlIG5vdCBrbm93biIpOworKyAgICAgIGNoZWNrX2dldGhv c3RieWFkZHIgKCIyMDAxOmRiODo6ZiIsICJlcnJvcjogSE9TVF9OT1RfRk9VTkRcbiIpOworKyAg ICAgIGNoZWNrX2dldG5hbWVpbmZvICgiMjAwMTpkYjg6OmYiLCAiTmFtZSBvciBzZXJ2aWNlIG5v dCBrbm93biIpOworKyAgICAgIGNoZWNrX2dldGhvc3RieWFkZHIgKCIyMDAxOmRiODo6MWYiLCAi ZXJyb3I6IEhPU1RfTk9UX0ZPVU5EXG4iKTsKKysgICAgICBjaGVja19nZXRuYW1laW5mbyAoIjIw MDE6ZGI4OjoxZiIsICJOYW1lIG9yIHNlcnZpY2Ugbm90IGtub3duIik7CisrICAgICAgY2hlY2tf Z2V0aG9zdGJ5YWRkciAoIjIwMDE6ZGI4OjoyZiIsICJlcnJvcjogSE9TVF9OT1RfRk9VTkRcbiIp OworKyAgICAgIGNoZWNrX2dldG5hbWVpbmZvICgiMjAwMTpkYjg6OjJmIiwgIk5hbWUgb3Igc2Vy dmljZSBub3Qga25vd24iKTsKKysKKysgICAgICAvKiBBY3R1YWwgcmVzcG9uc2UgZGF0YS4gIE9u bHkgdGhlIGZpcnN0IFBUUiByZWNvcmQgaXMgcmV0dXJuZWQuICAqLworKyAgICAgIGNoZWNrX2dl dGhvc3RieWFkZHIgKCIxOTIuMC4yLjEiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJu YW1lOiB1bmlxdWUtMC5jbmFtZXMtMC5hZGRyZXNzZXMtMS5leGFtcGxlXG4iCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgImFkZHJlc3M6IDE5Mi4wLjIuMVxuIik7CisrICAgICAgY2hlY2tf Z2V0bmFtZWluZm8gKCIxOTIuMC4yLjEiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAidW5p cXVlLTAuY25hbWVzLTAuYWRkcmVzc2VzLTEuZXhhbXBsZSIpOworKyAgICAgIGNoZWNrX2dldGhv c3RieWFkZHIgKCIxOTIuMC4yLjE3IiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAibmFt ZTogdW5pcXVlLTAuY25hbWVzLTEuYWRkcmVzc2VzLTEuZXhhbXBsZVxuIgorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICJhZGRyZXNzOiAxOTIuMC4yLjE3XG4iKTsKKysgICAgICBjaGVja19n ZXRuYW1laW5mbyAoIjE5Mi4wLjIuMTciLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAidW5p cXVlLTAuY25hbWVzLTEuYWRkcmVzc2VzLTEuZXhhbXBsZSIpOworKyAgICAgIGNoZWNrX2dldGhv c3RieWFkZHIgKCIxOTIuMC4yLjE4IiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAibmFt ZTogdW5pcXVlLTAuY25hbWVzLTEuYWRkcmVzc2VzLTIuZXhhbXBsZVxuIgorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICJhZGRyZXNzOiAxOTIuMC4yLjE4XG4iKTsKKysgICAgICBjaGVja19n ZXRuYW1laW5mbyAoIjE5Mi4wLjIuMTgiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAidW5p cXVlLTAuY25hbWVzLTEuYWRkcmVzc2VzLTIuZXhhbXBsZSIpOworKyAgICAgIGNoZWNrX2dldGhv c3RieWFkZHIgKCIxOTIuMC4yLjMzIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAibmFt ZTogdW5pcXVlLTAuY25hbWVzLTIuYWRkcmVzc2VzLTEuZXhhbXBsZVxuIgorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICJhZGRyZXNzOiAxOTIuMC4yLjMzXG4iKTsKKysgICAgICBjaGVja19n ZXRuYW1laW5mbyAoIjE5Mi4wLjIuMzMiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAidW5p cXVlLTAuY25hbWVzLTIuYWRkcmVzc2VzLTEuZXhhbXBsZSIpOworKyAgICAgIGNoZWNrX2dldGhv c3RieWFkZHIgKCIxOTIuMC4yLjM0IiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAibmFt ZTogdW5pcXVlLTAuY25hbWVzLTIuYWRkcmVzc2VzLTIuZXhhbXBsZVxuIgorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICJhZGRyZXNzOiAxOTIuMC4yLjM0XG4iKTsKKysgICAgICBjaGVja19n ZXRuYW1laW5mbyAoIjE5Mi4wLjIuMzQiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAidW5p cXVlLTAuY25hbWVzLTIuYWRkcmVzc2VzLTIuZXhhbXBsZSIpOworKworKyAgICAgIC8qIFNhbWUg Zm9yIElQdjYgYWRkcmVzc2VzLiAgKi8KKysgICAgICBjaGVja19nZXRob3N0YnlhZGRyICgiMjAw MTpkYjg6OjEiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lOiB1bmlxdWUtMC5j bmFtZXMtMC5hZGRyZXNzZXMtMS5leGFtcGxlXG4iCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgImFkZHJlc3M6IDIwMDE6ZGI4OjoxXG4iKTsKKysgICAgICBjaGVja19nZXRuYW1laW5mbyAo IjIwMDE6ZGI4OjoxIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgInVuaXF1ZS0wLmNuYW1l cy0wLmFkZHJlc3Nlcy0xLmV4YW1wbGUiKTsKKysgICAgICBjaGVja19nZXRob3N0YnlhZGRyICgi MjAwMTpkYjg6OjExIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZTogdW5pcXVl LTAuY25hbWVzLTEuYWRkcmVzc2VzLTEuZXhhbXBsZVxuIgorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICJhZGRyZXNzOiAyMDAxOmRiODo6MTFcbiIpOworKyAgICAgIGNoZWNrX2dldG5hbWVp bmZvICgiMjAwMTpkYjg6OjExIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgInVuaXF1ZS0w LmNuYW1lcy0xLmFkZHJlc3Nlcy0xLmV4YW1wbGUiKTsKKysgICAgICBjaGVja19nZXRob3N0Ynlh ZGRyICgiMjAwMTpkYjg6OjEyIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZTog dW5pcXVlLTAuY25hbWVzLTEuYWRkcmVzc2VzLTIuZXhhbXBsZVxuIgorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICJhZGRyZXNzOiAyMDAxOmRiODo6MTJcbiIpOworKyAgICAgIGNoZWNrX2dl dG5hbWVpbmZvICgiMjAwMTpkYjg6OjEyIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgInVu aXF1ZS0wLmNuYW1lcy0xLmFkZHJlc3Nlcy0yLmV4YW1wbGUiKTsKKysgICAgICBjaGVja19nZXRo b3N0YnlhZGRyICgiMjAwMTpkYjg6OjIxIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAi bmFtZTogdW5pcXVlLTAuY25hbWVzLTIuYWRkcmVzc2VzLTEuZXhhbXBsZVxuIgorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICJhZGRyZXNzOiAyMDAxOmRiODo6MjFcbiIpOworKyAgICAgIGNo ZWNrX2dldG5hbWVpbmZvICgiMjAwMTpkYjg6OjIxIiwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgInVuaXF1ZS0wLmNuYW1lcy0yLmFkZHJlc3Nlcy0xLmV4YW1wbGUiKTsKKysgICAgICBjaGVj a19nZXRob3N0YnlhZGRyICgiMjAwMTpkYjg6OjIyIiwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAibmFtZTogdW5pcXVlLTAuY25hbWVzLTIuYWRkcmVzc2VzLTIuZXhhbXBsZVxuIgorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICJhZGRyZXNzOiAyMDAxOmRiODo6MjJcbiIpOworKyAg ICAgIGNoZWNrX2dldG5hbWVpbmZvICgiMjAwMTpkYjg6OjIyIiwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgInVuaXF1ZS0wLmNuYW1lcy0yLmFkZHJlc3Nlcy0yLmV4YW1wbGUiKTsKKysgICAg fQorKworKyAgcmVzb2x2X3Rlc3RfZW5kIChvYmopOworKworKyAgc3VwcG9ydF9uZXh0X3RvX2Zh dWx0X2ZyZWUgKCZudGYpOworKyAgcmV0dXJuIDA7CisrfQorKworKyNpbmNsdWRlIDxzdXBwb3J0 L3Rlc3QtZHJpdmVyLmM+CitkaWZmIC0tZ2l0IGEvcmVzb2x2L3RzdC1yZXNvbHYtbWF5YmVfaW5z ZXJ0X3NpZy5oIGIvcmVzb2x2L3RzdC1yZXNvbHYtbWF5YmVfaW5zZXJ0X3NpZy5oCituZXcgZmls ZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMC4uMDU3MjUyMjVhZgorLS0tIC9kZXYvbnVs bAorKysrIGIvcmVzb2x2L3RzdC1yZXNvbHYtbWF5YmVfaW5zZXJ0X3NpZy5oCitAQCAtMCwwICsx LDMyIEBACisrLyogQ29kZSBzbmlwcGV0IGZvciBvcHRpb25hbGx5IGluc2VydGluZyBpZ25vcmVk IFNJRyByZWNvcmRzIGluIHJlc29sdmVyIHRlc3RzLgorKyAgIENvcHlyaWdodCAoQykgMjAyMiBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0 aGUgR05VIEMgTGlicmFyeS4KKysKKysgICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKysgICBtb2RpZnkgaXQgdW5kZXIg dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisrICAgTGljZW5zZSBh cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisrICAg dmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy IHZlcnNpb24uCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFO VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisr ICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysKKysg ICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy YWwgUHVibGljCisrICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBu b3QsIHNlZQorKyAgIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworKworKy8q IFNldCB0byB0cnVlIGZvciBhbiBhbHRlcm5hdGl2ZSBwYXNzIHRoYXQgaW5zZXJ0cyAoaWdub3Jl ZCkgU0lHCisrICAgcmVjb3Jkcy4gIFRoaXMgZG9lcyBub3QgYWx0ZXIgdGhlIHJlc3BvbnNlLCBz byB0aGlzIHByb3BlcnR5IGlzIG5vdAorKyAgIGVuY29kZWQgaW4gdGhlIFFOQU1FLiAgVGhlIHZh cmlhYmxlIG5lZWRzIHRvIGJlIHZvbGF0aWxlIGJlY2F1c2UKKysgICBsZWFmIGF0dHJpYnV0ZXMg dGVsbCBHQ0MgdGhhdCB0aGUgcmVzcG9uc2UgZnVuY3Rpb24gaXMgbm90CisrICAgY2FsbGVkLiAg Ki8KKytzdGF0aWMgdm9sYXRpbGUgYm9vbCBpbnNlcnRfc2lnOworKworK3N0YXRpYyB2b2lkCisr bWF5YmVfaW5zZXJ0X3NpZyAoc3RydWN0IHJlc29sdl9yZXNwb25zZV9idWlsZGVyICpiLCBjb25z dCBjaGFyICpvd25lcikKKyt7CisrICByZXNvbHZfcmVzcG9uc2Vfb3Blbl9yZWNvcmQgKGIsIG93 bmVyLCBDX0lOLCBUX1NJRywgNjApOworKyAgcmVzb2x2X3Jlc3BvbnNlX2FkZF9kYXRhIChiLCAi IiwgMSk7CisrICByZXNvbHZfcmVzcG9uc2VfY2xvc2VfcmVjb3JkIChiKTsKKyt9CistLSAKKzIu MzguMQorCisKK0Zyb20gYmZmYzMzZTkwZWQ1N2E0Nzg2YzY3NmRkYTkyZDkzNWUzNjEzZTAzMSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEZsb3JpYW4gV2VpbWVyIDxmd2VpbWVyQHJl ZGhhdC5jb20+CitEYXRlOiBUdWUsIDMwIEF1ZyAyMDIyIDEwOjAyOjQ5ICswMjAwCitTdWJqZWN0 OiByZXNvbHY6IEFkZCB0c3QtcmVzb2x2LWFsaWFzZXMKKworUmV2aWV3ZWQtYnk6IFNpZGRoZXNo IFBveWFyZWthciA8c2lkZGhlc2hAc291cmNld2FyZS5vcmc+CisoY2hlcnJ5IHBpY2tlZCBmcm9t IGNvbW1pdCA4N2FhOThhYTgwNjI3NTUzYTY2YmRjYWQyNzAxZmQ2MzA3NzIzNjQ1KQorLS0tCisg cmVzb2x2L01ha2VmaWxlICAgICAgICAgICAgIHwgICAyICsKKyByZXNvbHYvdHN0LXJlc29sdi1h bGlhc2VzLmMgfCAyNTQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCisgMiBm aWxlcyBjaGFuZ2VkLCAyNTYgaW5zZXJ0aW9ucygrKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCByZXNv bHYvdHN0LXJlc29sdi1hbGlhc2VzLmMKKworZGlmZiAtLWdpdCBhL3Jlc29sdi9NYWtlZmlsZSBi L3Jlc29sdi9NYWtlZmlsZQoraW5kZXggOThiMTBkOTdhMC4uMDAzOGJiNzAyOCAxMDA2NDQKKy0t LSBhL3Jlc29sdi9NYWtlZmlsZQorKysrIGIvcmVzb2x2L01ha2VmaWxlCitAQCAtODksNiArODks NyBAQCB0ZXN0cyArPSBcCisgICB0c3QtbnNfbmFtZV9wdG9uIFwKKyAgIHRzdC1yZXNfaGNvbmZf cmVvcmRlciBcCisgICB0c3QtcmVzX2hub2sgXAorKyAgdHN0LXJlc29sdi1hbGlhc2VzIFwKKyAg IHRzdC1yZXNvbHYtYmFzaWMgXAorICAgdHN0LXJlc29sdi1iaW5hcnkgXAorICAgdHN0LXJlc29s di1ieWFkZHIgXAorQEAgLTI1OSw2ICsyNjAsNyBAQCAkKG9ianBmeCl0c3QtcmVzb2x2LWFpX2lk bi5vdXQ6ICQoZ2VuLWxvY2FsZXMpCisgJChvYmpwZngpdHN0LXJlc29sdi1haV9pZG4tbGF0aW4x Lm91dDogJChnZW4tbG9jYWxlcykKKyAkKG9ianBmeCl0c3QtcmVzb2x2LWFpX2lkbi1ub2xpYmlk bjIub3V0OiBcCisgICAkKGdlbi1sb2NhbGVzKSAkKG9ianBmeCl0c3Qtbm8tbGliaWRuMi5zbwor KyQob2JqcGZ4KXRzdC1yZXNvbHYtYWxpYXNlczogJChvYmpwZngpbGlicmVzb2x2LnNvICQoc2hh cmVkLXRocmVhZC1saWJyYXJ5KQorICQob2JqcGZ4KXRzdC1yZXNvbHYtYmFzaWM6ICQob2JqcGZ4 KWxpYnJlc29sdi5zbyAkKHNoYXJlZC10aHJlYWQtbGlicmFyeSkKKyAkKG9ianBmeCl0c3QtcmVz b2x2LWJpbmFyeTogJChvYmpwZngpbGlicmVzb2x2LnNvICQoc2hhcmVkLXRocmVhZC1saWJyYXJ5 KQorICQob2JqcGZ4KXRzdC1yZXNvbHYtYnlhZGRyOiAkKG9ianBmeClsaWJyZXNvbHYuc28gJChz aGFyZWQtdGhyZWFkLWxpYnJhcnkpCitkaWZmIC0tZ2l0IGEvcmVzb2x2L3RzdC1yZXNvbHYtYWxp YXNlcy5jIGIvcmVzb2x2L3RzdC1yZXNvbHYtYWxpYXNlcy5jCituZXcgZmlsZSBtb2RlIDEwMDY0 NAoraW5kZXggMDAwMDAwMDAwMC4uYjIxMjgyM2FhMAorLS0tIC9kZXYvbnVsbAorKysrIGIvcmVz b2x2L3RzdC1yZXNvbHYtYWxpYXNlcy5jCitAQCAtMCwwICsxLDI1NCBAQAorKy8qIFRlc3QgYWxp YXMgaGFuZGxpbmcgKG1haW5seSBmb3IgZ2V0aG9zdGJ5bmFtZSkuCisrICAgQ29weXJpZ2h0IChD KSAyMDIyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyAgIFRoaXMgZmlsZSBpcyBw YXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5LgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZy ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorKyAgIG1vZGlmeSBp dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKysgICBM aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo ZXIKKysgICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh bnkgbGF0ZXIgdmVyc2lvbi4KKysKKysgICBUaGUgR05VIEMgTGlicmFyeSBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICAgTUVS Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo ZSBHTlUKKysgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz LgorKworKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNz ZXIgR2VuZXJhbCBQdWJsaWMKKysgICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJh cnk7IGlmIG5vdCwgc2VlCisrICAgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICov CisrCisrI2luY2x1ZGUgPGFycmF5X2xlbmd0aC5oPgorKyNpbmNsdWRlIDxhcnBhL2luZXQuaD4K KysjaW5jbHVkZSA8bmV0ZGIuaD4KKysjaW5jbHVkZSA8c3RkYm9vbC5oPgorKyNpbmNsdWRlIDxz dGRpby5oPgorKyNpbmNsdWRlIDxzdGRsaWIuaD4KKysjaW5jbHVkZSA8c3RyaW5nLmg+CisrI2lu Y2x1ZGUgPHN1cHBvcnQvY2hlY2suaD4KKysjaW5jbHVkZSA8c3VwcG9ydC9jaGVja19uc3MuaD4K KysjaW5jbHVkZSA8c3VwcG9ydC9yZXNvbHZfdGVzdC5oPgorKyNpbmNsdWRlIDxzdXBwb3J0L3N1 cHBvcnQuaD4KKysKKysjaW5jbHVkZSAidHN0LXJlc29sdi1tYXliZV9pbnNlcnRfc2lnLmgiCisr CisrLyogUU5BTUUgZm9ybWF0OgorKworKyAgIGFBRERSRVNTRVMtY0NOQU1FUy5leGFtcGxlLm5l dAorKworKyAgIENOQU1FUyBpcyB0aGUgbGVuZ3RoIG9mIHRoZSBDTkFNRSBjaGFpbiwgQUREUkVT U0VTIGlzIHRoZSBudW1iZXIgb2YKKysgICBhZGRyZXNzZXMgaW4gdGhlIHJlc3BvbnNlLiAgVGhl IHNwZWNpYWwgdmFsdWUgMjU1IG1lYW5zIHRoYXQgdGhlcmUKKysgICBhcmUgbm8gYWRkcmVzc2Vz LCBhbmQgdGhlIFJDT0RFIGlzIE5YRE9NQUlOLiAgKi8KKytzdGF0aWMgdm9pZAorK3Jlc3BvbnNl IChjb25zdCBzdHJ1Y3QgcmVzb2x2X3Jlc3BvbnNlX2NvbnRleHQgKmN0eCwKKysgICAgICAgICAg c3RydWN0IHJlc29sdl9yZXNwb25zZV9idWlsZGVyICpiLAorKyAgICAgICAgICBjb25zdCBjaGFy ICpxbmFtZSwgdWludDE2X3QgcWNsYXNzLCB1aW50MTZfdCBxdHlwZSkKKyt7CisrICBURVNUX0NP TVBBUkUgKHFjbGFzcywgQ19JTik7CisrICBpZiAocXR5cGUgIT0gVF9BKQorKyAgICBURVNUX0NP TVBBUkUgKHF0eXBlLCBUX0FBQUEpOworKworKyAgdW5zaWduZWQgaW50IGFkZHJlc3NlcywgY25h bWVzOworKyAgY2hhciAqdGFpbDsKKysgIGlmIChzc2NhbmYgKHFuYW1lLCAiYSV1LWMldSVtcyIs ICZhZGRyZXNzZXMsICZjbmFtZXMsICZ0YWlsKSA9PSAzKQorKyAgICB7CisrICAgICAgaWYgKHN0 cmNtcCAodGFpbCwgIi5leGFtcGxlLmNvbSIpID09IDAKKysgICAgICAgICAgfHwgc3RyY21wICh0 YWlsLCAiLmV4YW1wbGUubmV0LmV4YW1wbGUubmV0IikgPT0gMAorKyAgICAgICAgICB8fCBzdHJj bXAgKHRhaWwsICIuZXhhbXBsZS5uZXQuZXhhbXBsZS5jb20iKSA9PSAwKQorKyAgICAgICAgLyog VGhlc2Ugb25seSBoYXBwZW4gYWZ0ZXIgTlhET01BSU4uICAqLworKyAgICAgICAgVEVTVF9WRVJJ RlkgKGFkZHJlc3NlcyA9PSAyNTUpOworKyAgICAgIGVsc2UgaWYgKHN0cmNtcCAodGFpbCwgIi5l eGFtcGxlLm5ldCIpICE9IDApCisrICAgICAgICBGQUlMX0VYSVQxICgiaW52YWxpZCBRTkFNRTog JXMiLCBxbmFtZSk7CisrICAgIH0KKysgIGZyZWUgKHRhaWwpOworKworKyAgaW50IHJjb2RlOwor KyAgaWYgKGFkZHJlc3NlcyA9PSAyNTUpCisrICAgIHsKKysgICAgICAvKiBTcGVjaWFsIGNhc2U6 IFVzZSBubyBhZGRyZXNzZXMgd2l0aCBOWERPTUFJTiByZXNwb25zZS4gICovCisrICAgICAgcmNv ZGUgPSBuc19yX254ZG9tYWluOworKyAgICAgIGFkZHJlc3NlcyA9IDA7CisrICAgIH0KKysgIGVs c2UKKysgICAgcmNvZGUgPSAwOworKworKyAgc3RydWN0IHJlc29sdl9yZXNwb25zZV9mbGFncyBm bGFncyA9IHsgLnJjb2RlID0gcmNvZGUgfTsKKysgIHJlc29sdl9yZXNwb25zZV9pbml0IChiLCBm bGFncyk7CisrICByZXNvbHZfcmVzcG9uc2VfYWRkX3F1ZXN0aW9uIChiLCBxbmFtZSwgcWNsYXNz LCBxdHlwZSk7CisrICByZXNvbHZfcmVzcG9uc2Vfc2VjdGlvbiAoYiwgbnNfc19hbik7CisrICBt YXliZV9pbnNlcnRfc2lnIChiLCBxbmFtZSk7CisrCisrICAvKiBQcm92aWRlIHRoZSByZXF1ZXN0 ZWQgbnVtYmVyIG9mIENOQU1FIHJlY29yZHMuICAqLworKyAgY2hhciAqcHJldmlvdXNfbmFtZSA9 IChjaGFyICopIHFuYW1lOworKyAgZm9yIChpbnQgdW5pcXVlID0gMDsgdW5pcXVlIDwgY25hbWVz OyArK3VuaXF1ZSkKKysgICAgeworKyAgICAgIHJlc29sdl9yZXNwb25zZV9vcGVuX3JlY29yZCAo YiwgcHJldmlvdXNfbmFtZSwgcWNsYXNzLCBUX0NOQU1FLCA2MCk7CisrICAgICAgY2hhciAqbmV3 X25hbWUgPSB4YXNwcmludGYgKCIlZC5hbGlhcy5leGFtcGxlIiwgdW5pcXVlKTsKKysgICAgICBy ZXNvbHZfcmVzcG9uc2VfYWRkX25hbWUgKGIsIG5ld19uYW1lKTsKKysgICAgICByZXNvbHZfcmVz cG9uc2VfY2xvc2VfcmVjb3JkIChiKTsKKysKKysgICAgICBtYXliZV9pbnNlcnRfc2lnIChiLCBx bmFtZSk7CisrCisrICAgICAgaWYgKHByZXZpb3VzX25hbWUgIT0gcW5hbWUpCisrICAgICAgICBm cmVlIChwcmV2aW91c19uYW1lKTsKKysgICAgICBwcmV2aW91c19uYW1lID0gbmV3X25hbWU7Cisr ICAgIH0KKysKKysgIGZvciAoaW50IHVuaXF1ZSA9IDA7IHVuaXF1ZSA8IGFkZHJlc3NlczsgKyt1 bmlxdWUpCisrICAgIHsKKysgICAgICByZXNvbHZfcmVzcG9uc2Vfb3Blbl9yZWNvcmQgKGIsIHBy ZXZpb3VzX25hbWUsIHFjbGFzcywgcXR5cGUsIDYwKTsKKysKKysgICAgICBpZiAocXR5cGUgPT0g VF9BKQorKyAgICAgICAgeworKyAgICAgICAgICBjaGFyIGlwdjRbNF0gPSB7MTkyLCAwLCAyLCAx ICsgdW5pcXVlfTsKKysgICAgICAgICAgcmVzb2x2X3Jlc3BvbnNlX2FkZF9kYXRhIChiLCAmaXB2 NCwgc2l6ZW9mIChpcHY0KSk7CisrICAgICAgICB9CisrICAgICAgZWxzZSBpZiAocXR5cGUgPT0g VF9BQUFBKQorKyAgICAgICAgeworKyAgICAgICAgICBjaGFyIGlwdjZbMTZdID0KKysgICAgICAg ICAgICB7CisrICAgICAgICAgICAgICAweDIwLCAweDAxLCAweGQsIDB4YjgsIDAsIDAsIDAsIDAs IDAsIDAsIDAsIDAsIDAsIDAsIDAsCisrICAgICAgICAgICAgICAxICsgdW5pcXVlCisrICAgICAg ICAgICAgfTsKKysgICAgICAgICAgcmVzb2x2X3Jlc3BvbnNlX2FkZF9kYXRhIChiLCAmaXB2Niwg c2l6ZW9mIChpcHY2KSk7CisrICAgICAgICB9CisrICAgICAgcmVzb2x2X3Jlc3BvbnNlX2Nsb3Nl X3JlY29yZCAoYik7CisrICAgIH0KKysKKysgIGlmIChwcmV2aW91c19uYW1lICE9IHFuYW1lKQor KyAgICBmcmVlIChwcmV2aW91c19uYW1lKTsKKyt9CisrCisrc3RhdGljIGNoYXIgKgorK21ha2Vf cW5hbWUgKGJvb2wgZG9fc2VhcmNoLCBpbnQgY25hbWVzLCBpbnQgYWRkcmVzc2VzKQorK3sKKysg IHJldHVybiB4YXNwcmludGYgKCJhJWQtYyVkJXMiLAorKyAgICAgICAgICAgICAgICAgICAgYWRk cmVzc2VzLCBjbmFtZXMsIGRvX3NlYXJjaCA/ICIiIDogIi5leGFtcGxlLm5ldCIpOworK30KKysK KytzdGF0aWMgdm9pZAorK2NoZWNrX2NuYW1lc19mYWlsdXJlIChpbnQgYWYsIGJvb2wgZG9fc2Vh cmNoLCBpbnQgY25hbWVzLCBpbnQgYWRkcmVzc2VzKQorK3sKKysgIGNoYXIgKnFuYW1lID0gbWFr ZV9xbmFtZSAoZG9fc2VhcmNoLCBjbmFtZXMsIGFkZHJlc3Nlcyk7CisrCisrICBzdHJ1Y3QgaG9z dGVudCAqZTsKKysgIGlmIChhZiA9PSBBRl9VTlNQRUMpCisrICAgIGUgPSBnZXRob3N0YnluYW1l IChxbmFtZSk7CisrICBlbHNlCisrICAgIGUgPSBnZXRob3N0YnluYW1lMiAocW5hbWUsIGFmKTsK KysKKysgIGlmIChhZGRyZXNzZXMgPT0gMCkKKysgICAgY2hlY2tfaG9zdGVudCAocW5hbWUsIGUs ICJlcnJvcjogTk9fUkVDT1ZFUllcbiIpOworKyAgZWxzZQorKyAgICBjaGVja19ob3N0ZW50IChx bmFtZSwgZSwgImVycm9yOiBIT1NUX05PVF9GT1VORFxuIik7CisrCisrICBmcmVlIChxbmFtZSk7 CisrfQorKworK3N0YXRpYyB2b2lkCisrY2hlY2sgKGludCBhZiwgYm9vbCBkb19zZWFyY2gsIGlu dCBjbmFtZXMsIGludCBhZGRyZXNzZXMpCisreworKyAgY2hhciAqcW5hbWUgPSBtYWtlX3FuYW1l IChkb19zZWFyY2gsIGNuYW1lcywgYWRkcmVzc2VzKTsKKysgIGNoYXIgKmZxZG4gPSBtYWtlX3Fu YW1lIChmYWxzZSwgY25hbWVzLCBhZGRyZXNzZXMpOworKworKyAgc3RydWN0IGhvc3RlbnQgKmU7 CisrICBpZiAoYWYgPT0gQUZfVU5TUEVDKQorKyAgICBlID0gZ2V0aG9zdGJ5bmFtZSAocW5hbWUp OworKyAgZWxzZQorKyAgICBlID0gZ2V0aG9zdGJ5bmFtZTIgKHFuYW1lLCBhZik7CisrICBpZiAo ZSA9PSBOVUxMKQorKyAgICBGQUlMX0VYSVQxICgidW5leHBlY3RlZCBmYWlsdXJlIGZvciAlZCwg JWQsICVkIiwgYWYsIGNuYW1lcywgYWRkcmVzc2VzKTsKKysKKysgIGlmIChhZiA9PSBBRl9VTlNQ RUMgfHwgYWYgPT0gQUZfSU5FVCkKKysgICAgeworKyAgICAgIFRFU1RfQ09NUEFSRSAoZS0+aF9h ZGRydHlwZSwgQUZfSU5FVCk7CisrICAgICAgVEVTVF9DT01QQVJFIChlLT5oX2xlbmd0aCwgNCk7 CisrICAgIH0KKysgIGVsc2UKKysgICAgeworKyAgICAgIFRFU1RfQ09NUEFSRSAoZS0+aF9hZGRy dHlwZSwgQUZfSU5FVDYpOworKyAgICAgIFRFU1RfQ09NUEFSRSAoZS0+aF9sZW5ndGgsIDE2KTsK KysgICAgfQorKworKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBhZGRyZXNzZXM7ICsraSkKKysgICAg eworKyAgICAgIGNoYXIgaXB2NFs0XSA9IHsxOTIsIDAsIDIsIDEgKyBpfTsKKysgICAgICBjaGFy IGlwdjZbMTZdID0KKysgICAgICAgIHsgMHgyMCwgMHgwMSwgMHhkLCAweGI4LCAwLCAwLCAwLCAw LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxICsgaSB9OworKyAgICAgIGNoYXIgKmV4cGVjdGVkID0g ZS0+aF9hZGRydHlwZSA9PSBBRl9JTkVUID8gaXB2NCA6IGlwdjY7CisrICAgICAgVEVTVF9DT01Q QVJFX0JMT0IgKGUtPmhfYWRkcl9saXN0W2ldLCBlLT5oX2xlbmd0aCwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgZXhwZWN0ZWQsIGUtPmhfbGVuZ3RoKTsKKysgICAgfQorKyAgVEVTVF9WRVJJ RlkgKGUtPmhfYWRkcl9saXN0W2FkZHJlc3Nlc10gPT0gTlVMTCk7CisrCisrCisrICBpZiAoY25h bWVzID09IDApCisrICAgIHsKKysgICAgICAvKiBRTkFNRSBpcyBmdWxseSBxdWFsaWZpZWQuICAq LworKyAgICAgIFRFU1RfQ09NUEFSRV9TVFJJTkcgKGUtPmhfbmFtZSwgZnFkbik7CisrICAgICAg VEVTVF9WRVJJRlkgKGUtPmhfYWxpYXNlc1swXSA9PSBOVUxMKTsKKysgICAgfQorKyAgZWxzZQor KyAgIHsKKysgICAgIC8qIEZ1bGx5LXF1YWxpZmllZCBRTkFNRSBpcyBkZW1vdGVkIHRvIGFuIGFs aWFzZXMuICAqLworKyAgICAgVEVTVF9DT01QQVJFX1NUUklORyAoZS0+aF9hbGlhc2VzWzBdLCBm cWRuKTsKKysKKysgICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IGNuYW1lczsgKytpKQorKyAgICAg ICB7CisrICAgICAgICAgY2hhciAqZXhwZWN0ZWQgPSB4YXNwcmludGYgKCIlZC5hbGlhcy5leGFt cGxlIiwgaSAtIDEpOworKyAgICAgICAgIGlmIChpID09IGNuYW1lcykKKysgICAgICAgICAgIFRF U1RfQ09NUEFSRV9TVFJJTkcgKGUtPmhfbmFtZSwgZXhwZWN0ZWQpOworKyAgICAgICAgIGVsc2UK KysgICAgICAgICAgIFRFU1RfQ09NUEFSRV9TVFJJTkcgKGUtPmhfYWxpYXNlc1tpXSwgZXhwZWN0 ZWQpOworKyAgICAgICAgIGZyZWUgKGV4cGVjdGVkKTsKKysgICAgICAgfQorKyAgICAgVEVTVF9W RVJJRlkgKGUtPmhfYWxpYXNlc1tjbmFtZXNdID09IE5VTEwpOworKyAgIH0KKysKKysgIGZyZWUg KGZxZG4pOworKyAgZnJlZSAocW5hbWUpOworK30KKysKKytzdGF0aWMgaW50CisrZG9fdGVzdCAo dm9pZCkKKyt7CisrICBzdHJ1Y3QgcmVzb2x2X3Rlc3QgKm9iaiA9IHJlc29sdl90ZXN0X3N0YXJ0 CisrICAgICgoc3RydWN0IHJlc29sdl9yZWRpcmVjdF9jb25maWcpCisrICAgICB7CisrICAgICAg IC5yZXNwb25zZV9jYWxsYmFjayA9IHJlc3BvbnNlLAorKyAgICAgICAuc2VhcmNoID0geyAiZXhh bXBsZS5uZXQiLCAiZXhhbXBsZS5jb20iIH0sCisrICAgICB9KTsKKysKKysgIHN0YXRpYyBjb25z dCBpbnQgZmFtaWxpZXNbXSA9IHsgQUZfVU5TUEVDLCBBRl9JTkVULCBBRl9JTkVUNiB9OworKwor KyAgZm9yIChpbnQgZG9faW5zZXJ0X3NpZyA9IDA7IGRvX2luc2VydF9zaWcgPCAyOyArK2RvX2lu c2VydF9zaWcpCisrICAgIHsKKysgICAgICBpbnNlcnRfc2lnID0gZG9faW5zZXJ0X3NpZzsKKysK KysgICAgICAvKiBJZiBkb19zZWFyY2ggaXMgdHJ1ZSwgYSBiYXJlIGhvc3QgbmFtZSAoZm9yIGV4 YW1wbGUsIGExLWMxKQorKyAgICAgICAgIGlzIHVzZWQuICBUaGlzIGV4ZXJjaXNlcyBzZWFyY2gg cGF0aCBwcm9jZXNzaW5nIGFuZCBGUUROCisrICAgICAgICAgcXVhbGlmaWNhdGlvbi4gICovCisr ICAgICAgZm9yIChpbnQgZG9fc2VhcmNoID0gMDsgZG9fc2VhcmNoIDwgMjsgKytkb19zZWFyY2gp CisrICAgICAgICBmb3IgKGNvbnN0IGludCAqcGFmID0gZmFtaWxpZXM7IHBhZiAhPSBhcnJheV9l bmQgKGZhbWlsaWVzKTsgKytwYWYpCisrICAgICAgICAgIHsKKysgICAgICAgICAgICBmb3IgKGlu dCBjbmFtZXMgPSAwOyBjbmFtZXMgPD0gMTAwOyArK2NuYW1lcykKKysgICAgICAgICAgICAgIHsK KysgICAgICAgICAgICAgICAgY2hlY2tfY25hbWVzX2ZhaWx1cmUgKCpwYWYsIGRvX3NlYXJjaCwg Y25hbWVzLCAwKTsKKysgICAgICAgICAgICAgICAgLyogTm93IHdpdGggTlhET01BSU4gcmVzcG9u c2VzLiAgKi8KKysgICAgICAgICAgICAgICAgY2hlY2tfY25hbWVzX2ZhaWx1cmUgKCpwYWYsIGRv X3NlYXJjaCwgY25hbWVzLCAyNTUpOworKyAgICAgICAgICAgICAgfQorKworKyAgICAgICAgICAg IGZvciAoaW50IGNuYW1lcyA9IDA7IGNuYW1lcyA8PSAxMDsgKytjbmFtZXMpCisrICAgICAgICAg ICAgICBmb3IgKGludCBhZGRyZXNzZXMgPSAxOyBhZGRyZXNzZXMgPD0gMTA7ICsrYWRkcmVzc2Vz KQorKyAgICAgICAgICAgICAgICBjaGVjayAoKnBhZiwgZG9fc2VhcmNoLCBjbmFtZXMsIGFkZHJl c3Nlcyk7CisrCisrICAgICAgICAgICAgLyogVGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gaXMg bGltaXRlZCB0byA0NyBhbGlhc2VzLgorKyAgICAgICAgICAgICAgIEFkZHJlc3NlcyBkbyBub3Qg aGF2ZSBzdWNoIGEgbGltaXQuICAqLworKyAgICAgICAgICAgIGNoZWNrICgqcGFmLCBkb19zZWFy Y2gsIDQ3LCA2MCk7CisrICAgICAgICAgIH0KKysgICAgfQorKworKyAgcmVzb2x2X3Rlc3RfZW5k IChvYmopOworKworKyAgcmV0dXJuIDA7CisrfQorKworKyNpbmNsdWRlIDxzdXBwb3J0L3Rlc3Qt ZHJpdmVyLmM+CistLSAKKzIuMzguMQorCisKK0Zyb20gM2M5YjQwMDRlMmRjY2M5Y2EyYWNlMDc4 YTAxMDZmOWQ2ODJmZDFhMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEZsb3JpYW4g V2VpbWVyIDxmd2VpbWVyQHJlZGhhdC5jb20+CitEYXRlOiBUdWUsIDMwIEF1ZyAyMDIyIDEwOjAy OjQ5ICswMjAwCitTdWJqZWN0OiByZXNvbHY6IEFkZCBpbnRlcm5hbCBfX3Jlc19iaW5hcnlfaG5v ayBmdW5jdGlvbgorCitEdXJpbmcgcGFja2FnZSBwYXJzaW5nLCBvbmx5IHRoZSBiaW5hcnkgcmVw cmVzZW50YXRpb24gaXMgYXZhaWxhYmxlLAorYW5kIGl0IGlzIGNvbnZlbmllbnQgdG8gY2hlY2sg dGhhdCBkaXJlY3RseSBmb3IgY29uZm9ybWFuY2Ugd2l0aCBob3N0CituYW1lIHJlcXVpcmVtZW50 cy4KKworUmV2aWV3ZWQtYnk6IFNpZGRoZXNoIFBveWFyZWthciA8c2lkZGhlc2hAc291cmNld2Fy ZS5vcmc+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBjNzkzMjdiZjAwYTRiZTZkNjAyNTky MjdhY2M3OGVmODBlYWQzNjIyKQorLS0tCisgaW5jbHVkZS9yZXNvbHYuaCAgICAgICAgICAgfCAg MyArKysKKyByZXNvbHYvcmVzLW5hbWUtY2hlY2tpbmcuYyB8IDE0ICsrKysrKysrKy0tLS0tCisg MiBmaWxlcyBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQorCitkaWZm IC0tZ2l0IGEvaW5jbHVkZS9yZXNvbHYuaCBiL2luY2x1ZGUvcmVzb2x2LmgKK2luZGV4IDM1OTBi NmY0OTYuLjRkYmJhYzM4MDAgMTAwNjQ0CistLS0gYS9pbmNsdWRlL3Jlc29sdi5oCisrKysgYi9p bmNsdWRlL3Jlc29sdi5oCitAQCAtNzAsNSArNzAsOCBAQCBsaWJjX2hpZGRlbl9wcm90byAoX19s aWJjX3Jlc19uYW1laW5xdWVyeSkKKyBleHRlcm4gX190eXBlb2YgKF9fcmVzX3F1ZXJpZXNtYXRj aCkgX19saWJjX3Jlc19xdWVyaWVzbWF0Y2g7CisgbGliY19oaWRkZW5fcHJvdG8gKF9fbGliY19y ZXNfcXVlcmllc21hdGNoKQorIAorKy8qIFZhcmlhbnQgb2YgcmVzX2hub2sgd2hpY2ggb3BlcmF0 ZXMgb24gYmluYXJ5IChidXQgdW5jb21wcmVzc2VkKSBuYW1lcy4gICovCisrYm9vbCBfX3Jlc19i aW5hcnlfaG5vayAoY29uc3QgdW5zaWduZWQgY2hhciAqZG4pIGF0dHJpYnV0ZV9oaWRkZW47Cisr CisgIyBlbmRpZiAvKiBfUkVTT0xWX0hfICYmICFfSVNPTUFDICovCisgI2VuZGlmCitkaWZmIC0t Z2l0IGEvcmVzb2x2L3Jlcy1uYW1lLWNoZWNraW5nLmMgYi9yZXNvbHYvcmVzLW5hbWUtY2hlY2tp bmcuYworaW5kZXggMDdhNDEyZDhmZi4uMjEzZWRjZWFmMyAxMDA2NDQKKy0tLSBhL3Jlc29sdi9y ZXMtbmFtZS1jaGVja2luZy5jCisrKysgYi9yZXNvbHYvcmVzLW5hbWUtY2hlY2tpbmcuYworQEAg LTEzOCw2ICsxMzgsMTIgQEAgYmluYXJ5X2xlYWRpbmdfZGFzaCAoY29uc3QgdW5zaWduZWQgY2hh ciAqZG4pCisgICByZXR1cm4gZG5bMF0gPiAwICYmIGRuWzFdID09ICctJzsKKyB9CisgCisrYm9v bAorK19fcmVzX2JpbmFyeV9obm9rIChjb25zdCB1bnNpZ25lZCBjaGFyICpkbikKKyt7CisrICBy ZXR1cm4gIWJpbmFyeV9sZWFkaW5nX2Rhc2ggKGRuKSAmJiBiaW5hcnlfaG5vayAoZG4pOworK30K KysKKyAvKiBSZXR1cm4gMSBpZiByZXNfaG5vayBpcyBhIHZhbGlkIGhvc3QgbmFtZS4gIExhYmVs cyBtdXN0IG9ubHkKKyAgICBjb250YWluIFswLTlhLXpBLVpfLV0gY2hhcmFjdGVycywgYW5kIHRo ZSBuYW1lIG11c3Qgbm90IHN0YXJ0IHdpdGgKKyAgICBhICctJy4gIFRoZSBsYXR0ZXIgaXMgdG8g YXZvaWQgY29uZnVzaW9uIHdpdGggcHJvZ3JhbSBvcHRpb25zLiAgKi8KK0BAIC0xNDUsMTEgKzE1 MSw5IEBAIGludAorIF9fX3Jlc19obm9rIChjb25zdCBjaGFyICpkbikKKyB7CisgICB1bnNpZ25l ZCBjaGFyIGJ1ZltOU19NQVhDRE5BTUVdOworLSAgaWYgKCFwcmludGFibGVfc3RyaW5nIChkbikK Ky0gICAgICB8fCBfX25zX25hbWVfcHRvbiAoZG4sIGJ1Ziwgc2l6ZW9mIChidWYpKSA8IDAKKy0g ICAgICB8fCBiaW5hcnlfbGVhZGluZ19kYXNoIChidWYpKQorLSAgICByZXR1cm4gMDsKKy0gIHJl dHVybiBiaW5hcnlfaG5vayAoYnVmKTsKKysgIHJldHVybiAocHJpbnRhYmxlX3N0cmluZyAoZG4p CisrCSAgJiYgX19uc19uYW1lX3B0b24gKGRuLCBidWYsIHNpemVvZiAoYnVmKSkgPj0gMAorKwkg ICYmIF9fcmVzX2JpbmFyeV9obm9rIChidWYpKTsKKyB9CisgdmVyc2lvbmVkX3N5bWJvbCAobGli YywgX19fcmVzX2hub2ssIHJlc19obm9rLCBHTElCQ18yXzM0KTsKKyB2ZXJzaW9uZWRfc3ltYm9s IChsaWJjLCBfX19yZXNfaG5vaywgX19saWJjX3Jlc19obm9rLCBHTElCQ19QUklWQVRFKTsKKy0t IAorMi4zOC4xCisKKworRnJvbSAyMGVjNDBhNTFkM2E4ZTk0ODdmNDBkYzkzNTJkMTU4ZGVmMjNl YThjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRmxvcmlhbiBXZWltZXIgPGZ3ZWlt ZXJAcmVkaGF0LmNvbT4KK0RhdGU6IFR1ZSwgMzAgQXVnIDIwMjIgMTA6MDI6NDkgKzAyMDAKK1N1 YmplY3Q6IHJlc29sdjogQWRkIHRoZSBfX25zX3NhbWViaW5hcnluYW1lIGZ1bmN0aW9uCisKK0R1 cmluZyBwYWNrZXQgcGFyc2luZywgb25seSB0aGUgYmluYXJ5IG5hbWUgaXMgYXZhaWxhYmxlLiAg SWYgdGhlIG5hbWUKK2VxdWFsaXR5IGNoZWNrIGlzIHBlcmZvcm1lZCBiZWZvcmUgY29udmVyc2lv biB0byB0ZXh0LCB3ZSBjYW4gc29tZXRpbWVzCitza2lwIHRoZSBsYXN0IHN0ZXAuCisKK1Jldmll d2VkLWJ5OiBTaWRkaGVzaCBQb3lhcmVrYXIgPHNpZGRoZXNoQHNvdXJjZXdhcmUub3JnPgorKGNo ZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgMzk0MDg1YTM0ZDI1YTUxNTEzMDE5YTRkYzQxMWFjZDM1 MjdmYmQzMykKKy0tLQorIGluY2x1ZGUvYXJwYS9uYW1lc2VyLmggICAgICAgICB8ICA2ICsrKysK KyByZXNvbHYvTWFrZWZpbGUgICAgICAgICAgICAgICAgfCAgNSArKysKKyByZXNvbHYvbnNfc2Ft ZWJpbmFyeW5hbWUuYyAgICAgfCA1NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKKyBy ZXNvbHYvdHN0LW5zX3NhbWViaW5hcnluYW1lLmMgfCA2MiArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrCisgNCBmaWxlcyBjaGFuZ2VkLCAxMjggaW5zZXJ0aW9ucygrKQorIGNyZWF0 ZSBtb2RlIDEwMDY0NCByZXNvbHYvbnNfc2FtZWJpbmFyeW5hbWUuYworIGNyZWF0ZSBtb2RlIDEw MDY0NCByZXNvbHYvdHN0LW5zX3NhbWViaW5hcnluYW1lLmMKKworZGlmZiAtLWdpdCBhL2luY2x1 ZGUvYXJwYS9uYW1lc2VyLmggYi9pbmNsdWRlL2FycGEvbmFtZXNlci5oCitpbmRleCA1M2YxZGJj N2MzLi5iYjFkZWRlMTg3IDEwMDY0NAorLS0tIGEvaW5jbHVkZS9hcnBhL25hbWVzZXIuaAorKysr IGIvaW5jbHVkZS9hcnBhL25hbWVzZXIuaAorQEAgLTU1LDYgKzU1LDEyIEBAIGludCBfX25zX25h bWVfbnRvcCAoY29uc3QgdW5zaWduZWQgY2hhciAqLCBjaGFyICosIHNpemVfdCkgX19USFJPVzsK KyBpbnQgX19uc19uYW1lX3VucGFjayAoY29uc3QgdW5zaWduZWQgY2hhciAqLCBjb25zdCB1bnNp Z25lZCBjaGFyICosCisgCQkgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICosIHVuc2lnbmVkIGNo YXIgKiwgc2l6ZV90KSBfX1RIUk9XOworIAorKy8qIExpa2UgbnNfc2FtZW5hbWUsIGJ1dCBmb3Ig dW5jb21wcmVzc2VkIGJpbmFyeSBuYW1lcy4gIFJldHVybiB0cnVlCisrICAgaWYgdGhlIHR3byBh cmd1bWVudHMgY29tcGFyZSBhcmUgZXF1YWwgYXMgY2FzZS1pbnNlbnNpdGl2ZSBkb21haW4KKysg ICBuYW1lcy4gICovCisrX0Jvb2wgX19uc19zYW1lYmluYXJ5bmFtZSAoY29uc3QgdW5zaWduZWQg Y2hhciAqLCBjb25zdCB1bnNpZ25lZCBjaGFyICopCisrICBhdHRyaWJ1dGVfaGlkZGVuOworKwor ICNkZWZpbmUgbnNfbXNnX2dldGZsYWcoaGFuZGxlLCBmbGFnKSBcCisgICAoKChoYW5kbGUpLl9m bGFncyAmIF9uc19mbGFnZGF0YVtmbGFnXS5tYXNrKSA+PiBfbnNfZmxhZ2RhdGFbZmxhZ10uc2hp ZnQpCisgCitkaWZmIC0tZ2l0IGEvcmVzb2x2L01ha2VmaWxlIGIvcmVzb2x2L01ha2VmaWxlCitp bmRleCAwMDM4YmI3MDI4Li5lYzYxYWQwN2JkIDEwMDY0NAorLS0tIGEvcmVzb2x2L01ha2VmaWxl CisrKysgYi9yZXNvbHYvTWFrZWZpbGUKK0BAIC00Niw2ICs0Niw3IEBAIHJvdXRpbmVzIDo9IFwK KyAgIG5zX25hbWVfc2tpcCBcCisgICBuc19uYW1lX3VuY29tcHJlc3MgXAorICAgbnNfbmFtZV91 bnBhY2sgXAorKyAgbnNfc2FtZWJpbmFyeW5hbWUgXAorICAgbnNfc2FtZW5hbWUgXAorICAgbnNh cF9hZGRyIFwKKyAgIG5zc19kbnNfZnVuY3Rpb25zIFwKK0BAIC0xMDYsNiArMTA3LDEwIEBAIHRl c3RzICs9IFwKKyB0ZXN0cy1pbnRlcm5hbCArPSB0c3QtcmVzb2x2LXR4bmlkLWNvbGxpc2lvbgor IHRlc3RzLXN0YXRpYyArPSB0c3QtcmVzb2x2LXR4bmlkLWNvbGxpc2lvbgorIAorKyMgTGlrZXdp c2UgZm9yIF9fbnNfc2FtZWJpbmFyeW5hbWUuCisrdGVzdHMtaW50ZXJuYWwgKz0gdHN0LW5zX3Nh bWViaW5hcnluYW1lCisrdGVzdHMtc3RhdGljICs9IHRzdC1uc19zYW1lYmluYXJ5bmFtZQorKwor ICMgVGhlc2UgdGVzdHMgbmVlZCBsaWJkbC4KKyBpZmVxICh5ZXMsJChidWlsZC1zaGFyZWQpKQor IHRlc3RzICs9IFwKK2RpZmYgLS1naXQgYS9yZXNvbHYvbnNfc2FtZWJpbmFyeW5hbWUuYyBiL3Jl c29sdi9uc19zYW1lYmluYXJ5bmFtZS5jCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAw MDAwMDAwMC4uOWE0N2Q4ZTk3YQorLS0tIC9kZXYvbnVsbAorKysrIGIvcmVzb2x2L25zX3NhbWVi aW5hcnluYW1lLmMKK0BAIC0wLDAgKzEsNTUgQEAKKysvKiBDb21wYXJlIHR3byBiaW5hcnkgZG9t YWluIG5hbWVzIGZvciBxdWFsaXR5LgorKyAgIENvcHlyaWdodCAoQykgMjAyMiBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KKysgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMg TGlicmFyeS4KKysKKysgICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKysgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisrICAgTGljZW5zZSBhcyBwdWJsaXNo ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisrICAgdmVyc2lvbiAy LjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u CisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisrICAgTGVzc2Vy IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysKKysgICBZb3Ugc2hv dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj CisrICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQor KyAgIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworKworKyNpbmNsdWRlIDxh cnBhL25hbWVzZXIuaD4KKysjaW5jbHVkZSA8c3RkYm9vbC5oPgorKworKy8qIENvbnZlcnQgQVND SUkgbGV0dGVycyB0byB1cHBlciBjYXNlLiAgKi8KKytzdGF0aWMgaW5saW5lIGludAorK2FzY2lp X3RvdXBwZXIgKHVuc2lnbmVkIGNoYXIgY2gpCisreworKyAgaWYgKGNoID49ICdhJyAmJiBjaCA8 PSAneicpCisrICAgIHJldHVybiBjaCAtICdhJyArICdBJzsKKysgIGVsc2UKKysgICAgcmV0dXJu IGNoOworK30KKysKKytib29sCisrX19uc19zYW1lYmluYXJ5bmFtZSAoY29uc3QgdW5zaWduZWQg Y2hhciAqYSwgY29uc3QgdW5zaWduZWQgY2hhciAqYikKKyt7CisrICB3aGlsZSAoKmEgIT0gMCAm JiAqYiAhPSAwKQorKyAgICB7CisrICAgICAgaWYgKCphICE9ICpiKQorKyAgICAgICAgLyogRGlm ZmVyZW50IGxhYmVsIGxlbmd0aC4gICovCisrICAgICAgICByZXR1cm4gZmFsc2U7CisrICAgICAg aW50IGxhYmVsbGVuID0gKmE7CisrICAgICAgKythOworKyAgICAgICsrYjsKKysgICAgICBmb3Ig KGludCBpID0gMDsgaSA8IGxhYmVsbGVuOyArK2kpCisrICAgICAgICB7CisrICAgICAgICAgIGlm ICgqYSAhPSAqYiAmJiBhc2NpaV90b3VwcGVyICgqYSkgIT0gYXNjaWlfdG91cHBlciAoKmIpKQor KyAgICAgICAgICAgIC8qIERpZmZlcmVudCBjaGFyYWN0ZXIgaW4gbGFiZWwuICAqLworKyAgICAg ICAgICAgIHJldHVybiBmYWxzZTsKKysgICAgICAgICAgKythOworKyAgICAgICAgICArK2I7Cisr ICAgICAgICB9CisrICAgIH0KKysKKysgIC8qIE1hdGNoIGlmIGJvdGggbmFtZXMgYXJlIGF0IHRo ZSByb290IGxhYmVsLiAgKi8KKysgIHJldHVybiAqYSA9PSAwICYmICpiID09IDA7CisrfQorZGlm ZiAtLWdpdCBhL3Jlc29sdi90c3QtbnNfc2FtZWJpbmFyeW5hbWUuYyBiL3Jlc29sdi90c3QtbnNf c2FtZWJpbmFyeW5hbWUuYworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAu LmIwNmFjNjEwYjQKKy0tLSAvZGV2L251bGwKKysrKyBiL3Jlc29sdi90c3QtbnNfc2FtZWJpbmFy eW5hbWUuYworQEAgLTAsMCArMSw2MiBAQAorKy8qIFRlc3QgdGhlIF9fbnNfc2FtZWJpbmFyeW5h bWUgZnVuY3Rpb24uCisrICAgQ29weXJpZ2h0IChDKSAyMDIyIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgorKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5Lgor KworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vcgorKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKysgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKysgICB2ZXJzaW9uIDIuMSBvZiB0aGUg TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysKKysgICBU aGUgR05VIEMgTGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKysgICBMZXNzZXIgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyAgIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKysgICBMaWNl bnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJhcnk7IGlmIG5vdCwgc2VlCisrICAgPGh0dHBz Oi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrI2luY2x1ZGUgPGFycGEvbmFtZXNl ci5oPgorKyNpbmNsdWRlIDxhcnJheV9sZW5ndGguaD4KKysjaW5jbHVkZSA8c3RkYm9vbC5oPgor KyNpbmNsdWRlIDxzdGRpby5oPgorKyNpbmNsdWRlIDxzdXBwb3J0L2NoZWNrLmg+CisrCisrLyog Rmlyc3QgY2hhcmFjdGVyIGRlbm90ZXMgdGhlIGNvbXBhcmlzb24gZ3JvdXA6IEFsbCBuYW1lcyB3 aXRoIHRoZQorKyAgIHNhbWUgZmlyc3QgY2hhcmFjdGVyIGFyZSBleHBlY3RlZCB0byBjb21wYXJl IGVxdWFsLiAgKi8KKytzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgY2FzZXNbXSA9CisrICB7Cisr ICAgICIgIiwKKysgICAgIjFcMDAxYSIsICIxXDAwMUEiLAorKyAgICAiMlwwMDJhYiIsICIyXDAw MmFCIiwgIjJcMDAyQWIiLCAiMlwwMDJBQiIsCisrICAgICIzXDAwMWFcMDAyYWIiLCAiM1wwMDFB XDAwMmFiIiwKKysgICAgIndcMDAzd3d3XDAwN2V4YW1wbGVcMDAzY29tIiwgIndcMDAzV3d3XDAw N0V4YW1wbGVcMDAzQ29tIiwKKysgICAgIndcMDAzV1dXXDAwN0VYQU1QTEVcMDAzQ09NIiwKKysg ICAgIldcMDAzV1dXIiwgIldcMDAzd3d3IiwKKysgIH07CisrCisrc3RhdGljIGludAorK2RvX3Rl c3QgKHZvaWQpCisreworKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcnJheV9sZW5ndGggKGNhc2Vz KTsgKytpKQorKyAgICBmb3IgKGludCBqID0gMDsgaiA8IGFycmF5X2xlbmd0aCAoY2FzZXMpOyAr K2opCisrICAgICAgeworKyAgICAgICAgdW5zaWduZWQgY2hhciAqYSA9ICh1bnNpZ25lZCBjaGFy ICopICZjYXNlc1tpXVsxXTsKKysgICAgICAgIHVuc2lnbmVkIGNoYXIgKmIgPSAodW5zaWduZWQg Y2hhciAqKSAmY2FzZXNbal1bMV07CisrICAgICAgICBib29sIGFjdHVhbCA9IF9fbnNfc2FtZWJp bmFyeW5hbWUgKGEsIGIpOworKyAgICAgICAgYm9vbCBleHBlY3RlZCA9IGNhc2VzW2ldWzBdID09 IGNhc2VzW2pdWzBdOworKyAgICAgICAgaWYgKGFjdHVhbCAhPSBleHBlY3RlZCkKKysgICAgICAg ICAgeworKyAgICAgICAgICAgIGNoYXIgYTFbTlNfTUFYRE5BTUVdOworKyAgICAgICAgICAgIFRF U1RfVkVSSUZZIChuc19uYW1lX250b3AgKGEsIGExLCBzaXplb2YgKGExKSkgPiAwKTsKKysgICAg ICAgICAgICBjaGFyIGIxW05TX01BWEROQU1FXTsKKysgICAgICAgICAgICBURVNUX1ZFUklGWSAo bnNfbmFtZV9udG9wIChiLCBiMSwgc2l6ZW9mIChiMSkpID4gMCk7CisrICAgICAgICAgICAgcHJp bnRmICgiZXJyb3I6IFwiJXNcIiBcIiVzXCI6IGV4cGVjdGVkICVzXG4iLAorKyAgICAgICAgICAg ICAgICAgICAgYTEsIGIxLCBleHBlY3RlZCA/ICJlcXVhbCIgOiAidW5xdWVhbCIpOworKyAgICAg ICAgICAgIHN1cHBvcnRfcmVjb3JkX2ZhaWx1cmUgKCk7CisrICAgICAgICAgIH0KKysgICAgICB9 CisrICByZXR1cm4gMDsKKyt9CisrCisrI2luY2x1ZGUgPHN1cHBvcnQvdGVzdC1kcml2ZXIuYz4K Ky0tIAorMi4zOC4xCisKKworRnJvbSBhZGI2OWY4ZmZlODNkYjVkNDc1ODY4YjQyOTk2YmM3MGRl OGNmZjc3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRmxvcmlhbiBXZWltZXIgPGZ3 ZWltZXJAcmVkaGF0LmNvbT4KK0RhdGU6IFR1ZSwgMzAgQXVnIDIwMjIgMTA6MDI6NDkgKzAyMDAK K1N1YmplY3Q6IHJlc29sdjogQWRkIGludGVybmFsIF9fbnNfbmFtZV9sZW5ndGhfdW5jb21wcmVz c2VkIGZ1bmN0aW9uCisKK1RoaXMgZnVuY3Rpb24gaXMgdXNlZnVsIGZvciBjaGVja2luZyB0aGF0 IHRoZSBxdWVzdGlvbiBuYW1lIGlzCit1bmNvbXByZXNzZWQgKGFzIGl0IHNob3VsZCBiZSkuCisK K1Jldmlld2VkLWJ5OiBTaWRkaGVzaCBQb3lhcmVrYXIgPHNpZGRoZXNoQHNvdXJjZXdhcmUub3Jn PgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgNzhiMWE0ZjBlNDkwNjRlNWRmYjY4NmM3Y2Q4 N2JkNGRmMjY0MGIyOSkKKy0tLQorIGluY2x1ZGUvYXJwYS9uYW1lc2VyLmggICAgICAgICAgICAg ICAgICAgfCAgIDggKysKKyByZXNvbHYvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICA1ICsKKyByZXNvbHYvbnNfbmFtZV9sZW5ndGhfdW5jb21wcmVzc2VkLmMgICAgIHwgIDcy ICsrKysrKysrKysrKworIHJlc29sdi90c3QtbnNfbmFtZV9sZW5ndGhfdW5jb21wcmVzc2VkLmMg fCAxMzUgKysrKysrKysrKysrKysrKysrKysrKysKKyA0IGZpbGVzIGNoYW5nZWQsIDIyMCBpbnNl cnRpb25zKCspCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHJlc29sdi9uc19uYW1lX2xlbmd0aF91bmNv bXByZXNzZWQuYworIGNyZWF0ZSBtb2RlIDEwMDY0NCByZXNvbHYvdHN0LW5zX25hbWVfbGVuZ3Ro X3VuY29tcHJlc3NlZC5jCisKK2RpZmYgLS1naXQgYS9pbmNsdWRlL2FycGEvbmFtZXNlci5oIGIv aW5jbHVkZS9hcnBhL25hbWVzZXIuaAoraW5kZXggYmIxZGVkZTE4Ny4uNmU0ODA4ZjAwZCAxMDA2 NDQKKy0tLSBhL2luY2x1ZGUvYXJwYS9uYW1lc2VyLmgKKysrKyBiL2luY2x1ZGUvYXJwYS9uYW1l c2VyLmgKK0BAIC05NSw1ICs5NSwxMyBAQCBsaWJjX2hpZGRlbl9wcm90byAoX19uc19uYW1lX3Vu cGFjaykKKyBleHRlcm4gX190eXBlb2YgKG5zX3NhbWVuYW1lKSBfX2xpYmNfbnNfc2FtZW5hbWU7 CisgbGliY19oaWRkZW5fcHJvdG8gKF9fbGliY19uc19zYW1lbmFtZSkKKyAKKysvKiBQYWNrZXQg cGFyc2VyIGhlbHBlciBmdW5jdGlvbnMuICAqLworKworKy8qIFZlcmlmeSB0aGF0IFAgcG9pbnRz IHRvIGFuIHVuY29tcHJlc3NlZCBkb21haW4gbmFtZSBpbiB3aXJlIGZvcm1hdC4KKysgICBPbiBz dWNjZXNzLCByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgZW5jb2RlZCBuYW1lLCBpbmNsdWRpbmcg dGhlCisrICAgdGVybWluYXRpbmcgbnVsbCBieXRlLiAgT24gZmFpbHVyZSwgcmV0dXJuIC0xIGFu ZCBzZXQgZXJybm8uICBFT00KKysgICBtdXN0IHBvaW50IG9uZSBwYXN0IHRoZSBsYXN0IGJ5dGUg aW4gdGhlIHBhY2tldC4gICovCisraW50IF9fbnNfbmFtZV9sZW5ndGhfdW5jb21wcmVzc2VkIChj b25zdCB1bnNpZ25lZCBjaGFyICpwLAorKwkJCQkgICBjb25zdCB1bnNpZ25lZCBjaGFyICplb20p IGF0dHJpYnV0ZV9oaWRkZW47CisgIyBlbmRpZiAvKiAhX0lTT01BQyAqLworICNlbmRpZgorZGlm ZiAtLWdpdCBhL3Jlc29sdi9NYWtlZmlsZSBiL3Jlc29sdi9NYWtlZmlsZQoraW5kZXggZWM2MWFk MDdiZC4uYmYyODgyNWY2MCAxMDA2NDQKKy0tLSBhL3Jlc29sdi9NYWtlZmlsZQorKysrIGIvcmVz b2x2L01ha2VmaWxlCitAQCAtNDAsNiArNDAsNyBAQCByb3V0aW5lcyA6PSBcCisgICBpbmV0X3B0 b24gXAorICAgbnNfbWFrZWNhbm9uIFwKKyAgIG5zX25hbWVfY29tcHJlc3MgXAorKyAgbnNfbmFt ZV9sZW5ndGhfdW5jb21wcmVzc2VkIFwKKyAgIG5zX25hbWVfbnRvcCBcCisgICBuc19uYW1lX3Bh Y2sgXAorICAgbnNfbmFtZV9wdG9uIFwKK0BAIC0xMTEsNiArMTEyLDEwIEBAIHRlc3RzLXN0YXRp YyArPSB0c3QtcmVzb2x2LXR4bmlkLWNvbGxpc2lvbgorIHRlc3RzLWludGVybmFsICs9IHRzdC1u c19zYW1lYmluYXJ5bmFtZQorIHRlc3RzLXN0YXRpYyArPSB0c3QtbnNfc2FtZWJpbmFyeW5hbWUK KyAKKysjIExpa2V3aXNlIGZvciBfX25zX25hbWVfbGVuZ3RoX3VuY29tcHJlc3NlZC4KKyt0ZXN0 cy1pbnRlcm5hbCArPSB0c3QtbnNfbmFtZV9sZW5ndGhfdW5jb21wcmVzc2VkCisrdGVzdHMtc3Rh dGljICs9IHRzdC1uc19uYW1lX2xlbmd0aF91bmNvbXByZXNzZWQKKysKKyAjIFRoZXNlIHRlc3Rz IG5lZWQgbGliZGwuCisgaWZlcSAoeWVzLCQoYnVpbGQtc2hhcmVkKSkKKyB0ZXN0cyArPSBcCitk aWZmIC0tZ2l0IGEvcmVzb2x2L25zX25hbWVfbGVuZ3RoX3VuY29tcHJlc3NlZC5jIGIvcmVzb2x2 L25zX25hbWVfbGVuZ3RoX3VuY29tcHJlc3NlZC5jCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5k ZXggMDAwMDAwMDAwMC4uNTEyOTZiNDdlZgorLS0tIC9kZXYvbnVsbAorKysrIGIvcmVzb2x2L25z X25hbWVfbGVuZ3RoX3VuY29tcHJlc3NlZC5jCitAQCAtMCwwICsxLDcyIEBACisrLyogU2tpcCBv dmVyIGFuIHVuY29tcHJlc3NlZCBuYW1lIGluIHdpcmUgZm9ybWF0LgorKyAgIENvcHlyaWdodCAo QykgMjAyMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysgICBUaGlzIGZpbGUgaXMg cGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKysKKysgICBUaGUgR05VIEMgTGlicmFyeSBpcyBm cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKysgICBtb2RpZnkg aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisrICAg TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0 aGVyCisrICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg YW55IGxhdGVyIHZlcnNpb24uCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgICBidXQgV0lUSE9VVCBB TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAgIE1F UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0 aGUgR05VCisrICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KKysKKysgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVz c2VyIEdlbmVyYWwgUHVibGljCisrICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJy YXJ5OyBpZiBub3QsIHNlZQorKyAgIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAq LworKworKyNpbmNsdWRlIDxhcnBhL25hbWVzZXIuaD4KKysjaW5jbHVkZSA8ZXJybm8uaD4KKysj aW5jbHVkZSA8c3RkYm9vbC5oPgorKworK2ludAorK19fbnNfbmFtZV9sZW5ndGhfdW5jb21wcmVz c2VkIChjb25zdCB1bnNpZ25lZCBjaGFyICpwLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqZW9tKQorK3sKKysgIGNvbnN0IHVuc2lnbmVkIGNo YXIgKnN0YXJ0ID0gcDsKKysKKysgIHdoaWxlICh0cnVlKQorKyAgICB7CisrICAgICAgaWYgKHAg PT0gZW9tKQorKyAgICAgICAgeworKyAgICAgICAgICAvKiBUcnVuY2F0ZWQgcGFja2V0OiBubyBy b29tIGZvciBsYWJlbCBsZW5ndGguICAqLworKyAgICAgICAgICBfX3NldF9lcnJubyAoRU1TR1NJ WkUpOworKyAgICAgICAgICByZXR1cm4gLTE7CisrICAgICAgICB9CisrCisrICAgICAgdW5zaWdu ZWQgY2hhciBiID0gKnA7CisrICAgICAgKytwOworKyAgICAgIGlmIChiID09IDApCisrICAgICAg ICB7CisrICAgICAgICAgIC8qIFJvb3QgbGFiZWwuICAqLworKyAgICAgICAgICBzaXplX3QgbGVu Z3RoID0gcCAtIHN0YXJ0OworKyAgICAgICAgICBpZiAobGVuZ3RoID4gTlNfTUFYQ0ROQU1FKQor KyAgICAgICAgICAgIHsKKysgICAgICAgICAgICAgIC8qIERvbWFpbiBuYW1lIHRvbyBsb25nLiAg Ki8KKysgICAgICAgICAgICAgIF9fc2V0X2Vycm5vIChFTVNHU0laRSk7CisrICAgICAgICAgICAg ICByZXR1cm4gLTE7CisrICAgICAgICAgICAgfQorKyAgICAgICAgICByZXR1cm4gbGVuZ3RoOwor KyAgICAgICAgfQorKworKyAgICAgIGlmIChiIDw9IDYzKQorKyAgICAgICAgeworKyAgICAgICAg ICAvKiBSZWd1bGFyIGxhYmVsLiAgKi8KKysgICAgICAgICAgaWYgKGIgPD0gZW9tIC0gcCkKKysg ICAgICAgICAgICBwICs9IGI7CisrICAgICAgICAgIGVsc2UKKysgICAgICAgICAgICB7CisrICAg ICAgICAgICAgICAvKiBUcnVuY2F0ZWQgcGFja2V0OiBsYWJlbCBpbmNvbXBsZXRlLiAgKi8KKysg ICAgICAgICAgICAgIF9fc2V0X2Vycm5vIChFTVNHU0laRSk7CisrICAgICAgICAgICAgICByZXR1 cm4gLTE7CisrICAgICAgICAgICAgfQorKyAgICAgICAgfQorKyAgICAgIGVsc2UKKysgICAgICAg IHsKKysgICAgICAgICAgLyogQ29tcHJlc3Npb24gcmVmZXJlbmNlIG9yIGNvcnJ1cHRlZCBsYWJl bCBsZW5ndGguICAqLworKyAgICAgICAgICBfX3NldF9lcnJubyAoRU1TR1NJWkUpOworKyAgICAg ICAgICByZXR1cm4gLTE7CisrICAgICAgICB9CisrICAgIH0KKyt9CitkaWZmIC0tZ2l0IGEvcmVz b2x2L3RzdC1uc19uYW1lX2xlbmd0aF91bmNvbXByZXNzZWQuYyBiL3Jlc29sdi90c3QtbnNfbmFt ZV9sZW5ndGhfdW5jb21wcmVzc2VkLmMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAw MDAwMDAwLi5jNGEyOTA0ZGI3CistLS0gL2Rldi9udWxsCisrKysgYi9yZXNvbHYvdHN0LW5zX25h bWVfbGVuZ3RoX3VuY29tcHJlc3NlZC5jCitAQCAtMCwwICsxLDEzNSBAQAorKy8qIFRlc3QgX19u c19uYW1lX2xlbmd0aF91bmNvbXByZXNzZWQuCisrICAgQ29weXJpZ2h0IChDKSAyMDIyIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBH TlUgQyBMaWJyYXJ5LgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7 IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKysgICBMaWNlbnNlIGFzIHB1 Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKysgICB2ZXJz aW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy c2lvbi4KKysKKysgICBUaGUgR05VIEMgTGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKysgICBM ZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyAgIFlv dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ dWJsaWMKKysgICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJhcnk7IGlmIG5vdCwg c2VlCisrICAgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrI2luY2x1 ZGUgPGFycGEvbmFtZXNlci5oPgorKyNpbmNsdWRlIDxhcnJheV9sZW5ndGguaD4KKysjaW5jbHVk ZSA8ZXJybm8uaD4KKysjaW5jbHVkZSA8c3RkaW8uaD4KKysjaW5jbHVkZSA8c3VwcG9ydC9jaGVj ay5oPgorKyNpbmNsdWRlIDxzdXBwb3J0L25leHRfdG9fZmF1bHQuaD4KKysKKysvKiBSZWZlcmVu Y2UgaW1wbGVtZW50YXRpb24gYmFzZWQgb24gb3RoZXIgYnVpbGRpbmcgYmxvY2tzLiAgKi8KKytz dGF0aWMgaW50CisrcmVmZXJlbmNlX2xlbmd0aCAoY29uc3QgdW5zaWduZWQgY2hhciAqcCwgY29u c3QgdW5zaWduZWQgY2hhciAqZW9tKQorK3sKKysgIHVuc2lnbmVkIGNoYXIgYnVmW05TX01BWENE TkFNRV07CisrICBpbnQgbiA9IF9fbnNfbmFtZV91bnBhY2sgKHAsIGVvbSwgcCwgYnVmLCBzaXpl b2YgKGJ1ZikpOworKyAgaWYgKG4gPCAwKQorKyAgICByZXR1cm4gbjsKKysgIGNvbnN0IHVuc2ln bmVkIGNoYXIgKnEgPSBidWY7CisrICBpZiAoX19uc19uYW1lX3NraXAgKCZxLCBhcnJheV9lbmQg KGJ1ZikpIDwgMCkKKysgICAgcmV0dXJuIC0xOworKyAgaWYgKHEgLSBidWYgIT0gbikKKysgICAg LyogQ29tcHJlc3NlZCBuYW1lLiAgKi8KKysgICAgcmV0dXJuIC0xOworKyAgcmV0dXJuIG47Cisr fQorKworK3N0YXRpYyBpbnQKKytkb190ZXN0ICh2b2lkKQorK3sKKysgIHsKKysgICAgdW5zaWdu ZWQgY2hhciBidWZbXSA9IHsgMywgJ3cnLCAndycsICd3JywgMCwgMCwgMCB9OworKyAgICBURVNU X0NPTVBBUkUgKHJlZmVyZW5jZV9sZW5ndGggKGJ1ZiwgYXJyYXlfZW5kIChidWYpKSwgc2l6ZW9m IChidWYpIC0gMik7CisrICAgIFRFU1RfQ09NUEFSRSAoX19uc19uYW1lX2xlbmd0aF91bmNvbXBy ZXNzZWQgKGJ1ZiwgYXJyYXlfZW5kIChidWYpKSwKKysgICAgICAgICAgICAgICAgICBzaXplb2Yg KGJ1ZikgLSAyKTsKKysgICAgVEVTVF9DT01QQVJFIChyZWZlcmVuY2VfbGVuZ3RoIChhcnJheV9l bmQgKGJ1ZikgLSAxLCBhcnJheV9lbmQgKGJ1ZikpLCAxKTsKKysgICAgVEVTVF9DT01QQVJFIChf X25zX25hbWVfbGVuZ3RoX3VuY29tcHJlc3NlZCAoYXJyYXlfZW5kIChidWYpIC0gMSwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXlfZW5kIChi dWYpKSwgMSk7CisrICAgIGJ1Zls0XSAgPSAweGMwOyAgICAgICAgICAgICAvKiBGb3J3YXJkIGNv bXByZXNzaW9uIHJlZmVyZW5jZS4gICovCisrICAgIGJ1Zls1XSAgPSAweDA2OworKyAgICBURVNU X0NPTVBBUkUgKHJlZmVyZW5jZV9sZW5ndGggKGJ1ZiwgYXJyYXlfZW5kIChidWYpKSwgLTEpOwor KyAgICBURVNUX0NPTVBBUkUgKF9fbnNfbmFtZV9sZW5ndGhfdW5jb21wcmVzc2VkIChidWYsIGFy cmF5X2VuZCAoYnVmKSksIC0xKTsKKysgIH0KKysKKysgIHN0cnVjdCBzdXBwb3J0X25leHRfdG9f ZmF1bHQgbnRmID0gc3VwcG9ydF9uZXh0X3RvX2ZhdWx0X2FsbG9jYXRlICgzMDApOworKworKyAg LyogQnVmZmVyIHJlZ2lvbiB3aXRoIGFsbCBwb3NzaWJsZSBieXRlcyBhdCBzdGFydCBhbmQgZW5k LiAgKi8KKysgIGZvciAoaW50IGxlbmd0aCA9IDE7IGxlbmd0aCA8PSAzMDA7ICsrbGVuZ3RoKQor KyAgICB7CisrICAgICAgdW5zaWduZWQgY2hhciAqZW5kID0gKHVuc2lnbmVkIGNoYXIgKikgbnRm LmJ1ZmZlciArIG50Zi5sZW5ndGg7CisrICAgICAgdW5zaWduZWQgY2hhciAqc3RhcnQgPSBlbmQg LSBsZW5ndGg7CisrICAgICAgbWVtc2V0IChzdGFydCwgJ1gnLCBsZW5ndGgpOworKyAgICAgIGZv ciAoaW50IGZpcnN0ID0gMDsgZmlyc3QgPD0gMjU1OyArK2ZpcnN0KQorKyAgICAgICAgeworKyAg ICAgICAgICAqc3RhcnQgPSBmaXJzdDsKKysgICAgICAgICAgZm9yIChpbnQgbGFzdCA9IDA7IGxh c3QgPD0gMjU1OyArK2xhc3QpCisrICAgICAgICAgICAgeworKyAgICAgICAgICAgICAgc3RhcnRb bGVuZ3RoIC0gMV0gPSBsYXN0OworKyAgICAgICAgICAgICAgVEVTVF9DT01QQVJFIChyZWZlcmVu Y2VfbGVuZ3RoIChzdGFydCwgZW5kKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19u c19uYW1lX2xlbmd0aF91bmNvbXByZXNzZWQgKHN0YXJ0LCBlbmQpKTsKKysgICAgICAgICAgICB9 CisrICAgICAgICB9CisrICAgIH0KKysKKysgIC8qIFBvb3IgbWFuJ3MgZnV6eiB0ZXN0aW5nOiBw YXRjaCB0d28gYnl0ZXMuICAgKi8KKysgIHsKKysgICAgdW5zaWduZWQgY2hhciByZWZbXSA9Cisr ICAgICAgeworKyAgICAgICAgNywgJ2UnLCAneCcsICdhJywgJ20nLCAncCcsICdsJywgJ2UnLCAz LCAnbicsICdlJywgJ3QnLCAwLCAwLCAwCisrICAgICAgfTsKKysgICAgVEVTVF9DT01QQVJFIChy ZWZlcmVuY2VfbGVuZ3RoIChyZWYsIGFycmF5X2VuZCAocmVmKSksIDEzKTsKKysgICAgVEVTVF9D T01QQVJFIChfX25zX25hbWVfbGVuZ3RoX3VuY29tcHJlc3NlZCAocmVmLCBhcnJheV9lbmQgKHJl ZikpLCAxMyk7CisrCisrICAgIGludCBnb29kID0gMDsKKysgICAgaW50IGJhZCA9IDA7CisrICAg IGZvciAoaW50IGxlbmd0aCA9IDE7IGxlbmd0aCA8PSBzaXplb2YgKHJlZik7ICsrbGVuZ3RoKQor KyAgICAgIHsKKysgICAgICAgIHVuc2lnbmVkIGNoYXIgKmVuZCA9ICh1bnNpZ25lZCBjaGFyICop IG50Zi5idWZmZXIgKyBudGYubGVuZ3RoOworKyAgICAgICAgdW5zaWduZWQgY2hhciAqc3RhcnQg PSBlbmQgLSBsZW5ndGg7CisrICAgICAgICBtZW1jcHkgKHN0YXJ0LCByZWYsIGxlbmd0aCk7Cisr CisrICAgICAgICBmb3IgKGludCBwYXRjaDFfcG9zID0gMDsgcGF0Y2gxX3BvcyA8IGxlbmd0aDsg KytwYXRjaDFfcG9zKQorKyAgICAgICAgICB7CisrICAgICAgICAgICAgZm9yIChpbnQgcGF0Y2gx X3ZhbHVlID0gMDsgcGF0Y2gxX3ZhbHVlIDw9IDI1NTsgKytwYXRjaDFfdmFsdWUpCisrICAgICAg ICAgICAgICB7CisrICAgICAgICAgICAgICAgIHN0YXJ0W3BhdGNoMV9wb3NdID0gcGF0Y2gxX3Zh bHVlOworKyAgICAgICAgICAgICAgICBmb3IgKGludCBwYXRjaDJfcG9zID0gMDsgcGF0Y2gyX3Bv cyA8IGxlbmd0aDsgKytwYXRjaDJfcG9zKQorKyAgICAgICAgICAgICAgICAgIHsKKysgICAgICAg ICAgICAgICAgICAgIGZvciAoaW50IHBhdGNoMl92YWx1ZSA9IDA7IHBhdGNoMl92YWx1ZSA8PSAy NTU7CisrICAgICAgICAgICAgICAgICAgICAgICAgICsrcGF0Y2gyX3ZhbHVlKQorKyAgICAgICAg ICAgICAgICAgICAgICB7CisrICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRbcGF0Y2gyX3Bv c10gPSBwYXRjaDJfdmFsdWU7CisrICAgICAgICAgICAgICAgICAgICAgICAgaW50IGV4cGVjdGVk ID0gcmVmZXJlbmNlX2xlbmd0aCAoc3RhcnQsIGVuZCk7CisrICAgICAgICAgICAgICAgICAgICAg ICAgZXJybm8gPSBFSU5WQUw7CisrICAgICAgICAgICAgICAgICAgICAgICAgaW50IGFjdHVhbAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgPSAgX19uc19uYW1lX2xlbmd0aF91bmNvbXByZXNz ZWQgKHN0YXJ0LCBlbmQpOworKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhY3R1YWwgPiAw KQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgKytnb29kOworKyAgICAgICAgICAgICAgICAg ICAgICAgIGVsc2UKKysgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgVEVTVF9DT01QQVJFIChlcnJubywgRU1TR1NJWkUpOworKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICArK2JhZDsKKysgICAgICAgICAgICAgICAgICAgICAgICAgIH0K KysgICAgICAgICAgICAgICAgICAgICAgICBURVNUX0NPTVBBUkUgKGV4cGVjdGVkLCBhY3R1YWwp OworKyAgICAgICAgICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgICAgICAgICBzdGFydFtw YXRjaDJfcG9zXSA9IHJlZltwYXRjaDJfcG9zXTsKKysgICAgICAgICAgICAgICAgICB9CisrICAg ICAgICAgICAgICB9CisrICAgICAgICAgICAgc3RhcnRbcGF0Y2gxX3Bvc10gPSByZWZbcGF0Y2gx X3Bvc107CisrICAgICAgICAgIH0KKysgICAgICB9CisrICAgIHByaW50ZiAoImluZm86IHBhdGNo ZWQgaW5wdXRzIHdpdGggc3VjY2VzczogJWRcbiIsIGdvb2QpOworKyAgICBwcmludGYgKCJpbmZv OiBwYXRjaGVkIGlucHV0cyB3aXRoIGZhaWx1cmU6ICVkXG4iLCBiYWQpOworKyAgfQorKworKyAg c3VwcG9ydF9uZXh0X3RvX2ZhdWx0X2ZyZWUgKCZudGYpOworKyAgcmV0dXJuIDA7CisrfQorKwor KyNpbmNsdWRlIDxzdXBwb3J0L3Rlc3QtZHJpdmVyLmM+CistLSAKKzIuMzguMQorCisKK0Zyb20g ZjBlOTY1NzA2NzI0MGI4YjEwNWM2ZDU4ZDVkYTlkYzkyNmYyZjBlZCBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKK0Zyb206IEZsb3JpYW4gV2VpbWVyIDxmd2VpbWVyQHJlZGhhdC5jb20+CitEYXRl OiBUdWUsIDMwIEF1ZyAyMDIyIDEwOjAyOjQ5ICswMjAwCitTdWJqZWN0OiByZXNvbHY6IEFkZCBE TlMgcGFja2V0IHBhcnNpbmcgaGVscGVycyBnZWFyZWQgdG93YXJkcyB3aXJlIGZvcm1hdAorCitU aGUgcHVibGljIHBhcnNlciBmdW5jdGlvbnMgYXJvdW5kIHRoZSBuc19yciByZWNvcmQgdHlwZSBw cm9kdWNlCit0ZXh0dWFsIGRvbWFpbiBuYW1lcywgYnV0IHVzdWFsbHksIHRoaXMgaXMgbm90IHdo YXQgd2UgbmVlZCB3aGlsZQorcGFyc2luZyBETlMgcGFja2V0cyB3aXRoaW4gZ2xpYmMuICBUaGlz IGNvbW1pdCBhZGRzIHR3byBuZXcgaGVscGVyCitmdW5jdGlvbnMsIF9fbnNfcnJfY3Vyc29yX2lu aXQgYW5kIF9fbnNfcnJfY3Vyc29yX25leHQsIGZvciB3cml0aW5nCitwYWNrZXQgcGFyc2Vycywg YW5kIHN0cnVjdCBuc19ycl9jdXJzb3IsIHN0cnVjdCBuc19ycl93aXJlIGFzCitzdXBwb3J0aW5n IHR5cGVzLgorCitJbiB0aGVvcnksIGl0IGlzIHBvc3NpYmxlIHRvIGF2b2lkIGNvcHlpbmcgdGhl IG93bmVyIG5hbWUKK2ludG8gdGhlIHJuYW1lIGZpZWxkIGluIF9fbnNfcnJfY3Vyc29yX25leHQs IGJ1dCB0aGlzIHdvdWxkIG5lZWQKK21vcmUgZnVuY3Rpb25zIHRoYXQgd29yayBvbiBjb21wcmVz c2VkIG5hbWVzLgorCitFdmVudHVhbGx5LCBfX3Jlc19jb250ZXh0X3NlbmQgY291bGQgYmUgZW5o YW5jZWQgdG8gcHJlc2VydmUgdGhlCityZXN1bHQgb2YgdGhlIHBhY2tldCBwYXJzaW5nIHRoYXQg aXMgbmVjZXNzYXJ5IGZvciBtYXRjaGluZyB0aGUKK2luY29taW5nIFVEUCBwYWNrZXRzLCBzbyB0 aGF0IHRoaXMgd29ya3MgZG9lcyBub3QgaGF2ZSB0byBiZSBkb25lCit0d2ljZS4KKworUmV2aWV3 ZWQtYnk6IFNpZGRoZXNoIFBveWFyZWthciA8c2lkZGhlc2hAc291cmNld2FyZS5vcmc+CisoY2hl cnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA4NTdjODkwZDliNDJjNTBjOGE5NGI3NmQ0N2Q0YTYxYWI2 ZDJmNDljKQorLS0tCisgaW5jbHVkZS9hcnBhL25hbWVzZXIuaCAgICAgfCAgOTIgKysrKysrKysr KysrKysrCisgcmVzb2x2L01ha2VmaWxlICAgICAgICAgICAgfCAgIDYgKworIHJlc29sdi9uc19y cl9jdXJzb3JfaW5pdC5jIHwgIDYyICsrKysrKysrKysKKyByZXNvbHYvbnNfcnJfY3Vyc29yX25l eHQuYyB8ICA3NCArKysrKysrKysrKysKKyByZXNvbHYvdHN0LW5zX3JyX2N1cnNvci5jICB8IDIy NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCisgNSBmaWxlcyBjaGFuZ2Vk LCA0NjEgaW5zZXJ0aW9ucygrKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCByZXNvbHYvbnNfcnJfY3Vy c29yX2luaXQuYworIGNyZWF0ZSBtb2RlIDEwMDY0NCByZXNvbHYvbnNfcnJfY3Vyc29yX25leHQu YworIGNyZWF0ZSBtb2RlIDEwMDY0NCByZXNvbHYvdHN0LW5zX3JyX2N1cnNvci5jCisKK2RpZmYg LS1naXQgYS9pbmNsdWRlL2FycGEvbmFtZXNlci5oIGIvaW5jbHVkZS9hcnBhL25hbWVzZXIuaAor aW5kZXggNmU0ODA4ZjAwZC4uYzI3ZTc4ODZiNyAxMDA2NDQKKy0tLSBhL2luY2x1ZGUvYXJwYS9u YW1lc2VyLmgKKysrKyBiL2luY2x1ZGUvYXJwYS9uYW1lc2VyLmgKK0BAIC0xMDMsNSArMTAzLDk3 IEBAIGxpYmNfaGlkZGVuX3Byb3RvIChfX2xpYmNfbnNfc2FtZW5hbWUpCisgICAgbXVzdCBwb2lu dCBvbmUgcGFzdCB0aGUgbGFzdCBieXRlIGluIHRoZSBwYWNrZXQuICAqLworIGludCBfX25zX25h bWVfbGVuZ3RoX3VuY29tcHJlc3NlZCAoY29uc3QgdW5zaWduZWQgY2hhciAqcCwKKyAJCQkJICAg Y29uc3QgdW5zaWduZWQgY2hhciAqZW9tKSBhdHRyaWJ1dGVfaGlkZGVuOworKworKy8qIEl0ZXJh dG9yIG92ZXIgdGhlIHJlc291cmNlIHJlY29yZHMgaW4gYSBETlMgcGFja2V0LiAgKi8KKytzdHJ1 Y3QgbnNfcnJfY3Vyc29yCisreworKyAgLyogVGhlc2UgbWVtYmVycyBhcmUgbm90IGNoYW5nZWQg YWZ0ZXIgaW5pdGlhbGl6YXRpb24uICAqLworKyAgY29uc3QgdW5zaWduZWQgY2hhciAqYmVnaW47 CS8qIEZpcnN0IGJ5dGUgb2YgcGFja2V0LiAgKi8KKysgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmVu ZDsJLyogT25lIHBhc3QgdGhlIGxhc3QgYnl0ZSBvZiB0aGUgcGFja2V0LiAgKi8KKysgIGNvbnN0 IHVuc2lnbmVkIGNoYXIgKmZpcnN0X3JyOyAvKiBGaXJzdCByZXNvdXJjZSByZWNvcmQgKG9yIHBh Y2tldCBlbmQpLiAgKi8KKysKKysgIC8qIEFkdmFuY2VkIHRvd2FyZHMgdGhlIGVuZCB3aGlsZSBy ZWFkaW5nIHRoZSBwYWNrZXQuICAqLworKyAgY29uc3QgdW5zaWduZWQgY2hhciAqY3VycmVudDsK Kyt9OworKworKy8qIFJldHVybnMgdGhlIFJDT0RFIGZpZWxkIGZyb20gdGhlIEROUyBoZWFkZXIu ICAqLworK3N0YXRpYyBpbmxpbmUgaW50CisrbnNfcnJfY3Vyc29yX3Jjb2RlIChjb25zdCBzdHJ1 Y3QgbnNfcnJfY3Vyc29yICpjKQorK3sKKysgIHJldHVybiBjLT5iZWdpblszXSAmIDB4MGY7CS8q IExvd2VyIDQgYml0cyBhdCBvZmZzZXQgMy4gICovCisrfQorKworKy8qIFJldHVybnMgdGhlIGxl bmd0aCBvZiB0aGUgYW5zd2VyIHNlY3Rpb24gYWNjb3JkaW5nIHRvIHRoZSBETlMgaGVhZGVyLiAg Ki8KKytzdGF0aWMgaW5saW5lIGludAorK25zX3JyX2N1cnNvcl9hbmNvdW50IChjb25zdCBzdHJ1 Y3QgbnNfcnJfY3Vyc29yICpjKQorK3sKKysgIHJldHVybiBjLT5iZWdpbls2XSAqIDI1NiArIGMt PmJlZ2luWzddOyAvKiAxNiBiaXRzIGF0IG9mZnNldCA2LiAgKi8KKyt9CisrCisrLyogUmV0dXJu cyB0aGUgbGVuZ3RoIG9mIHRoZSBhdXRob3JpdHkgKG5hbWUgc2VydmVyKSBzZWN0aW9uIGFjY29y ZGluZworKyAgIHRvIHRoZSBETlMgaGVhZGVyLiAgKi8KKytzdGF0aWMgaW5saW5lIGludAorK25z X3JyX2N1cnNvcl9uc2NvdW50IChjb25zdCBzdHJ1Y3QgbnNfcnJfY3Vyc29yICpjKQorK3sKKysg IHJldHVybiBjLT5iZWdpbls4XSAqIDI1NiArIGMtPmJlZ2luWzldOyAvKiAxNiBiaXRzIGF0IG9m ZnNldCA4LiAgKi8KKyt9CisrCisrLyogUmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSBhZGRpdGlv bmFsIGRhdGEgc2VjdGlvbiBhY2NvcmRpbmcgdG8gdGhlCisrICAgRE5TIGhlYWRlci4gICovCisr c3RhdGljIGlubGluZSBpbnQKKytuc19ycl9jdXJzb3JfYWRjb3VudCAoY29uc3Qgc3RydWN0IG5z X3JyX2N1cnNvciAqYykKKyt7CisrICByZXR1cm4gYy0+YmVnaW5bMTBdICogMjU2ICsgYy0+YmVn aW5bMTFdOyAvKiAxNiBiaXRzIGF0IG9mZnNldCAxMC4gICovCisrfQorKworKy8qIFJldHVybnMg YSBwb2ludGVyIHRvIHRoZSB1bmNvbXByZXNzZWQgcXVlc3Rpb24gbmFtZSBpbiB3aXJlCisrICAg Zm9ybWF0LiAgKi8KKytzdGF0aWMgaW5saW5lIGNvbnN0IHVuc2lnbmVkIGNoYXIgKgorK25zX3Jy X2N1cnNvcl9xbmFtZSAoY29uc3Qgc3RydWN0IG5zX3JyX2N1cnNvciAqYykKKyt7CisrICByZXR1 cm4gYy0+YmVnaW4gKyAxMjsJCS8qIFFOQU1FIHN0YXJ0cyByaWdodCBhZnRlciB0aGUgaGVhZGVy LiAgKi8KKyt9CisrCisrLyogUmV0dXJucyB0aGUgcXVlc3Rpb24gdHlwZSBvZiB0aGUgZmlyc3Qg YW5kIG9ubHkgcXVlc3Rpb24uICAqLworK3N0YXRpYyBpbmxpbmUgY29uc3QgaW50CisrbnNfcnJf Y3Vyc29yX3F0eXBlIChjb25zdCBzdHJ1Y3QgbnNfcnJfY3Vyc29yICpjKQorK3sKKysgIC8qIDE2 IGJpdHMgNCBieXRlcyBiYWNrIGZyb20gdGhlIGZpcnN0IFJSIGhlYWRlciBzdGFydC4gICovCisr ICByZXR1cm4gYy0+Zmlyc3RfcnJbLTRdICogMjU2ICsgYy0+Zmlyc3RfcnJbLTNdOworK30KKysK KysvKiBSZXR1cm5zIHRoZSBjbHNzIG9mIHRoZSBmaXJzdCBhbmQgb25seSBxdWVzdGlvbiAodXNh bGx5IENfSU4pLiAgKi8KKytzdGF0aWMgaW5saW5lIGNvbnN0IGludAorK25zX3JyX2N1cnNvcl9x Y2xhc3MgKGNvbnN0IHN0cnVjdCBuc19ycl9jdXJzb3IgKmMpCisreworKyAgLyogMTYgYml0cyAy IGJ5dGVzIGJhY2sgZnJvbSB0aGUgZmlyc3QgUlIgaGVhZGVyIHN0YXJ0LiAgKi8KKysgIHJldHVy biBjLT5maXJzdF9yclstMl0gKiAyNTYgKyBjLT5maXJzdF9yclstMV07CisrfQorKworKy8qIElu aXRpYWxpemVzICpDIHRvIGNvdmVyIHRoZSBwYWNrZXQgW0JVRiwgQlVGK0xFTikuICBSZXR1cm5z IGZhbHNlCisrICAgaWYgTEVOIGlzIGxlc3MgdGhhbiBzaXplb2YgKCpIRCksIGlmIHRoZSBwYWNr ZXQgZG9lcyBub3QgY29udGFpbiBhCisrICAgZnVsbCAodW5jb21wcmVzc2VkKSBxdWVzdGlvbiwg b3IgaWYgdGhlIHF1ZXN0aW9uIGNvdW50IGlzIG5vdCAxLiAgKi8KKytfQm9vbCBfX25zX3JyX2N1 cnNvcl9pbml0IChzdHJ1Y3QgbnNfcnJfY3Vyc29yICpjLAorKwkJCSAgIGNvbnN0IHVuc2lnbmVk IGNoYXIgKmJ1Ziwgc2l6ZV90IGxlbikKKysgIGF0dHJpYnV0ZV9oaWRkZW47CisrCisrLyogTGlr ZSBuc19yciwgYnV0IHRoZSByZWNvcmQgb3duZXIgbmFtZSBpcyBub3QgZGVjb2RlZCBpbnRvIHRl eHQgZm9ybWF0LiAgKi8KKytzdHJ1Y3QgbnNfcnJfd2lyZQorK3sKKysgIHVuc2lnbmVkIGNoYXIg cm5hbWVbTlNfTUFYQ0ROQU1FXTsgLyogT3duZXIgbmFtZSBvZiB0aGUgcmVjb3JkLiAgKi8KKysg IHVpbnQxNl90IHJ0eXBlOwkJLyogUmVzb3VyY2UgcmVjb3JkIHR5cGUgKFRfKikuICAqLworKyAg dWludDE2X3QgcmNsYXNzOwkJLyogUmVzb3VyY2UgcmVjb3JkIGNsYXNzIChDXyopLiAgKi8KKysg IHVpbnQzMl90IHR0bDsJCQkvKiBUaW1lLXRvLWxpdmUgZmllbGQuICAqLworKyAgY29uc3QgdW5z aWduZWQgY2hhciAqcmRhdGE7CS8qIFN0YXJ0IG9mIHJlc291cmNlIHJlY29yZCBkYXRhLiAgKi8K KysgIHVpbnQxNl90IHJkbGVuZ3RoOwkJLyogTGVuZ3RoIG9mIHRoZSBkYXRhIGF0IHJkYXRhLCBp biBieXRlcy4gICovCisrfTsKKysKKysvKiBBdHRlbXB0cyB0byBwYXJzZSB0aGUgcmVjb3JkIGF0 IEMgaW50byAqUlIuICBPbiBzdWNjZXNzLCByZXR1cm4KKysgICB0cnVlLCBhbmQgQyBpcyBhZHZh bmNlZCBwYXN0IHRoZSByZWNvcmQsIGFuZCBSUi0+cmRhdGEgcG9pbnRzIHRvCisrICAgdGhlIHJl Y29yZCBkYXRhLiAgT24gZmFpbHVyZSwgZXJybm8gaXMgc2V0IHRvIEVNU0dTSVpFLCBhbmQgZmFs c2UKKysgICBpcyByZXR1cm5lZC4gICovCisrX0Jvb2wgX19uc19ycl9jdXJzb3JfbmV4dCAoc3Ry dWN0IG5zX3JyX2N1cnNvciAqYywgc3RydWN0IG5zX3JyX3dpcmUgKnJyKQorKyAgYXR0cmlidXRl X2hpZGRlbjsKKysKKyAjIGVuZGlmIC8qICFfSVNPTUFDICovCisgI2VuZGlmCitkaWZmIC0tZ2l0 IGEvcmVzb2x2L01ha2VmaWxlIGIvcmVzb2x2L01ha2VmaWxlCitpbmRleCBiZjI4ODI1ZjYwLi4w MThiMTgwOGQ2IDEwMDY0NAorLS0tIGEvcmVzb2x2L01ha2VmaWxlCisrKysgYi9yZXNvbHYvTWFr ZWZpbGUKK0BAIC00Nyw2ICs0Nyw4IEBAIHJvdXRpbmVzIDo9IFwKKyAgIG5zX25hbWVfc2tpcCBc CisgICBuc19uYW1lX3VuY29tcHJlc3MgXAorICAgbnNfbmFtZV91bnBhY2sgXAorKyAgbnNfcnJf Y3Vyc29yX2luaXQgXAorKyAgbnNfcnJfY3Vyc29yX25leHQgXAorICAgbnNfc2FtZWJpbmFyeW5h bWUgXAorICAgbnNfc2FtZW5hbWUgXAorICAgbnNhcF9hZGRyIFwKK0BAIC0xMTYsNiArMTE4LDEw IEBAIHRlc3RzLXN0YXRpYyArPSB0c3QtbnNfc2FtZWJpbmFyeW5hbWUKKyB0ZXN0cy1pbnRlcm5h bCArPSB0c3QtbnNfbmFtZV9sZW5ndGhfdW5jb21wcmVzc2VkCisgdGVzdHMtc3RhdGljICs9IHRz dC1uc19uYW1lX2xlbmd0aF91bmNvbXByZXNzZWQKKyAKKysjIExpa2V3aXNlIGZvciBzdHJ1Y3Qg bnNfcnJfY3Vyc29yIGFuZCBpdHMgZnVuY3Rpb25zLgorK3Rlc3RzLWludGVybmFsICs9IHRzdC1u c19ycl9jdXJzb3IKKyt0ZXN0cy1zdGF0aWMgKz0gdHN0LW5zX3JyX2N1cnNvcgorKworICMgVGhl c2UgdGVzdHMgbmVlZCBsaWJkbC4KKyBpZmVxICh5ZXMsJChidWlsZC1zaGFyZWQpKQorIHRlc3Rz ICs9IFwKK2RpZmYgLS1naXQgYS9yZXNvbHYvbnNfcnJfY3Vyc29yX2luaXQuYyBiL3Jlc29sdi9u c19ycl9jdXJzb3JfaW5pdC5jCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAw MC4uNmVlODBiMzBlOQorLS0tIC9kZXYvbnVsbAorKysrIGIvcmVzb2x2L25zX3JyX2N1cnNvcl9p bml0LmMKK0BAIC0wLDAgKzEsNjIgQEAKKysvKiBJbml0aWFsaXplIGEgc2ltcGxlIEROUyBwYWNr ZXQgcGFyc2VyLgorKyAgIENvcHlyaWdodCAoQykgMjAyMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4KKysgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKysK KysgICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp YnV0ZSBpdCBhbmQvb3IKKysgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg TGVzc2VyIEdlbmVyYWwgUHVibGljCisrICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisrICAgdmVyc2lvbiAyLjEgb2YgdGhlIExp Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrCisrICAgVGhl IEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwKKysgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg aW1wbGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisrICAgTGVzc2VyIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysKKysgICBZb3Ugc2hvdWxkIGhhdmUgcmVj ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisrICAgTGljZW5z ZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorKyAgIDxodHRwczov L3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworKworKyNpbmNsdWRlIDxhcnBhL25hbWVzZXIu aD4KKysjaW5jbHVkZSA8ZXJybm8uaD4KKysjaW5jbHVkZSA8c3RkYm9vbC5oPgorKyNpbmNsdWRl IDxzdHJpbmcuaD4KKysKKytib29sCisrX19uc19ycl9jdXJzb3JfaW5pdCAoc3RydWN0IG5zX3Jy X2N1cnNvciAqYywKKysgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpi dWYsIHNpemVfdCBsZW4pCisreworKyAgYy0+YmVnaW4gPSBidWY7CisrICBjLT5lbmQgPSBidWYg KyBsZW47CisrCisrICAvKiBDaGVjayBmb3IgaGVhZGVyIHNpemUgYW5kIDE2LWJpdCBxdWVzdGlv biBjb3VudCB2YWx1ZSAoaXQgbXVzdCBiZSAxKS4gICovCisrICBpZiAobGVuIDwgMTIgfHwgYnVm WzRdICE9IDAgfHwgYnVmWzVdICE9IDEpCisrICAgIHsKKysgICAgICBfX3NldF9lcnJubyAoRU1T R1NJWkUpOworKyAgICAgIGMtPmN1cnJlbnQgPSBjLT5lbmQ7CisrICAgICAgcmV0dXJuIGZhbHNl OworKyAgICB9CisrICBjLT5jdXJyZW50ID0gYnVmICsgMTI7CisrCisrICBpbnQgY29uc3VtZWQg PSBfX25zX25hbWVfbGVuZ3RoX3VuY29tcHJlc3NlZCAoYy0+Y3VycmVudCwgYy0+ZW5kKTsKKysg IGlmIChjb25zdW1lZCA8IDApCisrICAgIHsKKysgICAgICBfX3NldF9lcnJubyAoRU1TR1NJWkUp OworKyAgICAgIGMtPmN1cnJlbnQgPSBjLT5lbmQ7CisrICAgICAgYy0+Zmlyc3RfcnIgPSBOVUxM OworKyAgICAgIHJldHVybiBmYWxzZTsKKysgICAgfQorKyAgYy0+Y3VycmVudCArPSBjb25zdW1l ZDsKKysKKysgIC8qIEVuc3VyZSB0aGVyZSBpcyByb29tIGZvciBxdWVzdGlvbiB0eXBlIGFuZCBj bGFzcy4gICovCisrICBpZiAoYy0+ZW5kIC0gYy0+Y3VycmVudCA8IDQpCisrICAgIHsKKysgICAg ICBfX3NldF9lcnJubyAoRU1TR1NJWkUpOworKyAgICAgIGMtPmN1cnJlbnQgPSBjLT5lbmQ7Cisr ICAgICAgYy0+Zmlyc3RfcnIgPSBOVUxMOworKyAgICAgIHJldHVybiBmYWxzZTsKKysgICAgfQor KyAgYy0+Y3VycmVudCArPSA0OworKyAgYy0+Zmlyc3RfcnIgPSBjLT5jdXJyZW50OworKworKyAg cmV0dXJuIHRydWU7CisrfQorZGlmZiAtLWdpdCBhL3Jlc29sdi9uc19ycl9jdXJzb3JfbmV4dC5j IGIvcmVzb2x2L25zX3JyX2N1cnNvcl9uZXh0LmMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRl eCAwMDAwMDAwMDAwLi4zMzY1MmZjNWRhCistLS0gL2Rldi9udWxsCisrKysgYi9yZXNvbHYvbnNf cnJfY3Vyc29yX25leHQuYworQEAgLTAsMCArMSw3NCBAQAorKy8qIFNpbXBsZSBETlMgcmVjb3Jk IHBhcnNlciB3aXRob3V0IHRleHR1YWwgbmFtZSBkZWNvZGluZy4KKysgICBDb3B5cmlnaHQgKEMp IDIwMjIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrICAgVGhpcyBmaWxlIGlzIHBh cnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisrICAgbW9kaWZ5IGl0 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExp Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl cgorKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu eSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysgICBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl IEdOVQorKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu CisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3Nl ciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFy eTsgaWYgbm90LCBzZWUKKysgICA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8K KysKKysjaW5jbHVkZSA8YXJwYS9uYW1lc2VyLmg+CisrI2luY2x1ZGUgPGVycm5vLmg+CisrI2lu Y2x1ZGUgPHN0ZGJvb2wuaD4KKysjaW5jbHVkZSA8c3RyaW5nLmg+CisrCisrYm9vbAorK19fbnNf cnJfY3Vyc29yX25leHQgKHN0cnVjdCBuc19ycl9jdXJzb3IgKmMsIHN0cnVjdCBuc19ycl93aXJl ICpycikKKyt7CisrICByci0+cmRhdGEgPSBOVUxMOworKworKyAgLyogRXh0cmFjdCB0aGUgcmVj b3JkIG93bmVyIG5hbWUuICAqLworKyAgaW50IGNvbnN1bWVkID0gX19uc19uYW1lX3VucGFjayAo Yy0+YmVnaW4sIGMtPmVuZCwgYy0+Y3VycmVudCwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHJyLT5ybmFtZSwgc2l6ZW9mIChyci0+cm5hbWUpKTsKKysgIGlmIChjb25zdW1l ZCA8IDApCisrICAgIHsKKysgICAgICBtZW1zZXQgKHJyLCAwLCBzaXplb2YgKCpycikpOworKyAg ICAgIF9fc2V0X2Vycm5vIChFTVNHU0laRSk7CisrICAgICAgcmV0dXJuIGZhbHNlOworKyAgICB9 CisrICBjLT5jdXJyZW50ICs9IGNvbnN1bWVkOworKworKyAgLyogRXh0cmFjdCB0aGUgbWV0YWRh dGEuICAqLworKyAgc3RydWN0CisrICB7CisrICAgIHVpbnQxNl90IHJ0eXBlOworKyAgICB1aW50 MTZfdCByY2xhc3M7CisrICAgIHVpbnQzMl90IHR0bDsKKysgICAgdWludDE2X3QgcmRsZW5ndGg7 CisrICB9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKSBtZXRhZGF0YTsKKysgIF9TdGF0aWNfYXNz ZXJ0IChzaXplb2YgKG1ldGFkYXRhKSA9PSAxMCwgInNpemVvZiBtZXRhZGF0YSIpOworKyAgaWYg KGMtPmVuZCAtIGMtPmN1cnJlbnQgPCBzaXplb2YgKG1ldGFkYXRhKSkKKysgICAgeworKyAgICAg IG1lbXNldCAocnIsIDAsIHNpemVvZiAoKnJyKSk7CisrICAgICAgX19zZXRfZXJybm8gKEVNU0dT SVpFKTsKKysgICAgICByZXR1cm4gZmFsc2U7CisrICAgIH0KKysgIG1lbWNweSAoJm1ldGFkYXRh LCBjLT5jdXJyZW50LCBzaXplb2YgKG1ldGFkYXRhKSk7CisrICBjLT5jdXJyZW50ICs9IHNpemVv ZiAobWV0YWRhdGEpOworKyAgLyogRW5kaWFuZXNzIGNvbnZlcnNpb24uICAqLworKyAgcnItPnJ0 eXBlID0gbnRvaHMgKG1ldGFkYXRhLnJ0eXBlKTsKKysgIHJyLT5yY2xhc3MgPSBudG9ocyAobWV0 YWRhdGEucmNsYXNzKTsKKysgIHJyLT50dGwgPSBudG9obCAobWV0YWRhdGEudHRsKTsKKysgIHJy LT5yZGxlbmd0aCA9IG50b2hzIChtZXRhZGF0YS5yZGxlbmd0aCk7CisrCisrICAvKiBFeHRyYWN0 IHJlY29yZCBkYXRhLiAgKi8KKysgIGlmIChjLT5lbmQgLSBjLT5jdXJyZW50IDwgcnItPnJkbGVu Z3RoKQorKyAgICB7CisrICAgICAgbWVtc2V0IChyciwgMCwgc2l6ZW9mICgqcnIpKTsKKysgICAg ICBfX3NldF9lcnJubyAoRU1TR1NJWkUpOworKyAgICAgIHJldHVybiBmYWxzZTsKKysgICAgfQor KyAgcnItPnJkYXRhID0gYy0+Y3VycmVudDsKKysgIGMtPmN1cnJlbnQgKz0gcnItPnJkbGVuZ3Ro OworKworKyAgcmV0dXJuIHRydWU7CisrfQorZGlmZiAtLWdpdCBhL3Jlc29sdi90c3QtbnNfcnJf Y3Vyc29yLmMgYi9yZXNvbHYvdHN0LW5zX3JyX2N1cnNvci5jCituZXcgZmlsZSBtb2RlIDEwMDY0 NAoraW5kZXggMDAwMDAwMDAwMC4uYzNjMDkwODkwNQorLS0tIC9kZXYvbnVsbAorKysrIGIvcmVz b2x2L3RzdC1uc19ycl9jdXJzb3IuYworQEAgLTAsMCArMSwyMjcgQEAKKysvKiBUZXN0cyBmb3Ig cmVzb3VyY2UgcmVjb3JkIHBhcnNpbmcuCisrICAgQ29weXJpZ2h0IChDKSAyMDIyIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUg QyBMaWJyYXJ5LgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKysgICBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKysgICB2ZXJzaW9u IDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv bi4KKysKKysgICBUaGUgR05VIEMgTGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9y IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKysgICBMZXNz ZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyAgIFlvdSBz aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs aWMKKysgICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJhcnk7IGlmIG5vdCwgc2Vl CisrICAgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrI2luY2x1ZGUg PGFycGEvbmFtZXNlci5oPgorKyNpbmNsdWRlIDxzdHJpbmcuaD4KKysjaW5jbHVkZSA8c3VwcG9y dC9jaGVjay5oPgorKyNpbmNsdWRlIDxzdXBwb3J0L25leHRfdG9fZmF1bHQuaD4KKysKKysvKiBS ZWZlcmVuY2UgcGFja2V0IGZvciBwYWNrZXQgcGFyc2luZy4gICovCisrc3RhdGljIGNvbnN0IHVu c2lnbmVkIGNoYXIgdmFsaWRfcGFja2V0W10gPQorKyAgeyAweDExLCAweDEyLCAweDEzLCAweDE0 LAorKyAgICAweDAwLCAweDAxLCAgICAgICAgICAgICAgIC8qIFF1ZXN0aW9uIGNvdW50LiAgKi8K KysgICAgMHgwMCwgMHgwMiwgICAgICAgICAgICAgICAvKiBBbnN3ZXIgY291bnQuICAqLworKyAg ICAweDIxLCAweDIyLCAweDIzLCAweDI0LCAgIC8qIE90aGVyIGNvdW50cyAobm90IGFjdHVhbGx5 IGluIHBhY2tldCkuICAqLworKyAgICAzLCAndycsICd3JywgJ3cnLCA3LCAnZScsICd4JywgJ2En LCAnbScsICdwJywgJ2wnLCAnZScsIDAsCisrICAgIDB4MDAsIDB4MWMsICAgICAgICAgICAgICAg LyogUXVlc3Rpb24gdHlwZTogQUFBQS4gICovCisrICAgIDB4MDAsIDB4MDEsICAgICAgICAgICAg ICAgLyogUXVlc3Rpb24gY2xhc3M6IElOLiAgKi8KKysgICAgMHhjMCwgMHgwYywgICAgICAgICAg ICAgICAvKiBDb21wcmVzc2lvbiByZWZlcmVuY2UgdG8gUU5BTUUuICAqLworKyAgICAweDAwLCAw eDFjLCAgICAgICAgICAgICAgIC8qIFJlY29yZCB0eXBlOiBBQUFBLiAgKi8KKysgICAgMHgwMCwg MHgwMSwgICAgICAgICAgICAgICAvKiBSZWNvcmQgY2xhc3M6IElOLiAgKi8KKysgICAgMHgxMiwg MHgzNCwgMHg1NiwgMHg3OCwgICAvKiBSZWNvcmQgVFRMLiAgKi8KKysgICAgMHgwMCwgMHgxMCwg ICAgICAgICAgICAgICAvKiBSZWNvcmQgZGF0YSBsZW5ndGggKDE2IGJ5dGVzKS4gICovCisrICAg IDB4OTAsIDB4OTEsIDB4OTIsIDB4OTMsIDB4OTQsIDB4OTUsIDB4OTYsIDB4OTcsCisrICAgIDB4 OTgsIDB4OTksIDB4OWEsIDB4OWIsIDB4OWMsIDB4OWQsIDB4OWUsIDB4OWYsIC8qIElQdjYgYWRk cmVzcy4gICovCisrICAgIDB4YzAsIDB4MGMsICAgICAgICAgICAgICAgLyogQ29tcHJlc3Npb24g cmVmZXJlbmNlIHRvIFFOQU1FLiAgKi8KKysgICAgMHgwMCwgMHgxYywgICAgICAgICAgICAgICAv KiBSZWNvcmQgdHlwZTogQUFBQS4gICovCisrICAgIDB4MDAsIDB4MDEsICAgICAgICAgICAgICAg LyogUmVjb3JkIGNsYXNzOiBJTi4gICovCisrICAgIDB4MTEsIDB4MzMsIDB4NTUsIDB4NzcsICAg LyogUmVjb3JkIFRUTC4gICovCisrICAgIDB4MDAsIDB4MTAsICAgICAgICAgICAgICAgLyogUmVj b3JkIGRhdGEgbGVuZ3RoICgxNiBieXRlcykuICAqLworKyAgICAweGEwLCAweGExLCAweGEyLCAw eGEzLCAweGE0LCAweGE1LCAweGE2LCAweGE3LAorKyAgICAweGE4LCAweGE5LCAweGFhLCAweGFi LCAweGFjLCAweGFkLCAweGFlLCAweGFmLCAvKiBJUHY2IGFkZHJlc3MuICAqLworKyAgfTsKKysK KysvKiBTcGVjaWFsIG9mZnNldHMgaW4gdmFsaWRfcGFja2V0LiAgKi8KKytlbnVtCisrICB7Cisr ICAgIG9mZnNldF9vZl9maXJzdF9yZWNvcmQgPSAyOSwKKysgICAgb2Zmc2V0X29mX3NlY29uZF9y ZWNvcmQgPSA1NywKKysgIH07CisrCisrLyogQ2hlY2sgdGhhdCBwYXJzaW5nIHZhbGlkX3BhY2tl dCBzdWNjZWVkcy4gICovCisrc3RhdGljIHZvaWQKKyt0ZXN0X3ZhbGlkICh2b2lkKQorK3sKKysg IHN0cnVjdCBuc19ycl9jdXJzb3IgYzsKKysgIFRFU1RfVkVSSUZZX0VYSVQgKF9fbnNfcnJfY3Vy c29yX2luaXQgKCZjLCB2YWxpZF9wYWNrZXQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzaXplb2YgKHZhbGlkX3BhY2tldCkpKTsKKysgIFRFU1RfQ09NUEFSRSAo bnNfcnJfY3Vyc29yX3Jjb2RlICgmYyksIDQpOworKyAgVEVTVF9DT01QQVJFIChuc19ycl9jdXJz b3JfYW5jb3VudCAoJmMpLCAyKTsKKysgIFRFU1RfQ09NUEFSRSAobnNfcnJfY3Vyc29yX25zY291 bnQgKCZjKSwgMHgyMTIyKTsKKysgIFRFU1RfQ09NUEFSRSAobnNfcnJfY3Vyc29yX2FkY291bnQg KCZjKSwgMHgyMzI0KTsKKysgIFRFU1RfQ09NUEFSRV9CTE9CIChuc19ycl9jdXJzb3JfcW5hbWUg KCZjKSwgMTMsICZ2YWxpZF9wYWNrZXRbMTJdLCAxMyk7CisrICBURVNUX0NPTVBBUkUgKG5zX3Jy X2N1cnNvcl9xdHlwZSAoJmMpLCBUX0FBQUEpOworKyAgVEVTVF9DT01QQVJFIChuc19ycl9jdXJz b3JfcWNsYXNzICgmYyksIENfSU4pOworKyAgVEVTVF9DT01QQVJFIChjLmN1cnJlbnQgLSB2YWxp ZF9wYWNrZXQsIG9mZnNldF9vZl9maXJzdF9yZWNvcmQpOworKworKyAgc3RydWN0IG5zX3JyX3dp cmUgcjsKKysgIFRFU1RfVkVSSUZZX0VYSVQgKF9fbnNfcnJfY3Vyc29yX25leHQgKCZjLCAmcikp OworKyAgVEVTVF9DT01QQVJFIChyLnJ0eXBlLCBUX0FBQUEpOworKyAgVEVTVF9DT01QQVJFIChy LnJjbGFzcywgQ19JTik7CisrICBURVNUX0NPTVBBUkUgKHIudHRsLCAweDEyMzQ1Njc4KTsKKysg IFRFU1RfQ09NUEFSRV9CTE9CIChyLnJkYXRhLCByLnJkbGVuZ3RoLAorKyAgICAgICAgICAgICAg ICAgICAgICJceDkwXHg5MVx4OTJceDkzXHg5NFx4OTVceDk2XHg5NyIKKysgICAgICAgICAgICAg ICAgICAgICAiXHg5OFx4OTlceDlhXHg5Ylx4OWNceDlkXHg5ZVx4OWYiLCAxNik7CisrICBURVNU X0NPTVBBUkUgKGMuY3VycmVudCAtIHZhbGlkX3BhY2tldCwgb2Zmc2V0X29mX3NlY29uZF9yZWNv cmQpOworKyAgVEVTVF9WRVJJRllfRVhJVCAoX19uc19ycl9jdXJzb3JfbmV4dCAoJmMsICZyKSk7 CisrICBURVNUX0NPTVBBUkUgKHIucnR5cGUsIFRfQUFBQSk7CisrICBURVNUX0NPTVBBUkUgKHIu cmNsYXNzLCBDX0lOKTsKKysgIFRFU1RfQ09NUEFSRSAoci50dGwsIDB4MTEzMzU1NzcpOworKyAg VEVTVF9DT01QQVJFX0JMT0IgKHIucmRhdGEsIHIucmRsZW5ndGgsCisrICAgICAgICAgICAgICAg ICAgICAgIlx4YTBceGExXHhhMlx4YTNceGE0XHhhNVx4YTZceGE3IgorKyAgICAgICAgICAgICAg ICAgICAgICJceGE4XHhhOVx4YWFceGFiXHhhY1x4YWRceGFlXHhhZiIsIDE2KTsKKysgIFRFU1Rf VkVSSUZZIChjLmN1cnJlbnQgPT0gYy5lbmQpOworK30KKysKKysvKiBDaGVjayB0aGF0IHRyeWlu ZyB0byBwYXJzZSBhIHBhY2tldCB3aXRoIGEgY29tcHJlc3NlZCBRTkFNRSBmYWlscy4gICovCisr c3RhdGljIHZvaWQKKyt0ZXN0X2NvbXByZXNzZWRfcW5hbWUgKHZvaWQpCisreworKyAgc3RhdGlj IGNvbnN0IHVuc2lnbmVkIGNoYXIgcGFja2V0W10gPQorKyAgICB7IDB4MTEsIDB4MTIsIDB4MTMs IDB4MTQsCisrICAgICAgMHgwMCwgMHgwMSwgICAgICAgICAgICAgICAvKiBRdWVzdGlvbiBjb3Vu dC4gICovCisrICAgICAgMHgwMCwgMHgwMCwgICAgICAgICAgICAgICAvKiBBbnN3ZXIgY291bnQu ICAqLworKyAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAgLyogT3RoZXIgY291bnRzLiAg Ki8KKysgICAgICAzLCAndycsICd3JywgJ3cnLCA3LCAnZScsICd4JywgJ2EnLCAnbScsICdwJywg J2wnLCAnZScsIDB4YzAsIDB4MDQsCisrICAgICAgMHgwMCwgMHgwMSwgICAgICAgICAgICAgICAv KiBRdWVzdGlvbiB0eXBlOiBBLiAgKi8KKysgICAgICAweDAwLCAweDAxLCAgICAgICAgICAgICAg IC8qIFF1ZXN0aW9uIGNsYXNzOiBJTi4gICovCisrICAgIH07CisrCisrICBzdHJ1Y3QgbnNfcnJf Y3Vyc29yIGM7CisrICBURVNUX1ZFUklGWV9FWElUICghX19uc19ycl9jdXJzb3JfaW5pdCAoJmMs IHBhY2tldCwgc2l6ZW9mIChwYWNrZXQpKSk7CisrfQorKworKy8qIENoZWNrIHRoYXQgdHJ5aW5n IHRvIHBhcnNlIGEgcGFja2V0IHdpdGggdHdvIHF1ZXN0aW9ucyBmYWlscy4gICovCisrc3RhdGlj IHZvaWQKKyt0ZXN0X3R3b19xdWVzdGlvbnMgKHZvaWQpCisreworKyAgc3RhdGljIGNvbnN0IHVu c2lnbmVkIGNoYXIgcGFja2V0W10gPQorKyAgICB7IDB4MTEsIDB4MTIsIDB4MTMsIDB4MTQsCisr ICAgICAgMHgwMCwgMHgwMiwgICAgICAgICAgICAgICAvKiBRdWVzdGlvbiBjb3VudC4gICovCisr ICAgICAgMHgwMCwgMHgwMCwgICAgICAgICAgICAgICAvKiBBbnN3ZXIgY291bnQuICAqLworKyAg ICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAgLyogT3RoZXIgY291bnRzLiAgKi8KKysgICAg ICAzLCAndycsICd3JywgJ3cnLCA3LCAnZScsICd4JywgJ2EnLCAnbScsICdwJywgJ2wnLCAnZScs IDB4YzAsIDB4MDQsCisrICAgICAgMHgwMCwgMHgwMSwgICAgICAgICAgICAgICAvKiBRdWVzdGlv biB0eXBlOiBBLiAgKi8KKysgICAgICAweDAwLCAweDAxLCAgICAgICAgICAgICAgIC8qIFF1ZXN0 aW9uIGNsYXNzOiBJTi4gICovCisrICAgICAgMywgJ3cnLCAndycsICd3JywgNywgJ2UnLCAneCcs ICdhJywgJ20nLCAncCcsICdsJywgJ2UnLCAweGMwLCAweDA0LAorKyAgICAgIDB4MDAsIDB4MWMs ICAgICAgICAgICAgICAgLyogUXVlc3Rpb24gdHlwZTogQUFBQS4gICovCisrICAgICAgMHgwMCwg MHgwMSwgICAgICAgICAgICAgICAvKiBRdWVzdGlvbiBjbGFzczogSU4uICAqLworKyAgICB9Owor KworKyAgc3RydWN0IG5zX3JyX2N1cnNvciBjOworKyAgVEVTVF9WRVJJRllfRVhJVCAoIV9fbnNf cnJfY3Vyc29yX2luaXQgKCZjLCBwYWNrZXQsIHNpemVvZiAocGFja2V0KSkpOworK30KKysKKysv KiBVc2VkIHRvIGNoZWNrIHRoYXQgcGFyc2luZyB0cnVuY2F0ZWQgcGFja2V0cyBkb2VzIG5vdCBv dmVyLXJlYWQuICAqLworK3N0YXRpYyBzdHJ1Y3Qgc3VwcG9ydF9uZXh0X3RvX2ZhdWx0IG50ZjsK KysKKysvKiBUcnVuY2F0ZWQgcGFja2V0IGluIHRoZSBzZWNvbmQgcmVzb3VyY2UgcmVjb3JkLiAg Ki8KKytzdGF0aWMgdm9pZAorK3Rlc3RfdHJ1bmNhdGVkX29uZV9yciAoc2l6ZV90IGxlbmd0aCkK Kyt7CisrICB1bnNpZ25lZCBjaGFyICplbmQgPSAodW5zaWduZWQgY2hhciAqKSBudGYuYnVmZmVy IC0gbnRmLmxlbmd0aDsKKysgIHVuc2lnbmVkIGNoYXIgKnN0YXJ0ID0gZW5kIC0gbGVuZ3RoOwor KworKyAgLyogUHJvZHVjZSB0aGUgdHJ1bmNhdGVkIHBhY2tldC4gICovCisrICBtZW1jcHkgKHN0 YXJ0LCB2YWxpZF9wYWNrZXQsIGxlbmd0aCk7CisrCisrICBzdHJ1Y3QgbnNfcnJfY3Vyc29yIGM7 CisrICBURVNUX1ZFUklGWV9FWElUIChfX25zX3JyX2N1cnNvcl9pbml0ICgmYywgc3RhcnQsIGxl bmd0aCkpOworKyAgVEVTVF9DT01QQVJFIChuc19ycl9jdXJzb3JfcmNvZGUgKCZjKSwgNCk7Cisr ICBURVNUX0NPTVBBUkUgKG5zX3JyX2N1cnNvcl9hbmNvdW50ICgmYyksIDIpOworKyAgVEVTVF9D T01QQVJFIChuc19ycl9jdXJzb3JfbnNjb3VudCAoJmMpLCAweDIxMjIpOworKyAgVEVTVF9DT01Q QVJFIChuc19ycl9jdXJzb3JfYWRjb3VudCAoJmMpLCAweDIzMjQpOworKyAgVEVTVF9DT01QQVJF X0JMT0IgKG5zX3JyX2N1cnNvcl9xbmFtZSAoJmMpLCAxMywgJnZhbGlkX3BhY2tldFsxMl0sIDEz KTsKKysgIFRFU1RfQ09NUEFSRSAobnNfcnJfY3Vyc29yX3F0eXBlICgmYyksIFRfQUFBQSk7Cisr ICBURVNUX0NPTVBBUkUgKG5zX3JyX2N1cnNvcl9xY2xhc3MgKCZjKSwgQ19JTik7CisrICBURVNU X0NPTVBBUkUgKGMuY3VycmVudCAtIHN0YXJ0LCBvZmZzZXRfb2ZfZmlyc3RfcmVjb3JkKTsKKysK KysgIHN0cnVjdCBuc19ycl93aXJlIHI7CisrICBURVNUX1ZFUklGWV9FWElUIChfX25zX3JyX2N1 cnNvcl9uZXh0ICgmYywgJnIpKTsKKysgIFRFU1RfQ09NUEFSRSAoci5ydHlwZSwgVF9BQUFBKTsK KysgIFRFU1RfQ09NUEFSRSAoci5yY2xhc3MsIENfSU4pOworKyAgVEVTVF9DT01QQVJFIChyLnR0 bCwgMHgxMjM0NTY3OCk7CisrICBURVNUX0NPTVBBUkVfQkxPQiAoci5yZGF0YSwgci5yZGxlbmd0 aCwKKysgICAgICAgICAgICAgICAgICAgICAiXHg5MFx4OTFceDkyXHg5M1x4OTRceDk1XHg5Nlx4 OTciCisrICAgICAgICAgICAgICAgICAgICAgIlx4OThceDk5XHg5YVx4OWJceDljXHg5ZFx4OWVc eDlmIiwgMTYpOworKyAgVEVTVF9DT01QQVJFIChjLmN1cnJlbnQgLSBzdGFydCwgb2Zmc2V0X29m X3NlY29uZF9yZWNvcmQpOworKyAgVEVTVF9WRVJJRlkgKCFfX25zX3JyX2N1cnNvcl9uZXh0ICgm YywgJnIpKTsKKyt9CisrCisrLyogVHJ1bmNhdGVkIHBhY2tldCBpbiB0aGUgZmlyc3QgcmVzb3Vy Y2UgcmVjb3JkLiAgKi8KKytzdGF0aWMgdm9pZAorK3Rlc3RfdHJ1bmNhdGVkX25vX3JyIChzaXpl X3QgbGVuZ3RoKQorK3sKKysgIHVuc2lnbmVkIGNoYXIgKmVuZCA9ICh1bnNpZ25lZCBjaGFyICop IG50Zi5idWZmZXIgLSBudGYubGVuZ3RoOworKyAgdW5zaWduZWQgY2hhciAqc3RhcnQgPSBlbmQg LSBsZW5ndGg7CisrCisrICAvKiBQcm9kdWNlIHRoZSB0cnVuY2F0ZWQgcGFja2V0LiAgKi8KKysg IG1lbWNweSAoc3RhcnQsIHZhbGlkX3BhY2tldCwgbGVuZ3RoKTsKKysKKysgIHN0cnVjdCBuc19y cl9jdXJzb3IgYzsKKysgIFRFU1RfVkVSSUZZX0VYSVQgKF9fbnNfcnJfY3Vyc29yX2luaXQgKCZj LCBzdGFydCwgbGVuZ3RoKSk7CisrICBURVNUX0NPTVBBUkUgKG5zX3JyX2N1cnNvcl9yY29kZSAo JmMpLCA0KTsKKysgIFRFU1RfQ09NUEFSRSAobnNfcnJfY3Vyc29yX2FuY291bnQgKCZjKSwgMik7 CisrICBURVNUX0NPTVBBUkUgKG5zX3JyX2N1cnNvcl9uc2NvdW50ICgmYyksIDB4MjEyMik7Cisr ICBURVNUX0NPTVBBUkUgKG5zX3JyX2N1cnNvcl9hZGNvdW50ICgmYyksIDB4MjMyNCk7CisrICBU RVNUX0NPTVBBUkVfQkxPQiAobnNfcnJfY3Vyc29yX3FuYW1lICgmYyksIDEzLCAmdmFsaWRfcGFj a2V0WzEyXSwgMTMpOworKyAgVEVTVF9DT01QQVJFIChuc19ycl9jdXJzb3JfcXR5cGUgKCZjKSwg VF9BQUFBKTsKKysgIFRFU1RfQ09NUEFSRSAobnNfcnJfY3Vyc29yX3FjbGFzcyAoJmMpLCBDX0lO KTsKKysgIFRFU1RfQ09NUEFSRSAoYy5jdXJyZW50IC0gc3RhcnQsIG9mZnNldF9vZl9maXJzdF9y ZWNvcmQpOworKworKyAgc3RydWN0IG5zX3JyX3dpcmUgcjsKKysgIFRFU1RfVkVSSUZZICghX19u c19ycl9jdXJzb3JfbmV4dCAoJmMsICZyKSk7CisrfQorKworKy8qIFRydW5jYXRlZCBwYWNrZXQg YmVmb3JlIGZpcnN0IHJlc291cmNlIHJlY29yZC4gICovCisrc3RhdGljIHZvaWQKKyt0ZXN0X3Ry dW5jYXRlZF9iZWZvcmVfcnIgKHNpemVfdCBsZW5ndGgpCisreworKyAgdW5zaWduZWQgY2hhciAq ZW5kID0gKHVuc2lnbmVkIGNoYXIgKikgbnRmLmJ1ZmZlciAtIG50Zi5sZW5ndGg7CisrICB1bnNp Z25lZCBjaGFyICpzdGFydCA9IGVuZCAtIGxlbmd0aDsKKysKKysgIC8qIFByb2R1Y2UgdGhlIHRy dW5jYXRlZCBwYWNrZXQuICAqLworKyAgbWVtY3B5IChzdGFydCwgdmFsaWRfcGFja2V0LCBsZW5n dGgpOworKworKyAgc3RydWN0IG5zX3JyX2N1cnNvciBjOworKyAgVEVTVF9WRVJJRllfRVhJVCAo IV9fbnNfcnJfY3Vyc29yX2luaXQgKCZjLCBzdGFydCwgbGVuZ3RoKSk7CisrfQorKworK3N0YXRp YyBpbnQKKytkb190ZXN0ICh2b2lkKQorK3sKKysgIG50ZiA9IHN1cHBvcnRfbmV4dF90b19mYXVs dF9hbGxvY2F0ZSAoc2l6ZW9mICh2YWxpZF9wYWNrZXQpKTsKKysKKysgIHRlc3RfdmFsaWQgKCk7 CisrICB0ZXN0X2NvbXByZXNzZWRfcW5hbWUgKCk7CisrICB0ZXN0X3R3b19xdWVzdGlvbnMgKCk7 CisrCisrICBmb3IgKGludCBsZW5ndGggPSBvZmZzZXRfb2Zfc2Vjb25kX3JlY29yZDsgbGVuZ3Ro IDwgc2l6ZW9mICh2YWxpZF9wYWNrZXQpOworKyAgICAgICArK2xlbmd0aCkKKysgICAgdGVzdF90 cnVuY2F0ZWRfb25lX3JyIChsZW5ndGgpOworKyAgZm9yIChpbnQgbGVuZ3RoID0gb2Zmc2V0X29m X2ZpcnN0X3JlY29yZDsgbGVuZ3RoIDwgb2Zmc2V0X29mX3NlY29uZF9yZWNvcmQ7CisrICAgICAg ICsrbGVuZ3RoKQorKyAgICB0ZXN0X3RydW5jYXRlZF9ub19yciAobGVuZ3RoKTsKKysgIGZvciAo aW50IGxlbmd0aCA9IDA7IGxlbmd0aCA8IG9mZnNldF9vZl9maXJzdF9yZWNvcmQ7ICsrbGVuZ3Ro KQorKyAgICB0ZXN0X3RydW5jYXRlZF9iZWZvcmVfcnIgKGxlbmd0aCk7CisrCisrICBzdXBwb3J0 X25leHRfdG9fZmF1bHRfZnJlZSAoJm50Zik7CisrICByZXR1cm4gMDsKKyt9CisrCisrI2luY2x1 ZGUgPHN1cHBvcnQvdGVzdC1kcml2ZXIuYz4KKy0tIAorMi4zOC4xCisKKworRnJvbSBiNzE0YWI3 ZTNjZTk5OWI3OTQwMWNkZDIyMjkxMTI4YTdmZDZkOGVmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQorRnJvbTogRmxvcmlhbiBXZWltZXIgPGZ3ZWltZXJAcmVkaGF0LmNvbT4KK0RhdGU6IFR1ZSwg MzAgQXVnIDIwMjIgMTA6MDI6NDkgKzAyMDAKK1N1YmplY3Q6IG5zc19kbnM6IFNwbGl0IGdldGFu c3dlcl9wdHIgZnJvbSBnZXRhbnN3ZXJfcgorCitBbmQgZXhwYW5kIHRoZSB1c2Ugb2YgbmFtZV9v ayBhbmQgcXR5cGUgaW4gZ2V0YW5zd2VyX3B0ciAodGhlCitmb3JtZXIgYWxzbyBpbiBnZXRhbnN3 ZXJfcikuCisKK0FmdGVyIGZ1cnRoZXIgY2xlYW51cHMsIG5vdCBtdWNoIGNvZGUgd2lsbCBiZSBz aGFyZWQgYmV0d2VlbiB0aGUKK3R3byBmdW5jdGlvbnMuCisKK1Jldmlld2VkLWJ5OiBTaWRkaGVz aCBQb3lhcmVrYXIgPHNpZGRoZXNoQHNvdXJjZXdhcmUub3JnPgorKGNoZXJyeSBwaWNrZWQgZnJv bSBjb21taXQgMGRjYzQzZTk5ODEwMDU1NDBiZjM5ZGM3YmYzM2ZiYWI2MmNmOWU4NCkKKy0tLQor IHJlc29sdi9uc3NfZG5zL2Rucy1ob3N0LmMgfCAzMjAgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKy0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgMjY4IGluc2VydGlvbnMoKyksIDUyIGRl bGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvcmVzb2x2L25zc19kbnMvZG5zLWhvc3QuYyBiL3Jl c29sdi9uc3NfZG5zL2Rucy1ob3N0LmMKK2luZGV4IDU0NGNmZmJlY2QuLmQzODRlMWY4MmQgMTAw NjQ0CistLS0gYS9yZXNvbHYvbnNzX2Rucy9kbnMtaG9zdC5jCisrKysgYi9yZXNvbHYvbnNzX2Ru cy9kbnMtaG9zdC5jCitAQCAtMTE2LDYgKzExNiwxMSBAQCBzdGF0aWMgZW51bSBuc3Nfc3RhdHVz IGdldGFuc3dlcl9yIChzdHJ1Y3QgcmVzb2x2X2NvbnRleHQgKmN0eCwKKyAJCQkJICAgIHN0cnVj dCBob3N0ZW50ICpyZXN1bHQsIGNoYXIgKmJ1ZmZlciwKKyAJCQkJICAgIHNpemVfdCBidWZsZW4s IGludCAqZXJybm9wLCBpbnQgKmhfZXJybm9wLAorIAkJCQkgICAgaW50IG1hcCwgaW50MzJfdCAq dHRscCwgY2hhciAqKmNhbm9ucCk7Cisrc3RhdGljIGVudW0gbnNzX3N0YXR1cyBnZXRhbnN3ZXJf cHRyIChjb25zdCBxdWVyeWJ1ZiAqYW5zd2VyLCBpbnQgYW5zbGVuLAorKwkJCQkgICAgICBjb25z dCBjaGFyICpxbmFtZSwKKysJCQkJICAgICAgc3RydWN0IGhvc3RlbnQgKnJlc3VsdCwgY2hhciAq YnVmZmVyLAorKwkJCQkgICAgICBzaXplX3QgYnVmbGVuLCBpbnQgKmVycm5vcCwKKysJCQkJICAg ICAgaW50ICpoX2Vycm5vcCwgaW50MzJfdCAqdHRscCk7CisgCisgc3RhdGljIGVudW0gbnNzX3N0 YXR1cyBnYWloX2dldGFuc3dlciAoY29uc3QgcXVlcnlidWYgKmFuc3dlcjEsIGludCBhbnNsZW4x LAorIAkJCQkgICAgICAgY29uc3QgcXVlcnlidWYgKmFuc3dlcjIsIGludCBhbnNsZW4yLAorQEAg LTU2MSw5ICs1NjYsOCBAQCBfbnNzX2Ruc19nZXRob3N0YnlhZGRyMl9yIChjb25zdCB2b2lkICph ZGRyLCBzb2NrbGVuX3QgbGVuLCBpbnQgYWYsCisgICAgICAgcmV0dXJuIGVycm5vID09IEVDT05O UkVGVVNFRCA/IE5TU19TVEFUVVNfVU5BVkFJTCA6IE5TU19TVEFUVVNfTk9URk9VTkQ7CisgICAg IH0KKyAKKy0gIHN0YXR1cyA9IGdldGFuc3dlcl9yCistICAgIChjdHgsIGhvc3RfYnVmZmVyLmJ1 ZiwgbiwgcWJ1ZiwgVF9QVFIsIHJlc3VsdCwgYnVmZmVyLCBidWZsZW4sCistICAgICBlcnJub3As IGhfZXJybm9wLCAwIC8qIFhYWCAqLywgdHRscCwgTlVMTCk7CisrICBzdGF0dXMgPSBnZXRhbnN3 ZXJfcHRyIChob3N0X2J1ZmZlci5idWYsIG4sIHFidWYsIHJlc3VsdCwKKysJCQkgIGJ1ZmZlciwg YnVmbGVuLCBlcnJub3AsIGhfZXJybm9wLCB0dGxwKTsKKyAgIGlmIChob3N0X2J1ZmZlci5idWYg IT0gb3JpZ19ob3N0X2J1ZmZlcikKKyAgICAgZnJlZSAoaG9zdF9idWZmZXIuYnVmKTsKKyAgIGlm IChzdGF0dXMgIT0gTlNTX1NUQVRVU19TVUNDRVNTKQorQEAgLTY1OSw4ICs2NjMsNiBAQCBnZXRh bnN3ZXJfciAoc3RydWN0IHJlc29sdl9jb250ZXh0ICpjdHgsCisgICBpbnQgaGF2ZWFuc3dlciwg aGFkX2Vycm9yOworICAgY2hhciAqYnAsICoqYXAsICoqaGFwOworICAgY2hhciB0YnVmW01BWERO QU1FXTsKKy0gIGNvbnN0IGNoYXIgKnRuYW1lOworLSAgaW50ICgqbmFtZV9vaykgKGNvbnN0IGNo YXIgKik7CisgICB1X2NoYXIgcGFja3RtcFtOU19NQVhDRE5BTUVdOworICAgaW50IGhhdmVfdG9f bWFwID0gMDsKKyAgIHVpbnRwdHJfdCBwYWQgPSAtKHVpbnRwdHJfdCkgYnVmZmVyICUgX19hbGln bm9mX18gKHN0cnVjdCBob3N0X2RhdGEpOworQEAgLTY3OSwyMiArNjgxLDggQEAgZ2V0YW5zd2Vy X3IgKHN0cnVjdCByZXNvbHZfY29udGV4dCAqY3R4LAorICAgaWYgKGJ1ZmxlbiAtIHNpemVvZiAo c3RydWN0IGhvc3RfZGF0YSkgIT0gbGluZWJ1ZmxlbikKKyAgICAgbGluZWJ1ZmxlbiA9IElOVF9N QVg7CisgCistICB0bmFtZSA9IHFuYW1lOworICAgcmVzdWx0LT5oX25hbWUgPSBOVUxMOworICAg ZW5kX29mX21lc3NhZ2UgPSBhbnN3ZXItPmJ1ZiArIGFuc2xlbjsKKy0gIHN3aXRjaCAocXR5cGUp CistICAgIHsKKy0gICAgY2FzZSBUX0E6CistICAgIGNhc2UgVF9BQUFBOgorLSAgICAgIG5hbWVf b2sgPSBfX2xpYmNfcmVzX2hub2s7CistICAgICAgYnJlYWs7CistICAgIGNhc2UgVF9QVFI6Cist ICAgICAgbmFtZV9vayA9IF9fbGliY19yZXNfZG5vazsKKy0gICAgICBicmVhazsKKy0gICAgZGVm YXVsdDoKKy0gICAgICAqZXJybm9wID0gRU5PRU5UOworLSAgICAgIHJldHVybiBOU1NfU1RBVFVT X1VOQVZBSUw7ICAvKiBYWFggc2hvdWxkIGJlIGFib3J0KCk7ICovCistICAgIH0KKyAKKyAgIC8q CisgICAgKiBmaW5kIGZpcnN0IHNhdGlzZmFjdG9yeSBhbnN3ZXIKK0BAIC03MjksNyArNzE3LDcg QEAgZ2V0YW5zd2VyX3IgKHN0cnVjdCByZXNvbHZfY29udGV4dCAqY3R4LAorICAgICAgICpoX2Vy cm5vcCA9IE5PX1JFQ09WRVJZOworICAgICAgIHJldHVybiBOU1NfU1RBVFVTX1VOQVZBSUw7Cisg ICAgIH0KKy0gIGlmIChfX2dsaWJjX3VubGlrZWx5IChuYW1lX29rIChicCkgPT0gMCkpCisrICBp ZiAoX19nbGliY191bmxpa2VseSAoX19saWJjX3Jlc19obm9rIChicCkgPT0gMCkpCisgICAgIHsK KyAgICAgICBlcnJubyA9IEVCQURNU0c7CisgICAgICAgKmVycm5vcCA9IEVCQURNU0c7CitAQCAt NzgzLDcgKzc3MSw3IEBAIGdldGFuc3dlcl9yIChzdHJ1Y3QgcmVzb2x2X2NvbnRleHQgKmN0eCwK KyAJICBuID0gLTE7CisgCX0KKyAKKy0gICAgICBpZiAoX19nbGliY191bmxpa2VseSAobiA8IDAg fHwgKCpuYW1lX29rKSAoYnApID09IDApKQorKyAgICAgIGlmIChfX2dsaWJjX3VubGlrZWx5IChu IDwgMCB8fCBfX2xpYmNfcmVzX2hub2sgKGJwKSA9PSAwKSkKKyAJeworIAkgICsraGFkX2Vycm9y OworIAkgIGNvbnRpbnVlOworQEAgLTgxNiw3ICs4MDQsNyBAQCBnZXRhbnN3ZXJfciAoc3RydWN0 IHJlc29sdl9jb250ZXh0ICpjdHgsCisgCSAgY29udGludWU7CQkJLyogWFhYIC0gaGFkX2Vycm9y KysgPyAqLworIAl9CisgCistICAgICAgaWYgKChxdHlwZSA9PSBUX0EgfHwgcXR5cGUgPT0gVF9B QUFBKSAmJiB0eXBlID09IFRfQ05BTUUpCisrICAgICAgaWYgKHR5cGUgPT0gVF9DTkFNRSkKKyAJ eworIAkgIC8qIEEgQ05BTUUgY291bGQgYWxzbyBoYXZlIGEgVFRMIGVudHJ5LiAgKi8KKyAJICBp ZiAodHRscCAhPSBOVUxMICYmIHR0bCA8ICp0dGxwKQorQEAgLTgyNiw3ICs4MTQsNyBAQCBnZXRh bnN3ZXJfciAoc3RydWN0IHJlc29sdl9jb250ZXh0ICpjdHgsCisgCSAgICBjb250aW51ZTsKKyAJ ICBuID0gX19saWJjX2RuX2V4cGFuZCAoYW5zd2VyLT5idWYsIGVuZF9vZl9tZXNzYWdlLCBjcCwK KyAJCQkJdGJ1Ziwgc2l6ZW9mIHRidWYpOworLQkgIGlmIChfX2dsaWJjX3VubGlrZWx5IChuIDwg MCB8fCAoKm5hbWVfb2spICh0YnVmKSA9PSAwKSkKKysJICBpZiAoX19nbGliY191bmxpa2VseSAo biA8IDAgfHwgX19saWJjX3Jlc19obm9rICh0YnVmKSA9PSAwKSkKKyAJICAgIHsKKyAJICAgICAg KytoYWRfZXJyb3I7CisgCSAgICAgIGNvbnRpbnVlOworQEAgLTg1Nyw3ICs4NDUsMjYwIEBAIGdl dGFuc3dlcl9yIChzdHJ1Y3QgcmVzb2x2X2NvbnRleHQgKmN0eCwKKyAJICBjb250aW51ZTsKKyAJ fQorIAorLSAgICAgIGlmIChxdHlwZSA9PSBUX1BUUiAmJiB0eXBlID09IFRfQ05BTUUpCisrICAg ICAgaWYgKHR5cGUgPT0gVF9BICYmIHF0eXBlID09IFRfQUFBQSAmJiBtYXApCisrCWhhdmVfdG9f bWFwID0gMTsKKysgICAgICBlbHNlIGlmIChfX2dsaWJjX3VubGlrZWx5ICh0eXBlICE9IHF0eXBl KSkKKysJeworKwkgIGNwICs9IG47CisrCSAgY29udGludWU7CQkJLyogWFhYIC0gaGFkX2Vycm9y KysgPyAqLworKwl9CisrCisrICAgICAgc3dpdGNoICh0eXBlKQorKwl7CisrCWNhc2UgVF9BOgor KwljYXNlIFRfQUFBQToKKysJICBpZiAoX19nbGliY191bmxpa2VseSAoX19zdHJjYXNlY21wIChy ZXN1bHQtPmhfbmFtZSwgYnApICE9IDApKQorKwkgICAgeworKwkgICAgICBjcCArPSBuOworKwkg ICAgICBjb250aW51ZTsJCQkvKiBYWFggLSBoYWRfZXJyb3IrKyA/ICovCisrCSAgICB9CisrCisr CSAgLyogU3RvcCBwYXJzaW5nIGF0IGEgcmVjb3JkIHdob3NlIGxlbmd0aCBpcyBpbmNvcnJlY3Qu ICAqLworKwkgIGlmIChuICE9IHJydHlwZV90b19yZGF0YV9sZW5ndGggKHR5cGUpKQorKwkgICAg eworKwkgICAgICArK2hhZF9lcnJvcjsKKysJICAgICAgYnJlYWs7CisrCSAgICB9CisrCisrCSAg LyogU2tpcCByZWNvcmRzIG9mIHRoZSB3cm9uZyB0eXBlLiAgKi8KKysJICBpZiAobiAhPSByZXN1 bHQtPmhfbGVuZ3RoKQorKwkgICAgeworKwkgICAgICBjcCArPSBuOworKwkgICAgICBjb250aW51 ZTsKKysJICAgIH0KKysJICBpZiAoIWhhdmVhbnN3ZXIpCisrCSAgICB7CisrCSAgICAgIGludCBu bjsKKysKKysJICAgICAgLyogV2UgY29tcG9zZSBhIHNpbmdsZSBob3N0ZW50IG91dCBvZiB0aGUg ZW50aXJlIGNoYWluIG9mCisrCSAgICAgICAgIGVudHJpZXMsIHNvIHRoZSBUVEwgb2YgdGhlIGhv c3RlbnQgaXMgZXNzZW50aWFsbHkgdGhlIGxvd2VzdAorKwkJIFRUTCBpbiB0aGUgY2hhaW4uICAq LworKwkgICAgICBpZiAodHRscCAhPSBOVUxMICYmIHR0bCA8ICp0dGxwKQorKwkJKnR0bHAgPSB0 dGw7CisrCSAgICAgIGlmIChjYW5vbnAgIT0gTlVMTCkKKysJCSpjYW5vbnAgPSBicDsKKysJICAg ICAgcmVzdWx0LT5oX25hbWUgPSBicDsKKysJICAgICAgbm4gPSBzdHJsZW4gKGJwKSArIDE7CS8q IGZvciB0aGUgXDAgKi8KKysJICAgICAgYnAgKz0gbm47CisrCSAgICAgIGxpbmVidWZsZW4gLT0g bm47CisrCSAgICB9CisrCisrCSAgLyogUHJvdmlkZSBzdWZmaWNpZW50IGFsaWdubWVudCBmb3Ig Ym90aCBhZGRyZXNzCisrCSAgICAgZmFtaWxpZXMuICAqLworKwkgIGVudW0geyBhbGlnbiA9IDQg fTsKKysJICBfU3RhdGljX2Fzc2VydCAoKGFsaWduICUgX19hbGlnbm9mX18gKHN0cnVjdCBpbl9h ZGRyKSkgPT0gMCwKKysJCQkgICJzdHJ1Y3QgaW5fYWRkciBhbGlnbm1lbnQiKTsKKysJICBfU3Rh dGljX2Fzc2VydCAoKGFsaWduICUgX19hbGlnbm9mX18gKHN0cnVjdCBpbjZfYWRkcikpID09IDAs CisrCQkJICAic3RydWN0IGluNl9hZGRyIGFsaWdubWVudCIpOworKwkgIHsKKysJICAgIGNoYXIg Km5ld19icCA9IFBUUl9BTElHTl9VUCAoYnAsIGFsaWduKTsKKysJICAgIGxpbmVidWZsZW4gLT0g bmV3X2JwIC0gYnA7CisrCSAgICBicCA9IG5ld19icDsKKysJICB9CisrCisrCSAgaWYgKF9fZ2xp YmNfdW5saWtlbHkgKG4gPiBsaW5lYnVmbGVuKSkKKysJICAgIGdvdG8gdG9vX3NtYWxsOworKwkg IGJwID0gX19tZW1wY3B5ICgqaGFwKysgPSBicCwgY3AsIG4pOworKwkgIGNwICs9IG47CisrCSAg bGluZWJ1ZmxlbiAtPSBuOworKwkgIGJyZWFrOworKwlkZWZhdWx0OgorKwkgIGFib3J0ICgpOwor Kwl9CisrICAgICAgaWYgKGhhZF9lcnJvciA9PSAwKQorKwkrK2hhdmVhbnN3ZXI7CisrICAgIH0K KysKKysgIGlmIChoYXZlYW5zd2VyID4gMCkKKysgICAgeworKyAgICAgICphcCA9IE5VTEw7Cisr ICAgICAgKmhhcCA9IE5VTEw7CisrICAgICAgLyoKKysgICAgICAgKiBOb3RlOiB3ZSBzb3J0IGV2 ZW4gaWYgaG9zdCBjYW4gdGFrZSBvbmx5IG9uZSBhZGRyZXNzCisrICAgICAgICogaW4gaXRzIHJl dHVybiBzdHJ1Y3R1cmVzIC0gc2hvdWxkIGdpdmUgaXQgdGhlICJiZXN0IgorKyAgICAgICAqIGFk ZHJlc3MgaW4gdGhhdCBjYXNlLCBub3Qgc29tZSByYW5kb20gb25lCisrICAgICAgICovCisrICAg ICAgaWYgKGhhdmVhbnN3ZXIgPiAxICYmIHF0eXBlID09IFRfQQorKwkgICYmIF9fcmVzb2x2X2Nv bnRleHRfc29ydF9jb3VudCAoY3R4KSA+IDApCisrCWFkZHJzb3J0IChjdHgsIGhvc3RfZGF0YS0+ aF9hZGRyX3B0cnMsIGhhdmVhbnN3ZXIpOworKworKyAgICAgIGlmIChyZXN1bHQtPmhfbmFtZSA9 PSBOVUxMKQorKwl7CisrCSAgbiA9IHN0cmxlbiAocW5hbWUpICsgMTsJLyogRm9yIHRoZSBcMC4g ICovCisrCSAgaWYgKG4gPiBsaW5lYnVmbGVuKQorKwkgICAgZ290byB0b29fc21hbGw7CisrCSAg aWYgKG4gPj0gTUFYSE9TVE5BTUVMRU4pCisrCSAgICBnb3RvIG5vX3JlY292ZXJ5OworKwkgIHJl c3VsdC0+aF9uYW1lID0gYnA7CisrCSAgYnAgPSBfX21lbXBjcHkgKGJwLCBxbmFtZSwgbik7CS8q IENhbm5vdCBvdmVyZmxvdy4gICovCisrCSAgbGluZWJ1ZmxlbiAtPSBuOworKwl9CisrCisrICAg ICAgaWYgKGhhdmVfdG9fbWFwKQorKwlpZiAobWFwX3Y0djZfaG9zdGVudCAocmVzdWx0LCAmYnAs ICZsaW5lYnVmbGVuKSkKKysJICBnb3RvIHRvb19zbWFsbDsKKysgICAgICAqaF9lcnJub3AgPSBO RVREQl9TVUNDRVNTOworKyAgICAgIHJldHVybiBOU1NfU1RBVFVTX1NVQ0NFU1M7CisrICAgIH0K Kysgbm9fcmVjb3Zlcnk6CisrICAqaF9lcnJub3AgPSBOT19SRUNPVkVSWTsKKysgICplcnJub3Ag PSBFTk9FTlQ7CisrICAvKiBTcGVjaWFsIGNhc2UgaGVyZTogaWYgdGhlIHJlc29sdmVyIHNlbnQg YSByZXN1bHQgYnV0IGl0IG9ubHkKKysgICAgIGNvbnRhaW5zIGEgQ05BTUUgd2hpbGUgd2UgYXJl IGxvb2tpbmcgZm9yIGEgVF9BIG9yIFRfQUFBQSByZWNvcmQsCisrICAgICB3ZSBmYWlsIHdpdGgg Tk9URk9VTkQgaW5zdGVhZCBvZiBUUllBR0FJTi4gICovCisrICByZXR1cm4gKChxdHlwZSA9PSBU X0EgfHwgcXR5cGUgPT0gVF9BQUFBKSAmJiBhcCAhPSBob3N0X2RhdGEtPmFsaWFzZXMKKysJICAg PyBOU1NfU1RBVFVTX05PVEZPVU5EIDogTlNTX1NUQVRVU19UUllBR0FJTik7CisrfQorKworK3N0 YXRpYyBlbnVtIG5zc19zdGF0dXMKKytnZXRhbnN3ZXJfcHRyIChjb25zdCBxdWVyeWJ1ZiAqYW5z d2VyLCBpbnQgYW5zbGVuLCBjb25zdCBjaGFyICpxbmFtZSwKKysJICAgICAgIHN0cnVjdCBob3N0 ZW50ICpyZXN1bHQsIGNoYXIgKmJ1ZmZlciwgc2l6ZV90IGJ1ZmxlbiwKKysJICAgICAgIGludCAq ZXJybm9wLCBpbnQgKmhfZXJybm9wLCBpbnQzMl90ICp0dGxwKQorK3sKKysgIHN0cnVjdCBob3N0 X2RhdGEKKysgIHsKKysgICAgY2hhciAqYWxpYXNlc1tNQVhfTlJfQUxJQVNFU107CisrICAgIHVu c2lnbmVkIGNoYXIgaG9zdF9hZGRyWzE2XTsJLyogSVB2NCBvciBJUHY2ICovCisrICAgIGNoYXIg KmhfYWRkcl9wdHJzWzBdOworKyAgfSAqaG9zdF9kYXRhOworKyAgaW50IGxpbmVidWZsZW47Cisr ICBjb25zdCBIRUFERVIgKmhwOworKyAgY29uc3QgdV9jaGFyICplbmRfb2ZfbWVzc2FnZSwgKmNw OworKyAgaW50IG4sIGFuY291bnQsIHFkY291bnQ7CisrICBpbnQgaGF2ZWFuc3dlciwgaGFkX2Vy cm9yOworKyAgY2hhciAqYnAsICoqYXAsICoqaGFwOworKyAgY2hhciB0YnVmW01BWEROQU1FXTsK KysgIGNvbnN0IGNoYXIgKnRuYW1lOworKyAgdV9jaGFyIHBhY2t0bXBbTlNfTUFYQ0ROQU1FXTsK KysgIHVpbnRwdHJfdCBwYWQgPSAtKHVpbnRwdHJfdCkgYnVmZmVyICUgX19hbGlnbm9mX18gKHN0 cnVjdCBob3N0X2RhdGEpOworKyAgYnVmZmVyICs9IHBhZDsKKysgIGJ1ZmxlbiA9IGJ1ZmxlbiA+ IHBhZCA/IGJ1ZmxlbiAtIHBhZCA6IDA7CisrICBpZiAoX19nbGliY191bmxpa2VseSAoYnVmbGVu IDwgc2l6ZW9mIChzdHJ1Y3QgaG9zdF9kYXRhKSkpCisrICAgIHsKKysgICAgICAvKiBUaGUgYnVm ZmVyIGlzIHRvbyBzbWFsbC4gICovCisrICAgIHRvb19zbWFsbDoKKysgICAgICAqZXJybm9wID0g RVJBTkdFOworKyAgICAgICpoX2Vycm5vcCA9IE5FVERCX0lOVEVSTkFMOworKyAgICAgIHJldHVy biBOU1NfU1RBVFVTX1RSWUFHQUlOOworKyAgICB9CisrICBob3N0X2RhdGEgPSAoc3RydWN0IGhv c3RfZGF0YSAqKSBidWZmZXI7CisrICBsaW5lYnVmbGVuID0gYnVmbGVuIC0gc2l6ZW9mIChzdHJ1 Y3QgaG9zdF9kYXRhKTsKKysgIGlmIChidWZsZW4gLSBzaXplb2YgKHN0cnVjdCBob3N0X2RhdGEp ICE9IGxpbmVidWZsZW4pCisrICAgIGxpbmVidWZsZW4gPSBJTlRfTUFYOworKworKyAgdG5hbWUg PSBxbmFtZTsKKysgIHJlc3VsdC0+aF9uYW1lID0gTlVMTDsKKysgIGVuZF9vZl9tZXNzYWdlID0g YW5zd2VyLT5idWYgKyBhbnNsZW47CisrCisrICAvKgorKyAgICogZmluZCBmaXJzdCBzYXRpc2Zh Y3RvcnkgYW5zd2VyCisrICAgKi8KKysgIGhwID0gJmFuc3dlci0+aGRyOworKyAgYW5jb3VudCA9 IG50b2hzIChocC0+YW5jb3VudCk7CisrICBxZGNvdW50ID0gbnRvaHMgKGhwLT5xZGNvdW50KTsK KysgIGNwID0gYW5zd2VyLT5idWYgKyBIRklYRURTWjsKKysgIGlmIChfX2dsaWJjX3VubGlrZWx5 IChxZGNvdW50ICE9IDEpKQorKyAgICB7CisrICAgICAgKmhfZXJybm9wID0gTk9fUkVDT1ZFUlk7 CisrICAgICAgcmV0dXJuIE5TU19TVEFUVVNfVU5BVkFJTDsKKysgICAgfQorKyAgaWYgKHNpemVv ZiAoc3RydWN0IGhvc3RfZGF0YSkgKyAoYW5jb3VudCArIDEpICogc2l6ZW9mIChjaGFyICopID49 IGJ1ZmxlbikKKysgICAgZ290byB0b29fc21hbGw7CisrICBicCA9IChjaGFyICopICZob3N0X2Rh dGEtPmhfYWRkcl9wdHJzW2FuY291bnQgKyAxXTsKKysgIGxpbmVidWZsZW4gLT0gKGFuY291bnQg KyAxKSAqIHNpemVvZiAoY2hhciAqKTsKKysKKysgIG4gPSBfX25zX25hbWVfdW5wYWNrIChhbnN3 ZXItPmJ1ZiwgZW5kX29mX21lc3NhZ2UsIGNwLAorKwkJCXBhY2t0bXAsIHNpemVvZiBwYWNrdG1w KTsKKysgIGlmIChuICE9IC0xICYmIF9fbnNfbmFtZV9udG9wIChwYWNrdG1wLCBicCwgbGluZWJ1 ZmxlbikgPT0gLTEpCisrICAgIHsKKysgICAgICBpZiAoX19nbGliY191bmxpa2VseSAoZXJybm8g PT0gRU1TR1NJWkUpKQorKwlnb3RvIHRvb19zbWFsbDsKKysKKysgICAgICBuID0gLTE7CisrICAg IH0KKysKKysgIGlmIChfX2dsaWJjX3VubGlrZWx5IChuIDwgMCkpCisrICAgIHsKKysgICAgICAq ZXJybm9wID0gZXJybm87CisrICAgICAgKmhfZXJybm9wID0gTk9fUkVDT1ZFUlk7CisrICAgICAg cmV0dXJuIE5TU19TVEFUVVNfVU5BVkFJTDsKKysgICAgfQorKyAgaWYgKF9fZ2xpYmNfdW5saWtl bHkgKF9fbGliY19yZXNfZG5vayAoYnApID09IDApKQorKyAgICB7CisrICAgICAgZXJybm8gPSBF QkFETVNHOworKyAgICAgICplcnJub3AgPSBFQkFETVNHOworKyAgICAgICpoX2Vycm5vcCA9IE5P X1JFQ09WRVJZOworKyAgICAgIHJldHVybiBOU1NfU1RBVFVTX1VOQVZBSUw7CisrICAgIH0KKysg IGNwICs9IG4gKyBRRklYRURTWjsKKysKKysgIGFwID0gaG9zdF9kYXRhLT5hbGlhc2VzOworKyAg KmFwID0gTlVMTDsKKysgIHJlc3VsdC0+aF9hbGlhc2VzID0gaG9zdF9kYXRhLT5hbGlhc2VzOwor KyAgaGFwID0gaG9zdF9kYXRhLT5oX2FkZHJfcHRyczsKKysgICpoYXAgPSBOVUxMOworKyAgcmVz dWx0LT5oX2FkZHJfbGlzdCA9IGhvc3RfZGF0YS0+aF9hZGRyX3B0cnM7CisrICBoYXZlYW5zd2Vy ID0gMDsKKysgIGhhZF9lcnJvciA9IDA7CisrCisrICB3aGlsZSAoYW5jb3VudC0tID4gMCAmJiBj cCA8IGVuZF9vZl9tZXNzYWdlICYmIGhhZF9lcnJvciA9PSAwKQorKyAgICB7CisrICAgICAgaW50 IHR5cGUsIGNsYXNzOworKworKyAgICAgIG4gPSBfX25zX25hbWVfdW5wYWNrIChhbnN3ZXItPmJ1 ZiwgZW5kX29mX21lc3NhZ2UsIGNwLAorKwkJCSAgICBwYWNrdG1wLCBzaXplb2YgcGFja3RtcCk7 CisrICAgICAgaWYgKG4gIT0gLTEgJiYgX19uc19uYW1lX250b3AgKHBhY2t0bXAsIGJwLCBsaW5l YnVmbGVuKSA9PSAtMSkKKysJeworKwkgIGlmIChfX2dsaWJjX3VubGlrZWx5IChlcnJubyA9PSBF TVNHU0laRSkpCisrCSAgICBnb3RvIHRvb19zbWFsbDsKKysKKysJICBuID0gLTE7CisrCX0KKysK KysgICAgICBpZiAoX19nbGliY191bmxpa2VseSAobiA8IDAgfHwgX19saWJjX3Jlc19kbm9rIChi cCkgPT0gMCkpCisrCXsKKysJICArK2hhZF9lcnJvcjsKKysJICBjb250aW51ZTsKKysJfQorKyAg ICAgIGNwICs9IG47CQkJCS8qIG5hbWUgKi8KKysKKysgICAgICBpZiAoX19nbGliY191bmxpa2Vs eSAoY3AgKyAxMCA+IGVuZF9vZl9tZXNzYWdlKSkKKysJeworKwkgICsraGFkX2Vycm9yOworKwkg IGNvbnRpbnVlOworKwl9CisrCisrICAgICAgTlNfR0VUMTYgKHR5cGUsIGNwKTsKKysgICAgICBO U19HRVQxNiAoY2xhc3MsIGNwKTsKKysgICAgICBpbnQzMl90IHR0bDsKKysgICAgICBOU19HRVQz MiAodHRsLCBjcCk7CisrICAgICAgTlNfR0VUMTYgKG4sIGNwKTsJCS8qIFJEQVRBIGxlbmd0aC4g ICovCisrCisrICAgICAgaWYgKGVuZF9vZl9tZXNzYWdlIC0gY3AgPCBuKQorKwl7CisrCSAgLyog UkRBVEEgZXh0ZW5kcyBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgcGFja2V0LiAgKi8KKysJICArK2hh ZF9lcnJvcjsKKysJICBjb250aW51ZTsKKysJfQorKworKyAgICAgIGlmIChfX2dsaWJjX3VubGlr ZWx5IChjbGFzcyAhPSBDX0lOKSkKKysJeworKwkgIC8qIFhYWCAtIGRlYnVnPyBzeXNsb2c/ICov CisrCSAgY3AgKz0gbjsKKysJICBjb250aW51ZTsJCQkvKiBYWFggLSBoYWRfZXJyb3IrKyA/ICov CisrCX0KKysKKysgICAgICBpZiAodHlwZSA9PSBUX0NOQU1FKQorIAl7CisgCSAgLyogQSBDTkFN RSBjb3VsZCBhbHNvIGhhdmUgYSBUVEwgZW50cnkuICAqLworIAkgIGlmICh0dGxwICE9IE5VTEwg JiYgdHRsIDwgKnR0bHApCitAQCAtODg2LDE0ICsxMTI3LDYgQEAgZ2V0YW5zd2VyX3IgKHN0cnVj dCByZXNvbHZfY29udGV4dCAqY3R4LAorIAkgIGNvbnRpbnVlOworIAl9CisgCistICAgICAgaWYg KHR5cGUgPT0gVF9BICYmIHF0eXBlID09IFRfQUFBQSAmJiBtYXApCistCWhhdmVfdG9fbWFwID0g MTsKKy0gICAgICBlbHNlIGlmIChfX2dsaWJjX3VubGlrZWx5ICh0eXBlICE9IHF0eXBlKSkKKy0J eworLQkgIGNwICs9IG47CistCSAgY29udGludWU7CQkJLyogWFhYIC0gaGFkX2Vycm9yKysgPyAq LworLQl9CistCisgICAgICAgc3dpdGNoICh0eXBlKQorIAl7CisgCWNhc2UgVF9QVFI6CitAQCAt OTU1LDggKzExODgsNiBAQCBnZXRhbnN3ZXJfciAoc3RydWN0IHJlc29sdl9jb250ZXh0ICpjdHgs CisgCQkgVFRMIGluIHRoZSBjaGFpbi4gICovCisgCSAgICAgIGlmICh0dGxwICE9IE5VTEwgJiYg dHRsIDwgKnR0bHApCisgCQkqdHRscCA9IHR0bDsKKy0JICAgICAgaWYgKGNhbm9ucCAhPSBOVUxM KQorLQkJKmNhbm9ucCA9IGJwOworIAkgICAgICByZXN1bHQtPmhfbmFtZSA9IGJwOworIAkgICAg ICBubiA9IHN0cmxlbiAoYnApICsgMTsJLyogZm9yIHRoZSBcMCAqLworIAkgICAgICBicCArPSBu bjsKK0BAIC05ODMsNyArMTIxNCw4IEBAIGdldGFuc3dlcl9yIChzdHJ1Y3QgcmVzb2x2X2NvbnRl eHQgKmN0eCwKKyAJICBsaW5lYnVmbGVuIC09IG47CisgCSAgYnJlYWs7CisgCWRlZmF1bHQ6Cist CSAgYWJvcnQgKCk7CisrCSAgY3AgKz0gbjsKKysJICBjb250aW51ZTsJCQkvKiBYWFggLSBoYWRf ZXJyb3IrKyA/ICovCisgCX0KKyAgICAgICBpZiAoaGFkX2Vycm9yID09IDApCisgCSsraGF2ZWFu c3dlcjsKK0BAIC05OTMsMTQgKzEyMjUsNiBAQCBnZXRhbnN3ZXJfciAoc3RydWN0IHJlc29sdl9j b250ZXh0ICpjdHgsCisgICAgIHsKKyAgICAgICAqYXAgPSBOVUxMOworICAgICAgICpoYXAgPSBO VUxMOworLSAgICAgIC8qCistICAgICAgICogTm90ZTogd2Ugc29ydCBldmVuIGlmIGhvc3QgY2Fu IHRha2Ugb25seSBvbmUgYWRkcmVzcworLSAgICAgICAqIGluIGl0cyByZXR1cm4gc3RydWN0dXJl cyAtIHNob3VsZCBnaXZlIGl0IHRoZSAiYmVzdCIKKy0gICAgICAgKiBhZGRyZXNzIGluIHRoYXQg Y2FzZSwgbm90IHNvbWUgcmFuZG9tIG9uZQorLSAgICAgICAqLworLSAgICAgIGlmIChoYXZlYW5z d2VyID4gMSAmJiBxdHlwZSA9PSBUX0EKKy0JICAmJiBfX3Jlc29sdl9jb250ZXh0X3NvcnRfY291 bnQgKGN0eCkgPiAwKQorLQlhZGRyc29ydCAoY3R4LCBob3N0X2RhdGEtPmhfYWRkcl9wdHJzLCBo YXZlYW5zd2VyKTsKKyAKKyAgICAgICBpZiAocmVzdWx0LT5oX25hbWUgPT0gTlVMTCkKKyAJewor QEAgLTEwMTQsMjMgKzEyMzgsMTUgQEAgZ2V0YW5zd2VyX3IgKHN0cnVjdCByZXNvbHZfY29udGV4 dCAqY3R4LAorIAkgIGxpbmVidWZsZW4gLT0gbjsKKyAJfQorIAorLSAgICAgIGlmIChoYXZlX3Rv X21hcCkKKy0JaWYgKG1hcF92NHY2X2hvc3RlbnQgKHJlc3VsdCwgJmJwLCAmbGluZWJ1Zmxlbikp CistCSAgZ290byB0b29fc21hbGw7CisgICAgICAgKmhfZXJybm9wID0gTkVUREJfU1VDQ0VTUzsK KyAgICAgICByZXR1cm4gTlNTX1NUQVRVU19TVUNDRVNTOworICAgICB9CisgIG5vX3JlY292ZXJ5 OgorICAgKmhfZXJybm9wID0gTk9fUkVDT1ZFUlk7CisgICAqZXJybm9wID0gRU5PRU5UOworLSAg LyogU3BlY2lhbCBjYXNlIGhlcmU6IGlmIHRoZSByZXNvbHZlciBzZW50IGEgcmVzdWx0IGJ1dCBp dCBvbmx5CistICAgICBjb250YWlucyBhIENOQU1FIHdoaWxlIHdlIGFyZSBsb29raW5nIGZvciBh IFRfQSBvciBUX0FBQUEgcmVjb3JkLAorLSAgICAgd2UgZmFpbCB3aXRoIE5PVEZPVU5EIGluc3Rl YWQgb2YgVFJZQUdBSU4uICAqLworLSAgcmV0dXJuICgocXR5cGUgPT0gVF9BIHx8IHF0eXBlID09 IFRfQUFBQSkgJiYgYXAgIT0gaG9zdF9kYXRhLT5hbGlhc2VzCistCSAgID8gTlNTX1NUQVRVU19O T1RGT1VORCA6IE5TU19TVEFUVVNfVFJZQUdBSU4pOworKyAgcmV0dXJuIE5TU19TVEFUVVNfVFJZ QUdBSU47CisgfQorIAorLQorIHN0YXRpYyBlbnVtIG5zc19zdGF0dXMKKyBnYWloX2dldGFuc3dl cl9zbGljZSAoY29uc3QgcXVlcnlidWYgKmFuc3dlciwgaW50IGFuc2xlbiwgY29uc3QgY2hhciAq cW5hbWUsCisgCQkgICAgICBzdHJ1Y3QgZ2FpaF9hZGRydHVwbGUgKioqcGF0cCwKKy0tIAorMi4z OC4xCisKKworRnJvbSA3N2Y1MjNjNDczODc4ZWMwMDUxNTgyZWYxNTE2MWM2OTgyODc5MDk1IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRmxvcmlhbiBXZWltZXIgPGZ3ZWltZXJAcmVk aGF0LmNvbT4KK0RhdGU6IFR1ZSwgMzAgQXVnIDIwMjIgMTA6MDI6NDkgKzAyMDAKK1N1YmplY3Q6 IG5zc19kbnM6IFJld3JpdGUgX25zc19kbnNfZ2V0aG9zdGJ5YWRkcjJfciBhbmQgZ2V0YW5zd2Vy X3B0cgorCitUaGUgc2ltcGxpZmljYXRpb24gdGFrZXMgYWR2YW50YWdlIG9mIHRoZSBzcGxpdCBm cm9tIGdldGFuc3dlcl9yLgorSXQgZml4ZXMgdmFyaW91cyBhbGlhc2VzIGlzc3VlcywgYW5kIG9w dGltaXplcyBOU1MgYnVmZmVyIHVzYWdlLgorVGhlIG5ldyBETlMgcGFja2V0IHBhcnNpbmcgaGVs cGVycyBhcmUgdXNlZCwgdG9vLgorCitSZXZpZXdlZC1ieTogU2lkZGhlc2ggUG95YXJla2FyIDxz aWRkaGVzaEBzb3VyY2V3YXJlLm9yZz4KKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IGUzMjU0 N2Q2NjFhNDNkYTYzMzY4ZTQ4OGI2Y2ZhOWM1M2I0ZGNmOTIpCistLS0KKyByZXNvbHYvbnNzX2Ru cy9kbnMtaG9zdC5jIHwgNDA1ICsrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgMSBmaWxlIGNoYW5nZWQsIDEwMiBpbnNlcnRpb25zKCspLCAzMDMgZGVsZXRpb25zKC0pCisK K2RpZmYgLS1naXQgYS9yZXNvbHYvbnNzX2Rucy9kbnMtaG9zdC5jIGIvcmVzb2x2L25zc19kbnMv ZG5zLWhvc3QuYworaW5kZXggZDM4NGUxZjgyZC4uY2QyNjM5OWI3ZSAxMDA2NDQKKy0tLSBhL3Jl c29sdi9uc3NfZG5zL2Rucy1ob3N0LmMKKysrKyBiL3Jlc29sdi9uc3NfZG5zL2Rucy1ob3N0LmMK K0BAIC02OSw2ICs2OSw3IEBACisgICogLS1Db3B5cmlnaHQtLQorICAqLworIAorKyNpbmNsdWRl IDxhbGxvY19idWZmZXIuaD4KKyAjaW5jbHVkZSA8YXNzZXJ0Lmg+CisgI2luY2x1ZGUgPGN0eXBl Lmg+CisgI2luY2x1ZGUgPGVycm5vLmg+CitAQCAtMTE2LDEwICsxMTcsOSBAQCBzdGF0aWMgZW51 bSBuc3Nfc3RhdHVzIGdldGFuc3dlcl9yIChzdHJ1Y3QgcmVzb2x2X2NvbnRleHQgKmN0eCwKKyAJ CQkJICAgIHN0cnVjdCBob3N0ZW50ICpyZXN1bHQsIGNoYXIgKmJ1ZmZlciwKKyAJCQkJICAgIHNp emVfdCBidWZsZW4sIGludCAqZXJybm9wLCBpbnQgKmhfZXJybm9wLAorIAkJCQkgICAgaW50IG1h cCwgaW50MzJfdCAqdHRscCwgY2hhciAqKmNhbm9ucCk7Cistc3RhdGljIGVudW0gbnNzX3N0YXR1 cyBnZXRhbnN3ZXJfcHRyIChjb25zdCBxdWVyeWJ1ZiAqYW5zd2VyLCBpbnQgYW5zbGVuLAorLQkJ CQkgICAgICBjb25zdCBjaGFyICpxbmFtZSwKKy0JCQkJICAgICAgc3RydWN0IGhvc3RlbnQgKnJl c3VsdCwgY2hhciAqYnVmZmVyLAorLQkJCQkgICAgICBzaXplX3QgYnVmbGVuLCBpbnQgKmVycm5v cCwKKytzdGF0aWMgZW51bSBuc3Nfc3RhdHVzIGdldGFuc3dlcl9wdHIgKHVuc2lnbmVkIGNoYXIg KnBhY2tldCwgc2l6ZV90IHBhY2tldGxlbiwKKysJCQkJICAgICAgc3RydWN0IGFsbG9jX2J1ZmZl ciAqYWJ1ZiwKKysJCQkJICAgICAgY2hhciAqKmhuYW1lcCwgaW50ICplcnJub3AsCisgCQkJCSAg ICAgIGludCAqaF9lcnJub3AsIGludDMyX3QgKnR0bHApOworIAorIHN0YXRpYyBlbnVtIG5zc19z dGF0dXMgZ2FpaF9nZXRhbnN3ZXIgKGNvbnN0IHF1ZXJ5YnVmICphbnN3ZXIxLCBpbnQgYW5zbGVu MSwKK0BAIC00NTYsMzYgKzQ1NiwyMSBAQCBfbnNzX2Ruc19nZXRob3N0YnlhZGRyMl9yIChjb25z dCB2b2lkICphZGRyLCBzb2NrbGVuX3QgbGVuLCBpbnQgYWYsCisgICBzdGF0aWMgY29uc3QgdV9j aGFyIHR1bm5lbGxlZFtdID0geyAwLDAsIDAsMCwgMCwwLCAwLDAsIDAsMCwgMCwwIH07CisgICBz dGF0aWMgY29uc3QgdV9jaGFyIHY2bG9jYWxbXSA9IHsgMCwwLCAwLDEgfTsKKyAgIGNvbnN0IHVf Y2hhciAqdWFkZHIgPSAoY29uc3QgdV9jaGFyICopYWRkcjsKKy0gIHN0cnVjdCBob3N0X2RhdGEK Ky0gIHsKKy0gICAgY2hhciAqYWxpYXNlc1tNQVhfTlJfQUxJQVNFU107CistICAgIHVuc2lnbmVk IGNoYXIgaG9zdF9hZGRyWzE2XTsJLyogSVB2NCBvciBJUHY2ICovCistICAgIGNoYXIgKmhfYWRk cl9wdHJzW01BWF9OUl9BRERSUyArIDFdOworLSAgICBjaGFyIGxpbmVidWZmZXJbMF07CistICB9 ICpob3N0X2RhdGEgPSAoc3RydWN0IGhvc3RfZGF0YSAqKSBidWZmZXI7CistICB1bmlvbgorLSAg eworLSAgICBxdWVyeWJ1ZiAqYnVmOworLSAgICB1X2NoYXIgKnB0cjsKKy0gIH0gaG9zdF9idWZm ZXI7CistICBxdWVyeWJ1ZiAqb3JpZ19ob3N0X2J1ZmZlcjsKKyAgIGNoYXIgcWJ1ZltNQVhETkFN RSsxXSwgKnFwID0gTlVMTDsKKyAgIHNpemVfdCBzaXplOworICAgaW50IG4sIHN0YXR1czsKKyAg IGludCBvbGRlcnIgPSBlcnJubzsKKyAKKy0gdWludHB0cl90IHBhZCA9IC0odWludHB0cl90KSBi dWZmZXIgJSBfX2FsaWdub2ZfXyAoc3RydWN0IGhvc3RfZGF0YSk7CistIGJ1ZmZlciArPSBwYWQ7 CistIGJ1ZmxlbiA9IGJ1ZmxlbiA+IHBhZCA/IGJ1ZmxlbiAtIHBhZCA6IDA7CistCistIGlmIChf X2dsaWJjX3VubGlrZWx5IChidWZsZW4gPCBzaXplb2YgKHN0cnVjdCBob3N0X2RhdGEpKSkKKy0g ICB7CistICAgICAqZXJybm9wID0gRVJBTkdFOworLSAgICAgKmhfZXJybm9wID0gTkVUREJfSU5U RVJOQUw7CistICAgICByZXR1cm4gTlNTX1NUQVRVU19UUllBR0FJTjsKKy0gICB9CistCistIGhv c3RfZGF0YSA9IChzdHJ1Y3QgaG9zdF9kYXRhICopIGJ1ZmZlcjsKKysgIC8qIFByZXBhcmUgdGhl IGFsbG9jYXRpb24gYnVmZmVyLiAgU3RvcmUgdGhlIHBvaW50ZXIgYXJyYXkgZmlyc3QsIHRvCisr ICAgICBiZW5lZml0IGZyb20gYnVmZmVyIGFsaWdubWVudC4gICovCisrICBzdHJ1Y3QgYWxsb2Nf YnVmZmVyIGFidWYgPSBhbGxvY19idWZmZXJfY3JlYXRlIChidWZmZXIsIGJ1Zmxlbik7CisrICBj aGFyICoqYWRkcmVzc19hcnJheSA9IGFsbG9jX2J1ZmZlcl9hbGxvY19hcnJheSAoJmFidWYsIGNo YXIgKiwgMik7CisrICBpZiAoYWRkcmVzc19hcnJheSA9PSBOVUxMKQorKyAgICB7CisrICAgICAg KmVycm5vcCA9IEVSQU5HRTsKKysgICAgICAqaF9lcnJub3AgPSBORVREQl9JTlRFUk5BTDsKKysg ICAgICByZXR1cm4gTlNTX1NUQVRVU19UUllBR0FJTjsKKysgICAgfQorIAorICAgc3RydWN0IHJl c29sdl9jb250ZXh0ICpjdHggPSBfX3Jlc29sdl9jb250ZXh0X2dldCAoKTsKKyAgIGlmIChjdHgg PT0gTlVMTCkKK0BAIC01MjksOCArNTE0LDYgQEAgX25zc19kbnNfZ2V0aG9zdGJ5YWRkcjJfciAo Y29uc3Qgdm9pZCAqYWRkciwgc29ja2xlbl90IGxlbiwgaW50IGFmLAorICAgICAgIHJldHVybiBO U1NfU1RBVFVTX1VOQVZBSUw7CisgICAgIH0KKyAKKy0gIGhvc3RfYnVmZmVyLmJ1ZiA9IG9yaWdf aG9zdF9idWZmZXIgPSAocXVlcnlidWYgKikgYWxsb2NhICgxMDI0KTsKKy0KKyAgIHN3aXRjaCAo YWYpCisgICAgIHsKKyAgICAgY2FzZSBBRl9JTkVUOgorQEAgLTU1NCwzNSArNTM3LDUyIEBAIF9u c3NfZG5zX2dldGhvc3RieWFkZHIyX3IgKGNvbnN0IHZvaWQgKmFkZHIsIHNvY2tsZW5fdCBsZW4s IGludCBhZiwKKyAgICAgICBicmVhazsKKyAgICAgfQorIAorLSAgbiA9IF9fcmVzX2NvbnRleHRf cXVlcnkgKGN0eCwgcWJ1ZiwgQ19JTiwgVF9QVFIsIGhvc3RfYnVmZmVyLmJ1Zi0+YnVmLAorLQkJ CSAgIDEwMjQsICZob3N0X2J1ZmZlci5wdHIsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwpOworKyAg dW5zaWduZWQgY2hhciBkbnNfcGFja2V0X2J1ZmZlclsxMDI0XTsKKysgIHVuc2lnbmVkIGNoYXIg KmFsdF9kbnNfcGFja2V0X2J1ZmZlciA9IGRuc19wYWNrZXRfYnVmZmVyOworKyAgbiA9IF9fcmVz X2NvbnRleHRfcXVlcnkgKGN0eCwgcWJ1ZiwgQ19JTiwgVF9QVFIsCisrCQkJICAgZG5zX3BhY2tl dF9idWZmZXIsIHNpemVvZiAoZG5zX3BhY2tldF9idWZmZXIpLAorKwkJCSAgICZhbHRfZG5zX3Bh Y2tldF9idWZmZXIsCisrCQkJICAgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCk7CisgICBpZiAobiA8 IDApCisgICAgIHsKKyAgICAgICAqaF9lcnJub3AgPSBoX2Vycm5vOworICAgICAgIF9fc2V0X2Vy cm5vIChvbGRlcnIpOworLSAgICAgIGlmIChob3N0X2J1ZmZlci5idWYgIT0gb3JpZ19ob3N0X2J1 ZmZlcikKKy0JZnJlZSAoaG9zdF9idWZmZXIuYnVmKTsKKysgICAgICBpZiAoYWx0X2Ruc19wYWNr ZXRfYnVmZmVyICE9IGRuc19wYWNrZXRfYnVmZmVyKQorKwlmcmVlIChhbHRfZG5zX3BhY2tldF9i dWZmZXIpOworICAgICAgIF9fcmVzb2x2X2NvbnRleHRfcHV0IChjdHgpOworICAgICAgIHJldHVy biBlcnJubyA9PSBFQ09OTlJFRlVTRUQgPyBOU1NfU1RBVFVTX1VOQVZBSUwgOiBOU1NfU1RBVFVT X05PVEZPVU5EOworICAgICB9CisgCistICBzdGF0dXMgPSBnZXRhbnN3ZXJfcHRyIChob3N0X2J1 ZmZlci5idWYsIG4sIHFidWYsIHJlc3VsdCwKKy0JCQkgIGJ1ZmZlciwgYnVmbGVuLCBlcnJub3As IGhfZXJybm9wLCB0dGxwKTsKKy0gIGlmIChob3N0X2J1ZmZlci5idWYgIT0gb3JpZ19ob3N0X2J1 ZmZlcikKKy0gICAgZnJlZSAoaG9zdF9idWZmZXIuYnVmKTsKKysgIHN0YXR1cyA9IGdldGFuc3dl cl9wdHIgKGFsdF9kbnNfcGFja2V0X2J1ZmZlciwgbiwKKysJCQkgICZhYnVmLCAmcmVzdWx0LT5o X25hbWUsIGVycm5vcCwgaF9lcnJub3AsIHR0bHApOworKworKyAgaWYgKGFsdF9kbnNfcGFja2V0 X2J1ZmZlciAhPSBkbnNfcGFja2V0X2J1ZmZlcikKKysgICAgZnJlZSAoYWx0X2Ruc19wYWNrZXRf YnVmZmVyKTsKKysgIF9fcmVzb2x2X2NvbnRleHRfcHV0IChjdHgpOworKworICAgaWYgKHN0YXR1 cyAhPSBOU1NfU1RBVFVTX1NVQ0NFU1MpCistICAgIHsKKy0gICAgICBfX3Jlc29sdl9jb250ZXh0 X3B1dCAoY3R4KTsKKy0gICAgICByZXR1cm4gc3RhdHVzOworLSAgICB9CisrICAgIHJldHVybiBz dGF0dXM7CisgCisrICAvKiByZXN1bHQtPmhfbmFtZSBoYXMgYWxyZWFkeSBiZWVuIHNldCBieSBn ZXRhbnN3ZXJfcHRyLiAgKi8KKyAgIHJlc3VsdC0+aF9hZGRydHlwZSA9IGFmOworICAgcmVzdWx0 LT5oX2xlbmd0aCA9IGxlbjsKKy0gIG1lbWNweSAoaG9zdF9kYXRhLT5ob3N0X2FkZHIsIGFkZHIs IGxlbik7CistICBob3N0X2RhdGEtPmhfYWRkcl9wdHJzWzBdID0gKGNoYXIgKikgaG9zdF9kYXRh LT5ob3N0X2FkZHI7CistICBob3N0X2RhdGEtPmhfYWRkcl9wdHJzWzFdID0gTlVMTDsKKysgIC8q IEluY3JlYXNlIHRoZSBhbGlnbm1lbnQgdG8gNCwgaW4gY2FzZSB0aGVyZSBhcmUgYXBwbGljYXRp b25zIG91dAorKyAgICAgdGhlcmUgdGhhdCBleHBlY3QgYXQgbGVhc3QgdGhpcyBsZXZlbCBvZiBh ZGRyZXNzIGFsaWdubWVudC4gICovCisrICBhZGRyZXNzX2FycmF5WzBdID0gKGNoYXIgKikgYWxs b2NfYnVmZmVyX25leHQgKCZhYnVmLCB1aW50MzJfdCk7CisrICBhbGxvY19idWZmZXJfY29weV9i eXRlcyAoJmFidWYsIHVhZGRyLCBsZW4pOworKyAgYWRkcmVzc19hcnJheVsxXSA9IE5VTEw7Cisr CisrICAvKiBUaGlzIGNoZWNrIGFsc28gY292ZXJzIGFsbG9jYXRpb24gZmFpbHVyZSBpbiBnZXRh bnN3ZXJfcHRyLiAgKi8KKysgIGlmIChhbGxvY19idWZmZXJfaGFzX2ZhaWxlZCAoJmFidWYpKQor KyAgICB7CisrICAgICAgKmVycm5vcCA9IEVSQU5HRTsKKysgICAgICAqaF9lcnJub3AgPSBORVRE Ql9JTlRFUk5BTDsKKysgICAgICByZXR1cm4gTlNTX1NUQVRVU19UUllBR0FJTjsKKysgICAgfQor KyAgcmVzdWx0LT5oX2FkZHJfbGlzdCA9IGFkZHJlc3NfYXJyYXk7CisrICByZXN1bHQtPmhfYWxp YXNlcyA9ICZhZGRyZXNzX2FycmF5WzFdOyAvKiBQb2ludHMgdG8gTlVMTC4gICovCisrCisgICAq aF9lcnJub3AgPSBORVREQl9TVUNDRVNTOworLSAgX19yZXNvbHZfY29udGV4dF9wdXQgKGN0eCk7 CisgICByZXR1cm4gTlNTX1NUQVRVU19TVUNDRVNTOworIH0KKyBsaWJjX2hpZGRlbl9kZWYgKF9u c3NfZG5zX2dldGhvc3RieWFkZHIyX3IpCitAQCAtOTYxLDI4NyArOTYxLDg2IEBAIGdldGFuc3dl cl9yIChzdHJ1Y3QgcmVzb2x2X2NvbnRleHQgKmN0eCwKKyB9CisgCisgc3RhdGljIGVudW0gbnNz X3N0YXR1cworLWdldGFuc3dlcl9wdHIgKGNvbnN0IHF1ZXJ5YnVmICphbnN3ZXIsIGludCBhbnNs ZW4sIGNvbnN0IGNoYXIgKnFuYW1lLAorLQkgICAgICAgc3RydWN0IGhvc3RlbnQgKnJlc3VsdCwg Y2hhciAqYnVmZmVyLCBzaXplX3QgYnVmbGVuLAorK2dldGFuc3dlcl9wdHIgKHVuc2lnbmVkIGNo YXIgKnBhY2tldCwgc2l6ZV90IHBhY2tldGxlbiwKKysJICAgICAgIHN0cnVjdCBhbGxvY19idWZm ZXIgKmFidWYsIGNoYXIgKipobmFtZXAsCisgCSAgICAgICBpbnQgKmVycm5vcCwgaW50ICpoX2Vy cm5vcCwgaW50MzJfdCAqdHRscCkKKyB7CistICBzdHJ1Y3QgaG9zdF9kYXRhCistICB7CistICAg IGNoYXIgKmFsaWFzZXNbTUFYX05SX0FMSUFTRVNdOworLSAgICB1bnNpZ25lZCBjaGFyIGhvc3Rf YWRkclsxNl07CS8qIElQdjQgb3IgSVB2NiAqLworLSAgICBjaGFyICpoX2FkZHJfcHRyc1swXTsK Ky0gIH0gKmhvc3RfZGF0YTsKKy0gIGludCBsaW5lYnVmbGVuOworLSAgY29uc3QgSEVBREVSICpo cDsKKy0gIGNvbnN0IHVfY2hhciAqZW5kX29mX21lc3NhZ2UsICpjcDsKKy0gIGludCBuLCBhbmNv dW50LCBxZGNvdW50OworLSAgaW50IGhhdmVhbnN3ZXIsIGhhZF9lcnJvcjsKKy0gIGNoYXIgKmJw LCAqKmFwLCAqKmhhcDsKKy0gIGNoYXIgdGJ1ZltNQVhETkFNRV07CistICBjb25zdCBjaGFyICp0 bmFtZTsKKy0gIHVfY2hhciBwYWNrdG1wW05TX01BWENETkFNRV07CistICB1aW50cHRyX3QgcGFk ID0gLSh1aW50cHRyX3QpIGJ1ZmZlciAlIF9fYWxpZ25vZl9fIChzdHJ1Y3QgaG9zdF9kYXRhKTsK Ky0gIGJ1ZmZlciArPSBwYWQ7CistICBidWZsZW4gPSBidWZsZW4gPiBwYWQgPyBidWZsZW4gLSBw YWQgOiAwOworLSAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKGJ1ZmxlbiA8IHNpemVvZiAoc3RydWN0 IGhvc3RfZGF0YSkpKQorLSAgICB7CistICAgICAgLyogVGhlIGJ1ZmZlciBpcyB0b28gc21hbGwu ICAqLworLSAgICB0b29fc21hbGw6CistICAgICAgKmVycm5vcCA9IEVSQU5HRTsKKy0gICAgICAq aF9lcnJub3AgPSBORVREQl9JTlRFUk5BTDsKKy0gICAgICByZXR1cm4gTlNTX1NUQVRVU19UUllB R0FJTjsKKy0gICAgfQorLSAgaG9zdF9kYXRhID0gKHN0cnVjdCBob3N0X2RhdGEgKikgYnVmZmVy OworLSAgbGluZWJ1ZmxlbiA9IGJ1ZmxlbiAtIHNpemVvZiAoc3RydWN0IGhvc3RfZGF0YSk7Cist ICBpZiAoYnVmbGVuIC0gc2l6ZW9mIChzdHJ1Y3QgaG9zdF9kYXRhKSAhPSBsaW5lYnVmbGVuKQor LSAgICBsaW5lYnVmbGVuID0gSU5UX01BWDsKKy0KKy0gIHRuYW1lID0gcW5hbWU7CistICByZXN1 bHQtPmhfbmFtZSA9IE5VTEw7CistICBlbmRfb2ZfbWVzc2FnZSA9IGFuc3dlci0+YnVmICsgYW5z bGVuOworLQorLSAgLyoKKy0gICAqIGZpbmQgZmlyc3Qgc2F0aXNmYWN0b3J5IGFuc3dlcgorLSAg ICovCistICBocCA9ICZhbnN3ZXItPmhkcjsKKy0gIGFuY291bnQgPSBudG9ocyAoaHAtPmFuY291 bnQpOworLSAgcWRjb3VudCA9IG50b2hzIChocC0+cWRjb3VudCk7CistICBjcCA9IGFuc3dlci0+ YnVmICsgSEZJWEVEU1o7CistICBpZiAoX19nbGliY191bmxpa2VseSAocWRjb3VudCAhPSAxKSkK Ky0gICAgeworLSAgICAgICpoX2Vycm5vcCA9IE5PX1JFQ09WRVJZOworLSAgICAgIHJldHVybiBO U1NfU1RBVFVTX1VOQVZBSUw7CistICAgIH0KKy0gIGlmIChzaXplb2YgKHN0cnVjdCBob3N0X2Rh dGEpICsgKGFuY291bnQgKyAxKSAqIHNpemVvZiAoY2hhciAqKSA+PSBidWZsZW4pCistICAgIGdv dG8gdG9vX3NtYWxsOworLSAgYnAgPSAoY2hhciAqKSAmaG9zdF9kYXRhLT5oX2FkZHJfcHRyc1th bmNvdW50ICsgMV07CistICBsaW5lYnVmbGVuIC09IChhbmNvdW50ICsgMSkgKiBzaXplb2YgKGNo YXIgKik7CistCistICBuID0gX19uc19uYW1lX3VucGFjayAoYW5zd2VyLT5idWYsIGVuZF9vZl9t ZXNzYWdlLCBjcCwKKy0JCQlwYWNrdG1wLCBzaXplb2YgcGFja3RtcCk7CistICBpZiAobiAhPSAt MSAmJiBfX25zX25hbWVfbnRvcCAocGFja3RtcCwgYnAsIGxpbmVidWZsZW4pID09IC0xKQorKyAg c3RydWN0IG5zX3JyX2N1cnNvciBjOworKyAgaWYgKCFfX25zX3JyX2N1cnNvcl9pbml0ICgmYywg cGFja2V0LCBwYWNrZXRsZW4pKQorICAgICB7CistICAgICAgaWYgKF9fZ2xpYmNfdW5saWtlbHkg KGVycm5vID09IEVNU0dTSVpFKSkKKy0JZ290byB0b29fc21hbGw7CistCistICAgICAgbiA9IC0x OworLSAgICB9CistCistICBpZiAoX19nbGliY191bmxpa2VseSAobiA8IDApKQorLSAgICB7Cist ICAgICAgKmVycm5vcCA9IGVycm5vOworLSAgICAgICpoX2Vycm5vcCA9IE5PX1JFQ09WRVJZOwor LSAgICAgIHJldHVybiBOU1NfU1RBVFVTX1VOQVZBSUw7CistICAgIH0KKy0gIGlmIChfX2dsaWJj X3VubGlrZWx5IChfX2xpYmNfcmVzX2Rub2sgKGJwKSA9PSAwKSkKKy0gICAgeworLSAgICAgIGVy cm5vID0gRUJBRE1TRzsKKy0gICAgICAqZXJybm9wID0gRUJBRE1TRzsKKysgICAgICAvKiBUaGlz IHNob3VsZCBub3QgaGFwcGVuIGJlY2F1c2UgX19yZXNfY29udGV4dF9xdWVyeSBhbHJlYWR5Cisr CSBwZXJmcm9tcyByZXNwb25zZSB2YWxpZGF0aW9uLiAgKi8KKyAgICAgICAqaF9lcnJub3AgPSBO T19SRUNPVkVSWTsKKyAgICAgICByZXR1cm4gTlNTX1NUQVRVU19VTkFWQUlMOworICAgICB9Cist ICBjcCArPSBuICsgUUZJWEVEU1o7CisrICBpbnQgYW5jb3VudCA9IG5zX3JyX2N1cnNvcl9hbmNv dW50ICgmYyk7CisrICBjb25zdCB1bnNpZ25lZCBjaGFyICpleHBlY3RlZF9uYW1lID0gbnNfcnJf Y3Vyc29yX3FuYW1lICgmYyk7CisrICAvKiBleHBlY3RlZF9uYW1lIG1heSBiZSB1cGRhdGVkIHRv IHBvaW50IGludG8gdGhpcyBidWZmZXIuICAqLworKyAgdW5zaWduZWQgY2hhciBuYW1lX2J1ZmZl cltOU19NQVhDRE5BTUVdOworIAorLSAgYXAgPSBob3N0X2RhdGEtPmFsaWFzZXM7CistICAqYXAg PSBOVUxMOworLSAgcmVzdWx0LT5oX2FsaWFzZXMgPSBob3N0X2RhdGEtPmFsaWFzZXM7CistICBo YXAgPSBob3N0X2RhdGEtPmhfYWRkcl9wdHJzOworLSAgKmhhcCA9IE5VTEw7CistICByZXN1bHQt PmhfYWRkcl9saXN0ID0gaG9zdF9kYXRhLT5oX2FkZHJfcHRyczsKKy0gIGhhdmVhbnN3ZXIgPSAw OworLSAgaGFkX2Vycm9yID0gMDsKKy0KKy0gIHdoaWxlIChhbmNvdW50LS0gPiAwICYmIGNwIDwg ZW5kX29mX21lc3NhZ2UgJiYgaGFkX2Vycm9yID09IDApCisrICB3aGlsZSAoYW5jb3VudCA+IDAp CisgICAgIHsKKy0gICAgICBpbnQgdHlwZSwgY2xhc3M7CistCistICAgICAgbiA9IF9fbnNfbmFt ZV91bnBhY2sgKGFuc3dlci0+YnVmLCBlbmRfb2ZfbWVzc2FnZSwgY3AsCistCQkJICAgIHBhY2t0 bXAsIHNpemVvZiBwYWNrdG1wKTsKKy0gICAgICBpZiAobiAhPSAtMSAmJiBfX25zX25hbWVfbnRv cCAocGFja3RtcCwgYnAsIGxpbmVidWZsZW4pID09IC0xKQorKyAgICAgIHN0cnVjdCBuc19ycl93 aXJlIHJyOworKyAgICAgIGlmICghX19uc19ycl9jdXJzb3JfbmV4dCAoJmMsICZycikpCisgCXsK Ky0JICBpZiAoX19nbGliY191bmxpa2VseSAoZXJybm8gPT0gRU1TR1NJWkUpKQorLQkgICAgZ290 byB0b29fc21hbGw7CistCistCSAgbiA9IC0xOworLQl9CistCistICAgICAgaWYgKF9fZ2xpYmNf dW5saWtlbHkgKG4gPCAwIHx8IF9fbGliY19yZXNfZG5vayAoYnApID09IDApKQorLQl7CistCSAg KytoYWRfZXJyb3I7CistCSAgY29udGludWU7CistCX0KKy0gICAgICBjcCArPSBuOwkJCQkvKiBu YW1lICovCistCistICAgICAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKGNwICsgMTAgPiBlbmRfb2Zf bWVzc2FnZSkpCistCXsKKy0JICArK2hhZF9lcnJvcjsKKy0JICBjb250aW51ZTsKKysJICAqaF9l cnJub3AgPSBOT19SRUNPVkVSWTsKKysJICByZXR1cm4gTlNTX1NUQVRVU19VTkFWQUlMOworIAl9 CisgCistICAgICAgTlNfR0VUMTYgKHR5cGUsIGNwKTsKKy0gICAgICBOU19HRVQxNiAoY2xhc3Ms IGNwKTsKKy0gICAgICBpbnQzMl90IHR0bDsKKy0gICAgICBOU19HRVQzMiAodHRsLCBjcCk7Cist ICAgICAgTlNfR0VUMTYgKG4sIGNwKTsJCS8qIFJEQVRBIGxlbmd0aC4gICovCisrICAgICAgLyog U2tpcCBvdmVyIHJlY29yZHMgd2l0aCB0aGUgd3JvbmcgY2xhc3MuICAqLworKyAgICAgIGlmIChy ci5yY2xhc3MgIT0gQ19JTikKKysJY29udGludWU7CisgCistICAgICAgaWYgKGVuZF9vZl9tZXNz YWdlIC0gY3AgPCBuKQorLQl7CistCSAgLyogUkRBVEEgZXh0ZW5kcyBiZXlvbmQgdGhlIGVuZCBv ZiB0aGUgcGFja2V0LiAgKi8KKy0JICArK2hhZF9lcnJvcjsKKy0JICBjb250aW51ZTsKKy0JfQor LQorLSAgICAgIGlmIChfX2dsaWJjX3VubGlrZWx5IChjbGFzcyAhPSBDX0lOKSkKKy0JeworLQkg IC8qIFhYWCAtIGRlYnVnPyBzeXNsb2c/ICovCistCSAgY3AgKz0gbjsKKy0JICBjb250aW51ZTsJ CQkvKiBYWFggLSBoYWRfZXJyb3IrKyA/ICovCistCX0KKysgICAgICAvKiBVcGRhdGUgVFRMIGZv ciBrbm93biByZWNvcmQgdHlwZXMuICAqLworKyAgICAgIGlmICgocnIucnR5cGUgPT0gVF9DTkFN RSB8fCByci5ydHlwZSA9PSBUX1BUUikKKysJICAmJiB0dGxwICE9IE5VTEwgJiYgKnR0bHAgPiBy ci50dGwpCisrCSp0dGxwID0gcnIudHRsOworIAorLSAgICAgIGlmICh0eXBlID09IFRfQ05BTUUp CisrICAgICAgaWYgKHJyLnJ0eXBlID09IFRfQ05BTUUpCisgCXsKKy0JICAvKiBBIENOQU1FIGNv dWxkIGFsc28gaGF2ZSBhIFRUTCBlbnRyeS4gICovCistCSAgaWYgKHR0bHAgIT0gTlVMTCAmJiB0 dGwgPCAqdHRscCkKKy0JICAgICAgKnR0bHAgPSB0dGw7CistCistCSAgbiA9IF9fbGliY19kbl9l eHBhbmQgKGFuc3dlci0+YnVmLCBlbmRfb2ZfbWVzc2FnZSwgY3AsCistCQkJCXRidWYsIHNpemVv ZiB0YnVmKTsKKy0JICBpZiAoX19nbGliY191bmxpa2VseSAobiA8IDAgfHwgX19saWJjX3Jlc19k bm9rICh0YnVmKSA9PSAwKSkKKy0JICAgIHsKKy0JICAgICAgKytoYWRfZXJyb3I7CistCSAgICAg IGNvbnRpbnVlOworLQkgICAgfQorLQkgIGNwICs9IG47CistCSAgLyogR2V0IGNhbm9uaWNhbCBu YW1lLiAgKi8KKy0JICBuID0gc3RybGVuICh0YnVmKSArIDE7ICAgLyogRm9yIHRoZSBcMC4gICov CistCSAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKG4gPiBsaW5lYnVmbGVuKSkKKy0JICAgIGdvdG8g dG9vX3NtYWxsOworLQkgIGlmIChfX2dsaWJjX3VubGlrZWx5IChuID49IE1BWEhPU1ROQU1FTEVO KSkKKysJICAvKiBOQjogTm8gY2hlY2sgZm9yIG93bmVyIG5hbWUgbWF0Y2gsIGJhc2VkIG9uIGhp c3RvcmljCisrCSAgICAgcHJlY2VkZW50LiAgUmVjb3JkIHRoZSBDTkFNRSB0YXJnZXQgYXMgdGhl IG5ldyBleHBlY3RlZAorKwkgICAgIG5hbWUuICAqLworKwkgIGludCBuID0gX19uc19uYW1lX3Vu cGFjayAoYy5iZWdpbiwgYy5lbmQsIHJyLnJkYXRhLAorKwkJCQkgICAgbmFtZV9idWZmZXIsIHNp emVvZiAobmFtZV9idWZmZXIpKTsKKysJICBpZiAobiA8IDApCisgCSAgICB7CistCSAgICAgICsr aGFkX2Vycm9yOworLQkgICAgICBjb250aW51ZTsKKysJICAgICAgKmhfZXJybm9wID0gTk9fUkVD T1ZFUlk7CisrCSAgICAgIHJldHVybiBOU1NfU1RBVFVTX1VOQVZBSUw7CisgCSAgICB9CistCSAg dG5hbWUgPSBicDsKKy0JICBicCA9IF9fbWVtcGNweSAoYnAsIHRidWYsIG4pOwkvKiBDYW5ub3Qg b3ZlcmZsb3cuICAqLworLQkgIGxpbmVidWZsZW4gLT0gbjsKKy0JICBjb250aW51ZTsKKysJICBl eHBlY3RlZF9uYW1lID0gbmFtZV9idWZmZXI7CisgCX0KKy0KKy0gICAgICBzd2l0Y2ggKHR5cGUp CisrICAgICAgZWxzZSBpZiAocnIucnR5cGUgPT0gVF9QVFIKKysJICAgICAgICYmIF9fbnNfc2Ft ZWJpbmFyeW5hbWUgKHJyLnJuYW1lLCBleHBlY3RlZF9uYW1lKSkKKyAJeworLQljYXNlIFRfUFRS OgorLQkgIGlmIChfX2dsaWJjX3VubGlrZWx5IChfX3N0cmNhc2VjbXAgKHRuYW1lLCBicCkgIT0g MCkpCistCSAgICB7CistCSAgICAgIGNwICs9IG47CistCSAgICAgIGNvbnRpbnVlOwkJCS8qIFhY WCAtIGhhZF9lcnJvcisrID8gKi8KKy0JICAgIH0KKy0KKy0JICBuID0gX19uc19uYW1lX3VucGFj ayAoYW5zd2VyLT5idWYsIGVuZF9vZl9tZXNzYWdlLCBjcCwKKy0JCQkJcGFja3RtcCwgc2l6ZW9m IHBhY2t0bXApOworLQkgIGlmIChuICE9IC0xICYmIF9fbnNfbmFtZV9udG9wIChwYWNrdG1wLCBi cCwgbGluZWJ1ZmxlbikgPT0gLTEpCistCSAgICB7CistCSAgICAgIGlmIChfX2dsaWJjX3VubGlr ZWx5IChlcnJubyA9PSBFTVNHU0laRSkpCistCQlnb3RvIHRvb19zbWFsbDsKKy0KKy0JICAgICAg biA9IC0xOworLQkgICAgfQorLQorLQkgIGlmIChfX2dsaWJjX3VubGlrZWx5IChuIDwgMCB8fCBf X2xpYmNfcmVzX2hub2sgKGJwKSA9PSAwKSkKKysJICAvKiBEZWNvbXByZXNzIHRoZSB0YXJnZXQg b2YgdGhlIFBUUiByZWNvcmQuICBUaGlzIGlzIHRoZQorKwkgICAgIGhvc3QgbmFtZSB3ZSBhcmUg bG9va2luZyBmb3IuICBXZSBjYW4gb25seSB1c2UgaXQgaWYgaXQKKysJICAgICBpcyBzeW50YWN0 aWNhbGx5IHZhbGlkLiAgSGlzdG9yaWNhbGx5LCBvbmx5IG9uZSBob3N0IG5hbWUKKysJICAgICBp cyByZXR1cm5lZCBoZXJlLiAgSWYgdGhlIHJlY3Vyc2l2ZSByZXNvbHZlciBwZXJmb3JtcyBETlMK KysJICAgICByZWNvcmQgcm90YXRpb24sIHRoZSByZXR1cm5lZCBob3N0IG5hbWUgaXMgZXNzZW50 aWFsbHkKKysJICAgICByYW5kb20sIHdoaWNoIGlzIHdoeSBtdWx0aXBsZSBQVFIgcmVjb3JkcyBh cmUgcmFyZWx5CisrCSAgICAgdXNlZC4gIFVzZSBNQVhIT1NUTkFNRUxFTiBpbnN0ZWFkIG9mIE5T X01BWENETkFNRSBmb3IKKysJICAgICBhZGRpdGlvbmFsIGxlbmd0aCBjaGVja2luZy4gICovCisr CSAgY2hhciBobmFtZVtNQVhIT1NUTkFNRUxFTiArIDFdOworKwkgIGlmIChfX25zX25hbWVfdW5w YWNrIChjLmJlZ2luLCBjLmVuZCwgcnIucmRhdGEsCisrCQkJCW5hbWVfYnVmZmVyLCBzaXplb2Yg KG5hbWVfYnVmZmVyKSkgPCAwCisrCSAgICAgIHx8ICFfX3Jlc19iaW5hcnlfaG5vayAoZXhwZWN0 ZWRfbmFtZSkKKysJICAgICAgfHwgX19uc19uYW1lX250b3AgKG5hbWVfYnVmZmVyLCBobmFtZSwg c2l6ZW9mIChobmFtZSkpIDwgMCkKKyAJICAgIHsKKy0JICAgICAgKytoYWRfZXJyb3I7CistCSAg ICAgIGJyZWFrOworKwkgICAgICAqaF9lcnJub3AgPSBOT19SRUNPVkVSWTsKKysJICAgICAgcmV0 dXJuIE5TU19TVEFUVVNfVU5BVkFJTDsKKyAJICAgIH0KKy0JICBpZiAodHRscCAhPSBOVUxMICYm IHR0bCA8ICp0dGxwKQorLQkgICAgICAqdHRscCA9IHR0bDsKKy0JICAvKiBiaW5kIHdvdWxkIHB1 dCBtdWx0aXBsZSBQVFIgcmVjb3JkcyBhcyBhbGlhc2VzLCBidXQgd2UgZG9uJ3QgZG8KKy0JICAg ICB0aGF0LiAgKi8KKy0JICByZXN1bHQtPmhfbmFtZSA9IGJwOworLQkgICpoX2Vycm5vcCA9IE5F VERCX1NVQ0NFU1M7CisrCSAgLyogU3VjY2Vzc2Z1bCBhbGxvY2F0aW9uIGlzIGNoZWNrZWQgYnkg dGhlIGNhbGxlci4gICovCisrCSAgKmhuYW1lcCA9IGFsbG9jX2J1ZmZlcl9jb3B5X3N0cmluZyAo YWJ1ZiwgaG5hbWUpOworIAkgIHJldHVybiBOU1NfU1RBVFVTX1NVQ0NFU1M7CistCWNhc2UgVF9B OgorLQljYXNlIFRfQUFBQToKKy0JICBpZiAoX19nbGliY191bmxpa2VseSAoX19zdHJjYXNlY21w IChyZXN1bHQtPmhfbmFtZSwgYnApICE9IDApKQorLQkgICAgeworLQkgICAgICBjcCArPSBuOwor LQkgICAgICBjb250aW51ZTsJCQkvKiBYWFggLSBoYWRfZXJyb3IrKyA/ICovCistCSAgICB9Cist CistCSAgLyogU3RvcCBwYXJzaW5nIGF0IGEgcmVjb3JkIHdob3NlIGxlbmd0aCBpcyBpbmNvcnJl Y3QuICAqLworLQkgIGlmIChuICE9IHJydHlwZV90b19yZGF0YV9sZW5ndGggKHR5cGUpKQorLQkg ICAgeworLQkgICAgICArK2hhZF9lcnJvcjsKKy0JICAgICAgYnJlYWs7CistCSAgICB9CistCist CSAgLyogU2tpcCByZWNvcmRzIG9mIHRoZSB3cm9uZyB0eXBlLiAgKi8KKy0JICBpZiAobiAhPSBy ZXN1bHQtPmhfbGVuZ3RoKQorLQkgICAgeworLQkgICAgICBjcCArPSBuOworLQkgICAgICBjb250 aW51ZTsKKy0JICAgIH0KKy0JICBpZiAoIWhhdmVhbnN3ZXIpCistCSAgICB7CistCSAgICAgIGlu dCBubjsKKy0KKy0JICAgICAgLyogV2UgY29tcG9zZSBhIHNpbmdsZSBob3N0ZW50IG91dCBvZiB0 aGUgZW50aXJlIGNoYWluIG9mCistCSAgICAgICAgIGVudHJpZXMsIHNvIHRoZSBUVEwgb2YgdGhl IGhvc3RlbnQgaXMgZXNzZW50aWFsbHkgdGhlIGxvd2VzdAorLQkJIFRUTCBpbiB0aGUgY2hhaW4u ICAqLworLQkgICAgICBpZiAodHRscCAhPSBOVUxMICYmIHR0bCA8ICp0dGxwKQorLQkJKnR0bHAg PSB0dGw7CistCSAgICAgIHJlc3VsdC0+aF9uYW1lID0gYnA7CistCSAgICAgIG5uID0gc3RybGVu IChicCkgKyAxOwkvKiBmb3IgdGhlIFwwICovCistCSAgICAgIGJwICs9IG5uOworLQkgICAgICBs aW5lYnVmbGVuIC09IG5uOworLQkgICAgfQorLQorLQkgIC8qIFByb3ZpZGUgc3VmZmljaWVudCBh bGlnbm1lbnQgZm9yIGJvdGggYWRkcmVzcworLQkgICAgIGZhbWlsaWVzLiAgKi8KKy0JICBlbnVt IHsgYWxpZ24gPSA0IH07CistCSAgX1N0YXRpY19hc3NlcnQgKChhbGlnbiAlIF9fYWxpZ25vZl9f IChzdHJ1Y3QgaW5fYWRkcikpID09IDAsCistCQkJICAic3RydWN0IGluX2FkZHIgYWxpZ25tZW50 Iik7CistCSAgX1N0YXRpY19hc3NlcnQgKChhbGlnbiAlIF9fYWxpZ25vZl9fIChzdHJ1Y3QgaW42 X2FkZHIpKSA9PSAwLAorLQkJCSAgInN0cnVjdCBpbjZfYWRkciBhbGlnbm1lbnQiKTsKKy0JICB7 CistCSAgICBjaGFyICpuZXdfYnAgPSBQVFJfQUxJR05fVVAgKGJwLCBhbGlnbik7CistCSAgICBs aW5lYnVmbGVuIC09IG5ld19icCAtIGJwOworLQkgICAgYnAgPSBuZXdfYnA7CistCSAgfQorLQor LQkgIGlmIChfX2dsaWJjX3VubGlrZWx5IChuID4gbGluZWJ1ZmxlbikpCistCSAgICBnb3RvIHRv b19zbWFsbDsKKy0JICBicCA9IF9fbWVtcGNweSAoKmhhcCsrID0gYnAsIGNwLCBuKTsKKy0JICBj cCArPSBuOworLQkgIGxpbmVidWZsZW4gLT0gbjsKKy0JICBicmVhazsKKy0JZGVmYXVsdDoKKy0J ICBjcCArPSBuOworLQkgIGNvbnRpbnVlOwkJCS8qIFhYWCAtIGhhZF9lcnJvcisrID8gKi8KKyAJ fQorLSAgICAgIGlmIChoYWRfZXJyb3IgPT0gMCkKKy0JKytoYXZlYW5zd2VyOworICAgICB9Cisg CistICBpZiAoaGF2ZWFuc3dlciA+IDApCistICAgIHsKKy0gICAgICAqYXAgPSBOVUxMOworLSAg ICAgICpoYXAgPSBOVUxMOworLQorLSAgICAgIGlmIChyZXN1bHQtPmhfbmFtZSA9PSBOVUxMKQor LQl7CistCSAgbiA9IHN0cmxlbiAocW5hbWUpICsgMTsJLyogRm9yIHRoZSBcMC4gICovCistCSAg aWYgKG4gPiBsaW5lYnVmbGVuKQorLQkgICAgZ290byB0b29fc21hbGw7CistCSAgaWYgKG4gPj0g TUFYSE9TVE5BTUVMRU4pCistCSAgICBnb3RvIG5vX3JlY292ZXJ5OworLQkgIHJlc3VsdC0+aF9u YW1lID0gYnA7CistCSAgYnAgPSBfX21lbXBjcHkgKGJwLCBxbmFtZSwgbik7CS8qIENhbm5vdCBv dmVyZmxvdy4gICovCistCSAgbGluZWJ1ZmxlbiAtPSBuOworLQl9CisrICAvKiBObyBQVFIgcmVj b3JkIGZvdW5kLiAgKi8KKysgIGlmICh0dGxwICE9IE5VTEwpCisrICAgIC8qIE5vIGNhY2hpbmcg b2YgbmVnYXRpdmUgcmVzcG9uc2VzLiAgKi8KKysgICAgKnR0bHAgPSAwOworIAorLSAgICAgICpo X2Vycm5vcCA9IE5FVERCX1NVQ0NFU1M7CistICAgICAgcmV0dXJuIE5TU19TVEFUVVNfU1VDQ0VT UzsKKy0gICAgfQorLSBub19yZWNvdmVyeToKKyAgICpoX2Vycm5vcCA9IE5PX1JFQ09WRVJZOwor ICAgKmVycm5vcCA9IEVOT0VOVDsKKyAgIHJldHVybiBOU1NfU1RBVFVTX1RSWUFHQUlOOworLS0g CisyLjM4LjEKKworCitGcm9tIDUxNjUwODBmZWM2M2ExZjAzYWExOTg1Yjc3YmNhMzAwNDY1YmY1 NzAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBGbG9yaWFuIFdlaW1lciA8ZndlaW1l ckByZWRoYXQuY29tPgorRGF0ZTogVHVlLCAzMCBBdWcgMjAyMiAxMDowMjo0OSArMDIwMAorU3Vi amVjdDogbnNzX2RuczogUmVtb3ZlIHJlbW5hbnRzIG9mIElQdjYgYWRkcmVzcyBtYXBwaW5nCisK K3Jlc191c2VfaW5ldDYgYWx3YXlzIHJldHVybnMgZmFsc2Ugc2luY2UgY29tbWl0IDNmOGI0NGJl MGE2NTgyNjZhZGZmNQorKCJyZXNvbHY6IFJlbW92ZSBzdXBwb3J0IGZvciBSRVNfVVNFX0lORVQ2 IGFuZCB0aGUgaW5ldDYgb3B0aW9uIikuCisKK1Jldmlld2VkLWJ5OiBTaWRkaGVzaCBQb3lhcmVr YXIgPHNpZGRoZXNoQHNvdXJjZXdhcmUub3JnPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQg YTdmYzMwYjUyMmEwY2Q3YzhjNWU3ZTI4NWI5NTMxYjcwNGUwMmYwNCkKKy0tLQorIHJlc29sdi9S RUFETUUgICAgICAgICAgICAgfCAgMyAtLQorIHJlc29sdi9tYXB2NHY2YWRkci5oICAgICAgfCA2 OSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlc29sdi9tYXB2NHY2aG9zdGVu dC5oICAgfCA4NCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZXNv bHYvbnNzX2Rucy9kbnMtaG9zdC5jIHwgNTQgKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLQorIDQg ZmlsZXMgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCAyMDEgZGVsZXRpb25zKC0pCisgZGVsZXRl IG1vZGUgMTAwNjQ0IHJlc29sdi9tYXB2NHY2YWRkci5oCisgZGVsZXRlIG1vZGUgMTAwNjQ0IHJl c29sdi9tYXB2NHY2aG9zdGVudC5oCisKK2RpZmYgLS1naXQgYS9yZXNvbHYvUkVBRE1FIGIvcmVz b2x2L1JFQURNRQoraW5kZXggNTE0ZTliYjYxNy4uMjE0NmJjM2IyNyAxMDA2NDQKKy0tLSBhL3Jl c29sdi9SRUFETUUKKysrKyBiL3Jlc29sdi9SRUFETUUKK0BAIC0xNDYsNiArMTQ2LDMgQEAgcmVz X2xpYmMuYyBpcyBob21lLWJyZXduLCBhbHRob3VnaCBwYXJ0cyBvZiBpdCBhcmUgdGFrZW4gZnJv bSByZXNfZGF0YS5jLgorIAorIHJlc19oY29uZi5jIGFuZCByZXNfaGNvbmYuaCB3ZXJlIGNvbnRy aWJ1dGVkIGJ5IERhdmlkIE1vc2JlcmdlciwgYW5kCisgZG8gbm90IGNvbWUgZnJvbSBCSU5ELgor LQorLVRoZSBmaWxlcyBnZXRobmFtYWRkci5jLCBtYXB2NHY2YWRkci5oIGFuZCBtYXB2NHY2aG9z dGVudC5oIGFyZQorLWxlZnRvdmVycyBmcm9tIEJJTkQgNC45LjcuCitkaWZmIC0tZ2l0IGEvcmVz b2x2L21hcHY0djZhZGRyLmggYi9yZXNvbHYvbWFwdjR2NmFkZHIuaAorZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CitpbmRleCA3Zjg1ZjdkNWUzLi4wMDAwMDAwMDAwCistLS0gYS9yZXNvbHYvbWFw djR2NmFkZHIuaAorKysrIC9kZXYvbnVsbAorQEAgLTEsNjkgKzAsMCBAQAorLS8qCistICogKytD b3B5cmlnaHQrKyAxOTg1LCAxOTg4LCAxOTkzCistICogLQorLSAqIENvcHlyaWdodCAoYykgMTk4 NSwgMTk4OCwgMTk5MworLSAqICAgIFRoZSBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENh bGlmb3JuaWEuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorLSAqCistICogUmVkaXN0cmlidXRpb24g YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CistICog bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj b25kaXRpb25zCistICogYXJlIG1ldDoKKy0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLSAqICAgIG5vdGljZSwgdGhp cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy0gKiAy LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl IGNvcHlyaWdodAorLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKy0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorLSAqIDQu IE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIFVuaXZlcnNpdHkgbm9yIHRoZSBuYW1lcyBvZiBpdHMg Y29udHJpYnV0b3JzCistICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy b2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlCistICogICAgd2l0aG91dCBzcGVjaWZp YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCistICoKKy0gKiBUSElTIFNPRlRXQVJFIElTIFBS T1ZJREVEIEJZIFRIRSBSRUdFTlRTIEFORCBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorLSAq IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ TUlURUQgVE8sIFRIRQorLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCistICogQVJFIERJU0NMQUlNRUQu ICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgUkVHRU5UUyBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF CistICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN UExBUlksIE9SIENPTlNFUVVFTlRJQUwKKy0gKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUworLSAqIE9SIFNFUlZJ Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU SU9OKQorLSAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCistICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNM VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorLSAqIE9V VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T U0lCSUxJVFkgT0YKKy0gKiBTVUNIIERBTUFHRS4KKy0gKiAtCistICogUG9ydGlvbnMgQ29weXJp Z2h0IChjKSAxOTkzIGJ5IERpZ2l0YWwgRXF1aXBtZW50IENvcnBvcmF0aW9uLgorLSAqCistICog UGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0 d2FyZSBmb3IgYW55CistICogcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBn cmFudGVkLCBwcm92aWRlZCB0aGF0IHRoZSBhYm92ZQorLSAqIGNvcHlyaWdodCBub3RpY2UgYW5k IHRoaXMgcGVybWlzc2lvbiBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMsIGFuZCB0aGF0Cist ICogdGhlIG5hbWUgb2YgRGlnaXRhbCBFcXVpcG1lbnQgQ29ycG9yYXRpb24gbm90IGJlIHVzZWQg aW4gYWR2ZXJ0aXNpbmcgb3IKKy0gKiBwdWJsaWNpdHkgcGVydGFpbmluZyB0byBkaXN0cmlidXRp b24gb2YgdGhlIGRvY3VtZW50IG9yIHNvZnR3YXJlIHdpdGhvdXQKKy0gKiBzcGVjaWZpYywgd3Jp dHRlbiBwcmlvciBwZXJtaXNzaW9uLgorLSAqCistICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVE ICJBUyBJUyIgQU5EIERJR0lUQUwgRVFVSVBNRU5UIENPUlAuIERJU0NMQUlNUyBBTEwKKy0gKiBX QVJSQU5USUVTIFdJVEggUkVHQVJEIFRPIFRISVMgU09GVFdBUkUsIElOQ0xVRElORyBBTEwgSU1Q TElFRCBXQVJSQU5USUVTCistICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTLiAgIElO IE5PIEVWRU5UIFNIQUxMIERJR0lUQUwgRVFVSVBNRU5UCistICogQ09SUE9SQVRJT04gQkUgTElB QkxFIEZPUiBBTlkgU1BFQ0lBTCwgRElSRUNULCBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTAor LSAqIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTSBMT1NT IE9GIFVTRSwgREFUQSBPUgorLSAqIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENP TlRSQUNULCBORUdMSUdFTkNFIE9SIE9USEVSIFRPUlRJT1VTCistICogQUNUSU9OLCBBUklTSU5H IE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUiBQRVJGT1JNQU5DRSBPRiBU SElTCistICogU09GVFdBUkUuCistICogLQorLSAqIC0tQ29weXJpZ2h0LS0KKy0gKi8KKy0KKy0j aW5jbHVkZSA8c3RyaW5nLmg+CistI2luY2x1ZGUgPGFycGEvbmFtZXNlci5oPgorLQorLXN0YXRp YyB2b2lkCistbWFwX3Y0djZfYWRkcmVzcyAoY29uc3QgY2hhciAqc3JjLCBjaGFyICpkc3QpCist eworLSAgdV9jaGFyICpwID0gKHVfY2hhciAqKSBkc3Q7CistICBpbnQgaTsKKy0KKy0gIC8qIE1v dmUgdGhlIElQdjQgcGFydCB0byB0aGUgcmlnaHQgcG9zaXRpb24uICAqLworLSAgbWVtY3B5IChk c3QgKyAxMiwgc3JjLCBJTkFERFJTWik7CistCistICAvKiBNYXJrIHRoaXMgaXB2NiBhZGRyIGFz IGEgbWFwcGVkIGlwdjQuICovCistICBmb3IgKGkgPSAwOyBpIDwgMTA7IGkrKykKKy0gICAgKnAr KyA9IDB4MDA7CistICAqcCsrID0gMHhmZjsKKy0gICpwID0gMHhmZjsKKy19CitkaWZmIC0tZ2l0 IGEvcmVzb2x2L21hcHY0djZob3N0ZW50LmggYi9yZXNvbHYvbWFwdjR2Nmhvc3RlbnQuaAorZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCBjMTEwMzhhZGYzLi4wMDAwMDAwMDAwCistLS0g YS9yZXNvbHYvbWFwdjR2Nmhvc3RlbnQuaAorKysrIC9kZXYvbnVsbAorQEAgLTEsODQgKzAsMCBA QAorLS8qCistICogKytDb3B5cmlnaHQrKyAxOTg1LCAxOTg4LCAxOTkzCistICogLQorLSAqIENv cHlyaWdodCAoYykgMTk4NSwgMTk4OCwgMTk5MworLSAqICAgIFRoZSBSZWdlbnRzIG9mIHRoZSBV bml2ZXJzaXR5IG9mIENhbGlmb3JuaWEuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorLSAqCistICog UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv ciB3aXRob3V0CistICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCistICogYXJlIG1ldDoKKy0gKiAxLiBSZWRpc3RyaWJ1 dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLSAq ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz Y2xhaW1lci4KKy0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKy0gKiAgICBkb2N1 bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp YnV0aW9uLgorLSAqIDQuIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIFVuaXZlcnNpdHkgbm9yIHRo ZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCistICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlCistICogICAg d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCistICoKKy0gKiBUSElT IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBSRUdFTlRTIEFORCBDT05UUklCVVRPUlMgYGBB UyBJUycnIEFORAorLSAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCistICog QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgUkVHRU5UUyBPUiBDT05UUklC VVRPUlMgQkUgTElBQkxFCistICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKy0gKiBEQU1BR0VTIChJTkNM VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E UworLSAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT SU5FU1MgSU5URVJSVVBUSU9OKQorLSAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCistICogTElBQklMSVRZ LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g QU5ZIFdBWQorLSAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKy0gKiBTVUNIIERBTUFHRS4KKy0gKiAtCistICog UG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTkzIGJ5IERpZ2l0YWwgRXF1aXBtZW50IENvcnBvcmF0 aW9uLgorLSAqCistICogUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kIGRpc3Ry aWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55CistICogcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQg ZmVlIGlzIGhlcmVieSBncmFudGVkLCBwcm92aWRlZCB0aGF0IHRoZSBhYm92ZQorLSAqIGNvcHly aWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3Bp ZXMsIGFuZCB0aGF0CistICogdGhlIG5hbWUgb2YgRGlnaXRhbCBFcXVpcG1lbnQgQ29ycG9yYXRp b24gbm90IGJlIHVzZWQgaW4gYWR2ZXJ0aXNpbmcgb3IKKy0gKiBwdWJsaWNpdHkgcGVydGFpbmlu ZyB0byBkaXN0cmlidXRpb24gb2YgdGhlIGRvY3VtZW50IG9yIHNvZnR3YXJlIHdpdGhvdXQKKy0g KiBzcGVjaWZpYywgd3JpdHRlbiBwcmlvciBwZXJtaXNzaW9uLgorLSAqCistICogVEhFIFNPRlRX QVJFIElTIFBST1ZJREVEICJBUyBJUyIgQU5EIERJR0lUQUwgRVFVSVBNRU5UIENPUlAuIERJU0NM QUlNUyBBTEwKKy0gKiBXQVJSQU5USUVTIFdJVEggUkVHQVJEIFRPIFRISVMgU09GVFdBUkUsIElO Q0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTCistICogT0YgTUVSQ0hBTlRBQklMSVRZIEFO RCBGSVRORVNTLiAgIElOIE5PIEVWRU5UIFNIQUxMIERJR0lUQUwgRVFVSVBNRU5UCistICogQ09S UE9SQVRJT04gQkUgTElBQkxFIEZPUiBBTlkgU1BFQ0lBTCwgRElSRUNULCBJTkRJUkVDVCwgT1Ig Q09OU0VRVUVOVElBTAorLSAqIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNV TFRJTkcgRlJPTSBMT1NTIE9GIFVTRSwgREFUQSBPUgorLSAqIFBST0ZJVFMsIFdIRVRIRVIgSU4g QU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SIE9USEVSIFRPUlRJT1VTCistICog QUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUiBQ RVJGT1JNQU5DRSBPRiBUSElTCistICogU09GVFdBUkUuCistICogLQorLSAqIC0tQ29weXJpZ2h0 LS0KKy0gKi8KKy0KKy0jaW5jbHVkZSA8YXJwYS9uYW1lc2VyLmg+CistI2luY2x1ZGUgPHN5cy9z b2NrZXQuaD4KKy0KKy10eXBlZGVmIHVuaW9uIHsKKy0gICAgaW50MzJfdCBhbDsKKy0gICAgY2hh ciBhYzsKKy19IGFsaWduOworLQorLXN0YXRpYyBpbnQKKy1tYXBfdjR2Nl9ob3N0ZW50IChzdHJ1 Y3QgaG9zdGVudCAqaHAsIGNoYXIgKipicHAsIGludCAqbGVucCkKKy17CistICBjaGFyICoqYXA7 CistCistICBpZiAoaHAtPmhfYWRkcnR5cGUgIT0gQUZfSU5FVCB8fCBocC0+aF9sZW5ndGggIT0g SU5BRERSU1opCistICAgIHJldHVybiAwOworLSAgaHAtPmhfYWRkcnR5cGUgPSBBRl9JTkVUNjsK Ky0gIGhwLT5oX2xlbmd0aCA9IElONkFERFJTWjsKKy0gIGZvciAoYXAgPSBocC0+aF9hZGRyX2xp c3Q7ICphcDsgYXArKykKKy0gICAgeworLSAgICAgIGludCBpID0gc2l6ZW9mIChhbGlnbikgLSAo KHVfbG9uZykgKmJwcCAlIHNpemVvZiAoYWxpZ24pKTsKKy0KKy0gICAgICBpZiAoKmxlbnAgPCAo aSArIElONkFERFJTWikpCistCS8qIE91dCBvZiBtZW1vcnkuICAqLworLQlyZXR1cm4gMTsKKy0g ICAgICAqYnBwICs9IGk7CistICAgICAgKmxlbnAgLT0gaTsKKy0gICAgICBtYXBfdjR2Nl9hZGRy ZXNzICgqYXAsICpicHApOworLSAgICAgICphcCA9ICpicHA7CistICAgICAgKmJwcCArPSBJTjZB RERSU1o7CistICAgICAgKmxlbnAgLT0gSU42QUREUlNaOworLSAgICB9CistICByZXR1cm4gMDsK Ky19CitkaWZmIC0tZ2l0IGEvcmVzb2x2L25zc19kbnMvZG5zLWhvc3QuYyBiL3Jlc29sdi9uc3Nf ZG5zL2Rucy1ob3N0LmMKK2luZGV4IGNkMjYzOTliN2UuLjhlMzg1ODNlMTUgMTAwNjQ0CistLS0g YS9yZXNvbHYvbnNzX2Rucy9kbnMtaG9zdC5jCisrKysgYi9yZXNvbHYvbnNzX2Rucy9kbnMtaG9z dC5jCitAQCAtODcsMTAgKzg3LDYgQEAKKyAjaW5jbHVkZSA8cmVzb2x2L3Jlc29sdi1pbnRlcm5h bC5oPgorICNpbmNsdWRlIDxyZXNvbHYvcmVzb2x2X2NvbnRleHQuaD4KKyAKKy0vKiBHZXQgaW1w bGVtZW50YXRpb25zIG9mIHNvbWUgaW50ZXJuYWwgZnVuY3Rpb25zLiAgKi8KKy0jaW5jbHVkZSA8 cmVzb2x2L21hcHY0djZhZGRyLmg+CistI2luY2x1ZGUgPHJlc29sdi9tYXB2NHY2aG9zdGVudC5o PgorLQorICNkZWZpbmUgUkVTT0xWU09SVAorIAorICNpZiBQQUNLRVRTWiA+IDY1NTM2CitAQCAt MTE2LDcgKzExMiw3IEBAIHN0YXRpYyBlbnVtIG5zc19zdGF0dXMgZ2V0YW5zd2VyX3IgKHN0cnVj dCByZXNvbHZfY29udGV4dCAqY3R4LAorIAkJCQkgICAgY29uc3QgY2hhciAqcW5hbWUsIGludCBx dHlwZSwKKyAJCQkJICAgIHN0cnVjdCBob3N0ZW50ICpyZXN1bHQsIGNoYXIgKmJ1ZmZlciwKKyAJ CQkJICAgIHNpemVfdCBidWZsZW4sIGludCAqZXJybm9wLCBpbnQgKmhfZXJybm9wLAorLQkJCQkg ICAgaW50IG1hcCwgaW50MzJfdCAqdHRscCwgY2hhciAqKmNhbm9ucCk7CisrCQkJCSAgICBpbnQz Ml90ICp0dGxwLCBjaGFyICoqY2Fub25wKTsKKyBzdGF0aWMgZW51bSBuc3Nfc3RhdHVzIGdldGFu c3dlcl9wdHIgKHVuc2lnbmVkIGNoYXIgKnBhY2tldCwgc2l6ZV90IHBhY2tldGxlbiwKKyAJCQkJ ICAgICAgc3RydWN0IGFsbG9jX2J1ZmZlciAqYWJ1ZiwKKyAJCQkJICAgICAgY2hhciAqKmhuYW1l cCwgaW50ICplcnJub3AsCitAQCAtMTk3LDcgKzE5Myw2IEBAIGdldGhvc3RieW5hbWUzX2NvbnRl eHQgKHN0cnVjdCByZXNvbHZfY29udGV4dCAqY3R4LAorICAgY2hhciB0bXBbTlNfTUFYRE5BTUVd OworICAgaW50IHNpemUsIHR5cGUsIG47CisgICBjb25zdCBjaGFyICpjcDsKKy0gIGludCBtYXAg PSAwOworICAgaW50IG9sZGVyciA9IGVycm5vOworICAgZW51bSBuc3Nfc3RhdHVzIHN0YXR1czsK KyAKK0BAIC0yNTgsMzIgKzI1MywxMiBAQCBnZXRob3N0YnluYW1lM19jb250ZXh0IChzdHJ1Y3Qg cmVzb2x2X2NvbnRleHQgKmN0eCwKKyAJKmVycm5vcCA9IEVBR0FJTjsKKyAgICAgICBlbHNlCisg CV9fc2V0X2Vycm5vIChvbGRlcnIpOworLQorLSAgICAgIC8qIElmIHdlIGFyZSBsb29raW5nIGZv ciBhbiBJUHY2IGFkZHJlc3MgYW5kIG1hcHBpbmcgaXMgZW5hYmxlZAorLQkgYnkgaGF2aW5nIHRo ZSBSRVNfVVNFX0lORVQ2IGJpdCBpbiBfcmVzLm9wdGlvbnMgc2V0LCB3ZSB0cnkKKy0JIGFub3Ro ZXIgbG9va3VwLiAgKi8KKy0gICAgICBpZiAoYWYgPT0gQUZfSU5FVDYgJiYgcmVzX3VzZV9pbmV0 NiAoKSkKKy0JbiA9IF9fcmVzX2NvbnRleHRfc2VhcmNoIChjdHgsIG5hbWUsIENfSU4sIFRfQSwg aG9zdF9idWZmZXIuYnVmLT5idWYsCistCQkJCSAgaG9zdF9idWZmZXIuYnVmICE9IG9yaWdfaG9z dF9idWZmZXIKKy0JCQkJICA/IE1BWFBBQ0tFVCA6IDEwMjQsICZob3N0X2J1ZmZlci5wdHIsCist CQkJCSAgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCk7CistCistICAgICAgaWYgKG4gPCAwKQorLQl7 CistCSAgaWYgKGhvc3RfYnVmZmVyLmJ1ZiAhPSBvcmlnX2hvc3RfYnVmZmVyKQorLQkgICAgZnJl ZSAoaG9zdF9idWZmZXIuYnVmKTsKKy0JICByZXR1cm4gc3RhdHVzOworLQl9CistCistICAgICAg bWFwID0gMTsKKy0KKy0gICAgICByZXN1bHQtPmhfYWRkcnR5cGUgPSBBRl9JTkVUOworLSAgICAg IHJlc3VsdC0+aF9sZW5ndGggPSBJTkFERFJTWjsKKyAgICAgfQorKyAgZWxzZQorKyAgICBzdGF0 dXMgPSBnZXRhbnN3ZXJfcgorKyAgICAgIChjdHgsIGhvc3RfYnVmZmVyLmJ1ZiwgbiwgbmFtZSwg dHlwZSwgcmVzdWx0LCBidWZmZXIsIGJ1ZmxlbiwKKysgICAgICAgZXJybm9wLCBoX2Vycm5vcCwg dHRscCwgY2Fub25wKTsKKyAKKy0gIHN0YXR1cyA9IGdldGFuc3dlcl9yCistICAgIChjdHgsIGhv c3RfYnVmZmVyLmJ1ZiwgbiwgbmFtZSwgdHlwZSwgcmVzdWx0LCBidWZmZXIsIGJ1ZmxlbiwKKy0g ICAgIGVycm5vcCwgaF9lcnJub3AsIG1hcCwgdHRscCwgY2Fub25wKTsKKyAgIGlmIChob3N0X2J1 ZmZlci5idWYgIT0gb3JpZ19ob3N0X2J1ZmZlcikKKyAgICAgZnJlZSAoaG9zdF9idWZmZXIuYnVm KTsKKyAgIHJldHVybiBzdGF0dXM7CitAQCAtMzI5LDEzICszMDQsOCBAQCBfbnNzX2Ruc19nZXRo b3N0YnluYW1lX3IgKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBob3N0ZW50ICpyZXN1bHQsCisg ICAgICAgKmhfZXJybm9wID0gTkVUREJfSU5URVJOQUw7CisgICAgICAgcmV0dXJuIE5TU19TVEFU VVNfVU5BVkFJTDsKKyAgICAgfQorLSAgc3RhdHVzID0gTlNTX1NUQVRVU19OT1RGT1VORDsKKy0g IGlmIChyZXNfdXNlX2luZXQ2ICgpKQorLSAgICBzdGF0dXMgPSBnZXRob3N0YnluYW1lM19jb250 ZXh0IChjdHgsIG5hbWUsIEFGX0lORVQ2LCByZXN1bHQsIGJ1ZmZlciwKKy0JCQkJICAgICBidWZs ZW4sIGVycm5vcCwgaF9lcnJub3AsIE5VTEwsIE5VTEwpOworLSAgaWYgKHN0YXR1cyA9PSBOU1Nf U1RBVFVTX05PVEZPVU5EKQorLSAgICBzdGF0dXMgPSBnZXRob3N0YnluYW1lM19jb250ZXh0IChj dHgsIG5hbWUsIEFGX0lORVQsIHJlc3VsdCwgYnVmZmVyLAorLQkJCQkgICAgIGJ1ZmxlbiwgZXJy bm9wLCBoX2Vycm5vcCwgTlVMTCwgTlVMTCk7CisrICBzdGF0dXMgPSBnZXRob3N0YnluYW1lM19j b250ZXh0IChjdHgsIG5hbWUsIEFGX0lORVQsIHJlc3VsdCwgYnVmZmVyLAorKwkJCQkgICBidWZs ZW4sIGVycm5vcCwgaF9lcnJub3AsIE5VTEwsIE5VTEwpOworICAgX19yZXNvbHZfY29udGV4dF9w dXQgKGN0eCk7CisgICByZXR1cm4gc3RhdHVzOworIH0KK0BAIC02NDgsNyArNjE4LDcgQEAgc3Rh dGljIGVudW0gbnNzX3N0YXR1cworIGdldGFuc3dlcl9yIChzdHJ1Y3QgcmVzb2x2X2NvbnRleHQg KmN0eCwKKyAJICAgICBjb25zdCBxdWVyeWJ1ZiAqYW5zd2VyLCBpbnQgYW5zbGVuLCBjb25zdCBj aGFyICpxbmFtZSwgaW50IHF0eXBlLAorIAkgICAgIHN0cnVjdCBob3N0ZW50ICpyZXN1bHQsIGNo YXIgKmJ1ZmZlciwgc2l6ZV90IGJ1ZmxlbiwKKy0JICAgICBpbnQgKmVycm5vcCwgaW50ICpoX2Vy cm5vcCwgaW50IG1hcCwgaW50MzJfdCAqdHRscCwgY2hhciAqKmNhbm9ucCkKKysJICAgICBpbnQg KmVycm5vcCwgaW50ICpoX2Vycm5vcCwgaW50MzJfdCAqdHRscCwgY2hhciAqKmNhbm9ucCkKKyB7 CisgICBzdHJ1Y3QgaG9zdF9kYXRhCisgICB7CitAQCAtNjY0LDcgKzYzNCw2IEBAIGdldGFuc3dl cl9yIChzdHJ1Y3QgcmVzb2x2X2NvbnRleHQgKmN0eCwKKyAgIGNoYXIgKmJwLCAqKmFwLCAqKmhh cDsKKyAgIGNoYXIgdGJ1ZltNQVhETkFNRV07CisgICB1X2NoYXIgcGFja3RtcFtOU19NQVhDRE5B TUVdOworLSAgaW50IGhhdmVfdG9fbWFwID0gMDsKKyAgIHVpbnRwdHJfdCBwYWQgPSAtKHVpbnRw dHJfdCkgYnVmZmVyICUgX19hbGlnbm9mX18gKHN0cnVjdCBob3N0X2RhdGEpOworICAgYnVmZmVy ICs9IHBhZDsKKyAgIGJ1ZmxlbiA9IGJ1ZmxlbiA+IHBhZCA/IGJ1ZmxlbiAtIHBhZCA6IDA7CitA QCAtODQ1LDkgKzgxNCw3IEBAIGdldGFuc3dlcl9yIChzdHJ1Y3QgcmVzb2x2X2NvbnRleHQgKmN0 eCwKKyAJICBjb250aW51ZTsKKyAJfQorIAorLSAgICAgIGlmICh0eXBlID09IFRfQSAmJiBxdHlw ZSA9PSBUX0FBQUEgJiYgbWFwKQorLQloYXZlX3RvX21hcCA9IDE7CistICAgICAgZWxzZSBpZiAo X19nbGliY191bmxpa2VseSAodHlwZSAhPSBxdHlwZSkpCisrICAgICAgaWYgKF9fZ2xpYmNfdW5s aWtlbHkgKHR5cGUgIT0gcXR5cGUpKQorIAl7CisgCSAgY3AgKz0gbjsKKyAJICBjb250aW51ZTsJ CQkvKiBYWFggLSBoYWRfZXJyb3IrKyA/ICovCitAQCAtOTQ0LDkgKzkxMSw2IEBAIGdldGFuc3dl cl9yIChzdHJ1Y3QgcmVzb2x2X2NvbnRleHQgKmN0eCwKKyAJICBsaW5lYnVmbGVuIC09IG47Cisg CX0KKyAKKy0gICAgICBpZiAoaGF2ZV90b19tYXApCistCWlmIChtYXBfdjR2Nl9ob3N0ZW50IChy ZXN1bHQsICZicCwgJmxpbmVidWZsZW4pKQorLQkgIGdvdG8gdG9vX3NtYWxsOworICAgICAgICpo X2Vycm5vcCA9IE5FVERCX1NVQ0NFU1M7CisgICAgICAgcmV0dXJuIE5TU19TVEFUVVNfU1VDQ0VT UzsKKyAgICAgfQorLS0gCisyLjM4LjEKKworCitGcm9tIDc4YzhlZjIxZmE1NGU5OTQ0NTFkNWI0 MmVhZDYwODBkOTlhODhhNDkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBGbG9yaWFu IFdlaW1lciA8ZndlaW1lckByZWRoYXQuY29tPgorRGF0ZTogVHVlLCAzMCBBdWcgMjAyMiAxMDow Mjo0OSArMDIwMAorU3ViamVjdDogbnNzX2RuczogUmV3cml0ZSBnZXRhbnN3ZXJfciB0byBtYXRj aCBnZXRhbnN3ZXJfcHRyIChidWcgMTIxNTQsIGJ1ZworIDI5MzA1KQorCitBbGxvY2F0ZSB0aGUg cG9pbnRlciBhcnJheXMgb25seSBhdCB0aGUgZW5kLCB3aGVuIHRoZWlyIHNpemVzCithcmUga25v d24uICBUaGlzIGFkZHJlc3NlcyBidWcgMjkzMDUuCisKK1NraXAgb3ZlciBpbnZhbGlkIG5hbWVz IGluc3RlYWQgb2YgZmFpbGluZyBsb29rdXBzLiAgVGhpcyBwYXJ0aWFsbHkKK2ZpeGVzIGJ1ZyAx MjE1NCAoZm9yIGdldGhvc3RieW5hbWUsIGZpeGluZyBnZXRhZGRyaW5mbyByZXF1aXJlcworZGlm ZmVyZW50IGNoYW5nZXMpLgorCitSZXZpZXdlZC1ieTogU2lkZGhlc2ggUG95YXJla2FyIDxzaWRk aGVzaEBzb3VyY2V3YXJlLm9yZz4KKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IGQxMDFkODM2 ZTdlNGJkMWQ0ZTQ5NzJiMGUwYmQwYTU1YzliNjUwZmEpCistLS0KKyByZXNvbHYvbnNzX2Rucy9k bnMtaG9zdC5jIHwgNDc4ICsrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg MSBmaWxlIGNoYW5nZWQsIDE4MCBpbnNlcnRpb25zKCspLCAyOTggZGVsZXRpb25zKC0pCisKK2Rp ZmYgLS1naXQgYS9yZXNvbHYvbnNzX2Rucy9kbnMtaG9zdC5jIGIvcmVzb2x2L25zc19kbnMvZG5z LWhvc3QuYworaW5kZXggOGUzODU4M2UxNS4uYjg4N2U3N2U5YyAxMDA2NDQKKy0tLSBhL3Jlc29s di9uc3NfZG5zL2Rucy1ob3N0LmMKKysrKyBiL3Jlc29sdi9uc3NfZG5zL2Rucy1ob3N0LmMKK0BA IC0xMDcsMTIgKzEwNywxOSBAQCB0eXBlZGVmIHVuaW9uIHF1ZXJ5YnVmCisgICB1X2NoYXIgYnVm W01BWFBBQ0tFVF07CisgfSBxdWVyeWJ1ZjsKKyAKKy1zdGF0aWMgZW51bSBuc3Nfc3RhdHVzIGdl dGFuc3dlcl9yIChzdHJ1Y3QgcmVzb2x2X2NvbnRleHQgKmN0eCwKKy0JCQkJICAgIGNvbnN0IHF1 ZXJ5YnVmICphbnN3ZXIsIGludCBhbnNsZW4sCistCQkJCSAgICBjb25zdCBjaGFyICpxbmFtZSwg aW50IHF0eXBlLAorLQkJCQkgICAgc3RydWN0IGhvc3RlbnQgKnJlc3VsdCwgY2hhciAqYnVmZmVy LAorLQkJCQkgICAgc2l6ZV90IGJ1ZmxlbiwgaW50ICplcnJub3AsIGludCAqaF9lcnJub3AsCist CQkJCSAgICBpbnQzMl90ICp0dGxwLCBjaGFyICoqY2Fub25wKTsKKysvKiBGb3IgaGlzdG9yaWMg cmVhc29ucywgcG9pbnRlcnMgdG8gSVAgYWRkcmVzc2VzIGFyZSBjaGFyICosIHNvIHVzZSBhCisr ICAgc2luZ2xlIGxpc3QgdHlwZSBmb3IgYWRkcmVzc2VzIGFuZCBob3N0IG5hbWVzLiAgKi8KKysj ZGVmaW5lIERZTkFSUkFZX1NUUlVDVCBwdHJsaXN0CisrI2RlZmluZSBEWU5BUlJBWV9FTEVNRU5U IGNoYXIgKgorKyNkZWZpbmUgRFlOQVJSQVlfUFJFRklYIHB0cmxpc3RfCisrI2luY2x1ZGUgPG1h bGxvYy9keW5hcnJheS1za2VsZXRvbi5jPgorKworK3N0YXRpYyBlbnVtIG5zc19zdGF0dXMgZ2V0 YW5zd2VyX3IgKHVuc2lnbmVkIGNoYXIgKnBhY2tldCwgc2l6ZV90IHBhY2tldGxlbiwKKysJCQkJ ICAgIHVpbnQxNl90IHF0eXBlLCBzdHJ1Y3QgYWxsb2NfYnVmZmVyICphYnVmLAorKwkJCQkgICAg c3RydWN0IHB0cmxpc3QgKmFkZHJlc3NlcywKKysJCQkJICAgIHN0cnVjdCBwdHJsaXN0ICphbGlh c2VzLAorKwkJCQkgICAgaW50ICplcnJub3AsIGludCAqaF9lcnJub3AsIGludDMyX3QgKnR0bHAp OworK3N0YXRpYyB2b2lkIGFkZHJzb3J0IChzdHJ1Y3QgcmVzb2x2X2NvbnRleHQgKmN0eCwgY2hh ciAqKmFwLCBpbnQgbnVtKTsKKyBzdGF0aWMgZW51bSBuc3Nfc3RhdHVzIGdldGFuc3dlcl9wdHIg KHVuc2lnbmVkIGNoYXIgKnBhY2tldCwgc2l6ZV90IHBhY2tldGxlbiwKKyAJCQkJICAgICAgc3Ry dWN0IGFsbG9jX2J1ZmZlciAqYWJ1ZiwKKyAJCQkJICAgICAgY2hhciAqKmhuYW1lcCwgaW50ICpl cnJub3AsCitAQCAtMTg0LDEyICsxOTEsNiBAQCBnZXRob3N0YnluYW1lM19jb250ZXh0IChzdHJ1 Y3QgcmVzb2x2X2NvbnRleHQgKmN0eCwKKyAJCQljaGFyICpidWZmZXIsIHNpemVfdCBidWZsZW4s IGludCAqZXJybm9wLAorIAkJCWludCAqaF9lcnJub3AsIGludDMyX3QgKnR0bHAsIGNoYXIgKipj YW5vbnApCisgeworLSAgdW5pb24KKy0gIHsKKy0gICAgcXVlcnlidWYgKmJ1ZjsKKy0gICAgdV9j aGFyICpwdHI7CistICB9IGhvc3RfYnVmZmVyOworLSAgcXVlcnlidWYgKm9yaWdfaG9zdF9idWZm ZXI7CisgICBjaGFyIHRtcFtOU19NQVhETkFNRV07CisgICBpbnQgc2l6ZSwgdHlwZSwgbjsKKyAg IGNvbnN0IGNoYXIgKmNwOworQEAgLTIyMywxMCArMjI0LDEyIEBAIGdldGhvc3RieW5hbWUzX2Nv bnRleHQgKHN0cnVjdCByZXNvbHZfY29udGV4dCAqY3R4LAorICAgICAgICYmIChjcCA9IF9fcmVz X2NvbnRleHRfaG9zdGFsaWFzIChjdHgsIG5hbWUsIHRtcCwgc2l6ZW9mICh0bXApKSkgIT0gTlVM TCkKKyAgICAgbmFtZSA9IGNwOworIAorLSAgaG9zdF9idWZmZXIuYnVmID0gb3JpZ19ob3N0X2J1 ZmZlciA9IChxdWVyeWJ1ZiAqKSBhbGxvY2EgKDEwMjQpOworKyAgdW5zaWduZWQgY2hhciBkbnNf cGFja2V0X2J1ZmZlclsxMDI0XTsKKysgIHVuc2lnbmVkIGNoYXIgKmFsdF9kbnNfcGFja2V0X2J1 ZmZlciA9IGRuc19wYWNrZXRfYnVmZmVyOworIAorLSAgbiA9IF9fcmVzX2NvbnRleHRfc2VhcmNo IChjdHgsIG5hbWUsIENfSU4sIHR5cGUsIGhvc3RfYnVmZmVyLmJ1Zi0+YnVmLAorLQkJCSAgICAx MDI0LCAmaG9zdF9idWZmZXIucHRyLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMKTsKKysgIG4gPSBf X3Jlc19jb250ZXh0X3NlYXJjaCAoY3R4LCBuYW1lLCBDX0lOLCB0eXBlLAorKwkJCSAgICBkbnNf cGFja2V0X2J1ZmZlciwgc2l6ZW9mIChkbnNfcGFja2V0X2J1ZmZlciksCisrCQkJICAgICZhbHRf ZG5zX3BhY2tldF9idWZmZXIsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwpOworICAgaWYgKG4gPCAw KQorICAgICB7CisgICAgICAgc3dpdGNoIChlcnJubykKK0BAIC0yNTUsMTIgKzI1OCw3NyBAQCBn ZXRob3N0YnluYW1lM19jb250ZXh0IChzdHJ1Y3QgcmVzb2x2X2NvbnRleHQgKmN0eCwKKyAJX19z ZXRfZXJybm8gKG9sZGVycik7CisgICAgIH0KKyAgIGVsc2UKKy0gICAgc3RhdHVzID0gZ2V0YW5z d2VyX3IKKy0gICAgICAoY3R4LCBob3N0X2J1ZmZlci5idWYsIG4sIG5hbWUsIHR5cGUsIHJlc3Vs dCwgYnVmZmVyLCBidWZsZW4sCistICAgICAgIGVycm5vcCwgaF9lcnJub3AsIHR0bHAsIGNhbm9u cCk7CisrICAgIHsKKysgICAgICBzdHJ1Y3QgYWxsb2NfYnVmZmVyIGFidWYgPSBhbGxvY19idWZm ZXJfY3JlYXRlIChidWZmZXIsIGJ1Zmxlbik7CisgCistICBpZiAoaG9zdF9idWZmZXIuYnVmICE9 IG9yaWdfaG9zdF9idWZmZXIpCistICAgIGZyZWUgKGhvc3RfYnVmZmVyLmJ1Zik7CisrICAgICAg c3RydWN0IHB0cmxpc3QgYWRkcmVzc2VzOworKyAgICAgIHB0cmxpc3RfaW5pdCAoJmFkZHJlc3Nl cyk7CisrICAgICAgc3RydWN0IHB0cmxpc3QgYWxpYXNlczsKKysgICAgICBwdHJsaXN0X2luaXQg KCZhbGlhc2VzKTsKKysKKysgICAgICBzdGF0dXMgPSBnZXRhbnN3ZXJfciAoYWx0X2Ruc19wYWNr ZXRfYnVmZmVyLCBuLCB0eXBlLAorKwkJCSAgICAmYWJ1ZiwgJmFkZHJlc3NlcywgJmFsaWFzZXMs CisrCQkJICAgIGVycm5vcCwgaF9lcnJub3AsIHR0bHApOworKyAgICAgIGlmIChzdGF0dXMgPT0g TlNTX1NUQVRVU19TVUNDRVNTKQorKwl7CisrCSAgaWYgKHB0cmxpc3RfaGFzX2ZhaWxlZCAoJmFk ZHJlc3NlcykKKysJICAgICAgfHwgcHRybGlzdF9oYXNfZmFpbGVkICgmYWxpYXNlcykpCisrCSAg ICB7CisrCSAgICAgIC8qIG1hbGxvYyBmYWlsdXJlLiAgRG8gbm90IHJldHJ5IHVzaW5nIHRoZSBF UkFOR0UgcHJvdG9jb2wuICAqLworKwkgICAgICAqZXJybm9wID0gRU5PTUVNOworKwkgICAgICAq aF9lcnJub3AgPSBORVREQl9JTlRFUk5BTDsKKysJICAgICAgc3RhdHVzID0gTlNTX1NUQVRVU19V TkFWQUlMOworKwkgICAgfQorKworKwkgIC8qIFJlc2VydmUgdGhlIGFkZHJlc3MgYW5kIGFsaWFz IGFycmF5cyBpbiB0aGUgcmVzdWx0CisrCSAgICAgYnVmZmVyLiAgQm90aCBhcmUgTlVMTC10ZXJt aW5hdGVkLCBidXQgdGhlIGZpcnN0IGVsZW1lbnQKKysJICAgICBvZiB0aGUgYWxpYXMgYXJyYXkg aXMgc3RvcmVkIGluIGhfbmFtZSwgc28gbm8gZXh0cmEgc3BhY2UKKysJICAgICBmb3IgdGhlIE5V TEwgdGVybWluYXRvciBpcyBuZWVkZWQgdGhlcmUuICAqLworKwkgIHJlc3VsdC0+aF9hZGRyX2xp c3QKKysJICAgID0gYWxsb2NfYnVmZmVyX2FsbG9jX2FycmF5ICgmYWJ1ZiwgY2hhciAqLAorKwkJ CQkJcHRybGlzdF9zaXplICgmYWRkcmVzc2VzKSArIDEpOworKwkgIHJlc3VsdC0+aF9hbGlhc2Vz CisrCSAgICA9IGFsbG9jX2J1ZmZlcl9hbGxvY19hcnJheSAoJmFidWYsIGNoYXIgKiwKKysJCQkJ CXB0cmxpc3Rfc2l6ZSAoJmFsaWFzZXMpKTsKKysJICBpZiAoYWxsb2NfYnVmZmVyX2hhc19mYWls ZWQgKCZhYnVmKSkKKysJICAgIHsKKysJICAgICAgLyogUmV0cnkgdXNpbmcgdGhlIEVSQU5HRSBw cm90b2NvbC4gICovCisrCSAgICAgICplcnJub3AgPSBFUkFOR0U7CisrCSAgICAgICpoX2Vycm5v cCA9IE5FVERCX0lOVEVSTkFMOworKwkgICAgICBzdGF0dXMgPSBOU1NfU1RBVFVTX1RSWUFHQUlO OworKwkgICAgfQorKwkgIGVsc2UKKysJICAgIHsKKysJICAgICAgLyogQ29weSB0aGUgYWRkcmVz cyBsaXN0IGFuZCBOVUxMLXRlcm1pbmF0ZSBpdC4gICovCisrCSAgICAgIG1lbWNweSAocmVzdWx0 LT5oX2FkZHJfbGlzdCwgcHRybGlzdF9iZWdpbiAoJmFkZHJlc3NlcyksCisrCQkgICAgICBwdHJs aXN0X3NpemUgKCZhZGRyZXNzZXMpICogc2l6ZW9mIChjaGFyICopKTsKKysJICAgICAgcmVzdWx0 LT5oX2FkZHJfbGlzdFtwdHJsaXN0X3NpemUgKCZhZGRyZXNzZXMpXSA9IE5VTEw7CisrCisrCSAg ICAgIC8qIFNvcnQgdGhlIGFkZHJlc3MgbGlzdCBpZiByZXF1ZXN0ZWQuICAqLworKwkgICAgICBp ZiAodHlwZSA9PSBUX0EgJiYgX19yZXNvbHZfY29udGV4dF9zb3J0X2NvdW50IChjdHgpID4gMCkK KysJCWFkZHJzb3J0IChjdHgsIHJlc3VsdC0+aF9hZGRyX2xpc3QsIHB0cmxpc3Rfc2l6ZSAoJmFk ZHJlc3NlcykpOworKworKwkgICAgICAvKiBDb3B5IHRoZSBhbGlhc2VzLCAgZXhjbHVkaW5nIHRo ZSBsYXN0IG9uZS4gKi8KKysJICAgICAgbWVtY3B5IChyZXN1bHQtPmhfYWxpYXNlcywgcHRybGlz dF9iZWdpbiAoJmFsaWFzZXMpLAorKwkJICAgICAgKHB0cmxpc3Rfc2l6ZSAoJmFsaWFzZXMpIC0g MSkgKiBzaXplb2YgKGNoYXIgKikpOworKwkgICAgICByZXN1bHQtPmhfYWxpYXNlc1twdHJsaXN0 X3NpemUgKCZhbGlhc2VzKSAtIDFdID0gTlVMTDsKKysKKysJICAgICAgLyogVGhlIGxhc3QgYWxp YXMgZ29lcyBpbnRvIGhfbmFtZS4gICovCisrCSAgICAgIGFzc2VydCAocHRybGlzdF9zaXplICgm YWxpYXNlcykgPj0gMSk7CisrCSAgICAgIHJlc3VsdC0+aF9uYW1lID0gcHRybGlzdF9lbmQgKCZh bGlhc2VzKVstMV07CisrCisrCSAgICAgIC8qIFRoaXMgaXMgYWxzbyB0aGUgY2Fub25pY2FsIG5h bWUuICAqLworKwkgICAgICBpZiAoY2Fub25wICE9IE5VTEwpCisrCQkqY2Fub25wID0gcmVzdWx0 LT5oX25hbWU7CisrCSAgICB9CisrCX0KKysKKysgICAgICBwdHJsaXN0X2ZyZWUgKCZhbGlhc2Vz KTsKKysgICAgICBwdHJsaXN0X2ZyZWUgKCZhZGRyZXNzZXMpOworKyAgICB9CisrCisrICBpZiAo YWx0X2Ruc19wYWNrZXRfYnVmZmVyICE9IGRuc19wYWNrZXRfYnVmZmVyKQorKyAgICBmcmVlIChh bHRfZG5zX3BhY2tldF9idWZmZXIpOworICAgcmV0dXJuIHN0YXR1czsKKyB9CisgCitAQCAtNjE0 LDMxNCArNjgyLDEyOCBAQCBhZGRyc29ydCAoc3RydWN0IHJlc29sdl9jb250ZXh0ICpjdHgsIGNo YXIgKiphcCwgaW50IG51bSkKKyAJYnJlYWs7CisgfQorIAorLXN0YXRpYyBlbnVtIG5zc19zdGF0 dXMKKy1nZXRhbnN3ZXJfciAoc3RydWN0IHJlc29sdl9jb250ZXh0ICpjdHgsCistCSAgICAgY29u c3QgcXVlcnlidWYgKmFuc3dlciwgaW50IGFuc2xlbiwgY29uc3QgY2hhciAqcW5hbWUsIGludCBx dHlwZSwKKy0JICAgICBzdHJ1Y3QgaG9zdGVudCAqcmVzdWx0LCBjaGFyICpidWZmZXIsIHNpemVf dCBidWZsZW4sCistCSAgICAgaW50ICplcnJub3AsIGludCAqaF9lcnJub3AsIGludDMyX3QgKnR0 bHAsIGNoYXIgKipjYW5vbnApCisrLyogQ29udmVydCB0aGUgdW5jb21wcmVzc2VkLCBiaW5hcnkg ZG9tYWluIG5hbWUgQ0ROQU1FIGludG8gaXRzCisrICAgdGV4dHVhbCByZXByZXNlbnRhdGlvbiBh bmQgYWRkIGl0IHRvIHRoZSBlbmQgb2YgQUxJQVNFUywgYWxsb2NhdGluZworKyAgIHNwYWNlIGZv ciBhIGNvcHkgb2YgdGhlIG5hbWUgZnJvbSBBQlVGLiAgU2tpcCBhZGRpbmcgdGhlIG5hbWUgaWYg aXQKKysgICBpcyBub3QgYSB2YWxpZCBob3N0IG5hbWUsIGFuZCByZXR1cm4gZmFsc2UgaW4gdGhh dCBjYXNlLCBvdGhlcndpc2UKKysgICB0cnVlLiAgKi8KKytzdGF0aWMgYm9vbAorK2dldGFuc3dl cl9yX3N0b3JlX2FsaWFzIChjb25zdCB1bnNpZ25lZCBjaGFyICpjZG5hbWUsCisrCQkJIHN0cnVj dCBhbGxvY19idWZmZXIgKmFidWYsCisrCQkJIHN0cnVjdCBwdHJsaXN0ICphbGlhc2VzKQorIHsK Ky0gIHN0cnVjdCBob3N0X2RhdGEKKy0gIHsKKy0gICAgY2hhciAqYWxpYXNlc1tNQVhfTlJfQUxJ QVNFU107CistICAgIHVuc2lnbmVkIGNoYXIgaG9zdF9hZGRyWzE2XTsJLyogSVB2NCBvciBJUHY2 ICovCistICAgIGNoYXIgKmhfYWRkcl9wdHJzWzBdOworLSAgfSAqaG9zdF9kYXRhOworLSAgaW50 IGxpbmVidWZsZW47CistICBjb25zdCBIRUFERVIgKmhwOworLSAgY29uc3QgdV9jaGFyICplbmRf b2ZfbWVzc2FnZSwgKmNwOworLSAgaW50IG4sIGFuY291bnQsIHFkY291bnQ7CistICBpbnQgaGF2 ZWFuc3dlciwgaGFkX2Vycm9yOworLSAgY2hhciAqYnAsICoqYXAsICoqaGFwOworLSAgY2hhciB0 YnVmW01BWEROQU1FXTsKKy0gIHVfY2hhciBwYWNrdG1wW05TX01BWENETkFNRV07CistICB1aW50 cHRyX3QgcGFkID0gLSh1aW50cHRyX3QpIGJ1ZmZlciAlIF9fYWxpZ25vZl9fIChzdHJ1Y3QgaG9z dF9kYXRhKTsKKy0gIGJ1ZmZlciArPSBwYWQ7CistICBidWZsZW4gPSBidWZsZW4gPiBwYWQgPyBi dWZsZW4gLSBwYWQgOiAwOworLSAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKGJ1ZmxlbiA8IHNpemVv ZiAoc3RydWN0IGhvc3RfZGF0YSkpKQorLSAgICB7CistICAgICAgLyogVGhlIGJ1ZmZlciBpcyB0 b28gc21hbGwuICAqLworLSAgICB0b29fc21hbGw6CistICAgICAgKmVycm5vcCA9IEVSQU5HRTsK Ky0gICAgICAqaF9lcnJub3AgPSBORVREQl9JTlRFUk5BTDsKKy0gICAgICByZXR1cm4gTlNTX1NU QVRVU19UUllBR0FJTjsKKy0gICAgfQorLSAgaG9zdF9kYXRhID0gKHN0cnVjdCBob3N0X2RhdGEg KikgYnVmZmVyOworLSAgbGluZWJ1ZmxlbiA9IGJ1ZmxlbiAtIHNpemVvZiAoc3RydWN0IGhvc3Rf ZGF0YSk7CistICBpZiAoYnVmbGVuIC0gc2l6ZW9mIChzdHJ1Y3QgaG9zdF9kYXRhKSAhPSBsaW5l YnVmbGVuKQorLSAgICBsaW5lYnVmbGVuID0gSU5UX01BWDsKKy0KKy0gIHJlc3VsdC0+aF9uYW1l ID0gTlVMTDsKKy0gIGVuZF9vZl9tZXNzYWdlID0gYW5zd2VyLT5idWYgKyBhbnNsZW47CistCist ICAvKgorLSAgICogZmluZCBmaXJzdCBzYXRpc2ZhY3RvcnkgYW5zd2VyCistICAgKi8KKy0gIGhw ID0gJmFuc3dlci0+aGRyOworLSAgYW5jb3VudCA9IG50b2hzIChocC0+YW5jb3VudCk7CistICBx ZGNvdW50ID0gbnRvaHMgKGhwLT5xZGNvdW50KTsKKy0gIGNwID0gYW5zd2VyLT5idWYgKyBIRklY RURTWjsKKy0gIGlmIChfX2dsaWJjX3VubGlrZWx5IChxZGNvdW50ICE9IDEpKQorLSAgICB7Cist ICAgICAgKmhfZXJybm9wID0gTk9fUkVDT1ZFUlk7CistICAgICAgcmV0dXJuIE5TU19TVEFUVVNf VU5BVkFJTDsKKy0gICAgfQorLSAgaWYgKHNpemVvZiAoc3RydWN0IGhvc3RfZGF0YSkgKyAoYW5j b3VudCArIDEpICogc2l6ZW9mIChjaGFyICopID49IGJ1ZmxlbikKKy0gICAgZ290byB0b29fc21h bGw7CistICBicCA9IChjaGFyICopICZob3N0X2RhdGEtPmhfYWRkcl9wdHJzW2FuY291bnQgKyAx XTsKKy0gIGxpbmVidWZsZW4gLT0gKGFuY291bnQgKyAxKSAqIHNpemVvZiAoY2hhciAqKTsKKy0K Ky0gIG4gPSBfX25zX25hbWVfdW5wYWNrIChhbnN3ZXItPmJ1ZiwgZW5kX29mX21lc3NhZ2UsIGNw LAorLQkJCXBhY2t0bXAsIHNpemVvZiBwYWNrdG1wKTsKKy0gIGlmIChuICE9IC0xICYmIF9fbnNf bmFtZV9udG9wIChwYWNrdG1wLCBicCwgbGluZWJ1ZmxlbikgPT0gLTEpCistICAgIHsKKy0gICAg ICBpZiAoX19nbGliY191bmxpa2VseSAoZXJybm8gPT0gRU1TR1NJWkUpKQorLQlnb3RvIHRvb19z bWFsbDsKKy0KKy0gICAgICBuID0gLTE7CistICAgIH0KKysgIC8qIEZpbHRlciBvdXQgZG9tYWlu IG5hbWVzIHRoYXQgYXJlIG5vdCBob3N0IG5hbWVzLiAgKi8KKysgIGlmICghX19yZXNfYmluYXJ5 X2hub2sgKGNkbmFtZSkpCisrICAgIHJldHVybiBmYWxzZTsKKysKKysgIC8qIE5vdGU6IE5vdCBO U19NQVhDRE5BTUUsIHNvIHRoYXQgX19uc19uYW1lX250b3AgaW1wbGljaXRseSBjaGVja3MKKysg ICAgIGZvciBsZW5ndGguICAqLworKyAgY2hhciBkbmFtZVtNQVhIT1NUTkFNRUxFTiArIDFdOwor KyAgaWYgKF9fbnNfbmFtZV9udG9wIChjZG5hbWUsIGRuYW1lLCBzaXplb2YgKGRuYW1lKSkgPCAw KQorKyAgICByZXR1cm4gZmFsc2U7CisrICAvKiBEbyBub3QgcmVwb3J0IGFuIGVycm9yIG9uIGFs bG9jYXRpb24gZmFpbHVyZSwgaW5zdGVhZCBzdG9yZSBOVUxMCisrICAgICBvciBkbyBub3RoaW5n LiAgZ2V0YW5zd2VyX3IncyBjYWxsZXIgd2lsbCBzZWUgTlNTX1NUQVRVU19TVUNDRVNTCisrICAg ICBhbmQgZGV0ZWN0IHRoZSBtZW1vcnkgYWxsb2NhdGlvbiBmYWlsdXJlIG9yIGJ1ZmZlciBzcGFj ZQorKyAgICAgZXhoYXVzdGlvbiwgYW5kIHJlcG9ydCBpdCBhY2NvcmRpbmdseS4gICovCisrICBw dHJsaXN0X2FkZCAoYWxpYXNlcywgYWxsb2NfYnVmZmVyX2NvcHlfc3RyaW5nIChhYnVmLCBkbmFt ZSkpOworKyAgcmV0dXJuIHRydWU7CisrfQorIAorLSAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKG4g PCAwKSkKKy0gICAgeworLSAgICAgICplcnJub3AgPSBlcnJubzsKKy0gICAgICAqaF9lcnJub3Ag PSBOT19SRUNPVkVSWTsKKy0gICAgICByZXR1cm4gTlNTX1NUQVRVU19VTkFWQUlMOworLSAgICB9 CistICBpZiAoX19nbGliY191bmxpa2VseSAoX19saWJjX3Jlc19obm9rIChicCkgPT0gMCkpCisr c3RhdGljIGVudW0gbnNzX3N0YXR1cyBfX2F0dHJpYnV0ZV9fICgobm9pbmxpbmUpKQorK2dldGFu c3dlcl9yICh1bnNpZ25lZCBjaGFyICpwYWNrZXQsIHNpemVfdCBwYWNrZXRsZW4sIHVpbnQxNl90 IHF0eXBlLAorKwkgICAgIHN0cnVjdCBhbGxvY19idWZmZXIgKmFidWYsCisrCSAgICAgc3RydWN0 IHB0cmxpc3QgKmFkZHJlc3Nlcywgc3RydWN0IHB0cmxpc3QgKmFsaWFzZXMsCisrCSAgICAgaW50 ICplcnJub3AsIGludCAqaF9lcnJub3AsIGludDMyX3QgKnR0bHApCisreworKyAgc3RydWN0IG5z X3JyX2N1cnNvciBjOworKyAgaWYgKCFfX25zX3JyX2N1cnNvcl9pbml0ICgmYywgcGFja2V0LCBw YWNrZXRsZW4pKQorICAgICB7CistICAgICAgZXJybm8gPSBFQkFETVNHOworLSAgICAgICplcnJu b3AgPSBFQkFETVNHOworKyAgICAgIC8qIFRoaXMgc2hvdWxkIG5vdCBoYXBwZW4gYmVjYXVzZSBf X3Jlc19jb250ZXh0X3F1ZXJ5IGFscmVhZHkKKysJIHBlcmZyb21zIHJlc3BvbnNlIHZhbGlkYXRp b24uICAqLworICAgICAgICpoX2Vycm5vcCA9IE5PX1JFQ09WRVJZOworICAgICAgIHJldHVybiBO U1NfU1RBVFVTX1VOQVZBSUw7CisgICAgIH0KKy0gIGNwICs9IG4gKyBRRklYRURTWjsKKyAKKy0g IGlmIChxdHlwZSA9PSBUX0EgfHwgcXR5cGUgPT0gVF9BQUFBKQorKyAgLyogVHJlYXQgdGhlIFFO QU1FIGp1c3QgbGlrZSBhbiBhbGlhcy4gIEVycm9yIG91dCBpZiBpdCBpcyBub3QgYQorKyAgICAg dmFsaWQgaG9zdCBuYW1lLiAgKi8KKysgIGlmIChuc19ycl9jdXJzb3JfcmNvZGUgKCZjKSA9PSBO WERPTUFJTgorKyAgICAgIHx8ICFnZXRhbnN3ZXJfcl9zdG9yZV9hbGlhcyAobnNfcnJfY3Vyc29y X3FuYW1lICgmYyksIGFidWYsIGFsaWFzZXMpKQorICAgICB7CistICAgICAgLyogcmVzX3NlbmQo KSBoYXMgYWxyZWFkeSB2ZXJpZmllZCB0aGF0IHRoZSBxdWVyeSBuYW1lIGlzIHRoZQorLSAgICAg ICAqIHNhbWUgYXMgdGhlIG9uZSB3ZSBzZW50OyB0aGlzIGp1c3QgZ2V0cyB0aGUgZXhwYW5kZWQg bmFtZQorLSAgICAgICAqIChpLmUuLCB3aXRoIHRoZSBzdWNjZWVkaW5nIHNlYXJjaC1kb21haW4g dGFja2VkIG9uKS4KKy0gICAgICAgKi8KKy0gICAgICBuID0gc3RybGVuIChicCkgKyAxOyAgICAg ICAgICAgICAvKiBmb3IgdGhlIFwwICovCistICAgICAgaWYgKG4gPj0gTUFYSE9TVE5BTUVMRU4p CistCXsKKy0JICAqaF9lcnJub3AgPSBOT19SRUNPVkVSWTsKKy0JICAqZXJybm9wID0gRU5PRU5U OworLQkgIHJldHVybiBOU1NfU1RBVFVTX1RSWUFHQUlOOworLQl9CistICAgICAgcmVzdWx0LT5o X25hbWUgPSBicDsKKy0gICAgICBicCArPSBuOworLSAgICAgIGxpbmVidWZsZW4gLT0gbjsKKy0g ICAgICBpZiAobGluZWJ1ZmxlbiA8IDApCistCWdvdG8gdG9vX3NtYWxsOworLSAgICAgIC8qIFRo ZSBxbmFtZSBjYW4gYmUgYWJicmV2aWF0ZWQsIGJ1dCBoX25hbWUgaXMgbm93IGFic29sdXRlLiAq LworLSAgICAgIHFuYW1lID0gcmVzdWx0LT5oX25hbWU7CisrICAgICAgaWYgKHR0bHAgIT0gTlVM TCkKKysJLyogTm8gbmVnYXRpdmUgY2FjaGluZy4gICovCisrCSp0dGxwID0gMDsKKysgICAgICAq aF9lcnJub3AgPSBIT1NUX05PVF9GT1VORDsKKysgICAgICAqZXJybm9wID0gRU5PRU5UOworKyAg ICAgIHJldHVybiBOU1NfU1RBVFVTX05PVEZPVU5EOworICAgICB9CisgCistICBhcCA9IGhvc3Rf ZGF0YS0+YWxpYXNlczsKKy0gICphcCA9IE5VTEw7CistICByZXN1bHQtPmhfYWxpYXNlcyA9IGhv c3RfZGF0YS0+YWxpYXNlczsKKy0gIGhhcCA9IGhvc3RfZGF0YS0+aF9hZGRyX3B0cnM7CistICAq aGFwID0gTlVMTDsKKy0gIHJlc3VsdC0+aF9hZGRyX2xpc3QgPSBob3N0X2RhdGEtPmhfYWRkcl9w dHJzOworLSAgaGF2ZWFuc3dlciA9IDA7CistICBoYWRfZXJyb3IgPSAwOworKyAgaW50IGFuY291 bnQgPSBuc19ycl9jdXJzb3JfYW5jb3VudCAoJmMpOworKyAgY29uc3QgdW5zaWduZWQgY2hhciAq ZXhwZWN0ZWRfbmFtZSA9IG5zX3JyX2N1cnNvcl9xbmFtZSAoJmMpOworKyAgLyogZXhwZWN0ZWRf bmFtZSBtYXkgYmUgdXBkYXRlZCB0byBwb2ludCBpbnRvIHRoaXMgYnVmZmVyLiAgKi8KKysgIHVu c2lnbmVkIGNoYXIgbmFtZV9idWZmZXJbTlNfTUFYQ0ROQU1FXTsKKyAKKy0gIHdoaWxlIChhbmNv dW50LS0gPiAwICYmIGNwIDwgZW5kX29mX21lc3NhZ2UgJiYgaGFkX2Vycm9yID09IDApCisrICBm b3IgKDsgYW5jb3VudCA+IDA7IC0tYW5jb3VudCkKKyAgICAgeworLSAgICAgIGludCB0eXBlLCBj bGFzczsKKy0KKy0gICAgICBuID0gX19uc19uYW1lX3VucGFjayAoYW5zd2VyLT5idWYsIGVuZF9v Zl9tZXNzYWdlLCBjcCwKKy0JCQkgICAgcGFja3RtcCwgc2l6ZW9mIHBhY2t0bXApOworLSAgICAg IGlmIChuICE9IC0xICYmIF9fbnNfbmFtZV9udG9wIChwYWNrdG1wLCBicCwgbGluZWJ1Zmxlbikg PT0gLTEpCistCXsKKy0JICBpZiAoX19nbGliY191bmxpa2VseSAoZXJybm8gPT0gRU1TR1NJWkUp KQorLQkgICAgZ290byB0b29fc21hbGw7CistCistCSAgbiA9IC0xOworLQl9CistCistICAgICAg aWYgKF9fZ2xpYmNfdW5saWtlbHkgKG4gPCAwIHx8IF9fbGliY19yZXNfaG5vayAoYnApID09IDAp KQorLQl7CistCSAgKytoYWRfZXJyb3I7CistCSAgY29udGludWU7CistCX0KKy0gICAgICBjcCAr PSBuOwkJCQkvKiBuYW1lICovCistCistICAgICAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKGNwICsg MTAgPiBlbmRfb2ZfbWVzc2FnZSkpCisrICAgICAgc3RydWN0IG5zX3JyX3dpcmUgcnI7CisrICAg ICAgaWYgKCFfX25zX3JyX2N1cnNvcl9uZXh0ICgmYywgJnJyKSkKKyAJeworLQkgICsraGFkX2Vy cm9yOworLQkgIGNvbnRpbnVlOworKwkgICpoX2Vycm5vcCA9IE5PX1JFQ09WRVJZOworKwkgIHJl dHVybiBOU1NfU1RBVFVTX1VOQVZBSUw7CisgCX0KKyAKKy0gICAgICBOU19HRVQxNiAodHlwZSwg Y3ApOworLSAgICAgIE5TX0dFVDE2IChjbGFzcywgY3ApOworLSAgICAgIGludDMyX3QgdHRsOwor LSAgICAgIE5TX0dFVDMyICh0dGwsIGNwKTsKKy0gICAgICBOU19HRVQxNiAobiwgY3ApOwkJLyog UkRBVEEgbGVuZ3RoLiAgKi8KKy0KKy0gICAgICBpZiAoZW5kX29mX21lc3NhZ2UgLSBjcCA8IG4p CistCXsKKy0JICAvKiBSREFUQSBleHRlbmRzIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBwYWNrZXQu ICAqLworLQkgICsraGFkX2Vycm9yOworLQkgIGNvbnRpbnVlOworLQl9CisrICAgICAgLyogU2tp cCBvdmVyIHJlY29yZHMgd2l0aCB0aGUgd3JvbmcgY2xhc3MuICAqLworKyAgICAgIGlmIChyci5y Y2xhc3MgIT0gQ19JTikKKysJY29udGludWU7CisgCistICAgICAgaWYgKF9fZ2xpYmNfdW5saWtl bHkgKGNsYXNzICE9IENfSU4pKQorLQl7CistCSAgLyogWFhYIC0gZGVidWc/IHN5c2xvZz8gKi8K Ky0JICBjcCArPSBuOworLQkgIGNvbnRpbnVlOwkJCS8qIFhYWCAtIGhhZF9lcnJvcisrID8gKi8K Ky0JfQorKyAgICAgIC8qIFVwZGF0ZSBUVEwgZm9yIHJlY29nbml6ZWQgcmVjb3JkIHR5cGVzLiAg Ki8KKysgICAgICBpZiAoKHJyLnJ0eXBlID09IFRfQ05BTUUgfHwgcnIucnR5cGUgPT0gcXR5cGUp CisrCSAgJiYgdHRscCAhPSBOVUxMICYmICp0dGxwID4gcnIudHRsKQorKwkqdHRscCA9IHJyLnR0 bDsKKyAKKy0gICAgICBpZiAodHlwZSA9PSBUX0NOQU1FKQorKyAgICAgIGlmIChyci5ydHlwZSA9 PSBUX0NOQU1FKQorIAl7CistCSAgLyogQSBDTkFNRSBjb3VsZCBhbHNvIGhhdmUgYSBUVEwgZW50 cnkuICAqLworLQkgIGlmICh0dGxwICE9IE5VTEwgJiYgdHRsIDwgKnR0bHApCistCSAgICAgICp0 dGxwID0gdHRsOworLQorLQkgIGlmIChhcCA+PSAmaG9zdF9kYXRhLT5hbGlhc2VzW01BWF9OUl9B TElBU0VTIC0gMV0pCistCSAgICBjb250aW51ZTsKKy0JICBuID0gX19saWJjX2RuX2V4cGFuZCAo YW5zd2VyLT5idWYsIGVuZF9vZl9tZXNzYWdlLCBjcCwKKy0JCQkJdGJ1Ziwgc2l6ZW9mIHRidWYp OworLQkgIGlmIChfX2dsaWJjX3VubGlrZWx5IChuIDwgMCB8fCBfX2xpYmNfcmVzX2hub2sgKHRi dWYpID09IDApKQorLQkgICAgeworLQkgICAgICArK2hhZF9lcnJvcjsKKy0JICAgICAgY29udGlu dWU7CistCSAgICB9CistCSAgY3AgKz0gbjsKKy0JICAvKiBTdG9yZSBhbGlhcy4gICovCistCSAg KmFwKysgPSBicDsKKy0JICBuID0gc3RybGVuIChicCkgKyAxOwkJLyogRm9yIHRoZSBcMC4gICov CistCSAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKG4gPj0gTUFYSE9TVE5BTUVMRU4pKQorLQkgICAg eworLQkgICAgICArK2hhZF9lcnJvcjsKKy0JICAgICAgY29udGludWU7CistCSAgICB9CistCSAg YnAgKz0gbjsKKy0JICBsaW5lYnVmbGVuIC09IG47CistCSAgLyogR2V0IGNhbm9uaWNhbCBuYW1l LiAgKi8KKy0JICBuID0gc3RybGVuICh0YnVmKSArIDE7CS8qIEZvciB0aGUgXDAuICAqLworLQkg IGlmIChfX2dsaWJjX3VubGlrZWx5IChuID4gbGluZWJ1ZmxlbikpCistCSAgICBnb3RvIHRvb19z bWFsbDsKKy0JICBpZiAoX19nbGliY191bmxpa2VseSAobiA+PSBNQVhIT1NUTkFNRUxFTikpCisr CSAgLyogTkI6IE5vIGNoZWNrIGZvciBvd25lciBuYW1lIG1hdGNoLCBiYXNlZCBvbiBoaXN0b3Jp YworKwkgICAgIHByZWNlZGVudC4gIFJlY29yZCB0aGUgQ05BTUUgdGFyZ2V0IGFzIHRoZSBuZXcg ZXhwZWN0ZWQKKysJICAgICBuYW1lLiAgKi8KKysJICBpbnQgbiA9IF9fbnNfbmFtZV91bnBhY2sg KGMuYmVnaW4sIGMuZW5kLCByci5yZGF0YSwKKysJCQkJICAgIG5hbWVfYnVmZmVyLCBzaXplb2Yg KG5hbWVfYnVmZmVyKSk7CisrCSAgaWYgKG4gPCAwKQorIAkgICAgeworLQkgICAgICArK2hhZF9l cnJvcjsKKy0JICAgICAgY29udGludWU7CisrCSAgICAgICpoX2Vycm5vcCA9IE5PX1JFQ09WRVJZ OworKwkgICAgICByZXR1cm4gTlNTX1NUQVRVU19VTkFWQUlMOworIAkgICAgfQorLQkgIHJlc3Vs dC0+aF9uYW1lID0gYnA7CistCSAgYnAgPSBfX21lbXBjcHkgKGJwLCB0YnVmLCBuKTsJLyogQ2Fu bm90IG92ZXJmbG93LiAgKi8KKy0JICBsaW5lYnVmbGVuIC09IG47CistCSAgY29udGludWU7Cisr CSAgLyogQW5kIHN0b3JlIHRoZSBuZXcgbmFtZSBhcyBhbiBhbGlhcy4gICovCisrCSAgZ2V0YW5z d2VyX3Jfc3RvcmVfYWxpYXMgKG5hbWVfYnVmZmVyLCBhYnVmLCBhbGlhc2VzKTsKKysJICBleHBl Y3RlZF9uYW1lID0gbmFtZV9idWZmZXI7CisgCX0KKy0KKy0gICAgICBpZiAoX19nbGliY191bmxp a2VseSAodHlwZSAhPSBxdHlwZSkpCisrICAgICAgZWxzZSBpZiAocnIucnR5cGUgPT0gcXR5cGUK KysJICAgICAgICYmIF9fbnNfc2FtZWJpbmFyeW5hbWUgKHJyLnJuYW1lLCBleHBlY3RlZF9uYW1l KQorKwkgICAgICAgJiYgcnIucmRsZW5ndGggPT0gcnJ0eXBlX3RvX3JkYXRhX2xlbmd0aCAocXR5 cGUpKQorIAl7CistCSAgY3AgKz0gbjsKKy0JICBjb250aW51ZTsJCQkvKiBYWFggLSBoYWRfZXJy b3IrKyA/ICovCisrCSAgLyogTWFrZSBhIGNvcHkgb2YgdGhlIGFkZHJlc3MgYW5kIHN0b3JlIGl0 LiAgSW5jcmVhc2UgdGhlCisrCSAgICAgYWxpZ25tZW50IHRvIDQsIGluIGNhc2UgdGhlcmUgYXJl IGFwcGxpY2F0aW9ucyBvdXQgdGhlcmUKKysJICAgICB0aGF0IGV4cGVjdCBhdCBsZWFzdCB0aGlz IGxldmVsIG9mIGFkZHJlc3MgYWxpZ25tZW50LiAgKi8KKysJICBwdHJsaXN0X2FkZCAoYWRkcmVz c2VzLCAoY2hhciAqKSBhbGxvY19idWZmZXJfbmV4dCAoYWJ1ZiwgdWludDMyX3QpKTsKKysJICBh bGxvY19idWZmZXJfY29weV9ieXRlcyAoYWJ1ZiwgcnIucmRhdGEsIHJyLnJkbGVuZ3RoKTsKKyAJ fQorLQorLSAgICAgIHN3aXRjaCAodHlwZSkKKy0JeworLQljYXNlIFRfQToKKy0JY2FzZSBUX0FB QUE6CistCSAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKF9fc3RyY2FzZWNtcCAocmVzdWx0LT5oX25h bWUsIGJwKSAhPSAwKSkKKy0JICAgIHsKKy0JICAgICAgY3AgKz0gbjsKKy0JICAgICAgY29udGlu dWU7CQkJLyogWFhYIC0gaGFkX2Vycm9yKysgPyAqLworLQkgICAgfQorLQorLQkgIC8qIFN0b3Ag cGFyc2luZyBhdCBhIHJlY29yZCB3aG9zZSBsZW5ndGggaXMgaW5jb3JyZWN0LiAgKi8KKy0JICBp ZiAobiAhPSBycnR5cGVfdG9fcmRhdGFfbGVuZ3RoICh0eXBlKSkKKy0JICAgIHsKKy0JICAgICAg KytoYWRfZXJyb3I7CistCSAgICAgIGJyZWFrOworLQkgICAgfQorLQorLQkgIC8qIFNraXAgcmVj b3JkcyBvZiB0aGUgd3JvbmcgdHlwZS4gICovCistCSAgaWYgKG4gIT0gcmVzdWx0LT5oX2xlbmd0 aCkKKy0JICAgIHsKKy0JICAgICAgY3AgKz0gbjsKKy0JICAgICAgY29udGludWU7CistCSAgICB9 CistCSAgaWYgKCFoYXZlYW5zd2VyKQorLQkgICAgeworLQkgICAgICBpbnQgbm47CistCistCSAg ICAgIC8qIFdlIGNvbXBvc2UgYSBzaW5nbGUgaG9zdGVudCBvdXQgb2YgdGhlIGVudGlyZSBjaGFp biBvZgorLQkgICAgICAgICBlbnRyaWVzLCBzbyB0aGUgVFRMIG9mIHRoZSBob3N0ZW50IGlzIGVz c2VudGlhbGx5IHRoZSBsb3dlc3QKKy0JCSBUVEwgaW4gdGhlIGNoYWluLiAgKi8KKy0JICAgICAg aWYgKHR0bHAgIT0gTlVMTCAmJiB0dGwgPCAqdHRscCkKKy0JCSp0dGxwID0gdHRsOworLQkgICAg ICBpZiAoY2Fub25wICE9IE5VTEwpCistCQkqY2Fub25wID0gYnA7CistCSAgICAgIHJlc3VsdC0+ aF9uYW1lID0gYnA7CistCSAgICAgIG5uID0gc3RybGVuIChicCkgKyAxOwkvKiBmb3IgdGhlIFww ICovCistCSAgICAgIGJwICs9IG5uOworLQkgICAgICBsaW5lYnVmbGVuIC09IG5uOworLQkgICAg fQorLQorLQkgIC8qIFByb3ZpZGUgc3VmZmljaWVudCBhbGlnbm1lbnQgZm9yIGJvdGggYWRkcmVz cworLQkgICAgIGZhbWlsaWVzLiAgKi8KKy0JICBlbnVtIHsgYWxpZ24gPSA0IH07CistCSAgX1N0 YXRpY19hc3NlcnQgKChhbGlnbiAlIF9fYWxpZ25vZl9fIChzdHJ1Y3QgaW5fYWRkcikpID09IDAs CistCQkJICAic3RydWN0IGluX2FkZHIgYWxpZ25tZW50Iik7CistCSAgX1N0YXRpY19hc3NlcnQg KChhbGlnbiAlIF9fYWxpZ25vZl9fIChzdHJ1Y3QgaW42X2FkZHIpKSA9PSAwLAorLQkJCSAgInN0 cnVjdCBpbjZfYWRkciBhbGlnbm1lbnQiKTsKKy0JICB7CistCSAgICBjaGFyICpuZXdfYnAgPSBQ VFJfQUxJR05fVVAgKGJwLCBhbGlnbik7CistCSAgICBsaW5lYnVmbGVuIC09IG5ld19icCAtIGJw OworLQkgICAgYnAgPSBuZXdfYnA7CistCSAgfQorLQorLQkgIGlmIChfX2dsaWJjX3VubGlrZWx5 IChuID4gbGluZWJ1ZmxlbikpCistCSAgICBnb3RvIHRvb19zbWFsbDsKKy0JICBicCA9IF9fbWVt cGNweSAoKmhhcCsrID0gYnAsIGNwLCBuKTsKKy0JICBjcCArPSBuOworLQkgIGxpbmVidWZsZW4g LT0gbjsKKy0JICBicmVhazsKKy0JZGVmYXVsdDoKKy0JICBhYm9ydCAoKTsKKy0JfQorLSAgICAg IGlmIChoYWRfZXJyb3IgPT0gMCkKKy0JKytoYXZlYW5zd2VyOworICAgICB9CisgCistICBpZiAo aGF2ZWFuc3dlciA+IDApCisrICBpZiAocHRybGlzdF9zaXplIChhZGRyZXNzZXMpID09IDApCisg ICAgIHsKKy0gICAgICAqYXAgPSBOVUxMOworLSAgICAgICpoYXAgPSBOVUxMOworLSAgICAgIC8q CistICAgICAgICogTm90ZTogd2Ugc29ydCBldmVuIGlmIGhvc3QgY2FuIHRha2Ugb25seSBvbmUg YWRkcmVzcworLSAgICAgICAqIGluIGl0cyByZXR1cm4gc3RydWN0dXJlcyAtIHNob3VsZCBnaXZl IGl0IHRoZSAiYmVzdCIKKy0gICAgICAgKiBhZGRyZXNzIGluIHRoYXQgY2FzZSwgbm90IHNvbWUg cmFuZG9tIG9uZQorLSAgICAgICAqLworLSAgICAgIGlmIChoYXZlYW5zd2VyID4gMSAmJiBxdHlw ZSA9PSBUX0EKKy0JICAmJiBfX3Jlc29sdl9jb250ZXh0X3NvcnRfY291bnQgKGN0eCkgPiAwKQor LQlhZGRyc29ydCAoY3R4LCBob3N0X2RhdGEtPmhfYWRkcl9wdHJzLCBoYXZlYW5zd2VyKTsKKy0K Ky0gICAgICBpZiAocmVzdWx0LT5oX25hbWUgPT0gTlVMTCkKKy0JeworLQkgIG4gPSBzdHJsZW4g KHFuYW1lKSArIDE7CS8qIEZvciB0aGUgXDAuICAqLworLQkgIGlmIChuID4gbGluZWJ1ZmxlbikK Ky0JICAgIGdvdG8gdG9vX3NtYWxsOworLQkgIGlmIChuID49IE1BWEhPU1ROQU1FTEVOKQorLQkg ICAgZ290byBub19yZWNvdmVyeTsKKy0JICByZXN1bHQtPmhfbmFtZSA9IGJwOworLQkgIGJwID0g X19tZW1wY3B5IChicCwgcW5hbWUsIG4pOwkvKiBDYW5ub3Qgb3ZlcmZsb3cuICAqLworLQkgIGxp bmVidWZsZW4gLT0gbjsKKy0JfQorKyAgICAgIC8qIE5vIGFkZHJlc3MgcmVjb3JkIGZvdW5kLiAg Ki8KKysgICAgICBpZiAodHRscCAhPSBOVUxMKQorKwkvKiBObyBjYWNoaW5nIG9mIG5lZ2F0aXZl IHJlc3BvbnNlcy4gICovCisrCSp0dGxwID0gMDsKKyAKKysgICAgICAqaF9lcnJub3AgPSBOT19S RUNPVkVSWTsKKysgICAgICAqZXJybm9wID0gRU5PRU5UOworKyAgICAgIHJldHVybiBOU1NfU1RB VFVTX1RSWUFHQUlOOworKyAgICB9CisrICBlbHNlCisrICAgIHsKKyAgICAgICAqaF9lcnJub3Ag PSBORVREQl9TVUNDRVNTOworICAgICAgIHJldHVybiBOU1NfU1RBVFVTX1NVQ0NFU1M7CisgICAg IH0KKy0gbm9fcmVjb3Zlcnk6CistICAqaF9lcnJub3AgPSBOT19SRUNPVkVSWTsKKy0gICplcnJu b3AgPSBFTk9FTlQ7CistICAvKiBTcGVjaWFsIGNhc2UgaGVyZTogaWYgdGhlIHJlc29sdmVyIHNl bnQgYSByZXN1bHQgYnV0IGl0IG9ubHkKKy0gICAgIGNvbnRhaW5zIGEgQ05BTUUgd2hpbGUgd2Ug YXJlIGxvb2tpbmcgZm9yIGEgVF9BIG9yIFRfQUFBQSByZWNvcmQsCistICAgICB3ZSBmYWlsIHdp dGggTk9URk9VTkQgaW5zdGVhZCBvZiBUUllBR0FJTi4gICovCistICByZXR1cm4gKChxdHlwZSA9 PSBUX0EgfHwgcXR5cGUgPT0gVF9BQUFBKSAmJiBhcCAhPSBob3N0X2RhdGEtPmFsaWFzZXMKKy0J ICAgPyBOU1NfU1RBVFVTX05PVEZPVU5EIDogTlNTX1NUQVRVU19UUllBR0FJTik7CisgfQorIAor IHN0YXRpYyBlbnVtIG5zc19zdGF0dXMKKy0tIAorMi4zOC4xCisKKworRnJvbSA3YTIzNmRjNDRh MjJkYzQyNTJlODAzZDFlZTFkM2I5NzBlYzQzODA1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQor RnJvbTogRmxvcmlhbiBXZWltZXIgPGZ3ZWltZXJAcmVkaGF0LmNvbT4KK0RhdGU6IFR1ZSwgMzAg QXVnIDIwMjIgMTA6MDI6NDkgKzAyMDAKK1N1YmplY3Q6IG5zc19kbnM6IEluIGdhaWhfZ2V0YW5z d2VyX3NsaWNlLCBza2lwIHN0cmFuZ2UgYWxpYXNlcyAoYnVnIDEyMTU0KQorCitJZiB0aGUgbmFt ZSBpcyBub3QgYSBob3N0IG5hbWUsIHNraXAgYWRkaW5nIGl0IHRvIHRoZSByZXN1bHQsIGluc3Rl YWQKK29mIHJlcG9ydGluZyBxdWVyeSBmYWlsdXJlLiAgVGhpcyBmaXhlcyBidWcgMTIxNTQgZm9y IGdldGFkZHJpbmZvLgorCitUaGlzIGNvbW1pdCBzdGlsbCBrZWVwcyB0aGUgb2xkIHBhcnNpbmcg Y29kZSwgYW5kIG9ubHkgYWRqdXN0cyB3aGVuCithIGhvc3QgbmFtZSBpcyBjb3BpZWQuCisKK1Jl dmlld2VkLWJ5OiBTaWRkaGVzaCBQb3lhcmVrYXIgPHNpZGRoZXNoQHNvdXJjZXdhcmUub3JnPgor KGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgMzJiNTk5YWM4YzIxYzRjMzMyY2MzOTAwYTc5MmEx Mzk1YmNhNzljNykKKy0tLQorIHJlc29sdi9uc3NfZG5zL2Rucy1ob3N0LmMgfCA4ICsrKystLS0t CisgMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKKworZGlm ZiAtLWdpdCBhL3Jlc29sdi9uc3NfZG5zL2Rucy1ob3N0LmMgYi9yZXNvbHYvbnNzX2Rucy9kbnMt aG9zdC5jCitpbmRleCBiODg3ZTc3ZTljLi5iZWE1MDVkNjk3IDEwMDY0NAorLS0tIGEvcmVzb2x2 L25zc19kbnMvZG5zLWhvc3QuYworKysrIGIvcmVzb2x2L25zc19kbnMvZG5zLWhvc3QuYworQEAg LTk3MCwxMiArOTcwLDEyIEBAIGdhaWhfZ2V0YW5zd2VyX3NsaWNlIChjb25zdCBxdWVyeWJ1ZiAq YW5zd2VyLCBpbnQgYW5zbGVuLCBjb25zdCBjaGFyICpxbmFtZSwKKyAKKyAJICBuID0gLTE7Cisg CX0KKy0gICAgICBpZiAoX19nbGliY191bmxpa2VseSAobiA8IDAgfHwgX19saWJjX3Jlc19obm9r IChidWZmZXIpID09IDApKQorKyAgICAgIGlmIChfX2dsaWJjX3VubGlrZWx5IChuIDwgMCkpCisg CXsKKyAJICArK2hhZF9lcnJvcjsKKyAJICBjb250aW51ZTsKKyAJfQorLSAgICAgIGlmICgqZmly c3RwICYmIGNhbm9uID09IE5VTEwpCisrICAgICAgaWYgKCpmaXJzdHAgJiYgY2Fub24gPT0gTlVM TCAmJiBfX2xpYmNfcmVzX2hub2sgKGJ1ZmZlcikpCisgCXsKKyAJICBoX25hbWUgPSBidWZmZXI7 CisgCSAgYnVmZmVyICs9IGhfbmFtZWxlbjsKK0BAIC0xMDIxLDE0ICsxMDIxLDE0IEBAIGdhaWhf Z2V0YW5zd2VyX3NsaWNlIChjb25zdCBxdWVyeWJ1ZiAqYW5zd2VyLCBpbnQgYW5zbGVuLCBjb25z dCBjaGFyICpxbmFtZSwKKyAKKyAJICBuID0gX19saWJjX2RuX2V4cGFuZCAoYW5zd2VyLT5idWYs IGVuZF9vZl9tZXNzYWdlLCBjcCwKKyAJCQkJdGJ1Ziwgc2l6ZW9mIHRidWYpOworLQkgIGlmIChf X2dsaWJjX3VubGlrZWx5IChuIDwgMCB8fCBfX2xpYmNfcmVzX2hub2sgKHRidWYpID09IDApKQor KwkgIGlmIChfX2dsaWJjX3VubGlrZWx5IChuIDwgMCkpCisgCSAgICB7CisgCSAgICAgICsraGFk X2Vycm9yOworIAkgICAgICBjb250aW51ZTsKKyAJICAgIH0KKyAJICBjcCArPSBuOworIAorLQkg IGlmICgqZmlyc3RwKQorKwkgIGlmICgqZmlyc3RwICYmIF9fbGliY19yZXNfaG5vayAodGJ1Zikp CisgCSAgICB7CisgCSAgICAgIC8qIFJlY2xhaW0gYnVmZmVyIHNwYWNlLiAgKi8KKyAJICAgICAg aWYgKGhfbmFtZSArIGhfbmFtZWxlbiA9PSBidWZmZXIpCistLSAKKzIuMzguMQorCisKK0Zyb20g ZTJlYzZhOGRiMzhhNmI3MzRiYmRiNDFlNDk4ZmRjOTQ2MGY3NTY2YSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKK0Zyb206IEZsb3JpYW4gV2VpbWVyIDxmd2VpbWVyQHJlZGhhdC5jb20+CitEYXRl OiBUdWUsIDMwIEF1ZyAyMDIyIDEwOjAyOjQ5ICswMjAwCitTdWJqZWN0OiByZXNvbHY6IEFkZCBu ZXcgdHN0LXJlc29sdi1pbnZhbGlkLWNuYW1lCisKK1RoaXMgdGVzdCBjaGVja3MgcmVzb2x1dGlv biB0aHJvdWdoIENOQU1FIGNoYWlucyB0aGF0IGRvIG5vdCBjb250YWluCitob3N0IG5hbWVzIChi dWcgMTIxNTQpLgorCitSZXZpZXdlZC1ieTogU2lkZGhlc2ggUG95YXJla2FyIDxzaWRkaGVzaEBz b3VyY2V3YXJlLm9yZz4KKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDljYWY3ODIyNzZlY2Vh NGJjODZmYzk0ZmJiNTI3Nzk3MzZmMzEwNmQpCistLS0KKyByZXNvbHYvTWFrZWZpbGUgICAgICAg ICAgICAgICAgICAgfCAgIDMgKworIHJlc29sdi90c3QtcmVzb2x2LWludmFsaWQtY25hbWUuYyB8 IDQwNiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKKyAyIGZpbGVzIGNoYW5nZWQsIDQw OSBpbnNlcnRpb25zKCspCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHJlc29sdi90c3QtcmVzb2x2LWlu dmFsaWQtY25hbWUuYworCitkaWZmIC0tZ2l0IGEvcmVzb2x2L01ha2VmaWxlIGIvcmVzb2x2L01h a2VmaWxlCitpbmRleCAwMThiMTgwOGQ2Li5mOGE5MmM2Y2ZmIDEwMDY0NAorLS0tIGEvcmVzb2x2 L01ha2VmaWxlCisrKysgYi9yZXNvbHYvTWFrZWZpbGUKK0BAIC05OCw2ICs5OCw3IEBAIHRlc3Rz ICs9IFwKKyAgIHRzdC1yZXNvbHYtYmluYXJ5IFwKKyAgIHRzdC1yZXNvbHYtYnlhZGRyIFwKKyAg IHRzdC1yZXNvbHYtZWRucyBcCisrICB0c3QtcmVzb2x2LWludmFsaWQtY25hbWUgXAorICAgdHN0 LXJlc29sdi1uZXR3b3JrIFwKKyAgIHRzdC1yZXNvbHYtbm9hYWFhIFwKKyAgIHRzdC1yZXNvbHYt bm9uZGVjaW1hbCBcCitAQCAtMjg3LDYgKzI4OCw4IEBAICQob2JqcGZ4KXRzdC1yZXNvbHYtcmVz X2luaXQtbXVsdGk6ICQob2JqcGZ4KWxpYnJlc29sdi5zbyBcCisgICAkKHNoYXJlZC10aHJlYWQt bGlicmFyeSkKKyAkKG9ianBmeCl0c3QtcmVzb2x2LXJlc19pbml0LXRocmVhZDogJChvYmpwZngp bGlicmVzb2x2LnNvIFwKKyAgICQoc2hhcmVkLXRocmVhZC1saWJyYXJ5KQorKyQob2JqcGZ4KXRz dC1yZXNvbHYtaW52YWxpZC1jbmFtZTogJChvYmpwZngpbGlicmVzb2x2LnNvIFwKKysgICQoc2hh cmVkLXRocmVhZC1saWJyYXJ5KQorICQob2JqcGZ4KXRzdC1yZXNvbHYtbm9hYWFhOiAkKG9ianBm eClsaWJyZXNvbHYuc28gJChzaGFyZWQtdGhyZWFkLWxpYnJhcnkpCisgJChvYmpwZngpdHN0LXJl c29sdi1ub25kZWNpbWFsOiAkKG9ianBmeClsaWJyZXNvbHYuc28gJChzaGFyZWQtdGhyZWFkLWxp YnJhcnkpCisgJChvYmpwZngpdHN0LXJlc29sdi1xdHlwZXM6ICQob2JqcGZ4KWxpYnJlc29sdi5z byAkKHNoYXJlZC10aHJlYWQtbGlicmFyeSkKK2RpZmYgLS1naXQgYS9yZXNvbHYvdHN0LXJlc29s di1pbnZhbGlkLWNuYW1lLmMgYi9yZXNvbHYvdHN0LXJlc29sdi1pbnZhbGlkLWNuYW1lLmMKK25l dyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwLi5hZTJkNDQxOWIxCistLS0gL2Rl di9udWxsCisrKysgYi9yZXNvbHYvdHN0LXJlc29sdi1pbnZhbGlkLWNuYW1lLmMKK0BAIC0wLDAg KzEsNDA2IEBACisrLyogVGVzdCBoYW5kbGluZyBvZiBDTkFNRXMgd2l0aCBub24taG9zdCBkb21h aW4gbmFtZXMgKGJ1ZyAxMjE1NCkuCisrICAgQ29weXJpZ2h0IChDKSAyMDIyIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgorKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBM aWJyYXJ5LgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKysgICBMaWNlbnNlIGFzIHB1Ymxpc2hl ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKysgICB2ZXJzaW9uIDIu MSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K KysKKysgICBUaGUgR05VIEMgTGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91 dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKysgICBMZXNzZXIg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyAgIFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK KysgICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJhcnk7IGlmIG5vdCwgc2VlCisr ICAgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrI2luY2x1ZGUgPGVy cm5vLmg+CisrI2luY2x1ZGUgPG5ldGRiLmg+CisrI2luY2x1ZGUgPHJlc29sdi5oPgorKyNpbmNs dWRlIDxzdGRsaWIuaD4KKysjaW5jbHVkZSA8c3RyaW5nLmg+CisrI2luY2x1ZGUgPHN1cHBvcnQv Y2hlY2suaD4KKysjaW5jbHVkZSA8c3VwcG9ydC9jaGVja19uc3MuaD4KKysjaW5jbHVkZSA8c3Vw cG9ydC9yZXNvbHZfdGVzdC5oPgorKyNpbmNsdWRlIDxzdXBwb3J0L3N1cHBvcnQuaD4KKysjaW5j bHVkZSA8c3VwcG9ydC94bWVtc3RyZWFtLmg+CisrCisrLyogUXVlcnkgc3RyaW5ncyBkZXNjcmli ZSB0aGUgQ05BTUUgY2hhaW4gaW4gdGhlIHJlc3BvbnNlLiAgVGhleSBoYXZlCisrICAgdGhlIGZv cm1hdCAiYml0c0JJVFMuY291bnRDT1VOVC5leGFtcGxlLiIsIHdoZXJlIEJJVFMgYW5kIENPVU5U IGFyZQorKyAgIHJlcGxhY2VkIGJ5IHVuc2lnbmVkIGRlY2ltYWwgbnVtYmVycy4gIENPVU5UIGlz IHRoZSBudW1iZXIgb2YgQ05BTUUKKysgICByZWNvcmRzIGluIHRoZSByZXNwb25zZS4gIEJJVFMg aGFzIHR3byBiaXRzIGZvciBlYWNoIENOQU1FIHJlY29yZCwKKysgICBkZXNjcmliaW5nIGEgc3Bl Y2lhbCBwcmVmaXggdGhhdCBpcyBhZGRlZCB0byB0aGF0IENOQU1FLgorKworKyAgIDA6IE5vIHNw ZWNpYWwgbGVhZGluZyBsYWJlbC4KKysgICAxOiBTdGFydGluZyB3aXRoICIqLiIuCisrICAgMjog U3RhcnRpbmcgd2l0aCAiLXguIi4KKysgICAzOiBTdGFydGluZyB3aXRoICJzdGFyLiouIi4KKysK KysgICBUaGUgZmlyc3QgQ05BTUUgaW4gdGhlIHJlc3BvbnNlIHVzaW5nIHRoZSB0d28gbGVhc3Qg c2lnbmlmaWNhbnQKKysgICBiaXRzLgorKworKyAgIEZvciBQVFIgcXVlcmllcywgdGhlIFFOQU1F IGZvcm1hdCBpcyBkaWZmZXJlbnQsIGl0IGlzIGVpdGhlcgorKyAgIENPVU5ULkJJVFMuMTY4LjE5 Mi5pbi1hZGRyLmFycGEuICh3aXRoIEJJVFMgYW5kIENPVU5UIHN0aWxsCisrICAgZGVjaW1hbCks IG9yOgorKworK0NPVU5ULkJJVFMwLkJJVFMxLjAuMC4wLjAuMC4wLjAuMC4wLjAuMC4wLjAuMC4w LjAuMC4wLjAuMC4wLjguYi5kLjAuMS4wLjAuMi5pcDYuYXJwYS4KKysKKysgICB3aGVyZSBCSVRT IGFuZCBDT1VOVCBhcmUgaGV4YWRlY2ltYWwuICAqLworKworK3N0YXRpYyB2b2lkCisrcmVzcG9u c2UgKGNvbnN0IHN0cnVjdCByZXNvbHZfcmVzcG9uc2VfY29udGV4dCAqY3R4LAorKyAgICAgICAg ICBzdHJ1Y3QgcmVzb2x2X3Jlc3BvbnNlX2J1aWxkZXIgKmIsCisrICAgICAgICAgIGNvbnN0IGNo YXIgKnFuYW1lLCB1aW50MTZfdCBxY2xhc3MsIHVpbnQxNl90IHF0eXBlKQorK3sKKysgIFRFU1Rf Q09NUEFSRSAocWNsYXNzLCBDX0lOKTsKKysKKysgIC8qIFRoZSBvbmx5IG90aGVyIHF1ZXJ5IHR5 cGUgYmVzaWRlcyBBIGlzIFBUUi4gICovCisrICBpZiAocXR5cGUgIT0gVF9BICYmIHF0eXBlICE9 IFRfQUFBQSkKKysgICAgVEVTVF9DT01QQVJFIChxdHlwZSwgVF9QVFIpOworKworKyAgdW5zaWdu ZWQgaW50IGJpdHMsIGJpdHMxLCBjb3VudDsKKysgIGNoYXIgKnRhaWwgPSBOVUxMOworKyAgaWYg KHNzY2FuZiAocW5hbWUsICJiaXRzJXUuY291bnQldS4lbXMiLCAmYml0cywgJmNvdW50LCAmdGFp bCkgPT0gMykKKysgICAgVEVTVF9DT01QQVJFX1NUUklORyAodGFpbCwgImV4YW1wbGUiKTsKKysg IGVsc2UgaWYgKHN0cnN0ciAocW5hbWUsICJpbi1hZGRyLmFycGEiKSAhPSBOVUxMCisrICAgICAg ICAgICAmJiBzc2NhbmYgKHFuYW1lLCAiJXUuJXUuJW1zIiwgJmJpdHMsICZjb3VudCwgJnRhaWwp ID09IDMpCisrICAgIFRFU1RfQ09NUEFSRV9TVFJJTkcgKHRhaWwsICIxNjguMTkyLmluLWFkZHIu YXJwYSIpOworKyAgZWxzZSBpZiAoc3NjYW5mIChxbmFtZSwgIiV4LiV4LiV4LiVtcyIsICZiaXRz LCAmYml0czEsICZjb3VudCwgJnRhaWwpID09IDQpCisrICAgIHsKKysgICAgICBURVNUX0NPTVBB UkVfU1RSSU5HICh0YWlsLCAiXAorKzAuMC4wLjAuMC4wLjAuMC4wLjAuMC4wLjAuMC4wLjAuMC4w LjAuMC4wLjguYi5kLjAuMS4wLjAuMi5pcDYuYXJwYSIpOworKyAgICAgIGJpdHMgfD0gYml0czEg PDwgNDsKKysgICAgfQorKyAgZWxzZQorKyAgICBGQUlMX0VYSVQxICgiaW52YWxpZCBRTkFNRTog JXNcbiIsIHFuYW1lKTsKKysgIGZyZWUgKHRhaWwpOworKworKyAgc3RydWN0IHJlc29sdl9yZXNw b25zZV9mbGFncyBmbGFncyA9IHt9OworKyAgcmVzb2x2X3Jlc3BvbnNlX2luaXQgKGIsIGZsYWdz KTsKKysgIHJlc29sdl9yZXNwb25zZV9hZGRfcXVlc3Rpb24gKGIsIHFuYW1lLCBxY2xhc3MsIHF0 eXBlKTsKKysgIHJlc29sdl9yZXNwb25zZV9zZWN0aW9uIChiLCBuc19zX2FuKTsKKysKKysgIC8q IFByb3ZpZGUgdGhlIHJlcXVlc3RlZCBudW1iZXIgb2YgQ05BTUUgcmVjb3Jkcy4gICovCisrICBj aGFyICpwcmV2aW91c19uYW1lID0gKGNoYXIgKikgcW5hbWU7CisrICB1bnNpZ25lZCBpbnQgb3Jp Z2luYWxfYml0cyA9IGJpdHM7CisrICBmb3IgKGludCB1bmlxdWUgPSAwOyB1bmlxdWUgPCBjb3Vu dDsgKyt1bmlxdWUpCisrICAgIHsKKysgICAgICByZXNvbHZfcmVzcG9uc2Vfb3Blbl9yZWNvcmQg KGIsIHByZXZpb3VzX25hbWUsIHFjbGFzcywgVF9DTkFNRSwgNjApOworKworKyAgICAgIHN0YXRp YyBjb25zdCBjaGFyIGJpdHNfdG9fcHJlZml4WzRdWzhdID0geyAiIiwgIiouIiwgIi14LiIsICJz dGFyLiouIiB9OworKyAgICAgIGNoYXIgKm5ld19uYW1lID0geGFzcHJpbnRmICgiJXN1bmlxdWUl ZC5leGFtcGxlIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYml0c190b19w cmVmaXhbYml0cyAmIDNdLCB1bmlxdWUpOworKyAgICAgIGJpdHMgPj49IDI7CisrICAgICAgcmVz b2x2X3Jlc3BvbnNlX2FkZF9uYW1lIChiLCBuZXdfbmFtZSk7CisrICAgICAgcmVzb2x2X3Jlc3Bv bnNlX2Nsb3NlX3JlY29yZCAoYik7CisrCisrICAgICAgaWYgKHByZXZpb3VzX25hbWUgIT0gcW5h bWUpCisrICAgICAgICBmcmVlIChwcmV2aW91c19uYW1lKTsKKysgICAgICBwcmV2aW91c19uYW1l ID0gbmV3X25hbWU7CisrICAgIH0KKysKKysgIC8qIEFjdHVhbCBhbnN3ZXIgcmVjb3JkLiAgKi8K KysgIHJlc29sdl9yZXNwb25zZV9vcGVuX3JlY29yZCAoYiwgcHJldmlvdXNfbmFtZSwgcWNsYXNz LCBxdHlwZSwgNjApOworKyAgc3dpdGNoIChxdHlwZSkKKysgICAgeworKyAgICBjYXNlIFRfQToK KysgICAgICB7CisrICAgICAgICBjaGFyIGlwdjRbNF0gPSB7MTkyLCAxNjgsIGNvdW50LCBvcmln aW5hbF9iaXRzfTsKKysgICAgICAgIHJlc29sdl9yZXNwb25zZV9hZGRfZGF0YSAoYiwgJmlwdjQs IHNpemVvZiAoaXB2NCkpOworKyAgICAgIH0KKysgICAgICBicmVhazsKKysgICAgY2FzZSBUX0FB QUE6CisrICAgICAgeworKyAgICAgICAgY2hhciBpcHY2WzE2XSA9CisrICAgICAgICAgIHsKKysg ICAgICAgICAgICAweDIwLCAweDAxLCAweGQsIDB4YjgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAs IDAsIDAsCisrICAgICAgICAgICAgY291bnQsIG9yaWdpbmFsX2JpdHMKKysgICAgICAgICAgfTsK KysgICAgICAgIHJlc29sdl9yZXNwb25zZV9hZGRfZGF0YSAoYiwgJmlwdjYsIHNpemVvZiAoaXB2 NikpOworKyAgICAgIH0KKysgICAgICBicmVhazsKKysKKysgICAgY2FzZSBUX1BUUjoKKysgICAg ICB7CisrICAgICAgICBjaGFyICpuYW1lID0geGFzcHJpbnRmICgiYml0cyV1LmNvdW50JXUuZXhh bXBsZSIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5hbF9iaXRzLCBj b3VudCk7CisrICAgICAgICByZXNvbHZfcmVzcG9uc2VfYWRkX25hbWUgKGIsIG5hbWUpOworKyAg ICAgICAgZnJlZSAobmFtZSk7CisrICAgICAgfQorKyAgICAgIGJyZWFrOworKyAgICB9CisrICBy ZXNvbHZfcmVzcG9uc2VfY2xvc2VfcmVjb3JkIChiKTsKKysKKysgIGlmIChwcmV2aW91c19uYW1l ICE9IHFuYW1lKQorKyAgICBmcmVlIChwcmV2aW91c19uYW1lKTsKKyt9CisrCisrLyogQ29udHJv bHMgd2hpY2ggbmFtZSByZXNvbHV0aW9uIGZ1bmN0aW9uIGlzIGludm9rZWQuICAqLworK2VudW0g dGVzdF9tb2RlCisrICB7CisrICAgIGJ5bmFtZSwgICAgICAgICAgICAgICAgICAgICAvKiBnZXRo b3N0YnluYW1lLiAgKi8KKysgICAgYnluYW1lMiwgICAgICAgICAgICAgICAgICAgIC8qIGdldGhv c3RieW5hbWUyLiAgKi8KKysgICAgZ2FpLCAgICAgICAgICAgICAgICAgICAgICAgIC8qIGdldGFk ZHJpbmZvIHdpdGhvdXQgQUlfQ0FOT05OQU1FLiAgKi8KKysgICAgZ2FpX2Nhbm9uLCAgICAgICAg ICAgICAgICAgIC8qIGdldGFkZHJpbmZvIHdpdGggQUlfQ0FOT05OQU1FLiAgKi8KKysKKysgICAg dGVzdF9tb2RlX251bSAgICAgICAgICAgICAgIC8qIE51bWJlciBvZiBlbnVtIHZhbHVlcy4gICov CisrICB9OworKworK3N0YXRpYyBjb25zdCBjaGFyICoKKyt0ZXN0X21vZGVfdG9fc3RyaW5nIChl bnVtIHRlc3RfbW9kZSBtb2RlKQorK3sKKysgIHN3aXRjaCAobW9kZSkKKysgICAgeworKyAgICBj YXNlIGJ5bmFtZToKKysgICAgICByZXR1cm4gImJ5bmFtZSI7CisrICAgIGNhc2UgYnluYW1lMjoK KysgICAgICByZXR1cm4gImJ5bmFtZTIiOworKyAgICBjYXNlIGdhaToKKysgICAgICByZXR1cm4g ImdhaSI7CisrICAgIGNhc2UgZ2FpX2Nhbm9uOgorKyAgICAgIHJldHVybiAiZ2FpX2Nhbm9uIjsK KysgICAgY2FzZSB0ZXN0X21vZGVfbnVtOgorKyAgICAgIC8qIFJlcG9ydCBlcnJvciBiZWxvdy4g ICovCisrICAgIH0KKysgIEZBSUxfRVhJVDEgKCJpbnZhbGlkIHRlc3RfbW9kZTogJWQiLCBtb2Rl KTsKKyt9CisrCisrLyogQXBwZW5kIHRoZSBuYW1lIGFuZCBhbGlhc2VzIHRvIE9VVC4gICovCisr c3RhdGljIHZvaWQKKythcHBlbmRfbmFtZXMgKEZJTEUgKm91dCwgY29uc3QgY2hhciAqcW5hbWUs IGludCBiaXRzLCBpbnQgY291bnQsCisrICAgICAgICAgICAgICBlbnVtIHRlc3RfbW9kZSBtb2Rl KQorK3sKKysgIC8qIExhcmdlc3QgdmFsaWQgaW5kZXggd2hpY2ggaGFzIGEgY29ycmVzcG9uZGlu ZyB6ZXJvIGluIGJpdHMKKysgICAgIChtZWFuaW5nIGEgc3ludGFjdGljYWxseSB2YWxpZCBDTkFN RSkuICAqLworKyAgaW50IGxhc3RfdmFsaWRfY25hbWUgPSAtMTsKKysKKysgIGZvciAoaW50IGkg PSAwOyBpIDwgY291bnQ7ICsraSkKKysgICAgaWYgKChiaXRzICYgKDMgPDwgKGkgKiAyKSkpID09 IDApCisrICAgICAgbGFzdF92YWxpZF9jbmFtZSA9IGk7CisrCisrICBpZiAobW9kZSAhPSBnYWkp CisrICAgIHsKKysgICAgICBjb25zdCBjaGFyICpsYWJlbDsKKysgICAgICBpZiAobW9kZSA9PSBn YWlfY2Fub24pCisrICAgICAgICBsYWJlbCA9ICJjYW5vbm5hbWUiOworKyAgICAgIGVsc2UKKysg ICAgICAgIGxhYmVsID0gIm5hbWUiOworKyAgICAgIGlmIChsYXN0X3ZhbGlkX2NuYW1lID49IDAp CisrICAgICAgICBmcHJpbnRmIChvdXQsICIlczogdW5pcXVlJWQuZXhhbXBsZVxuIiwgbGFiZWws IGxhc3RfdmFsaWRfY25hbWUpOworKyAgICAgIGVsc2UKKysgICAgICAgIGZwcmludGYgKG91dCwg IiVzOiAlc1xuIiwgbGFiZWwsIHFuYW1lKTsKKysgICAgfQorKworKyAgaWYgKG1vZGUgPT0gYnlu YW1lIHx8IG1vZGUgPT0gYnluYW1lMikKKysgICAgeworKyAgICAgIGlmIChsYXN0X3ZhbGlkX2Nu YW1lID49IDApCisrICAgICAgICBmcHJpbnRmIChvdXQsICJhbGlhczogJXNcbiIsIHFuYW1lKTsK KysgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyArK2kpCisrICAgICAgICB7CisrICAg ICAgICAgIGlmICgoYml0cyAmICgzIDw8IChpICogMikpKSA9PSAwICYmIGkgIT0gbGFzdF92YWxp ZF9jbmFtZSkKKysgICAgICAgICAgICBmcHJpbnRmIChvdXQsICJhbGlhczogdW5pcXVlJWQuZXhh bXBsZVxuIiwgaSk7CisrICAgICAgICB9CisrICAgIH0KKyt9CisrCisrLyogQXBwZW5kIHRoZSBh ZGRyZXNzIGluZm9ybWF0aW9uIHRvIE9VVC4gICovCisrc3RhdGljIHZvaWQKKythcHBlbmRfYWRk cmVzc2VzIChGSUxFICpvdXQsIGludCBhZiwgaW50IGJpdHMsIGludCBjb3VudCwgZW51bSB0ZXN0 X21vZGUgbW9kZSkKKyt7CisrICBpbnQgbGFzdCA9IGNvdW50ICogMjU2ICsgYml0czsKKysgIGlm IChtb2RlID09IGdhaSB8fCBtb2RlID09IGdhaV9jYW5vbikKKysgICAgeworKyAgICAgIGlmIChh ZiA9PSBBRl9JTkVUIHx8IGFmID09IEFGX1VOU1BFQykKKysgICAgICAgIGZwcmludGYgKG91dCwg ImFkZHJlc3M6IFNUUkVBTS9UQ1AgMTkyLjE2OC4lZC4lZCA4MFxuIiwgY291bnQsIGJpdHMpOwor KyAgICAgIGlmIChhZiA9PSBBRl9JTkVUNiB8fCBhZiA9PSBBRl9VTlNQRUMpCisrICAgICAgICB7 CisrICAgICAgICAgIGlmIChsYXN0ID09IDApCisrICAgICAgICAgICAgZnByaW50ZiAob3V0LCAi YWRkcmVzczogU1RSRUFNL1RDUCAyMDAxOmRiODo6IDgwXG4iKTsKKysgICAgICAgICAgZWxzZQor KyAgICAgICAgICAgIGZwcmludGYgKG91dCwgImFkZHJlc3M6IFNUUkVBTS9UQ1AgMjAwMTpkYjg6 OiV4IDgwXG4iLCBsYXN0KTsKKysgICAgICAgIH0KKysgICAgfQorKyAgZWxzZQorKyAgICB7Cisr ICAgICAgVEVTVF9WRVJJRlkgKGFmICE9IEFGX1VOU1BFQyk7CisrICAgICAgaWYgKGFmID09IEFG X0lORVQpCisrICAgICAgICBmcHJpbnRmIChvdXQsICJhZGRyZXNzOiAxOTIuMTY4LiVkLiVkXG4i LCBjb3VudCwgYml0cyk7CisrICAgICAgaWYgKGFmID09IEFGX0lORVQ2KQorKyAgICAgICAgewor KyAgICAgICAgICBpZiAobGFzdCA9PSAwKQorKyAgICAgICAgICAgIGZwcmludGYgKG91dCwgImFk ZHJlc3M6IDIwMDE6ZGI4OjpcbiIpOworKyAgICAgICAgICBlbHNlCisrICAgICAgICAgICAgZnBy aW50ZiAob3V0LCAiYWRkcmVzczogMjAwMTpkYjg6OiV4XG4iLCBsYXN0KTsKKysgICAgICAgIH0K KysgICAgfQorK30KKysKKysvKiBQZXJmb3JtIG9uZSB0ZXN0IHVzaW5nIGEgZm9yd2FyZCBsb29r dXAuICAqLworK3N0YXRpYyB2b2lkCisrY2hlY2tfZm9yd2FyZCAoaW50IGFmLCBpbnQgYml0cywg aW50IGNvdW50LCBlbnVtIHRlc3RfbW9kZSBtb2RlKQorK3sKKysgIGNoYXIgKnFuYW1lID0geGFz cHJpbnRmICgiYml0cyVkLmNvdW50JWQuZXhhbXBsZSIsIGJpdHMsIGNvdW50KTsKKysgIGNoYXIg KmxhYmVsID0geGFzcHJpbnRmICgiYWY9JWQgYml0cz0lZCBjb3VudD0lZCBtb2RlPSVzIHFuYW1l PSVzIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICBhZiwgYml0cywgY291bnQsIHRlc3Rf bW9kZV90b19zdHJpbmcgKG1vZGUpLCBxbmFtZSk7CisrCisrICBzdHJ1Y3QgeG1lbXN0cmVhbSBl eHBlY3RlZDsKKysgIHhvcGVuX21lbXN0cmVhbSAoJmV4cGVjdGVkKTsKKysgIGlmIChtb2RlID09 IGdhaV9jYW5vbikKKysgICAgZnByaW50ZiAoZXhwZWN0ZWQub3V0LCAiZmxhZ3M6IEFJX0NBTk9O TkFNRVxuIik7CisrICBhcHBlbmRfbmFtZXMgKGV4cGVjdGVkLm91dCwgcW5hbWUsIGJpdHMsIGNv dW50LCBtb2RlKTsKKysgIGFwcGVuZF9hZGRyZXNzZXMgKGV4cGVjdGVkLm91dCwgYWYsIGJpdHMs IGNvdW50LCBtb2RlKTsKKysgIHhmY2xvc2VfbWVtc3RyZWFtICgmZXhwZWN0ZWQpOworKworKyAg aWYgKG1vZGUgPT0gZ2FpIHx8IG1vZGUgPT0gZ2FpX2Nhbm9uKQorKyAgICB7CisrICAgICAgc3Ry dWN0IGFkZHJpbmZvICphaTsKKysgICAgICBzdHJ1Y3QgYWRkcmluZm8gaGludHMgPQorKyAgICAg ICAgeworKyAgICAgICAgICAuYWlfZmFtaWx5ID0gYWYsCisrICAgICAgICAgIC5haV9zb2NrdHlw ZSA9IFNPQ0tfU1RSRUFNLAorKyAgICAgICAgfTsKKysgICAgICBpZiAobW9kZSA9PSBnYWlfY2Fu b24pCisrICAgICAgICBoaW50cy5haV9mbGFncyB8PSBBSV9DQU5PTk5BTUU7CisrICAgICAgaW50 IHJldCA9IGdldGFkZHJpbmZvIChxbmFtZSwgIjgwIiwgJmhpbnRzLCAmYWkpOworKyAgICAgIGNo ZWNrX2FkZHJpbmZvIChsYWJlbCwgYWksIHJldCwgZXhwZWN0ZWQuYnVmZmVyKTsKKysgICAgICBp ZiAocmV0ID09IDApCisrICAgICAgICBmcmVlYWRkcmluZm8gKGFpKTsKKysgICAgfQorKyAgZWxz ZQorKyAgICB7CisrICAgICAgc3RydWN0IGhvc3RlbnQgKmU7CisrICAgICAgaWYgKG1vZGUgPT0g Z2FpKQorKyAgICAgICAgeworKyAgICAgICAgICBURVNUX0NPTVBBUkUgKGFmLCBBRl9JTkVUKTsK KysgICAgICAgICAgZSA9IGdldGhvc3RieW5hbWUgKHFuYW1lKTsKKysgICAgICAgIH0KKysgICAg ICBlbHNlCisrICAgICAgICB7CisrICAgICAgICAgIGlmIChhZiAhPSBBRl9JTkVUKQorKyAgICAg ICAgICAgIFRFU1RfQ09NUEFSRSAoYWYsIEFGX0lORVQ2KTsKKysgICAgICAgICAgZSA9IGdldGhv c3RieW5hbWUyIChxbmFtZSwgYWYpOworKyAgICAgICAgfQorKyAgICAgIGNoZWNrX2hvc3RlbnQg KGxhYmVsLCBlLCBleHBlY3RlZC5idWZmZXIpOworKyAgICB9CisrCisrICBmcmVlIChleHBlY3Rl ZC5idWZmZXIpOworKyAgZnJlZSAobGFiZWwpOworKyAgZnJlZSAocW5hbWUpOworK30KKysKKysv KiBQZXJmb3JtIG9uZSBjaGVjayB1c2luZyBhIHJldmVyc2UgbG9va3VwLiAgKi8KKysKKytzdGF0 aWMgdm9pZAorK2NoZWNrX3JldmVyc2UgKGludCBhZiwgaW50IGJpdHMsIGludCBjb3VudCkKKyt7 CisrICBURVNUX1ZFUklGWSAoYWYgPT0gQUZfSU5FVCB8fCBhZiA9PSBBRl9JTkVUNik7CisrCisr ICBjaGFyICpsYWJlbCA9IHhhc3ByaW50ZiAoImFmPSVkIGJpdHM9JWQgY291bnQ9JWQiLCBhZiwg Yml0cywgY291bnQpOworKyAgY2hhciAqZnFkbiA9IHhhc3ByaW50ZiAoImJpdHMlZC5jb3VudCVk LmV4YW1wbGUiLCBiaXRzLCBjb3VudCk7CisrCisrICBzdHJ1Y3QgeG1lbXN0cmVhbSBleHBlY3Rl ZDsKKysgIHhvcGVuX21lbXN0cmVhbSAoJmV4cGVjdGVkKTsKKysgIGZwcmludGYgKGV4cGVjdGVk Lm91dCwgIm5hbWU6ICVzXG4iLCBmcWRuKTsKKysgIGFwcGVuZF9hZGRyZXNzZXMgKGV4cGVjdGVk Lm91dCwgYWYsIGJpdHMsIGNvdW50LCBieW5hbWUpOworKyAgeGZjbG9zZV9tZW1zdHJlYW0gKCZl eHBlY3RlZCk7CisrCisrICBjaGFyIGFkZHJbMTZdID0geyAwIH07CisrICBzb2NrbGVuX3QgYWRk cmxlbjsKKysgIGlmIChhZiA9PSBBRl9JTkVUKQorKyAgICB7CisrICAgICAgYWRkclswXSA9IDE5 MjsKKysgICAgICBhZGRyWzFdID0gMTY4OworKyAgICAgIGFkZHJbMl0gPSBjb3VudDsKKysgICAg ICBhZGRyWzNdID0gYml0czsKKysgICAgICBhZGRybGVuID0gNDsKKysgICAgfQorKyAgZWxzZQor KyAgICB7CisrICAgICAgYWRkclswXSA9IDB4MjA7CisrICAgICAgYWRkclsxXSA9IDB4MDE7Cisr ICAgICAgYWRkclsyXSA9IDB4MGQ7CisrICAgICAgYWRkclszXSA9IDB4Yjg7CisrICAgICAgYWRk clsxNF0gPSBjb3VudDsKKysgICAgICBhZGRyWzE1XSA9IGJpdHM7CisrICAgICAgYWRkcmxlbiA9 IDE2OworKyAgICB9CisrCisrICBzdHJ1Y3QgaG9zdGVudCAqZSA9IGdldGhvc3RieWFkZHIgKGFk ZHIsIGFkZHJsZW4sIGFmKTsKKysgIGNoZWNrX2hvc3RlbnQgKGxhYmVsLCBlLCBleHBlY3RlZC5i dWZmZXIpOworKworKyAgLyogZ2V0bmFtZWluZm8gY2hlY2sgaXMgZGlmZmVyZW50LiAgVGhlcmUg aXMgbm8gZ2VuZXJpYyBjaGVja18qCisrICAgICBmdW5jdGlvbiBmb3IgaXQuICAqLworKyAgewor KyAgICBzdHJ1Y3Qgc29ja2FkZHJfaW4gc2luID0geyB9OworKyAgICBzdHJ1Y3Qgc29ja2FkZHJf aW42IHNpbjYgPSB7IH07CisrICAgIHZvaWQgKnNhOworKyAgICBzb2NrbGVuX3Qgc2FsZW47Cisr ICAgIGlmIChhZiA9PSBBRl9JTkVUKQorKyAgICAgIHsKKysgICAgICAgIHNpbi5zaW5fZmFtaWx5 ID0gQUZfSU5FVDsKKysgICAgICAgIG1lbWNweSAoJnNpbi5zaW5fYWRkciwgYWRkciwgYWRkcmxl bik7CisrICAgICAgICBzaW4uc2luX3BvcnQgPSBodG9ucyAoODApOworKyAgICAgICAgc2EgPSAm c2luOworKyAgICAgICAgc2FsZW4gPSBzaXplb2YgKHNpbik7CisrICAgICAgfQorKyAgICBlbHNl CisrICAgICAgeworKyAgICAgICAgc2luNi5zaW42X2ZhbWlseSA9IEFGX0lORVQ2OworKyAgICAg ICAgbWVtY3B5ICgmc2luNi5zaW42X2FkZHIsIGFkZHIsIGFkZHJsZW4pOworKyAgICAgICAgc2lu Ni5zaW42X3BvcnQgPSBodG9ucyAoODApOworKyAgICAgICAgc2EgPSAmc2luNjsKKysgICAgICAg IHNhbGVuID0gc2l6ZW9mIChzaW42KTsKKysgICAgICB9CisrCisrICAgIGNoYXIgaG9zdFs2NF07 CisrICAgIGNoYXIgc2VydmljZVs2NF07CisrICAgIGludCByZXQgPSBnZXRuYW1laW5mbyAoc2Es IHNhbGVuLCBob3N0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZiAoaG9zdCks IHNlcnZpY2UsIHNpemVvZiAoc2VydmljZSksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg TklfTkFNRVJFUUQgfCBOSV9OVU1FUklDU0VSVik7CisrICAgIFRFU1RfQ09NUEFSRSAocmV0LCAw KTsKKysgICAgVEVTVF9DT01QQVJFX1NUUklORyAoaG9zdCwgZnFkbik7CisrICAgIFRFU1RfQ09N UEFSRV9TVFJJTkcgKHNlcnZpY2UsICI4MCIpOworKyAgfQorKworKyAgZnJlZSAoZXhwZWN0ZWQu YnVmZmVyKTsKKysgIGZyZWUgKGZxZG4pOworKyAgZnJlZSAobGFiZWwpOworK30KKysKKytzdGF0 aWMgaW50CisrZG9fdGVzdCAodm9pZCkKKyt7CisrICBzdHJ1Y3QgcmVzb2x2X3Rlc3QgKm9iaiA9 IHJlc29sdl90ZXN0X3N0YXJ0CisrICAgICgoc3RydWN0IHJlc29sdl9yZWRpcmVjdF9jb25maWcp CisrICAgICB7CisrICAgICAgIC5yZXNwb25zZV9jYWxsYmFjayA9IHJlc3BvbnNlCisrICAgICB9 KTsKKysKKysgIGZvciAoaW50IGNvdW50ID0gMDsgY291bnQgPD0gMzsgKytjb3VudCkKKysgICAg Zm9yIChpbnQgYml0cyA9IDA7IGJpdHMgPD0gMSA8PCAoY291bnQgKiAyKTsgKytiaXRzKQorKyAg ICAgIHsKKysgICAgICAgIGlmIChjb3VudCA+IDAgJiYgYml0cyA9PSBjb3VudCkKKysgICAgICAg ICAgLyogVGhlIGxhc3QgYml0cyB2YWx1ZSBpcyBvbmx5IGNoZWNrZWQgaWYgY291bnQgPT0gMC4g ICovCisrICAgICAgICAgIGNvbnRpbnVlOworKworKyAgICAgICAgZm9yIChlbnVtIHRlc3RfbW9k ZSBtb2RlID0gMDsgbW9kZSA8IHRlc3RfbW9kZV9udW07ICsrbW9kZSkKKysgICAgICAgICAgewor KyAgICAgICAgICAgIGNoZWNrX2ZvcndhcmQgKEFGX0lORVQsIGJpdHMsIGNvdW50LCBtb2RlKTsK KysgICAgICAgICAgICBpZiAobW9kZSAhPSBieW5hbWUpCisrICAgICAgICAgICAgICBjaGVja19m b3J3YXJkIChBRl9JTkVUNiwgYml0cywgY291bnQsIG1vZGUpOworKyAgICAgICAgICAgIGlmICht b2RlID09IGdhaSB8fCBtb2RlID09IGdhaV9jYW5vbikKKysgICAgICAgICAgICAgIGNoZWNrX2Zv cndhcmQgKEFGX1VOU1BFQywgYml0cywgY291bnQsIG1vZGUpOworKyAgICAgICAgICB9CisrCisr ICAgICAgICBjaGVja19yZXZlcnNlIChBRl9JTkVULCBiaXRzLCBjb3VudCk7CisrICAgICAgICBj aGVja19yZXZlcnNlIChBRl9JTkVUNiwgYml0cywgY291bnQpOworKyAgICAgIH0KKysKKysgIHJl c29sdl90ZXN0X2VuZCAob2JqKTsKKysKKysgIHJldHVybiAwOworK30KKysKKysjaW5jbHVkZSA8 c3VwcG9ydC90ZXN0LWRyaXZlci5jPgorLS0gCisyLjM4LjEKKworCitGcm9tIGM1Y2RiMzljMjBl OTZkOWFjMGQ0NmZjNzI4NGI4Mjc2YTUzN2ZkMzUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitG cm9tOiBGbG9yaWFuIFdlaW1lciA8ZndlaW1lckByZWRoYXQuY29tPgorRGF0ZTogVHVlLCAzMCBB dWcgMjAyMiAxMDowMjo0OSArMDIwMAorU3ViamVjdDogbnNzX2RuczogUmV3cml0ZSBfbnNzX2Ru c19nZXRob3N0YnluYW1lNF9yIHVzaW5nIGN1cnJlbnQgaW50ZXJmYWNlcworCitJbnRyb2R1Y2Ug c3RydWN0IGFsbG9jX2J1ZmZlciB0byB0aGlzIGZ1bmN0aW9uLCBhbmQgdXNlIGl0IGFuZAorc3Ry dWN0IG5zX3JyX2N1cnNvciBpbiBnYWloX2dldGFuc3dlcl9zbGljZS4gIEFkanVzdCBnYWloX2dl dGFuc3dlcgorYW5kIGdhaWhfZ2V0YW5zd2VyX25vYWFhYSBhY2NvcmRpbmdseS4KKworUmV2aWV3 ZWQtYnk6IFNpZGRoZXNoIFBveWFyZWthciA8c2lkZGhlc2hAc291cmNld2FyZS5vcmc+CisoY2hl cnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCAxZDQ5NTkxMmE3NDZlMmExZmZiNzgwYzlhODFmZDIzNGVj MjQ2NGU4KQorLS0tCisgcmVzb2x2L25zc19kbnMvZG5zLWhvc3QuYyB8IDQ0MyArKysrKysrKysr KysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCAxNjIgaW5zZXJ0 aW9ucygrKSwgMjgxIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvcmVzb2x2L25zc19kbnMv ZG5zLWhvc3QuYyBiL3Jlc29sdi9uc3NfZG5zL2Rucy1ob3N0LmMKK2luZGV4IGJlYTUwNWQ2OTcu LjlmYTgxZjIzYzggMTAwNjQ0CistLS0gYS9yZXNvbHYvbnNzX2Rucy9kbnMtaG9zdC5jCisrKysg Yi9yZXNvbHYvbnNzX2Rucy9kbnMtaG9zdC5jCitAQCAtMTAwLDEzICsxMDAsNiBAQAorICNlbmRp ZgorICNkZWZpbmUgTUFYSE9TVE5BTUVMRU4gMjU2CisgCistLyogV2UgbmVlZCB0aGlzIHRpbWUg bGF0ZXIuICAqLworLXR5cGVkZWYgdW5pb24gcXVlcnlidWYKKy17CistICBIRUFERVIgaGRyOwor LSAgdV9jaGFyIGJ1ZltNQVhQQUNLRVRdOworLX0gcXVlcnlidWY7CistCisgLyogRm9yIGhpc3Rv cmljIHJlYXNvbnMsIHBvaW50ZXJzIHRvIElQIGFkZHJlc3NlcyBhcmUgY2hhciAqLCBzbyB1c2Ug YQorICAgIHNpbmdsZSBsaXN0IHR5cGUgZm9yIGFkZHJlc3NlcyBhbmQgaG9zdCBuYW1lcy4gICov CisgI2RlZmluZSBEWU5BUlJBWV9TVFJVQ1QgcHRybGlzdAorQEAgLTEyNSwxOCArMTE4LDE4IEBA IHN0YXRpYyBlbnVtIG5zc19zdGF0dXMgZ2V0YW5zd2VyX3B0ciAodW5zaWduZWQgY2hhciAqcGFj a2V0LCBzaXplX3QgcGFja2V0bGVuLAorIAkJCQkgICAgICBjaGFyICoqaG5hbWVwLCBpbnQgKmVy cm5vcCwKKyAJCQkJICAgICAgaW50ICpoX2Vycm5vcCwgaW50MzJfdCAqdHRscCk7CisgCistc3Rh dGljIGVudW0gbnNzX3N0YXR1cyBnYWloX2dldGFuc3dlciAoY29uc3QgcXVlcnlidWYgKmFuc3dl cjEsIGludCBhbnNsZW4xLAorLQkJCQkgICAgICAgY29uc3QgcXVlcnlidWYgKmFuc3dlcjIsIGlu dCBhbnNsZW4yLAorLQkJCQkgICAgICAgY29uc3QgY2hhciAqcW5hbWUsCisrc3RhdGljIGVudW0g bnNzX3N0YXR1cyBnYWloX2dldGFuc3dlciAodW5zaWduZWQgY2hhciAqcGFja2V0MSwKKysJCQkJ ICAgICAgIHNpemVfdCBwYWNrZXQxbGVuLAorKwkJCQkgICAgICAgdW5zaWduZWQgY2hhciAqcGFj a2V0MiwKKysJCQkJICAgICAgIHNpemVfdCBwYWNrZXQybGVuLAorKwkJCQkgICAgICAgc3RydWN0 IGFsbG9jX2J1ZmZlciAqYWJ1ZiwKKyAJCQkJICAgICAgIHN0cnVjdCBnYWloX2FkZHJ0dXBsZSAq KnBhdCwKKy0JCQkJICAgICAgIGNoYXIgKmJ1ZmZlciwgc2l6ZV90IGJ1ZmxlbiwKKyAJCQkJICAg ICAgIGludCAqZXJybm9wLCBpbnQgKmhfZXJybm9wLAorIAkJCQkgICAgICAgaW50MzJfdCAqdHRs cCk7Cistc3RhdGljIGVudW0gbnNzX3N0YXR1cyBnYWloX2dldGFuc3dlcl9ub2FhYWEgKGNvbnN0 IHF1ZXJ5YnVmICphbnN3ZXIxLAorLQkJCQkJICAgICAgaW50IGFuc2xlbjEsCistCQkJCQkgICAg ICBjb25zdCBjaGFyICpxbmFtZSwKKytzdGF0aWMgZW51bSBuc3Nfc3RhdHVzIGdhaWhfZ2V0YW5z d2VyX25vYWFhYSAodW5zaWduZWQgY2hhciAqcGFja2V0LAorKwkJCQkJICAgICAgc2l6ZV90IHBh Y2tldGxlbiwKKysJCQkJCSAgICAgIHN0cnVjdCBhbGxvY19idWZmZXIgKmFidWYsCisgCQkJCQkg ICAgICBzdHJ1Y3QgZ2FpaF9hZGRydHVwbGUgKipwYXQsCistCQkJCQkgICAgICBjaGFyICpidWZm ZXIsIHNpemVfdCBidWZsZW4sCisgCQkJCQkgICAgICBpbnQgKmVycm5vcCwgaW50ICpoX2Vycm5v cCwKKyAJCQkJCSAgICAgIGludDMyX3QgKnR0bHApOworIAorQEAgLTQwOCwxNyArNDAxLDEzIEBA IF9uc3NfZG5zX2dldGhvc3RieW5hbWU0X3IgKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBnYWlo X2FkZHJ0dXBsZSAqKnBhdCwKKyAJbmFtZSA9IGNwOworICAgICB9CisgCistICB1bmlvbgorLSAg eworLSAgICBxdWVyeWJ1ZiAqYnVmOworLSAgICB1X2NoYXIgKnB0cjsKKy0gIH0gaG9zdF9idWZm ZXI7CistICBxdWVyeWJ1ZiAqb3JpZ19ob3N0X2J1ZmZlcjsKKy0gIGhvc3RfYnVmZmVyLmJ1ZiA9 IG9yaWdfaG9zdF9idWZmZXIgPSAocXVlcnlidWYgKikgYWxsb2NhICgyMDQ4KTsKKysgIHVuc2ln bmVkIGNoYXIgZG5zX3BhY2tldF9idWZmZXJbMjA0OF07CisrICB1bnNpZ25lZCBjaGFyICphbHRf ZG5zX3BhY2tldF9idWZmZXIgPSBkbnNfcGFja2V0X2J1ZmZlcjsKKyAgIHVfY2hhciAqYW5zMnAg PSBOVUxMOworICAgaW50IG5hbnMycCA9IDA7CisgICBpbnQgcmVzcGxlbjIgPSAwOworICAgaW50 IGFuczJwX21hbGxvY2VkID0gMDsKKysgIHN0cnVjdCBhbGxvY19idWZmZXIgYWJ1ZiA9IGFsbG9j X2J1ZmZlcl9jcmVhdGUgKGJ1ZmZlciwgYnVmbGVuKTsKKyAKKyAKKyAgIGludCBvbGRlcnIgPSBl cnJubzsKK0BAIC00MjcsMjIgKzQxNiwyMSBAQCBfbnNzX2Ruc19nZXRob3N0YnluYW1lNF9yIChj b25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgZ2FpaF9hZGRydHVwbGUgKipwYXQsCisgICBpZiAoKGN0 eC0+cmVzcC0+b3B0aW9ucyAmIFJFU19OT0FBQUEpID09IDApCisgICAgIHsKKyAgICAgICBuID0g X19yZXNfY29udGV4dF9zZWFyY2ggKGN0eCwgbmFtZSwgQ19JTiwgVF9RVUVSWV9BX0FORF9BQUFB LAorLQkJCQlob3N0X2J1ZmZlci5idWYtPmJ1ZiwgMjA0OCwgJmhvc3RfYnVmZmVyLnB0ciwKKy0J CQkJJmFuczJwLCAmbmFuczJwLCAmcmVzcGxlbjIsICZhbnMycF9tYWxsb2NlZCk7CisrCQkJCWRu c19wYWNrZXRfYnVmZmVyLCBzaXplb2YgKGRuc19wYWNrZXRfYnVmZmVyKSwKKysJCQkJJmFsdF9k bnNfcGFja2V0X2J1ZmZlciwgJmFuczJwLCAmbmFuczJwLAorKwkJCQkmcmVzcGxlbjIsICZhbnMy cF9tYWxsb2NlZCk7CisgICAgICAgaWYgKG4gPj0gMCkKKy0Jc3RhdHVzID0gZ2FpaF9nZXRhbnN3 ZXIgKGhvc3RfYnVmZmVyLmJ1ZiwgbiwgKGNvbnN0IHF1ZXJ5YnVmICopIGFuczJwLAorLQkJCQkg cmVzcGxlbjIsIG5hbWUsIHBhdCwgYnVmZmVyLCBidWZsZW4sCistCQkJCSBlcnJub3AsIGhlcnJu b3AsIHR0bHApOworKwlzdGF0dXMgPSBnYWloX2dldGFuc3dlciAoYWx0X2Ruc19wYWNrZXRfYnVm ZmVyLCBuLCBhbnMycCwgcmVzcGxlbjIsCisrCQkJCSAmYWJ1ZiwgcGF0LCBlcnJub3AsIGhlcnJu b3AsIHR0bHApOworICAgICB9CisgICBlbHNlCisgICAgIHsKKyAgICAgICBuID0gX19yZXNfY29u dGV4dF9zZWFyY2ggKGN0eCwgbmFtZSwgQ19JTiwgVF9BLAorLQkJCQlob3N0X2J1ZmZlci5idWYt PmJ1ZiwgMjA0OCwgTlVMTCwKKy0JCQkJTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCk7CisrCQkJCWRu c19wYWNrZXRfYnVmZmVyLCBzaXplb2YgKGRuc19wYWNrZXRfYnVmZmVyKSwKKysJCQkJTlVMTCwg TlVMTCwgTlVMTCwgTlVMTCwgTlVMTCk7CisgICAgICAgaWYgKG4gPj0gMCkKKy0Jc3RhdHVzID0g Z2FpaF9nZXRhbnN3ZXJfbm9hYWFhIChob3N0X2J1ZmZlci5idWYsIG4sCistCQkJCQluYW1lLCBw YXQsIGJ1ZmZlciwgYnVmbGVuLAorLQkJCQkJZXJybm9wLCBoZXJybm9wLCB0dGxwKTsKKysJc3Rh dHVzID0gZ2FpaF9nZXRhbnN3ZXJfbm9hYWFhIChhbHRfZG5zX3BhY2tldF9idWZmZXIsIG4sCisr CQkJCQkmYWJ1ZiwgcGF0LCBlcnJub3AsIGhlcnJub3AsIHR0bHApOworICAgICB9CisgICBpZiAo biA8IDApCisgICAgIHsKK0BAIC00NzMsMTIgKzQ2MSwyMCBAQCBfbnNzX2Ruc19nZXRob3N0Ynlu YW1lNF9yIChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgZ2FpaF9hZGRydHVwbGUgKipwYXQsCisg CV9fc2V0X2Vycm5vIChvbGRlcnIpOworICAgICB9CisgCisrICAvKiBJbXBsZW1lbnQgdGhlIGJ1 ZmZlciByZXNpemluZyBwcm90b2NvbC4gICovCisrICBpZiAoYWxsb2NfYnVmZmVyX2hhc19mYWls ZWQgKCZhYnVmKSkKKysgICAgeworKyAgICAgICplcnJub3AgPSBFUkFOR0U7CisrICAgICAgKmhl cnJub3AgPSBORVREQl9JTlRFUk5BTDsKKysgICAgICBzdGF0dXMgPSBOU1NfU1RBVFVTX1RSWUFH QUlOOworKyAgICB9CisrCisgICAvKiBDaGVjayB3aGV0aGVyIGFuczJwIHdhcyBzZXBhcmF0ZWx5 IGFsbG9jYXRlZC4gICovCisgICBpZiAoYW5zMnBfbWFsbG9jZWQpCisgICAgIGZyZWUgKGFuczJw KTsKKyAKKy0gIGlmIChob3N0X2J1ZmZlci5idWYgIT0gb3JpZ19ob3N0X2J1ZmZlcikKKy0gICAg ZnJlZSAoaG9zdF9idWZmZXIuYnVmKTsKKysgIGlmIChhbHRfZG5zX3BhY2tldF9idWZmZXIgIT0g ZG5zX3BhY2tldF9idWZmZXIpCisrICAgIGZyZWUgKGFsdF9kbnNfcGFja2V0X2J1ZmZlcik7Cisg CisgICBfX3Jlc29sdl9jb250ZXh0X3B1dCAoY3R4KTsKKyAgIHJldHVybiBzdGF0dXM7CitAQCAt ODkyLDI1OSArODg4LDE1MiBAQCBnZXRhbnN3ZXJfcHRyICh1bnNpZ25lZCBjaGFyICpwYWNrZXQs IHNpemVfdCBwYWNrZXRsZW4sCisgICByZXR1cm4gTlNTX1NUQVRVU19UUllBR0FJTjsKKyB9Cisg CisrLyogUGFyc2VzIEROUyBkYXRhIGZvdW5kIGluIFBBQ0tFVExFTiBieXRlcyBhdCBQQUNLRVQg aW4gc3RydWN0CisrICAgZ2FpaF9hZGRydHVwbGUgYWRkcmVzcyB0dXBsZXMuICBUaGUgbmV3IGFk ZHJlc3MgdHVwbGVzIGFyZSBsaW5rZWQKKysgICBmcm9tICoqVEFJTFAsIHdpdGggYmFja2luZyBz dG9yZSBhbGxvY2F0ZWQgZnJvbSBBQlVGLCBhbmQgKlRBSUxQIGlzCisrICAgdXBkYXRlZCB0byBw b2ludCB3aGVyZSB0aGUgbmV4dCB0dXBsZSBwb2ludGVyIHNob3VsZCBiZSBzdG9yZWQuICBJZgor KyAgIFRUTFAgaXMgbm90IG51bGwsICpUVExQIGlzIHVwZGF0ZWQgdG8gcmVmbGVjdCB0aGUgbWlu aW11bSBUVEwuICBJZgorKyAgIFNUT1JFX0NBTk9OIGlzIHRydWUsIHRoZSBjYW5vbmljYWwgbmFt ZSBpcyBzdG9yZWQgYXMgcGFydCBvZiB0aGUKKysgICBmaXJzdCBhZGRyZXNzIHR1cGxlIGJlaW5n IHdyaXR0ZW4uICAqLworIHN0YXRpYyBlbnVtIG5zc19zdGF0dXMKKy1nYWloX2dldGFuc3dlcl9z bGljZSAoY29uc3QgcXVlcnlidWYgKmFuc3dlciwgaW50IGFuc2xlbiwgY29uc3QgY2hhciAqcW5h bWUsCistCQkgICAgICBzdHJ1Y3QgZ2FpaF9hZGRydHVwbGUgKioqcGF0cCwKKy0JCSAgICAgIGNo YXIgKipidWZmZXJwLCBzaXplX3QgKmJ1ZmxlbnAsCistCQkgICAgICBpbnQgKmVycm5vcCwgaW50 ICpoX2Vycm5vcCwgaW50MzJfdCAqdHRscCwgaW50ICpmaXJzdHApCisrZ2FpaF9nZXRhbnN3ZXJf c2xpY2UgKHVuc2lnbmVkIGNoYXIgKnBhY2tldCwgc2l6ZV90IHBhY2tldGxlbiwKKysJCSAgICAg IHN0cnVjdCBhbGxvY19idWZmZXIgKmFidWYsCisrCQkgICAgICBzdHJ1Y3QgZ2FpaF9hZGRydHVw bGUgKioqdGFpbHAsCisrCQkgICAgICBpbnQgKmVycm5vcCwgaW50ICpoX2Vycm5vcCwgaW50MzJf dCAqdHRscCwKKysJCSAgICAgIGJvb2wgc3RvcmVfY2Fub24pCisgeworLSAgY2hhciAqYnVmZmVy ID0gKmJ1ZmZlcnA7CistICBzaXplX3QgYnVmbGVuID0gKmJ1ZmxlbnA7CistCistICBzdHJ1Y3Qg Z2FpaF9hZGRydHVwbGUgKipwYXQgPSAqcGF0cDsKKy0gIGNvbnN0IEhFQURFUiAqaHAgPSAmYW5z d2VyLT5oZHI7CistICBpbnQgYW5jb3VudCA9IG50b2hzIChocC0+YW5jb3VudCk7CistICBpbnQg cWRjb3VudCA9IG50b2hzIChocC0+cWRjb3VudCk7CistICBjb25zdCB1X2NoYXIgKmNwID0gYW5z d2VyLT5idWYgKyBIRklYRURTWjsKKy0gIGNvbnN0IHVfY2hhciAqZW5kX29mX21lc3NhZ2UgPSBh bnN3ZXItPmJ1ZiArIGFuc2xlbjsKKy0gIGlmIChfX2dsaWJjX3VubGlrZWx5IChxZGNvdW50ICE9 IDEpKQorLSAgICB7CistICAgICAgKmhfZXJybm9wID0gTk9fUkVDT1ZFUlk7CistICAgICAgcmV0 dXJuIE5TU19TVEFUVVNfVU5BVkFJTDsKKy0gICAgfQorLQorLSAgdV9jaGFyIHBhY2t0bXBbTlNf TUFYQ0ROQU1FXTsKKy0gIGludCBuID0gX19uc19uYW1lX3VucGFjayAoYW5zd2VyLT5idWYsIGVu ZF9vZl9tZXNzYWdlLCBjcCwKKy0JCQkgICAgcGFja3RtcCwgc2l6ZW9mIHBhY2t0bXApOworLSAg LyogV2UgdW5wYWNrIHRoZSBuYW1lIHRvIGNoZWNrIGl0IGZvciB2YWxpZGl0eS4gIEJ1dCB3ZSBk byBub3QgbmVlZAorLSAgICAgaXQgbGF0ZXIuICAqLworLSAgaWYgKG4gIT0gLTEgJiYgX19uc19u YW1lX250b3AgKHBhY2t0bXAsIGJ1ZmZlciwgYnVmbGVuKSA9PSAtMSkKKy0gICAgeworLSAgICAg IGlmIChfX2dsaWJjX3VubGlrZWx5IChlcnJubyA9PSBFTVNHU0laRSkpCistCXsKKy0JdG9vX3Nt YWxsOgorLQkgICplcnJub3AgPSBFUkFOR0U7CistCSAgKmhfZXJybm9wID0gTkVUREJfSU5URVJO QUw7CistCSAgcmV0dXJuIE5TU19TVEFUVVNfVFJZQUdBSU47CistCX0KKy0KKy0gICAgICBuID0g LTE7CistICAgIH0KKy0KKy0gIGlmIChfX2dsaWJjX3VubGlrZWx5IChuIDwgMCkpCistICAgIHsK Ky0gICAgICAqZXJybm9wID0gZXJybm87CistICAgICAgKmhfZXJybm9wID0gTk9fUkVDT1ZFUlk7 CistICAgICAgcmV0dXJuIE5TU19TVEFUVVNfVU5BVkFJTDsKKy0gICAgfQorLSAgaWYgKF9fZ2xp YmNfdW5saWtlbHkgKF9fbGliY19yZXNfaG5vayAoYnVmZmVyKSA9PSAwKSkKKysgIHN0cnVjdCBu c19ycl9jdXJzb3IgYzsKKysgIGlmICghX19uc19ycl9jdXJzb3JfaW5pdCAoJmMsIHBhY2tldCwg cGFja2V0bGVuKSkKKyAgICAgeworLSAgICAgIGVycm5vID0gRUJBRE1TRzsKKy0gICAgICAqZXJy bm9wID0gRUJBRE1TRzsKKysgICAgICAvKiBUaGlzIHNob3VsZCBub3QgaGFwcGVuIGJlY2F1c2Ug X19yZXNfY29udGV4dF9xdWVyeSBhbHJlYWR5CisrCSBwZXJmcm9tcyByZXNwb25zZSB2YWxpZGF0 aW9uLiAgKi8KKyAgICAgICAqaF9lcnJub3AgPSBOT19SRUNPVkVSWTsKKyAgICAgICByZXR1cm4g TlNTX1NUQVRVU19VTkFWQUlMOworICAgICB9CistICBjcCArPSBuICsgUUZJWEVEU1o7CisrICBi b29sIGhhdmVhbnN3ZXIgPSBmYWxzZTsgLyogU2V0IHRvIHRydWUgaWYgYXQgbGVhc3Qgb25lIGFk ZHJlc3MuICAqLworKyAgdWludDE2X3QgcXR5cGUgPSBuc19ycl9jdXJzb3JfcXR5cGUgKCZjKTsK KysgIGludCBhbmNvdW50ID0gbnNfcnJfY3Vyc29yX2FuY291bnQgKCZjKTsKKysgIGNvbnN0IHVu c2lnbmVkIGNoYXIgKmV4cGVjdGVkX25hbWUgPSBuc19ycl9jdXJzb3JfcW5hbWUgKCZjKTsKKysg IC8qIGV4cGVjdGVkX25hbWUgbWF5IGJlIHVwZGF0ZWQgdG8gcG9pbnQgaW50byB0aGlzIGJ1ZmZl ci4gICovCisrICB1bnNpZ25lZCBjaGFyIG5hbWVfYnVmZmVyW05TX01BWENETkFNRV07CisgCist ICBpbnQgaGF2ZWFuc3dlciA9IDA7CistICBpbnQgaGFkX2Vycm9yID0gMDsKKy0gIGNoYXIgKmNh bm9uID0gTlVMTDsKKy0gIGNoYXIgKmhfbmFtZSA9IE5VTEw7CistICBpbnQgaF9uYW1lbGVuID0g MDsKKysgIC8qIFRoaXMgaXMgYSBwb2ludGVyIHRvIGEgcG9zc2libHktY29tcHJlc3NlZCBuYW1l IGluIHRoZSBwYWNrZXQuCisrICAgICBFdmVudHVhbGx5IGl0IGlzIGVxdWl2YWxlbnQgdG8gdGhl IGNhbm9uaWNhbCBuYW1lLiAgSWYgbmVlZGVkLCBpdAorKyAgICAgaXMgdW5jb21wcmVzc2VkIGFu ZCB0cmFuc2xhdGVkIHRvIHRleHQgZm9ybSB3aGVuIHRoZSBmaXJzdAorKyAgICAgYWRkcmVzcyB0 dXBsZSBpcyBlbmNvdW50ZXJlZC4gICovCisrICBjb25zdCB1bnNpZ25lZCBjaGFyICpjb21wcmVz c2VkX2FsaWFzX25hbWUgPSBleHBlY3RlZF9uYW1lOworIAorLSAgaWYgKGFuY291bnQgPT0gMCkK KysgIGlmIChhbmNvdW50ID09IDAgfHwgIV9fcmVzX2JpbmFyeV9obm9rIChjb21wcmVzc2VkX2Fs aWFzX25hbWUpKQorICAgICB7CisgICAgICAgKmhfZXJybm9wID0gSE9TVF9OT1RfRk9VTkQ7Cisg ICAgICAgcmV0dXJuIE5TU19TVEFUVVNfTk9URk9VTkQ7CisgICAgIH0KKyAKKy0gIHdoaWxlIChh bmNvdW50LS0gPiAwICYmIGNwIDwgZW5kX29mX21lc3NhZ2UgJiYgaGFkX2Vycm9yID09IDApCisr ICBmb3IgKDsgYW5jb3VudCA+IC0wOyAtLWFuY291bnQpCisgICAgIHsKKy0gICAgICBuID0gX19u c19uYW1lX3VucGFjayAoYW5zd2VyLT5idWYsIGVuZF9vZl9tZXNzYWdlLCBjcCwKKy0JCQkgICAg cGFja3RtcCwgc2l6ZW9mIHBhY2t0bXApOworLSAgICAgIGlmIChuICE9IC0xICYmCistCSAgKGhf bmFtZWxlbiA9IF9fbnNfbmFtZV9udG9wIChwYWNrdG1wLCBidWZmZXIsIGJ1ZmxlbikpID09IC0x KQorLQl7CistCSAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKGVycm5vID09IEVNU0dTSVpFKSkKKy0J ICAgIGdvdG8gdG9vX3NtYWxsOworLQorLQkgIG4gPSAtMTsKKy0JfQorLSAgICAgIGlmIChfX2ds aWJjX3VubGlrZWx5IChuIDwgMCkpCistCXsKKy0JICArK2hhZF9lcnJvcjsKKy0JICBjb250aW51 ZTsKKy0JfQorLSAgICAgIGlmICgqZmlyc3RwICYmIGNhbm9uID09IE5VTEwgJiYgX19saWJjX3Jl c19obm9rIChidWZmZXIpKQorLQl7CistCSAgaF9uYW1lID0gYnVmZmVyOworLQkgIGJ1ZmZlciAr PSBoX25hbWVsZW47CistCSAgYnVmbGVuIC09IGhfbmFtZWxlbjsKKy0JfQorLQorLSAgICAgIGNw ICs9IG47CQkJCS8qIG5hbWUgKi8KKy0KKy0gICAgICBpZiAoX19nbGliY191bmxpa2VseSAoY3Ag KyAxMCA+IGVuZF9vZl9tZXNzYWdlKSkKKy0JeworLQkgICsraGFkX2Vycm9yOworLQkgIGNvbnRp bnVlOworLQl9CistCistICAgICAgdWludDE2X3QgdHlwZTsKKy0gICAgICBOU19HRVQxNiAodHlw ZSwgY3ApOworLSAgICAgIHVpbnQxNl90IGNsYXNzOworLSAgICAgIE5TX0dFVDE2IChjbGFzcywg Y3ApOworLSAgICAgIGludDMyX3QgdHRsOworLSAgICAgIE5TX0dFVDMyICh0dGwsIGNwKTsKKy0g ICAgICBOU19HRVQxNiAobiwgY3ApOwkJLyogUkRBVEEgbGVuZ3RoLiAgKi8KKy0KKy0gICAgICBp ZiAoZW5kX29mX21lc3NhZ2UgLSBjcCA8IG4pCisrICAgICAgc3RydWN0IG5zX3JyX3dpcmUgcnI7 CisrICAgICAgaWYgKCFfX25zX3JyX2N1cnNvcl9uZXh0ICgmYywgJnJyKSkKKyAJeworLQkgIC8q IFJEQVRBIGV4dGVuZHMgYmV5b25kIHRoZSBlbmQgb2YgdGhlIHBhY2tldC4gICovCistCSAgKyto YWRfZXJyb3I7CistCSAgY29udGludWU7CisrCSAgKmhfZXJybm9wID0gTk9fUkVDT1ZFUlk7Cisr CSAgcmV0dXJuIE5TU19TVEFUVVNfVU5BVkFJTDsKKyAJfQorIAorLSAgICAgIGlmIChjbGFzcyAh PSBDX0lOKQorLQl7CistCSAgY3AgKz0gbjsKKy0JICBjb250aW51ZTsKKy0JfQorKyAgICAgIC8q IFVwZGF0ZSBUVEwgZm9yIGtub3duIHJlY29yZCB0eXBlcy4gICovCisrICAgICAgaWYgKChyci5y dHlwZSA9PSBUX0NOQU1FIHx8IHJyLnJ0eXBlID09IHF0eXBlKQorKwkgICYmIHR0bHAgIT0gTlVM TCAmJiAqdHRscCA+IHJyLnR0bCkKKysJKnR0bHAgPSByci50dGw7CisgCistICAgICAgaWYgKHR5 cGUgPT0gVF9DTkFNRSkKKysgICAgICBpZiAocnIucnR5cGUgPT0gVF9DTkFNRSkKKyAJeworLQkg IGNoYXIgdGJ1ZltNQVhETkFNRV07CistCistCSAgLyogQSBDTkFNRSBjb3VsZCBhbHNvIGhhdmUg YSBUVEwgZW50cnkuICAqLworLQkgIGlmICh0dGxwICE9IE5VTEwgJiYgdHRsIDwgKnR0bHApCist CSAgICAgICp0dGxwID0gdHRsOworLQorLQkgIG4gPSBfX2xpYmNfZG5fZXhwYW5kIChhbnN3ZXIt PmJ1ZiwgZW5kX29mX21lc3NhZ2UsIGNwLAorLQkJCQl0YnVmLCBzaXplb2YgdGJ1Zik7CistCSAg aWYgKF9fZ2xpYmNfdW5saWtlbHkgKG4gPCAwKSkKKy0JICAgIHsKKy0JICAgICAgKytoYWRfZXJy b3I7CistCSAgICAgIGNvbnRpbnVlOworLQkgICAgfQorLQkgIGNwICs9IG47CistCistCSAgaWYg KCpmaXJzdHAgJiYgX19saWJjX3Jlc19obm9rICh0YnVmKSkKKysJICAvKiBOQjogTm8gY2hlY2sg Zm9yIG93bmVyIG5hbWUgbWF0Y2gsIGJhc2VkIG9uIGhpc3RvcmljCisrCSAgICAgcHJlY2VkZW50 LiAgUmVjb3JkIHRoZSBDTkFNRSB0YXJnZXQgYXMgdGhlIG5ldyBleHBlY3RlZAorKwkgICAgIG5h bWUuICAqLworKwkgIGludCBuID0gX19uc19uYW1lX3VucGFjayAoYy5iZWdpbiwgYy5lbmQsIHJy LnJkYXRhLAorKwkJCQkgICAgbmFtZV9idWZmZXIsIHNpemVvZiAobmFtZV9idWZmZXIpKTsKKysJ ICBpZiAobiA8IDApCisgCSAgICB7CistCSAgICAgIC8qIFJlY2xhaW0gYnVmZmVyIHNwYWNlLiAg Ki8KKy0JICAgICAgaWYgKGhfbmFtZSArIGhfbmFtZWxlbiA9PSBidWZmZXIpCistCQl7CistCQkg IGJ1ZmZlciA9IGhfbmFtZTsKKy0JCSAgYnVmbGVuICs9IGhfbmFtZWxlbjsKKy0JCX0KKy0KKy0J ICAgICAgbiA9IHN0cmxlbiAodGJ1ZikgKyAxOworLQkgICAgICBpZiAoX19nbGliY191bmxpa2Vs eSAobiA+IGJ1ZmxlbikpCistCQlnb3RvIHRvb19zbWFsbDsKKy0JICAgICAgaWYgKF9fZ2xpYmNf dW5saWtlbHkgKG4gPj0gTUFYSE9TVE5BTUVMRU4pKQorLQkJeworLQkJICArK2hhZF9lcnJvcjsK Ky0JCSAgY29udGludWU7CistCQl9CistCistCSAgICAgIGNhbm9uID0gYnVmZmVyOworLQkgICAg ICBidWZmZXIgPSBfX21lbXBjcHkgKGJ1ZmZlciwgdGJ1Ziwgbik7CistCSAgICAgIGJ1ZmxlbiAt PSBuOworLQkgICAgICBoX25hbWVsZW4gPSAwOworKwkgICAgICAqaF9lcnJub3AgPSBOT19SRUNP VkVSWTsKKysJICAgICAgcmV0dXJuIE5TU19TVEFUVVNfVU5BVkFJTDsKKyAJICAgIH0KKy0JICBj b250aW51ZTsKKysJICBleHBlY3RlZF9uYW1lID0gbmFtZV9idWZmZXI7CisrCSAgaWYgKHN0b3Jl X2Nhbm9uICYmIF9fcmVzX2JpbmFyeV9obm9rIChuYW1lX2J1ZmZlcikpCisrCSAgICAvKiBUaGlz IG5hbWUgY2FuIGJlIHVzZWQgYXMgYSBjYW5vbmljYWwgbmFtZS4gIERvIG5vdAorKwkgICAgICAg dHJhbnNsYXRlIHRvIHRleHQgZm9ybSBoZXJlIHRvIGNvbnNlcnZlIGJ1ZmZlciBzcGFjZS4KKysJ ICAgICAgIFBvaW50IHRvIHRoZSBjb21wcmVzc2VkIG5hbWUgYmVjYXVzZSBuYW1lX2J1ZmZlciBj YW4gYmUKKysJICAgICAgIG92ZXJ3cml0dGVuIHdpdGggYW4gdW51c2FibGUgbmFtZSBsYXRlci4g ICovCisrCSAgICBjb21wcmVzc2VkX2FsaWFzX25hbWUgPSByci5yZGF0YTsKKyAJfQorLQorLSAg ICAgIC8qIFN0b3AgcGFyc2luZyBpZiB3ZSBlbmNvdW50ZXIgYSByZWNvcmQgd2l0aCBpbmNvcnJl Y3QgUkRBVEEKKy0JIGxlbmd0aC4gICovCistICAgICAgaWYgKHR5cGUgPT0gVF9BIHx8IHR5cGUg PT0gVF9BQUFBKQorKyAgICAgIGVsc2UgaWYgKHJyLnJ0eXBlID09IHF0eXBlCisrCSAgICAgICAm JiBfX25zX3NhbWViaW5hcnluYW1lIChyci5ybmFtZSwgZXhwZWN0ZWRfbmFtZSkKKysJICAgICAg ICYmIHJyLnJkbGVuZ3RoID09IHJydHlwZV90b19yZGF0YV9sZW5ndGggKHF0eXBlKSkKKyAJewor LQkgIGlmIChuICE9IHJydHlwZV90b19yZGF0YV9sZW5ndGggKHR5cGUpKQorKwkgIHN0cnVjdCBn YWloX2FkZHJ0dXBsZSAqbnR1cAorKwkgICAgPSBhbGxvY19idWZmZXJfYWxsb2MgKGFidWYsIHN0 cnVjdCBnYWloX2FkZHJ0dXBsZSk7CisrCSAgLyogRGVsYXkgZXJyb3IgcmVwb3J0aW5nIHRvIHRo ZSBjYWxsZXJzICh0aGV5IGltcGxlbWVudCB0aGUKKysJICAgICBFUkFOR0UgYnVmZmVyIHJlc2l6 aW5nIGhhbmRzaGFrZSkuICAqLworKwkgIGlmIChudHVwICE9IE5VTEwpCisgCSAgICB7CistCSAg ICAgICsraGFkX2Vycm9yOworLQkgICAgICBjb250aW51ZTsKKysJICAgICAgbnR1cC0+bmV4dCA9 IE5VTEw7CisrCSAgICAgIGlmIChzdG9yZV9jYW5vbiAmJiBjb21wcmVzc2VkX2FsaWFzX25hbWUg IT0gTlVMTCkKKysJCXsKKysJCSAgLyogVGhpcyBhc3N1bWVzIHRoYXQgYWxsIHRoZSBDTkFNRSBy ZWNvcmRzIGNvbWUKKysJCSAgICAgZmlyc3QuICBVc2UgTUFYSE9TVE5BTUVMRU4gaW5zdGVhZCBv ZgorKwkJICAgICBOU19NQVhDRE5BTUUgZm9yIGFkZGl0aW9uYWwgbGVuZ3RoIGNoZWNraW5nLgor KwkJICAgICBIb3dldmVyLCB0aGVzZSBjaGVja3MgYXJlIG5vdCBleHBlY3RlZCB0byBmYWlsCisr CQkgICAgIGJlY2F1c2UgYWxsIHNpemUgTlNfTUFYQ0ROQU1FIG5hbWVzIHNob3VsZCBpbnRvCisr CQkgICAgIHRoZSBobmFtZSBidWZmZXIgYmVjYXVzZSBubyBlc2NhcGluZyBpcworKwkJICAgICBu ZWVkZWQuICAqLworKwkJICBjaGFyIHVuc2lnbmVkIG5idWZbTlNfTUFYQ0ROQU1FXTsKKysJCSAg Y2hhciBobmFtZVtNQVhIT1NUTkFNRUxFTiArIDFdOworKwkJICBpZiAoX19uc19uYW1lX3VucGFj ayAoYy5iZWdpbiwgYy5lbmQsCisrCQkJCQljb21wcmVzc2VkX2FsaWFzX25hbWUsCisrCQkJCQlu YnVmLCBzaXplb2YgKG5idWYpKSA+PSAwCisrCQkgICAgICAmJiBfX25zX25hbWVfbnRvcCAobmJ1 ZiwgaG5hbWUsIHNpemVvZiAoaG5hbWUpKSA+PSAwKQorKwkJICAgIC8qIFNwYWNlIGNoZWNraW5n IGlzIHBlcmZvcm1lZCBieSB0aGUgY2FsbGVycy4gICovCisrCQkgICAgbnR1cC0+bmFtZSA9IGFs bG9jX2J1ZmZlcl9jb3B5X3N0cmluZyAoYWJ1ZiwgaG5hbWUpOworKwkJICBzdG9yZV9jYW5vbiA9 IGZhbHNlOworKwkJfQorKwkgICAgICBlbHNlCisrCQludHVwLT5uYW1lID0gTlVMTDsKKysJICAg ICAgaWYgKHJyLnJkbGVuZ3RoID09IDQpCisrCQludHVwLT5mYW1pbHkgPSBBRl9JTkVUOworKwkg ICAgICBlbHNlCisrCQludHVwLT5mYW1pbHkgPSBBRl9JTkVUNjsKKysJICAgICAgbWVtY3B5IChu dHVwLT5hZGRyLCByci5yZGF0YSwgcnIucmRsZW5ndGgpOworKwkgICAgICBudHVwLT5zY29wZWlk ID0gMDsKKysKKysJICAgICAgLyogTGluayBpbiB0aGUgbmV3IHR1cGxlLCBhbmQgdXBkYXRlIHRo ZSB0YWlsIHBvaW50ZXIgdG8KKysJCSBwb2ludCB0byBpdHMgbmV4dCBmaWVsZC4gICovCisrCSAg ICAgICoqdGFpbHAgPSBudHVwOworKwkgICAgICAqdGFpbHAgPSAmbnR1cC0+bmV4dDsKKysKKysJ ICAgICAgaGF2ZWFuc3dlciA9IHRydWU7CisgCSAgICB9CisgCX0KKy0gICAgICBlbHNlCistCXsK Ky0JICAvKiBTa2lwIHVua25vd24gcmVjb3Jkcy4gICovCistCSAgY3AgKz0gbjsKKy0JICBjb250 aW51ZTsKKy0JfQorLQorLSAgICAgIGFzc2VydCAodHlwZSA9PSBUX0EgfHwgdHlwZSA9PSBUX0FB QUEpOworLSAgICAgIGlmICgqcGF0ID09IE5VTEwpCistCXsKKy0JICB1aW50cHRyX3QgcGFkID0g KC0odWludHB0cl90KSBidWZmZXIKKy0JCQkgICAlIF9fYWxpZ25vZl9fIChzdHJ1Y3QgZ2FpaF9h ZGRydHVwbGUpKTsKKy0JICBidWZmZXIgKz0gcGFkOworLQkgIGJ1ZmxlbiA9IGJ1ZmxlbiA+IHBh ZCA/IGJ1ZmxlbiAtIHBhZCA6IDA7CistCistCSAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKGJ1Zmxl biA8IHNpemVvZiAoc3RydWN0IGdhaWhfYWRkcnR1cGxlKSkpCistCSAgICBnb3RvIHRvb19zbWFs bDsKKy0KKy0JICAqcGF0ID0gKHN0cnVjdCBnYWloX2FkZHJ0dXBsZSAqKSBidWZmZXI7CistCSAg YnVmZmVyICs9IHNpemVvZiAoc3RydWN0IGdhaWhfYWRkcnR1cGxlKTsKKy0JICBidWZsZW4gLT0g c2l6ZW9mIChzdHJ1Y3QgZ2FpaF9hZGRydHVwbGUpOworLQl9CistCistICAgICAgKCpwYXQpLT5u YW1lID0gTlVMTDsKKy0gICAgICAoKnBhdCktPm5leHQgPSBOVUxMOworLQorLSAgICAgIGlmICgq Zmlyc3RwKQorLQl7CistCSAgLyogV2UgY29tcG9zZSBhIHNpbmdsZSBob3N0ZW50IG91dCBvZiB0 aGUgZW50aXJlIGNoYWluIG9mCistCSAgICAgZW50cmllcywgc28gdGhlIFRUTCBvZiB0aGUgaG9z dGVudCBpcyBlc3NlbnRpYWxseSB0aGUgbG93ZXN0CistCSAgICAgVFRMIGluIHRoZSBjaGFpbi4g ICovCistCSAgaWYgKHR0bHAgIT0gTlVMTCAmJiB0dGwgPCAqdHRscCkKKy0JICAgICp0dGxwID0g dHRsOworLQorLQkgICgqcGF0KS0+bmFtZSA9IGNhbm9uID86IGhfbmFtZTsKKy0KKy0JICAqZmly c3RwID0gMDsKKy0JfQorLQorLSAgICAgICgqcGF0KS0+ZmFtaWx5ID0gdHlwZSA9PSBUX0EgPyBB Rl9JTkVUIDogQUZfSU5FVDY7CistICAgICAgbWVtY3B5ICgoKnBhdCktPmFkZHIsIGNwLCBuKTsK Ky0gICAgICBjcCArPSBuOworLSAgICAgICgqcGF0KS0+c2NvcGVpZCA9IDA7CistCistICAgICAg cGF0ID0gJigoKnBhdCktPm5leHQpOworLQorLSAgICAgIGhhdmVhbnN3ZXIgPSAxOworICAgICB9 CisgCisgICBpZiAoaGF2ZWFuc3dlcikKKyAgICAgeworLSAgICAgICpwYXRwID0gcGF0OworLSAg ICAgICpidWZmZXJwID0gYnVmZmVyOworLSAgICAgICpidWZsZW5wID0gYnVmbGVuOworLQorICAg ICAgICpoX2Vycm5vcCA9IE5FVERCX1NVQ0NFU1M7CisgICAgICAgcmV0dXJuIE5TU19TVEFUVVNf U1VDQ0VTUzsKKyAgICAgfQorLQorLSAgLyogU3BlY2lhbCBjYXNlIGhlcmU6IGlmIHRoZSByZXNv bHZlciBzZW50IGEgcmVzdWx0IGJ1dCBpdCBvbmx5CistICAgICBjb250YWlucyBhIENOQU1FIHdo aWxlIHdlIGFyZSBsb29raW5nIGZvciBhIFRfQSBvciBUX0FBQUEgcmVjb3JkLAorLSAgICAgd2Ug ZmFpbCB3aXRoIE5PVEZPVU5EIGluc3RlYWQgb2YgVFJZQUdBSU4uICAqLworLSAgaWYgKGNhbm9u ICE9IE5VTEwpCisrICBlbHNlCisgICAgIHsKKysgICAgICAvKiBTcGVjaWFsIGNhc2UgaGVyZTog aWYgdGhlIHJlc29sdmVyIHNlbnQgYSByZXN1bHQgYnV0IGl0IG9ubHkKKysJIGNvbnRhaW5zIGEg Q05BTUUgd2hpbGUgd2UgYXJlIGxvb2tpbmcgZm9yIGEgVF9BIG9yIFRfQUFBQQorKwkgcmVjb3Jk LCB3ZSBmYWlsIHdpdGggTk9URk9VTkQuICAqLworICAgICAgICpoX2Vycm5vcCA9IEhPU1RfTk9U X0ZPVU5EOworICAgICAgIHJldHVybiBOU1NfU1RBVFVTX05PVEZPVU5EOworICAgICB9CistCist ICAqaF9lcnJub3AgPSBORVREQl9JTlRFUk5BTDsKKy0gIHJldHVybiBOU1NfU1RBVFVTX1RSWUFH QUlOOworIH0KKyAKKyAKKyBzdGF0aWMgZW51bSBuc3Nfc3RhdHVzCistZ2FpaF9nZXRhbnN3ZXIg KGNvbnN0IHF1ZXJ5YnVmICphbnN3ZXIxLCBpbnQgYW5zbGVuMSwgY29uc3QgcXVlcnlidWYgKmFu c3dlcjIsCistCQlpbnQgYW5zbGVuMiwgY29uc3QgY2hhciAqcW5hbWUsCistCQlzdHJ1Y3QgZ2Fp aF9hZGRydHVwbGUgKipwYXQsIGNoYXIgKmJ1ZmZlciwgc2l6ZV90IGJ1ZmxlbiwKKytnYWloX2dl dGFuc3dlciAodW5zaWduZWQgY2hhciAqcGFja2V0MSwgc2l6ZV90IHBhY2tldDFsZW4sCisrCQl1 bnNpZ25lZCBjaGFyICpwYWNrZXQyLCBzaXplX3QgcGFja2V0MmxlbiwKKysJCXN0cnVjdCBhbGxv Y19idWZmZXIgKmFidWYsIHN0cnVjdCBnYWloX2FkZHJ0dXBsZSAqKnBhdCwKKyAJCWludCAqZXJy bm9wLCBpbnQgKmhfZXJybm9wLCBpbnQzMl90ICp0dGxwKQorIHsKKy0gIGludCBmaXJzdCA9IDE7 CistCisgICBlbnVtIG5zc19zdGF0dXMgc3RhdHVzID0gTlNTX1NUQVRVU19OT1RGT1VORDsKKyAK KyAgIC8qIENvbWJpbmluZyB0aGUgTlNTIHN0YXR1cyBvZiB0d28gZGlzdGluY3QgcXVlcmllcyBy ZXF1aXJlcyBzb21lCitAQCAtMTE1Niw3ICsxMDQ1LDEwIEBAIGdhaWhfZ2V0YW5zd2VyIChjb25z dCBxdWVyeWJ1ZiAqYW5zd2VyMSwgaW50IGFuc2xlbjEsIGNvbnN0IHF1ZXJ5YnVmICphbnN3ZXIy LAorICAgICAgYmV0d2VlbiBUUllBR0FJTiAocmVjb3ZlcmFibGUpIGFuZCBUUllBR0FJTicgKG5v dC1yZWNvdmVyYWJsZSkuCisgICAgICBBIHJlY292ZXJhYmxlIFRSWUFHQUlOIGlzIGFsbW9zdCBh bHdheXMgZHVlIHRvIGJ1ZmZlciBzaXplIGlzc3VlcworICAgICAgYW5kIHJldHVybnMgRVJBTkdF IGluIGVycm5vIGFuZCB0aGUgY2FsbGVyIGlzIGV4cGVjdGVkIHRvIHJldHJ5CistICAgICB3aXRo IGEgbGFyZ2VyIGJ1ZmZlci4KKysgICAgIHdpdGggYSBsYXJnZXIgYnVmZmVyLiAgKFRoZSBjYWxs ZXIsIF9uc3NfZG5zX2dldGhvc3RieW5hbWU0X3IsCisrICAgICBpZ25vcmVzIHRoZSByZXR1cm4g c3RhdHVzIGlmIGl0IGRldGVjdHMgdGhhdCB0aGUgcmVzdWx0IGJ1ZmZlcgorKyAgICAgaGFzIGJl ZW4gZXhoYXVzdGVkIGFuZCBnZW5lcmF0ZXMgYSBUUllBR0FJTiBmYWlsdXJlIHdpdGggYW4KKysg ICAgIEVSQU5HRSBjb2RlLikKKyAKKyAgICAgIExhc3RseSwgeW91IG1heSBiZSB0ZW1wdGVkIHRv IG1ha2Ugc2lnbmlmaWNhbnQgY2hhbmdlcyB0byB0aGUKKyAgICAgIGNvbmRpdGlvbnMgaW4gdGhp cyBjb2RlIHRvIGJyaW5nIGFib3V0IHN5bW1ldHJ5IGJldHdlZW4gcmVzcG9uc2VzLgorQEAgLTEy MzYsMzYgKzExMjgsMzAgQEAgZ2FpaF9nZXRhbnN3ZXIgKGNvbnN0IHF1ZXJ5YnVmICphbnN3ZXIx LCBpbnQgYW5zbGVuMSwgY29uc3QgcXVlcnlidWYgKmFuc3dlcjIsCisgCSBpcyBhIHJlY292ZXJh YmxlIGVycm9yIHdlIG5vdyByZXR1cm4gVFJZQUdJTiBldmVuIGlmIHRoZSBmaXJzdAorIAkgcmVz cG9uc2Ugd2FzIFNVQ0NFU1MuICAqLworIAorLSAgaWYgKGFuc2xlbjEgPiAwKQorLSAgICBzdGF0 dXMgPSBnYWloX2dldGFuc3dlcl9zbGljZShhbnN3ZXIxLCBhbnNsZW4xLCBxbmFtZSwKKy0JCQkJ ICAmcGF0LCAmYnVmZmVyLCAmYnVmbGVuLAorLQkJCQkgIGVycm5vcCwgaF9lcnJub3AsIHR0bHAs CistCQkJCSAgJmZpcnN0KTsKKy0KKy0gIGlmICgoc3RhdHVzID09IE5TU19TVEFUVVNfU1VDQ0VT UyB8fCBzdGF0dXMgPT0gTlNTX1NUQVRVU19OT1RGT1VORAorLSAgICAgICB8fCAoc3RhdHVzID09 IE5TU19TVEFUVVNfVFJZQUdBSU4KKy0JICAgLyogV2Ugd2FudCB0byBsb29rIGF0IHRoZSBzZWNv bmQgYW5zd2VyIGluIGNhc2Ugb2YgYW4KKy0JICAgICAgTlNTX1NUQVRVU19UUllBR0FJTiBvbmx5 IGlmIHRoZSBlcnJvciBpcyBub24tcmVjb3ZlcmFibGUsIGkuZS4KKy0JICAgICAgKmhfZXJybm9w IGlzIE5PX1JFQ09WRVJZLiBJZiBub3QsIGFuZCBpZiB0aGUgZmFpbHVyZSB3YXMgZHVlIHRvCist CSAgICAgIGFuIGluc3VmZmljaWVudCBidWZmZXIgKEVSQU5HRSksIHRoZW4gd2UgbmVlZCB0byBk cm9wIHRoZSByZXN1bHRzCistCSAgICAgIGFuZCBwYXNzIG9uIHRoZSBOU1NfU1RBVFVTX1RSWUFH QUlOIHRvIHRoZSBjYWxsZXIgc28gdGhhdCBpdCBjYW4KKy0JICAgICAgcmVwZWF0IHRoZSBxdWVy eSB3aXRoIGEgbGFyZ2VyIGJ1ZmZlci4gICovCistCSAgICYmICgqZXJybm9wICE9IEVSQU5HRSB8 fCAqaF9lcnJub3AgPT0gTk9fUkVDT1ZFUlkpKSkKKy0gICAgICAmJiBhbnN3ZXIyICE9IE5VTEwg JiYgYW5zbGVuMiA+IDApCisrICBpZiAocGFja2V0MWxlbiA+IDApCisgICAgIHsKKy0gICAgICBl bnVtIG5zc19zdGF0dXMgc3RhdHVzMiA9IGdhaWhfZ2V0YW5zd2VyX3NsaWNlKGFuc3dlcjIsIGFu c2xlbjIsIHFuYW1lLAorLQkJCQkJCSAgICAgJnBhdCwgJmJ1ZmZlciwgJmJ1ZmxlbiwKKy0JCQkJ CQkgICAgIGVycm5vcCwgaF9lcnJub3AsIHR0bHAsCistCQkJCQkJICAgICAmZmlyc3QpOworKyAg ICAgIHN0YXR1cyA9IGdhaWhfZ2V0YW5zd2VyX3NsaWNlIChwYWNrZXQxLCBwYWNrZXQxbGVuLAor KwkJCQkgICAgIGFidWYsICZwYXQsIGVycm5vcCwgaF9lcnJub3AsIHR0bHAsIHRydWUpOworKyAg ICAgIGlmIChhbGxvY19idWZmZXJfaGFzX2ZhaWxlZCAoYWJ1ZikpCisrCS8qIERvIG5vdCB0cnkg cGFyc2luZyB0aGUgc2Vjb25kIHBhY2tldCBpZiBhIGxhcmdlciByZXN1bHQKKysJICAgYnVmZmVy IGlzIG5lZWRlZC4gIFRoZSBjYWxsZXIgaW1wbGVtZW50cyB0aGUgcmVzaXppbmcKKysJICAgcHJv dG9jb2wgYmVjYXVzZSAqYWJ1ZiBoYXMgYmVlbiBleGhhdXN0ZWQuICAqLworKwlyZXR1cm4gTlNT X1NUQVRVU19UUllBR0FJTjsgLyogSWdub3JlZCBieSB0aGUgY2FsbGVyLiAgKi8KKysgICAgfQor KworKyAgaWYgKChzdGF0dXMgPT0gTlNTX1NUQVRVU19TVUNDRVNTIHx8IHN0YXR1cyA9PSBOU1Nf U1RBVFVTX05PVEZPVU5EKQorKyAgICAgICYmIHBhY2tldDIgIT0gTlVMTCAmJiBwYWNrZXQybGVu ID4gMCkKKysgICAgeworKyAgICAgIGVudW0gbnNzX3N0YXR1cyBzdGF0dXMyCisrCT0gZ2FpaF9n ZXRhbnN3ZXJfc2xpY2UgKHBhY2tldDIsIHBhY2tldDJsZW4sCisrCQkJCWFidWYsICZwYXQsIGVy cm5vcCwgaF9lcnJub3AsIHR0bHAsCisrCQkJCS8qIFN1Y2Nlc3MgbWVhbnMgdGhhdCBkYXRhIHdp dGggYQorKwkJCQkgICBjYW5vbmljYWwgbmFtZSBoYXMgYWxyZWFkeSBiZWVuCisrCQkJCSAgIHN0 b3JlZC4gIERvIG5vdCBzdG9yZSB0aGUgbmFtZSBhZ2Fpbi4gICovCisrCQkJCXN0YXR1cyAhPSBO U1NfU1RBVFVTX1NVQ0NFU1MpOworICAgICAgIC8qIFVzZSB0aGUgc2Vjb25kIHJlc3BvbnNlIHN0 YXR1cyBpbiBzb21lIGNhc2VzLiAgKi8KKyAgICAgICBpZiAoc3RhdHVzICE9IE5TU19TVEFUVVNf U1VDQ0VTUyAmJiBzdGF0dXMyICE9IE5TU19TVEFUVVNfTk9URk9VTkQpCisgCXN0YXR1cyA9IHN0 YXR1czI7CistICAgICAgLyogRG8gbm90IHJldHVybiBhIHRydW5jYXRlZCBzZWNvbmQgcmVzcG9u c2UgKHVubGVzcyBpdCB3YXMKKy0JIHVuYXZvaWRhYmxlIGUuZy4gdW5yZWNvdmVyYWJsZSBUUllB R0FJTikuICAqLworLSAgICAgIGlmIChzdGF0dXMgPT0gTlNTX1NUQVRVU19TVUNDRVNTCistCSAg JiYgKHN0YXR1czIgPT0gTlNTX1NUQVRVU19UUllBR0FJTgorLQkgICAgICAmJiAqZXJybm9wID09 IEVSQU5HRSAmJiAqaF9lcnJub3AgIT0gTk9fUkVDT1ZFUlkpKQorLQlzdGF0dXMgPSBOU1NfU1RB VFVTX1RSWUFHQUlOOworICAgICB9CisgCisgICByZXR1cm4gc3RhdHVzOworQEAgLTEyNzMsMTgg KzExNTksMTMgQEAgZ2FpaF9nZXRhbnN3ZXIgKGNvbnN0IHF1ZXJ5YnVmICphbnN3ZXIxLCBpbnQg YW5zbGVuMSwgY29uc3QgcXVlcnlidWYgKmFuc3dlcjIsCisgCisgLyogVmFyaWFudCBvZiBnYWlo X2dldGFuc3dlciB3aXRob3V0IGEgc2Vjb25kIChBQUFBKSByZXNwb25zZS4gICovCisgc3RhdGlj IGVudW0gbnNzX3N0YXR1cworLWdhaWhfZ2V0YW5zd2VyX25vYWFhYSAoY29uc3QgcXVlcnlidWYg KmFuc3dlcjEsIGludCBhbnNsZW4xLCBjb25zdCBjaGFyICpxbmFtZSwKKy0JCSAgICAgICBzdHJ1 Y3QgZ2FpaF9hZGRydHVwbGUgKipwYXQsCistCQkgICAgICAgY2hhciAqYnVmZmVyLCBzaXplX3Qg YnVmbGVuLAorK2dhaWhfZ2V0YW5zd2VyX25vYWFhYSAodW5zaWduZWQgY2hhciAqcGFja2V0LCBz aXplX3QgcGFja2V0bGVuLAorKwkJICAgICAgIHN0cnVjdCBhbGxvY19idWZmZXIgKmFidWYsIHN0 cnVjdCBnYWloX2FkZHJ0dXBsZSAqKnBhdCwKKyAJCSAgICAgICBpbnQgKmVycm5vcCwgaW50ICpo X2Vycm5vcCwgaW50MzJfdCAqdHRscCkKKyB7CistICBpbnQgZmlyc3QgPSAxOworLQorICAgZW51 bSBuc3Nfc3RhdHVzIHN0YXR1cyA9IE5TU19TVEFUVVNfTk9URk9VTkQ7CistICBpZiAoYW5zbGVu MSA+IDApCistICAgIHN0YXR1cyA9IGdhaWhfZ2V0YW5zd2VyX3NsaWNlIChhbnN3ZXIxLCBhbnNs ZW4xLCBxbmFtZSwKKy0JCQkJICAgJnBhdCwgJmJ1ZmZlciwgJmJ1ZmxlbiwKKy0JCQkJICAgZXJy bm9wLCBoX2Vycm5vcCwgdHRscCwKKy0JCQkJICAgJmZpcnN0KTsKKysgIGlmIChwYWNrZXRsZW4g PiAwKQorKyAgICBzdGF0dXMgPSBnYWloX2dldGFuc3dlcl9zbGljZSAocGFja2V0LCBwYWNrZXRs ZW4sCisrCQkJCSAgIGFidWYsICZwYXQsIGVycm5vcCwgaF9lcnJub3AsIHR0bHAsIHRydWUpOwor ICAgcmV0dXJuIHN0YXR1czsKKyB9CistLSAKKzIuMzguMQorCisKK0Zyb20gYTdmYTYwNGYzMDUw YTEwMjRkYzhlYzI4ZmYyOGJhZDgxMWY2MTUxZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy b206IEZsb3JpYW4gV2VpbWVyIDxmd2VpbWVyQHJlZGhhdC5jb20+CitEYXRlOiBUdWUsIDMwIEF1 ZyAyMDIyIDEzOjMwOjAzICswMjAwCitTdWJqZWN0OiByZXNvbHY6IEZpeCBidWlsZGluZyB0c3Qt cmVzb2x2LWludmFsaWQtY25hbWUgZm9yIGVhcmxpZXIgQyBzdGFuZGFyZHMKK01JTUUtVmVyc2lv bjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQt VHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworVGhpcyBmaXhlcyB0aGlzIGNvbXBpbGVyIGVycm9y OgorCit0c3QtcmVzb2x2LWludmFsaWQtY25hbWUuYzogSW4gZnVuY3Rpb24g4oCYdGVzdF9tb2Rl X3RvX3N0cmluZ+KAmToKK3RzdC1yZXNvbHYtaW52YWxpZC1jbmFtZS5jOjE2NDoxMDogZXJyb3I6 IGxhYmVsIGF0IGVuZCBvZiBjb21wb3VuZCBzdGF0ZW1lbnQKKyAgICAgY2FzZSB0ZXN0X21vZGVf bnVtOgorICAgICAgICAgIF5+fn5+fn5+fn5+fn4KKworRml4ZXMgY29tbWl0IDljYWY3ODIyNzZl Y2VhNGJjODZmYzk0ZmJiNTI3Nzk3MzZmMzEwNmQKKygicmVzb2x2OiBBZGQgbmV3IHRzdC1yZXNv bHYtaW52YWxpZC1jbmFtZSIpLgorCisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBkMDlhYTRh MTcyMjliY2FhMmVjNzY0MjAwNmIxMjYxMjQ5ODU4MmU3KQorLS0tCisgcmVzb2x2L3RzdC1yZXNv bHYtaW52YWxpZC1jbmFtZS5jIHwgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigr KSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvcmVzb2x2L3RzdC1yZXNvbHYtaW52YWxp ZC1jbmFtZS5jIGIvcmVzb2x2L3RzdC1yZXNvbHYtaW52YWxpZC1jbmFtZS5jCitpbmRleCBhZTJk NDQxOWIxLi42M2RhYzkwZTAyIDEwMDY0NAorLS0tIGEvcmVzb2x2L3RzdC1yZXNvbHYtaW52YWxp ZC1jbmFtZS5jCisrKysgYi9yZXNvbHYvdHN0LXJlc29sdi1pbnZhbGlkLWNuYW1lLmMKK0BAIC0x NjIsNyArMTYyLDcgQEAgdGVzdF9tb2RlX3RvX3N0cmluZyAoZW51bSB0ZXN0X21vZGUgbW9kZSkK KyAgICAgY2FzZSBnYWlfY2Fub246CisgICAgICAgcmV0dXJuICJnYWlfY2Fub24iOworICAgICBj YXNlIHRlc3RfbW9kZV9udW06CistICAgICAgLyogUmVwb3J0IGVycm9yIGJlbG93LiAgKi8KKysg ICAgICBicmVhazsgICAgICAgICAgICAgICAgICAgIC8qIFJlcG9ydCBlcnJvciBiZWxvdy4gICov CisgICAgIH0KKyAgIEZBSUxfRVhJVDEgKCJpbnZhbGlkIHRlc3RfbW9kZTogJWQiLCBtb2RlKTsK KyB9CistLSAKKzIuMzguMQorCisKK0Zyb20gNWQ4ODU2MTdjZWM1NzEzZmRkZTQyMTc3Mzk4ZmU5 OGFjYjY2YjdhMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEZsb3JpYW4gV2VpbWVy IDxmd2VpbWVyQHJlZGhhdC5jb20+CitEYXRlOiBUdWUsIDEzIFNlcCAyMDIyIDEzOjIyOjI3ICsw MjAwCitTdWJqZWN0OiBORVdTOiBOb3RlIGJ1ZyAxMjE1NCBhbmQgYnVnIDI5MzA1IGFzIGZpeGVk CisKKy0tLQorIE5FV1MgfCAyICsrCisgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQor CitkaWZmIC0tZ2l0IGEvTkVXUyBiL05FV1MKK2luZGV4IDkzNjA1OTZmY2MuLjAzMjgxZTNhYjQg MTAwNjQ0CistLS0gYS9ORVdTCisrKysgYi9ORVdTCitAQCAtMTYsNyArMTYsOSBAQCBTZWN1cml0 eSByZWxhdGVkIGNoYW5nZXM6CisgCisgVGhlIGZvbGxvd2luZyBidWdzIGFyZSByZXNvbHZlZCB3 aXRoIHRoaXMgcmVsZWFzZToKKyAKKysgIFsxMjE1NF0gRG8gbm90IGZhaWwgRE5TIHJlc29sdXRp b24gZm9yIENOQU1FcyB3aGljaCBhcmUgbm90IGhvc3QgbmFtZXMKKyAgIFsyODg0Nl0gQ01TR19O WFRIRFIgbWF5IHRyaWdnZXIgLVdzdHJpY3Qtb3ZlcmZsb3cgd2FybmluZworKyAgWzI5MzA1XSBD b25zZXJ2ZSBOU1MgYnVmZmVyIHNwYWNlIGR1cmluZyBETlMgcGFja2V0IHBhcnNpbmcKKyAgIFsy OTQxNV0gbnNjZDogRml4IG5ldGxpbmsgY2FjaGUgaW52YWxpZGF0aW9uIGlmIGVwb2xsIGlzIHVz ZWQKKyAgIFsyOTQ0Nl0gX2Rsb3BlbiBub3cgaWdub3JlcyBkbF9jYWxsZXIgYXJndW1lbnQgaW4g c3RhdGljIG1vZGUKKyAgIFsyOTQ4NV0gTGludXg6IFRlcm1pbmF0ZSBzdWJwcm9jZXNzIG9uIGxh dGUgZmFpbHVyZSBpbiB0c3QtcGlkZmQKKy0tIAorMi4zOC4xCisKKworRnJvbSBkZjUxMzM0ODI4 ZjJhZjIxNDEwNWFhZDgyMDQyMTQwZWUzYTZkZTBhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQor RnJvbTogRmxvcmlhbiBXZWltZXIgPGZ3ZWltZXJAcmVkaGF0LmNvbT4KK0RhdGU6IFR1ZSwgMTMg U2VwIDIwMjIgMTk6NTc6NDMgKzAyMDAKK1N1YmplY3Q6IGVsZjogUnVuIHRzdC1hdWRpdC10bHNk ZXNjLCB0c3QtYXVkaXQtdGxzZGVzYy1kbG9wZW4gZXZlcnl3aGVyZQorCitUaGUgdGVzdCBpcyB2 YWxpZCBmb3IgYWxsIFRMUyBtb2RlbHMsIGJ1dCB3ZSB3YW50IHRvIG1ha2UgYSByZWFzb25hYmxl CitlZmZvcnQgdG8gdGVzdCB0aGUgR05VMiBtb2RlbCBzcGVjaWZpY2FsbHkuICBGb3IgZXhhbXBs ZSwgYWFyY2g2NAorZGVmYXVsdHMgdG8gR05VMiwgYnV0IGRvZXMgbm90IGhhdmUgLW10bHMtZGlh bGVjdD1nbnUyLCBhbmQgdGhlIHRlc3QKK3dhcyBub3QgcnVuIHRoZXJlLgorCitTdWdnZXN0ZWQt Ynk6IE1hcnRpbiBDb3VmYWwgPG1jb3VmYWxAcmVkaGF0LmNvbT4KKyhjaGVycnkgcGlja2VkIGZy b20gY29tbWl0IGRkMjMxNWE4NjZhNGFjMmI4MzhlYTFjYjEwYzVlYTFjMzVkNTFhMmYpCisKK0Zp eGVzIGVhcmx5IGJhY2twb3J0IGNvbW1pdCA5MjRlNGYzZWFhNTAyY2U4MmZjY2Y4NTM3ZjAyMWE3 OTZkMTU4NzcxCisoImVsZjogQ2FsbCBfX2xpYmNfZWFybHlfaW5pdCBmb3IgcmV1c2VkIG5hbWVz cGFjZXMgKGJ1ZyAyOTUyOCkiKTsKK2l0IGhhZCBhIHdyb25nIGNvbmZsaWN0IHJlc29sdXRpb24u CistLS0KKyBlbGYvTWFrZWZpbGUgfCAyMiArKysrKystLS0tLS0tLS0tLS0tLS0tCisgMSBmaWxl IGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQg YS9lbGYvTWFrZWZpbGUgYi9lbGYvTWFrZWZpbGUKK2luZGV4IDQzMzUzYTRiMDguLjcyMTc4ZDMz ZmYgMTAwNjQ0CistLS0gYS9lbGYvTWFrZWZpbGUKKysrKyBiL2VsZi9NYWtlZmlsZQorQEAgLTM3 NCw2ICszNzQsOCBAQCB0ZXN0cyArPSBcCisgICB0c3QtYWxpZ24gXAorICAgdHN0LWFsaWduMiBc CisgICB0c3QtYWxpZ24zIFwKKysgIHRzdC1hdWRpdC10bHNkZXNjIFwKKysgIHRzdC1hdWRpdC10 bHNkZXNjLWRsb3BlbiBcCisgICB0c3QtYXVkaXQxIFwKKyAgIHRzdC1hdWRpdDIgXAorICAgdHN0 LWF1ZGl0OCBcCitAQCAtNzY2LDYgKzc2OCw4IEBAIG1vZHVsZXMtbmFtZXMgKz0gXAorICAgdHN0 LWFsaWdubW9kMyBcCisgICB0c3QtYXJyYXkyZGVwIFwKKyAgIHRzdC1hcnJheTVkZXAgXAorKyAg dHN0LWF1ZGl0LXRsc2Rlc2MtbW9kMSBcCisrICB0c3QtYXVkaXQtdGxzZGVzYy1tb2QyIFwKKyAg IHRzdC1hdWRpdDExbW9kMSBcCisgICB0c3QtYXVkaXQxMW1vZDIgXAorICAgdHN0LWF1ZGl0MTJt b2QxIFwKK0BAIC03OTksNiArODAzLDcgQEAgbW9kdWxlcy1uYW1lcyArPSBcCisgICB0c3QtYXVk aXRtYW55bW9kNyBcCisgICB0c3QtYXVkaXRtYW55bW9kOCBcCisgICB0c3QtYXVkaXRtYW55bW9k OSBcCisrICB0c3QtYXVkaXRtb2QtdGxzZGVzYyAgXAorICAgdHN0LWF1ZGl0bW9kMSBcCisgICB0 c3QtYXVkaXRtb2Q5YSBcCisgICB0c3QtYXVkaXRtb2Q5YiBcCitAQCAtOTkzLDIzICs5OTgsOCBA QCBtb2R1bGVzLW5hbWVzICs9IHRzdC1nbnUyLXRsczFtb2QKKyAkKG9ianBmeCl0c3QtZ251Mi10 bHMxOiAkKG9ianBmeCl0c3QtZ251Mi10bHMxbW9kLnNvCisgdHN0LWdudTItdGxzMW1vZC5zby1u by16LWRlZnMgPSB5ZXMKKyBDRkxBR1MtdHN0LWdudTItdGxzMW1vZC5jICs9IC1tdGxzLWRpYWxl Y3Q9Z251MgorK2VuZGlmICMgJChoYXZlLW10bHMtZGlhbGVjdC1nbnUyKQorIAorLXRlc3RzICs9 IHRzdC1hdWRpdC10bHNkZXNjIHRzdC1hdWRpdC10bHNkZXNjLWRsb3BlbgorLW1vZHVsZXMtbmFt ZXMgKz0gdHN0LWF1ZGl0LXRsc2Rlc2MtbW9kMSB0c3QtYXVkaXQtdGxzZGVzYy1tb2QyIHRzdC1h dWRpdG1vZC10bHNkZXNjCistJChvYmpwZngpdHN0LWF1ZGl0LXRsc2Rlc2M6ICQob2JqcGZ4KXRz dC1hdWRpdC10bHNkZXNjLW1vZDEuc28gXAorLQkJCSAgICAkKG9ianBmeCl0c3QtYXVkaXQtdGxz ZGVzYy1tb2QyLnNvIFwKKy0JCQkgICAgJChzaGFyZWQtdGhyZWFkLWxpYnJhcnkpCistQ0ZMQUdT LXRzdC1hdWRpdC10bHNkZXNjLW1vZDEuYyArPSAtbXRscy1kaWFsZWN0PWdudTIKKy1DRkxBR1Mt dHN0LWF1ZGl0LXRsc2Rlc2MtbW9kMi5jICs9IC1tdGxzLWRpYWxlY3Q9Z251MgorLSQob2JqcGZ4 KXRzdC1hdWRpdC10bHNkZXNjLWRsb3BlbjogJChzaGFyZWQtdGhyZWFkLWxpYnJhcnkpCistJChv YmpwZngpdHN0LWF1ZGl0LXRsc2Rlc2MtZGxvcGVuLm91dDogJChvYmpwZngpdHN0LWF1ZGl0LXRs c2Rlc2MtbW9kMS5zbyBcCistCQkJCSAgICAgICAkKG9ianBmeCl0c3QtYXVkaXQtdGxzZGVzYy1t b2QyLnNvCistJChvYmpwZngpdHN0LWF1ZGl0LXRsc2Rlc2MtbW9kMS5zbzogJChvYmpwZngpdHN0 LWF1ZGl0LXRsc2Rlc2MtbW9kMi5zbworLSQob2JqcGZ4KXRzdC1hdWRpdC10bHNkZXNjLm91dDog JChvYmpwZngpdHN0LWF1ZGl0bW9kLXRsc2Rlc2Muc28KKy10c3QtYXVkaXQtdGxzZGVzYy1FTlYg PSBMRF9BVURJVD0kKG9ianBmeCl0c3QtYXVkaXRtb2QtdGxzZGVzYy5zbworLSQob2JqcGZ4KXRz dC1hdWRpdC10bHNkZXNjLWRsb3Blbi5vdXQ6ICQob2JqcGZ4KXRzdC1hdWRpdG1vZC10bHNkZXNj LnNvCistdHN0LWF1ZGl0LXRsc2Rlc2MtZGxvcGVuLUVOViA9IExEX0FVRElUPSQob2JqcGZ4KXRz dC1hdWRpdG1vZC10bHNkZXNjLnNvCistZW5kaWYKKyBpZmVxICh5ZXMsJChoYXZlLXByb3RlY3Rl ZC1kYXRhKSkKKyBtb2R1bGVzLW5hbWVzICs9IHRzdC1wcm90ZWN0ZWQxbW9kYSB0c3QtcHJvdGVj dGVkMW1vZGIKKyB0ZXN0cyArPSB0c3QtcHJvdGVjdGVkMWEgdHN0LXByb3RlY3RlZDFiCistLSAK KzIuMzguMQorCisKK0Zyb20gNGI5NWI2ZThiYmI1YTJiNjg1NmY3MDdiZjNiYzMzMDhlYmVmNTk1 YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEphdmllciBQZWxsbyA8ZGV2ZWxAb3Ro ZW8uZXU+CitEYXRlOiBNb24sIDUgU2VwIDIwMjIgMjA6MDk6MDEgKzAyMDAKK1N1YmplY3Q6IGVs ZjogRml4IGh3Y2FwcyBzdHJpbmcgc2l6ZSBvdmVyZXN0aW1hdGlvbgorCitDb21taXQgZGFkOTBk NTI4MjU5YjY2OTM0Mjc1N2MzN2RlZGVmYTg1NzdlMjYzNiBhZGRlZCBnbGliYy1od2NhcHMKK3N1 cHBvcnQgZm9yIExEX0xJQlJBUllfUEFUSCBhbmQsIGZvciB0aGlzLCBpdCBhZGp1c3RlZCB0aGUg dG90YWwKK3N0cmluZyBzaXplIHJlcXVpcmVkIGluIF9kbF9pbXBvcnRhbnRfaHdjYXBzLiBIb3dl dmVyLCBpbiBkb2luZyBzbworaXQgaW5hZHZlcnRlbnRseSBhbHRlcmVkIHRoZSBjYWxjdWxhdGlv biBvZiB0aGUgc2l6ZSByZXF1aXJlZCBmb3IKK3RoZSBwb3dlciBzZXQgc3RyaW5ncywgYXMgdGhl IGNvbXB1dGF0aW9uIG9mIHRoZSBwb3dlciBzZXQgc3RyaW5nCitzaXplIGRlcGVuZGVkIG9uIHRo ZSBmaXJzdCB2YWx1ZSBhc3NpZ25lZCB0byB0aGUgdG90YWwgdmFyaWFibGUsCit3aGljaCBpcyBs YXRlciBzaGlmdGVkLCByZXN1bHRpbmcgaW4gb3ZlcmFsbG9jYXRpb24gb2Ygc3RyaW5nCitzcGFj ZS4gRml4IHRoaXMgbm93IGJ5IHVzaW5nIGEgZGlmZmVyZW50IHZhcmlhYmxlIHRvIGhvbGQgdGhl CitzdHJpbmcgc2l6ZSByZXF1aXJlZCBmb3IgZ2xpYmMtaHdjYXBzLgorCitTaWduZWQtb2ZmLWJ5 OiBKYXZpZXIgUGVsbG8gPGRldmVsQG90aGVvLmV1PgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21t aXQgYTIzODIwZjYwNTJhNzQwMjQ2ZmRjN2RjZDljNDNjZThlZWQwYzQ1YSkKKy0tLQorIGVsZi9k bC1od2NhcHMuYyB8IDggKysrKystLS0KKyAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCsp LCAzIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZWxmL2RsLWh3Y2Fwcy5jIGIvZWxmL2Rs LWh3Y2Fwcy5jCitpbmRleCA2ZjE2MWY2YWQ1Li45MmViNTM3OTBlIDEwMDY0NAorLS0tIGEvZWxm L2RsLWh3Y2Fwcy5jCisrKysgYi9lbGYvZGwtaHdjYXBzLmMKK0BAIC0xOTMsNyArMTkzLDcgQEAg X2RsX2ltcG9ydGFudF9od2NhcHMgKGNvbnN0IGNoYXIgKmdsaWJjX2h3Y2Fwc19wcmVwZW5kLAor ICAgLyogRWFjaCBod2NhcHMgc3ViZGlyZWN0b3J5IGhhcyBhIEdMSUJDX0hXQ0FQU19QUkVGSVgg c3RyaW5nIHByZWZpeAorICAgICAgYW5kIGEgIi8iIHN1ZmZpeCBvbmNlIHN0b3JlZCBpbiB0aGUg cmVzdWx0LiAgKi8KKyAgIGh3Y2Fwc19jb3VudHMubWF4aW11bV9sZW5ndGggKz0gc3RybGVuIChH TElCQ19IV0NBUFNfUFJFRklYKSArIDE7CistICBzaXplX3QgdG90YWwgPSAoaHdjYXBzX2NvdW50 cy5jb3VudCAqIChzdHJsZW4gKEdMSUJDX0hXQ0FQU19QUkVGSVgpICsgMSkKKysgIHNpemVfdCBo d2NhcHNfc3ogPSAoaHdjYXBzX2NvdW50cy5jb3VudCAqIChzdHJsZW4gKEdMSUJDX0hXQ0FQU19Q UkVGSVgpICsgMSkKKyAJCSAgKyBod2NhcHNfY291bnRzLnRvdGFsX2xlbmd0aCk7CisgCisgICAv KiBDb3VudCB0aGUgbnVtYmVyIG9mIGJpdHMgc2V0IGluIHRoZSBtYXNrZWQgdmFsdWUuICAqLwor QEAgLTIyOSwxMSArMjI5LDEyIEBAIF9kbF9pbXBvcnRhbnRfaHdjYXBzIChjb25zdCBjaGFyICpn bGliY19od2NhcHNfcHJlcGVuZCwKKyAgIGFzc2VydCAobSA9PSBjbnQpOworIAorICAgLyogRGV0 ZXJtaW5lIHRoZSB0b3RhbCBzaXplIG9mIGFsbCBzdHJpbmdzIHRvZ2V0aGVyLiAgKi8KKysgIHNp emVfdCB0b3RhbDsKKyAgIGlmIChjbnQgPT0gMSkKKy0gICAgdG90YWwgKz0gdGVtcFswXS5sZW4g KyAxOworKyAgICB0b3RhbCA9IHRlbXBbMF0ubGVuICsgMTsKKyAgIGVsc2UKKyAgICAgeworLSAg ICAgIHRvdGFsICs9IHRlbXBbMF0ubGVuICsgdGVtcFtjbnQgLSAxXS5sZW4gKyAyOworKyAgICAg IHRvdGFsID0gdGVtcFswXS5sZW4gKyB0ZW1wW2NudCAtIDFdLmxlbiArIDI7CisgICAgICAgaWYg KGNudCA+IDIpCisgCXsKKyAJICB0b3RhbCA8PD0gMTsKK0BAIC0yNTUsNiArMjU2LDcgQEAgX2Rs X2ltcG9ydGFudF9od2NhcHMgKGNvbnN0IGNoYXIgKmdsaWJjX2h3Y2Fwc19wcmVwZW5kLAorICAg LyogVGhpcyBpcyB0aGUgb3ZlcmFsbCByZXN1bHQsIGluY2x1ZGluZyBib3RoIGdsaWJjLWh3Y2Fw cworICAgICAgc3ViZGlyZWN0b3JpZXMgYW5kIHRoZSBsZWdhY3kgaHdjYXBzIHN1YmRpcmVjdG9y aWVzIHVzaW5nIHRoZQorICAgICAgcG93ZXIgc2V0IGNvbnN0cnVjdGlvbi4gICovCisrICB0b3Rh bCArPSBod2NhcHNfc3o7CisgICBzdHJ1Y3Qgcl9zdHJsZW5wYWlyICpvdmVyYWxsX3Jlc3VsdAor ICAgICA9IG1hbGxvYyAoKnN6ICogc2l6ZW9mICgqcmVzdWx0KSArIHRvdGFsKTsKKyAgIGlmIChv dmVyYWxsX3Jlc3VsdCA9PSBOVUxMKQorLS0gCisyLjM4LjEKKworCitGcm9tIDdhM2Y4YzhhN2Fl YjQxZDRiYmZlZWMwN2QwYmUxZTkyYzMwMTk5MTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitG cm9tOiBGbG9yaWFuIFdlaW1lciA8ZndlaW1lckByZWRoYXQuY29tPgorRGF0ZTogVHVlLCA2IFNl cCAyMDIyIDA3OjM4OjEwICswMjAwCitTdWJqZWN0OiBzY3JpcHRzL2Rzby1vcmRlcmluZy10ZXN0 LnB5OiBHZW5lcmF0ZSBwcm9ncmFtIHJ1bi10aW1lIGRlcGVuZGVuY2llcworCitUaGUgbWFpbiBw cm9ncmFtIG5lZWRzIHRvIGRlcGVuZCBvbiBhbGwgc2hhcmVkIG9iamVjdHMsIGV2ZW4gb2JqZWN0 cwordGhhdCBoYXZlIGxpbmstdGltZSBkZXBlbmRlbmNpZXMgYW1vbmcgc2hhcmVkIG9iamVjdHMu ICBGaWx0ZXJpbmcKK291dCBzaGFyZWQgb2JqZWN0cyB0aGF0IGFscmVhZHkgaGF2ZSBhbiBsaW5r LXRpbWUgZGVwZW5kZW5jaWVzIGlzIG5vdAorbmVjZXNzYXJ5IGhlcmU7IG1ha2Ugd2lsbCBkbyB0 aGlzIGF1dG9tYXRpY2FsbHkuCisKK1Jldmlld2VkLWJ5OiBBZGhlbWVydmFsIFphbmVsbGEgIDxh ZGhlbWVydmFsLnphbmVsbGFAbGluYXJvLm9yZz4KKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0 IDE4M2Q5OTczNzI5OGJiMzIwMGYwNjEwZmRjZDFjNzU0OWM4ZWQ1NjApCistLS0KKyBzY3JpcHRz L2Rzby1vcmRlcmluZy10ZXN0LnB5IHwgMTMgKysrKysrLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2Vk LCA2IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zY3JpcHRz L2Rzby1vcmRlcmluZy10ZXN0LnB5IGIvc2NyaXB0cy9kc28tb3JkZXJpbmctdGVzdC5weQoraW5k ZXggMmRkNmJmZGExOC4uYjg3Y2YyZjgwOSAxMDA2NDQKKy0tLSBhL3NjcmlwdHMvZHNvLW9yZGVy aW5nLXRlc3QucHkKKysrKyBiL3NjcmlwdHMvZHNvLW9yZGVyaW5nLXRlc3QucHkKK0BAIC03MDcs MTMgKzcwNywxMiBAQCBkZWYgcHJvY2Vzc190ZXN0Y2FzZSh0KToKKyAgICAgICAgICAgICAgICAg Ilx0JChjb21waWxlLmMpICQoT1VUUFVUX09QVElPTilcbiIpCisgICAgICAgICBtYWtlZmlsZS53 cml0ZSAocnVsZSkKKyAKKy0gICAgICAgIG5vdF9kZXBlbmRlZF9vYmpzID0gZmluZF9vYmpzX25v dF9kZXBlbmRlZF9vbih0ZXN0X2Rlc2NyKQorLSAgICAgICAgaWYgbm90X2RlcGVuZGVkX29ianM6 CistICAgICAgICAgICAgZGVwc3RyID0gIiIKKy0gICAgICAgICAgICBmb3IgZGVwIGluIG5vdF9k ZXBlbmRlZF9vYmpzOgorLSAgICAgICAgICAgICAgICBkZXBzdHIgKz0gKCIgJChvYmpwZngpIiAr IHRlc3Rfc3ViZGlyICsgIi8iCistICAgICAgICAgICAgICAgICAgICAgICAgICAgKyB0ZXN0X25h bWUgKyAiLSIgKyBkZXAgKyAiLnNvIikKKy0gICAgICAgICAgICBtYWtlZmlsZS53cml0ZSgiJChv YmpwZngpJXMub3V0OiVzXG4iICUgKGJhc2VfdGVzdF9uYW1lLCBkZXBzdHIpKQorKyAgICAgICAg IyBFbnN1cmUgdGhhdCBhbGwgc2hhcmVkIG9iamVjdHMgYXJlIGJ1aWx0IGJlZm9yZSBydW5uaW5n IHRoZQorKyAgICAgICAgIyB0ZXN0LCB3aGV0aGVyIHRoZXJlIGxpbmstdGltZSBkZXBlbmRlbmNp ZXMgb3Igbm90LgorKyAgICAgICAgZGVwb2JqcyA9IFsiJChvYmpwZngpe30ve30te30uc28iLmZv cm1hdCh0ZXN0X3N1YmRpciwgdGVzdF9uYW1lLCBkZXApCisrICAgICAgICAgICAgICAgICAgIGZv ciBkZXAgaW4gdGVzdF9kZXNjci5vYmpzXQorKyAgICAgICAgbWFrZWZpbGUud3JpdGUoIiQob2Jq cGZ4KXt9Lm91dDoge31cbiIuZm9ybWF0KAorKyAgICAgICAgICAgIGJhc2VfdGVzdF9uYW1lLCAi ICIuam9pbihkZXBvYmpzKSkpCisgCisgICAgICAgICAjIEFkZCBtYWluIGV4ZWN1dGFibGUgdG8g dGVzdC1zcmNzCisgICAgICAgICBtYWtlZmlsZS53cml0ZSgidGVzdC1zcmNzICs9ICVzLyVzXG4i ICUgKHRlc3Rfc3ViZGlyLCB0ZXN0X25hbWUpKQorLS0gCisyLjM4LjEKKworCitGcm9tIGQxMjQx Y2YwMDEzOTczM2RlMDY5Yzg0OTMzY2Q1NzZkYzFhMWY0NWUgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCitGcm9tOiBGbG9yaWFuIFdlaW1lciA8ZndlaW1lckByZWRoYXQuY29tPgorRGF0ZTogVHVl LCA2IFNlcCAyMDIyIDA3OjM4OjEwICswMjAwCitTdWJqZWN0OiBlbGY6IFJlbmFtZSBfZGxfc29y dF9tYXBzIHBhcmFtZXRlciBmcm9tIHNraXAgdG8gZm9yY2VfZmlyc3QKKworVGhlIG5ldyBpbXBs ZW1lbnRhdGlvbiB3aWxsIG5vdCBiZSBhYmxlIHRvIHNraXAgYW4gYXJiaXRyYXJ5IG51bWJlcgor b2Ygb2JqZWN0cy4KKworUmV2aWV3ZWQtYnk6IEFkaGVtZXJ2YWwgWmFuZWxsYSAgPGFkaGVtZXJ2 YWwuemFuZWxsYUBsaW5hcm8ub3JnPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgZGJiNzU1 MTNmNWNmOTI4NWM3N2M5ZTU1Nzc3YzVjMzViNjUzZjg5MCkKKy0tLQorIGVsZi9kbC1zb3J0LW1h cHMuYyAgICAgICAgIHwgMTQgKysrKysrKy0tLS0tLS0KKyBzeXNkZXBzL2dlbmVyaWMvbGRzb2Rl ZnMuaCB8ICA2ICsrKystLQorIDIgZmlsZXMgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgOSBk ZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2VsZi9kbC1zb3J0LW1hcHMuYyBiL2VsZi9kbC1z b3J0LW1hcHMuYworaW5kZXggOTY2MzhkN2VkMS4uNWI1NTBiMWU5NCAxMDA2NDQKKy0tLSBhL2Vs Zi9kbC1zb3J0LW1hcHMuYworKysrIGIvZWxmL2RsLXNvcnQtbWFwcy5jCitAQCAtMjcsMTIgKzI3 LDEyIEBACisgICAgSWYgRk9SX0ZJTkkgaXMgdHJ1ZSwgdGhpcyBpcyBjYWxsZWQgZm9yIGZpbmlz aGluZyBhbiBvYmplY3QuICAqLworIHN0YXRpYyB2b2lkCisgX2RsX3NvcnRfbWFwc19vcmlnaW5h bCAoc3RydWN0IGxpbmtfbWFwICoqbWFwcywgdW5zaWduZWQgaW50IG5tYXBzLAorLQkJCXVuc2ln bmVkIGludCBza2lwLCBib29sIGZvcl9maW5pKQorKwkJCWJvb2wgZm9yY2VfZmlyc3QsIGJvb2wg Zm9yX2ZpbmkpCisgeworICAgLyogQWxsb3dzIGNhbGxlciB0byBkbyB0aGUgY29tbW9uIG9wdGlt aXphdGlvbiBvZiBza2lwcGluZyB0aGUgZmlyc3QgbWFwLAorICAgICAgdXN1YWxseSB0aGUgbWFp biBiaW5hcnkuICAqLworLSAgbWFwcyArPSBza2lwOworLSAgbm1hcHMgLT0gc2tpcDsKKysgIG1h cHMgKz0gZm9yY2VfZmlyc3Q7CisrICBubWFwcyAtPSBmb3JjZV9maXJzdDsKKyAKKyAgIC8qIEEg bGlzdCBvZiBvbmUgZWxlbWVudCBuZWVkIG5vdCBiZSBzb3J0ZWQuICAqLworICAgaWYgKG5tYXBz IDw9IDEpCitAQCAtMTgyLDcgKzE4Miw3IEBAIGRmc190cmF2ZXJzYWwgKHN0cnVjdCBsaW5rX21h cCAqKipycG8sIHN0cnVjdCBsaW5rX21hcCAqbWFwLAorIAorIHN0YXRpYyB2b2lkCisgX2RsX3Nv cnRfbWFwc19kZnMgKHN0cnVjdCBsaW5rX21hcCAqKm1hcHMsIHVuc2lnbmVkIGludCBubWFwcywK Ky0JCSAgIHVuc2lnbmVkIGludCBza2lwIF9fYXR0cmlidXRlX18gKCh1bnVzZWQpKSwgYm9vbCBm b3JfZmluaSkKKysJCSAgIGJvb2wgZm9yY2VfZmlyc3QgX19hdHRyaWJ1dGVfXyAoKHVudXNlZCkp LCBib29sIGZvcl9maW5pKQorIHsKKyAgIGZvciAoaW50IGkgPSBubWFwcyAtIDE7IGkgPj0gMDsg aS0tKQorICAgICBtYXBzW2ldLT5sX3Zpc2l0ZWQgPSAwOworQEAgLTI4Niw3ICsyODYsNyBAQCBf ZGxfc29ydF9tYXBzX2luaXQgKHZvaWQpCisgCisgdm9pZAorIF9kbF9zb3J0X21hcHMgKHN0cnVj dCBsaW5rX21hcCAqKm1hcHMsIHVuc2lnbmVkIGludCBubWFwcywKKy0JICAgICAgIHVuc2lnbmVk IGludCBza2lwLCBib29sIGZvcl9maW5pKQorKwkgICAgICAgYm9vbCBmb3JjZV9maXJzdCwgYm9v bCBmb3JfZmluaSkKKyB7CisgICAvKiBJdCBjYW4gYmUgdGVtcHRpbmcgdG8gdXNlIGEgc3RhdGlj IGZ1bmN0aW9uIHBvaW50ZXIgdG8gc3RvcmUgYW5kIGNhbGwKKyAgICAgIHRoZSBjdXJyZW50IHNl bGVjdGVkIHNvcnRpbmcgYWxnb3JpdGhtIHJvdXRpbmUsIGJ1dCBleHBlcmltZW50YXRpb24KK0BA IC0yOTYsOSArMjk2LDkgQEAgX2RsX3NvcnRfbWFwcyAoc3RydWN0IGxpbmtfbWFwICoqbWFwcywg dW5zaWduZWQgaW50IG5tYXBzLAorICAgICAgaW5wdXQgY2FzZXMuIEEgc2ltcGxlIGlmLWNhc2Ug d2l0aCBkaXJlY3QgZnVuY3Rpb24gY2FsbHMgYXBwZWFycyB0bworICAgICAgYmUgdGhlIGZhc3Rl c3QuICAqLworICAgaWYgKF9fZ2xpYmNfbGlrZWx5IChHTFJPKGRsX2Rzb19zb3J0X2FsZ28pID09 IGRzb19zb3J0X2FsZ29yaXRobV9vcmlnaW5hbCkpCistICAgIF9kbF9zb3J0X21hcHNfb3JpZ2lu YWwgKG1hcHMsIG5tYXBzLCBza2lwLCBmb3JfZmluaSk7CisrICAgIF9kbF9zb3J0X21hcHNfb3Jp Z2luYWwgKG1hcHMsIG5tYXBzLCBmb3JjZV9maXJzdCwgZm9yX2ZpbmkpOworICAgZWxzZQorLSAg ICBfZGxfc29ydF9tYXBzX2RmcyAobWFwcywgbm1hcHMsIHNraXAsIGZvcl9maW5pKTsKKysgICAg X2RsX3NvcnRfbWFwc19kZnMgKG1hcHMsIG5tYXBzLCBmb3JjZV9maXJzdCwgZm9yX2ZpbmkpOwor IH0KKyAKKyAjZW5kaWYgLyogSEFWRV9UVU5BQkxFUy4gICovCitkaWZmIC0tZ2l0IGEvc3lzZGVw cy9nZW5lcmljL2xkc29kZWZzLmggYi9zeXNkZXBzL2dlbmVyaWMvbGRzb2RlZnMuaAoraW5kZXgg MDUwYTMwMzJkZS4uNmIyNTZiODM4OCAxMDA2NDQKKy0tLSBhL3N5c2RlcHMvZ2VuZXJpYy9sZHNv ZGVmcy5oCisrKysgYi9zeXNkZXBzL2dlbmVyaWMvbGRzb2RlZnMuaAorQEAgLTEwNDgsOSArMTA0 OCwxMSBAQCBleHRlcm4gdm9pZCBfZGxfaW5pdCAoc3RydWN0IGxpbmtfbWFwICptYWluX21hcCwg aW50IGFyZ2MsIGNoYXIgKiphcmd2LAorICAgIGluaXRpYWxpemVyIGZ1bmN0aW9ucyBoYXZlIGNv bXBsZXRlZC4gICovCisgZXh0ZXJuIHZvaWQgX2RsX2ZpbmkgKHZvaWQpIGF0dHJpYnV0ZV9oaWRk ZW47CisgCistLyogU29ydCBhcnJheSBNQVBTIGFjY29yZGluZyB0byBkZXBlbmRlbmNpZXMgb2Yg dGhlIGNvbnRhaW5lZCBvYmplY3RzLiAgKi8KKysvKiBTb3J0IGFycmF5IE1BUFMgYWNjb3JkaW5n IHRvIGRlcGVuZGVuY2llcyBvZiB0aGUgY29udGFpbmVkIG9iamVjdHMuCisrICAgSWYgRk9SQ0Vf RklSU1QsIE1BUFNbMF0ga2VlcHMgaXRzIHBsYWNlIGV2ZW4gaWYgdGhlIGRlcGVuZGVuY2llcwor KyAgIHNheSBvdGhlcndpc2UuICAqLworIGV4dGVybiB2b2lkIF9kbF9zb3J0X21hcHMgKHN0cnVj dCBsaW5rX21hcCAqKm1hcHMsIHVuc2lnbmVkIGludCBubWFwcywKKy0JCQkgICB1bnNpZ25lZCBp bnQgc2tpcCwgYm9vbCBmb3JfZmluaSkgYXR0cmlidXRlX2hpZGRlbjsKKysJCQkgICBib29sIGZv cmNlX2ZpcnN0LCBib29sIGZvcl9maW5pKSBhdHRyaWJ1dGVfaGlkZGVuOworIAorIC8qIFRoZSBk eW5hbWljIGxpbmtlciBjYWxscyB0aGlzIGZ1bmN0aW9uIGJlZm9yZSBhbmQgaGF2aW5nIGNoYW5n aW5nCisgICAgYW55IHNoYXJlZCBvYmplY3QgbWFwcGluZ3MuICBUaGUgYHJfc3RhdGUnIG1lbWJl ciBvZiBgc3RydWN0IHJfZGVidWcnCistLSAKKzIuMzguMQorCisKK0Zyb20gZGE1ZjEzNGY2ZDU5 NzAxYTNhNjExOTMwOWFlOTFjOTNjM2ZhNWI1MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy b206IEZsb3JpYW4gV2VpbWVyIDxmd2VpbWVyQHJlZGhhdC5jb20+CitEYXRlOiBUdWUsIDIwIFNl cCAyMDIyIDExOjAwOjQyICswMjAwCitTdWJqZWN0OiBlbGY6IEltcGxlbWVudCBmb3JjZV9maXJz dCBoYW5kbGluZyBpbiBfZGxfc29ydF9tYXBzX2RmcyAoYnVnIDI4OTM3KQorTUlNRS1WZXJzaW9u OiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29udGVudC1U cmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitUaGUgaW1wbGVtZW50YXRpb24gaW4gX2RsX2Nsb3Nl X3dvcmtlciByZXF1aXJlcyB0aGF0IHRoZSBmaXJzdAorZWxlbWVudCBvZiBsX2luaXRmaW5pIGlz IGFsd2F5cyB0aGlzIHZlcnkgbWFwICjigJxXZSBhcmUgYWx3YXlzIHRoZQoremVyb3RoIGVudHJ5 LCBhbmQgc2luY2Ugd2UgZG9uJ3QgaW5jbHVkZSBvdXJzZWx2ZXMgaW4gdGhlCitkZXBlbmRlbmN5 IGFuYWx5c2lzIHN0YXJ0IGF0IDEu4oCdKS4gIFJhdGhlciB0aGFuIGZpeGluZyB0aGF0Cithc3N1 bXB0aW9uLCB0aGlzIGNvbW1pdCBhZGRzIGFuIGltcGxlbWVudGF0aW9uIG9mIHRoZSBmb3JjZV9m aXJzdAorYXJndW1lbnQgdG8gdGhlIG5ldyBkZXBlbmRlbmN5IHNvcnRpbmcgYWxnb3JpdGhtLiAg VGhpcyBhbHNvIG1lYW5zCit0aGF0IHRoZSBkaXJlY3RseSBkbG9wZW4nZWQgc2hhcmVkIG9iamVj dCBpcyBhbHdheXMgaW5pdGlhbGl6ZWQgbGFzdCwKK3doaWNoIGlzIHRoZSBsZWFzdCBzdXJwcmlz aW5nIGJlaGF2aW9yIGluIHRoZSBwcmVzZW5jZSBvZiBjeWNsZXMuCisKK1Jldmlld2VkLWJ5OiBB ZGhlbWVydmFsIFphbmVsbGEgIDxhZGhlbWVydmFsLnphbmVsbGFAbGluYXJvLm9yZz4KKyhjaGVy cnkgcGlja2VkIGZyb20gY29tbWl0IDFkZjcxZDMyZmU1ZjU5MDVmZmQ1ZDEwMGU1ZTljYThhZDYy MTA4OTEpCistLS0KKyBORVdTICAgICAgICAgICAgICAgICAgICAgfCAgMSArCisgZWxmL2RsLXNv cnQtbWFwcy5jICAgICAgIHwgMzIgKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0KKyBl bGYvZHNvLXNvcnQtdGVzdHMtMS5kZWYgfCAgNyArKysrKysrCisgMyBmaWxlcyBjaGFuZ2VkLCAz MSBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvTkVXUyBiL05F V1MKK2luZGV4IDAzMjgxZTNhYjQuLjViNDc1MzQxNmYgMTAwNjQ0CistLS0gYS9ORVdTCisrKysg Yi9ORVdTCitAQCAtMjAsNiArMjAsNyBAQCBUaGUgZm9sbG93aW5nIGJ1Z3MgYXJlIHJlc29sdmVk IHdpdGggdGhpcyByZWxlYXNlOgorICAgWzI4ODQ2XSBDTVNHX05YVEhEUiBtYXkgdHJpZ2dlciAt V3N0cmljdC1vdmVyZmxvdyB3YXJuaW5nCisgICBbMjkzMDVdIENvbnNlcnZlIE5TUyBidWZmZXIg c3BhY2UgZHVyaW5nIEROUyBwYWNrZXQgcGFyc2luZworICAgWzI5NDE1XSBuc2NkOiBGaXggbmV0 bGluayBjYWNoZSBpbnZhbGlkYXRpb24gaWYgZXBvbGwgaXMgdXNlZAorKyAgWzI4OTM3XSBOZXcg RFNPIGRlcGVuZGVuY3kgc29ydGVyIGRvZXMgbm90IHB1dCBuZXcgbWFwIGZpcnN0IGlmIGluIGEg Y3ljbGUKKyAgIFsyOTQ0Nl0gX2Rsb3BlbiBub3cgaWdub3JlcyBkbF9jYWxsZXIgYXJndW1lbnQg aW4gc3RhdGljIG1vZGUKKyAgIFsyOTQ4NV0gTGludXg6IFRlcm1pbmF0ZSBzdWJwcm9jZXNzIG9u IGxhdGUgZmFpbHVyZSBpbiB0c3QtcGlkZmQKKyAgIFsyOTQ5MF0gYWxwaGE6IE5ldyBfX2Jya19j YWxsIGltcGxlbWVudGF0aW9uIGlzIGJyb2tlbgorZGlmZiAtLWdpdCBhL2VsZi9kbC1zb3J0LW1h cHMuYyBiL2VsZi9kbC1zb3J0LW1hcHMuYworaW5kZXggNWI1NTBiMWU5NC4uM2UyYTZhNTg0ZSAx MDA2NDQKKy0tLSBhL2VsZi9kbC1zb3J0LW1hcHMuYworKysrIGIvZWxmL2RsLXNvcnQtbWFwcy5j CitAQCAtMTgyLDggKzE4Miw5IEBAIGRmc190cmF2ZXJzYWwgKHN0cnVjdCBsaW5rX21hcCAqKipy cG8sIHN0cnVjdCBsaW5rX21hcCAqbWFwLAorIAorIHN0YXRpYyB2b2lkCisgX2RsX3NvcnRfbWFw c19kZnMgKHN0cnVjdCBsaW5rX21hcCAqKm1hcHMsIHVuc2lnbmVkIGludCBubWFwcywKKy0JCSAg IGJvb2wgZm9yY2VfZmlyc3QgX19hdHRyaWJ1dGVfXyAoKHVudXNlZCkpLCBib29sIGZvcl9maW5p KQorKwkJICAgYm9vbCBmb3JjZV9maXJzdCwgYm9vbCBmb3JfZmluaSkKKyB7CisrICBzdHJ1Y3Qg bGlua19tYXAgKmZpcnN0X21hcCA9IG1hcHNbMF07CisgICBmb3IgKGludCBpID0gbm1hcHMgLSAx OyBpID49IDA7IGktLSkKKyAgICAgbWFwc1tpXS0+bF92aXNpdGVkID0gMDsKKyAKK0BAIC0yMDgs MTQgKzIwOSw2IEBAIF9kbF9zb3J0X21hcHNfZGZzIChzdHJ1Y3QgbGlua19tYXAgKiptYXBzLCB1 bnNpZ25lZCBpbnQgbm1hcHMsCisgICAgICBBZGp1c3RpbmcgdGhlIG9yZGVyIHNvIHRoYXQgbWFw c1swXSBpcyBsYXN0IHRyYXZlcnNlZCBuYXR1cmFsbHkgYXZvaWRzCisgICAgICB0aGlzIHByb2Js ZW0uCisgCistICAgICBGdXJ0aGVyLCB0aGUgb2xkICJvcHRpbWl6YXRpb24iIG9mIHNraXBwaW5n IHRoZSBtYWluIG9iamVjdCBhdCBtYXBzWzBdCistICAgICBmcm9tIHRoZSBjYWxsLXNpdGUgKGku ZS4gX2RsX3NvcnRfbWFwcyhtYXBzKzEsbm1hcHMtMSkpIGlzIGluIGdlbmVyYWwKKy0gICAgIG5v IGxvbmdlciB2YWxpZCwgc2luY2UgdHJhdmVyc2luZyBhbG9uZyBvYmplY3QgZGVwZW5kZW5jeS1s aW5rcworLSAgICAgbWF5ICJmaW5kIiB0aGUgbWFpbiBvYmplY3QgZXZlbiB3aGVuIGl0IGlzIG5v dCBpbmNsdWRlZCBpbiB0aGUgaW5pdGlhbAorLSAgICAgb3JkZXIgKGUuZy4gYSBkbG9wZW4oKSdl ZCBzaGFyZWQgb2JqZWN0IGNhbiBoYXZlIGNpcmN1bGFyIGRlcGVuZGVuY2llcworLSAgICAgbGlu a2VkIGJhY2sgdG8gaXRzZWxmKS4gSW4gc3VjaCBhIGNhc2UsIHRyYXZlcnNpbmcgTi0xIG9iamVj dHMgd2lsbAorLSAgICAgY3JlYXRlIGEgTi1vYmplY3QgcmVzdWx0LCBhbmQgcmFpc2UgcHJvYmxl bXMuCistCisgICAgICBUbyBzdW1tYXJpemUsIGp1c3QgcGFzc2luZyBpbiB0aGUgZnVsbCBsaXN0 LCBhbmQgaXRlcmF0aW5nIGZyb20gYmFjaworICAgICAgdG8gZnJvbnQgbWFrZXMgdGhpbmdzIG11 Y2ggbW9yZSBzdHJhaWdodGZvcndhcmQuICAqLworIAorQEAgLTI3NCw2ICsyNjcsMjcgQEAgX2Rs X3NvcnRfbWFwc19kZnMgKHN0cnVjdCBsaW5rX21hcCAqKm1hcHMsIHVuc2lnbmVkIGludCBubWFw cywKKyAgICAgfQorIAorICAgbWVtY3B5IChtYXBzLCBycG8sIHNpemVvZiAoc3RydWN0IGxpbmtf bWFwICopICogbm1hcHMpOworKworKyAgLyogU2tpcHBpbmcgdGhlIGZpcnN0IG9iamVjdCBhdCBt YXBzWzBdIGlzIG5vdCB2YWxpZCBpbiBnZW5lcmFsLAorKyAgICAgc2luY2UgdHJhdmVyc2luZyBh bG9uZyBvYmplY3QgZGVwZW5kZW5jeS1saW5rcyBtYXkgImZpbmQiIHRoYXQKKysgICAgIGZpcnN0 IG9iamVjdCBldmVuIHdoZW4gaXQgaXMgbm90IGluY2x1ZGVkIGluIHRoZSBpbml0aWFsIG9yZGVy CisrICAgICAoZS5nLiwgYSBkbG9wZW4nZWQgc2hhcmVkIG9iamVjdCBjYW4gaGF2ZSBjaXJjdWxh ciBkZXBlbmRlbmNpZXMKKysgICAgIGxpbmtlZCBiYWNrIHRvIGl0c2VsZikuICBJbiBzdWNoIGEg Y2FzZSwgdHJhdmVyc2luZyBOLTEgb2JqZWN0cworKyAgICAgd2lsbCBjcmVhdGUgYSBOLW9iamVj dCByZXN1bHQsIGFuZCByYWlzZSBwcm9ibGVtcy4gIEluc3RlYWQsCisrICAgICBmb3JjZSB0aGUg b2JqZWN0IGJhY2sgaW50byBmaXJzdCBwbGFjZSBhZnRlciBzb3J0aW5nLiAgVGhpcyBuYWl2ZQor KyAgICAgYXBwcm9hY2ggbWF5IGludHJvZHVjZSBmdXJ0aGVyIGRlcGVuZGVuY3kgb3JkZXJpbmcg dmlvbGF0aW9ucworKyAgICAgY29tcGFyZWQgdG8gcm90YXRpbmcgdGhlIGN5Y2xlIHVudGlsIHRo ZSBmaXJzdCBtYXAgaXMgYWdhaW4gaW4KKysgICAgIHRoZSBmaXJzdCBwb3NpdGlvbiwgYnV0IGFz IHRoZXJlIGlzIGEgY3ljbGUsIGF0IGxlYXN0IG9uZQorKyAgICAgdmlvbGF0aW9uIGlzIGFscmVh ZHkgcHJlc2VudC4gICovCisrICBpZiAoZm9yY2VfZmlyc3QgJiYgbWFwc1swXSAhPSBmaXJzdF9t YXApCisrICAgIHsKKysgICAgICBpbnQgaTsKKysgICAgICBmb3IgKGkgPSAwOyBtYXBzW2ldICE9 IGZpcnN0X21hcDsgKytpKQorKwk7CisrICAgICAgYXNzZXJ0IChpIDwgbm1hcHMpOworKyAgICAg IG1lbW1vdmUgKCZtYXBzWzFdLCBtYXBzLCBpICogc2l6ZW9mIChtYXBzWzBdKSk7CisrICAgICAg bWFwc1swXSA9IGZpcnN0X21hcDsKKysgICAgfQorIH0KKyAKKyB2b2lkCitkaWZmIC0tZ2l0IGEv ZWxmL2Rzby1zb3J0LXRlc3RzLTEuZGVmIGIvZWxmL2Rzby1zb3J0LXRlc3RzLTEuZGVmCitpbmRl eCA1ZjdmMThlZjI3Li40YmY5MDUyZGIxIDEwMDY0NAorLS0tIGEvZWxmL2Rzby1zb3J0LXRlc3Rz LTEuZGVmCisrKysgYi9lbGYvZHNvLXNvcnQtdGVzdHMtMS5kZWYKK0BAIC02NCwzICs2NCwxMCBA QCBvdXRwdXQ6IGI+YT57fTxhPGIKKyB0c3QtYnoxNTMxMTogeythOytlOytmOytnOytkOyVkOy1k Oy1nOy1mOy1lOy1hfTthLT5iLT5jLT5kO2Q9PltiYV07Yz0+YTtiPT5lPT5hO2M9PmY9PmI7ZD0+ Zz0+YworIG91dHB1dChnbGliYy5ydGxkLmR5bmFtaWNfc29ydD0xKTogeythW2Q+Yz5iPmE+XTsr ZVtlPl07K2ZbZj5dOytnW2c+XTsrZFtdOyVkKGIoZShhKCkpKWEoKWcoYyhhKClmKGIoZShhKCkp KSkpKSk7LWRbXTstZ1tdOy1mW107LWVbXTstYVs8YTxjPGQ8ZzxmPGI8ZV07fQorIG91dHB1dChn bGliYy5ydGxkLmR5bmFtaWNfc29ydD0yKTogeythW2Q+Yz5iPmE+XTsrZVtlPl07K2ZbZj5dOytn W2c+XTsrZFtdOyVkKGIoZShhKCkpKWEoKWcoYyhhKClmKGIoZShhKCkpKSkpKSk7LWRbXTstZ1td Oy1mW107LWVbXTstYVs8ZzxmPGE8YjxjPGQ8ZV07fQorKworKyMgVGVzdCB0aGF0IGV2ZW4gaW4g dGhlIHByZXNlbmNlIG9mIGRlcGVuZGVuY3kgbG9vcHMgaW52b2x2aW5nIGRsb3BlbidlZAorKyMg b2JqZWN0LCB0aGF0IG9iamVjdCBpcyBpbml0aWFsaXplZCBsYXN0IChhbmQgbm90IHVubG9hZGVk IHByZW1hdHVyZWx5KS4KKysjIEZpbmFsIGRlc3RydWN0b3Igb3JkZXIgaXMgaW5kZXRlcm1pbmF0 ZSBkdWUgdG8gdGhlIGN5Y2xlLgorK3RzdC1iejI4OTM3OiB7K2E7K2I7LWI7K2M7JWN9O2EtPmEx O2EtPmEyO2EyLT5hO2ItPmIxO2MtPmExO2M9PmExCisrb3V0cHV0KGdsaWJjLnJ0bGQuZHluYW1p Y19zb3J0PTEpOiB7K2FbYTI+YTE+YT5dOytiW2IxPmI+XTstYls8YjxiMV07K2NbYz5dOyVjKGEx KCkpO308YTxhMjxjPGExCisrb3V0cHV0KGdsaWJjLnJ0bGQuZHluYW1pY19zb3J0PTIpOiB7K2Fb YTI+YTE+YT5dOytiW2IxPmI+XTstYls8YjxiMV07K2NbYz5dOyVjKGExKCkpO308YTI8YTxjPGEx CistLSAKKzIuMzguMQorCisKK0Zyb20gNTJjMDM3ZjM1NzRlYjkwNjJiMTExZDc4YTRjYmViNzk2 ODFkMDdkMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEZsb3JpYW4gV2VpbWVyIDxm d2VpbWVyQHJlZGhhdC5jb20+CitEYXRlOiBUdWUsIDIwIFNlcCAyMDIyIDEyOjEyOjQzICswMjAw CitTdWJqZWN0OiBnY29udjogVXNlIDY0LWJpdCBpbnRlcmZhY2VzIGluIGdjb252X3BhcnNlY29u ZmRpciAoYnVnIDI5NTgzKQorCitJdCdzIHBvc3NpYmxlIHRoYXQgaW5vZGUgbnVtYmVycyBhcmUg b3V0c2lkZSB0aGUgMzItYml0IHJhbmdlLgorVGhlIGV4aXN0aW5nIGNvZGUgb25seSBoYW5kbGVz IHRoZSBpbi1saWJjIGNhc2UgY29ycmVjdGx5LCBhbmQKK3N0aWxsIHVzZXMgdGhlIGxlZ2FjeSBp bnRlcmZhY2VzIHdoZW4gYnVpbGRpbmcgaWNvbnYuCisKK1N1Z2dlc3RlZC1ieTogSGVsZ2UgRGVs bGVyIDxkZWxsZXJAZ214LmRlPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgZjk3OTA1ZjI0 NjMxMDk3YWYzMjVkNmEyMzEwOTMwNzFjMzA3N2E1ZikKKy0tLQorIE5FV1MgICAgICAgICAgICAg ICAgICAgICAgIHwgIDEgKworIGljb252L2djb252X3BhcnNlY29uZmRpci5oIHwgMTYgKysrKysr KystLS0tLS0tLQorIDIgZmlsZXMgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9u cygtKQorCitkaWZmIC0tZ2l0IGEvTkVXUyBiL05FV1MKK2luZGV4IDViNDc1MzQxNmYuLmVhYjg4 Mjk4N2IgMTAwNjQ0CistLS0gYS9ORVdTCisrKysgYi9ORVdTCitAQCAtMjYsNiArMjYsNyBAQCBU aGUgZm9sbG93aW5nIGJ1Z3MgYXJlIHJlc29sdmVkIHdpdGggdGhpcyByZWxlYXNlOgorICAgWzI5 NDkwXSBhbHBoYTogTmV3IF9fYnJrX2NhbGwgaW1wbGVtZW50YXRpb24gaXMgYnJva2VuCisgICBb Mjk1MjhdIGVsZjogQ2FsbCBfX2xpYmNfZWFybHlfaW5pdCBmb3IgcmV1c2VkIG5hbWVzcGFjZXMK KyAgIFsyOTUzOV0gbGliYzogTERfVFJBQ0VfTE9BREVEX09CSkVDVFMgY2hhbmdlZCBob3cgdkRT TyBsaWJyYXJ5IGFyZQorKyAgWzI5NTgzXSBVc2UgNjQtYml0IGludGVyZmFjZXMgaW4gZ2NvbnZf cGFyc2Vjb25mZGlyCisgDAorIFZlcnNpb24gMi4zNgorIAorZGlmZiAtLWdpdCBhL2ljb252L2dj b252X3BhcnNlY29uZmRpci5oIGIvaWNvbnYvZ2NvbnZfcGFyc2Vjb25mZGlyLmgKK2luZGV4IGRl YmI5NmIzMjIuLmI3MjkzM2I1MjYgMTAwNjQ0CistLS0gYS9pY29udi9nY29udl9wYXJzZWNvbmZk aXIuaAorKysrIGIvaWNvbnYvZ2NvbnZfcGFyc2Vjb25mZGlyLmgKK0BAIC0yOSwxNCArMjksMTQg QEAKKyAjIGRlZmluZSBpc3NwYWNlKF9fYykgX19pc3NwYWNlX2wgKChfX2MpLCBfbmxfQ19sb2Nv YmpfcHRyKQorICMgZGVmaW5lIGFzcHJpbnRmIF9fYXNwcmludGYKKyAjIGRlZmluZSBvcGVuZGly IF9fb3BlbmRpcgorLSMgZGVmaW5lIHJlYWRkaXIgX19yZWFkZGlyCisrIyBkZWZpbmUgcmVhZGRp cjY0IF9fcmVhZGRpcjY0CisgIyBkZWZpbmUgY2xvc2VkaXIgX19jbG9zZWRpcgorICMgZGVmaW5l IG1lbXBjcHkgX19tZW1wY3B5CistIyBkZWZpbmUgc3RydWN0X3N0YXQgc3RydWN0IF9fc3RhdDY0 X3Q2NAorLSMgZGVmaW5lIGxzdGF0IF9fbHN0YXQ2NF90aW1lNjQKKysjIGRlZmluZSBzdHJ1Y3Rf c3RhdDY0IHN0cnVjdCBfX3N0YXQ2NF90NjQKKysjIGRlZmluZSBsc3RhdDY0IF9fbHN0YXQ2NF90 aW1lNjQKKyAjIGRlZmluZSBmZW9mX3VubG9ja2VkIF9fZmVvZl91bmxvY2tlZAorICNlbHNlCist IyBkZWZpbmUgc3RydWN0X3N0YXQgc3RydWN0IHN0YXQKKysjIGRlZmluZSBzdHJ1Y3Rfc3RhdDY0 IHN0cnVjdCBzdGF0NjQKKyAjZW5kaWYKKyAKKyAvKiBOYW1lIG9mIHRoZSBmaWxlIGNvbnRhaW5p bmcgdGhlIG1vZHVsZSBpbmZvcm1hdGlvbiBpbiB0aGUgZGlyZWN0b3JpZXMKK0BAIC0xNDgsOCAr MTQ4LDggQEAgZ2NvbnZfcGFyc2Vjb25mZGlyIChjb25zdCBjaGFyICpwcmVmaXgsIGNvbnN0IGNo YXIgKmRpciwgc2l6ZV90IGRpcl9sZW4pCisgICBESVIgKmNvbmZkaXIgPSBvcGVuZGlyIChidWYp OworICAgaWYgKGNvbmZkaXIgIT0gTlVMTCkKKyAgICAgeworLSAgICAgIHN0cnVjdCBkaXJlbnQg KmVudDsKKy0gICAgICB3aGlsZSAoKGVudCA9IHJlYWRkaXIgKGNvbmZkaXIpKSAhPSBOVUxMKQor KyAgICAgIHN0cnVjdCBkaXJlbnQ2NCAqZW50OworKyAgICAgIHdoaWxlICgoZW50ID0gcmVhZGRp cjY0IChjb25mZGlyKSkgIT0gTlVMTCkKKyAJeworIAkgIGlmIChlbnQtPmRfdHlwZSAhPSBEVF9S RUcgJiYgZW50LT5kX3R5cGUgIT0gRFRfVU5LTk9XTikKKyAJICAgIGNvbnRpbnVlOworQEAgLTE2 MSwxMiArMTYxLDEyIEBAIGdjb252X3BhcnNlY29uZmRpciAoY29uc3QgY2hhciAqcHJlZml4LCBj b25zdCBjaGFyICpkaXIsIHNpemVfdCBkaXJfbGVuKQorIAkgICAgICAmJiBzdHJjbXAgKGVudC0+ ZF9uYW1lICsgbGVuIC0gc3RybGVuIChzdWZmaXgpLCBzdWZmaXgpID09IDApCisgCSAgICB7Cisg CSAgICAgIGNoYXIgKmNvbmY7CistCSAgICAgIHN0cnVjdF9zdGF0IHN0OworKwkgICAgICBzdHJ1 Y3Rfc3RhdDY0IHN0OworIAkgICAgICBpZiAoYXNwcmludGYgKCZjb25mLCAiJXMvJXMiLCBidWYs IGVudC0+ZF9uYW1lKSA8IDApCisgCQljb250aW51ZTsKKyAKKyAJICAgICAgaWYgKGVudC0+ZF90 eXBlICE9IERUX1VOS05PV04KKy0JCSAgfHwgKGxzdGF0IChjb25mLCAmc3QpICE9IC0xICYmIFNf SVNSRUcgKHN0LnN0X21vZGUpKSkKKysJCSAgfHwgKGxzdGF0NjQgKGNvbmYsICZzdCkgIT0gLTEg JiYgU19JU1JFRyAoc3Quc3RfbW9kZSkpKQorIAkJZm91bmQgfD0gcmVhZF9jb25mX2ZpbGUgKGNv bmYsIGRpciwgZGlyX2xlbik7CisgCisgCSAgICAgIGZyZWUgKGNvbmYpOworLS0gCisyLjM4LjEK KworCitGcm9tIDI2Mjg1MDBmNWRmZjFkZDk5YzQ5YTA5YjQxOGIzYjFlYTNhNmI1ZDMgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBZGhlbWVydmFsIFphbmVsbGEgPGFkaGVtZXJ2YWwu emFuZWxsYUBsaW5hcm8ub3JnPgorRGF0ZTogVHVlLCAzMCBBdWcgMjAyMiAxMDozMzoxNSAtMDMw MAorU3ViamVjdDogbTY4azogRW5mb3JjZSA0LWJ5dGUgYWxpZ25tZW50IG9uIGludGVybmFsIGxv Y2tzIChCWiAjMjk1MzcpCisKK0EgbmV3IGludGVybmFsIGRlZmluaXRpb24sIF9fTElCQ19MT0NL X0FMSUdOTUVOVCwgaXMgdXNlZCB0byBmb3JjZQordGhlIDQtYnl0ZSBhbGlnbm1lbnQgb25seSBm b3IgbTY4aywgb3RoZXIgYXJjaGl0ZWN0dXJlIGtlZXAgdGhlCituYXR1cmFsIGFsaWdubWVudCBv ZiB0aGUgdHlwZSB1c2VkIGludGVybmFsbHkgKGFuZCBocHBhIGRvZXMgbm90CityZXF1aXJlIDE2 LWJ5dGUgYWxpZ25tZW50IGZvciBrZXJuZWwtYXNzaXN0ZWQgQ0FTKS4KKworUmV2aWV3ZWQtYnk6 IEZsb3JpYW4gV2VpbWVyIDxmd2VpbWVyQHJlZGhhdC5jb20+CisoY2hlcnJ5IHBpY2tlZCBmcm9t IGNvbW1pdCBhZWI0ZDJlOTgxNWQ0NTllMjY0MGEzMWY1YWJiOGVmODAzODMwMTA3KQorLS0tCisg TkVXUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEgKworIHN5 c2RlcHMvZ2VuZXJpYy9saWJjLWxvY2stYXJjaC5oICAgICAgICAgICAgICB8IDI1ICsrKysrKysr KysrKysrKysrKysKKyBzeXNkZXBzL25wdGwvbGliYy1sb2NrLmggICAgICAgICAgICAgICAgICAg ICAgfCAgOCArKysrKy0KKyBzeXNkZXBzL25wdGwvbGliYy1sb2NrUC5oICAgICAgICAgICAgICAg ICAgICAgfCAgMyArKy0KKyBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL2xpYmMtbG9jay1h cmNoLmggfCAyNSArKysrKysrKysrKysrKysrKysrCisgNSBmaWxlcyBjaGFuZ2VkLCA2MCBpbnNl cnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBzeXNkZXBzL2dl bmVyaWMvbGliYy1sb2NrLWFyY2guaAorIGNyZWF0ZSBtb2RlIDEwMDY0NCBzeXNkZXBzL3VuaXgv c3lzdi9saW51eC9tNjhrL2xpYmMtbG9jay1hcmNoLmgKKworZGlmZiAtLWdpdCBhL05FV1MgYi9O RVdTCitpbmRleCBlYWI4ODI5ODdiLi4xY2M5YTE2YmJmIDEwMDY0NAorLS0tIGEvTkVXUworKysr IGIvTkVXUworQEAgLTI1LDYgKzI1LDcgQEAgVGhlIGZvbGxvd2luZyBidWdzIGFyZSByZXNvbHZl ZCB3aXRoIHRoaXMgcmVsZWFzZToKKyAgIFsyOTQ4NV0gTGludXg6IFRlcm1pbmF0ZSBzdWJwcm9j ZXNzIG9uIGxhdGUgZmFpbHVyZSBpbiB0c3QtcGlkZmQKKyAgIFsyOTQ5MF0gYWxwaGE6IE5ldyBf X2Jya19jYWxsIGltcGxlbWVudGF0aW9uIGlzIGJyb2tlbgorICAgWzI5NTI4XSBlbGY6IENhbGwg X19saWJjX2Vhcmx5X2luaXQgZm9yIHJldXNlZCBuYW1lc3BhY2VzCisrICBbMjk1MzddIGxpYmM6 IFsyLjM0IHJlZ3Jlc3Npb25dOiBBbGlnbm1lbnQgaXNzdWUgb24gbTY4ayB3aGVuIHVzaW5nCisg ICBbMjk1MzldIGxpYmM6IExEX1RSQUNFX0xPQURFRF9PQkpFQ1RTIGNoYW5nZWQgaG93IHZEU08g bGlicmFyeSBhcmUKKyAgIFsyOTU4M10gVXNlIDY0LWJpdCBpbnRlcmZhY2VzIGluIGdjb252X3Bh cnNlY29uZmRpcgorIAwKK2RpZmYgLS1naXQgYS9zeXNkZXBzL2dlbmVyaWMvbGliYy1sb2NrLWFy Y2guaCBiL3N5c2RlcHMvZ2VuZXJpYy9saWJjLWxvY2stYXJjaC5oCituZXcgZmlsZSBtb2RlIDEw MDY0NAoraW5kZXggMDAwMDAwMDAwMC4uNDcxM2IzMGE4YQorLS0tIC9kZXYvbnVsbAorKysrIGIv c3lzZGVwcy9nZW5lcmljL2xpYmMtbG9jay1hcmNoLmgKK0BAIC0wLDAgKzEsMjUgQEAKKysvKiBQ cml2YXRlIGxpYmMtaW50ZXJuYWwgYXJjaC1zcGVjaWZpYyBkZWZpbml0aW9ucy4gIEdlbmVyaWMg dmVyc2lvbi4KKysgICBDb3B5cmlnaHQgKEMpIDIwMjIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCisrICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisrCisr ICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yCisrICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExl c3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisrICAgcHVibGlzaGVkIGJ5IHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUKKysgICBMaWNl bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoZSBH TlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsCisrICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt cGxpZWQgd2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorKyAgIExlc3NlciBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2Ug YWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg SWYKKysgICBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKysK KysjaWZuZGVmIF9MSUJDX0xPQ0tfQVJDSF9ICisrI2RlZmluZSBfTElCQ19MT0NLX0FSQ0hfSAor KworKy8qIFRoZSBkZWZhdWx0IGRlZmluaXRpb24gdXNlcyB0aGUgbmF0dXJhbCBhbGlnbm1lbnQg ZnJvbSB0aGUgbG9jayB0eXBlLiAgKi8KKysjZGVmaW5lIF9fTElCQ19MT0NLX0FMSUdOTUVOVAor KworKyNlbmRpZgorZGlmZiAtLWdpdCBhL3N5c2RlcHMvbnB0bC9saWJjLWxvY2suaCBiL3N5c2Rl cHMvbnB0bC9saWJjLWxvY2suaAoraW5kZXggNWFmNDc2YzQ4Yi4uNjNiM2YzZDc1YyAxMDA2NDQK Ky0tLSBhL3N5c2RlcHMvbnB0bC9saWJjLWxvY2suaAorKysrIGIvc3lzZGVwcy9ucHRsL2xpYmMt bG9jay5oCitAQCAtMjIsNiArMjIsNyBAQAorICNpbmNsdWRlIDxwdGhyZWFkLmg+CisgI2RlZmlu ZSBfX25lZWRfTlVMTAorICNpbmNsdWRlIDxzdGRkZWYuaD4KKysjaW5jbHVkZSA8bGliYy1sb2Nr LWFyY2guaD4KKyAKKyAKKyAvKiBNdXRleCB0eXBlLiAgKi8KK0BAIC0yOSw3ICszMCwxMiBAQAor ICMgaWYgKCFJU19JTiAobGliYykgJiYgIUlTX0lOIChsaWJwdGhyZWFkKSkgfHwgIWRlZmluZWQg X0xJQkMKKyB0eXBlZGVmIHN0cnVjdCB7IHB0aHJlYWRfbXV0ZXhfdCBtdXRleDsgfSBfX2xpYmNf bG9ja19yZWN1cnNpdmVfdDsKKyAjIGVsc2UKKy10eXBlZGVmIHN0cnVjdCB7IGludCBsb2NrOyBp bnQgY250OyB2b2lkICpvd25lcjsgfSBfX2xpYmNfbG9ja19yZWN1cnNpdmVfdDsKKyt0eXBlZGVm IHN0cnVjdAorK3sKKysgIGludCBsb2NrIF9fTElCQ19MT0NLX0FMSUdOTUVOVDsKKysgIGludCBj bnQ7CisrICB2b2lkICpvd25lcjsKKyt9IF9fbGliY19sb2NrX3JlY3Vyc2l2ZV90OworICMgZW5k aWYKKyAjZWxzZQorIHR5cGVkZWYgc3RydWN0IF9fbGliY19sb2NrX3JlY3Vyc2l2ZV9vcGFxdWVf XyBfX2xpYmNfbG9ja19yZWN1cnNpdmVfdDsKK2RpZmYgLS1naXQgYS9zeXNkZXBzL25wdGwvbGli Yy1sb2NrUC5oIGIvc3lzZGVwcy9ucHRsL2xpYmMtbG9ja1AuaAoraW5kZXggZDNhNjgzN2ZkMi4u NDI1ZjUxNGM1YyAxMDA2NDQKKy0tLSBhL3N5c2RlcHMvbnB0bC9saWJjLWxvY2tQLmgKKysrKyBi L3N5c2RlcHMvbnB0bC9saWJjLWxvY2tQLmgKK0BAIC0zMiw5ICszMiwxMCBAQAorICAgIGxkLnNv IG1pZ2h0IGJlIHVzZWQgb24gb2xkIGtlcm5lbHMgd2l0aCBhIGRpZmZlcmVudCBsaWJjLnNvLiAg Ki8KKyAjaW5jbHVkZSA8bG93bGV2ZWxsb2NrLmg+CisgI2luY2x1ZGUgPHRscy5oPgorKyNpbmNs dWRlIDxsaWJjLWxvY2stYXJjaC5oPgorIAorIC8qIE11dGV4IHR5cGUuICAqLworLXR5cGVkZWYg aW50IF9fbGliY19sb2NrX3Q7CisrdHlwZWRlZiBpbnQgX19saWJjX2xvY2tfdCBfX0xJQkNfTE9D S19BTElHTk1FTlQ7CisgdHlwZWRlZiBzdHJ1Y3QgeyBwdGhyZWFkX211dGV4X3QgbXV0ZXg7IH0g X19ydGxkX2xvY2tfcmVjdXJzaXZlX3Q7CisgdHlwZWRlZiBwdGhyZWFkX3J3bG9ja190IF9fbGli Y19yd2xvY2tfdDsKKyAKK2RpZmYgLS1naXQgYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhr L2xpYmMtbG9jay1hcmNoLmggYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL2xpYmMtbG9j ay1hcmNoLmgKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwLi4xODQ0YmJh ZjZmCistLS0gL2Rldi9udWxsCisrKysgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL2xp YmMtbG9jay1hcmNoLmgKK0BAIC0wLDAgKzEsMjUgQEAKKysvKiBQcml2YXRlIGxpYmMtaW50ZXJu YWwgYXJjaC1zcGVjaWZpYyBkZWZpbml0aW9ucy4gIG02OGsgdmVyc2lvbi4KKysgICBDb3B5cmln aHQgKEMpIDIwMjIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrICAgVGhpcyBmaWxl IGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkg aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisrICAgbW9k aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGFzCisrICAgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247 IGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUKKysgICBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp b24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0IFdJVEhP VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysg ICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT ZWUgdGhlIEdOVQorKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl dGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V IExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMg TGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYKKysgICBub3QsIHNlZSA8aHR0 cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKysKKysjaWZuZGVmIF9MSUJDX0xPQ0tf QVJDSF9ICisrI2RlZmluZSBfTElCQ19MT0NLX0FSQ0hfSAorKworKy8qIExpbnV4IGVuZm9yY2Vz IDQtYnl0ZXMgYWxpZ25tZW50IG9uIGZ1dGV4IGlucHV0cy4gICovCisrI2RlZmluZSBfX0xJQkNf TE9DS19BTElHTk1FTlQgX19hdHRyaWJ1dGVfXyAoKF9fYWxpZ25lZF9fICg0KSkpCisrCisrI2Vu ZGlmCistLSAKKzIuMzguMQorCisKK0Zyb20gMjI3YzkwMzU4NzJmYzllOWUyY2Y1NmVjOGY4OTIx OTc0N2VlMTliYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ID0/VVRGLTg/cT9KPUMz PUI2cmc9MjBTb25uZW5iZXJnZXI/PSA8am9lcmdAYmVjLmRlPgorRGF0ZTogTW9uLCAyNiBTZXAg MjAyMiAxMzo1OToxNiAtMDQwMAorU3ViamVjdDogZ2V0X25zY2RfYWRkcmVzc2VzOiBGaXggc3Vi c2NyaXB0IHR5cG9zIFtCWiAjMjk2MDVdCisKK0ZpeCB0aGUgc3Vic2NyaXB0IG9uIGFpci0+ZmFt aWx5LCB3aGljaCB3YXMgYWNjaWRlbnRhbGx5IHNldCB0byBDT1VOVAord2hlbiBpdCBzaG91bGQg aGF2ZSByZW1haW5lZCBhcyBJLgorCitSZXNvbHZlczogQlogIzI5NjA1CisKK1Jldmlld2VkLWJ5 OiBTaWRkaGVzaCBQb3lhcmVrYXIgPHNpZGRoZXNoQHNvdXJjZXdhcmUub3JnPgorKGNoZXJyeSBw aWNrZWQgZnJvbSBjb21taXQgYzkyMjZjMDNkYTAyNzY1OTNhMDkxOGVhYTlhMTQ4MzUxODMzNDNl OCkKKy0tLQorIHN5c2RlcHMvcG9zaXgvZ2V0YWRkcmluZm8uYyB8IDYgKysrLS0tCisgMSBmaWxl IGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBh L3N5c2RlcHMvcG9zaXgvZ2V0YWRkcmluZm8uYyBiL3N5c2RlcHMvcG9zaXgvZ2V0YWRkcmluZm8u YworaW5kZXggYmNmZjkwOWIyZi4uNWNkYTliYjA3MiAxMDA2NDQKKy0tLSBhL3N5c2RlcHMvcG9z aXgvZ2V0YWRkcmluZm8uYworKysrIGIvc3lzZGVwcy9wb3NpeC9nZXRhZGRyaW5mby5jCitAQCAt NTQwLDExICs1NDAsMTEgQEAgZ2V0X25zY2RfYWRkcmVzc2VzIChjb25zdCBjaGFyICpuYW1lLCBj b25zdCBzdHJ1Y3QgYWRkcmluZm8gKnJlcSwKKyAJICBhdFtjb3VudF0uYWRkclsyXSA9IGh0b25s ICgweGZmZmYpOworIAl9CisgICAgICAgZWxzZSBpZiAocmVxLT5haV9mYW1pbHkgPT0gQUZfVU5T UEVDCistCSAgICAgICB8fCBhaXItPmZhbWlseVtjb3VudF0gPT0gcmVxLT5haV9mYW1pbHkpCisr CSAgICAgICB8fCBhaXItPmZhbWlseVtpXSA9PSByZXEtPmFpX2ZhbWlseSkKKyAJeworLQkgIGF0 W2NvdW50XS5mYW1pbHkgPSBhaXItPmZhbWlseVtjb3VudF07CisrCSAgYXRbY291bnRdLmZhbWls eSA9IGFpci0+ZmFtaWx5W2ldOworIAkgIG1lbWNweSAoYXRbY291bnRdLmFkZHIsIGFkZHJzLCBz aXplKTsKKy0JICBpZiAoYWlyLT5mYW1pbHlbY291bnRdID09IEFGX0lORVQ2KQorKwkgIGlmIChh aXItPmZhbWlseVtpXSA9PSBBRl9JTkVUNikKKyAJICAgIHJlcy0+Z290X2lwdjYgPSB0cnVlOwor IAl9CisgICAgICAgYXRbY291bnRdLm5leHQgPSBhdCArIGNvdW50ICsgMTsKKy0tIAorMi4zOC4x CisKKworRnJvbSA3NmUwNTYxM2VlMjhmNGFjNGEwYWI5N2VmZmMzMmUwZTc4ZTM3YTU2IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQWRoZW1lcnZhbCBaYW5lbGxhIDxhZGhlbWVydmFs LnphbmVsbGFAbGluYXJvLm9yZz4KK0RhdGU6IFRodSwgMjkgU2VwIDIwMjIgMTY6MTU6MjAgLTAz MDAKK1N1YmplY3Q6IHN0ZGxpYjogRml4IF9fZ2V0cmFuZG9tX25vY2FuY2VsIHR5cGUgYW5kIGFy YzRyYW5kb20gdXNhZ2UgKEJaCisgIzI5NjM4KQorCitVc2luZyBhbiB1bnNpZ25lZCB0eXBlIHBy ZXZlbnRzIHRoZSBmYWxsYmFjayB0byBiZSB1c2VkIGlmIGtlcm5lbAorZG9lcyBub3Qgc3VwcG9y dCBnZXRyYW5kb20gc3lzY2FsbC4KKworQ2hlY2tlZCBvbiB4ODZfNjQtbGludXgtZ251LgorCitS ZXZpZXdlZC1ieTogV2lsY28gRGlqa3N0cmEgIDxXaWxjby5EaWprc3RyYUBhcm0uY29tPgorKGNo ZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgMTNkYjllZTJjYjNiNzdlMjVmODUyYmU3ZDY5NTI4ODJl MWJlNmYwMCkKKy0tLQorIE5FV1MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEg KworIHN0ZGxpYi9hcmM0cmFuZG9tLmMgICAgICAgICAgICAgICAgICB8IDIgKy0KKyBzeXNkZXBz L3VuaXgvc3lzdi9saW51eC9ub3QtY2FuY2VsLmggfCAyICstCisgMyBmaWxlcyBjaGFuZ2VkLCAz IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9ORVdTIGIvTkVX UworaW5kZXggMWNjOWExNmJiZi4uOTFiY2ZlYjdhNiAxMDA2NDQKKy0tLSBhL05FV1MKKysrKyBi L05FV1MKK0BAIC0yOCw2ICsyOCw3IEBAIFRoZSBmb2xsb3dpbmcgYnVncyBhcmUgcmVzb2x2ZWQg d2l0aCB0aGlzIHJlbGVhc2U6CisgICBbMjk1MzddIGxpYmM6IFsyLjM0IHJlZ3Jlc3Npb25dOiBB bGlnbm1lbnQgaXNzdWUgb24gbTY4ayB3aGVuIHVzaW5nCisgICBbMjk1MzldIGxpYmM6IExEX1RS QUNFX0xPQURFRF9PQkpFQ1RTIGNoYW5nZWQgaG93IHZEU08gbGlicmFyeSBhcmUKKyAgIFsyOTU4 M10gVXNlIDY0LWJpdCBpbnRlcmZhY2VzIGluIGdjb252X3BhcnNlY29uZmRpcgorKyAgWzI5NjM4 XSBsaWJjOiBzdGRsaWI6IGFyYzRyYW5kb20gZmFsbGJhY2sgaXMgbmV2ZXIgdXNlZAorIAwKKyBW ZXJzaW9uIDIuMzYKKyAKK2RpZmYgLS1naXQgYS9zdGRsaWIvYXJjNHJhbmRvbS5jIGIvc3RkbGli L2FyYzRyYW5kb20uYworaW5kZXggZTQxN2VmNjI0ZC4uOTYwYTM4ZjI5NSAxMDA2NDQKKy0tLSBh L3N0ZGxpYi9hcmM0cmFuZG9tLmMKKysrKyBiL3N0ZGxpYi9hcmM0cmFuZG9tLmMKK0BAIC0zNCw3 ICszNCw3IEBAIHZvaWQKKyBfX2FyYzRyYW5kb21fYnVmICh2b2lkICpwLCBzaXplX3QgbikKKyB7 CisgICBzdGF0aWMgaW50IHNlZW5faW5pdGlhbGl6ZWQ7CistICBzaXplX3QgbDsKKysgIHNzaXpl X3QgbDsKKyAgIGludCBmZDsKKyAKKyAgIGlmIChuID09IDApCitkaWZmIC0tZ2l0IGEvc3lzZGVw cy91bml4L3N5c3YvbGludXgvbm90LWNhbmNlbC5oIGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgv bm90LWNhbmNlbC5oCitpbmRleCBhMjYzZDI5NGIxLi5jZjM1YzhiZmM5IDEwMDY0NAorLS0tIGEv c3lzZGVwcy91bml4L3N5c3YvbGludXgvbm90LWNhbmNlbC5oCisrKysgYi9zeXNkZXBzL3VuaXgv c3lzdi9saW51eC9ub3QtY2FuY2VsLmgKK0BAIC02OCw3ICs2OCw3IEBAIF9fd3JpdGV2X25vY2Fu Y2VsX25vc3RhdHVzIChpbnQgZmQsIGNvbnN0IHN0cnVjdCBpb3ZlYyAqaW92LCBpbnQgaW92Y250 KQorICAgSU5URVJOQUxfU1lTQ0FMTF9DQUxMICh3cml0ZXYsIGZkLCBpb3YsIGlvdmNudCk7Cisg fQorIAorLXN0YXRpYyBpbmxpbmUgaW50Cisrc3RhdGljIGlubGluZSBzc2l6ZV90CisgX19nZXRy YW5kb21fbm9jYW5jZWwgKHZvaWQgKmJ1Ziwgc2l6ZV90IGJ1ZmxlbiwgdW5zaWduZWQgaW50IGZs YWdzKQorIHsKKyAgIHJldHVybiBJTkxJTkVfU1lTQ0FMTF9DQUxMIChnZXRyYW5kb20sIGJ1Ziwg YnVmbGVuLCBmbGFncyk7CistLSAKKzIuMzguMQorCisKK0Zyb20gZDFkODM3OWJmZjM0ZjAyZjg2 ZjgyZGIyY2VmNWJmNjY3NDZkMzU2MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEpv aG4gRGF2aWQgQW5nbGluIDxkYW5nbGluQGdjYy5nbnUub3JnPgorRGF0ZTogU2F0LCAxIE9jdCAy MDIyIDE5OjQ5OjI1ICswMDAwCitTdWJqZWN0OiBocHBhOiBGaXggaW5pdGlhbGl6YXRpb24gb2Yg ZHAgcmVnaXN0ZXIgW0JaIDI5NjM1XQorCitBZnRlciB1cGdyYWRpbmcgZ2xpYmMgdG8gRGViaWFu IDIuMzUtMSwgZ2RiIGZhdWx0ZWQgb24KK3N0YXJ0dXAgYW5kIGRyb3BwZWQgY29yZSBpbiBhIGZ1 bmN0aW9uIGNhbGwgaW4gdGhlIG1haW4KK2FwcGxpY2F0aW9uLiAgVGhpcyB3YXMgY2F1c2VkIGJ5 IG5vdCBpbml0aWFsaXppbmcgdGhlCitnbG9iYWwgZHAgcmVnaXN0ZXIgZm9yIHRoZSBtYWluIGFw cGxpY2F0aW9uIGVhcmx5IGVub3VnaC4KKworUmVzdG9yZSB0aGUgY29kZSB0byBpbml0aWFsaXpl IGRwIGluIF9kbF9zdGFydF91c2VyLgorSXQgd2FzIHJlbW92ZWQgd2hlbiBjb2RlIHdhcyBhZGRl ZCB0byBpbml0aWFsaXplIGRwIGluCitlbGZfbWFjaGluZV9ydW50aW1lX3NldHVwLgorCitTaWdu ZWQtb2ZmLWJ5OiBKb2huIERhdmlkIEFuZ2xpbiA8ZGF2ZS5hbmdsaW5AYmVsbC5uZXQ+CistLS0K KyBzeXNkZXBzL2hwcGEvZGwtbWFjaGluZS5oIHwgMjQgKysrKysrKysrKysrKysrKysrKy0tLS0t CisgMSBmaWxlIGNoYW5nZWQsIDE5IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCisKK2Rp ZmYgLS1naXQgYS9zeXNkZXBzL2hwcGEvZGwtbWFjaGluZS5oIGIvc3lzZGVwcy9ocHBhL2RsLW1h Y2hpbmUuaAoraW5kZXggYzg2NTcxM2JlMS4uMWQ1MTk0ODU2NiAxMDA2NDQKKy0tLSBhL3N5c2Rl cHMvaHBwYS9kbC1tYWNoaW5lLmgKKysrKyBiL3N5c2RlcHMvaHBwYS9kbC1tYWNoaW5lLmgKK0BA IC0zNDcsNiArMzQ3LDE2IEBAIGVsZl9tYWNoaW5lX3J1bnRpbWVfc2V0dXAgKHN0cnVjdCBsaW5r X21hcCAqbCwgc3RydWN0IHJfc2NvcGVfZWxlbSAqc2NvcGVbXSwKKyAgICBpdHMgcmV0dXJuIHZh bHVlIGlzIHRoZSB1c2VyIHByb2dyYW0ncyBlbnRyeSBwb2ludC4gICovCisgCisgI2RlZmluZSBS VExEX1NUQVJUIFwKKysvKiBTZXQgdXAgZHAgZm9yIGFueSBub24tUElDIGxpYiBjb25zdHJ1Y3Rv cnMgdGhhdCBtYXkgYmUgY2FsbGVkLiAgKi8JXAorK3N0YXRpYyBzdHJ1Y3QgbGlua19tYXAgKiBf X2F0dHJpYnV0ZV9fKCh1c2VkKSkJCQkJXAorK3NldF9kcCAoc3RydWN0IGxpbmtfbWFwICptYXAp CQkJCQkJXAorK3sJCQkJCQkJCQlcCisrICByZWdpc3RlciBFbGYzMl9BZGRyIGRwIGFzbSAoIiVy MjciKTsJCQkJCVwKKysgIGRwID0gRF9QVFIgKG1hcCwgbF9pbmZvW0RUX1BMVEdPVF0pOwkJCQkJ XAorKyAgYXNtIHZvbGF0aWxlICgiIiA6IDogInIiIChkcCkpOwkJCQkJXAorKyAgcmV0dXJuIG1h cDsJCQkJCQkJCVwKKyt9CQkJCQkJCQkJXAorKwkJCQkJCQkJCVwKKyBhc20gKAkJCQkJCQkJCVwK KyAiCS50ZXh0XG4iCQkJCQkJCVwKKyAiCS5nbG9ibCBfc3RhcnRcbiIJCQkJCQlcCitAQCAtNDI2 LDYgKzQzNiwxMyBAQCBhc20gKAkJCQkJCQkJCVwKKyAJICAgZGlyZWN0IGxvYWRlciBpbnZvY2F0 aW9uLiAgVGh1cywgYXJnYyBhbmQgYXJndiBtdXN0IGJlCVwKKyAJICAgcmVsb2FkZWQgZnJvbSBm cm9tIF9kbF9hcmdjIGFuZCBfZGxfYXJndi4gICovCQlcCisgCQkJCQkJCQkJXAorKwkvKiBMb2Fk IG1haW5fbWFwIGZyb20gX3J0bGRfbG9jYWwgYW5kIHNldHVwIGRwLiAqLwkJXAorKyIJYWRkaWwJ TFQnX3J0bGRfbG9jYWwsJXIxOVxuIgkJCQkJXAorKyIJbGR3CVJUJ19ydGxkX2xvY2FsKCVyMSks JXIyNlxuIgkJCQlcCisrIglibAlzZXRfZHAsICVyMlxuIgkJCQkJCVwKKysiCWxkdwkwKCVyMjYp LCVyMjZcbiIJCQkJCQlcCisrIgljb3B5CSVyZXQwLCVyMjZcbiIJCQkJCQlcCisrCQkJCQkJCQkJ XAorIAkvKiBMb2FkIGFyZ2MgZnJvbSBfZGxfYXJnYy4gICovCQkJCQlcCisgIglhZGRpbAlMVCdf ZGxfYXJnYywlcjE5XG4iCQkJCQlcCisgIglsZHcJUlQnX2RsX2FyZ2MoJXIxKSwlcjIwXG4iCQkJ CVwKK0BAIC00MzgsMTMgKzQ1NSwxMCBAQCBhc20gKAkJCQkJCQkJCVwKKyAiCWxkdwkwKCVyMjAp LCVyMjRcbiIJCQkJCQlcCisgIglzdHcJJXIyNCwtNDQoJXNwKVxuIgkJCQkJXAorIAkJCQkJCQkJ CVwKKy0JLyogQ2FsbCBfZGxfaW5pdChtYWluX21hcCwgYXJnYywgYXJndiwgZW52cCkuICovCQlc CistIglhZGRpbAlMVCdfcnRsZF9sb2NhbCwlcjE5XG4iCQkJCQlcCistIglsZHcJUlQnX3J0bGRf bG9jYWwoJXIxKSwlcjI2XG4iCQkJCVwKKy0iCWxkdwkwKCVyMjYpLCVyMjZcbiIJCQkJCQlcCist CQkJCQkJCQkJXAorIAkvKiBlbnZwID0gYXJndiArIGFyZ2MgKyAxICovCQkJCQlcCisgIglzaDJh ZGQJJXIyNSwlcjI0LCVyMjNcbiIJCQkJCVwKKysJCQkJCQkJCQlcCisrCS8qIENhbGwgX2RsX2lu aXQobWFpbl9tYXAsIGFyZ2MsIGFyZ3YsIGVudnApLiAqLwkJXAorICIJYmwJX2RsX2luaXQsJXIy XG4iCQkJCQkJXAorICIJbGRvCTQoJXIyMyksJXIyM1xuIgkvKiBkZWxheSBzbG90ICovCQkJXAor IAkJCQkJCQkJCVwKKy0tIAorMi4zOC4xCisKKworRnJvbSBjZGM0OTZlYjU1ZTMwZjhmMjQ2MWJl ZGIwYTczODFjMGE3YTNkM2FlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogSm9obiBE YXZpZCBBbmdsaW4gPGRhbmdsaW5AZ2NjLmdudS5vcmc+CitEYXRlOiBUdWUsIDIwIFNlcCAyMDIy IDIwOjE0OjE0ICswMDAwCitTdWJqZWN0OiBocHBhOiB1bmRlZiBfX0FTU1VNRV9TRVRfUk9CVVNU X0xJU1QKKworUUVNVSBkb2VzIG5vdCBzdXBwb3J0IHN1cHBvcnQgc2V0X3JvYnVzdF9saXN0LiBU aHVzLCB3ZSBuZWVkCit0byBlbmFibGUgZGV0ZWN0aW9uIG9mIHNldF9yb2J1c3RfbGlzdCBzeXN0 ZW0gY2FsbC4KKworU2lnbmVkLW9mZi1ieTogSm9obiBEYXZpZCBBbmdsaW4gPGRhdmUuYW5nbGlu QGJlbGwubmV0PgorLS0tCisgc3lzZGVwcy91bml4L3N5c3YvbGludXgvaHBwYS9rZXJuZWwtZmVh dHVyZXMuaCB8IDMgKysrCisgMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKQorCitkaWZm IC0tZ2l0IGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvaHBwYS9rZXJuZWwtZmVhdHVyZXMuaCBi L3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2hwcGEva2VybmVsLWZlYXR1cmVzLmgKK2luZGV4IDBj ZDIxZWYwZmEuLjA3OTYxMmU0YWEgMTAwNjQ0CistLS0gYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51 eC9ocHBhL2tlcm5lbC1mZWF0dXJlcy5oCisrKysgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9o cHBhL2tlcm5lbC1mZWF0dXJlcy5oCitAQCAtMzAsMyArMzAsNiBAQAorIAorICN1bmRlZiBfX0FT U1VNRV9DTE9ORV9ERUZBVUxUCisgI2RlZmluZSBfX0FTU1VNRV9DTE9ORV9CQUNLV0FSRFMgMQor KworKy8qIFFFTVUgZG9lcyBub3Qgc3VwcG9ydCBzZXRfcm9idXN0X2xpc3QuICAqLworKyN1bmRl ZiBfX0FTU1VNRV9TRVRfUk9CVVNUX0xJU1QKKy0tIAorMi4zOC4xCisKKworRnJvbSAxOGJlYzIz Y2JiNGQ1MzBhMmE4Y2U5NTM1Mzc3MDY2MWZhYmNkNTVmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQorRnJvbTogQXVyZWxpZW4gSmFybm8gPGF1cmVsaWVuQGF1cmVsMzIubmV0PgorRGF0ZTogTW9u LCAzIE9jdCAyMDIyIDIzOjQ2OjExICswMjAwCitTdWJqZWN0OiB4ODY6IGluY2x1ZGUgQk1JMSBh bmQgQk1JMiBpbiB4ODYtNjQtdjMgbGV2ZWwKKworVGhlICJTeXN0ZW0gViBBcHBsaWNhdGlvbiBC aW5hcnkgSW50ZXJmYWNlIEFNRDY0IEFyY2hpdGVjdHVyZSBQcm9jZXNzb3IKK1N1cHBsZW1lbnQi IG1hbmRhdGVzIHRoZSBCTUkxIGFuZCBCTUkyIENQVSBmZWF0dXJlcyBmb3IgdGhlIHg4Ni02NC12 MworbGV2ZWwuCisKK1Jldmlld2VkLWJ5OiBOb2FoIEdvbGRzdGVpbiAgPGdvbGRzdGVpbi53Lm5A Z21haWwuY29tPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgYjgwZjE2YWRiZDk3OTgzMWJm MjVlYTQ5MWUxMjYxZTgxODg1YzJiNikKKy0tLQorIHN5c2RlcHMveDg2L2dldC1pc2EtbGV2ZWwu aCB8IDIgKysKKyAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQg YS9zeXNkZXBzL3g4Ni9nZXQtaXNhLWxldmVsLmggYi9zeXNkZXBzL3g4Ni9nZXQtaXNhLWxldmVs LmgKK2luZGV4IDFhZGU3OGFiNzMuLjViNGRkNWYwNjIgMTAwNjQ0CistLS0gYS9zeXNkZXBzL3g4 Ni9nZXQtaXNhLWxldmVsLmgKKysrKyBiL3N5c2RlcHMveDg2L2dldC1pc2EtbGV2ZWwuaAorQEAg LTQ3LDYgKzQ3LDggQEAgZ2V0X2lzYV9sZXZlbCAoY29uc3Qgc3RydWN0IGNwdV9mZWF0dXJlcyAq Y3B1X2ZlYXR1cmVzKQorIAkgIGlzYV9sZXZlbCB8PSBHTlVfUFJPUEVSVFlfWDg2X0lTQV8xX1Yy OworIAkgIGlmIChDUFVfRkVBVFVSRV9VU0FCTEVfUCAoY3B1X2ZlYXR1cmVzLCBBVlgpCisgCSAg ICAgICYmIENQVV9GRUFUVVJFX1VTQUJMRV9QIChjcHVfZmVhdHVyZXMsIEFWWDIpCisrCSAgICAg ICYmIENQVV9GRUFUVVJFX1VTQUJMRV9QIChjcHVfZmVhdHVyZXMsIEJNSTEpCisrCSAgICAgICYm IENQVV9GRUFUVVJFX1VTQUJMRV9QIChjcHVfZmVhdHVyZXMsIEJNSTIpCisgCSAgICAgICYmIENQ VV9GRUFUVVJFX1VTQUJMRV9QIChjcHVfZmVhdHVyZXMsIEYxNkMpCisgCSAgICAgICYmIENQVV9G RUFUVVJFX1VTQUJMRV9QIChjcHVfZmVhdHVyZXMsIEZNQSkKKyAJICAgICAgJiYgQ1BVX0ZFQVRV UkVfVVNBQkxFX1AgKGNwdV9mZWF0dXJlcywgTFpDTlQpCistLSAKKzIuMzguMQorCisKK0Zyb20g NDY0NzllNWQxMGVkODc4MjVhYTI3N2RhMTU4ZDZhNjg3OTc0NTE4YiBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKK0Zyb206IEF1cmVsaWVuIEphcm5vIDxhdXJlbGllbkBhdXJlbDMyLm5ldD4KK0Rh dGU6IE1vbiwgMyBPY3QgMjAyMiAyMzo0NjoxMSArMDIwMAorU3ViamVjdDogeDg2LTY0OiBSZXF1 aXJlIEJNSTIgZm9yIEFWWDIgc3RyKG4pY2FzZWNtcCBpbXBsZW1lbnRhdGlvbnMKKworVGhlIEFW WDIgc3RyKG4pY2FzZWNtcCBpbXBsZW1lbnRhdGlvbnMgdXNlIHRoZSAnYnpoaScgaW5zdHJ1Y3Rp b24sIHdoaWNoCitiZWxvbmdzIHRvIHRoZSBCTUkyIENQVSBmZWF0dXJlLgorCitOQjogSXQgYWxz byB1c2VzIHRoZSAndHpjbnQnIEJNSTEgaW5zdHJ1Y3Rpb24sIGJ1dCBpdCBpcyBleGVjdXRlZCBh cyBCU0YKK2FzIEJTRiBpZiB0aGUgQ1BVIGRvZXNuJ3Qgc3VwcG9ydCBUWkNOVCwgYW5kIHByb2R1 Y2VzIHRoZSBzYW1lIHJlc3VsdAorZm9yIG5vbi16ZXJvIGlucHV0LgorCitQYXJ0aWFsbHkgZml4 ZXM6IGI3N2IwNmUwZTI5NiAoIng4NjogT3B0aW1pemUgc3RyY21wLWF2eDIuUyIpCitQYXJ0aWFs bHkgcmVzb2x2ZXM6IEJaICMyOTYxMQorCitSZXZpZXdlZC1ieTogTm9haCBHb2xkc3RlaW4gIDxn b2xkc3RlaW4udy5uQGdtYWlsLmNvbT4KKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDEwZjc5 ZDM2NzBiMDM2OTI1ZGE2M2RjNTMyYjEyMmQyN2NlNjVmZjgpCistLS0KKyBzeXNkZXBzL3g4Nl82 NC9tdWx0aWFyY2gvaWZ1bmMtaW1wbC1saXN0LmMgIHwgMjggKysrKysrKysrKysrKysrLS0tLS0t Cisgc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL2lmdW5jLXN0cmNhc2VjbXAuaCB8ICAxICsKKyAy IGZpbGVzIGNoYW5nZWQsIDIxIGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCisKK2RpZmYg LS1naXQgYS9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvaWZ1bmMtaW1wbC1saXN0LmMgYi9zeXNk ZXBzL3g4Nl82NC9tdWx0aWFyY2gvaWZ1bmMtaW1wbC1saXN0LmMKK2luZGV4IGE3MTQ0NGVjY2Iu LmQyMDhmYWU0YmYgMTAwNjQ0CistLS0gYS9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvaWZ1bmMt aW1wbC1saXN0LmMKKysrKyBiL3N5c2RlcHMveDg2XzY0L211bHRpYXJjaC9pZnVuYy1pbXBsLWxp c3QuYworQEAgLTQ0OCwxMyArNDQ4LDE2IEBAIF9fbGliY19pZnVuY19pbXBsX2xpc3QgKGNvbnN0 IGNoYXIgKm5hbWUsIHN0cnVjdCBsaWJjX2lmdW5jX2ltcGwgKmFycmF5LAorICAgSUZVTkNfSU1Q TCAoaSwgbmFtZSwgc3RyY2FzZWNtcCwKKyAJICAgICAgWDg2X0lGVU5DX0lNUExfQUREX1Y0IChh cnJheSwgaSwgc3RyY2FzZWNtcCwKKyAJCQkJICAgICAoQ1BVX0ZFQVRVUkVfVVNBQkxFIChBVlg1 MTJWTCkKKy0JCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChBVlg1MTJCVykpLAorKwkJ CQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKEFWWDUxMkJXKQorKwkJCQkgICAgICAmJiBD UFVfRkVBVFVSRV9VU0FCTEUgKEJNSTIpKSwKKyAJCQkJICAgICBfX3N0cmNhc2VjbXBfZXZleCkK KyAJICAgICAgWDg2X0lGVU5DX0lNUExfQUREX1YzIChhcnJheSwgaSwgc3RyY2FzZWNtcCwKKy0J CQkJICAgICBDUFVfRkVBVFVSRV9VU0FCTEUgKEFWWDIpLAorKwkJCQkgICAgIChDUFVfRkVBVFVS RV9VU0FCTEUgKEFWWDIpCisrCQkJCSAgICAgICYmIENQVV9GRUFUVVJFX1VTQUJMRSAoQk1JMikp LAorIAkJCQkgICAgIF9fc3RyY2FzZWNtcF9hdngyKQorIAkgICAgICBYODZfSUZVTkNfSU1QTF9B RERfVjMgKGFycmF5LCBpLCBzdHJjYXNlY21wLAorIAkJCQkgICAgIChDUFVfRkVBVFVSRV9VU0FC TEUgKEFWWDIpCisrCQkJCSAgICAgICYmIENQVV9GRUFUVVJFX1VTQUJMRSAoQk1JMikKKyAJCQkJ ICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChSVE0pKSwKKyAJCQkJICAgICBfX3N0cmNhc2Vj bXBfYXZ4Ml9ydG0pCisgCSAgICAgIFg4Nl9JRlVOQ19JTVBMX0FERF9WMiAoYXJyYXksIGksIHN0 cmNhc2VjbXAsCitAQCAtNDcwLDEzICs0NzMsMTYgQEAgX19saWJjX2lmdW5jX2ltcGxfbGlzdCAo Y29uc3QgY2hhciAqbmFtZSwgc3RydWN0IGxpYmNfaWZ1bmNfaW1wbCAqYXJyYXksCisgICBJRlVO Q19JTVBMIChpLCBuYW1lLCBzdHJjYXNlY21wX2wsCisgCSAgICAgIFg4Nl9JRlVOQ19JTVBMX0FE RF9WNCAoYXJyYXksIGksIHN0cmNhc2VjbXAsCisgCQkJCSAgICAgKENQVV9GRUFUVVJFX1VTQUJM RSAoQVZYNTEyVkwpCistCQkJCSAgICAgICYmIENQVV9GRUFUVVJFX1VTQUJMRSAoQVZYNTEyQlcp KSwKKysJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChBVlg1MTJCVykKKysJCQkJICAg ICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChCTUkyKSksCisgCQkJCSAgICAgX19zdHJjYXNlY21w X2xfZXZleCkKKyAJICAgICAgWDg2X0lGVU5DX0lNUExfQUREX1YzIChhcnJheSwgaSwgc3RyY2Fz ZWNtcCwKKy0JCQkJICAgICBDUFVfRkVBVFVSRV9VU0FCTEUgKEFWWDIpLAorKwkJCQkgICAgIChD UFVfRkVBVFVSRV9VU0FCTEUgKEFWWDIpCisrCQkJCSAgICAgICYmIENQVV9GRUFUVVJFX1VTQUJM RSAoQk1JMikpLAorIAkJCQkgICAgIF9fc3RyY2FzZWNtcF9sX2F2eDIpCisgCSAgICAgIFg4Nl9J RlVOQ19JTVBMX0FERF9WMyAoYXJyYXksIGksIHN0cmNhc2VjbXAsCisgCQkJCSAgICAgKENQVV9G RUFUVVJFX1VTQUJMRSAoQVZYMikKKysJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChC TUkyKQorIAkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKFJUTSkpLAorIAkJCQkgICAg IF9fc3RyY2FzZWNtcF9sX2F2eDJfcnRtKQorIAkgICAgICBYODZfSUZVTkNfSU1QTF9BRERfVjIg KGFycmF5LCBpLCBzdHJjYXNlY21wX2wsCitAQCAtNjM4LDEzICs2NDQsMTYgQEAgX19saWJjX2lm dW5jX2ltcGxfbGlzdCAoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IGxpYmNfaWZ1bmNfaW1wbCAq YXJyYXksCisgICBJRlVOQ19JTVBMIChpLCBuYW1lLCBzdHJuY2FzZWNtcCwKKyAJICAgICAgWDg2 X0lGVU5DX0lNUExfQUREX1Y0IChhcnJheSwgaSwgc3RybmNhc2VjbXAsCisgCQkJCSAgICAgKENQ VV9GRUFUVVJFX1VTQUJMRSAoQVZYNTEyVkwpCistCQkJCSAgICAgICYmIENQVV9GRUFUVVJFX1VT QUJMRSAoQVZYNTEyQlcpKSwKKysJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChBVlg1 MTJCVykKKysJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChCTUkyKSksCisgCQkJCSAg ICAgX19zdHJuY2FzZWNtcF9ldmV4KQorIAkgICAgICBYODZfSUZVTkNfSU1QTF9BRERfVjMgKGFy cmF5LCBpLCBzdHJuY2FzZWNtcCwKKy0JCQkJICAgICBDUFVfRkVBVFVSRV9VU0FCTEUgKEFWWDIp LAorKwkJCQkgICAgIChDUFVfRkVBVFVSRV9VU0FCTEUgKEFWWDIpCisrCQkJCSAgICAgICYmIENQ VV9GRUFUVVJFX1VTQUJMRSAoQk1JMikpLAorIAkJCQkgICAgIF9fc3RybmNhc2VjbXBfYXZ4MikK KyAJICAgICAgWDg2X0lGVU5DX0lNUExfQUREX1YzIChhcnJheSwgaSwgc3RybmNhc2VjbXAsCisg CQkJCSAgICAgKENQVV9GRUFUVVJFX1VTQUJMRSAoQVZYMikKKysJCQkJICAgICAgJiYgQ1BVX0ZF QVRVUkVfVVNBQkxFIChCTUkyKQorIAkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKFJU TSkpLAorIAkJCQkgICAgIF9fc3RybmNhc2VjbXBfYXZ4Ml9ydG0pCisgCSAgICAgIFg4Nl9JRlVO Q19JTVBMX0FERF9WMiAoYXJyYXksIGksIHN0cm5jYXNlY21wLAorQEAgLTY2MCwxMyArNjY5LDE2 IEBAIF9fbGliY19pZnVuY19pbXBsX2xpc3QgKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBsaWJj X2lmdW5jX2ltcGwgKmFycmF5LAorICAgSUZVTkNfSU1QTCAoaSwgbmFtZSwgc3RybmNhc2VjbXBf bCwKKyAJICAgICAgWDg2X0lGVU5DX0lNUExfQUREX1Y0IChhcnJheSwgaSwgc3RybmNhc2VjbXAs CisgCQkJCSAgICAgKENQVV9GRUFUVVJFX1VTQUJMRSAoQVZYNTEyVkwpCistCQkJCSAgICAgICYm IENQVV9GRUFUVVJFX1VTQUJMRSAoQVZYNTEyQlcpKSwKKysJCQkJICAgICAgJiBDUFVfRkVBVFVS RV9VU0FCTEUgKEFWWDUxMkJXKQorKwkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKEJN STIpKSwKKyAJCQkJICAgICBfX3N0cm5jYXNlY21wX2xfZXZleCkKKyAJICAgICAgWDg2X0lGVU5D X0lNUExfQUREX1YzIChhcnJheSwgaSwgc3RybmNhc2VjbXAsCistCQkJCSAgICAgQ1BVX0ZFQVRV UkVfVVNBQkxFIChBVlgyKSwKKysJCQkJICAgICAoQ1BVX0ZFQVRVUkVfVVNBQkxFIChBVlgyKQor KwkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKEJNSTIpKSwKKyAJCQkJICAgICBfX3N0 cm5jYXNlY21wX2xfYXZ4MikKKyAJICAgICAgWDg2X0lGVU5DX0lNUExfQUREX1YzIChhcnJheSwg aSwgc3RybmNhc2VjbXAsCisgCQkJCSAgICAgKENQVV9GRUFUVVJFX1VTQUJMRSAoQVZYMikKKysJ CQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChCTUkyKQorIAkJCQkgICAgICAmJiBDUFVf RkVBVFVSRV9VU0FCTEUgKFJUTSkpLAorIAkJCQkgICAgIF9fc3RybmNhc2VjbXBfbF9hdngyX3J0 bSkKKyAJICAgICAgWDg2X0lGVU5DX0lNUExfQUREX1YyIChhcnJheSwgaSwgc3RybmNhc2VjbXBf bCwKK2RpZmYgLS1naXQgYS9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvaWZ1bmMtc3RyY2FzZWNt cC5oIGIvc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL2lmdW5jLXN0cmNhc2VjbXAuaAoraW5kZXgg Njg2NDZlZjE5OS4uNzYyMmFmMjU5YyAxMDA2NDQKKy0tLSBhL3N5c2RlcHMveDg2XzY0L211bHRp YXJjaC9pZnVuYy1zdHJjYXNlY21wLmgKKysrKyBiL3N5c2RlcHMveDg2XzY0L211bHRpYXJjaC9p ZnVuYy1zdHJjYXNlY21wLmgKK0BAIC0zNCw2ICszNCw3IEBAIElGVU5DX1NFTEVDVE9SICh2b2lk KQorICAgY29uc3Qgc3RydWN0IGNwdV9mZWF0dXJlcyAqY3B1X2ZlYXR1cmVzID0gX19nZXRfY3B1 X2ZlYXR1cmVzICgpOworIAorICAgaWYgKFg4Nl9JU0FfQ1BVX0ZFQVRVUkVfVVNBQkxFX1AgKGNw dV9mZWF0dXJlcywgQVZYMikKKysgICAgICAmJiBYODZfSVNBX0NQVV9GRUFUVVJFX1VTQUJMRV9Q IChjcHVfZmVhdHVyZXMsIEJNSTIpCisgICAgICAgJiYgWDg2X0lTQV9DUFVfRkVBVFVSRVNfQVJD SF9QIChjcHVfZmVhdHVyZXMsCisgCQkJCSAgICAgIEFWWF9GYXN0X1VuYWxpZ25lZF9Mb2FkLCAp KQorICAgICB7CistLSAKKzIuMzguMQorCisKK0Zyb20gN2FmYmQxZTU2YWNiNzIxMDMxYmZmZDg3 NmYyNzVkY2IxYWY3ZTUzMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEF1cmVsaWVu IEphcm5vIDxhdXJlbGllbkBhdXJlbDMyLm5ldD4KK0RhdGU6IE1vbiwgMyBPY3QgMjAyMiAyMzo0 NjoxMSArMDIwMAorU3ViamVjdDogeDg2LTY0OiBSZXF1aXJlIEJNSTIgZm9yIEFWWDIgc3RyY21w IGltcGxlbWVudGF0aW9uCisKK1RoZSBBVlgyIHN0cmNtcCBpbXBsZW1lbnRhdGlvbiB1c2VzIHRo ZSAnYnpoaScgaW5zdHJ1Y3Rpb24sIHdoaWNoCitiZWxvbmdzIHRvIHRoZSBCTUkyIENQVSBmZWF0 dXJlLgorCitOQjogSXQgYWxzbyB1c2VzIHRoZSAndHpjbnQnIEJNSTEgaW5zdHJ1Y3Rpb24sIGJ1 dCBpdCBpcyBleGVjdXRlZCBhcyBCU0YKK2FzIEJTRiBpZiB0aGUgQ1BVIGRvZXNuJ3Qgc3VwcG9y dCBUWkNOVCwgYW5kIHByb2R1Y2VzIHRoZSBzYW1lIHJlc3VsdAorZm9yIG5vbi16ZXJvIGlucHV0 LgorCitQYXJ0aWFsbHkgZml4ZXM6IGI3N2IwNmUwZTI5NiAoIng4NjogT3B0aW1pemUgc3RyY21w LWF2eDIuUyIpCitQYXJ0aWFsbHkgcmVzb2x2ZXM6IEJaICMyOTYxMQorCitSZXZpZXdlZC1ieTog Tm9haCBHb2xkc3RlaW4gIDxnb2xkc3RlaW4udy5uQGdtYWlsLmNvbT4KKyhjaGVycnkgcGlja2Vk IGZyb20gY29tbWl0IDRkNjRjNjQ0NTczNWU5YjM0ZTJhYzhlMzY5MzEyY2JmYzJmODhlMTcpCist LS0KKyBzeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvaWZ1bmMtaW1wbC1saXN0LmMgfCA0ICsrKy0K KyBzeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvc3RyY21wLmMgICAgICAgICAgfCA0ICsrLS0KKyAy IGZpbGVzIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKKworZGlmZiAt LWdpdCBhL3N5c2RlcHMveDg2XzY0L211bHRpYXJjaC9pZnVuYy1pbXBsLWxpc3QuYyBiL3N5c2Rl cHMveDg2XzY0L211bHRpYXJjaC9pZnVuYy1pbXBsLWxpc3QuYworaW5kZXggZDIwOGZhZTRiZi4u YTQyYjBhNDYyMCAxMDA2NDQKKy0tLSBhL3N5c2RlcHMveDg2XzY0L211bHRpYXJjaC9pZnVuYy1p bXBsLWxpc3QuYworKysrIGIvc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL2lmdW5jLWltcGwtbGlz dC5jCitAQCAtNTkxLDEwICs1OTEsMTIgQEAgX19saWJjX2lmdW5jX2ltcGxfbGlzdCAoY29uc3Qg Y2hhciAqbmFtZSwgc3RydWN0IGxpYmNfaWZ1bmNfaW1wbCAqYXJyYXksCisgCQkJCSAgICAgICYm IENQVV9GRUFUVVJFX1VTQUJMRSAoQk1JMikpLAorIAkJCQkgICAgIF9fc3RyY21wX2V2ZXgpCisg CSAgICAgIFg4Nl9JRlVOQ19JTVBMX0FERF9WMyAoYXJyYXksIGksIHN0cmNtcCwKKy0JCQkJICAg ICBDUFVfRkVBVFVSRV9VU0FCTEUgKEFWWDIpLAorKwkJCQkgICAgIChDUFVfRkVBVFVSRV9VU0FC TEUgKEFWWDIpCisrCQkJCSAgICAgICYmIENQVV9GRUFUVVJFX1VTQUJMRSAoQk1JMikpLAorIAkJ CQkgICAgIF9fc3RyY21wX2F2eDIpCisgCSAgICAgIFg4Nl9JRlVOQ19JTVBMX0FERF9WMyAoYXJy YXksIGksIHN0cmNtcCwKKyAJCQkJICAgICAoQ1BVX0ZFQVRVUkVfVVNBQkxFIChBVlgyKQorKwkJ CQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKEJNSTIpCisgCQkJCSAgICAgICYmIENQVV9G RUFUVVJFX1VTQUJMRSAoUlRNKSksCisgCQkJCSAgICAgX19zdHJjbXBfYXZ4Ml9ydG0pCisgCSAg ICAgIFg4Nl9JRlVOQ19JTVBMX0FERF9WMiAoYXJyYXksIGksIHN0cmNtcCwKK2RpZmYgLS1naXQg YS9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvc3RyY21wLmMgYi9zeXNkZXBzL3g4Nl82NC9tdWx0 aWFyY2gvc3RyY21wLmMKK2luZGV4IGZkZDVhZmUzYWYuLjlkNmM5ZjY2YmEgMTAwNjQ0CistLS0g YS9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvc3RyY21wLmMKKysrKyBiL3N5c2RlcHMveDg2XzY0 L211bHRpYXJjaC9zdHJjbXAuYworQEAgLTQ1LDEyICs0NSwxMiBAQCBJRlVOQ19TRUxFQ1RPUiAo dm9pZCkKKyAgIGNvbnN0IHN0cnVjdCBjcHVfZmVhdHVyZXMgKmNwdV9mZWF0dXJlcyA9IF9fZ2V0 X2NwdV9mZWF0dXJlcyAoKTsKKyAKKyAgIGlmIChYODZfSVNBX0NQVV9GRUFUVVJFX1VTQUJMRV9Q IChjcHVfZmVhdHVyZXMsIEFWWDIpCisrICAgICAgJiYgWDg2X0lTQV9DUFVfRkVBVFVSRV9VU0FC TEVfUCAoY3B1X2ZlYXR1cmVzLCBCTUkyKQorICAgICAgICYmIFg4Nl9JU0FfQ1BVX0ZFQVRVUkVT X0FSQ0hfUCAoY3B1X2ZlYXR1cmVzLAorIAkJCQkgICAgICBBVlhfRmFzdF9VbmFsaWduZWRfTG9h ZCwgKSkKKyAgICAgeworICAgICAgIGlmIChYODZfSVNBX0NQVV9GRUFUVVJFX1VTQUJMRV9QIChj cHVfZmVhdHVyZXMsIEFWWDUxMlZMKQorLQkgICYmIFg4Nl9JU0FfQ1BVX0ZFQVRVUkVfVVNBQkxF X1AgKGNwdV9mZWF0dXJlcywgQVZYNTEyQlcpCistCSAgJiYgWDg2X0lTQV9DUFVfRkVBVFVSRV9V U0FCTEVfUCAoY3B1X2ZlYXR1cmVzLCBCTUkyKSkKKysJICAmJiBYODZfSVNBX0NQVV9GRUFUVVJF X1VTQUJMRV9QIChjcHVfZmVhdHVyZXMsIEFWWDUxMkJXKSkKKyAJcmV0dXJuIE9QVElNSVpFIChl dmV4KTsKKyAKKyAgICAgICBpZiAoQ1BVX0ZFQVRVUkVfVVNBQkxFX1AgKGNwdV9mZWF0dXJlcywg UlRNKSkKKy0tIAorMi4zOC4xCisKKworRnJvbSAyOWM1NzdlMGY1NGZlNmU3MGNlYWNiMzY1OTE3 OTc4MWM1NTY5OTAzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQXVyZWxpZW4gSmFy bm8gPGF1cmVsaWVuQGF1cmVsMzIubmV0PgorRGF0ZTogTW9uLCAzIE9jdCAyMDIyIDIzOjQ2OjEx ICswMjAwCitTdWJqZWN0OiB4ODYtNjQ6IFJlcXVpcmUgQk1JMiBmb3IgQVZYMiBzdHJuY21wIGlt cGxlbWVudGF0aW9uCisKK1RoZSBBVlgyIHN0cm5jbXAgaW1wbGVtZW50YXRpb25zIHVzZXMgdGhl ICdiemhpJyBpbnN0cnVjdGlvbiwgd2hpY2gKK2JlbG9uZ3MgdG8gdGhlIEJNSTIgQ1BVIGZlYXR1 cmUuCisKK05COiBJdCBhbHNvIHVzZXMgdGhlICd0emNudCcgQk1JMSBpbnN0cnVjdGlvbiwgYnV0 IGl0IGlzIGV4ZWN1dGVkIGFzIEJTRgorYXMgQlNGIGlmIHRoZSBDUFUgZG9lc24ndCBzdXBwb3J0 IFRaQ05ULCBhbmQgcHJvZHVjZXMgdGhlIHNhbWUgcmVzdWx0Citmb3Igbm9uLXplcm8gaW5wdXQu CisKK1BhcnRpYWxseSBmaXhlczogYjc3YjA2ZTBlMjk2ICgieDg2OiBPcHRpbWl6ZSBzdHJjbXAt YXZ4Mi5TIikKK1BhcnRpYWxseSByZXNvbHZlczogQlogIzI5NjExCisKK1Jldmlld2VkLWJ5OiBO b2FoIEdvbGRzdGVpbiAgPGdvbGRzdGVpbi53Lm5AZ21haWwuY29tPgorKGNoZXJyeSBwaWNrZWQg ZnJvbSBjb21taXQgZmM3ZGUxZDliOTlhZTE2NzZiYzYyNmRkY2E0MjJkN2FiZWUwZWI0OCkKKy0t LQorIHN5c2RlcHMveDg2XzY0L211bHRpYXJjaC9pZnVuYy1pbXBsLWxpc3QuYyB8IDcgKysrKyst LQorIHN5c2RlcHMveDg2XzY0L211bHRpYXJjaC9zdHJuY21wLmMgICAgICAgICB8IDQgKystLQor IDIgZmlsZXMgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQorCitkaWZm IC0tZ2l0IGEvc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL2lmdW5jLWltcGwtbGlzdC5jIGIvc3lz ZGVwcy94ODZfNjQvbXVsdGlhcmNoL2lmdW5jLWltcGwtbGlzdC5jCitpbmRleCBhNDJiMGE0NjIw Li5hZWJlZjNkYWFmIDEwMDY0NAorLS0tIGEvc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL2lmdW5j LWltcGwtbGlzdC5jCisrKysgYi9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvaWZ1bmMtaW1wbC1s aXN0LmMKK0BAIC0xMTc2LDEzICsxMTc2LDE2IEBAIF9fbGliY19pZnVuY19pbXBsX2xpc3QgKGNv bnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBsaWJjX2lmdW5jX2ltcGwgKmFycmF5LAorICAgSUZVTkNf SU1QTCAoaSwgbmFtZSwgc3RybmNtcCwKKyAJICAgICAgWDg2X0lGVU5DX0lNUExfQUREX1Y0IChh cnJheSwgaSwgc3RybmNtcCwKKyAJCQkJICAgICAoQ1BVX0ZFQVRVUkVfVVNBQkxFIChBVlg1MTJW TCkKKy0JCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChBVlg1MTJCVykpLAorKwkJCQkg ICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKEFWWDUxMkJXKQorKwkJCQkgICAgICAmJiBDUFVf RkVBVFVSRV9VU0FCTEUgKEJNSTIpKSwKKyAJCQkJICAgICBfX3N0cm5jbXBfZXZleCkKKyAJICAg ICAgWDg2X0lGVU5DX0lNUExfQUREX1YzIChhcnJheSwgaSwgc3RybmNtcCwKKy0JCQkJICAgICBD UFVfRkVBVFVSRV9VU0FCTEUgKEFWWDIpLAorKwkJCQkgICAgIChDUFVfRkVBVFVSRV9VU0FCTEUg KEFWWDIpCisrCQkJCSAgICAgICYmIENQVV9GRUFUVVJFX1VTQUJMRSAoQk1JMikpLAorIAkJCQkg ICAgIF9fc3RybmNtcF9hdngyKQorIAkgICAgICBYODZfSUZVTkNfSU1QTF9BRERfVjMgKGFycmF5 LCBpLCBzdHJuY21wLAorIAkJCQkgICAgIChDUFVfRkVBVFVSRV9VU0FCTEUgKEFWWDIpCisrCQkJ CSAgICAgICYmIENQVV9GRUFUVVJFX1VTQUJMRSAoQk1JMikKKyAJCQkJICAgICAgJiYgQ1BVX0ZF QVRVUkVfVVNBQkxFIChSVE0pKSwKKyAJCQkJICAgICBfX3N0cm5jbXBfYXZ4Ml9ydG0pCisgCSAg ICAgIFg4Nl9JRlVOQ19JTVBMX0FERF9WMiAoYXJyYXksIGksIHN0cm5jbXAsCitkaWZmIC0tZ2l0 IGEvc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL3N0cm5jbXAuYyBiL3N5c2RlcHMveDg2XzY0L211 bHRpYXJjaC9zdHJuY21wLmMKK2luZGV4IDRlYmU0YmRlMzAuLmM0ZjhiNmJiYjUgMTAwNjQ0Cist LS0gYS9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvc3RybmNtcC5jCisrKysgYi9zeXNkZXBzL3g4 Nl82NC9tdWx0aWFyY2gvc3RybmNtcC5jCitAQCAtNDEsMTIgKzQxLDEyIEBAIElGVU5DX1NFTEVD VE9SICh2b2lkKQorICAgY29uc3Qgc3RydWN0IGNwdV9mZWF0dXJlcyAqY3B1X2ZlYXR1cmVzID0g X19nZXRfY3B1X2ZlYXR1cmVzICgpOworIAorICAgaWYgKFg4Nl9JU0FfQ1BVX0ZFQVRVUkVfVVNB QkxFX1AgKGNwdV9mZWF0dXJlcywgQVZYMikKKysgICAgICAmJiBYODZfSVNBX0NQVV9GRUFUVVJF X1VTQUJMRV9QIChjcHVfZmVhdHVyZXMsIEJNSTIpCisgICAgICAgJiYgWDg2X0lTQV9DUFVfRkVB VFVSRVNfQVJDSF9QIChjcHVfZmVhdHVyZXMsCisgCQkJCSAgICAgIEFWWF9GYXN0X1VuYWxpZ25l ZF9Mb2FkLCApKQorICAgICB7CisgICAgICAgaWYgKFg4Nl9JU0FfQ1BVX0ZFQVRVUkVfVVNBQkxF X1AgKGNwdV9mZWF0dXJlcywgQVZYNTEyVkwpCistCSAgJiYgWDg2X0lTQV9DUFVfRkVBVFVSRV9V U0FCTEVfUCAoY3B1X2ZlYXR1cmVzLCBBVlg1MTJCVykKKy0JICAmJiBYODZfSVNBX0NQVV9GRUFU VVJFX1VTQUJMRV9QIChjcHVfZmVhdHVyZXMsIEJNSTIpKQorKwkgICYmIFg4Nl9JU0FfQ1BVX0ZF QVRVUkVfVVNBQkxFX1AgKGNwdV9mZWF0dXJlcywgQVZYNTEyQlcpKQorIAlyZXR1cm4gT1BUSU1J WkUgKGV2ZXgpOworIAorICAgICAgIGlmIChDUFVfRkVBVFVSRV9VU0FCTEVfUCAoY3B1X2ZlYXR1 cmVzLCBSVE0pKQorLS0gCisyLjM4LjEKKworCitGcm9tIGQ4YmY0Mzg4ZGY2NzlmYTVhM2FlNzg4 OWE2NDllNTczZTMxMjQ1MzAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBdXJlbGll biBKYXJubyA8YXVyZWxpZW5AYXVyZWwzMi5uZXQ+CitEYXRlOiBNb24sIDMgT2N0IDIwMjIgMjM6 NDY6MTEgKzAyMDAKK1N1YmplY3Q6IHg4Ni02NDogUmVxdWlyZSBCTUkyIGZvciBBVlgyIHdjcyhu KWNtcCBpbXBsZW1lbnRhdGlvbnMKKworVGhlIEFWWDIgd2NzKG4pY21wIGltcGxlbWVudGF0aW9u cyB1c2UgdGhlICdiemhpJyBpbnN0cnVjdGlvbiwgd2hpY2gKK2JlbG9uZ3MgdG8gdGhlIEJNSTIg Q1BVIGZlYXR1cmUuCisKK05COiBJdCBhbHNvIHVzZXMgdGhlICd0emNudCcgQk1JMSBpbnN0cnVj dGlvbiwgYnV0IGl0IGlzIGV4ZWN1dGVkIGFzIEJTRgorYXMgQlNGIGlmIHRoZSBDUFUgZG9lc24n dCBzdXBwb3J0IFRaQ05ULCBhbmQgcHJvZHVjZXMgdGhlIHNhbWUgcmVzdWx0Citmb3Igbm9uLXpl cm8gaW5wdXQuCisKK1BhcnRpYWxseSBmaXhlczogYjc3YjA2ZTBlMjk2ICgieDg2OiBPcHRpbWl6 ZSBzdHJjbXAtYXZ4Mi5TIikKK1BhcnRpYWxseSByZXNvbHZlczogQlogIzI5NjExCisKK1Jldmll d2VkLWJ5OiBOb2FoIEdvbGRzdGVpbiAgPGdvbGRzdGVpbi53Lm5AZ21haWwuY29tPgorKGNoZXJy eSBwaWNrZWQgZnJvbSBjb21taXQgZjMxYTVhODg0ZWQ4NGJkMzcwMzI3MjlkNGQxZWI5ZDA2Yzlm M2MyOSkKKy0tLQorIHN5c2RlcHMveDg2XzY0L211bHRpYXJjaC9pZnVuYy1pbXBsLWxpc3QuYyB8 IDggKysrKysrLS0KKyAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9u cygtKQorCitkaWZmIC0tZ2l0IGEvc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL2lmdW5jLWltcGwt bGlzdC5jIGIvc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL2lmdW5jLWltcGwtbGlzdC5jCitpbmRl eCBhZWJlZjNkYWFmLi5mZWM4NzkwYzExIDEwMDY0NAorLS0tIGEvc3lzZGVwcy94ODZfNjQvbXVs dGlhcmNoL2lmdW5jLWltcGwtbGlzdC5jCisrKysgYi9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gv aWZ1bmMtaW1wbC1saXN0LmMKK0BAIC04MTAsMTAgKzgxMCwxMiBAQCBfX2xpYmNfaWZ1bmNfaW1w bF9saXN0IChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgbGliY19pZnVuY19pbXBsICphcnJheSwK KyAJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChCTUkyKSksCisgCQkJCSAgICAgX193 Y3NjbXBfZXZleCkKKyAJICAgICAgWDg2X0lGVU5DX0lNUExfQUREX1YzIChhcnJheSwgaSwgd2Nz Y21wLAorLQkJCQkgICAgIENQVV9GRUFUVVJFX1VTQUJMRSAoQVZYMiksCisrCQkJCSAgICAgKENQ VV9GRUFUVVJFX1VTQUJMRSAoQVZYMikKKysJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxF IChCTUkyKSksCisgCQkJCSAgICAgX193Y3NjbXBfYXZ4MikKKyAJICAgICAgWDg2X0lGVU5DX0lN UExfQUREX1YzIChhcnJheSwgaSwgd2NzY21wLAorIAkJCQkgICAgIChDUFVfRkVBVFVSRV9VU0FC TEUgKEFWWDIpCisrCQkJCSAgICAgICYmIENQVV9GRUFUVVJFX1VTQUJMRSAoQk1JMikKKyAJCQkJ ICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChSVE0pKSwKKyAJCQkJICAgICBfX3djc2NtcF9h dngyX3J0bSkKKyAJICAgICAgLyogSVNBIFYyIHdyYXBwZXIgZm9yIFNTRTIgaW1wbGVtZW50YXRp b24gYmVjYXVzZSB0aGUgU1NFMgorQEAgLTgzMCwxMCArODMyLDEyIEBAIF9fbGliY19pZnVuY19p bXBsX2xpc3QgKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBsaWJjX2lmdW5jX2ltcGwgKmFycmF5 LAorIAkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKEJNSTIpKSwKKyAJCQkJICAgICBf X3djc25jbXBfZXZleCkKKyAJICAgICAgWDg2X0lGVU5DX0lNUExfQUREX1YzIChhcnJheSwgaSwg d2NzbmNtcCwKKy0JCQkJICAgICBDUFVfRkVBVFVSRV9VU0FCTEUgKEFWWDIpLAorKwkJCQkgICAg IChDUFVfRkVBVFVSRV9VU0FCTEUgKEFWWDIpCisrCQkJCSAgICAgICYmIENQVV9GRUFUVVJFX1VT QUJMRSAoQk1JMikpLAorIAkJCQkgICAgIF9fd2NzbmNtcF9hdngyKQorIAkgICAgICBYODZfSUZV TkNfSU1QTF9BRERfVjMgKGFycmF5LCBpLCB3Y3NuY21wLAorIAkJCQkgICAgIChDUFVfRkVBVFVS RV9VU0FCTEUgKEFWWDIpCisrCQkJCSAgICAgICYmIENQVV9GRUFUVVJFX1VTQUJMRSAoQk1JMikK KyAJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChSVE0pKSwKKyAJCQkJICAgICBfX3dj c25jbXBfYXZ4Ml9ydG0pCisgCSAgICAgIC8qIElTQSBWMiB3cmFwcGVyIGZvciBHRU5FUklDIGlt cGxlbWVudGF0aW9uIGJlY2F1c2UgdGhlCistLSAKKzIuMzguMQorCisKK0Zyb20gZDkxOTZkNGYz ZmE5OTk3Mzg4NjU1ODEzZGRkMjM2NDI2YTE2ZGQ5MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK K0Zyb206IEF1cmVsaWVuIEphcm5vIDxhdXJlbGllbkBhdXJlbDMyLm5ldD4KK0RhdGU6IE1vbiwg MyBPY3QgMjAyMiAyMzo0NjoxMSArMDIwMAorU3ViamVjdDogeDg2LTY0OiBSZXF1aXJlIEJNSTIg Zm9yIEFWWDIgKHJhd3x3KW1lbWNociBpbXBsZW1lbnRhdGlvbnMKKworVGhlIEFWWDIgbWVtY2hy LCByYXdtZW1jaHIgYW5kIHdtZW1jaHIgaW1wbGVtZW50YXRpb25zIHVzZSB0aGUgJ2J6aGknCith bmQgJ3NhcngnIGluc3RydWN0aW9ucywgd2hpY2ggYmVsb25ncyB0byB0aGUgQk1JMiBDUFUgZmVh dHVyZS4KKworRml4ZXM6IGFjZmQwODhhMTk2MyAoIng4NjogT3B0aW1pemUgbWVtY2hyLWF2eDIu UyIpCitQYXJ0aWFsbHkgcmVzb2x2ZXM6IEJaICMyOTYxMQorCitSZXZpZXdlZC1ieTogTm9haCBH b2xkc3RlaW4gIDxnb2xkc3RlaW4udy5uQGdtYWlsLmNvbT4KKyhjaGVycnkgcGlja2VkIGZyb20g Y29tbWl0IGUzZTdmYWI3ZmU1MTg2ZDE4Y2EyMDQ2ZDk5YmEzMjFjMjdkYjMwYWQpCistLS0KKyBz eXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvaWZ1bmMtaW1wbC1saXN0LmMgfCAxMiArKysrKysrKyst LS0KKyAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQorCitk aWZmIC0tZ2l0IGEvc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL2lmdW5jLWltcGwtbGlzdC5jIGIv c3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL2lmdW5jLWltcGwtbGlzdC5jCitpbmRleCBmZWM4Nzkw YzExLi43Yzg0OTYzZDkyIDEwMDY0NAorLS0tIGEvc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL2lm dW5jLWltcGwtbGlzdC5jCisrKysgYi9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvaWZ1bmMtaW1w bC1saXN0LmMKK0BAIC02OSwxMCArNjksMTIgQEAgX19saWJjX2lmdW5jX2ltcGxfbGlzdCAoY29u c3QgY2hhciAqbmFtZSwgc3RydWN0IGxpYmNfaWZ1bmNfaW1wbCAqYXJyYXksCisgCQkJCSAgICAg ICYmIENQVV9GRUFUVVJFX1VTQUJMRSAoQk1JMikpLAorIAkJCQkgICAgIF9fbWVtY2hyX2V2ZXhf cnRtKQorIAkgICAgICBYODZfSUZVTkNfSU1QTF9BRERfVjMgKGFycmF5LCBpLCBtZW1jaHIsCist CQkJCSAgICAgQ1BVX0ZFQVRVUkVfVVNBQkxFIChBVlgyKSwKKysJCQkJICAgICAoQ1BVX0ZFQVRV UkVfVVNBQkxFIChBVlgyKQorKwkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKEJNSTIp KSwKKyAJCQkJICAgICBfX21lbWNocl9hdngyKQorIAkgICAgICBYODZfSUZVTkNfSU1QTF9BRERf VjMgKGFycmF5LCBpLCBtZW1jaHIsCisgCQkJCSAgICAgKENQVV9GRUFUVVJFX1VTQUJMRSAoQVZY MikKKysJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChCTUkyKQorIAkJCQkgICAgICAm JiBDUFVfRkVBVFVSRV9VU0FCTEUgKFJUTSkpLAorIAkJCQkgICAgIF9fbWVtY2hyX2F2eDJfcnRt KQorIAkgICAgICAvKiBJU0EgVjIgd3JhcHBlciBmb3IgU1NFMiBpbXBsZW1lbnRhdGlvbiBiZWNh dXNlIHRoZSBTU0UyCitAQCAtMzM1LDEwICszMzcsMTIgQEAgX19saWJjX2lmdW5jX2ltcGxfbGlz dCAoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IGxpYmNfaWZ1bmNfaW1wbCAqYXJyYXksCisgCQkJ CSAgICAgICYmIENQVV9GRUFUVVJFX1VTQUJMRSAoQk1JMikpLAorIAkJCQkgICAgIF9fcmF3bWVt Y2hyX2V2ZXhfcnRtKQorIAkgICAgICBYODZfSUZVTkNfSU1QTF9BRERfVjMgKGFycmF5LCBpLCBy YXdtZW1jaHIsCistCQkJCSAgICAgQ1BVX0ZFQVRVUkVfVVNBQkxFIChBVlgyKSwKKysJCQkJICAg ICAoQ1BVX0ZFQVRVUkVfVVNBQkxFIChBVlgyKQorKwkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9V U0FCTEUgKEJNSTIpKSwKKyAJCQkJICAgICBfX3Jhd21lbWNocl9hdngyKQorIAkgICAgICBYODZf SUZVTkNfSU1QTF9BRERfVjMgKGFycmF5LCBpLCByYXdtZW1jaHIsCisgCQkJCSAgICAgKENQVV9G RUFUVVJFX1VTQUJMRSAoQVZYMikKKysJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChC TUkyKQorIAkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKFJUTSkpLAorIAkJCQkgICAg IF9fcmF3bWVtY2hyX2F2eDJfcnRtKQorIAkgICAgICAvKiBJU0EgVjIgd3JhcHBlciBmb3IgU1NF MiBpbXBsZW1lbnRhdGlvbiBiZWNhdXNlIHRoZSBTU0UyCitAQCAtOTI3LDEwICs5MzEsMTIgQEAg X19saWJjX2lmdW5jX2ltcGxfbGlzdCAoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IGxpYmNfaWZ1 bmNfaW1wbCAqYXJyYXksCisgCQkJCSAgICAgICYmIENQVV9GRUFUVVJFX1VTQUJMRSAoQk1JMikp LAorIAkJCQkgICAgIF9fd21lbWNocl9ldmV4X3J0bSkKKyAJICAgICAgWDg2X0lGVU5DX0lNUExf QUREX1YzIChhcnJheSwgaSwgd21lbWNociwKKy0JCQkJICAgICBDUFVfRkVBVFVSRV9VU0FCTEUg KEFWWDIpLAorKwkJCQkgICAgIChDUFVfRkVBVFVSRV9VU0FCTEUgKEFWWDIpCisrCQkJCSAgICAg ICYmIENQVV9GRUFUVVJFX1VTQUJMRSAoQk1JMikpLAorIAkJCQkgICAgIF9fd21lbWNocl9hdngy KQorIAkgICAgICBYODZfSUZVTkNfSU1QTF9BRERfVjMgKGFycmF5LCBpLCB3bWVtY2hyLAorIAkJ CQkgICAgIChDUFVfRkVBVFVSRV9VU0FCTEUgKEFWWDIpCisrCQkJCSAgICAgICYmIENQVV9GRUFU VVJFX1VTQUJMRSAoQk1JMikKKyAJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChSVE0p KSwKKyAJCQkJICAgICBfX3dtZW1jaHJfYXZ4Ml9ydG0pCisgCSAgICAgIC8qIElTQSBWMiB3cmFw cGVyIGZvciBTU0UyIGltcGxlbWVudGF0aW9uIGJlY2F1c2UgdGhlIFNTRTIKKy0tIAorMi4zOC4x CisKKworRnJvbSA5MjNjM2YzYzM3M2Y0OTllNjIxNjBlMDA4MzFkZGE1NzY0NDMzMTdiIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQXVyZWxpZW4gSmFybm8gPGF1cmVsaWVuQGF1cmVs MzIubmV0PgorRGF0ZTogTW9uLCAzIE9jdCAyMDIyIDIzOjQ2OjExICswMjAwCitTdWJqZWN0OiB4 ODYtNjQ6IFJlcXVpcmUgQk1JMiBhbmQgTFpDTlQgZm9yIEFWWDIgbWVtcmNociBpbXBsZW1lbnRh dGlvbgorCitUaGUgQVZYMiBtZW1yY2hyIGltcGxlbWVudGF0aW9uIHVzZXMgdGhlICdzaGx4bCcg aW5zdHJ1Y3Rpb24sIHdoaWNoCitiZWxvbmdzIHRvIHRoZSBCTUkyIENQVSBmZWF0dXJlIGFuZCB1 c2VzIHRoZSAnbHpjbnQnIGluc3RydWN0aW9uLCB3aGljaAorYmVsb25ncyB0byB0aGUgTFpDTlQg Q1BVIGZlYXR1cmUuCisKK0ZpeGVzOiBhZjUzMDZhNzM1ZWIgKCJ4ODY6IE9wdGltaXplIG1lbXJj aHItYXZ4Mi5TIikKK1BhcnRpYWxseSByZXNvbHZlczogQlogIzI5NjExCisKK1Jldmlld2VkLWJ5 OiBOb2FoIEdvbGRzdGVpbiAgPGdvbGRzdGVpbi53Lm5AZ21haWwuY29tPgorKGNoZXJyeSBwaWNr ZWQgZnJvbSBjb21taXQgM2MwYzc4YWZhYmZlZDRiNmZjMTYxYzE1OWU2MjhmYmYxNGZmMzcwYikK Ky0tLQorIHN5c2RlcHMveDg2L2lzYS1sZXZlbC5oICAgICAgICAgICAgICAgICAgICB8ICAxICsK KyBzeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvaWZ1bmMtYXZ4Mi5oICAgICAgfCAgMSArCisgc3lz ZGVwcy94ODZfNjQvbXVsdGlhcmNoL2lmdW5jLWltcGwtbGlzdC5jIHwgMTAgKysrKysrKystLQor IDMgZmlsZXMgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKKworZGlm ZiAtLWdpdCBhL3N5c2RlcHMveDg2L2lzYS1sZXZlbC5oIGIvc3lzZGVwcy94ODYvaXNhLWxldmVs LmgKK2luZGV4IDNjNDQ4MGFiYTcuLmJiYjkwZjVjNWUgMTAwNjQ0CistLS0gYS9zeXNkZXBzL3g4 Ni9pc2EtbGV2ZWwuaAorKysrIGIvc3lzZGVwcy94ODYvaXNhLWxldmVsLmgKK0BAIC04MCw2ICs4 MCw3IEBACisgI2RlZmluZSBBVlhfWDg2X0lTQV9MRVZFTCAzCisgI2RlZmluZSBBVlgyX1g4Nl9J U0FfTEVWRUwgMworICNkZWZpbmUgQk1JMl9YODZfSVNBX0xFVkVMIDMKKysjZGVmaW5lIExaQ05U X1g4Nl9JU0FfTEVWRUwgMworICNkZWZpbmUgTU9WQkVfWDg2X0lTQV9MRVZFTCAzCisgCisgLyog SVNBIGxldmVsID49IDIgZ3VhcmFudGVlZCBpbmNsdWRlcy4gICovCitkaWZmIC0tZ2l0IGEvc3lz ZGVwcy94ODZfNjQvbXVsdGlhcmNoL2lmdW5jLWF2eDIuaCBiL3N5c2RlcHMveDg2XzY0L211bHRp YXJjaC9pZnVuYy1hdngyLmgKK2luZGV4IGE1N2E5OTUyZjMuLmYxNzQxMDgzZmQgMTAwNjQ0Cist LS0gYS9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvaWZ1bmMtYXZ4Mi5oCisrKysgYi9zeXNkZXBz L3g4Nl82NC9tdWx0aWFyY2gvaWZ1bmMtYXZ4Mi5oCitAQCAtMzcsNiArMzcsNyBAQCBJRlVOQ19T RUxFQ1RPUiAodm9pZCkKKyAKKyAgIGlmIChYODZfSVNBX0NQVV9GRUFUVVJFX1VTQUJMRV9QIChj cHVfZmVhdHVyZXMsIEFWWDIpCisgICAgICAgJiYgWDg2X0lTQV9DUFVfRkVBVFVSRV9VU0FCTEVf UCAoY3B1X2ZlYXR1cmVzLCBCTUkyKQorKyAgICAgICYmIFg4Nl9JU0FfQ1BVX0ZFQVRVUkVfVVNB QkxFX1AgKGNwdV9mZWF0dXJlcywgTFpDTlQpCisgICAgICAgJiYgWDg2X0lTQV9DUFVfRkVBVFVS RVNfQVJDSF9QIChjcHVfZmVhdHVyZXMsCisgCQkJCSAgICAgIEFWWF9GYXN0X1VuYWxpZ25lZF9M b2FkLCApKQorICAgICB7CitkaWZmIC0tZ2l0IGEvc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL2lm dW5jLWltcGwtbGlzdC5jIGIvc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL2lmdW5jLWltcGwtbGlz dC5jCitpbmRleCA3Yzg0OTYzZDkyLi5lYzFjNWI1NWZiIDEwMDY0NAorLS0tIGEvc3lzZGVwcy94 ODZfNjQvbXVsdGlhcmNoL2lmdW5jLWltcGwtbGlzdC5jCisrKysgYi9zeXNkZXBzL3g4Nl82NC9t dWx0aWFyY2gvaWZ1bmMtaW1wbC1saXN0LmMKK0BAIC0yMDksMTMgKzIwOSwxOSBAQCBfX2xpYmNf aWZ1bmNfaW1wbF9saXN0IChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgbGliY19pZnVuY19pbXBs ICphcnJheSwKKyAgIElGVU5DX0lNUEwgKGksIG5hbWUsIG1lbXJjaHIsCisgCSAgICAgIFg4Nl9J RlVOQ19JTVBMX0FERF9WNCAoYXJyYXksIGksIG1lbXJjaHIsCisgCQkJCSAgICAgKENQVV9GRUFU VVJFX1VTQUJMRSAoQVZYNTEyVkwpCistCQkJCSAgICAgICYmIENQVV9GRUFUVVJFX1VTQUJMRSAo QVZYNTEyQlcpKSwKKysJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChBVlg1MTJCVykK KysJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChCTUkyKQorKwkJCQkgICAgICAmJiBD UFVfRkVBVFVSRV9VU0FCTEUgKExaQ05UKSksCisgCQkJCSAgICAgX19tZW1yY2hyX2V2ZXgpCisg CSAgICAgIFg4Nl9JRlVOQ19JTVBMX0FERF9WMyAoYXJyYXksIGksIG1lbXJjaHIsCistCQkJCSAg ICAgQ1BVX0ZFQVRVUkVfVVNBQkxFIChBVlgyKSwKKysJCQkJICAgICAoQ1BVX0ZFQVRVUkVfVVNB QkxFIChBVlgyKQorKwkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKEJNSTIpCisrCQkJ CSAgICAgICYmIENQVV9GRUFUVVJFX1VTQUJMRSAoTFpDTlQpKSwKKyAJCQkJICAgICBfX21lbXJj aHJfYXZ4MikKKyAJICAgICAgWDg2X0lGVU5DX0lNUExfQUREX1YzIChhcnJheSwgaSwgbWVtcmNo ciwKKyAJCQkJICAgICAoQ1BVX0ZFQVRVUkVfVVNBQkxFIChBVlgyKQorKwkJCQkgICAgICAmJiBD UFVfRkVBVFVSRV9VU0FCTEUgKEJNSTIpCisrCQkJCSAgICAgICYmIENQVV9GRUFUVVJFX1VTQUJM RSAoTFpDTlQpCisgCQkJCSAgICAgICYmIENQVV9GRUFUVVJFX1VTQUJMRSAoUlRNKSksCisgCQkJ CSAgICAgX19tZW1yY2hyX2F2eDJfcnRtKQorIAkgICAgICAvKiBJU0EgVjIgd3JhcHBlciBmb3Ig U1NFMiBpbXBsZW1lbnRhdGlvbiBiZWNhdXNlIHRoZSBTU0UyCistLSAKKzIuMzguMQorCisKK0Zy b20gMmQ4ZWY3ODRiZDZhNzg0NDk2YTZmZDQ2MGRlNmI2ZjU3YzcwYTUwMSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKK0Zyb206IEF1cmVsaWVuIEphcm5vIDxhdXJlbGllbkBhdXJlbDMyLm5ldD4K K0RhdGU6IE1vbiwgMyBPY3QgMjAyMiAyMzo0NjoxMSArMDIwMAorU3ViamVjdDogeDg2LTY0OiBS ZXF1aXJlIEJNSTEvQk1JMiBmb3IgQVZYMiBzdHJyY2hyIGFuZCB3Y3NyY2hyCisgaW1wbGVtZW50 YXRpb25zCisKK1RoZSBBVlgyIHN0cnJjaHIgYW5kIHdjc3JjaHIgaW1wbGVtZW50YXRpb24gdXNl cyB0aGUgJ2Jsc21zaycKK2luc3RydWN0aW9uIHdoaWNoIGJlbG9uZ3MgdG8gdGhlIEJNSTEgQ1BV IGZlYXR1cmUgYW5kIHRoZSAnc2hyeCcKK2luc3RydWN0aW9uLCB3aGljaCBiZWxvbmdzIHRvIHRo ZSBCTUkyIENQVSBmZWF0dXJlLgorCitGaXhlczogZGY3ZTI5NWQxOGZmICgieDg2OiBPcHRpbWl6 ZSB7c3RyfHdjc31yY2hyLWF2eDIiKQorUGFydGlhbGx5IHJlc29sdmVzOiBCWiAjMjk2MTEKKwor UmV2aWV3ZWQtYnk6IE5vYWggR29sZHN0ZWluICA8Z29sZHN0ZWluLncubkBnbWFpbC5jb20+Ciso Y2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA3ZTgyODMxNzBjNWQ2ODA1YjYwOWEwNDA4MDFkODE5 ZTM2MmE2MjkyKQorLS0tCisgc3lzZGVwcy94ODYvaXNhLWxldmVsLmggICAgICAgICAgICAgICAg ICAgIHwgIDEgKworIHN5c2RlcHMveDg2XzY0L211bHRpYXJjaC9pZnVuYy1hdngyLmggICAgICB8 ICAxICsKKyBzeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvaWZ1bmMtaW1wbC1saXN0LmMgfCAxNyAr KysrKysrKysrKysrKy0tLQorIDMgZmlsZXMgY2hhbmdlZCwgMTYgaW5zZXJ0aW9ucygrKSwgMyBk ZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3N5c2RlcHMveDg2L2lzYS1sZXZlbC5oIGIvc3lz ZGVwcy94ODYvaXNhLWxldmVsLmgKK2luZGV4IGJiYjkwZjVjNWUuLjA2ZjZjOTY2M2UgMTAwNjQ0 CistLS0gYS9zeXNkZXBzL3g4Ni9pc2EtbGV2ZWwuaAorKysrIGIvc3lzZGVwcy94ODYvaXNhLWxl dmVsLmgKK0BAIC03OSw2ICs3OSw3IEBACisgLyogSVNBIGxldmVsID49IDMgZ3VhcmFudGVlZCBp bmNsdWRlcy4gICovCisgI2RlZmluZSBBVlhfWDg2X0lTQV9MRVZFTCAzCisgI2RlZmluZSBBVlgy X1g4Nl9JU0FfTEVWRUwgMworKyNkZWZpbmUgQk1JMV9YODZfSVNBX0xFVkVMIDMKKyAjZGVmaW5l IEJNSTJfWDg2X0lTQV9MRVZFTCAzCisgI2RlZmluZSBMWkNOVF9YODZfSVNBX0xFVkVMIDMKKyAj ZGVmaW5lIE1PVkJFX1g4Nl9JU0FfTEVWRUwgMworZGlmZiAtLWdpdCBhL3N5c2RlcHMveDg2XzY0 L211bHRpYXJjaC9pZnVuYy1hdngyLmggYi9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvaWZ1bmMt YXZ4Mi5oCitpbmRleCBmMTc0MTA4M2ZkLi5mMmY1ZThhMjExIDEwMDY0NAorLS0tIGEvc3lzZGVw cy94ODZfNjQvbXVsdGlhcmNoL2lmdW5jLWF2eDIuaAorKysrIGIvc3lzZGVwcy94ODZfNjQvbXVs dGlhcmNoL2lmdW5jLWF2eDIuaAorQEAgLTM2LDYgKzM2LDcgQEAgSUZVTkNfU0VMRUNUT1IgKHZv aWQpCisgICBjb25zdCBzdHJ1Y3QgY3B1X2ZlYXR1cmVzICpjcHVfZmVhdHVyZXMgPSBfX2dldF9j cHVfZmVhdHVyZXMgKCk7CisgCisgICBpZiAoWDg2X0lTQV9DUFVfRkVBVFVSRV9VU0FCTEVfUCAo Y3B1X2ZlYXR1cmVzLCBBVlgyKQorKyAgICAgICYmIFg4Nl9JU0FfQ1BVX0ZFQVRVUkVfVVNBQkxF X1AgKGNwdV9mZWF0dXJlcywgQk1JMSkKKyAgICAgICAmJiBYODZfSVNBX0NQVV9GRUFUVVJFX1VT QUJMRV9QIChjcHVfZmVhdHVyZXMsIEJNSTIpCisgICAgICAgJiYgWDg2X0lTQV9DUFVfRkVBVFVS RV9VU0FCTEVfUCAoY3B1X2ZlYXR1cmVzLCBMWkNOVCkKKyAgICAgICAmJiBYODZfSVNBX0NQVV9G RUFUVVJFU19BUkNIX1AgKGNwdV9mZWF0dXJlcywKK2RpZmYgLS1naXQgYS9zeXNkZXBzL3g4Nl82 NC9tdWx0aWFyY2gvaWZ1bmMtaW1wbC1saXN0LmMgYi9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gv aWZ1bmMtaW1wbC1saXN0LmMKK2luZGV4IGVjMWM1YjU1ZmIuLjAwYTkxMTIzZDMgMTAwNjQ0Cist LS0gYS9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvaWZ1bmMtaW1wbC1saXN0LmMKKysrKyBiL3N5 c2RlcHMveDg2XzY0L211bHRpYXJjaC9pZnVuYy1pbXBsLWxpc3QuYworQEAgLTU3OCwxMyArNTc4 LDE5IEBAIF9fbGliY19pZnVuY19pbXBsX2xpc3QgKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBs aWJjX2lmdW5jX2ltcGwgKmFycmF5LAorICAgSUZVTkNfSU1QTCAoaSwgbmFtZSwgc3RycmNociwK KyAJICAgICAgWDg2X0lGVU5DX0lNUExfQUREX1Y0IChhcnJheSwgaSwgc3RycmNociwKKyAJCQkJ ICAgICAoQ1BVX0ZFQVRVUkVfVVNBQkxFIChBVlg1MTJWTCkKKy0JCQkJICAgICAgJiYgQ1BVX0ZF QVRVUkVfVVNBQkxFIChBVlg1MTJCVykpLAorKwkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FC TEUgKEFWWDUxMkJXKQorKwkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKEJNSTEpCisr CQkJCSAgICAgICYmIENQVV9GRUFUVVJFX1VTQUJMRSAoQk1JMikpLAorIAkJCQkgICAgIF9fc3Ry cmNocl9ldmV4KQorIAkgICAgICBYODZfSUZVTkNfSU1QTF9BRERfVjMgKGFycmF5LCBpLCBzdHJy Y2hyLAorLQkJCQkgICAgIENQVV9GRUFUVVJFX1VTQUJMRSAoQVZYMiksCisrCQkJCSAgICAgKENQ VV9GRUFUVVJFX1VTQUJMRSAoQVZYMikKKysJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxF IChCTUkxKQorKwkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKEJNSTIpKSwKKyAJCQkJ ICAgICBfX3N0cnJjaHJfYXZ4MikKKyAJICAgICAgWDg2X0lGVU5DX0lNUExfQUREX1YzIChhcnJh eSwgaSwgc3RycmNociwKKyAJCQkJICAgICAoQ1BVX0ZFQVRVUkVfVVNBQkxFIChBVlgyKQorKwkJ CQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKEJNSTEpCisrCQkJCSAgICAgICYmIENQVV9G RUFUVVJFX1VTQUJMRSAoQk1JMikKKyAJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChS VE0pKSwKKyAJCQkJICAgICBfX3N0cnJjaHJfYXZ4Ml9ydG0pCisgCSAgICAgIC8qIElTQSBWMiB3 cmFwcGVyIGZvciBTU0UyIGltcGxlbWVudGF0aW9uIGJlY2F1c2UgdGhlIFNTRTIKK0BAIC03OTcs MTMgKzgwMywxOCBAQCBfX2xpYmNfaWZ1bmNfaW1wbF9saXN0IChjb25zdCBjaGFyICpuYW1lLCBz dHJ1Y3QgbGliY19pZnVuY19pbXBsICphcnJheSwKKyAJICAgICAgWDg2X0lGVU5DX0lNUExfQURE X1Y0IChhcnJheSwgaSwgd2NzcmNociwKKyAJCQkJICAgICAoQ1BVX0ZFQVRVUkVfVVNBQkxFIChB Vlg1MTJWTCkKKyAJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChBVlg1MTJCVykKKysJ CQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChCTUkxKQorIAkJCQkgICAgICAmJiBDUFVf RkVBVFVSRV9VU0FCTEUgKEJNSTIpKSwKKyAJCQkJICAgICBfX3djc3JjaHJfZXZleCkKKyAJICAg ICAgWDg2X0lGVU5DX0lNUExfQUREX1YzIChhcnJheSwgaSwgd2NzcmNociwKKy0JCQkJICAgICBD UFVfRkVBVFVSRV9VU0FCTEUgKEFWWDIpLAorKwkJCQkgICAgIChDUFVfRkVBVFVSRV9VU0FCTEUg KEFWWDIpCisrCQkJCSAgICAgICYmIENQVV9GRUFUVVJFX1VTQUJMRSAoQk1JMSkKKysJCQkJICAg ICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChCTUkyKSksCisgCQkJCSAgICAgX193Y3NyY2hyX2F2 eDIpCisgCSAgICAgIFg4Nl9JRlVOQ19JTVBMX0FERF9WMyAoYXJyYXksIGksIHdjc3JjaHIsCisg CQkJCSAgICAgKENQVV9GRUFUVVJFX1VTQUJMRSAoQVZYMikKKysJCQkJICAgICAgJiYgQ1BVX0ZF QVRVUkVfVVNBQkxFIChCTUkxKQorKwkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKEJN STIpCisgCQkJCSAgICAgICYmIENQVV9GRUFUVVJFX1VTQUJMRSAoUlRNKSksCisgCQkJCSAgICAg X193Y3NyY2hyX2F2eDJfcnRtKQorIAkgICAgICAvKiBJU0EgVjIgd3JhcHBlciBmb3IgU1NFMiBp bXBsZW1lbnRhdGlvbiBiZWNhdXNlIHRoZSBTU0UyCistLSAKKzIuMzguMQorCisKK0Zyb20gMmJk ODE1ZDgzNDc4NTEyMTJiOWE5MWRiZGNhODA1M2Y0ZGJkYWM4NyBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKK0Zyb206IFNpZGRoZXNoIFBveWFyZWthciA8c2lkZGhlc2hAc291cmNld2FyZS5vcmc+ CitEYXRlOiBUdWUsIDQgT2N0IDIwMjIgMTg6NDM6NTAgLTA0MDAKK1N1YmplY3Q6IG5zY2Q6IERy b3AgbG9jYWwgYWRkcmVzcyB0dXBsZSB2YXJpYWJsZSBbQlogIzI5NjA3XQorTUlNRS1WZXJzaW9u OiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29udGVudC1U cmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitXaGVuIGEgcmVxdWVzdCBuZWVkcyB0byBiZSByZXNl bnQgKGUuZy4gZHVlIHRvIGluc3VmZmljaWVudCBidWZmZXIKK3NwYWNlKSwgdGhlIHJlZmVyZW5j ZXMgdG8gc3Vic2VxdWVudCB0dXBsZXMgaW4gdGhlIGxvY2FsIHZhcmlhYmxlIGFyZQorc3RhbGUg YW5kIHNob3VsZCBub3QgYmUgdXNlZC4gIFRoaXMgdXNlZCB0byB3b3JrIGJ5IGFjY2lkZW50IGJl Zm9yZSwgYnV0CitzaW5jZSAxZDQ5NTkxMmEgaXQgbm8gbG9uZ2VyIGRvZXMuICBJbnN0ZWFkIG9m IHRyeWluZyB0byByZXNldCBpdCwganVzdAorbGV0IGdldGhvc3RieW5hbWU0X3Igd3JpdGUgaW50 byBUVU1QQlVGNiBmb3IgdXMsIHRodXMgbWFpbnRhaW5pbmcgYQorY29uc2lzdGVudCBzdGF0ZSBh dCBhbGwgdGltZXMuICBUaGlzIGlzIG5vdyBjb25zaXN0ZW50IHdpdGggd2hhdCBpcyBkb25lCitp biBnYWloX2luZXQgZm9yIGdldGFkZHJpbmZvLgorCitSZXNvbHZlczogQlogIzI5NjA3CitSZXBv cnRlZC1ieTogSG9sZ2VyIEhvZmZzdMOkdHRlIDxob2xnZXJAYXBwbGllZC1hc3luY2hyb255LmNv bT4KK1Rlc3RlZC1ieTogSG9sZ2VyIEhvZmZzdMOkdHRlIDxob2xnZXJAYXBwbGllZC1hc3luY2hy b255LmNvbT4KK1Jldmlld2VkLWJ5OiBDYXJsb3MgTydEb25lbGwgPGNhcmxvc0ByZWRoYXQuY29t PgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgNmUzM2U1YzRiNzNjZWE3YjhhYTNkZTA5NDcx MjNkYjE2MjAwZmI2NSkKKy0tLQorIE5FV1MgICAgICAgICAgIHwgMiArKworIG5zY2QvYWljYWNo ZS5jIHwgNSArKy0tLQorIDIgZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAzIGRlbGV0 aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvTkVXUyBiL05FV1MKK2luZGV4IDkxYmNmZWI3YTYuLjYz ZTI2ZDcwNjIgMTAwNjQ0CistLS0gYS9ORVdTCisrKysgYi9ORVdTCitAQCAtMjgsNiArMjgsOCBA QCBUaGUgZm9sbG93aW5nIGJ1Z3MgYXJlIHJlc29sdmVkIHdpdGggdGhpcyByZWxlYXNlOgorICAg WzI5NTM3XSBsaWJjOiBbMi4zNCByZWdyZXNzaW9uXTogQWxpZ25tZW50IGlzc3VlIG9uIG02OGsg d2hlbiB1c2luZworICAgWzI5NTM5XSBsaWJjOiBMRF9UUkFDRV9MT0FERURfT0JKRUNUUyBjaGFu Z2VkIGhvdyB2RFNPIGxpYnJhcnkgYXJlCisgICBbMjk1ODNdIFVzZSA2NC1iaXQgaW50ZXJmYWNl cyBpbiBnY29udl9wYXJzZWNvbmZkaXIKKysgIFsyOTYwN10gbnNjZCByZXBlYXRhYmx5IGNyYXNo ZXMgY2FsbGluZyBfX3N0cmxlbl9hdngyIHdoZW4gaG9zdHMgY2FjaGUgaXMKKysgICAgZW5hYmxl ZAorICAgWzI5NjM4XSBsaWJjOiBzdGRsaWI6IGFyYzRyYW5kb20gZmFsbGJhY2sgaXMgbmV2ZXIg dXNlZAorIAwKKyBWZXJzaW9uIDIuMzYKK2RpZmYgLS1naXQgYS9uc2NkL2FpY2FjaGUuYyBiL25z Y2QvYWljYWNoZS5jCitpbmRleCA1MWU3OTMxOTlmLi5lMGJhZWQxNzBiIDEwMDY0NAorLS0tIGEv bnNjZC9haWNhY2hlLmMKKysrKyBiL25zY2QvYWljYWNoZS5jCitAQCAtMTEwLDExICsxMTAsMTAg QEAgYWRkaHN0YWlYIChzdHJ1Y3QgZGF0YWJhc2VfZHluICpkYiwgaW50IGZkLCByZXF1ZXN0X2hl YWRlciAqcmVxLAorIAkJCQkJCQkgICJnZXRob3N0YnluYW1lNF9yIik7CisgICAgICAgaWYgKGZj dDQgIT0gTlVMTCkKKyAJeworLQkgIHN0cnVjdCBnYWloX2FkZHJ0dXBsZSBhdG1lbTsKKyAJICBz dHJ1Y3QgZ2FpaF9hZGRydHVwbGUgKmF0OworIAkgIHdoaWxlICgxKQorIAkgICAgeworLQkgICAg ICBhdCA9ICZhdG1lbTsKKysJICAgICAgYXQgPSBOVUxMOworIAkgICAgICByYzYgPSAwOworIAkg ICAgICBoZXJybm8gPSAwOworIAkgICAgICBzdGF0dXNbMV0gPSBETF9DQUxMX0ZDVCAoZmN0NCwg KGtleSwgJmF0LAorQEAgLTEzNyw3ICsxMzYsNyBAQCBhZGRoc3RhaVggKHN0cnVjdCBkYXRhYmFz ZV9keW4gKmRiLCBpbnQgZmQsIHJlcXVlc3RfaGVhZGVyICpyZXEsCisgCSAgICBnb3RvIG5leHRf bmlwOworIAorIAkgIC8qIFdlIGZvdW5kIHRoZSBkYXRhLiAgQ291bnQgdGhlIGFkZHJlc3NlcyBh bmQgdGhlIHNpemUuICAqLworLQkgIGZvciAoY29uc3Qgc3RydWN0IGdhaWhfYWRkcnR1cGxlICph dDIgPSBhdCA9ICZhdG1lbTsgYXQyICE9IE5VTEw7CisrCSAgZm9yIChjb25zdCBzdHJ1Y3QgZ2Fp aF9hZGRydHVwbGUgKmF0MiA9IGF0OyBhdDIgIT0gTlVMTDsKKyAJICAgICAgIGF0MiA9IGF0Mi0+ bmV4dCkKKyAJICAgIHsKKyAJICAgICAgKytuYWRkcnM7CistLSAKKzIuMzguMQorCisKK0Zyb20g M2UyNzkxOTI3NDljZmNhZTRjZWViYjFmMjFhMzI3NWU2NzdkMDU2MSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKK0Zyb206IE1pY2hhZWwgSHVkc29uLURveWxlIDxtaWNoYWVsLmh1ZHNvbkBjYW5v bmljYWwuY29tPgorRGF0ZTogRnJpLCAxMiBBdWcgMjAyMiAxMToyOTozMSArMTIwMAorU3ViamVj dDogRW5zdXJlIGNhbGN1bGF0aW9ucyBoYXBwZW4gd2l0aCBkZXNpcmVkIHJvdW5kaW5nIG1vZGUg aW4geTFsZjEyOAorCittYXRoL3Rlc3QtZmxvYXQxMjgteTEgZmFpbHMgb24geDg2XzY0IGFuZCBw cGM2NGVsIHdpdGggZ2NjIDEyIGFuZCAtTzMsCitiZWNhdXNlIGNvZGUgaW5zaWRlIGEgYmxvY2sg Z3VhcmRlZCBieSBTRVRfUkVTVE9SRV9ST1VOREwgaXMgYmVpbmcgbW92ZWQKK2FmdGVyIHRoZSBy b3VuZGluZyBtb2RlIGhhcyBiZWVuIHJlc3RvcmVkLiBVc2UgbWF0aF9mb3JjZV9ldmFsIHRvCitw cmV2ZW50IHRoaXMgKGFuZCBpbnNlcnQgc29tZSBtYXRoX29wdF9iYXJyaWVyIGNhbGxzIHRvIHBy ZXZlbnQgY29kZQorZnJvbSBiZWluZyBtb3ZlZCBiZWZvcmUgdGhlIHJvdW5kaW5nIG1vZGUgaXMg c2V0KS4KKworRml4ZXMgIzI5NDYzCisKK1Jldmlld2VkLUJ5OiBXaWxjbyBEaWprc3RyYSA8V2ls Y28uRGlqa3N0cmFAYXJtLmNvbT4KKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDJiMjc0ZmQ4 YzljNzc2Y2Y3MGZjZGI4MzU2ZTY3OGFkYTUyMmE3YjApCistLS0KKyBORVdTICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8IDEgKworIHN5c2RlcHMvaWVlZTc1NC9sZGJsLTEyOC9lX2oxbC5j IHwgMyArKysKKyAyIGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0 IGEvTkVXUyBiL05FV1MKK2luZGV4IDYzZTI2ZDcwNjIuLmJlYTFkOGExMWYgMTAwNjQ0CistLS0g YS9ORVdTCisrKysgYi9ORVdTCitAQCAtMjQsNiArMjQsNyBAQCBUaGUgZm9sbG93aW5nIGJ1Z3Mg YXJlIHJlc29sdmVkIHdpdGggdGhpcyByZWxlYXNlOgorICAgWzI5NDQ2XSBfZGxvcGVuIG5vdyBp Z25vcmVzIGRsX2NhbGxlciBhcmd1bWVudCBpbiBzdGF0aWMgbW9kZQorICAgWzI5NDg1XSBMaW51 eDogVGVybWluYXRlIHN1YnByb2Nlc3Mgb24gbGF0ZSBmYWlsdXJlIGluIHRzdC1waWRmZAorICAg WzI5NDkwXSBhbHBoYTogTmV3IF9fYnJrX2NhbGwgaW1wbGVtZW50YXRpb24gaXMgYnJva2VuCisr ICBbMjk0NjNdIG1hdGgvdGVzdC1mbG9hdDEyOC15MSBmYWlscyBvbiB4ODZfNjQKKyAgIFsyOTUy OF0gZWxmOiBDYWxsIF9fbGliY19lYXJseV9pbml0IGZvciByZXVzZWQgbmFtZXNwYWNlcworICAg WzI5NTM3XSBsaWJjOiBbMi4zNCByZWdyZXNzaW9uXTogQWxpZ25tZW50IGlzc3VlIG9uIG02OGsg d2hlbiB1c2luZworICAgWzI5NTM5XSBsaWJjOiBMRF9UUkFDRV9MT0FERURfT0JKRUNUUyBjaGFu Z2VkIGhvdyB2RFNPIGxpYnJhcnkgYXJlCitkaWZmIC0tZ2l0IGEvc3lzZGVwcy9pZWVlNzU0L2xk YmwtMTI4L2VfajFsLmMgYi9zeXNkZXBzL2llZWU3NTQvbGRibC0xMjgvZV9qMWwuYworaW5kZXgg NTRjNDU3NjgxYS4uOWE5YzVjNmYwMCAxMDA2NDQKKy0tLSBhL3N5c2RlcHMvaWVlZTc1NC9sZGJs LTEyOC9lX2oxbC5jCisrKysgYi9zeXNkZXBzL2llZWU3NTQvbGRibC0xMjgvZV9qMWwuYworQEAg LTg2OSwxMCArODY5LDEzIEBAIF9faWVlZTc1NF95MWwgKF9GbG9hdDEyOCB4KQorICAgICB7Cisg ICAgICAgLyogMCA8PSB4IDw9IDIgKi8KKyAgICAgICBTRVRfUkVTVE9SRV9ST1VOREwgKEZFX1RP TkVBUkVTVCk7CisrICAgICAgeHggPSBtYXRoX29wdF9iYXJyaWVyICh4eCk7CisrICAgICAgeCA9 IG1hdGhfb3B0X2JhcnJpZXIgKHgpOworICAgICAgIHogPSB4eCAqIHh4OworICAgICAgIHAgPSB4 eCAqIG5ldmFsICh6LCBZMF8yTiwgTlkwXzJOKSAvIGRldmFsICh6LCBZMF8yRCwgTlkwXzJEKTsK KyAgICAgICBwID0gLVRXT09QSSAvIHh4ICsgcDsKKyAgICAgICBwID0gVFdPT1BJICogX19pZWVl NzU0X2xvZ2wgKHgpICogX19pZWVlNzU0X2oxbCAoeCkgKyBwOworKyAgICAgIG1hdGhfZm9yY2Vf ZXZhbCAocCk7CisgICAgICAgcmV0dXJuIHA7CisgICAgIH0KKyAKKy0tIAorMi4zOC4xCisKKwor RnJvbSA3MDBkMzI4MWY5ZTU3YjUzYzI3YmM5OTEzOTRiMjJkNDY3NDMyNjI2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQorRnJvbTogRmxvcmlhbiBXZWltZXIgPGZ3ZWltZXJAcmVkaGF0LmNvbT4K K0RhdGU6IFR1ZSwgMTMgU2VwIDIwMjIgMTY6MTA6MjAgKzAyMDAKK1N1YmplY3Q6IG5zczogSW1w bGVtZW50IC0tbm8tYWRkcmNvbmZpZyBvcHRpb24gZm9yIGdldGVudAorCitUaGUgYWhvc3RzLCBh aG9zdHN2NCwgYWhvc3RzdjYgY29tbWFuZHMgdW5jb25kaXRpb25hbGx5IHBhc3MKK0FJX0FERFJD T05GSUcgdG8gZ2V0YWRkcmluZm8sIHdoaWNoIGlzIG5vdCBhbHdheXMgZGVzaXJlZC4KKworUmV2 aWV3ZWQtYnk6IENhcmxvcyBPJ0RvbmVsbCA8Y2FybG9zQHJlZGhhdC5jb20+CisoY2hlcnJ5IHBp Y2tlZCBmcm9tIGNvbW1pdCBhNjIzZjEzYWRmYWM0N2M4NjM0YTcyODhlMDhmODIxYTg0NmJjNjUw KQorLS0tCisgTkVXUyAgICAgICAgIHwgIDcgKysrKysrKworIG5zcy9nZXRlbnQuYyB8IDExICsr KysrKysrKystCisgMiBmaWxlcyBjaGFuZ2VkLCAxNyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9u KC0pCisKK2RpZmYgLS1naXQgYS9ORVdTIGIvTkVXUworaW5kZXggYmVhMWQ4YTExZi4uNDYyYTEy MjUzZCAxMDA2NDQKKy0tLSBhL05FV1MKKysrKyBiL05FV1MKK0BAIC03LDYgKzcsMTMgQEAgdXNp bmcgYGdsaWJjJyBpbiB0aGUgInByb2R1Y3QiIGZpZWxkLgorIAwKKyBWZXJzaW9uIDIuMzYuMQor IAorK01ham9yIG5ldyBmZWF0dXJlczoKKysKKysqIFRoZSBnZXRlbnQgdG9vbCBub3cgc3VwcG9y dHMgdGhlIC0tbm8tYWRkcmNvbmZpZyBvcHRpb24uIFRoZSBvdXRwdXQgb2YKKysgIGdldGVudCB3 aXRoIC0tbm8tYWRkcmNvbmZpZyBtYXkgY29udGFpbiBhZGRyZXNzZXMgb2YgZmFtaWxpZXMgbm90 CisrICBjb25maWd1cmVkIG9uIHRoZSBjdXJyZW50IGhvc3QgaS5lLiBhcy1pZiB5b3UgaGFkIG5v dCBwYXNzZWQKKysgIEFJX0FERFJDT05GSUcgdG8gZ2V0YWRkcmluZm8gY2FsbHMuCisrCisgU2Vj dXJpdHkgcmVsYXRlZCBjaGFuZ2VzOgorIAorICAgQ1ZFLTIwMjItMzkwNDY6IFdoZW4gdGhlIHN5 c2xvZyBmdW5jdGlvbiBpcyBwYXNzZWQgYSBjcmFmdGVkIGlucHV0CitkaWZmIC0tZ2l0IGEvbnNz L2dldGVudC5jIGIvbnNzL2dldGVudC5jCitpbmRleCA4MTc4YjRiNDcwLi5kMmQyNTI0YjBjIDEw MDY0NAorLS0tIGEvbnNzL2dldGVudC5jCisrKysgYi9uc3MvZ2V0ZW50LmMKK0BAIC01OCw2ICs1 OCw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYXJncF9vcHRpb24gYXJnc19vcHRpb25zW10gPQor ICAgeworICAgICB7ICJzZXJ2aWNlIiwgJ3MnLCBOXygiQ09ORklHIiksIDAsIE5fKCJTZXJ2aWNl IGNvbmZpZ3VyYXRpb24gdG8gYmUgdXNlZCIpIH0sCisgICAgIHsgIm5vLWlkbiIsICdpJywgTlVM TCwgMCwgTl8oImRpc2FibGUgSUROIGVuY29kaW5nIikgfSwKKysgICAgeyAibm8tYWRkcmNvbmZp ZyIsICdBJywgTlVMTCwgMCwKKysgICAgICBOXygiZG8gbm90IGZpbHRlciBvdXQgdW5zdXBwb3J0 ZWQgSVB2NC9JUHY2IGFkZHJlc3NlcyAod2l0aCBhaG9zdHMqKSIpIH0sCisgICAgIHsgTlVMTCwg MCwgTlVMTCwgMCwgTlVMTCB9LAorICAgfTsKKyAKK0BAIC03OSw2ICs4MSw5IEBAIHN0YXRpYyBz dHJ1Y3QgYXJncCBhcmdwID0KKyAvKiBBZGRpdGlvbmFsIGdldGFkZHJpbmZvIGZsYWdzIGZvciBJ RE4gZW5jb2RpbmcuICAqLworIHN0YXRpYyBpbnQgaWRuX2ZsYWdzID0gQUlfSUROIHwgQUlfQ0FO T05JRE47CisgCisrLyogU2V0IHRvIDAgYnkgLS1uby1hZGRyY29uZmlnLiAgKi8KKytzdGF0aWMg aW50IGFkZHJjb25maWdfZmxhZ3MgPSBBSV9BRERSQ09ORklHOworKworIC8qIFByaW50IHRoZSB2 ZXJzaW9uIGluZm9ybWF0aW9uLiAgKi8KKyBzdGF0aWMgdm9pZAorIHByaW50X3ZlcnNpb24gKEZJ TEUgKnN0cmVhbSwgc3RydWN0IGFyZ3Bfc3RhdGUgKnN0YXRlKQorQEAgLTM0Niw3ICszNTEsNyBA QCBhaG9zdHNfa2V5c19pbnQgKGludCBhZiwgaW50IHhmbGFncywgaW50IG51bWJlciwgY2hhciAq a2V5W10pCisgCisgICBzdHJ1Y3QgYWRkcmluZm8gaGludDsKKyAgIG1lbXNldCAoJmhpbnQsICdc MCcsIHNpemVvZiAoaGludCkpOworLSAgaGludC5haV9mbGFncyA9IChBSV9WNE1BUFBFRCB8IEFJ X0FERFJDT05GSUcgfCBBSV9DQU5PTk5BTUUKKysgIGhpbnQuYWlfZmxhZ3MgPSAoQUlfVjRNQVBQ RUQgfCBhZGRyY29uZmlnX2ZsYWdzIHwgQUlfQ0FOT05OQU1FCisgCQkgICB8IGlkbl9mbGFncyB8 IHhmbGFncyk7CisgICBoaW50LmFpX2ZhbWlseSA9IGFmOworIAorQEAgLTkwNSw2ICs5MTAsMTAg QEAgcGFyc2Vfb3B0aW9uIChpbnQga2V5LCBjaGFyICphcmcsIHN0cnVjdCBhcmdwX3N0YXRlICpz dGF0ZSkKKyAgICAgICBpZG5fZmxhZ3MgPSAwOworICAgICAgIGJyZWFrOworIAorKyAgICBjYXNl ICdBJzoKKysgICAgICBhZGRyY29uZmlnX2ZsYWdzID0gMDsKKysgICAgICBicmVhazsKKysKKyAg ICAgZGVmYXVsdDoKKyAgICAgICByZXR1cm4gQVJHUF9FUlJfVU5LTk9XTjsKKyAgICAgfQorLS0g CisyLjM4LjEKKworCitGcm9tIDI2ODFkMzhjYWZhY2VhZmViMzMwYmMwNTM2ZmE3MTBiNzVlZDU5 NDcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBGbG9yaWFuIFdlaW1lciA8ZndlaW1l ckByZWRoYXQuY29tPgorRGF0ZTogVHVlLCAxMyBTZXAgMjAyMiAxNjoxMTo0MCArMDIwMAorU3Vi amVjdDogbnNzOiBGaXggdHN0LW5zcy1maWxlcy1ob3N0cy1sb25nIG9uIHNpbmdsZS1zdGFjayBo b3N0cyAoYnVnIDI0ODE2KQorCitnZXRlbnQgaW1wbGljaXRseSBwYXNzZXMgQUlfQUREUkNPTkZJ RyB0byBnZXRhZGRyaW5mbyBieSBkZWZhdWx0LgorVXNlIC0tbm8tYWRkcmNvbmZpZyB0byBzdXBw cmVzcyB0aGF0LCBzbyB0aGF0IGJvdGggSVB2NCBhbmQgSVB2NgorbG9va3VwcyBzdWNjZWVkIGV2 ZW4gaWYgdGhlIGFkZHJlc3MgZmFtaWx5IGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlCitob3N0Lgor CitSZXZpZXdlZC1ieTogQ2FybG9zIE8nRG9uZWxsIDxjYXJsb3NAcmVkaGF0LmNvbT4KKyhjaGVy cnkgcGlja2VkIGZyb20gY29tbWl0IGM3NWQyMGI1YjI3YjBhNjBmMDY3ODIzNmY1MWE0ZDNiMGIw NThjMDApCistLS0KKyBORVdTICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxICsKKyBuc3Mv dHN0LW5zcy1maWxlcy1ob3N0cy1sb25nLmMgfCA5ICsrKysrLS0tLQorIDIgZmlsZXMgY2hhbmdl ZCwgNiBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvTkVXUyBi L05FV1MKK2luZGV4IDQ2MmExMjI1M2QuLmRlNzc1YWIxMTYgMTAwNjQ0CistLS0gYS9ORVdTCisr KysgYi9ORVdTCitAQCAtMjQsNiArMjQsNyBAQCBTZWN1cml0eSByZWxhdGVkIGNoYW5nZXM6Cisg VGhlIGZvbGxvd2luZyBidWdzIGFyZSByZXNvbHZlZCB3aXRoIHRoaXMgcmVsZWFzZToKKyAKKyAg IFsxMjE1NF0gRG8gbm90IGZhaWwgRE5TIHJlc29sdXRpb24gZm9yIENOQU1FcyB3aGljaCBhcmUg bm90IGhvc3QgbmFtZXMKKysgIFsyNDgxNl0gRml4IHRzdC1uc3MtZmlsZXMtaG9zdHMtbG9uZyBv biBzaW5nbGUtc3RhY2sgaG9zdHMKKyAgIFsyODg0Nl0gQ01TR19OWFRIRFIgbWF5IHRyaWdnZXIg LVdzdHJpY3Qtb3ZlcmZsb3cgd2FybmluZworICAgWzI5MzA1XSBDb25zZXJ2ZSBOU1MgYnVmZmVy IHNwYWNlIGR1cmluZyBETlMgcGFja2V0IHBhcnNpbmcKKyAgIFsyOTQxNV0gbnNjZDogRml4IG5l dGxpbmsgY2FjaGUgaW52YWxpZGF0aW9uIGlmIGVwb2xsIGlzIHVzZWQKK2RpZmYgLS1naXQgYS9u c3MvdHN0LW5zcy1maWxlcy1ob3N0cy1sb25nLmMgYi9uc3MvdHN0LW5zcy1maWxlcy1ob3N0cy1s b25nLmMKK2luZGV4IDM5NDJjZjVmY2EuLmE3Njk3ZTMxNDMgMTAwNjQ0CistLS0gYS9uc3MvdHN0 LW5zcy1maWxlcy1ob3N0cy1sb25nLmMKKysrKyBiL25zcy90c3QtbnNzLWZpbGVzLWhvc3RzLWxv bmcuYworQEAgLTI4LDE0ICsyOCwxNSBAQCBkb190ZXN0ICh2b2lkKQorIHsKKyAgIGludCByZXQ7 CisgCistICAvKiBSdW4gZ2V0ZW50IHRvIGZldGNoIHRoZSBJUHY0IGFkZHJlc3MgZm9yIGhvc3Qg dGVzdDQuCistICAgICBUaGlzIGZvcmNlcyAvZXRjL2hvc3RzIHRvIGJlIHBhcnNlZC4gICovCist ICByZXQgPSBzeXN0ZW0oImdldGVudCBhaG9zdHN2NCB0ZXN0NCIpOworKyAgLyogUnVuIGdldGVu dCB0byBmZXRjaCB0aGUgSVB2NCBhZGRyZXNzIGZvciBob3N0IHRlc3Q0LiAgVGhpcyBmb3JjZXMK KysgICAgIC9ldGMvaG9zdHMgdG8gYmUgcGFyc2VkLiAgVXNlIC0tbm8tYWRkcmNvbmZpZyB0byBy ZXR1cm4gYWRkcmVzc2VzCisrICAgICBldmVuIGluIGFuIElQdjYtb25seSBlbnZpcm9ubWVudC4g ICovCisrICByZXQgPSBzeXN0ZW0oImdldGVudCAtLW5vLWFkZHJjb25maWcgYWhvc3RzdjQgdGVz dDQiKTsKKyAgIGlmIChyZXQgIT0gMCkKKyAgICAgRkFJTF9FWElUMSgiYWhvc3RzdjQgZmFpbGVk Iik7CisgCisgICAvKiBMaWtld2lzZSBmb3IgSVB2Ni4gICovCistICByZXQgPSBzeXN0ZW0oImdl dGVudCBhaG9zdHN2NiB0ZXN0NiIpOworKyAgcmV0ID0gc3lzdGVtKCJnZXRlbnQgLS1uby1hZGRy Y29uZmlnICBhaG9zdHN2NiB0ZXN0NiIpOworICAgaWYgKHJldCAhPSAwKQorICAgICBGQUlMX0VY SVQxKCJhaG9zdHN2NiBmYWlsZWQiKTsKKyAKKy0tIAorMi4zOC4xCisKKworRnJvbSA5MDg0NTQx MjlkMjExMjZiZjdmYzU4ZjJhNTIwYjFmMzA0ZGM1ZjAyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQorRnJvbTogRmxvcmlhbiBXZWltZXIgPGZ3ZWltZXJAcmVkaGF0LmNvbT4KK0RhdGU6IEZyaSwg MjMgU2VwIDIwMjIgMTk6MzA6NTcgKzAyMDAKK1N1YmplY3Q6IG5zczogVXNlIHNoYXJlZCBwcmVm aXggaW4gSVB2NCBhZGRyZXNzIGluIHRzdC1yZWxvYWQxCisKK090aGVyd2lzZSwgc29ydGluZyBi YXNlZCBvbiB0aGUgbG9uZ2VzdC1tYXRjaGluZyBwcmVmaXggaW4KK2dldGFkZHJpbmZvIGNhbiBy ZW9yZGVyIHRoZSBhZGRyZXNzZXMgaW4gd2F5cyB0aGUgdGVzdCBkb2VzIG5vdAorZXhwZWN0LCBk ZXBlbmRpbmcgb24gdGhlIElQdjQgYWRkcmVzcyBvZiB0aGUgaG9zdC4KKworUmV2aWV3ZWQtYnk6 IFNpZGRoZXNoIFBveWFyZWthciA8c2lkZGhlc2hAc291cmNld2FyZS5vcmc+CisoY2hlcnJ5IHBp Y2tlZCBmcm9tIGNvbW1pdCBjMDJlMjlhMGJhNDdkNjM2MjgxZTFhMDI2NDQ0YTFhMGEyNTRhYTEy KQorLS0tCisgbnNzL3RzdC1yZWxvYWQxLmMgfCA4ICsrKystLS0tCisgMSBmaWxlIGNoYW5nZWQs IDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL25zcy90c3Qt cmVsb2FkMS5jIGIvbnNzL3RzdC1yZWxvYWQxLmMKK2luZGV4IGZkYzViZGQ2NWIuLmJjMzJiYjEz MmEgMTAwNjQ0CistLS0gYS9uc3MvdHN0LXJlbG9hZDEuYworKysrIGIvbnNzL3RzdC1yZWxvYWQx LmMKK0BAIC00MywxMiArNDMsMTIgQEAgc3RhdGljIHN0cnVjdCBwYXNzd2QgcHdkX3RhYmxlXzFb XSA9IHsKKyAKKyBzdGF0aWMgY29uc3QgY2hhciAqaG9zdGFkZHJfNVtdID0KKyAgIHsKKy0gICAi QUJDRCIsICJhYmNkIiwgIjEyMzQiLCBOVUxMCisrICAgIkFCQ2QiLCAiQUJDRCIsICJBQkM0Iiwg TlVMTAorICAgfTsKKyAKKyBzdGF0aWMgY29uc3QgY2hhciAqaG9zdGFkZHJfMTVbXSA9CisgICB7 CistICAgIjQzMjEiLCAiZ2hpaiIsIE5VTEwKKysgICAiNDMyMSIsICI0MzIyIiwgTlVMTAorICAg fTsKKyAKKyBzdGF0aWMgY29uc3QgY2hhciAqaG9zdGFkZHJfMjVbXSA9CitAQCAtODYsMTIgKzg2 LDEyIEBAIHN0YXRpYyBjb25zdCBjaGFyICpob3N0YWRkcl82W10gPQorIAorIHN0YXRpYyBjb25z dCBjaGFyICpob3N0YWRkcl8xNltdID0KKyAgIHsKKy0gICAiNzg5MCIsICJhMWIyIiwgTlVMTAor KyAgICI3ODkwIiwgIjc4OTEiLCBOVUxMCisgICB9OworIAorIHN0YXRpYyBjb25zdCBjaGFyICpo b3N0YWRkcl8yNltdID0KKyAgIHsKKy0gICAicXdlciIsICJ0eXVpIiwgTlVMTAorKyAgICJxd2Vy IiwgInF3ZVIiLCBOVUxMCisgICB9OworIAorIHN0YXRpYyBzdHJ1Y3QgaG9zdGVudCBob3N0X3Rh YmxlXzJbXSA9IHsKKy0tIAorMi4zOC4xCisKKworRnJvbSAxOTUzNWYzYjU3MzA2ZWEzZWM1NTlh NmMwYjEwZDJkN2E4NzQxOGE3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRmxvcmlh biBXZWltZXIgPGZ3ZWltZXJAcmVkaGF0LmNvbT4KK0RhdGU6IEZyaSwgMTQgT2N0IDIwMjIgMTE6 MDI6MjUgKzAyMDAKK1N1YmplY3Q6IGVsZjogRG8gbm90IGNvbXBsZXRlbHkgY2xlYXIgcmV1c2Vk IG5hbWVzcGFjZSBpbiBkbG1vcGVuIChidWcgMjk2MDApCisKK1RoZSBkYXRhIGluIHRoZSBfbnNf ZGVidWcgbWVtYmVyIG11c3QgYmUgcHJlc2VydmVkLCBvdGhlcndpc2UKK19kbF9kZWJ1Z19pbml0 aWFsaXplIGVudGVycyBhbiBpbmZpbml0ZSBsb29wLiAgVG8gYmUgY29uc2VydmF0aXZlLAorb25s eSBjbGVhciB0aGUgbGliY19tYXAgbWVtYmVyIGZvciBub3csIHRvIGZpeCBidWcgMjk1MjguCisK K0ZpeGVzIGNvbW1pdCBkMGUzNTdmZjQ1YTc1NTUzZGVlM2IxN2VkN2QzMDNiZmE1NDRmNmZlCiso ImVsZjogQ2FsbCBfX2xpYmNfZWFybHlfaW5pdCBmb3IgcmV1c2VkIG5hbWVzcGFjZXMgKGJ1ZyAy OTUyOCkiKSwKK2J5IHJldmVydGluZyBtb3N0IG9mIGl0LgorCitSZXZpZXdlZC1ieTogQ2FybG9z IE8nRG9uZWxsIDxjYXJsb3NAcmVkaGF0LmNvbT4KK1Rlc3RlZC1ieTogQ2FybG9zIE8nRG9uZWxs IDxjYXJsb3NAcmVkaGF0LmNvbT4KKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDJjNDIyNTcz MTQ1MzZiOTRjYzhkNTJlZGVkZTg2ZTk0ZTk4YzE0MzYpCistLS0KKyBORVdTICAgICAgICAgICAg ICAgICAgICB8ICAxICsKKyBlbGYvZGwtb3Blbi5jICAgICAgICAgICB8IDE0ICsrKysrKy0tLS0t LS0tCisgZWxmL3RzdC1kbG1vcGVuLXR3aWNlLmMgfCAyOCArKysrKysrKysrKysrKysrKysrKysr KystLS0tCisgMyBmaWxlcyBjaGFuZ2VkLCAzMSBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMo LSkKKworZGlmZiAtLWdpdCBhL05FV1MgYi9ORVdTCitpbmRleCBkZTc3NWFiMTE2Li5hNmRhNTg4 Yzg1IDEwMDY0NAorLS0tIGEvTkVXUworKysrIGIvTkVXUworQEAgLTM3LDYgKzM3LDcgQEAgVGhl IGZvbGxvd2luZyBidWdzIGFyZSByZXNvbHZlZCB3aXRoIHRoaXMgcmVsZWFzZToKKyAgIFsyOTUz N10gbGliYzogWzIuMzQgcmVncmVzc2lvbl06IEFsaWdubWVudCBpc3N1ZSBvbiBtNjhrIHdoZW4g dXNpbmcKKyAgIFsyOTUzOV0gbGliYzogTERfVFJBQ0VfTE9BREVEX09CSkVDVFMgY2hhbmdlZCBo b3cgdkRTTyBsaWJyYXJ5IGFyZQorICAgWzI5NTgzXSBVc2UgNjQtYml0IGludGVyZmFjZXMgaW4g Z2NvbnZfcGFyc2Vjb25mZGlyCisrICBbMjk2MDBdIERvIG5vdCBjb21wbGV0ZWx5IGNsZWFyIHJl dXNlZCBuYW1lc3BhY2UgaW4gZGxtb3BlbgorICAgWzI5NjA3XSBuc2NkIHJlcGVhdGFibHkgY3Jh c2hlcyBjYWxsaW5nIF9fc3RybGVuX2F2eDIgd2hlbiBob3N0cyBjYWNoZSBpcworICAgICBlbmFi bGVkCisgICBbMjk2MzhdIGxpYmM6IHN0ZGxpYjogYXJjNHJhbmRvbSBmYWxsYmFjayBpcyBuZXZl ciB1c2VkCitkaWZmIC0tZ2l0IGEvZWxmL2RsLW9wZW4uYyBiL2VsZi9kbC1vcGVuLmMKK2luZGV4 IDQ2ZTgwNjZmZDguLmU3ZGI1ZTk2NDIgMTAwNjQ0CistLS0gYS9lbGYvZGwtb3Blbi5jCisrKysg Yi9lbGYvZGwtb3Blbi5jCitAQCAtODQ0LDE1ICs4NDQsMTMgQEAgX2RsX29wZW4gKGNvbnN0IGNo YXIgKmZpbGUsIGludCBtb2RlLCBjb25zdCB2b2lkICpjYWxsZXJfZGxvcGVuLCBMbWlkX3QgbnNp ZCwKKyAJICBfZGxfc2lnbmFsX2Vycm9yIChFSU5WQUwsIGZpbGUsIE5VTEwsIE5fKCJcCisgbm8g bW9yZSBuYW1lc3BhY2VzIGF2YWlsYWJsZSBmb3IgZGxtb3BlbigpIikpOworIAl9CisrICAgICAg ZWxzZSBpZiAobnNpZCA9PSBHTChkbF9ubnMpKQorKwl7CisrCSAgX19ydGxkX2xvY2tfaW5pdGlh bGl6ZSAoR0woZGxfbnMpW25zaWRdLl9uc191bmlxdWVfc3ltX3RhYmxlLmxvY2spOworKwkgICsr R0woZGxfbm5zKTsKKysJfQorIAorLSAgICAgIGlmIChuc2lkID09IEdMKGRsX25ucykpCistCSsr R0woZGxfbm5zKTsKKy0KKy0gICAgICAvKiBJbml0aWFsaXplIHRoZSBuZXcgbmFtZXNwYWNlLiAg TW9zdCBtZW1iZXJzIGFyZQorLQkgemVyby1pbml0aWFsaXplZCwgb25seSB0aGUgbG9jayBuZWVk cyBzcGVjaWFsIHRyZWF0bWVudC4gICovCistICAgICAgbWVtc2V0ICgmR0woZGxfbnMpW25zaWRd LCAwLCBzaXplb2YgKEdMKGRsX25zKVtuc2lkXSkpOworLSAgICAgIF9fcnRsZF9sb2NrX2luaXRp YWxpemUgKEdMKGRsX25zKVtuc2lkXS5fbnNfdW5pcXVlX3N5bV90YWJsZS5sb2NrKTsKKy0KKysg ICAgICBHTChkbF9ucylbbnNpZF0ubGliY19tYXAgPSBOVUxMOworICAgICAgIF9kbF9kZWJ1Z191 cGRhdGUgKG5zaWQpLT5yX3N0YXRlID0gUlRfQ09OU0lTVEVOVDsKKyAgICAgfQorICAgLyogTmV2 ZXIgYWxsb3cgbG9hZGluZyBhIERTTyBpbiBhIG5hbWVzcGFjZSB3aGljaCBpcyBlbXB0eS4gIFN1 Y2gKK2RpZmYgLS1naXQgYS9lbGYvdHN0LWRsbW9wZW4tdHdpY2UuYyBiL2VsZi90c3QtZGxtb3Bl bi10d2ljZS5jCitpbmRleCA0NDlmM2M4ZmE5Li43MGM3MWZlMTljIDEwMDY0NAorLS0tIGEvZWxm L3RzdC1kbG1vcGVuLXR3aWNlLmMKKysrKyBiL2VsZi90c3QtZGxtb3Blbi10d2ljZS5jCitAQCAt MTYsMTggKzE2LDM4IEBACisgICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5 OyBpZiBub3QsIHNlZQorICAgIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLwor IAorLSNpbmNsdWRlIDxzdXBwb3J0L3hkbGZjbi5oPgorKyNpbmNsdWRlIDxzdGRpby5oPgorICNp bmNsdWRlIDxzdXBwb3J0L2NoZWNrLmg+CisrI2luY2x1ZGUgPHN1cHBvcnQveGRsZmNuLmg+Cisg Cistc3RhdGljIGludAorLWRvX3Rlc3QgKHZvaWQpCisrLyogUnVuIHRoZSB0ZXN0IG11bHRpcGxl IHRpbWVzLCB0byBjaGVjayBmaW5kaW5nIGEgbmV3IG5hbWVzcGFjZSB3aGlsZQorKyAgIGFub3Ro ZXIgbmFtZXNwYWNlIGlzIGFscmVhZHkgaW4gdXNlLiAgVGhpcyB1c2VkIHRvIHRyaWdnZXIgYnVn IDI5NjAwLiAgKi8KKytzdGF0aWMgdm9pZAorK3JlY3Vyc2UgKGludCBkZXB0aCkKKyB7CistICB2 b2lkICpoYW5kbGUgPSB4ZGxtb3BlbiAoTE1fSURfTkVXTE0sICJ0c3QtZGxtb3Blbi10d2ljZS1t b2QxLnNvIiwgUlRMRF9OT1cpOworKyAgaWYgKGRlcHRoID09IDApCisrICAgIHJldHVybjsKKysK KysgIHByaW50ZiAoImluZm86IHJ1bm5pbmcgYXQgZGVwdGggJWRcbiIsIGRlcHRoKTsKKysgIHZv aWQgKmhhbmRsZSA9IHhkbG1vcGVuIChMTV9JRF9ORVdMTSwgInRzdC1kbG1vcGVuLXR3aWNlLW1v ZDEuc28iLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFJUTERfTk9XKTsKKyAgIHhkbGNs b3NlIChoYW5kbGUpOworICAgaGFuZGxlID0geGRsbW9wZW4gKExNX0lEX05FV0xNLCAidHN0LWRs bW9wZW4tdHdpY2UtbW9kMi5zbyIsIFJUTERfTk9XKTsKKyAgIGludCAoKnJ1bl9jaGVjaykgKHZv aWQpID0geGRsc3ltIChoYW5kbGUsICJydW5fY2hlY2siKTsKKyAgIFRFU1RfQ09NUEFSRSAocnVu X2NoZWNrICgpLCAwKTsKKysgIHJlY3Vyc2UgKGRlcHRoIC0gMSk7CisgICB4ZGxjbG9zZSAoaGFu ZGxlKTsKKyt9CisrCisrc3RhdGljIGludAorK2RvX3Rlc3QgKHZvaWQpCisreworKyAgLyogRmly c3QgcnVuIHRoZSB0ZXN0IHdpdGhvdXQgbmVzdGluZy4gICovCisrICByZWN1cnNlICgxKTsKKysK KysgIC8qIFRoZW4gd2l0aCBuZXN0aW5nLiAgVGhlIGNvbnN0YW50IG5lZWRzIHRvIGJlIGxlc3Mg dGhhbiB0aGUKKysgICAgIGludGVybmFsIERMX05OUyBuYW1lc3BhY2UgY29uc3RhbnQuICAqLwor KyAgcmVjdXJzZSAoMTApOworICAgcmV0dXJuIDA7CisgfQorIAorLS0gCisyLjM4LjEKKworCitG cm9tIGIzNTcxNTczNjExMTcxODJjN2E2OGM5MGZkYTdiYTQzMWI2NDQ0MmMgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCitGcm9tOiBNaWNoYWVsIEh1ZHNvbi1Eb3lsZSA8bWljaGFlbC5odWRzb25A Y2Fub25pY2FsLmNvbT4KK0RhdGU6IE1vbiwgMjIgQXVnIDIwMjIgMTQ6MDU6MDQgKzEyMDAKK1N1 YmplY3Q6IEZpeCBCWiAjMjk0NjMgaW4gdGhlIGlibTEyOCBpbXBsZW1lbnRhdGlvbiBvZiB5MWwg dG9vCisKK0F2b2lkIG1vdmluZyBjb2RlIGFjcm9zcyBTRVRfUkVTVE9SRV9ST1VOREwgaW4gb3Jk ZXIgdG8gZml4CitbQlogIzI5NDYzXS4KKworVGVzdGVkLWJ5OiBBdXJlbGllbiBKYXJubyA8YXVy ZWxpZW5AYXVyZWwzMi5uZXQ+CitSZXZpZXdlZC1ieTogQXVyZWxpZW4gSmFybm8gPGF1cmVsaWVu QGF1cmVsMzIubmV0PgorUmV2aWV3ZWQtYnk6IFR1bGlvIE1hZ25vIFF1aXRlcyBNYWNoYWRvIEZp bGhvIDx0dWxpb21AbGludXguaWJtLmNvbT4KKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IGI2 ZTM3Yjc4MDViMDE4MmMzZTI1Y2RhYjM5ZWJmNWYwMDFjMDRkMDUpCistLS0KKyBzeXNkZXBzL2ll ZWU3NTQvbGRibC0xMjhpYm0vZV9qMWwuYyB8IDMgKysrCisgMSBmaWxlIGNoYW5nZWQsIDMgaW5z ZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvc3lzZGVwcy9pZWVlNzU0L2xkYmwtMTI4aWJtL2Vf ajFsLmMgYi9zeXNkZXBzL2llZWU3NTQvbGRibC0xMjhpYm0vZV9qMWwuYworaW5kZXggZjg1YmE5 NDQ2Ni4uMGE1ZmU2ODM0MiAxMDA2NDQKKy0tLSBhL3N5c2RlcHMvaWVlZTc1NC9sZGJsLTEyOGli bS9lX2oxbC5jCisrKysgYi9zeXNkZXBzL2llZWU3NTQvbGRibC0xMjhpYm0vZV9qMWwuYworQEAg LTc5MiwxMCArNzkyLDEzIEBAIF9faWVlZTc1NF95MWwgKGxvbmcgZG91YmxlIHgpCisgICAgIHsK KyAgICAgICAvKiAwIDw9IHggPD0gMiAqLworICAgICAgIFNFVF9SRVNUT1JFX1JPVU5ETCAoRkVf VE9ORUFSRVNUKTsKKysgICAgICB4eCA9IG1hdGhfb3B0X2JhcnJpZXIgKHh4KTsKKysgICAgICB4 ID0gbWF0aF9vcHRfYmFycmllciAoeCk7CisgICAgICAgeiA9IHh4ICogeHg7CisgICAgICAgcCA9 IHh4ICogbmV2YWwgKHosIFkwXzJOLCBOWTBfMk4pIC8gZGV2YWwgKHosIFkwXzJELCBOWTBfMkQp OworICAgICAgIHAgPSAtVFdPT1BJIC8geHggKyBwOworICAgICAgIHAgPSBUV09PUEkgKiBfX2ll ZWU3NTRfbG9nbCAoeCkgKiBfX2llZWU3NTRfajFsICh4KSArIHA7CisrICAgICAgbWF0aF9mb3Jj ZV9ldmFsIChwKTsKKyAgICAgICByZXR1cm4gcDsKKyAgICAgfQorIAorLS0gCisyLjM4LjEKKwor CitGcm9tIDkyNzNiMmQwZTkzZTczNTU2NTZjYWQzYmUzYTFjYTc2NDg5ZGY0ODMgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCitGcm9tOiBBdXJlbGllbiBKYXJubyA8YXVyZWxpZW5AYXVyZWwzMi5u ZXQ+CitEYXRlOiBNb24sIDEwIE9jdCAyMDIyIDAwOjM5OjMzICswMjAwCitTdWJqZWN0OiBBdm9p ZCB1bmRlZmluZWQgYmVoYXZpb3VyIGluIGlibTEyOCBpbXBsZW1lbnRhdGlvbiBvZiBsbHJvdW5k bCAoQloKKyAjMjk0ODgpCisKK0RldGVjdGluZyBhbiBvdmVyZmxvdyBlZGdlIGNhc2UgZGVwZW5k ZWQgb24gc2lnbmVkIG92ZXJmbG93IG9mIGEgbG9uZworbG9uZy4gUmVwbGFjZSB0aGUgYWRkaXRp b25zIGFuZCB0aGUgb3ZlcmZsb3cgY2hlY2tzIGJ5CitfX2J1aWx0aW5fYWRkX292ZXJmbG93KCku CisKK1Jldmlld2VkLWJ5OiBUdWxpbyBNYWdubyBRdWl0ZXMgTWFjaGFkbyBGaWxobyA8dHVsaW9t QGxpbnV4LmlibS5jb20+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCAyYjU0Nzg1NjllNzJl ZTQ4MjBhNmUxNjNkMzA2NjkwYzljMGVhZjVlKQorLS0tCisgTkVXUyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAyICsrCisgc3lzZGVwcy9pZWVlNzU0L2xkYmwtMTI4aWJt L3NfbGxyb3VuZGwuYyB8IDIxICsrKysrKysrKy0tLS0tLS0tLS0tLQorIDIgZmlsZXMgY2hhbmdl ZCwgMTEgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9ORVdT IGIvTkVXUworaW5kZXggYTZkYTU4OGM4NS4uOGM2MGQzZGM4ZCAxMDA2NDQKKy0tLSBhL05FV1MK KysrKyBiL05FV1MKK0BAIC0zMyw2ICszMyw4IEBAIFRoZSBmb2xsb3dpbmcgYnVncyBhcmUgcmVz b2x2ZWQgd2l0aCB0aGlzIHJlbGVhc2U6CisgICBbMjk0ODVdIExpbnV4OiBUZXJtaW5hdGUgc3Vi cHJvY2VzcyBvbiBsYXRlIGZhaWx1cmUgaW4gdHN0LXBpZGZkCisgICBbMjk0OTBdIGFscGhhOiBO ZXcgX19icmtfY2FsbCBpbXBsZW1lbnRhdGlvbiBpcyBicm9rZW4KKyAgIFsyOTQ2M10gbWF0aC90 ZXN0LWZsb2F0MTI4LXkxIGZhaWxzIG9uIHg4Nl82NAorKyAgWzI5NDg4XSB0ZXN0LWlibTEyOC1s bHJvdW5kIGZhaWxzIG9uIHBwYzY0ZWwgd2hlbiBidWlsdCB3aXRoIGdjYy0xMiBhbmQgLU8yCisr ICAgIG9yIGhpZ2hlcgorICAgWzI5NTI4XSBlbGY6IENhbGwgX19saWJjX2Vhcmx5X2luaXQgZm9y IHJldXNlZCBuYW1lc3BhY2VzCisgICBbMjk1MzddIGxpYmM6IFsyLjM0IHJlZ3Jlc3Npb25dOiBB bGlnbm1lbnQgaXNzdWUgb24gbTY4ayB3aGVuIHVzaW5nCisgICBbMjk1MzldIGxpYmM6IExEX1RS QUNFX0xPQURFRF9PQkpFQ1RTIGNoYW5nZWQgaG93IHZEU08gbGlicmFyeSBhcmUKK2RpZmYgLS1n aXQgYS9zeXNkZXBzL2llZWU3NTQvbGRibC0xMjhpYm0vc19sbHJvdW5kbC5jIGIvc3lzZGVwcy9p ZWVlNzU0L2xkYmwtMTI4aWJtL3NfbGxyb3VuZGwuYworaW5kZXggZDg1MTU0ZTczYS4uZDhjMGRl MWZhZiAxMDA2NDQKKy0tLSBhL3N5c2RlcHMvaWVlZTc1NC9sZGJsLTEyOGlibS9zX2xscm91bmRs LmMKKysrKyBiL3N5c2RlcHMvaWVlZTc1NC9sZGJsLTEyOGlibS9zX2xscm91bmRsLmMKK0BAIC02 NiwzOCArNjYsMzUgQEAgX19sbHJvdW5kbCAobG9uZyBkb3VibGUgeCkKKyAgICAgICAvKiBQZWcg YXQgbWF4L21pbiB2YWx1ZXMsIGFzc3VtaW5nIHRoYXQgdGhlIGFib3ZlIGNvbnZlcnNpb25zIGRv IHNvLgorICAgICAgICAgIFN0cmljdGx5IHNwZWFraW5nLCB3ZSBjYW4gcmV0dXJuIGFueXRoaW5n IGZvciB2YWx1ZXMgdGhhdCBvdmVyZmxvdywKKyAgICAgICAgICBidXQgdGhpcyBpcyBtb3JlIHVz ZWZ1bC4gICovCistICAgICAgcmVzID0gaGkgKyBsbzsKKy0KKy0gICAgICAvKiBUaGlzIGlzIGp1 c3Qgc2lnbihoaSkgPT0gc2lnbihsbykgJiYgc2lnbihyZXMpICE9IHNpZ24oaGkpLiAgKi8KKy0g ICAgICBpZiAoX19nbGliY191bmxpa2VseSAoKCh+KGhpIF4gbG8pICYgKHJlcyBeIGhpKSkgPCAw KSkpCisrICAgICAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKF9fYnVpbHRpbl9hZGRfb3ZlcmZsb3cg KGhpLCBsbywgJnJlcykpKQorIAlnb3RvIG92ZXJmbG93OworIAorICAgICAgIHhoIC09IGxvOwor ICAgICAgIGxkYmxfY2Fub25pY2FsaXplICgmeGgsICZ4bCk7CisgCistICAgICAgaGkgPSByZXM7 CisgICAgICAgaWYgKHhoID4gMC41KQorIAl7CistCSAgcmVzICs9IDE7CisrCSAgaWYgKF9fZ2xp YmNfdW5saWtlbHkgKF9fYnVpbHRpbl9hZGRfb3ZlcmZsb3cgKHJlcywgMSwgJnJlcykpKQorKwkg ICAgZ290byBvdmVyZmxvdzsKKyAJfQorICAgICAgIGVsc2UgaWYgKHhoID09IDAuNSkKKyAJewor IAkgIGlmICh4bCA+IDAuMCB8fCAoeGwgPT0gMC4wICYmIHJlcyA+PSAwKSkKKy0JICAgIHJlcyAr PSAxOworKwkgICAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKF9fYnVpbHRpbl9hZGRfb3ZlcmZsb3cg KHJlcywgMSwgJnJlcykpKQorKwkgICAgICBnb3RvIG92ZXJmbG93OworIAl9CisgICAgICAgZWxz ZSBpZiAoLXhoID4gMC41KQorIAl7CistCSAgcmVzIC09IDE7CisrCSAgaWYgKF9fZ2xpYmNfdW5s aWtlbHkgKF9fYnVpbHRpbl9hZGRfb3ZlcmZsb3cgKHJlcywgLTEsICZyZXMpKSkKKysJICAgIGdv dG8gb3ZlcmZsb3c7CisgCX0KKyAgICAgICBlbHNlIGlmICgteGggPT0gMC41KQorIAl7CisgCSAg aWYgKHhsIDwgMC4wIHx8ICh4bCA9PSAwLjAgJiYgcmVzIDw9IDApKQorLQkgICAgcmVzIC09IDE7 CisrCSAgICBpZiAoX19nbGliY191bmxpa2VseSAoX19idWlsdGluX2FkZF9vdmVyZmxvdyAocmVz LCAtMSwgJnJlcykpKQorKwkgICAgICBnb3RvIG92ZXJmbG93OworIAl9CisgCistICAgICAgaWYg KF9fZ2xpYmNfdW5saWtlbHkgKCgofihoaSBeIChyZXMgLSBoaSkpICYgKHJlcyBeIGhpKSkgPCAw KSkpCistCWdvdG8gb3ZlcmZsb3c7CistCisgICAgICAgcmV0dXJuIHJlczsKKyAgICAgfQorICAg ZWxzZQorLS0gCisyLjM4LjEKKworCitGcm9tIDdiN2RmYmIwY2JkZmZlYmYwMjMzYzY1MDYyN2E0 ODYxMjEyZmJiNjAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBZGhlbWVydmFsIFph bmVsbGEgPGFkaGVtZXJ2YWwuemFuZWxsYUBsaW5hcm8ub3JnPgorRGF0ZTogV2VkLCAxOSBPY3Qg MjAyMiAxOToxNDowNCAtMDMwMAorU3ViamVjdDogbGludXg6IEZpeCBnZW5lcmljIHN0cnVjdF9z dGF0IGZvciA2NCBiaXQgdGltZSAoQlojIDI5NjU3KQorCitUaGUgZ2VuZXJpYyBMaW51eCBzdHJ1 Y3Rfc3RhdCBtaXNzZXMgdGhlIGNvbmRpdGlvbmFscyB0byB1c2UKK2JpdHMvc3RydWN0X3N0YXRf dGltZTY0X2hlbHBlci5oIGluIHRoZSBfX1VTRV9USU1FX0JJVFM2NCBmb3IKK2FyY2hpdGVjdHVy ZSB0aGF0IHVzZXMgX19USU1FU0laRSA9PSAzMiAoY3VycmVudGx5IGNza3kgYW5kIG5pb3MyKS4K KworU2luY2UgbmV3ZXIgcG9ydHMgc2hvdWxkIG5vdCBzdXBwb3J0IDMyIGJpdCB0aW1lX3QsIHRo ZSBnZW5lcmljCitpbXBsZW1lbnRhdGlvbiBzaG91bGQgYmUgdXNlZCBhcyBkZWZhdWx0LgorCitG b3IgYXJtLCBocHBhLCBhbmQgc2ggYSBjb3B5IG9mIGRlZmF1bHQgc3RydWN0X3N0YXQgaXMgYWRk ZWQsCit3aGlsZSBmb3IgY3NreSBhbmQgbmlvcyBhIG5ldyBvbmUgYmFzZWQgb24gZ2VuZXJpYyBp cyB1c2VkLCBhbG9uZword2l0aCBjb25kaXRpb25hbHMgdG8gdXNlIGJpdHMvc3RydWN0X3N0YXRf dGltZTY0X2hlbHBlci5oLgorCitUaGUgZGVmYXVsdCBzdHJ1Y3Rfc3RhdCBpcyBhbHNvIHJlcGxh Y2VkIHdpdGggdGhlIGdlbmVyaWMgb25lLgorCitDaGVja2VkIG9uIGFhcmNoNjQtbGludXgtZ251 IGFuZCBhcm0tbGludXgtZ251ZWFiaWhmLgorCisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA3 YTZjYTgyZjgwMDdkZGJkNDNlMmI4ZmNlODA2YmE3MTAxZWU0N2Y1KQorLS0tCisgTkVXUyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICsKKyAuLi4vdW5peC9z eXN2L2xpbnV4L2FybS9iaXRzL3N0cnVjdF9zdGF0LmggICAgfCAxMzkgKysrKysrKysrKysrKysr KysrCisgc3lzZGVwcy91bml4L3N5c3YvbGludXgvYml0cy9zdHJ1Y3Rfc3RhdC5oICAgIHwgMTE2 ICsrKysrKystLS0tLS0tLQorIC4uLi97Z2VuZXJpYyA9PiBjc2t5fS9iaXRzL3N0cnVjdF9zdGF0 LmggICAgICB8ICAyOCArKy0tCisgLi4uL3VuaXgvc3lzdi9saW51eC9ocHBhL2JpdHMvc3RydWN0 X3N0YXQuaCAgIHwgMTM5ICsrKysrKysrKysrKysrKysrKworIC4uLi91bml4L3N5c3YvbGludXgv bmlvczIvYml0cy9zdHJ1Y3Rfc3RhdC5oICB8IDEzNSArKysrKysrKysrKysrKysrKworIHN5c2Rl cHMvdW5peC9zeXN2L2xpbnV4L3NoL2JpdHMvc3RydWN0X3N0YXQuaCB8IDEzOSArKysrKysrKysr KysrKysrKysKKyA3IGZpbGVzIGNoYW5nZWQsIDYyNCBpbnNlcnRpb25zKCspLCA3NCBkZWxldGlv bnMoLSkKKyBjcmVhdGUgbW9kZSAxMDA2NDQgc3lzZGVwcy91bml4L3N5c3YvbGludXgvYXJtL2Jp dHMvc3RydWN0X3N0YXQuaAorIHJlbmFtZSBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC97Z2VuZXJp YyA9PiBjc2t5fS9iaXRzL3N0cnVjdF9zdGF0LmggKDkyJSkKKyBjcmVhdGUgbW9kZSAxMDA2NDQg c3lzZGVwcy91bml4L3N5c3YvbGludXgvaHBwYS9iaXRzL3N0cnVjdF9zdGF0LmgKKyBjcmVhdGUg bW9kZSAxMDA2NDQgc3lzZGVwcy91bml4L3N5c3YvbGludXgvbmlvczIvYml0cy9zdHJ1Y3Rfc3Rh dC5oCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NoL2JpdHMv c3RydWN0X3N0YXQuaAorCitkaWZmIC0tZ2l0IGEvTkVXUyBiL05FV1MKK2luZGV4IDhjNjBkM2Rj OGQuLjgzMzA0NTU4NWYgMTAwNjQ0CistLS0gYS9ORVdTCisrKysgYi9ORVdTCitAQCAtNDMsNiAr NDMsOCBAQCBUaGUgZm9sbG93aW5nIGJ1Z3MgYXJlIHJlc29sdmVkIHdpdGggdGhpcyByZWxlYXNl OgorICAgWzI5NjA3XSBuc2NkIHJlcGVhdGFibHkgY3Jhc2hlcyBjYWxsaW5nIF9fc3RybGVuX2F2 eDIgd2hlbiBob3N0cyBjYWNoZSBpcworICAgICBlbmFibGVkCisgICBbMjk2MzhdIGxpYmM6IHN0 ZGxpYjogYXJjNHJhbmRvbSBmYWxsYmFjayBpcyBuZXZlciB1c2VkCisrICBbMjk2NTddIGxpYmM6 IEluY29ycmVjdCBzdHJ1Y3Qgc3RhdCBmb3IgNjQtYml0IHRpbWUgb24gbGludXgvZ2VuZXJpYwor KyAgICBwbGF0Zm9ybXMKKyAMCisgVmVyc2lvbiAyLjM2CisgCitkaWZmIC0tZ2l0IGEvc3lzZGVw cy91bml4L3N5c3YvbGludXgvYXJtL2JpdHMvc3RydWN0X3N0YXQuaCBiL3N5c2RlcHMvdW5peC9z eXN2L2xpbnV4L2FybS9iaXRzL3N0cnVjdF9zdGF0LmgKK25ldyBmaWxlIG1vZGUgMTAwNjQ0Citp bmRleCAwMDAwMDAwMDAwLi4zMGVlNjI3OWQyCistLS0gL2Rldi9udWxsCisrKysgYi9zeXNkZXBz L3VuaXgvc3lzdi9saW51eC9hcm0vYml0cy9zdHJ1Y3Rfc3RhdC5oCitAQCAtMCwwICsxLDEzOSBA QAorKy8qIERlZmluaXRpb24gZm9yIHN0cnVjdCBzdGF0LiAgTGludXgvYXJtIHZlcnNpb24uCisr ICAgQ29weXJpZ2h0IChDKSAyMDIwLTIwMjIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu CisrICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisrCisrICAgVGhl IEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yCisrICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBH ZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb247IGVpdGhlcgorKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBv ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoZSBHTlUgQyBM aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws CisrICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg Y29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYWxvbmcg d2l0aCB0aGUgR05VIEMgTGlicmFyeS4gIElmIG5vdCwgc2VlCisrICAgPGh0dHBzOi8vd3d3Lmdu dS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrI2lmICFkZWZpbmVkIF9TWVNfU1RBVF9IICYmICFk ZWZpbmVkIF9GQ05UTF9ICisrIyBlcnJvciAiTmV2ZXIgaW5jbHVkZSA8Yml0cy9zdHJ1Y3Rfc3Rh dC5oPiBkaXJlY3RseTsgdXNlIDxzeXMvc3RhdC5oPiBpbnN0ZWFkLiIKKysjZW5kaWYKKysKKysj aWZuZGVmIF9CSVRTX1NUUlVDVF9TVEFUX0gKKysjZGVmaW5lIF9CSVRTX1NUUlVDVF9TVEFUX0gJ MQorKworKyNpbmNsdWRlIDxiaXRzL2VuZGlhbi5oPgorKyNpbmNsdWRlIDxiaXRzL3dvcmRzaXpl Lmg+CisrCisrc3RydWN0IHN0YXQKKysgIHsKKysjaWZkZWYgX19VU0VfVElNRV9CSVRTNjQKKysj IGluY2x1ZGUgPGJpdHMvc3RydWN0X3N0YXRfdGltZTY0X2hlbHBlci5oPgorKyNlbHNlCisrICAg IF9fZGV2X3Qgc3RfZGV2OwkJCS8qIERldmljZS4gICovCisrICAgIHVuc2lnbmVkIHNob3J0IGlu dCBfX3BhZDE7CisrIyBpZm5kZWYgX19VU0VfRklMRV9PRkZTRVQ2NAorKyAgICBfX2lub190IHN0 X2lubzsJCQkvKiBGaWxlIHNlcmlhbCBudW1iZXIuCSovCisrIyBlbHNlCisrICAgIF9faW5vX3Qg X19zdF9pbm87CQkJLyogMzJiaXQgZmlsZSBzZXJpYWwgbnVtYmVyLgkqLworKyMgZW5kaWYKKysg ICAgX19tb2RlX3Qgc3RfbW9kZTsJCQkvKiBGaWxlIG1vZGUuICAqLworKyAgICBfX25saW5rX3Qg c3Rfbmxpbms7CQkJLyogTGluayBjb3VudC4gICovCisrICAgIF9fdWlkX3Qgc3RfdWlkOwkJCS8q IFVzZXIgSUQgb2YgdGhlIGZpbGUncyBvd25lci4JKi8KKysgICAgX19naWRfdCBzdF9naWQ7CQkJ LyogR3JvdXAgSUQgb2YgdGhlIGZpbGUncyBncm91cC4qLworKyAgICBfX2Rldl90IHN0X3JkZXY7 CQkJLyogRGV2aWNlIG51bWJlciwgaWYgZGV2aWNlLiAgKi8KKysgICAgdW5zaWduZWQgc2hvcnQg aW50IF9fcGFkMjsKKysjIGlmbmRlZiBfX1VTRV9GSUxFX09GRlNFVDY0CisrICAgIF9fb2ZmX3Qg c3Rfc2l6ZTsJCQkvKiBTaXplIG9mIGZpbGUsIGluIGJ5dGVzLiAgKi8KKysjIGVsc2UKKysgICAg X19vZmY2NF90IHN0X3NpemU7CQkJLyogU2l6ZSBvZiBmaWxlLCBpbiBieXRlcy4gICovCisrIyBl bmRpZgorKyAgICBfX2Jsa3NpemVfdCBzdF9ibGtzaXplOwkJLyogT3B0aW1hbCBibG9jayBzaXpl IGZvciBJL08uICAqLworKworKyMgaWZuZGVmIF9fVVNFX0ZJTEVfT0ZGU0VUNjQKKysgICAgX19i bGtjbnRfdCBzdF9ibG9ja3M7CQkvKiBOdW1iZXIgNTEyLWJ5dGUgYmxvY2tzIGFsbG9jYXRlZC4g Ki8KKysjIGVsc2UKKysgICAgX19ibGtjbnQ2NF90IHN0X2Jsb2NrczsJCS8qIE51bWJlciA1MTIt Ynl0ZSBibG9ja3MgYWxsb2NhdGVkLiAqLworKyMgZW5kaWYKKysjIGlmZGVmIF9fVVNFX1hPUEVO Mks4CisrICAgIC8qIE5hbm9zZWNvbmQgcmVzb2x1dGlvbiB0aW1lc3RhbXBzIGFyZSBzdG9yZWQg aW4gYSBmb3JtYXQKKysgICAgICAgZXF1aXZhbGVudCB0byAnc3RydWN0IHRpbWVzcGVjJy4gIFRo aXMgaXMgdGhlIHR5cGUgdXNlZAorKyAgICAgICB3aGVuZXZlciBwb3NzaWJsZSBidXQgdGhlIFVu aXggbmFtZXNwYWNlIHJ1bGVzIGRvIG5vdCBhbGxvdyB0aGUKKysgICAgICAgaWRlbnRpZmllciAn dGltZXNwZWMnIHRvIGFwcGVhciBpbiB0aGUgPHN5cy9zdGF0Lmg+IGhlYWRlci4KKysgICAgICAg VGhlcmVmb3JlIHdlIGhhdmUgdG8gaGFuZGxlIHRoZSB1c2Ugb2YgdGhpcyBoZWFkZXIgaW4gc3Ry aWN0bHkKKysgICAgICAgc3RhbmRhcmQtY29tcGxpYW50IHNvdXJjZXMgc3BlY2lhbC4gICovCisr ICAgIHN0cnVjdCB0aW1lc3BlYyBzdF9hdGltOwkJLyogVGltZSBvZiBsYXN0IGFjY2Vzcy4gICov CisrICAgIHN0cnVjdCB0aW1lc3BlYyBzdF9tdGltOwkJLyogVGltZSBvZiBsYXN0IG1vZGlmaWNh dGlvbi4gICovCisrICAgIHN0cnVjdCB0aW1lc3BlYyBzdF9jdGltOwkJLyogVGltZSBvZiBsYXN0 IHN0YXR1cyBjaGFuZ2UuICAqLworKyMgIGRlZmluZSBzdF9hdGltZSBzdF9hdGltLnR2X3NlYwkv KiBCYWNrd2FyZCBjb21wYXRpYmlsaXR5LiAgKi8KKysjICBkZWZpbmUgc3RfbXRpbWUgc3RfbXRp bS50dl9zZWMKKysjICBkZWZpbmUgc3RfY3RpbWUgc3RfY3RpbS50dl9zZWMKKysjIGVsc2UKKysg ICAgX190aW1lX3Qgc3RfYXRpbWU7CQkJLyogVGltZSBvZiBsYXN0IGFjY2Vzcy4gICovCisrICAg IHVuc2lnbmVkIGxvbmcgaW50IHN0X2F0aW1lbnNlYzsJLyogTnNjZWNzIG9mIGxhc3QgYWNjZXNz LiAgKi8KKysgICAgX190aW1lX3Qgc3RfbXRpbWU7CQkJLyogVGltZSBvZiBsYXN0IG1vZGlmaWNh dGlvbi4gICovCisrICAgIHVuc2lnbmVkIGxvbmcgaW50IHN0X210aW1lbnNlYzsJLyogTnNlY3Mg b2YgbGFzdCBtb2RpZmljYXRpb24uICAqLworKyAgICBfX3RpbWVfdCBzdF9jdGltZTsJCQkvKiBU aW1lIG9mIGxhc3Qgc3RhdHVzIGNoYW5nZS4gICovCisrICAgIHVuc2lnbmVkIGxvbmcgaW50IHN0 X2N0aW1lbnNlYzsJLyogTnNlY3Mgb2YgbGFzdCBzdGF0dXMgY2hhbmdlLiAgKi8KKysjIGVuZGlm CisrIyBpZm5kZWYgX19VU0VfRklMRV9PRkZTRVQ2NAorKyAgICB1bnNpZ25lZCBsb25nIGludCBf X2dsaWJjX3Jlc2VydmVkNDsKKysgICAgdW5zaWduZWQgbG9uZyBpbnQgX19nbGliY19yZXNlcnZl ZDU7CisrIyBlbHNlCisrICAgIF9faW5vNjRfdCBzdF9pbm87CQkJLyogRmlsZSBzZXJpYWwgbnVt YmVyLgkqLworKyMgZW5kaWYKKysjZW5kaWYgLyogX19VU0VfVElNRV9CSVRTNjQgICovCisrICB9 OworKworKyNpZmRlZiBfX1VTRV9MQVJHRUZJTEU2NAorK3N0cnVjdCBzdGF0NjQKKysgIHsKKysj IGlmZGVmIF9fVVNFX1RJTUVfQklUUzY0CisrIyAgaW5jbHVkZSA8Yml0cy9zdHJ1Y3Rfc3RhdF90 aW1lNjRfaGVscGVyLmg+CisrIyBlbHNlCisrICAgIF9fZGV2X3Qgc3RfZGV2OwkJCS8qIERldmlj ZS4gICovCisrICAgIHVuc2lnbmVkIGludCBfX3BhZDE7CisrCisrICAgIF9faW5vX3QgX19zdF9p bm87CQkJLyogMzJiaXQgZmlsZSBzZXJpYWwgbnVtYmVyLgkqLworKyAgICBfX21vZGVfdCBzdF9t b2RlOwkJCS8qIEZpbGUgbW9kZS4gICovCisrICAgIF9fbmxpbmtfdCBzdF9ubGluazsJCQkvKiBM aW5rIGNvdW50LiAgKi8KKysgICAgX191aWRfdCBzdF91aWQ7CQkJLyogVXNlciBJRCBvZiB0aGUg ZmlsZSdzIG93bmVyLgkqLworKyAgICBfX2dpZF90IHN0X2dpZDsJCQkvKiBHcm91cCBJRCBvZiB0 aGUgZmlsZSdzIGdyb3VwLiovCisrICAgIF9fZGV2X3Qgc3RfcmRldjsJCQkvKiBEZXZpY2UgbnVt YmVyLCBpZiBkZXZpY2UuICAqLworKyAgICB1bnNpZ25lZCBpbnQgX19wYWQyOworKyAgICBfX29m ZjY0X3Qgc3Rfc2l6ZTsJCQkvKiBTaXplIG9mIGZpbGUsIGluIGJ5dGVzLiAgKi8KKysgICAgX19i bGtzaXplX3Qgc3RfYmxrc2l6ZTsJCS8qIE9wdGltYWwgYmxvY2sgc2l6ZSBmb3IgSS9PLiAgKi8K KysKKysgICAgX19ibGtjbnQ2NF90IHN0X2Jsb2NrczsJCS8qIE51bWJlciA1MTItYnl0ZSBibG9j a3MgYWxsb2NhdGVkLiAqLworKyMgIGlmZGVmIF9fVVNFX1hPUEVOMks4CisrICAgIC8qIE5hbm9z ZWNvbmQgcmVzb2x1dGlvbiB0aW1lc3RhbXBzIGFyZSBzdG9yZWQgaW4gYSBmb3JtYXQKKysgICAg ICAgZXF1aXZhbGVudCB0byAnc3RydWN0IHRpbWVzcGVjJy4gIFRoaXMgaXMgdGhlIHR5cGUgdXNl ZAorKyAgICAgICB3aGVuZXZlciBwb3NzaWJsZSBidXQgdGhlIFVuaXggbmFtZXNwYWNlIHJ1bGVz IGRvIG5vdCBhbGxvdyB0aGUKKysgICAgICAgaWRlbnRpZmllciAndGltZXNwZWMnIHRvIGFwcGVh ciBpbiB0aGUgPHN5cy9zdGF0Lmg+IGhlYWRlci4KKysgICAgICAgVGhlcmVmb3JlIHdlIGhhdmUg dG8gaGFuZGxlIHRoZSB1c2Ugb2YgdGhpcyBoZWFkZXIgaW4gc3RyaWN0bHkKKysgICAgICAgc3Rh bmRhcmQtY29tcGxpYW50IHNvdXJjZXMgc3BlY2lhbC4gICovCisrICAgIHN0cnVjdCB0aW1lc3Bl YyBzdF9hdGltOwkJLyogVGltZSBvZiBsYXN0IGFjY2Vzcy4gICovCisrICAgIHN0cnVjdCB0aW1l c3BlYyBzdF9tdGltOwkJLyogVGltZSBvZiBsYXN0IG1vZGlmaWNhdGlvbi4gICovCisrICAgIHN0 cnVjdCB0aW1lc3BlYyBzdF9jdGltOwkJLyogVGltZSBvZiBsYXN0IHN0YXR1cyBjaGFuZ2UuICAq LworKyMgIGVsc2UKKysgICAgX190aW1lX3Qgc3RfYXRpbWU7CQkJLyogVGltZSBvZiBsYXN0IGFj Y2Vzcy4gICovCisrICAgIHVuc2lnbmVkIGxvbmcgaW50IHN0X2F0aW1lbnNlYzsJLyogTnNjZWNz IG9mIGxhc3QgYWNjZXNzLiAgKi8KKysgICAgX190aW1lX3Qgc3RfbXRpbWU7CQkJLyogVGltZSBv ZiBsYXN0IG1vZGlmaWNhdGlvbi4gICovCisrICAgIHVuc2lnbmVkIGxvbmcgaW50IHN0X210aW1l bnNlYzsJLyogTnNlY3Mgb2YgbGFzdCBtb2RpZmljYXRpb24uICAqLworKyAgICBfX3RpbWVfdCBz dF9jdGltZTsJCQkvKiBUaW1lIG9mIGxhc3Qgc3RhdHVzIGNoYW5nZS4gICovCisrICAgIHVuc2ln bmVkIGxvbmcgaW50IHN0X2N0aW1lbnNlYzsJLyogTnNlY3Mgb2YgbGFzdCBzdGF0dXMgY2hhbmdl LiAgKi8KKysjICBlbmRpZgorKyAgICBfX2lubzY0X3Qgc3RfaW5vOwkJCS8qIEZpbGUgc2VyaWFs IG51bWJlci4JCSovCisrIyBlbmRpZiAvKiBfX1VTRV9USU1FX0JJVFM2NCAgKi8KKysgIH07Cisr I2VuZGlmCisrCisrLyogVGVsbCBjb2RlIHdlIGhhdmUgdGhlc2UgbWVtYmVycy4gICovCisrI2Rl ZmluZQlfU1RBVEJVRl9TVF9CTEtTSVpFCisrI2RlZmluZSBfU1RBVEJVRl9TVF9SREVWCisrLyog TmFub3NlY29uZCByZXNvbHV0aW9uIHRpbWUgdmFsdWVzIGFyZSBzdXBwb3J0ZWQuICAqLworKyNk ZWZpbmUgX1NUQVRCVUZfU1RfTlNFQworKworKworKyNlbmRpZiAvKiBfQklUU19TVFJVQ1RfU1RB VF9IICAqLworZGlmZiAtLWdpdCBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2JpdHMvc3RydWN0 X3N0YXQuaCBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2JpdHMvc3RydWN0X3N0YXQuaAoraW5k ZXggMjViZDZjYjYzOC4uZmIxMWEzZmJhNCAxMDA2NDQKKy0tLSBhL3N5c2RlcHMvdW5peC9zeXN2 L2xpbnV4L2JpdHMvc3RydWN0X3N0YXQuaAorKysrIGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgv Yml0cy9zdHJ1Y3Rfc3RhdC5oCitAQCAtMjYsMzcgKzI2LDM2IEBACisgI2luY2x1ZGUgPGJpdHMv ZW5kaWFuLmg+CisgI2luY2x1ZGUgPGJpdHMvd29yZHNpemUuaD4KKyAKKy1zdHJ1Y3Qgc3RhdAor LSAgeworLSNpZmRlZiBfX1VTRV9USU1FX0JJVFM2NAorLSMgaW5jbHVkZSA8Yml0cy9zdHJ1Y3Rf c3RhdF90aW1lNjRfaGVscGVyLmg+CistI2Vsc2UKKy0gICAgX19kZXZfdCBzdF9kZXY7CQkJLyog RGV2aWNlLiAgKi8KKy0gICAgdW5zaWduZWQgc2hvcnQgaW50IF9fcGFkMTsKKy0jIGlmbmRlZiBf X1VTRV9GSUxFX09GRlNFVDY0CistICAgIF9faW5vX3Qgc3RfaW5vOwkJCS8qIEZpbGUgc2VyaWFs IG51bWJlci4JKi8KKy0jIGVsc2UKKy0gICAgX19pbm9fdCBfX3N0X2lubzsJCQkvKiAzMmJpdCBm aWxlIHNlcmlhbCBudW1iZXIuCSovCisrI2lmIGRlZmluZWQgX19VU0VfRklMRV9PRkZTRVQ2NAor KyMgZGVmaW5lIF9fZmllbGQ2NCh0eXBlLCB0eXBlNjQsIG5hbWUpIHR5cGU2NCBuYW1lCisrI2Vs aWYgX19XT1JEU0laRSA9PSA2NCB8fCBkZWZpbmVkIF9fSU5PX1RfTUFUQ0hFU19JTk82NF9UCisr IyBpZiBkZWZpbmVkIF9fSU5PX1RfTUFUQ0hFU19JTk82NF9UICYmICFkZWZpbmVkIF9fT0ZGX1Rf TUFUQ0hFU19PRkY2NF9UCisrIyAgZXJyb3IgImlub190IGFuZCBvZmZfdCBtdXN0IGJvdGggYmUg dGhlIHNhbWUgdHlwZSIKKyAjIGVuZGlmCistICAgIF9fbW9kZV90IHN0X21vZGU7CQkJLyogRmls ZSBtb2RlLiAgKi8KKy0gICAgX19ubGlua190IHN0X25saW5rOwkJCS8qIExpbmsgY291bnQuICAq LworLSAgICBfX3VpZF90IHN0X3VpZDsJCQkvKiBVc2VyIElEIG9mIHRoZSBmaWxlJ3Mgb3duZXIu CSovCistICAgIF9fZ2lkX3Qgc3RfZ2lkOwkJCS8qIEdyb3VwIElEIG9mIHRoZSBmaWxlJ3MgZ3Jv dXAuKi8KKy0gICAgX19kZXZfdCBzdF9yZGV2OwkJCS8qIERldmljZSBudW1iZXIsIGlmIGRldmlj ZS4gICovCistICAgIHVuc2lnbmVkIHNob3J0IGludCBfX3BhZDI7CistIyBpZm5kZWYgX19VU0Vf RklMRV9PRkZTRVQ2NAorLSAgICBfX29mZl90IHN0X3NpemU7CQkJLyogU2l6ZSBvZiBmaWxlLCBp biBieXRlcy4gICovCistIyBlbHNlCistICAgIF9fb2ZmNjRfdCBzdF9zaXplOwkJCS8qIFNpemUg b2YgZmlsZSwgaW4gYnl0ZXMuICAqLworLSMgZW5kaWYKKy0gICAgX19ibGtzaXplX3Qgc3RfYmxr c2l6ZTsJCS8qIE9wdGltYWwgYmxvY2sgc2l6ZSBmb3IgSS9PLiAgKi8KKysjIGRlZmluZSBfX2Zp ZWxkNjQodHlwZSwgdHlwZTY0LCBuYW1lKSB0eXBlIG5hbWUKKysjZWxpZiBfX0JZVEVfT1JERVIg PT0gX19MSVRUTEVfRU5ESUFOCisrIyBkZWZpbmUgX19maWVsZDY0KHR5cGUsIHR5cGU2NCwgbmFt ZSkgXAorKyAgdHlwZSBuYW1lIF9fYXR0cmlidXRlX18oKF9fYWxpZ25lZF9fIChfX2FsaWdub2Zf XyAodHlwZTY0KSkpKTsgaW50IF9fIyNuYW1lIyNfcGFkCisrI2Vsc2UKKysjIGRlZmluZSBfX2Zp ZWxkNjQodHlwZSwgdHlwZTY0LCBuYW1lKSBcCisrICBpbnQgX18jI25hbWUjI19wYWQgX19hdHRy aWJ1dGVfXygoX19hbGlnbmVkX18gKF9fYWxpZ25vZl9fICh0eXBlNjQpKSkpOyB0eXBlIG5hbWUK KysjZW5kaWYKKyAKKy0jIGlmbmRlZiBfX1VTRV9GSUxFX09GRlNFVDY0CistICAgIF9fYmxrY250 X3Qgc3RfYmxvY2tzOwkJLyogTnVtYmVyIDUxMi1ieXRlIGJsb2NrcyBhbGxvY2F0ZWQuICovCist IyBlbHNlCistICAgIF9fYmxrY250NjRfdCBzdF9ibG9ja3M7CQkvKiBOdW1iZXIgNTEyLWJ5dGUg YmxvY2tzIGFsbG9jYXRlZC4gKi8KKy0jIGVuZGlmCistIyBpZmRlZiBfX1VTRV9YT1BFTjJLOAor K3N0cnVjdCBzdGF0CisrICB7CisrICAgIF9fZGV2X3Qgc3RfZGV2OwkJLyogRGV2aWNlLiAgKi8K KysgICAgX19maWVsZDY0KF9faW5vX3QsIF9faW5vNjRfdCwgc3RfaW5vKTsgIC8qIEZpbGUgc2Vy aWFsIG51bWJlci4gKi8KKysgICAgX19tb2RlX3Qgc3RfbW9kZTsJCS8qIEZpbGUgbW9kZS4gICov CisrICAgIF9fbmxpbmtfdCBzdF9ubGluazsJCS8qIExpbmsgY291bnQuICAqLworKyAgICBfX3Vp ZF90IHN0X3VpZDsJCS8qIFVzZXIgSUQgb2YgdGhlIGZpbGUncyBvd25lci4JKi8KKysgICAgX19n aWRfdCBzdF9naWQ7CQkvKiBHcm91cCBJRCBvZiB0aGUgZmlsZSdzIGdyb3VwLiovCisrICAgIF9f ZGV2X3Qgc3RfcmRldjsJCS8qIERldmljZSBudW1iZXIsIGlmIGRldmljZS4gICovCisrICAgIF9f ZGV2X3QgX19wYWQxOworKyAgICBfX2ZpZWxkNjQoX19vZmZfdCwgX19vZmY2NF90LCBzdF9zaXpl KTsgIC8qIFNpemUgb2YgZmlsZSwgaW4gYnl0ZXMuICovCisrICAgIF9fYmxrc2l6ZV90IHN0X2Js a3NpemU7CS8qIE9wdGltYWwgYmxvY2sgc2l6ZSBmb3IgSS9PLiAgKi8KKysgICAgaW50IF9fcGFk MjsKKysgICAgX19maWVsZDY0KF9fYmxrY250X3QsIF9fYmxrY250NjRfdCwgc3RfYmxvY2tzKTsg IC8qIDUxMi1ieXRlIGJsb2NrcyAqLworKyNpZmRlZiBfX1VTRV9YT1BFTjJLOAorICAgICAvKiBO YW5vc2Vjb25kIHJlc29sdXRpb24gdGltZXN0YW1wcyBhcmUgc3RvcmVkIGluIGEgZm9ybWF0Cisg ICAgICAgIGVxdWl2YWxlbnQgdG8gJ3N0cnVjdCB0aW1lc3BlYycuICBUaGlzIGlzIHRoZSB0eXBl IHVzZWQKKyAgICAgICAgd2hlbmV2ZXIgcG9zc2libGUgYnV0IHRoZSBVbml4IG5hbWVzcGFjZSBy dWxlcyBkbyBub3QgYWxsb3cgdGhlCitAQCAtNjYsNDcgKzY1LDM4IEBAIHN0cnVjdCBzdGF0Cisg ICAgIHN0cnVjdCB0aW1lc3BlYyBzdF9hdGltOwkJLyogVGltZSBvZiBsYXN0IGFjY2Vzcy4gICov CisgICAgIHN0cnVjdCB0aW1lc3BlYyBzdF9tdGltOwkJLyogVGltZSBvZiBsYXN0IG1vZGlmaWNh dGlvbi4gICovCisgICAgIHN0cnVjdCB0aW1lc3BlYyBzdF9jdGltOwkJLyogVGltZSBvZiBsYXN0 IHN0YXR1cyBjaGFuZ2UuICAqLworLSMgIGRlZmluZSBzdF9hdGltZSBzdF9hdGltLnR2X3NlYwkv KiBCYWNrd2FyZCBjb21wYXRpYmlsaXR5LiAgKi8KKy0jICBkZWZpbmUgc3RfbXRpbWUgc3RfbXRp bS50dl9zZWMKKy0jICBkZWZpbmUgc3RfY3RpbWUgc3RfY3RpbS50dl9zZWMKKy0jIGVsc2UKKysj IGRlZmluZSBzdF9hdGltZSBzdF9hdGltLnR2X3NlYwkvKiBCYWNrd2FyZCBjb21wYXRpYmlsaXR5 LiAgKi8KKysjIGRlZmluZSBzdF9tdGltZSBzdF9tdGltLnR2X3NlYworKyMgZGVmaW5lIHN0X2N0 aW1lIHN0X2N0aW0udHZfc2VjCisrI2Vsc2UKKyAgICAgX190aW1lX3Qgc3RfYXRpbWU7CQkJLyog VGltZSBvZiBsYXN0IGFjY2Vzcy4gICovCisgICAgIHVuc2lnbmVkIGxvbmcgaW50IHN0X2F0aW1l bnNlYzsJLyogTnNjZWNzIG9mIGxhc3QgYWNjZXNzLiAgKi8KKyAgICAgX190aW1lX3Qgc3RfbXRp bWU7CQkJLyogVGltZSBvZiBsYXN0IG1vZGlmaWNhdGlvbi4gICovCisgICAgIHVuc2lnbmVkIGxv bmcgaW50IHN0X210aW1lbnNlYzsJLyogTnNlY3Mgb2YgbGFzdCBtb2RpZmljYXRpb24uICAqLwor ICAgICBfX3RpbWVfdCBzdF9jdGltZTsJCQkvKiBUaW1lIG9mIGxhc3Qgc3RhdHVzIGNoYW5nZS4g ICovCisgICAgIHVuc2lnbmVkIGxvbmcgaW50IHN0X2N0aW1lbnNlYzsJLyogTnNlY3Mgb2YgbGFz dCBzdGF0dXMgY2hhbmdlLiAgKi8KKy0jIGVuZGlmCistIyBpZm5kZWYgX19VU0VfRklMRV9PRkZT RVQ2NAorLSAgICB1bnNpZ25lZCBsb25nIGludCBfX2dsaWJjX3Jlc2VydmVkNDsKKy0gICAgdW5z aWduZWQgbG9uZyBpbnQgX19nbGliY19yZXNlcnZlZDU7CistIyBlbHNlCistICAgIF9faW5vNjRf dCBzdF9pbm87CQkJLyogRmlsZSBzZXJpYWwgbnVtYmVyLgkqLworLSMgZW5kaWYKKy0jZW5kaWYg LyogX19VU0VfVElNRV9CSVRTNjQgICovCisrI2VuZGlmCisrICAgIGludCBfX2dsaWJjX3Jlc2Vy dmVkWzJdOworICAgfTsKKyAKKysjdW5kZWYgX19maWVsZDY0CisrCisgI2lmZGVmIF9fVVNFX0xB UkdFRklMRTY0Cisgc3RydWN0IHN0YXQ2NAorICAgeworLSMgaWZkZWYgX19VU0VfVElNRV9CSVRT NjQKKy0jICBpbmNsdWRlIDxiaXRzL3N0cnVjdF9zdGF0X3RpbWU2NF9oZWxwZXIuaD4KKy0jIGVs c2UKKy0gICAgX19kZXZfdCBzdF9kZXY7CQkJLyogRGV2aWNlLiAgKi8KKy0gICAgdW5zaWduZWQg aW50IF9fcGFkMTsKKy0KKy0gICAgX19pbm9fdCBfX3N0X2lubzsJCQkvKiAzMmJpdCBmaWxlIHNl cmlhbCBudW1iZXIuCSovCistICAgIF9fbW9kZV90IHN0X21vZGU7CQkJLyogRmlsZSBtb2RlLiAg Ki8KKy0gICAgX19ubGlua190IHN0X25saW5rOwkJCS8qIExpbmsgY291bnQuICAqLworLSAgICBf X3VpZF90IHN0X3VpZDsJCQkvKiBVc2VyIElEIG9mIHRoZSBmaWxlJ3Mgb3duZXIuCSovCistICAg IF9fZ2lkX3Qgc3RfZ2lkOwkJCS8qIEdyb3VwIElEIG9mIHRoZSBmaWxlJ3MgZ3JvdXAuKi8KKy0g ICAgX19kZXZfdCBzdF9yZGV2OwkJCS8qIERldmljZSBudW1iZXIsIGlmIGRldmljZS4gICovCist ICAgIHVuc2lnbmVkIGludCBfX3BhZDI7CistICAgIF9fb2ZmNjRfdCBzdF9zaXplOwkJCS8qIFNp emUgb2YgZmlsZSwgaW4gYnl0ZXMuICAqLworLSAgICBfX2Jsa3NpemVfdCBzdF9ibGtzaXplOwkJ LyogT3B0aW1hbCBibG9jayBzaXplIGZvciBJL08uICAqLworLQorLSAgICBfX2Jsa2NudDY0X3Qg c3RfYmxvY2tzOwkJLyogTnVtYmVyIDUxMi1ieXRlIGJsb2NrcyBhbGxvY2F0ZWQuICovCistIyAg aWZkZWYgX19VU0VfWE9QRU4ySzgKKysgICAgX19kZXZfdCBzdF9kZXY7CQkvKiBEZXZpY2UuICAq LworKyAgICBfX2lubzY0X3Qgc3RfaW5vOwkJLyogRmlsZSBzZXJpYWwgbnVtYmVyLgkqLworKyAg ICBfX21vZGVfdCBzdF9tb2RlOwkJLyogRmlsZSBtb2RlLiAgKi8KKysgICAgX19ubGlua190IHN0 X25saW5rOwkJLyogTGluayBjb3VudC4gICovCisrICAgIF9fdWlkX3Qgc3RfdWlkOwkJLyogVXNl ciBJRCBvZiB0aGUgZmlsZSdzIG93bmVyLgkqLworKyAgICBfX2dpZF90IHN0X2dpZDsJCS8qIEdy b3VwIElEIG9mIHRoZSBmaWxlJ3MgZ3JvdXAuKi8KKysgICAgX19kZXZfdCBzdF9yZGV2OwkJLyog RGV2aWNlIG51bWJlciwgaWYgZGV2aWNlLiAgKi8KKysgICAgX19kZXZfdCBfX3BhZDE7CisrICAg IF9fb2ZmNjRfdCBzdF9zaXplOwkJLyogU2l6ZSBvZiBmaWxlLCBpbiBieXRlcy4gICovCisrICAg IF9fYmxrc2l6ZV90IHN0X2Jsa3NpemU7CS8qIE9wdGltYWwgYmxvY2sgc2l6ZSBmb3IgSS9PLiAg Ki8KKysgICAgaW50IF9fcGFkMjsKKysgICAgX19ibGtjbnQ2NF90IHN0X2Jsb2NrczsJLyogTnIu IDUxMi1ieXRlIGJsb2NrcyBhbGxvY2F0ZWQuICAqLworKyNpZmRlZiBfX1VTRV9YT1BFTjJLOAor ICAgICAvKiBOYW5vc2Vjb25kIHJlc29sdXRpb24gdGltZXN0YW1wcyBhcmUgc3RvcmVkIGluIGEg Zm9ybWF0CisgICAgICAgIGVxdWl2YWxlbnQgdG8gJ3N0cnVjdCB0aW1lc3BlYycuICBUaGlzIGlz IHRoZSB0eXBlIHVzZWQKKyAgICAgICAgd2hlbmV2ZXIgcG9zc2libGUgYnV0IHRoZSBVbml4IG5h bWVzcGFjZSBydWxlcyBkbyBub3QgYWxsb3cgdGhlCitAQCAtMTE2LDE2ICsxMDYsMTUgQEAgc3Ry dWN0IHN0YXQ2NAorICAgICBzdHJ1Y3QgdGltZXNwZWMgc3RfYXRpbTsJCS8qIFRpbWUgb2YgbGFz dCBhY2Nlc3MuICAqLworICAgICBzdHJ1Y3QgdGltZXNwZWMgc3RfbXRpbTsJCS8qIFRpbWUgb2Yg bGFzdCBtb2RpZmljYXRpb24uICAqLworICAgICBzdHJ1Y3QgdGltZXNwZWMgc3RfY3RpbTsJCS8q IFRpbWUgb2YgbGFzdCBzdGF0dXMgY2hhbmdlLiAgKi8KKy0jICBlbHNlCisrI2Vsc2UKKyAgICAg X190aW1lX3Qgc3RfYXRpbWU7CQkJLyogVGltZSBvZiBsYXN0IGFjY2Vzcy4gICovCisgICAgIHVu c2lnbmVkIGxvbmcgaW50IHN0X2F0aW1lbnNlYzsJLyogTnNjZWNzIG9mIGxhc3QgYWNjZXNzLiAg Ki8KKyAgICAgX190aW1lX3Qgc3RfbXRpbWU7CQkJLyogVGltZSBvZiBsYXN0IG1vZGlmaWNhdGlv bi4gICovCisgICAgIHVuc2lnbmVkIGxvbmcgaW50IHN0X210aW1lbnNlYzsJLyogTnNlY3Mgb2Yg bGFzdCBtb2RpZmljYXRpb24uICAqLworICAgICBfX3RpbWVfdCBzdF9jdGltZTsJCQkvKiBUaW1l IG9mIGxhc3Qgc3RhdHVzIGNoYW5nZS4gICovCisgICAgIHVuc2lnbmVkIGxvbmcgaW50IHN0X2N0 aW1lbnNlYzsJLyogTnNlY3Mgb2YgbGFzdCBzdGF0dXMgY2hhbmdlLiAgKi8KKy0jICBlbmRpZgor LSAgICBfX2lubzY0X3Qgc3RfaW5vOwkJCS8qIEZpbGUgc2VyaWFsIG51bWJlci4JCSovCistIyBl bmRpZiAvKiBfX1VTRV9USU1FX0JJVFM2NCAgKi8KKysjZW5kaWYKKysgICAgaW50IF9fZ2xpYmNf cmVzZXJ2ZWRbMl07CisgICB9OworICNlbmRpZgorIAorQEAgLTEzNSw1ICsxMjQsNCBAQCBzdHJ1 Y3Qgc3RhdDY0CisgLyogTmFub3NlY29uZCByZXNvbHV0aW9uIHRpbWUgdmFsdWVzIGFyZSBzdXBw b3J0ZWQuICAqLworICNkZWZpbmUgX1NUQVRCVUZfU1RfTlNFQworIAorLQorICNlbmRpZiAvKiBf QklUU19TVFJVQ1RfU1RBVF9IICAqLworZGlmZiAtLWdpdCBhL3N5c2RlcHMvdW5peC9zeXN2L2xp bnV4L2dlbmVyaWMvYml0cy9zdHJ1Y3Rfc3RhdC5oIGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgv Y3NreS9iaXRzL3N0cnVjdF9zdGF0LmgKK3NpbWlsYXJpdHkgaW5kZXggOTIlCityZW5hbWUgZnJv bSBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9nZW5lcmljL2JpdHMvc3RydWN0X3N0YXQuaAorcmVu YW1lIHRvIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2Nza3kvYml0cy9zdHJ1Y3Rfc3RhdC5oCitp bmRleCBmYjExYTNmYmE0Li5mMGVlNDU1NzQ4IDEwMDY0NAorLS0tIGEvc3lzZGVwcy91bml4L3N5 c3YvbGludXgvZ2VuZXJpYy9iaXRzL3N0cnVjdF9zdGF0LmgKKysrKyBiL3N5c2RlcHMvdW5peC9z eXN2L2xpbnV4L2Nza3kvYml0cy9zdHJ1Y3Rfc3RhdC5oCitAQCAtMSw0ICsxLDQgQEAKKy0vKiBE ZWZpbml0aW9uIGZvciBzdHJ1Y3Qgc3RhdC4KKysvKiBEZWZpbml0aW9uIGZvciBzdHJ1Y3Qgc3Rh dC4gIExpbnV4L2Nza3kgdmVyc2lvbi4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMiBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUg R05VIEMgTGlicmFyeS4KKyAKK0BAIC00Myw2ICs0Myw5IEBACisgCisgc3RydWN0IHN0YXQKKyAg IHsKKysjaWZkZWYgX19VU0VfVElNRV9CSVRTNjQKKysjIGluY2x1ZGUgPGJpdHMvc3RydWN0X3N0 YXRfdGltZTY0X2hlbHBlci5oPgorKyNlbHNlCisgICAgIF9fZGV2X3Qgc3RfZGV2OwkJLyogRGV2 aWNlLiAgKi8KKyAgICAgX19maWVsZDY0KF9faW5vX3QsIF9faW5vNjRfdCwgc3RfaW5vKTsgIC8q IEZpbGUgc2VyaWFsIG51bWJlci4gKi8KKyAgICAgX19tb2RlX3Qgc3RfbW9kZTsJCS8qIEZpbGUg bW9kZS4gICovCitAQCAtNTUsNyArNTgsNyBAQCBzdHJ1Y3Qgc3RhdAorICAgICBfX2Jsa3NpemVf dCBzdF9ibGtzaXplOwkvKiBPcHRpbWFsIGJsb2NrIHNpemUgZm9yIEkvTy4gICovCisgICAgIGlu dCBfX3BhZDI7CisgICAgIF9fZmllbGQ2NChfX2Jsa2NudF90LCBfX2Jsa2NudDY0X3QsIHN0X2Js b2Nrcyk7ICAvKiA1MTItYnl0ZSBibG9ja3MgKi8KKy0jaWZkZWYgX19VU0VfWE9QRU4ySzgKKysj IGlmZGVmIF9fVVNFX1hPUEVOMks4CisgICAgIC8qIE5hbm9zZWNvbmQgcmVzb2x1dGlvbiB0aW1l c3RhbXBzIGFyZSBzdG9yZWQgaW4gYSBmb3JtYXQKKyAgICAgICAgZXF1aXZhbGVudCB0byAnc3Ry dWN0IHRpbWVzcGVjJy4gIFRoaXMgaXMgdGhlIHR5cGUgdXNlZAorICAgICAgICB3aGVuZXZlciBw b3NzaWJsZSBidXQgdGhlIFVuaXggbmFtZXNwYWNlIHJ1bGVzIGRvIG5vdCBhbGxvdyB0aGUKK0BA IC02NSwxOCArNjgsMTkgQEAgc3RydWN0IHN0YXQKKyAgICAgc3RydWN0IHRpbWVzcGVjIHN0X2F0 aW07CQkvKiBUaW1lIG9mIGxhc3QgYWNjZXNzLiAgKi8KKyAgICAgc3RydWN0IHRpbWVzcGVjIHN0 X210aW07CQkvKiBUaW1lIG9mIGxhc3QgbW9kaWZpY2F0aW9uLiAgKi8KKyAgICAgc3RydWN0IHRp bWVzcGVjIHN0X2N0aW07CQkvKiBUaW1lIG9mIGxhc3Qgc3RhdHVzIGNoYW5nZS4gICovCistIyBk ZWZpbmUgc3RfYXRpbWUgc3RfYXRpbS50dl9zZWMJLyogQmFja3dhcmQgY29tcGF0aWJpbGl0eS4g ICovCistIyBkZWZpbmUgc3RfbXRpbWUgc3RfbXRpbS50dl9zZWMKKy0jIGRlZmluZSBzdF9jdGlt ZSBzdF9jdGltLnR2X3NlYworLSNlbHNlCisrIyAgZGVmaW5lIHN0X2F0aW1lIHN0X2F0aW0udHZf c2VjCS8qIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkuICAqLworKyMgIGRlZmluZSBzdF9tdGltZSBz dF9tdGltLnR2X3NlYworKyMgIGRlZmluZSBzdF9jdGltZSBzdF9jdGltLnR2X3NlYworKyMgZWxz ZQorICAgICBfX3RpbWVfdCBzdF9hdGltZTsJCQkvKiBUaW1lIG9mIGxhc3QgYWNjZXNzLiAgKi8K KyAgICAgdW5zaWduZWQgbG9uZyBpbnQgc3RfYXRpbWVuc2VjOwkvKiBOc2NlY3Mgb2YgbGFzdCBh Y2Nlc3MuICAqLworICAgICBfX3RpbWVfdCBzdF9tdGltZTsJCQkvKiBUaW1lIG9mIGxhc3QgbW9k aWZpY2F0aW9uLiAgKi8KKyAgICAgdW5zaWduZWQgbG9uZyBpbnQgc3RfbXRpbWVuc2VjOwkvKiBO c2VjcyBvZiBsYXN0IG1vZGlmaWNhdGlvbi4gICovCisgICAgIF9fdGltZV90IHN0X2N0aW1lOwkJ CS8qIFRpbWUgb2YgbGFzdCBzdGF0dXMgY2hhbmdlLiAgKi8KKyAgICAgdW5zaWduZWQgbG9uZyBp bnQgc3RfY3RpbWVuc2VjOwkvKiBOc2VjcyBvZiBsYXN0IHN0YXR1cyBjaGFuZ2UuICAqLworLSNl bmRpZgorKyMgZW5kaWYKKyAgICAgaW50IF9fZ2xpYmNfcmVzZXJ2ZWRbMl07CisrI2VuZGlmCisg ICB9OworIAorICN1bmRlZiBfX2ZpZWxkNjQKK0BAIC04NCw2ICs4OCw5IEBAIHN0cnVjdCBzdGF0 CisgI2lmZGVmIF9fVVNFX0xBUkdFRklMRTY0Cisgc3RydWN0IHN0YXQ2NAorICAgeworKyMgaWZk ZWYgX19VU0VfVElNRV9CSVRTNjQKKysjICBpbmNsdWRlIDxiaXRzL3N0cnVjdF9zdGF0X3RpbWU2 NF9oZWxwZXIuaD4KKysjIGVsc2UKKyAgICAgX19kZXZfdCBzdF9kZXY7CQkvKiBEZXZpY2UuICAq LworICAgICBfX2lubzY0X3Qgc3RfaW5vOwkJLyogRmlsZSBzZXJpYWwgbnVtYmVyLgkqLworICAg ICBfX21vZGVfdCBzdF9tb2RlOwkJLyogRmlsZSBtb2RlLiAgKi8KK0BAIC05Niw3ICsxMDMsNyBA QCBzdHJ1Y3Qgc3RhdDY0CisgICAgIF9fYmxrc2l6ZV90IHN0X2Jsa3NpemU7CS8qIE9wdGltYWwg YmxvY2sgc2l6ZSBmb3IgSS9PLiAgKi8KKyAgICAgaW50IF9fcGFkMjsKKyAgICAgX19ibGtjbnQ2 NF90IHN0X2Jsb2NrczsJLyogTnIuIDUxMi1ieXRlIGJsb2NrcyBhbGxvY2F0ZWQuICAqLworLSNp ZmRlZiBfX1VTRV9YT1BFTjJLOAorKyMgIGlmZGVmIF9fVVNFX1hPUEVOMks4CisgICAgIC8qIE5h bm9zZWNvbmQgcmVzb2x1dGlvbiB0aW1lc3RhbXBzIGFyZSBzdG9yZWQgaW4gYSBmb3JtYXQKKyAg ICAgICAgZXF1aXZhbGVudCB0byAnc3RydWN0IHRpbWVzcGVjJy4gIFRoaXMgaXMgdGhlIHR5cGUg dXNlZAorICAgICAgICB3aGVuZXZlciBwb3NzaWJsZSBidXQgdGhlIFVuaXggbmFtZXNwYWNlIHJ1 bGVzIGRvIG5vdCBhbGxvdyB0aGUKK0BAIC0xMDYsMTUgKzExMywxNiBAQCBzdHJ1Y3Qgc3RhdDY0 CisgICAgIHN0cnVjdCB0aW1lc3BlYyBzdF9hdGltOwkJLyogVGltZSBvZiBsYXN0IGFjY2Vzcy4g ICovCisgICAgIHN0cnVjdCB0aW1lc3BlYyBzdF9tdGltOwkJLyogVGltZSBvZiBsYXN0IG1vZGlm aWNhdGlvbi4gICovCisgICAgIHN0cnVjdCB0aW1lc3BlYyBzdF9jdGltOwkJLyogVGltZSBvZiBs YXN0IHN0YXR1cyBjaGFuZ2UuICAqLworLSNlbHNlCisrIyAgZWxzZQorICAgICBfX3RpbWVfdCBz dF9hdGltZTsJCQkvKiBUaW1lIG9mIGxhc3QgYWNjZXNzLiAgKi8KKyAgICAgdW5zaWduZWQgbG9u ZyBpbnQgc3RfYXRpbWVuc2VjOwkvKiBOc2NlY3Mgb2YgbGFzdCBhY2Nlc3MuICAqLworICAgICBf X3RpbWVfdCBzdF9tdGltZTsJCQkvKiBUaW1lIG9mIGxhc3QgbW9kaWZpY2F0aW9uLiAgKi8KKyAg ICAgdW5zaWduZWQgbG9uZyBpbnQgc3RfbXRpbWVuc2VjOwkvKiBOc2VjcyBvZiBsYXN0IG1vZGlm aWNhdGlvbi4gICovCisgICAgIF9fdGltZV90IHN0X2N0aW1lOwkJCS8qIFRpbWUgb2YgbGFzdCBz dGF0dXMgY2hhbmdlLiAgKi8KKyAgICAgdW5zaWduZWQgbG9uZyBpbnQgc3RfY3RpbWVuc2VjOwkv KiBOc2VjcyBvZiBsYXN0IHN0YXR1cyBjaGFuZ2UuICAqLworLSNlbmRpZgorKyMgIGVuZGlmCisg ICAgIGludCBfX2dsaWJjX3Jlc2VydmVkWzJdOworKyMgZW5kaWYKKyAgIH07CisgI2VuZGlmCisg CitkaWZmIC0tZ2l0IGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvaHBwYS9iaXRzL3N0cnVjdF9z dGF0LmggYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9ocHBhL2JpdHMvc3RydWN0X3N0YXQuaAor bmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAuLjM4YjZlMTNlNjgKKy0tLSAv ZGV2L251bGwKKysrKyBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2hwcGEvYml0cy9zdHJ1Y3Rf c3RhdC5oCitAQCAtMCwwICsxLDEzOSBAQAorKy8qIERlZmluaXRpb24gZm9yIHN0cnVjdCBzdGF0 LiAgTGludXgvaHBwYSB2ZXJzaW9uLgorKyAgIENvcHlyaWdodCAoQykgMjAyMC0yMDIyIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBH TlUgQyBMaWJyYXJ5LgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7 IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKysgICBMaWNlbnNlIGFzIHB1 Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKysgICB2ZXJz aW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy c2lvbi4KKysKKysgICBUaGUgR05VIEMgTGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKysgICBM ZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyAgIFlv dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ dWJsaWMKKysgICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJhcnkuICBJZiBub3Qs IHNlZQorKyAgIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworKworKyNpZiAh ZGVmaW5lZCBfU1lTX1NUQVRfSCAmJiAhZGVmaW5lZCBfRkNOVExfSAorKyMgZXJyb3IgIk5ldmVy IGluY2x1ZGUgPGJpdHMvc3RydWN0X3N0YXQuaD4gZGlyZWN0bHk7IHVzZSA8c3lzL3N0YXQuaD4g aW5zdGVhZC4iCisrI2VuZGlmCisrCisrI2lmbmRlZiBfQklUU19TVFJVQ1RfU1RBVF9ICisrI2Rl ZmluZSBfQklUU19TVFJVQ1RfU1RBVF9ICTEKKysKKysjaW5jbHVkZSA8Yml0cy9lbmRpYW4uaD4K KysjaW5jbHVkZSA8Yml0cy93b3Jkc2l6ZS5oPgorKworK3N0cnVjdCBzdGF0CisrICB7CisrI2lm ZGVmIF9fVVNFX1RJTUVfQklUUzY0CisrIyBpbmNsdWRlIDxiaXRzL3N0cnVjdF9zdGF0X3RpbWU2 NF9oZWxwZXIuaD4KKysjZWxzZQorKyAgICBfX2Rldl90IHN0X2RldjsJCQkvKiBEZXZpY2UuICAq LworKyAgICB1bnNpZ25lZCBzaG9ydCBpbnQgX19wYWQxOworKyMgaWZuZGVmIF9fVVNFX0ZJTEVf T0ZGU0VUNjQKKysgICAgX19pbm9fdCBzdF9pbm87CQkJLyogRmlsZSBzZXJpYWwgbnVtYmVyLgkq LworKyMgZWxzZQorKyAgICBfX2lub190IF9fc3RfaW5vOwkJCS8qIDMyYml0IGZpbGUgc2VyaWFs IG51bWJlci4JKi8KKysjIGVuZGlmCisrICAgIF9fbW9kZV90IHN0X21vZGU7CQkJLyogRmlsZSBt b2RlLiAgKi8KKysgICAgX19ubGlua190IHN0X25saW5rOwkJCS8qIExpbmsgY291bnQuICAqLwor KyAgICBfX3VpZF90IHN0X3VpZDsJCQkvKiBVc2VyIElEIG9mIHRoZSBmaWxlJ3Mgb3duZXIuCSov CisrICAgIF9fZ2lkX3Qgc3RfZ2lkOwkJCS8qIEdyb3VwIElEIG9mIHRoZSBmaWxlJ3MgZ3JvdXAu Ki8KKysgICAgX19kZXZfdCBzdF9yZGV2OwkJCS8qIERldmljZSBudW1iZXIsIGlmIGRldmljZS4g ICovCisrICAgIHVuc2lnbmVkIHNob3J0IGludCBfX3BhZDI7CisrIyBpZm5kZWYgX19VU0VfRklM RV9PRkZTRVQ2NAorKyAgICBfX29mZl90IHN0X3NpemU7CQkJLyogU2l6ZSBvZiBmaWxlLCBpbiBi eXRlcy4gICovCisrIyBlbHNlCisrICAgIF9fb2ZmNjRfdCBzdF9zaXplOwkJCS8qIFNpemUgb2Yg ZmlsZSwgaW4gYnl0ZXMuICAqLworKyMgZW5kaWYKKysgICAgX19ibGtzaXplX3Qgc3RfYmxrc2l6 ZTsJCS8qIE9wdGltYWwgYmxvY2sgc2l6ZSBmb3IgSS9PLiAgKi8KKysKKysjIGlmbmRlZiBfX1VT RV9GSUxFX09GRlNFVDY0CisrICAgIF9fYmxrY250X3Qgc3RfYmxvY2tzOwkJLyogTnVtYmVyIDUx Mi1ieXRlIGJsb2NrcyBhbGxvY2F0ZWQuICovCisrIyBlbHNlCisrICAgIF9fYmxrY250NjRfdCBz dF9ibG9ja3M7CQkvKiBOdW1iZXIgNTEyLWJ5dGUgYmxvY2tzIGFsbG9jYXRlZC4gKi8KKysjIGVu ZGlmCisrIyBpZmRlZiBfX1VTRV9YT1BFTjJLOAorKyAgICAvKiBOYW5vc2Vjb25kIHJlc29sdXRp b24gdGltZXN0YW1wcyBhcmUgc3RvcmVkIGluIGEgZm9ybWF0CisrICAgICAgIGVxdWl2YWxlbnQg dG8gJ3N0cnVjdCB0aW1lc3BlYycuICBUaGlzIGlzIHRoZSB0eXBlIHVzZWQKKysgICAgICAgd2hl bmV2ZXIgcG9zc2libGUgYnV0IHRoZSBVbml4IG5hbWVzcGFjZSBydWxlcyBkbyBub3QgYWxsb3cg dGhlCisrICAgICAgIGlkZW50aWZpZXIgJ3RpbWVzcGVjJyB0byBhcHBlYXIgaW4gdGhlIDxzeXMv c3RhdC5oPiBoZWFkZXIuCisrICAgICAgIFRoZXJlZm9yZSB3ZSBoYXZlIHRvIGhhbmRsZSB0aGUg dXNlIG9mIHRoaXMgaGVhZGVyIGluIHN0cmljdGx5CisrICAgICAgIHN0YW5kYXJkLWNvbXBsaWFu dCBzb3VyY2VzIHNwZWNpYWwuICAqLworKyAgICBzdHJ1Y3QgdGltZXNwZWMgc3RfYXRpbTsJCS8q IFRpbWUgb2YgbGFzdCBhY2Nlc3MuICAqLworKyAgICBzdHJ1Y3QgdGltZXNwZWMgc3RfbXRpbTsJ CS8qIFRpbWUgb2YgbGFzdCBtb2RpZmljYXRpb24uICAqLworKyAgICBzdHJ1Y3QgdGltZXNwZWMg c3RfY3RpbTsJCS8qIFRpbWUgb2YgbGFzdCBzdGF0dXMgY2hhbmdlLiAgKi8KKysjICBkZWZpbmUg c3RfYXRpbWUgc3RfYXRpbS50dl9zZWMJLyogQmFja3dhcmQgY29tcGF0aWJpbGl0eS4gICovCisr IyAgZGVmaW5lIHN0X210aW1lIHN0X210aW0udHZfc2VjCisrIyAgZGVmaW5lIHN0X2N0aW1lIHN0 X2N0aW0udHZfc2VjCisrIyBlbHNlCisrICAgIF9fdGltZV90IHN0X2F0aW1lOwkJCS8qIFRpbWUg b2YgbGFzdCBhY2Nlc3MuICAqLworKyAgICB1bnNpZ25lZCBsb25nIGludCBzdF9hdGltZW5zZWM7 CS8qIE5zY2VjcyBvZiBsYXN0IGFjY2Vzcy4gICovCisrICAgIF9fdGltZV90IHN0X210aW1lOwkJ CS8qIFRpbWUgb2YgbGFzdCBtb2RpZmljYXRpb24uICAqLworKyAgICB1bnNpZ25lZCBsb25nIGlu dCBzdF9tdGltZW5zZWM7CS8qIE5zZWNzIG9mIGxhc3QgbW9kaWZpY2F0aW9uLiAgKi8KKysgICAg X190aW1lX3Qgc3RfY3RpbWU7CQkJLyogVGltZSBvZiBsYXN0IHN0YXR1cyBjaGFuZ2UuICAqLwor KyAgICB1bnNpZ25lZCBsb25nIGludCBzdF9jdGltZW5zZWM7CS8qIE5zZWNzIG9mIGxhc3Qgc3Rh dHVzIGNoYW5nZS4gICovCisrIyBlbmRpZgorKyMgaWZuZGVmIF9fVVNFX0ZJTEVfT0ZGU0VUNjQK KysgICAgdW5zaWduZWQgbG9uZyBpbnQgX19nbGliY19yZXNlcnZlZDQ7CisrICAgIHVuc2lnbmVk IGxvbmcgaW50IF9fZ2xpYmNfcmVzZXJ2ZWQ1OworKyMgZWxzZQorKyAgICBfX2lubzY0X3Qgc3Rf aW5vOwkJCS8qIEZpbGUgc2VyaWFsIG51bWJlci4JKi8KKysjIGVuZGlmCisrI2VuZGlmIC8qIF9f VVNFX1RJTUVfQklUUzY0ICAqLworKyAgfTsKKysKKysjaWZkZWYgX19VU0VfTEFSR0VGSUxFNjQK KytzdHJ1Y3Qgc3RhdDY0CisrICB7CisrIyBpZmRlZiBfX1VTRV9USU1FX0JJVFM2NAorKyMgIGlu Y2x1ZGUgPGJpdHMvc3RydWN0X3N0YXRfdGltZTY0X2hlbHBlci5oPgorKyMgZWxzZQorKyAgICBf X2Rldl90IHN0X2RldjsJCQkvKiBEZXZpY2UuICAqLworKyAgICB1bnNpZ25lZCBpbnQgX19wYWQx OworKworKyAgICBfX2lub190IF9fc3RfaW5vOwkJCS8qIDMyYml0IGZpbGUgc2VyaWFsIG51bWJl ci4JKi8KKysgICAgX19tb2RlX3Qgc3RfbW9kZTsJCQkvKiBGaWxlIG1vZGUuICAqLworKyAgICBf X25saW5rX3Qgc3Rfbmxpbms7CQkJLyogTGluayBjb3VudC4gICovCisrICAgIF9fdWlkX3Qgc3Rf dWlkOwkJCS8qIFVzZXIgSUQgb2YgdGhlIGZpbGUncyBvd25lci4JKi8KKysgICAgX19naWRfdCBz dF9naWQ7CQkJLyogR3JvdXAgSUQgb2YgdGhlIGZpbGUncyBncm91cC4qLworKyAgICBfX2Rldl90 IHN0X3JkZXY7CQkJLyogRGV2aWNlIG51bWJlciwgaWYgZGV2aWNlLiAgKi8KKysgICAgdW5zaWdu ZWQgaW50IF9fcGFkMjsKKysgICAgX19vZmY2NF90IHN0X3NpemU7CQkJLyogU2l6ZSBvZiBmaWxl LCBpbiBieXRlcy4gICovCisrICAgIF9fYmxrc2l6ZV90IHN0X2Jsa3NpemU7CQkvKiBPcHRpbWFs IGJsb2NrIHNpemUgZm9yIEkvTy4gICovCisrCisrICAgIF9fYmxrY250NjRfdCBzdF9ibG9ja3M7 CQkvKiBOdW1iZXIgNTEyLWJ5dGUgYmxvY2tzIGFsbG9jYXRlZC4gKi8KKysjICBpZmRlZiBfX1VT RV9YT1BFTjJLOAorKyAgICAvKiBOYW5vc2Vjb25kIHJlc29sdXRpb24gdGltZXN0YW1wcyBhcmUg c3RvcmVkIGluIGEgZm9ybWF0CisrICAgICAgIGVxdWl2YWxlbnQgdG8gJ3N0cnVjdCB0aW1lc3Bl YycuICBUaGlzIGlzIHRoZSB0eXBlIHVzZWQKKysgICAgICAgd2hlbmV2ZXIgcG9zc2libGUgYnV0 IHRoZSBVbml4IG5hbWVzcGFjZSBydWxlcyBkbyBub3QgYWxsb3cgdGhlCisrICAgICAgIGlkZW50 aWZpZXIgJ3RpbWVzcGVjJyB0byBhcHBlYXIgaW4gdGhlIDxzeXMvc3RhdC5oPiBoZWFkZXIuCisr ICAgICAgIFRoZXJlZm9yZSB3ZSBoYXZlIHRvIGhhbmRsZSB0aGUgdXNlIG9mIHRoaXMgaGVhZGVy IGluIHN0cmljdGx5CisrICAgICAgIHN0YW5kYXJkLWNvbXBsaWFudCBzb3VyY2VzIHNwZWNpYWwu ICAqLworKyAgICBzdHJ1Y3QgdGltZXNwZWMgc3RfYXRpbTsJCS8qIFRpbWUgb2YgbGFzdCBhY2Nl c3MuICAqLworKyAgICBzdHJ1Y3QgdGltZXNwZWMgc3RfbXRpbTsJCS8qIFRpbWUgb2YgbGFzdCBt b2RpZmljYXRpb24uICAqLworKyAgICBzdHJ1Y3QgdGltZXNwZWMgc3RfY3RpbTsJCS8qIFRpbWUg b2YgbGFzdCBzdGF0dXMgY2hhbmdlLiAgKi8KKysjICBlbHNlCisrICAgIF9fdGltZV90IHN0X2F0 aW1lOwkJCS8qIFRpbWUgb2YgbGFzdCBhY2Nlc3MuICAqLworKyAgICB1bnNpZ25lZCBsb25nIGlu dCBzdF9hdGltZW5zZWM7CS8qIE5zY2VjcyBvZiBsYXN0IGFjY2Vzcy4gICovCisrICAgIF9fdGlt ZV90IHN0X210aW1lOwkJCS8qIFRpbWUgb2YgbGFzdCBtb2RpZmljYXRpb24uICAqLworKyAgICB1 bnNpZ25lZCBsb25nIGludCBzdF9tdGltZW5zZWM7CS8qIE5zZWNzIG9mIGxhc3QgbW9kaWZpY2F0 aW9uLiAgKi8KKysgICAgX190aW1lX3Qgc3RfY3RpbWU7CQkJLyogVGltZSBvZiBsYXN0IHN0YXR1 cyBjaGFuZ2UuICAqLworKyAgICB1bnNpZ25lZCBsb25nIGludCBzdF9jdGltZW5zZWM7CS8qIE5z ZWNzIG9mIGxhc3Qgc3RhdHVzIGNoYW5nZS4gICovCisrIyAgZW5kaWYKKysgICAgX19pbm82NF90 IHN0X2lubzsJCQkvKiBGaWxlIHNlcmlhbCBudW1iZXIuCQkqLworKyMgZW5kaWYgLyogX19VU0Vf VElNRV9CSVRTNjQgICovCisrICB9OworKyNlbmRpZgorKworKy8qIFRlbGwgY29kZSB3ZSBoYXZl IHRoZXNlIG1lbWJlcnMuICAqLworKyNkZWZpbmUJX1NUQVRCVUZfU1RfQkxLU0laRQorKyNkZWZp bmUgX1NUQVRCVUZfU1RfUkRFVgorKy8qIE5hbm9zZWNvbmQgcmVzb2x1dGlvbiB0aW1lIHZhbHVl cyBhcmUgc3VwcG9ydGVkLiAgKi8KKysjZGVmaW5lIF9TVEFUQlVGX1NUX05TRUMKKysKKysKKysj ZW5kaWYgLyogX0JJVFNfU1RSVUNUX1NUQVRfSCAgKi8KK2RpZmYgLS1naXQgYS9zeXNkZXBzL3Vu aXgvc3lzdi9saW51eC9uaW9zMi9iaXRzL3N0cnVjdF9zdGF0LmggYi9zeXNkZXBzL3VuaXgvc3lz di9saW51eC9uaW9zMi9iaXRzL3N0cnVjdF9zdGF0LmgKK25ldyBmaWxlIG1vZGUgMTAwNjQ0Citp bmRleCAwMDAwMDAwMDAwLi5lMDBlNzExNzNlCistLS0gL2Rldi9udWxsCisrKysgYi9zeXNkZXBz L3VuaXgvc3lzdi9saW51eC9uaW9zMi9iaXRzL3N0cnVjdF9zdGF0LmgKK0BAIC0wLDAgKzEsMTM1 IEBACisrLyogRGVmaW5pdGlvbiBmb3Igc3RydWN0IHN0YXQuICBMaW51eC9uaW9zMiB2ZXJzaW9u LgorKyAgIENvcHlyaWdodCAoQykgMjAyMC0yMDIyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgorKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5LgorKworKyAg IFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl IGl0IGFuZC9vcgorKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNz ZXIgR2VuZXJhbCBQdWJsaWMKKysgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKysgICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5z ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysKKysgICBUaGUgR05V IEMgTGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKysgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl ZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKysgICBMaWNlbnNlIGFs b25nIHdpdGggdGhlIEdOVSBDIExpYnJhcnkuICBJZiBub3QsIHNlZQorKyAgIDxodHRwczovL3d3 dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworKworKyNpZiAhZGVmaW5lZCBfU1lTX1NUQVRfSCAm JiAhZGVmaW5lZCBfRkNOVExfSAorKyMgZXJyb3IgIk5ldmVyIGluY2x1ZGUgPGJpdHMvc3RydWN0 X3N0YXQuaD4gZGlyZWN0bHk7IHVzZSA8c3lzL3N0YXQuaD4gaW5zdGVhZC4iCisrI2VuZGlmCisr CisrI2lmbmRlZiBfQklUU19TVFJVQ1RfU1RBVF9ICisrI2RlZmluZSBfQklUU19TVFJVQ1RfU1RB VF9ICTEKKysKKysjaW5jbHVkZSA8Yml0cy9lbmRpYW4uaD4KKysjaW5jbHVkZSA8Yml0cy93b3Jk c2l6ZS5oPgorKworKyNpZiBkZWZpbmVkIF9fVVNFX0ZJTEVfT0ZGU0VUNjQKKysjIGRlZmluZSBf X2ZpZWxkNjQodHlwZSwgdHlwZTY0LCBuYW1lKSB0eXBlNjQgbmFtZQorKyNlbGlmIF9fV09SRFNJ WkUgPT0gNjQgfHwgZGVmaW5lZCBfX0lOT19UX01BVENIRVNfSU5PNjRfVAorKyMgaWYgZGVmaW5l ZCBfX0lOT19UX01BVENIRVNfSU5PNjRfVCAmJiAhZGVmaW5lZCBfX09GRl9UX01BVENIRVNfT0ZG NjRfVAorKyMgIGVycm9yICJpbm9fdCBhbmQgb2ZmX3QgbXVzdCBib3RoIGJlIHRoZSBzYW1lIHR5 cGUiCisrIyBlbmRpZgorKyMgZGVmaW5lIF9fZmllbGQ2NCh0eXBlLCB0eXBlNjQsIG5hbWUpIHR5 cGUgbmFtZQorKyNlbGlmIF9fQllURV9PUkRFUiA9PSBfX0xJVFRMRV9FTkRJQU4KKysjIGRlZmlu ZSBfX2ZpZWxkNjQodHlwZSwgdHlwZTY0LCBuYW1lKSBcCisrICB0eXBlIG5hbWUgX19hdHRyaWJ1 dGVfXygoX19hbGlnbmVkX18gKF9fYWxpZ25vZl9fICh0eXBlNjQpKSkpOyBpbnQgX18jI25hbWUj I19wYWQKKysjZWxzZQorKyMgZGVmaW5lIF9fZmllbGQ2NCh0eXBlLCB0eXBlNjQsIG5hbWUpIFwK KysgIGludCBfXyMjbmFtZSMjX3BhZCBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXyAoX19hbGln bm9mX18gKHR5cGU2NCkpKSk7IHR5cGUgbmFtZQorKyNlbmRpZgorKworK3N0cnVjdCBzdGF0Cisr ICB7CisrI2lmZGVmIF9fVVNFX1RJTUVfQklUUzY0CisrIyBpbmNsdWRlIDxiaXRzL3N0cnVjdF9z dGF0X3RpbWU2NF9oZWxwZXIuaD4KKysjZWxzZQorKyAgICBfX2Rldl90IHN0X2RldjsJCS8qIERl dmljZS4gICovCisrICAgIF9fZmllbGQ2NChfX2lub190LCBfX2lubzY0X3QsIHN0X2lubyk7ICAv KiBGaWxlIHNlcmlhbCBudW1iZXIuICovCisrICAgIF9fbW9kZV90IHN0X21vZGU7CQkvKiBGaWxl IG1vZGUuICAqLworKyAgICBfX25saW5rX3Qgc3Rfbmxpbms7CQkvKiBMaW5rIGNvdW50LiAgKi8K KysgICAgX191aWRfdCBzdF91aWQ7CQkvKiBVc2VyIElEIG9mIHRoZSBmaWxlJ3Mgb3duZXIuCSov CisrICAgIF9fZ2lkX3Qgc3RfZ2lkOwkJLyogR3JvdXAgSUQgb2YgdGhlIGZpbGUncyBncm91cC4q LworKyAgICBfX2Rldl90IHN0X3JkZXY7CQkvKiBEZXZpY2UgbnVtYmVyLCBpZiBkZXZpY2UuICAq LworKyAgICBfX2Rldl90IF9fcGFkMTsKKysgICAgX19maWVsZDY0KF9fb2ZmX3QsIF9fb2ZmNjRf dCwgc3Rfc2l6ZSk7ICAvKiBTaXplIG9mIGZpbGUsIGluIGJ5dGVzLiAqLworKyAgICBfX2Jsa3Np emVfdCBzdF9ibGtzaXplOwkvKiBPcHRpbWFsIGJsb2NrIHNpemUgZm9yIEkvTy4gICovCisrICAg IGludCBfX3BhZDI7CisrICAgIF9fZmllbGQ2NChfX2Jsa2NudF90LCBfX2Jsa2NudDY0X3QsIHN0 X2Jsb2Nrcyk7ICAvKiA1MTItYnl0ZSBibG9ja3MgKi8KKysjIGlmZGVmIF9fVVNFX1hPUEVOMks4 CisrICAgIC8qIE5hbm9zZWNvbmQgcmVzb2x1dGlvbiB0aW1lc3RhbXBzIGFyZSBzdG9yZWQgaW4g YSBmb3JtYXQKKysgICAgICAgZXF1aXZhbGVudCB0byAnc3RydWN0IHRpbWVzcGVjJy4gIFRoaXMg aXMgdGhlIHR5cGUgdXNlZAorKyAgICAgICB3aGVuZXZlciBwb3NzaWJsZSBidXQgdGhlIFVuaXgg bmFtZXNwYWNlIHJ1bGVzIGRvIG5vdCBhbGxvdyB0aGUKKysgICAgICAgaWRlbnRpZmllciAndGlt ZXNwZWMnIHRvIGFwcGVhciBpbiB0aGUgPHN5cy9zdGF0Lmg+IGhlYWRlci4KKysgICAgICAgVGhl cmVmb3JlIHdlIGhhdmUgdG8gaGFuZGxlIHRoZSB1c2Ugb2YgdGhpcyBoZWFkZXIgaW4gc3RyaWN0 bHkKKysgICAgICAgc3RhbmRhcmQtY29tcGxpYW50IHNvdXJjZXMgc3BlY2lhbC4gICovCisrICAg IHN0cnVjdCB0aW1lc3BlYyBzdF9hdGltOwkJLyogVGltZSBvZiBsYXN0IGFjY2Vzcy4gICovCisr ICAgIHN0cnVjdCB0aW1lc3BlYyBzdF9tdGltOwkJLyogVGltZSBvZiBsYXN0IG1vZGlmaWNhdGlv bi4gICovCisrICAgIHN0cnVjdCB0aW1lc3BlYyBzdF9jdGltOwkJLyogVGltZSBvZiBsYXN0IHN0 YXR1cyBjaGFuZ2UuICAqLworKyMgIGRlZmluZSBzdF9hdGltZSBzdF9hdGltLnR2X3NlYwkvKiBC YWNrd2FyZCBjb21wYXRpYmlsaXR5LiAgKi8KKysjICBkZWZpbmUgc3RfbXRpbWUgc3RfbXRpbS50 dl9zZWMKKysjICBkZWZpbmUgc3RfY3RpbWUgc3RfY3RpbS50dl9zZWMKKysjIGVsc2UKKysgICAg X190aW1lX3Qgc3RfYXRpbWU7CQkJLyogVGltZSBvZiBsYXN0IGFjY2Vzcy4gICovCisrICAgIHVu c2lnbmVkIGxvbmcgaW50IHN0X2F0aW1lbnNlYzsJLyogTnNjZWNzIG9mIGxhc3QgYWNjZXNzLiAg Ki8KKysgICAgX190aW1lX3Qgc3RfbXRpbWU7CQkJLyogVGltZSBvZiBsYXN0IG1vZGlmaWNhdGlv bi4gICovCisrICAgIHVuc2lnbmVkIGxvbmcgaW50IHN0X210aW1lbnNlYzsJLyogTnNlY3Mgb2Yg bGFzdCBtb2RpZmljYXRpb24uICAqLworKyAgICBfX3RpbWVfdCBzdF9jdGltZTsJCQkvKiBUaW1l IG9mIGxhc3Qgc3RhdHVzIGNoYW5nZS4gICovCisrICAgIHVuc2lnbmVkIGxvbmcgaW50IHN0X2N0 aW1lbnNlYzsJLyogTnNlY3Mgb2YgbGFzdCBzdGF0dXMgY2hhbmdlLiAgKi8KKysjIGVuZGlmCisr ICAgIGludCBfX2dsaWJjX3Jlc2VydmVkWzJdOworKyNlbmRpZgorKyAgfTsKKysKKysjdW5kZWYg X19maWVsZDY0CisrCisrI2lmZGVmIF9fVVNFX0xBUkdFRklMRTY0Cisrc3RydWN0IHN0YXQ2NAor KyAgeworKyMgaWZkZWYgX19VU0VfVElNRV9CSVRTNjQKKysjICBpbmNsdWRlIDxiaXRzL3N0cnVj dF9zdGF0X3RpbWU2NF9oZWxwZXIuaD4KKysjIGVsc2UKKysgICAgX19kZXZfdCBzdF9kZXY7CQkv KiBEZXZpY2UuICAqLworKyAgICBfX2lubzY0X3Qgc3RfaW5vOwkJLyogRmlsZSBzZXJpYWwgbnVt YmVyLgkqLworKyAgICBfX21vZGVfdCBzdF9tb2RlOwkJLyogRmlsZSBtb2RlLiAgKi8KKysgICAg X19ubGlua190IHN0X25saW5rOwkJLyogTGluayBjb3VudC4gICovCisrICAgIF9fdWlkX3Qgc3Rf dWlkOwkJLyogVXNlciBJRCBvZiB0aGUgZmlsZSdzIG93bmVyLgkqLworKyAgICBfX2dpZF90IHN0 X2dpZDsJCS8qIEdyb3VwIElEIG9mIHRoZSBmaWxlJ3MgZ3JvdXAuKi8KKysgICAgX19kZXZfdCBz dF9yZGV2OwkJLyogRGV2aWNlIG51bWJlciwgaWYgZGV2aWNlLiAgKi8KKysgICAgX19kZXZfdCBf X3BhZDE7CisrICAgIF9fb2ZmNjRfdCBzdF9zaXplOwkJLyogU2l6ZSBvZiBmaWxlLCBpbiBieXRl cy4gICovCisrICAgIF9fYmxrc2l6ZV90IHN0X2Jsa3NpemU7CS8qIE9wdGltYWwgYmxvY2sgc2l6 ZSBmb3IgSS9PLiAgKi8KKysgICAgaW50IF9fcGFkMjsKKysgICAgX19ibGtjbnQ2NF90IHN0X2Js b2NrczsJLyogTnIuIDUxMi1ieXRlIGJsb2NrcyBhbGxvY2F0ZWQuICAqLworKyMgIGlmZGVmIF9f VVNFX1hPUEVOMks4CisrICAgIC8qIE5hbm9zZWNvbmQgcmVzb2x1dGlvbiB0aW1lc3RhbXBzIGFy ZSBzdG9yZWQgaW4gYSBmb3JtYXQKKysgICAgICAgZXF1aXZhbGVudCB0byAnc3RydWN0IHRpbWVz cGVjJy4gIFRoaXMgaXMgdGhlIHR5cGUgdXNlZAorKyAgICAgICB3aGVuZXZlciBwb3NzaWJsZSBi dXQgdGhlIFVuaXggbmFtZXNwYWNlIHJ1bGVzIGRvIG5vdCBhbGxvdyB0aGUKKysgICAgICAgaWRl bnRpZmllciAndGltZXNwZWMnIHRvIGFwcGVhciBpbiB0aGUgPHN5cy9zdGF0Lmg+IGhlYWRlci4K KysgICAgICAgVGhlcmVmb3JlIHdlIGhhdmUgdG8gaGFuZGxlIHRoZSB1c2Ugb2YgdGhpcyBoZWFk ZXIgaW4gc3RyaWN0bHkKKysgICAgICAgc3RhbmRhcmQtY29tcGxpYW50IHNvdXJjZXMgc3BlY2lh bC4gICovCisrICAgIHN0cnVjdCB0aW1lc3BlYyBzdF9hdGltOwkJLyogVGltZSBvZiBsYXN0IGFj Y2Vzcy4gICovCisrICAgIHN0cnVjdCB0aW1lc3BlYyBzdF9tdGltOwkJLyogVGltZSBvZiBsYXN0 IG1vZGlmaWNhdGlvbi4gICovCisrICAgIHN0cnVjdCB0aW1lc3BlYyBzdF9jdGltOwkJLyogVGlt ZSBvZiBsYXN0IHN0YXR1cyBjaGFuZ2UuICAqLworKyMgIGVsc2UKKysgICAgX190aW1lX3Qgc3Rf YXRpbWU7CQkJLyogVGltZSBvZiBsYXN0IGFjY2Vzcy4gICovCisrICAgIHVuc2lnbmVkIGxvbmcg aW50IHN0X2F0aW1lbnNlYzsJLyogTnNjZWNzIG9mIGxhc3QgYWNjZXNzLiAgKi8KKysgICAgX190 aW1lX3Qgc3RfbXRpbWU7CQkJLyogVGltZSBvZiBsYXN0IG1vZGlmaWNhdGlvbi4gICovCisrICAg IHVuc2lnbmVkIGxvbmcgaW50IHN0X210aW1lbnNlYzsJLyogTnNlY3Mgb2YgbGFzdCBtb2RpZmlj YXRpb24uICAqLworKyAgICBfX3RpbWVfdCBzdF9jdGltZTsJCQkvKiBUaW1lIG9mIGxhc3Qgc3Rh dHVzIGNoYW5nZS4gICovCisrICAgIHVuc2lnbmVkIGxvbmcgaW50IHN0X2N0aW1lbnNlYzsJLyog TnNlY3Mgb2YgbGFzdCBzdGF0dXMgY2hhbmdlLiAgKi8KKysjICBlbmRpZgorKyAgICBpbnQgX19n bGliY19yZXNlcnZlZFsyXTsKKysjIGVuZGlmCisrICB9OworKyNlbmRpZgorKworKy8qIFRlbGwg Y29kZSB3ZSBoYXZlIHRoZXNlIG1lbWJlcnMuICAqLworKyNkZWZpbmUJX1NUQVRCVUZfU1RfQkxL U0laRQorKyNkZWZpbmUgX1NUQVRCVUZfU1RfUkRFVgorKy8qIE5hbm9zZWNvbmQgcmVzb2x1dGlv biB0aW1lIHZhbHVlcyBhcmUgc3VwcG9ydGVkLiAgKi8KKysjZGVmaW5lIF9TVEFUQlVGX1NUX05T RUMKKysKKysjZW5kaWYgLyogX0JJVFNfU1RSVUNUX1NUQVRfSCAgKi8KK2RpZmYgLS1naXQgYS9z eXNkZXBzL3VuaXgvc3lzdi9saW51eC9zaC9iaXRzL3N0cnVjdF9zdGF0LmggYi9zeXNkZXBzL3Vu aXgvc3lzdi9saW51eC9zaC9iaXRzL3N0cnVjdF9zdGF0LmgKK25ldyBmaWxlIG1vZGUgMTAwNjQ0 CitpbmRleCAwMDAwMDAwMDAwLi4wZjdjOWNkYzg5CistLS0gL2Rldi9udWxsCisrKysgYi9zeXNk ZXBzL3VuaXgvc3lzdi9saW51eC9zaC9iaXRzL3N0cnVjdF9zdGF0LmgKK0BAIC0wLDAgKzEsMTM5 IEBACisrLyogRGVmaW5pdGlvbiBmb3Igc3RydWN0IHN0YXQuICBMaW51eC9zaCB2ZXJzaW9uLgor KyAgIENvcHlyaWdodCAoQykgMjAyMC0yMDIyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LgorKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5LgorKworKyAgIFRo ZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vcgorKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIg R2VuZXJhbCBQdWJsaWMKKysgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKysgICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwg b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysKKysgICBUaGUgR05VIEMg TGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs LAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKysgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh IGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKysgICBMaWNlbnNlIGFsb25n IHdpdGggdGhlIEdOVSBDIExpYnJhcnkuICBJZiBub3QsIHNlZQorKyAgIDxodHRwczovL3d3dy5n bnUub3JnL2xpY2Vuc2VzLz4uICAqLworKworKyNpZiAhZGVmaW5lZCBfU1lTX1NUQVRfSCAmJiAh ZGVmaW5lZCBfRkNOVExfSAorKyMgZXJyb3IgIk5ldmVyIGluY2x1ZGUgPGJpdHMvc3RydWN0X3N0 YXQuaD4gZGlyZWN0bHk7IHVzZSA8c3lzL3N0YXQuaD4gaW5zdGVhZC4iCisrI2VuZGlmCisrCisr I2lmbmRlZiBfQklUU19TVFJVQ1RfU1RBVF9ICisrI2RlZmluZSBfQklUU19TVFJVQ1RfU1RBVF9I CTEKKysKKysjaW5jbHVkZSA8Yml0cy9lbmRpYW4uaD4KKysjaW5jbHVkZSA8Yml0cy93b3Jkc2l6 ZS5oPgorKworK3N0cnVjdCBzdGF0CisrICB7CisrI2lmZGVmIF9fVVNFX1RJTUVfQklUUzY0Cisr IyBpbmNsdWRlIDxiaXRzL3N0cnVjdF9zdGF0X3RpbWU2NF9oZWxwZXIuaD4KKysjZWxzZQorKyAg ICBfX2Rldl90IHN0X2RldjsJCQkvKiBEZXZpY2UuICAqLworKyAgICB1bnNpZ25lZCBzaG9ydCBp bnQgX19wYWQxOworKyMgaWZuZGVmIF9fVVNFX0ZJTEVfT0ZGU0VUNjQKKysgICAgX19pbm9fdCBz dF9pbm87CQkJLyogRmlsZSBzZXJpYWwgbnVtYmVyLgkqLworKyMgZWxzZQorKyAgICBfX2lub190 IF9fc3RfaW5vOwkJCS8qIDMyYml0IGZpbGUgc2VyaWFsIG51bWJlci4JKi8KKysjIGVuZGlmCisr ICAgIF9fbW9kZV90IHN0X21vZGU7CQkJLyogRmlsZSBtb2RlLiAgKi8KKysgICAgX19ubGlua190 IHN0X25saW5rOwkJCS8qIExpbmsgY291bnQuICAqLworKyAgICBfX3VpZF90IHN0X3VpZDsJCQkv KiBVc2VyIElEIG9mIHRoZSBmaWxlJ3Mgb3duZXIuCSovCisrICAgIF9fZ2lkX3Qgc3RfZ2lkOwkJ CS8qIEdyb3VwIElEIG9mIHRoZSBmaWxlJ3MgZ3JvdXAuKi8KKysgICAgX19kZXZfdCBzdF9yZGV2 OwkJCS8qIERldmljZSBudW1iZXIsIGlmIGRldmljZS4gICovCisrICAgIHVuc2lnbmVkIHNob3J0 IGludCBfX3BhZDI7CisrIyBpZm5kZWYgX19VU0VfRklMRV9PRkZTRVQ2NAorKyAgICBfX29mZl90 IHN0X3NpemU7CQkJLyogU2l6ZSBvZiBmaWxlLCBpbiBieXRlcy4gICovCisrIyBlbHNlCisrICAg IF9fb2ZmNjRfdCBzdF9zaXplOwkJCS8qIFNpemUgb2YgZmlsZSwgaW4gYnl0ZXMuICAqLworKyMg ZW5kaWYKKysgICAgX19ibGtzaXplX3Qgc3RfYmxrc2l6ZTsJCS8qIE9wdGltYWwgYmxvY2sgc2l6 ZSBmb3IgSS9PLiAgKi8KKysKKysjIGlmbmRlZiBfX1VTRV9GSUxFX09GRlNFVDY0CisrICAgIF9f YmxrY250X3Qgc3RfYmxvY2tzOwkJLyogTnVtYmVyIDUxMi1ieXRlIGJsb2NrcyBhbGxvY2F0ZWQu ICovCisrIyBlbHNlCisrICAgIF9fYmxrY250NjRfdCBzdF9ibG9ja3M7CQkvKiBOdW1iZXIgNTEy LWJ5dGUgYmxvY2tzIGFsbG9jYXRlZC4gKi8KKysjIGVuZGlmCisrIyBpZmRlZiBfX1VTRV9YT1BF TjJLOAorKyAgICAvKiBOYW5vc2Vjb25kIHJlc29sdXRpb24gdGltZXN0YW1wcyBhcmUgc3RvcmVk IGluIGEgZm9ybWF0CisrICAgICAgIGVxdWl2YWxlbnQgdG8gJ3N0cnVjdCB0aW1lc3BlYycuICBU aGlzIGlzIHRoZSB0eXBlIHVzZWQKKysgICAgICAgd2hlbmV2ZXIgcG9zc2libGUgYnV0IHRoZSBV bml4IG5hbWVzcGFjZSBydWxlcyBkbyBub3QgYWxsb3cgdGhlCisrICAgICAgIGlkZW50aWZpZXIg J3RpbWVzcGVjJyB0byBhcHBlYXIgaW4gdGhlIDxzeXMvc3RhdC5oPiBoZWFkZXIuCisrICAgICAg IFRoZXJlZm9yZSB3ZSBoYXZlIHRvIGhhbmRsZSB0aGUgdXNlIG9mIHRoaXMgaGVhZGVyIGluIHN0 cmljdGx5CisrICAgICAgIHN0YW5kYXJkLWNvbXBsaWFudCBzb3VyY2VzIHNwZWNpYWwuICAqLwor KyAgICBzdHJ1Y3QgdGltZXNwZWMgc3RfYXRpbTsJCS8qIFRpbWUgb2YgbGFzdCBhY2Nlc3MuICAq LworKyAgICBzdHJ1Y3QgdGltZXNwZWMgc3RfbXRpbTsJCS8qIFRpbWUgb2YgbGFzdCBtb2RpZmlj YXRpb24uICAqLworKyAgICBzdHJ1Y3QgdGltZXNwZWMgc3RfY3RpbTsJCS8qIFRpbWUgb2YgbGFz dCBzdGF0dXMgY2hhbmdlLiAgKi8KKysjICBkZWZpbmUgc3RfYXRpbWUgc3RfYXRpbS50dl9zZWMJ LyogQmFja3dhcmQgY29tcGF0aWJpbGl0eS4gICovCisrIyAgZGVmaW5lIHN0X210aW1lIHN0X210 aW0udHZfc2VjCisrIyAgZGVmaW5lIHN0X2N0aW1lIHN0X2N0aW0udHZfc2VjCisrIyBlbHNlCisr ICAgIF9fdGltZV90IHN0X2F0aW1lOwkJCS8qIFRpbWUgb2YgbGFzdCBhY2Nlc3MuICAqLworKyAg ICB1bnNpZ25lZCBsb25nIGludCBzdF9hdGltZW5zZWM7CS8qIE5zY2VjcyBvZiBsYXN0IGFjY2Vz cy4gICovCisrICAgIF9fdGltZV90IHN0X210aW1lOwkJCS8qIFRpbWUgb2YgbGFzdCBtb2RpZmlj YXRpb24uICAqLworKyAgICB1bnNpZ25lZCBsb25nIGludCBzdF9tdGltZW5zZWM7CS8qIE5zZWNz IG9mIGxhc3QgbW9kaWZpY2F0aW9uLiAgKi8KKysgICAgX190aW1lX3Qgc3RfY3RpbWU7CQkJLyog VGltZSBvZiBsYXN0IHN0YXR1cyBjaGFuZ2UuICAqLworKyAgICB1bnNpZ25lZCBsb25nIGludCBz dF9jdGltZW5zZWM7CS8qIE5zZWNzIG9mIGxhc3Qgc3RhdHVzIGNoYW5nZS4gICovCisrIyBlbmRp ZgorKyMgaWZuZGVmIF9fVVNFX0ZJTEVfT0ZGU0VUNjQKKysgICAgdW5zaWduZWQgbG9uZyBpbnQg X19nbGliY19yZXNlcnZlZDQ7CisrICAgIHVuc2lnbmVkIGxvbmcgaW50IF9fZ2xpYmNfcmVzZXJ2 ZWQ1OworKyMgZWxzZQorKyAgICBfX2lubzY0X3Qgc3RfaW5vOwkJCS8qIEZpbGUgc2VyaWFsIG51 bWJlci4JKi8KKysjIGVuZGlmCisrI2VuZGlmIC8qIF9fVVNFX1RJTUVfQklUUzY0ICAqLworKyAg fTsKKysKKysjaWZkZWYgX19VU0VfTEFSR0VGSUxFNjQKKytzdHJ1Y3Qgc3RhdDY0CisrICB7Cisr IyBpZmRlZiBfX1VTRV9USU1FX0JJVFM2NAorKyMgIGluY2x1ZGUgPGJpdHMvc3RydWN0X3N0YXRf dGltZTY0X2hlbHBlci5oPgorKyMgZWxzZQorKyAgICBfX2Rldl90IHN0X2RldjsJCQkvKiBEZXZp Y2UuICAqLworKyAgICB1bnNpZ25lZCBpbnQgX19wYWQxOworKworKyAgICBfX2lub190IF9fc3Rf aW5vOwkJCS8qIDMyYml0IGZpbGUgc2VyaWFsIG51bWJlci4JKi8KKysgICAgX19tb2RlX3Qgc3Rf bW9kZTsJCQkvKiBGaWxlIG1vZGUuICAqLworKyAgICBfX25saW5rX3Qgc3Rfbmxpbms7CQkJLyog TGluayBjb3VudC4gICovCisrICAgIF9fdWlkX3Qgc3RfdWlkOwkJCS8qIFVzZXIgSUQgb2YgdGhl IGZpbGUncyBvd25lci4JKi8KKysgICAgX19naWRfdCBzdF9naWQ7CQkJLyogR3JvdXAgSUQgb2Yg dGhlIGZpbGUncyBncm91cC4qLworKyAgICBfX2Rldl90IHN0X3JkZXY7CQkJLyogRGV2aWNlIG51 bWJlciwgaWYgZGV2aWNlLiAgKi8KKysgICAgdW5zaWduZWQgaW50IF9fcGFkMjsKKysgICAgX19v ZmY2NF90IHN0X3NpemU7CQkJLyogU2l6ZSBvZiBmaWxlLCBpbiBieXRlcy4gICovCisrICAgIF9f Ymxrc2l6ZV90IHN0X2Jsa3NpemU7CQkvKiBPcHRpbWFsIGJsb2NrIHNpemUgZm9yIEkvTy4gICov CisrCisrICAgIF9fYmxrY250NjRfdCBzdF9ibG9ja3M7CQkvKiBOdW1iZXIgNTEyLWJ5dGUgYmxv Y2tzIGFsbG9jYXRlZC4gKi8KKysjICBpZmRlZiBfX1VTRV9YT1BFTjJLOAorKyAgICAvKiBOYW5v c2Vjb25kIHJlc29sdXRpb24gdGltZXN0YW1wcyBhcmUgc3RvcmVkIGluIGEgZm9ybWF0CisrICAg ICAgIGVxdWl2YWxlbnQgdG8gJ3N0cnVjdCB0aW1lc3BlYycuICBUaGlzIGlzIHRoZSB0eXBlIHVz ZWQKKysgICAgICAgd2hlbmV2ZXIgcG9zc2libGUgYnV0IHRoZSBVbml4IG5hbWVzcGFjZSBydWxl cyBkbyBub3QgYWxsb3cgdGhlCisrICAgICAgIGlkZW50aWZpZXIgJ3RpbWVzcGVjJyB0byBhcHBl YXIgaW4gdGhlIDxzeXMvc3RhdC5oPiBoZWFkZXIuCisrICAgICAgIFRoZXJlZm9yZSB3ZSBoYXZl IHRvIGhhbmRsZSB0aGUgdXNlIG9mIHRoaXMgaGVhZGVyIGluIHN0cmljdGx5CisrICAgICAgIHN0 YW5kYXJkLWNvbXBsaWFudCBzb3VyY2VzIHNwZWNpYWwuICAqLworKyAgICBzdHJ1Y3QgdGltZXNw ZWMgc3RfYXRpbTsJCS8qIFRpbWUgb2YgbGFzdCBhY2Nlc3MuICAqLworKyAgICBzdHJ1Y3QgdGlt ZXNwZWMgc3RfbXRpbTsJCS8qIFRpbWUgb2YgbGFzdCBtb2RpZmljYXRpb24uICAqLworKyAgICBz dHJ1Y3QgdGltZXNwZWMgc3RfY3RpbTsJCS8qIFRpbWUgb2YgbGFzdCBzdGF0dXMgY2hhbmdlLiAg Ki8KKysjICBlbHNlCisrICAgIF9fdGltZV90IHN0X2F0aW1lOwkJCS8qIFRpbWUgb2YgbGFzdCBh Y2Nlc3MuICAqLworKyAgICB1bnNpZ25lZCBsb25nIGludCBzdF9hdGltZW5zZWM7CS8qIE5zY2Vj cyBvZiBsYXN0IGFjY2Vzcy4gICovCisrICAgIF9fdGltZV90IHN0X210aW1lOwkJCS8qIFRpbWUg b2YgbGFzdCBtb2RpZmljYXRpb24uICAqLworKyAgICB1bnNpZ25lZCBsb25nIGludCBzdF9tdGlt ZW5zZWM7CS8qIE5zZWNzIG9mIGxhc3QgbW9kaWZpY2F0aW9uLiAgKi8KKysgICAgX190aW1lX3Qg c3RfY3RpbWU7CQkJLyogVGltZSBvZiBsYXN0IHN0YXR1cyBjaGFuZ2UuICAqLworKyAgICB1bnNp Z25lZCBsb25nIGludCBzdF9jdGltZW5zZWM7CS8qIE5zZWNzIG9mIGxhc3Qgc3RhdHVzIGNoYW5n ZS4gICovCisrIyAgZW5kaWYKKysgICAgX19pbm82NF90IHN0X2lubzsJCQkvKiBGaWxlIHNlcmlh bCBudW1iZXIuCQkqLworKyMgZW5kaWYgLyogX19VU0VfVElNRV9CSVRTNjQgICovCisrICB9Owor KyNlbmRpZgorKworKy8qIFRlbGwgY29kZSB3ZSBoYXZlIHRoZXNlIG1lbWJlcnMuICAqLworKyNk ZWZpbmUJX1NUQVRCVUZfU1RfQkxLU0laRQorKyNkZWZpbmUgX1NUQVRCVUZfU1RfUkRFVgorKy8q IE5hbm9zZWNvbmQgcmVzb2x1dGlvbiB0aW1lIHZhbHVlcyBhcmUgc3VwcG9ydGVkLiAgKi8KKysj ZGVmaW5lIF9TVEFUQlVGX1NUX05TRUMKKysKKysKKysjZW5kaWYgLyogX0JJVFNfU1RSVUNUX1NU QVRfSCAgKi8KKy0tIAorMi4zOC4xCisKKworRnJvbSBhMWRjMGJlMDNjOWRkODUwYjg2NGJkN2E5 YzAzY2Y4ZTM5NmViN2NhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQWRoZW1lcnZh bCBaYW5lbGxhIDxhZGhlbWVydmFsLnphbmVsbGFAbGluYXJvLm9yZz4KK0RhdGU6IFR1ZSwgMjUg T2N0IDIwMjIgMTM6MTk6MTYgLTAzMDAKK1N1YmplY3Q6IGVsZjogUmVpbnN0YXRlIG9uIERMX0RF QlVHX0JJTkRJTkdTIF9kbF9sb29rdXBfc3ltYm9sX3gKKworVGhlIHByZWxpbmsgcmVtb3ZhbCBk b25lIGJ5IDY2MjhjNzQyYjJjMTZlIHdyb25nbHkgcmVtb3ZlZCB0aGUgZGVidWcKK3N1cHBvcnQu CisKK0NoZWNrZWQgb24geDg2XzY0LWxpbnV4LWdudS4KKworKGNoZXJyeSBwaWNrZWQgZnJvbSBj b21taXQgODkxYTc5NThhMjhlYWM2ZDRhZjE1MTdkZDI4OTZmZWY1ZTQ5NTFkNCkKKy0tLQorIGVs Zi9kbC1sb29rdXAuYyB8IDE3ICsrKysrKysrKysrKysrKysrCisgMSBmaWxlIGNoYW5nZWQsIDE3 IGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL2VsZi9kbC1sb29rdXAuYyBiL2VsZi9kbC1s b29rdXAuYworaW5kZXggNGM4NmRjNjk0ZS4uNjdmYjJlMzFlMiAxMDA2NDQKKy0tLSBhL2VsZi9k bC1sb29rdXAuYworKysrIGIvZWxmL2RsLWxvb2t1cC5jCitAQCAtODU0LDYgKzg1NCwyMyBAQCBf ZGxfbG9va3VwX3N5bWJvbF94IChjb25zdCBjaGFyICp1bmRlZl9uYW1lLCBzdHJ1Y3QgbGlua19t YXAgKnVuZGVmX21hcCwKKyAgIGlmIChfX2dsaWJjX3VubGlrZWx5IChjdXJyZW50X3ZhbHVlLm0t PmxfdXNlZCA9PSAwKSkKKyAgICAgY3VycmVudF92YWx1ZS5tLT5sX3VzZWQgPSAxOworIAorKyBp ZiAoX19nbGliY191bmxpa2VseSAoR0xSTyhkbF9kZWJ1Z19tYXNrKSAmIERMX0RFQlVHX0JJTkRJ TkdTKSkKKysgICB7CisrICAgICAgY29uc3QgY2hhciAqcmVmZXJlbmNlX25hbWUgPSB1bmRlZl9t YXAtPmxfbmFtZTsKKysKKysgICAgICBfZGxfZGVidWdfcHJpbnRmICgiYmluZGluZyBmaWxlICVz IFslbHVdIHRvICVzIFslbHVdOiAlcyBzeW1ib2wgYCVzJyIsCisrCQkJRFNPX0ZJTEVOQU1FIChy ZWZlcmVuY2VfbmFtZSksCisrCQkJdW5kZWZfbWFwLT5sX25zLAorKwkJCURTT19GSUxFTkFNRSAo Y3VycmVudF92YWx1ZS5tLT5sX25hbWUpLAorKwkJCWN1cnJlbnRfdmFsdWUubS0+bF9ucywKKysJ CQlwcm90ZWN0ZWQgPyAicHJvdGVjdGVkIiA6ICJub3JtYWwiLCB1bmRlZl9uYW1lKTsKKysgICAg ICBpZiAodmVyc2lvbikKKysJX2RsX2RlYnVnX3ByaW50Zl9jICgiIFslc11cbiIsIHZlcnNpb24t Pm5hbWUpOworKyAgICAgIGVsc2UKKysJX2RsX2RlYnVnX3ByaW50Zl9jICgiXG4iKTsKKysgICB9 CisrCisrCisgICAqcmVmID0gY3VycmVudF92YWx1ZS5zOworICAgcmV0dXJuIExPT0tVUF9WQUxV RSAoY3VycmVudF92YWx1ZS5tKTsKKyB9CistLSAKKzIuMzguMQorCisKK0Zyb20gNGM2YTc4YWRk YWJiZDZlMWI2OTc2M2UyODY3Njg5MTllNTZkZmUwYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK K0Zyb206IFhpIFJ1b3lhbyA8eHJ5MTExQHhyeTExMS5zaXRlPgorRGF0ZTogU2F0LCAxNSBPY3Qg MjAyMiAxNDoxMjoxMyArMDgwMAorU3ViamVjdDogbG9uZ2xvbmcuaDogdXBkYXRlIGZyb20gR0ND IGZvciBMb29uZ0FyY2ggY2x6L2N0eiBzdXBwb3J0CisKK1VwZGF0ZSBsb25nbG9uZy5oIHRvIEdD QyByMTMtMzI2OS4gIEtlZXAgb3VyIGxvY2FsIGNoYW5nZSAocHJlZmVyIGh0dHBzCitmb3IgZ251 Lm9yZyBVUkwpLgorLS0tCisgc3RkbGliL2xvbmdsb25nLmggfCAxMiArKysrKysrKysrKysKKyAx IGZpbGUgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvc3RkbGliL2xv bmdsb25nLmggYi9zdGRsaWIvbG9uZ2xvbmcuaAoraW5kZXggOWI4OTQ2OWFjMi4uZDhmNzZhNDNi NSAxMDA2NDQKKy0tLSBhL3N0ZGxpYi9sb25nbG9uZy5oCisrKysgYi9zdGRsaWIvbG9uZ2xvbmcu aAorQEAgLTU5Myw2ICs1OTMsMTggQEAgZXh0ZXJuIFVESXR5cGUgX191bXVsc2lkaTMgKFVTSXR5 cGUsIFVTSXR5cGUpOworICNkZWZpbmUgVU1VTF9USU1FIDE0CisgI2VuZGlmCisgCisrI2lmZGVm IF9fbG9vbmdhcmNoX18KKysjIGlmIFdfVFlQRV9TSVpFID09IDMyCisrIyAgZGVmaW5lIGNvdW50 X2xlYWRpbmdfemVyb3MoY291bnQsIHgpICAoKGNvdW50KSA9IF9fYnVpbHRpbl9jbHogKHgpKQor KyMgIGRlZmluZSBjb3VudF90cmFpbGluZ196ZXJvcyhjb3VudCwgeCkgKChjb3VudCkgPSBfX2J1 aWx0aW5fY3R6ICh4KSkKKysjICBkZWZpbmUgQ09VTlRfTEVBRElOR19aRVJPU18wIDMyCisrIyBl bGlmIFdfVFlQRV9TSVpFID09IDY0CisrIyAgZGVmaW5lIGNvdW50X2xlYWRpbmdfemVyb3MoY291 bnQsIHgpICAoKGNvdW50KSA9IF9fYnVpbHRpbl9jbHpsbCAoeCkpCisrIyAgZGVmaW5lIGNvdW50 X3RyYWlsaW5nX3plcm9zKGNvdW50LCB4KSAoKGNvdW50KSA9IF9fYnVpbHRpbl9jdHpsbCAoeCkp CisrIyAgZGVmaW5lIENPVU5UX0xFQURJTkdfWkVST1NfMCA2NAorKyMgZW5kaWYKKysjZW5kaWYK KysKKyAjaWYgZGVmaW5lZCAoX19NMzJSX18pICYmIFdfVFlQRV9TSVpFID09IDMyCisgI2RlZmlu ZSBhZGRfc3NhYWFhKHNoLCBzbCwgYWgsIGFsLCBiaCwgYmwpIFwKKyAgIC8qIFRoZSBjbXAgY2xl YXJzIHRoZSBjb25kaXRpb24gYml0LiAgKi8gXAorLS0gCisyLjM4LjEKKworCitGcm9tIGRkNDEz MWM4MzIyODkxYTBhZDdjZmI2NjFlZmE0MWFlY2MwMmI1ODEgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCitGcm9tOiBBdXJlbGllbiBKYXJubyA8YXVyZWxpZW5AYXVyZWwzMi5uZXQ+CitEYXRlOiBU dWUsIDEgTm92IDIwMjIgMjA6NDM6NTUgKzAxMDAKK1N1YmplY3Q6IGxpbnV4OiBGaXggZnN0YXRh dCBvbiBNSVBTbjY0IChCWiAjMjk3MzApCisKK0NvbW1pdCA2ZThhMGFhYzJmODgzICgidGltZTog Rml4IG92ZXJmbG93IGl0aW1lciB0ZXN0cyBvbiAzMi1iaXQKK3N5c3RlbXMiKSBjaGFuZ2VkIGlu X3RpbWVfdF9yYW5nZSB0byBhc3N1bWUgYSAzMi1iaXQgdGltZV90LiBUaGlzIGJyb2tlCitmc3Rh dGF0IG9uIE1JUFNuNjQgdGhhdCB3YXMgdXNpbmcgaXQgd2l0aCBhIDY0LWJpdCB0aW1lX3QgZHVl IHRvCitkaWZmZXJlbmNlIGJldHdlZW4gc3RhdCBhbmQgc3RhdDY0LiBUaGlzIGNvbW1pdCBmaXgg dGhhdCBieSBhZGRpbmcgYQorTUlQU242NCBzcGVjaWZpYyB2ZXJzaW9uLCB3aGljaCBieXBhc3Nl cyB0aGUgRU9WRVJGTE9XIHRlc3RzLgorCitSZXNvbHZlczogQlogIzI5NzMwCisKK1Jldmlld2Vk LWJ5OiBBZGhlbWVydmFsIFphbmVsbGEgIDxhZGhlbWVydmFsLnphbmVsbGFAbGluYXJvLm9yZz4K KyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDc0NTdiN2VlZjhkZmU4Y2M0OGU1NWI5Zjk4Mzdk ZjZkZDM5N2I4MGQpCistLS0KKyBORVdTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgMSArCisgLi4uL3VuaXgvc3lzdi9saW51eC9taXBzL21pcHM2NC9uNjQvZnN0 YXRhdC5jIHwgNTEgKysrKysrKysrKysrKysrKysrKworIDIgZmlsZXMgY2hhbmdlZCwgNTIgaW5z ZXJ0aW9ucygrKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9t aXBzL21pcHM2NC9uNjQvZnN0YXRhdC5jCisKK2RpZmYgLS1naXQgYS9ORVdTIGIvTkVXUworaW5k ZXggODMzMDQ1NTg1Zi4uZTkyZDU0N2UyYyAxMDA2NDQKKy0tLSBhL05FV1MKKysrKyBiL05FV1MK K0BAIC00NSw2ICs0NSw3IEBAIFRoZSBmb2xsb3dpbmcgYnVncyBhcmUgcmVzb2x2ZWQgd2l0aCB0 aGlzIHJlbGVhc2U6CisgICBbMjk2MzhdIGxpYmM6IHN0ZGxpYjogYXJjNHJhbmRvbSBmYWxsYmFj ayBpcyBuZXZlciB1c2VkCisgICBbMjk2NTddIGxpYmM6IEluY29ycmVjdCBzdHJ1Y3Qgc3RhdCBm b3IgNjQtYml0IHRpbWUgb24gbGludXgvZ2VuZXJpYworICAgICBwbGF0Zm9ybXMKKysgIFsyOTcz MF0gYnJva2VuIHkyMDM4IHN1cHBvcnQgaW4gZnN0YXRhdCBvbiBNSVBTIE42NAorIAwKKyBWZXJz aW9uIDIuMzYKKyAKK2RpZmYgLS1naXQgYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9taXBzL21p cHM2NC9uNjQvZnN0YXRhdC5jIGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvbWlwcy9taXBzNjQv bjY0L2ZzdGF0YXQuYworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAuLmZl NmMzYTBkZGEKKy0tLSAvZGV2L251bGwKKysrKyBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L21p cHMvbWlwczY0L242NC9mc3RhdGF0LmMKK0BAIC0wLDAgKzEsNTEgQEAKKysvKiBHZXQgZmlsZSBz dGF0dXMuICBMaW51eC9NSVBTbjY0IHZlcnNpb24uCisrICAgQ29weXJpZ2h0IChDKSAyMDIyIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRo ZSBHTlUgQyBMaWJyYXJ5LgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorKyAgIG1vZGlmeSBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKysgICBMaWNlbnNlIGFz IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKysgICB2 ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg dmVyc2lvbi4KKysKKysgICBUaGUgR05VIEMgTGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKysg ICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyAg IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh bCBQdWJsaWMKKysgICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJhcnk7IGlmIG5v dCwgc2VlCisrICAgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrI2lu Y2x1ZGUgPHN5cy9zdGF0Lmg+CisrI2luY2x1ZGUgPHN5c2RlcC5oPgorKworKy8qIERpZmZlcmVu dCB0aGFuIG90aGVyIEFCSXMsIG1pcHM2NCBoYXMgZGlmZmVyZW50IGxheW91dHMgZm9yIG5vbi1M RlMKKysgICBhbmQgTEZTIHN0cnVjdCBzdGF0LiAgKi8KKytpbnQKKytfX2ZzdGF0YXQgKGludCBm ZCwgY29uc3QgY2hhciAqZmlsZSwgc3RydWN0IHN0YXQgKmJ1ZiwgaW50IGZsYWcpCisreworKyAg c3RydWN0IF9fc3RhdDY0X3Q2NCBzdDY0OworKyAgaW50IHIgPSBfX2ZzdGF0YXQ2NF90aW1lNjQg KGZkLCBmaWxlLCAmc3Q2NCwgZmxhZyk7CisrICBpZiAociA9PSAwKQorKyAgICB7CisrICAgICAg LyogQ2xlYXIgaW50ZXJuYWwgcGFkIGFuZCByZXNlcnZlZCBmaWVsZHMuICAqLworKyAgICAgIG1l bXNldCAoYnVmLCAwLCBzaXplb2YgKCpidWYpKTsKKysKKysgICAgICBidWYtPnN0X2RldiA9IHN0 NjQuc3RfZGV2OworKyAgICAgIGJ1Zi0+c3RfaW5vID0gc3Q2NC5zdF9pbm87CisrICAgICAgYnVm LT5zdF9tb2RlID0gc3Q2NC5zdF9tb2RlOworKyAgICAgIGJ1Zi0+c3RfbmxpbmsgPSBzdDY0LnN0 X25saW5rOworKyAgICAgIGJ1Zi0+c3RfdWlkID0gc3Q2NC5zdF91aWQ7CisrICAgICAgYnVmLT5z dF9naWQgPSBzdDY0LnN0X2dpZDsKKysgICAgICBidWYtPnN0X3JkZXYgPSBzdDY0LnN0X3JkZXY7 CisrICAgICAgYnVmLT5zdF9zaXplID0gc3Q2NC5zdF9zaXplOworKyAgICAgIGJ1Zi0+c3RfYmxr c2l6ZSA9IHN0NjQuc3RfYmxrc2l6ZTsKKysgICAgICBidWYtPnN0X2Jsb2NrcyAgPSBzdDY0LnN0 X2Jsb2NrczsKKysgICAgICBidWYtPnN0X2F0aW0gPSBzdDY0LnN0X2F0aW07CisrICAgICAgYnVm LT5zdF9tdGltID0gc3Q2NC5zdF9tdGltOworKyAgICAgIGJ1Zi0+c3RfY3RpbSA9IHN0NjQuc3Rf Y3RpbTsKKysgICAgfQorKyAgcmV0dXJuIHI7CisrfQorKworK3dlYWtfYWxpYXMgKF9fZnN0YXRh dCwgZnN0YXRhdCkKKy0tIAorMi4zOC4xCisKKworRnJvbSAyZmNlODVmNjdjNTZlNDY4NjNkYjQw YjhjYTc1YmJmMGZhOTkzMDUzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogY2FpeWlu eXUgPGNhaXlpbnl1QGxvb25nc29uLmNuPgorRGF0ZTogV2VkLCAxMiBPY3QgMjAyMiAyMDoyODo0 MiArMDgwMAorU3ViamVjdDogTG9vbmdBcmNoOiBGaXggQUJJIHJlbGF0ZWQgbWFjcm9zIGluIGVs Zi5oIHRvIGtlZXAgY29uc2lzdGVudCB3aXRoCisgYmludXRpbHNbMV0uCisKK1sxXToKK2h0dHBz Oi8vc291cmNld2FyZS5vcmcvZ2l0Lz9wPWJpbnV0aWxzLWdkYi5naXQ7YT1jb21taXRkaWZmO2g9 YzRhN2U2YjU2MjE4ZTFkNWE4NTg2ODIxODZiNTQyZTJlYWUwMWE0YTtocD0wZDk0YTg3MzUwNTU0 MzIwMjkyMzc2MTJhNmViOTE2NWRiMWVjOWRkCitbMl06CitSZWZlcmVuY2U6IGh0dHBzOi8vbG9v bmdzb24uZ2l0aHViLmlvL0xvb25nQXJjaC1Eb2N1bWVudGF0aW9uL0xvb25nQXJjaC1FTEYtQUJJ LUVOLmh0bWwjX2VfZmxhZ3NfaWRlbnRpZmllc19hYmlfdHlwZV9hbmRfdmVyc2lvbgorLS0tCisg ZWxmL2VsZi5oIHwgNyArKysrKy0tCisgMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwg MiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2VsZi9lbGYuaCBiL2VsZi9lbGYuaAoraW5k ZXggMDJhMWIzZjUyZi4uMDE0MzkzZjNjYyAxMDA2NDQKKy0tLSBhL2VsZi9lbGYuaAorKysrIGIv ZWxmL2VsZi5oCitAQCAtNDA4NSw4ICs0MDg1LDExIEBAIGVudW0KKyAjZGVmaW5lIFJfTkRTMzJf VExTX0RFU0MJMTE5CisgCisgLyogTG9vbmdBcmNoIEVMRiBGbGFncyAqLworLSNkZWZpbmUgRUZf TEFSQ0hfQUJJICAgIAkweDA3CistI2RlZmluZSBFRl9MQVJDSF9BQklfTFA2NEQJMHgwMworKyNk ZWZpbmUgRUZfTEFSQ0hfQUJJX01PRElGSUVSX01BU0sgIDB4MDcKKysjZGVmaW5lIEVGX0xBUkNI X0FCSV9TT0ZUX0ZMT0FUICAgICAweDAxCisrI2RlZmluZSBFRl9MQVJDSF9BQklfU0lOR0xFX0ZM T0FUICAgMHgwMgorKyNkZWZpbmUgRUZfTEFSQ0hfQUJJX0RPVUJMRV9GTE9BVCAgIDB4MDMKKysj ZGVmaW5lIEVGX0xBUkNIX09CSkFCSV9WMSAgICAgICAgICAweDQwCisgCisgLyogTG9vbmdBcmNo IHNwZWNpZmljIGR5bmFtaWMgcmVsb2NhdGlvbnMgKi8KKyAjZGVmaW5lIFJfTEFSQ0hfTk9ORQkJ MAorLS0gCisyLjM4LjEKKworCitGcm9tIDM2Y2MwNjM0MWEwYzUwMjlmNDllZmFlZWY3NDRkYzNl OTc1OGU2NjkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBTZXJnZWkgVHJvZmltb3Zp Y2ggPHNseWljaEBnbWFpbC5jb20+CitEYXRlOiBUdWUsIDEzIFNlcCAyMDIyIDEzOjM5OjEzIC0w NDAwCitTdWJqZWN0OiBNYWtlcnVsZXM6IGZpeCBNQUtFRkxBR1MgYXNzaWdubWVudCBmb3IgdXBj b21pbmcgbWFrZS00LjQgW0JaIyAyOTU2NF0KKworbWFrZS00LjQgd2lsbCBhZGQgbG9uZyBmbGFn cyB0byBNQUtFRkxBR1MgdmFyaWFibGU6CisKKyAgICAqIFdBUk5JTkc6IEJhY2t3YXJkLWluY29t cGF0aWJpbGl0eSEKKyAgICAgIFByZXZpb3VzbHkgb25seSBzaW1wbGUgKG9uZS1sZXR0ZXIpIG9w dGlvbnMgd2VyZSBhZGRlZCB0byB0aGUgTUFLRUZMQUdTCisgICAgICB2YXJpYWJsZSB0aGF0IHdh cyB2aXNpYmxlIHdoaWxlIHBhcnNpbmcgbWFrZWZpbGVzLiAgTm93LCBhbGwgb3B0aW9ucworICAg ICAgYXJlIGF2YWlsYWJsZSBpbiBNQUtFRkxBR1MuCisKK1RoaXMgY2F1c2VzIGxvY2FsZSBidWls ZHMgdG8gZmFpbCB3aGVuIGxvbmcgb3B0aW9ucyBhcmUgdXNlZDoKKworICAgICQgbWFrZSAtLXNo dWZmbGUKKyAgICAuLi4KKyAgICBtYWtlICAtQyBsb2NhbGVkYXRhIGluc3RhbGwtbG9jYWxlcwor ICAgIG1ha2U6IGludmFsaWQgc2h1ZmZsZSBtb2RlOiAnMTY2MjcyNDQyNnInCisKK1RoZSBjaGFu Z2UgZml4ZXMgaXQgYnkgcGFzc2luZyBlYXNoIG9wdGlvbiB2aWEgd2hpdGVzcGFjZSBhbmQgZGFz aGVzLgorVGhhdCB3YXkgb3B0aW9uIGlzIGFwcGVuZGVkIHRvIGJvdGggc2luZ2xlLXdvcmQgZm9y bSBhbmQgd2hpdGVzcGFjZQorc2VwYXJhdGVkIGZvcm0uCisKK1doaWxlIGF0IGl0IGZpeGVkIC0t c2lsZW50IG1vZGUgZGV0ZWN0aW9uIGluICQoTUFLRUZMQUdTKSBieSBmaWx0ZXJpbmcKK291dCAt LWxvbmctb3B0aW9ucy4gT3RoZXJ3aXNlIG9wdGlvbnMgbGlrZSAtLXNodWZmbGUgZmxhZyBlbmFi bGUgc2lsZW50Cittb2RlIHVuaW50ZW50aW9uYWxseS4gJChzaWxlbnQtbWFrZSkgdmFyaWFibGUg Y29uc29saWRhdGVzIHRoZSBjaGVja3MuCisKK1Jlc29sdmVzOiBCWiMgMjk1NjQKKworQ0M6IFBh dWwgU21pdGggPHBzbWl0aEBnbnUub3JnPgorQ0M6IFNpZGRoZXNoIFBveWFyZWthciA8c2lkZGhl c2hAZ290cGx0Lm9yZz4KK1NpZ25lZC1vZmYtYnk6IFNlcmdlaSBUcm9maW1vdmljaCA8c2x5aWNo QGdtYWlsLmNvbT4KK1Jldmlld2VkLWJ5OiBTaWRkaGVzaCBQb3lhcmVrYXIgPHNpZGRoZXNoQHNv dXJjZXdhcmUub3JnPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgMmQ3ZWQ5OGFkZDE0Zjc1 MDQxNDk5YWMxODk2OTZjOWJkM2Q3NTdmZSkKKy0tLQorIE1ha2Vjb25maWcgICAgIHwgMTggKysr KysrKysrKysrKysrKystCisgTWFrZXJ1bGVzICAgICAgfCAgNCArKy0tCisgZWxmL3J0bGQtUnVs ZXMgfCAgMiArLQorIDMgZmlsZXMgY2hhbmdlZCwgMjAgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlv bnMoLSkKKworZGlmZiAtLWdpdCBhL01ha2Vjb25maWcgYi9NYWtlY29uZmlnCitpbmRleCBiYTcw MzIxYWYxLi4yYmJjYWJkOGY5IDEwMDY0NAorLS0tIGEvTWFrZWNvbmZpZworKysrIGIvTWFrZWNv bmZpZworQEAgLTQzLDYgKzQzLDIyIEBAIGVsc2UKKyAkKGVycm9yIG9iamRpciBtdXN0IGJlIGRl ZmluZWQgYnkgdGhlIGJ1aWxkLWRpcmVjdG9yeSBNYWtlZmlsZSkKKyBlbmRpZgorIAorKyMgRGlk IHdlIHJlcXVlc3QgJ21ha2UgLXMnIHJ1bj8gInllcyIgb3IgIm5vIi4KKysjIFN0YXJ0aW5nIGZy b20gbWFrZS00LjQgTUFLRUZMQUdTIG5vdyBjb250YWlucyBsb25nCisrIyBvcHRpb25zIGxpa2Ug Jy0tc2h1ZmZsZScuIFRvIGRldGVjdCBwcmVzZW5jZSBvZiAncycKKysjIHdlIHBpY2sgZmlyc3Qg d29yZCB3aXRoIHNob3J0IG9wdGlvbnMuIExvbmcgb3B0aW9ucworKyMgYXJlIGd1YXJhbnRlZWQg dG8gY29tZSBhZnRlciB3aGl0ZXNwYWNlLiBXZSB1c2UgJy0nCisrIyBwcmVmaXggdG8gYWx3YXlz IGhhdmUgYSB3b3JkIGJlZm9yZSBsb25nIG9wdGlvbnMKKysjIGV2ZW4gaWYgbm8gc2hvcnQgb3B0 aW9ucyB3ZXJlIHBhc3NlZC4KKysjIFR5cGljYWwgTUFLRUZMQUdTIHZhbHVlcyB0byB3YXRjaCBm b3I6CisrIyAgICJycyAtLXNodWZmbGU9NDIiIChzaWxlbnQpCisrIyAgICIgLS1zaHVmZmxlIiAo bm90IHNpbGVudCkKKytpZmVxICgkKGZpbmRzdHJpbmcgcywgJChmaXJzdHdvcmQgLSQoTUFLRUZM QUdTKSkpLCkKKytzaWxlbnQtbWFrZSA6PSBubworK2Vsc2UKKytzaWxlbnQtbWFrZSA6PSB5ZXMK KytlbmRpZgorKworICMgUm9vdCBvZiB0aGUgc3lzZGVwcyB0cmVlLgorIHN5c2RlcF9kaXIgOj0g JCguLilzeXNkZXBzCisgZXhwb3J0IHN5c2RlcF9kaXIgOj0gJChzeXNkZXBfZGlyKQorQEAgLTkx Nyw3ICs5MzMsNyBAQCBlbmRpZgorICMgdW1wdGVlbiB6aWxsaW9uIGZpbGVuYW1lcyBhbG9uZyB3 aXRoIGl0ICh3ZSB1c2UgYC4uLicgaW5zdGVhZCkKKyAjIGJ1dCB3ZSBkb24ndCB3YW50IHRoaXMg ZWNob2luZyBkb25lIHdoZW4gdGhlIHVzZXIgaGFzIHNhaWQKKyAjIGhlIGRvZXNuJ3Qgd2FudCB0 byBzZWUgY29tbWFuZHMgZWNob2VkIGJ5IHVzaW5nIC1zLgorLWlmbmVxCSIkKGZpbmRzdHJpbmcg cywkKE1BS0VGTEFHUykpIiAiIgkjIGlmIC1zCisraWZlcSAoJChzaWxlbnQtbWFrZSkseWVzKQkJ CSMgaWYgLXMKKyArY21kZWNobwk6PSBlY2hvID4vZGV2L251bGwKKyBlbHNlCQkJCQkJIyBub3Qg LXMKKyArY21kZWNobwk6PSBlY2hvCitkaWZmIC0tZ2l0IGEvTWFrZXJ1bGVzIGIvTWFrZXJ1bGVz CitpbmRleCBkMWUxMzlkMDNjLi4wOWMwY2Y4MzU3IDEwMDY0NAorLS0tIGEvTWFrZXJ1bGVzCisr KysgYi9NYWtlcnVsZXMKK0BAIC03OTQsNyArNzk0LDcgQEAgZW5kaWYKKyAjIE1heGltaXplIGVm ZmljaWVuY3kgYnkgbWluaW1pemluZyB0aGUgbnVtYmVyIG9mIHJ1bGVzLgorIC5TVUZGSVhFUzoJ IyBDbGVhciB0aGUgc3VmZml4IGxpc3QuICBXZSBkb24ndCB1c2Ugc3VmZml4IHJ1bGVzLgorICMg RG9uJ3QgZGVmaW5lIGFueSBidWlsdGluIHJ1bGVzLgorLU1BS0VGTEFHUyA6PSAkKE1BS0VGTEFH UylyCisrTUFLRUZMQUdTIDo9ICQoTUFLRUZMQUdTKSAtcgorIAorICMgR2VuZXJpYyBydWxlIGZv ciBtYWtpbmcgZGlyZWN0b3JpZXMuCisgJS86CitAQCAtODExLDcgKzgxMSw3IEBAIE1BS0VGTEFH UyA6PSAkKE1BS0VGTEFHUylyCisgLlBSRUNJT1VTOiAkKGZvcmVhY2ggbCwkKGxpYnR5cGVzKSwk KHBhdHN1YnN0ICUsJChjb21tb24tb2JqcGZ4KSRsLGMpKQorIAwKKyAjIFVzZSB0aGUgdmVyYm9z ZSBvcHRpb24gb2YgYXIgYW5kIHRhciB3aGVuIG5vdCBydW5uaW5nIHNpbGVudGx5LgorLWlmZXEJ IiQoZmluZHN0cmluZyBzLCQoTUFLRUZMQUdTKSkiICIiCSMgaWYgbm90IC1zCisraWZlcSAoJChz aWxlbnQtbWFrZSksbm8pCQkJIyBpZiBub3QgLXMKKyB2ZXJib3NlIDo9IHYKKyBlbHNlCSAgIAkJ CQkJIyAtcworIHZlcmJvc2UJOj0KK2RpZmYgLS1naXQgYS9lbGYvcnRsZC1SdWxlcyBiL2VsZi9y dGxkLVJ1bGVzCitpbmRleCBjYTAwZGQxZmUyLi4zYzVlMjczZjJiIDEwMDY0NAorLS0tIGEvZWxm L3J0bGQtUnVsZXMKKysrKyBiL2VsZi9ydGxkLVJ1bGVzCitAQCAtNTIsNyArNTIsNyBAQCAkKG9i anBmeClydGxkLWxpYmMuYTogJChmb3JlYWNoIGRpciwkKHJ0bGQtc3ViZGlycyksXAorIAltdiAt ZiAkQFQgJEAKKyAKKyAjIFVzZSB0aGUgdmVyYm9zZSBvcHRpb24gb2YgYXIgYW5kIHRhciB3aGVu IG5vdCBydW5uaW5nIHNpbGVudGx5LgorLWlmZXEJIiQoZmluZHN0cmluZyBzLCQoTUFLRUZMQUdT KSkiICIiCSMgaWYgbm90IC1zCisraWZlcSAoJChzaWxlbnQtbWFrZSksbm8pCQkJIyBpZiBub3Qg LXMKKyB2ZXJib3NlIDo9IHYKKyBlbHNlCQkJCQkJIyAtcworIHZlcmJvc2UJOj0KKy0tIAorMi4z OC4xCisKKworRnJvbSA3MDQxMGYyMjg2Y2MzNmM5Y2NiMTMzODc4ODExYzcyOGFlNTE3MjVmIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogUGF1bCBFZ2dlcnQgPGVnZ2VydEBjcy51Y2xh LmVkdT4KK0RhdGU6IFRodSwgOCBTZXAgMjAyMiAyMDowODozMiAtMDUwMAorU3ViamVjdDogbWt0 aW1lOiBpbXByb3ZlIGhldXJpc3RpYyBmb3IgY2EtMTk4NiBJbmRpYW5hIERTVAorCitUaGlzIHBh dGNoIHN5bmNzIG1rdGltZS5jIGZyb20gR251bGliLCBmaXhpbmcgYQorcHJvYmxlbSByZXBvcnRl ZCBieSBNYXJrIEtyZW56IDxodHRwczovL2J1Z3MuZ251Lm9yZy80ODA4NT4sCithbmQgaXQgc2hv dWxkIGZpeCBCWiMyOTAzNSB0b28uCisqIHRpbWUvbWt0aW1lLmMgKF9fbWt0aW1lX2ludGVybmFs KTogQmUgbW9yZSBnZW5lcm91cyBhYm91dAorYWNjZXB0aW5nIGFyZ3VtZW50cyB3aXRoIHRoZSB3 cm9uZyB2YWx1ZSBvZiB0bV9pc2RzdCwgYnkgZmFsbGluZworYmFjayB0byBhIG9uZS1ob3VyIERT VCBkaWZmZXJlbmNlIGlmIHdlIGZpbmQgbm8gbmVhcmJ5IERTVCB0aGF0IGlzCit1bnVzdWFsLiAg VGhpcyBmaXhlcyBhIHByb2JsZW0gd2hlcmUgIjE5ODYtMDQtMjggMDA6MDAgRURUIiB3YXMKK3Jl amVjdGVkIHdoZW4gVFo9IkFtZXJpY2EvSW5kaWFuYXBvbGlzIiBiZWNhdXNlIHRoZSBuZWFyZXN0 IERTVAordGltZXN0YW1wIG9jY3VycmVkIGluIDE5NzAsIGEgdGVtcG9yYWwgZGlzdGFuY2UgdG9v IGdyZWF0IGZvciB0aGUKK29sZCBoZXVyaXN0aWMuICBUaGlzIGFsc28gYWxzbyBuYXJyb3dzIHRo ZSBzZWFyY2ggYSBiaXQsIHdoaWNoCitpcyBhIG1pbm9yIHBlcmZvcm1hbmNlIHdpbi4KKworKGNo ZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgODM4NTllMTExNTI2OWNmNTZkMjE2NjkzNjFkNGRkYmUy Njg3ODMxYykKKy0tLQorIHRpbWUvbWt0aW1lLmMgfCAyOCArKysrKysrKysrKysrKysrKysrKy0t LS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDIwIGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0p CisKK2RpZmYgLS1naXQgYS90aW1lL21rdGltZS5jIGIvdGltZS9ta3RpbWUuYworaW5kZXggNDk0 Yzg5YmY1NC4uZTlhNjAwNjcxMCAxMDA2NDQKKy0tLSBhL3RpbWUvbWt0aW1lLmMKKysrKyBiL3Rp bWUvbWt0aW1lLmMKK0BAIC00MjksOCArNDI5LDEzIEBAIF9fbWt0aW1lX2ludGVybmFsIChzdHJ1 Y3QgdG0gKnRwLAorIAkgdGltZSB3aXRoIHRoZSByaWdodCB2YWx1ZSwgYW5kIHVzZSBpdHMgVVRD IG9mZnNldC4KKyAKKyAJIEhldXJpc3RpYzogcHJvYmUgdGhlIGFkamFjZW50IHRpbWVzdGFtcHMg aW4gYm90aCBkaXJlY3Rpb25zLAorLQkgbG9va2luZyBmb3IgdGhlIGRlc2lyZWQgaXNkc3QuICBU aGlzIHNob3VsZCB3b3JrIGZvciBhbGwgcmVhbAorLQkgdGltZSB6b25lIGhpc3RvcmllcyBpbiB0 aGUgdHogZGF0YWJhc2UuICAqLworKwkgbG9va2luZyBmb3IgdGhlIGRlc2lyZWQgaXNkc3QuICBJ ZiBub25lIGlzIGZvdW5kIHdpdGhpbiBhCisrCSByZWFzb25hYmxlIGR1cmF0aW9uIGJvdW5kLCBh c3N1bWUgYSBvbmUtaG91ciBEU1QgZGlmZmVyZW5jZS4KKysJIFRoaXMgc2hvdWxkIHdvcmsgZm9y IGFsbCByZWFsIHRpbWUgem9uZSBoaXN0b3JpZXMgaW4gdGhlIHR6CisrCSBkYXRhYmFzZS4gICov CisrCisrICAgICAgLyogKzEgaWYgd2Ugd2FudGVkIHN0YW5kYXJkIHRpbWUgYnV0IGdvdCBEU1Qs IC0xIGlmIHRoZSByZXZlcnNlLiAgKi8KKysgICAgICBpbnQgZHN0X2RpZmZlcmVuY2UgPSAoaXNk c3QgPT0gMCkgLSAodG0udG1faXNkc3QgPT0gMCk7CisgCisgICAgICAgLyogRGlzdGFuY2UgYmV0 d2VlbiBwcm9iZXMgd2hlbiBsb29raW5nIGZvciBhIERTVCBib3VuZGFyeS4gIEluCisgCSB0emRh dGEyMDAzYSwgdGhlIHNob3J0ZXN0IHBlcmlvZCBvZiBEU1QgaXMgNjAxMjAwIHNlY29uZHMKK0BA IC00NDEsMTIgKzQ0NiwxNCBAQCBfX21rdGltZV9pbnRlcm5hbCAoc3RydWN0IHRtICp0cCwKKyAJ IHBlcmlvZHMgd2hlbiBwcm9iaW5nLiAgKi8KKyAgICAgICBpbnQgc3RyaWRlID0gNjAxMjAwOwor IAorLSAgICAgIC8qIFRoZSBsb25nZXN0IHBlcmlvZCBvZiBEU1QgaW4gdHpkYXRhMjAwM2EgaXMg NTM2NDU0MDAwIHNlY29uZHMKKy0JIChlLmcuLCBBbWVyaWNhL0p1anV5IHN0YXJ0aW5nIDE5NDYt MTAtMDEgMDE6MDApLiAgVGhlIGxvbmdlc3QKKy0JIHBlcmlvZCBvZiBub24tRFNUIGlzIG11Y2gg bG9uZ2VyLCBidXQgaXQgbWFrZXMgbm8gcmVhbCBzZW5zZQorLQkgdG8gc2VhcmNoIGZvciBtb3Jl IHRoYW4gYSB5ZWFyIG9mIG5vbi1EU1QsIHNvIHVzZSB0aGUgRFNUCistCSBtYXguICAqLworLSAg ICAgIGludCBkdXJhdGlvbl9tYXggPSA1MzY0NTQwMDA7CisrICAgICAgLyogSW4gVFpEQiAyMDIx ZSwgdGhlIGxvbmdlc3QgcGVyaW9kIG9mIERTVCAob3Igb2Ygbm9uLURTVCksIGluCisrCSB3aGlj aCB0aGUgRFNUIChvciBhZGphY2VudCBEU1QpIGRpZmZlcmVuY2UgaXMgbm90IG9uZSBob3VyLAor KwkgaXMgNDU3MjQzMjA5IHNlY29uZHM6IGUuZy4sIEFtZXJpY2EvQ2FtYnJpZGdlX0JheSB3aXRo IGxlYXAKKysJIHNlY29uZHMsIHN0YXJ0aW5nIDE5NjUtMTAtMzEgMDA6MDAgaW4gYSBzd2l0Y2gg ZnJvbQorKwkgZG91YmxlLWRheWxpZ2h0IHRpbWUgKC0wNSkgdG8gc3RhbmRhcmQgdGltZSAoLTA3 KSwgYW5kCisrCSBjb250aW51aW5nIHRvIDE5ODAtMDQtMjcgMDI6MDAgaW4gYSBzd2l0Y2ggZnJv bSBzdGFuZGFyZCB0aW1lCisrCSAoLTA3KSB0byBkYXlsaWdodCB0aW1lICgtMDYpLiAgKi8KKysg ICAgICBpbnQgZHVyYXRpb25fbWF4ID0gNDU3MjQzMjA5OworIAorICAgICAgIC8qIFNlYXJjaCBp biBib3RoIGRpcmVjdGlvbnMsIHNvIHRoZSBtYXhpbXVtIGRpc3RhbmNlIGlzIGhhbGYKKyAJIHRo ZSBkdXJhdGlvbjsgYWRkIHRoZSBzdHJpZGUgdG8gYXZvaWQgb2ZmLWJ5LTEgcHJvYmxlbXMuICAq LworQEAgLTQ4Myw2ICs0OTAsMTEgQEAgX19ta3RpbWVfaW50ZXJuYWwgKHN0cnVjdCB0bSAqdHAs CisgCSAgICAgIH0KKyAJICB9CisgCisrICAgICAgLyogTm8gdW51c3VhbCBEU1Qgb2Zmc2V0IHdh cyBmb3VuZCBuZWFyYnkuICBBc3N1bWUgb25lLWhvdXIgRFNULiAgKi8KKysgICAgICB0ICs9IDYw ICogNjAgKiBkc3RfZGlmZmVyZW5jZTsKKysgICAgICBpZiAobWt0aW1lX21pbiA8PSB0ICYmIHQg PD0gbWt0aW1lX21heCAmJiBjb252ZXJ0X3RpbWUgKGNvbnZlcnQsIHQsICZ0bSkpCisrCWdvdG8g b2Zmc2V0X2ZvdW5kOworKworICAgICAgIF9fc2V0X2Vycm5vIChFT1ZFUkZMT1cpOworICAgICAg IHJldHVybiAtMTsKKyAgICAgfQorLS0gCisyLjM4LjEKKworCitGcm9tIDBmOTBkNjIwNGQ3OTIy M2ZkMzIyNDhjNzc0ZGYwY2I3ZjBlNjA0ZGUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9t OiBGbG9yaWFuIFdlaW1lciA8ZndlaW1lckByZWRoYXQuY29tPgorRGF0ZTogVHVlLCA4IE5vdiAy MDIyIDE0OjE1OjAyICswMTAwCitTdWJqZWN0OiBMaW51eDogU3VwcG9ydCBfX0lQQ182NCBpbiBz eXN2Y3RsICpjdGwgY29tbWFuZCBhcmd1bWVudHMgKGJ1ZyAyOTc3MSkKKworT2xkIGFwcGxpY2F0 aW9ucyBwYXNzIF9fSVBDXzY0IGFzIHBhcnQgb2YgdGhlIGNvbW1hbmQgYXJndW1lbnQgYmVjYXVz ZQorb2xkIGdsaWJjIGRpZCBub3QgY2hlY2sgZm9yIHVua25vd24gY29tbWFuZHMsIGFuZCBwYXNz ZWQgdGhyb3VnaCB0aGUKK2FyZ3VtZW50cyBkaXJlY3RseSB0byB0aGUga2VybmVsLCB3aXRob3V0 IGFkZGluZyBfX0lQQ182NC4KK0FwcGxpY2F0aW9ucyBuZWVkIHRvIGNvbnRpbnVlIGRvaW5nIHRo YXQgZm9yIG9sZCBnbGliYyBjb21wYXRpYmlsaXR5LAorc28gdGhpcyBjb21taXQgZW5hYmxlcyB0 aGlzIGFwcHJvYWNoIGluIGN1cnJlbnQgZ2xpYmMuCisKK0ZvciBtc2djdGwgYW5kIHNobWN0bCwg aWYgbm8gdHJhbnNsYXRpb24gaXMgcmVxdWlyZWQsIG1ha2UKK2RpcmVjdCBzeXN0ZW0gY2FsbHMs IGFzIHdlIGRpZCBiZWZvcmUgdGhlIHRpbWU2NCBjaGFuZ2VzLiAgSWYKK3RyYW5zbGF0aW9uIGlz IHJlcXVpcmVkLCBtYXNrIF9fSVBDXzY0IGZyb20gdGhlIGNvbW1hbmQgYXJndW1lbnQuCisKK0Zv ciBzZW1jdGwsIHRoZSB1bmlvbi1pbi12YXJhcmcgYXJndW1lbnQgaGFuZGxpbmcgbWVhbnMgdGhh dAordHJhbnNsYXRpb24gaXMgbmVlZGVkIG9uIGFsbCBhcmNoaXRlY3R1cmVzLgorCitSZXZpZXdl ZC1ieTogQWRoZW1lcnZhbCBaYW5lbGxhICA8YWRoZW1lcnZhbC56YW5lbGxhQGxpbmFyby5vcmc+ CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCAyMmE0NmRlZTI0MzUxZmQ1ZjRmMTg4YWQ4MDU1 NGNhZDc5YzgyNTI0KQorLS0tCisgTkVXUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAxICsKKyBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pcGNfcHJpdi5oIHwgIDYgKysrKysKKyBz eXNkZXBzL3VuaXgvc3lzdi9saW51eC9tc2djdGwuYyAgIHwgMzggKysrKysrKysrKysrKysrKysr KystLS0tLS0tLS0tCisgc3lzZGVwcy91bml4L3N5c3YvbGludXgvc2VtY3RsLmMgICB8ICA3ICsr KysrKworIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NobWN0bC5jICAgfCAzOCArKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0KKyA1IGZpbGVzIGNoYW5nZWQsIDY0IGluc2VydGlvbnMoKyks IDI2IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvTkVXUyBiL05FV1MKK2luZGV4IGU5MmQ1 NDdlMmMuLjlmOGVkZWE1ZGIgMTAwNjQ0CistLS0gYS9ORVdTCisrKysgYi9ORVdTCitAQCAtNDYs NiArNDYsNyBAQCBUaGUgZm9sbG93aW5nIGJ1Z3MgYXJlIHJlc29sdmVkIHdpdGggdGhpcyByZWxl YXNlOgorICAgWzI5NjU3XSBsaWJjOiBJbmNvcnJlY3Qgc3RydWN0IHN0YXQgZm9yIDY0LWJpdCB0 aW1lIG9uIGxpbnV4L2dlbmVyaWMKKyAgICAgcGxhdGZvcm1zCisgICBbMjk3MzBdIGJyb2tlbiB5 MjAzOCBzdXBwb3J0IGluIGZzdGF0YXQgb24gTUlQUyBONjQKKysgIFsyOTc3MV0gUmVzdG9yZSBJ UENfNjQgc3VwcG9ydCBpbiBzeXN2aXBjICpjdGwgZnVuY3Rpb25zCisgDAorIFZlcnNpb24gMi4z NgorIAorZGlmZiAtLWdpdCBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2lwY19wcml2LmggYi9z eXNkZXBzL3VuaXgvc3lzdi9saW51eC9pcGNfcHJpdi5oCitpbmRleCA4Nzg5M2E2NzU3Li4yZjUw YzMxYThlIDEwMDY0NAorLS0tIGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvaXBjX3ByaXYuaAor KysrIGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvaXBjX3ByaXYuaAorQEAgLTYzLDQgKzYzLDEw IEBAIHN0cnVjdCBfX29sZF9pcGNfcGVybQorICMgZGVmaW5lIF9fSVBDX1RJTUU2NCAwCisgI2Vu ZGlmCisgCisrI2lmIF9fSVBDX1RJTUU2NCB8fCBkZWZpbmVkIF9fQVNTVU1FX1NZU1ZJUENfQlJP S0VOX01PREVfVAorKyMgZGVmaW5lIElQQ19DVExfTkVFRF9UUkFOU0xBVElPTiAxCisrI2Vsc2UK KysjIGRlZmluZSBJUENfQ1RMX05FRURfVFJBTlNMQVRJT04gMAorKyNlbmRpZgorKworICNpbmNs dWRlIDxpcGNfb3BzLmg+CitkaWZmIC0tZ2l0IGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvbXNn Y3RsLmMgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tc2djdGwuYworaW5kZXggZTgyNGViYjA5 NS4uMjA3MjIwNTI1MiAxMDA2NDQKKy0tLSBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L21zZ2N0 bC5jCisrKysgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tc2djdGwuYworQEAgLTg1LDExICs4 NSwxOSBAQCBtc2djdGxfc3lzY2FsbCAoaW50IG1zcWlkLCBpbnQgY21kLCBtc2djdGxfYXJnX3Qg KmJ1ZikKKyBpbnQKKyBfX21zZ2N0bDY0IChpbnQgbXNxaWQsIGludCBjbWQsIHN0cnVjdCBfX21z cWlkNjRfZHMgKmJ1ZikKKyB7CistI2lmIF9fSVBDX1RJTUU2NAorKyNpZiBJUENfQ1RMX05FRURf VFJBTlNMQVRJT04KKysjIGlmIF9fSVBDX1RJTUU2NAorICAgc3RydWN0IGtlcm5lbF9tc3FpZDY0 X2RzIGtzZW1pZCwgKmFyZyA9IE5VTEw7CistI2Vsc2UKKysjIGVsc2UKKyAgIG1zZ2N0bF9hcmdf dCAqYXJnOworLSNlbmRpZgorKyMgZW5kaWYKKysKKysgIC8qIFNvbWUgYXBwbGljYXRpb25zIHBh c3MgdGhlIF9fSVBDXzY0IGZsYWcgaW4gY21kLCB0byBpbnZva2UKKysgICAgIHByZXZpb3VzbHkg dW5zdXBwb3J0ZWQgY29tbWFuZHMgYmFjayB3aGVuIHRoZXJlIHdhcyBubyBFSU5WQUwKKysgICAg IGVycm9yIGNoZWNraW5nIGluIGdsaWJjLiAgTWFzayB0aGUgZmxhZyBmb3IgdGhlIHN3aXRjaCBz dGF0ZW1lbnRzCisrICAgICBiZWxvdy4gIG1zZ2N0bF9zeXNjYWxsIGFkZHMgYmFjayB0aGUgX19J UENfNjQgZmxhZyBmb3IgdGhlIGFjdHVhbAorKyAgICAgc3lzdGVtIGNhbGwuICAqLworKyAgY21k ICY9IH5fX0lQQ182NDsKKyAKKyAgIHN3aXRjaCAoY21kKQorICAgICB7CitAQCAtMTAxLDE5ICsx MDksMTkgQEAgX19tc2djdGw2NCAoaW50IG1zcWlkLCBpbnQgY21kLCBzdHJ1Y3QgX19tc3FpZDY0 X2RzICpidWYpCisgICAgIGNhc2UgSVBDX1NUQVQ6CisgICAgIGNhc2UgTVNHX1NUQVQ6CisgICAg IGNhc2UgTVNHX1NUQVRfQU5ZOgorLSNpZiBfX0lQQ19USU1FNjQKKysjIGlmIF9fSVBDX1RJTUU2 NAorICAgICAgIGlmIChidWYgIT0gTlVMTCkKKyAJeworIAkgIG1zcWlkNjRfdG9fa21zcWlkNjQg KGJ1ZiwgJmtzZW1pZCk7CisgCSAgYXJnID0gJmtzZW1pZDsKKyAJfQorLSMgaWZkZWYgX19BU1NV TUVfU1lTVklQQ19CUk9LRU5fTU9ERV9UCisrIyAgaWZkZWYgX19BU1NVTUVfU1lTVklQQ19CUk9L RU5fTU9ERV9UCisgICAgICAgaWYgKGNtZCA9PSBJUENfU0VUKQorIAlhcmctPm1zZ19wZXJtLm1v ZGUgKj0gMHgxMDAwMFU7CistIyBlbmRpZgorLSNlbHNlCisrIyAgZW5kaWYKKysjIGVsc2UKKyAg ICAgICBhcmcgPSBidWY7CistI2VuZGlmCisrIyBlbmRpZgorICAgICAgIGJyZWFrOworIAorICAg ICBjYXNlIElQQ19JTkZPOgorQEAgLTEzNywyMSArMTQ1LDI1IEBAIF9fbXNnY3RsNjQgKGludCBt c3FpZCwgaW50IGNtZCwgc3RydWN0IF9fbXNxaWQ2NF9kcyAqYnVmKQorICAgICBjYXNlIElQQ19T VEFUOgorICAgICBjYXNlIE1TR19TVEFUOgorICAgICBjYXNlIE1TR19TVEFUX0FOWToKKy0jaWZk ZWYgX19BU1NVTUVfU1lTVklQQ19CUk9LRU5fTU9ERV9UCisrIyBpZmRlZiBfX0FTU1VNRV9TWVNW SVBDX0JST0tFTl9NT0RFX1QKKyAgICAgICBhcmctPm1zZ19wZXJtLm1vZGUgPj49IDE2OworLSNl bHNlCisrIyBlbHNlCisgICAgICAgLyogT2xkIExpbnV4IGtlcm5lbCB2ZXJzaW9ucyBtaWdodCBu b3QgY2xlYXIgdGhlIG1vZGUgcGFkZGluZy4gICovCisgICAgICAgaWYgKHNpemVvZiAoKHN0cnVj dCBtc3FpZF9kcyl7MH0ubXNnX3Blcm0ubW9kZSkKKyAgICAgICAgICAgIT0gc2l6ZW9mIChfX2tl cm5lbF9tb2RlX3QpKQorIAlhcmctPm1zZ19wZXJtLm1vZGUgJj0gMHhGRkZGOworLSNlbmRpZgor KyMgZW5kaWYKKyAKKy0jaWYgX19JUENfVElNRTY0CisrIyBpZiBfX0lQQ19USU1FNjQKKyAgICAg ICBrbXNxaWQ2NF90b19tc3FpZDY0IChhcmcsIGJ1Zik7CistI2VuZGlmCisrIyBlbmRpZgorICAg ICB9CisgCisgICByZXR1cm4gcmV0OworKworKyNlbHNlIC8qICFJUENfQ1RMX05FRURfVFJBTlNM QVRJT04gKi8KKysgIHJldHVybiBtc2djdGxfc3lzY2FsbCAobXNxaWQsIGNtZCwgYnVmKTsKKysj ZW5kaWYKKyB9CisgI2lmIF9fVElNRVNJWkUgIT0gNjQKKyBsaWJjX2hpZGRlbl9kZWYgKF9fbXNn Y3RsNjQpCitkaWZmIC0tZ2l0IGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvc2VtY3RsLmMgYi9z eXNkZXBzL3VuaXgvc3lzdi9saW51eC9zZW1jdGwuYworaW5kZXggNzdhODEzMGMxOC4uMzQ1OGIw MThiYyAxMDA2NDQKKy0tLSBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NlbWN0bC5jCisrKysg Yi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zZW1jdGwuYworQEAgLTE0MCw2ICsxNDAsMTMgQEAg X19zZW1jdGw2NCAoaW50IHNlbWlkLCBpbnQgc2VtbnVtLCBpbnQgY21kLCAuLi4pCisgICB1bmlv biBzZW11bjY0IGFyZzY0ID0geyAwIH07CisgICB2YV9saXN0IGFwOworIAorKyAgLyogU29tZSBh cHBsaWNhdGlvbnMgcGFzcyB0aGUgX19JUENfNjQgZmxhZyBpbiBjbWQsIHRvIGludm9rZQorKyAg ICAgcHJldmlvdXNseSB1bnN1cHBvcnRlZCBjb21tYW5kcyBiYWNrIHdoZW4gdGhlcmUgd2FzIG5v IEVJTlZBTAorKyAgICAgZXJyb3IgY2hlY2tpbmcgaW4gZ2xpYmMuICBNYXNrIHRoZSBmbGFnIGZv ciB0aGUgc3dpdGNoIHN0YXRlbWVudHMKKysgICAgIGJlbG93LiAgc2VtY3RsX3N5c2NhbGwgYWRk cyBiYWNrIHRoZSBfX0lQQ182NCBmbGFnIGZvciB0aGUgYWN0dWFsCisrICAgICBzeXN0ZW0gY2Fs bC4gICovCisrICBjbWQgJj0gfl9fSVBDXzY0OworKworICAgLyogR2V0IHRoZSBhcmd1bWVudCBv bmx5IGlmIHJlcXVpcmVkLiAgKi8KKyAgIHN3aXRjaCAoY21kKQorICAgICB7CitkaWZmIC0tZ2l0 IGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvc2htY3RsLmMgYi9zeXNkZXBzL3VuaXgvc3lzdi9s aW51eC9zaG1jdGwuYworaW5kZXggZWEzODkzNTQ5Ny4uZjAwODE3YTZmNiAxMDA2NDQKKy0tLSBh L3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NobWN0bC5jCisrKysgYi9zeXNkZXBzL3VuaXgvc3lz di9saW51eC9zaG1jdGwuYworQEAgLTg1LDExICs4NSwxOSBAQCBzaG1jdGxfc3lzY2FsbCAoaW50 IHNobWlkLCBpbnQgY21kLCBzaG1jdGxfYXJnX3QgKmJ1ZikKKyBpbnQKKyBfX3NobWN0bDY0IChp bnQgc2htaWQsIGludCBjbWQsIHN0cnVjdCBfX3NobWlkNjRfZHMgKmJ1ZikKKyB7CistI2lmIF9f SVBDX1RJTUU2NAorKyNpZiBJUENfQ1RMX05FRURfVFJBTlNMQVRJT04KKysjIGlmIF9fSVBDX1RJ TUU2NAorICAgc3RydWN0IGtlcm5lbF9zaG1pZDY0X2RzIGtzaG1pZCwgKmFyZyA9IE5VTEw7Cist I2Vsc2UKKysjIGVsc2UKKyAgIHNobWN0bF9hcmdfdCAqYXJnOworLSNlbmRpZgorKyMgZW5kaWYK KysKKysgIC8qIFNvbWUgYXBwbGljYXRpb25zIHBhc3MgdGhlIF9fSVBDXzY0IGZsYWcgaW4gY21k LCB0byBpbnZva2UKKysgICAgIHByZXZpb3VzbHkgdW5zdXBwb3J0ZWQgY29tbWFuZHMgYmFjayB3 aGVuIHRoZXJlIHdhcyBubyBFSU5WQUwKKysgICAgIGVycm9yIGNoZWNraW5nIGluIGdsaWJjLiAg TWFzayB0aGUgZmxhZyBmb3IgdGhlIHN3aXRjaCBzdGF0ZW1lbnRzCisrICAgICBiZWxvdy4gIHNo bWN0bF9zeXNjYWxsIGFkZHMgYmFjayB0aGUgX19JUENfNjQgZmxhZyBmb3IgdGhlIGFjdHVhbAor KyAgICAgc3lzdGVtIGNhbGwuICAqLworKyAgY21kICY9IH5fX0lQQ182NDsKKyAKKyAgIHN3aXRj aCAoY21kKQorICAgICB7CitAQCAtMTAzLDE5ICsxMTEsMTkgQEAgX19zaG1jdGw2NCAoaW50IHNo bWlkLCBpbnQgY21kLCBzdHJ1Y3QgX19zaG1pZDY0X2RzICpidWYpCisgICAgIGNhc2UgSVBDX1NU QVQ6CisgICAgIGNhc2UgU0hNX1NUQVQ6CisgICAgIGNhc2UgU0hNX1NUQVRfQU5ZOgorLSNpZiBf X0lQQ19USU1FNjQKKysjIGlmIF9fSVBDX1RJTUU2NAorICAgICAgIGlmIChidWYgIT0gTlVMTCkK KyAJeworIAkgIHNobWlkNjRfdG9fa3NobWlkNjQgKGJ1ZiwgJmtzaG1pZCk7CisgCSAgYXJnID0g JmtzaG1pZDsKKyAJfQorLSMgaWZkZWYgX19BU1NVTUVfU1lTVklQQ19CUk9LRU5fTU9ERV9UCisr IyAgaWZkZWYgX19BU1NVTUVfU1lTVklQQ19CUk9LRU5fTU9ERV9UCisgICAgICAgaWYgKGNtZCA9 PSBJUENfU0VUKQorICAgICAgICAgYXJnLT5zaG1fcGVybS5tb2RlICo9IDB4MTAwMDBVOworLSMg ZW5kaWYKKy0jZWxzZQorKyMgIGVuZGlmCisrIyBlbHNlCisgICAgICAgYXJnID0gYnVmOworLSNl bmRpZgorKyMgZW5kaWYKKyAgICAgICBicmVhazsKKyAKKyAgICAgY2FzZSBJUENfSU5GTzoKK0BA IC0xNDAsMjEgKzE0OCwyNSBAQCBfX3NobWN0bDY0IChpbnQgc2htaWQsIGludCBjbWQsIHN0cnVj dCBfX3NobWlkNjRfZHMgKmJ1ZikKKyAgICAgICBjYXNlIElQQ19TVEFUOgorICAgICAgIGNhc2Ug U0hNX1NUQVQ6CisgICAgICAgY2FzZSBTSE1fU1RBVF9BTlk6CistI2lmZGVmIF9fQVNTVU1FX1NZ U1ZJUENfQlJPS0VOX01PREVfVAorKyMgaWZkZWYgX19BU1NVTUVfU1lTVklQQ19CUk9LRU5fTU9E RV9UCisgICAgICAgICBhcmctPnNobV9wZXJtLm1vZGUgPj49IDE2OworLSNlbHNlCisrIyBlbHNl CisgICAgICAgLyogT2xkIExpbnV4IGtlcm5lbCB2ZXJzaW9ucyBtaWdodCBub3QgY2xlYXIgdGhl IG1vZGUgcGFkZGluZy4gICovCisgICAgICAgaWYgKHNpemVvZiAoKHN0cnVjdCBzaG1pZF9kcyl7 MH0uc2htX3Blcm0ubW9kZSkKKyAJICAhPSBzaXplb2YgKF9fa2VybmVsX21vZGVfdCkpCisgCWFy Zy0+c2htX3Blcm0ubW9kZSAmPSAweEZGRkY7CistI2VuZGlmCisrIyBlbmRpZgorIAorLSNpZiBf X0lQQ19USU1FNjQKKysjIGlmIF9fSVBDX1RJTUU2NAorICAgICAgIGtzaG1pZDY0X3RvX3NobWlk NjQgKGFyZywgYnVmKTsKKy0jZW5kaWYKKysjIGVuZGlmCisgICAgIH0KKyAKKyAgIHJldHVybiBy ZXQ7CisrCisrI2Vsc2UgLyogIUlQQ19DVExfTkVFRF9UUkFOU0xBVElPTiAqLworKyAgcmV0dXJu IHNobWN0bF9zeXNjYWxsIChzaG1pZCwgY21kLCBidWYpOworKyNlbmRpZgorIH0KKyAjaWYgX19U SU1FU0laRSAhPSA2NAorIGxpYmNfaGlkZGVuX2RlZiAoX19zaG1jdGw2NCkKKy0tIAorMi4zOC4x CisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ2xpYmMvcGF0Y2hlcy9nbGliYy1jLXV0ZjgtbG9jYWxl LnBhdGNoIGIvc3JjcGtncy9nbGliYy9wYXRjaGVzL2dsaWJjLWMtdXRmOC1sb2NhbGUucGF0Y2gK ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcyMTVlMTU1OGI2Mi4uMDAwMDAwMDAwMDAw Ci0tLSBhL3NyY3BrZ3MvZ2xpYmMvcGF0Y2hlcy9nbGliYy1jLXV0ZjgtbG9jYWxlLnBhdGNoCisr KyAvZGV2L251bGwKQEAgLTEsMjg2ICswLDAgQEAKLVNob3J0IGRlc2NyaXB0aW9uOiBBZGQgQy5V VEYtOCBzdXBwb3J0LgotQXV0aG9yKHMpOiBGZWRvcmEgZ2xpYmMgdGVhbSA8Z2xpYmNAbGlzdHMu ZmVkb3JhcHJvamVjdC5vcmc+Ci1PcmlnaW46IFBBVENICi1VcHN0cmVhbSBzdGF0dXM6IG5vdC1z dWJtaXR0ZWQKLQotVGhpcyBwYXRjaCBuZWVkcyB0byB1cHN0cmVhbSBhcyBwYXJ0IG9mIENhcmxv cyBPJ0RvbmVsbAotPGNhcmxvc0ByZWRoYXQuY29tPidzIHdvcmsgb24gZW5hYmxpbmcgdXBzdHJl YW0gQy5VVEYtOCBzdXBwb3J0LiBUaGlzCi13b3JrIGlzIGN1cnJlbnRseSBibG9ja2VkIG9uIGNs ZWFuaW5nIHVwIHRoZSB0ZXN0IHJlc3VsdHMgdG8gcHJvdmUgdGhhdAotZnVsbCBjb2RlLXBvaW50 IHNvcnRpbmcgaXMgd29ya2luZyBhcyBpbnRlbmRlZC4KLQotTm90ZSB0aGF0IHRoaXMgcGF0Y2gg ZG9lcyBub3QgcHJvdmlkZSBmdWxsIGNvZGUtcG9pbnQgc29ydGluZyBhcwotZXhwZWN0ZWQuCi0K LVRoaXMgcGF0Y2ggbmVlZHMgdG8gdXBzdHJlYW0gYXMgc29vbiBhcyBwb3NzaWJsZSBzaW5jZSBp dCB3b3VsZCBiZSBuaWNlCi10byBoYXZlIHRoaXMgaW4gRjI5IGFuZCBmaXhlZC4KLQotRnJvbSAy ZWRhN2I0NjJiNDE1MTA1ZjVhMDVjMTMyMzM3MmQ0ZTM5ZDQ2NDM5IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQotRnJvbTogTWlrZSBGQUJJQU4gPG1mYWJpYW5AcmVkaGF0LmNvbT4KLURhdGU6IE1v biwgMTAgQXVnIDIwMTUgMTU6NTg6MTIgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSF0gQWRkIGEgQy5V VEYtOCBsb2NhbGUKLQotLS0tCi0gbG9jYWxlZGF0YS9TVVBQT1JURUQgfCAgIDEgKwotIGxvY2Fs ZWRhdGEvbG9jYWxlcy9DIHwgMjM4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKwotIDIgZmlsZXMgY2hhbmdlZCwgMjM5IGluc2VydGlvbnMoKykKLSBj cmVhdGUgbW9kZSAxMDA2NDQgbG9jYWxlZGF0YS9sb2NhbGVzL0MKLQotZGlmZiAtLWdpdCBhL2xv Y2FsZWRhdGEvU1VQUE9SVEVEIGIvbG9jYWxlZGF0YS9TVVBQT1JURUQKLWluZGV4IDhjYTAyM2Uu LjJhNzgzOTEgMTAwNjQ0Ci0tLS0gYS9sb2NhbGVkYXRhL1NVUFBPUlRFRAotKysrIGIvbG9jYWxl ZGF0YS9TVVBQT1JURUQKLUBAIC0xLDYgKzEsNyBAQAotICMgVGhpcyBmaWxlIG5hbWVzIHRoZSBj dXJyZW50bHkgc3VwcG9ydGVkIGFuZCBzb21ld2hhdCB0ZXN0ZWQgbG9jYWxlcy4KLSAjIElmIHlv dSBoYXZlIGFueSBhZGRpdGlvbnMgcGxlYXNlIGZpbGUgYSBnbGliYyBidWcgcmVwb3J0LgotIFNV UFBPUlRFRC1MT0NBTEVTPVwKLStDLlVURi04L1VURi04IFwKLSBhYV9ESi5VVEYtOC9VVEYtOCBc Ci0gYWFfREovSVNPLTg4NTktMSBcCi0gYWFfRVIvVVRGLTggXAotZGlmZiAtLWdpdCBhL2xvY2Fs ZWRhdGEvbG9jYWxlcy9DIGIvbG9jYWxlZGF0YS9sb2NhbGVzL0MKLW5ldyBmaWxlIG1vZGUgMTAw NjQ0Ci1pbmRleCAwMDAwMDAwLi5mZGY0NjBlCi0tLS0gL2Rldi9udWxsCi0rKysgYi9sb2NhbGVk YXRhL2xvY2FsZXMvQwotQEAgLTAsMCArMSwyMzggQEAKLStlc2NhcGVfY2hhciAvCi0rY29tbWVu dF9jaGFyICUKLSslIExvY2FsZSBmb3IgQyBsb2NhbGUgaW4gVVRGLTgKLSsKLStMQ19JREVOVElG SUNBVElPTgotK3RpdGxlICAgICAgIkMgbG9jYWxlIgotK3NvdXJjZSAgICAgIiIKLSthZGRyZXNz ICAgICIiCi0rY29udGFjdCAgICAiIgotK2VtYWlsICAgICAgIm1mYWJpYW5AcmVkaGF0LmNvbSIK LSt0ZWwgICAgICAgICIiCi0rZmF4ICAgICAgICAiIgotK2xhbmd1YWdlICAgIkMiCi0rdGVycml0 b3J5ICAiIgotK3JldmlzaW9uICAgIjEuMCIKLStkYXRlICAgICAgICIyMDE1LTA4LTEwIgotKyUK LStjYXRlZ29yeSAgImkxOG46MjAxMiI7TENfSURFTlRJRklDQVRJT04KLStjYXRlZ29yeSAgImkx OG46MjAxMiI7TENfQ1RZUEUKLStjYXRlZ29yeSAgImkxOG46MjAxMiI7TENfQ09MTEFURQotK2Nh dGVnb3J5ICAiaTE4bjoyMDEyIjtMQ19USU1FCi0rY2F0ZWdvcnkgICJpMThuOjIwMTIiO0xDX05V TUVSSUMKLStjYXRlZ29yeSAgImkxOG46MjAxMiI7TENfTU9ORVRBUlkKLStjYXRlZ29yeSAgImkx OG46MjAxMiI7TENfTUVTU0FHRVMKLStjYXRlZ29yeSAgImkxOG46MjAxMiI7TENfUEFQRVIKLStj YXRlZ29yeSAgImkxOG46MjAxMiI7TENfTkFNRQotK2NhdGVnb3J5ICAiaTE4bjoyMDEyIjtMQ19B RERSRVNTCi0rY2F0ZWdvcnkgICJpMThuOjIwMTIiO0xDX1RFTEVQSE9ORQotK2NhdGVnb3J5ICAi aTE4bjoyMDEyIjtMQ19NRUFTVVJFTUVOVAotK0VORCBMQ19JREVOVElGSUNBVElPTgotKwotK0xD X0NUWVBFCi0rY29weSAiaTE4biIKLSsKLSt0cmFuc2xpdF9zdGFydAotK2luY2x1ZGUgInRyYW5z bGl0X2NvbWJpbmluZyI7IiIKLSt0cmFuc2xpdF9lbmQKLSsKLStFTkQgTENfQ1RZUEUKLSsKLStM Q19DT0xMQVRFCi0rb3JkZXJfc3RhcnQgZm9yd2FyZAotKzxVMDAwMD4KLSsuLgotKzxVRkZGRj4K LSs8VTEwMDAwPgotKy4uCi0rPFUxRkZGRj4KLSs8VTIwMDAwPgotKy4uCi0rPFUyRkZGRj4KLSs8 VUUwMDAwPgotKy4uCi0rPFVFRkZGRj4KLSs8VUYwMDAwPgotKy4uCi0rPFVGRkZGRj4KLSs8VTEw MDAwMD4KLSsuLgotKzxVMTBGRkZGPgotK1VOREVGSU5FRAotK29yZGVyX2VuZAotK0VORCBMQ19D T0xMQVRFCi0rCi0rTENfTU9ORVRBUlkKLSslIFRoaXMgaXMgdGhlIDE0NjUyIGkxOG4gZmRjYy1z ZXQgZGVmaW5pdGlvbiBmb3IKLSslIHRoZSBMQ19NT05FVEFSWSBjYXRlZ29yeQotKyUgKGV4Y2Vw dCBmb3IgdGhlIGludF9jdXJyX3N5bWJvbCBhbmQgY3VycmVuY3lfc3ltYm9sLCB0aGV5IGFyZSBl bXB0eSBpbgotKyUgdGhlIDE0NjUyIGkxOG4gZmRjYy1zZXQgZGVmaW5pdGlvbiBhbmQgYWxzbyBl bXB0eSBpbgotKyUgZ2xpYmMvbG9jYWxlL0MtbW9uZXRhcnkuYy4gQnV0IGxvY2FsZWRlZiBjb21w bGFpbnMgaW4gdGhhdCBjYXNlKS4KLSslCi0rJSBVc2luZyAiVVNEIiBmb3IgaW50X2N1cnJfc3lt Ym9sLiBCdXQgbWF5YmUgIlhYWCIgd291bGQgYmUgYmV0dGVyPwotKyUgWFhYIGlzICJObyBjdXJy ZW5jeSIgKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT180MjE3KQotK2ludF9jdXJy X3N5bWJvbCAgICAgIjxVMDA1NT48VTAwNTM+PFUwMDQ0PjxVMDAyMD4iCi0rJSBVc2luZyAiJCIg Zm9yIGN1cnJlbmN5X3N5bWJvbC4gQnV0IG1heWJlIDxVMDBBND4gd291bGQgYmUgYmV0dGVyPwot KyUgVSswMEE0IGlzIHRoZSAiZ2VuZXJpYyBjdXJyZW5jeSBzeW1ib2wiCi0rJSAoaHR0cHM6Ly9l bi53aWtpcGVkaWEub3JnL3dpa2kvQ3VycmVuY3lfc2lnbl8lMjh0eXBvZ3JhcGh5JTI5KQotK2N1 cnJlbmN5X3N5bWJvbCAgICAgIjxVMDAyND4iCi0rbW9uX2RlY2ltYWxfcG9pbnQgICAiPFUwMDJF PiIKLSttb25fdGhvdXNhbmRzX3NlcCAgICIiCi0rbW9uX2dyb3VwaW5nICAgICAgICAtMQotK3Bv c2l0aXZlX3NpZ24gICAgICAgIiIKLStuZWdhdGl2ZV9zaWduICAgICAgICI8VTAwMkQ+IgotK2lu dF9mcmFjX2RpZ2l0cyAgICAgLTEKLStmcmFjX2RpZ2l0cyAgICAgICAgIC0xCi0rcF9jc19wcmVj ZWRlcyAgICAgICAtMQotK2ludF9wX3NlcF9ieV9zcGFjZSAgLTEKLStwX3NlcF9ieV9zcGFjZSAg ICAgIC0xCi0rbl9jc19wcmVjZWRlcyAgICAgICAtMQotK2ludF9uX3NlcF9ieV9zcGFjZSAgLTEK LStuX3NlcF9ieV9zcGFjZSAgICAgIC0xCi0rcF9zaWduX3Bvc24gICAgICAgICAtMQotK25fc2ln bl9wb3NuICAgICAgICAgLTEKLSslCi0rRU5EIExDX01PTkVUQVJZCi0rCi0rTENfTlVNRVJJQwot KyUgVGhpcyBpcyB0aGUgUE9TSVggTG9jYWxlIGRlZmluaXRpb24gZm9yCi0rJSB0aGUgTENfTlVN RVJJQyBjYXRlZ29yeS4KLSslCi0rZGVjaW1hbF9wb2ludCAgICI8VTAwMkU+IgotK3Rob3VzYW5k c19zZXAgICAiIgotK2dyb3VwaW5nICAgICAgICAtMQotK0VORCBMQ19OVU1FUklDCi0rCi0rTENf VElNRQotKyUgVGhpcyBpcyB0aGUgUE9TSVggTG9jYWxlIGRlZmluaXRpb24gZm9yCi0rJSB0aGUg TENfVElNRSBjYXRlZ29yeS4KLSslCi0rJSBBYmJyZXZpYXRlZCB3ZWVrZGF5IG5hbWVzICglYSkK LSthYmRheSAgICAgICAiPFUwMDUzPjxVMDA3NT48VTAwNkU+IjsiPFUwMDREPjxVMDA2Rj48VTAw NkU+IjsvCi0rICAgICAgICAgICAgIjxVMDA1ND48VTAwNzU+PFUwMDY1PiI7IjxVMDA1Nz48VTAw NjU+PFUwMDY0PiI7LwotKyAgICAgICAgICAgICI8VTAwNTQ+PFUwMDY4PjxVMDA3NT4iOyI8VTAw NDY+PFUwMDcyPjxVMDA2OT4iOy8KLSsgICAgICAgICAgICAiPFUwMDUzPjxVMDA2MT48VTAwNzQ+ IgotKwotKyUgRnVsbCB3ZWVrZGF5IG5hbWVzICglQSkKLStkYXkgICAgICAgICAiPFUwMDUzPjxV MDA3NT48VTAwNkU+PFUwMDY0PjxVMDA2MT48VTAwNzk+IjsvCi0rICAgICAgICAgICAgIjxVMDA0 RD48VTAwNkY+PFUwMDZFPjxVMDA2ND48VTAwNjE+PFUwMDc5PiI7LwotKyAgICAgICAgICAgICI8 VTAwNTQ+PFUwMDc1PjxVMDA2NT48VTAwNzM+PFUwMDY0PjxVMDA2MT48VTAwNzk+IjsvCi0rICAg ICAgICAgICAgIjxVMDA1Nz48VTAwNjU+PFUwMDY0PjxVMDA2RT48VTAwNjU+PFUwMDczPjxVMDA2 ND48VTAwNjE+PFUwMDc5PiI7LwotKyAgICAgICAgICAgICI8VTAwNTQ+PFUwMDY4PjxVMDA3NT48 VTAwNzI+PFUwMDczPjxVMDA2ND48VTAwNjE+PFUwMDc5PiI7LwotKyAgICAgICAgICAgICI8VTAw NDY+PFUwMDcyPjxVMDA2OT48VTAwNjQ+PFUwMDYxPjxVMDA3OT4iOy8KLSsgICAgICAgICAgICAi PFUwMDUzPjxVMDA2MT48VTAwNzQ+PFUwMDc1PjxVMDA3Mj48VTAwNjQ+PFUwMDYxPjxVMDA3OT4i Ci0rCi0rJSBBYmJyZXZpYXRlZCBtb250aCBuYW1lcyAoJWIpCi0rYWJtb24gICAgICAgIjxVMDA0 QT48VTAwNjE+PFUwMDZFPiI7IjxVMDA0Nj48VTAwNjU+PFUwMDYyPiI7LwotKyAgICAgICAgICAg ICI8VTAwNEQ+PFUwMDYxPjxVMDA3Mj4iOyI8VTAwNDE+PFUwMDcwPjxVMDA3Mj4iOy8KLSsgICAg ICAgICAgICAiPFUwMDREPjxVMDA2MT48VTAwNzk+IjsiPFUwMDRBPjxVMDA3NT48VTAwNkU+Ijsv Ci0rICAgICAgICAgICAgIjxVMDA0QT48VTAwNzU+PFUwMDZDPiI7IjxVMDA0MT48VTAwNzU+PFUw MDY3PiI7LwotKyAgICAgICAgICAgICI8VTAwNTM+PFUwMDY1PjxVMDA3MD4iOyI8VTAwNEY+PFUw MDYzPjxVMDA3ND4iOy8KLSsgICAgICAgICAgICAiPFUwMDRFPjxVMDA2Rj48VTAwNzY+IjsiPFUw MDQ0PjxVMDA2NT48VTAwNjM+IgotKwotKyUgRnVsbCBtb250aCBuYW1lcyAoJUIpCi0rbW9uICAg ICAgICAgIjxVMDA0QT48VTAwNjE+PFUwMDZFPjxVMDA3NT48VTAwNjE+PFUwMDcyPjxVMDA3OT4i Oy8KLSsgICAgICAgICAgICAiPFUwMDQ2PjxVMDA2NT48VTAwNjI+PFUwMDcyPjxVMDA3NT48VTAw NjE+PFUwMDcyPjxVMDA3OT4iOy8KLSsgICAgICAgICAgICAiPFUwMDREPjxVMDA2MT48VTAwNzI+ PFUwMDYzPjxVMDA2OD4iOy8KLSsgICAgICAgICAgICAiPFUwMDQxPjxVMDA3MD48VTAwNzI+PFUw MDY5PjxVMDA2Qz4iOy8KLSsgICAgICAgICAgICAiPFUwMDREPjxVMDA2MT48VTAwNzk+IjsvCi0r ICAgICAgICAgICAgIjxVMDA0QT48VTAwNzU+PFUwMDZFPjxVMDA2NT4iOy8KLSsgICAgICAgICAg ICAiPFUwMDRBPjxVMDA3NT48VTAwNkM+PFUwMDc5PiI7LwotKyAgICAgICAgICAgICI8VTAwNDE+ PFUwMDc1PjxVMDA2Nz48VTAwNzU+PFUwMDczPjxVMDA3ND4iOy8KLSsgICAgICAgICAgICAiPFUw MDUzPjxVMDA2NT48VTAwNzA+PFUwMDc0PjxVMDA2NT48VTAwNkQ+PFUwMDYyPjxVMDA2NT48VTAw NzI+IjsvCi0rICAgICAgICAgICAgIjxVMDA0Rj48VTAwNjM+PFUwMDc0PjxVMDA2Rj48VTAwNjI+ PFUwMDY1PjxVMDA3Mj4iOy8KLSsgICAgICAgICAgICAiPFUwMDRFPjxVMDA2Rj48VTAwNzY+PFUw MDY1PjxVMDA2RD48VTAwNjI+PFUwMDY1PjxVMDA3Mj4iOy8KLSsgICAgICAgICAgICAiPFUwMDQ0 PjxVMDA2NT48VTAwNjM+PFUwMDY1PjxVMDA2RD48VTAwNjI+PFUwMDY1PjxVMDA3Mj4iCi0rCi0r JSBXZWVrIGRlc2NyaXB0aW9uLCBjb25zaXN0cyBvZiB0aHJlZSBmaWVsZHM6Ci0rJSAxLiBOdW1i ZXIgb2YgZGF5cyBpbiBhIHdlZWsuCi0rJSAyLiBHcmVnb3JpYW4gZGF0ZSB0aGF0IGlzIGEgZmly c3Qgd2Vla2RheSAoMTk5NzExMzAgZm9yIFN1bmRheSwgMTk5NzEyMDEgZm9yIE1vbmRheSkuCi0r JSAzLiBUaGUgd2Vla2RheSBudW1iZXIgdG8gYmUgY29udGFpbmVkIGluIHRoZSBmaXJzdCB3ZWVr IG9mIHRoZSB5ZWFyLgotKyUKLSslIElTTyA4NjAxIGNvbmZvcm1pbmcgYXBwbGljYXRpb25zIHNo b3VsZCB1c2UgdGhlIHZhbHVlcyA3LCAxOTk3MTIwMSAoYQotKyUgTW9uZGF5KSwgYW5kIDQgKFRo dXJzZGF5KSwgcmVzcGVjdGl2ZWx5LgotK3dlZWsgICAgNzsxOTk3MTIwMTs0Ci0rZmlyc3Rfd2Vl a2RheQkxCi0rZmlyc3Rfd29ya2RheQkxCi0rCi0rJSBBcHByb3ByaWF0ZSBkYXRlIGFuZCB0aW1l IHJlcHJlc2VudGF0aW9uICglYykKLSslCSIlYSAlYiAlZSAlSDolTTolUyAlWSIKLStkX3RfZm10 ICI8VTAwMjU+PFUwMDYxPjxVMDAyMD48VTAwMjU+PFUwMDYyPjxVMDAyMD48VTAwMjU+PFUwMDY1 PjxVMDAyMD48VTAwMjU+PFUwMDQ4PjxVMDAzQT48VTAwMjU+PFUwMDREPjxVMDAzQT48VTAwMjU+ PFUwMDUzPjxVMDAyMD48VTAwMjU+PFUwMDU5PiIKLSsKLSslIEFwcHJvcHJpYXRlIGRhdGUgcmVw cmVzZW50YXRpb24gKCV4KQotKyUJIiVtLyVkLyV5IgotK2RfZm10ICAgIjxVMDAyNT48VTAwNkQ+ PFUwMDJGPjxVMDAyNT48VTAwNjQ+PFUwMDJGPjxVMDAyNT48VTAwNzk+IgotKwotKyUgQXBwcm9w cmlhdGUgdGltZSByZXByZXNlbnRhdGlvbiAoJVgpCi0rJQkiJUg6JU06JVMiCi0rdF9mbXQgICAi PFUwMDI1PjxVMDA0OD48VTAwM0E+PFUwMDI1PjxVMDA0RD48VTAwM0E+PFUwMDI1PjxVMDA1Mz4i Ci0rCi0rJSBBcHByb3ByaWF0ZSBBTS9QTSB0aW1lIHJlcHJlc2VudGF0aW9uICglcikKLSslCSIl STolTTolUyAlcCIKLSt0X2ZtdF9hbXBtICI8VTAwMjU+PFUwMDQ5PjxVMDAzQT48VTAwMjU+PFUw MDREPjxVMDAzQT48VTAwMjU+PFUwMDUzPjxVMDAyMD48VTAwMjU+PFUwMDcwPiIKLSsKLSslIEVx dWl2YWxlbnQgb2YgQU0vUE0gKCVwKSAgICAgICJBTSIvIlBNIgotKyUKLSthbV9wbQkiPFUwMDQx PjxVMDA0RD4iOyI8VTAwNTA+PFUwMDREPiIKLSsKLSslIEFwcHJvcHJpYXRlIGRhdGUgcmVwcmVz ZW50YXRpb24gKGRhdGUoMSkpICAgIiVhICViICVlICVIOiVNOiVTICVaICVZIgotK2RhdGVfZm10 CSI8VTAwMjU+PFUwMDYxPjxVMDAyMD48VTAwMjU+PFUwMDYyPjxVMDAyMD48VTAwMjU+PFUwMDY1 PjxVMDAyMD48VTAwMjU+PFUwMDQ4PjxVMDAzQT48VTAwMjU+PFUwMDREPjxVMDAzQT48VTAwMjU+ PFUwMDUzPjxVMDAyMD48VTAwMjU+PFUwMDVBPjxVMDAyMD48VTAwMjU+PFUwMDU5PiIKLStFTkQg TENfVElNRQotKwotK0xDX01FU1NBR0VTCi0rJSBUaGlzIGlzIHRoZSBQT1NJWCBMb2NhbGUgZGVm aW5pdGlvbiBmb3IKLSslIHRoZSBMQ19OVU1FUklDIGNhdGVnb3J5LgotKyUKLSt5ZXNleHByICI8 VTAwNUU+PFUwMDVCPjxVMDA3OT48VTAwNTk+PFUwMDVEPiIKLStub2V4cHIgICI8VTAwNUU+PFUw MDVCPjxVMDA2RT48VTAwNEU+PFUwMDVEPiIKLSt5ZXNzdHIgICI8VTAwNTk+PFUwMDY1PjxVMDA3 Mz4iCi0rbm9zdHIgICAiPFUwMDRFPjxVMDA2Rj4iCi0rRU5EIExDX01FU1NBR0VTCi0rCi0rTENf UEFQRVIKLSslIFRoaXMgaXMgdGhlIElTTy9JRUMgMTQ2NTIgImkxOG4iIGRlZmluaXRpb24gZm9y Ci0rJSB0aGUgTENfUEFQRVIgY2F0ZWdvcnkuCi0rJSAoQTQgcGFwZXIsIHRoaXMgaXMgYWxzbyB1 c2VkIGluIHRoZSBidWlsdCBpbiBDL1BPU0lYCi0rJSBsb2NhbGUgaW4gZ2xpYmMvbG9jYWxlL0Mt cGFwZXIuYykKLStoZWlnaHQgICAyOTcKLSt3aWR0aCAgICAyMTAKLStFTkQgTENfUEFQRVIKLSsK LStMQ19OQU1FCi0rJSBUaGlzIGlzIHRoZSBJU08vSUVDIDE0NjUyICJpMThuIiBkZWZpbml0aW9u IGZvcgotKyUgdGhlIExDX05BTUUgY2F0ZWdvcnkuCi0rJSAiJXAldCVnJXQlbSV0JWYiCi0rJSAo YWxzbyB1c2VkIGluIHRoZSBidWlsdCBpbiBDL1BPU0lYIGxvY2FsZSBpbiBnbGliYy9sb2NhbGUv Qy1uYW1lLmMpCi0rbmFtZV9mbXQgICAgIjxVMDAyNT48VTAwNzA+PFUwMDI1PjxVMDA3ND48VTAw MjU+PFUwMDY3PjxVMDAyNT48VTAwNzQ+LwotKzxVMDAyNT48VTAwNkQ+PFUwMDI1PjxVMDA3ND48 VTAwMjU+PFUwMDY2PiIKLStFTkQgTENfTkFNRQotKwotK0xDX0FERFJFU1MKLSslIFRoaXMgaXMg dGhlIElTTy9JRUMgMTQ2NTIgImkxOG4iIGRlZmluaXRpb24gZm9yCi0rJSB0aGUgTENfQUREUkVT UyBjYXRlZ29yeS4KLSslICIlYSVOJWYlTiVkJU4lYiVOJXMgJWggJWUgJXIlTiVDLSV6ICVUJU4l YyVOIgotKyUgKGFsc28gdXNlZCBpbiB0aGUgYnVpbHQgaW4gQy9QT1NJWCBsb2NhbGUgaW4gZ2xp YmMvbG9jYWxlL0MtYWRkcmVzcy5jKQotK3Bvc3RhbF9mbXQgICAgIjxVMDAyNT48VTAwNjE+PFUw MDI1PjxVMDA0RT48VTAwMjU+PFUwMDY2PjxVMDAyNT48VTAwNEU+LwotKzxVMDAyNT48VTAwNjQ+ PFUwMDI1PjxVMDA0RT48VTAwMjU+PFUwMDYyPjxVMDAyNT48VTAwNEU+PFUwMDI1PjxVMDA3Mz4v Ci0rPFUwMDIwPjxVMDAyNT48VTAwNjg+PFUwMDIwPjxVMDAyNT48VTAwNjU+PFUwMDIwPjxVMDAy NT48VTAwNzI+PFUwMDI1Pi8KLSs8VTAwNEU+PFUwMDI1PjxVMDA0Mz48VTAwMkQ+PFUwMDI1PjxV MDA3QT48VTAwMjA+PFUwMDI1PjxVMDA1ND48VTAwMjU+LwotKzxVMDA0RT48VTAwMjU+PFUwMDYz PjxVMDAyNT48VTAwNEU+IgotK0VORCBMQ19BRERSRVNTCi0rCi0rTENfVEVMRVBIT05FCi0rJSBU aGlzIGlzIHRoZSBJU08vSUVDIDE0NjUyICJpMThuIiBkZWZpbml0aW9uIGZvcgotKyUgdGhlIExD X1RFTEVQSE9ORSBjYXRlZ29yeS4KLSslICIrJWMgJWEgJWwiCi0rdGVsX2ludF9mbXQgICAgIjxV MDAyQj48VTAwMjU+PFUwMDYzPjxVMDAyMD48VTAwMjU+PFUwMDYxPjxVMDAyMD48VTAwMjU+Lwot KzxVMDA2Qz4iCi0rJSAoYWxzbyB1c2VkIGluIHRoZSBidWlsdCBpbiBDL1BPU0lYIGxvY2FsZSBp biBnbGliYy9sb2NhbGUvQy10ZWxlcGhvbmUuYykKLStFTkQgTENfVEVMRVBIT05FCi0rCi0rTENf TUVBU1VSRU1FTlQKLSslIFRoaXMgaXMgdGhlIElTTy9JRUMgMTQ2NTIgImkxOG4iIGRlZmluaXRp b24gZm9yCi0rJSB0aGUgTENfTUVBU1VSRU1FTlQgY2F0ZWdvcnkuCi0rJSAoc2FtZSBhcyBpbiB0 aGUgYnVpbHQgaW4gQy9QT1NJWCBsb2NhbGUgaW4gZ2xpYmMvbG9jYWxlL0MtbWVhc3VyZW1lbnQu YykKLSslbWV0cmljCi0rbWVhc3VyZW1lbnQgICAgMQotK0VORCBMQ19NRUFTVVJFTUVOVAotKwot LS0gCi0yLjQuMwotCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dsaWJjL3RlbXBsYXRlIGIvc3JjcGtn cy9nbGliYy90ZW1wbGF0ZQppbmRleCBjNjJhNGQyYWVkZjEuLjEzOWFhYjg2NTg2NCAxMDA2NDQK LS0tIGEvc3JjcGtncy9nbGliYy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dsaWJjL3RlbXBsYXRl CkBAIC0xLDE0ICsxLDE0IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbGliYycKIHBrZ25hbWU9 Z2xpYmMKLXZlcnNpb249Mi4zMgotcmV2aXNpb249MgordmVyc2lvbj0yLjM2CityZXZpc2lvbj0x CiBib290c3RyYXA9eWVzCiBzaG9ydF9kZXNjPSJHTlUgQyBsaWJyYXJ5IgogbWFpbnRhaW5lcj0i RW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3It bGF0ZXIsIExHUEwtMi4xLW9yLWxhdGVyLCBCU0QtMy1DbGF1c2UiCiBob21lcGFnZT0iaHR0cDov L3d3dy5nbnUub3JnL3NvZnR3YXJlL2xpYmMiCiBkaXN0ZmlsZXM9IiR7R05VX1NJVEV9L2dsaWJj L2dsaWJjLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09MTYyN2VhNTRmNWExYTg0NjcwMzI1 NjMzOTNlMDkwMTA3NzYyNmRjNjZmMzdmMTBlZTYzNjNiYjcyMjIyMjgzNgorY2hlY2tzdW09MWM5 NTlmZWEyNDA5MDYyMjYwNjJjYjRiMWU3ZWJjZTcxYTlmMGUzYzA4MzZjMDllN2UzNDIzZDQzNGZj ZmU3NQogIyBEbyBub3Qgc3RyaXAgdGhlc2UgZmlsZXMsIG9iamNvcHkgZXJyb3JzIG91dC4KIG5v c3RyaXBfZmlsZXM9IgogCVhCUzVfSUxQMzJfT0ZGQklHCkBAIC0yMCwyNyArMjAsMjggQEAgbm9z dHJpcF9maWxlcz0iCiAJUE9TSVhfVjZfTFA2NF9PRkY2NAogCVBPU0lYX1Y3X0xQNjRfT0ZGNjQK IAlYQlM1X0xQNjRfT0ZGNjQKLQlsZC0ke3ZlcnNpb259LnNvCi0JbGliZGwtJHt2ZXJzaW9ufS5z bwotCWxpYmFubC0ke3ZlcnNpb259LnNvCi0JbGliY2lkbi0ke3ZlcnNpb259LnNvCi0JbGlicmVz b2x2LSR7dmVyc2lvbn0uc28KLQlsaWJjcnlwdC0ke3ZlcnNpb259LnNvCi0JbGlicHRocmVhZC0k e3ZlcnNpb259LnNvCi0JbGlibS0ke3ZlcnNpb259LnNvCi0JbGlidXRpbC0ke3ZlcnNpb259LnNv Ci0JbGlidGhyZWFkX2RiLTEuMC5zbwotCWxpYnJ0LSR7dmVyc2lvbn0uc28KLQlsaWJuc2wtJHt2 ZXJzaW9ufS5zbwotCWxpYmMtJHt2ZXJzaW9ufS5zbwotCWxpYkJyb2tlbkxvY2FsZS0ke3ZlcnNp b259LnNvCi0JbGlibnNzX2NvbXBhdC0ke3ZlcnNpb259LnNvCi0JbGlibnNzX2RiLSR7dmVyc2lv bn0uc28KLQlsaWJuc3NfZG5zLSR7dmVyc2lvbn0uc28KLQlsaWJuc3NfZmlsZXMtJHt2ZXJzaW9u fS5zbwotCWxpYm5zc19oZXNpb2QtJHt2ZXJzaW9ufS5zbwotCWxpYm5zc19uaXNwbHVzLSR7dmVy c2lvbn0uc28KLQlsaWJuc3NfbmlzLSR7dmVyc2lvbn0uc28iCisJbGQtbGludXgteDg2LTY0LnNv LjIKKwlsZC1saW51eC5zby4yCisJbGQtbGludXguc28uMworCWxkLWxpbnV4LWFhcmNoNjQuc28u MQorCWxkNjQuc28uMgorCWxkLnNvLjEKKwlsZC1saW51eC1hcm1oZi5zby4zCisJbGlicmVzb2x2 LnNvLjIKKwlsaWJjcnlwdC5zby4xCisJbGlibS5zby42CisJbGlidGhyZWFkX2RiLnNvLjEKKwls aWJuc2wuc28uMQorCWxpYmMuc28uNgorCWxpYmNfbWFsbG9jX2RlYnVnLnNvLjAKKwlsaWJtZW11 c2FnZS5zbworCWxpYm12ZWMuc28uMQorCWxpYkJyb2tlbkxvY2FsZS5zby4xCisJbGlibnNzX2Nv bXBhdC5zby4yCisJbGlibnNzX2RiLnNvLjIKKwlsaWJuc3NfZG5zLnNvLjIKKwlsaWJuc3NfZmls ZXMuc28uMgorCWxpYm5zc19oZXNpb2Quc28uMiIKIAogY29uZl9maWxlcz0iCiAJL2V0Yy9ycGMK QEAgLTU0LDcgKzU1LDYgQEAgbGliMzJmaWxlcz0iL3Vzci9saWIvZ2NvbnYvZ2NvbnYtbW9kdWxl cyIKIGxpYjMyc3ltbGlua3M9ImxkLWxpbnV4LnNvLjIiCiAjIFRoZXJlJ3Mgbm8gcG9pbnQgaW4g YnVpbGRpbmcgdGhpcyBmb3IgbXVzbC4KIGFyY2hzPSJ+Ki1tdXNsIgotbm9waWU9eWVzCiAKIGRv X2NvbmZpZ3VyZSgpIHsKIAlta2RpciBidWlsZApAQCAtMTYzLDE4ICsxNjMsNiBAQCBkb19pbnN0 YWxsKCkgewogCXJtIC1mICR7REVTVERJUn0vdXNyL2Jpbi96e2R1bXAsaWN9CiAKIAltdiAke0RF U1RESVJ9L3Vzci9zYmluLyogJHtERVNURElSfS91c3IvYmluCi0KLQkjIENyZWF0ZSB4YnBzLmQo NSkgYXJjaCBvdmVycmlkZSBmaWxlIGZvciAzMi1iaXQgYXJjaGl0ZWN0dXJlcwotCSMgMzItYml0 IHVzZXJsYW5kcyBtYXkgYmUgdXNlZCB3aXRoIDY0LWJpdCBrZXJuZWxzIGFuZCB0aGVuCi0JIyB4 YnBzIHdpbGwgcmVwb3J0IGFuIGluY29ycmVjdCBhcmNoaXRlY3R1cmUgYnkgZGVmYXVsdAotCWNh c2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgotCQlpNjg2fHBwY3xwcGNsZXxhcm12KikKLQkJ CXZta2RpciB1c3Ivc2hhcmUveGJwcy5kCi0JCQllY2hvICJhcmNoaXRlY3R1cmU9JHtYQlBTX1RB UkdFVF9NQUNISU5FfSIgPiBcCi0JCQkJJHtERVNURElSfS91c3Ivc2hhcmUveGJwcy5kL2FyY2gt MzJiaXQuY29uZgotCQkJOzsKLQkJKikgOzsKLQllc2FjCiB9CiAKIGdsaWJjLWRldmVsX3BhY2th Z2UoKSB7CgpGcm9tIDg3Y2QxYTMyMzk0OTRmMDQzYzQ3MjNhNjk1NDY0MzAwNDU1YzgzMmEgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IG9yZW82MzkgPG9yZW82MzkxQGdtYWlsLmNvbT4K RGF0ZTogU2F0LCA1IE5vdiAyMDIyIDExOjMzOjEyIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwNy8z N10gbXVzbDogYWRkIHN1cHBvcnQgZm9yIFNJR0VWX1RIUkVBRF9JRCB0aW1lcnMKCmh0dHBzOi8v Z2l0Lm11c2wtbGliYy5vcmcvY2dpdC9tdXNsL2NvbW1pdC8/aWQ9N2M3MTc5MmU4NzY5MTQ1MWYy YTZiNzYzNDhlODNhZDE4ODlmMWRjYgotLS0KIC4uLmQtc3VwcG9ydC1mb3ItU0lHRVZfVEhSRUFE X0lELXRpbWVycy5wYXRjaCB8IDc0ICsrKysrKysrKysrKysrKysrKysKIHNyY3BrZ3MvbXVzbC90 ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiAyIGZpbGVzIGNoYW5nZWQs IDc1IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL211c2wvcGF0Y2hlcy9hZGQtc3VwcG9ydC1mb3ItU0lHRVZfVEhSRUFEX0lELXRpbWVycy5w YXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL2FkZC1zdXBwb3J0LWZvci1T SUdFVl9USFJFQURfSUQtdGltZXJzLnBhdGNoIGIvc3JjcGtncy9tdXNsL3BhdGNoZXMvYWRkLXN1 cHBvcnQtZm9yLVNJR0VWX1RIUkVBRF9JRC10aW1lcnMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lMjBkZmY1YmEwZDQKLS0tIC9kZXYvbnVsbAorKysgYi9z cmNwa2dzL211c2wvcGF0Y2hlcy9hZGQtc3VwcG9ydC1mb3ItU0lHRVZfVEhSRUFEX0lELXRpbWVy cy5wYXRjaApAQCAtMCwwICsxLDc0IEBACitGcm9tIDdjNzE3OTJlODc2OTE0NTFmMmE2Yjc2MzQ4 ZTgzYWQxODg5ZjFkY2IgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBKYW1lcyBZIEtu aWdodCA8anlrbmlnaHRAZ29vZ2xlLmNvbT4KK0RhdGU6IFN1biwgMzAgSnVuIDIwMTkgMjE6NTU6 MjAgLTA0MDAKK1N1YmplY3Q6IFtQQVRDSF0gYWRkIHN1cHBvcnQgZm9yIFNJR0VWX1RIUkVBRF9J RCB0aW1lcnMKKworVGhpcyBpcyBsaWtlIFNJR0VWX1NJR05BTCwgYnV0IHRhcmdldGVkIHRvIGEg cGFydGljdWxhciB0aHJlYWQncwordGlkLCByYXRoZXIgdGhhbiB0aGUgcHJvY2Vzcy4KKy0tLQor IGluY2x1ZGUvc2lnbmFsLmggICAgICAgIHwgMTYgKysrKysrKysrKysrKy0tLQorIHNyYy90aW1l L3RpbWVyX2NyZWF0ZS5jIHwgIDggKysrKysrLS0KKyAyIGZpbGVzIGNoYW5nZWQsIDE5IGluc2Vy dGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9pbmNsdWRlL3NpZ25hbC5o IGIvaW5jbHVkZS9zaWduYWwuaAoraW5kZXggZmJkZjY2N2IyLi45ZWQ5MjllNGYgMTAwNjQ0Cist LS0gYS9pbmNsdWRlL3NpZ25hbC5oCisrKysgYi9pbmNsdWRlL3NpZ25hbC5oCitAQCAtMTgwLDE0 ICsxODAsMjQgQEAgc3RydWN0IHNpZ2V2ZW50IHsKKyAJdW5pb24gc2lndmFsIHNpZ2V2X3ZhbHVl OworIAlpbnQgc2lnZXZfc2lnbm87CisgCWludCBzaWdldl9ub3RpZnk7CistCXZvaWQgKCpzaWdl dl9ub3RpZnlfZnVuY3Rpb24pKHVuaW9uIHNpZ3ZhbCk7CistCXB0aHJlYWRfYXR0cl90ICpzaWdl dl9ub3RpZnlfYXR0cmlidXRlczsKKy0JY2hhciBfX3BhZFs1Ni0zKnNpemVvZihsb25nKV07Cisr CXVuaW9uIHsKKysJCWNoYXIgX19wYWRbNjQgLSAyKnNpemVvZihpbnQpIC0gc2l6ZW9mKHVuaW9u IHNpZ3ZhbCldOworKwkJcGlkX3Qgc2lnZXZfbm90aWZ5X3RocmVhZF9pZDsKKysJCXN0cnVjdCB7 CisrCQkJdm9pZCAoKnNpZ2V2X25vdGlmeV9mdW5jdGlvbikodW5pb24gc2lndmFsKTsKKysJCQlw dGhyZWFkX2F0dHJfdCAqc2lnZXZfbm90aWZ5X2F0dHJpYnV0ZXM7CisrCQl9IF9fc2V2X3RocmVh ZDsKKysJfSBfX3Nldl9maWVsZHM7CisgfTsKKyAKKysjZGVmaW5lIHNpZ2V2X25vdGlmeV90aHJl YWRfaWQgX19zZXZfZmllbGRzLnNpZ2V2X25vdGlmeV90aHJlYWRfaWQKKysjZGVmaW5lIHNpZ2V2 X25vdGlmeV9mdW5jdGlvbiBfX3Nldl9maWVsZHMuX19zZXZfdGhyZWFkLnNpZ2V2X25vdGlmeV9m dW5jdGlvbgorKyNkZWZpbmUgc2lnZXZfbm90aWZ5X2F0dHJpYnV0ZXMgX19zZXZfZmllbGRzLl9f c2V2X3RocmVhZC5zaWdldl9ub3RpZnlfYXR0cmlidXRlcworKworICNkZWZpbmUgU0lHRVZfU0lH TkFMIDAKKyAjZGVmaW5lIFNJR0VWX05PTkUgMQorICNkZWZpbmUgU0lHRVZfVEhSRUFEIDIKKysj ZGVmaW5lIFNJR0VWX1RIUkVBRF9JRCA0CisgCisgaW50IF9fbGliY19jdXJyZW50X3NpZ3J0bWlu KHZvaWQpOworIGludCBfX2xpYmNfY3VycmVudF9zaWdydG1heCh2b2lkKTsKK2RpZmYgLS1naXQg YS9zcmMvdGltZS90aW1lcl9jcmVhdGUuYyBiL3NyYy90aW1lL3RpbWVyX2NyZWF0ZS5jCitpbmRl eCA1ZGRmZGEyNzguLjRiZWYyMzkwNSAxMDA2NDQKKy0tLSBhL3NyYy90aW1lL3RpbWVyX2NyZWF0 ZS5jCisrKysgYi9zcmMvdGltZS90aW1lcl9jcmVhdGUuYworQEAgLTcxLDExICs3MSwxNSBAQCBp bnQgdGltZXJfY3JlYXRlKGNsb2NraWRfdCBjbGssIHN0cnVjdCBzaWdldmVudCAqcmVzdHJpY3Qg ZXZwLCB0aW1lcl90ICpyZXN0cmljdAorIAlzd2l0Y2ggKGV2cCA/IGV2cC0+c2lnZXZfbm90aWZ5 IDogU0lHRVZfU0lHTkFMKSB7CisgCWNhc2UgU0lHRVZfTk9ORToKKyAJY2FzZSBTSUdFVl9TSUdO QUw6CisrCWNhc2UgU0lHRVZfVEhSRUFEX0lEOgorIAkJaWYgKGV2cCkgeworIAkJCWtzZXYuc2ln ZXZfdmFsdWUgPSBldnAtPnNpZ2V2X3ZhbHVlOworIAkJCWtzZXYuc2lnZXZfc2lnbm8gPSBldnAt PnNpZ2V2X3NpZ25vOworIAkJCWtzZXYuc2lnZXZfbm90aWZ5ID0gZXZwLT5zaWdldl9ub3RpZnk7 CistCQkJa3Nldi5zaWdldl90aWQgPSAwOworKwkJCWlmIChldnAtPnNpZ2V2X25vdGlmeSA9PSBT SUdFVl9USFJFQURfSUQpCisrCQkJCWtzZXYuc2lnZXZfdGlkID0gZXZwLT5zaWdldl9ub3RpZnlf dGhyZWFkX2lkOworKwkJCWVsc2UKKysJCQkJa3Nldi5zaWdldl90aWQgPSAwOworIAkJCWtzZXZw ID0gJmtzZXY7CisgCQl9CisgCQlpZiAoc3lzY2FsbChTWVNfdGltZXJfY3JlYXRlLCBjbGssIGtz ZXZwLCAmdGltZXJpZCkgPCAwKQorQEAgLTEwNyw3ICsxMTEsNyBAQCBpbnQgdGltZXJfY3JlYXRl KGNsb2NraWRfdCBjbGssIHN0cnVjdCBzaWdldmVudCAqcmVzdHJpY3QgZXZwLCB0aW1lcl90ICpy ZXN0cmljdAorIAorIAkJa3Nldi5zaWdldl92YWx1ZS5zaXZhbF9wdHIgPSAwOworIAkJa3Nldi5z aWdldl9zaWdubyA9IFNJR1RJTUVSOworLQkJa3Nldi5zaWdldl9ub3RpZnkgPSA0OyAvKiBTSUdF Vl9USFJFQURfSUQgKi8KKysJCWtzZXYuc2lnZXZfbm90aWZ5ID0gU0lHRVZfVEhSRUFEX0lEOwor IAkJa3Nldi5zaWdldl90aWQgPSB0ZC0+dGlkOworIAkJaWYgKHN5c2NhbGwoU1lTX3RpbWVyX2Ny ZWF0ZSwgY2xrLCAma3NldiwgJnRpbWVyaWQpIDwgMCkKKyAJCQl0aW1lcmlkID0gLTE7CmRpZmYg LS1naXQgYS9zcmNwa2dzL211c2wvdGVtcGxhdGUgYi9zcmNwa2dzL211c2wvdGVtcGxhdGUKaW5k ZXggMzRlNmVkNGZiYTZlLi5hZmIzM2NkODY4YjUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbXVzbC90 ZW1wbGF0ZQorKysgYi9zcmNwa2dzL211c2wvdGVtcGxhdGUKQEAgLTIsNyArMiw3IEBACiBwa2du YW1lPW11c2wKIHJldmVydHM9IjEuMi4wXzEiCiB2ZXJzaW9uPTEuMS4yNAotcmV2aXNpb249MTEK K3JldmlzaW9uPTEyCiBhcmNocz0iKi1tdXNsIgogYm9vdHN0cmFwPXllcwogYnVpbGRfc3R5bGU9 Z251LWNvbmZpZ3VyZQoKRnJvbSAyYzRmYWRiOWIwYTBmZjUzYjA5MTdlYmI3OTk1YmY3ZmE1NjU3 NWEzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDxvcmVvNjM5MUBnbWFp bC5jb20+CkRhdGU6IFNhdCwgNSBOb3YgMjAyMiAxMTozMzoxMiAtMDcwMApTdWJqZWN0OiBbUEFU Q0ggMDgvMzddIGdjYy1tdWx0aWxpYjogdXBkYXRlIHRvIDEyLjIuMC4KCi0tLQogc3JjcGtncy9n Y2MtbXVsdGlsaWIvdGVtcGxhdGUgfCAxMiArKysrKystLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2 IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nY2Mt bXVsdGlsaWIvdGVtcGxhdGUgYi9zcmNwa2dzL2djYy1tdWx0aWxpYi90ZW1wbGF0ZQppbmRleCBm MjhlYjIzN2MyODcuLmJhOWJhZmNhZGZkNiAxMDA2NDQKLS0tIGEvc3JjcGtncy9nY2MtbXVsdGls aWIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nY2MtbXVsdGlsaWIvdGVtcGxhdGUKQEAgLTMsMTUg KzMsMTUgQEAgYXJjaHM9Ing4Nl82NCIKIF90cmlwbGV0PSJ4ODZfNjQtdW5rbm93bi1saW51eC1n bnUiCiAKIHBrZ25hbWU9Z2NjLW11bHRpbGliCi12ZXJzaW9uPTEwLjIuMXByZTEKK3ZlcnNpb249 MTIuMi4wCiByZXZpc2lvbj0xCiBfbWFqb3J2ZXI9IiR7dmVyc2lvbiUuKn0iCiBzaG9ydF9kZXNj PSJHTlUgQ29tcGlsZXIgQ29sbGVjdGlvbiAobXVsdGlsaWIgZmlsZXMpIgogbWFpbnRhaW5lcj0i T3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKIGhvbWVwYWdlPSJodHRwOi8vZ2NjLmdu dS5vcmciCiBsaWNlbnNlPSJHRkRMLTEuMi1vci1sYXRlciwgR1BMLTMuMC1vci1sYXRlciwgTEdQ TC0yLjEtb3ItbGF0ZXIiCi1kaXN0ZmlsZXM9Imh0dHBzOi8vZGV2LmFscGluZWxpbnV4Lm9yZy9+ bmVub2xvZC9nY2MtJHt2ZXJzaW9uL3ByZS9fcHJlfS50YXIueHoiCi1jaGVja3N1bT03NzJjZmQ1 ZDMwZWI5Y2M1YTk5NmZlYzliYThjZGNiNDVkMzdkZjFjOWI1NzcwNjEwMTAzYjgxNGI3MzJjNTkw CitkaXN0ZmlsZXM9IiR7R05VX1NJVEV9L2djYy9nY2MtJHt2ZXJzaW9ufS9nY2MtJHt2ZXJzaW9u fS50YXIueHoiCitjaGVja3N1bT1lNTQ5Y2Y5Y2YzNTk0YTAwZTI3YjY1ODlkNDMyMmQ3MGUwNzIw Y2RkMjEzZjM5YmViNDE4MWUwNjkyNjIzMGZmCiAKIGhvc3RtYWtlZGVwZW5kcz0icGVybCBmbGV4 IHRhciB6aXAgdW56aXAiCiBtYWtlZGVwZW5kcz0iemxpYi1kZXZlbCBsaWJtcGMtZGV2ZWwgaXNs MTUtZGV2ZWwgbGliZmwtZGV2ZWwKQEAgLTcwLDcgKzcwLDcgQEAgZG9fYnVpbGQoKSB7CiAJbWFr ZSAke21ha2Vqb2JzfQogfQogZG9faW5zdGFsbCgpIHsKLQlsb2NhbCBfcGNfdHJpcGxldD14ODZf NjQtcGMtbGludXgtZ251IF92ZXJzaW9uPSR7dmVyc2lvbiVwcmUxfQorCWxvY2FsIF9wY190cmlw bGV0PXg4Nl82NC1wYy1saW51eC1nbnUKIAkjIEluc3RhbGwgdG8gYSB0ZW1wZGlyIGFuZCB0aGVu IG9ubHkgY29weSByZWxldmFudCBmaWxlcy4KIAljZCAke3dya3NyY30KIAltYWtlIERFU1RESVI9 JHt3cmtzcmN9LyR7cGtnbmFtZX0tYnVpbGQgaW5zdGFsbApAQCAtODAsOSArODAsOSBAQCBkb19p bnN0YWxsKCkgewogCXZta2RpciB1c3IvaW5jbHVkZS9jKysvJHtfbWFqb3J2ZXJ9LyR7X3RyaXBs ZXR9CiAJdm1rZGlyIHVzci9saWIvZ2NjLyR7X3RyaXBsZXR9LyR7X21ham9ydmVyfQogCi0JY3Ag LWEgJHt3cmtzcmN9LyR7cGtnbmFtZX0tYnVpbGQvdXNyL2xpYi9nY2MvJHtfcGNfdHJpcGxldH0v JHtfdmVyc2lvbn0vMzIgXAorCWNwIC1hICR7d3Jrc3JjfS8ke3BrZ25hbWV9LWJ1aWxkL3Vzci9s aWIvZ2NjLyR7X3BjX3RyaXBsZXR9LyR7dmVyc2lvbn0vMzIgXAogCQkke0RFU1RESVJ9L3Vzci9s aWIvZ2NjLyR7X3RyaXBsZXR9LyR7X21ham9ydmVyfS8KLQljcCAtYSAke3dya3NyY30vJHtwa2du YW1lfS1idWlsZC91c3IvaW5jbHVkZS9jKysvJHtfdmVyc2lvbn0vJHtfcGNfdHJpcGxldH0vMzIg XAorCWNwIC1hICR7d3Jrc3JjfS8ke3BrZ25hbWV9LWJ1aWxkL3Vzci9pbmNsdWRlL2MrKy8ke3Zl cnNpb259LyR7X3BjX3RyaXBsZXR9LzMyIFwKIAkJJHtERVNURElSfS91c3IvaW5jbHVkZS9jKysv JHtfbWFqb3J2ZXJ9LyR7X3RyaXBsZXR9CiAKIAl2aW5zdGFsbCAke3dya3NyY30vaG9zdC0ke19w Y190cmlwbGV0fS9nY2Mvc3BlY3MgNjQ0IHVzci9saWIvZ2NjLyR7X3RyaXBsZXR9LyR7X21ham9y dmVyfQoKRnJvbSA0ZDY0ZTZkYWRkNGUwY2FjNmEyNDQzODQxNGU4MDRjZDhiOTJmM2UyIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDxvcmVvNjM5MUBnbWFpbC5jb20+CkRh dGU6IFNhdCwgNSBOb3YgMjAyMiAxMTozMzoxMiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDkvMzdd IGxpYmdjY2ppdDogdXBkYXRlIHRvIDEyLjIuMC4KCi0tLQogc3JjcGtncy9saWJnY2NqaXQvZmls ZXMvbGliZ2Njaml0LW11c2wucGF0Y2ggfCA2MyAtLS0tLS0tLS0tLS0tLS0tLS0tLQogc3JjcGtn cy9saWJnY2NqaXQvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgfCAyNCArKystLS0tLQogMiBm aWxlcyBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDc4IGRlbGV0aW9ucygtKQogZGVsZXRlIG1v ZGUgMTAwNjQ0IHNyY3BrZ3MvbGliZ2Njaml0L2ZpbGVzL2xpYmdjY2ppdC1tdXNsLnBhdGNoCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9saWJnY2NqaXQvZmlsZXMvbGliZ2Njaml0LW11c2wucGF0Y2gg Yi9zcmNwa2dzL2xpYmdjY2ppdC9maWxlcy9saWJnY2NqaXQtbXVzbC5wYXRjaApkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggZDJlZDE2OTI4YzgyLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3Jj cGtncy9saWJnY2NqaXQvZmlsZXMvbGliZ2Njaml0LW11c2wucGF0Y2gKKysrIC9kZXYvbnVsbApA QCAtMSw2MyArMCwwIEBACi1kaWZmIC0tZ2l0IGEvZ2NjL2ppdC9qaXQtcGxheWJhY2suYyBiL2dj Yy9qaXQvaml0LXBsYXliYWNrLmMKLWluZGV4IDViY2NmNTkxYS4uMzVmNWUzNWVmIDEwMDY0NAot LS0tIGEvZ2NjL2ppdC9qaXQtcGxheWJhY2suYwotKysrIGIvZ2NjL2ppdC9qaXQtcGxheWJhY2su YwotQEAgLTE4LDYgKzE4LDggQEAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSBhbG9uZyB3aXRoIEdDQzsgc2VlIHRoZSBm aWxlIENPUFlJTkczLiAgSWYgbm90IHNlZQotIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMv Pi4gICovCi0gCi0rI2luY2x1ZGUgPHB0aHJlYWQuaD4KLSsKLSAjaW5jbHVkZSAiY29uZmlnLmgi Ci0gI2luY2x1ZGUgInN5c3RlbS5oIgotICNpbmNsdWRlICJjb3JldHlwZXMuaCIKLUBAIC00MSw4 ICs0Myw2IEBAIGFsb25nIHdpdGggR0NDOyBzZWUgdGhlIGZpbGUgQ09QWUlORzMuICBJZiBub3Qg c2VlCi0gI2luY2x1ZGUgImRpYWdub3N0aWMuaCIKLSAjaW5jbHVkZSAic3RtdC5oIgotIAotLSNp bmNsdWRlIDxwdGhyZWFkLmg+Ci0tCi0gI2luY2x1ZGUgImppdC1wbGF5YmFjay5oIgotICNpbmNs dWRlICJqaXQtcmVzdWx0LmgiCi0gI2luY2x1ZGUgImppdC1idWlsdGlucy5oIgotZGlmZiAtLWdp dCBhL2djYy9qaXQvaml0LXJlY29yZGluZy5jIGIvZ2NjL2ppdC9qaXQtcmVjb3JkaW5nLmMKLWlu ZGV4IGEyMzdkNTc0Zi4uNTc4NWUzMjY5IDEwMDY0NAotLS0tIGEvZ2NjL2ppdC9qaXQtcmVjb3Jk aW5nLmMKLSsrKyBiL2djYy9qaXQvaml0LXJlY29yZGluZy5jCi1AQCAtMTgsNiArMTgsOCBAQCBZ b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZQotIGFsb25nIHdpdGggR0NDOyBzZWUgdGhlIGZpbGUgQ09QWUlORzMuICBJZiBub3Qg c2VlCi0gPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KLSAKLSsjaW5jbHVkZSA8 cHRocmVhZC5oPgotKwotICNpbmNsdWRlICJjb25maWcuaCIKLSAjaW5jbHVkZSAic3lzdGVtLmgi Ci0gI2luY2x1ZGUgImNvcmV0eXBlcy5oIgotQEAgLTI1LDggKzI3LDYgQEAgYWxvbmcgd2l0aCBH Q0M7IHNlZSB0aGUgZmlsZSBDT1BZSU5HMy4gIElmIG5vdCBzZWUKLSAjaW5jbHVkZSAicHJldHR5 LXByaW50LmgiCi0gI2luY2x1ZGUgInRvcGxldi5oIgotIAotLSNpbmNsdWRlIDxwdGhyZWFkLmg+ Ci0tCi0gI2luY2x1ZGUgImppdC1idWlsdGlucy5oIgotICNpbmNsdWRlICJqaXQtcmVjb3JkaW5n LmgiCi0gI2luY2x1ZGUgImppdC1wbGF5YmFjay5oIgotZGlmZiAtLWdpdCBhL2djYy9qaXQvbGli Z2Njaml0LmMgYi9nY2Mvaml0L2xpYmdjY2ppdC5jCi1pbmRleCBmOWMzM2M2M2MuLjc1ZjIxZDI3 NSAxMDA2NDQKLS0tLSBhL2djYy9qaXQvbGliZ2Njaml0LmMKLSsrKyBiL2djYy9qaXQvbGliZ2Nj aml0LmMKLUBAIC0xOCwxMyArMTgsMTMgQEAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w eSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSBhbG9uZyB3aXRoIEdDQzsgc2Vl IHRoZSBmaWxlIENPUFlJTkczLiAgSWYgbm90IHNlZQotIDxodHRwOi8vd3d3LmdudS5vcmcvbGlj ZW5zZXMvPi4gICovCi0gCi0rI2luY2x1ZGUgPHB0aHJlYWQuaD4KLSAjaW5jbHVkZSAiY29uZmln LmgiCi0gI2luY2x1ZGUgInN5c3RlbS5oIgotICNpbmNsdWRlICJjb3JldHlwZXMuaCIKLSAjaW5j bHVkZSAidGltZXZhci5oIgotICNpbmNsdWRlICJ0eXBlZC1zcGxheS10cmVlLmgiCi0gI2luY2x1 ZGUgImNwcGJ1aWx0aW4uaCIKLS0jaW5jbHVkZSA8cHRocmVhZC5oPgotIAotICNpbmNsdWRlICJs aWJnY2NqaXQuaCIKLSAjaW5jbHVkZSAiaml0LXJlY29yZGluZy5oIgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9saWJnY2NqaXQvdGVtcGxhdGUgYi9zcmNwa2dzL2xpYmdjY2ppdC90ZW1wbGF0ZQppbmRl eCAwYjM3YzNlZTlmOGIuLmZkZTFhZmZkNTRiNyAxMDA2NDQKLS0tIGEvc3JjcGtncy9saWJnY2Nq aXQvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9saWJnY2NqaXQvdGVtcGxhdGUKQEAgLTMsMTggKzMs MTIgQEAKICMgd2hpY2ggdXNlIHRoZSB2ZXJzaW9uIG51bWJlci4KIAogcGtnbmFtZT1saWJnY2Nq aXQKLSMgd2UgYXJlIHVzaW5nIGEgMTAtc3RhYmxlIGdpdCBzbmFwc2hvdCBhbHBpbmUgaXMgdXNp bmcgaW4gb3JkZXIKLSMgdG8gZ2V0IHJlZ3Jlc3Npb24gZml4ZXMgbm90IHlldCBpbmNvcnBvcmF0 ZSBpbnRvIGEgc3RhYmxlIHJlbGVhc2UKLSMgaXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIHN3aXRj aCBiYWNrIHRvIHN0YWJsZSB3aXRoIDEwLjMgb3IgMTEKLXZlcnNpb249MTAuMi4xcHJlMQordmVy c2lvbj0xMi4yLjAKIHJldmlzaW9uPTEKLV9wYXRjaHZlcj0iJHt2ZXJzaW9uJXByZSp9IgotX21p bm9ydmVyPSIke19wYXRjaHZlciUuKn0iCi1fbWFqb3J2ZXI9IiR7X21pbm9ydmVyJS4qfSIKLV9n bXBfdmVyc2lvbj02LjIuMAorX2dtcF92ZXJzaW9uPTYuMi4xCiBfbXBmcl92ZXJzaW9uPTQuMS4w Ci1fbXBjX3ZlcnNpb249MS4xLjAKLV9pc2xfdmVyc2lvbj0wLjIxCitfbXBjX3ZlcnNpb249MS4y LjEKK19pc2xfdmVyc2lvbj0wLjI0CiBjcmVhdGVfd3Jrc3JjPXllcwogc2hvcnRfZGVzYz0iSnVz dC1Jbi1UaW1lIENvbXBpbGF0aW9uIGxpYnJhcnkgZm9yIEdDQyIKIG1haW50YWluZXI9IkxhbmUg QmlvY2luaSA8bGFuZUBtYWlsYm94Lm9yZz4iCkBAIC0yMiwxNiArMTYsMTYgQEAgaG9tZXBhZ2U9 Imh0dHBzOi8vZ2NjLmdudS5vcmciCiBsaWNlbnNlPSJHRkRMLTEuMi1vci1sYXRlciwgR1BMLTMu MC1vci1sYXRlciwgTEdQTC0yLjEtb3ItbGF0ZXIiCiAjICotbXVzbCBidWlsZGVycyBoYXZlIGlz c3VlcyBmZXRjaGluZyBodHRwczovL2Z0cC5nbnUub3JnL2dudS9tcGMvbXBjLTEuMS4wLnRhci5n egogZGlzdGZpbGVzPSIKLSBodHRwczovL2Rldi5hbHBpbmVsaW51eC5vcmcvfm5lbm9sb2QvZ2Nj LSR7dmVyc2lvbi9wcmUvX3ByZX0udGFyLnh6CisgJHtHTlVfU0lURX0vZ2NjL2djYy0ke3ZlcnNp b259L2djYy0ke3ZlcnNpb259LnRhci54egogIGh0dHBzOi8vZ21wbGliLm9yZy9kb3dubG9hZC9n bXAvZ21wLSR7X2dtcF92ZXJzaW9ufS50YXIueHoKICAke0dOVV9TSVRFfS9tcGZyL21wZnItJHtf bXBmcl92ZXJzaW9ufS50YXIueHoKICAke0dOVV9TSVRFfS9tcGMvbXBjLSR7X21wY192ZXJzaW9u fS50YXIuZ3oKICAke1NPVVJDRUZPUkdFX1NJVEV9L2xpYmlzbC9pc2wtJHtfaXNsX3ZlcnNpb259 LnRhci5iejIiCi1jaGVja3N1bT0iNzcyY2ZkNWQzMGViOWNjNWE5OTZmZWM5YmE4Y2RjYjQ1ZDM3 ZGYxYzliNTc3MDYxMDEwM2I4MTRiNzMyYzU5MAotIDI1OGU2Y2Q1MWIzZmJkZmMxODVjNzE2ZDU1 ZjgyYzA4YWZmNTdkZjBjNmZiZDE0M2NmNmVkNTYxMjY3YTE1MjYKK2NoZWNrc3VtPSJlNTQ5Y2Y5 Y2YzNTk0YTAwZTI3YjY1ODlkNDMyMmQ3MGUwNzIwY2RkMjEzZjM5YmViNDE4MWUwNjkyNjIzMGZm CisgZmQ0ODI5OTEyY2RkZDEyZjg0MTgxYzM0NTFjYzc1MmJlMjI0NjQzZTg3ZmFjNDk3YjY5ZWRk ZGFkYzQ5YjRmMgogIDBjOThhM2YxNzMyZmY2Y2E0ZWE2OTA1NTIwNzlkYTljNTk3ODcyZDMwZTk2 ZWMyODQxNGVlMjNjOTU1NThhN2YKLSA2OTg1YzUzODE0M2MxMjA4ZGNiMWFjNDJjZWRhZDZmZjUy ZTI2N2I0N2U1Zjk3MDE4M2EzZTc1MTI1YjQzYzJlCi0gZDE4Y2ExMWY4YWQxYTM5YWI2ZDAzZDNk Y2IzMzY1YWI0MTY3MjBmY2I2NWI0MmQ2OWYzNGY1MWJmMGEwZTg1OSIKKyAxNzUwM2QyYzM5NWRm Y2YxMDZiNjIyZGMxNDI2ODNjMTE5OTQzMWQwOTUzNjdjNmFhY2JhNmVlYzMwMzQwNDU5CisgZmNm NzhkZDk2NTZjMTBlYjhjZjlmYmQ1ZjU5YTBiNmIwMTM4NjIwNWZlMTkzNGIzYjI4N2EwYTE4OTgx NDVjMCIKIG5vcGllPXllcwogbGliMzJkaXNhYmxlZD15ZXMKIG1ha2VkZXBlbmRzPSJ6bGliLWRl dmVsIgoKRnJvbSA5ZThjYTQ5ZDM3NjBmOGRkOWM0ODIwNDdhOTA5YTMzNGQ2N2UyZjE2IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDxvcmVvNjM5MUBnbWFpbC5jb20+CkRh dGU6IFNhdCwgNSBOb3YgMjAyMiAxMTozMzoxMiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTAvMzdd IGJ1aWxkLXN0eWxlL3ZvaWQtY3Jvc3M6IFVwZGF0ZSBmbGFncyBmb3IgZ2NjMTIgYW5kCiBnbGli YyAyLjM2CgpnY292IGNhbid0IGJlIGJ1aWx0IHdpdGhvdXQgbGliYzoKaHR0cHM6Ly9nY2MuZ251 Lm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MTAwMjg5CgpSZW1vdmUgLW5vLXBpZSBmcm9t IGJ1aWxkLiBnbGliYyAyLjM1IGFuZCBuZXdlciB1c2VzIC1zdGF0aWMtcGllIGJ5IGRlZmF1bHQ6 Cmh0dHBzOi8vc291cmNld2FyZS5vcmcvcGlwZXJtYWlsL2dsaWJjLWN2cy8yMDIxcTQvMDc1OTE2 Lmh0bWwKLS0tCiBjb21tb24vYnVpbGQtc3R5bGUvdm9pZC1jcm9zcy5zaCB8IDE5ICsrKysrKysr KysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0 IGEvY29tbW9uL2J1aWxkLXN0eWxlL3ZvaWQtY3Jvc3Muc2ggYi9jb21tb24vYnVpbGQtc3R5bGUv dm9pZC1jcm9zcy5zaAppbmRleCA5MmYwM2Y4MTMwZjUuLmY3ZTAyZGJjNDhjYiAxMDA2NDQKLS0t IGEvY29tbW9uL2J1aWxkLXN0eWxlL3ZvaWQtY3Jvc3Muc2gKKysrIGIvY29tbW9uL2J1aWxkLXN0 eWxlL3ZvaWQtY3Jvc3Muc2gKQEAgLTUzLDYgKzUzLDcgQEAgX3ZvaWRfY3Jvc3NfYnVpbGRfYmlu dXRpbHMoKSB7CiAJCS0tc2JpbmRpcj0vdXNyL2JpbiBcCiAJCS0tbGliZGlyPS91c3IvbGliIFwK IAkJLS1saWJleGVjZGlyPS91c3IvbGliIFwKKwkJLS1zeXNjb25mZGlyPS9ldGMgXAogCQktLXRh cmdldD0ke3RndH0gXAogCQktLXdpdGgtc3lzcm9vdD0vdXNyLyR7dGd0fSBcCiAJCS0tZGlzYWJs ZS1ubHMgXApAQCAtNjAsNyArNjEsOSBAQCBfdm9pZF9jcm9zc19idWlsZF9iaW51dGlscygpIHsK IAkJLS1kaXNhYmxlLW11bHRpbGliIFwKIAkJLS1kaXNhYmxlLXdlcnJvciBcCiAJCS0tZGlzYWJs ZS1nb2xkIFwKKwkJLS1kaXNhYmxlLWdwcm9mbmcgXAogCQktLWVuYWJsZS1yZWxybyBcCisJCS0t ZW5hYmxlLW5ldy1kdGFncyBcCiAJCS0tZW5hYmxlLXBsdWdpbnMgXAogCQktLWVuYWJsZS02NC1i aXQtYmZkIFwKIAkJLS1lbmFibGUtZGV0ZXJtaW5pc3RpYy1hcmNoaXZlcyBcCkBAIC05MSw2ICs5 NCw5IEBAIF92b2lkX2Nyb3NzX2J1aWxkX2Jvb3RzdHJhcF9nY2MoKSB7CiAJIyBEbyBub3QgcnVu IGZpeGluY2x1ZGVzCiAJc2VkIC1pICdzQC4vZml4aW5jLnNoQC1jIHRydWVAJyBNYWtlZmlsZS5p bgogCisJIyBEbyBub3QgdXNlIHN5c3RlbSBoZWFkZXJzIHRvIGRldGVybWluZSBjbG9jYWxlIGlt cGxlbWVudGF0aW9uCisJc2VkIC1pICdzLyNpZiAoX19HTElCQ19fID4gMiB8fCAoX19HTElCQ19f ID09IDIgJiYgX19HTElCQ19NSU5PUl9fID49IDMpKSAmJiAhZGVmaW5lZChfX1VDTElCQ19fKS8j aWYgMS9nJyBsaWJzdGRjKystdjMvY29uZmlndXJlCisKIAlmb3IgZiBpbiAke1hCUFNfU1JDUEtH RElSfS9nY2MvcGF0Y2hlcy8qLnBhdGNoOyBkbwogCQlfdm9pZF9jcm9zc19hcHBseV9wYXRjaCAi JGYiCiAJZG9uZQpAQCAtMTMyLDYgKzEzOCw3IEBAIF92b2lkX2Nyb3NzX2J1aWxkX2Jvb3RzdHJh cF9nY2MoKSB7CiAJCS0tZGlzYWJsZS1saWJzc3AgXAogCQktLWRpc2FibGUtbGliaXRtIFwKIAkJ LS1kaXNhYmxlLWxpYmF0b21pYyBcCisJCS0tZGlzYWJsZS1nY292IFwKIAkJLS1kaXNhYmxlLXRo cmVhZHMgXAogCQktLWRpc2FibGUtc2psai1leGNlcHRpb25zIFwKIAkJLS1lbmFibGUtbGFuZ3Vh Z2VzPWMgXApAQCAtMzgxLDYgKzM4OCw3IEBAIF92b2lkX2Nyb3NzX2J1aWxkX2djYygpIHsKIAkJ ZXh0cmFfYXJncys9IiAtLWRpc2FibGUtZ251LXVuaXF1ZS1vYmplY3QiCiAJCWV4dHJhX2FyZ3Mr PSIgbGliYXRfY3ZfaGF2ZV9pZnVuYz1ubyIKIAllbHNlCisJCWV4dHJhX2FyZ3MrPSIgLS1lbmFi bGUtY2xvY2FsZT1nbnUiCiAJCWV4dHJhX2FyZ3MrPSIgLS1lbmFibGUtZ251LXVuaXF1ZS1vYmpl Y3QiCiAJZmkKIApAQCAtNDYwLDYgKzQ2OCwxNCBAQCBkb19idWlsZCgpIHsKIAlsb2NhbCBiaW51 dGlsc192ZXIgbGludXhfdmVyIGdjY192ZXIgbGliY192ZXIgbGlidWNvbnRleHRfdmVyCiAJbG9j YWwgdGd0PSR7c291cmNlcGtnL2Nyb3NzLX0KIAorCWV4cG9ydCBDRkxBR1M9IiR7Q0ZMQUdTLy1E X0ZPUlRJRllfU09VUkNFPTIvfSIKKwlleHBvcnQgQ1hYRkxBR1M9IiR7Q1hYRkxBR1MvLURfRk9S VElGWV9TT1VSQ0U9Mi99IgorCisJIyBEaXNhYmxlIGV4cGxpY2l0IC1mbm8tUElFLCBnY2MvYmlu dXRpbHMvbGliYyB3aWxsIGZpZ3VyZSB0aGlzIG91dCBpdHNlbGYuCisJZXhwb3J0IENGTEFHUz0i JHtDRkxBR1MvLy1mbm8tUElFL30iCisJZXhwb3J0IENYWEZMQUdTPSIke0NYWEZMQUdTLy8tZm5v LVBJRS99IgorCWV4cG9ydCBMREZMQUdTPSIke0xERkxBR1MvLy1uby1waWUvfSIKKwogCV92b2lk X2Nyb3NzX3Rlc3RfdmVyIGJpbnV0aWxzCiAJX3ZvaWRfY3Jvc3NfdGVzdF92ZXIgbGludXgKIAlf dm9pZF9jcm9zc190ZXN0X3ZlciBnY2MKQEAgLTYyNSw2ICs2NDEsOSBAQCBkb19pbnN0YWxsKCkg ewogCSMgdGhlbiByZW1vdmUgaXQgYmVjYXVzZSBpdCBjb25mbGljdHMgd2l0aCBsaWJxdWFkbWF0 aCBwYWNrYWdlCiAJcm0gLXJmICR7REVTVERJUn0vJHtzeXNyb290fS91c3IvbGliL2xpYnF1YWRt YXRoLioKIAorCSMgUmVtb3ZlIGxpYmRlcCBsaW5rZXIgcGx1Z2luIGJlY2F1c2UgaXQgY29uZmxp Y3RzIHdpdGggc3lzdGVtIGJpbnV0aWxzCisJcm0gLWYgJHtERVNURElSfS91c3IvbGliL2JmZC1w bHVnaW5zL2xpYmRlcCoKKwogCSMgUmVtb3ZlIGxlZnRvdmVyIHN5bWxpbmtzCiAJcm0gLWYgJHtE RVNURElSfS91c3IvbGliJHtYQlBTX1RBUkdFVF9XT1JEU0laRX0KIAlybSAtZiAke0RFU1RESVJ9 L2xpYioKCkZyb20gMDc0YWJhODU3ODgyZWQ5OGYyNzdlMGE0MWQ3MmM3NmVmZGI4MmE1ZCBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogb3JlbzYzOSA8b3JlbzYzOTFAZ21haWwuY29tPgpE YXRlOiBTYXQsIDUgTm92IDIwMjIgMTE6MzM6MTIgLTA3MDAKU3ViamVjdDogW1BBVENIIDExLzM3 XSBxZW11OiByZW1vdmUgYnJva2VuIHBhdGNoCgpUaGUgbmVjZXNzYXJ5IHBhdGNoIGhhcyBiZWVu IGltcG9ydGVkIGludG8gbXVzbCBzbyBubyBuZWVkCnRvIGNhc3QgdGhlIHNpZ2V2ZW50IHN0cnVj dCB0byBhIG1vcmUgZ2xpYmMtbGlrZSBvbmUuCi0tLQogLi4uL211c2wtZml4LXNpZ2V2ZW50LWFu ZC1zaWd2YWxfdC5wYXRjaCAgICAgIHwgMjcgLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNo YW5nZWQsIDI3IGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcWVtdS9w YXRjaGVzL211c2wtZml4LXNpZ2V2ZW50LWFuZC1zaWd2YWxfdC5wYXRjaAoKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvcWVtdS9wYXRjaGVzL211c2wtZml4LXNpZ2V2ZW50LWFuZC1zaWd2YWxfdC5wYXRj aCBiL3NyY3BrZ3MvcWVtdS9wYXRjaGVzL211c2wtZml4LXNpZ2V2ZW50LWFuZC1zaWd2YWxfdC5w YXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGI0ZjExMTdjMTVmLi4wMDAwMDAw MDAwMDAKLS0tIGEvc3JjcGtncy9xZW11L3BhdGNoZXMvbXVzbC1maXgtc2lnZXZlbnQtYW5kLXNp Z3ZhbF90LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotTm90ZTogUmVtb3Zl IHRoaXMgcGF0Y2ggd2l0aCBtdXNsIDEuMi4yCi0KLS0tLSBhL2xpbnV4LXVzZXIvc3lzY2FsbC5j Ci0rKysgYi9saW51eC11c2VyL3N5c2NhbGwuYwotQEAgLTUwMjAsMTAgKzUwMjAsMjEgQEAKLSAj aWZuZGVmIEhBVkVfU0lHRVZfTk9USUZZX1RIUkVBRF9JRAotICNkZWZpbmUgc2lnZXZfbm90aWZ5 X3RocmVhZF9pZCBfc2lnZXZfdW4uX3RpZAotICNlbmRpZgotIAotLXN0YXRpYyBpbmxpbmUgYWJp X2xvbmcgdGFyZ2V0X3RvX2hvc3Rfc2lnZXZlbnQoc3RydWN0IHNpZ2V2ZW50ICpob3N0X3NldnAs Ci0rc3RydWN0IGhvc3Rfc2lnZXZlbnQgewotKyAgICB1bmlvbiBzaWd2YWwgc2lnZXZfdmFsdWU7 Ci0rICAgIGludCBzaWdldl9zaWdubzsKLSsgICAgaW50IHNpZ2V2X25vdGlmeTsKLSsgICAgdW5p b24gewotKyAgICAgICBjaGFyIF9wYWRbNjQgLSBzaXplb2YoaW50KSAqIDIgLSBzaXplb2YodW5p b24gc2lndmFsKV07Ci0rICAgICAgIGludCBfdGlkOwotKyAgICB9IF9zaWdldl91bjsKLSt9Owot KwotK3N0YXRpYyBpbmxpbmUgYWJpX2xvbmcgdGFyZ2V0X3RvX2hvc3Rfc2lnZXZlbnQoc3RydWN0 IHNpZ2V2ZW50ICpzZXZwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYWJpX3Vsb25nIHRhcmdldF9hZGRyKQotIHsKLSsgICAgc3RydWN0IGhvc3Rfc2ln ZXZlbnQgKmhvc3Rfc2V2cCA9IChzdHJ1Y3QgaG9zdF9zaWdldmVudCAqKSBzZXZwOwotICAgICBz dHJ1Y3QgdGFyZ2V0X3NpZ2V2ZW50ICp0YXJnZXRfc2V2cDsKLSAKLSAgICAgaWYgKCFsb2NrX3Vz ZXJfc3RydWN0KFZFUklGWV9SRUFELCB0YXJnZXRfc2V2cCwgdGFyZ2V0X2FkZHIsIDEpKSB7CgpG cm9tIDIxZjNjMjkxZTU2MDdhZWU5MzMxOGIzZDNmYzE0MzBmM2VhNWQ0ZTYgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IG9yZW82MzkgPG9yZW82MzkxQGdtYWlsLmNvbT4KRGF0ZTogU2F0 LCAxOSBOb3YgMjAyMiAxMzoyNjoyNCAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTIvMzddIG1rLWNv bmZpZ3VyZTogcmVidWlsZCBmb3IgZ2NjIDEyCgotLS0KIHNyY3BrZ3MvbWstY29uZmlndXJlL3Rl bXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9u KC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tay1jb25maWd1cmUvdGVtcGxhdGUgYi9zcmNwa2dz L21rLWNvbmZpZ3VyZS90ZW1wbGF0ZQppbmRleCA5ZDEyZjExYTk3OTkuLmM1MGQ4YWRmMjEzZiAx MDA2NDQKLS0tIGEvc3JjcGtncy9tay1jb25maWd1cmUvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9t ay1jb25maWd1cmUvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9y ICdtay1jb25maWd1cmUnCiBwa2duYW1lPW1rLWNvbmZpZ3VyZQogdmVyc2lvbj0wLjM3LjAKLXJl dmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPWdudS1tYWtlZmlsZQogbWFrZV9jbWQ9 Ym1ha2UKIG1ha2VfaW5zdGFsbF9hcmdzPSJNQU5ESVI9L3Vzci9zaGFyZS9tYW4iCgpGcm9tIGY3 MDM2NWU4NGJmZmU5NzY2NGNkYTQ2N2I2YzQyZDA4MGFlMmM5OWIgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IG9yZW82MzkgPG9yZW82MzkxQGdtYWlsLmNvbT4KRGF0ZTogU3VuLCA2IE5v diAyMDIyIDExOjMzOjI4IC0wODAwClN1YmplY3Q6IFtQQVRDSCAxMy8zN10gY3Jvc3MtYWFyY2g2 NC1saW51eC1nbnU6IHVwZGF0ZSB0byBnY2MgMTIuMi4wLgoKLS0tCiBzcmNwa2dzL2Nyb3NzLWFh cmNoNjQtbGludXgtZ251L3RlbXBsYXRlIHwgMTkgKysrKysrKysrKy0tLS0tLS0tLQogMSBmaWxl IGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv c3JjcGtncy9jcm9zcy1hYXJjaDY0LWxpbnV4LWdudS90ZW1wbGF0ZSBiL3NyY3BrZ3MvY3Jvc3Mt YWFyY2g2NC1saW51eC1nbnUvdGVtcGxhdGUKaW5kZXggMThkZTIxYWEzY2NkLi45ZTZmYjc1YzE5 OGQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jvc3MtYWFyY2g2NC1saW51eC1nbnUvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9jcm9zcy1hYXJjaDY0LWxpbnV4LWdudS90ZW1wbGF0ZQpAQCAtMSwxNSAr MSwxNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnY3Jvc3MtYWFyY2g2NC1saW51eC1nbnUnCi1f YmludXRpbHNfdmVyc2lvbj0yLjM1LjEKLV9nY2NfdmVyc2lvbj0xMC4yLjFfcHJlMQotX2dsaWJj X3ZlcnNpb249Mi4zMgorX2JpbnV0aWxzX3ZlcnNpb249Mi4zOQorX2djY192ZXJzaW9uPTEyLjIu MAorX2dsaWJjX3ZlcnNpb249Mi4zNgogX2xpbnV4X3ZlcnNpb249NS4xMC40CiBwa2duYW1lPWNy b3NzLWFhcmNoNjQtbGludXgtZ251Ci12ZXJzaW9uPTAuMzQKK3ZlcnNpb249MC4zNQogcmV2aXNp b249MQogYnVpbGRfc3R5bGU9dm9pZC1jcm9zcwogY29uZmlndXJlX2FyZ3M9Ii0td2l0aC1hcmNo PWFybXY4LWEiCiBob3N0bWFrZWRlcGVuZHM9InRleGluZm8gdGFyIGdjYy1vYmpjIGdjYy1nbyBm bGV4IHBlcmwgcHl0aG9uMyIKLW1ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwg emxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbCIKK21ha2VkZXBlbmRzPSJpc2wxNS1kZXZl bCBsaWJtcGMtZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwKKyB6bGliLWRldmVsIGxpYnpzdGQt ZGV2ZWwiCiBkZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIK IHNob3J0X2Rlc2M9IlZvaWQgY3Jvc3MgdG9vbGNoYWluIGZvciAke3BrZ25hbWUvY3Jvc3MtfSIK IG1haW50YWluZXI9IkxlYWggTmV1a2lyY2hlbiA8bGVhaEB2dXh1Lm9yZz4iCkBAIC0xNywxMiAr MTgsMTIgQEAgbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1sYXRlciwgTEdQ TC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBk aXN0ZmlsZXM9IgogICR7R05VX1NJVEV9L2JpbnV0aWxzL2JpbnV0aWxzLSR7X2JpbnV0aWxzX3Zl cnNpb259LnRhci54egotIGh0dHBzOi8vZGV2LmFscGluZWxpbnV4Lm9yZy9+bmVub2xvZC9nY2Mt JHtfZ2NjX3ZlcnNpb259LnRhci54egorICR7R05VX1NJVEV9L2djYy9nY2MtJHtfZ2NjX3ZlcnNp b259L2djYy0ke19nY2NfdmVyc2lvbn0udGFyLnh6CiAgJHtHTlVfU0lURX0vZ2xpYmMvZ2xpYmMt JHtfZ2xpYmNfdmVyc2lvbn0udGFyLnh6CiAgJHtLRVJORUxfU0lURX0va2VybmVsL3Y1LngvbGlu dXgtJHtfbGludXhfdmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09IjNjZWQ5MWRiOWJmMDExODJi N2U0MjBlYWI2ODAzOWYyMDgzYWVkMGEyMTRjMDQyNGUyNTdlYWUzZGRlZTg2MDcKLSA3NzJjZmQ1 ZDMwZWI5Y2M1YTk5NmZlYzliYThjZGNiNDVkMzdkZjFjOWI1NzcwNjEwMTAzYjgxNGI3MzJjNTkw Ci0gMTYyN2VhNTRmNWExYTg0NjcwMzI1NjMzOTNlMDkwMTA3NzYyNmRjNjZmMzdmMTBlZTYzNjNi YjcyMjIyMjgzNgorY2hlY2tzdW09IjY0NWMyNWY1NjNiOGFkYzBhODFkYmQ2YTQxY2ZmYmY0ZDM3 MDgzYTM4MmUwMmQ1ZDNkZjRmNjVjMDk1MTZkMDAKKyBlNTQ5Y2Y5Y2YzNTk0YTAwZTI3YjY1ODlk NDMyMmQ3MGUwNzIwY2RkMjEzZjM5YmViNDE4MWUwNjkyNjIzMGZmCisgMWM5NTlmZWEyNDA5MDYy MjYwNjJjYjRiMWU3ZWJjZTcxYTlmMGUzYzA4MzZjMDllN2UzNDIzZDQzNGZjZmU3NQogIDkwNGUz OTZjMjZlOTk5MmExNmNkMWNjOTg5NDYwMTcxNTM2YmVkNzczOWJmMzYwNDlmNmViMDIwZWU1ZDU2 ZWMiCiBub2Nyb3NzPXllcwogCgpGcm9tIDhjMDRkMzJiYjI5YjdjM2I5ZGZkOWY5OTUwM2JlODZi OTNjMzRiMDIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IG9yZW82MzkgPG9yZW82Mzkx QGdtYWlsLmNvbT4KRGF0ZTogU3VuLCA2IE5vdiAyMDIyIDExOjMzOjI4IC0wODAwClN1YmplY3Q6 IFtQQVRDSCAxNC8zN10gY3Jvc3MtYWFyY2g2NC1saW51eC1tdXNsOiB1cGRhdGUgdG8gZ2NjIDEy LjIuMC4KCi0tLQogc3JjcGtncy9jcm9zcy1hYXJjaDY0LWxpbnV4LW11c2wvdGVtcGxhdGUgfCAx OSArKysrKysrKysrLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwg OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nyb3NzLWFhcmNoNjQtbGludXgt bXVzbC90ZW1wbGF0ZSBiL3NyY3BrZ3MvY3Jvc3MtYWFyY2g2NC1saW51eC1tdXNsL3RlbXBsYXRl CmluZGV4IGJiNmE3NzBhZmI3OS4uYmExNGM5NmJjY2VhIDEwMDY0NAotLS0gYS9zcmNwa2dzL2Ny b3NzLWFhcmNoNjQtbGludXgtbXVzbC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Nyb3NzLWFhcmNo NjQtbGludXgtbXVzbC90ZW1wbGF0ZQpAQCAtMSwyOSArMSwzMCBAQAogIyBUZW1wbGF0ZSBmaWxl IGZvciAnY3Jvc3MtYWFyY2g2NC1saW51eC1tdXNsJwotX2JpbnV0aWxzX3ZlcnNpb249Mi4zNS4x Ci1fZ2NjX3ZlcnNpb249MTAuMi4xX3ByZTEKK19iaW51dGlsc192ZXJzaW9uPTIuMzkKK19nY2Nf dmVyc2lvbj0xMi4yLjAKIF9tdXNsX3ZlcnNpb249MS4xLjI0CiBfbGludXhfdmVyc2lvbj01LjEw LjQKIF9saWJ1Y29udGV4dF92ZXJzaW9uPTEuMAogcGtnbmFtZT1jcm9zcy1hYXJjaDY0LWxpbnV4 LW11c2wKLXZlcnNpb249MC4zNAotcmV2aXNpb249NAordmVyc2lvbj0wLjM1CityZXZpc2lvbj0x CiBidWlsZF9zdHlsZT12b2lkLWNyb3NzCiBjb25maWd1cmVfYXJncz0iLS13aXRoLWFyY2g9YXJt djgtYSIKIGhvc3RtYWtlZGVwZW5kcz0idGV4aW5mbyB0YXIgZ2NjLW9iamMgZ2NjLWdvIGZsZXgg cGVybCBweXRob24zIgotbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6bGli LWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIgorbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxp Ym1wYy1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbAorIHpsaWItZGV2ZWwgbGlienN0ZC1kZXZl bCIKIGRlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259Igogc2hv cnRfZGVzYz0iVm9pZCBjcm9zcyB0b29sY2hhaW4gZm9yICR7cGtnbmFtZS9jcm9zcy19IgogbWFp bnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKLWhvbWVwYWdlPSJodHRw czovL3d3dy52b2lkbGludXgub3JnLyIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdQTC0z LjAtb3ItbGF0ZXIsIE1JVCIKK2hvbWVwYWdlPSJodHRwczovL3d3dy52b2lkbGludXgub3JnLyIK IGRpc3RmaWxlcz0iCiAgJHtHTlVfU0lURX0vYmludXRpbHMvYmludXRpbHMtJHtfYmludXRpbHNf dmVyc2lvbn0udGFyLnh6Ci0gaHR0cHM6Ly9kZXYuYWxwaW5lbGludXgub3JnL35uZW5vbG9kL2dj Yy0ke19nY2NfdmVyc2lvbn0udGFyLnh6CisgJHtHTlVfU0lURX0vZ2NjL2djYy0ke19nY2NfdmVy c2lvbn0vZ2NjLSR7X2djY192ZXJzaW9ufS50YXIueHoKICBodHRwczovL211c2wubGliYy5vcmcv cmVsZWFzZXMvbXVzbC0ke19tdXNsX3ZlcnNpb259LnRhci5negogICR7S0VSTkVMX1NJVEV9L2tl cm5lbC92NS54L2xpbnV4LSR7X2xpbnV4X3ZlcnNpb259LnRhci54egogIGh0dHBzOi8vZ2l0aHVi LmNvbS9rYW5paW5pL2xpYnVjb250ZXh0L2FyY2hpdmUvbGlidWNvbnRleHQtJHtfbGlidWNvbnRl eHRfdmVyc2lvbn0udGFyLmd6IgotY2hlY2tzdW09IjNjZWQ5MWRiOWJmMDExODJiN2U0MjBlYWI2 ODAzOWYyMDgzYWVkMGEyMTRjMDQyNGUyNTdlYWUzZGRlZTg2MDcKLSA3NzJjZmQ1ZDMwZWI5Y2M1 YTk5NmZlYzliYThjZGNiNDVkMzdkZjFjOWI1NzcwNjEwMTAzYjgxNGI3MzJjNTkwCitjaGVja3N1 bT0iNjQ1YzI1ZjU2M2I4YWRjMGE4MWRiZDZhNDFjZmZiZjRkMzcwODNhMzgyZTAyZDVkM2RmNGY2 NWMwOTUxNmQwMAorIGU1NDljZjljZjM1OTRhMDBlMjdiNjU4OWQ0MzIyZDcwZTA3MjBjZGQyMTNm MzliZWI0MTgxZTA2OTI2MjMwZmYKICAxMzcwYzlhODEyYjJjZjJhN2Q5MjgwMjUxMGNjYTAwNThj YzM3ZTY2YTdiZWRkNzAwNTFmMGEzNDAxNTAyMmEzCiAgOTA0ZTM5NmMyNmU5OTkyYTE2Y2QxY2M5 ODk0NjAxNzE1MzZiZWQ3NzM5YmYzNjA0OWY2ZWIwMjBlZTVkNTZlYwogIDIzNzE0ZTk5YTg3ZjZk ZWE4MmU4YTA3M2M1MjYzMjUxNjFkZDY1NDYyNDU5ODIwYjE2YTYxNjJiZTkxOTU1YmIiCgpGcm9t IDRkNGFiNmUwNDVjNzczMzliYmRlOWIxYTkwNTAyYzgxZjVkZDIyY2EgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IG9yZW82MzkgPG9yZW82MzkxQGdtYWlsLmNvbT4KRGF0ZTogU3VuLCA2 IE5vdiAyMDIyIDExOjMzOjI4IC0wODAwClN1YmplY3Q6IFtQQVRDSCAxNS8zN10gY3Jvc3MtYXJt LWxpbnV4LWdudWVhYmk6IHVwZGF0ZSB0byBnY2MgMTIuMi4wLgoKLS0tCiBzcmNwa2dzL2Nyb3Nz LWFybS1saW51eC1nbnVlYWJpL3RlbXBsYXRlIHwgMTkgKysrKysrKysrKy0tLS0tLS0tLQogMSBm aWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9jcm9zcy1hcm0tbGludXgtZ251ZWFiaS90ZW1wbGF0ZSBiL3NyY3BrZ3MvY3Jv c3MtYXJtLWxpbnV4LWdudWVhYmkvdGVtcGxhdGUKaW5kZXggYTNhYmE3MmFhOTNhLi41Yzc3NGUx NmY0MzAgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jvc3MtYXJtLWxpbnV4LWdudWVhYmkvdGVtcGxh dGUKKysrIGIvc3JjcGtncy9jcm9zcy1hcm0tbGludXgtZ251ZWFiaS90ZW1wbGF0ZQpAQCAtMSwx NSArMSwxNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnY3Jvc3MtYXJtLWxpbnV4LWdudWVhYmkn Ci1fYmludXRpbHNfdmVyc2lvbj0yLjM1LjEKLV9nY2NfdmVyc2lvbj0xMC4yLjFfcHJlMQotX2ds aWJjX3ZlcnNpb249Mi4zMgorX2JpbnV0aWxzX3ZlcnNpb249Mi4zOQorX2djY192ZXJzaW9uPTEy LjIuMAorX2dsaWJjX3ZlcnNpb249Mi4zNgogX2xpbnV4X3ZlcnNpb249NS4xMC40CiBwa2duYW1l PWNyb3NzLWFybS1saW51eC1nbnVlYWJpCi12ZXJzaW9uPTAuMzQKK3ZlcnNpb249MC4zNQogcmV2 aXNpb249MQogYnVpbGRfc3R5bGU9dm9pZC1jcm9zcwogY29uZmlndXJlX2FyZ3M9Ii0td2l0aC1h cmNoPWFybXY1dGUgLS13aXRoLWZsb2F0PXNvZnQiCiBob3N0bWFrZWRlcGVuZHM9InRleGluZm8g dGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4IHBlcmwgcHl0aG9uMyIKLW1ha2VkZXBlbmRzPSJpc2wx NS1kZXZlbCBsaWJtcGMtZGV2ZWwgemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbCIKK21h a2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwK KyB6bGliLWRldmVsIGxpYnpzdGQtZGV2ZWwiCiBkZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2 ZXJzaW9ufV8ke3JldmlzaW9ufSIKIHNob3J0X2Rlc2M9IlZvaWQgY3Jvc3MgdG9vbGNoYWluIGZv ciAke3BrZ25hbWUvY3Jvc3MtfSIKIG1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxp bnV4Lm9yZz4iCkBAIC0xNywxMiArMTgsMTIgQEAgbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwg R1BMLTMuMC1vci1sYXRlciwgTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93 d3cudm9pZGxpbnV4Lm9yZy8iCiBkaXN0ZmlsZXM9IgogICR7R05VX1NJVEV9L2JpbnV0aWxzL2Jp bnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259LnRhci54egotIGh0dHBzOi8vZGV2LmFscGluZWxp bnV4Lm9yZy9+bmVub2xvZC9nY2MtJHtfZ2NjX3ZlcnNpb259LnRhci54egorICR7R05VX1NJVEV9 L2djYy9nY2MtJHtfZ2NjX3ZlcnNpb259L2djYy0ke19nY2NfdmVyc2lvbn0udGFyLnh6CiAgJHtH TlVfU0lURX0vZ2xpYmMvZ2xpYmMtJHtfZ2xpYmNfdmVyc2lvbn0udGFyLnh6CiAgJHtLRVJORUxf U0lURX0va2VybmVsL3Y1LngvbGludXgtJHtfbGludXhfdmVyc2lvbn0udGFyLnh6IgotY2hlY2tz dW09IjNjZWQ5MWRiOWJmMDExODJiN2U0MjBlYWI2ODAzOWYyMDgzYWVkMGEyMTRjMDQyNGUyNTdl YWUzZGRlZTg2MDcKLSA3NzJjZmQ1ZDMwZWI5Y2M1YTk5NmZlYzliYThjZGNiNDVkMzdkZjFjOWI1 NzcwNjEwMTAzYjgxNGI3MzJjNTkwCi0gMTYyN2VhNTRmNWExYTg0NjcwMzI1NjMzOTNlMDkwMTA3 NzYyNmRjNjZmMzdmMTBlZTYzNjNiYjcyMjIyMjgzNgorY2hlY2tzdW09IjY0NWMyNWY1NjNiOGFk YzBhODFkYmQ2YTQxY2ZmYmY0ZDM3MDgzYTM4MmUwMmQ1ZDNkZjRmNjVjMDk1MTZkMDAKKyBlNTQ5 Y2Y5Y2YzNTk0YTAwZTI3YjY1ODlkNDMyMmQ3MGUwNzIwY2RkMjEzZjM5YmViNDE4MWUwNjkyNjIz MGZmCisgMWM5NTlmZWEyNDA5MDYyMjYwNjJjYjRiMWU3ZWJjZTcxYTlmMGUzYzA4MzZjMDllN2Uz NDIzZDQzNGZjZmU3NQogIDkwNGUzOTZjMjZlOTk5MmExNmNkMWNjOTg5NDYwMTcxNTM2YmVkNzcz OWJmMzYwNDlmNmViMDIwZWU1ZDU2ZWMiCiBub2Nyb3NzPXllcwogCgpGcm9tIDEwM2I2ZmZlYTky Yzc2NWVkMWFhOGQwMjAxYTkxNDg2NTBlNzYxMDYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IG9yZW82MzkgPG9yZW82MzkxQGdtYWlsLmNvbT4KRGF0ZTogU3VuLCA2IE5vdiAyMDIyIDEx OjMzOjI4IC0wODAwClN1YmplY3Q6IFtQQVRDSCAxNi8zN10gY3Jvc3MtYXJtLWxpbnV4LWdudWVh YmloZjogdXBkYXRlIHRvIGdjYyAxMi4yLjAuCgotLS0KIHNyY3BrZ3MvY3Jvc3MtYXJtLWxpbnV4 LWdudWVhYmloZi90ZW1wbGF0ZSB8IDE5ICsrKysrKysrKystLS0tLS0tLS0KIDEgZmlsZSBjaGFu Z2VkLCAxMCBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvY3Jvc3MtYXJtLWxpbnV4LWdudWVhYmloZi90ZW1wbGF0ZSBiL3NyY3BrZ3MvY3Jvc3MtYXJt LWxpbnV4LWdudWVhYmloZi90ZW1wbGF0ZQppbmRleCBkOWFiODZjZjJlY2MuLmQ2Mjk4YWI2Mzlh NCAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy1hcm0tbGludXgtZ251ZWFiaWhmL3RlbXBsYXRl CisrKyBiL3NyY3BrZ3MvY3Jvc3MtYXJtLWxpbnV4LWdudWVhYmloZi90ZW1wbGF0ZQpAQCAtMSwx NSArMSwxNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnY3Jvc3MtYXJtLWxpbnV4LWdudWVhYmlo ZicKLV9iaW51dGlsc192ZXJzaW9uPTIuMzUuMQotX2djY192ZXJzaW9uPTEwLjIuMV9wcmUxCi1f Z2xpYmNfdmVyc2lvbj0yLjMyCitfYmludXRpbHNfdmVyc2lvbj0yLjM5CitfZ2NjX3ZlcnNpb249 MTIuMi4wCitfZ2xpYmNfdmVyc2lvbj0yLjM2CiBfbGludXhfdmVyc2lvbj01LjEwLjQKIHBrZ25h bWU9Y3Jvc3MtYXJtLWxpbnV4LWdudWVhYmloZgotdmVyc2lvbj0wLjM0Cit2ZXJzaW9uPTAuMzUK IHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPXZvaWQtY3Jvc3MKIGNvbmZpZ3VyZV9hcmdzPSItLXdp dGgtYXJjaD1hcm12NiAtLXdpdGgtZnB1PXZmcCAtLXdpdGgtZmxvYXQ9aGFyZCIKIGhvc3RtYWtl ZGVwZW5kcz0idGV4aW5mbyB0YXIgZ2NjLW9iamMgZ2NjLWdvIGZsZXggcGVybCBweXRob24zIgot bWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6bGliLWRldmVsIGdtcC1kZXZl bCBtcGZyLWRldmVsIgorbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCBnbXAt ZGV2ZWwgbXBmci1kZXZlbAorIHpsaWItZGV2ZWwgbGlienN0ZC1kZXZlbCIKIGRlcGVuZHM9IiR7 cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259Igogc2hvcnRfZGVzYz0iVm9pZCBj cm9zcyB0b29sY2hhaW4gZm9yICR7cGtnbmFtZS9jcm9zcy19IgogbWFpbnRhaW5lcj0iT3JwaGFu ZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKQEAgLTE3LDEyICsxOCwxMiBAQCBsaWNlbnNlPSJH UEwtMi4wLW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVyLCBMR1BMLTIuMS1vci1sYXRlciIKIGhv bWVwYWdlPSJodHRwczovL3d3dy52b2lkbGludXgub3JnLyIKIGRpc3RmaWxlcz0iCiAgJHtHTlVf U0lURX0vYmludXRpbHMvYmludXRpbHMtJHtfYmludXRpbHNfdmVyc2lvbn0udGFyLnh6Ci0gaHR0 cHM6Ly9kZXYuYWxwaW5lbGludXgub3JnL35uZW5vbG9kL2djYy0ke19nY2NfdmVyc2lvbn0udGFy Lnh6CisgJHtHTlVfU0lURX0vZ2NjL2djYy0ke19nY2NfdmVyc2lvbn0vZ2NjLSR7X2djY192ZXJz aW9ufS50YXIueHoKICAke0dOVV9TSVRFfS9nbGliYy9nbGliYy0ke19nbGliY192ZXJzaW9ufS50 YXIueHoKICAke0tFUk5FTF9TSVRFfS9rZXJuZWwvdjUueC9saW51eC0ke19saW51eF92ZXJzaW9u fS50YXIueHoiCi1jaGVja3N1bT0iM2NlZDkxZGI5YmYwMTE4MmI3ZTQyMGVhYjY4MDM5ZjIwODNh ZWQwYTIxNGMwNDI0ZTI1N2VhZTNkZGVlODYwNwotIDc3MmNmZDVkMzBlYjljYzVhOTk2ZmVjOWJh OGNkY2I0NWQzN2RmMWM5YjU3NzA2MTAxMDNiODE0YjczMmM1OTAKLSAxNjI3ZWE1NGY1YTFhODQ2 NzAzMjU2MzM5M2UwOTAxMDc3NjI2ZGM2NmYzN2YxMGVlNjM2M2JiNzIyMjIyODM2CitjaGVja3N1 bT0iNjQ1YzI1ZjU2M2I4YWRjMGE4MWRiZDZhNDFjZmZiZjRkMzcwODNhMzgyZTAyZDVkM2RmNGY2 NWMwOTUxNmQwMAorIGU1NDljZjljZjM1OTRhMDBlMjdiNjU4OWQ0MzIyZDcwZTA3MjBjZGQyMTNm MzliZWI0MTgxZTA2OTI2MjMwZmYKKyAxYzk1OWZlYTI0MDkwNjIyNjA2MmNiNGIxZTdlYmNlNzFh OWYwZTNjMDgzNmMwOWU3ZTM0MjNkNDM0ZmNmZTc1CiAgOTA0ZTM5NmMyNmU5OTkyYTE2Y2QxY2M5 ODk0NjAxNzE1MzZiZWQ3NzM5YmYzNjA0OWY2ZWIwMjBlZTVkNTZlYyIKIG5vY3Jvc3M9eWVzCiAK CkZyb20gOTdiNzViOGM4MTAwZDcwODM1M2VhMjFhNmYwMWYyYTA2MTI3NWIxZiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogb3JlbzYzOSA8b3JlbzYzOTFAZ21haWwuY29tPgpEYXRlOiBT dW4sIDYgTm92IDIwMjIgMTE6MzM6MjggLTA4MDAKU3ViamVjdDogW1BBVENIIDE3LzM3XSBjcm9z cy1hcm0tbGludXgtbXVzbGVhYmk6IHVwZGF0ZSB0byBnY2MgMTIuMi4wLgoKLS0tCiBzcmNwa2dz L2Nyb3NzLWFybS1saW51eC1tdXNsZWFiaS90ZW1wbGF0ZSB8IDE5ICsrKysrKysrKystLS0tLS0t LS0KIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvY3Jvc3MtYXJtLWxpbnV4LW11c2xlYWJpL3RlbXBsYXRlIGIvc3Jj cGtncy9jcm9zcy1hcm0tbGludXgtbXVzbGVhYmkvdGVtcGxhdGUKaW5kZXggNjY5MmQ4OTFlMWJk Li4yNGRmNzhlOGZkOGUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jvc3MtYXJtLWxpbnV4LW11c2xl YWJpL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3MtYXJtLWxpbnV4LW11c2xlYWJpL3RlbXBs YXRlCkBAIC0xLDI5ICsxLDMwIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdjcm9zcy1hcm0tbGlu dXgtbXVzbGVhYmknCi1fYmludXRpbHNfdmVyc2lvbj0yLjM1LjEKLV9nY2NfdmVyc2lvbj0xMC4y LjFfcHJlMQorX2JpbnV0aWxzX3ZlcnNpb249Mi4zOQorX2djY192ZXJzaW9uPTEyLjIuMAogX211 c2xfdmVyc2lvbj0xLjEuMjQKIF9saW51eF92ZXJzaW9uPTUuMTAuNAogX2xpYnVjb250ZXh0X3Zl cnNpb249MS4wCiBwa2duYW1lPWNyb3NzLWFybS1saW51eC1tdXNsZWFiaQotdmVyc2lvbj0wLjM0 Ci1yZXZpc2lvbj00Cit2ZXJzaW9uPTAuMzUKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPXZvaWQt Y3Jvc3MKIGNvbmZpZ3VyZV9hcmdzPSItLXdpdGgtYXJjaD1hcm12NXRlIC0td2l0aC1mbG9hdD1z b2Z0IgogaG9zdG1ha2VkZXBlbmRzPSJ0ZXhpbmZvIHRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBw ZXJsIHB5dGhvbjMiCi1tYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWIt ZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwiCittYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGli bXBjLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsCisgemxpYi1kZXZlbCBsaWJ6c3RkLWRldmVs IgogZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCiBzaG9y dF9kZXNjPSJWb2lkIGNyb3NzIHRvb2xjaGFpbiBmb3IgJHtwa2duYW1lL2Nyb3NzLX0iCiBtYWlu dGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgotaG9tZXBhZ2U9Imh0dHBz Oi8vd3d3LnZvaWRsaW51eC5vcmcvIgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR1BMLTMu MC1vci1sYXRlciwgTUlUIgoraG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcvIgog ZGlzdGZpbGVzPSIKICAke0dOVV9TSVRFfS9iaW51dGlscy9iaW51dGlscy0ke19iaW51dGlsc192 ZXJzaW9ufS50YXIueHoKLSBodHRwczovL2Rldi5hbHBpbmVsaW51eC5vcmcvfm5lbm9sb2QvZ2Nj LSR7X2djY192ZXJzaW9ufS50YXIueHoKKyAke0dOVV9TSVRFfS9nY2MvZ2NjLSR7X2djY192ZXJz aW9ufS9nY2MtJHtfZ2NjX3ZlcnNpb259LnRhci54egogIGh0dHBzOi8vbXVzbC5saWJjLm9yZy9y ZWxlYXNlcy9tdXNsLSR7X211c2xfdmVyc2lvbn0udGFyLmd6CiAgJHtLRVJORUxfU0lURX0va2Vy bmVsL3Y1LngvbGludXgtJHtfbGludXhfdmVyc2lvbn0udGFyLnh6CiAgaHR0cHM6Ly9naXRodWIu Y29tL2thbmlpbmkvbGlidWNvbnRleHQvYXJjaGl2ZS9saWJ1Y29udGV4dC0ke19saWJ1Y29udGV4 dF92ZXJzaW9ufS50YXIuZ3oiCi1jaGVja3N1bT0iM2NlZDkxZGI5YmYwMTE4MmI3ZTQyMGVhYjY4 MDM5ZjIwODNhZWQwYTIxNGMwNDI0ZTI1N2VhZTNkZGVlODYwNwotIDc3MmNmZDVkMzBlYjljYzVh OTk2ZmVjOWJhOGNkY2I0NWQzN2RmMWM5YjU3NzA2MTAxMDNiODE0YjczMmM1OTAKK2NoZWNrc3Vt PSI2NDVjMjVmNTYzYjhhZGMwYTgxZGJkNmE0MWNmZmJmNGQzNzA4M2EzODJlMDJkNWQzZGY0ZjY1 YzA5NTE2ZDAwCisgZTU0OWNmOWNmMzU5NGEwMGUyN2I2NTg5ZDQzMjJkNzBlMDcyMGNkZDIxM2Yz OWJlYjQxODFlMDY5MjYyMzBmZgogIDEzNzBjOWE4MTJiMmNmMmE3ZDkyODAyNTEwY2NhMDA1OGNj MzdlNjZhN2JlZGQ3MDA1MWYwYTM0MDE1MDIyYTMKICA5MDRlMzk2YzI2ZTk5OTJhMTZjZDFjYzk4 OTQ2MDE3MTUzNmJlZDc3MzliZjM2MDQ5ZjZlYjAyMGVlNWQ1NmVjCiAgMjM3MTRlOTlhODdmNmRl YTgyZThhMDczYzUyNjMyNTE2MWRkNjU0NjI0NTk4MjBiMTZhNjE2MmJlOTE5NTViYiIKCkZyb20g YTJhNDJiYTIzMzU0NjY5MzVjN2RhMjUyNzNhZjU2ZTIyZDdkYmMyZiBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogb3JlbzYzOSA8b3JlbzYzOTFAZ21haWwuY29tPgpEYXRlOiBTdW4sIDYg Tm92IDIwMjIgMTE6MzM6MjggLTA4MDAKU3ViamVjdDogW1BBVENIIDE4LzM3XSBjcm9zcy1hcm0t bGludXgtbXVzbGVhYmloZjogdXBkYXRlIHRvIGdjYyAxMi4yLjAuCgotLS0KIHNyY3BrZ3MvY3Jv c3MtYXJtLWxpbnV4LW11c2xlYWJpaGYvdGVtcGxhdGUgfCAxOSArKysrKysrKysrLS0tLS0tLS0t CiAxIGZpbGUgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9zcmNwa2dzL2Nyb3NzLWFybS1saW51eC1tdXNsZWFiaWhmL3RlbXBsYXRlIGIvc3Jj cGtncy9jcm9zcy1hcm0tbGludXgtbXVzbGVhYmloZi90ZW1wbGF0ZQppbmRleCBiYjYyYmQ1ZWJj NTUuLjgwOTM3MDBmOTA5YyAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy1hcm0tbGludXgtbXVz bGVhYmloZi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Nyb3NzLWFybS1saW51eC1tdXNsZWFiaWhm L3RlbXBsYXRlCkBAIC0xLDI5ICsxLDMwIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdjcm9zcy1h cm0tbGludXgtbXVzbGVhYmloZicKLV9iaW51dGlsc192ZXJzaW9uPTIuMzUuMQotX2djY192ZXJz aW9uPTEwLjIuMV9wcmUxCitfYmludXRpbHNfdmVyc2lvbj0yLjM5CitfZ2NjX3ZlcnNpb249MTIu Mi4wCiBfbXVzbF92ZXJzaW9uPTEuMS4yNAogX2xpbnV4X3ZlcnNpb249NS4xMC40CiBfbGlidWNv bnRleHRfdmVyc2lvbj0xLjAKIHBrZ25hbWU9Y3Jvc3MtYXJtLWxpbnV4LW11c2xlYWJpaGYKLXZl cnNpb249MC4zNAotcmV2aXNpb249NAordmVyc2lvbj0wLjM1CityZXZpc2lvbj0xCiBidWlsZF9z dHlsZT12b2lkLWNyb3NzCiBjb25maWd1cmVfYXJncz0iLS13aXRoLWFyY2g9YXJtdjYgLS13aXRo LWZwdT12ZnAgLS13aXRoLWZsb2F0PWhhcmQiCiBob3N0bWFrZWRlcGVuZHM9InRleGluZm8gdGFy IGdjYy1vYmpjIGdjYy1nbyBmbGV4IHBlcmwgcHl0aG9uMyIKLW1ha2VkZXBlbmRzPSJpc2wxNS1k ZXZlbCBsaWJtcGMtZGV2ZWwgemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbCIKK21ha2Vk ZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwKKyB6 bGliLWRldmVsIGxpYnpzdGQtZGV2ZWwiCiBkZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJz aW9ufV8ke3JldmlzaW9ufSIKIHNob3J0X2Rlc2M9IlZvaWQgY3Jvc3MgdG9vbGNoYWluIGZvciAk e3BrZ25hbWUvY3Jvc3MtfSIKIG1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4 Lm9yZz4iCi1ob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBsaWNlbnNlPSJH UEwtMi4wLW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVyLCBNSVQiCitob21lcGFnZT0iaHR0cHM6 Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBkaXN0ZmlsZXM9IgogICR7R05VX1NJVEV9L2JpbnV0aWxz L2JpbnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259LnRhci54egotIGh0dHBzOi8vZGV2LmFscGlu ZWxpbnV4Lm9yZy9+bmVub2xvZC9nY2MtJHtfZ2NjX3ZlcnNpb259LnRhci54egorICR7R05VX1NJ VEV9L2djYy9nY2MtJHtfZ2NjX3ZlcnNpb259L2djYy0ke19nY2NfdmVyc2lvbn0udGFyLnh6CiAg aHR0cHM6Ly9tdXNsLmxpYmMub3JnL3JlbGVhc2VzL211c2wtJHtfbXVzbF92ZXJzaW9ufS50YXIu Z3oKICAke0tFUk5FTF9TSVRFfS9rZXJuZWwvdjUueC9saW51eC0ke19saW51eF92ZXJzaW9ufS50 YXIueHoKICBodHRwczovL2dpdGh1Yi5jb20va2FuaWluaS9saWJ1Y29udGV4dC9hcmNoaXZlL2xp YnVjb250ZXh0LSR7X2xpYnVjb250ZXh0X3ZlcnNpb259LnRhci5neiIKLWNoZWNrc3VtPSIzY2Vk OTFkYjliZjAxMTgyYjdlNDIwZWFiNjgwMzlmMjA4M2FlZDBhMjE0YzA0MjRlMjU3ZWFlM2RkZWU4 NjA3Ci0gNzcyY2ZkNWQzMGViOWNjNWE5OTZmZWM5YmE4Y2RjYjQ1ZDM3ZGYxYzliNTc3MDYxMDEw M2I4MTRiNzMyYzU5MAorY2hlY2tzdW09IjY0NWMyNWY1NjNiOGFkYzBhODFkYmQ2YTQxY2ZmYmY0 ZDM3MDgzYTM4MmUwMmQ1ZDNkZjRmNjVjMDk1MTZkMDAKKyBlNTQ5Y2Y5Y2YzNTk0YTAwZTI3YjY1 ODlkNDMyMmQ3MGUwNzIwY2RkMjEzZjM5YmViNDE4MWUwNjkyNjIzMGZmCiAgMTM3MGM5YTgxMmIy Y2YyYTdkOTI4MDI1MTBjY2EwMDU4Y2MzN2U2NmE3YmVkZDcwMDUxZjBhMzQwMTUwMjJhMwogIDkw NGUzOTZjMjZlOTk5MmExNmNkMWNjOTg5NDYwMTcxNTM2YmVkNzczOWJmMzYwNDlmNmViMDIwZWU1 ZDU2ZWMKICAyMzcxNGU5OWE4N2Y2ZGVhODJlOGEwNzNjNTI2MzI1MTYxZGQ2NTQ2MjQ1OTgyMGIx NmE2MTYyYmU5MTk1NWJiIgoKRnJvbSBmZWZlMzNkOWUxMmY4NGEwMmVkNTNmZGFhYWIzZThhODAz YWFmMzkxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDxvcmVvNjM5MUBn bWFpbC5jb20+CkRhdGU6IFN1biwgNiBOb3YgMjAyMiAxMTozMzoyOCAtMDgwMApTdWJqZWN0OiBb UEFUQ0ggMTkvMzddIGNyb3NzLWFybXY3bC1saW51eC1nbnVlYWJpaGY6IHVwZGF0ZSB0byBnY2Mg MTIuMi4wLgoKLS0tCiBzcmNwa2dzL2Nyb3NzLWFybXY3bC1saW51eC1nbnVlYWJpaGYvdGVtcGxh dGUgfCAxOSArKysrKysrKysrLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTAgaW5zZXJ0aW9u cygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nyb3NzLWFybXY3bC1s aW51eC1nbnVlYWJpaGYvdGVtcGxhdGUgYi9zcmNwa2dzL2Nyb3NzLWFybXY3bC1saW51eC1nbnVl YWJpaGYvdGVtcGxhdGUKaW5kZXggMzBjODliNjI5NGVmLi45MjY2NTMyNjQyOGIgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3MvY3Jvc3MtYXJtdjdsLWxpbnV4LWdudWVhYmloZi90ZW1wbGF0ZQorKysgYi9z cmNwa2dzL2Nyb3NzLWFybXY3bC1saW51eC1nbnVlYWJpaGYvdGVtcGxhdGUKQEAgLTEsMTUgKzEs MTYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLWFybXY3bC1saW51eC1nbnVlYWJpaGYn Ci1fYmludXRpbHNfdmVyc2lvbj0yLjM1LjEKLV9nY2NfdmVyc2lvbj0xMC4yLjFfcHJlMQotX2ds aWJjX3ZlcnNpb249Mi4zMgorX2JpbnV0aWxzX3ZlcnNpb249Mi4zOQorX2djY192ZXJzaW9uPTEy LjIuMAorX2dsaWJjX3ZlcnNpb249Mi4zNgogX2xpbnV4X3ZlcnNpb249NS4xMC40CiBwa2duYW1l PWNyb3NzLWFybXY3bC1saW51eC1nbnVlYWJpaGYKLXZlcnNpb249MC4zNAordmVyc2lvbj0wLjM1 CiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT12b2lkLWNyb3NzCiBjb25maWd1cmVfYXJncz0iLS13 aXRoLWFyY2g9YXJtdjctYSAtLXdpdGgtZnB1PXZmcHYzIC0td2l0aC1mbG9hdD1oYXJkIgogaG9z dG1ha2VkZXBlbmRzPSJ0ZXhpbmZvIHRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5dGhv bjMiCi1tYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwgZ21w LWRldmVsIG1wZnItZGV2ZWwiCittYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVs IGdtcC1kZXZlbCBtcGZyLWRldmVsCisgemxpYi1kZXZlbCBsaWJ6c3RkLWRldmVsIgogZGVwZW5k cz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCiBzaG9ydF9kZXNjPSJW b2lkIGNyb3NzIHRvb2xjaGFpbiBmb3IgJHtwa2duYW1lL2Nyb3NzLX0iCiBtYWludGFpbmVyPSJP cnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgpAQCAtMTcsMTIgKzE4LDEyIEBAIGxpY2Vu c2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdQTC0zLjAtb3ItbGF0ZXIsIExHUEwtMi4xLW9yLWxhdGVy IgogaG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcvIgogZGlzdGZpbGVzPSIKICAk e0dOVV9TSVRFfS9iaW51dGlscy9iaW51dGlscy0ke19iaW51dGlsc192ZXJzaW9ufS50YXIueHoK LSBodHRwczovL2Rldi5hbHBpbmVsaW51eC5vcmcvfm5lbm9sb2QvZ2NjLSR7X2djY192ZXJzaW9u fS50YXIueHoKKyAke0dOVV9TSVRFfS9nY2MvZ2NjLSR7X2djY192ZXJzaW9ufS9nY2MtJHtfZ2Nj X3ZlcnNpb259LnRhci54egogICR7R05VX1NJVEV9L2dsaWJjL2dsaWJjLSR7X2dsaWJjX3ZlcnNp b259LnRhci54egogICR7S0VSTkVMX1NJVEV9L2tlcm5lbC92NS54L2xpbnV4LSR7X2xpbnV4X3Zl cnNpb259LnRhci54eiIKLWNoZWNrc3VtPSIzY2VkOTFkYjliZjAxMTgyYjdlNDIwZWFiNjgwMzlm MjA4M2FlZDBhMjE0YzA0MjRlMjU3ZWFlM2RkZWU4NjA3Ci0gNzcyY2ZkNWQzMGViOWNjNWE5OTZm ZWM5YmE4Y2RjYjQ1ZDM3ZGYxYzliNTc3MDYxMDEwM2I4MTRiNzMyYzU5MAotIDE2MjdlYTU0ZjVh MWE4NDY3MDMyNTYzMzkzZTA5MDEwNzc2MjZkYzY2ZjM3ZjEwZWU2MzYzYmI3MjIyMjI4MzYKK2No ZWNrc3VtPSI2NDVjMjVmNTYzYjhhZGMwYTgxZGJkNmE0MWNmZmJmNGQzNzA4M2EzODJlMDJkNWQz ZGY0ZjY1YzA5NTE2ZDAwCisgZTU0OWNmOWNmMzU5NGEwMGUyN2I2NTg5ZDQzMjJkNzBlMDcyMGNk ZDIxM2YzOWJlYjQxODFlMDY5MjYyMzBmZgorIDFjOTU5ZmVhMjQwOTA2MjI2MDYyY2I0YjFlN2Vi Y2U3MWE5ZjBlM2MwODM2YzA5ZTdlMzQyM2Q0MzRmY2ZlNzUKICA5MDRlMzk2YzI2ZTk5OTJhMTZj ZDFjYzk4OTQ2MDE3MTUzNmJlZDc3MzliZjM2MDQ5ZjZlYjAyMGVlNWQ1NmVjIgogbm9jcm9zcz15 ZXMKIAoKRnJvbSBmZjQ1ZGRlZTZkYTQ1ZTkyYmE0MjY4NjAwNDllNWQ3ZGYyNDIyZWZmIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDxvcmVvNjM5MUBnbWFpbC5jb20+CkRh dGU6IFN1biwgNiBOb3YgMjAyMiAxMTozMzoyOCAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMjAvMzdd IGNyb3NzLWFybXY3bC1saW51eC1tdXNsZWFiaWhmOiB1cGRhdGUgdG8gZ2NjIDEyLjIuMC4KCi0t LQogLi4uL2Nyb3NzLWFybXY3bC1saW51eC1tdXNsZWFiaWhmL3RlbXBsYXRlICAgIHwgMTkgKysr KysrKysrKy0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDkgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jcm9zcy1hcm12N2wtbGludXgtbXVzbGVh YmloZi90ZW1wbGF0ZSBiL3NyY3BrZ3MvY3Jvc3MtYXJtdjdsLWxpbnV4LW11c2xlYWJpaGYvdGVt cGxhdGUKaW5kZXggMGE1ODhjZGYxYTU4Li5lNWFmMmM5Y2NiZjIgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3MvY3Jvc3MtYXJtdjdsLWxpbnV4LW11c2xlYWJpaGYvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9j cm9zcy1hcm12N2wtbGludXgtbXVzbGVhYmloZi90ZW1wbGF0ZQpAQCAtMSwyOSArMSwzMCBAQAog IyBUZW1wbGF0ZSBmaWxlIGZvciAnY3Jvc3MtYXJtdjdsLWxpbnV4LW11c2xlYWJpaGYnCi1fYmlu dXRpbHNfdmVyc2lvbj0yLjM1LjEKLV9nY2NfdmVyc2lvbj0xMC4yLjFfcHJlMQorX2JpbnV0aWxz X3ZlcnNpb249Mi4zOQorX2djY192ZXJzaW9uPTEyLjIuMAogX211c2xfdmVyc2lvbj0xLjEuMjQK IF9saW51eF92ZXJzaW9uPTUuMTAuNAogX2xpYnVjb250ZXh0X3ZlcnNpb249MS4wCiBwa2duYW1l PWNyb3NzLWFybXY3bC1saW51eC1tdXNsZWFiaWhmCi12ZXJzaW9uPTAuMzQKLXJldmlzaW9uPTQK K3ZlcnNpb249MC4zNQorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9dm9pZC1jcm9zcwogY29uZmln dXJlX2FyZ3M9Ii0td2l0aC1hcmNoPWFybXY3LWEgLS13aXRoLWZwdT12ZnB2MyAtLXdpdGgtZmxv YXQ9aGFyZCIKIGhvc3RtYWtlZGVwZW5kcz0idGV4aW5mbyB0YXIgZ2NjLW9iamMgZ2NjLWdvIGZs ZXggcGVybCBweXRob24zIgotbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6 bGliLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIgorbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVs IGxpYm1wYy1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbAorIHpsaWItZGV2ZWwgbGlienN0ZC1k ZXZlbCIKIGRlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259Igog c2hvcnRfZGVzYz0iVm9pZCBjcm9zcyB0b29sY2hhaW4gZm9yICR7cGtnbmFtZS9jcm9zcy19Igog bWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKLWhvbWVwYWdlPSJo dHRwczovL3d3dy52b2lkbGludXgub3JnLyIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdQ TC0zLjAtb3ItbGF0ZXIsIE1JVCIKK2hvbWVwYWdlPSJodHRwczovL3d3dy52b2lkbGludXgub3Jn LyIKIGRpc3RmaWxlcz0iCiAgJHtHTlVfU0lURX0vYmludXRpbHMvYmludXRpbHMtJHtfYmludXRp bHNfdmVyc2lvbn0udGFyLnh6Ci0gaHR0cHM6Ly9kZXYuYWxwaW5lbGludXgub3JnL35uZW5vbG9k L2djYy0ke19nY2NfdmVyc2lvbn0udGFyLnh6CisgJHtHTlVfU0lURX0vZ2NjL2djYy0ke19nY2Nf dmVyc2lvbn0vZ2NjLSR7X2djY192ZXJzaW9ufS50YXIueHoKICBodHRwczovL211c2wubGliYy5v cmcvcmVsZWFzZXMvbXVzbC0ke19tdXNsX3ZlcnNpb259LnRhci5negogICR7S0VSTkVMX1NJVEV9 L2tlcm5lbC92NS54L2xpbnV4LSR7X2xpbnV4X3ZlcnNpb259LnRhci54egogIGh0dHBzOi8vZ2l0 aHViLmNvbS9rYW5paW5pL2xpYnVjb250ZXh0L2FyY2hpdmUvbGlidWNvbnRleHQtJHtfbGlidWNv bnRleHRfdmVyc2lvbn0udGFyLmd6IgotY2hlY2tzdW09IjNjZWQ5MWRiOWJmMDExODJiN2U0MjBl YWI2ODAzOWYyMDgzYWVkMGEyMTRjMDQyNGUyNTdlYWUzZGRlZTg2MDcKLSA3NzJjZmQ1ZDMwZWI5 Y2M1YTk5NmZlYzliYThjZGNiNDVkMzdkZjFjOWI1NzcwNjEwMTAzYjgxNGI3MzJjNTkwCitjaGVj a3N1bT0iNjQ1YzI1ZjU2M2I4YWRjMGE4MWRiZDZhNDFjZmZiZjRkMzcwODNhMzgyZTAyZDVkM2Rm NGY2NWMwOTUxNmQwMAorIGU1NDljZjljZjM1OTRhMDBlMjdiNjU4OWQ0MzIyZDcwZTA3MjBjZGQy MTNmMzliZWI0MTgxZTA2OTI2MjMwZmYKICAxMzcwYzlhODEyYjJjZjJhN2Q5MjgwMjUxMGNjYTAw NThjYzM3ZTY2YTdiZWRkNzAwNTFmMGEzNDAxNTAyMmEzCiAgOTA0ZTM5NmMyNmU5OTkyYTE2Y2Qx Y2M5ODk0NjAxNzE1MzZiZWQ3NzM5YmYzNjA0OWY2ZWIwMjBlZTVkNTZlYwogIDIzNzE0ZTk5YTg3 ZjZkZWE4MmU4YTA3M2M1MjYzMjUxNjFkZDY1NDYyNDU5ODIwYjE2YTYxNjJiZTkxOTU1YmIiCgpG cm9tIGFmZjJmMzZmNTcwMWQyNWU4OTkzYjkxYjVhOTg1NDNkNjEyZDRiM2EgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IG9yZW82MzkgPG9yZW82MzkxQGdtYWlsLmNvbT4KRGF0ZTogU3Vu LCA2IE5vdiAyMDIyIDExOjMzOjI5IC0wODAwClN1YmplY3Q6IFtQQVRDSCAyMS8zN10gY3Jvc3Mt aTY4Ni1saW51eC1tdXNsOiB1cGRhdGUgdG8gZ2NjIDEyLjIuMC4KCi0tLQogc3JjcGtncy9jcm9z cy1pNjg2LWxpbnV4LW11c2wvdGVtcGxhdGUgfCAxOSArKysrKysrKysrLS0tLS0tLS0tCiAxIGZp bGUgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmNwa2dzL2Nyb3NzLWk2ODYtbGludXgtbXVzbC90ZW1wbGF0ZSBiL3NyY3BrZ3MvY3Jvc3Mt aTY4Ni1saW51eC1tdXNsL3RlbXBsYXRlCmluZGV4IDhiZTE2YTIzMGQ4ZC4uZDYyNGJiN2EzMjU0 IDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nyb3NzLWk2ODYtbGludXgtbXVzbC90ZW1wbGF0ZQorKysg Yi9zcmNwa2dzL2Nyb3NzLWk2ODYtbGludXgtbXVzbC90ZW1wbGF0ZQpAQCAtMSwyOCArMSwyOSBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnY3Jvc3MtaTY4Ni1saW51eC1tdXNsJwotX2JpbnV0aWxz X3ZlcnNpb249Mi4zNS4xCi1fZ2NjX3ZlcnNpb249MTAuMi4xX3ByZTEKK19iaW51dGlsc192ZXJz aW9uPTIuMzkKK19nY2NfdmVyc2lvbj0xMi4yLjAKIF9tdXNsX3ZlcnNpb249MS4xLjI0CiBfbGlu dXhfdmVyc2lvbj01LjEwLjQKIF9saWJ1Y29udGV4dF92ZXJzaW9uPTEuMAogcGtnbmFtZT1jcm9z cy1pNjg2LWxpbnV4LW11c2wKLXZlcnNpb249MC4zNAotcmV2aXNpb249NAordmVyc2lvbj0wLjM1 CityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT12b2lkLWNyb3NzCiBob3N0bWFrZWRlcGVuZHM9InRl eGluZm8gdGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4IHBlcmwgcHl0aG9uMyIKLW1ha2VkZXBlbmRz PSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZl bCIKK21ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgZ21wLWRldmVsIG1wZnIt ZGV2ZWwKKyB6bGliLWRldmVsIGxpYnpzdGQtZGV2ZWwiCiBkZXBlbmRzPSIke3BrZ25hbWV9LWxp YmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKIHNob3J0X2Rlc2M9IlZvaWQgY3Jvc3MgdG9vbGNo YWluIGZvciAke3BrZ25hbWUvY3Jvc3MtfSIKIG1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5A dm9pZGxpbnV4Lm9yZz4iCi1ob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBs aWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVyLCBNSVQiCitob21lcGFn ZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBkaXN0ZmlsZXM9IgogICR7R05VX1NJVEV9 L2JpbnV0aWxzL2JpbnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259LnRhci54egotIGh0dHBzOi8v ZGV2LmFscGluZWxpbnV4Lm9yZy9+bmVub2xvZC9nY2MtJHtfZ2NjX3ZlcnNpb259LnRhci54egor ICR7R05VX1NJVEV9L2djYy9nY2MtJHtfZ2NjX3ZlcnNpb259L2djYy0ke19nY2NfdmVyc2lvbn0u dGFyLnh6CiAgaHR0cHM6Ly9tdXNsLmxpYmMub3JnL3JlbGVhc2VzL211c2wtJHtfbXVzbF92ZXJz aW9ufS50YXIuZ3oKICAke0tFUk5FTF9TSVRFfS9rZXJuZWwvdjUueC9saW51eC0ke19saW51eF92 ZXJzaW9ufS50YXIueHoKICBodHRwczovL2dpdGh1Yi5jb20va2FuaWluaS9saWJ1Y29udGV4dC9h cmNoaXZlL2xpYnVjb250ZXh0LSR7X2xpYnVjb250ZXh0X3ZlcnNpb259LnRhci5neiIKLWNoZWNr c3VtPSIzY2VkOTFkYjliZjAxMTgyYjdlNDIwZWFiNjgwMzlmMjA4M2FlZDBhMjE0YzA0MjRlMjU3 ZWFlM2RkZWU4NjA3Ci0gNzcyY2ZkNWQzMGViOWNjNWE5OTZmZWM5YmE4Y2RjYjQ1ZDM3ZGYxYzli NTc3MDYxMDEwM2I4MTRiNzMyYzU5MAorY2hlY2tzdW09IjY0NWMyNWY1NjNiOGFkYzBhODFkYmQ2 YTQxY2ZmYmY0ZDM3MDgzYTM4MmUwMmQ1ZDNkZjRmNjVjMDk1MTZkMDAKKyBlNTQ5Y2Y5Y2YzNTk0 YTAwZTI3YjY1ODlkNDMyMmQ3MGUwNzIwY2RkMjEzZjM5YmViNDE4MWUwNjkyNjIzMGZmCiAgMTM3 MGM5YTgxMmIyY2YyYTdkOTI4MDI1MTBjY2EwMDU4Y2MzN2U2NmE3YmVkZDcwMDUxZjBhMzQwMTUw MjJhMwogIDkwNGUzOTZjMjZlOTk5MmExNmNkMWNjOTg5NDYwMTcxNTM2YmVkNzczOWJmMzYwNDlm NmViMDIwZWU1ZDU2ZWMKICAyMzcxNGU5OWE4N2Y2ZGVhODJlOGEwNzNjNTI2MzI1MTYxZGQ2NTQ2 MjQ1OTgyMGIxNmE2MTYyYmU5MTk1NWJiIgoKRnJvbSAwZDhhZTk2N2IyNmM4Y2JiMWVmMzNiY2Y3 ZjZiNmZjN2Y0MmI3Mjk1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDxv cmVvNjM5MUBnbWFpbC5jb20+CkRhdGU6IFN1biwgNiBOb3YgMjAyMiAxMTozMzoyOSAtMDgwMApT dWJqZWN0OiBbUEFUQ0ggMjIvMzddIGNyb3NzLWk2ODYtcGMtbGludXgtZ251OiB1cGRhdGUgdG8g Z2NjIDEyLjIuMC4KCi0tLQogc3JjcGtncy9jcm9zcy1pNjg2LXBjLWxpbnV4LWdudS90ZW1wbGF0 ZSB8IDE5ICsrKysrKysrKystLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25z KCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY3Jvc3MtaTY4Ni1wYy1s aW51eC1nbnUvdGVtcGxhdGUgYi9zcmNwa2dzL2Nyb3NzLWk2ODYtcGMtbGludXgtZ251L3RlbXBs YXRlCmluZGV4IDI2M2E0M2Y3YTdiOC4uNmE5ZTU0ZGI4MDdhIDEwMDY0NAotLS0gYS9zcmNwa2dz L2Nyb3NzLWk2ODYtcGMtbGludXgtZ251L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3MtaTY4 Ni1wYy1saW51eC1nbnUvdGVtcGxhdGUKQEAgLTEsMTQgKzEsMTUgQEAKICMgVGVtcGxhdGUgZmls ZSBmb3IgJ2Nyb3NzLWk2ODYtcGMtbGludXgtZ251JwotX2JpbnV0aWxzX3ZlcnNpb249Mi4zNS4x Ci1fZ2NjX3ZlcnNpb249MTAuMi4xX3ByZTEKLV9nbGliY192ZXJzaW9uPTIuMzIKK19iaW51dGls c192ZXJzaW9uPTIuMzkKK19nY2NfdmVyc2lvbj0xMi4yLjAKK19nbGliY192ZXJzaW9uPTIuMzYK IF9saW51eF92ZXJzaW9uPTUuMTAuNAogcGtnbmFtZT1jcm9zcy1pNjg2LXBjLWxpbnV4LWdudQot dmVyc2lvbj0wLjM0Cit2ZXJzaW9uPTAuMzUKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPXZvaWQt Y3Jvc3MKIGhvc3RtYWtlZGVwZW5kcz0idGV4aW5mbyB0YXIgZ2NjLW9iamMgZ2NjLWdvIGZsZXgg cGVybCBweXRob24zIgotbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6bGli LWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIgorbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxp Ym1wYy1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbAorIHpsaWItZGV2ZWwgbGlienN0ZC1kZXZl bCIKIGRlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259Igogc2hv cnRfZGVzYz0iVm9pZCBjcm9zcyB0b29sY2hhaW4gZm9yICR7cGtnbmFtZS9jcm9zcy19IgogbWFp bnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKQEAgLTE2LDEyICsxNywx MiBAQCBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVyLCBMR1BMLTIu MS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3d3dy52b2lkbGludXgub3JnLyIKIGRpc3Rm aWxlcz0iCiAgJHtHTlVfU0lURX0vYmludXRpbHMvYmludXRpbHMtJHtfYmludXRpbHNfdmVyc2lv bn0udGFyLnh6Ci0gaHR0cHM6Ly9kZXYuYWxwaW5lbGludXgub3JnL35uZW5vbG9kL2djYy0ke19n Y2NfdmVyc2lvbn0udGFyLnh6CisgJHtHTlVfU0lURX0vZ2NjL2djYy0ke19nY2NfdmVyc2lvbn0v Z2NjLSR7X2djY192ZXJzaW9ufS50YXIueHoKICAke0dOVV9TSVRFfS9nbGliYy9nbGliYy0ke19n bGliY192ZXJzaW9ufS50YXIueHoKICAke0tFUk5FTF9TSVRFfS9rZXJuZWwvdjUueC9saW51eC0k e19saW51eF92ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0iM2NlZDkxZGI5YmYwMTE4MmI3ZTQy MGVhYjY4MDM5ZjIwODNhZWQwYTIxNGMwNDI0ZTI1N2VhZTNkZGVlODYwNwotIDc3MmNmZDVkMzBl YjljYzVhOTk2ZmVjOWJhOGNkY2I0NWQzN2RmMWM5YjU3NzA2MTAxMDNiODE0YjczMmM1OTAKLSAx NjI3ZWE1NGY1YTFhODQ2NzAzMjU2MzM5M2UwOTAxMDc3NjI2ZGM2NmYzN2YxMGVlNjM2M2JiNzIy MjIyODM2CitjaGVja3N1bT0iNjQ1YzI1ZjU2M2I4YWRjMGE4MWRiZDZhNDFjZmZiZjRkMzcwODNh MzgyZTAyZDVkM2RmNGY2NWMwOTUxNmQwMAorIGU1NDljZjljZjM1OTRhMDBlMjdiNjU4OWQ0MzIy ZDcwZTA3MjBjZGQyMTNmMzliZWI0MTgxZTA2OTI2MjMwZmYKKyAxYzk1OWZlYTI0MDkwNjIyNjA2 MmNiNGIxZTdlYmNlNzFhOWYwZTNjMDgzNmMwOWU3ZTM0MjNkNDM0ZmNmZTc1CiAgOTA0ZTM5NmMy NmU5OTkyYTE2Y2QxY2M5ODk0NjAxNzE1MzZiZWQ3NzM5YmYzNjA0OWY2ZWIwMjBlZTVkNTZlYyIK IG5vY3Jvc3M9eWVzCiAKCkZyb20gNjFkODgwZTFmZWU4ODlkYmUyZmUzZWIyZTk0NzY3ODcxYWIz YTFjZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogb3JlbzYzOSA8b3JlbzYzOTFAZ21h aWwuY29tPgpEYXRlOiBTdW4sIDYgTm92IDIwMjIgMTE6MzM6MjkgLTA4MDAKU3ViamVjdDogW1BB VENIIDIzLzM3XSBjcm9zcy1taXBzLWxpbnV4LW11c2w6IHVwZGF0ZSB0byBnY2MgMTIuMi4wLgoK LS0tCiBzcmNwa2dzL2Nyb3NzLW1pcHMtbGludXgtbXVzbC90ZW1wbGF0ZSB8IDIxICsrKysrKysr KysrLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDEwIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY3Jvc3MtbWlwcy1saW51eC1tdXNsL3RlbXBs YXRlIGIvc3JjcGtncy9jcm9zcy1taXBzLWxpbnV4LW11c2wvdGVtcGxhdGUKaW5kZXggOWI1ZDU4 MTliMWEwLi42N2E1YzQxMzM5NmMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jvc3MtbWlwcy1saW51 eC1tdXNsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3MtbWlwcy1saW51eC1tdXNsL3RlbXBs YXRlCkBAIC0xLDI4ICsxLDI5IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdjcm9zcy1taXBzLWxp bnV4LW11c2wnCi1fYmludXRpbHNfdmVyc2lvbj0yLjM1LjEKLV9nY2NfdmVyc2lvbj0xMC4yLjFf cHJlMQorX2JpbnV0aWxzX3ZlcnNpb249Mi4zOQorX2djY192ZXJzaW9uPTEyLjIuMAogX211c2xf dmVyc2lvbj0xLjEuMjQKIF9saW51eF92ZXJzaW9uPTUuMTAuNAogcGtnbmFtZT1jcm9zcy1taXBz LWxpbnV4LW11c2wKLXZlcnNpb249MC4zNAotcmV2aXNpb249MwordmVyc2lvbj0wLjM1CityZXZp c2lvbj0xCiBidWlsZF9zdHlsZT12b2lkLWNyb3NzCiBjb25maWd1cmVfYXJncz0iLS13aXRoLWFy Y2g9bWlwczMycjIgLS13aXRoLWZsb2F0PXNvZnQKICAtLXdpdGgtbGlua2VyLWhhc2gtc3R5bGU9 c3lzdiIKIGhvc3RtYWtlZGVwZW5kcz0idGV4aW5mbyB0YXIgZ2NjLW9iamMgZmxleCBwZXJsIHB5 dGhvbjMiCi1tYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwg Z21wLWRldmVsIG1wZnItZGV2ZWwiCittYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRl dmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsCisgemxpYi1kZXZlbCBsaWJ6c3RkLWRldmVsIgogZGVw ZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCiBzaG9ydF9kZXNj PSJWb2lkIGNyb3NzIHRvb2xjaGFpbiBmb3IgJHtwa2duYW1lL2Nyb3NzLX0iCiBtYWludGFpbmVy PSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgotaG9tZXBhZ2U9Imh0dHBzOi8vd3d3 LnZvaWRsaW51eC5vcmcvIgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1s YXRlciwgTUlUIgoraG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcvIgogZGlzdGZp bGVzPSIKICAke0dOVV9TSVRFfS9iaW51dGlscy9iaW51dGlscy0ke19iaW51dGlsc192ZXJzaW9u fS50YXIueHoKLSBodHRwczovL2Rldi5hbHBpbmVsaW51eC5vcmcvfm5lbm9sb2QvZ2NjLSR7X2dj Y192ZXJzaW9ufS50YXIueHoKLSBodHRwczovL3d3dy5tdXNsLWxpYmMub3JnL3JlbGVhc2VzL211 c2wtJHtfbXVzbF92ZXJzaW9ufS50YXIuZ3oKKyAke0dOVV9TSVRFfS9nY2MvZ2NjLSR7X2djY192 ZXJzaW9ufS9nY2MtJHtfZ2NjX3ZlcnNpb259LnRhci54egorIGh0dHBzOi8vbXVzbC5saWJjLm9y Zy9yZWxlYXNlcy9tdXNsLSR7X211c2xfdmVyc2lvbn0udGFyLmd6CiAgJHtLRVJORUxfU0lURX0v a2VybmVsL3Y1LngvbGludXgtJHtfbGludXhfdmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09IjNj ZWQ5MWRiOWJmMDExODJiN2U0MjBlYWI2ODAzOWYyMDgzYWVkMGEyMTRjMDQyNGUyNTdlYWUzZGRl ZTg2MDcKLSA3NzJjZmQ1ZDMwZWI5Y2M1YTk5NmZlYzliYThjZGNiNDVkMzdkZjFjOWI1NzcwNjEw MTAzYjgxNGI3MzJjNTkwCitjaGVja3N1bT0iNjQ1YzI1ZjU2M2I4YWRjMGE4MWRiZDZhNDFjZmZi ZjRkMzcwODNhMzgyZTAyZDVkM2RmNGY2NWMwOTUxNmQwMAorIGU1NDljZjljZjM1OTRhMDBlMjdi NjU4OWQ0MzIyZDcwZTA3MjBjZGQyMTNmMzliZWI0MTgxZTA2OTI2MjMwZmYKICAxMzcwYzlhODEy YjJjZjJhN2Q5MjgwMjUxMGNjYTAwNThjYzM3ZTY2YTdiZWRkNzAwNTFmMGEzNDAxNTAyMmEzCiAg OTA0ZTM5NmMyNmU5OTkyYTE2Y2QxY2M5ODk0NjAxNzE1MzZiZWQ3NzM5YmYzNjA0OWY2ZWIwMjBl ZTVkNTZlYyIKIG5vY3Jvc3M9eWVzCgpGcm9tIDgxOWUzMzM0NjgwZmIyNjUwNjBkNTBhZTlhZTJi YmE3YmExM2M3NzggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IG9yZW82MzkgPG9yZW82 MzkxQGdtYWlsLmNvbT4KRGF0ZTogU3VuLCA2IE5vdiAyMDIyIDExOjMzOjI5IC0wODAwClN1Ympl Y3Q6IFtQQVRDSCAyNC8zN10gY3Jvc3MtbWlwcy1saW51eC1tdXNsaGY6IHVwZGF0ZSB0byBnY2Mg MTIuMi4wLgoKLS0tCiBzcmNwa2dzL2Nyb3NzLW1pcHMtbGludXgtbXVzbGhmL3RlbXBsYXRlIHwg MjEgKysrKysrKysrKystLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygr KSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jcm9zcy1taXBzLWxpbnV4 LW11c2xoZi90ZW1wbGF0ZSBiL3NyY3BrZ3MvY3Jvc3MtbWlwcy1saW51eC1tdXNsaGYvdGVtcGxh dGUKaW5kZXggZDc1OTBhZjllYzAzLi5iZGY4NjAwY2U5NWIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv Y3Jvc3MtbWlwcy1saW51eC1tdXNsaGYvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9jcm9zcy1taXBz LWxpbnV4LW11c2xoZi90ZW1wbGF0ZQpAQCAtMSwyOCArMSwyOSBAQAogIyBUZW1wbGF0ZSBmaWxl IGZvciAnY3Jvc3MtbWlwcy1saW51eC1tdXNsaGYnCi1fYmludXRpbHNfdmVyc2lvbj0yLjM1LjEK LV9nY2NfdmVyc2lvbj0xMC4yLjFfcHJlMQorX2JpbnV0aWxzX3ZlcnNpb249Mi4zOQorX2djY192 ZXJzaW9uPTEyLjIuMAogX211c2xfdmVyc2lvbj0xLjEuMjQKIF9saW51eF92ZXJzaW9uPTUuMTAu NAogcGtnbmFtZT1jcm9zcy1taXBzLWxpbnV4LW11c2xoZgotdmVyc2lvbj0wLjM0Ci1yZXZpc2lv bj0zCit2ZXJzaW9uPTAuMzUKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPXZvaWQtY3Jvc3MKIGNv bmZpZ3VyZV9hcmdzPSItLXdpdGgtYXJjaD1taXBzMzJyMiAtLXdpdGgtZmxvYXQ9aGFyZAogIC0t d2l0aC1saW5rZXItaGFzaC1zdHlsZT1zeXN2IgogaG9zdG1ha2VkZXBlbmRzPSJ0ZXhpbmZvIHRh ciBnY2Mtb2JqYyBmbGV4IHBlcmwgcHl0aG9uMyIKLW1ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBs aWJtcGMtZGV2ZWwgemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbCIKK21ha2VkZXBlbmRz PSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwKKyB6bGliLWRl dmVsIGxpYnpzdGQtZGV2ZWwiCiBkZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8k e3JldmlzaW9ufSIKIHNob3J0X2Rlc2M9IlZvaWQgY3Jvc3MgdG9vbGNoYWluIGZvciAke3BrZ25h bWUvY3Jvc3MtfSIKIG1haW50YWluZXI9ImhpcHBlcnNvbjAgPGhpcHBlcnNvbjBAZ21haWwuY29t PiIKLWhvbWVwYWdlPSJodHRwczovL3d3dy52b2lkbGludXgub3JnLyIKIGxpY2Vuc2U9IkdQTC0y LjAtb3ItbGF0ZXIsIEdQTC0zLjAtb3ItbGF0ZXIsIE1JVCIKK2hvbWVwYWdlPSJodHRwczovL3d3 dy52b2lkbGludXgub3JnLyIKIGRpc3RmaWxlcz0iCiAgJHtHTlVfU0lURX0vYmludXRpbHMvYmlu dXRpbHMtJHtfYmludXRpbHNfdmVyc2lvbn0udGFyLnh6Ci0gaHR0cHM6Ly9kZXYuYWxwaW5lbGlu dXgub3JnL35uZW5vbG9kL2djYy0ke19nY2NfdmVyc2lvbn0udGFyLnh6Ci0gaHR0cHM6Ly93d3cu bXVzbC1saWJjLm9yZy9yZWxlYXNlcy9tdXNsLSR7X211c2xfdmVyc2lvbn0udGFyLmd6CisgJHtH TlVfU0lURX0vZ2NjL2djYy0ke19nY2NfdmVyc2lvbn0vZ2NjLSR7X2djY192ZXJzaW9ufS50YXIu eHoKKyBodHRwczovL211c2wubGliYy5vcmcvcmVsZWFzZXMvbXVzbC0ke19tdXNsX3ZlcnNpb259 LnRhci5negogICR7S0VSTkVMX1NJVEV9L2tlcm5lbC92NS54L2xpbnV4LSR7X2xpbnV4X3ZlcnNp b259LnRhci54eiIKLWNoZWNrc3VtPSIzY2VkOTFkYjliZjAxMTgyYjdlNDIwZWFiNjgwMzlmMjA4 M2FlZDBhMjE0YzA0MjRlMjU3ZWFlM2RkZWU4NjA3Ci0gNzcyY2ZkNWQzMGViOWNjNWE5OTZmZWM5 YmE4Y2RjYjQ1ZDM3ZGYxYzliNTc3MDYxMDEwM2I4MTRiNzMyYzU5MAorY2hlY2tzdW09IjY0NWMy NWY1NjNiOGFkYzBhODFkYmQ2YTQxY2ZmYmY0ZDM3MDgzYTM4MmUwMmQ1ZDNkZjRmNjVjMDk1MTZk MDAKKyBlNTQ5Y2Y5Y2YzNTk0YTAwZTI3YjY1ODlkNDMyMmQ3MGUwNzIwY2RkMjEzZjM5YmViNDE4 MWUwNjkyNjIzMGZmCiAgMTM3MGM5YTgxMmIyY2YyYTdkOTI4MDI1MTBjY2EwMDU4Y2MzN2U2NmE3 YmVkZDcwMDUxZjBhMzQwMTUwMjJhMwogIDkwNGUzOTZjMjZlOTk5MmExNmNkMWNjOTg5NDYwMTcx NTM2YmVkNzczOWJmMzYwNDlmNmViMDIwZWU1ZDU2ZWMiCiBub2Nyb3NzPXllcwoKRnJvbSBlZmYz MWUxOWRiZGMwNjIyZDA5ZTNmYWZlNmFiZTA0M2Y5YzI2M2YxIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBvcmVvNjM5IDxvcmVvNjM5MUBnbWFpbC5jb20+CkRhdGU6IFN1biwgNiBOb3Yg MjAyMiAxMTozMzoyOSAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMjUvMzddIGNyb3NzLW1pcHNlbC1s aW51eC1tdXNsOiB1cGRhdGUgdG8gZ2NjIDEyLjIuMC4KCi0tLQogc3JjcGtncy9jcm9zcy1taXBz ZWwtbGludXgtbXVzbC90ZW1wbGF0ZSB8IDIxICsrKysrKysrKysrLS0tLS0tLS0tLQogMSBmaWxl IGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvY3Jvc3MtbWlwc2VsLWxpbnV4LW11c2wvdGVtcGxhdGUgYi9zcmNwa2dzL2Nyb3Nz LW1pcHNlbC1saW51eC1tdXNsL3RlbXBsYXRlCmluZGV4IDFhY2JhNzAxNmRiYy4uZGU0OTM4N2Q1 MTdiIDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nyb3NzLW1pcHNlbC1saW51eC1tdXNsL3RlbXBsYXRl CisrKyBiL3NyY3BrZ3MvY3Jvc3MtbWlwc2VsLWxpbnV4LW11c2wvdGVtcGxhdGUKQEAgLTEsMjgg KzEsMjkgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLW1pcHNlbC1saW51eC1tdXNsJwot X2JpbnV0aWxzX3ZlcnNpb249Mi4zNS4xCi1fZ2NjX3ZlcnNpb249MTAuMi4xX3ByZTEKK19iaW51 dGlsc192ZXJzaW9uPTIuMzkKK19nY2NfdmVyc2lvbj0xMi4yLjAKIF9tdXNsX3ZlcnNpb249MS4x LjI0CiBfbGludXhfdmVyc2lvbj01LjEwLjQKIHBrZ25hbWU9Y3Jvc3MtbWlwc2VsLWxpbnV4LW11 c2wKLXZlcnNpb249MC4zNAotcmV2aXNpb249MwordmVyc2lvbj0wLjM1CityZXZpc2lvbj0xCiBi dWlsZF9zdHlsZT12b2lkLWNyb3NzCiBjb25maWd1cmVfYXJncz0iLS13aXRoLWFyY2g9bWlwczMy cjIgLS13aXRoLWZsb2F0PXNvZnQKICAtLXdpdGgtbGlua2VyLWhhc2gtc3R5bGU9c3lzdiIKIGhv c3RtYWtlZGVwZW5kcz0idGV4aW5mbyB0YXIgZ2NjLW9iamMgZmxleCBwZXJsIHB5dGhvbjMiCi1t YWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwgZ21wLWRldmVs IG1wZnItZGV2ZWwiCittYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIGdtcC1k ZXZlbCBtcGZyLWRldmVsCisgemxpYi1kZXZlbCBsaWJ6c3RkLWRldmVsIgogZGVwZW5kcz0iJHtw a2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCiBzaG9ydF9kZXNjPSJWb2lkIGNy b3NzIHRvb2xjaGFpbiBmb3IgJHtwa2duYW1lL2Nyb3NzLX0iCiBtYWludGFpbmVyPSJPcnBoYW5l ZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgotaG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51 eC5vcmcvIgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1sYXRlciwgTUlU IgoraG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcvIgogZGlzdGZpbGVzPSIKICAk e0dOVV9TSVRFfS9iaW51dGlscy9iaW51dGlscy0ke19iaW51dGlsc192ZXJzaW9ufS50YXIueHoK LSBodHRwczovL2Rldi5hbHBpbmVsaW51eC5vcmcvfm5lbm9sb2QvZ2NjLSR7X2djY192ZXJzaW9u fS50YXIueHoKLSBodHRwczovL3d3dy5tdXNsLWxpYmMub3JnL3JlbGVhc2VzL211c2wtJHtfbXVz bF92ZXJzaW9ufS50YXIuZ3oKKyAke0dOVV9TSVRFfS9nY2MvZ2NjLSR7X2djY192ZXJzaW9ufS9n Y2MtJHtfZ2NjX3ZlcnNpb259LnRhci54egorIGh0dHBzOi8vbXVzbC5saWJjLm9yZy9yZWxlYXNl cy9tdXNsLSR7X211c2xfdmVyc2lvbn0udGFyLmd6CiAgJHtLRVJORUxfU0lURX0va2VybmVsL3Y1 LngvbGludXgtJHtfbGludXhfdmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09IjNjZWQ5MWRiOWJm MDExODJiN2U0MjBlYWI2ODAzOWYyMDgzYWVkMGEyMTRjMDQyNGUyNTdlYWUzZGRlZTg2MDcKLSA3 NzJjZmQ1ZDMwZWI5Y2M1YTk5NmZlYzliYThjZGNiNDVkMzdkZjFjOWI1NzcwNjEwMTAzYjgxNGI3 MzJjNTkwCitjaGVja3N1bT0iNjQ1YzI1ZjU2M2I4YWRjMGE4MWRiZDZhNDFjZmZiZjRkMzcwODNh MzgyZTAyZDVkM2RmNGY2NWMwOTUxNmQwMAorIGU1NDljZjljZjM1OTRhMDBlMjdiNjU4OWQ0MzIy ZDcwZTA3MjBjZGQyMTNmMzliZWI0MTgxZTA2OTI2MjMwZmYKICAxMzcwYzlhODEyYjJjZjJhN2Q5 MjgwMjUxMGNjYTAwNThjYzM3ZTY2YTdiZWRkNzAwNTFmMGEzNDAxNTAyMmEzCiAgOTA0ZTM5NmMy NmU5OTkyYTE2Y2QxY2M5ODk0NjAxNzE1MzZiZWQ3NzM5YmYzNjA0OWY2ZWIwMjBlZTVkNTZlYyIK IG5vY3Jvc3M9eWVzCgpGcm9tIDJjYjZkOGU5NjI3N2FkZGY2OTA1MjQzM2Y4YmRmN2Q1OWYxMGMz NTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IG9yZW82MzkgPG9yZW82MzkxQGdtYWls LmNvbT4KRGF0ZTogU3VuLCA2IE5vdiAyMDIyIDExOjMzOjI5IC0wODAwClN1YmplY3Q6IFtQQVRD SCAyNi8zN10gY3Jvc3MtbWlwc2VsLWxpbnV4LW11c2xoZjogdXBkYXRlIHRvIGdjYyAxMi4yLjAu CgotLS0KIHNyY3BrZ3MvY3Jvc3MtbWlwc2VsLWxpbnV4LW11c2xoZi90ZW1wbGF0ZSB8IDIxICsr KysrKysrKysrLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDEw IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY3Jvc3MtbWlwc2VsLWxpbnV4LW11 c2xoZi90ZW1wbGF0ZSBiL3NyY3BrZ3MvY3Jvc3MtbWlwc2VsLWxpbnV4LW11c2xoZi90ZW1wbGF0 ZQppbmRleCBlNGE1NWYwMjhiYzQuLmIyN2NlNjQ3NWEzOCAxMDA2NDQKLS0tIGEvc3JjcGtncy9j cm9zcy1taXBzZWwtbGludXgtbXVzbGhmL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3MtbWlw c2VsLWxpbnV4LW11c2xoZi90ZW1wbGF0ZQpAQCAtMSwyOCArMSwyOSBAQAogIyBUZW1wbGF0ZSBm aWxlIGZvciAnY3Jvc3MtbWlwc2VsLWxpbnV4LW11c2xoZicKLV9iaW51dGlsc192ZXJzaW9uPTIu MzUuMQotX2djY192ZXJzaW9uPTEwLjIuMV9wcmUxCitfYmludXRpbHNfdmVyc2lvbj0yLjM5Citf Z2NjX3ZlcnNpb249MTIuMi4wCiBfbXVzbF92ZXJzaW9uPTEuMS4yNAogX2xpbnV4X3ZlcnNpb249 NS4xMC40CiBwa2duYW1lPWNyb3NzLW1pcHNlbC1saW51eC1tdXNsaGYKLXZlcnNpb249MC4zNAot cmV2aXNpb249MwordmVyc2lvbj0wLjM1CityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT12b2lkLWNy b3NzCiBjb25maWd1cmVfYXJncz0iLS13aXRoLWFyY2g9bWlwczMycjIgLS13aXRoLWZsb2F0PWhh cmQKICAtLXdpdGgtbGlua2VyLWhhc2gtc3R5bGU9c3lzdiIKIGhvc3RtYWtlZGVwZW5kcz0idGV4 aW5mbyB0YXIgZ2NjLW9iamMgZmxleCBwZXJsIHB5dGhvbjMiCi1tYWtlZGVwZW5kcz0iaXNsMTUt ZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwiCittYWtl ZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsCisg emxpYi1kZXZlbCBsaWJ6c3RkLWRldmVsIgogZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVy c2lvbn1fJHtyZXZpc2lvbn0iCiBzaG9ydF9kZXNjPSJWb2lkIGNyb3NzIHRvb2xjaGFpbiBmb3Ig JHtwa2duYW1lL2Nyb3NzLX0iCiBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51 eC5vcmc+IgotaG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcvIgogbGljZW5zZT0i R1BMLTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1sYXRlciwgTUlUIgoraG9tZXBhZ2U9Imh0dHBz Oi8vd3d3LnZvaWRsaW51eC5vcmcvIgogZGlzdGZpbGVzPSIKICAke0dOVV9TSVRFfS9iaW51dGls cy9iaW51dGlscy0ke19iaW51dGlsc192ZXJzaW9ufS50YXIueHoKLSBodHRwczovL2Rldi5hbHBp bmVsaW51eC5vcmcvfm5lbm9sb2QvZ2NjLSR7X2djY192ZXJzaW9ufS50YXIueHoKLSBodHRwczov L3d3dy5tdXNsLWxpYmMub3JnL3JlbGVhc2VzL211c2wtJHtfbXVzbF92ZXJzaW9ufS50YXIuZ3oK KyAke0dOVV9TSVRFfS9nY2MvZ2NjLSR7X2djY192ZXJzaW9ufS9nY2MtJHtfZ2NjX3ZlcnNpb259 LnRhci54egorIGh0dHBzOi8vbXVzbC5saWJjLm9yZy9yZWxlYXNlcy9tdXNsLSR7X211c2xfdmVy c2lvbn0udGFyLmd6CiAgJHtLRVJORUxfU0lURX0va2VybmVsL3Y1LngvbGludXgtJHtfbGludXhf dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09IjNjZWQ5MWRiOWJmMDExODJiN2U0MjBlYWI2ODAz OWYyMDgzYWVkMGEyMTRjMDQyNGUyNTdlYWUzZGRlZTg2MDcKLSA3NzJjZmQ1ZDMwZWI5Y2M1YTk5 NmZlYzliYThjZGNiNDVkMzdkZjFjOWI1NzcwNjEwMTAzYjgxNGI3MzJjNTkwCitjaGVja3N1bT0i NjQ1YzI1ZjU2M2I4YWRjMGE4MWRiZDZhNDFjZmZiZjRkMzcwODNhMzgyZTAyZDVkM2RmNGY2NWMw OTUxNmQwMAorIGU1NDljZjljZjM1OTRhMDBlMjdiNjU4OWQ0MzIyZDcwZTA3MjBjZGQyMTNmMzli ZWI0MTgxZTA2OTI2MjMwZmYKICAxMzcwYzlhODEyYjJjZjJhN2Q5MjgwMjUxMGNjYTAwNThjYzM3 ZTY2YTdiZWRkNzAwNTFmMGEzNDAxNTAyMmEzCiAgOTA0ZTM5NmMyNmU5OTkyYTE2Y2QxY2M5ODk0 NjAxNzE1MzZiZWQ3NzM5YmYzNjA0OWY2ZWIwMjBlZTVkNTZlYyIKIG5vY3Jvc3M9eWVzCgpGcm9t IGY4NmUwNDMzMzNmODk0NGI3ZWM3NjJkNTU1MTViYTZlYzU2ZTIxOGUgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IG9yZW82MzkgPG9yZW82MzkxQGdtYWlsLmNvbT4KRGF0ZTogU3VuLCA2 IE5vdiAyMDIyIDExOjMzOjI5IC0wODAwClN1YmplY3Q6IFtQQVRDSCAyNy8zN10gY3Jvc3MtcG93 ZXJwYy1saW51eC1nbnU6IHVwZGF0ZSB0byBnY2MgMTIuMi4wLgoKLS0tCiBzcmNwa2dzL2Nyb3Nz LXBvd2VycGMtbGludXgtZ251L3RlbXBsYXRlIHwgMTkgKysrKysrKysrKy0tLS0tLS0tLQogMSBm aWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9jcm9zcy1wb3dlcnBjLWxpbnV4LWdudS90ZW1wbGF0ZSBiL3NyY3BrZ3MvY3Jv c3MtcG93ZXJwYy1saW51eC1nbnUvdGVtcGxhdGUKaW5kZXggYjk3YTIxZDBkNzJlLi43OTU3OWUw OTNiMTIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jvc3MtcG93ZXJwYy1saW51eC1nbnUvdGVtcGxh dGUKKysrIGIvc3JjcGtncy9jcm9zcy1wb3dlcnBjLWxpbnV4LWdudS90ZW1wbGF0ZQpAQCAtMSwx NSArMSwxNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnY3Jvc3MtcG93ZXJwYy1saW51eC1nbnUn Ci1fYmludXRpbHNfdmVyc2lvbj0yLjM1LjEKLV9nY2NfdmVyc2lvbj0xMC4yLjFfcHJlMQotX2ds aWJjX3ZlcnNpb249Mi4zMgorX2JpbnV0aWxzX3ZlcnNpb249Mi4zOQorX2djY192ZXJzaW9uPTEy LjIuMAorX2dsaWJjX3ZlcnNpb249Mi4zNgogX2xpbnV4X3ZlcnNpb249NS4xMC40CiBwa2duYW1l PWNyb3NzLXBvd2VycGMtbGludXgtZ251Ci12ZXJzaW9uPTAuMzQKK3ZlcnNpb249MC4zNQogcmV2 aXNpb249MQogYnVpbGRfc3R5bGU9dm9pZC1jcm9zcwogY29uZmlndXJlX2FyZ3M9Ii0tZW5hYmxl LXNlY3VyZXBsdCAtLWRpc2FibGUtdnRhYmxlLXZlcmlmeSIKIGhvc3RtYWtlZGVwZW5kcz0idGV4 aW5mbyB0YXIgZ2NjLW9iamMgZmxleCBwZXJsIHB5dGhvbjMiCi1tYWtlZGVwZW5kcz0iaXNsMTUt ZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwiCittYWtl ZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsCisg emxpYi1kZXZlbCBsaWJ6c3RkLWRldmVsIgogZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVy c2lvbn1fJHtyZXZpc2lvbn0iCiBzaG9ydF9kZXNjPSJWb2lkIGNyb3NzIHRvb2xjaGFpbiBmb3Ig JHtwa2duYW1lL2Nyb3NzLX0iCiBtYWludGFpbmVyPSJUaG9tYXMgQmF0dGVuIDxzdGVuc3RvcnBt Y0BnbWFpbC5jb20+IgpAQCAtMTcsMTIgKzE4LDEyIEBAIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0 ZXIsIEdQTC0zLjAtb3ItbGF0ZXIsIExHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBz Oi8vd3d3LnZvaWRsaW51eC5vcmcvIgogZGlzdGZpbGVzPSIKICAke0dOVV9TSVRFfS9iaW51dGls cy9iaW51dGlscy0ke19iaW51dGlsc192ZXJzaW9ufS50YXIueHoKLSBodHRwczovL2Rldi5hbHBp bmVsaW51eC5vcmcvfm5lbm9sb2QvZ2NjLSR7X2djY192ZXJzaW9ufS50YXIueHoKKyAke0dOVV9T SVRFfS9nY2MvZ2NjLSR7X2djY192ZXJzaW9ufS9nY2MtJHtfZ2NjX3ZlcnNpb259LnRhci54egog ICR7R05VX1NJVEV9L2dsaWJjL2dsaWJjLSR7X2dsaWJjX3ZlcnNpb259LnRhci54egogICR7S0VS TkVMX1NJVEV9L2tlcm5lbC92NS54L2xpbnV4LSR7X2xpbnV4X3ZlcnNpb259LnRhci54eiIKLWNo ZWNrc3VtPSIzY2VkOTFkYjliZjAxMTgyYjdlNDIwZWFiNjgwMzlmMjA4M2FlZDBhMjE0YzA0MjRl MjU3ZWFlM2RkZWU4NjA3Ci0gNzcyY2ZkNWQzMGViOWNjNWE5OTZmZWM5YmE4Y2RjYjQ1ZDM3ZGYx YzliNTc3MDYxMDEwM2I4MTRiNzMyYzU5MAotIDE2MjdlYTU0ZjVhMWE4NDY3MDMyNTYzMzkzZTA5 MDEwNzc2MjZkYzY2ZjM3ZjEwZWU2MzYzYmI3MjIyMjI4MzYKK2NoZWNrc3VtPSI2NDVjMjVmNTYz YjhhZGMwYTgxZGJkNmE0MWNmZmJmNGQzNzA4M2EzODJlMDJkNWQzZGY0ZjY1YzA5NTE2ZDAwCisg ZTU0OWNmOWNmMzU5NGEwMGUyN2I2NTg5ZDQzMjJkNzBlMDcyMGNkZDIxM2YzOWJlYjQxODFlMDY5 MjYyMzBmZgorIDFjOTU5ZmVhMjQwOTA2MjI2MDYyY2I0YjFlN2ViY2U3MWE5ZjBlM2MwODM2YzA5 ZTdlMzQyM2Q0MzRmY2ZlNzUKICA5MDRlMzk2YzI2ZTk5OTJhMTZjZDFjYzk4OTQ2MDE3MTUzNmJl ZDc3MzliZjM2MDQ5ZjZlYjAyMGVlNWQ1NmVjIgogbm9jcm9zcz15ZXMKIAoKRnJvbSAwOGM3NGI2 MjI1ZmI5YzJmM2U0ZjIxZTYxYWFjMzJiODQ0NDQxMDRmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBvcmVvNjM5IDxvcmVvNjM5MUBnbWFpbC5jb20+CkRhdGU6IFN1biwgNiBOb3YgMjAy MiAxMTozMzoyOSAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMjgvMzddIGNyb3NzLXBvd2VycGMtbGlu dXgtbXVzbDogdXBkYXRlIHRvIGdjYyAxMi4yLjAuCgotLS0KIHNyY3BrZ3MvY3Jvc3MtcG93ZXJw Yy1saW51eC1tdXNsL3RlbXBsYXRlIHwgMTkgKysrKysrKysrKy0tLS0tLS0tLQogMSBmaWxlIGNo YW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9jcm9zcy1wb3dlcnBjLWxpbnV4LW11c2wvdGVtcGxhdGUgYi9zcmNwa2dzL2Nyb3NzLXBv d2VycGMtbGludXgtbXVzbC90ZW1wbGF0ZQppbmRleCBmOWIyMmYwNjEwZDMuLjliYjZhY2QzNTli NiAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy1wb3dlcnBjLWxpbnV4LW11c2wvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9jcm9zcy1wb3dlcnBjLWxpbnV4LW11c2wvdGVtcGxhdGUKQEAgLTEsMjgg KzEsMjkgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLXBvd2VycGMtbGludXgtbXVzbCcK LV9iaW51dGlsc192ZXJzaW9uPTIuMzUuMQotX2djY192ZXJzaW9uPTEwLjIuMV9wcmUxCitfYmlu dXRpbHNfdmVyc2lvbj0yLjM5CitfZ2NjX3ZlcnNpb249MTIuMi4wCiBfbXVzbF92ZXJzaW9uPTEu MS4yNAogX2xpbnV4X3ZlcnNpb249NS4xMC40CiBwa2duYW1lPWNyb3NzLXBvd2VycGMtbGludXgt bXVzbAotdmVyc2lvbj0wLjM0Ci1yZXZpc2lvbj0zCit2ZXJzaW9uPTAuMzUKK3JldmlzaW9uPTEK IGJ1aWxkX3N0eWxlPXZvaWQtY3Jvc3MKIGNvbmZpZ3VyZV9hcmdzPSItLWVuYWJsZS1zZWN1cmVw bHQgLS1kaXNhYmxlLXZ0YWJsZS12ZXJpZnkKICAtLWRpc2FibGUtZGVjaW1hbC1mbG9hdCIKIGhv c3RtYWtlZGVwZW5kcz0idGV4aW5mbyB0YXIgZ2NjLW9iamMgZmxleCBwZXJsIHB5dGhvbjMiCi1t YWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwgZ21wLWRldmVs IG1wZnItZGV2ZWwiCittYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIGdtcC1k ZXZlbCBtcGZyLWRldmVsCisgemxpYi1kZXZlbCBsaWJ6c3RkLWRldmVsIgogZGVwZW5kcz0iJHtw a2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCiBzaG9ydF9kZXNjPSJWb2lkIGNy b3NzIHRvb2xjaGFpbiBmb3IgJHtwa2duYW1lL2Nyb3NzLX0iCiBtYWludGFpbmVyPSJUaG9tYXMg QmF0dGVuIDxzdGVuc3RvcnBtY0BnbWFpbC5jb20+IgotaG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZv aWRsaW51eC5vcmcvIgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1sYXRl ciwgTUlUIgoraG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcvIgogZGlzdGZpbGVz PSIKICAke0dOVV9TSVRFfS9iaW51dGlscy9iaW51dGlscy0ke19iaW51dGlsc192ZXJzaW9ufS50 YXIueHoKLSBodHRwczovL2Rldi5hbHBpbmVsaW51eC5vcmcvfm5lbm9sb2QvZ2NjLSR7X2djY192 ZXJzaW9ufS50YXIueHoKKyAke0dOVV9TSVRFfS9nY2MvZ2NjLSR7X2djY192ZXJzaW9ufS9nY2Mt JHtfZ2NjX3ZlcnNpb259LnRhci54egogIGh0dHBzOi8vbXVzbC5saWJjLm9yZy9yZWxlYXNlcy9t dXNsLSR7X211c2xfdmVyc2lvbn0udGFyLmd6CiAgJHtLRVJORUxfU0lURX0va2VybmVsL3Y1Lngv bGludXgtJHtfbGludXhfdmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09IjNjZWQ5MWRiOWJmMDEx ODJiN2U0MjBlYWI2ODAzOWYyMDgzYWVkMGEyMTRjMDQyNGUyNTdlYWUzZGRlZTg2MDcKLSA3NzJj ZmQ1ZDMwZWI5Y2M1YTk5NmZlYzliYThjZGNiNDVkMzdkZjFjOWI1NzcwNjEwMTAzYjgxNGI3MzJj NTkwCitjaGVja3N1bT0iNjQ1YzI1ZjU2M2I4YWRjMGE4MWRiZDZhNDFjZmZiZjRkMzcwODNhMzgy ZTAyZDVkM2RmNGY2NWMwOTUxNmQwMAorIGU1NDljZjljZjM1OTRhMDBlMjdiNjU4OWQ0MzIyZDcw ZTA3MjBjZGQyMTNmMzliZWI0MTgxZTA2OTI2MjMwZmYKICAxMzcwYzlhODEyYjJjZjJhN2Q5Mjgw MjUxMGNjYTAwNThjYzM3ZTY2YTdiZWRkNzAwNTFmMGEzNDAxNTAyMmEzCiAgOTA0ZTM5NmMyNmU5 OTkyYTE2Y2QxY2M5ODk0NjAxNzE1MzZiZWQ3NzM5YmYzNjA0OWY2ZWIwMjBlZTVkNTZlYyIKIG5v Y3Jvc3M9eWVzCgpGcm9tIGFlZjU1YTYyNDk3MjAzYjdmMTZmYWE3Yzc4YWJlZDM2YmJiODk0MzEg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IG9yZW82MzkgPG9yZW82MzkxQGdtYWlsLmNv bT4KRGF0ZTogU3VuLCA2IE5vdiAyMDIyIDExOjMzOjI5IC0wODAwClN1YmplY3Q6IFtQQVRDSCAy OS8zN10gY3Jvc3MtcG93ZXJwYzY0LWxpbnV4LWdudTogdXBkYXRlIHRvIGdjYyAxMi4yLjAuCgot LS0KIHNyY3BrZ3MvY3Jvc3MtcG93ZXJwYzY0LWxpbnV4LWdudS90ZW1wbGF0ZSB8IDE5ICsrKysr KysrKystLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCA5IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY3Jvc3MtcG93ZXJwYzY0LWxpbnV4LWdudS90 ZW1wbGF0ZSBiL3NyY3BrZ3MvY3Jvc3MtcG93ZXJwYzY0LWxpbnV4LWdudS90ZW1wbGF0ZQppbmRl eCAzNWNmY2FhNmYwMmUuLjJkMTUzZDAwYWRkNiAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy1w b3dlcnBjNjQtbGludXgtZ251L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3MtcG93ZXJwYzY0 LWxpbnV4LWdudS90ZW1wbGF0ZQpAQCAtMSwxNiArMSwxNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZv ciAnY3Jvc3MtcG93ZXJwYzY0LWxpbnV4LWdudScKLV9iaW51dGlsc192ZXJzaW9uPTIuMzUuMQot X2djY192ZXJzaW9uPTEwLjIuMV9wcmUxCi1fZ2xpYmNfdmVyc2lvbj0yLjMyCitfYmludXRpbHNf dmVyc2lvbj0yLjM5CitfZ2NjX3ZlcnNpb249MTIuMi4wCitfZ2xpYmNfdmVyc2lvbj0yLjM2CiBf bGludXhfdmVyc2lvbj01LjEwLjQKIHBrZ25hbWU9Y3Jvc3MtcG93ZXJwYzY0LWxpbnV4LWdudQot dmVyc2lvbj0wLjM0Cit2ZXJzaW9uPTAuMzUKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPXZvaWQt Y3Jvc3MKIGNvbmZpZ3VyZV9hcmdzPSItLWVuYWJsZS1zZWN1cmVwbHQgLS1kaXNhYmxlLXZ0YWJs ZS12ZXJpZnkgLS13aXRoLWFiaT1lbGZ2MgogIC0tZW5hYmxlLXRhcmdldHM9cG93ZXJwYy1saW51 eCIKIGhvc3RtYWtlZGVwZW5kcz0idGV4aW5mbyB0YXIgZ2NjLW9iamMgZ2NjLWdvIGZsZXggcGVy bCBweXRob24zIgotbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6bGliLWRl dmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIgorbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1w Yy1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbAorIHpsaWItZGV2ZWwgbGlienN0ZC1kZXZlbCIK IGRlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259Igogc2hvcnRf ZGVzYz0iVm9pZCBjcm9zcyB0b29sY2hhaW4gZm9yICR7cGtnbmFtZS9jcm9zcy19IgogbWFpbnRh aW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKQEAgLTE4LDEyICsxOSwxMiBA QCBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVyLCBMR1BMLTIuMS1v ci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3d3dy52b2lkbGludXgub3JnLyIKIGRpc3RmaWxl cz0iCiAgJHtHTlVfU0lURX0vYmludXRpbHMvYmludXRpbHMtJHtfYmludXRpbHNfdmVyc2lvbn0u dGFyLnh6Ci0gaHR0cHM6Ly9kZXYuYWxwaW5lbGludXgub3JnL35uZW5vbG9kL2djYy0ke19nY2Nf dmVyc2lvbn0udGFyLnh6CisgJHtHTlVfU0lURX0vZ2NjL2djYy0ke19nY2NfdmVyc2lvbn0vZ2Nj LSR7X2djY192ZXJzaW9ufS50YXIueHoKICAke0dOVV9TSVRFfS9nbGliYy9nbGliYy0ke19nbGli Y192ZXJzaW9ufS50YXIueHoKICAke0tFUk5FTF9TSVRFfS9rZXJuZWwvdjUueC9saW51eC0ke19s aW51eF92ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0iM2NlZDkxZGI5YmYwMTE4MmI3ZTQyMGVh YjY4MDM5ZjIwODNhZWQwYTIxNGMwNDI0ZTI1N2VhZTNkZGVlODYwNwotIDc3MmNmZDVkMzBlYjlj YzVhOTk2ZmVjOWJhOGNkY2I0NWQzN2RmMWM5YjU3NzA2MTAxMDNiODE0YjczMmM1OTAKLSAxNjI3 ZWE1NGY1YTFhODQ2NzAzMjU2MzM5M2UwOTAxMDc3NjI2ZGM2NmYzN2YxMGVlNjM2M2JiNzIyMjIy ODM2CitjaGVja3N1bT0iNjQ1YzI1ZjU2M2I4YWRjMGE4MWRiZDZhNDFjZmZiZjRkMzcwODNhMzgy ZTAyZDVkM2RmNGY2NWMwOTUxNmQwMAorIGU1NDljZjljZjM1OTRhMDBlMjdiNjU4OWQ0MzIyZDcw ZTA3MjBjZGQyMTNmMzliZWI0MTgxZTA2OTI2MjMwZmYKKyAxYzk1OWZlYTI0MDkwNjIyNjA2MmNi NGIxZTdlYmNlNzFhOWYwZTNjMDgzNmMwOWU3ZTM0MjNkNDM0ZmNmZTc1CiAgOTA0ZTM5NmMyNmU5 OTkyYTE2Y2QxY2M5ODk0NjAxNzE1MzZiZWQ3NzM5YmYzNjA0OWY2ZWIwMjBlZTVkNTZlYyIKIG5v Y3Jvc3M9eWVzCiAKCkZyb20gMzRjMGI1YTEyMjY0ZWQxMmI4ODhlZjBkZGRmYjg5ZGVmOTQzYTQ2 ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogb3JlbzYzOSA8b3JlbzYzOTFAZ21haWwu Y29tPgpEYXRlOiBTdW4sIDYgTm92IDIwMjIgMTE6MzM6MjkgLTA4MDAKU3ViamVjdDogW1BBVENI IDMwLzM3XSBjcm9zcy1wb3dlcnBjNjQtbGludXgtbXVzbDogdXBkYXRlIHRvIGdjYyAxMi4yLjAu CgotLS0KIHNyY3BrZ3MvY3Jvc3MtcG93ZXJwYzY0LWxpbnV4LW11c2wvdGVtcGxhdGUgfCAxOSAr KysrKysrKysrLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgOSBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nyb3NzLXBvd2VycGM2NC1saW51eC1t dXNsL3RlbXBsYXRlIGIvc3JjcGtncy9jcm9zcy1wb3dlcnBjNjQtbGludXgtbXVzbC90ZW1wbGF0 ZQppbmRleCAwMTZmMTg3NzZhNmQuLmUwODQ4ZmUwYmZmNyAxMDA2NDQKLS0tIGEvc3JjcGtncy9j cm9zcy1wb3dlcnBjNjQtbGludXgtbXVzbC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Nyb3NzLXBv d2VycGM2NC1saW51eC1tdXNsL3RlbXBsYXRlCkBAIC0xLDMwICsxLDMxIEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICdjcm9zcy1wb3dlcnBjNjQtbGludXgtbXVzbCcKLV9iaW51dGlsc192ZXJzaW9u PTIuMzUuMQotX2djY192ZXJzaW9uPTEwLjIuMV9wcmUxCitfYmludXRpbHNfdmVyc2lvbj0yLjM5 CitfZ2NjX3ZlcnNpb249MTIuMi4wCiBfbXVzbF92ZXJzaW9uPTEuMS4yNAogX2xpbnV4X3ZlcnNp b249NS4xMC40CiBfbGlidWNvbnRleHRfdmVyc2lvbj0xLjAKIHBrZ25hbWU9Y3Jvc3MtcG93ZXJw YzY0LWxpbnV4LW11c2wKLXZlcnNpb249MC4zNAotcmV2aXNpb249NAordmVyc2lvbj0wLjM1City ZXZpc2lvbj0xCiBidWlsZF9zdHlsZT12b2lkLWNyb3NzCiBjb25maWd1cmVfYXJncz0iLS1lbmFi bGUtc2VjdXJlcGx0IC0tZGlzYWJsZS12dGFibGUtdmVyaWZ5CiAgLS1kaXNhYmxlLWRlY2ltYWwt ZmxvYXQgLS13aXRoLWFiaT1lbGZ2MiAtLWVuYWJsZS10YXJnZXRzPXBvd2VycGMtbGludXgiCiBo b3N0bWFrZWRlcGVuZHM9InRleGluZm8gdGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4IHBlcmwgcHl0 aG9uMyIKLW1ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgemxpYi1kZXZlbCBn bXAtZGV2ZWwgbXBmci1kZXZlbCIKK21ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2 ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwKKyB6bGliLWRldmVsIGxpYnpzdGQtZGV2ZWwiCiBkZXBl bmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKIHNob3J0X2Rlc2M9 IlZvaWQgY3Jvc3MgdG9vbGNoYWluIGZvciAke3BrZ25hbWUvY3Jvc3MtfSIKIG1haW50YWluZXI9 Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCi1ob21lcGFnZT0iaHR0cHM6Ly93d3cu dm9pZGxpbnV4Lm9yZy8iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxh dGVyLCBNSVQiCitob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBkaXN0Zmls ZXM9IgogICR7R05VX1NJVEV9L2JpbnV0aWxzL2JpbnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259 LnRhci54egotIGh0dHBzOi8vZGV2LmFscGluZWxpbnV4Lm9yZy9+bmVub2xvZC9nY2MtJHtfZ2Nj X3ZlcnNpb259LnRhci54egorICR7R05VX1NJVEV9L2djYy9nY2MtJHtfZ2NjX3ZlcnNpb259L2dj Yy0ke19nY2NfdmVyc2lvbn0udGFyLnh6CiAgaHR0cHM6Ly9tdXNsLmxpYmMub3JnL3JlbGVhc2Vz L211c2wtJHtfbXVzbF92ZXJzaW9ufS50YXIuZ3oKICAke0tFUk5FTF9TSVRFfS9rZXJuZWwvdjUu eC9saW51eC0ke19saW51eF92ZXJzaW9ufS50YXIueHoKICBodHRwczovL2dpdGh1Yi5jb20va2Fu aWluaS9saWJ1Y29udGV4dC9hcmNoaXZlL2xpYnVjb250ZXh0LSR7X2xpYnVjb250ZXh0X3ZlcnNp b259LnRhci5neiIKLWNoZWNrc3VtPSIzY2VkOTFkYjliZjAxMTgyYjdlNDIwZWFiNjgwMzlmMjA4 M2FlZDBhMjE0YzA0MjRlMjU3ZWFlM2RkZWU4NjA3Ci0gNzcyY2ZkNWQzMGViOWNjNWE5OTZmZWM5 YmE4Y2RjYjQ1ZDM3ZGYxYzliNTc3MDYxMDEwM2I4MTRiNzMyYzU5MAorY2hlY2tzdW09IjY0NWMy NWY1NjNiOGFkYzBhODFkYmQ2YTQxY2ZmYmY0ZDM3MDgzYTM4MmUwMmQ1ZDNkZjRmNjVjMDk1MTZk MDAKKyBlNTQ5Y2Y5Y2YzNTk0YTAwZTI3YjY1ODlkNDMyMmQ3MGUwNzIwY2RkMjEzZjM5YmViNDE4 MWUwNjkyNjIzMGZmCiAgMTM3MGM5YTgxMmIyY2YyYTdkOTI4MDI1MTBjY2EwMDU4Y2MzN2U2NmE3 YmVkZDcwMDUxZjBhMzQwMTUwMjJhMwogIDkwNGUzOTZjMjZlOTk5MmExNmNkMWNjOTg5NDYwMTcx NTM2YmVkNzczOWJmMzYwNDlmNmViMDIwZWU1ZDU2ZWMKICAyMzcxNGU5OWE4N2Y2ZGVhODJlOGEw NzNjNTI2MzI1MTYxZGQ2NTQ2MjQ1OTgyMGIxNmE2MTYyYmU5MTk1NWJiIgoKRnJvbSBmMTM0MzZm YTI2Y2U1NWZhNmZlMWZiZjNhN2I4ZWI0YmFiODBjNjI0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBvcmVvNjM5IDxvcmVvNjM5MUBnbWFpbC5jb20+CkRhdGU6IFN1biwgNiBOb3YgMjAy MiAxMTozMzoyOSAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMzEvMzddIGNyb3NzLXBvd2VycGM2NGxl LWxpbnV4LWdudTogdXBkYXRlIHRvIGdjYyAxMi4yLjAuCgotLS0KIHNyY3BrZ3MvY3Jvc3MtcG93 ZXJwYzY0bGUtbGludXgtZ251L3RlbXBsYXRlIHwgMTkgKysrKysrKysrKy0tLS0tLS0tLQogMSBm aWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9jcm9zcy1wb3dlcnBjNjRsZS1saW51eC1nbnUvdGVtcGxhdGUgYi9zcmNwa2dz L2Nyb3NzLXBvd2VycGM2NGxlLWxpbnV4LWdudS90ZW1wbGF0ZQppbmRleCA0NjNkN2U5MmQyMGQu LjhkOGUwMTBlMTVjMCAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy1wb3dlcnBjNjRsZS1saW51 eC1nbnUvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9jcm9zcy1wb3dlcnBjNjRsZS1saW51eC1nbnUv dGVtcGxhdGUKQEAgLTEsMTYgKzEsMTcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLXBv d2VycGM2NGxlLWxpbnV4LWdudScKLV9iaW51dGlsc192ZXJzaW9uPTIuMzUuMQotX2djY192ZXJz aW9uPTEwLjIuMV9wcmUxCi1fZ2xpYmNfdmVyc2lvbj0yLjMyCitfYmludXRpbHNfdmVyc2lvbj0y LjM5CitfZ2NjX3ZlcnNpb249MTIuMi4wCitfZ2xpYmNfdmVyc2lvbj0yLjM2CiBfbGludXhfdmVy c2lvbj01LjEwLjQKIHBrZ25hbWU9Y3Jvc3MtcG93ZXJwYzY0bGUtbGludXgtZ251Ci12ZXJzaW9u PTAuMzQKK3ZlcnNpb249MC4zNQogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9dm9pZC1jcm9zcwog Y29uZmlndXJlX2FyZ3M9Ii0tZW5hYmxlLXNlY3VyZXBsdCAtLWRpc2FibGUtdnRhYmxlLXZlcmlm eSAtLXdpdGgtYWJpPWVsZnYyCiAgLS1lbmFibGUtdGFyZ2V0cz1wb3dlcnBjbGUtbGludXgiCiBo b3N0bWFrZWRlcGVuZHM9InRleGluZm8gdGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4IHBlcmwgcHl0 aG9uMyIKLW1ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgemxpYi1kZXZlbCBn bXAtZGV2ZWwgbXBmci1kZXZlbCIKK21ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2 ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwKKyB6bGliLWRldmVsIGxpYnpzdGQtZGV2ZWwiCiBkZXBl bmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKIHNob3J0X2Rlc2M9 IlZvaWQgY3Jvc3MgdG9vbGNoYWluIGZvciAke3BrZ25hbWUvY3Jvc3MtfSIKIG1haW50YWluZXI9 Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCkBAIC0xOCwxMiArMTksMTIgQEAgbGlj ZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1sYXRlciwgTEdQTC0yLjEtb3ItbGF0 ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBkaXN0ZmlsZXM9Igog ICR7R05VX1NJVEV9L2JpbnV0aWxzL2JpbnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259LnRhci54 egotIGh0dHBzOi8vZGV2LmFscGluZWxpbnV4Lm9yZy9+bmVub2xvZC9nY2MtJHtfZ2NjX3ZlcnNp b259LnRhci54egorICR7R05VX1NJVEV9L2djYy9nY2MtJHtfZ2NjX3ZlcnNpb259L2djYy0ke19n Y2NfdmVyc2lvbn0udGFyLnh6CiAgJHtHTlVfU0lURX0vZ2xpYmMvZ2xpYmMtJHtfZ2xpYmNfdmVy c2lvbn0udGFyLnh6CiAgJHtLRVJORUxfU0lURX0va2VybmVsL3Y1LngvbGludXgtJHtfbGludXhf dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09IjNjZWQ5MWRiOWJmMDExODJiN2U0MjBlYWI2ODAz OWYyMDgzYWVkMGEyMTRjMDQyNGUyNTdlYWUzZGRlZTg2MDcKLSA3NzJjZmQ1ZDMwZWI5Y2M1YTk5 NmZlYzliYThjZGNiNDVkMzdkZjFjOWI1NzcwNjEwMTAzYjgxNGI3MzJjNTkwCi0gMTYyN2VhNTRm NWExYTg0NjcwMzI1NjMzOTNlMDkwMTA3NzYyNmRjNjZmMzdmMTBlZTYzNjNiYjcyMjIyMjgzNgor Y2hlY2tzdW09IjY0NWMyNWY1NjNiOGFkYzBhODFkYmQ2YTQxY2ZmYmY0ZDM3MDgzYTM4MmUwMmQ1 ZDNkZjRmNjVjMDk1MTZkMDAKKyBlNTQ5Y2Y5Y2YzNTk0YTAwZTI3YjY1ODlkNDMyMmQ3MGUwNzIw Y2RkMjEzZjM5YmViNDE4MWUwNjkyNjIzMGZmCisgMWM5NTlmZWEyNDA5MDYyMjYwNjJjYjRiMWU3 ZWJjZTcxYTlmMGUzYzA4MzZjMDllN2UzNDIzZDQzNGZjZmU3NQogIDkwNGUzOTZjMjZlOTk5MmEx NmNkMWNjOTg5NDYwMTcxNTM2YmVkNzczOWJmMzYwNDlmNmViMDIwZWU1ZDU2ZWMiCiBub2Nyb3Nz PXllcwogCgpGcm9tIDFmYTlkMGRjM2MyYzI0NzM5ZDc2YTVkYzg3YzMxNzE5M2QzNGIyN2QgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IG9yZW82MzkgPG9yZW82MzkxQGdtYWlsLmNvbT4K RGF0ZTogU3VuLCA2IE5vdiAyMDIyIDExOjMzOjI5IC0wODAwClN1YmplY3Q6IFtQQVRDSCAzMi8z N10gY3Jvc3MtcG93ZXJwYzY0bGUtbGludXgtbXVzbDogdXBkYXRlIHRvIGdjYyAxMi4yLjAuCgot LS0KIHNyY3BrZ3MvY3Jvc3MtcG93ZXJwYzY0bGUtbGludXgtbXVzbC90ZW1wbGF0ZSB8IDE5ICsr KysrKysrKystLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCA5IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY3Jvc3MtcG93ZXJwYzY0bGUtbGludXgt bXVzbC90ZW1wbGF0ZSBiL3NyY3BrZ3MvY3Jvc3MtcG93ZXJwYzY0bGUtbGludXgtbXVzbC90ZW1w bGF0ZQppbmRleCBjMTdhM2NjY2ZlMjkuLjA5MTVlNTI0NTQ1ZiAxMDA2NDQKLS0tIGEvc3JjcGtn cy9jcm9zcy1wb3dlcnBjNjRsZS1saW51eC1tdXNsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY3Jv c3MtcG93ZXJwYzY0bGUtbGludXgtbXVzbC90ZW1wbGF0ZQpAQCAtMSwzMCArMSwzMSBAQAogIyBU ZW1wbGF0ZSBmaWxlIGZvciAnY3Jvc3MtcG93ZXJwYzY0bGUtbGludXgtbXVzbCcKLV9iaW51dGls c192ZXJzaW9uPTIuMzUuMQotX2djY192ZXJzaW9uPTEwLjIuMV9wcmUxCitfYmludXRpbHNfdmVy c2lvbj0yLjM5CitfZ2NjX3ZlcnNpb249MTIuMi4wCiBfbXVzbF92ZXJzaW9uPTEuMS4yNAogX2xp bnV4X3ZlcnNpb249NS4xMC40CiBfbGlidWNvbnRleHRfdmVyc2lvbj0xLjAKIHBrZ25hbWU9Y3Jv c3MtcG93ZXJwYzY0bGUtbGludXgtbXVzbAotdmVyc2lvbj0wLjM0Ci1yZXZpc2lvbj00Cit2ZXJz aW9uPTAuMzUKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPXZvaWQtY3Jvc3MKIGNvbmZpZ3VyZV9h cmdzPSItLWVuYWJsZS1zZWN1cmVwbHQgLS1kaXNhYmxlLXZ0YWJsZS12ZXJpZnkKICAtLWRpc2Fi bGUtZGVjaW1hbC1mbG9hdCAtLXdpdGgtYWJpPWVsZnYyIC0tZW5hYmxlLXRhcmdldHM9cG93ZXJw Y2xlLWxpbnV4IgogaG9zdG1ha2VkZXBlbmRzPSJ0ZXhpbmZvIHRhciBnY2Mtb2JqYyBnY2MtZ28g ZmxleCBwZXJsIHB5dGhvbjMiCi1tYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVs IHpsaWItZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwiCittYWtlZGVwZW5kcz0iaXNsMTUtZGV2 ZWwgbGlibXBjLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsCisgemxpYi1kZXZlbCBsaWJ6c3Rk LWRldmVsIgogZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0i CiBzaG9ydF9kZXNjPSJWb2lkIGNyb3NzIHRvb2xjaGFpbiBmb3IgJHtwa2duYW1lL2Nyb3NzLX0i CiBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgotaG9tZXBhZ2U9 Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcvIgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwg R1BMLTMuMC1vci1sYXRlciwgTUlUIgoraG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5v cmcvIgogZGlzdGZpbGVzPSIKICAke0dOVV9TSVRFfS9iaW51dGlscy9iaW51dGlscy0ke19iaW51 dGlsc192ZXJzaW9ufS50YXIueHoKLSBodHRwczovL2Rldi5hbHBpbmVsaW51eC5vcmcvfm5lbm9s b2QvZ2NjLSR7X2djY192ZXJzaW9ufS50YXIueHoKKyAke0dOVV9TSVRFfS9nY2MvZ2NjLSR7X2dj Y192ZXJzaW9ufS9nY2MtJHtfZ2NjX3ZlcnNpb259LnRhci54egogIGh0dHBzOi8vbXVzbC5saWJj Lm9yZy9yZWxlYXNlcy9tdXNsLSR7X211c2xfdmVyc2lvbn0udGFyLmd6CiAgJHtLRVJORUxfU0lU RX0va2VybmVsL3Y1LngvbGludXgtJHtfbGludXhfdmVyc2lvbn0udGFyLnh6CiAgaHR0cHM6Ly9n aXRodWIuY29tL2thbmlpbmkvbGlidWNvbnRleHQvYXJjaGl2ZS9saWJ1Y29udGV4dC0ke19saWJ1 Y29udGV4dF92ZXJzaW9ufS50YXIuZ3oiCi1jaGVja3N1bT0iM2NlZDkxZGI5YmYwMTE4MmI3ZTQy MGVhYjY4MDM5ZjIwODNhZWQwYTIxNGMwNDI0ZTI1N2VhZTNkZGVlODYwNwotIDc3MmNmZDVkMzBl YjljYzVhOTk2ZmVjOWJhOGNkY2I0NWQzN2RmMWM5YjU3NzA2MTAxMDNiODE0YjczMmM1OTAKK2No ZWNrc3VtPSI2NDVjMjVmNTYzYjhhZGMwYTgxZGJkNmE0MWNmZmJmNGQzNzA4M2EzODJlMDJkNWQz ZGY0ZjY1YzA5NTE2ZDAwCisgZTU0OWNmOWNmMzU5NGEwMGUyN2I2NTg5ZDQzMjJkNzBlMDcyMGNk ZDIxM2YzOWJlYjQxODFlMDY5MjYyMzBmZgogIDEzNzBjOWE4MTJiMmNmMmE3ZDkyODAyNTEwY2Nh MDA1OGNjMzdlNjZhN2JlZGQ3MDA1MWYwYTM0MDE1MDIyYTMKICA5MDRlMzk2YzI2ZTk5OTJhMTZj ZDFjYzk4OTQ2MDE3MTUzNmJlZDc3MzliZjM2MDQ5ZjZlYjAyMGVlNWQ1NmVjCiAgMjM3MTRlOTlh ODdmNmRlYTgyZThhMDczYzUyNjMyNTE2MWRkNjU0NjI0NTk4MjBiMTZhNjE2MmJlOTE5NTViYiIK CkZyb20gMTBlZTE5Y2M4YzFiYmE2YjQyYjRjNDNjZjRiNDQ1MDdkYWRjMDA5ZiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogb3JlbzYzOSA8b3JlbzYzOTFAZ21haWwuY29tPgpEYXRlOiBT dW4sIDYgTm92IDIwMjIgMTE6MzM6MjkgLTA4MDAKU3ViamVjdDogW1BBVENIIDMzLzM3XSBjcm9z cy1wb3dlcnBjbGUtbGludXgtZ251OiB1cGRhdGUgdG8gZ2NjIDEyLjIuMC4KCi0tLQogc3JjcGtn cy9jcm9zcy1wb3dlcnBjbGUtbGludXgtZ251L3RlbXBsYXRlIHwgMjEgKysrKysrKysrKysrLS0t LS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nyb3NzLXBvd2VycGNsZS1saW51eC1nbnUvdGVtcGxhdGUg Yi9zcmNwa2dzL2Nyb3NzLXBvd2VycGNsZS1saW51eC1nbnUvdGVtcGxhdGUKaW5kZXggOWFlZGUz YzQ2NWNlLi42ODdiZThhNDRjNmMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jvc3MtcG93ZXJwY2xl LWxpbnV4LWdudS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Nyb3NzLXBvd2VycGNsZS1saW51eC1n bnUvdGVtcGxhdGUKQEAgLTEsMTUgKzEsMTYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3Nz LXBvd2VycGNsZS1saW51eC1nbnUnCi1fYmludXRpbHNfdmVyc2lvbj0yLjM1LjEKLV9nY2NfdmVy c2lvbj0xMC4yLjFfcHJlMQotX2dsaWJjX3ZlcnNpb249Mi4zMgorX2JpbnV0aWxzX3ZlcnNpb249 Mi4zOQorX2djY192ZXJzaW9uPTEyLjIuMAorX2dsaWJjX3ZlcnNpb249Mi4zNgogX2xpbnV4X3Zl cnNpb249NS4xMC40CiBwa2duYW1lPWNyb3NzLXBvd2VycGNsZS1saW51eC1nbnUKLXZlcnNpb249 MC4zNAordmVyc2lvbj0wLjM1CiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT12b2lkLWNyb3NzCiBj b25maWd1cmVfYXJncz0iLS1lbmFibGUtc2VjdXJlcGx0IC0tZGlzYWJsZS12dGFibGUtdmVyaWZ5 IgogaG9zdG1ha2VkZXBlbmRzPSJ0ZXhpbmZvIHRhciBnY2Mtb2JqYyBmbGV4IHBlcmwgcHl0aG9u MyIKLW1ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgemxpYi1kZXZlbCBnbXAt ZGV2ZWwgbXBmci1kZXZlbCIKK21ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwg Z21wLWRldmVsIG1wZnItZGV2ZWwKKyB6bGliLWRldmVsIGxpYnpzdGQtZGV2ZWwiCiBkZXBlbmRz PSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKIHNob3J0X2Rlc2M9IlZv aWQgY3Jvc3MgdG9vbGNoYWluIGZvciAke3BrZ25hbWUvY3Jvc3MtfSIKIG1haW50YWluZXI9Ik9y cGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCkBAIC0xNywxMiArMTgsMTIgQEAgbGljZW5z ZT0iR1BMLTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1sYXRlciwgTEdQTC0yLjEtb3ItbGF0ZXIi CiBob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBkaXN0ZmlsZXM9IgogICR7 R05VX1NJVEV9L2JpbnV0aWxzL2JpbnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259LnRhci54egot IGh0dHBzOi8vZGV2LmFscGluZWxpbnV4Lm9yZy9+bmVub2xvZC9nY2MtJHtfZ2NjX3ZlcnNpb259 LnRhci54egorICR7R05VX1NJVEV9L2djYy9nY2MtJHtfZ2NjX3ZlcnNpb259L2djYy0ke19nY2Nf dmVyc2lvbn0udGFyLnh6CiAgJHtHTlVfU0lURX0vZ2xpYmMvZ2xpYmMtJHtfZ2xpYmNfdmVyc2lv bn0udGFyLnh6CiAgJHtLRVJORUxfU0lURX0va2VybmVsL3Y1LngvbGludXgtJHtfbGludXhfdmVy c2lvbn0udGFyLnh6IgotY2hlY2tzdW09IjNjZWQ5MWRiOWJmMDExODJiN2U0MjBlYWI2ODAzOWYy MDgzYWVkMGEyMTRjMDQyNGUyNTdlYWUzZGRlZTg2MDcKLSA3NzJjZmQ1ZDMwZWI5Y2M1YTk5NmZl YzliYThjZGNiNDVkMzdkZjFjOWI1NzcwNjEwMTAzYjgxNGI3MzJjNTkwCi0gMTYyN2VhNTRmNWEx YTg0NjcwMzI1NjMzOTNlMDkwMTA3NzYyNmRjNjZmMzdmMTBlZTYzNjNiYjcyMjIyMjgzNgorY2hl Y2tzdW09IjY0NWMyNWY1NjNiOGFkYzBhODFkYmQ2YTQxY2ZmYmY0ZDM3MDgzYTM4MmUwMmQ1ZDNk ZjRmNjVjMDk1MTZkMDAKKyBlNTQ5Y2Y5Y2YzNTk0YTAwZTI3YjY1ODlkNDMyMmQ3MGUwNzIwY2Rk MjEzZjM5YmViNDE4MWUwNjkyNjIzMGZmCisgMWM5NTlmZWEyNDA5MDYyMjYwNjJjYjRiMWU3ZWJj ZTcxYTlmMGUzYzA4MzZjMDllN2UzNDIzZDQzNGZjZmU3NQogIDkwNGUzOTZjMjZlOTk5MmExNmNk MWNjOTg5NDYwMTcxNTM2YmVkNzczOWJmMzYwNDlmNmViMDIwZWU1ZDU2ZWMiCiBub2Nyb3NzPXll cwogCkBAIC0zNSw2ICszNiw4IEBAIGlmIFsgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiA9ICJwcGNs ZSIgXTsgdGhlbgogCWJyb2tlbj0iQ2FuJ3QgYnVpbGQgY3Jvc3N0b29sY2hhaW4gdG8gaXRzZWxm IgogZmkKIAorYnJva2VuPSJnbGliYyB1c2VzIGJpZy1lbmRpYW4gc3BlY2lmaWMgaW5zdHJ1Y3Rp b25zIG9uIDMyLWJpdCBwb3dlcnBjIgorCiBjcm9zcy1wb3dlcnBjbGUtbGludXgtZ251LWxpYmNf cGFja2FnZSgpIHsKIAlzaG9ydF9kZXNjKz0iIC0gZ2xpYmMgZmlsZXMiCiAJbm9zdHJpcD15ZXMK CkZyb20gN2JhMTI5ZWMyNWQ1YjIwYWZmMGZlZDEyNjg3OWZlYTdmNDczZTA1YSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogb3JlbzYzOSA8b3JlbzYzOTFAZ21haWwuY29tPgpEYXRlOiBT dW4sIDYgTm92IDIwMjIgMTE6MzM6MjkgLTA4MDAKU3ViamVjdDogW1BBVENIIDM0LzM3XSBjcm9z cy1wb3dlcnBjbGUtbGludXgtbXVzbDogdXBkYXRlIHRvIGdjYyAxMi4yLjAuCgotLS0KIHNyY3Br Z3MvY3Jvc3MtcG93ZXJwY2xlLWxpbnV4LW11c2wvdGVtcGxhdGUgfCAxOSArKysrKysrKysrLS0t LS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nyb3NzLXBvd2VycGNsZS1saW51eC1tdXNsL3RlbXBsYXRl IGIvc3JjcGtncy9jcm9zcy1wb3dlcnBjbGUtbGludXgtbXVzbC90ZW1wbGF0ZQppbmRleCAwNDVj ZmRhOTg3ZmUuLmJiOTg0YjljNDJlYiAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy1wb3dlcnBj bGUtbGludXgtbXVzbC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Nyb3NzLXBvd2VycGNsZS1saW51 eC1tdXNsL3RlbXBsYXRlCkBAIC0xLDI4ICsxLDI5IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdj cm9zcy1wb3dlcnBjbGUtbGludXgtbXVzbCcKLV9iaW51dGlsc192ZXJzaW9uPTIuMzUuMQotX2dj Y192ZXJzaW9uPTEwLjIuMV9wcmUxCitfYmludXRpbHNfdmVyc2lvbj0yLjM5CitfZ2NjX3ZlcnNp b249MTIuMi4wCiBfbXVzbF92ZXJzaW9uPTEuMS4yNAogX2xpbnV4X3ZlcnNpb249NS4xMC40CiBw a2duYW1lPWNyb3NzLXBvd2VycGNsZS1saW51eC1tdXNsCi12ZXJzaW9uPTAuMzQKLXJldmlzaW9u PTMKK3ZlcnNpb249MC4zNQorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9dm9pZC1jcm9zcwogY29u ZmlndXJlX2FyZ3M9Ii0tZW5hYmxlLXNlY3VyZXBsdCAtLWRpc2FibGUtdnRhYmxlLXZlcmlmeQog IC0tZGlzYWJsZS1kZWNpbWFsLWZsb2F0IgogaG9zdG1ha2VkZXBlbmRzPSJ0ZXhpbmZvIHRhciBn Y2Mtb2JqYyBmbGV4IHBlcmwgcHl0aG9uMyIKLW1ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJt cGMtZGV2ZWwgemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbCIKK21ha2VkZXBlbmRzPSJp c2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwKKyB6bGliLWRldmVs IGxpYnpzdGQtZGV2ZWwiCiBkZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3Jl dmlzaW9ufSIKIHNob3J0X2Rlc2M9IlZvaWQgY3Jvc3MgdG9vbGNoYWluIGZvciAke3BrZ25hbWUv Y3Jvc3MtfSIKIG1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCi1o b21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBsaWNlbnNlPSJHUEwtMi4wLW9y LWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVyLCBNSVQiCitob21lcGFnZT0iaHR0cHM6Ly93d3cudm9p ZGxpbnV4Lm9yZy8iCiBkaXN0ZmlsZXM9IgogICR7R05VX1NJVEV9L2JpbnV0aWxzL2JpbnV0aWxz LSR7X2JpbnV0aWxzX3ZlcnNpb259LnRhci54egotIGh0dHBzOi8vZGV2LmFscGluZWxpbnV4Lm9y Zy9+bmVub2xvZC9nY2MtJHtfZ2NjX3ZlcnNpb259LnRhci54egorICR7R05VX1NJVEV9L2djYy9n Y2MtJHtfZ2NjX3ZlcnNpb259L2djYy0ke19nY2NfdmVyc2lvbn0udGFyLnh6CiAgaHR0cHM6Ly9t dXNsLmxpYmMub3JnL3JlbGVhc2VzL211c2wtJHtfbXVzbF92ZXJzaW9ufS50YXIuZ3oKICAke0tF Uk5FTF9TSVRFfS9rZXJuZWwvdjUueC9saW51eC0ke19saW51eF92ZXJzaW9ufS50YXIueHoiCi1j aGVja3N1bT0iM2NlZDkxZGI5YmYwMTE4MmI3ZTQyMGVhYjY4MDM5ZjIwODNhZWQwYTIxNGMwNDI0 ZTI1N2VhZTNkZGVlODYwNwotIDc3MmNmZDVkMzBlYjljYzVhOTk2ZmVjOWJhOGNkY2I0NWQzN2Rm MWM5YjU3NzA2MTAxMDNiODE0YjczMmM1OTAKK2NoZWNrc3VtPSI2NDVjMjVmNTYzYjhhZGMwYTgx ZGJkNmE0MWNmZmJmNGQzNzA4M2EzODJlMDJkNWQzZGY0ZjY1YzA5NTE2ZDAwCisgZTU0OWNmOWNm MzU5NGEwMGUyN2I2NTg5ZDQzMjJkNzBlMDcyMGNkZDIxM2YzOWJlYjQxODFlMDY5MjYyMzBmZgog IDEzNzBjOWE4MTJiMmNmMmE3ZDkyODAyNTEwY2NhMDA1OGNjMzdlNjZhN2JlZGQ3MDA1MWYwYTM0 MDE1MDIyYTMKICA5MDRlMzk2YzI2ZTk5OTJhMTZjZDFjYzk4OTQ2MDE3MTUzNmJlZDc3MzliZjM2 MDQ5ZjZlYjAyMGVlNWQ1NmVjIgogbm9jcm9zcz15ZXMKCkZyb20gODI1NDUzMjg4ZGMwMWQyN2Q1 OTU2YTQ1OWViM2I1MDNmY2U4NjEyMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogb3Jl bzYzOSA8b3JlbzYzOTFAZ21haWwuY29tPgpEYXRlOiBTdW4sIDYgTm92IDIwMjIgMTE6MzM6MzAg LTA4MDAKU3ViamVjdDogW1BBVENIIDM1LzM3XSBjcm9zcy14ODZfNjQtbGludXgtZ251OiB1cGRh dGUgdG8gZ2NjIDEyLjIuMC4KCi0tLQogc3JjcGtncy9jcm9zcy14ODZfNjQtbGludXgtZ251L3Rl bXBsYXRlIHwgMTkgKysrKysrKysrKy0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEwIGluc2Vy dGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jcm9zcy14ODZf NjQtbGludXgtZ251L3RlbXBsYXRlIGIvc3JjcGtncy9jcm9zcy14ODZfNjQtbGludXgtZ251L3Rl bXBsYXRlCmluZGV4IDg5MThmM2MyMmExYy4uOTMwYWFmMmE1MDhiIDEwMDY0NAotLS0gYS9zcmNw a2dzL2Nyb3NzLXg4Nl82NC1saW51eC1nbnUvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9jcm9zcy14 ODZfNjQtbGludXgtZ251L3RlbXBsYXRlCkBAIC0xLDE0ICsxLDE1IEBACiAjIFRlbXBsYXRlIGZp bGUgZm9yICdjcm9zcy14ODZfNjQtbGludXgtZ251JwotX2JpbnV0aWxzX3ZlcnNpb249Mi4zNS4x Ci1fZ2NjX3ZlcnNpb249MTAuMi4xX3ByZTEKLV9nbGliY192ZXJzaW9uPTIuMzIKK19iaW51dGls c192ZXJzaW9uPTIuMzkKK19nY2NfdmVyc2lvbj0xMi4yLjAKK19nbGliY192ZXJzaW9uPTIuMzYK IF9saW51eF92ZXJzaW9uPTUuMTAuNAogcGtnbmFtZT1jcm9zcy14ODZfNjQtbGludXgtZ251Ci12 ZXJzaW9uPTAuMzQKK3ZlcnNpb249MC4zNQogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9dm9pZC1j cm9zcwogaG9zdG1ha2VkZXBlbmRzPSJ0ZXhpbmZvIHRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBw ZXJsIHB5dGhvbjMiCi1tYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWIt ZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwiCittYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGli bXBjLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsCisgemxpYi1kZXZlbCBsaWJ6c3RkLWRldmVs IgogZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCiBzaG9y dF9kZXNjPSJWb2lkIGNyb3NzIHRvb2xjaGFpbiBmb3IgJHtwa2duYW1lL2Nyb3NzLX0iCiBtYWlu dGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgpAQCAtMTYsMTIgKzE3LDEy IEBAIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdQTC0zLjAtb3ItbGF0ZXIsIExHUEwtMi4x LW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcvIgogZGlzdGZp bGVzPSIKICAke0dOVV9TSVRFfS9iaW51dGlscy9iaW51dGlscy0ke19iaW51dGlsc192ZXJzaW9u fS50YXIueHoKLSBodHRwczovL2Rldi5hbHBpbmVsaW51eC5vcmcvfm5lbm9sb2QvZ2NjLSR7X2dj Y192ZXJzaW9ufS50YXIueHoKKyAke0dOVV9TSVRFfS9nY2MvZ2NjLSR7X2djY192ZXJzaW9ufS9n Y2MtJHtfZ2NjX3ZlcnNpb259LnRhci54egogICR7R05VX1NJVEV9L2dsaWJjL2dsaWJjLSR7X2ds aWJjX3ZlcnNpb259LnRhci54egogICR7S0VSTkVMX1NJVEV9L2tlcm5lbC92NS54L2xpbnV4LSR7 X2xpbnV4X3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPSIzY2VkOTFkYjliZjAxMTgyYjdlNDIw ZWFiNjgwMzlmMjA4M2FlZDBhMjE0YzA0MjRlMjU3ZWFlM2RkZWU4NjA3Ci0gNzcyY2ZkNWQzMGVi OWNjNWE5OTZmZWM5YmE4Y2RjYjQ1ZDM3ZGYxYzliNTc3MDYxMDEwM2I4MTRiNzMyYzU5MAotIDE2 MjdlYTU0ZjVhMWE4NDY3MDMyNTYzMzkzZTA5MDEwNzc2MjZkYzY2ZjM3ZjEwZWU2MzYzYmI3MjIy MjI4MzYKK2NoZWNrc3VtPSI2NDVjMjVmNTYzYjhhZGMwYTgxZGJkNmE0MWNmZmJmNGQzNzA4M2Ez ODJlMDJkNWQzZGY0ZjY1YzA5NTE2ZDAwCisgZTU0OWNmOWNmMzU5NGEwMGUyN2I2NTg5ZDQzMjJk NzBlMDcyMGNkZDIxM2YzOWJlYjQxODFlMDY5MjYyMzBmZgorIDFjOTU5ZmVhMjQwOTA2MjI2MDYy Y2I0YjFlN2ViY2U3MWE5ZjBlM2MwODM2YzA5ZTdlMzQyM2Q0MzRmY2ZlNzUKICA5MDRlMzk2YzI2 ZTk5OTJhMTZjZDFjYzk4OTQ2MDE3MTUzNmJlZDc3MzliZjM2MDQ5ZjZlYjAyMGVlNWQ1NmVjIgog bm9jcm9zcz15ZXMKIAoKRnJvbSA5NDZiZGI2MjQ1NWNiNzdlNTI1N2U0NDJlMTEzYmQ2NTYwM2I1 YjBkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDxvcmVvNjM5MUBnbWFp bC5jb20+CkRhdGU6IFN1biwgNiBOb3YgMjAyMiAxMTozMzozMCAtMDgwMApTdWJqZWN0OiBbUEFU Q0ggMzYvMzddIGNyb3NzLXg4Nl82NC1saW51eC1tdXNsOiB1cGRhdGUgdG8gZ2NjIDEyLjIuMC4K Ci0tLQogc3JjcGtncy9jcm9zcy14ODZfNjQtbGludXgtbXVzbC90ZW1wbGF0ZSB8IDE5ICsrKysr KysrKystLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCA5IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY3Jvc3MteDg2XzY0LWxpbnV4LW11c2wvdGVt cGxhdGUgYi9zcmNwa2dzL2Nyb3NzLXg4Nl82NC1saW51eC1tdXNsL3RlbXBsYXRlCmluZGV4IGE5 NDFlN2UwMmY2Zi4uYWM1YjFjNDZhYjgyIDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nyb3NzLXg4Nl82 NC1saW51eC1tdXNsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3MteDg2XzY0LWxpbnV4LW11 c2wvdGVtcGxhdGUKQEAgLTEsMjggKzEsMjkgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3Nz LXg4Nl82NC1saW51eC1tdXNsJwotX2JpbnV0aWxzX3ZlcnNpb249Mi4zNS4xCi1fZ2NjX3ZlcnNp b249MTAuMi4xX3ByZTEKK19iaW51dGlsc192ZXJzaW9uPTIuMzkKK19nY2NfdmVyc2lvbj0xMi4y LjAKIF9tdXNsX3ZlcnNpb249MS4xLjI0CiBfbGludXhfdmVyc2lvbj01LjEwLjQKIF9saWJ1Y29u dGV4dF92ZXJzaW9uPTEuMAogcGtnbmFtZT1jcm9zcy14ODZfNjQtbGludXgtbXVzbAotdmVyc2lv bj0wLjM0Ci1yZXZpc2lvbj0zCit2ZXJzaW9uPTAuMzUKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxl PXZvaWQtY3Jvc3MKIGhvc3RtYWtlZGVwZW5kcz0idGV4aW5mbyB0YXIgZ2NjLW9iamMgZ2NjLWdv IGZsZXggcGVybCBweXRob24zIgotbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZl bCB6bGliLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIgorbWFrZWRlcGVuZHM9ImlzbDE1LWRl dmVsIGxpYm1wYy1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbAorIHpsaWItZGV2ZWwgbGlienN0 ZC1kZXZlbCIKIGRlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259 Igogc2hvcnRfZGVzYz0iVm9pZCBjcm9zcyB0b29sY2hhaW4gZm9yICR7cGtnbmFtZS9jcm9zcy19 IgogbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKLWhvbWVwYWdl PSJodHRwczovL3d3dy52b2lkbGludXgub3JnLyIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIs IEdQTC0zLjAtb3ItbGF0ZXIsIE1JVCIKK2hvbWVwYWdlPSJodHRwczovL3d3dy52b2lkbGludXgu b3JnLyIKIGRpc3RmaWxlcz0iCiAgJHtHTlVfU0lURX0vYmludXRpbHMvYmludXRpbHMtJHtfYmlu dXRpbHNfdmVyc2lvbn0udGFyLnh6Ci0gaHR0cHM6Ly9kZXYuYWxwaW5lbGludXgub3JnL35uZW5v bG9kL2djYy0ke19nY2NfdmVyc2lvbn0udGFyLnh6CisgJHtHTlVfU0lURX0vZ2NjL2djYy0ke19n Y2NfdmVyc2lvbn0vZ2NjLSR7X2djY192ZXJzaW9ufS50YXIueHoKICBodHRwczovL211c2wubGli Yy5vcmcvcmVsZWFzZXMvbXVzbC0ke19tdXNsX3ZlcnNpb259LnRhci5negogICR7S0VSTkVMX1NJ VEV9L2tlcm5lbC92NS54L2xpbnV4LSR7X2xpbnV4X3ZlcnNpb259LnRhci54egogIGh0dHBzOi8v Z2l0aHViLmNvbS9rYW5paW5pL2xpYnVjb250ZXh0L2FyY2hpdmUvbGlidWNvbnRleHQtJHtfbGli dWNvbnRleHRfdmVyc2lvbn0udGFyLmd6IgotY2hlY2tzdW09IjNjZWQ5MWRiOWJmMDExODJiN2U0 MjBlYWI2ODAzOWYyMDgzYWVkMGEyMTRjMDQyNGUyNTdlYWUzZGRlZTg2MDcKLSA3NzJjZmQ1ZDMw ZWI5Y2M1YTk5NmZlYzliYThjZGNiNDVkMzdkZjFjOWI1NzcwNjEwMTAzYjgxNGI3MzJjNTkwCitj aGVja3N1bT0iNjQ1YzI1ZjU2M2I4YWRjMGE4MWRiZDZhNDFjZmZiZjRkMzcwODNhMzgyZTAyZDVk M2RmNGY2NWMwOTUxNmQwMAorIGU1NDljZjljZjM1OTRhMDBlMjdiNjU4OWQ0MzIyZDcwZTA3MjBj ZGQyMTNmMzliZWI0MTgxZTA2OTI2MjMwZmYKICAxMzcwYzlhODEyYjJjZjJhN2Q5MjgwMjUxMGNj YTAwNThjYzM3ZTY2YTdiZWRkNzAwNTFmMGEzNDAxNTAyMmEzCiAgOTA0ZTM5NmMyNmU5OTkyYTE2 Y2QxY2M5ODk0NjAxNzE1MzZiZWQ3NzM5YmYzNjA0OWY2ZWIwMjBlZTVkNTZlYwogIDIzNzE0ZTk5 YTg3ZjZkZWE4MmU4YTA3M2M1MjYzMjUxNjFkZDY1NDYyNDU5ODIwYjE2YTYxNjJiZTkxOTU1YmIi CgpGcm9tIDc1OTM1MzljM2FjYmNlY2UzNmNkZmI4M2UwNmQ5M2YyMDUzZDg5Y2QgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IG9yZW82MzkgPG9yZW82MzkxQGdtYWlsLmNvbT4KRGF0ZTog RnJpLCAxOCBOb3YgMjAyMiAwMjowMToxOSAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMzcvMzddIGNy b3NzLXZwa2ctZHVtbXk6IHVwZGF0ZSB0byAwLjM5LgoKLS0tCiBzcmNwa2dzL2Nyb3NzLXZwa2ct ZHVtbXkvdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygr KSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nyb3NzLXZwa2ctZHVtbXkv dGVtcGxhdGUgYi9zcmNwa2dzL2Nyb3NzLXZwa2ctZHVtbXkvdGVtcGxhdGUKaW5kZXggZDgzZTM4 ZGM2M2FjLi5hZWFmYjc0OWRkNWYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jvc3MtdnBrZy1kdW1t eS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Nyb3NzLXZwa2ctZHVtbXkvdGVtcGxhdGUKQEAgLTEs NiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdjcm9zcy12cGtnLWR1bW15JwogcGtnbmFt ZT1jcm9zcy12cGtnLWR1bW15Ci12ZXJzaW9uPTAuMzgKK3ZlcnNpb249MC4zOQogcmV2aXNpb249 MQogYnVpbGRfc3R5bGU9bWV0YQogc2hvcnRfZGVzYz0iRHVtbXkgbWV0YS1wa2cgZm9yIGNyb3Nz IGJ1aWxkaW5nIHBhY2thZ2VzIHdpdGggeGJwcy1zcmMiCkBAIC01NCw4ICs1NCw4IEBAIGNvbmZs aWN0cz0iCiAJZ2NjLW9iamMrKz49MCIKIHNobGliX3Byb3ZpZGVzPSIKIAlsaWJnY2Nfcy5zby4x Ci0JbGliZ25hdC0xMC5zbwotCWxpYmduYXJsLTEwLnNvCisJbGliZ25hdC0xMi5zbworCWxpYmdu YXJsLTEyLnNvCiAJbGlic3RkYysrLnNvLjYKIAlsaWJnZm9ydHJhbi5zby41IgogCg== --===============6169556125541534490==--