From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (qmail 16131 invoked from network); 19 Nov 2022 22:37:49 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 19 Nov 2022 22:37:49 -0000 Content-Type: multipart/mixed; boundary="===============7440409913791559572==" 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: Sat, 19 Nov 2022 23:37:49 +0100 List-Id: Message-ID: <20221119223749.k7oCfPJksK4vlsT1CoYZUrLjfMxc3E1o32sx9md05Mo@z> GitHub notification mails are now in MIME to allow UTF8. --===============7440409913791559572== 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 --===============7440409913791559572== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-gcc11-34902.patch" RnJvbSAyMWM2M2YzMTQ4NWJiNDAxODRhNzRiMGEwZTgyMzJiY2JmNWEwZTZhIE1vbiBTZXAgMTcg 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 cm9tIGFiYWIwZjM2MzZlY2U4ZGM1NTYwMWM0OWJmZGJhZmNmNGU5NmM0MTUgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IG9yZW82MzkgPG9yZW82MzkxQGdtYWlsLmNvbT4KRGF0ZTogU2F0 LCA1IE5vdiAyMDIyIDExOjMzOjExIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwMi8zN10gZ2RiOiBy ZXNvbHZlIGNvbmZsaWN0IHdpdGggYmludXRpbHMgMi4zOQoKLS0tCiBzcmNwa2dzL2dkYi90ZW1w bGF0ZSB8IDUgKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDIgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nZGIvdGVtcGxhdGUgYi9zcmNwa2dzL2dkYi90 ZW1wbGF0ZQppbmRleCA5YzVmMTdmZmM1MTkuLmI2NjYzNDhmZWExOSAxMDA2NDQKLS0tIGEvc3Jj cGtncy9nZGIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nZGIvdGVtcGxhdGUKQEAgLTEsNyArMSw3 IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnZGInCiBwa2duYW1lPWdkYgogdmVyc2lvbj0xMi4x Ci1yZXZpc2lvbj0yCityZXZpc2lvbj0zCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBweWNv bXBpbGVfZGlycz0iL3Vzci9zaGFyZS9nZGIvcHl0aG9uIgogY29uZmlndXJlX2FyZ3M9Ii0tZGlz YWJsZS13ZXJyb3IgLS1kaXNhYmxlLW5scyAtLXdpdGgtc3lzdGVtLXJlYWRsaW5lCkBAIC00OCw3 ICs0OCw4IEBAIHZvcHRfY29uZmxpY3QgZGVidWdpbmZvZCBzdGF0aWMKIAogcG9zdF9pbnN0YWxs KCkgewogCSMgcmVzb2x2ZSBjb25mbGljdHMgd2l0aCBiaW51dGlscwotCXJtIC1yICR7REVTVERJ Un0vdXNyL3tpbmNsdWRlLGxpYixzaGFyZS9pbmZvL2JmZC5pbmZvKn0KKwlybSAtcmYgJHtERVNU RElSfS91c3Ive2luY2x1ZGUsbGlifQorCXJtIC1yZiAke0RFU1RESVJ9L3Vzci9zaGFyZS9pbmZv L3tiZmQsY3RmLXNwZWN9LmluZm8qCiB9CiAKIGdkYi1jb21tb25fcGFja2FnZSgpIHsKCkZyb20g M2FhOGVhNGIwNGUzNDg0NGI1ZDhjNWM2MzM3MTJiZDc3OGJhZmNhMCBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogb3JlbzYzOSA8b3JlbzYzOTFAZ21haWwuY29tPgpEYXRlOiBTYXQsIDUg Tm92IDIwMjIgMTE6MzM6MTEgLTA3MDAKU3ViamVjdDogW1BBVENIIDAzLzM3XSBnY2M6IHVwZGF0 ZSB0byAxMi4yLjAuCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IDEwICstLQogc3JjcGtncy9nY2MvZmlsZXMvZ2NjZ28tbXVzbC5wYXRjaCAgICAg ICAgICAgIHwgNzEgKysrLS0tLS0tLS0tLS0tCiBzcmNwa2dzL2djYy9maWxlcy9saWJnbmFybC1t dXNsLnBhdGNoICAgICAgICAgfCAxOCArKy0tCiBzcmNwa2dzL2djYy9maWxlcy9saWJzc3AtbXVz bC5wYXRjaCAgICAgICAgICAgfCAxMCArLS0KIHNyY3BrZ3MvZ2NjL3BhdGNoZXMvbGliZmZpX2du dWxpbnV4LnBhdGNoICAgICB8IDExIC0tLQogLi4uL2djYy9wYXRjaGVzL2xpYmdjYy1pYm0xMjgt bm8tdGFnLnBhdGNoICAgIHwgMTAgKystCiBzcmNwa2dzL2djYy9wYXRjaGVzL21pcHMtc2dpZGVm c19oLnBhdGNoICAgICAgfCAgMiArLQogc3JjcGtncy9nY2MvdGVtcGxhdGUgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgODcgKysrKysrKysrLS0tLS0tLS0tLQogOCBmaWxlcyBjaGFuZ2VkLCA4 MCBpbnNlcnRpb25zKCspLCAxMzkgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9nY2MvcGF0Y2hlcy9saWJmZmlfZ251bGludXgucGF0Y2gKCmRpZmYgLS1naXQgYS9jb21t b24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCAwNzI5Njc2MmZjYzQuLmE1ZjRmMzI1N2Qz MyAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC02MCw3 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 CgpGcm9tIDk2MzBlYTVjNWI1ZGEzMmY3OWFkMDNiMGE2M2JjNTk1ZDJhYzM1MmUgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IG9yZW82MzkgPG9yZW82MzkxQGdtYWlsLmNvbT4KRGF0ZTog U2F0LCA1IE5vdiAyMDIyIDExOjMzOjExIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwNC8zN10gbGli dG9vbDogcmVidWlsZCBmb3IgZ2NjIDEyCgotLS0KIHNyY3BrZ3MvbGlidG9vbC90ZW1wbGF0ZSB8 IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvbGlidG9vbC90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGlidG9vbC90ZW1w bGF0ZQppbmRleCBmYzVjNTNhOWMzZTkuLmFlYmFkOTI5NGVlZiAxMDA2NDQKLS0tIGEvc3JjcGtn cy9saWJ0b29sL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbGlidG9vbC90ZW1wbGF0ZQpAQCAtMSw3 ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2xpYnRvb2wnCiBwa2duYW1lPWxpYnRvb2wK IHZlcnNpb249Mi40LjcKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPWdudS1j b25maWd1cmUKIGhvc3RtYWtlZGVwZW5kcz0idGV4aW5mbyBwZXJsIGF1dG9tYWtlIGhlbHAybWFu IHh6IgogZGVwZW5kcz0idGFyIHNlZCIKCkZyb20gZmE3YWJmMWIxMDJlNDcyMjM1NTZlY2IzOWZi MGY4NTViNDY0MTU5ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogb3JlbzYzOSA8b3Jl bzYzOTFAZ21haWwuY29tPgpEYXRlOiBTYXQsIDUgTm92IDIwMjIgMTE6MzM6MTIgLTA3MDAKU3Vi amVjdDogW1BBVENIIDA1LzM3XSBsaWJpYmVydHktZGV2ZWw6IHVwZGF0ZSB0byAyMDIyMDcxMy4K Ci0tLQogc3JjcGtncy9saWJpYmVydHktZGV2ZWwvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBj aGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9saWJpYmVydHktZGV2ZWwvdGVtcGxhdGUgYi9zcmNwa2dzL2xpYmliZXJ0eS1kZXZlbC90 ZW1wbGF0ZQppbmRleCA3ZTAxYmJiODUxZmQuLmQ5NjE4ZTM4MDZiYSAxMDA2NDQKLS0tIGEvc3Jj cGtncy9saWJpYmVydHktZGV2ZWwvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9saWJpYmVydHktZGV2 ZWwvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdsaWJpYmVy dHktZGV2ZWwnCiBwa2duYW1lPWxpYmliZXJ0eS1kZXZlbAotdmVyc2lvbj0yMDIxMDEwNgordmVy c2lvbj0yMDIyMDcxMwogcmV2aXNpb249MQogYnVpbGRfd3Jrc3JjPWxpYmliZXJ0eQogYnVpbGRf c3R5bGU9Z251LWNvbmZpZ3VyZQpAQCAtMTAsNyArMTAsNyBAQCBtYWludGFpbmVyPSJPcnBoYW5l ZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTMuMC1vci1sYXRlciIKIGhv bWVwYWdlPSJodHRwOi8vZ2NjLmdudS5vcmcvIgogZGlzdGZpbGVzPSJodHRwOi8vZGViLmRlYmlh bi5vcmcvZGViaWFuL3Bvb2wvbWFpbi9saWJpL2xpYmliZXJ0eS9saWJpYmVydHlfJHt2ZXJzaW9u fS5vcmlnLnRhci54eiIKLWNoZWNrc3VtPTlkZjE1M2Q2OTkxNGMwZjVhOTE0NWUwYWJiYjI0OGU3 MmZlZWJhYjY3NzdjNzEyYTMwZjFjM2I4YzE5MDQ3ZDQKK2NoZWNrc3VtPWI1OTA1MGY0OGM4YTBm OWM5ZTZmYmE1ZDE3YzdhNGYxMWQxMzI5ZGUwYzBkY2E3MzMxYjc2N2E2ZDJiYmU4ZDkKIGNvbmZs aWN0cz0iYmludXRpbHMtZGV2ZWw8PTIuMzUuMV8zIgogCiBDRkxBR1M9Ii1mUElDIgoKRnJvbSBj ZGU5ZDhkMWU2ZDdhM2VkOWQ1OTllMTc5NmQwZTUzNGZjZjBhMmI5IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDxvcmVvNjM5MUBnbWFpbC5jb20+CkRhdGU6IFNhdCwgNSBO b3YgMjAyMiAxMTozMzoxMiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDYvMzddIGdsaWJjOiB1cGRh dGUgdG8gMi4zNi4KCi0tLQogY29tbW9uL3NobGlicyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgNjAgKy0KIC4uLmUtaGFzaC1zdHlsZS1ib3RoLWZvci1idWlsZGluZy1nbGli Yy5wYXRjaCB8ICAgIDUxICsKIHNyY3BrZ3MvZ2xpYmMvcGF0Y2hlcy9naXQtdXBkYXRlcy5wYXRj aCAgICAgICB8IDEwOTAwICsrKysrKysrKysrKysrKysKIC4uLi9nbGliYy9wYXRjaGVzL2dsaWJj LWMtdXRmOC1sb2NhbGUucGF0Y2ggICB8ICAgMjg2IC0KIHNyY3BrZ3MvZ2xpYmMvdGVtcGxhdGUg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDY2ICstCiA1IGZpbGVzIGNoYW5nZWQsIDExMDEw IGluc2VydGlvbnMoKyksIDM1MyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2dsaWJjL3BhdGNoZXMvMDAwMS1SZXZlcnQtRG8tbm90LXVzZS1oYXNoLXN0eWxlLWJvdGgt Zm9yLWJ1aWxkaW5nLWdsaWJjLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9nbGli Yy9wYXRjaGVzL2dpdC11cGRhdGVzLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9n bGliYy9wYXRjaGVzL2dsaWJjLWMtdXRmOC1sb2NhbGUucGF0Y2gKCmRpZmYgLS1naXQgYS9jb21t b24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCBhNWY0ZjMyNTdkMzMuLmE5NmZlNTc3ZTkz YiAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC0xNywz 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 Li43NTU1MWJlMzJiYjUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2dsaWJjL3BhdGNoZXMv Z2l0LXVwZGF0ZXMucGF0Y2gKQEAgLTAsMCArMSwxMDkwMCBAQAorRnJvbSBjM2ZkYTQ4OWNmZGIy MjYwZjlmZWM3MDZlNmZkNzI1OTg1OGM0NDY3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJv bTogVG9tIEhvbmVybWFubiA8dG9tQGhvbmVybWFubi5uZXQ+CitEYXRlOiBTdW4sIDI0IEp1bCAy MDIyIDAxOjExOjQzIC0wNDAwCitTdWJqZWN0OiBbUEFUQ0ggMDEvNzJdIHN0ZGxpYjogU3VwcHJl c3MgZ2NjIGRpYWdub3N0aWMgdGhhdCBjaGFyOF90IGlzIGEKKyBrZXl3b3JkIGluIEMrKzIwIGlu IHVjaGFyLmguCitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBj aGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK2djYyAxMyBp c3N1ZXMgdGhlIGZvbGxvd2luZyBkaWFnbm9zdGljIGZvciB0aGUgdWNoYXIuaCBoZWFkZXIgd2hl biB0aGUKKy1XYysrMjAtY29tcGF0IG9wdGlvbiBpcyBlbmFibGVkIGluIEMrKyBtb2RlcyB0aGF0 IGRvIG5vdCBlbmFibGUgY2hhcjhfdAorYXMgYSBidWlsdGluIHR5cGUgKEMrKzE3IGFuZCBlYXJs aWVyIGJ5IGRlZmF1bHQ7IHN1YmplY3QgdG8gX0dOVV9TT1VSQ0UKK2FuZCB0aGUgZ2NjIC1mW25v LV1jaGFyOF90IG9wdGlvbikuCisgIHdhcm5pbmc6IGlkZW50aWZpZXIg4oCYY2hhcjhfdOKAmSBp cyBhIGtleXdvcmQgaW4gQysrMjAgWy1XYysrMjAtY29tcGF0XQorVGhpcyBjaGFuZ2UgbW9kaWZp ZXMgdGhlIHVjaGFyLmggaGVhZGVyIHRvIHN1cHByZXNzIHRoZSBkaWFnbm9zdGljIHRocm91Z2gK K3RoZSB1c2Ugb2YgJyNwcmFnbWEgR0NDIGRpYWdub3N0aWMnIGRpcmVjdGl2ZXMgZm9yIGdjYyAx MCBhbmQgbGF0ZXIgKHRoZQorLVdjKysyMC1jb21wYXQgb3B0aW9uIHdhcyBhZGRlZCBpbiBnY2Mg dmVyc2lvbiAxMCkuICBVbmZvcnR1bmF0ZWx5LCBhIGJ1ZworaW4gZ2NjIGN1cnJlbnRseSBwcmV2 ZW50cyB0aG9zZSBkaXJlY3RpdmVzIGZyb20gaGF2aW5nIHRoZSBpbnRlbmRlZCBlZmZlY3QKK2Fz IHJlcG9ydGVkIGF0IGh0dHBzOi8vZ2NjLmdudS5vcmcvUFIxMDY0MjMuICBBIHBhdGNoIGZvciB0 aGF0IGlzc3VlIGhhcworYmVlbiBzdWJtaXR0ZWQgYW5kIGlzIGF2YWlsYWJsZSBpbiB0aGUgZW1h aWwgdGhyZWFkIGFyY2hpdmUgbGlua2VkIGJlbG93LgorICBodHRwczovL2djYy5nbnUub3JnL3Bp cGVybWFpbC9nY2MtcGF0Y2hlcy8yMDIyLUp1bHkvNTk4NzM2Lmh0bWwKKworKGNoZXJyeSBwaWNr ZWQgZnJvbSBjb21taXQgODI1Zjg0ZjEzM2JkODQwMzQ3ZGM0OTIyOWI2ZDgzMWYwN2QwNDc3NSkK Ky0tLQorIHdjc21icy91Y2hhci5oIHwgOCArKysrKysrKworIDEgZmlsZSBjaGFuZ2VkLCA4IGlu c2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL3djc21icy91Y2hhci5oIGIvd2NzbWJzL3VjaGFy LmgKK2luZGV4IGMzN2U4NjE5YTAuLjVmNzEzOWYyNzkgMTAwNjQ0CistLS0gYS93Y3NtYnMvdWNo YXIuaAorKysrIGIvd2NzbWJzL3VjaGFyLmgKK0BAIC0zNCw4ICszNCwxNiBAQAorIC8qIERlY2xh cmUgdGhlIEMyeCBjaGFyOF90IHR5cGVkZWYgaW4gQzJ4IG1vZGVzLCBidXQgb25seSBpZiB0aGUg QysrCisgICBfX2NwcF9jaGFyOF90IGZlYXR1cmUgdGVzdCBtYWNybyBpcyBub3QgZGVmaW5lZC4g ICovCisgI2lmIF9fR0xJQkNfVVNFIChJU09DMlgpICYmICFkZWZpbmVkIF9fY3BwX2NoYXI4X3QK KysjaWYgX19HTlVDX1BSRVJFUSAoMTAsIDApICYmIGRlZmluZWQgX19jcGx1c3BsdXMKKysvKiBT dXBwcmVzcyB0aGUgZGlhZ25vc3RpYyByZWdhcmRpbmcgY2hhcjhfdCBiZWluZyBhIGtleXdvcmQg aW4gQysrMjAuICAqLworKyMgcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKKysjIHByYWdtYSBH Q0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2MrKzIwLWNvbXBhdCIKKysjZW5kaWYKKyAvKiBEZWZp bmUgdGhlIDgtYml0IGNoYXJhY3RlciB0eXBlLiAgKi8KKyB0eXBlZGVmIHVuc2lnbmVkIGNoYXIg Y2hhcjhfdDsKKysjaWYgX19HTlVDX1BSRVJFUSAoMTAsIDApICYmIGRlZmluZWQgX19jcGx1c3Bs dXMKKysjIHByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKKysjZW5kaWYKKyAjZW5kaWYKKyAKKyAj aWZuZGVmIF9fVVNFX0lTT0NYWDExCistLSAKKzIuMzguMQorCisKK0Zyb20gMzNmMWI0YzE0NTJi MzM5OTFlNjcwZjYzNmViZTk4YjkwYTQwNWUxMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy b206ICJILkouIEx1IiA8aGpsLnRvb2xzQGdtYWlsLmNvbT4KK0RhdGU6IEZyaSwgMjkgSnVsIDIw MjIgMTA6NTA6NTYgLTA3MDAKK1N1YmplY3Q6IFtQQVRDSCAwMi83Ml0gd2NzbWJzOiBBZGQgbWlz c2luZyB0ZXN0LWM4cnRvbWIvdGVzdC1tYnJ0b2M4CisgZGVwZW5kZW5jeQorCitNYWtlIHRlc3Qt YzhydG9tYi5vdXQgYW5kIHRlc3QtbWJydG9jOC5vdXQgZGVwZW5kIG9uICQoZ2VuLWxvY2FsZXMp IGZvcgorCisgIHhzZXRsb2NhbGUgKExDX0FMTCwgImRlX0RFLlVURi04Iik7CisgIHhzZXRsb2Nh bGUgKExDX0FMTCwgInpoX0hLLkJJRzUtSEtTQ1MiKTsKKworUmV2aWV3ZWQtYnk6IFN1bmlsIEsg UGFuZGV5IDxza3Bna3AyQGdtYWlsLmNvbT4KK1Jldmlld2VkLWJ5OiBDYXJsb3MgTydEb25lbGwg PGNhcmxvc0ByZWRoYXQuY29tPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgZTAzZjVjY2Q2 Y2M4ZjgyOTQxNjE1NmVhYzc1YWNlZTUwMTYyNmMxZikKKy0tLQorIHdjc21icy9NYWtlZmlsZSB8 IDIgKysKKyAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS93 Y3NtYnMvTWFrZWZpbGUgYi93Y3NtYnMvTWFrZWZpbGUKK2luZGV4IGU2YjllODc0M2EuLjNkMTlk NTU1NmYgMTAwNjQ0CistLS0gYS93Y3NtYnMvTWFrZWZpbGUKKysrKyBiL3djc21icy9NYWtlZmls ZQorQEAgLTczLDYgKzczLDggQEAgJChvYmpwZngpdHN0LXdjc3RvbC1sb2NhbGUub3V0OiAkKGdl bi1sb2NhbGVzKQorICQob2JqcGZ4KXRzdC13Y3N0b2QtbmFuLWxvY2FsZS5vdXQ6ICQoZ2VuLWxv Y2FsZXMpCisgJChvYmpwZngpdHN0LWMxNi1zdXJyb2dhdGUub3V0OiAkKGdlbi1sb2NhbGVzKQor ICQob2JqcGZ4KXRzdC1jMzItc3RhdGUub3V0OiAkKGdlbi1sb2NhbGVzKQorKyQob2JqcGZ4KXRl c3QtYzhydG9tYi5vdXQ6ICQoZ2VuLWxvY2FsZXMpCisrJChvYmpwZngpdGVzdC1tYnJ0b2M4Lm91 dDogJChnZW4tbG9jYWxlcykKKyBlbmRpZgorIAorICQob2JqcGZ4KXRzdC13Y3N0b2Qtcm91bmQ6 ICQobGlibSkKKy0tIAorMi4zOC4xCisKKworRnJvbSBjNzRiYjkzY2ZkYjA0ZDQ5MTU1YjBlMzA5 ODNhM2M4NjYxNjdiYmNhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRmxvcmlhbiBX ZWltZXIgPGZ3ZWltZXJAcmVkaGF0LmNvbT4KK0RhdGU6IFRodSwgNCBBdWcgMjAyMiAxNzo1NDo0 OCArMDIwMAorU3ViamVjdDogW1BBVENIIDAzLzcyXSBkbGZjbjogUGFzcyBjYWxsZXIgcG9pbnRl ciB0byBzdGF0aWMgZGxvcGVuCisgaW1wbGVtZW50YXRpb24gKGJ1ZyAyOTQ0NikKKworRml4ZXMg Y29tbWl0IDBjMWMzYTc3MWVjZWVjNDZlNjZjZTExODNjZjk4OGUyMzAzYmQzNzMgKCJkbGZjbjog TW92ZQorZGxvcGVuIGludG8gbGliYyIpLgorCisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBl ZDAxODVlNDEyOTEzMGNiZTA4MWMyMjFlZmI3NThmYjQwMDYyM2NlKQorLS0tCisgTkVXUyAgICAg ICAgICAgfCA3ICsrKysrKysKKyBkbGZjbi9kbG9wZW4uYyB8IDIgKy0KKyAyIGZpbGVzIGNoYW5n ZWQsIDggaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvTkVXUyBi L05FV1MKK2luZGV4IGY2MWU1MjFmYzguLjE1ZjNkZDJjZGIgMTAwNjQ0CistLS0gYS9ORVdTCisr KysgYi9ORVdTCitAQCAtNCw2ICs0LDEzIEBAIFNlZSB0aGUgZW5kIGZvciBjb3B5aW5nIGNvbmRp dGlvbnMuCisgCisgUGxlYXNlIHNlbmQgR05VIEMgbGlicmFyeSBidWcgcmVwb3J0cyB2aWEgPGh0 dHBzOi8vc291cmNld2FyZS5vcmcvYnVnemlsbGEvPgorIHVzaW5nIGBnbGliYycgaW4gdGhlICJw cm9kdWN0IiBmaWVsZC4KKysMCisrVmVyc2lvbiAyLjM2LjEKKysKKytUaGUgZm9sbG93aW5nIGJ1 Z3MgYXJlIHJlc29sdmVkIHdpdGggdGhpcyByZWxlYXNlOgorKworKyAgWzI5NDQ2XSBfZGxvcGVu IG5vdyBpZ25vcmVzIGRsX2NhbGxlciBhcmd1bWVudCBpbiBzdGF0aWMgbW9kZQorKworIAwKKyBW ZXJzaW9uIDIuMzYKKyAKK2RpZmYgLS1naXQgYS9kbGZjbi9kbG9wZW4uYyBiL2RsZmNuL2Rsb3Bl bi5jCitpbmRleCAyNjk2ZGRlNGIxLi45YjA3YjRlMTMyIDEwMDY0NAorLS0tIGEvZGxmY24vZGxv cGVuLmMKKysrKyBiL2RsZmNuL2Rsb3Blbi5jCitAQCAtOTAsNyArOTAsNyBAQCBjb21wYXRfc3lt Ym9sIChsaWJkbCwgX19fZGxvcGVuLCBkbG9wZW4sIEdMSUJDXzJfMSk7Cisgdm9pZCAqCisgX19k bG9wZW4gKGNvbnN0IGNoYXIgKmZpbGUsIGludCBtb2RlLCB2b2lkICpkbF9jYWxsZXIpCisgewor LSAgcmV0dXJuIGRsb3Blbl9pbXBsZW1lbnRhdGlvbiAoZmlsZSwgbW9kZSwgUkVUVVJOX0FERFJF U1MgKDApKTsKKysgIHJldHVybiBkbG9wZW5faW1wbGVtZW50YXRpb24gKGZpbGUsIG1vZGUsIGRs X2NhbGxlcik7CisgfQorIAorIHZvaWQgKgorLS0gCisyLjM4LjEKKworCitGcm9tIGFjNDdkOGY2 Y2Y5NzQ0MTM5YWRiMTJmNTQwZmI5Y2M2MTBjYWM1NzkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CitGcm9tOiBKb3NlcGggTXllcnMgPGpvc2VwaEBjb2Rlc291cmNlcnkuY29tPgorRGF0ZTogVHVl LCAyIEF1ZyAyMDIyIDIxOjA1OjA3ICswMDAwCitTdWJqZWN0OiBbUEFUQ0ggMDQvNzJdIFVwZGF0 ZSBzeXNjYWxsIGxpc3RzIGZvciBMaW51eCA1LjE5CisKK0xpbnV4IDUuMTkgaGFzIG5vIG5ldyBz eXNjYWxscywgYnV0IGVuYWJsZXMgbWVtZmRfc2VjcmV0IGluIHRoZSB1YXBpCitoZWFkZXJzIGZv ciBSSVNDLVYuICBVcGRhdGUgdGhlIHZlcnNpb24gbnVtYmVyIGluIHN5c2NhbGwtbmFtZXMubGlz dAordG8gcmVmbGVjdCB0aGF0IGl0IGlzIHN0aWxsIGN1cnJlbnQgZm9yIDUuMTkgYW5kIHJlZ2Vu ZXJhdGUgdGhlCithcmNoLXN5c2NhbGwuaCBoZWFkZXJzIHdpdGggYnVpbGQtbWFueS1nbGliY3Mu cHkgdXBkYXRlLXN5c2NhbGxzLgorCitUZXN0ZWQgd2l0aCBidWlsZC1tYW55LWdsaWJjcy5weS4K KworKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgZmNjYWRjZGY1YmVkN2VlNjdhNmNlZjQ3MTRl MGI0NzdkNmM4NDcyYykKKy0tLQorIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3Jpc2N2L3J2MzIv YXJjaC1zeXNjYWxsLmggfCAxICsKKyBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9yaXNjdi9ydjY0 L2FyY2gtc3lzY2FsbC5oIHwgMSArCisgc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzY2FsbC1u YW1lcy5saXN0ICAgICAgICB8IDQgKystLQorIDMgZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25z KCspLCAyIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc3lzZGVwcy91bml4L3N5c3YvbGlu dXgvcmlzY3YvcnYzMi9hcmNoLXN5c2NhbGwuaCBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3Jp c2N2L3J2MzIvYXJjaC1zeXNjYWxsLmgKK2luZGV4IGJmNGJlODBmOGQuLjIwMjUyMGVlMjUgMTAw NjQ0CistLS0gYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9yaXNjdi9ydjMyL2FyY2gtc3lzY2Fs bC5oCisrKysgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9yaXNjdi9ydjMyL2FyY2gtc3lzY2Fs bC5oCitAQCAtMTIyLDYgKzEyMiw3IEBACisgI2RlZmluZSBfX05SX21iaW5kIDIzNQorICNkZWZp bmUgX19OUl9tZW1iYXJyaWVyIDI4MworICNkZWZpbmUgX19OUl9tZW1mZF9jcmVhdGUgMjc5Cisr I2RlZmluZSBfX05SX21lbWZkX3NlY3JldCA0NDcKKyAjZGVmaW5lIF9fTlJfbWlncmF0ZV9wYWdl cyAyMzgKKyAjZGVmaW5lIF9fTlJfbWluY29yZSAyMzIKKyAjZGVmaW5lIF9fTlJfbWtkaXJhdCAz NAorZGlmZiAtLWdpdCBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3Jpc2N2L3J2NjQvYXJjaC1z eXNjYWxsLmggYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9yaXNjdi9ydjY0L2FyY2gtc3lzY2Fs bC5oCitpbmRleCBkNjU2YWVkY2MyLi40ZTY1ZjMzN2Q0IDEwMDY0NAorLS0tIGEvc3lzZGVwcy91 bml4L3N5c3YvbGludXgvcmlzY3YvcnY2NC9hcmNoLXN5c2NhbGwuaAorKysrIGIvc3lzZGVwcy91 bml4L3N5c3YvbGludXgvcmlzY3YvcnY2NC9hcmNoLXN5c2NhbGwuaAorQEAgLTEyNyw2ICsxMjcs NyBAQAorICNkZWZpbmUgX19OUl9tYmluZCAyMzUKKyAjZGVmaW5lIF9fTlJfbWVtYmFycmllciAy ODMKKyAjZGVmaW5lIF9fTlJfbWVtZmRfY3JlYXRlIDI3OQorKyNkZWZpbmUgX19OUl9tZW1mZF9z ZWNyZXQgNDQ3CisgI2RlZmluZSBfX05SX21pZ3JhdGVfcGFnZXMgMjM4CisgI2RlZmluZSBfX05S X21pbmNvcmUgMjMyCisgI2RlZmluZSBfX05SX21rZGlyYXQgMzQKK2RpZmYgLS1naXQgYS9zeXNk ZXBzL3VuaXgvc3lzdi9saW51eC9zeXNjYWxsLW5hbWVzLmxpc3QgYi9zeXNkZXBzL3VuaXgvc3lz di9saW51eC9zeXNjYWxsLW5hbWVzLmxpc3QKK2luZGV4IDZjN2IyZjcwMTEuLjAyOGFkMzEwN2Eg MTAwNjQ0CistLS0gYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXNjYWxsLW5hbWVzLmxpc3QK KysrKyBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5c2NhbGwtbmFtZXMubGlzdAorQEAgLTIx LDggKzIxLDggQEAKKyAjIFRoaXMgZmlsZSBjYW4gbGlzdCBhbGwgcG90ZW50aWFsIHN5c3RlbSBj YWxscy4gIFRoZSBuYW1lcyBhcmUgb25seQorICMgdXNlZCBpZiB0aGUgaW5zdGFsbGVkIGtlcm5l bCBoZWFkZXJzIGFsc28gcHJvdmlkZSB0aGVtLgorIAorLSMgVGhlIGxpc3Qgb2Ygc3lzdGVtIGNh bGxzIGlzIGN1cnJlbnQgYXMgb2YgTGludXggNS4xOC4KKy1rZXJuZWwgNS4xOAorKyMgVGhlIGxp c3Qgb2Ygc3lzdGVtIGNhbGxzIGlzIGN1cnJlbnQgYXMgb2YgTGludXggNS4xOS4KKytrZXJuZWwg NS4xOQorIAorIEZBU1RfYXRvbWljX3VwZGF0ZQorIEZBU1RfY21weGNoZworLS0gCisyLjM4LjEK KworCitGcm9tIDMwMmJjMzNiYzUzYzc4N2RhNmU3NDE2MmE3MDkyZTljMGZiOTY0YTggTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBOb2FoIEdvbGRzdGVpbiA8Z29sZHN0ZWluLncubkBn bWFpbC5jb20+CitEYXRlOiBNb24sIDggQXVnIDIwMjIgMTE6MjY6MjIgKzA4MDAKK1N1YmplY3Q6 IFtQQVRDSCAwNS83Ml0gZWxmOiBSZXBsYWNlIGBzdHJjcHlgIGNhbGwgd2l0aCBgbWVtY3B5YCBb QlogIzI5NDU0XQorCitHQ0Mgbm9ybWFsbHkgZG9lcyB0aGlzIG9wdGltaXphdGlvbiBmb3IgdXMg aW4KK3N0cmxlbl9wYXNzOjpoYW5kbGVfYnVpbHRpbl9zdHJjcHkgYnV0IG9ubHkgZm9yIG9wdGlt aXplZAorYnVpbGQuIFRvIGF2b2lkIG5lZWRpbmcgdG8gaW5jbHVkZSBzdHJjcHkuUyBpbiB0aGUg cnRsZCBidWlsZCB0bworc3VwcG9ydCB0aGUgZGVidWcgYnVpbGQsIGp1c3QgZG8gdGhlIG9wdGlt aXphdGlvbiBieSBoYW5kLgorCisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA0ODNjZmUxYTZh MzNkNjMzNWIxOTAxNTgxYjQxMDQwZDJkNDEyNTExKQorLS0tCisgZWxmL2RsLWNhY2hlLmMgfCA1 ICsrKy0tCisgMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkK KworZGlmZiAtLWdpdCBhL2VsZi9kbC1jYWNoZS5jIGIvZWxmL2RsLWNhY2hlLmMKK2luZGV4IDhi YmYxMTBkMDIuLmI5N2MxN2IzYTkgMTAwNjQ0CistLS0gYS9lbGYvZGwtY2FjaGUuYworKysrIGIv ZWxmL2RsLWNhY2hlLmMKK0BAIC01MDksOCArNTA5LDkgQEAgX2RsX2xvYWRfY2FjaGVfbG9va3Vw IChjb25zdCBjaGFyICpuYW1lKQorICAgICAgd2UgYXJlIGFjY2Vzc2luZy4gVGhlcmVmb3JlIHdl IG11c3QgbWFrZSB0aGUgY29weSBvZiB0aGUKKyAgICAgIG1hcHBpbmcgZGF0YSB3aXRob3V0IHVz aW5nIG1hbGxvYy4gICovCisgICBjaGFyICp0ZW1wOworLSAgdGVtcCA9IGFsbG9jYSAoc3RybGVu IChiZXN0KSArIDEpOworLSAgc3RyY3B5ICh0ZW1wLCBiZXN0KTsKKysgIHNpemVfdCBiZXN0X2xl biA9IHN0cmxlbiAoYmVzdCkgKyAxOworKyAgdGVtcCA9IGFsbG9jYSAoYmVzdF9sZW4pOworKyAg bWVtY3B5ICh0ZW1wLCBiZXN0LCBiZXN0X2xlbik7CisgICByZXR1cm4gX19zdHJkdXAgKHRlbXAp OworIH0KKyAKKy0tIAorMi4zOC4xCisKKworRnJvbSBlOTgyNjU3MDczYzRkYjIxNDU5ZmZkOWUx N2JjNTA1YjFkNjRiODc2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRmxvcmlhbiBX ZWltZXIgPGZ3ZWltZXJAcmVkaGF0LmNvbT4KK0RhdGU6IE1vbiwgMTUgQXVnIDIwMjIgMTY6NDM6 NTkgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAwNi83Ml0gTGludXg6IFRlcm1pbmF0ZSBzdWJwcm9j ZXNzIG9uIGxhdGUgZmFpbHVyZSBpbgorIHRzdC1waWRmZCAoYnVnIDI5NDg1KQorCitSZXZpZXdl ZC1ieTogQ2FybG9zIE8nRG9uZWxsIDxjYXJsb3NAcmVkaGF0LmNvbT4KKyhjaGVycnkgcGlja2Vk IGZyb20gY29tbWl0IGY4MmUwNWViYjI5NWNhZGQzNWY3MzcyZjY1MmM3MjI2NGRhODEwYWQpCist LS0KKyBORVdTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEgKworIHN5c2RlcHMv dW5peC9zeXN2L2xpbnV4L3RzdC1waWRmZC5jIHwgNyArKysrKy0tCisgMiBmaWxlcyBjaGFuZ2Vk LCA2IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9ORVdTIGIv TkVXUworaW5kZXggMTVmM2RkMmNkYi4uZjhmYjhkYjUxMCAxMDA2NDQKKy0tLSBhL05FV1MKKysr KyBiL05FV1MKK0BAIC0xMCw2ICsxMCw3IEBAIFZlcnNpb24gMi4zNi4xCisgVGhlIGZvbGxvd2lu ZyBidWdzIGFyZSByZXNvbHZlZCB3aXRoIHRoaXMgcmVsZWFzZToKKyAKKyAgIFsyOTQ0Nl0gX2Rs b3BlbiBub3cgaWdub3JlcyBkbF9jYWxsZXIgYXJndW1lbnQgaW4gc3RhdGljIG1vZGUKKysgIFsy OTQ4NV0gTGludXg6IFRlcm1pbmF0ZSBzdWJwcm9jZXNzIG9uIGxhdGUgZmFpbHVyZSBpbiB0c3Qt cGlkZmQKKyAKKyAMCisgVmVyc2lvbiAyLjM2CitkaWZmIC0tZ2l0IGEvc3lzZGVwcy91bml4L3N5 c3YvbGludXgvdHN0LXBpZGZkLmMgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC90c3QtcGlkZmQu YworaW5kZXggMDM3YWYyMjI5MC4uNTcxMWQxYzMxMiAxMDA2NDQKKy0tLSBhL3N5c2RlcHMvdW5p eC9zeXN2L2xpbnV4L3RzdC1waWRmZC5jCisrKysgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC90 c3QtcGlkZmQuYworQEAgLTE0Nyw4ICsxNDcsMTEgQEAgZG9fdGVzdCAodm9pZCkKKyAgICAgICAg bWF5IGJlIGRlbmllZCBpZiB0aGUgcHJvY2VzcyBkb2Vzbid0IGhhdmUgQ0FQX1NZU19QVFJBQ0Ug b3IKKyAgICAgICAgaWYgYSBMU00gc2VjdXJpdHlfcHRyYWNlX2FjY2Vzc19jaGVjayBkZW5pZXMg YWNjZXNzLiAgKi8KKyAgICAgaWYgKGZkID09IC0xICYmIGVycm5vID09IEVQRVJNKQorLSAgICAg IEZBSUxfVU5TVVBQT1JURUQgKCJkb24ndCBoYXZlIHBlcm1pc3Npb24gdG8gdXNlIHBpZGZkX2dl dGZkIG9uIHBpZGZkLCAiCistCQkJInNraXBwaW5nIHRlc3QiKTsKKysgICAgICB7CisrCVRFU1Rf Q09NUEFSRSAocGlkZmRfc2VuZF9zaWduYWwgKHBpZGZkLCBTSUdLSUxMLCBOVUxMLCAwKSwgMCk7 CisrCUZBSUxfVU5TVVBQT1JURUQgKCJkb24ndCBoYXZlIHBlcm1pc3Npb24gdG8gdXNlIHBpZGZk X2dldGZkIG9uIHBpZGZkLCAiCisrCQkJICAic2tpcHBpbmcgdGVzdCIpOworKyAgICAgIH0KKyAg ICAgVEVTVF9WRVJJRlkgKGZkID4gMCk7CisgCisgICAgIGNoYXIgKnBhdGggPSB4YXNwcmludGYg KCIvcHJvYy8lZC9mZC8lZCIsIHBpZCwgcmVtb3RlX2ZkKTsKKy0tIAorMi4zOC4xCisKKworRnJv bSA4YjEzOWNkNGYxMDc0YWUwZDk1ZDliZmY2MGRiMjgzYTFlZDcyNzM0IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQorRnJvbTogRmxvcmlhbiBXZWltZXIgPGZ3ZWltZXJAcmVkaGF0LmNvbT4KK0Rh dGU6IE1vbiwgMjIgQXVnIDIwMjIgMTE6MDQ6NDcgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAwNy83 Ml0gYWxwaGE6IEZpeCBnZW5lcmljIGJyayBzeXN0ZW0gY2FsbCBlbXVsYXRpb24gaW4KKyBfX2Jy a19jYWxsIChidWcgMjk0OTApCisKK1RoZSBrZXJuZWwgc3BlY2lhbC1jYXNlcyB0aGUgemVybyBh cmd1bWVudCBmb3IgYWxwaGEgYnJrLCBhbmQgd2UgY2FuCit1c2UgdGhhdCB0byByZXN0b3JlIHRo ZSBnZW5lcmljIExpbnV4IGVycm9yIGhhbmRsaW5nIGJlaGF2aW9yLgorCitGaXhlcyBjb21taXQg YjU3YWIyNThjMTE0MGJjNDU0NjRiNGI5OTA4NzEzZTNlMGVlMzVhYSAoIkxpbnV4OgorSW50cm9k dWNlIF9fYnJrX2NhbGwgZm9yIGludm9raW5nIHRoZSBicmsgc3lzdGVtIGNhbGwiKS4KKworKGNo ZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgZTdhZDI2ZWUzY2I3NGU2MWQwNjM3Yzg4OGYyNGRkNDc4 ZDc3YWY1OCkKKy0tLQorIE5FV1MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAxICsKKyBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9icmtfY2FsbC5oIHwgNyArKyst LS0tCisgMiBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCisK K2RpZmYgLS1naXQgYS9ORVdTIGIvTkVXUworaW5kZXggZjhmYjhkYjUxMC4uYmVjYWIzYWRlOSAx MDA2NDQKKy0tLSBhL05FV1MKKysrKyBiL05FV1MKK0BAIC0xMSw2ICsxMSw3IEBAIFRoZSBmb2xs b3dpbmcgYnVncyBhcmUgcmVzb2x2ZWQgd2l0aCB0aGlzIHJlbGVhc2U6CisgCisgICBbMjk0NDZd IF9kbG9wZW4gbm93IGlnbm9yZXMgZGxfY2FsbGVyIGFyZ3VtZW50IGluIHN0YXRpYyBtb2RlCisg ICBbMjk0ODVdIExpbnV4OiBUZXJtaW5hdGUgc3VicHJvY2VzcyBvbiBsYXRlIGZhaWx1cmUgaW4g dHN0LXBpZGZkCisrICBbMjk0OTBdIGFscGhhOiBOZXcgX19icmtfY2FsbCBpbXBsZW1lbnRhdGlv biBpcyBicm9rZW4KKyAKKyAMCisgVmVyc2lvbiAyLjM2CitkaWZmIC0tZ2l0IGEvc3lzZGVwcy91 bml4L3N5c3YvbGludXgvYWxwaGEvYnJrX2NhbGwuaCBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4 L2FscGhhL2Jya19jYWxsLmgKK2luZGV4IGI4MDg4Y2YxM2YuLjBiODUxYjZjODYgMTAwNjQ0Cist LS0gYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9icmtfY2FsbC5oCisrKysgYi9zeXNk ZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9icmtfY2FsbC5oCitAQCAtMjEsOCArMjEsNyBAQCBf X2Jya19jYWxsICh2b2lkICphZGRyKQorIHsKKyAgIHVuc2lnbmVkIGxvbmcgaW50IHJlc3VsdCA9 IElOVEVSTkFMX1NZU0NBTExfQ0FMTCAoYnJrLCBhZGRyKTsKKyAgIGlmIChyZXN1bHQgPT0gLUVO T01FTSkKKy0gICAgLyogTWltaWMgdGhlIGRlZmF1bHQgZXJyb3IgcmVwb3J0aW5nIGJlaGF2aW9y LiAgKi8KKy0gICAgcmV0dXJuIGFkZHI7CistICBlbHNlCistICAgIHJldHVybiAodm9pZCAqKSBy ZXN1bHQ7CisrICAgIC8qIE1pbWljIHRoZSBnZW5lcmljIGVycm9yIHJlcG9ydGluZyBiZWhhdmlv ci4gICovCisrICAgIHJlc3VsdCA9IElOVEVSTkFMX1NZU0NBTExfQ0FMTCAoYnJrLCAwKTsKKysg IHJldHVybiAodm9pZCAqKSByZXN1bHQ7CisgfQorLS0gCisyLjM4LjEKKworCitGcm9tIGQxM2E3 YTZmMTAwNTc2YjFlMzBkYzA0NGIyZTBjNGNiY2I2MTk2ZjYgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCitGcm9tOiBBcmp1biBTaGFua2FyIDxhcmp1bkByZWRoYXQuY29tPgorRGF0ZTogVHVlLCAy IEF1ZyAyMDIyIDExOjEwOjI1ICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggMDgvNzJdIHNvY2tldDog Q2hlY2sgbGVuZ3RocyBiZWZvcmUgYWR2YW5jaW5nIHBvaW50ZXIgaW4KKyBDTVNHX05YVEhEUgor CitUaGUgaW5saW5lIGFuZCBsaWJyYXJ5IGZ1bmN0aW9ucyB0aGF0IHRoZSBDTVNHX05YVEhEUiBt YWNybyBtYXkgZXhwYW5kCit0byBpbmNyZW1lbnQgdGhlIHBvaW50ZXIgdG8gdGhlIGhlYWRlciBi ZWZvcmUgY2hlY2tpbmcgdGhlIHN0cmlkZSBvZgordGhlIGluY3JlbWVudCBhZ2FpbnN0IGF2YWls YWJsZSBzcGFjZS4gIFNpbmNlIEMgb25seSBhbGxvd3MgaW5jcmVtZW50aW5nCitwb2ludGVycyB0 byBvbmUgcGFzdCB0aGUgZW5kIG9mIGFuIGFycmF5LCB0aGUgaW5jcmVtZW50IG11c3QgYmUgZG9u ZQorYWZ0ZXIgYSBsZW5ndGggY2hlY2suICBUaGlzIGNvbW1pdCBmaXhlcyB0aGF0IGFuZCBpbmNs dWRlcyBhIHJlZ3Jlc3Npb24KK3Rlc3QgZm9yIENNU0dfRklSU1RIRFIgYW5kIENNU0dfTlhUSERS LgorCitUaGUgTGludXgsIEh1cmQsIGFuZCBnZW5lcmljIGhlYWRlcnMgYXJlIGFsbCBjaGFuZ2Vk LgorCitUZXN0ZWQgb24gTGludXggb24gYXJtdjdobCwgaTY4NiwgeDg2XzY0LCBhYXJjaDY0LCBw cGM2NGxlLCBhbmQgczM5MHguCisKK1tCWiAjMjg4NDZdCisKK1Jldmlld2VkLWJ5OiBTaWRkaGVz aCBQb3lhcmVrYXIgPHNpZGRoZXNoQHNvdXJjZXdhcmUub3JnPgorKGNoZXJyeSBwaWNrZWQgZnJv bSBjb21taXQgOWM0NDNhYzQ1NTlhNDdlZDk5ODU5YmQ4MGQxNGRjNGI2ZGQyMjBhMSkKKy0tLQor IGJpdHMvc29ja2V0LmggICAgICAgICAgICAgICAgICAgICAgICAgfCA0MCArKysrKysrKysrLS0K KyBzb2NrZXQvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAgIHwgIDEgKworIHNvY2tldC90 c3QtY21zZ2hkci1za2VsZXRvbi5jICAgICAgICAgfCA5MiArKysrKysrKysrKysrKysrKysrKysr KysrKysKKyBzb2NrZXQvdHN0LWNtc2doZHIuYyAgICAgICAgICAgICAgICAgIHwgNTYgKysrKysr KysrKysrKysrKworIHN5c2RlcHMvbWFjaC9odXJkL2JpdHMvc29ja2V0LmggICAgICAgfCA0MCAr KysrKysrKysrLS0KKyBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9iaXRzL3NvY2tldC5oIHwgNDAg KysrKysrKysrKy0tCisgc3lzZGVwcy91bml4L3N5c3YvbGludXgvY21zZ19ueHRoZHIuYyB8IDM2 ICsrKysrKysrLS0tCisgNyBmaWxlcyBjaGFuZ2VkLCAyNzYgaW5zZXJ0aW9ucygrKSwgMjkgZGVs ZXRpb25zKC0pCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHNvY2tldC90c3QtY21zZ2hkci1za2VsZXRv bi5jCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHNvY2tldC90c3QtY21zZ2hkci5jCisKK2RpZmYgLS1n aXQgYS9iaXRzL3NvY2tldC5oIGIvYml0cy9zb2NrZXQuaAoraW5kZXggMmI5OWRlYTMzYi4uYWFj OGM0OWIwMCAxMDA2NDQKKy0tLSBhL2JpdHMvc29ja2V0LmgKKysrKyBiL2JpdHMvc29ja2V0LmgK K0BAIC0yNDUsNiArMjQ1LDEyIEBAIHN0cnVjdCBjbXNnaGRyCisgCQkJICsgQ01TR19BTElHTiAo c2l6ZW9mIChzdHJ1Y3QgY21zZ2hkcikpKQorICNkZWZpbmUgQ01TR19MRU4obGVuKSAgIChDTVNH X0FMSUdOIChzaXplb2YgKHN0cnVjdCBjbXNnaGRyKSkgKyAobGVuKSkKKyAKKysvKiBHaXZlbiBh IGxlbmd0aCwgcmV0dXJuIHRoZSBhZGRpdGlvbmFsIHBhZGRpbmcgbmVjZXNzYXJ5IHN1Y2ggdGhh dAorKyAgIGxlbiArIF9fQ01TR19QQURESU5HKGxlbikgPT0gQ01TR19BTElHTiAobGVuKS4gICov CisrI2RlZmluZSBfX0NNU0dfUEFERElORyhsZW4pICgoc2l6ZW9mIChzaXplX3QpIFwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAtICgobGVuKSAmIChzaXplb2YgKHNpemVfdCkgLSAx KSkpIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYgKHNpemVvZiAoc2l6ZV90KSAt IDEpKQorKworIGV4dGVybiBzdHJ1Y3QgY21zZ2hkciAqX19jbXNnX254dGhkciAoc3RydWN0IG1z Z2hkciAqX19taGRyLAorIAkJCQkgICAgICBzdHJ1Y3QgY21zZ2hkciAqX19jbXNnKSBfX1RIUk9X OworICNpZmRlZiBfX1VTRV9FWFRFUk5fSU5MSU5FUworQEAgLTI1NCwxOCArMjYwLDM4IEBAIGV4 dGVybiBzdHJ1Y3QgY21zZ2hkciAqX19jbXNnX254dGhkciAoc3RydWN0IG1zZ2hkciAqX19taGRy LAorIF9FWFRFUk5fSU5MSU5FIHN0cnVjdCBjbXNnaGRyICoKKyBfX05USCAoX19jbXNnX254dGhk ciAoc3RydWN0IG1zZ2hkciAqX19taGRyLCBzdHJ1Y3QgY21zZ2hkciAqX19jbXNnKSkKKyB7Cisr ICAvKiBXZSBtYXkgc2FmZWx5IGFzc3VtZSB0aGF0IF9fY21zZyBsaWVzIGJldHdlZW4gX19taGRy LT5tc2dfY29udHJvbCBhbmQKKysgICAgIF9fbWhkci0+bXNnX2NvbnRyb2xsZW4gYmVjYXVzZSB0 aGUgdXNlciBpcyByZXF1aXJlZCB0byBvYnRhaW4gdGhlIGZpcnN0CisrICAgICBjbXNnIHZpYSBD TVNHX0ZJUlNUSERSLCBzZXQgaXRzIGxlbmd0aCwgdGhlbiBvYnRhaW4gc3Vic2VxdWVudCBjbXNn cworKyAgICAgdmlhIENNU0dfTlhUSERSLCBzZXR0aW5nIGxlbmd0aHMgYWxvbmcgdGhlIHdheS4g IEhvd2V2ZXIsIHdlIGRvbid0IHlldAorKyAgICAgdHJ1c3QgdGhlIHZhbHVlIG9mIF9fY21zZy0+ Y21zZ19sZW4gYW5kIHRoZXJlZm9yZSBkbyBub3QgdXNlIGl0IGluIGFueQorKyAgICAgcG9pbnRl ciBhcml0aG1ldGljIHVudGlsIHdlIGNoZWNrIGl0cyB2YWx1ZS4gICovCisrCisrICB1bnNpZ25l ZCBjaGFyICogX19tc2dfY29udHJvbF9wdHIgPSAodW5zaWduZWQgY2hhciAqKSBfX21oZHItPm1z Z19jb250cm9sOworKyAgdW5zaWduZWQgY2hhciAqIF9fY21zZ19wdHIgPSAodW5zaWduZWQgY2hh ciAqKSBfX2Ntc2c7CisrCisrICBzaXplX3QgX19zaXplX25lZWRlZCA9IHNpemVvZiAoc3RydWN0 IGNtc2doZHIpCisrICAgICAgICAgICAgICAgICAgICAgICAgICsgX19DTVNHX1BBRERJTkcgKF9f Y21zZy0+Y21zZ19sZW4pOworKworKyAgLyogVGhlIGN1cnJlbnQgaGVhZGVyIGlzIG1hbGZvcm1l ZCwgdG9vIHNtYWxsIHRvIGJlIGEgZnVsbCBoZWFkZXIuICAqLworICAgaWYgKChzaXplX3QpIF9f Y21zZy0+Y21zZ19sZW4gPCBzaXplb2YgKHN0cnVjdCBjbXNnaGRyKSkKKy0gICAgLyogVGhlIGtl cm5lbCBoZWFkZXIgZG9lcyB0aGlzIHNvIHRoZXJlIG1heSBiZSBhIHJlYXNvbi4gICovCisgICAg IHJldHVybiAoc3RydWN0IGNtc2doZHIgKikgMDsKKyAKKysgIC8qIFRoZXJlIGlzbid0IGVub3Vn aCBzcGFjZSBiZXR3ZWVuIF9fY21zZyBhbmQgdGhlIGVuZCBvZiB0aGUgYnVmZmVyIHRvCisrICBo b2xkIHRoZSBjdXJyZW50IGNtc2cgKmFuZCogdGhlIG5leHQgb25lLiAgKi8KKysgIGlmICgoKHNp emVfdCkKKysgICAgICAgICAoX19tc2dfY29udHJvbF9wdHIgKyBfX21oZHItPm1zZ19jb250cm9s bGVuIC0gX19jbXNnX3B0cikKKysgICAgICAgPCBfX3NpemVfbmVlZGVkKQorKyAgICAgIHx8ICgo c2l6ZV90KQorKyAgICAgICAgICAgIChfX21zZ19jb250cm9sX3B0ciArIF9fbWhkci0+bXNnX2Nv bnRyb2xsZW4gLSBfX2Ntc2dfcHRyCisrICAgICAgICAgICAgIC0gX19zaXplX25lZWRlZCkKKysg ICAgICAgICAgPCBfX2Ntc2ctPmNtc2dfbGVuKSkKKysKKysgICAgcmV0dXJuIChzdHJ1Y3QgY21z Z2hkciAqKSAwOworKworKyAgLyogTm93LCB3ZSB0cnVzdCBjbXNnX2xlbiBhbmQgY2FuIHVzZSBp dCB0byBmaW5kIHRoZSBuZXh0IGhlYWRlci4gICovCisgICBfX2Ntc2cgPSAoc3RydWN0IGNtc2do ZHIgKikgKCh1bnNpZ25lZCBjaGFyICopIF9fY21zZworIAkJCSAgICAgICArIENNU0dfQUxJR04g KF9fY21zZy0+Y21zZ19sZW4pKTsKKy0gIGlmICgodW5zaWduZWQgY2hhciAqKSAoX19jbXNnICsg MSkgPiAoKHVuc2lnbmVkIGNoYXIgKikgX19taGRyLT5tc2dfY29udHJvbAorLQkJCQkJKyBfX21o ZHItPm1zZ19jb250cm9sbGVuKQorLSAgICAgIHx8ICgodW5zaWduZWQgY2hhciAqKSBfX2Ntc2cg KyBDTVNHX0FMSUdOIChfX2Ntc2ctPmNtc2dfbGVuKQorLQkgID4gKCh1bnNpZ25lZCBjaGFyICop IF9fbWhkci0+bXNnX2NvbnRyb2wgKyBfX21oZHItPm1zZ19jb250cm9sbGVuKSkpCistICAgIC8q IE5vIG1vcmUgZW50cmllcy4gICovCistICAgIHJldHVybiAoc3RydWN0IGNtc2doZHIgKikgMDsK KyAgIHJldHVybiBfX2Ntc2c7CisgfQorICNlbmRpZgkvKiBVc2UgYGV4dGVybiBpbmxpbmUnLiAg Ki8KK2RpZmYgLS1naXQgYS9zb2NrZXQvTWFrZWZpbGUgYi9zb2NrZXQvTWFrZWZpbGUKK2luZGV4 IDE1NmVlYzZjODUuLjJiZGU3ODM4N2YgMTAwNjQ0CistLS0gYS9zb2NrZXQvTWFrZWZpbGUKKysr KyBiL3NvY2tldC9NYWtlZmlsZQorQEAgLTM0LDYgKzM0LDcgQEAgcm91dGluZXMgOj0gYWNjZXB0 IGJpbmQgY29ubmVjdCBnZXRwZWVybmFtZSBnZXRzb2NrbmFtZSBnZXRzb2Nrb3B0CVwKKyB0ZXN0 cyA6PSBcCisgICB0c3QtYWNjZXB0NCBcCisgICB0c3Qtc29ja29wdCBcCisrICB0c3QtY21zZ2hk ciBcCisgICAjIHRlc3RzCisgCisgdGVzdHMtaW50ZXJuYWwgOj0gXAorZGlmZiAtLWdpdCBhL3Nv Y2tldC90c3QtY21zZ2hkci1za2VsZXRvbi5jIGIvc29ja2V0L3RzdC1jbXNnaGRyLXNrZWxldG9u LmMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwLi40YzY4OTg1NjliCist LS0gL2Rldi9udWxsCisrKysgYi9zb2NrZXQvdHN0LWNtc2doZHItc2tlbGV0b24uYworQEAgLTAs MCArMSw5MiBAQAorKy8qIFRlc3QgYW5jaWxsYXJ5IGRhdGEgaGVhZGVyIGNyZWF0aW9uLgorKyAg IENvcHlyaWdodCAoQykgMjAyMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysgICBU aGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKysKKysgICBUaGUgR05VIEMg TGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK KysgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg UHVibGljCisrICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbjsgZWl0aGVyCisrICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5 b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkg aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgICBi dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZgorKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRS4gIFNlZSB0aGUgR05VCisrICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KKysKKysgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisrICAgTGljZW5zZSBhbG9uZyB3aXRoIHRo ZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorKyAgIDxodHRwczovL3d3dy5nbnUub3JnL2xp Y2Vuc2VzLz4uICAqLworKworKy8qIFdlIHVzZSB0aGUgcHJlcHJvY2Vzc29yIHRvIGdlbmVyYXRl IHRoZSBmdW5jdGlvbi9tYWNybyB0ZXN0cyBpbnN0ZWFkIG9mCisrICAgdXNpbmcgaW5kaXJlY3Rp b24gYmVjYXVzZSBoYXZpbmcgYWxsIHRoZSBtYWNybyBleHBhbnNpb25zIGFsb25nc2lkZQorKyAg IGVhY2ggb3RoZXIgbGV0cyB0aGUgY29tcGlsZXIgd2FybiB1cyBhYm91dCBzdXNwaWNpb3VzIHBv aW50ZXIKKysgICBhcml0aG1ldGljIGFjcm9zcyBzdWJzZXF1ZW50IENNU0dfe0ZJUlNULE5YVH1I RFIgZXhwYW5zaW9ucy4gICovCisrCisrI2luY2x1ZGUgPHN0ZGludC5oPgorKworKyNkZWZpbmUg UlVOX1RFU1RfQ09OQ0FUKHN1ZmZpeCkgcnVuX3Rlc3RfIyNzdWZmaXgKKysjZGVmaW5lIFJVTl9U RVNUX0ZVTkNOQU1FKHN1ZmZpeCkgUlVOX1RFU1RfQ09OQ0FUIChzdWZmaXgpCisrCisrc3RhdGlj IHZvaWQKKytSVU5fVEVTVF9GVU5DTkFNRSAoQ01TR19OWFRIRFJfSU1QTCkgKHZvaWQpCisrewor KyAgc3RydWN0IG1zZ2hkciBtID0gezB9OworKyAgc3RydWN0IGNtc2doZHIgKmNtc2c7CisrICBj aGFyIGNtc2didWZbMyAqIENNU0dfU1BBQ0UgKHNpemVvZiAoUEFZTE9BRCkpXSA9IHswfTsKKysK KysgIG0ubXNnX2NvbnRyb2wgPSBjbXNnYnVmOworKyAgbS5tc2dfY29udHJvbGxlbiA9IHNpemVv ZiAoY21zZ2J1Zik7CisrCisrICAvKiBGaXJzdCBoZWFkZXIgc2hvdWxkIHBvaW50IHRvIHRoZSBz dGFydCBvZiB0aGUgYnVmZmVyLiAgKi8KKysgIGNtc2cgPSBDTVNHX0ZJUlNUSERSICgmbSk7Cisr ICBURVNUX1ZFUklGWV9FWElUICgoY2hhciAqKSBjbXNnID09IGNtc2didWYpOworKworKyAgLyog SWYgdGhlIGZpcnN0IGhlYWRlciBsZW5ndGggY29uc3VtZXMgdGhlIGVudGlyZSBidWZmZXIsIHRo ZXJlIGlzIG5vCisrICAgICBzcGFjZSByZW1haW5pbmcgZm9yIGFkZGl0aW9uYWwgaGVhZGVycy4g ICovCisrICBjbXNnLT5jbXNnX2xlbiA9IHNpemVvZiAoY21zZ2J1Zik7CisrICBjbXNnID0gQ01T R19OWFRIRFJfSU1QTCAoJm0sIGNtc2cpOworKyAgVEVTVF9WRVJJRllfRVhJVCAoY21zZyA9PSBO VUxMKTsKKysKKysgIC8qIFRoZSBmaXJzdCBoZWFkZXIgbGVuZ3RoIGlzIHNvIGJpZywgdXNpbmcg aXQgd291bGQgY2F1c2UgYW4gb3ZlcmZsb3cuICAqLworKyAgY21zZyA9IENNU0dfRklSU1RIRFIg KCZtKTsKKysgIFRFU1RfVkVSSUZZX0VYSVQgKChjaGFyICopIGNtc2cgPT0gY21zZ2J1Zik7Cisr ICBjbXNnLT5jbXNnX2xlbiA9IFNJWkVfTUFYOworKyAgY21zZyA9IENNU0dfTlhUSERSX0lNUEwg KCZtLCBjbXNnKTsKKysgIFRFU1RfVkVSSUZZX0VYSVQgKGNtc2cgPT0gTlVMTCk7CisrCisrICAv KiBUaGUgZmlyc3QgaGVhZGVyIGxlYXZlcyBqdXN0IGVub3VnaCBzcGFjZSB0byBob2xkIGFub3Ro ZXIgaGVhZGVyLiAgKi8KKysgIGNtc2cgPSBDTVNHX0ZJUlNUSERSICgmbSk7CisrICBURVNUX1ZF UklGWV9FWElUICgoY2hhciAqKSBjbXNnID09IGNtc2didWYpOworKyAgY21zZy0+Y21zZ19sZW4g PSBzaXplb2YgKGNtc2didWYpIC0gc2l6ZW9mIChzdHJ1Y3QgY21zZ2hkcik7CisrICBjbXNnID0g Q01TR19OWFRIRFJfSU1QTCAoJm0sIGNtc2cpOworKyAgVEVTVF9WRVJJRllfRVhJVCAoY21zZyAh PSBOVUxMKTsKKysKKysgIC8qIFRoZSBmaXJzdCBoZWFkZXIgbGVhdmVzIHNwYWNlIGJ1dCBub3Qg ZW5vdWdoIGZvciBhbm90aGVyIGhlYWRlci4gICovCisrICBjbXNnID0gQ01TR19GSVJTVEhEUiAo Jm0pOworKyAgVEVTVF9WRVJJRllfRVhJVCAoKGNoYXIgKikgY21zZyA9PSBjbXNnYnVmKTsKKysg IGNtc2ctPmNtc2dfbGVuICsrOworKyAgY21zZyA9IENNU0dfTlhUSERSX0lNUEwgKCZtLCBjbXNn KTsKKysgIFRFU1RfVkVSSUZZX0VYSVQgKGNtc2cgPT0gTlVMTCk7CisrCisrICAvKiBUaGUgc2Vj b25kIGhlYWRlciBsZWF2ZXMganVzdCBlbm91Z2ggc3BhY2UgdG8gaG9sZCBhbm90aGVyIGhlYWRl ci4gICovCisrICBjbXNnID0gQ01TR19GSVJTVEhEUiAoJm0pOworKyAgVEVTVF9WRVJJRllfRVhJ VCAoKGNoYXIgKikgY21zZyA9PSBjbXNnYnVmKTsKKysgIGNtc2ctPmNtc2dfbGVuID0gQ01TR19M RU4gKHNpemVvZiAoUEFZTE9BRCkpOworKyAgY21zZyA9IENNU0dfTlhUSERSX0lNUEwgKCZtLCBj bXNnKTsKKysgIFRFU1RfVkVSSUZZX0VYSVQgKGNtc2cgIT0gTlVMTCk7CisrICBjbXNnLT5jbXNn X2xlbiA9IHNpemVvZiAoY21zZ2J1ZikKKysgICAgICAgICAgICAgICAgICAgLSBDTVNHX1NQQUNF IChzaXplb2YgKFBBWUxPQUQpKSAvKiBGaXJzdCBoZWFkZXIuICAqLworKyAgICAgICAgICAgICAg ICAgICAtIHNpemVvZiAoc3RydWN0IGNtc2doZHIpOworKyAgY21zZyA9IENNU0dfTlhUSERSX0lN UEwgKCZtLCBjbXNnKTsKKysgIFRFU1RfVkVSSUZZX0VYSVQgKGNtc2cgIT0gTlVMTCk7CisrCisr ICAvKiBUaGUgc2Vjb25kIGhlYWRlciBsZWF2ZXMgc3BhY2UgYnV0IG5vdCBlbm91Z2ggZm9yIGFu b3RoZXIgaGVhZGVyLiAgKi8KKysgIGNtc2cgPSBDTVNHX0ZJUlNUSERSICgmbSk7CisrICBURVNU X1ZFUklGWV9FWElUICgoY2hhciAqKSBjbXNnID09IGNtc2didWYpOworKyAgY21zZyA9IENNU0df TlhUSERSX0lNUEwgKCZtLCBjbXNnKTsKKysgIFRFU1RfVkVSSUZZX0VYSVQgKGNtc2cgIT0gTlVM TCk7CisrICBjbXNnLT5jbXNnX2xlbiArKzsKKysgIGNtc2cgPSBDTVNHX05YVEhEUl9JTVBMICgm bSwgY21zZyk7CisrICBURVNUX1ZFUklGWV9FWElUIChjbXNnID09IE5VTEwpOworKworKyAgcmV0 dXJuOworK30KK2RpZmYgLS1naXQgYS9zb2NrZXQvdHN0LWNtc2doZHIuYyBiL3NvY2tldC90c3Qt Y21zZ2hkci5jCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMC4uNjhjOTZk M2M5ZAorLS0tIC9kZXYvbnVsbAorKysrIGIvc29ja2V0L3RzdC1jbXNnaGRyLmMKK0BAIC0wLDAg KzEsNTYgQEAKKysvKiBUZXN0IGFuY2lsbGFyeSBkYXRhIGhlYWRlciBjcmVhdGlvbi4KKysgICBD b3B5cmlnaHQgKEMpIDIwMjIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrICAgVGhp cyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisrCisrICAgVGhlIEdOVSBDIExp YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisr ICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1 YmxpYworKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb247IGVpdGhlcgorKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0 IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlIEdOVQorKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt b3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUg R05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKysgICA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNl bnNlcy8+LiAgKi8KKysKKysjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgorKyNpbmNsdWRlIDxnbnUv bGliLW5hbWVzLmg+CisrI2luY2x1ZGUgPHN1cHBvcnQveGRsZmNuLmg+CisrI2luY2x1ZGUgPHN1 cHBvcnQvY2hlY2suaD4KKysKKysjZGVmaW5lIFBBWUxPQUQgIkhlbGxvLCBXb3JsZCEiCisrCisr LyogQ01TR19OWFRIRFIgaXMgYSBtYWNybyB0aGF0IGNhbGxzIGFuIGlubGluZSBmdW5jdGlvbiBk ZWZpbmVkIGluCisrICAgYml0cy9zb2NrZXQuaC4gIEluIGNhc2UgdGhlIGZ1bmN0aW9uIGNhbm5v dCBiZSBpbmxpbmVkLCBsaWJjLnNvIGNhcnJpZXMKKysgICBhIGNvcHkuICBCb3RoIHZlcnNpb25z IG5lZWQgdG8gYmUgdGVzdGVkLiAgKi8KKysKKysjZGVmaW5lIENNU0dfTlhUSERSX0lNUEwgQ01T R19OWFRIRFIKKysjaW5jbHVkZSAidHN0LWNtc2doZHItc2tlbGV0b24uYyIKKysjdW5kZWYgQ01T R19OWFRIRFJfSU1QTAorKworK3N0YXRpYyBzdHJ1Y3QgY21zZ2hkciAqICgqIGNtc2dfbnh0aGRy KSAoc3RydWN0IG1zZ2hkciAqLCBzdHJ1Y3QgY21zZ2hkciAqKTsKKysKKysjZGVmaW5lIENNU0df TlhUSERSX0lNUEwgY21zZ19ueHRoZHIKKysjaW5jbHVkZSAidHN0LWNtc2doZHItc2tlbGV0b24u YyIKKysjdW5kZWYgQ01TR19OWFRIRFJfSU1QTAorKworK3N0YXRpYyBpbnQKKytkb190ZXN0ICh2 b2lkKQorK3sKKysgIHN0YXRpYyB2b2lkICpoYW5kbGU7CisrCisrICBydW5fdGVzdF9DTVNHX05Y VEhEUiAoKTsKKysKKysgIGhhbmRsZSA9IHhkbG9wZW4gKExJQkNfU08sIFJUTERfTEFaWSk7Cisr ICBjbXNnX254dGhkciA9IChzdHJ1Y3QgY21zZ2hkciAqICgqKSAoc3RydWN0IG1zZ2hkciAqLCBz dHJ1Y3QgY21zZ2hkciAqKSkKKysgICAgICAgICAgICAgICAgICB4ZGxzeW0gKGhhbmRsZSwgIl9f Y21zZ19ueHRoZHIiKTsKKysKKysgIHJ1bl90ZXN0X2Ntc2dfbnh0aGRyICgpOworKworKyAgcmV0 dXJuIDA7CisrfQorKworKyNpbmNsdWRlIDxzdXBwb3J0L3Rlc3QtZHJpdmVyLmM+CitkaWZmIC0t Z2l0IGEvc3lzZGVwcy9tYWNoL2h1cmQvYml0cy9zb2NrZXQuaCBiL3N5c2RlcHMvbWFjaC9odXJk L2JpdHMvc29ja2V0LmgKK2luZGV4IDViMzVlYTgxZWMuLjcwZmNlNGZiMjcgMTAwNjQ0CistLS0g YS9zeXNkZXBzL21hY2gvaHVyZC9iaXRzL3NvY2tldC5oCisrKysgYi9zeXNkZXBzL21hY2gvaHVy ZC9iaXRzL3NvY2tldC5oCitAQCAtMjQ5LDYgKzI0OSwxMiBAQCBzdHJ1Y3QgY21zZ2hkcgorIAkJ CSArIENNU0dfQUxJR04gKHNpemVvZiAoc3RydWN0IGNtc2doZHIpKSkKKyAjZGVmaW5lIENNU0df TEVOKGxlbikgICAoQ01TR19BTElHTiAoc2l6ZW9mIChzdHJ1Y3QgY21zZ2hkcikpICsgKGxlbikp CisgCisrLyogR2l2ZW4gYSBsZW5ndGgsIHJldHVybiB0aGUgYWRkaXRpb25hbCBwYWRkaW5nIG5l Y2Vzc2FyeSBzdWNoIHRoYXQKKysgICBsZW4gKyBfX0NNU0dfUEFERElORyhsZW4pID09IENNU0df QUxJR04gKGxlbikuICAqLworKyNkZWZpbmUgX19DTVNHX1BBRERJTkcobGVuKSAoKHNpemVvZiAo c2l6ZV90KSBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSAoKGxlbikgJiAoc2l6 ZW9mIChzaXplX3QpIC0gMSkpKSBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmIChz aXplb2YgKHNpemVfdCkgLSAxKSkKKysKKyBleHRlcm4gc3RydWN0IGNtc2doZHIgKl9fY21zZ19u eHRoZHIgKHN0cnVjdCBtc2doZHIgKl9fbWhkciwKKyAJCQkJICAgICAgc3RydWN0IGNtc2doZHIg Kl9fY21zZykgX19USFJPVzsKKyAjaWZkZWYgX19VU0VfRVhURVJOX0lOTElORVMKK0BAIC0yNTgs MTggKzI2NCwzOCBAQCBleHRlcm4gc3RydWN0IGNtc2doZHIgKl9fY21zZ19ueHRoZHIgKHN0cnVj dCBtc2doZHIgKl9fbWhkciwKKyBfRVhURVJOX0lOTElORSBzdHJ1Y3QgY21zZ2hkciAqCisgX19O VEggKF9fY21zZ19ueHRoZHIgKHN0cnVjdCBtc2doZHIgKl9fbWhkciwgc3RydWN0IGNtc2doZHIg Kl9fY21zZykpCisgeworKyAgLyogV2UgbWF5IHNhZmVseSBhc3N1bWUgdGhhdCBfX2Ntc2cgbGll cyBiZXR3ZWVuIF9fbWhkci0+bXNnX2NvbnRyb2wgYW5kCisrICAgICBfX21oZHItPm1zZ19jb250 cm9sbGVuIGJlY2F1c2UgdGhlIHVzZXIgaXMgcmVxdWlyZWQgdG8gb2J0YWluIHRoZSBmaXJzdAor KyAgICAgY21zZyB2aWEgQ01TR19GSVJTVEhEUiwgc2V0IGl0cyBsZW5ndGgsIHRoZW4gb2J0YWlu IHN1YnNlcXVlbnQgY21zZ3MKKysgICAgIHZpYSBDTVNHX05YVEhEUiwgc2V0dGluZyBsZW5ndGhz IGFsb25nIHRoZSB3YXkuICBIb3dldmVyLCB3ZSBkb24ndCB5ZXQKKysgICAgIHRydXN0IHRoZSB2 YWx1ZSBvZiBfX2Ntc2ctPmNtc2dfbGVuIGFuZCB0aGVyZWZvcmUgZG8gbm90IHVzZSBpdCBpbiBh bnkKKysgICAgIHBvaW50ZXIgYXJpdGhtZXRpYyB1bnRpbCB3ZSBjaGVjayBpdHMgdmFsdWUuICAq LworKworKyAgdW5zaWduZWQgY2hhciAqIF9fbXNnX2NvbnRyb2xfcHRyID0gKHVuc2lnbmVkIGNo YXIgKikgX19taGRyLT5tc2dfY29udHJvbDsKKysgIHVuc2lnbmVkIGNoYXIgKiBfX2Ntc2dfcHRy ID0gKHVuc2lnbmVkIGNoYXIgKikgX19jbXNnOworKworKyAgc2l6ZV90IF9fc2l6ZV9uZWVkZWQg PSBzaXplb2YgKHN0cnVjdCBjbXNnaGRyKQorKyAgICAgICAgICAgICAgICAgICAgICAgICArIF9f Q01TR19QQURESU5HIChfX2Ntc2ctPmNtc2dfbGVuKTsKKysKKysgIC8qIFRoZSBjdXJyZW50IGhl YWRlciBpcyBtYWxmb3JtZWQsIHRvbyBzbWFsbCB0byBiZSBhIGZ1bGwgaGVhZGVyLiAgKi8KKyAg IGlmICgoc2l6ZV90KSBfX2Ntc2ctPmNtc2dfbGVuIDwgc2l6ZW9mIChzdHJ1Y3QgY21zZ2hkcikp CistICAgIC8qIFRoZSBrZXJuZWwgaGVhZGVyIGRvZXMgdGhpcyBzbyB0aGVyZSBtYXkgYmUgYSBy ZWFzb24uICAqLworICAgICByZXR1cm4gKHN0cnVjdCBjbXNnaGRyICopIDA7CisgCisrICAvKiBU aGVyZSBpc24ndCBlbm91Z2ggc3BhY2UgYmV0d2VlbiBfX2Ntc2cgYW5kIHRoZSBlbmQgb2YgdGhl IGJ1ZmZlciB0bworKyAgaG9sZCB0aGUgY3VycmVudCBjbXNnICphbmQqIHRoZSBuZXh0IG9uZS4g ICovCisrICBpZiAoKChzaXplX3QpCisrICAgICAgICAgKF9fbXNnX2NvbnRyb2xfcHRyICsgX19t aGRyLT5tc2dfY29udHJvbGxlbiAtIF9fY21zZ19wdHIpCisrICAgICAgIDwgX19zaXplX25lZWRl ZCkKKysgICAgICB8fCAoKHNpemVfdCkKKysgICAgICAgICAgICAoX19tc2dfY29udHJvbF9wdHIg KyBfX21oZHItPm1zZ19jb250cm9sbGVuIC0gX19jbXNnX3B0cgorKyAgICAgICAgICAgICAtIF9f c2l6ZV9uZWVkZWQpCisrICAgICAgICAgIDwgX19jbXNnLT5jbXNnX2xlbikpCisrCisrICAgIHJl dHVybiAoc3RydWN0IGNtc2doZHIgKikgMDsKKysKKysgIC8qIE5vdywgd2UgdHJ1c3QgY21zZ19s ZW4gYW5kIGNhbiB1c2UgaXQgdG8gZmluZCB0aGUgbmV4dCBoZWFkZXIuICAqLworICAgX19jbXNn ID0gKHN0cnVjdCBjbXNnaGRyICopICgodW5zaWduZWQgY2hhciAqKSBfX2Ntc2cKKyAJCQkgICAg ICAgKyBDTVNHX0FMSUdOIChfX2Ntc2ctPmNtc2dfbGVuKSk7CistICBpZiAoKHVuc2lnbmVkIGNo YXIgKikgKF9fY21zZyArIDEpID4gKCh1bnNpZ25lZCBjaGFyICopIF9fbWhkci0+bXNnX2NvbnRy b2wKKy0JCQkJCSsgX19taGRyLT5tc2dfY29udHJvbGxlbikKKy0gICAgICB8fCAoKHVuc2lnbmVk IGNoYXIgKikgX19jbXNnICsgQ01TR19BTElHTiAoX19jbXNnLT5jbXNnX2xlbikKKy0JICA+ICgo dW5zaWduZWQgY2hhciAqKSBfX21oZHItPm1zZ19jb250cm9sICsgX19taGRyLT5tc2dfY29udHJv bGxlbikpKQorLSAgICAvKiBObyBtb3JlIGVudHJpZXMuICAqLworLSAgICByZXR1cm4gKHN0cnVj dCBjbXNnaGRyICopIDA7CisgICByZXR1cm4gX19jbXNnOworIH0KKyAjZW5kaWYJLyogVXNlIGBl eHRlcm4gaW5saW5lJy4gICovCitkaWZmIC0tZ2l0IGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgv Yml0cy9zb2NrZXQuaCBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2JpdHMvc29ja2V0LmgKK2lu ZGV4IDRmMWY4MTBlYTEuLjUzOWI4ZDc3MTYgMTAwNjQ0CistLS0gYS9zeXNkZXBzL3VuaXgvc3lz di9saW51eC9iaXRzL3NvY2tldC5oCisrKysgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9iaXRz L3NvY2tldC5oCitAQCAtMzA3LDYgKzMwNywxMiBAQCBzdHJ1Y3QgY21zZ2hkcgorIAkJCSArIENN U0dfQUxJR04gKHNpemVvZiAoc3RydWN0IGNtc2doZHIpKSkKKyAjZGVmaW5lIENNU0dfTEVOKGxl bikgICAoQ01TR19BTElHTiAoc2l6ZW9mIChzdHJ1Y3QgY21zZ2hkcikpICsgKGxlbikpCisgCisr LyogR2l2ZW4gYSBsZW5ndGgsIHJldHVybiB0aGUgYWRkaXRpb25hbCBwYWRkaW5nIG5lY2Vzc2Fy eSBzdWNoIHRoYXQKKysgICBsZW4gKyBfX0NNU0dfUEFERElORyhsZW4pID09IENNU0dfQUxJR04g KGxlbikuICAqLworKyNkZWZpbmUgX19DTVNHX1BBRERJTkcobGVuKSAoKHNpemVvZiAoc2l6ZV90 KSBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSAoKGxlbikgJiAoc2l6ZW9mIChz aXplX3QpIC0gMSkpKSBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmIChzaXplb2Yg KHNpemVfdCkgLSAxKSkKKysKKyBleHRlcm4gc3RydWN0IGNtc2doZHIgKl9fY21zZ19ueHRoZHIg KHN0cnVjdCBtc2doZHIgKl9fbWhkciwKKyAJCQkJICAgICAgc3RydWN0IGNtc2doZHIgKl9fY21z ZykgX19USFJPVzsKKyAjaWZkZWYgX19VU0VfRVhURVJOX0lOTElORVMKK0BAIC0zMTYsMTggKzMy MiwzOCBAQCBleHRlcm4gc3RydWN0IGNtc2doZHIgKl9fY21zZ19ueHRoZHIgKHN0cnVjdCBtc2do ZHIgKl9fbWhkciwKKyBfRVhURVJOX0lOTElORSBzdHJ1Y3QgY21zZ2hkciAqCisgX19OVEggKF9f Y21zZ19ueHRoZHIgKHN0cnVjdCBtc2doZHIgKl9fbWhkciwgc3RydWN0IGNtc2doZHIgKl9fY21z ZykpCisgeworKyAgLyogV2UgbWF5IHNhZmVseSBhc3N1bWUgdGhhdCBfX2Ntc2cgbGllcyBiZXR3 ZWVuIF9fbWhkci0+bXNnX2NvbnRyb2wgYW5kCisrICAgICBfX21oZHItPm1zZ19jb250cm9sbGVu IGJlY2F1c2UgdGhlIHVzZXIgaXMgcmVxdWlyZWQgdG8gb2J0YWluIHRoZSBmaXJzdAorKyAgICAg Y21zZyB2aWEgQ01TR19GSVJTVEhEUiwgc2V0IGl0cyBsZW5ndGgsIHRoZW4gb2J0YWluIHN1YnNl cXVlbnQgY21zZ3MKKysgICAgIHZpYSBDTVNHX05YVEhEUiwgc2V0dGluZyBsZW5ndGhzIGFsb25n IHRoZSB3YXkuICBIb3dldmVyLCB3ZSBkb24ndCB5ZXQKKysgICAgIHRydXN0IHRoZSB2YWx1ZSBv ZiBfX2Ntc2ctPmNtc2dfbGVuIGFuZCB0aGVyZWZvcmUgZG8gbm90IHVzZSBpdCBpbiBhbnkKKysg ICAgIHBvaW50ZXIgYXJpdGhtZXRpYyB1bnRpbCB3ZSBjaGVjayBpdHMgdmFsdWUuICAqLworKwor KyAgdW5zaWduZWQgY2hhciAqIF9fbXNnX2NvbnRyb2xfcHRyID0gKHVuc2lnbmVkIGNoYXIgKikg X19taGRyLT5tc2dfY29udHJvbDsKKysgIHVuc2lnbmVkIGNoYXIgKiBfX2Ntc2dfcHRyID0gKHVu c2lnbmVkIGNoYXIgKikgX19jbXNnOworKworKyAgc2l6ZV90IF9fc2l6ZV9uZWVkZWQgPSBzaXpl b2YgKHN0cnVjdCBjbXNnaGRyKQorKyAgICAgICAgICAgICAgICAgICAgICAgICArIF9fQ01TR19Q QURESU5HIChfX2Ntc2ctPmNtc2dfbGVuKTsKKysKKysgIC8qIFRoZSBjdXJyZW50IGhlYWRlciBp cyBtYWxmb3JtZWQsIHRvbyBzbWFsbCB0byBiZSBhIGZ1bGwgaGVhZGVyLiAgKi8KKyAgIGlmICgo c2l6ZV90KSBfX2Ntc2ctPmNtc2dfbGVuIDwgc2l6ZW9mIChzdHJ1Y3QgY21zZ2hkcikpCistICAg IC8qIFRoZSBrZXJuZWwgaGVhZGVyIGRvZXMgdGhpcyBzbyB0aGVyZSBtYXkgYmUgYSByZWFzb24u ICAqLworICAgICByZXR1cm4gKHN0cnVjdCBjbXNnaGRyICopIDA7CisgCisrICAvKiBUaGVyZSBp c24ndCBlbm91Z2ggc3BhY2UgYmV0d2VlbiBfX2Ntc2cgYW5kIHRoZSBlbmQgb2YgdGhlIGJ1ZmZl ciB0bworKyAgaG9sZCB0aGUgY3VycmVudCBjbXNnICphbmQqIHRoZSBuZXh0IG9uZS4gICovCisr ICBpZiAoKChzaXplX3QpCisrICAgICAgICAgKF9fbXNnX2NvbnRyb2xfcHRyICsgX19taGRyLT5t c2dfY29udHJvbGxlbiAtIF9fY21zZ19wdHIpCisrICAgICAgIDwgX19zaXplX25lZWRlZCkKKysg ICAgICB8fCAoKHNpemVfdCkKKysgICAgICAgICAgICAoX19tc2dfY29udHJvbF9wdHIgKyBfX21o ZHItPm1zZ19jb250cm9sbGVuIC0gX19jbXNnX3B0cgorKyAgICAgICAgICAgICAtIF9fc2l6ZV9u ZWVkZWQpCisrICAgICAgICAgIDwgX19jbXNnLT5jbXNnX2xlbikpCisrCisrICAgIHJldHVybiAo c3RydWN0IGNtc2doZHIgKikgMDsKKysKKysgIC8qIE5vdywgd2UgdHJ1c3QgY21zZ19sZW4gYW5k IGNhbiB1c2UgaXQgdG8gZmluZCB0aGUgbmV4dCBoZWFkZXIuICAqLworICAgX19jbXNnID0gKHN0 cnVjdCBjbXNnaGRyICopICgodW5zaWduZWQgY2hhciAqKSBfX2Ntc2cKKyAJCQkgICAgICAgKyBD TVNHX0FMSUdOIChfX2Ntc2ctPmNtc2dfbGVuKSk7CistICBpZiAoKHVuc2lnbmVkIGNoYXIgKikg KF9fY21zZyArIDEpID4gKCh1bnNpZ25lZCBjaGFyICopIF9fbWhkci0+bXNnX2NvbnRyb2wKKy0J CQkJCSsgX19taGRyLT5tc2dfY29udHJvbGxlbikKKy0gICAgICB8fCAoKHVuc2lnbmVkIGNoYXIg KikgX19jbXNnICsgQ01TR19BTElHTiAoX19jbXNnLT5jbXNnX2xlbikKKy0JICA+ICgodW5zaWdu ZWQgY2hhciAqKSBfX21oZHItPm1zZ19jb250cm9sICsgX19taGRyLT5tc2dfY29udHJvbGxlbikp KQorLSAgICAvKiBObyBtb3JlIGVudHJpZXMuICAqLworLSAgICByZXR1cm4gKHN0cnVjdCBjbXNn aGRyICopIDA7CisgICByZXR1cm4gX19jbXNnOworIH0KKyAjZW5kaWYJLyogVXNlIGBleHRlcm4g aW5saW5lJy4gICovCitkaWZmIC0tZ2l0IGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvY21zZ19u eHRoZHIuYyBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2Ntc2dfbnh0aGRyLmMKK2luZGV4IDE1 YjdhM2E5MjUuLjI0ZjcyYjc5N2EgMTAwNjQ0CistLS0gYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51 eC9jbXNnX254dGhkci5jCisrKysgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9jbXNnX254dGhk ci5jCitAQCAtMjMsMTggKzIzLDM4IEBACisgc3RydWN0IGNtc2doZHIgKgorIF9fY21zZ19ueHRo ZHIgKHN0cnVjdCBtc2doZHIgKm1oZHIsIHN0cnVjdCBjbXNnaGRyICpjbXNnKQorIHsKKysgIC8q IFdlIG1heSBzYWZlbHkgYXNzdW1lIHRoYXQgY21zZyBsaWVzIGJldHdlZW4gbWhkci0+bXNnX2Nv bnRyb2wgYW5kCisrICAgICBtaGRyLT5tc2dfY29udHJvbGxlbiBiZWNhdXNlIHRoZSB1c2VyIGlz IHJlcXVpcmVkIHRvIG9idGFpbiB0aGUgZmlyc3QKKysgICAgIGNtc2cgdmlhIENNU0dfRklSU1RI RFIsIHNldCBpdHMgbGVuZ3RoLCB0aGVuIG9idGFpbiBzdWJzZXF1ZW50IGNtc2dzCisrICAgICB2 aWEgQ01TR19OWFRIRFIsIHNldHRpbmcgbGVuZ3RocyBhbG9uZyB0aGUgd2F5LiAgSG93ZXZlciwg d2UgZG9uJ3QgeWV0CisrICAgICB0cnVzdCB0aGUgdmFsdWUgb2YgY21zZy0+Y21zZ19sZW4gYW5k IHRoZXJlZm9yZSBkbyBub3QgdXNlIGl0IGluIGFueQorKyAgICAgcG9pbnRlciBhcml0aG1ldGlj IHVudGlsIHdlIGNoZWNrIGl0cyB2YWx1ZS4gICovCisrCisrICB1bnNpZ25lZCBjaGFyICogbXNn X2NvbnRyb2xfcHRyID0gKHVuc2lnbmVkIGNoYXIgKikgbWhkci0+bXNnX2NvbnRyb2w7CisrICB1 bnNpZ25lZCBjaGFyICogY21zZ19wdHIgPSAodW5zaWduZWQgY2hhciAqKSBjbXNnOworKworKyAg c2l6ZV90IHNpemVfbmVlZGVkID0gc2l6ZW9mIChzdHJ1Y3QgY21zZ2hkcikKKysgICAgICAgICAg ICAgICAgICAgICAgICsgX19DTVNHX1BBRERJTkcgKGNtc2ctPmNtc2dfbGVuKTsKKysKKysgIC8q IFRoZSBjdXJyZW50IGhlYWRlciBpcyBtYWxmb3JtZWQsIHRvbyBzbWFsbCB0byBiZSBhIGZ1bGwg aGVhZGVyLiAgKi8KKyAgIGlmICgoc2l6ZV90KSBjbXNnLT5jbXNnX2xlbiA8IHNpemVvZiAoc3Ry dWN0IGNtc2doZHIpKQorLSAgICAvKiBUaGUga2VybmVsIGhlYWRlciBkb2VzIHRoaXMgc28gdGhl cmUgbWF5IGJlIGEgcmVhc29uLiAgKi8KKy0gICAgcmV0dXJuIE5VTEw7CisrICAgIHJldHVybiAo c3RydWN0IGNtc2doZHIgKikgMDsKKysKKysgIC8qIFRoZXJlIGlzbid0IGVub3VnaCBzcGFjZSBi ZXR3ZWVuIGNtc2cgYW5kIHRoZSBlbmQgb2YgdGhlIGJ1ZmZlciB0bworKyAgaG9sZCB0aGUgY3Vy cmVudCBjbXNnICphbmQqIHRoZSBuZXh0IG9uZS4gICovCisrICBpZiAoKChzaXplX3QpCisrICAg ICAgICAgKG1zZ19jb250cm9sX3B0ciArIG1oZHItPm1zZ19jb250cm9sbGVuIC0gY21zZ19wdHIp CisrICAgICAgIDwgc2l6ZV9uZWVkZWQpCisrICAgICAgfHwgKChzaXplX3QpCisrICAgICAgICAg ICAgKG1zZ19jb250cm9sX3B0ciArIG1oZHItPm1zZ19jb250cm9sbGVuIC0gY21zZ19wdHIKKysg ICAgICAgICAgICAgLSBzaXplX25lZWRlZCkKKysgICAgICAgICAgPCBjbXNnLT5jbXNnX2xlbikp CisrCisrICAgIHJldHVybiAoc3RydWN0IGNtc2doZHIgKikgMDsKKyAKKysgIC8qIE5vdywgd2Ug dHJ1c3QgY21zZ19sZW4gYW5kIGNhbiB1c2UgaXQgdG8gZmluZCB0aGUgbmV4dCBoZWFkZXIuICAq LworICAgY21zZyA9IChzdHJ1Y3QgY21zZ2hkciAqKSAoKHVuc2lnbmVkIGNoYXIgKikgY21zZwor IAkJCSAgICAgKyBDTVNHX0FMSUdOIChjbXNnLT5jbXNnX2xlbikpOworLSAgaWYgKCh1bnNpZ25l ZCBjaGFyICopIChjbXNnICsgMSkgPiAoKHVuc2lnbmVkIGNoYXIgKikgbWhkci0+bXNnX2NvbnRy b2wKKy0JCQkJICAgICAgKyBtaGRyLT5tc2dfY29udHJvbGxlbikKKy0gICAgICB8fCAoKHVuc2ln bmVkIGNoYXIgKikgY21zZyArIENNU0dfQUxJR04gKGNtc2ctPmNtc2dfbGVuKQorLQkgID4gKCh1 bnNpZ25lZCBjaGFyICopIG1oZHItPm1zZ19jb250cm9sICsgbWhkci0+bXNnX2NvbnRyb2xsZW4p KSkKKy0gICAgLyogTm8gbW9yZSBlbnRyaWVzLiAgKi8KKy0gICAgcmV0dXJuIE5VTEw7CisgICBy ZXR1cm4gY21zZzsKKyB9CisgbGliY19oaWRkZW5fZGVmIChfX2Ntc2dfbnh0aGRyKQorLS0gCisy LjM4LjEKKworCitGcm9tIDVjNjI4NzRmNDIzYWY5M2U5N2I1MWJjOWE1N2FmMjI4YTU0NjE1NmYg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBcmp1biBTaGFua2FyIDxhcmp1bkByZWRo YXQuY29tPgorRGF0ZTogTW9uLCAyMiBBdWcgMjAyMiAxODoyMToxNCArMDIwMAorU3ViamVjdDog W1BBVENIIDA5LzcyXSBORVdTOiBBZGQgZW50cnkgZm9yIGJ1ZyAyODg0NgorCistLS0KKyBORVdT IHwgMSArCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCisKK2RpZmYgLS1naXQgYS9O RVdTIGIvTkVXUworaW5kZXggYmVjYWIzYWRlOS4uYWUzMDkwMGJiYyAxMDA2NDQKKy0tLSBhL05F V1MKKysrKyBiL05FV1MKK0BAIC05LDYgKzksNyBAQCBWZXJzaW9uIDIuMzYuMQorIAorIFRoZSBm b2xsb3dpbmcgYnVncyBhcmUgcmVzb2x2ZWQgd2l0aCB0aGlzIHJlbGVhc2U6CisgCisrICBbMjg4 NDZdIENNU0dfTlhUSERSIG1heSB0cmlnZ2VyIC1Xc3RyaWN0LW92ZXJmbG93IHdhcm5pbmcKKyAg IFsyOTQ0Nl0gX2Rsb3BlbiBub3cgaWdub3JlcyBkbF9jYWxsZXIgYXJndW1lbnQgaW4gc3RhdGlj IG1vZGUKKyAgIFsyOTQ4NV0gTGludXg6IFRlcm1pbmF0ZSBzdWJwcm9jZXNzIG9uIGxhdGUgZmFp bHVyZSBpbiB0c3QtcGlkZmQKKyAgIFsyOTQ5MF0gYWxwaGE6IE5ldyBfX2Jya19jYWxsIGltcGxl bWVudGF0aW9uIGlzIGJyb2tlbgorLS0gCisyLjM4LjEKKworCitGcm9tIDAwNjJlN2RkMWMzNjc0 ZWNlMmRhY2E1M2E4OThiYWRkMjhiNjA0MjEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9t OiBBZGhlbWVydmFsIFphbmVsbGEgPGFkaGVtZXJ2YWwuemFuZWxsYUBsaW5hcm8ub3JnPgorRGF0 ZTogV2VkLCAxMCBBdWcgMjAyMiAxNjoyNDowNiAtMDMwMAorU3ViamVjdDogW1BBVENIIDEwLzcy XSBnbGliY2V4dHJhY3QucHk6IEFkZCBjb21waWxlX2Nfc25pcHBldAorCitJdCBtaWdodCBiZSB1 c2VkIG9uIHRlc3RzIHRvIGNoZWNrIGlmIGEgc25pcHBldCBidWlsZCB3aXRoIHRoZSBwcm92aWRl ZAorY29tcGlsZXIgYW5kIGZsYWdzLgorCitSZXZpZXdlZC1ieTogRmxvcmlhbiBXZWltZXIgPGZ3 ZWltZXJAcmVkaGF0LmNvbT4KKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDg0MWFmYTExNmUz MmIzYzcxOTU0NzU3NjljMjZiZjQ2ZmQ4NzBkMzIpCistLS0KKyBzY3JpcHRzL2dsaWJjZXh0cmFj dC5weSB8IDE5ICsrKysrKysrKysrKysrKysrKysKKyAxIGZpbGUgY2hhbmdlZCwgMTkgaW5zZXJ0 aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvc2NyaXB0cy9nbGliY2V4dHJhY3QucHkgYi9zY3JpcHRz L2dsaWJjZXh0cmFjdC5weQoraW5kZXggNDNhYjU4ZmZlMi4uMzZkMjA0YzliMCAxMDA2NDQKKy0t LSBhL3NjcmlwdHMvZ2xpYmNleHRyYWN0LnB5CisrKysgYi9zY3JpcHRzL2dsaWJjZXh0cmFjdC5w eQorQEAgLTE3LDYgKzE3LDcgQEAKKyAjIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGli cmFyeTsgaWYgbm90LCBzZWUKKyAjIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisg CisraW1wb3J0IGNvbGxlY3Rpb25zCisgaW1wb3J0IG9zLnBhdGgKKyBpbXBvcnQgcmUKKyBpbXBv cnQgc3VicHJvY2VzcworQEAgLTE3MywzICsxNzQsMjEgQEAgZGVmIGNvbXBhcmVfbWFjcm9fY29u c3RzKHNvdXJjZV8xLCBzb3VyY2VfMiwgY2MsIG1hY3JvX3JlLCBleGNsdWRlX3JlPU5vbmUsCisg ICAgICAgICAgICAgaWYgbm90IGFsbG93X2V4dHJhXzI6CisgICAgICAgICAgICAgICAgIHJldCA9 IDEKKyAgICAgcmV0dXJuIHJldAorKworK0NvbXBpbGVSZXN1bHQgPSBjb2xsZWN0aW9ucy5uYW1l ZHR1cGxlKCJDb21waWxlUmVzdWx0IiwgInJldHVybmNvZGUgb3V0cHV0IikKKysKKytkZWYgY29t cGlsZV9jX3NuaXBwZXQoc25pcHBldCwgY2MsIGV4dHJhX2NjX2FyZ3M9JycpOgorKyAgICAiIiJD b21waWxlIGFuZCByZXR1cm4gd2hldGhlciB0aGUgU05JUFBFVCBjYW4gYmUgYnVpbGQgd2l0aCBD QyBhbG9uZworKyAgICAgICBFWFRSQV9DQ19BUkdTIGNvbXBpbGVyIGZsYWdzLiAgUmV0dXJuIGEg Q29tcGlsZVJlc3VsdCB3aXRoIFJFVFVSTkNPREUKKysgICAgICAgYmVpbmcgMCBmb3Igc3VjY2Vz cywgb3IgdGhlIGZhaWx1cmUgdmFsdWUgYW5kIHRoZSBjb21waWxlciBvdXRwdXQuCisrICAgICIi IgorKyAgICB3aXRoIHRlbXBmaWxlLlRlbXBvcmFyeURpcmVjdG9yeSgpIGFzIHRlbXBfZGlyOgor KyAgICAgICAgY19maWxlX25hbWUgPSBvcy5wYXRoLmpvaW4odGVtcF9kaXIsICd0ZXN0LmMnKQor KyAgICAgICAgb2JqX2ZpbGVfbmFtZSA9IG9zLnBhdGguam9pbih0ZW1wX2RpciwgJ3Rlc3Qubycp CisrICAgICAgICB3aXRoIG9wZW4oY19maWxlX25hbWUsICd3JykgYXMgY19maWxlOgorKyAgICAg ICAgICAgIGNfZmlsZS53cml0ZShzbmlwcGV0ICsgJ1xuJykKKysgICAgICAgIGNtZCA9IGNjLnNw bGl0KCkgKyBleHRyYV9jY19hcmdzLnNwbGl0KCkgKyBbJy1jJywgJy1vJywgb2JqX2ZpbGVfbmFt ZSwKKysgICAgICAgICAgICAgICAgY19maWxlX25hbWVdCisrICAgICAgICByID0gc3VicHJvY2Vz cy5ydW4oY21kLCBjaGVjaz1GYWxzZSwgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSwKKysgICAgICAg ICAgICAgICAgc3RkZXJyPXN1YnByb2Nlc3MuU1RET1VUKQorKyAgICAgICAgcmV0dXJuIENvbXBp bGVSZXN1bHQoci5yZXR1cm5jb2RlLCByLnN0ZG91dCkKKy0tIAorMi4zOC4xCisKKworRnJvbSAx Y2M1NTEzMTE0ZTc2MDgzNjY5Y2JhMWIxMTI1MmFhZDM1NTI1ZTY5IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQorRnJvbTogQWRoZW1lcnZhbCBaYW5lbGxhIDxhZGhlbWVydmFsLnphbmVsbGFAbGlu YXJvLm9yZz4KK0RhdGU6IFdlZCwgMTAgQXVnIDIwMjIgMTQ6MjQ6NDQgLTAzMDAKK1N1YmplY3Q6 IFtQQVRDSCAxMS83Ml0gbGludXg6IFVzZSBjb21waWxlX2Nfc25pcHBldCB0byBjaGVjayBsaW51 eC9waWRmZC5oCisgYXZhaWxhYmlsaXR5CisKK0luc3RlYWQgb2YgdHlpbmcgdG8gYSBzcGVjaWZp YyBrZXJuZWwgdmVyc2lvbi4KKworQ2hlY2tlZCBvbiB4ODZfNjQtbGludXgtZ251LgorCitSZXZp ZXdlZC1ieTogRmxvcmlhbiBXZWltZXIgPGZ3ZWltZXJAcmVkaGF0LmNvbT4KKyhjaGVycnkgcGlj a2VkIGZyb20gY29tbWl0IDE1NDIwMTliNjliN2VjN2IyY2QzNDM1N2FmMDM1ZTQwNmQxNTM2MzEp CistLS0KKyBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC90c3QtcGlkZmQtY29uc3RzLnB5IHwgMTAg KysrKysrLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25z KC0pCisKK2RpZmYgLS1naXQgYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC90c3QtcGlkZmQtY29u c3RzLnB5IGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvdHN0LXBpZGZkLWNvbnN0cy5weQoraW5k ZXggOTBjYmI5YmU2NC4uZDczMjE3M2FiZCAxMDA2NDQKKy0tLSBhL3N5c2RlcHMvdW5peC9zeXN2 L2xpbnV4L3RzdC1waWRmZC1jb25zdHMucHkKKysrKyBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4 L3RzdC1waWRmZC1jb25zdHMucHkKK0BAIC0zMywxMSArMzMsMTMgQEAgZGVmIG1haW4oKToKKyAg ICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdDIGNvbXBpbGVyIChpbmNsdWRpbmcgb3B0aW9u cykgdG8gdXNlJykKKyAgICAgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKCkKKyAKKy0gICAgbGlu dXhfdmVyc2lvbl9oZWFkZXJzID0gZ2xpYmNzeXNjYWxscy5saW51eF9rZXJuZWxfdmVyc2lvbihh cmdzLmNjKQorLSAgICAjIExpbnV4IHN0YXJ0ZWQgdG8gcHJvdmlkZSBwaWRmZC5oIHdpdGggNS4x MC4KKy0gICAgaWYgbGludXhfdmVyc2lvbl9oZWFkZXJzIDwgKDUsIDEwKToKKysgICAgaWYgZ2xp YmNleHRyYWN0LmNvbXBpbGVfY19zbmlwcGV0KAorKyAgICAgICAgICAgICcjaW5jbHVkZSA8bGlu dXgvcGlkZmQuaD4nLAorKyAgICAgICAgICAgIGFyZ3MuY2MpLnJldHVybmNvZGUgIT0gMDoKKyAg ICAgICAgIHN5cy5leGl0ICg3NykKKy0gICAgbGludXhfdmVyc2lvbl9nbGliYyA9ICg1LCAxOCkK KysKKysgICAgbGludXhfdmVyc2lvbl9oZWFkZXJzID0gZ2xpYmNzeXNjYWxscy5saW51eF9rZXJu ZWxfdmVyc2lvbihhcmdzLmNjKQorKyAgICBsaW51eF92ZXJzaW9uX2dsaWJjID0gKDUsIDE5KQor ICAgICBzeXMuZXhpdChnbGliY2V4dHJhY3QuY29tcGFyZV9tYWNyb19jb25zdHMoCisgICAgICAg ICAgICAgICAgICcjaW5jbHVkZSA8c3lzL3BpZGZkLmg+XG4nLAorICAgICAgICAgICAgICAgICAn I2luY2x1ZGUgPGFzbS9mY250bC5oPlxuJworLS0gCisyLjM4LjEKKworCitGcm9tIDRkYWQ5N2Uy YTJlNTEwYzZiNTNhMGFkZDI5YTIxODg3MTRmY2Y0YWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CitGcm9tOiBBZGhlbWVydmFsIFphbmVsbGEgPGFkaGVtZXJ2YWwuemFuZWxsYUBsaW5hcm8ub3Jn PgorRGF0ZTogV2VkLCAxMCBBdWcgMjAyMiAxNDoyNDo0NSAtMDMwMAorU3ViamVjdDogW1BBVENI IDEyLzcyXSBsaW51eDogTWltaWMga2VybmVsIGRlZml0aW9uIGZvciBCTE9DS19TSVpFCisKK1Rv IGF2b2lkIHBvc3NpYmxlIHdhcm5pbmdzIGlmIHRoZSBrZXJuZWwgaGVhZGVyIGlzIGluY2x1ZGVk IGJlZm9yZQorc3lzL21vdW50LmguCisKK1Jldmlld2VkLWJ5OiBGbG9yaWFuIFdlaW1lciA8Zndl aW1lckByZWRoYXQuY29tPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgYzY4YjYwNDRiYzc5 NDU3MTY0MzFmMWFkYzA5MWIxN2MzOWI4MGEwNikKKy0tLQorIHN5c2RlcHMvdW5peC9zeXN2L2xp bnV4L3N5cy9tb3VudC5oIHwgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwg MSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lz L21vdW50LmggYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMvbW91bnQuaAoraW5kZXggZjk2 NTk4NmJhOC4uZGY2YjBkYmI0MiAxMDA2NDQKKy0tLSBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4 L3N5cy9tb3VudC5oCisrKysgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMvbW91bnQuaAor QEAgLTI3LDggKzI3LDggQEAKKyAjaW5jbHVkZSA8c3RkZGVmLmg+CisgI2luY2x1ZGUgPHN5cy9p b2N0bC5oPgorIAorLSNkZWZpbmUgQkxPQ0tfU0laRQkxMDI0CisgI2RlZmluZSBCTE9DS19TSVpF X0JJVFMJMTAKKysjZGVmaW5lIEJMT0NLX1NJWkUJKDE8PEJMT0NLX1NJWkVfQklUUykKKyAKKyAK KyAvKiBUaGVzZSBhcmUgdGhlIGZzLWluZGVwZW5kZW50IG1vdW50LWZsYWdzOiB1cCB0byAxNiBm bGFncyBhcmUKKy0tIAorMi4zOC4xCisKKworRnJvbSBkNDg4MTMyMjdiNjNhMGQ5MmVhMzU3ZWEw NzMzMjI5ZWQ3NGUzMWFiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQWRoZW1lcnZh bCBaYW5lbGxhIDxhZGhlbWVydmFsLnphbmVsbGFAbGluYXJvLm9yZz4KK0RhdGU6IFdlZCwgMTAg QXVnIDIwMjIgMTQ6MjQ6NDYgLTAzMDAKK1N1YmplY3Q6IFtQQVRDSCAxMy83Ml0gbGludXg6IFVz ZSBjb21waWxlX2Nfc25pcHBldCB0byBjaGVjayBsaW51eC9tb3VudC5oCisgYXZhaWxhYmlsaXR5 CisKK0NoZWNrZWQgb24geDg2XzY0LWxpbnV4LWdudS4KKworUmV2aWV3ZWQtYnk6IEZsb3JpYW4g V2VpbWVyIDxmd2VpbWVyQHJlZGhhdC5jb20+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBl MTIyNmNkYzZiMjA5NTM5YTkyZDMyZDViNjIwYmE1M2ZkMzVhYmYzKQorLS0tCisgc3lzZGVwcy91 bml4L3N5c3YvbGludXgvdHN0LW1vdW50LWNvbnN0cy5weSB8IDUgKysrKysKKyAxIGZpbGUgY2hh bmdlZCwgNSBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9zeXNkZXBzL3VuaXgvc3lzdi9s aW51eC90c3QtbW91bnQtY29uc3RzLnB5IGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvdHN0LW1v dW50LWNvbnN0cy5weQoraW5kZXggYTYyZjgwMzEyMy4uYmUyZWYyZGFmMSAxMDA3NTUKKy0tLSBh L3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3RzdC1tb3VudC1jb25zdHMucHkKKysrKyBiL3N5c2Rl cHMvdW5peC9zeXN2L2xpbnV4L3RzdC1tb3VudC1jb25zdHMucHkKK0BAIC0zMyw2ICszMywxMSBA QCBkZWYgbWFpbigpOgorICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J0MgY29tcGlsZXIg KGluY2x1ZGluZyBvcHRpb25zKSB0byB1c2UnKQorICAgICBhcmdzID0gcGFyc2VyLnBhcnNlX2Fy Z3MoKQorIAorKyAgICBpZiBnbGliY2V4dHJhY3QuY29tcGlsZV9jX3NuaXBwZXQoCisrICAgICAg ICAgICAgJyNpbmNsdWRlIDxsaW51eC9tb3VudC5oPicsCisrICAgICAgICAgICAgYXJncy5jYyku cmV0dXJuY29kZSAhPSAwOgorKyAgICAgICAgc3lzLmV4aXQgKDc3KQorKworICAgICBsaW51eF92 ZXJzaW9uX2hlYWRlcnMgPSBnbGliY3N5c2NhbGxzLmxpbnV4X2tlcm5lbF92ZXJzaW9uKGFyZ3Mu Y2MpCisgICAgICMgQ29uc3RhbnRzIGluIGdsaWJjIHdlcmUgdXBkYXRlZCB0byBtYXRjaCBMaW51 eCB2NS4xNi4gIFdoZW4gZ2xpYmMKKyAgICAgIyBjb25zdGFudHMgYXJlIHVwZGF0ZWQgdGhpcyB2 YWx1ZSBzaG91bGQgYmUgdXBkYXRlZCB0byBtYXRjaCB0aGUKKy0tIAorMi4zOC4xCisKKworRnJv bSBiYjFlOGIwY2E5OWI1Y2JlZGZhZTNlNjI0NTUyOGE4N2Q5NWZmM2UyIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQorRnJvbTogQWRoZW1lcnZhbCBaYW5lbGxhIDxhZGhlbWVydmFsLnphbmVsbGFA bGluYXJvLm9yZz4KK0RhdGU6IFdlZCwgMTAgQXVnIDIwMjIgMTQ6MjQ6NDcgLTAzMDAKK1N1Ympl Y3Q6IFtQQVRDSCAxNC83Ml0gbGludXg6IEZpeCBzeXMvbW91bnQuaCB1c2FnZSB3aXRoIGtlcm5l bCBoZWFkZXJzCisKK05vdyB0aGF0IGtlcm5lbCBleHBvcnRzIGxpbnV4L21vdW50LmggYW5kIGlu Y2x1ZGVzIGl0IG9uIGxpbnV4L2ZzLmgsCitpdHMgZGVmaW5pdGlvbnMgbWlnaHQgY2xhc2ggd2l0 aCBnbGliYyBleHBvcnRzIHN5cy9tb3VudC5oLiAgVG8gYXZvaWQKK3RoZSBuZWVkIHRvIHJlYXJy YW5nZSB0aGUgTGludXggaGVhZGVyIHRvIGJlIGFsd2F5cyBhZnRlciBnbGliYyBvbmUsCit0aGUg Z2xpYmMgc3lzL21vdW50LmggaXMgY2hhbmdlZCB0bzoKKworICAxLiBVbmRlZmluZSB0aGUgbWFj cm9zIGFsc28gdXNlZCBhcyBlbnVtIGNvbnN0YW50cy4gIFRoaXMgY292ZXJzIHByaW9yCisgICAg IGluY2x1c2lvbiBvZiA8bGludXgvbW91bnQuaD4gKGZvciBpbnN0YW5jZSBNU19SRE9OTFkpLgor CisgIDIuIEluY2x1ZGUgPGxpbnV4L21vdW50Lmg+IGJhc2VkIG9uIHRoZSB1c3VhbCBfX2hhc19p bmNsdWRlIGNoZWNrCisgICAgIChuZWVkcyB0byB1c2UgX19oYXNfaW5jbHVkZSAoImxpbnV4L21v dW50LmgiKSB0byBwYXBlciBvdmVyIEdDQworICAgICBidWdzLgorCisgIDMuIERlZmluZSBlbnVt IGZzY29uZmlnX2NvbW1hbmQgb25seSBpZiBGU09QRU5fQ0xPRVhFQyBpcyBub3QgZGVmaW5lZC4K KyAgICAgKEZTT1BFTl9DTE9FWEVDIHNob3VsZCBiZSBhIHZlcnkgY2xvc2UgcHJveHkuKQorCisg IDQuIERlZmluZSBzdHJ1Y3QgbW91bnRfYXR0ciBpZiBNT1VOVF9BVFRSX1NJWkVfVkVSMCBpcyBu b3QgZGVmaW5lZC4KKyAgICAgKEFkZGVkIGluIHRoZSBzYW1lIGNvbW1pdCBvbiB0aGUgTGludXgg c2lkZS4pCisKK1RoaXMgcGF0Y2ggYWxzbyBhZGRzIHNvbWUgdGVzdHMgdG8gY2hlY2sgaWYgaW5j bHVkaW5nIGxpbnV4L2ZzLmggYW5kCitsaW51eC9tb3VudC5oIGFmdGVyIGFuZCBiZWZvcmUgc3lz L21vdW50LmggZG9lcyB3b3JrLgorCitDaGVja2VkIG9uIHg4Nl82NC1saW51eC1nbnUuCisKK1Jl dmlld2VkLWJ5OiBGbG9yaWFuIFdlaW1lciA8ZndlaW1lckByZWRoYXQuY29tPgorKGNoZXJyeSBw aWNrZWQgZnJvbSBjb21taXQgNzc0MDU4ZDcyOTQyMjQ5ZjcxZDc0ZTdmMmI2MzlmNzcxODQxNjBh NikKKy0tLQorIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L01ha2VmaWxlICAgICAgICAgICAgIHwg IDggKysrCisgc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL21vdW50LmggICAgICAgICAgfCA3 MSArKysrKysrKysrKysrKysrKy0tLQorIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3RzdC1tb3Vu dC1jb21waWxlLnB5IHwgNjYgKysrKysrKysrKysrKysrKysrCisgMyBmaWxlcyBjaGFuZ2VkLCAx MzcgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKKyBjcmVhdGUgbW9kZSAxMDA3NTUgc3lz ZGVwcy91bml4L3N5c3YvbGludXgvdHN0LW1vdW50LWNvbXBpbGUucHkKKworZGlmZiAtLWdpdCBh L3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L01ha2VmaWxlIGIvc3lzZGVwcy91bml4L3N5c3YvbGlu dXgvTWFrZWZpbGUKK2luZGV4IGExMzlhMTY1MzIuLjNjZWRhOWZkYmYgMTAwNjQ0CistLS0gYS9z eXNkZXBzL3VuaXgvc3lzdi9saW51eC9NYWtlZmlsZQorKysrIGIvc3lzZGVwcy91bml4L3N5c3Yv bGludXgvTWFrZWZpbGUKK0BAIC0yNjUsNiArMjY1LDE0IEBAICQob2JqcGZ4KXRzdC1tb3VudC1j b25zdHMub3V0OiAuLi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC90c3QtbW91bnQtY29uc3RzLnB5 CisgCSAgPCAvZGV2L251bGwgPiAkQCAyPiYxOyAkKGV2YWx1YXRlLXRlc3QpCisgJChvYmpwZngp dHN0LW1vdW50LWNvbnN0cy5vdXQ6ICQoc3lzZGVwcy1saW51eC1weXRob24tZGVwcykKKyAKKyt0 ZXN0cy1zcGVjaWFsICs9ICQob2JqcGZ4KXRzdC1tb3VudC1jb21waWxlLm91dAorKyQob2JqcGZ4 KXRzdC1tb3VudC1jb21waWxlLm91dDogLi4vc3lzZGVwcy91bml4L3N5c3YvbGludXgvdHN0LW1v dW50LWNvbXBpbGUucHkKKysJJChzeXNkZXBzLWxpbnV4LXB5dGhvbikgXAorKwkgIC4uL3N5c2Rl cHMvdW5peC9zeXN2L2xpbnV4L3RzdC1tb3VudC1jb21waWxlLnB5IFwKKysJICAgICQoc3lzZGVw cy1saW51eC1weXRob24tY2MpIFwKKysJICA8IC9kZXYvbnVsbCA+ICRAIDI+JjE7ICQoZXZhbHVh dGUtdGVzdCkKKyskKG9ianBmeCl0c3QtbW91bnQtY29tcGlsZS5vdXQ6ICQoc3lzZGVwcy1saW51 eC1weXRob24tZGVwcykKKysKKyB0c3QtcnNlcS1kaXNhYmxlLUVOViA9IEdMSUJDX1RVTkFCTEVT PWdsaWJjLnB0aHJlYWQucnNlcT0wCisgCisgZW5kaWYgIyAkKHN1YmRpcikgPT0gbWlzYworZGlm ZiAtLWdpdCBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9tb3VudC5oIGIvc3lzZGVwcy91 bml4L3N5c3YvbGludXgvc3lzL21vdW50LmgKK2luZGV4IGRmNmIwZGJiNDIuLjJlM2ZkNmE3ZmUg MTAwNjQ0CistLS0gYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMvbW91bnQuaAorKysrIGIv c3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL21vdW50LmgKK0BAIC0yNyw2ICsyNywxMyBAQAor ICNpbmNsdWRlIDxzdGRkZWYuaD4KKyAjaW5jbHVkZSA8c3lzL2lvY3RsLmg+CisgCisrI2lmZGVm IF9faGFzX2luY2x1ZGUKKysjIGlmIF9faGFzX2luY2x1ZGUgKCJsaW51eC9tb3VudC5oIikKKysj ICBpbmNsdWRlICJsaW51eC9tb3VudC5oIgorKyMgZW5kaWYKKysjZW5kaWYKKysKKysKKyAjZGVm aW5lIEJMT0NLX1NJWkVfQklUUwkxMAorICNkZWZpbmUgQkxPQ0tfU0laRQkoMTw8QkxPQ0tfU0la RV9CSVRTKQorIAorQEAgLTM1LDY5ICs0Miw5OCBAQAorICAgIHN1cHBvcnRlZCAgKi8KKyBlbnVt CisgeworKyN1bmRlZiBNU19SRE9OTFkKKyAgIE1TX1JET05MWSA9IDEsCQkvKiBNb3VudCByZWFk LW9ubHkuICAqLworICNkZWZpbmUgTVNfUkRPTkxZCU1TX1JET05MWQorKyN1bmRlZiBNU19OT1NV SUQKKyAgIE1TX05PU1VJRCA9IDIsCQkvKiBJZ25vcmUgc3VpZCBhbmQgc2dpZCBiaXRzLiAgKi8K KyAjZGVmaW5lIE1TX05PU1VJRAlNU19OT1NVSUQKKysjdW5kZWYgTVNfTk9ERVYKKyAgIE1TX05P REVWID0gNCwJCQkvKiBEaXNhbGxvdyBhY2Nlc3MgdG8gZGV2aWNlIHNwZWNpYWwgZmlsZXMuICAq LworICNkZWZpbmUgTVNfTk9ERVYJTVNfTk9ERVYKKysjdW5kZWYgTVNfTk9FWEVDCisgICBNU19O T0VYRUMgPSA4LAkJLyogRGlzYWxsb3cgcHJvZ3JhbSBleGVjdXRpb24uICAqLworICNkZWZpbmUg TVNfTk9FWEVDCU1TX05PRVhFQworKyN1bmRlZiBNU19TWU5DSFJPTk9VUworICAgTVNfU1lOQ0hS T05PVVMgPSAxNiwJCS8qIFdyaXRlcyBhcmUgc3luY2VkIGF0IG9uY2UuICAqLworICNkZWZpbmUg TVNfU1lOQ0hST05PVVMJTVNfU1lOQ0hST05PVVMKKysjdW5kZWYgTVNfUkVNT1VOVAorICAgTVNf UkVNT1VOVCA9IDMyLAkJLyogQWx0ZXIgZmxhZ3Mgb2YgYSBtb3VudGVkIEZTLiAgKi8KKyAjZGVm aW5lIE1TX1JFTU9VTlQJTVNfUkVNT1VOVAorKyN1bmRlZiBNU19NQU5ETE9DSworICAgTVNfTUFO RExPQ0sgPSA2NCwJCS8qIEFsbG93IG1hbmRhdG9yeSBsb2NrcyBvbiBhbiBGUy4gICovCisgI2Rl ZmluZSBNU19NQU5ETE9DSwlNU19NQU5ETE9DSworKyN1bmRlZiBNU19ESVJTWU5DCisgICBNU19E SVJTWU5DID0gMTI4LAkJLyogRGlyZWN0b3J5IG1vZGlmaWNhdGlvbnMgYXJlIHN5bmNocm9ub3Vz LiAgKi8KKyAjZGVmaW5lIE1TX0RJUlNZTkMJTVNfRElSU1lOQworKyN1bmRlZiBNU19OT1NZTUZP TExPVworICAgTVNfTk9TWU1GT0xMT1cgPSAyNTYsCQkvKiBEbyBub3QgZm9sbG93IHN5bWxpbmtz LiAgKi8KKyAjZGVmaW5lIE1TX05PU1lNRk9MTE9XCU1TX05PU1lNRk9MTE9XCisrI3VuZGVmIE1T X05PQVRJTUUKKyAgIE1TX05PQVRJTUUgPSAxMDI0LAkJLyogRG8gbm90IHVwZGF0ZSBhY2Nlc3Mg dGltZXMuICAqLworICNkZWZpbmUgTVNfTk9BVElNRQlNU19OT0FUSU1FCisrI3VuZGVmIE1TX05P RElSQVRJTUUKKyAgIE1TX05PRElSQVRJTUUgPSAyMDQ4LAkJLyogRG8gbm90IHVwZGF0ZSBkaXJl Y3RvcnkgYWNjZXNzIHRpbWVzLiAgKi8KKyAjZGVmaW5lIE1TX05PRElSQVRJTUUJTVNfTk9ESVJB VElNRQorKyN1bmRlZiBNU19CSU5ECisgICBNU19CSU5EID0gNDA5NiwJCS8qIEJpbmQgZGlyZWN0 b3J5IGF0IGRpZmZlcmVudCBwbGFjZS4gICovCisgI2RlZmluZSBNU19CSU5ECQlNU19CSU5ECisr I3VuZGVmIE1TX01PVkUKKyAgIE1TX01PVkUgPSA4MTkyLAorICNkZWZpbmUgTVNfTU9WRQkJTVNf TU9WRQorKyN1bmRlZiBNU19SRUMKKyAgIE1TX1JFQyA9IDE2Mzg0LAorICNkZWZpbmUgTVNfUkVD CQlNU19SRUMKKysjdW5kZWYgTVNfU0lMRU5UCisgICBNU19TSUxFTlQgPSAzMjc2OCwKKyAjZGVm aW5lIE1TX1NJTEVOVAlNU19TSUxFTlQKKysjdW5kZWYgTVNfUE9TSVhBQ0wKKyAgIE1TX1BPU0lY QUNMID0gMSA8PCAxNiwJLyogVkZTIGRvZXMgbm90IGFwcGx5IHRoZSB1bWFzay4gICovCisgI2Rl ZmluZSBNU19QT1NJWEFDTAlNU19QT1NJWEFDTAorKyN1bmRlZiBNU19VTkJJTkRBQkxFCisgICBN U19VTkJJTkRBQkxFID0gMSA8PCAxNywJLyogQ2hhbmdlIHRvIHVuYmluZGFibGUuICAqLworICNk ZWZpbmUgTVNfVU5CSU5EQUJMRQlNU19VTkJJTkRBQkxFCisrI3VuZGVmIE1TX1BSSVZBVEUKKyAg IE1TX1BSSVZBVEUgPSAxIDw8IDE4LAkJLyogQ2hhbmdlIHRvIHByaXZhdGUuICAqLworICNkZWZp bmUgTVNfUFJJVkFURQlNU19QUklWQVRFCisrI3VuZGVmIE1TX1NMQVZFCisgICBNU19TTEFWRSA9 IDEgPDwgMTksCQkvKiBDaGFuZ2UgdG8gc2xhdmUuICAqLworICNkZWZpbmUgTVNfU0xBVkUJTVNf U0xBVkUKKysjdW5kZWYgTVNfU0hBUkVECisgICBNU19TSEFSRUQgPSAxIDw8IDIwLAkJLyogQ2hh bmdlIHRvIHNoYXJlZC4gICovCisgI2RlZmluZSBNU19TSEFSRUQJTVNfU0hBUkVECisrI3VuZGVm IE1TX1JFTEFUSU1FCisgICBNU19SRUxBVElNRSA9IDEgPDwgMjEsCS8qIFVwZGF0ZSBhdGltZSBy ZWxhdGl2ZSB0byBtdGltZS9jdGltZS4gICovCisgI2RlZmluZSBNU19SRUxBVElNRQlNU19SRUxB VElNRQorKyN1bmRlZiBNU19LRVJOTU9VTlQKKyAgIE1TX0tFUk5NT1VOVCA9IDEgPDwgMjIsCS8q IFRoaXMgaXMgYSBrZXJuX21vdW50IGNhbGwuICAqLworICNkZWZpbmUgTVNfS0VSTk1PVU5UCU1T X0tFUk5NT1VOVAorKyN1bmRlZiBNU19JX1ZFUlNJT04KKyAgIE1TX0lfVkVSU0lPTiA9ICAxIDw8 IDIzLAkvKiBVcGRhdGUgaW5vZGUgSV92ZXJzaW9uIGZpZWxkLiAgKi8KKyAjZGVmaW5lIE1TX0lf VkVSU0lPTglNU19JX1ZFUlNJT04KKysjdW5kZWYgTVNfU1RSSUNUQVRJTUUKKyAgIE1TX1NUUklD VEFUSU1FID0gMSA8PCAyNCwJLyogQWx3YXlzIHBlcmZvcm0gYXRpbWUgdXBkYXRlcy4gICovCisg I2RlZmluZSBNU19TVFJJQ1RBVElNRQlNU19TVFJJQ1RBVElNRQorKyN1bmRlZiBNU19MQVpZVElN RQorICAgTVNfTEFaWVRJTUUgPSAxIDw8IDI1LAkvKiBVcGRhdGUgdGhlIG9uLWRpc2sgW2FjbV10 aW1lcyBsYXppbHkuICAqLworICNkZWZpbmUgTVNfTEFaWVRJTUUJTVNfTEFaWVRJTUUKKysjdW5k ZWYgTVNfQUNUSVZFCisgICBNU19BQ1RJVkUgPSAxIDw8IDMwLAorICNkZWZpbmUgTVNfQUNUSVZF CU1TX0FDVElWRQorKyN1bmRlZiBNU19OT1VTRVIKKyAgIE1TX05PVVNFUiA9IDEgPDwgMzEKKyAj ZGVmaW5lIE1TX05PVVNFUglNU19OT1VTRVIKKyB9OworIAorIC8qIEZsYWdzIHRoYXQgY2FuIGJl IGFsdGVyZWQgYnkgTVNfUkVNT1VOVCAgKi8KKysjdW5kZWYgTVNfUk1UX01BU0sKKyAjZGVmaW5l IE1TX1JNVF9NQVNLIChNU19SRE9OTFl8TVNfU1lOQ0hST05PVVN8TVNfTUFORExPQ0t8TVNfSV9W RVJTSU9OIFwKKyAJCSAgICAgfE1TX0xBWllUSU1FKQorIAorIAorIC8qIE1hZ2ljIG1vdW50IGZs YWcgbnVtYmVyLiBIYXMgdG8gYmUgb3ItZWQgdG8gdGhlIGZsYWcgdmFsdWVzLiAgKi8KKyAKKysj dW5kZWYgTVNfTUdDX1ZBTAorICNkZWZpbmUgTVNfTUdDX1ZBTCAweGMwZWQwMDAwCS8qIE1hZ2lj IGZsYWcgbnVtYmVyIHRvIGluZGljYXRlICJuZXciIGZsYWdzICovCisgI2RlZmluZSBNU19NR0Nf TVNLIDB4ZmZmZjAwMDAJLyogTWFnaWMgZmxhZyBudW1iZXIgbWFzayAqLworIAorQEAgLTEwNiwy MCArMTQyLDM1IEBAIGVudW0KKyAgICBpcyBwcm9iYWJseSBhcyBiYWQgYW5kIEkgZG9uJ3Qgd2Fu dCB0byBjcmVhdGUgeWV0IGFub3RoZXIgaW5jbHVkZQorICAgIGZpbGUuICAqLworIAorKyN1bmRl ZiBCTEtST1NFVAorICNkZWZpbmUgQkxLUk9TRVQgICBfSU8oMHgxMiwgOTMpIC8qIFNldCBkZXZp Y2UgcmVhZC1vbmx5ICgwID0gcmVhZC13cml0ZSkuICAqLworKyN1bmRlZiBCTEtST0dFVAorICNk ZWZpbmUgQkxLUk9HRVQgICBfSU8oMHgxMiwgOTQpIC8qIEdldCByZWFkLW9ubHkgc3RhdHVzICgw ID0gcmVhZF93cml0ZSkuICAqLworKyN1bmRlZiBCTEtSUlBBUlQKKyAjZGVmaW5lIEJMS1JSUEFS VCAgX0lPKDB4MTIsIDk1KSAvKiBSZS1yZWFkIHBhcnRpdGlvbiB0YWJsZS4gICovCisrI3VuZGVm IEJMS0dFVFNJWkUKKyAjZGVmaW5lIEJMS0dFVFNJWkUgX0lPKDB4MTIsIDk2KSAvKiBSZXR1cm4g ZGV2aWNlIHNpemUuICAqLworKyN1bmRlZiBCTEtGTFNCVUYKKyAjZGVmaW5lIEJMS0ZMU0JVRiAg X0lPKDB4MTIsIDk3KSAvKiBGbHVzaCBidWZmZXIgY2FjaGUuICAqLworKyN1bmRlZiBCTEtSQVNF VAorICNkZWZpbmUgQkxLUkFTRVQgICBfSU8oMHgxMiwgOTgpIC8qIFNldCByZWFkIGFoZWFkIGZv ciBibG9jayBkZXZpY2UuICAqLworKyN1bmRlZiBCTEtSQUdFVAorICNkZWZpbmUgQkxLUkFHRVQg ICBfSU8oMHgxMiwgOTkpIC8qIEdldCBjdXJyZW50IHJlYWQgYWhlYWQgc2V0dGluZy4gICovCisr I3VuZGVmIEJMS0ZSQVNFVAorICNkZWZpbmUgQkxLRlJBU0VUICBfSU8oMHgxMiwxMDApIC8qIFNl dCBmaWxlc3lzdGVtIHJlYWQtYWhlYWQuICAqLworKyN1bmRlZiBCTEtGUkFHRVQKKyAjZGVmaW5l IEJMS0ZSQUdFVCAgX0lPKDB4MTIsMTAxKSAvKiBHZXQgZmlsZXN5c3RlbSByZWFkLWFoZWFkLiAg Ki8KKysjdW5kZWYgQkxLU0VDVFNFVAorICNkZWZpbmUgQkxLU0VDVFNFVCBfSU8oMHgxMiwxMDIp IC8qIFNldCBtYXggc2VjdG9ycyBwZXIgcmVxdWVzdC4gICovCisrI3VuZGVmIEJMS1NFQ1RHRVQK KyAjZGVmaW5lIEJMS1NFQ1RHRVQgX0lPKDB4MTIsMTAzKSAvKiBHZXQgbWF4IHNlY3RvcnMgcGVy IHJlcXVlc3QuICAqLworKyN1bmRlZiBCTEtTU1pHRVQKKyAjZGVmaW5lIEJMS1NTWkdFVCAgX0lP KDB4MTIsMTA0KSAvKiBHZXQgYmxvY2sgZGV2aWNlIHNlY3RvciBzaXplLiAgKi8KKysjdW5kZWYg QkxLQlNaR0VUCisgI2RlZmluZSBCTEtCU1pHRVQgIF9JT1IoMHgxMiwxMTIsc2l6ZV90KQorKyN1 bmRlZiBCTEtCU1pTRVQKKyAjZGVmaW5lIEJMS0JTWlNFVCAgX0lPVygweDEyLDExMyxzaXplX3Qp CisrI3VuZGVmIEJMS0dFVFNJWkU2NAorICNkZWZpbmUgQkxLR0VUU0laRTY0IF9JT1IoMHgxMiwx MTQsc2l6ZV90KSAvKiByZXR1cm4gZGV2aWNlIHNpemUuICAqLworIAorIAorQEAgLTE1Nyw2ICsy MDgsNyBAQCBlbnVtCisgI2RlZmluZSBNT1VOVF9BVFRSX05PU1lNRk9MTE9XICAweDAwMjAwMDAw IC8qIERvIG5vdCBmb2xsb3cgc3ltbGlua3MuICAqLworIAorIAorKyNpZm5kZWYgTU9VTlRfQVRU Ul9TSVpFX1ZFUjAKKyAvKiBGb3IgbW91bnRfc2V0YXR0ci4gICovCisgc3RydWN0IG1vdW50X2F0 dHIKKyB7CitAQCAtMTY1LDYgKzIxNyw3IEBAIHN0cnVjdCBtb3VudF9hdHRyCisgICB1aW50NjRf dCBwcm9wYWdhdGlvbjsKKyAgIHVpbnQ2NF90IHVzZXJuc19mZDsKKyB9OworKyNlbmRpZgorIAor ICNkZWZpbmUgTU9VTlRfQVRUUl9TSVpFX1ZFUjAgICAgMzIgLyogc2l6ZW9mIGZpcnN0IHB1Ymxp c2hlZCBzdHJ1Y3QgKi8KKyAKK0BAIC0xODUsMjYgKzIzOCwyOCBAQCBzdHJ1Y3QgbW91bnRfYXR0 cgorICNkZWZpbmUgRlNQSUNLX0VNUFRZX1BBVEggICAgICAgMHgwMDAwMDAwOAorIAorIAorKyNp Zm5kZWYgRlNPUEVOX0NMT0VYRUMKKyAvKiBUaGUgdHlwZSBvZiBmc2NvbmZpZyBjYWxsIG1hZGUu ICAgKi8KKyBlbnVtIGZzY29uZmlnX2NvbW1hbmQKKyB7CisgICBGU0NPTkZJR19TRVRfRkxBRyAg ICAgICA9IDAsICAgIC8qIFNldCBwYXJhbWV0ZXIsIHN1cHBseWluZyBubyB2YWx1ZSAqLworLSNk ZWZpbmUgRlNDT05GSUdfU0VUX0ZMQUcgRlNDT05GSUdfU0VUX0ZMQUcKKysjIGRlZmluZSBGU0NP TkZJR19TRVRfRkxBRyBGU0NPTkZJR19TRVRfRkxBRworICAgRlNDT05GSUdfU0VUX1NUUklORyAg ICAgPSAxLCAgICAvKiBTZXQgcGFyYW1ldGVyLCBzdXBwbHlpbmcgYSBzdHJpbmcgdmFsdWUgKi8K Ky0jZGVmaW5lIEZTQ09ORklHX1NFVF9TVFJJTkcgRlNDT05GSUdfU0VUX1NUUklORworKyMgZGVm aW5lIEZTQ09ORklHX1NFVF9TVFJJTkcgRlNDT05GSUdfU0VUX1NUUklORworICAgRlNDT05GSUdf U0VUX0JJTkFSWSAgICAgPSAyLCAgICAvKiBTZXQgcGFyYW1ldGVyLCBzdXBwbHlpbmcgYSBiaW5h cnkgYmxvYiB2YWx1ZSAqLworLSNkZWZpbmUgRlNDT05GSUdfU0VUX0JJTkFSWSBGU0NPTkZJR19T RVRfQklOQVJZCisrIyBkZWZpbmUgRlNDT05GSUdfU0VUX0JJTkFSWSBGU0NPTkZJR19TRVRfQklO QVJZCisgICBGU0NPTkZJR19TRVRfUEFUSCAgICAgICA9IDMsICAgIC8qIFNldCBwYXJhbWV0ZXIs IHN1cHBseWluZyBhbiBvYmplY3QgYnkgcGF0aCAqLworLSNkZWZpbmUgRlNDT05GSUdfU0VUX1BB VEggRlNDT05GSUdfU0VUX1BBVEgKKysjIGRlZmluZSBGU0NPTkZJR19TRVRfUEFUSCBGU0NPTkZJ R19TRVRfUEFUSAorICAgRlNDT05GSUdfU0VUX1BBVEhfRU1QVFkgPSA0LCAgICAvKiBTZXQgcGFy YW1ldGVyLCBzdXBwbHlpbmcgYW4gb2JqZWN0IGJ5IChlbXB0eSkgcGF0aCAqLworLSNkZWZpbmUg RlNDT05GSUdfU0VUX1BBVEhfRU1QVFkgRlNDT05GSUdfU0VUX1BBVEhfRU1QVFkKKysjIGRlZmlu ZSBGU0NPTkZJR19TRVRfUEFUSF9FTVBUWSBGU0NPTkZJR19TRVRfUEFUSF9FTVBUWQorICAgRlND T05GSUdfU0VUX0ZEICAgICAgICAgPSA1LCAgICAvKiBTZXQgcGFyYW1ldGVyLCBzdXBwbHlpbmcg YW4gb2JqZWN0IGJ5IGZkICovCistI2RlZmluZSBGU0NPTkZJR19TRVRfRkQgRlNDT05GSUdfU0VU X0ZECisrIyBkZWZpbmUgRlNDT05GSUdfU0VUX0ZEIEZTQ09ORklHX1NFVF9GRAorICAgRlNDT05G SUdfQ01EX0NSRUFURSAgICAgPSA2LCAgICAvKiBJbnZva2Ugc3VwZXJibG9jayBjcmVhdGlvbiAq LworLSNkZWZpbmUgRlNDT05GSUdfQ01EX0NSRUFURSBGU0NPTkZJR19DTURfQ1JFQVRFCisrIyBk ZWZpbmUgRlNDT05GSUdfQ01EX0NSRUFURSBGU0NPTkZJR19DTURfQ1JFQVRFCisgICBGU0NPTkZJ R19DTURfUkVDT05GSUdVUkUgPSA3LCAgIC8qIEludm9rZSBzdXBlcmJsb2NrIHJlY29uZmlndXJh dGlvbiAqLworLSNkZWZpbmUgRlNDT05GSUdfQ01EX1JFQ09ORklHVVJFIEZTQ09ORklHX0NNRF9S RUNPTkZJR1VSRQorKyMgZGVmaW5lIEZTQ09ORklHX0NNRF9SRUNPTkZJR1VSRSBGU0NPTkZJR19D TURfUkVDT05GSUdVUkUKKyB9OworKyNlbmRpZgorIAorIC8qIG9wZW5fdHJlZSBmbGFncy4gICov CisgI2RlZmluZSBPUEVOX1RSRUVfQ0xPTkUgICAgMSAgICAgICAgIC8qIENsb25lIHRoZSB0YXJn ZXQgdHJlZSBhbmQgYXR0YWNoIHRoZSBjbG9uZSAqLworZGlmZiAtLWdpdCBhL3N5c2RlcHMvdW5p eC9zeXN2L2xpbnV4L3RzdC1tb3VudC1jb21waWxlLnB5IGIvc3lzZGVwcy91bml4L3N5c3YvbGlu dXgvdHN0LW1vdW50LWNvbXBpbGUucHkKK25ldyBmaWxlIG1vZGUgMTAwNzU1CitpbmRleCAwMDAw MDAwMDAwLi4wZWM3NGQ0ZTBiCistLS0gL2Rldi9udWxsCisrKysgYi9zeXNkZXBzL3VuaXgvc3lz di9saW51eC90c3QtbW91bnQtY29tcGlsZS5weQorQEAgLTAsMCArMSw2NiBAQAorKyMhL3Vzci9i aW4vcHl0aG9uMworKyMgQ2hlY2sgaWYgZ2xpYmMgcHJvdmlkZWQgc3lzL21vdW50LmggY2FuIGJl IHVzZWQgYWxvbmcgcmVsYXRlZCBrZXJuZWwKKysjIGhlYWRlcnMuCisrIyBDb3B5cmlnaHQgKEMp IDIwMjIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIyBUaGlzIGZpbGUgaXMgcGFy dCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKysjCisrIyBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVl IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKysjIG1vZGlmeSBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKysjIExpY2Vu c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor KyMgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh dGVyIHZlcnNpb24uCisrIworKyMgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJS QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrIyBNRVJDSEFOVEFC SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor KyMgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisr IyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy YWwgUHVibGljCisrIyBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJhcnk7IGlmIG5v dCwgc2VlCisrIyA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorKworK2ltcG9ydCBh cmdwYXJzZQorK2ltcG9ydCBzeXMKKysKKytpbXBvcnQgZ2xpYmNleHRyYWN0CisrCisrCisrZGVm IG1haW4oKToKKysgICAgIiIiVGhlIG1haW4gZW50cnkgcG9pbnQuIiIiCisrICAgIHBhcnNlciA9 IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKAorKyAgICAgICAgZGVzY3JpcHRpb249J0NoZWNrIGlm IGdsaWJjIHByb3ZpZGVkIHN5cy9tb3VudC5oIGNhbiBiZSAnCisrICAgICAgICAgICAgICAgICAg ICAnIHVzZWQgYWxvbmcgcmVsYXRlZCBrZXJuZWwgaGVhZGVycy4nKQorKyAgICBwYXJzZXIuYWRk X2FyZ3VtZW50KCctLWNjJywgbWV0YXZhcj0nQ0MnLAorKyAgICAgICAgICAgICAgICAgICAgICAg IGhlbHA9J0MgY29tcGlsZXIgKGluY2x1ZGluZyBvcHRpb25zKSB0byB1c2UnKQorKyAgICBhcmdz ID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQorKworKyAgICBpZiBnbGliY2V4dHJhY3QuY29tcGlsZV9j X3NuaXBwZXQoCisrICAgICAgICAgICAgJyNpbmNsdWRlIDxsaW51eC9tb3VudC5oPicsCisrICAg ICAgICAgICAgYXJncy5jYykucmV0dXJuY29kZSAhPSAwOgorKyAgICAgICAgc3lzLmV4aXQgKDc3 KQorKworKyAgICBkZWYgY2hlY2sodGVzdG5hbWUsIHNuaXBwZXQpOgorKyAgICAgICAgIyBBZGQg LVdlcnJvciB0byBjYXRjaCBtYWNybyByZWRlZmluaXRpb25zIGFuZCBfSVNPTUFDIHRvIGF2b2lk CisrICAgICAgICAjIGludGVybmFsIGdsaWJjIGRlZmluaXRpb25zLgorKyAgICAgICAgciA9IGds aWJjZXh0cmFjdC5jb21waWxlX2Nfc25pcHBldChzbmlwcGV0LCBhcmdzLmNjLAorKyAgICAgICAg ICAgICAgICAnLVdlcnJvciAtRF9JU09NQUMnKQorKyAgICAgICAgaWYgci5yZXR1cm5jb2RlICE9 IDA6CisrICAgICAgICAgICAgcHJpbnQoJ2Vycm9yOiB0ZXN0IHt9Olxue30nLmZvcm1hdCh0ZXN0 bmFtZSwgci5vdXRwdXQuZGVjb2RlKCkpKQorKyAgICAgICAgcmV0dXJuIHIucmV0dXJuY29kZQor KworKyAgICBzdGF0dXMgPSBtYXgoCisrICAgICAgICBjaGVjaygic3lzL21vdW50LmggKyBsaW51 eC9tb3VudC5oIiwKKysgICAgICAgICAgICAgICIjaW5jbHVkZSA8c3lzL21vdW50Lmg+XG4iCisr ICAgICAgICAgICAgICAiI2luY2x1ZGUgPGxpbnV4L21vdW50Lmg+IiksCisrICAgICAgICBjaGVj aygic3lzL21vdW50LmggKyBsaW51eC9mcy5oIiwKKysgICAgICAgICAgICAgICIjaW5jbHVkZSA8 c3lzL21vdW50Lmg+XG4iCisrICAgICAgICAgICAgICAiI2luY2x1ZGUgPGxpbnV4L2ZzLmg+Iiks CisrICAgICAgICBjaGVjaygibGludXgvbW91bnQuaCArIHN5cy9tb3VudC5oIiwKKysgICAgICAg ICAgICAgICIjaW5jbHVkZSA8bGludXgvbW91bnQuaD5cbiIKKysgICAgICAgICAgICAgICIjaW5j bHVkZSA8c3lzL21vdW50Lmg+IiksCisrICAgICAgICBjaGVjaygibGludXgvZnMuaCArIHN5cy9t b3VudC5oIiwKKysgICAgICAgICAgICAgICIjaW5jbHVkZSA8bGludXgvZnMuaD5cbiIKKysgICAg ICAgICAgICAgICIjaW5jbHVkZSA8c3lzL21vdW50Lmg+IikpCisrICAgIHN5cy5leGl0KHN0YXR1 cykKKysKKytpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorKyAgICBtYWluKCkKKy0tIAorMi4z OC4xCisKKworRnJvbSAzYmQzYzYxMmU5OGE1M2NlNjBlZDk3MmY1Y2QyYjkwNjI4YjNjYmE1IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRmxvcmlhbiBXZWltZXIgPGZ3ZWltZXJAcmVk aGF0LmNvbT4KK0RhdGU6IFR1ZSwgMTYgQXVnIDIwMjIgMDk6MjU6MjMgKzAyMDAKK1N1YmplY3Q6 IFtQQVRDSCAxNS83Ml0gTGludXg6IEZpeCBlbnVtIGZzY29uZmlnX2NvbW1hbmQgZGV0ZWN0aW9u IGluCisgPHN5cy9tb3VudC5oPgorCitUaGUgI2lmZGVmIEZTT1BFTl9DTE9FWEVDIGNoZWNrIGRp ZCBub3Qgd29yayBiZWNhdXNlIHRoZSBtYWNybword2FzIGFsd2F5cyBkZWZpbmVkIGluIHRoaXMg aGVhZGVyIHByaW9yIHRvIHRoZSBjaGVjaywgc28gdGhhdAordGhlIDxsaW51eC9tb3VudC5oPiBj b250ZW50cyBkaWQgbm90IG1hdHRlci4KKworRml4ZXMgY29tbWl0IDc3NDA1OGQ3Mjk0MjI0OWY3 MWQ3NGU3ZjJiNjM5Zjc3MTg0MTYwYTYKKygibGludXg6IEZpeCBzeXMvbW91bnQuaCB1c2FnZSB3 aXRoIGtlcm5lbCBoZWFkZXJzIikuCisKKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDI5NTVl ZjRiN2M5YjU2ZmNkN2FiZmVkZGVmN2VlODNjNjBhYmZmOTgpCistLS0KKyBzeXNkZXBzL3VuaXgv c3lzdi9saW51eC9zeXMvbW91bnQuaCB8IDYgKysrLS0tCisgMSBmaWxlIGNoYW5nZWQsIDMgaW5z ZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3N5c2RlcHMvdW5peC9z eXN2L2xpbnV4L3N5cy9tb3VudC5oIGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL21vdW50 LmgKK2luZGV4IDJlM2ZkNmE3ZmUuLjE5ODQxZDA3MzggMTAwNjQ0CistLS0gYS9zeXNkZXBzL3Vu aXgvc3lzdi9saW51eC9zeXMvbW91bnQuaAorKysrIGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgv c3lzL21vdW50LmgKK0BAIC0xODgsOSArMTg4LDYgQEAgZW51bQorIH07CisgCisgCistLyogZnNv cGVuIGZsYWdzLiAgKi8KKy0jZGVmaW5lIEZTT1BFTl9DTE9FWEVDICAgICAgICAgIDB4MDAwMDAw MDEKKy0KKyAvKiBmc21vdW50IGZsYWdzLiAgKi8KKyAjZGVmaW5lIEZTTU9VTlRfQ0xPRVhFQyAg ICAgICAgIDB4MDAwMDAwMDEKKyAKK0BAIC0yNjEsNiArMjU4LDkgQEAgZW51bSBmc2NvbmZpZ19j b21tYW5kCisgfTsKKyAjZW5kaWYKKyAKKysvKiBmc29wZW4gZmxhZ3MuICAqLworKyNkZWZpbmUg RlNPUEVOX0NMT0VYRUMgICAgICAgICAgMHgwMDAwMDAwMQorKworIC8qIG9wZW5fdHJlZSBmbGFn cy4gICovCisgI2RlZmluZSBPUEVOX1RSRUVfQ0xPTkUgICAgMSAgICAgICAgIC8qIENsb25lIHRo ZSB0YXJnZXQgdHJlZSBhbmQgYXR0YWNoIHRoZSBjbG9uZSAqLworICNkZWZpbmUgT1BFTl9UUkVF X0NMT0VYRUMgIE9fQ0xPRVhFQyAvKiBDbG9zZSB0aGUgZmlsZSBvbiBleGVjdmUoKSAqLworLS0g CisyLjM4LjEKKworCitGcm9tIGIwZTc4ODhkMWZhMmRiZDJkOWUxNjQ1ZWM4Yzc5NmFiZjc4ODgw YjkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBZGhlbWVydmFsIFphbmVsbGEgPGFk aGVtZXJ2YWwuemFuZWxsYUBsaW5hcm8ub3JnPgorRGF0ZTogU3VuLCAyOCBBdWcgMjAyMiAxNjo1 Mjo1MyAtMDMwMAorU3ViamVjdDogW1BBVENIIDE2LzcyXSBzeXNsb2c6IEZpeCBsYXJnZSBtZXNz YWdlcyAoQlojMjk1MzYpCisKK1RoZSBhNTgzYjZhZGQ0MDdjMTdjZCBjaGFuZ2UgZGlkIG5vdCBo YW5kbGUgbGFyZ2UgbWVzc2FnZXMgdGhhdAord291bGQgcmVxdWlyZSBhIGhlYXAgYWxsb2NhdGlv biBjb3JyZWN0bHksIHdoZXJlIHRoZSBtZXNzYWdlIGl0c2VsZgoraXMgbm90IHRha2UgaW4gY29u c2lkZXJhdGlvbi4KKworVGhpcyBwYXRjaCBmaXhlcyBpdCBhbmQgZXh0ZW5kIHRoZSB0c3Qtc3lz bG9nIHRvIGNoZWNrIGZvciBsYXJnZQorbWVzc2FnZXMgYXMgd2VsbC4KKworQ2hlY2tlZCBvbiB4 ODZfNjQtbGludXgtZ251LgorCitSZXZpZXdlZC1ieTogU2lkZGhlc2ggUG95YXJla2FyIDxzaWRk aGVzaEBzb3VyY2V3YXJlLm9yZz4KKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDUyYTViZTBk ZjQxMWVmM2ZmNDVjMTBjN2MzMDhjYjkyOTkzZDE1YjEpCistLS0KKyBtaXNjL3N5c2xvZy5jICAg ICB8ICAxOCArKystLS0KKyBtaXNjL3RzdC1zeXNsb2cuYyB8IDE1MiArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCisgMiBmaWxlcyBjaGFuZ2VkLCAxNDIgaW5z ZXJ0aW9ucygrKSwgMjggZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9taXNjL3N5c2xvZy5j IGIvbWlzYy9zeXNsb2cuYworaW5kZXggNTU0MDg5YmZjNC4uYjg4ZjY2YzgzNSAxMDA2NDQKKy0t LSBhL21pc2Mvc3lzbG9nLmMKKysrKyBiL21pc2Mvc3lzbG9nLmMKK0BAIC0xOTMsMjggKzE5Mywz MiBAQCBfX3ZzeXNsb2dfaW50ZXJuYWwgKGludCBwcmksIGNvbnN0IGNoYXIgKmZtdCwgdmFfbGlz dCBhcCwKKyAgICAgICBpbnQgdmwgPSBfX3ZzbnByaW50Zl9pbnRlcm5hbCAoYnVmcyArIGwsIHNp emVvZiBidWZzIC0gbCwgZm10LCBhcGMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG1vZGVfZmxhZ3MpOworICAgICAgIGlmICgwIDw9IHZsICYmIHZsIDwgc2l6ZW9mIGJ1 ZnMgLSBsKQorLSAgICAgICAgeworLSAgICAgICAgICBidWYgPSBidWZzOworLSAgICAgICAgICBi dWZzaXplID0gbCArIHZsOworLSAgICAgICAgfQorKyAgICAgICAgYnVmID0gYnVmczsKKysgICAg ICBidWZzaXplID0gbCArIHZsOworIAorICAgICAgIHZhX2VuZCAoYXBjKTsKKyAgICAgfQorIAor ICAgaWYgKGJ1ZiA9PSBOVUxMKQorICAgICB7CistICAgICAgYnVmID0gbWFsbG9jIChsICogc2l6 ZW9mIChjaGFyKSk7CisrICAgICAgYnVmID0gbWFsbG9jICgoYnVmc2l6ZSArIDEpICogc2l6ZW9m IChjaGFyKSk7CisgICAgICAgaWYgKGJ1ZiAhPSBOVUxMKQorIAl7CisgCSAgLyogVGVsbCB0aGUg Y2FuY2VsbGF0aW9uIGhhbmRsZXIgdG8gZnJlZSB0aGlzIGJ1ZmZlci4gICovCisgCSAgY2xhcmcu YnVmID0gYnVmOworIAorIAkgIGlmIChoYXNfdHMpCistCSAgICBfX3NucHJpbnRmIChidWZzLCBz aXplb2YgYnVmcywKKysJICAgIF9fc25wcmludGYgKGJ1ZiwgbCArIDEsCisgCQkJU1lTTE9HX0hF QURFUiAocHJpLCB0aW1lc3RhbXAsICZtc2dvZmYsIHBpZCkpOworIAkgIGVsc2UKKy0JICAgIF9f c25wcmludGYgKGJ1ZnMsIHNpemVvZiBidWZzLAorKwkgICAgX19zbnByaW50ZiAoYnVmLCBsICsg MSwKKyAJCQlTWVNMT0dfSEVBREVSX1dJVEhPVVRfVFMgKHByaSwgJm1zZ29mZikpOworKworKwkg IHZhX2xpc3QgYXBjOworKwkgIHZhX2NvcHkgKGFwYywgYXApOworKwkgIF9fdnNucHJpbnRmX2lu dGVybmFsIChidWYgKyBsLCBidWZzaXplIC0gbCArIDEsIGZtdCwgYXBjLAorKwkJCQltb2RlX2Zs YWdzKTsKKysJICB2YV9lbmQgKGFwYyk7CisgCX0KKyAgICAgICBlbHNlCisgICAgICAgICB7Citk aWZmIC0tZ2l0IGEvbWlzYy90c3Qtc3lzbG9nLmMgYi9taXNjL3RzdC1zeXNsb2cuYworaW5kZXgg ZTU1MGQxNTc5Ni4uMWQzMzJlY2U1MyAxMDA2NDQKKy0tLSBhL21pc2MvdHN0LXN5c2xvZy5jCisr KysgYi9taXNjL3RzdC1zeXNsb2cuYworQEAgLTY4LDIxICs2OCwxOSBAQCBzdGF0aWMgY29uc3Qg aW50IHByaW9yaXRpZXNbXSA9CisgICAgIExPR19ERUJVRworICAgfTsKKyAKKy1lbnVtCistICB7 CistICAgIGlkZW50X2xlbmd0aCA9IDY0LAorLSAgICBtc2dfbGVuZ3RoID0gNjQKKy0gIH07Cisr I2RlZmluZSBJREVOVF9MRU5HVEggNjQKKysjZGVmaW5lIE1TR19MRU5HVEggICAxMDI0CisgCisg I2RlZmluZSBTWVNMT0dfTVNHX0JBU0UgInN5c2xvZ19tZXNzYWdlIgorICNkZWZpbmUgT1BFTkxP R19JREVOVCAgICJvcGVubG9nX2lkZW50IgorK3N0YXRpYyBjaGFyIGxhcmdlX21lc3NhZ2VbTVNH X0xFTkdUSF07CisgCisgc3RydWN0IG1zZ190CisgICB7CisgICAgIGludCBwcmlvcml0eTsKKyAg ICAgaW50IGZhY2lsaXR5OworLSAgICBjaGFyIGlkZW50W2lkZW50X2xlbmd0aF07CistICAgIGNo YXIgbXNnW21zZ19sZW5ndGhdOworKyAgICBjaGFyIGlkZW50W0lERU5UX0xFTkdUSF07CisrICAg IGNoYXIgbXNnW01TR19MRU5HVEhdOworICAgICBwaWRfdCBwaWQ7CisgICB9OworIAorQEAgLTE0 Nyw2ICsxNDUsMzcgQEAgY2hlY2tfc3lzbG9nX21lc3NhZ2UgKGNvbnN0IHN0cnVjdCBtc2dfdCAq bXNnLCBpbnQgbXNnbnVtLCBpbnQgb3B0aW9ucywKKyAgIHJldHVybiB0cnVlOworIH0KKyAKKytz dGF0aWMgdm9pZAorK3NlbmRfc3lzbG9nX2xhcmdlIChpbnQgb3B0aW9ucykKKyt7CisrICBpbnQg ZmFjaWxpdHkgPSBMT0dfVVNFUjsKKysgIGludCBwcmlvcml0eSA9IExPR19JTkZPOworKworKyAg c3lzbG9nIChmYWNpbGl0eSB8IHByaW9yaXR5LCAiJXMgJWQgJWQiLCBsYXJnZV9tZXNzYWdlLCBm YWNpbGl0eSwKKysJICBwcmlvcml0eSk7CisrfQorKworK3N0YXRpYyB2b2lkCisrc2VuZF92c3lz bG9nX2xhcmdlIChpbnQgb3B0aW9ucykKKyt7CisrICBpbnQgZmFjaWxpdHkgPSBMT0dfVVNFUjsK KysgIGludCBwcmlvcml0eSA9IExPR19JTkZPOworKworKyAgY2FsbF92c3lzbG9nIChmYWNpbGl0 eSB8IHByaW9yaXR5LCAiJXMgJWQgJWQiLCBsYXJnZV9tZXNzYWdlLCBmYWNpbGl0eSwKKysJCXBy aW9yaXR5KTsKKyt9CisrCisrc3RhdGljIGJvb2wKKytjaGVja19zeXNsb2dfbWVzc2FnZV9sYXJn ZSAoY29uc3Qgc3RydWN0IG1zZ190ICptc2csIGludCBtc2dudW0sIGludCBvcHRpb25zLAorKwkJ CSAgICBwaWRfdCBwaWQpCisreworKyAgVEVTVF9DT01QQVJFIChtc2ctPmZhY2lsaXR5LCBMT0df VVNFUik7CisrICBURVNUX0NPTVBBUkUgKG1zZy0+cHJpb3JpdHksIExPR19JTkZPKTsKKysgIFRF U1RfQ09NUEFSRV9TVFJJTkcgKG1zZy0+bXNnLCBsYXJnZV9tZXNzYWdlKTsKKysKKysgIHJldHVy biBmYWxzZTsKKyt9CisrCisgc3RhdGljIHZvaWQKKyBzZW5kX29wZW5sb2cgKGludCBvcHRpb25z KQorIHsKK0BAIC0xNzksNiArMjA4LDE3IEBAIHNlbmRfb3BlbmxvZyAoaW50IG9wdGlvbnMpCisg ICBjbG9zZWxvZyAoKTsKKyB9CisgCisrc3RhdGljIHZvaWQKKytzZW5kX29wZW5sb2dfbGFyZ2Ug KGludCBvcHRpb25zKQorK3sKKysgIC8qIERlZmluZSBhIG5vbi1kZWZhdWx0IElERU5UIGFuZCBh IG5vdCBkZWZhdWx0IGZhY2lsaXR5LiAgKi8KKysgIG9wZW5sb2cgKE9QRU5MT0dfSURFTlQsIG9w dGlvbnMsIExPR19MT0NBTDApOworKworKyAgc3lzbG9nIChMT0dfSU5GTywgIiVzICVkICVkIiwg bGFyZ2VfbWVzc2FnZSwgTE9HX0xPQ0FMMCwgTE9HX0lORk8pOworKworKyAgY2xvc2Vsb2cgKCk7 CisrfQorKworIHN0YXRpYyBib29sCisgY2hlY2tfb3BlbmxvZ19tZXNzYWdlIChjb25zdCBzdHJ1 Y3QgbXNnX3QgKm1zZywgaW50IG1zZ251bSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBv cHRpb25zLCBwaWRfdCBwaWQpCitAQCAtMTg5LDcgKzIyOSw3IEBAIGNoZWNrX29wZW5sb2dfbWVz c2FnZSAoY29uc3Qgc3RydWN0IG1zZ190ICptc2csIGludCBtc2dudW0sCisgICBpbnQgZXhwZWN0 ZWRfcHJpb3JpdHkgPSBwcmlvcml0aWVzW21zZ251bSAlIGFycmF5X2xlbmd0aCAocHJpb3JpdGll cyldOworICAgVEVTVF9DT01QQVJFIChtc2ctPnByaW9yaXR5LCBleHBlY3RlZF9wcmlvcml0eSk7 CisgCistICBjaGFyIGV4cGVjdGVkX2lkZW50W2lkZW50X2xlbmd0aF07CisrICBjaGFyIGV4cGVj dGVkX2lkZW50W0lERU5UX0xFTkdUSF07CisgICBzbnByaW50ZiAoZXhwZWN0ZWRfaWRlbnQsIHNp emVvZiAoZXhwZWN0ZWRfaWRlbnQpLCAiJXMlcyUuMGQlczoiLAorICAgICAgICAgICAgIE9QRU5M T0dfSURFTlQsCisgICAgICAgICAgICAgb3B0aW9ucyAmIExPR19QSUQgPyAiWyIgOiAiIiwKK0BA IC0yMTEsMTUgKzI1MSwzOCBAQCBjaGVja19vcGVubG9nX21lc3NhZ2UgKGNvbnN0IHN0cnVjdCBt c2dfdCAqbXNnLCBpbnQgbXNnbnVtLAorICAgcmV0dXJuIHRydWU7CisgfQorIAorK3N0YXRpYyBi b29sCisrY2hlY2tfb3BlbmxvZ19tZXNzYWdlX2xhcmdlIChjb25zdCBzdHJ1Y3QgbXNnX3QgKm1z ZywgaW50IG1zZ251bSwKKysJCQkgICAgIGludCBvcHRpb25zLCBwaWRfdCBwaWQpCisreworKyAg Y2hhciBleHBlY3RlZF9pZGVudFtJREVOVF9MRU5HVEhdOworKyAgc25wcmludGYgKGV4cGVjdGVk X2lkZW50LCBzaXplb2YgKGV4cGVjdGVkX2lkZW50KSwgIiVzJXMlLjBkJXM6IiwKKysgICAgICAg ICAgICBPUEVOTE9HX0lERU5ULAorKyAgICAgICAgICAgIG9wdGlvbnMgJiBMT0dfUElEID8gIlsi IDogIiIsCisrICAgICAgICAgICAgb3B0aW9ucyAmIExPR19QSUQgPyBwaWQgOiAwLAorKyAgICAg ICAgICAgIG9wdGlvbnMgJiBMT0dfUElEID8gIl0iIDogIiIpOworKworKyAgVEVTVF9DT01QQVJF X1NUUklORyAobXNnLT5pZGVudCwgZXhwZWN0ZWRfaWRlbnQpOworKyAgVEVTVF9DT01QQVJFX1NU UklORyAobXNnLT5tc2csIGxhcmdlX21lc3NhZ2UpOworKyAgVEVTVF9DT01QQVJFIChtc2ctPnBy aW9yaXR5LCBMT0dfSU5GTyk7CisrICBURVNUX0NPTVBBUkUgKG1zZy0+ZmFjaWxpdHksIExPR19M T0NBTDApOworKworKyAgcmV0dXJuIGZhbHNlOworK30KKysKKyBzdGF0aWMgc3RydWN0IG1zZ190 CisgcGFyc2Vfc3lzbG9nX21zZyAoY29uc3QgY2hhciAqbXNnKQorIHsKKyAgIHN0cnVjdCBtc2df dCByID0geyAucGlkID0gLTEgfTsKKyAgIGludCBudW1iZXI7CisgCisrI2RlZmluZSBTVFJJTlBV VChzaXplKSAgWFNUUklOUFVUKHNpemUpCisrI2RlZmluZSBYU1RSSU5QVVQoc2l6ZSkgIiUiICMg c2l6ZSAicyIKKysKKyAgIC8qIFRoZSBtZXNzYWdlIGluIHRoZSBmb3JtOgorLSAgICAgPDE3OT5B cHIgIDggMTQ6NTE6MTkgdHN0LXN5c2xvZzogc3lzbG9nIG1lc3NhZ2UgMTc2IDMgICovCistICBp bnQgbiA9IHNzY2FuZiAobXNnLCAiPCUzZD4lKnMgJSpkICUqZDolKmQ6JSpkICUzMnMgJTY0cyAl KmQgJSpkIiwKKysgICAgIDwxNzk+QXByICA4IDE0OjUxOjE5ICB0c3Qtc3lzbG9nOiBtZXNzYWdl IDE3NiAzICAqLworKyAgaW50IG4gPSBzc2NhbmYgKG1zZywgIjwlM2Q+JSpzICUqZCAlKmQ6JSpk OiUqZCAiIFNUUklOUFVUKElERU5UX0xFTkdUSCkKKysJCSAgICAgICAiICIgU1RSSU5QVVQoTVNH X0xFTkdUSCkgIiAlKmQgJSpkIiwKKyAgICAgICAgICAgICAgICAgICAmbnVtYmVyLCByLmlkZW50 LCByLm1zZyk7CisgICBURVNUX0NPTVBBUkUgKG4sIDMpOworIAorQEAgLTI0Niw3ICszMDksNyBA QCBwYXJzZV9zeXNsb2dfY29uc29sZSAoY29uc3QgY2hhciAqbXNnKQorIAorICAgLyogVGhlIG1l c3NhZ2UgaW4gdGhlIGZvcm06CisgICAgICBvcGVubG9nX2lkZW50OiBzeXNsb2dfbWVzc2FnZSAx MjggMCAgKi8KKy0gIGludCBuID0gc3NjYW5mIChtc2csICIlMzJzICU2NHMgJWQgJWQiLAorKyAg aW50IG4gPSBzc2NhbmYgKG1zZywgU1RSSU5QVVQoSURFTlRfTEVOR1RIKSAiICIgU1RSSU5QVVQo TVNHX0xFTkdUSCkgIiAlZCAlZCIsCisgICAgICAgci5pZGVudCwgci5tc2csICZmYWNpbGl0eSwg JnByaW9yaXR5KTsKKyAgIFRFU1RfQ09NUEFSRSAobiwgNCk7CisgCitAQCAtMjgxLDcgKzM0NCw3 IEBAIGNoZWNrX3N5c2xvZ191ZHAgKHZvaWQgKCpzeXNsb2dfc2VuZCkoaW50KSwgaW50IG9wdGlv bnMsCisgICBpbnQgbXNnbnVtID0gMDsKKyAgIHdoaWxlICgxKQorICAgICB7CistICAgICAgY2hh ciBidWZbNTEyXTsKKysgICAgICBjaGFyIGJ1ZlsyMDQ4XTsKKyAgICAgICBzaXplX3QgbCA9IHhy ZWN2ZnJvbSAoc2VydmVyX3VkcCwgYnVmLCBzaXplb2YgKGJ1ZiksIDAsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChzdHJ1Y3Qgc29ja2FkZHIgKikgJmFkZHIsICZhZGRybGVuKTsKKyAg ICAgICBidWZbbF0gPSAnXDAnOworQEAgLTMyNSw3ICszODgsNyBAQCBjaGVja19zeXNsb2dfdGNw ICh2b2lkICgqc3lzbG9nX3NlbmQpKGludCksIGludCBvcHRpb25zLAorIAorICAgaW50IGNsaWVu dF90Y3AgPSB4YWNjZXB0IChzZXJ2ZXJfdGNwLCBOVUxMLCBOVUxMKTsKKyAKKy0gIGNoYXIgYnVm WzUxMl0sICpyYiA9IGJ1ZjsKKysgIGNoYXIgYnVmWzIwNDhdLCAqcmIgPSBidWY7CisgICBzaXpl X3QgcmJsID0gc2l6ZW9mIChidWYpOworICAgc2l6ZV90IHBybCA9IDA7ICAvKiBUcmFjayB0aGUg c2l6ZSBvZiB0aGUgcGFydGlhbCByZWNvcmQuICAqLworICAgaW50IG1zZ251bSA9IDA7CitAQCAt MzkzLDIwICs0NTYsMzQgQEAgY2hlY2tfc3lzbG9nX2NvbnNvbGVfcmVhZCAoRklMRSAqZnApCisg fQorIAorIHN0YXRpYyB2b2lkCistY2hlY2tfc3lzbG9nX2NvbnNvbGUgKHZvaWQpCisrY2hlY2tf c3lzbG9nX2NvbnNvbGVfcmVhZF9sYXJnZSAoRklMRSAqZnApCisreworKyAgY2hhciBidWZbMjA0 OF07CisrICBURVNUX1ZFUklGWSAoZmdldHMgKGJ1Ziwgc2l6ZW9mIChidWYpLCBmcCkgIT0gTlVM TCk7CisrICBzdHJ1Y3QgbXNnX3QgbXNnID0gcGFyc2Vfc3lzbG9nX2NvbnNvbGUgKGJ1Zik7Cisr CisrICBURVNUX0NPTVBBUkVfU1RSSU5HIChtc2cuaWRlbnQsIE9QRU5MT0dfSURFTlQgIjoiKTsK KysgIFRFU1RfQ09NUEFSRV9TVFJJTkcgKG1zZy5tc2csIGxhcmdlX21lc3NhZ2UpOworKyAgVEVT VF9DT01QQVJFIChtc2cucHJpb3JpdHksIExPR19JTkZPKTsKKysgIFRFU1RfQ09NUEFSRSAobXNn LmZhY2lsaXR5LCBMT0dfTE9DQUwwKTsKKyt9CisrCisrc3RhdGljIHZvaWQKKytjaGVja19zeXNs b2dfY29uc29sZSAodm9pZCAoKnN5c2xvZ19zZW5kKShpbnQpLAorKwkJICAgICAgdm9pZCAoKnN5 c2xvZ19jaGVjaykoRklMRSAqZnApKQorIHsKKyAgIHhta2ZpZm8gKF9QQVRIX0NPTlNPTEUsIDA2 NjYpOworIAorICAgcGlkX3Qgc2VuZGVyX3BpZCA9IHhmb3JrICgpOworICAgaWYgKHNlbmRlcl9w aWQgPT0gMCkKKyAgICAgeworLSAgICAgIHNlbmRfb3BlbmxvZyAoTE9HX0NPTlMpOworKyAgICAg IHN5c2xvZ19zZW5kIChMT0dfQ09OUyk7CisgICAgICAgX2V4aXQgKDApOworICAgICB9CisgCisg ICB7CisgICAgIEZJTEUgKmZwID0geGZvcGVuIChfUEFUSF9DT05TT0xFLCAicisiKTsKKy0gICAg Y2hlY2tfc3lzbG9nX2NvbnNvbGVfcmVhZCAoZnApOworKyAgICBzeXNsb2dfY2hlY2sgKGZwKTsK KyAgICAgeGZjbG9zZSAoZnApOworICAgfQorIAorQEAgLTQyNSwxNiArNTAyLDI4IEBAIHNlbmRf b3BlbmxvZ19jYWxsYmFjayAodm9pZCAqY2xvdXN1cmUpCisgfQorIAorIHN0YXRpYyB2b2lkCist Y2hlY2tfc3lzbG9nX3BlcnJvciAodm9pZCkKKytzZW5kX29wZW5sb2dfY2FsbGJhY2tfbGFyZ2Ug KHZvaWQgKmNsb3VzdXJlKQorK3sKKysgIGludCBvcHRpb25zID0gKihpbnQgKikgY2xvdXN1cmU7 CisrICBzZW5kX29wZW5sb2dfbGFyZ2UgKG9wdGlvbnMpOworK30KKysKKytzdGF0aWMgdm9pZAor K2NoZWNrX3N5c2xvZ19wZXJyb3IgKGJvb2wgbGFyZ2UpCisgeworICAgc3RydWN0IHN1cHBvcnRf Y2FwdHVyZV9zdWJwcm9jZXNzIHJlc3VsdDsKKy0gIHJlc3VsdCA9IHN1cHBvcnRfY2FwdHVyZV9z dWJwcm9jZXNzIChzZW5kX29wZW5sb2dfY2FsbGJhY2ssCisrICByZXN1bHQgPSBzdXBwb3J0X2Nh cHR1cmVfc3VicHJvY2VzcyAobGFyZ2UKKysJCQkJICAgICAgID8gc2VuZF9vcGVubG9nX2NhbGxi YWNrX2xhcmdlCisrCQkJCSAgICAgICA6IHNlbmRfb3BlbmxvZ19jYWxsYmFjaywKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmKGludCl7TE9HX1BFUlJPUn0pOworIAor ICAgRklMRSAqbWZwID0gZm1lbW9wZW4gKHJlc3VsdC5lcnIuYnVmZmVyLCByZXN1bHQuZXJyLmxl bmd0aCwgInIiKTsKKyAgIGlmIChtZnAgPT0gTlVMTCkKKyAgICAgRkFJTF9FWElUMSAoImZtZW1v cGVuOiAlbSIpOworLSAgY2hlY2tfc3lzbG9nX2NvbnNvbGVfcmVhZCAobWZwKTsKKysgIGlmIChs YXJnZSkKKysgICAgY2hlY2tfc3lzbG9nX2NvbnNvbGVfcmVhZF9sYXJnZSAobWZwKTsKKysgIGVs c2UKKysgICAgY2hlY2tfc3lzbG9nX2NvbnNvbGVfcmVhZCAobWZwKTsKKyAgIHhmY2xvc2UgKG1m cCk7CisgCisgICBzdXBwb3J0X2NhcHR1cmVfc3VicHJvY2Vzc19jaGVjayAoJnJlc3VsdCwgInRz dC1vcGVubG9nLWNoaWxkIiwgMCwKK0BAIC00NjIsMTAgKzU1MSwzMSBAQCBkb190ZXN0ICh2b2lk KQorICAgY2hlY2tfc3lzbG9nX3RjcCAoc2VuZF9vcGVubG9nLCBMT0dfUElELCBjaGVja19vcGVu bG9nX21lc3NhZ2UpOworIAorICAgLyogQ2hlY2sgdGhlIExPR19DT05TIG9wdGlvbi4gICovCist ICBjaGVja19zeXNsb2dfY29uc29sZSAoKTsKKysgIGNoZWNrX3N5c2xvZ19jb25zb2xlIChzZW5k X29wZW5sb2csIGNoZWNrX3N5c2xvZ19jb25zb2xlX3JlYWQpOworIAorICAgLyogQ2hlY2sgdGhl IExPR19QRVJST1Igb3B0aW9uLiAgKi8KKy0gIGNoZWNrX3N5c2xvZ19wZXJyb3IgKCk7CisrICBj aGVja19zeXNsb2dfcGVycm9yIChmYWxzZSk7CisrCisrICAvKiBTaW1pbGFyIHRlc3RzIGFzIGJl Zm9yZSwgYnV0IHdpdGggYSBsYXJnZSBtZXNzYWdlIHRvIHRyaWdnZXIgdGhlCisrICAgICBzeXNs b2cgcGF0aCB0aGF0IHVzZXMgZHluYW1pY2FsbHkgYWxsb2NhdGVkIG1lbW9yeS4gICovCisrICBt ZW1zZXQgKGxhcmdlX21lc3NhZ2UsICdhJywgc2l6ZW9mIGxhcmdlX21lc3NhZ2UgLSAxKTsKKysg IGxhcmdlX21lc3NhZ2Vbc2l6ZW9mIGxhcmdlX21lc3NhZ2UgLSAxXSA9ICdcMCc7CisrCisrICBj aGVja19zeXNsb2dfdWRwIChzZW5kX3N5c2xvZ19sYXJnZSwgMCwgY2hlY2tfc3lzbG9nX21lc3Nh Z2VfbGFyZ2UpOworKyAgY2hlY2tfc3lzbG9nX3RjcCAoc2VuZF9zeXNsb2dfbGFyZ2UsIDAsIGNo ZWNrX3N5c2xvZ19tZXNzYWdlX2xhcmdlKTsKKysKKysgIGNoZWNrX3N5c2xvZ191ZHAgKHNlbmRf dnN5c2xvZ19sYXJnZSwgMCwgY2hlY2tfc3lzbG9nX21lc3NhZ2VfbGFyZ2UpOworKyAgY2hlY2tf c3lzbG9nX3RjcCAoc2VuZF92c3lzbG9nX2xhcmdlLCAwLCBjaGVja19zeXNsb2dfbWVzc2FnZV9s YXJnZSk7CisrCisrICBjaGVja19zeXNsb2dfdWRwIChzZW5kX29wZW5sb2dfbGFyZ2UsIDAsIGNo ZWNrX29wZW5sb2dfbWVzc2FnZV9sYXJnZSk7CisrICBjaGVja19zeXNsb2dfdGNwIChzZW5kX29w ZW5sb2dfbGFyZ2UsIDAsIGNoZWNrX29wZW5sb2dfbWVzc2FnZV9sYXJnZSk7CisrCisrICBjaGVj a19zeXNsb2dfdWRwIChzZW5kX29wZW5sb2dfbGFyZ2UsIExPR19QSUQsIGNoZWNrX29wZW5sb2df bWVzc2FnZV9sYXJnZSk7CisrICBjaGVja19zeXNsb2dfdGNwIChzZW5kX29wZW5sb2dfbGFyZ2Us IExPR19QSUQsIGNoZWNrX29wZW5sb2dfbWVzc2FnZV9sYXJnZSk7CisrCisrICBjaGVja19zeXNs b2dfY29uc29sZSAoc2VuZF9vcGVubG9nX2xhcmdlLCBjaGVja19zeXNsb2dfY29uc29sZV9yZWFk X2xhcmdlKTsKKysKKysgIGNoZWNrX3N5c2xvZ19wZXJyb3IgKHRydWUpOworIAorICAgcmV0dXJu IDA7CisgfQorLS0gCisyLjM4LjEKKworCitGcm9tIDkyNGU0ZjNlYWE1MDJjZTgyZmNjZjg1Mzdm MDIxYTc5NmQxNTg3NzEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBGbG9yaWFuIFdl aW1lciA8ZndlaW1lckByZWRoYXQuY29tPgorRGF0ZTogRnJpLCAyNiBBdWcgMjAyMiAyMToxNTo0 MyArMDIwMAorU3ViamVjdDogW1BBVENIIDE3LzcyXSBlbGY6IENhbGwgX19saWJjX2Vhcmx5X2lu aXQgZm9yIHJldXNlZCBuYW1lc3BhY2VzIChidWcKKyAyOTUyOCkKKworbGliY19tYXAgaXMgbmV2 ZXIgcmVzZXQgdG8gTlVMTCwgbmVpdGhlciBkdXJpbmcgZGxjbG9zZSBub3Igb24gYQorZGxvcGVu IGNhbGwgd2hpY2ggcmV1c2VzIHRoZSBuYW1lc3BhY2Ugc3RydWN0dXJlLiAgQXMgYSByZXN1bHQs IGlmIGEKK25hbWVzcGFjZSBpcyByZXVzZWQsIGl0cyBsaWJjIGlzIG5vdCBpbml0aWFsaXplZCBw cm9wZXJseS4gIFRoZSBtb3N0Cit2aXNpYmxlIHJlc3VsdCBpcyBhIGNyYXNoIGluIHRoZSA8Y3R5 cGUuaD4gZnVuY3Rpb25zLgorCitUbyBwcmV2ZW50IHNpbWlsYXIgYnVncyBvbiBuYW1lc3BhY2Ug cmV1c2UgZnJvbSBzdXJmYWNpbmcsCit1bmNvbmRpdGlvbmFsbHkgaW5pdGlhbGl6ZSB0aGUgY2hv c2VuIG5hbWVzcGFjZSB0byB6ZXJvIHVzaW5nIG1lbXNldC4KKworKGNoZXJyeSBwaWNrZWQgZnJv bSBjb21taXQgZDBlMzU3ZmY0NWE3NTU1M2RlZTNiMTdlZDdkMzAzYmZhNTQ0ZjZmZSkKKy0tLQor IE5FV1MgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMSArCisgZWxmL01ha2VmaWxlICAgICAg ICAgICAgICAgICB8IDI1ICsrKysrKysrKysrKysrKysrKworIGVsZi9kbC1vcGVuLmMgICAgICAg ICAgICAgICAgfCAxMyArKysrKystLS0tCisgZWxmL3RzdC1kbG1vcGVuLXR3aWNlLW1vZDEuYyB8 IDM3ICsrKysrKysrKysrKysrKysrKysrKysrKysrCisgZWxmL3RzdC1kbG1vcGVuLXR3aWNlLW1v ZDIuYyB8IDUwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKworIGVsZi90c3Qt ZGxtb3Blbi10d2ljZS5jICAgICAgfCAzNCArKysrKysrKysrKysrKysrKysrKysrKysKKyA2IGZp bGVzIGNoYW5nZWQsIDE1NSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQorIGNyZWF0ZSBt b2RlIDEwMDY0NCBlbGYvdHN0LWRsbW9wZW4tdHdpY2UtbW9kMS5jCisgY3JlYXRlIG1vZGUgMTAw NjQ0IGVsZi90c3QtZGxtb3Blbi10d2ljZS1tb2QyLmMKKyBjcmVhdGUgbW9kZSAxMDA2NDQgZWxm L3RzdC1kbG1vcGVuLXR3aWNlLmMKKworZGlmZiAtLWdpdCBhL05FV1MgYi9ORVdTCitpbmRleCBh ZTMwOTAwYmJjLi42ZDMxZTVhYmJhIDEwMDY0NAorLS0tIGEvTkVXUworKysrIGIvTkVXUworQEAg LTEzLDYgKzEzLDcgQEAgVGhlIGZvbGxvd2luZyBidWdzIGFyZSByZXNvbHZlZCB3aXRoIHRoaXMg cmVsZWFzZToKKyAgIFsyOTQ0Nl0gX2Rsb3BlbiBub3cgaWdub3JlcyBkbF9jYWxsZXIgYXJndW1l bnQgaW4gc3RhdGljIG1vZGUKKyAgIFsyOTQ4NV0gTGludXg6IFRlcm1pbmF0ZSBzdWJwcm9jZXNz IG9uIGxhdGUgZmFpbHVyZSBpbiB0c3QtcGlkZmQKKyAgIFsyOTQ5MF0gYWxwaGE6IE5ldyBfX2Jy a19jYWxsIGltcGxlbWVudGF0aW9uIGlzIGJyb2tlbgorKyAgWzI5NTI4XSBlbGY6IENhbGwgX19s aWJjX2Vhcmx5X2luaXQgZm9yIHJldXNlZCBuYW1lc3BhY2VzCisgCisgDAorIFZlcnNpb24gMi4z NgorZGlmZiAtLWdpdCBhL2VsZi9NYWtlZmlsZSBiL2VsZi9NYWtlZmlsZQoraW5kZXggZmQ3N2Qw YzdjOC4uNDMzNTNhNGIwOCAxMDA2NDQKKy0tLSBhL2VsZi9NYWtlZmlsZQorKysrIGIvZWxmL01h a2VmaWxlCitAQCAtNDA4LDYgKzQwOCw3IEBAIHRlc3RzICs9IFwKKyAgIHRzdC1kbG1vcGVuNCBc CisgICB0c3QtZGxtb3Blbi1kbGVycm9yIFwKKyAgIHRzdC1kbG1vcGVuLWdldGhvc3RieW5hbWUg XAorKyAgdHN0LWRsbW9wZW4tdHdpY2UgXAorICAgdHN0LWRsb3BlbmZhaWwgXAorICAgdHN0LWRs b3BlbmZhaWwtMiBcCisgICB0c3QtZGxvcGVucnBhdGggXAorQEAgLTgzNCw2ICs4MzUsOCBAQCBt b2R1bGVzLW5hbWVzICs9IFwKKyAgIHRzdC1kbG1vcGVuMW1vZCBcCisgICB0c3QtZGxtb3Blbi1k bGVycm9yLW1vZCBcCisgICB0c3QtZGxtb3Blbi1nZXRob3N0YnluYW1lLW1vZCBcCisrICB0c3Qt ZGxtb3Blbi10d2ljZS1tb2QxIFwKKysgIHRzdC1kbG1vcGVuLXR3aWNlLW1vZDIgXAorICAgdHN0 LWRsb3BlbmZhaWxsaW5rbW9kIFwKKyAgIHRzdC1kbG9wZW5mYWlsbW9kMSBcCisgICB0c3QtZGxv cGVuZmFpbG1vZDIgXAorQEAgLTI5NjcsMyArMjk3MCwyNSBAQCAkKG9ianBmeCl0c3QtdGxzLWFs bG9jYXRpb24tZmFpbHVyZS1zdGF0aWMtcGF0Y2hlZC5vdXQ6IFwKKyAJZ3JlcCAtcSAnXkZhdGFs IGdsaWJjIGVycm9yOiBDYW5ub3QgYWxsb2NhdGUgVExTIGJsb2NrJCQnICRAIFwKKyAJICAmJiBn cmVwIC1xICdec3RhdHVzOiAxMjckJCcgJEA7IFwKKyAJICAkKGV2YWx1YXRlLXRlc3QpCisrCisr JChvYmpwZngpdHN0LWF1ZGl0LXRsc2Rlc2M6ICQob2JqcGZ4KXRzdC1hdWRpdC10bHNkZXNjLW1v ZDEuc28gXAorKwkJCSAgICAkKG9ianBmeCl0c3QtYXVkaXQtdGxzZGVzYy1tb2QyLnNvIFwKKysJ CQkgICAgJChzaGFyZWQtdGhyZWFkLWxpYnJhcnkpCisraWZlcSAoeWVzLCQoaGF2ZS1tdGxzLWRp YWxlY3QtZ251MikpCisrIyBUaGUgdGVzdCBpcyB2YWxpZCBmb3IgYWxsIFRMUyB0eXBlcywgYnV0 IHdlIHdhbnQgdG8gZXhlcmNpc2UgR05VMgorKyMgVExTIGlmIHBvc3NpYmxlLgorK0NGTEFHUy10 c3QtYXVkaXQtdGxzZGVzYy1tb2QxLmMgKz0gLW10bHMtZGlhbGVjdD1nbnUyCisrQ0ZMQUdTLXRz dC1hdWRpdC10bHNkZXNjLW1vZDIuYyArPSAtbXRscy1kaWFsZWN0PWdudTIKKytlbmRpZgorKyQo b2JqcGZ4KXRzdC1hdWRpdC10bHNkZXNjLWRsb3BlbjogJChzaGFyZWQtdGhyZWFkLWxpYnJhcnkp CisrJChvYmpwZngpdHN0LWF1ZGl0LXRsc2Rlc2MtZGxvcGVuLm91dDogJChvYmpwZngpdHN0LWF1 ZGl0LXRsc2Rlc2MtbW9kMS5zbyBcCisrCQkJCSAgICAgICAkKG9ianBmeCl0c3QtYXVkaXQtdGxz ZGVzYy1tb2QyLnNvCisrJChvYmpwZngpdHN0LWF1ZGl0LXRsc2Rlc2MtbW9kMS5zbzogJChvYmpw ZngpdHN0LWF1ZGl0LXRsc2Rlc2MtbW9kMi5zbworKyQob2JqcGZ4KXRzdC1hdWRpdC10bHNkZXNj Lm91dDogJChvYmpwZngpdHN0LWF1ZGl0bW9kLXRsc2Rlc2Muc28KKyt0c3QtYXVkaXQtdGxzZGVz Yy1FTlYgPSBMRF9BVURJVD0kKG9ianBmeCl0c3QtYXVkaXRtb2QtdGxzZGVzYy5zbworKyQob2Jq cGZ4KXRzdC1hdWRpdC10bHNkZXNjLWRsb3Blbi5vdXQ6ICQob2JqcGZ4KXRzdC1hdWRpdG1vZC10 bHNkZXNjLnNvCisrdHN0LWF1ZGl0LXRsc2Rlc2MtZGxvcGVuLUVOViA9IExEX0FVRElUPSQob2Jq cGZ4KXRzdC1hdWRpdG1vZC10bHNkZXNjLnNvCisrCisrJChvYmpwZngpdHN0LWRsbW9wZW4tdHdp Y2Uub3V0OiBcCisrICAkKG9ianBmeCl0c3QtZGxtb3Blbi10d2ljZS1tb2QxLnNvIFwKKysgICQo b2JqcGZ4KXRzdC1kbG1vcGVuLXR3aWNlLW1vZDIuc28KK2RpZmYgLS1naXQgYS9lbGYvZGwtb3Bl bi5jIGIvZWxmL2RsLW9wZW4uYworaW5kZXggYTIzZTY1OTI2Yi4uNDZlODA2NmZkOCAxMDA2NDQK Ky0tLSBhL2VsZi9kbC1vcGVuLmMKKysrKyBiL2VsZi9kbC1vcGVuLmMKK0BAIC04NDQsMTEgKzg0 NCwxNCBAQCBfZGxfb3BlbiAoY29uc3QgY2hhciAqZmlsZSwgaW50IG1vZGUsIGNvbnN0IHZvaWQg KmNhbGxlcl9kbG9wZW4sIExtaWRfdCBuc2lkLAorIAkgIF9kbF9zaWduYWxfZXJyb3IgKEVJTlZB TCwgZmlsZSwgTlVMTCwgTl8oIlwKKyBubyBtb3JlIG5hbWVzcGFjZXMgYXZhaWxhYmxlIGZvciBk bG1vcGVuKCkiKSk7CisgCX0KKy0gICAgICBlbHNlIGlmIChuc2lkID09IEdMKGRsX25ucykpCist CXsKKy0JICBfX3J0bGRfbG9ja19pbml0aWFsaXplIChHTChkbF9ucylbbnNpZF0uX25zX3VuaXF1 ZV9zeW1fdGFibGUubG9jayk7CistCSAgKytHTChkbF9ubnMpOworLQl9CisrCisrICAgICAgaWYg KG5zaWQgPT0gR0woZGxfbm5zKSkKKysJKytHTChkbF9ubnMpOworKworKyAgICAgIC8qIEluaXRp YWxpemUgdGhlIG5ldyBuYW1lc3BhY2UuICBNb3N0IG1lbWJlcnMgYXJlCisrCSB6ZXJvLWluaXRp YWxpemVkLCBvbmx5IHRoZSBsb2NrIG5lZWRzIHNwZWNpYWwgdHJlYXRtZW50LiAgKi8KKysgICAg ICBtZW1zZXQgKCZHTChkbF9ucylbbnNpZF0sIDAsIHNpemVvZiAoR0woZGxfbnMpW25zaWRdKSk7 CisrICAgICAgX19ydGxkX2xvY2tfaW5pdGlhbGl6ZSAoR0woZGxfbnMpW25zaWRdLl9uc191bmlx dWVfc3ltX3RhYmxlLmxvY2spOworIAorICAgICAgIF9kbF9kZWJ1Z191cGRhdGUgKG5zaWQpLT5y X3N0YXRlID0gUlRfQ09OU0lTVEVOVDsKKyAgICAgfQorZGlmZiAtLWdpdCBhL2VsZi90c3QtZGxt b3Blbi10d2ljZS1tb2QxLmMgYi9lbGYvdHN0LWRsbW9wZW4tdHdpY2UtbW9kMS5jCituZXcgZmls ZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMC4uMGVhZjA0OTQ4YworLS0tIC9kZXYvbnVs bAorKysrIGIvZWxmL3RzdC1kbG1vcGVuLXR3aWNlLW1vZDEuYworQEAgLTAsMCArMSwzNyBAQAor Ky8qIEluaXRpYWxpemF0aW9uIG9mIGxpYmMgYWZ0ZXIgZGxtb3Blbi9kbGNsb3NlL2RsbW9wZW4g KGJ1ZyAyOTUyOCkuICBNb2R1bGUgMS4KKysgICBDb3B5cmlnaHQgKEMpIDIwMjIgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBD IExpYnJhcnkuCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisrICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYXMgcHVibGlz aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorKyAgIHZlcnNpb24g Mi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u LgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorKyAgIExlc3Nl ciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNo b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp YworKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUK KysgICA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKysKKysjaW5jbHVkZSA8 c3RkaW8uaD4KKysKKytzdGF0aWMgdm9pZCBfX2F0dHJpYnV0ZV9fICgoY29uc3RydWN0b3IpKQor K2luaXQgKHZvaWQpCisreworKyAgcHV0cyAoImluZm86IHRzdC1kbG1vcGVuLXR3aWNlLW1vZDEu c28gbG9hZGVkIik7CisrICBmZmx1c2ggKHN0ZG91dCk7CisrfQorKworK3N0YXRpYyB2b2lkIF9f YXR0cmlidXRlX18gKChkZXN0cnVjdG9yKSkKKytmaW5pICh2b2lkKQorK3sKKysgIHB1dHMgKCJp bmZvOiB0c3QtZGxtb3Blbi10d2ljZS1tb2QxLnNvIGFib3V0IHRvIGJlIHVubG9hZGVkIik7Cisr ICBmZmx1c2ggKHN0ZG91dCk7CisrfQorKworKy8qIExhcmdlIGFsbG9jYXRpb24uICBUaGUgc2Vj b25kIG1vZHVsZSBkb2VzIG5vdCBoYXZlIHRoaXMsIHNvIGl0CisrICAgc2hvdWxkIGxvYWQgbGli YyBhdCBhIGRpZmZlcmVudCBhZGRyZXNzLiAgKi8KKytjaGFyIGxhcmdlX2FsbG9jYXRlWzE2ICog MTAyNCAqIDEwMjRdOworZGlmZiAtLWdpdCBhL2VsZi90c3QtZGxtb3Blbi10d2ljZS1tb2QyLmMg Yi9lbGYvdHN0LWRsbW9wZW4tdHdpY2UtbW9kMi5jCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5k ZXggMDAwMDAwMDAwMC4uNDBjNmMwMWY5NgorLS0tIC9kZXYvbnVsbAorKysrIGIvZWxmL3RzdC1k bG1vcGVuLXR3aWNlLW1vZDIuYworQEAgLTAsMCArMSw1MCBAQAorKy8qIEluaXRpYWxpemF0aW9u IG9mIGxpYmMgYWZ0ZXIgZGxtb3Blbi9kbGNsb3NlL2RsbW9wZW4gKGJ1ZyAyOTUyOCkuICBNb2R1 bGUgMi4KKysgICBDb3B5cmlnaHQgKEMpIDIwMjIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCisrICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisrCisrICAg VGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yCisrICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3Nl ciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNl LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoZSBHTlUg QyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCisrICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYWxv bmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKysgICA8aHR0cHM6Ly93d3cu Z251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKysKKysjaW5jbHVkZSA8Y3R5cGUuaD4KKysjaW5jbHVk ZSA8c3RkaW8uaD4KKysKKytzdGF0aWMgdm9pZCBfX2F0dHJpYnV0ZV9fICgoY29uc3RydWN0b3Ip KQorK2luaXQgKHZvaWQpCisreworKyAgcHV0cyAoImluZm86IHRzdC1kbG1vcGVuLXR3aWNlLW1v ZDIuc28gbG9hZGVkIik7CisrICBmZmx1c2ggKHN0ZG91dCk7CisrfQorKworK3N0YXRpYyB2b2lk IF9fYXR0cmlidXRlX18gKChkZXN0cnVjdG9yKSkKKytmaW5pICh2b2lkKQorK3sKKysgIHB1dHMg KCJpbmZvOiB0c3QtZGxtb3Blbi10d2ljZS1tb2QyLnNvIGFib3V0IHRvIGJlIHVubG9hZGVkIik7 CisrICBmZmx1c2ggKHN0ZG91dCk7CisrfQorKworK2ludAorK3J1bl9jaGVjayAodm9pZCkKKyt7 CisrICBwdXRzICgiaW5mbzogYWJvdXQgdG8gY2FsbCBpc2FscGhhIik7CisrICBmZmx1c2ggKHN0 ZG91dCk7CisrCisrICB2b2xhdGlsZSBjaGFyIGNoID0gJ2EnOworKyAgaWYgKCFpc2FscGhhIChj aCkpCisrICAgIHsKKysgICAgICBwdXRzICgiZXJyb3I6IGlzYWxwaGEgKCdhJykgaXMgbm90IHRy dWUiKTsKKysgICAgICBmZmx1c2ggKHN0ZG91dCk7CisrICAgICAgcmV0dXJuIDE7CisrICAgIH0K KysgIHJldHVybiAwOworK30KK2RpZmYgLS1naXQgYS9lbGYvdHN0LWRsbW9wZW4tdHdpY2UuYyBi L2VsZi90c3QtZGxtb3Blbi10d2ljZS5jCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAw MDAwMDAwMC4uNDQ5ZjNjOGZhOQorLS0tIC9kZXYvbnVsbAorKysrIGIvZWxmL3RzdC1kbG1vcGVu LXR3aWNlLmMKK0BAIC0wLDAgKzEsMzQgQEAKKysvKiBJbml0aWFsaXphdGlvbiBvZiBsaWJjIGFm dGVyIGRsbW9wZW4vZGxjbG9zZS9kbG1vcGVuIChidWcgMjk1MjgpLiAgTWFpbi4KKysgICBDb3B5 cmlnaHQgKEMpIDIwMjIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrICAgVGhpcyBm aWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisrCisrICAgVGhlIEdOVSBDIExpYnJh cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisrICAg bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp YworKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b247IGVpdGhlcgorKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0IFdJ VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK KysgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlIEdOVQorKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl IGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05V IEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKysgICA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNl cy8+LiAgKi8KKysKKysjaW5jbHVkZSA8c3VwcG9ydC94ZGxmY24uaD4KKysjaW5jbHVkZSA8c3Vw cG9ydC9jaGVjay5oPgorKworK3N0YXRpYyBpbnQKKytkb190ZXN0ICh2b2lkKQorK3sKKysgIHZv aWQgKmhhbmRsZSA9IHhkbG1vcGVuIChMTV9JRF9ORVdMTSwgInRzdC1kbG1vcGVuLXR3aWNlLW1v ZDEuc28iLCBSVExEX05PVyk7CisrICB4ZGxjbG9zZSAoaGFuZGxlKTsKKysgIGhhbmRsZSA9IHhk bG1vcGVuIChMTV9JRF9ORVdMTSwgInRzdC1kbG1vcGVuLXR3aWNlLW1vZDIuc28iLCBSVExEX05P Vyk7CisrICBpbnQgKCpydW5fY2hlY2spICh2b2lkKSA9IHhkbHN5bSAoaGFuZGxlLCAicnVuX2No ZWNrIik7CisrICBURVNUX0NPTVBBUkUgKHJ1bl9jaGVjayAoKSwgMCk7CisrICB4ZGxjbG9zZSAo aGFuZGxlKTsKKysgIHJldHVybiAwOworK30KKysKKysjaW5jbHVkZSA8c3VwcG9ydC90ZXN0LWRy aXZlci5jPgorLS0gCisyLjM4LjEKKworCitGcm9tIDNjNzkxZjIwMzFjYThmNmI5OWU5NmI3NzRl ZDFjNTA1Y2ViOTM1OTUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBSYXBoYWVsIE1v cmVpcmEgWmluc2x5IDxyemluc2x5QGxpbnV4LmlibS5jb20+CitEYXRlOiBXZWQsIDI0IEF1ZyAy MDIyIDExOjQzOjM3IC0wMzAwCitTdWJqZWN0OiBbUEFUQ0ggMTgvNzJdIEFwcGx5IGFzbSByZWRp cmVjdGlvbnMgaW4gd2NoYXIuaCBiZWZvcmUgZmlyc3QgdXNlCisKK1NpbWlsYXIgdG8gZDBmYTA5 YTc3MCwgYnV0IGZvciB3Y2hhci5oLiAgRml4ZXMgW0JaICMyNzA4N10gYnkgYXBwbHlpbmcKK2Fs bCBsb25nIGRvdWJsZSByZWxhdGVkIGFzbSByZWRpcmVjdGlvbnMgYmVmb3JlIHVzaW5nIGZ1bmN0 aW9ucyBpbgorYml0cy93Y2hhcjIuaC4KK01vdmVzIHRoZSBmdW5jdGlvbiBkZWNsYXJhdGlvbnMg ZnJvbSB3Y3NtYnMvYml0cy93Y2hhcjIuaCB0byBhIG5ldyBmaWxlCit3Y3NtYnMvYml0cy93Y2hh cjItZGVjbC5oIHRoYXQgd2lsbCBiZSBpbmNsdWRlZCBmaXJzdCBpbiB3Y3NtYnMvd2NoYXIuaC4K KworVGVzdGVkIHdpdGggYnVpbGQtbWFueS1nbGliY3MucHkuCitSZXZpZXdlZC1ieTogQWRoZW1l cnZhbCBaYW5lbGxhICA8YWRoZW1lcnZhbC56YW5lbGxhQGxpbmFyby5vcmc+CisKKyhjaGVycnkg cGlja2VkIGZyb20gY29tbWl0IGM3NTA5ZDQ5YzRlOGZhNDk0MTIwYzVlYWQyMTMzODU1OWRhZDE2 ZjUpCistLS0KKyBpbmNsdWRlL2JpdHMvd2NoYXIyLWRlY2wuaCB8ICAgMSArCisgd2NzbWJzL01h a2VmaWxlICAgICAgICAgICAgfCAgIDUgKy0KKyB3Y3NtYnMvYml0cy93Y2hhcjItZGVjbC5oICB8 IDEyNCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCisgd2NzbWJzL2JpdHMv d2NoYXIyLmggICAgICAgfCAgNzIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgd2NzbWJzL3djaGFy LmggICAgICAgICAgICAgfCAgMTEgKysrLQorIDUgZmlsZXMgY2hhbmdlZCwgMTM3IGluc2VydGlv bnMoKyksIDc2IGRlbGV0aW9ucygtKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL2JpdHMv d2NoYXIyLWRlY2wuaAorIGNyZWF0ZSBtb2RlIDEwMDY0NCB3Y3NtYnMvYml0cy93Y2hhcjItZGVj bC5oCisKK2RpZmYgLS1naXQgYS9pbmNsdWRlL2JpdHMvd2NoYXIyLWRlY2wuaCBiL2luY2x1ZGUv Yml0cy93Y2hhcjItZGVjbC5oCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAw MC4uMDBiMWI5MzM0MgorLS0tIC9kZXYvbnVsbAorKysrIGIvaW5jbHVkZS9iaXRzL3djaGFyMi1k ZWNsLmgKK0BAIC0wLDAgKzEgQEAKKysjaW5jbHVkZSA8d2NzbWJzL2JpdHMvd2NoYXIyLWRlY2wu aD4KK2RpZmYgLS1naXQgYS93Y3NtYnMvTWFrZWZpbGUgYi93Y3NtYnMvTWFrZWZpbGUKK2luZGV4 IDNkMTlkNTU1NmYuLjRhZjEwMmEzZjYgMTAwNjQ0CistLS0gYS93Y3NtYnMvTWFrZWZpbGUKKysr KyBiL3djc21icy9NYWtlZmlsZQorQEAgLTIyLDggKzIyLDkgQEAgc3ViZGlyCTo9IHdjc21icwor IAorIGluY2x1ZGUgLi4vTWFrZWNvbmZpZworIAorLWhlYWRlcnMJOj0gd2NoYXIuaCBiaXRzL3dj aGFyLmggYml0cy93Y2hhcjIuaCBiaXRzL3djaGFyLWxkYmwuaCB1Y2hhci5oIFwKKy0JICAgYml0 cy90eXBlcy9fX21ic3RhdGVfdC5oIGJpdHMvdHlwZXMvbWJzdGF0ZV90LmggYml0cy90eXBlcy93 aW50X3QuaAorK2hlYWRlcnMJOj0gd2NoYXIuaCBiaXRzL3djaGFyLmggYml0cy93Y2hhcjIuaCBi aXRzL3djaGFyMi1kZWNsLmggXAorKwkgICBiaXRzL3djaGFyLWxkYmwuaCB1Y2hhci5oIGJpdHMv dHlwZXMvX19tYnN0YXRlX3QuaCBcCisrCSAgIGJpdHMvdHlwZXMvbWJzdGF0ZV90LmggYml0cy90 eXBlcy93aW50X3QuaAorIAorIHJvdXRpbmVzIDo9IHdjc2NhdCB3Y3NjaHIgd2NzY21wIHdjc2Nw eSB3Y3Njc3BuIHdjc2R1cCB3Y3NsZW4gd2NzbmNhdCBcCisgCSAgICB3Y3NuY21wIHdjc25jcHkg d2NzcGJyayB3Y3NyY2hyIHdjc3NwbiB3Y3N0b2sgd2Nzc3RyIHdtZW1jaHIgXAorZGlmZiAtLWdp dCBhL3djc21icy9iaXRzL3djaGFyMi1kZWNsLmggYi93Y3NtYnMvYml0cy93Y2hhcjItZGVjbC5o CituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMC4uOGUxNzM1YzMzYgorLS0t IC9kZXYvbnVsbAorKysrIGIvd2NzbWJzL2JpdHMvd2NoYXIyLWRlY2wuaAorQEAgLTAsMCArMSwx MjQgQEAKKysvKiBDaGVja2luZyBtYWNyb3MgZm9yIHdjaGFyIGZ1bmN0aW9ucy4gIERlY2xhcmF0 aW9ucyBvbmx5LgorKyAgIENvcHlyaWdodCAoQykgMjAwNC0yMDIyIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLgorKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5 LgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vcgorKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKysgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKysgICB2ZXJzaW9uIDIuMSBvZiB0 aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysKKysg ICBUaGUgR05VIEMgTGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKysgICBMZXNzZXIgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyAgIFlvdSBzaG91bGQgaGF2 ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKysgICBM aWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJhcnk7IGlmIG5vdCwgc2VlCisrICAgPGh0 dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrI2lmbmRlZiBfQklUU19XQ0hB UjJfREVDTF9ICisrI2RlZmluZSBfQklUU19XQ0hBUjJfREVDTF9IIDEKKysKKysjaWZuZGVmIF9X Q0hBUl9ICisrIyBlcnJvciAiTmV2ZXIgaW5jbHVkZSA8Yml0cy93Y2hhcjItZGVjbC5oPiBkaXJl Y3RseTsgdXNlIDx3Y2hhci5oPiBpbnN0ZWFkLiIKKysjZW5kaWYKKysKKysKKytleHRlcm4gd2No YXJfdCAqX193bWVtY3B5X2NoayAod2NoYXJfdCAqX19yZXN0cmljdCBfX3MxLAorKwkJCSAgICAg ICBjb25zdCB3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fczIsIHNpemVfdCBfX24sCisrCQkJICAgICAg IHNpemVfdCBfX25zMSkgX19USFJPVzsKKytleHRlcm4gd2NoYXJfdCAqX193bWVtbW92ZV9jaGsg KHdjaGFyX3QgKl9fczEsIGNvbnN0IHdjaGFyX3QgKl9fczIsCisrCQkJCXNpemVfdCBfX24sIHNp emVfdCBfX25zMSkgX19USFJPVzsKKysKKysKKysjaWZkZWYgX19VU0VfR05VCisrCisrZXh0ZXJu IHdjaGFyX3QgKl9fd21lbXBjcHlfY2hrICh3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fczEsCisrCQkJ CWNvbnN0IHdjaGFyX3QgKl9fcmVzdHJpY3QgX19zMiwgc2l6ZV90IF9fbiwKKysJCQkJc2l6ZV90 IF9fbnMxKSBfX1RIUk9XOworKworKyNlbmRpZgorKworKworK2V4dGVybiB3Y2hhcl90ICpfX3dt ZW1zZXRfY2hrICh3Y2hhcl90ICpfX3MsIHdjaGFyX3QgX19jLCBzaXplX3QgX19uLAorKwkJCSAg ICAgICBzaXplX3QgX19ucykgX19USFJPVzsKKytleHRlcm4gd2NoYXJfdCAqX193Y3NjcHlfY2hr ICh3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fZGVzdCwKKysJCQkgICAgICBjb25zdCB3Y2hhcl90ICpf X3Jlc3RyaWN0IF9fc3JjLAorKwkJCSAgICAgIHNpemVfdCBfX24pIF9fVEhST1c7CisrZXh0ZXJu IHdjaGFyX3QgKl9fd2NwY3B5X2NoayAod2NoYXJfdCAqX19yZXN0cmljdCBfX2Rlc3QsCisrCQkJ ICAgICAgY29uc3Qgd2NoYXJfdCAqX19yZXN0cmljdCBfX3NyYywKKysJCQkgICAgICBzaXplX3Qg X19kZXN0bGVuKSBfX1RIUk9XOworK2V4dGVybiB3Y2hhcl90ICpfX3djc25jcHlfY2hrICh3Y2hh cl90ICpfX3Jlc3RyaWN0IF9fZGVzdCwKKysJCQkgICAgICAgY29uc3Qgd2NoYXJfdCAqX19yZXN0 cmljdCBfX3NyYywgc2l6ZV90IF9fbiwKKysJCQkgICAgICAgc2l6ZV90IF9fZGVzdGxlbikgX19U SFJPVzsKKytleHRlcm4gd2NoYXJfdCAqX193Y3BuY3B5X2NoayAod2NoYXJfdCAqX19yZXN0cmlj dCBfX2Rlc3QsCisrCQkJICAgICAgIGNvbnN0IHdjaGFyX3QgKl9fcmVzdHJpY3QgX19zcmMsIHNp emVfdCBfX24sCisrCQkJICAgICAgIHNpemVfdCBfX2Rlc3RsZW4pIF9fVEhST1c7CisrZXh0ZXJu IHdjaGFyX3QgKl9fd2NzY2F0X2NoayAod2NoYXJfdCAqX19yZXN0cmljdCBfX2Rlc3QsCisrCQkJ ICAgICAgY29uc3Qgd2NoYXJfdCAqX19yZXN0cmljdCBfX3NyYywKKysJCQkgICAgICBzaXplX3Qg X19kZXN0bGVuKSBfX1RIUk9XOworK2V4dGVybiB3Y2hhcl90ICpfX3djc25jYXRfY2hrICh3Y2hh cl90ICpfX3Jlc3RyaWN0IF9fZGVzdCwKKysJCQkgICAgICAgY29uc3Qgd2NoYXJfdCAqX19yZXN0 cmljdCBfX3NyYywKKysJCQkgICAgICAgc2l6ZV90IF9fbiwgc2l6ZV90IF9fZGVzdGxlbikgX19U SFJPVzsKKytleHRlcm4gaW50IF9fc3dwcmludGZfY2hrICh3Y2hhcl90ICpfX3Jlc3RyaWN0IF9f cywgc2l6ZV90IF9fbiwKKysJCQkgICBpbnQgX19mbGFnLCBzaXplX3QgX19zX2xlbiwKKysJCQkg ICBjb25zdCB3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fZm9ybWF0LCAuLi4pCisrICAgICBfX1RIUk9X IC8qIF9fYXR0cmlidXRlX18gKChfX2Zvcm1hdF9fIChfX3dwcmludGZfXywgNSwgNikpKSAqLzsK KytleHRlcm4gaW50IF9fdnN3cHJpbnRmX2NoayAod2NoYXJfdCAqX19yZXN0cmljdCBfX3MsIHNp emVfdCBfX24sCisrCQkJICAgIGludCBfX2ZsYWcsIHNpemVfdCBfX3NfbGVuLAorKwkJCSAgICBj b25zdCB3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fZm9ybWF0LAorKwkJCSAgICBfX2dudWNfdmFfbGlz dCBfX2FyZykKKysgICAgIF9fVEhST1cgLyogX19hdHRyaWJ1dGVfXyAoKF9fZm9ybWF0X18gKF9f d3ByaW50Zl9fLCA1LCAwKSkpICovOworKworKyNpZiBfX1VTRV9GT1JUSUZZX0xFVkVMID4gMQor KworK2V4dGVybiBpbnQgX19md3ByaW50Zl9jaGsgKF9fRklMRSAqX19yZXN0cmljdCBfX3N0cmVh bSwgaW50IF9fZmxhZywKKysJCQkgICBjb25zdCB3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fZm9ybWF0 LCAuLi4pOworK2V4dGVybiBpbnQgX193cHJpbnRmX2NoayAoaW50IF9fZmxhZywgY29uc3Qgd2No YXJfdCAqX19yZXN0cmljdCBfX2Zvcm1hdCwKKysJCQkgIC4uLik7CisrZXh0ZXJuIGludCBfX3Zm d3ByaW50Zl9jaGsgKF9fRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSwgaW50IF9fZmxhZywKKysJ CQkgICAgY29uc3Qgd2NoYXJfdCAqX19yZXN0cmljdCBfX2Zvcm1hdCwKKysJCQkgICAgX19nbnVj X3ZhX2xpc3QgX19hcCk7CisrZXh0ZXJuIGludCBfX3Z3cHJpbnRmX2NoayAoaW50IF9fZmxhZywg Y29uc3Qgd2NoYXJfdCAqX19yZXN0cmljdCBfX2Zvcm1hdCwKKysJCQkgICBfX2dudWNfdmFfbGlz dCBfX2FwKTsKKysKKysjZW5kaWYKKysKKytleHRlcm4gd2NoYXJfdCAqX19mZ2V0d3NfY2hrICh3 Y2hhcl90ICpfX3Jlc3RyaWN0IF9fcywgc2l6ZV90IF9fc2l6ZSwgaW50IF9fbiwKKysJCQkgICAg ICBfX0ZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0pIF9fd3VyOworKworKyNpZmRlZiBfX1VTRV9H TlUKKysKKytleHRlcm4gd2NoYXJfdCAqX19mZ2V0d3NfdW5sb2NrZWRfY2hrICh3Y2hhcl90ICpf X3Jlc3RyaWN0IF9fcywgc2l6ZV90IF9fc2l6ZSwKKysJCQkJICAgICAgIGludCBfX24sIF9fRklM RSAqX19yZXN0cmljdCBfX3N0cmVhbSkKKysgICAgICAgX193dXI7CisrCisrI2VuZGlmCisrCisr ZXh0ZXJuIHNpemVfdCBfX3djcnRvbWJfY2hrIChjaGFyICpfX3Jlc3RyaWN0IF9fcywgd2NoYXJf dCBfX3djaGFyLAorKwkJCSAgICAgbWJzdGF0ZV90ICpfX3Jlc3RyaWN0IF9fcCwKKysJCQkgICAg IHNpemVfdCBfX2J1ZmxlbikgX19USFJPVyBfX3d1cjsKKytleHRlcm4gc2l6ZV90IF9fbWJzcnRv d2NzX2NoayAod2NoYXJfdCAqX19yZXN0cmljdCBfX2RzdCwKKysJCQkgICAgICAgY29uc3QgY2hh ciAqKl9fcmVzdHJpY3QgX19zcmMsCisrCQkJICAgICAgIHNpemVfdCBfX2xlbiwgbWJzdGF0ZV90 ICpfX3Jlc3RyaWN0IF9fcHMsCisrCQkJICAgICAgIHNpemVfdCBfX2RzdGxlbikgX19USFJPVzsK KytleHRlcm4gc2l6ZV90IF9fd2NzcnRvbWJzX2NoayAoY2hhciAqX19yZXN0cmljdCBfX2RzdCwK KysJCQkgICAgICAgY29uc3Qgd2NoYXJfdCAqKl9fcmVzdHJpY3QgX19zcmMsCisrCQkJICAgICAg IHNpemVfdCBfX2xlbiwgbWJzdGF0ZV90ICpfX3Jlc3RyaWN0IF9fcHMsCisrCQkJICAgICAgIHNp emVfdCBfX2RzdGxlbikgX19USFJPVzsKKysKKysjaWZkZWYJX19VU0VfWE9QRU4ySzgKKysKKytl eHRlcm4gc2l6ZV90IF9fbWJzbnJ0b3djc19jaGsgKHdjaGFyX3QgKl9fcmVzdHJpY3QgX19kc3Qs CisrCQkJCWNvbnN0IGNoYXIgKipfX3Jlc3RyaWN0IF9fc3JjLCBzaXplX3QgX19ubWMsCisrCQkJ CXNpemVfdCBfX2xlbiwgbWJzdGF0ZV90ICpfX3Jlc3RyaWN0IF9fcHMsCisrCQkJCXNpemVfdCBf X2RzdGxlbikgX19USFJPVzsKKytleHRlcm4gc2l6ZV90IF9fd2NzbnJ0b21ic19jaGsgKGNoYXIg Kl9fcmVzdHJpY3QgX19kc3QsCisrCQkJCWNvbnN0IHdjaGFyX3QgKipfX3Jlc3RyaWN0IF9fc3Jj LAorKwkJCQlzaXplX3QgX19ud2MsIHNpemVfdCBfX2xlbiwKKysJCQkJbWJzdGF0ZV90ICpfX3Jl c3RyaWN0IF9fcHMsIHNpemVfdCBfX2RzdGxlbikKKysgICAgICAgX19USFJPVzsKKysKKysjZW5k aWYKKysKKysjZW5kaWYgLyogYml0cy93Y2hhcjItZGVjbC5oLiAgKi8KK2RpZmYgLS1naXQgYS93 Y3NtYnMvYml0cy93Y2hhcjIuaCBiL3djc21icy9iaXRzL3djaGFyMi5oCitpbmRleCAwZTAxN2Y0 NThiLi4zZjExMGVmZTU3IDEwMDY0NAorLS0tIGEvd2NzbWJzL2JpdHMvd2NoYXIyLmgKKysrKyBi L3djc21icy9iaXRzL3djaGFyMi5oCitAQCAtMjEsOSArMjEsNiBAQAorICNlbmRpZgorIAorIAor LWV4dGVybiB3Y2hhcl90ICpfX3dtZW1jcHlfY2hrICh3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fczEs CistCQkJICAgICAgIGNvbnN0IHdjaGFyX3QgKl9fcmVzdHJpY3QgX19zMiwgc2l6ZV90IF9fbiwK Ky0JCQkgICAgICAgc2l6ZV90IF9fbnMxKSBfX1RIUk9XOworIGV4dGVybiB3Y2hhcl90ICpfX1JF RElSRUNUX05USCAoX193bWVtY3B5X2FsaWFzLAorIAkJCQkod2NoYXJfdCAqX19yZXN0cmljdCBf X3MxLAorIAkJCQkgY29uc3Qgd2NoYXJfdCAqX19yZXN0cmljdCBfX3MyLCBzaXplX3QgX19uKSwK K0BAIC00NSw4ICs0Miw2IEBAIF9fTlRIICh3bWVtY3B5ICh3Y2hhcl90ICpfX3Jlc3RyaWN0IF9f czEsIGNvbnN0IHdjaGFyX3QgKl9fcmVzdHJpY3QgX19zMiwKKyB9CisgCisgCistZXh0ZXJuIHdj aGFyX3QgKl9fd21lbW1vdmVfY2hrICh3Y2hhcl90ICpfX3MxLCBjb25zdCB3Y2hhcl90ICpfX3My LAorLQkJCQlzaXplX3QgX19uLCBzaXplX3QgX19uczEpIF9fVEhST1c7CisgZXh0ZXJuIHdjaGFy X3QgKl9fUkVESVJFQ1RfTlRIIChfX3dtZW1tb3ZlX2FsaWFzLCAod2NoYXJfdCAqX19zMSwKKyAJ CQkJCQkgICBjb25zdCB3Y2hhcl90ICpfX3MyLAorIAkJCQkJCSAgIHNpemVfdCBfX24pLCB3bWVt bW92ZSk7CitAQCAtNjYsOSArNjEsNiBAQCBfX05USCAod21lbW1vdmUgKHdjaGFyX3QgKl9fczEs IGNvbnN0IHdjaGFyX3QgKl9fczIsIHNpemVfdCBfX24pKQorIAorIAorICNpZmRlZiBfX1VTRV9H TlUKKy1leHRlcm4gd2NoYXJfdCAqX193bWVtcGNweV9jaGsgKHdjaGFyX3QgKl9fcmVzdHJpY3Qg X19zMSwKKy0JCQkJY29uc3Qgd2NoYXJfdCAqX19yZXN0cmljdCBfX3MyLCBzaXplX3QgX19uLAor LQkJCQlzaXplX3QgX19uczEpIF9fVEhST1c7CisgZXh0ZXJuIHdjaGFyX3QgKl9fUkVESVJFQ1Rf TlRIIChfX3dtZW1wY3B5X2FsaWFzLAorIAkJCQkod2NoYXJfdCAqX19yZXN0cmljdCBfX3MxLAor IAkJCQkgY29uc3Qgd2NoYXJfdCAqX19yZXN0cmljdCBfX3MyLAorQEAgLTkxLDggKzgzLDYgQEAg X19OVEggKHdtZW1wY3B5ICh3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fczEsIGNvbnN0IHdjaGFyX3Qg Kl9fcmVzdHJpY3QgX19zMiwKKyAjZW5kaWYKKyAKKyAKKy1leHRlcm4gd2NoYXJfdCAqX193bWVt c2V0X2NoayAod2NoYXJfdCAqX19zLCB3Y2hhcl90IF9fYywgc2l6ZV90IF9fbiwKKy0JCQkgICAg ICAgc2l6ZV90IF9fbnMpIF9fVEhST1c7CisgZXh0ZXJuIHdjaGFyX3QgKl9fUkVESVJFQ1RfTlRI IChfX3dtZW1zZXRfYWxpYXMsICh3Y2hhcl90ICpfX3MsIHdjaGFyX3QgX19jLAorIAkJCQkJCSAg c2l6ZV90IF9fbiksIHdtZW1zZXQpOworIGV4dGVybiB3Y2hhcl90ICpfX1JFRElSRUNUX05USCAo X193bWVtc2V0X2Noa193YXJuLAorQEAgLTExMCw5ICsxMDAsNiBAQCBfX05USCAod21lbXNldCAo d2NoYXJfdCAqX19zLCB3Y2hhcl90IF9fYywgc2l6ZV90IF9fbikpCisgfQorIAorIAorLWV4dGVy biB3Y2hhcl90ICpfX3djc2NweV9jaGsgKHdjaGFyX3QgKl9fcmVzdHJpY3QgX19kZXN0LAorLQkJ CSAgICAgIGNvbnN0IHdjaGFyX3QgKl9fcmVzdHJpY3QgX19zcmMsCistCQkJICAgICAgc2l6ZV90 IF9fbikgX19USFJPVzsKKyBleHRlcm4gd2NoYXJfdCAqX19SRURJUkVDVF9OVEggKF9fd2NzY3B5 X2FsaWFzLAorIAkJCQkod2NoYXJfdCAqX19yZXN0cmljdCBfX2Rlc3QsCisgCQkJCSBjb25zdCB3 Y2hhcl90ICpfX3Jlc3RyaWN0IF9fc3JjKSwgd2NzY3B5KTsKK0BAIC0xMjcsOSArMTE0LDYgQEAg X19OVEggKHdjc2NweSAod2NoYXJfdCAqX19yZXN0cmljdCBfX2Rlc3QsIGNvbnN0IHdjaGFyX3Qg Kl9fcmVzdHJpY3QgX19zcmMpKQorIH0KKyAKKyAKKy1leHRlcm4gd2NoYXJfdCAqX193Y3BjcHlf Y2hrICh3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fZGVzdCwKKy0JCQkgICAgICBjb25zdCB3Y2hhcl90 ICpfX3Jlc3RyaWN0IF9fc3JjLAorLQkJCSAgICAgIHNpemVfdCBfX2Rlc3RsZW4pIF9fVEhST1c7 CisgZXh0ZXJuIHdjaGFyX3QgKl9fUkVESVJFQ1RfTlRIIChfX3djcGNweV9hbGlhcywKKyAJCQkJ KHdjaGFyX3QgKl9fcmVzdHJpY3QgX19kZXN0LAorIAkJCQkgY29uc3Qgd2NoYXJfdCAqX19yZXN0 cmljdCBfX3NyYyksIHdjcGNweSk7CitAQCAtMTQ0LDkgKzEyOCw2IEBAIF9fTlRIICh3Y3BjcHkg KHdjaGFyX3QgKl9fcmVzdHJpY3QgX19kZXN0LCBjb25zdCB3Y2hhcl90ICpfX3Jlc3RyaWN0IF9f c3JjKSkKKyB9CisgCisgCistZXh0ZXJuIHdjaGFyX3QgKl9fd2NzbmNweV9jaGsgKHdjaGFyX3Qg Kl9fcmVzdHJpY3QgX19kZXN0LAorLQkJCSAgICAgICBjb25zdCB3Y2hhcl90ICpfX3Jlc3RyaWN0 IF9fc3JjLCBzaXplX3QgX19uLAorLQkJCSAgICAgICBzaXplX3QgX19kZXN0bGVuKSBfX1RIUk9X OworIGV4dGVybiB3Y2hhcl90ICpfX1JFRElSRUNUX05USCAoX193Y3NuY3B5X2FsaWFzLAorIAkJ CQkod2NoYXJfdCAqX19yZXN0cmljdCBfX2Rlc3QsCisgCQkJCSBjb25zdCB3Y2hhcl90ICpfX3Jl c3RyaWN0IF9fc3JjLAorQEAgLTE2OCw5ICsxNDksNiBAQCBfX05USCAod2NzbmNweSAod2NoYXJf dCAqX19yZXN0cmljdCBfX2Rlc3QsIGNvbnN0IHdjaGFyX3QgKl9fcmVzdHJpY3QgX19zcmMsCisg fQorIAorIAorLWV4dGVybiB3Y2hhcl90ICpfX3djcG5jcHlfY2hrICh3Y2hhcl90ICpfX3Jlc3Ry aWN0IF9fZGVzdCwKKy0JCQkgICAgICAgY29uc3Qgd2NoYXJfdCAqX19yZXN0cmljdCBfX3NyYywg c2l6ZV90IF9fbiwKKy0JCQkgICAgICAgc2l6ZV90IF9fZGVzdGxlbikgX19USFJPVzsKKyBleHRl cm4gd2NoYXJfdCAqX19SRURJUkVDVF9OVEggKF9fd2NwbmNweV9hbGlhcywKKyAJCQkJKHdjaGFy X3QgKl9fcmVzdHJpY3QgX19kZXN0LAorIAkJCQkgY29uc3Qgd2NoYXJfdCAqX19yZXN0cmljdCBf X3NyYywKK0BAIC0xOTIsOSArMTcwLDYgQEAgX19OVEggKHdjcG5jcHkgKHdjaGFyX3QgKl9fcmVz dHJpY3QgX19kZXN0LCBjb25zdCB3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fc3JjLAorIH0KKyAKKyAK Ky1leHRlcm4gd2NoYXJfdCAqX193Y3NjYXRfY2hrICh3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fZGVz dCwKKy0JCQkgICAgICBjb25zdCB3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fc3JjLAorLQkJCSAgICAg IHNpemVfdCBfX2Rlc3RsZW4pIF9fVEhST1c7CisgZXh0ZXJuIHdjaGFyX3QgKl9fUkVESVJFQ1Rf TlRIIChfX3djc2NhdF9hbGlhcywKKyAJCQkJKHdjaGFyX3QgKl9fcmVzdHJpY3QgX19kZXN0LAor IAkJCQkgY29uc3Qgd2NoYXJfdCAqX19yZXN0cmljdCBfX3NyYyksIHdjc2NhdCk7CitAQCAtMjA5 LDkgKzE4NCw2IEBAIF9fTlRIICh3Y3NjYXQgKHdjaGFyX3QgKl9fcmVzdHJpY3QgX19kZXN0LCBj b25zdCB3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fc3JjKSkKKyB9CisgCisgCistZXh0ZXJuIHdjaGFy X3QgKl9fd2NzbmNhdF9jaGsgKHdjaGFyX3QgKl9fcmVzdHJpY3QgX19kZXN0LAorLQkJCSAgICAg ICBjb25zdCB3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fc3JjLAorLQkJCSAgICAgICBzaXplX3QgX19u LCBzaXplX3QgX19kZXN0bGVuKSBfX1RIUk9XOworIGV4dGVybiB3Y2hhcl90ICpfX1JFRElSRUNU X05USCAoX193Y3NuY2F0X2FsaWFzLAorIAkJCQkod2NoYXJfdCAqX19yZXN0cmljdCBfX2Rlc3Qs CisgCQkJCSBjb25zdCB3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fc3JjLAorQEAgLTIyOCwxMCArMjAw LDYgQEAgX19OVEggKHdjc25jYXQgKHdjaGFyX3QgKl9fcmVzdHJpY3QgX19kZXN0LCBjb25zdCB3 Y2hhcl90ICpfX3Jlc3RyaWN0IF9fc3JjLAorIH0KKyAKKyAKKy1leHRlcm4gaW50IF9fc3dwcmlu dGZfY2hrICh3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fcywgc2l6ZV90IF9fbiwKKy0JCQkgICBpbnQg X19mbGFnLCBzaXplX3QgX19zX2xlbiwKKy0JCQkgICBjb25zdCB3Y2hhcl90ICpfX3Jlc3RyaWN0 IF9fZm9ybWF0LCAuLi4pCistICAgICBfX1RIUk9XIC8qIF9fYXR0cmlidXRlX18gKChfX2Zvcm1h dF9fIChfX3dwcmludGZfXywgNSwgNikpKSAqLzsKKyAKKyBleHRlcm4gaW50IF9fUkVESVJFQ1Rf TlRIX0xEQkwgKF9fc3dwcmludGZfYWxpYXMsCisgCQkJCSh3Y2hhcl90ICpfX3Jlc3RyaWN0IF9f cywgc2l6ZV90IF9fbiwKK0BAIC0yNTgsMTEgKzIyNiw2IEBAIF9fTlRIIChzd3ByaW50ZiAod2No YXJfdCAqX19yZXN0cmljdCBfX3MsIHNpemVfdCBfX24sCisgICAgOiBzd3ByaW50ZiAocywgbiwg X19WQV9BUkdTX18pKQorICNlbmRpZgorIAorLWV4dGVybiBpbnQgX192c3dwcmludGZfY2hrICh3 Y2hhcl90ICpfX3Jlc3RyaWN0IF9fcywgc2l6ZV90IF9fbiwKKy0JCQkgICAgaW50IF9fZmxhZywg c2l6ZV90IF9fc19sZW4sCistCQkJICAgIGNvbnN0IHdjaGFyX3QgKl9fcmVzdHJpY3QgX19mb3Jt YXQsCistCQkJICAgIF9fZ251Y192YV9saXN0IF9fYXJnKQorLSAgICAgX19USFJPVyAvKiBfX2F0 dHJpYnV0ZV9fICgoX19mb3JtYXRfXyAoX193cHJpbnRmX18sIDUsIDApKSkgKi87CisgCisgZXh0 ZXJuIGludCBfX1JFRElSRUNUX05USF9MREJMIChfX3Zzd3ByaW50Zl9hbGlhcywKKyAJCQkJKHdj aGFyX3QgKl9fcmVzdHJpY3QgX19zLCBzaXplX3QgX19uLAorQEAgLTI4MywxNiArMjQ2LDYgQEAg X19OVEggKHZzd3ByaW50ZiAod2NoYXJfdCAqX19yZXN0cmljdCBfX3MsIHNpemVfdCBfX24sCisg CisgI2lmIF9fVVNFX0ZPUlRJRllfTEVWRUwgPiAxCisgCistZXh0ZXJuIGludCBfX2Z3cHJpbnRm X2NoayAoX19GSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtLCBpbnQgX19mbGFnLAorLQkJCSAgIGNv bnN0IHdjaGFyX3QgKl9fcmVzdHJpY3QgX19mb3JtYXQsIC4uLik7CistZXh0ZXJuIGludCBfX3dw cmludGZfY2hrIChpbnQgX19mbGFnLCBjb25zdCB3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fZm9ybWF0 LAorLQkJCSAgLi4uKTsKKy1leHRlcm4gaW50IF9fdmZ3cHJpbnRmX2NoayAoX19GSUxFICpfX3Jl c3RyaWN0IF9fc3RyZWFtLCBpbnQgX19mbGFnLAorLQkJCSAgICBjb25zdCB3Y2hhcl90ICpfX3Jl c3RyaWN0IF9fZm9ybWF0LAorLQkJCSAgICBfX2dudWNfdmFfbGlzdCBfX2FwKTsKKy1leHRlcm4g aW50IF9fdndwcmludGZfY2hrIChpbnQgX19mbGFnLCBjb25zdCB3Y2hhcl90ICpfX3Jlc3RyaWN0 IF9fZm9ybWF0LAorLQkJCSAgIF9fZ251Y192YV9saXN0IF9fYXApOworLQorICMgaWZkZWYgX192 YV9hcmdfcGFjaworIF9fZm9ydGlmeV9mdW5jdGlvbiBpbnQKKyB3cHJpbnRmIChjb25zdCB3Y2hh cl90ICpfX3Jlc3RyaWN0IF9fZm10LCAuLi4pCitAQCAtMzI4LDggKzI4MSw2IEBAIHZmd3ByaW50 ZiAoX19GSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtLAorIAorICNlbmRpZgorIAorLWV4dGVybiB3 Y2hhcl90ICpfX2ZnZXR3c19jaGsgKHdjaGFyX3QgKl9fcmVzdHJpY3QgX19zLCBzaXplX3QgX19z aXplLCBpbnQgX19uLAorLQkJCSAgICAgIF9fRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSkgX193 dXI7CisgZXh0ZXJuIHdjaGFyX3QgKl9fUkVESVJFQ1QgKF9fZmdldHdzX2FsaWFzLAorIAkJCSAg ICAod2NoYXJfdCAqX19yZXN0cmljdCBfX3MsIGludCBfX24sCisgCQkJICAgICBfX0ZJTEUgKl9f cmVzdHJpY3QgX19zdHJlYW0pLCBmZ2V0d3MpIF9fd3VyOworQEAgLTM1MSw5ICszMDIsNiBAQCBm Z2V0d3MgKHdjaGFyX3QgKl9fcmVzdHJpY3QgX19zLCBpbnQgX19uLCBfX0ZJTEUgKl9fcmVzdHJp Y3QgX19zdHJlYW0pCisgfQorIAorICNpZmRlZiBfX1VTRV9HTlUKKy1leHRlcm4gd2NoYXJfdCAq X19mZ2V0d3NfdW5sb2NrZWRfY2hrICh3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fcywgc2l6ZV90IF9f c2l6ZSwKKy0JCQkJICAgICAgIGludCBfX24sIF9fRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSkK Ky0gIF9fd3VyOworIGV4dGVybiB3Y2hhcl90ICpfX1JFRElSRUNUIChfX2ZnZXR3c191bmxvY2tl ZF9hbGlhcywKKyAJCQkgICAgKHdjaGFyX3QgKl9fcmVzdHJpY3QgX19zLCBpbnQgX19uLAorIAkJ CSAgICAgX19GSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtKSwgZmdldHdzX3VubG9ja2VkKQorQEAg LTM3OSw5ICszMjcsNiBAQCBmZ2V0d3NfdW5sb2NrZWQgKHdjaGFyX3QgKl9fcmVzdHJpY3QgX19z LCBpbnQgX19uLCBfX0ZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0pCisgI2VuZGlmCisgCisgCist ZXh0ZXJuIHNpemVfdCBfX3djcnRvbWJfY2hrIChjaGFyICpfX3Jlc3RyaWN0IF9fcywgd2NoYXJf dCBfX3djaGFyLAorLQkJCSAgICAgbWJzdGF0ZV90ICpfX3Jlc3RyaWN0IF9fcCwKKy0JCQkgICAg IHNpemVfdCBfX2J1ZmxlbikgX19USFJPVyBfX3d1cjsKKyBleHRlcm4gc2l6ZV90IF9fUkVESVJF Q1RfTlRIIChfX3djcnRvbWJfYWxpYXMsCisgCQkJICAgICAgKGNoYXIgKl9fcmVzdHJpY3QgX19z LCB3Y2hhcl90IF9fd2NoYXIsCisgCQkJICAgICAgIG1ic3RhdGVfdCAqX19yZXN0cmljdCBfX3Bz KSwgd2NydG9tYikgX193dXI7CitAQCAtNDA0LDEwICszNDksNiBAQCBfX05USCAod2NydG9tYiAo Y2hhciAqX19yZXN0cmljdCBfX3MsIHdjaGFyX3QgX193Y2hhciwKKyB9CisgCisgCistZXh0ZXJu IHNpemVfdCBfX21ic3J0b3djc19jaGsgKHdjaGFyX3QgKl9fcmVzdHJpY3QgX19kc3QsCistCQkJ ICAgICAgIGNvbnN0IGNoYXIgKipfX3Jlc3RyaWN0IF9fc3JjLAorLQkJCSAgICAgICBzaXplX3Qg X19sZW4sIG1ic3RhdGVfdCAqX19yZXN0cmljdCBfX3BzLAorLQkJCSAgICAgICBzaXplX3QgX19k c3RsZW4pIF9fVEhST1c7CisgZXh0ZXJuIHNpemVfdCBfX1JFRElSRUNUX05USCAoX19tYnNydG93 Y3NfYWxpYXMsCisgCQkJICAgICAgKHdjaGFyX3QgKl9fcmVzdHJpY3QgX19kc3QsCisgCQkJICAg ICAgIGNvbnN0IGNoYXIgKipfX3Jlc3RyaWN0IF9fc3JjLAorQEAgLTQzMSwxMCArMzcyLDYgQEAg X19OVEggKG1ic3J0b3djcyAod2NoYXJfdCAqX19yZXN0cmljdCBfX2RzdCwgY29uc3QgY2hhciAq Kl9fcmVzdHJpY3QgX19zcmMsCisgfQorIAorIAorLWV4dGVybiBzaXplX3QgX193Y3NydG9tYnNf Y2hrIChjaGFyICpfX3Jlc3RyaWN0IF9fZHN0LAorLQkJCSAgICAgICBjb25zdCB3Y2hhcl90ICoq X19yZXN0cmljdCBfX3NyYywKKy0JCQkgICAgICAgc2l6ZV90IF9fbGVuLCBtYnN0YXRlX3QgKl9f cmVzdHJpY3QgX19wcywKKy0JCQkgICAgICAgc2l6ZV90IF9fZHN0bGVuKSBfX1RIUk9XOworIGV4 dGVybiBzaXplX3QgX19SRURJUkVDVF9OVEggKF9fd2NzcnRvbWJzX2FsaWFzLAorIAkJCSAgICAg IChjaGFyICpfX3Jlc3RyaWN0IF9fZHN0LAorIAkJCSAgICAgICBjb25zdCB3Y2hhcl90ICoqX19y ZXN0cmljdCBfX3NyYywKK0BAIC00NTgsMTAgKzM5NSw2IEBAIF9fTlRIICh3Y3NydG9tYnMgKGNo YXIgKl9fcmVzdHJpY3QgX19kc3QsIGNvbnN0IHdjaGFyX3QgKipfX3Jlc3RyaWN0IF9fc3JjLAor IAorIAorICNpZmRlZglfX1VTRV9YT1BFTjJLOAorLWV4dGVybiBzaXplX3QgX19tYnNucnRvd2Nz X2NoayAod2NoYXJfdCAqX19yZXN0cmljdCBfX2RzdCwKKy0JCQkJY29uc3QgY2hhciAqKl9fcmVz dHJpY3QgX19zcmMsIHNpemVfdCBfX25tYywKKy0JCQkJc2l6ZV90IF9fbGVuLCBtYnN0YXRlX3Qg Kl9fcmVzdHJpY3QgX19wcywKKy0JCQkJc2l6ZV90IF9fZHN0bGVuKSBfX1RIUk9XOworIGV4dGVy biBzaXplX3QgX19SRURJUkVDVF9OVEggKF9fbWJzbnJ0b3djc19hbGlhcywKKyAJCQkgICAgICAo d2NoYXJfdCAqX19yZXN0cmljdCBfX2RzdCwKKyAJCQkgICAgICAgY29uc3QgY2hhciAqKl9fcmVz dHJpY3QgX19zcmMsIHNpemVfdCBfX25tYywKK0BAIC00ODUsMTEgKzQxOCw2IEBAIF9fTlRIICht YnNucnRvd2NzICh3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fZHN0LCBjb25zdCBjaGFyICoqX19yZXN0 cmljdCBfX3NyYywKKyB9CisgCisgCistZXh0ZXJuIHNpemVfdCBfX3djc25ydG9tYnNfY2hrIChj aGFyICpfX3Jlc3RyaWN0IF9fZHN0LAorLQkJCQljb25zdCB3Y2hhcl90ICoqX19yZXN0cmljdCBf X3NyYywKKy0JCQkJc2l6ZV90IF9fbndjLCBzaXplX3QgX19sZW4sCistCQkJCW1ic3RhdGVfdCAq X19yZXN0cmljdCBfX3BzLCBzaXplX3QgX19kc3RsZW4pCistICAgICBfX1RIUk9XOworIGV4dGVy biBzaXplX3QgX19SRURJUkVDVF9OVEggKF9fd2NzbnJ0b21ic19hbGlhcywKKyAJCQkgICAgICAo Y2hhciAqX19yZXN0cmljdCBfX2RzdCwKKyAJCQkgICAgICAgY29uc3Qgd2NoYXJfdCAqKl9fcmVz dHJpY3QgX19zcmMsCitkaWZmIC0tZ2l0IGEvd2NzbWJzL3djaGFyLmggYi93Y3NtYnMvd2NoYXIu aAoraW5kZXggNWQ2YTQwODUzZC4uYzEzMjFjNzUxOCAxMDA2NDQKKy0tLSBhL3djc21icy93Y2hh ci5oCisrKysgYi93Y3NtYnMvd2NoYXIuaAorQEAgLTg2NCwxNCArODY0LDIxIEBAIGV4dGVybiBz aXplX3Qgd2NzZnRpbWVfbCAod2NoYXJfdCAqX19yZXN0cmljdCBfX3MsIHNpemVfdCBfX21heHNp emUsCisgCisgLyogRGVmaW5lIHNvbWUgbWFjcm9zIGhlbHBpbmcgdG8gY2F0Y2ggYnVmZmVyIG92 ZXJmbG93cy4gICovCisgI2lmIF9fVVNFX0ZPUlRJRllfTEVWRUwgPiAwICYmIGRlZmluZWQgX19m b3J0aWZ5X2Z1bmN0aW9uCistIyBpbmNsdWRlIDxiaXRzL3djaGFyMi5oPgorKy8qIERlY2xhcmUg YWxsIGZ1bmN0aW9ucyBmcm9tIGJpdHMvd2NoYXIyLWRlY2wuaCBmaXJzdC4gICovCisrIyBpbmNs dWRlIDxiaXRzL3djaGFyMi1kZWNsLmg+CisgI2VuZGlmCisgCistI2luY2x1ZGUgPGJpdHMvZmxv YXRuLmg+CisrLyogVGhlIGZvbGxvd2luZyBoZWFkZXJzIHByb3ZpZGUgYXNtIHJlZGlyZWN0aW9u cy4gIFRoZXNlIHJlZGlyZWN0aW9ucyBtdXN0CisrICAgYXBwZWFyIGJlZm9yZSB0aGUgZmlyc3Qg dXNhZ2Ugb2YgdGhlc2UgZnVuY3Rpb25zLCBlLmcuIGluIGJpdHMvd2NoYXIuaC4gICovCisgI2lm IGRlZmluZWQgX19MREJMX0NPTVBBVCB8fCBfX0xET1VCTEVfUkVESVJFQ1RTX1RPX0ZMT0FUMTI4 X0FCSSA9PSAxCisgIyBpbmNsdWRlIDxiaXRzL3djaGFyLWxkYmwuaD4KKyAjZW5kaWYKKyAKKysj aWYgX19VU0VfRk9SVElGWV9MRVZFTCA+IDAgJiYgZGVmaW5lZCBfX2ZvcnRpZnlfZnVuY3Rpb24K KysvKiBOb3cgaW5jbHVkZSB0aGUgZnVuY3Rpb24gZGVmaW5pdGlvbnMgYW5kIHJlZGlyZWN0cyB0 b28uICAqLworKyMgaW5jbHVkZSA8Yml0cy93Y2hhcjIuaD4KKysjZW5kaWYKKysKKyBfX0VORF9E RUNMUworIAorICNlbmRpZiAvKiB3Y2hhci5oICAqLworLS0gCisyLjM4LjEKKworCitGcm9tIGIz NzM2ZDFhM2M2MGEzZWM5OTU5YmYzYjM4Nzk0OTU4NTQ2YmY2YTIgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCitGcm9tOiBBZGhlbWVydmFsIFphbmVsbGEgPGFkaGVtZXJ2YWwuemFuZWxsYUBsaW5h cm8ub3JnPgorRGF0ZTogVHVlLCAzMCBBdWcgMjAyMiAxMzozNTo1MiAtMDMwMAorU3ViamVjdDog W1BBVENIIDE5LzcyXSBlbGY6IFJlc3RvcmUgaG93IHZEU08gZGVwZW5kZW5jeSBpcyBwcmludGVk 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 IFNlcCAyMDIyIDA5OjM0OjM5IC0wMzAwCitTdWJqZWN0OiBbUEFUQ0ggMjAvNzJdIHN5c2xvZzog UmVtb3ZlIGV4dHJhIHdoaXRlc3BhY2UgYmV0d2VlbiB0aW1lc3RhbXAgYW5kCisgbWVzc2FnZSAo QlojMjk1NDQpCisKK1RoZSByZmMzMTY0IGNsZWFyIHN0YXRlcyB0aGF0IGEgc2luZ2xlIHNwYWNl IGNoYXJhY3RlciBtdXN0IGZvbGxvdwordGhlIHRpbWVzdGFtcCBmaWVsZC4KKworQ2hlY2tlZCBv biB4ODZfNjQtbGludXgtZ251LgorLS0tCisgbWlzYy9zeXNsb2cuYyAgICAgfCAyICstCisgbWlz Yy90c3Qtc3lzbG9nLmMgfCA5ICsrKysrKy0tLQorIDIgZmlsZXMgY2hhbmdlZCwgNyBpbnNlcnRp b25zKCspLCA0IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvbWlzYy9zeXNsb2cuYyBiL21p c2Mvc3lzbG9nLmMKK2luZGV4IGI4OGY2NmM4MzUuLmY2N2Q0YjU4YTQgMTAwNjQ0CistLS0gYS9t aXNjL3N5c2xvZy5jCisrKysgYi9taXNjL3N5c2xvZy5jCitAQCAtMTY3LDcgKzE2Nyw3IEBAIF9f dnN5c2xvZ19pbnRlcm5hbCAoaW50IHByaSwgY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFwLAor IAkJICBfbmxfQ19sb2NvYmpfcHRyKTsKKyAKKyAjZGVmaW5lIFNZU0xPR19IRUFERVIoX19wcmks IF9fdGltZXN0YW1wLCBfX21zZ29mZiwgcGlkKSBcCistICAiPCVkPiVzICVuJXMlcyUuMGQlczog IiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgIjwlZD4lcyVuJXMlcyUuMGQl czogIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgIF9fcHJpLCBfX3RpbWVz dGFtcCwgX19tc2dvZmYsICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICBMb2dUYWcgPT0g TlVMTCA/IF9fcHJvZ25hbWUgOiBMb2dUYWcsICAgICAgICAgICAgICAgICAgXAorICAgIlsiICsg KHBpZCA9PSAwKSwgcGlkLCAiXSIgKyAocGlkID09IDApCitkaWZmIC0tZ2l0IGEvbWlzYy90c3Qt c3lzbG9nLmMgYi9taXNjL3RzdC1zeXNsb2cuYworaW5kZXggMWQzMzJlY2U1My4uMzU2MGI1MThh MiAxMDA2NDQKKy0tLSBhL21pc2MvdHN0LXN5c2xvZy5jCisrKysgYi9taXNjL3RzdC1zeXNsb2cu YworQEAgLTI3NSwxNiArMjc1LDE5IEBAIHBhcnNlX3N5c2xvZ19tc2cgKGNvbnN0IGNoYXIgKm1z ZykKKyB7CisgICBzdHJ1Y3QgbXNnX3QgciA9IHsgLnBpZCA9IC0xIH07CisgICBpbnQgbnVtYmVy OworKyAgaW50IHdzYiwgd3NhOworIAorICNkZWZpbmUgU1RSSU5QVVQoc2l6ZSkgIFhTVFJJTlBV VChzaXplKQorICNkZWZpbmUgWFNUUklOUFVUKHNpemUpICIlIiAjIHNpemUgInMiCisgCisgICAv KiBUaGUgbWVzc2FnZSBpbiB0aGUgZm9ybToKKy0gICAgIDwxNzk+QXByICA4IDE0OjUxOjE5ICB0 c3Qtc3lzbG9nOiBtZXNzYWdlIDE3NiAzICAqLworLSAgaW50IG4gPSBzc2NhbmYgKG1zZywgIjwl M2Q+JSpzICUqZCAlKmQ6JSpkOiUqZCAiIFNUUklOUFVUKElERU5UX0xFTkdUSCkKKysgICAgIDwx Nzk+QXByICA4IDE0OjUxOjE5IHRzdC1zeXNsb2c6IG1lc3NhZ2UgMTc2IDMgICovCisrICBpbnQg biA9IHNzY2FuZiAobXNnLCAiPCUzZD4lKnMgJSpkICUqZDolKmQ6JSpkJW4gJW4iIFNUUklOUFVU KElERU5UX0xFTkdUSCkKKyAJCSAgICAgICAiICIgU1RSSU5QVVQoTVNHX0xFTkdUSCkgIiAlKmQg JSpkIiwKKy0gICAgICAgICAgICAgICAgICAmbnVtYmVyLCByLmlkZW50LCByLm1zZyk7CisrICAg ICAgICAgICAgICAgICAgJm51bWJlciwgJndzYiwgJndzYSwgci5pZGVudCwgci5tc2cpOworICAg VEVTVF9DT01QQVJFIChuLCAzKTsKKysgIC8qIEl0IHNob3VsZCBvbmx5IG9uZSBzcGFjZSBiZXR3 ZWVuIHRpbWVzdGFtcCBhbmQgbWVzc2FnZS4gICovCisrICBURVNUX0NPTVBBUkUgKHdzYSAtIHdz YiwgMSk7CisgCisgICByLmZhY2lsaXR5ID0gbnVtYmVyICYgTE9HX0ZBQ01BU0s7CisgICByLnBy aW9yaXR5ID0gbnVtYmVyICYgTE9HX1BSSU1BU0s7CistLSAKKzIuMzguMQorCisKK0Zyb20gYjQ2 NDEyZmIxN2U4YmZjNmM5ZTFmMTQ0YmJjZjgzMzMyMGM4MGY4YSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKK0Zyb206IFNpZGRoZXNoIFBveWFyZWthciA8c2lkZGhlc2hAc291cmNld2FyZS5vcmc+ CitEYXRlOiBUdWUsIDYgU2VwIDIwMjIgMDk6MzE6NTAgLTA0MDAKK1N1YmplY3Q6IFtQQVRDSCAy MS83Ml0gQWRkIE5FV1MgZW50cnkgZm9yIENWRS0yMDIyLTM5MDQ2CisKKyhjaGVycnkgcGlja2Vk IGZyb20gY29tbWl0IDc2ZmU1NjAyMGU3ZWYzNTQ2ODViMjI4NDU4MGFjMTYzMGMwNzhhMmIpCist LS0KKyBORVdTIHwgNyArKysrKysrCisgMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKQor CitkaWZmIC0tZ2l0IGEvTkVXUyBiL05FV1MKK2luZGV4IDc1N2RlZDg1ZTAuLjEwYTc2MTNmMDkg MTAwNjQ0CistLS0gYS9ORVdTCisrKysgYi9ORVdTCitAQCAtNyw2ICs3LDEzIEBAIHVzaW5nIGBn bGliYycgaW4gdGhlICJwcm9kdWN0IiBmaWVsZC4KKyAMCisgVmVyc2lvbiAyLjM2LjEKKyAKKytT ZWN1cml0eSByZWxhdGVkIGNoYW5nZXM6CisrCisrICBDVkUtMjAyMi0zOTA0NjogV2hlbiB0aGUg c3lzbG9nIGZ1bmN0aW9uIGlzIHBhc3NlZCBhIGNyYWZ0ZWQgaW5wdXQKKysgIHN0cmluZyBsYXJn ZXIgdGhhbiAxMDI0IGJ5dGVzLCBpdCByZWFkcyB1bmluaXRpYWxpemVkIG1lbW9yeSBmcm9tIHRo ZQorKyAgaGVhcCBhbmQgcHJpbnRzIGl0IHRvIHRoZSB0YXJnZXQgbG9nIGZpbGUsIHBvdGVudGlh bGx5IHJldmVhbGluZyBhCisrICBwb3J0aW9uIG9mIHRoZSBjb250ZW50cyBvZiB0aGUgaGVhcC4K KysKKyBUaGUgZm9sbG93aW5nIGJ1Z3MgYXJlIHJlc29sdmVkIHdpdGggdGhpcyByZWxlYXNlOgor IAorICAgWzI4ODQ2XSBDTVNHX05YVEhEUiBtYXkgdHJpZ2dlciAtV3N0cmljdC1vdmVyZmxvdyB3 YXJuaW5nCistLSAKKzIuMzguMQorCisKK0Zyb20gYzM5OTI3MWMxMGJkMDA3MTQ1MDRlOGQ0ZGZi ZWM4YWViZjk5NmRkNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEZhYmlhbiBWb2d0 IDxmdm9ndEBzdXNlLmRlPgorRGF0ZTogV2VkLCAyNyBKdWwgMjAyMiAxMTo0NDowNyArMDIwMAor U3ViamVjdDogW1BBVENIIDIyLzcyXSBuc2NkOiBGaXggbmV0bGluayBjYWNoZSBpbnZhbGlkYXRp b24gaWYgZXBvbGwgaXMgdXNlZAorIFtCWiAjMjk0MTVdCisKK1Byb2Nlc3NlcyBjYWNoZSBuZXR3 b3JrIGludGVyZmFjZSBpbmZvcm1hdGlvbiBzdWNoIGFzIHdoZXRoZXIgSVB2NCBvciBJUHY2Cith cmUgZW5hYmxlZC4gVGhpcyBpcyBvbmx5IGNoZWNrZWQgYWdhaW4gaWYgdGhlICJuZXRsaW5rIHRp bWVzdGFtcCIgcHJvdmlkZWQKK2J5IG5zY2QgY2hhbmdlZCwgd2hpY2ggaXMgdHJpZ2dlcmVkIGJ5 IG5ldGxpbmsgc29ja2V0IGFjdGl2aXR5LgorCitIb3dldmVyLCBpbiB0aGUgZXBvbGwgaGFuZGxl ciBmb3IgdGhlIG5ldGxpbmsgc29ja2V0LCBpdCB3YXMgbWlzc2VkIHRvCithc3NpZ24gdGhlIG5l dyB0aW1lc3RhbXAgdG8gdGhlIG5zY2QgZGF0YWJhc2UuIFRoZSBoYW5kbGVyIGZvciBwbGFpbiBw b2xsCitkaWQgdGhhdCBwcm9wZXJseSwgY29weSB0aGF0IG92ZXIuCisKK1RoaXMgYnVnIGNhdXNl ZCB0aGF0IGUuZy4gcHJvY2Vzc2VzIHdoaWNoIHN0YXJ0ZWQgYmVmb3JlIG5ldHdvcmsKK2NvbmZp Z3VyYXRpb24gZ290IHVudXN1YWJsZSBhZGRyZXNzZXMgZnJvbSBnZXRhZGRyaW5mbywgbGlrZSBJ UHY2IG9ubHkgZXZlbgordGhvdWdoIG9ubHkgSVB2NCBpcyBhdmFpbGFibGU6CitodHRwczovL2dp dGxhYi5mcmVlZGVza3RvcC5vcmcvTmV0d29ya01hbmFnZXIvTmV0d29ya01hbmFnZXIvLS9pc3N1 ZXMvMTA0MQorCitJdCdzIGEgYml0IGhhcmQgdG8gcmVwcm9kdWNlLCBzbyBJIHZlcmlmaWVkIHRo aXMgYnkgY2hlY2tpbmcgdGhlIHRpbWVzdGFtcAorb24gY2FsbHMgdG8gX19jaGVja19wZiBtYW51 YWxseS4gV2l0aG91dCB0aGlzIHBhdGNoIGl0J3Mgc3R1Y2sgYXQgMSwgbm93CitpdCdzIGluY3Jl YXNpbmcgb24gbmV0d29yayBjaGFuZ2VzIGFzIGV4cGVjdGVkLgorCitTaWduZWQtb2ZmLWJ5OiBG YWJpYW4gVm9ndCA8ZnZvZ3RAc3VzZS5kZT4KKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDAy Y2EyNWZlZjI3ODU5NzQwMTFlOWM1YmVlY2M5OWI5MDBiNjlmZDcpCistLS0KKyBORVdTICAgICAg ICAgICAgICAgfCAxICsKKyBuc2NkL2Nvbm5lY3Rpb25zLmMgfCAzICsrLQorIDIgZmlsZXMgY2hh bmdlZCwgMyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9ORVdT IGIvTkVXUworaW5kZXggMTBhNzYxM2YwOS4uOTM2MDU5NmZjYyAxMDA2NDQKKy0tLSBhL05FV1MK KysrKyBiL05FV1MKK0BAIC0xNyw2ICsxNyw3IEBAIFNlY3VyaXR5IHJlbGF0ZWQgY2hhbmdlczoK KyBUaGUgZm9sbG93aW5nIGJ1Z3MgYXJlIHJlc29sdmVkIHdpdGggdGhpcyByZWxlYXNlOgorIAor ICAgWzI4ODQ2XSBDTVNHX05YVEhEUiBtYXkgdHJpZ2dlciAtV3N0cmljdC1vdmVyZmxvdyB3YXJu aW5nCisrICBbMjk0MTVdIG5zY2Q6IEZpeCBuZXRsaW5rIGNhY2hlIGludmFsaWRhdGlvbiBpZiBl cG9sbCBpcyB1c2VkCisgICBbMjk0NDZdIF9kbG9wZW4gbm93IGlnbm9yZXMgZGxfY2FsbGVyIGFy Z3VtZW50IGluIHN0YXRpYyBtb2RlCisgICBbMjk0ODVdIExpbnV4OiBUZXJtaW5hdGUgc3VicHJv Y2VzcyBvbiBsYXRlIGZhaWx1cmUgaW4gdHN0LXBpZGZkCisgICBbMjk0OTBdIGFscGhhOiBOZXcg X19icmtfY2FsbCBpbXBsZW1lbnRhdGlvbiBpcyBicm9rZW4KK2RpZmYgLS1naXQgYS9uc2NkL2Nv bm5lY3Rpb25zLmMgYi9uc2NkL2Nvbm5lY3Rpb25zLmMKK2luZGV4IDYxZDE2NzRlYjQuLjUzMWQy ZTgzZGYgMTAwNjQ0CistLS0gYS9uc2NkL2Nvbm5lY3Rpb25zLmMKKysrKyBiL25zY2QvY29ubmVj dGlvbnMuYworQEAgLTIyODQsNyArMjI4NCw4IEBAIG1haW5fbG9vcF9lcG9sbCAoaW50IGVmZCkK KyAJCQkJCSAgICAgc2l6ZW9mIChidWYpKSkgIT0gLTEpCisgCSAgICAgIDsKKyAKKy0JICAgIF9f YnVtcF9ubF90aW1lc3RhbXAgKCk7CisrCSAgICBkYnNbaHN0ZGJdLmhlYWQtPmV4dHJhX2RhdGFb TlNDRF9IU1RfSURYX0NPTkZfVElNRVNUQU1QXQorKwkgICAgICA9IF9fYnVtcF9ubF90aW1lc3Rh bXAgKCk7CisgCSAgfQorICMgZW5kaWYKKyAJZWxzZQorLS0gCisyLjM4LjEKKworCitGcm9tIDlk N2VlYmRlOGYxMzRlYTI1YmRiOWFiNjFiYzc0ZDVlNzFlNDEyODggTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCitGcm9tOiBGbG9yaWFuIFdlaW1lciA8ZndlaW1lckByZWRoYXQuY29tPgorRGF0ZTog VHVlLCAzMCBBdWcgMjAyMiAxMDowMjo0OSArMDIwMAorU3ViamVjdDogW1BBVENIIDIzLzcyXSBy ZXNvbHY6IEFkZCB0c3QtcmVzb2x2LWJ5YWRkciBmb3IgdGVzdGluZyByZXZlcnNlCisgbG9va3Vw CisKK1Jldmlld2VkLWJ5OiBTaWRkaGVzaCBQb3lhcmVrYXIgPHNpZGRoZXNoQHNvdXJjZXdhcmUu b3JnPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgMGI5OTgyOGQ1NGU1ZDFmYzhmNWFkM2Vk ZjViYTI2MmFkMmU5YzViMCkKKy0tLQorIHJlc29sdi9NYWtlZmlsZSAgICAgICAgICAgICAgICAg ICAgICB8ICAgMiArCisgcmVzb2x2L3RzdC1yZXNvbHYtYnlhZGRyLmMgICAgICAgICAgIHwgMzI2 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKworIHJlc29sdi90c3QtcmVzb2x2LW1heWJlX2lu c2VydF9zaWcuaCB8ICAzMiArKysKKyAzIGZpbGVzIGNoYW5nZWQsIDM2MCBpbnNlcnRpb25zKCsp CisgY3JlYXRlIG1vZGUgMTAwNjQ0IHJlc29sdi90c3QtcmVzb2x2LWJ5YWRkci5jCisgY3JlYXRl IG1vZGUgMTAwNjQ0IHJlc29sdi90c3QtcmVzb2x2LW1heWJlX2luc2VydF9zaWcuaAorCitkaWZm IC0tZ2l0IGEvcmVzb2x2L01ha2VmaWxlIGIvcmVzb2x2L01ha2VmaWxlCitpbmRleCA1YjE1MzIx ZjliLi45OGIxMGQ5N2EwIDEwMDY0NAorLS0tIGEvcmVzb2x2L01ha2VmaWxlCisrKysgYi9yZXNv bHYvTWFrZWZpbGUKK0BAIC05MSw2ICs5MSw3IEBAIHRlc3RzICs9IFwKKyAgIHRzdC1yZXNfaG5v ayBcCisgICB0c3QtcmVzb2x2LWJhc2ljIFwKKyAgIHRzdC1yZXNvbHYtYmluYXJ5IFwKKysgIHRz dC1yZXNvbHYtYnlhZGRyIFwKKyAgIHRzdC1yZXNvbHYtZWRucyBcCisgICB0c3QtcmVzb2x2LW5l dHdvcmsgXAorICAgdHN0LXJlc29sdi1ub2FhYWEgXAorQEAgLTI2MCw2ICsyNjEsNyBAQCAkKG9i anBmeCl0c3QtcmVzb2x2LWFpX2lkbi1ub2xpYmlkbjIub3V0OiBcCisgICAkKGdlbi1sb2NhbGVz KSAkKG9ianBmeCl0c3Qtbm8tbGliaWRuMi5zbworICQob2JqcGZ4KXRzdC1yZXNvbHYtYmFzaWM6 ICQob2JqcGZ4KWxpYnJlc29sdi5zbyAkKHNoYXJlZC10aHJlYWQtbGlicmFyeSkKKyAkKG9ianBm eCl0c3QtcmVzb2x2LWJpbmFyeTogJChvYmpwZngpbGlicmVzb2x2LnNvICQoc2hhcmVkLXRocmVh ZC1saWJyYXJ5KQorKyQob2JqcGZ4KXRzdC1yZXNvbHYtYnlhZGRyOiAkKG9ianBmeClsaWJyZXNv bHYuc28gJChzaGFyZWQtdGhyZWFkLWxpYnJhcnkpCisgJChvYmpwZngpdHN0LXJlc29sdi1lZG5z OiAkKG9ianBmeClsaWJyZXNvbHYuc28gJChzaGFyZWQtdGhyZWFkLWxpYnJhcnkpCisgJChvYmpw ZngpdHN0LXJlc29sdi1uZXR3b3JrOiAkKG9ianBmeClsaWJyZXNvbHYuc28gJChzaGFyZWQtdGhy ZWFkLWxpYnJhcnkpCisgJChvYmpwZngpdHN0LXJlc29sdi1yZXNfaW5pdDogJChvYmpwZngpbGli cmVzb2x2LnNvCitkaWZmIC0tZ2l0IGEvcmVzb2x2L3RzdC1yZXNvbHYtYnlhZGRyLmMgYi9yZXNv bHYvdHN0LXJlc29sdi1ieWFkZHIuYworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAw MDAwMDAuLjYyOTllODk4MzcKKy0tLSAvZGV2L251bGwKKysrKyBiL3Jlc29sdi90c3QtcmVzb2x2 LWJ5YWRkci5jCitAQCAtMCwwICsxLDMyNiBAQAorKy8qIFRlc3QgcmV2ZXJzZSBETlMgbG9va3Vw LgorKyAgIENvcHlyaWdodCAoQykgMjAyMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K KysgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKysKKysgICBUaGUg R05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IKKysgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdl bmVyYWwgUHVibGljCisrICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbjsgZWl0aGVyCisrICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9y IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrCisrICAgVGhlIEdOVSBDIExp YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK KysgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZgorKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisrICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgZm9yIG1vcmUgZGV0YWlscy4KKysKKysgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj b3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisrICAgTGljZW5zZSBhbG9uZyB3 aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorKyAgIDxodHRwczovL3d3dy5nbnUu b3JnL2xpY2Vuc2VzLz4uICAqLworKworKyNpbmNsdWRlIDxhcnBhL2luZXQuaD4KKysjaW5jbHVk ZSA8ZXJybm8uaD4KKysjaW5jbHVkZSA8bmV0ZGIuaD4KKysjaW5jbHVkZSA8c3RkYm9vbC5oPgor KyNpbmNsdWRlIDxzdGRpby5oPgorKyNpbmNsdWRlIDxzdGRsaWIuaD4KKysjaW5jbHVkZSA8c3Ry aW5nLmg+CisrI2luY2x1ZGUgPHN1cHBvcnQvY2hlY2suaD4KKysjaW5jbHVkZSA8c3VwcG9ydC9j aGVja19uc3MuaD4KKysjaW5jbHVkZSA8c3VwcG9ydC9uZXh0X3RvX2ZhdWx0Lmg+CisrI2luY2x1 ZGUgPHN1cHBvcnQvcmVzb2x2X3Rlc3QuaD4KKysjaW5jbHVkZSA8c3VwcG9ydC9zdXBwb3J0Lmg+ CisrCisrI2luY2x1ZGUgInRzdC1yZXNvbHYtbWF5YmVfaW5zZXJ0X3NpZy5oIgorKworKy8qIFFO QU1FIGZvcm1hdDoKKysKKysgICBBRERSRVNTRVMuQ05BTUVTLi4uKGxvdHMgb2YgMHMpLi4uOC5i LmQuMC4xLjAuMC4yLmlwNi5hcnBhLgorKyAgIENOQU1FU3xBRERSRVNTRVMuMi4wLjE5Mi5pbi1h ZGRyLWFycGEuCisrCisrICAgRm9yIHRoZSBJUHY0IHJldmVyc2UgbG9va3VwLCB0aGUgYWRkcmVz cyBjb3VudCBpcyBpbiB0aGUgbG93ZXIKKysgICBiaXRzLgorKworKyAgIENOQU1FUyBpcyB0aGUg bGVuZ3RoIG9mIHRoZSBDTkFNRSBjaGFpbiwgQUREUkVTU0VTIGlzIHRoZSBudW1iZXIgb2YKKysg ICBhZGRyZXNzZXMgaW4gdGhlIHJlc3BvbnNlLiAgVGhlIHNwZWNpYWwgdmFsdWUgMTUgbWVhbnMg dGhhdCB0aGVyZQorKyAgIGFyZSBubyBhZGRyZXNzZXMsIGFuZCB0aGUgUkNPREUgaXMgTlhET01B SU4uICAqLworK3N0YXRpYyB2b2lkCisrcmVzcG9uc2UgKGNvbnN0IHN0cnVjdCByZXNvbHZfcmVz cG9uc2VfY29udGV4dCAqY3R4LAorKyAgICAgICAgICBzdHJ1Y3QgcmVzb2x2X3Jlc3BvbnNlX2J1 aWxkZXIgKmIsCisrICAgICAgICAgIGNvbnN0IGNoYXIgKnFuYW1lLCB1aW50MTZfdCBxY2xhc3Ms IHVpbnQxNl90IHF0eXBlKQorK3sKKysgIFRFU1RfQ09NUEFSRSAocWNsYXNzLCBDX0lOKTsKKysg IFRFU1RfQ09NUEFSRSAocXR5cGUsIFRfUFRSKTsKKysKKysgIHVuc2lnbmVkIGludCBhZGRyZXNz ZXMsIGNuYW1lcywgYml0czsKKysgIGNoYXIgKnRhaWw7CisrICBpZiAoc3Ryc3RyIChxbmFtZSwg ImlwNi5hcnBhIikgIT0gTlVMTAorKyAgICAgICYmIHNzY2FuZiAocW5hbWUsICIleC4leC4lbXMi LCAmYWRkcmVzc2VzLCAmY25hbWVzLCAmdGFpbCkgPT0gMykKKysgICAgVEVTVF9DT01QQVJFX1NU UklORyAodGFpbCwgIlwKKyswLjAuMC4wLjAuMC4wLjAuMC4wLjAuMC4wLjAuMC4wLjAuMC4wLjAu MC4wLjguYi5kLjAuMS4wLjAuMi5pcDYuYXJwYSIpOworKyAgZWxzZSBpZiAoc3NjYW5mIChxbmFt ZSwgIiV1LiVtcyIsICZiaXRzLCAmdGFpbCkgPT0gMikKKysgICAgeworKyAgICAgIFRFU1RfQ09N UEFSRV9TVFJJTkcgKHRhaWwsICIyLjAuMTkyLmluLWFkZHIuYXJwYSIpOworKyAgICAgIGFkZHJl c3NlcyA9IGJpdHMgJiAweDBmOworKyAgICAgIGNuYW1lcyA9IGJpdHMgPj4gNDsKKysgICAgfQor KyAgZWxzZQorKyAgICBGQUlMX0VYSVQxICgiaW52YWxpZCBRTkFNRTogJXMiLCBxbmFtZSk7Cisr ICBmcmVlICh0YWlsKTsKKysKKysgIGludCByY29kZTsKKysgIGlmIChhZGRyZXNzZXMgPT0gMTUp CisrICAgIHsKKysgICAgICAvKiBTcGVjaWFsIGNhc2U6IFVzZSBubyBhZGRyZXNzZXMgd2l0aCBO WERPTUFJTiByZXNwb25zZS4gICovCisrICAgICAgcmNvZGUgPSBuc19yX254ZG9tYWluOworKyAg ICAgIGFkZHJlc3NlcyA9IDA7CisrICAgIH0KKysgIGVsc2UKKysgICAgcmNvZGUgPSAwOworKwor KyAgc3RydWN0IHJlc29sdl9yZXNwb25zZV9mbGFncyBmbGFncyA9IHsgLnJjb2RlID0gcmNvZGUg fTsKKysgIHJlc29sdl9yZXNwb25zZV9pbml0IChiLCBmbGFncyk7CisrICByZXNvbHZfcmVzcG9u c2VfYWRkX3F1ZXN0aW9uIChiLCBxbmFtZSwgcWNsYXNzLCBxdHlwZSk7CisrICByZXNvbHZfcmVz cG9uc2Vfc2VjdGlvbiAoYiwgbnNfc19hbik7CisrICBtYXliZV9pbnNlcnRfc2lnIChiLCBxbmFt ZSk7CisrCisrICAvKiBQcm92aWRlIHRoZSByZXF1ZXN0ZWQgbnVtYmVyIG9mIENOQU1FIHJlY29y ZHMuICAqLworKyAgY2hhciAqcHJldmlvdXNfbmFtZSA9IChjaGFyICopIHFuYW1lOworKyAgZm9y IChpbnQgdW5pcXVlID0gMDsgdW5pcXVlIDwgY25hbWVzOyArK3VuaXF1ZSkKKysgICAgeworKyAg ICAgIHJlc29sdl9yZXNwb25zZV9vcGVuX3JlY29yZCAoYiwgcHJldmlvdXNfbmFtZSwgcWNsYXNz LCBUX0NOQU1FLCA2MCk7CisrICAgICAgY2hhciAqbmV3X25hbWUgPSB4YXNwcmludGYgKCIlZC5h bGlhcy5leGFtcGxlIiwgdW5pcXVlKTsKKysgICAgICByZXNvbHZfcmVzcG9uc2VfYWRkX25hbWUg KGIsIG5ld19uYW1lKTsKKysgICAgICByZXNvbHZfcmVzcG9uc2VfY2xvc2VfcmVjb3JkIChiKTsK KysKKysgICAgICBtYXliZV9pbnNlcnRfc2lnIChiLCBxbmFtZSk7CisrCisrICAgICAgaWYgKHBy ZXZpb3VzX25hbWUgIT0gcW5hbWUpCisrICAgICAgICBmcmVlIChwcmV2aW91c19uYW1lKTsKKysg ICAgICBwcmV2aW91c19uYW1lID0gbmV3X25hbWU7CisrICAgIH0KKysKKysgIGZvciAoaW50IHVu aXF1ZSA9IDA7IHVuaXF1ZSA8IGFkZHJlc3NlczsgKyt1bmlxdWUpCisrICAgIHsKKysgICAgICBy ZXNvbHZfcmVzcG9uc2Vfb3Blbl9yZWNvcmQgKGIsIHByZXZpb3VzX25hbWUsIHFjbGFzcywgVF9Q VFIsIDYwKTsKKysgICAgICBjaGFyICpwdHIgPSB4YXNwcmludGYgKCJ1bmlxdWUtJWQuY25hbWVz LSV1LmFkZHJlc3Nlcy0ldS5leGFtcGxlIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHVuaXF1ZSwgY25hbWVzLCBhZGRyZXNzZXMpOworKyAgICAgIHJlc29sdl9yZXNwb25zZV9hZGRf bmFtZSAoYiwgcHRyKTsKKysgICAgICBmcmVlIChwdHIpOworKyAgICAgIHJlc29sdl9yZXNwb25z ZV9jbG9zZV9yZWNvcmQgKGIpOworKyAgICB9CisrCisrICBpZiAocHJldmlvdXNfbmFtZSAhPSBx bmFtZSkKKysgICAgZnJlZSAocHJldmlvdXNfbmFtZSk7CisrfQorKworKy8qIFVzZWQgdG8gY2hl Y2sgdGhhdCBnZXRob3N0YnlhZGRyX3IgZG9lcyBub3Qgd3JpdGUgcGFzdCB0aGUgYnVmZmVyCisr ICAgZW5kLiAgKi8KKytzdGF0aWMgc3RydWN0IHN1cHBvcnRfbmV4dF90b19mYXVsdCBudGY7Cisr CisrLyogUGVyZm9ybSBhIGdldGhvc3RieWFkZHIgY2FsbCBhbmQgY2hlY2sgdGhlIHJlc3VsdC4g ICovCisrc3RhdGljIHZvaWQKKytjaGVja19nZXRob3N0YnlhZGRyIChjb25zdCBjaGFyICphZGRy ZXNzLCBjb25zdCBjaGFyICpleHBlY3RlZCkKKyt7CisrICB1bnNpZ25lZCBjaGFyIGJ5dGVzWzE2 XTsKKysgIHVuc2lnbmVkIGludCBieXRlc2xlbjsKKysgIGludCBmYW1pbHk7CisrICBpZiAoc3Ry Y2hyIChhZGRyZXNzLCAnOicpICE9IE5VTEwpCisrICAgIHsKKysgICAgICBmYW1pbHkgPSBBRl9J TkVUNjsKKysgICAgICBieXRlc2xlbiA9IDE2OworKyAgICB9CisrICBlbHNlCisrICAgIHsKKysg ICAgICBmYW1pbHkgPSBBRl9JTkVUOworKyAgICAgIGJ5dGVzbGVuID0gNDsKKysgICAgfQorKyAg VEVTVF9DT01QQVJFIChpbmV0X3B0b24gKGZhbWlseSwgYWRkcmVzcywgYnl0ZXMpLCAxKTsKKysK KysgIHN0cnVjdCBob3N0ZW50ICplID0gZ2V0aG9zdGJ5YWRkciAoYnl0ZXMsIGJ5dGVzbGVuLCBm YW1pbHkpOworKyAgY2hlY2tfaG9zdGVudCAoYWRkcmVzcywgZSwgZXhwZWN0ZWQpOworKworKyAg aWYgKGUgPT0gTlVMTCkKKysgICAgcmV0dXJuOworKworKyAgLyogVHJ5IGdldGhvc3RieWFkZHJf ciB3aXRoIGluY3JlYXNpbmcgc2l6ZXMgdW50aWwgc3VjY2Vzcy4gIEZpcnN0CisrICAgICBjb21w dXRlIGEgcmVhc29uYWJsZSBtaW5pbXVtIGJ1ZmZlciBzaXplLCB0byBhdm9pZCBtYW55IHBvaW50 bGVzcworKyAgICAgYXR0ZW1wdHMuICAqLworKyAgc2l6ZV90IG1pbmltdW1fc2l6ZSA9IHN0cmxl biAoZS0+aF9uYW1lKTsKKysgIGZvciAoaW50IGkgPSAwOyBlLT5oX2FkZHJfbGlzdFtpXSAhPSBO VUxMOyArK2kpCisrICAgIG1pbmltdW1fc2l6ZSArPSBlLT5oX2xlbmd0aCArIHNpemVvZiAoY2hh ciAqKTsKKysgIGZvciAoaW50IGkgPSAwOyBlLT5oX2FsaWFzZXNbaV0gIT0gTlVMTDsgKytpKQor KyAgICBtaW5pbXVtX3NpemUgKz0gc3RybGVuIChlLT5oX2FsaWFzZXNbaV0pICsgMSArIHNpemVv ZiAoY2hhciAqKTsKKysKKysgIC8qIEdyYWR1YWxseSBpbmNyZWFzZSB0aGUgc2l6ZSB1bnRpbCBz dWNjZXNzLiAgKi8KKysgIGZvciAoc2l6ZV90IHNpemUgPSBtaW5pbXVtX3NpemU7IHNpemUgPCBu dGYubGVuZ3RoOyArK3NpemUpCisrICAgIHsKKysgICAgICBzdHJ1Y3QgaG9zdGVudCByZXN1bHQ7 CisrICAgICAgaW50IGhlcnJubzsKKysgICAgICBpbnQgcmV0ID0gZ2V0aG9zdGJ5YWRkcl9yIChi eXRlcywgYnl0ZXNsZW4sIGZhbWlseSwgJnJlc3VsdCwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBudGYuYnVmZmVyICsgbnRmLmxlbmd0aCAtIHNpemUsIHNpemUsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJmUsICZoZXJybm8pOworKyAgICAgIGlmIChyZXQg PT0gRVJBTkdFKQorKyAgICAgICAgLyogUmV0cnkgd2l0aCBsYXJnZXIgc2l6ZS4gICovCisrICAg ICAgICBURVNUX0NPTVBBUkUgKGhlcnJubywgTkVUREJfSU5URVJOQUwpOworKyAgICAgIGVsc2Ug aWYgKHJldCA9PSAwKQorKyAgICAgICAgeworKyAgICAgICAgIFRFU1RfVkVSSUZZIChzaXplID4g bWluaW11bV9zaXplKTsKKysgICAgICAgICBjaGVja19ob3N0ZW50IChhZGRyZXNzLCBlLCBleHBl Y3RlZCk7CisrICAgICAgICAgcmV0dXJuOworKyAgICAgICAgfQorKyAgICAgIGVsc2UKKysgICAg ICAgIEZBSUxfRVhJVDEgKCJVbmV4cGVjdGVkIGdldGhvc3RieWFkZHJfciBmYWlsdXJlOiAlZCIs IHJldCk7CisrICAgIH0KKysKKysgIEZBSUxfRVhJVDEgKCJnZXRob3N0YnlhZGRyX3IgYWx3YXlz IGZhaWxlZCBmb3I6ICVzIiwgYWRkcmVzcyk7CisrfQorKworKy8qIFBlcmZvcm0gYSBnZXRuYW1l aW5mbyBjYWxsIGFuZCBjaGVjayB0aGUgcmVzdWx0LiAgKi8KKytzdGF0aWMgdm9pZAorK2NoZWNr X2dldG5hbWVpbmZvIChjb25zdCBjaGFyICphZGRyZXNzLCBjb25zdCBjaGFyICpleHBlY3RlZCkK Kyt7CisrICBzdHJ1Y3Qgc29ja2FkZHJfaW4gc2luID0geyB9OworKyAgc3RydWN0IHNvY2thZGRy X2luNiBzaW42ID0geyB9OworKyAgdm9pZCAqc2E7CisrICBzb2NrbGVuX3Qgc2FsZW47CisrICBp ZiAoc3RyY2hyIChhZGRyZXNzLCAnOicpICE9IE5VTEwpCisrICAgIHsKKysgICAgICBzaW42LnNp bjZfZmFtaWx5ID0gQUZfSU5FVDY7CisrICAgICAgVEVTVF9DT01QQVJFIChpbmV0X3B0b24gKEFG X0lORVQ2LCBhZGRyZXNzLCAmc2luNi5zaW42X2FkZHIpLCAxKTsKKysgICAgICBzaW42LnNpbjZf cG9ydCA9IGh0b25zICg4MCk7CisrICAgICAgc2EgPSAmc2luNjsKKysgICAgICBzYWxlbiA9IHNp emVvZiAoc2luNik7CisrICAgIH0KKysgIGVsc2UKKysgICAgeworKyAgICAgIHNpbi5zaW5fZmFt aWx5ID0gQUZfSU5FVDsKKysgICAgICBURVNUX0NPTVBBUkUgKGluZXRfcHRvbiAoQUZfSU5FVCwg YWRkcmVzcywgJnNpbi5zaW5fYWRkciksIDEpOworKyAgICAgIHNpbi5zaW5fcG9ydCA9IGh0b25z ICg4MCk7CisrICAgICAgc2EgPSAmc2luOworKyAgICAgIHNhbGVuID0gc2l6ZW9mIChzaW4pOwor KyAgICB9CisrCisrICBjaGFyIGhvc3RbNjRdOworKyAgY2hhciBzZXJ2aWNlWzY0XTsKKysgIGlu dCByZXQgPSBnZXRuYW1laW5mbyAoc2EsIHNhbGVuLCBob3N0LAorKyAgICAgICAgICAgICAgICAg ICAgICAgICBzaXplb2YgKGhvc3QpLCBzZXJ2aWNlLCBzaXplb2YgKHNlcnZpY2UpLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICBOSV9OQU1FUkVRRCB8IE5JX05VTUVSSUNTRVJWKTsKKysgIHN3 aXRjaCAocmV0KQorKyAgICB7CisrICAgIGNhc2UgMDoKKysgICAgICBURVNUX0NPTVBBUkVfU1RS SU5HIChob3N0LCBleHBlY3RlZCk7CisrICAgICAgVEVTVF9DT01QQVJFX1NUUklORyAoc2Vydmlj ZSwgIjgwIik7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgRUFJX1NZU1RFTToKKysgICAgICBU RVNUX0NPTVBBUkVfU1RSSU5HIChzdHJlcnJvciAoZXJybm8pLCBleHBlY3RlZCk7CisrICAgICAg YnJlYWs7CisrICAgIGRlZmF1bHQ6CisrICAgICAgVEVTVF9DT01QQVJFX1NUUklORyAoZ2FpX3N0 cmVycm9yIChyZXQpLCBleHBlY3RlZCk7CisrICAgIH0KKyt9CisrCisrc3RhdGljIGludAorK2Rv X3Rlc3QgKHZvaWQpCisreworKyAgLyogU29tZSByZWFzb25hYmx5IHVwcGVyIGJvdW5kIGZvciB0 aGUgbWF4aW11bSByZXNwb25zZSBzaXplLiAgKi8KKysgIG50ZiA9IHN1cHBvcnRfbmV4dF90b19m YXVsdF9hbGxvY2F0ZSAoNDA5Nik7CisrCisrICBzdHJ1Y3QgcmVzb2x2X3Rlc3QgKm9iaiA9IHJl c29sdl90ZXN0X3N0YXJ0CisrICAgICgoc3RydWN0IHJlc29sdl9yZWRpcmVjdF9jb25maWcpCisr ICAgICB7CisrICAgICAgIC5yZXNwb25zZV9jYWxsYmFjayA9IHJlc3BvbnNlCisrICAgICB9KTsK KysKKysgIGZvciAoaW50IGRvX2luc2VydF9zaWcgPSAwOyBkb19pbnNlcnRfc2lnIDwgMjsgKytk b19pbnNlcnRfc2lnKQorKyAgICB7CisrICAgICAgaW5zZXJ0X3NpZyA9IGRvX2luc2VydF9zaWc7 CisrCisrICAgICAgLyogTm8gUFRSIHJlY29yZCwgUkNPREU9MC4gICovCisrICAgICAgY2hlY2tf Z2V0aG9zdGJ5YWRkciAoIjE5Mi4wLjIuMCIsICJlcnJvcjogTk9fUkVDT1ZFUllcbiIpOworKyAg ICAgIGNoZWNrX2dldG5hbWVpbmZvICgiMTkyLjAuMi4wIiwgIk5hbWUgb3Igc2VydmljZSBub3Qg a25vd24iKTsKKysgICAgICBjaGVja19nZXRob3N0YnlhZGRyICgiMTkyLjAuMi4xNiIsICJlcnJv cjogTk9fUkVDT1ZFUllcbiIpOworKyAgICAgIGNoZWNrX2dldG5hbWVpbmZvICgiMTkyLjAuMi4x NiIsICJOYW1lIG9yIHNlcnZpY2Ugbm90IGtub3duIik7CisrICAgICAgY2hlY2tfZ2V0aG9zdGJ5 YWRkciAoIjE5Mi4wLjIuMzIiLCAiZXJyb3I6IE5PX1JFQ09WRVJZXG4iKTsKKysgICAgICBjaGVj a19nZXRuYW1laW5mbyAoIjE5Mi4wLjIuMzIiLCAiTmFtZSBvciBzZXJ2aWNlIG5vdCBrbm93biIp OworKyAgICAgIGNoZWNrX2dldGhvc3RieWFkZHIgKCIyMDAxOmRiODo6IiwgImVycm9yOiBOT19S RUNPVkVSWVxuIik7CisrICAgICAgY2hlY2tfZ2V0bmFtZWluZm8gKCIyMDAxOmRiODo6IiwgIk5h bWUgb3Igc2VydmljZSBub3Qga25vd24iKTsKKysgICAgICBjaGVja19nZXRob3N0YnlhZGRyICgi MjAwMTpkYjg6OjEwIiwgImVycm9yOiBOT19SRUNPVkVSWVxuIik7CisrICAgICAgY2hlY2tfZ2V0 bmFtZWluZm8gKCIyMDAxOmRiODo6MTAiLCAiTmFtZSBvciBzZXJ2aWNlIG5vdCBrbm93biIpOwor KyAgICAgIGNoZWNrX2dldGhvc3RieWFkZHIgKCIyMDAxOmRiODo6MjAiLCAiZXJyb3I6IE5PX1JF Q09WRVJZXG4iKTsKKysgICAgICBjaGVja19nZXRuYW1laW5mbyAoIjIwMDE6ZGI4OjoyMCIsICJO YW1lIG9yIHNlcnZpY2Ugbm90IGtub3duIik7CisrCisrICAgICAgLyogTm8gUFRSIHJlY29yZCwg TlhET01BSU4uICAqLworKyAgICAgIGNoZWNrX2dldGhvc3RieWFkZHIgKCIxOTIuMC4yLjE1Iiwg ImVycm9yOiBIT1NUX05PVF9GT1VORFxuIik7CisrICAgICAgY2hlY2tfZ2V0bmFtZWluZm8gKCIx OTIuMC4yLjE1IiwgIk5hbWUgb3Igc2VydmljZSBub3Qga25vd24iKTsKKysgICAgICBjaGVja19n ZXRob3N0YnlhZGRyICgiMTkyLjAuMi4zMSIsICJlcnJvcjogSE9TVF9OT1RfRk9VTkRcbiIpOwor KyAgICAgIGNoZWNrX2dldG5hbWVpbmZvICgiMTkyLjAuMi4zMSIsICJOYW1lIG9yIHNlcnZpY2Ug bm90IGtub3duIik7CisrICAgICAgY2hlY2tfZ2V0aG9zdGJ5YWRkciAoIjE5Mi4wLjIuNDciLCAi ZXJyb3I6IEhPU1RfTk9UX0ZPVU5EXG4iKTsKKysgICAgICBjaGVja19nZXRuYW1laW5mbyAoIjE5 Mi4wLjIuNDciLCAiTmFtZSBvciBzZXJ2aWNlIG5vdCBrbm93biIpOworKyAgICAgIGNoZWNrX2dl dGhvc3RieWFkZHIgKCIyMDAxOmRiODo6ZiIsICJlcnJvcjogSE9TVF9OT1RfRk9VTkRcbiIpOwor KyAgICAgIGNoZWNrX2dldG5hbWVpbmZvICgiMjAwMTpkYjg6OmYiLCAiTmFtZSBvciBzZXJ2aWNl IG5vdCBrbm93biIpOworKyAgICAgIGNoZWNrX2dldGhvc3RieWFkZHIgKCIyMDAxOmRiODo6MWYi LCAiZXJyb3I6IEhPU1RfTk9UX0ZPVU5EXG4iKTsKKysgICAgICBjaGVja19nZXRuYW1laW5mbyAo IjIwMDE6ZGI4OjoxZiIsICJOYW1lIG9yIHNlcnZpY2Ugbm90IGtub3duIik7CisrICAgICAgY2hl Y2tfZ2V0aG9zdGJ5YWRkciAoIjIwMDE6ZGI4OjoyZiIsICJlcnJvcjogSE9TVF9OT1RfRk9VTkRc biIpOworKyAgICAgIGNoZWNrX2dldG5hbWVpbmZvICgiMjAwMTpkYjg6OjJmIiwgIk5hbWUgb3Ig c2VydmljZSBub3Qga25vd24iKTsKKysKKysgICAgICAvKiBBY3R1YWwgcmVzcG9uc2UgZGF0YS4g IE9ubHkgdGhlIGZpcnN0IFBUUiByZWNvcmQgaXMgcmV0dXJuZWQuICAqLworKyAgICAgIGNoZWNr X2dldGhvc3RieWFkZHIgKCIxOTIuMC4yLjEiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICJuYW1lOiB1bmlxdWUtMC5jbmFtZXMtMC5hZGRyZXNzZXMtMS5leGFtcGxlXG4iCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgImFkZHJlc3M6IDE5Mi4wLjIuMVxuIik7CisrICAgICAgY2hl Y2tfZ2V0bmFtZWluZm8gKCIxOTIuMC4yLjEiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAi dW5pcXVlLTAuY25hbWVzLTAuYWRkcmVzc2VzLTEuZXhhbXBsZSIpOworKyAgICAgIGNoZWNrX2dl dGhvc3RieWFkZHIgKCIxOTIuMC4yLjE3IiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAi bmFtZTogdW5pcXVlLTAuY25hbWVzLTEuYWRkcmVzc2VzLTEuZXhhbXBsZVxuIgorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICJhZGRyZXNzOiAxOTIuMC4yLjE3XG4iKTsKKysgICAgICBjaGVj a19nZXRuYW1laW5mbyAoIjE5Mi4wLjIuMTciLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAi dW5pcXVlLTAuY25hbWVzLTEuYWRkcmVzc2VzLTEuZXhhbXBsZSIpOworKyAgICAgIGNoZWNrX2dl dGhvc3RieWFkZHIgKCIxOTIuMC4yLjE4IiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAi bmFtZTogdW5pcXVlLTAuY25hbWVzLTEuYWRkcmVzc2VzLTIuZXhhbXBsZVxuIgorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICJhZGRyZXNzOiAxOTIuMC4yLjE4XG4iKTsKKysgICAgICBjaGVj a19nZXRuYW1laW5mbyAoIjE5Mi4wLjIuMTgiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAi dW5pcXVlLTAuY25hbWVzLTEuYWRkcmVzc2VzLTIuZXhhbXBsZSIpOworKyAgICAgIGNoZWNrX2dl dGhvc3RieWFkZHIgKCIxOTIuMC4yLjMzIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAi bmFtZTogdW5pcXVlLTAuY25hbWVzLTIuYWRkcmVzc2VzLTEuZXhhbXBsZVxuIgorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICJhZGRyZXNzOiAxOTIuMC4yLjMzXG4iKTsKKysgICAgICBjaGVj a19nZXRuYW1laW5mbyAoIjE5Mi4wLjIuMzMiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAi dW5pcXVlLTAuY25hbWVzLTIuYWRkcmVzc2VzLTEuZXhhbXBsZSIpOworKyAgICAgIGNoZWNrX2dl dGhvc3RieWFkZHIgKCIxOTIuMC4yLjM0IiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAi bmFtZTogdW5pcXVlLTAuY25hbWVzLTIuYWRkcmVzc2VzLTIuZXhhbXBsZVxuIgorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICJhZGRyZXNzOiAxOTIuMC4yLjM0XG4iKTsKKysgICAgICBjaGVj a19nZXRuYW1laW5mbyAoIjE5Mi4wLjIuMzQiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAi dW5pcXVlLTAuY25hbWVzLTIuYWRkcmVzc2VzLTIuZXhhbXBsZSIpOworKworKyAgICAgIC8qIFNh bWUgZm9yIElQdjYgYWRkcmVzc2VzLiAgKi8KKysgICAgICBjaGVja19nZXRob3N0YnlhZGRyICgi MjAwMTpkYjg6OjEiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lOiB1bmlxdWUt MC5jbmFtZXMtMC5hZGRyZXNzZXMtMS5leGFtcGxlXG4iCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgImFkZHJlc3M6IDIwMDE6ZGI4OjoxXG4iKTsKKysgICAgICBjaGVja19nZXRuYW1laW5m byAoIjIwMDE6ZGI4OjoxIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgInVuaXF1ZS0wLmNu YW1lcy0wLmFkZHJlc3Nlcy0xLmV4YW1wbGUiKTsKKysgICAgICBjaGVja19nZXRob3N0YnlhZGRy ICgiMjAwMTpkYjg6OjExIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZTogdW5p cXVlLTAuY25hbWVzLTEuYWRkcmVzc2VzLTEuZXhhbXBsZVxuIgorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICJhZGRyZXNzOiAyMDAxOmRiODo6MTFcbiIpOworKyAgICAgIGNoZWNrX2dldG5h bWVpbmZvICgiMjAwMTpkYjg6OjExIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgInVuaXF1 ZS0wLmNuYW1lcy0xLmFkZHJlc3Nlcy0xLmV4YW1wbGUiKTsKKysgICAgICBjaGVja19nZXRob3N0 YnlhZGRyICgiMjAwMTpkYjg6OjEyIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAibmFt ZTogdW5pcXVlLTAuY25hbWVzLTEuYWRkcmVzc2VzLTIuZXhhbXBsZVxuIgorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICJhZGRyZXNzOiAyMDAxOmRiODo6MTJcbiIpOworKyAgICAgIGNoZWNr X2dldG5hbWVpbmZvICgiMjAwMTpkYjg6OjEyIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAg InVuaXF1ZS0wLmNuYW1lcy0xLmFkZHJlc3Nlcy0yLmV4YW1wbGUiKTsKKysgICAgICBjaGVja19n ZXRob3N0YnlhZGRyICgiMjAwMTpkYjg6OjIxIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAibmFtZTogdW5pcXVlLTAuY25hbWVzLTIuYWRkcmVzc2VzLTEuZXhhbXBsZVxuIgorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICJhZGRyZXNzOiAyMDAxOmRiODo6MjFcbiIpOworKyAgICAg IGNoZWNrX2dldG5hbWVpbmZvICgiMjAwMTpkYjg6OjIxIiwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgInVuaXF1ZS0wLmNuYW1lcy0yLmFkZHJlc3Nlcy0xLmV4YW1wbGUiKTsKKysgICAgICBj aGVja19nZXRob3N0YnlhZGRyICgiMjAwMTpkYjg6OjIyIiwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAibmFtZTogdW5pcXVlLTAuY25hbWVzLTIuYWRkcmVzc2VzLTIuZXhhbXBsZVxuIgor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICJhZGRyZXNzOiAyMDAxOmRiODo6MjJcbiIpOwor KyAgICAgIGNoZWNrX2dldG5hbWVpbmZvICgiMjAwMTpkYjg6OjIyIiwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgInVuaXF1ZS0wLmNuYW1lcy0yLmFkZHJlc3Nlcy0yLmV4YW1wbGUiKTsKKysg ICAgfQorKworKyAgcmVzb2x2X3Rlc3RfZW5kIChvYmopOworKworKyAgc3VwcG9ydF9uZXh0X3Rv X2ZhdWx0X2ZyZWUgKCZudGYpOworKyAgcmV0dXJuIDA7CisrfQorKworKyNpbmNsdWRlIDxzdXBw b3J0L3Rlc3QtZHJpdmVyLmM+CitkaWZmIC0tZ2l0IGEvcmVzb2x2L3RzdC1yZXNvbHYtbWF5YmVf aW5zZXJ0X3NpZy5oIGIvcmVzb2x2L3RzdC1yZXNvbHYtbWF5YmVfaW5zZXJ0X3NpZy5oCituZXcg ZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMC4uMDU3MjUyMjVhZgorLS0tIC9kZXYv bnVsbAorKysrIGIvcmVzb2x2L3RzdC1yZXNvbHYtbWF5YmVfaW5zZXJ0X3NpZy5oCitAQCAtMCww ICsxLDMyIEBACisrLyogQ29kZSBzbmlwcGV0IGZvciBvcHRpb25hbGx5IGluc2VydGluZyBpZ25v cmVkIFNJRyByZWNvcmRzIGluIHJlc29sdmVyIHRlc3RzLgorKyAgIENvcHlyaWdodCAoQykgMjAy MiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysgICBUaGlzIGZpbGUgaXMgcGFydCBv ZiB0aGUgR05VIEMgTGlicmFyeS4KKysKKysgICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKysgICBtb2RpZnkgaXQgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisrICAgTGljZW5z ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisr ICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh dGVyIHZlcnNpb24uCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgICBidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V CisrICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysK KysgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdl bmVyYWwgUHVibGljCisrICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBp ZiBub3QsIHNlZQorKyAgIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworKwor Ky8qIFNldCB0byB0cnVlIGZvciBhbiBhbHRlcm5hdGl2ZSBwYXNzIHRoYXQgaW5zZXJ0cyAoaWdu b3JlZCkgU0lHCisrICAgcmVjb3Jkcy4gIFRoaXMgZG9lcyBub3QgYWx0ZXIgdGhlIHJlc3BvbnNl LCBzbyB0aGlzIHByb3BlcnR5IGlzIG5vdAorKyAgIGVuY29kZWQgaW4gdGhlIFFOQU1FLiAgVGhl IHZhcmlhYmxlIG5lZWRzIHRvIGJlIHZvbGF0aWxlIGJlY2F1c2UKKysgICBsZWFmIGF0dHJpYnV0 ZXMgdGVsbCBHQ0MgdGhhdCB0aGUgcmVzcG9uc2UgZnVuY3Rpb24gaXMgbm90CisrICAgY2FsbGVk LiAgKi8KKytzdGF0aWMgdm9sYXRpbGUgYm9vbCBpbnNlcnRfc2lnOworKworK3N0YXRpYyB2b2lk CisrbWF5YmVfaW5zZXJ0X3NpZyAoc3RydWN0IHJlc29sdl9yZXNwb25zZV9idWlsZGVyICpiLCBj b25zdCBjaGFyICpvd25lcikKKyt7CisrICByZXNvbHZfcmVzcG9uc2Vfb3Blbl9yZWNvcmQgKGIs IG93bmVyLCBDX0lOLCBUX1NJRywgNjApOworKyAgcmVzb2x2X3Jlc3BvbnNlX2FkZF9kYXRhIChi LCAiIiwgMSk7CisrICByZXNvbHZfcmVzcG9uc2VfY2xvc2VfcmVjb3JkIChiKTsKKyt9CistLSAK KzIuMzguMQorCisKK0Zyb20gYmZmYzMzZTkwZWQ1N2E0Nzg2YzY3NmRkYTkyZDkzNWUzNjEzZTAz MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEZsb3JpYW4gV2VpbWVyIDxmd2VpbWVy QHJlZGhhdC5jb20+CitEYXRlOiBUdWUsIDMwIEF1ZyAyMDIyIDEwOjAyOjQ5ICswMjAwCitTdWJq ZWN0OiBbUEFUQ0ggMjQvNzJdIHJlc29sdjogQWRkIHRzdC1yZXNvbHYtYWxpYXNlcworCitSZXZp ZXdlZC1ieTogU2lkZGhlc2ggUG95YXJla2FyIDxzaWRkaGVzaEBzb3VyY2V3YXJlLm9yZz4KKyhj aGVycnkgcGlja2VkIGZyb20gY29tbWl0IDg3YWE5OGFhODA2Mjc1NTNhNjZiZGNhZDI3MDFmZDYz MDc3MjM2NDUpCistLS0KKyByZXNvbHYvTWFrZWZpbGUgICAgICAgICAgICAgfCAgIDIgKworIHJl c29sdi90c3QtcmVzb2x2LWFsaWFzZXMuYyB8IDI1NCArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysKKyAyIGZpbGVzIGNoYW5nZWQsIDI1NiBpbnNlcnRpb25zKCspCisgY3JlYXRl IG1vZGUgMTAwNjQ0IHJlc29sdi90c3QtcmVzb2x2LWFsaWFzZXMuYworCitkaWZmIC0tZ2l0IGEv cmVzb2x2L01ha2VmaWxlIGIvcmVzb2x2L01ha2VmaWxlCitpbmRleCA5OGIxMGQ5N2EwLi4wMDM4 YmI3MDI4IDEwMDY0NAorLS0tIGEvcmVzb2x2L01ha2VmaWxlCisrKysgYi9yZXNvbHYvTWFrZWZp bGUKK0BAIC04OSw2ICs4OSw3IEBAIHRlc3RzICs9IFwKKyAgIHRzdC1uc19uYW1lX3B0b24gXAor ICAgdHN0LXJlc19oY29uZl9yZW9yZGVyIFwKKyAgIHRzdC1yZXNfaG5vayBcCisrICB0c3QtcmVz b2x2LWFsaWFzZXMgXAorICAgdHN0LXJlc29sdi1iYXNpYyBcCisgICB0c3QtcmVzb2x2LWJpbmFy eSBcCisgICB0c3QtcmVzb2x2LWJ5YWRkciBcCitAQCAtMjU5LDYgKzI2MCw3IEBAICQob2JqcGZ4 KXRzdC1yZXNvbHYtYWlfaWRuLm91dDogJChnZW4tbG9jYWxlcykKKyAkKG9ianBmeCl0c3QtcmVz b2x2LWFpX2lkbi1sYXRpbjEub3V0OiAkKGdlbi1sb2NhbGVzKQorICQob2JqcGZ4KXRzdC1yZXNv bHYtYWlfaWRuLW5vbGliaWRuMi5vdXQ6IFwKKyAgICQoZ2VuLWxvY2FsZXMpICQob2JqcGZ4KXRz dC1uby1saWJpZG4yLnNvCisrJChvYmpwZngpdHN0LXJlc29sdi1hbGlhc2VzOiAkKG9ianBmeCls aWJyZXNvbHYuc28gJChzaGFyZWQtdGhyZWFkLWxpYnJhcnkpCisgJChvYmpwZngpdHN0LXJlc29s di1iYXNpYzogJChvYmpwZngpbGlicmVzb2x2LnNvICQoc2hhcmVkLXRocmVhZC1saWJyYXJ5KQor ICQob2JqcGZ4KXRzdC1yZXNvbHYtYmluYXJ5OiAkKG9ianBmeClsaWJyZXNvbHYuc28gJChzaGFy ZWQtdGhyZWFkLWxpYnJhcnkpCisgJChvYmpwZngpdHN0LXJlc29sdi1ieWFkZHI6ICQob2JqcGZ4 KWxpYnJlc29sdi5zbyAkKHNoYXJlZC10aHJlYWQtbGlicmFyeSkKK2RpZmYgLS1naXQgYS9yZXNv bHYvdHN0LXJlc29sdi1hbGlhc2VzLmMgYi9yZXNvbHYvdHN0LXJlc29sdi1hbGlhc2VzLmMKK25l dyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwLi5iMjEyODIzYWEwCistLS0gL2Rl di9udWxsCisrKysgYi9yZXNvbHYvdHN0LXJlc29sdi1hbGlhc2VzLmMKK0BAIC0wLDAgKzEsMjU0 IEBACisrLyogVGVzdCBhbGlhcyBoYW5kbGluZyAobWFpbmx5IGZvciBnZXRob3N0YnluYW1lKS4K KysgICBDb3B5cmlnaHQgKEMpIDIwMjIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisr ICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisrCisrICAgVGhlIEdO VSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yCisrICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5l cmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb247IGVpdGhlcgorKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAo YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoZSBHTlUgQyBMaWJy YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisr ICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w eSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYWxvbmcgd2l0 aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKysgICA8aHR0cHM6Ly93d3cuZ251Lm9y Zy9saWNlbnNlcy8+LiAgKi8KKysKKysjaW5jbHVkZSA8YXJyYXlfbGVuZ3RoLmg+CisrI2luY2x1 ZGUgPGFycGEvaW5ldC5oPgorKyNpbmNsdWRlIDxuZXRkYi5oPgorKyNpbmNsdWRlIDxzdGRib29s Lmg+CisrI2luY2x1ZGUgPHN0ZGlvLmg+CisrI2luY2x1ZGUgPHN0ZGxpYi5oPgorKyNpbmNsdWRl IDxzdHJpbmcuaD4KKysjaW5jbHVkZSA8c3VwcG9ydC9jaGVjay5oPgorKyNpbmNsdWRlIDxzdXBw b3J0L2NoZWNrX25zcy5oPgorKyNpbmNsdWRlIDxzdXBwb3J0L3Jlc29sdl90ZXN0Lmg+CisrI2lu Y2x1ZGUgPHN1cHBvcnQvc3VwcG9ydC5oPgorKworKyNpbmNsdWRlICJ0c3QtcmVzb2x2LW1heWJl X2luc2VydF9zaWcuaCIKKysKKysvKiBRTkFNRSBmb3JtYXQ6CisrCisrICAgYUFERFJFU1NFUy1j Q05BTUVTLmV4YW1wbGUubmV0CisrCisrICAgQ05BTUVTIGlzIHRoZSBsZW5ndGggb2YgdGhlIENO QU1FIGNoYWluLCBBRERSRVNTRVMgaXMgdGhlIG51bWJlciBvZgorKyAgIGFkZHJlc3NlcyBpbiB0 aGUgcmVzcG9uc2UuICBUaGUgc3BlY2lhbCB2YWx1ZSAyNTUgbWVhbnMgdGhhdCB0aGVyZQorKyAg IGFyZSBubyBhZGRyZXNzZXMsIGFuZCB0aGUgUkNPREUgaXMgTlhET01BSU4uICAqLworK3N0YXRp YyB2b2lkCisrcmVzcG9uc2UgKGNvbnN0IHN0cnVjdCByZXNvbHZfcmVzcG9uc2VfY29udGV4dCAq Y3R4LAorKyAgICAgICAgICBzdHJ1Y3QgcmVzb2x2X3Jlc3BvbnNlX2J1aWxkZXIgKmIsCisrICAg ICAgICAgIGNvbnN0IGNoYXIgKnFuYW1lLCB1aW50MTZfdCBxY2xhc3MsIHVpbnQxNl90IHF0eXBl KQorK3sKKysgIFRFU1RfQ09NUEFSRSAocWNsYXNzLCBDX0lOKTsKKysgIGlmIChxdHlwZSAhPSBU X0EpCisrICAgIFRFU1RfQ09NUEFSRSAocXR5cGUsIFRfQUFBQSk7CisrCisrICB1bnNpZ25lZCBp bnQgYWRkcmVzc2VzLCBjbmFtZXM7CisrICBjaGFyICp0YWlsOworKyAgaWYgKHNzY2FuZiAocW5h bWUsICJhJXUtYyV1JW1zIiwgJmFkZHJlc3NlcywgJmNuYW1lcywgJnRhaWwpID09IDMpCisrICAg IHsKKysgICAgICBpZiAoc3RyY21wICh0YWlsLCAiLmV4YW1wbGUuY29tIikgPT0gMAorKyAgICAg ICAgICB8fCBzdHJjbXAgKHRhaWwsICIuZXhhbXBsZS5uZXQuZXhhbXBsZS5uZXQiKSA9PSAwCisr ICAgICAgICAgIHx8IHN0cmNtcCAodGFpbCwgIi5leGFtcGxlLm5ldC5leGFtcGxlLmNvbSIpID09 IDApCisrICAgICAgICAvKiBUaGVzZSBvbmx5IGhhcHBlbiBhZnRlciBOWERPTUFJTi4gICovCisr ICAgICAgICBURVNUX1ZFUklGWSAoYWRkcmVzc2VzID09IDI1NSk7CisrICAgICAgZWxzZSBpZiAo c3RyY21wICh0YWlsLCAiLmV4YW1wbGUubmV0IikgIT0gMCkKKysgICAgICAgIEZBSUxfRVhJVDEg KCJpbnZhbGlkIFFOQU1FOiAlcyIsIHFuYW1lKTsKKysgICAgfQorKyAgZnJlZSAodGFpbCk7Cisr CisrICBpbnQgcmNvZGU7CisrICBpZiAoYWRkcmVzc2VzID09IDI1NSkKKysgICAgeworKyAgICAg IC8qIFNwZWNpYWwgY2FzZTogVXNlIG5vIGFkZHJlc3NlcyB3aXRoIE5YRE9NQUlOIHJlc3BvbnNl LiAgKi8KKysgICAgICByY29kZSA9IG5zX3Jfbnhkb21haW47CisrICAgICAgYWRkcmVzc2VzID0g MDsKKysgICAgfQorKyAgZWxzZQorKyAgICByY29kZSA9IDA7CisrCisrICBzdHJ1Y3QgcmVzb2x2 X3Jlc3BvbnNlX2ZsYWdzIGZsYWdzID0geyAucmNvZGUgPSByY29kZSB9OworKyAgcmVzb2x2X3Jl c3BvbnNlX2luaXQgKGIsIGZsYWdzKTsKKysgIHJlc29sdl9yZXNwb25zZV9hZGRfcXVlc3Rpb24g KGIsIHFuYW1lLCBxY2xhc3MsIHF0eXBlKTsKKysgIHJlc29sdl9yZXNwb25zZV9zZWN0aW9uIChi LCBuc19zX2FuKTsKKysgIG1heWJlX2luc2VydF9zaWcgKGIsIHFuYW1lKTsKKysKKysgIC8qIFBy b3ZpZGUgdGhlIHJlcXVlc3RlZCBudW1iZXIgb2YgQ05BTUUgcmVjb3Jkcy4gICovCisrICBjaGFy ICpwcmV2aW91c19uYW1lID0gKGNoYXIgKikgcW5hbWU7CisrICBmb3IgKGludCB1bmlxdWUgPSAw OyB1bmlxdWUgPCBjbmFtZXM7ICsrdW5pcXVlKQorKyAgICB7CisrICAgICAgcmVzb2x2X3Jlc3Bv bnNlX29wZW5fcmVjb3JkIChiLCBwcmV2aW91c19uYW1lLCBxY2xhc3MsIFRfQ05BTUUsIDYwKTsK KysgICAgICBjaGFyICpuZXdfbmFtZSA9IHhhc3ByaW50ZiAoIiVkLmFsaWFzLmV4YW1wbGUiLCB1 bmlxdWUpOworKyAgICAgIHJlc29sdl9yZXNwb25zZV9hZGRfbmFtZSAoYiwgbmV3X25hbWUpOwor KyAgICAgIHJlc29sdl9yZXNwb25zZV9jbG9zZV9yZWNvcmQgKGIpOworKworKyAgICAgIG1heWJl X2luc2VydF9zaWcgKGIsIHFuYW1lKTsKKysKKysgICAgICBpZiAocHJldmlvdXNfbmFtZSAhPSBx bmFtZSkKKysgICAgICAgIGZyZWUgKHByZXZpb3VzX25hbWUpOworKyAgICAgIHByZXZpb3VzX25h bWUgPSBuZXdfbmFtZTsKKysgICAgfQorKworKyAgZm9yIChpbnQgdW5pcXVlID0gMDsgdW5pcXVl IDwgYWRkcmVzc2VzOyArK3VuaXF1ZSkKKysgICAgeworKyAgICAgIHJlc29sdl9yZXNwb25zZV9v cGVuX3JlY29yZCAoYiwgcHJldmlvdXNfbmFtZSwgcWNsYXNzLCBxdHlwZSwgNjApOworKworKyAg ICAgIGlmIChxdHlwZSA9PSBUX0EpCisrICAgICAgICB7CisrICAgICAgICAgIGNoYXIgaXB2NFs0 XSA9IHsxOTIsIDAsIDIsIDEgKyB1bmlxdWV9OworKyAgICAgICAgICByZXNvbHZfcmVzcG9uc2Vf YWRkX2RhdGEgKGIsICZpcHY0LCBzaXplb2YgKGlwdjQpKTsKKysgICAgICAgIH0KKysgICAgICBl bHNlIGlmIChxdHlwZSA9PSBUX0FBQUEpCisrICAgICAgICB7CisrICAgICAgICAgIGNoYXIgaXB2 NlsxNl0gPQorKyAgICAgICAgICAgIHsKKysgICAgICAgICAgICAgIDB4MjAsIDB4MDEsIDB4ZCwg MHhiOCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwKKysgICAgICAgICAgICAgIDEg KyB1bmlxdWUKKysgICAgICAgICAgICB9OworKyAgICAgICAgICByZXNvbHZfcmVzcG9uc2VfYWRk X2RhdGEgKGIsICZpcHY2LCBzaXplb2YgKGlwdjYpKTsKKysgICAgICAgIH0KKysgICAgICByZXNv bHZfcmVzcG9uc2VfY2xvc2VfcmVjb3JkIChiKTsKKysgICAgfQorKworKyAgaWYgKHByZXZpb3Vz X25hbWUgIT0gcW5hbWUpCisrICAgIGZyZWUgKHByZXZpb3VzX25hbWUpOworK30KKysKKytzdGF0 aWMgY2hhciAqCisrbWFrZV9xbmFtZSAoYm9vbCBkb19zZWFyY2gsIGludCBjbmFtZXMsIGludCBh ZGRyZXNzZXMpCisreworKyAgcmV0dXJuIHhhc3ByaW50ZiAoImElZC1jJWQlcyIsCisrICAgICAg ICAgICAgICAgICAgICBhZGRyZXNzZXMsIGNuYW1lcywgZG9fc2VhcmNoID8gIiIgOiAiLmV4YW1w bGUubmV0Iik7CisrfQorKworK3N0YXRpYyB2b2lkCisrY2hlY2tfY25hbWVzX2ZhaWx1cmUgKGlu dCBhZiwgYm9vbCBkb19zZWFyY2gsIGludCBjbmFtZXMsIGludCBhZGRyZXNzZXMpCisreworKyAg Y2hhciAqcW5hbWUgPSBtYWtlX3FuYW1lIChkb19zZWFyY2gsIGNuYW1lcywgYWRkcmVzc2VzKTsK KysKKysgIHN0cnVjdCBob3N0ZW50ICplOworKyAgaWYgKGFmID09IEFGX1VOU1BFQykKKysgICAg ZSA9IGdldGhvc3RieW5hbWUgKHFuYW1lKTsKKysgIGVsc2UKKysgICAgZSA9IGdldGhvc3RieW5h bWUyIChxbmFtZSwgYWYpOworKworKyAgaWYgKGFkZHJlc3NlcyA9PSAwKQorKyAgICBjaGVja19o b3N0ZW50IChxbmFtZSwgZSwgImVycm9yOiBOT19SRUNPVkVSWVxuIik7CisrICBlbHNlCisrICAg IGNoZWNrX2hvc3RlbnQgKHFuYW1lLCBlLCAiZXJyb3I6IEhPU1RfTk9UX0ZPVU5EXG4iKTsKKysK KysgIGZyZWUgKHFuYW1lKTsKKyt9CisrCisrc3RhdGljIHZvaWQKKytjaGVjayAoaW50IGFmLCBi b29sIGRvX3NlYXJjaCwgaW50IGNuYW1lcywgaW50IGFkZHJlc3NlcykKKyt7CisrICBjaGFyICpx bmFtZSA9IG1ha2VfcW5hbWUgKGRvX3NlYXJjaCwgY25hbWVzLCBhZGRyZXNzZXMpOworKyAgY2hh ciAqZnFkbiA9IG1ha2VfcW5hbWUgKGZhbHNlLCBjbmFtZXMsIGFkZHJlc3Nlcyk7CisrCisrICBz dHJ1Y3QgaG9zdGVudCAqZTsKKysgIGlmIChhZiA9PSBBRl9VTlNQRUMpCisrICAgIGUgPSBnZXRo b3N0YnluYW1lIChxbmFtZSk7CisrICBlbHNlCisrICAgIGUgPSBnZXRob3N0YnluYW1lMiAocW5h bWUsIGFmKTsKKysgIGlmIChlID09IE5VTEwpCisrICAgIEZBSUxfRVhJVDEgKCJ1bmV4cGVjdGVk IGZhaWx1cmUgZm9yICVkLCAlZCwgJWQiLCBhZiwgY25hbWVzLCBhZGRyZXNzZXMpOworKworKyAg aWYgKGFmID09IEFGX1VOU1BFQyB8fCBhZiA9PSBBRl9JTkVUKQorKyAgICB7CisrICAgICAgVEVT VF9DT01QQVJFIChlLT5oX2FkZHJ0eXBlLCBBRl9JTkVUKTsKKysgICAgICBURVNUX0NPTVBBUkUg KGUtPmhfbGVuZ3RoLCA0KTsKKysgICAgfQorKyAgZWxzZQorKyAgICB7CisrICAgICAgVEVTVF9D T01QQVJFIChlLT5oX2FkZHJ0eXBlLCBBRl9JTkVUNik7CisrICAgICAgVEVTVF9DT01QQVJFIChl LT5oX2xlbmd0aCwgMTYpOworKyAgICB9CisrCisrICBmb3IgKGludCBpID0gMDsgaSA8IGFkZHJl c3NlczsgKytpKQorKyAgICB7CisrICAgICAgY2hhciBpcHY0WzRdID0gezE5MiwgMCwgMiwgMSAr IGl9OworKyAgICAgIGNoYXIgaXB2NlsxNl0gPQorKyAgICAgICAgeyAweDIwLCAweDAxLCAweGQs IDB4YjgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEgKyBpIH07CisrICAgICAg Y2hhciAqZXhwZWN0ZWQgPSBlLT5oX2FkZHJ0eXBlID09IEFGX0lORVQgPyBpcHY0IDogaXB2NjsK KysgICAgICBURVNUX0NPTVBBUkVfQkxPQiAoZS0+aF9hZGRyX2xpc3RbaV0sIGUtPmhfbGVuZ3Ro LAorKyAgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZCwgZS0+aF9sZW5ndGgpOworKyAg ICB9CisrICBURVNUX1ZFUklGWSAoZS0+aF9hZGRyX2xpc3RbYWRkcmVzc2VzXSA9PSBOVUxMKTsK KysKKysKKysgIGlmIChjbmFtZXMgPT0gMCkKKysgICAgeworKyAgICAgIC8qIFFOQU1FIGlzIGZ1 bGx5IHF1YWxpZmllZC4gICovCisrICAgICAgVEVTVF9DT01QQVJFX1NUUklORyAoZS0+aF9uYW1l LCBmcWRuKTsKKysgICAgICBURVNUX1ZFUklGWSAoZS0+aF9hbGlhc2VzWzBdID09IE5VTEwpOwor KyAgICB9CisrICBlbHNlCisrICAgeworKyAgICAgLyogRnVsbHktcXVhbGlmaWVkIFFOQU1FIGlz IGRlbW90ZWQgdG8gYW4gYWxpYXNlcy4gICovCisrICAgICBURVNUX0NPTVBBUkVfU1RSSU5HIChl LT5oX2FsaWFzZXNbMF0sIGZxZG4pOworKworKyAgICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gY25h bWVzOyArK2kpCisrICAgICAgIHsKKysgICAgICAgICBjaGFyICpleHBlY3RlZCA9IHhhc3ByaW50 ZiAoIiVkLmFsaWFzLmV4YW1wbGUiLCBpIC0gMSk7CisrICAgICAgICAgaWYgKGkgPT0gY25hbWVz KQorKyAgICAgICAgICAgVEVTVF9DT01QQVJFX1NUUklORyAoZS0+aF9uYW1lLCBleHBlY3RlZCk7 CisrICAgICAgICAgZWxzZQorKyAgICAgICAgICAgVEVTVF9DT01QQVJFX1NUUklORyAoZS0+aF9h bGlhc2VzW2ldLCBleHBlY3RlZCk7CisrICAgICAgICAgZnJlZSAoZXhwZWN0ZWQpOworKyAgICAg ICB9CisrICAgICBURVNUX1ZFUklGWSAoZS0+aF9hbGlhc2VzW2NuYW1lc10gPT0gTlVMTCk7Cisr ICAgfQorKworKyAgZnJlZSAoZnFkbik7CisrICBmcmVlIChxbmFtZSk7CisrfQorKworK3N0YXRp YyBpbnQKKytkb190ZXN0ICh2b2lkKQorK3sKKysgIHN0cnVjdCByZXNvbHZfdGVzdCAqb2JqID0g cmVzb2x2X3Rlc3Rfc3RhcnQKKysgICAgKChzdHJ1Y3QgcmVzb2x2X3JlZGlyZWN0X2NvbmZpZykK KysgICAgIHsKKysgICAgICAgLnJlc3BvbnNlX2NhbGxiYWNrID0gcmVzcG9uc2UsCisrICAgICAg IC5zZWFyY2ggPSB7ICJleGFtcGxlLm5ldCIsICJleGFtcGxlLmNvbSIgfSwKKysgICAgIH0pOwor KworKyAgc3RhdGljIGNvbnN0IGludCBmYW1pbGllc1tdID0geyBBRl9VTlNQRUMsIEFGX0lORVQs IEFGX0lORVQ2IH07CisrCisrICBmb3IgKGludCBkb19pbnNlcnRfc2lnID0gMDsgZG9faW5zZXJ0 X3NpZyA8IDI7ICsrZG9faW5zZXJ0X3NpZykKKysgICAgeworKyAgICAgIGluc2VydF9zaWcgPSBk b19pbnNlcnRfc2lnOworKworKyAgICAgIC8qIElmIGRvX3NlYXJjaCBpcyB0cnVlLCBhIGJhcmUg aG9zdCBuYW1lIChmb3IgZXhhbXBsZSwgYTEtYzEpCisrICAgICAgICAgaXMgdXNlZC4gIFRoaXMg ZXhlcmNpc2VzIHNlYXJjaCBwYXRoIHByb2Nlc3NpbmcgYW5kIEZRRE4KKysgICAgICAgICBxdWFs aWZpY2F0aW9uLiAgKi8KKysgICAgICBmb3IgKGludCBkb19zZWFyY2ggPSAwOyBkb19zZWFyY2gg PCAyOyArK2RvX3NlYXJjaCkKKysgICAgICAgIGZvciAoY29uc3QgaW50ICpwYWYgPSBmYW1pbGll czsgcGFmICE9IGFycmF5X2VuZCAoZmFtaWxpZXMpOyArK3BhZikKKysgICAgICAgICAgeworKyAg ICAgICAgICAgIGZvciAoaW50IGNuYW1lcyA9IDA7IGNuYW1lcyA8PSAxMDA7ICsrY25hbWVzKQor KyAgICAgICAgICAgICAgeworKyAgICAgICAgICAgICAgICBjaGVja19jbmFtZXNfZmFpbHVyZSAo KnBhZiwgZG9fc2VhcmNoLCBjbmFtZXMsIDApOworKyAgICAgICAgICAgICAgICAvKiBOb3cgd2l0 aCBOWERPTUFJTiByZXNwb25zZXMuICAqLworKyAgICAgICAgICAgICAgICBjaGVja19jbmFtZXNf ZmFpbHVyZSAoKnBhZiwgZG9fc2VhcmNoLCBjbmFtZXMsIDI1NSk7CisrICAgICAgICAgICAgICB9 CisrCisrICAgICAgICAgICAgZm9yIChpbnQgY25hbWVzID0gMDsgY25hbWVzIDw9IDEwOyArK2Nu YW1lcykKKysgICAgICAgICAgICAgIGZvciAoaW50IGFkZHJlc3NlcyA9IDE7IGFkZHJlc3NlcyA8 PSAxMDsgKythZGRyZXNzZXMpCisrICAgICAgICAgICAgICAgIGNoZWNrICgqcGFmLCBkb19zZWFy Y2gsIGNuYW1lcywgYWRkcmVzc2VzKTsKKysKKysgICAgICAgICAgICAvKiBUaGUgY3VycmVudCBp bXBsZW1lbnRhdGlvbiBpcyBsaW1pdGVkIHRvIDQ3IGFsaWFzZXMuCisrICAgICAgICAgICAgICAg QWRkcmVzc2VzIGRvIG5vdCBoYXZlIHN1Y2ggYSBsaW1pdC4gICovCisrICAgICAgICAgICAgY2hl Y2sgKCpwYWYsIGRvX3NlYXJjaCwgNDcsIDYwKTsKKysgICAgICAgICAgfQorKyAgICB9CisrCisr ICByZXNvbHZfdGVzdF9lbmQgKG9iaik7CisrCisrICByZXR1cm4gMDsKKyt9CisrCisrI2luY2x1 ZGUgPHN1cHBvcnQvdGVzdC1kcml2ZXIuYz4KKy0tIAorMi4zOC4xCisKKworRnJvbSAzYzliNDAw NGUyZGNjYzljYTJhY2UwNzhhMDEwNmY5ZDY4MmZkMWEwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQorRnJvbTogRmxvcmlhbiBXZWltZXIgPGZ3ZWltZXJAcmVkaGF0LmNvbT4KK0RhdGU6IFR1ZSwg MzAgQXVnIDIwMjIgMTA6MDI6NDkgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAyNS83Ml0gcmVzb2x2 OiBBZGQgaW50ZXJuYWwgX19yZXNfYmluYXJ5X2hub2sgZnVuY3Rpb24KKworRHVyaW5nIHBhY2th Z2UgcGFyc2luZywgb25seSB0aGUgYmluYXJ5IHJlcHJlc2VudGF0aW9uIGlzIGF2YWlsYWJsZSwK K2FuZCBpdCBpcyBjb252ZW5pZW50IHRvIGNoZWNrIHRoYXQgZGlyZWN0bHkgZm9yIGNvbmZvcm1h bmNlIHdpdGggaG9zdAorbmFtZSByZXF1aXJlbWVudHMuCisKK1Jldmlld2VkLWJ5OiBTaWRkaGVz aCBQb3lhcmVrYXIgPHNpZGRoZXNoQHNvdXJjZXdhcmUub3JnPgorKGNoZXJyeSBwaWNrZWQgZnJv bSBjb21taXQgYzc5MzI3YmYwMGE0YmU2ZDYwMjU5MjI3YWNjNzhlZjgwZWFkMzYyMikKKy0tLQor IGluY2x1ZGUvcmVzb2x2LmggICAgICAgICAgIHwgIDMgKysrCisgcmVzb2x2L3Jlcy1uYW1lLWNo ZWNraW5nLmMgfCAxNCArKysrKysrKystLS0tLQorIDIgZmlsZXMgY2hhbmdlZCwgMTIgaW5zZXJ0 aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2luY2x1ZGUvcmVzb2x2Lmgg Yi9pbmNsdWRlL3Jlc29sdi5oCitpbmRleCAzNTkwYjZmNDk2Li40ZGJiYWMzODAwIDEwMDY0NAor LS0tIGEvaW5jbHVkZS9yZXNvbHYuaAorKysrIGIvaW5jbHVkZS9yZXNvbHYuaAorQEAgLTcwLDUg KzcwLDggQEAgbGliY19oaWRkZW5fcHJvdG8gKF9fbGliY19yZXNfbmFtZWlucXVlcnkpCisgZXh0 ZXJuIF9fdHlwZW9mIChfX3Jlc19xdWVyaWVzbWF0Y2gpIF9fbGliY19yZXNfcXVlcmllc21hdGNo OworIGxpYmNfaGlkZGVuX3Byb3RvIChfX2xpYmNfcmVzX3F1ZXJpZXNtYXRjaCkKKyAKKysvKiBW YXJpYW50IG9mIHJlc19obm9rIHdoaWNoIG9wZXJhdGVzIG9uIGJpbmFyeSAoYnV0IHVuY29tcHJl c3NlZCkgbmFtZXMuICAqLworK2Jvb2wgX19yZXNfYmluYXJ5X2hub2sgKGNvbnN0IHVuc2lnbmVk IGNoYXIgKmRuKSBhdHRyaWJ1dGVfaGlkZGVuOworKworICMgZW5kaWYgLyogX1JFU09MVl9IXyAm JiAhX0lTT01BQyAqLworICNlbmRpZgorZGlmZiAtLWdpdCBhL3Jlc29sdi9yZXMtbmFtZS1jaGVj a2luZy5jIGIvcmVzb2x2L3Jlcy1uYW1lLWNoZWNraW5nLmMKK2luZGV4IDA3YTQxMmQ4ZmYuLjIx M2VkY2VhZjMgMTAwNjQ0CistLS0gYS9yZXNvbHYvcmVzLW5hbWUtY2hlY2tpbmcuYworKysrIGIv cmVzb2x2L3Jlcy1uYW1lLWNoZWNraW5nLmMKK0BAIC0xMzgsNiArMTM4LDEyIEBAIGJpbmFyeV9s ZWFkaW5nX2Rhc2ggKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmRuKQorICAgcmV0dXJuIGRuWzBdID4g MCAmJiBkblsxXSA9PSAnLSc7CisgfQorIAorK2Jvb2wKKytfX3Jlc19iaW5hcnlfaG5vayAoY29u c3QgdW5zaWduZWQgY2hhciAqZG4pCisreworKyAgcmV0dXJuICFiaW5hcnlfbGVhZGluZ19kYXNo IChkbikgJiYgYmluYXJ5X2hub2sgKGRuKTsKKyt9CisrCisgLyogUmV0dXJuIDEgaWYgcmVzX2hu b2sgaXMgYSB2YWxpZCBob3N0IG5hbWUuICBMYWJlbHMgbXVzdCBvbmx5CisgICAgY29udGFpbiBb MC05YS16QS1aXy1dIGNoYXJhY3RlcnMsIGFuZCB0aGUgbmFtZSBtdXN0IG5vdCBzdGFydCB3aXRo CisgICAgYSAnLScuICBUaGUgbGF0dGVyIGlzIHRvIGF2b2lkIGNvbmZ1c2lvbiB3aXRoIHByb2dy YW0gb3B0aW9ucy4gICovCitAQCAtMTQ1LDExICsxNTEsOSBAQCBpbnQKKyBfX19yZXNfaG5vayAo Y29uc3QgY2hhciAqZG4pCisgeworICAgdW5zaWduZWQgY2hhciBidWZbTlNfTUFYQ0ROQU1FXTsK Ky0gIGlmICghcHJpbnRhYmxlX3N0cmluZyAoZG4pCistICAgICAgfHwgX19uc19uYW1lX3B0b24g KGRuLCBidWYsIHNpemVvZiAoYnVmKSkgPCAwCistICAgICAgfHwgYmluYXJ5X2xlYWRpbmdfZGFz aCAoYnVmKSkKKy0gICAgcmV0dXJuIDA7CistICByZXR1cm4gYmluYXJ5X2hub2sgKGJ1Zik7Cisr ICByZXR1cm4gKHByaW50YWJsZV9zdHJpbmcgKGRuKQorKwkgICYmIF9fbnNfbmFtZV9wdG9uIChk biwgYnVmLCBzaXplb2YgKGJ1ZikpID49IDAKKysJICAmJiBfX3Jlc19iaW5hcnlfaG5vayAoYnVm KSk7CisgfQorIHZlcnNpb25lZF9zeW1ib2wgKGxpYmMsIF9fX3Jlc19obm9rLCByZXNfaG5vaywg R0xJQkNfMl8zNCk7CisgdmVyc2lvbmVkX3N5bWJvbCAobGliYywgX19fcmVzX2hub2ssIF9fbGli Y19yZXNfaG5vaywgR0xJQkNfUFJJVkFURSk7CistLSAKKzIuMzguMQorCisKK0Zyb20gMjBlYzQw YTUxZDNhOGU5NDg3ZjQwZGM5MzUyZDE1OGRlZjIzZWE4YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKK0Zyb206IEZsb3JpYW4gV2VpbWVyIDxmd2VpbWVyQHJlZGhhdC5jb20+CitEYXRlOiBUdWUs IDMwIEF1ZyAyMDIyIDEwOjAyOjQ5ICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggMjYvNzJdIHJlc29s djogQWRkIHRoZSBfX25zX3NhbWViaW5hcnluYW1lIGZ1bmN0aW9uCisKK0R1cmluZyBwYWNrZXQg cGFyc2luZywgb25seSB0aGUgYmluYXJ5IG5hbWUgaXMgYXZhaWxhYmxlLiAgSWYgdGhlIG5hbWUK K2VxdWFsaXR5IGNoZWNrIGlzIHBlcmZvcm1lZCBiZWZvcmUgY29udmVyc2lvbiB0byB0ZXh0LCB3 ZSBjYW4gc29tZXRpbWVzCitza2lwIHRoZSBsYXN0IHN0ZXAuCisKK1Jldmlld2VkLWJ5OiBTaWRk aGVzaCBQb3lhcmVrYXIgPHNpZGRoZXNoQHNvdXJjZXdhcmUub3JnPgorKGNoZXJyeSBwaWNrZWQg ZnJvbSBjb21taXQgMzk0MDg1YTM0ZDI1YTUxNTEzMDE5YTRkYzQxMWFjZDM1MjdmYmQzMykKKy0t LQorIGluY2x1ZGUvYXJwYS9uYW1lc2VyLmggICAgICAgICB8ICA2ICsrKysKKyByZXNvbHYvTWFr ZWZpbGUgICAgICAgICAgICAgICAgfCAgNSArKysKKyByZXNvbHYvbnNfc2FtZWJpbmFyeW5hbWUu YyAgICAgfCA1NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKKyByZXNvbHYvdHN0LW5z X3NhbWViaW5hcnluYW1lLmMgfCA2MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr CisgNCBmaWxlcyBjaGFuZ2VkLCAxMjggaW5zZXJ0aW9ucygrKQorIGNyZWF0ZSBtb2RlIDEwMDY0 NCByZXNvbHYvbnNfc2FtZWJpbmFyeW5hbWUuYworIGNyZWF0ZSBtb2RlIDEwMDY0NCByZXNvbHYv dHN0LW5zX3NhbWViaW5hcnluYW1lLmMKKworZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXJwYS9uYW1l c2VyLmggYi9pbmNsdWRlL2FycGEvbmFtZXNlci5oCitpbmRleCA1M2YxZGJjN2MzLi5iYjFkZWRl MTg3IDEwMDY0NAorLS0tIGEvaW5jbHVkZS9hcnBhL25hbWVzZXIuaAorKysrIGIvaW5jbHVkZS9h cnBhL25hbWVzZXIuaAorQEAgLTU1LDYgKzU1LDEyIEBAIGludCBfX25zX25hbWVfbnRvcCAoY29u c3QgdW5zaWduZWQgY2hhciAqLCBjaGFyICosIHNpemVfdCkgX19USFJPVzsKKyBpbnQgX19uc19u YW1lX3VucGFjayAoY29uc3QgdW5zaWduZWQgY2hhciAqLCBjb25zdCB1bnNpZ25lZCBjaGFyICos CisgCQkgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90 KSBfX1RIUk9XOworIAorKy8qIExpa2UgbnNfc2FtZW5hbWUsIGJ1dCBmb3IgdW5jb21wcmVzc2Vk IGJpbmFyeSBuYW1lcy4gIFJldHVybiB0cnVlCisrICAgaWYgdGhlIHR3byBhcmd1bWVudHMgY29t cGFyZSBhcmUgZXF1YWwgYXMgY2FzZS1pbnNlbnNpdGl2ZSBkb21haW4KKysgICBuYW1lcy4gICov CisrX0Jvb2wgX19uc19zYW1lYmluYXJ5bmFtZSAoY29uc3QgdW5zaWduZWQgY2hhciAqLCBjb25z dCB1bnNpZ25lZCBjaGFyICopCisrICBhdHRyaWJ1dGVfaGlkZGVuOworKworICNkZWZpbmUgbnNf bXNnX2dldGZsYWcoaGFuZGxlLCBmbGFnKSBcCisgICAoKChoYW5kbGUpLl9mbGFncyAmIF9uc19m bGFnZGF0YVtmbGFnXS5tYXNrKSA+PiBfbnNfZmxhZ2RhdGFbZmxhZ10uc2hpZnQpCisgCitkaWZm IC0tZ2l0IGEvcmVzb2x2L01ha2VmaWxlIGIvcmVzb2x2L01ha2VmaWxlCitpbmRleCAwMDM4YmI3 MDI4Li5lYzYxYWQwN2JkIDEwMDY0NAorLS0tIGEvcmVzb2x2L01ha2VmaWxlCisrKysgYi9yZXNv bHYvTWFrZWZpbGUKK0BAIC00Niw2ICs0Niw3IEBAIHJvdXRpbmVzIDo9IFwKKyAgIG5zX25hbWVf c2tpcCBcCisgICBuc19uYW1lX3VuY29tcHJlc3MgXAorICAgbnNfbmFtZV91bnBhY2sgXAorKyAg bnNfc2FtZWJpbmFyeW5hbWUgXAorICAgbnNfc2FtZW5hbWUgXAorICAgbnNhcF9hZGRyIFwKKyAg IG5zc19kbnNfZnVuY3Rpb25zIFwKK0BAIC0xMDYsNiArMTA3LDEwIEBAIHRlc3RzICs9IFwKKyB0 ZXN0cy1pbnRlcm5hbCArPSB0c3QtcmVzb2x2LXR4bmlkLWNvbGxpc2lvbgorIHRlc3RzLXN0YXRp YyArPSB0c3QtcmVzb2x2LXR4bmlkLWNvbGxpc2lvbgorIAorKyMgTGlrZXdpc2UgZm9yIF9fbnNf c2FtZWJpbmFyeW5hbWUuCisrdGVzdHMtaW50ZXJuYWwgKz0gdHN0LW5zX3NhbWViaW5hcnluYW1l CisrdGVzdHMtc3RhdGljICs9IHRzdC1uc19zYW1lYmluYXJ5bmFtZQorKworICMgVGhlc2UgdGVz dHMgbmVlZCBsaWJkbC4KKyBpZmVxICh5ZXMsJChidWlsZC1zaGFyZWQpKQorIHRlc3RzICs9IFwK K2RpZmYgLS1naXQgYS9yZXNvbHYvbnNfc2FtZWJpbmFyeW5hbWUuYyBiL3Jlc29sdi9uc19zYW1l YmluYXJ5bmFtZS5jCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMC4uOWE0 N2Q4ZTk3YQorLS0tIC9kZXYvbnVsbAorKysrIGIvcmVzb2x2L25zX3NhbWViaW5hcnluYW1lLmMK K0BAIC0wLDAgKzEsNTUgQEAKKysvKiBDb21wYXJlIHR3byBiaW5hcnkgZG9tYWluIG5hbWVzIGZv ciBxdWFsaXR5LgorKyAgIENvcHlyaWdodCAoQykgMjAyMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4KKysgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKysK KysgICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp YnV0ZSBpdCBhbmQvb3IKKysgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg TGVzc2VyIEdlbmVyYWwgUHVibGljCisrICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisrICAgdmVyc2lvbiAyLjEgb2YgdGhlIExp Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrCisrICAgVGhl IEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwKKysgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg aW1wbGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisrICAgTGVzc2VyIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysKKysgICBZb3Ugc2hvdWxkIGhhdmUgcmVj ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisrICAgTGljZW5z ZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorKyAgIDxodHRwczov L3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworKworKyNpbmNsdWRlIDxhcnBhL25hbWVzZXIu aD4KKysjaW5jbHVkZSA8c3RkYm9vbC5oPgorKworKy8qIENvbnZlcnQgQVNDSUkgbGV0dGVycyB0 byB1cHBlciBjYXNlLiAgKi8KKytzdGF0aWMgaW5saW5lIGludAorK2FzY2lpX3RvdXBwZXIgKHVu c2lnbmVkIGNoYXIgY2gpCisreworKyAgaWYgKGNoID49ICdhJyAmJiBjaCA8PSAneicpCisrICAg IHJldHVybiBjaCAtICdhJyArICdBJzsKKysgIGVsc2UKKysgICAgcmV0dXJuIGNoOworK30KKysK Kytib29sCisrX19uc19zYW1lYmluYXJ5bmFtZSAoY29uc3QgdW5zaWduZWQgY2hhciAqYSwgY29u c3QgdW5zaWduZWQgY2hhciAqYikKKyt7CisrICB3aGlsZSAoKmEgIT0gMCAmJiAqYiAhPSAwKQor KyAgICB7CisrICAgICAgaWYgKCphICE9ICpiKQorKyAgICAgICAgLyogRGlmZmVyZW50IGxhYmVs IGxlbmd0aC4gICovCisrICAgICAgICByZXR1cm4gZmFsc2U7CisrICAgICAgaW50IGxhYmVsbGVu ID0gKmE7CisrICAgICAgKythOworKyAgICAgICsrYjsKKysgICAgICBmb3IgKGludCBpID0gMDsg aSA8IGxhYmVsbGVuOyArK2kpCisrICAgICAgICB7CisrICAgICAgICAgIGlmICgqYSAhPSAqYiAm JiBhc2NpaV90b3VwcGVyICgqYSkgIT0gYXNjaWlfdG91cHBlciAoKmIpKQorKyAgICAgICAgICAg IC8qIERpZmZlcmVudCBjaGFyYWN0ZXIgaW4gbGFiZWwuICAqLworKyAgICAgICAgICAgIHJldHVy biBmYWxzZTsKKysgICAgICAgICAgKythOworKyAgICAgICAgICArK2I7CisrICAgICAgICB9Cisr ICAgIH0KKysKKysgIC8qIE1hdGNoIGlmIGJvdGggbmFtZXMgYXJlIGF0IHRoZSByb290IGxhYmVs LiAgKi8KKysgIHJldHVybiAqYSA9PSAwICYmICpiID09IDA7CisrfQorZGlmZiAtLWdpdCBhL3Jl c29sdi90c3QtbnNfc2FtZWJpbmFyeW5hbWUuYyBiL3Jlc29sdi90c3QtbnNfc2FtZWJpbmFyeW5h bWUuYworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAuLmIwNmFjNjEwYjQK Ky0tLSAvZGV2L251bGwKKysrKyBiL3Jlc29sdi90c3QtbnNfc2FtZWJpbmFyeW5hbWUuYworQEAg LTAsMCArMSw2MiBAQAorKy8qIFRlc3QgdGhlIF9fbnNfc2FtZWJpbmFyeW5hbWUgZnVuY3Rpb24u CisrICAgQ29weXJpZ2h0IChDKSAyMDIyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgor KyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5LgorKworKyAgIFRoZSBH TlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu ZC9vcgorKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu ZXJhbCBQdWJsaWMKKysgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKysgICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3Ig KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysKKysgICBUaGUgR05VIEMgTGli cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor KyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh cnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKysgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv cHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKysgICBMaWNlbnNlIGFsb25nIHdp dGggdGhlIEdOVSBDIExpYnJhcnk7IGlmIG5vdCwgc2VlCisrICAgPGh0dHBzOi8vd3d3LmdudS5v cmcvbGljZW5zZXMvPi4gICovCisrCisrI2luY2x1ZGUgPGFycGEvbmFtZXNlci5oPgorKyNpbmNs dWRlIDxhcnJheV9sZW5ndGguaD4KKysjaW5jbHVkZSA8c3RkYm9vbC5oPgorKyNpbmNsdWRlIDxz dGRpby5oPgorKyNpbmNsdWRlIDxzdXBwb3J0L2NoZWNrLmg+CisrCisrLyogRmlyc3QgY2hhcmFj dGVyIGRlbm90ZXMgdGhlIGNvbXBhcmlzb24gZ3JvdXA6IEFsbCBuYW1lcyB3aXRoIHRoZQorKyAg IHNhbWUgZmlyc3QgY2hhcmFjdGVyIGFyZSBleHBlY3RlZCB0byBjb21wYXJlIGVxdWFsLiAgKi8K KytzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgY2FzZXNbXSA9CisrICB7CisrICAgICIgIiwKKysg ICAgIjFcMDAxYSIsICIxXDAwMUEiLAorKyAgICAiMlwwMDJhYiIsICIyXDAwMmFCIiwgIjJcMDAy QWIiLCAiMlwwMDJBQiIsCisrICAgICIzXDAwMWFcMDAyYWIiLCAiM1wwMDFBXDAwMmFiIiwKKysg ICAgIndcMDAzd3d3XDAwN2V4YW1wbGVcMDAzY29tIiwgIndcMDAzV3d3XDAwN0V4YW1wbGVcMDAz Q29tIiwKKysgICAgIndcMDAzV1dXXDAwN0VYQU1QTEVcMDAzQ09NIiwKKysgICAgIldcMDAzV1dX IiwgIldcMDAzd3d3IiwKKysgIH07CisrCisrc3RhdGljIGludAorK2RvX3Rlc3QgKHZvaWQpCisr eworKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcnJheV9sZW5ndGggKGNhc2VzKTsgKytpKQorKyAg ICBmb3IgKGludCBqID0gMDsgaiA8IGFycmF5X2xlbmd0aCAoY2FzZXMpOyArK2opCisrICAgICAg eworKyAgICAgICAgdW5zaWduZWQgY2hhciAqYSA9ICh1bnNpZ25lZCBjaGFyICopICZjYXNlc1tp XVsxXTsKKysgICAgICAgIHVuc2lnbmVkIGNoYXIgKmIgPSAodW5zaWduZWQgY2hhciAqKSAmY2Fz ZXNbal1bMV07CisrICAgICAgICBib29sIGFjdHVhbCA9IF9fbnNfc2FtZWJpbmFyeW5hbWUgKGEs IGIpOworKyAgICAgICAgYm9vbCBleHBlY3RlZCA9IGNhc2VzW2ldWzBdID09IGNhc2VzW2pdWzBd OworKyAgICAgICAgaWYgKGFjdHVhbCAhPSBleHBlY3RlZCkKKysgICAgICAgICAgeworKyAgICAg ICAgICAgIGNoYXIgYTFbTlNfTUFYRE5BTUVdOworKyAgICAgICAgICAgIFRFU1RfVkVSSUZZIChu c19uYW1lX250b3AgKGEsIGExLCBzaXplb2YgKGExKSkgPiAwKTsKKysgICAgICAgICAgICBjaGFy IGIxW05TX01BWEROQU1FXTsKKysgICAgICAgICAgICBURVNUX1ZFUklGWSAobnNfbmFtZV9udG9w IChiLCBiMSwgc2l6ZW9mIChiMSkpID4gMCk7CisrICAgICAgICAgICAgcHJpbnRmICgiZXJyb3I6 IFwiJXNcIiBcIiVzXCI6IGV4cGVjdGVkICVzXG4iLAorKyAgICAgICAgICAgICAgICAgICAgYTEs IGIxLCBleHBlY3RlZCA/ICJlcXVhbCIgOiAidW5xdWVhbCIpOworKyAgICAgICAgICAgIHN1cHBv cnRfcmVjb3JkX2ZhaWx1cmUgKCk7CisrICAgICAgICAgIH0KKysgICAgICB9CisrICByZXR1cm4g MDsKKyt9CisrCisrI2luY2x1ZGUgPHN1cHBvcnQvdGVzdC1kcml2ZXIuYz4KKy0tIAorMi4zOC4x CisKKworRnJvbSBhZGI2OWY4ZmZlODNkYjVkNDc1ODY4YjQyOTk2YmM3MGRlOGNmZjc3IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRmxvcmlhbiBXZWltZXIgPGZ3ZWltZXJAcmVkaGF0 LmNvbT4KK0RhdGU6IFR1ZSwgMzAgQXVnIDIwMjIgMTA6MDI6NDkgKzAyMDAKK1N1YmplY3Q6IFtQ QVRDSCAyNy83Ml0gcmVzb2x2OiBBZGQgaW50ZXJuYWwgX19uc19uYW1lX2xlbmd0aF91bmNvbXBy ZXNzZWQKKyBmdW5jdGlvbgorCitUaGlzIGZ1bmN0aW9uIGlzIHVzZWZ1bCBmb3IgY2hlY2tpbmcg dGhhdCB0aGUgcXVlc3Rpb24gbmFtZSBpcwordW5jb21wcmVzc2VkIChhcyBpdCBzaG91bGQgYmUp LgorCitSZXZpZXdlZC1ieTogU2lkZGhlc2ggUG95YXJla2FyIDxzaWRkaGVzaEBzb3VyY2V3YXJl Lm9yZz4KKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDc4YjFhNGYwZTQ5MDY0ZTVkZmI2ODZj N2NkODdiZDRkZjI2NDBiMjkpCistLS0KKyBpbmNsdWRlL2FycGEvbmFtZXNlci5oICAgICAgICAg ICAgICAgICAgIHwgICA4ICsrCisgcmVzb2x2L01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgNSArCisgcmVzb2x2L25zX25hbWVfbGVuZ3RoX3VuY29tcHJlc3NlZC5jICAgICB8 ICA3MiArKysrKysrKysrKysKKyByZXNvbHYvdHN0LW5zX25hbWVfbGVuZ3RoX3VuY29tcHJlc3Nl ZC5jIHwgMTM1ICsrKysrKysrKysrKysrKysrKysrKysrCisgNCBmaWxlcyBjaGFuZ2VkLCAyMjAg aW5zZXJ0aW9ucygrKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCByZXNvbHYvbnNfbmFtZV9sZW5ndGhf dW5jb21wcmVzc2VkLmMKKyBjcmVhdGUgbW9kZSAxMDA2NDQgcmVzb2x2L3RzdC1uc19uYW1lX2xl bmd0aF91bmNvbXByZXNzZWQuYworCitkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hcnBhL25hbWVzZXIu aCBiL2luY2x1ZGUvYXJwYS9uYW1lc2VyLmgKK2luZGV4IGJiMWRlZGUxODcuLjZlNDgwOGYwMGQg MTAwNjQ0CistLS0gYS9pbmNsdWRlL2FycGEvbmFtZXNlci5oCisrKysgYi9pbmNsdWRlL2FycGEv bmFtZXNlci5oCitAQCAtOTUsNSArOTUsMTMgQEAgbGliY19oaWRkZW5fcHJvdG8gKF9fbnNfbmFt ZV91bnBhY2spCisgZXh0ZXJuIF9fdHlwZW9mIChuc19zYW1lbmFtZSkgX19saWJjX25zX3NhbWVu YW1lOworIGxpYmNfaGlkZGVuX3Byb3RvIChfX2xpYmNfbnNfc2FtZW5hbWUpCisgCisrLyogUGFj a2V0IHBhcnNlciBoZWxwZXIgZnVuY3Rpb25zLiAgKi8KKysKKysvKiBWZXJpZnkgdGhhdCBQIHBv aW50cyB0byBhbiB1bmNvbXByZXNzZWQgZG9tYWluIG5hbWUgaW4gd2lyZSBmb3JtYXQuCisrICAg T24gc3VjY2VzcywgcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIGVuY29kZWQgbmFtZSwgaW5jbHVk aW5nIHRoZQorKyAgIHRlcm1pbmF0aW5nIG51bGwgYnl0ZS4gIE9uIGZhaWx1cmUsIHJldHVybiAt MSBhbmQgc2V0IGVycm5vLiAgRU9NCisrICAgbXVzdCBwb2ludCBvbmUgcGFzdCB0aGUgbGFzdCBi eXRlIGluIHRoZSBwYWNrZXQuICAqLworK2ludCBfX25zX25hbWVfbGVuZ3RoX3VuY29tcHJlc3Nl ZCAoY29uc3QgdW5zaWduZWQgY2hhciAqcCwKKysJCQkJICAgY29uc3QgdW5zaWduZWQgY2hhciAq ZW9tKSBhdHRyaWJ1dGVfaGlkZGVuOworICMgZW5kaWYgLyogIV9JU09NQUMgKi8KKyAjZW5kaWYK K2RpZmYgLS1naXQgYS9yZXNvbHYvTWFrZWZpbGUgYi9yZXNvbHYvTWFrZWZpbGUKK2luZGV4IGVj NjFhZDA3YmQuLmJmMjg4MjVmNjAgMTAwNjQ0CistLS0gYS9yZXNvbHYvTWFrZWZpbGUKKysrKyBi L3Jlc29sdi9NYWtlZmlsZQorQEAgLTQwLDYgKzQwLDcgQEAgcm91dGluZXMgOj0gXAorICAgaW5l dF9wdG9uIFwKKyAgIG5zX21ha2VjYW5vbiBcCisgICBuc19uYW1lX2NvbXByZXNzIFwKKysgIG5z X25hbWVfbGVuZ3RoX3VuY29tcHJlc3NlZCBcCisgICBuc19uYW1lX250b3AgXAorICAgbnNfbmFt ZV9wYWNrIFwKKyAgIG5zX25hbWVfcHRvbiBcCitAQCAtMTExLDYgKzExMiwxMCBAQCB0ZXN0cy1z dGF0aWMgKz0gdHN0LXJlc29sdi10eG5pZC1jb2xsaXNpb24KKyB0ZXN0cy1pbnRlcm5hbCArPSB0 c3QtbnNfc2FtZWJpbmFyeW5hbWUKKyB0ZXN0cy1zdGF0aWMgKz0gdHN0LW5zX3NhbWViaW5hcnlu YW1lCisgCisrIyBMaWtld2lzZSBmb3IgX19uc19uYW1lX2xlbmd0aF91bmNvbXByZXNzZWQuCisr dGVzdHMtaW50ZXJuYWwgKz0gdHN0LW5zX25hbWVfbGVuZ3RoX3VuY29tcHJlc3NlZAorK3Rlc3Rz LXN0YXRpYyArPSB0c3QtbnNfbmFtZV9sZW5ndGhfdW5jb21wcmVzc2VkCisrCisgIyBUaGVzZSB0 ZXN0cyBuZWVkIGxpYmRsLgorIGlmZXEgKHllcywkKGJ1aWxkLXNoYXJlZCkpCisgdGVzdHMgKz0g XAorZGlmZiAtLWdpdCBhL3Jlc29sdi9uc19uYW1lX2xlbmd0aF91bmNvbXByZXNzZWQuYyBiL3Jl c29sdi9uc19uYW1lX2xlbmd0aF91bmNvbXByZXNzZWQuYworbmV3IGZpbGUgbW9kZSAxMDA2NDQK K2luZGV4IDAwMDAwMDAwMDAuLjUxMjk2YjQ3ZWYKKy0tLSAvZGV2L251bGwKKysrKyBiL3Jlc29s di9uc19uYW1lX2xlbmd0aF91bmNvbXByZXNzZWQuYworQEAgLTAsMCArMSw3MiBAQAorKy8qIFNr aXAgb3ZlciBhbiB1bmNvbXByZXNzZWQgbmFtZSBpbiB3aXJlIGZvcm1hdC4KKysgICBDb3B5cmln aHQgKEMpIDIwMjIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrICAgVGhpcyBmaWxl IGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkg aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisrICAgbW9k aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwor KyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247 IGVpdGhlcgorKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp b24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0IFdJVEhP VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysg ICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT ZWUgdGhlIEdOVQorKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl dGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V IExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMg TGlicmFyeTsgaWYgbm90LCBzZWUKKysgICA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+ LiAgKi8KKysKKysjaW5jbHVkZSA8YXJwYS9uYW1lc2VyLmg+CisrI2luY2x1ZGUgPGVycm5vLmg+ CisrI2luY2x1ZGUgPHN0ZGJvb2wuaD4KKysKKytpbnQKKytfX25zX25hbWVfbGVuZ3RoX3VuY29t cHJlc3NlZCAoY29uc3QgdW5zaWduZWQgY2hhciAqcCwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmVvbSkKKyt7CisrICBjb25zdCB1bnNpZ25l ZCBjaGFyICpzdGFydCA9IHA7CisrCisrICB3aGlsZSAodHJ1ZSkKKysgICAgeworKyAgICAgIGlm IChwID09IGVvbSkKKysgICAgICAgIHsKKysgICAgICAgICAgLyogVHJ1bmNhdGVkIHBhY2tldDog bm8gcm9vbSBmb3IgbGFiZWwgbGVuZ3RoLiAgKi8KKysgICAgICAgICAgX19zZXRfZXJybm8gKEVN U0dTSVpFKTsKKysgICAgICAgICAgcmV0dXJuIC0xOworKyAgICAgICAgfQorKworKyAgICAgIHVu c2lnbmVkIGNoYXIgYiA9ICpwOworKyAgICAgICsrcDsKKysgICAgICBpZiAoYiA9PSAwKQorKyAg ICAgICAgeworKyAgICAgICAgICAvKiBSb290IGxhYmVsLiAgKi8KKysgICAgICAgICAgc2l6ZV90 IGxlbmd0aCA9IHAgLSBzdGFydDsKKysgICAgICAgICAgaWYgKGxlbmd0aCA+IE5TX01BWENETkFN RSkKKysgICAgICAgICAgICB7CisrICAgICAgICAgICAgICAvKiBEb21haW4gbmFtZSB0b28gbG9u Zy4gICovCisrICAgICAgICAgICAgICBfX3NldF9lcnJubyAoRU1TR1NJWkUpOworKyAgICAgICAg ICAgICAgcmV0dXJuIC0xOworKyAgICAgICAgICAgIH0KKysgICAgICAgICAgcmV0dXJuIGxlbmd0 aDsKKysgICAgICAgIH0KKysKKysgICAgICBpZiAoYiA8PSA2MykKKysgICAgICAgIHsKKysgICAg ICAgICAgLyogUmVndWxhciBsYWJlbC4gICovCisrICAgICAgICAgIGlmIChiIDw9IGVvbSAtIHAp CisrICAgICAgICAgICAgcCArPSBiOworKyAgICAgICAgICBlbHNlCisrICAgICAgICAgICAgewor KyAgICAgICAgICAgICAgLyogVHJ1bmNhdGVkIHBhY2tldDogbGFiZWwgaW5jb21wbGV0ZS4gICov CisrICAgICAgICAgICAgICBfX3NldF9lcnJubyAoRU1TR1NJWkUpOworKyAgICAgICAgICAgICAg cmV0dXJuIC0xOworKyAgICAgICAgICAgIH0KKysgICAgICAgIH0KKysgICAgICBlbHNlCisrICAg ICAgICB7CisrICAgICAgICAgIC8qIENvbXByZXNzaW9uIHJlZmVyZW5jZSBvciBjb3JydXB0ZWQg bGFiZWwgbGVuZ3RoLiAgKi8KKysgICAgICAgICAgX19zZXRfZXJybm8gKEVNU0dTSVpFKTsKKysg ICAgICAgICAgcmV0dXJuIC0xOworKyAgICAgICAgfQorKyAgICB9CisrfQorZGlmZiAtLWdpdCBh L3Jlc29sdi90c3QtbnNfbmFtZV9sZW5ndGhfdW5jb21wcmVzc2VkLmMgYi9yZXNvbHYvdHN0LW5z X25hbWVfbGVuZ3RoX3VuY29tcHJlc3NlZC5jCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXgg MDAwMDAwMDAwMC4uYzRhMjkwNGRiNworLS0tIC9kZXYvbnVsbAorKysrIGIvcmVzb2x2L3RzdC1u c19uYW1lX2xlbmd0aF91bmNvbXByZXNzZWQuYworQEAgLTAsMCArMSwxMzUgQEAKKysvKiBUZXN0 IF9fbnNfbmFtZV9sZW5ndGhfdW5jb21wcmVzc2VkLgorKyAgIENvcHlyaWdodCAoQykgMjAyMiBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0 aGUgR05VIEMgTGlicmFyeS4KKysKKysgICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKysgICBtb2RpZnkgaXQgdW5kZXIg dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisrICAgTGljZW5zZSBh cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisrICAg dmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy IHZlcnNpb24uCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFO VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisr ICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysKKysg ICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy YWwgUHVibGljCisrICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBu b3QsIHNlZQorKyAgIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworKworKyNp bmNsdWRlIDxhcnBhL25hbWVzZXIuaD4KKysjaW5jbHVkZSA8YXJyYXlfbGVuZ3RoLmg+CisrI2lu Y2x1ZGUgPGVycm5vLmg+CisrI2luY2x1ZGUgPHN0ZGlvLmg+CisrI2luY2x1ZGUgPHN1cHBvcnQv Y2hlY2suaD4KKysjaW5jbHVkZSA8c3VwcG9ydC9uZXh0X3RvX2ZhdWx0Lmg+CisrCisrLyogUmVm ZXJlbmNlIGltcGxlbWVudGF0aW9uIGJhc2VkIG9uIG90aGVyIGJ1aWxkaW5nIGJsb2Nrcy4gICov Cisrc3RhdGljIGludAorK3JlZmVyZW5jZV9sZW5ndGggKGNvbnN0IHVuc2lnbmVkIGNoYXIgKnAs IGNvbnN0IHVuc2lnbmVkIGNoYXIgKmVvbSkKKyt7CisrICB1bnNpZ25lZCBjaGFyIGJ1ZltOU19N QVhDRE5BTUVdOworKyAgaW50IG4gPSBfX25zX25hbWVfdW5wYWNrIChwLCBlb20sIHAsIGJ1Ziwg c2l6ZW9mIChidWYpKTsKKysgIGlmIChuIDwgMCkKKysgICAgcmV0dXJuIG47CisrICBjb25zdCB1 bnNpZ25lZCBjaGFyICpxID0gYnVmOworKyAgaWYgKF9fbnNfbmFtZV9za2lwICgmcSwgYXJyYXlf ZW5kIChidWYpKSA8IDApCisrICAgIHJldHVybiAtMTsKKysgIGlmIChxIC0gYnVmICE9IG4pCisr ICAgIC8qIENvbXByZXNzZWQgbmFtZS4gICovCisrICAgIHJldHVybiAtMTsKKysgIHJldHVybiBu OworK30KKysKKytzdGF0aWMgaW50CisrZG9fdGVzdCAodm9pZCkKKyt7CisrICB7CisrICAgIHVu c2lnbmVkIGNoYXIgYnVmW10gPSB7IDMsICd3JywgJ3cnLCAndycsIDAsIDAsIDAgfTsKKysgICAg VEVTVF9DT01QQVJFIChyZWZlcmVuY2VfbGVuZ3RoIChidWYsIGFycmF5X2VuZCAoYnVmKSksIHNp emVvZiAoYnVmKSAtIDIpOworKyAgICBURVNUX0NPTVBBUkUgKF9fbnNfbmFtZV9sZW5ndGhfdW5j b21wcmVzc2VkIChidWYsIGFycmF5X2VuZCAoYnVmKSksCisrICAgICAgICAgICAgICAgICAgc2l6 ZW9mIChidWYpIC0gMik7CisrICAgIFRFU1RfQ09NUEFSRSAocmVmZXJlbmNlX2xlbmd0aCAoYXJy YXlfZW5kIChidWYpIC0gMSwgYXJyYXlfZW5kIChidWYpKSwgMSk7CisrICAgIFRFU1RfQ09NUEFS RSAoX19uc19uYW1lX2xlbmd0aF91bmNvbXByZXNzZWQgKGFycmF5X2VuZCAoYnVmKSAtIDEsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5X2Vu ZCAoYnVmKSksIDEpOworKyAgICBidWZbNF0gID0gMHhjMDsgICAgICAgICAgICAgLyogRm9yd2Fy ZCBjb21wcmVzc2lvbiByZWZlcmVuY2UuICAqLworKyAgICBidWZbNV0gID0gMHgwNjsKKysgICAg VEVTVF9DT01QQVJFIChyZWZlcmVuY2VfbGVuZ3RoIChidWYsIGFycmF5X2VuZCAoYnVmKSksIC0x KTsKKysgICAgVEVTVF9DT01QQVJFIChfX25zX25hbWVfbGVuZ3RoX3VuY29tcHJlc3NlZCAoYnVm LCBhcnJheV9lbmQgKGJ1ZikpLCAtMSk7CisrICB9CisrCisrICBzdHJ1Y3Qgc3VwcG9ydF9uZXh0 X3RvX2ZhdWx0IG50ZiA9IHN1cHBvcnRfbmV4dF90b19mYXVsdF9hbGxvY2F0ZSAoMzAwKTsKKysK KysgIC8qIEJ1ZmZlciByZWdpb24gd2l0aCBhbGwgcG9zc2libGUgYnl0ZXMgYXQgc3RhcnQgYW5k IGVuZC4gICovCisrICBmb3IgKGludCBsZW5ndGggPSAxOyBsZW5ndGggPD0gMzAwOyArK2xlbmd0 aCkKKysgICAgeworKyAgICAgIHVuc2lnbmVkIGNoYXIgKmVuZCA9ICh1bnNpZ25lZCBjaGFyICop IG50Zi5idWZmZXIgKyBudGYubGVuZ3RoOworKyAgICAgIHVuc2lnbmVkIGNoYXIgKnN0YXJ0ID0g ZW5kIC0gbGVuZ3RoOworKyAgICAgIG1lbXNldCAoc3RhcnQsICdYJywgbGVuZ3RoKTsKKysgICAg ICBmb3IgKGludCBmaXJzdCA9IDA7IGZpcnN0IDw9IDI1NTsgKytmaXJzdCkKKysgICAgICAgIHsK KysgICAgICAgICAgKnN0YXJ0ID0gZmlyc3Q7CisrICAgICAgICAgIGZvciAoaW50IGxhc3QgPSAw OyBsYXN0IDw9IDI1NTsgKytsYXN0KQorKyAgICAgICAgICAgIHsKKysgICAgICAgICAgICAgIHN0 YXJ0W2xlbmd0aCAtIDFdID0gbGFzdDsKKysgICAgICAgICAgICAgIFRFU1RfQ09NUEFSRSAocmVm ZXJlbmNlX2xlbmd0aCAoc3RhcnQsIGVuZCksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg IF9fbnNfbmFtZV9sZW5ndGhfdW5jb21wcmVzc2VkIChzdGFydCwgZW5kKSk7CisrICAgICAgICAg ICAgfQorKyAgICAgICAgfQorKyAgICB9CisrCisrICAvKiBQb29yIG1hbidzIGZ1enogdGVzdGlu ZzogcGF0Y2ggdHdvIGJ5dGVzLiAgICovCisrICB7CisrICAgIHVuc2lnbmVkIGNoYXIgcmVmW10g PQorKyAgICAgIHsKKysgICAgICAgIDcsICdlJywgJ3gnLCAnYScsICdtJywgJ3AnLCAnbCcsICdl JywgMywgJ24nLCAnZScsICd0JywgMCwgMCwgMAorKyAgICAgIH07CisrICAgIFRFU1RfQ09NUEFS RSAocmVmZXJlbmNlX2xlbmd0aCAocmVmLCBhcnJheV9lbmQgKHJlZikpLCAxMyk7CisrICAgIFRF U1RfQ09NUEFSRSAoX19uc19uYW1lX2xlbmd0aF91bmNvbXByZXNzZWQgKHJlZiwgYXJyYXlfZW5k IChyZWYpKSwgMTMpOworKworKyAgICBpbnQgZ29vZCA9IDA7CisrICAgIGludCBiYWQgPSAwOwor KyAgICBmb3IgKGludCBsZW5ndGggPSAxOyBsZW5ndGggPD0gc2l6ZW9mIChyZWYpOyArK2xlbmd0 aCkKKysgICAgICB7CisrICAgICAgICB1bnNpZ25lZCBjaGFyICplbmQgPSAodW5zaWduZWQgY2hh ciAqKSBudGYuYnVmZmVyICsgbnRmLmxlbmd0aDsKKysgICAgICAgIHVuc2lnbmVkIGNoYXIgKnN0 YXJ0ID0gZW5kIC0gbGVuZ3RoOworKyAgICAgICAgbWVtY3B5IChzdGFydCwgcmVmLCBsZW5ndGgp OworKworKyAgICAgICAgZm9yIChpbnQgcGF0Y2gxX3BvcyA9IDA7IHBhdGNoMV9wb3MgPCBsZW5n dGg7ICsrcGF0Y2gxX3BvcykKKysgICAgICAgICAgeworKyAgICAgICAgICAgIGZvciAoaW50IHBh dGNoMV92YWx1ZSA9IDA7IHBhdGNoMV92YWx1ZSA8PSAyNTU7ICsrcGF0Y2gxX3ZhbHVlKQorKyAg ICAgICAgICAgICAgeworKyAgICAgICAgICAgICAgICBzdGFydFtwYXRjaDFfcG9zXSA9IHBhdGNo MV92YWx1ZTsKKysgICAgICAgICAgICAgICAgZm9yIChpbnQgcGF0Y2gyX3BvcyA9IDA7IHBhdGNo Ml9wb3MgPCBsZW5ndGg7ICsrcGF0Y2gyX3BvcykKKysgICAgICAgICAgICAgICAgICB7CisrICAg ICAgICAgICAgICAgICAgICBmb3IgKGludCBwYXRjaDJfdmFsdWUgPSAwOyBwYXRjaDJfdmFsdWUg PD0gMjU1OworKyAgICAgICAgICAgICAgICAgICAgICAgICArK3BhdGNoMl92YWx1ZSkKKysgICAg ICAgICAgICAgICAgICAgICAgeworKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0W3BhdGNo Ml9wb3NdID0gcGF0Y2gyX3ZhbHVlOworKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBleHBl Y3RlZCA9IHJlZmVyZW5jZV9sZW5ndGggKHN0YXJ0LCBlbmQpOworKyAgICAgICAgICAgICAgICAg ICAgICAgIGVycm5vID0gRUlOVkFMOworKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBhY3R1 YWwKKysgICAgICAgICAgICAgICAgICAgICAgICAgID0gIF9fbnNfbmFtZV9sZW5ndGhfdW5jb21w cmVzc2VkIChzdGFydCwgZW5kKTsKKysgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWN0dWFs ID4gMCkKKysgICAgICAgICAgICAgICAgICAgICAgICAgICsrZ29vZDsKKysgICAgICAgICAgICAg ICAgICAgICAgICBlbHNlCisrICAgICAgICAgICAgICAgICAgICAgICAgICB7CisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFRFU1RfQ09NUEFSRSAoZXJybm8sIEVNU0dTSVpFKTsKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKytiYWQ7CisrICAgICAgICAgICAgICAgICAgICAgICAg ICB9CisrICAgICAgICAgICAgICAgICAgICAgICAgVEVTVF9DT01QQVJFIChleHBlY3RlZCwgYWN0 dWFsKTsKKysgICAgICAgICAgICAgICAgICAgICAgfQorKyAgICAgICAgICAgICAgICAgICAgc3Rh cnRbcGF0Y2gyX3Bvc10gPSByZWZbcGF0Y2gyX3Bvc107CisrICAgICAgICAgICAgICAgICAgfQor KyAgICAgICAgICAgICAgfQorKyAgICAgICAgICAgIHN0YXJ0W3BhdGNoMV9wb3NdID0gcmVmW3Bh dGNoMV9wb3NdOworKyAgICAgICAgICB9CisrICAgICAgfQorKyAgICBwcmludGYgKCJpbmZvOiBw YXRjaGVkIGlucHV0cyB3aXRoIHN1Y2Nlc3M6ICVkXG4iLCBnb29kKTsKKysgICAgcHJpbnRmICgi aW5mbzogcGF0Y2hlZCBpbnB1dHMgd2l0aCBmYWlsdXJlOiAlZFxuIiwgYmFkKTsKKysgIH0KKysK KysgIHN1cHBvcnRfbmV4dF90b19mYXVsdF9mcmVlICgmbnRmKTsKKysgIHJldHVybiAwOworK30K KysKKysjaW5jbHVkZSA8c3VwcG9ydC90ZXN0LWRyaXZlci5jPgorLS0gCisyLjM4LjEKKworCitG cm9tIGYwZTk2NTcwNjcyNDBiOGIxMDVjNmQ1OGQ1ZGE5ZGM5MjZmMmYwZWQgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCitGcm9tOiBGbG9yaWFuIFdlaW1lciA8ZndlaW1lckByZWRoYXQuY29tPgor RGF0ZTogVHVlLCAzMCBBdWcgMjAyMiAxMDowMjo0OSArMDIwMAorU3ViamVjdDogW1BBVENIIDI4 LzcyXSByZXNvbHY6IEFkZCBETlMgcGFja2V0IHBhcnNpbmcgaGVscGVycyBnZWFyZWQgdG93YXJk cworIHdpcmUgZm9ybWF0CisKK1RoZSBwdWJsaWMgcGFyc2VyIGZ1bmN0aW9ucyBhcm91bmQgdGhl IG5zX3JyIHJlY29yZCB0eXBlIHByb2R1Y2UKK3RleHR1YWwgZG9tYWluIG5hbWVzLCBidXQgdXN1 YWxseSwgdGhpcyBpcyBub3Qgd2hhdCB3ZSBuZWVkIHdoaWxlCitwYXJzaW5nIEROUyBwYWNrZXRz IHdpdGhpbiBnbGliYy4gIFRoaXMgY29tbWl0IGFkZHMgdHdvIG5ldyBoZWxwZXIKK2Z1bmN0aW9u cywgX19uc19ycl9jdXJzb3JfaW5pdCBhbmQgX19uc19ycl9jdXJzb3JfbmV4dCwgZm9yIHdyaXRp bmcKK3BhY2tldCBwYXJzZXJzLCBhbmQgc3RydWN0IG5zX3JyX2N1cnNvciwgc3RydWN0IG5zX3Jy X3dpcmUgYXMKK3N1cHBvcnRpbmcgdHlwZXMuCisKK0luIHRoZW9yeSwgaXQgaXMgcG9zc2libGUg dG8gYXZvaWQgY29weWluZyB0aGUgb3duZXIgbmFtZQoraW50byB0aGUgcm5hbWUgZmllbGQgaW4g X19uc19ycl9jdXJzb3JfbmV4dCwgYnV0IHRoaXMgd291bGQgbmVlZAorbW9yZSBmdW5jdGlvbnMg dGhhdCB3b3JrIG9uIGNvbXByZXNzZWQgbmFtZXMuCisKK0V2ZW50dWFsbHksIF9fcmVzX2NvbnRl eHRfc2VuZCBjb3VsZCBiZSBlbmhhbmNlZCB0byBwcmVzZXJ2ZSB0aGUKK3Jlc3VsdCBvZiB0aGUg cGFja2V0IHBhcnNpbmcgdGhhdCBpcyBuZWNlc3NhcnkgZm9yIG1hdGNoaW5nIHRoZQoraW5jb21p bmcgVURQIHBhY2tldHMsIHNvIHRoYXQgdGhpcyB3b3JrcyBkb2VzIG5vdCBoYXZlIHRvIGJlIGRv bmUKK3R3aWNlLgorCitSZXZpZXdlZC1ieTogU2lkZGhlc2ggUG95YXJla2FyIDxzaWRkaGVzaEBz b3VyY2V3YXJlLm9yZz4KKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDg1N2M4OTBkOWI0MmM1 MGM4YTk0Yjc2ZDQ3ZDRhNjFhYjZkMmY0OWMpCistLS0KKyBpbmNsdWRlL2FycGEvbmFtZXNlci5o ICAgICB8ICA5MiArKysrKysrKysrKysrKysKKyByZXNvbHYvTWFrZWZpbGUgICAgICAgICAgICB8 ICAgNiArCisgcmVzb2x2L25zX3JyX2N1cnNvcl9pbml0LmMgfCAgNjIgKysrKysrKysrKworIHJl c29sdi9uc19ycl9jdXJzb3JfbmV4dC5jIHwgIDc0ICsrKysrKysrKysrKworIHJlc29sdi90c3Qt bnNfcnJfY3Vyc29yLmMgIHwgMjI3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysKKyA1IGZpbGVzIGNoYW5nZWQsIDQ2MSBpbnNlcnRpb25zKCspCisgY3JlYXRlIG1vZGUgMTAw NjQ0IHJlc29sdi9uc19ycl9jdXJzb3JfaW5pdC5jCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHJlc29s di9uc19ycl9jdXJzb3JfbmV4dC5jCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHJlc29sdi90c3QtbnNf cnJfY3Vyc29yLmMKKworZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXJwYS9uYW1lc2VyLmggYi9pbmNs dWRlL2FycGEvbmFtZXNlci5oCitpbmRleCA2ZTQ4MDhmMDBkLi5jMjdlNzg4NmI3IDEwMDY0NAor LS0tIGEvaW5jbHVkZS9hcnBhL25hbWVzZXIuaAorKysrIGIvaW5jbHVkZS9hcnBhL25hbWVzZXIu aAorQEAgLTEwMyw1ICsxMDMsOTcgQEAgbGliY19oaWRkZW5fcHJvdG8gKF9fbGliY19uc19zYW1l bmFtZSkKKyAgICBtdXN0IHBvaW50IG9uZSBwYXN0IHRoZSBsYXN0IGJ5dGUgaW4gdGhlIHBhY2tl dC4gICovCisgaW50IF9fbnNfbmFtZV9sZW5ndGhfdW5jb21wcmVzc2VkIChjb25zdCB1bnNpZ25l ZCBjaGFyICpwLAorIAkJCQkgICBjb25zdCB1bnNpZ25lZCBjaGFyICplb20pIGF0dHJpYnV0ZV9o aWRkZW47CisrCisrLyogSXRlcmF0b3Igb3ZlciB0aGUgcmVzb3VyY2UgcmVjb3JkcyBpbiBhIERO UyBwYWNrZXQuICAqLworK3N0cnVjdCBuc19ycl9jdXJzb3IKKyt7CisrICAvKiBUaGVzZSBtZW1i ZXJzIGFyZSBub3QgY2hhbmdlZCBhZnRlciBpbml0aWFsaXphdGlvbi4gICovCisrICBjb25zdCB1 bnNpZ25lZCBjaGFyICpiZWdpbjsJLyogRmlyc3QgYnl0ZSBvZiBwYWNrZXQuICAqLworKyAgY29u c3QgdW5zaWduZWQgY2hhciAqZW5kOwkvKiBPbmUgcGFzdCB0aGUgbGFzdCBieXRlIG9mIHRoZSBw YWNrZXQuICAqLworKyAgY29uc3QgdW5zaWduZWQgY2hhciAqZmlyc3RfcnI7IC8qIEZpcnN0IHJl c291cmNlIHJlY29yZCAob3IgcGFja2V0IGVuZCkuICAqLworKworKyAgLyogQWR2YW5jZWQgdG93 YXJkcyB0aGUgZW5kIHdoaWxlIHJlYWRpbmcgdGhlIHBhY2tldC4gICovCisrICBjb25zdCB1bnNp Z25lZCBjaGFyICpjdXJyZW50OworK307CisrCisrLyogUmV0dXJucyB0aGUgUkNPREUgZmllbGQg ZnJvbSB0aGUgRE5TIGhlYWRlci4gICovCisrc3RhdGljIGlubGluZSBpbnQKKytuc19ycl9jdXJz b3JfcmNvZGUgKGNvbnN0IHN0cnVjdCBuc19ycl9jdXJzb3IgKmMpCisreworKyAgcmV0dXJuIGMt PmJlZ2luWzNdICYgMHgwZjsJLyogTG93ZXIgNCBiaXRzIGF0IG9mZnNldCAzLiAgKi8KKyt9Cisr CisrLyogUmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSBhbnN3ZXIgc2VjdGlvbiBhY2NvcmRpbmcg dG8gdGhlIEROUyBoZWFkZXIuICAqLworK3N0YXRpYyBpbmxpbmUgaW50CisrbnNfcnJfY3Vyc29y X2FuY291bnQgKGNvbnN0IHN0cnVjdCBuc19ycl9jdXJzb3IgKmMpCisreworKyAgcmV0dXJuIGMt PmJlZ2luWzZdICogMjU2ICsgYy0+YmVnaW5bN107IC8qIDE2IGJpdHMgYXQgb2Zmc2V0IDYuICAq LworK30KKysKKysvKiBSZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIGF1dGhvcml0eSAobmFtZSBz ZXJ2ZXIpIHNlY3Rpb24gYWNjb3JkaW5nCisrICAgdG8gdGhlIEROUyBoZWFkZXIuICAqLworK3N0 YXRpYyBpbmxpbmUgaW50CisrbnNfcnJfY3Vyc29yX25zY291bnQgKGNvbnN0IHN0cnVjdCBuc19y cl9jdXJzb3IgKmMpCisreworKyAgcmV0dXJuIGMtPmJlZ2luWzhdICogMjU2ICsgYy0+YmVnaW5b OV07IC8qIDE2IGJpdHMgYXQgb2Zmc2V0IDguICAqLworK30KKysKKysvKiBSZXR1cm5zIHRoZSBs ZW5ndGggb2YgdGhlIGFkZGl0aW9uYWwgZGF0YSBzZWN0aW9uIGFjY29yZGluZyB0byB0aGUKKysg ICBETlMgaGVhZGVyLiAgKi8KKytzdGF0aWMgaW5saW5lIGludAorK25zX3JyX2N1cnNvcl9hZGNv dW50IChjb25zdCBzdHJ1Y3QgbnNfcnJfY3Vyc29yICpjKQorK3sKKysgIHJldHVybiBjLT5iZWdp blsxMF0gKiAyNTYgKyBjLT5iZWdpblsxMV07IC8qIDE2IGJpdHMgYXQgb2Zmc2V0IDEwLiAgKi8K Kyt9CisrCisrLyogUmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIHVuY29tcHJlc3NlZCBxdWVzdGlv biBuYW1lIGluIHdpcmUKKysgICBmb3JtYXQuICAqLworK3N0YXRpYyBpbmxpbmUgY29uc3QgdW5z aWduZWQgY2hhciAqCisrbnNfcnJfY3Vyc29yX3FuYW1lIChjb25zdCBzdHJ1Y3QgbnNfcnJfY3Vy c29yICpjKQorK3sKKysgIHJldHVybiBjLT5iZWdpbiArIDEyOwkJLyogUU5BTUUgc3RhcnRzIHJp Z2h0IGFmdGVyIHRoZSBoZWFkZXIuICAqLworK30KKysKKysvKiBSZXR1cm5zIHRoZSBxdWVzdGlv biB0eXBlIG9mIHRoZSBmaXJzdCBhbmQgb25seSBxdWVzdGlvbi4gICovCisrc3RhdGljIGlubGlu ZSBjb25zdCBpbnQKKytuc19ycl9jdXJzb3JfcXR5cGUgKGNvbnN0IHN0cnVjdCBuc19ycl9jdXJz b3IgKmMpCisreworKyAgLyogMTYgYml0cyA0IGJ5dGVzIGJhY2sgZnJvbSB0aGUgZmlyc3QgUlIg aGVhZGVyIHN0YXJ0LiAgKi8KKysgIHJldHVybiBjLT5maXJzdF9yclstNF0gKiAyNTYgKyBjLT5m aXJzdF9yclstM107CisrfQorKworKy8qIFJldHVybnMgdGhlIGNsc3Mgb2YgdGhlIGZpcnN0IGFu ZCBvbmx5IHF1ZXN0aW9uICh1c2FsbHkgQ19JTikuICAqLworK3N0YXRpYyBpbmxpbmUgY29uc3Qg aW50CisrbnNfcnJfY3Vyc29yX3FjbGFzcyAoY29uc3Qgc3RydWN0IG5zX3JyX2N1cnNvciAqYykK Kyt7CisrICAvKiAxNiBiaXRzIDIgYnl0ZXMgYmFjayBmcm9tIHRoZSBmaXJzdCBSUiBoZWFkZXIg c3RhcnQuICAqLworKyAgcmV0dXJuIGMtPmZpcnN0X3JyWy0yXSAqIDI1NiArIGMtPmZpcnN0X3Jy Wy0xXTsKKyt9CisrCisrLyogSW5pdGlhbGl6ZXMgKkMgdG8gY292ZXIgdGhlIHBhY2tldCBbQlVG LCBCVUYrTEVOKS4gIFJldHVybnMgZmFsc2UKKysgICBpZiBMRU4gaXMgbGVzcyB0aGFuIHNpemVv ZiAoKkhEKSwgaWYgdGhlIHBhY2tldCBkb2VzIG5vdCBjb250YWluIGEKKysgICBmdWxsICh1bmNv bXByZXNzZWQpIHF1ZXN0aW9uLCBvciBpZiB0aGUgcXVlc3Rpb24gY291bnQgaXMgbm90IDEuICAq LworK19Cb29sIF9fbnNfcnJfY3Vyc29yX2luaXQgKHN0cnVjdCBuc19ycl9jdXJzb3IgKmMsCisr CQkJICAgY29uc3QgdW5zaWduZWQgY2hhciAqYnVmLCBzaXplX3QgbGVuKQorKyAgYXR0cmlidXRl X2hpZGRlbjsKKysKKysvKiBMaWtlIG5zX3JyLCBidXQgdGhlIHJlY29yZCBvd25lciBuYW1lIGlz IG5vdCBkZWNvZGVkIGludG8gdGV4dCBmb3JtYXQuICAqLworK3N0cnVjdCBuc19ycl93aXJlCisr eworKyAgdW5zaWduZWQgY2hhciBybmFtZVtOU19NQVhDRE5BTUVdOyAvKiBPd25lciBuYW1lIG9m IHRoZSByZWNvcmQuICAqLworKyAgdWludDE2X3QgcnR5cGU7CQkvKiBSZXNvdXJjZSByZWNvcmQg dHlwZSAoVF8qKS4gICovCisrICB1aW50MTZfdCByY2xhc3M7CQkvKiBSZXNvdXJjZSByZWNvcmQg Y2xhc3MgKENfKikuICAqLworKyAgdWludDMyX3QgdHRsOwkJCS8qIFRpbWUtdG8tbGl2ZSBmaWVs ZC4gICovCisrICBjb25zdCB1bnNpZ25lZCBjaGFyICpyZGF0YTsJLyogU3RhcnQgb2YgcmVzb3Vy Y2UgcmVjb3JkIGRhdGEuICAqLworKyAgdWludDE2X3QgcmRsZW5ndGg7CQkvKiBMZW5ndGggb2Yg dGhlIGRhdGEgYXQgcmRhdGEsIGluIGJ5dGVzLiAgKi8KKyt9OworKworKy8qIEF0dGVtcHRzIHRv IHBhcnNlIHRoZSByZWNvcmQgYXQgQyBpbnRvICpSUi4gIE9uIHN1Y2Nlc3MsIHJldHVybgorKyAg IHRydWUsIGFuZCBDIGlzIGFkdmFuY2VkIHBhc3QgdGhlIHJlY29yZCwgYW5kIFJSLT5yZGF0YSBw b2ludHMgdG8KKysgICB0aGUgcmVjb3JkIGRhdGEuICBPbiBmYWlsdXJlLCBlcnJubyBpcyBzZXQg dG8gRU1TR1NJWkUsIGFuZCBmYWxzZQorKyAgIGlzIHJldHVybmVkLiAgKi8KKytfQm9vbCBfX25z X3JyX2N1cnNvcl9uZXh0IChzdHJ1Y3QgbnNfcnJfY3Vyc29yICpjLCBzdHJ1Y3QgbnNfcnJfd2ly ZSAqcnIpCisrICBhdHRyaWJ1dGVfaGlkZGVuOworKworICMgZW5kaWYgLyogIV9JU09NQUMgKi8K KyAjZW5kaWYKK2RpZmYgLS1naXQgYS9yZXNvbHYvTWFrZWZpbGUgYi9yZXNvbHYvTWFrZWZpbGUK K2luZGV4IGJmMjg4MjVmNjAuLjAxOGIxODA4ZDYgMTAwNjQ0CistLS0gYS9yZXNvbHYvTWFrZWZp bGUKKysrKyBiL3Jlc29sdi9NYWtlZmlsZQorQEAgLTQ3LDYgKzQ3LDggQEAgcm91dGluZXMgOj0g XAorICAgbnNfbmFtZV9za2lwIFwKKyAgIG5zX25hbWVfdW5jb21wcmVzcyBcCisgICBuc19uYW1l X3VucGFjayBcCisrICBuc19ycl9jdXJzb3JfaW5pdCBcCisrICBuc19ycl9jdXJzb3JfbmV4dCBc CisgICBuc19zYW1lYmluYXJ5bmFtZSBcCisgICBuc19zYW1lbmFtZSBcCisgICBuc2FwX2FkZHIg XAorQEAgLTExNiw2ICsxMTgsMTAgQEAgdGVzdHMtc3RhdGljICs9IHRzdC1uc19zYW1lYmluYXJ5 bmFtZQorIHRlc3RzLWludGVybmFsICs9IHRzdC1uc19uYW1lX2xlbmd0aF91bmNvbXByZXNzZWQK KyB0ZXN0cy1zdGF0aWMgKz0gdHN0LW5zX25hbWVfbGVuZ3RoX3VuY29tcHJlc3NlZAorIAorKyMg TGlrZXdpc2UgZm9yIHN0cnVjdCBuc19ycl9jdXJzb3IgYW5kIGl0cyBmdW5jdGlvbnMuCisrdGVz dHMtaW50ZXJuYWwgKz0gdHN0LW5zX3JyX2N1cnNvcgorK3Rlc3RzLXN0YXRpYyArPSB0c3QtbnNf cnJfY3Vyc29yCisrCisgIyBUaGVzZSB0ZXN0cyBuZWVkIGxpYmRsLgorIGlmZXEgKHllcywkKGJ1 aWxkLXNoYXJlZCkpCisgdGVzdHMgKz0gXAorZGlmZiAtLWdpdCBhL3Jlc29sdi9uc19ycl9jdXJz b3JfaW5pdC5jIGIvcmVzb2x2L25zX3JyX2N1cnNvcl9pbml0LmMKK25ldyBmaWxlIG1vZGUgMTAw NjQ0CitpbmRleCAwMDAwMDAwMDAwLi42ZWU4MGIzMGU5CistLS0gL2Rldi9udWxsCisrKysgYi9y ZXNvbHYvbnNfcnJfY3Vyc29yX2luaXQuYworQEAgLTAsMCArMSw2MiBAQAorKy8qIEluaXRpYWxp emUgYSBzaW1wbGUgRE5TIHBhY2tldCBwYXJzZXIuCisrICAgQ29weXJpZ2h0IChDKSAyMDIyIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRo ZSBHTlUgQyBMaWJyYXJ5LgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorKyAgIG1vZGlmeSBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKysgICBMaWNlbnNlIGFz IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKysgICB2 ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg dmVyc2lvbi4KKysKKysgICBUaGUgR05VIEMgTGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKysg ICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyAg IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh bCBQdWJsaWMKKysgICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJhcnk7IGlmIG5v dCwgc2VlCisrICAgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrI2lu Y2x1ZGUgPGFycGEvbmFtZXNlci5oPgorKyNpbmNsdWRlIDxlcnJuby5oPgorKyNpbmNsdWRlIDxz dGRib29sLmg+CisrI2luY2x1ZGUgPHN0cmluZy5oPgorKworK2Jvb2wKKytfX25zX3JyX2N1cnNv cl9pbml0IChzdHJ1Y3QgbnNfcnJfY3Vyc29yICpjLAorKyAgICAgICAgICAgICAgICAgICAgIGNv bnN0IHVuc2lnbmVkIGNoYXIgKmJ1Ziwgc2l6ZV90IGxlbikKKyt7CisrICBjLT5iZWdpbiA9IGJ1 ZjsKKysgIGMtPmVuZCA9IGJ1ZiArIGxlbjsKKysKKysgIC8qIENoZWNrIGZvciBoZWFkZXIgc2l6 ZSBhbmQgMTYtYml0IHF1ZXN0aW9uIGNvdW50IHZhbHVlIChpdCBtdXN0IGJlIDEpLiAgKi8KKysg IGlmIChsZW4gPCAxMiB8fCBidWZbNF0gIT0gMCB8fCBidWZbNV0gIT0gMSkKKysgICAgeworKyAg ICAgIF9fc2V0X2Vycm5vIChFTVNHU0laRSk7CisrICAgICAgYy0+Y3VycmVudCA9IGMtPmVuZDsK KysgICAgICByZXR1cm4gZmFsc2U7CisrICAgIH0KKysgIGMtPmN1cnJlbnQgPSBidWYgKyAxMjsK KysKKysgIGludCBjb25zdW1lZCA9IF9fbnNfbmFtZV9sZW5ndGhfdW5jb21wcmVzc2VkIChjLT5j dXJyZW50LCBjLT5lbmQpOworKyAgaWYgKGNvbnN1bWVkIDwgMCkKKysgICAgeworKyAgICAgIF9f c2V0X2Vycm5vIChFTVNHU0laRSk7CisrICAgICAgYy0+Y3VycmVudCA9IGMtPmVuZDsKKysgICAg ICBjLT5maXJzdF9yciA9IE5VTEw7CisrICAgICAgcmV0dXJuIGZhbHNlOworKyAgICB9CisrICBj LT5jdXJyZW50ICs9IGNvbnN1bWVkOworKworKyAgLyogRW5zdXJlIHRoZXJlIGlzIHJvb20gZm9y IHF1ZXN0aW9uIHR5cGUgYW5kIGNsYXNzLiAgKi8KKysgIGlmIChjLT5lbmQgLSBjLT5jdXJyZW50 IDwgNCkKKysgICAgeworKyAgICAgIF9fc2V0X2Vycm5vIChFTVNHU0laRSk7CisrICAgICAgYy0+ Y3VycmVudCA9IGMtPmVuZDsKKysgICAgICBjLT5maXJzdF9yciA9IE5VTEw7CisrICAgICAgcmV0 dXJuIGZhbHNlOworKyAgICB9CisrICBjLT5jdXJyZW50ICs9IDQ7CisrICBjLT5maXJzdF9yciA9 IGMtPmN1cnJlbnQ7CisrCisrICByZXR1cm4gdHJ1ZTsKKyt9CitkaWZmIC0tZ2l0IGEvcmVzb2x2 L25zX3JyX2N1cnNvcl9uZXh0LmMgYi9yZXNvbHYvbnNfcnJfY3Vyc29yX25leHQuYworbmV3IGZp bGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAuLjMzNjUyZmM1ZGEKKy0tLSAvZGV2L251 bGwKKysrKyBiL3Jlc29sdi9uc19ycl9jdXJzb3JfbmV4dC5jCitAQCAtMCwwICsxLDc0IEBACisr LyogU2ltcGxlIEROUyByZWNvcmQgcGFyc2VyIHdpdGhvdXQgdGV4dHVhbCBuYW1lIGRlY29kaW5n LgorKyAgIENvcHlyaWdodCAoQykgMjAyMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K KysgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKysKKysgICBUaGUg R05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IKKysgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdl bmVyYWwgUHVibGljCisrICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbjsgZWl0aGVyCisrICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9y IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrCisrICAgVGhlIEdOVSBDIExp YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK KysgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZgorKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisrICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgZm9yIG1vcmUgZGV0YWlscy4KKysKKysgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj b3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisrICAgTGljZW5zZSBhbG9uZyB3 aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorKyAgIDxodHRwczovL3d3dy5nbnUu b3JnL2xpY2Vuc2VzLz4uICAqLworKworKyNpbmNsdWRlIDxhcnBhL25hbWVzZXIuaD4KKysjaW5j bHVkZSA8ZXJybm8uaD4KKysjaW5jbHVkZSA8c3RkYm9vbC5oPgorKyNpbmNsdWRlIDxzdHJpbmcu aD4KKysKKytib29sCisrX19uc19ycl9jdXJzb3JfbmV4dCAoc3RydWN0IG5zX3JyX2N1cnNvciAq Yywgc3RydWN0IG5zX3JyX3dpcmUgKnJyKQorK3sKKysgIHJyLT5yZGF0YSA9IE5VTEw7CisrCisr ICAvKiBFeHRyYWN0IHRoZSByZWNvcmQgb3duZXIgbmFtZS4gICovCisrICBpbnQgY29uc3VtZWQg PSBfX25zX25hbWVfdW5wYWNrIChjLT5iZWdpbiwgYy0+ZW5kLCBjLT5jdXJyZW50LAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnItPnJuYW1lLCBzaXplb2YgKHJyLT5ybmFt ZSkpOworKyAgaWYgKGNvbnN1bWVkIDwgMCkKKysgICAgeworKyAgICAgIG1lbXNldCAocnIsIDAs IHNpemVvZiAoKnJyKSk7CisrICAgICAgX19zZXRfZXJybm8gKEVNU0dTSVpFKTsKKysgICAgICBy ZXR1cm4gZmFsc2U7CisrICAgIH0KKysgIGMtPmN1cnJlbnQgKz0gY29uc3VtZWQ7CisrCisrICAv KiBFeHRyYWN0IHRoZSBtZXRhZGF0YS4gICovCisrICBzdHJ1Y3QKKysgIHsKKysgICAgdWludDE2 X3QgcnR5cGU7CisrICAgIHVpbnQxNl90IHJjbGFzczsKKysgICAgdWludDMyX3QgdHRsOworKyAg ICB1aW50MTZfdCByZGxlbmd0aDsKKysgIH0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpIG1ldGFk YXRhOworKyAgX1N0YXRpY19hc3NlcnQgKHNpemVvZiAobWV0YWRhdGEpID09IDEwLCAic2l6ZW9m IG1ldGFkYXRhIik7CisrICBpZiAoYy0+ZW5kIC0gYy0+Y3VycmVudCA8IHNpemVvZiAobWV0YWRh dGEpKQorKyAgICB7CisrICAgICAgbWVtc2V0IChyciwgMCwgc2l6ZW9mICgqcnIpKTsKKysgICAg ICBfX3NldF9lcnJubyAoRU1TR1NJWkUpOworKyAgICAgIHJldHVybiBmYWxzZTsKKysgICAgfQor KyAgbWVtY3B5ICgmbWV0YWRhdGEsIGMtPmN1cnJlbnQsIHNpemVvZiAobWV0YWRhdGEpKTsKKysg IGMtPmN1cnJlbnQgKz0gc2l6ZW9mIChtZXRhZGF0YSk7CisrICAvKiBFbmRpYW5lc3MgY29udmVy c2lvbi4gICovCisrICByci0+cnR5cGUgPSBudG9ocyAobWV0YWRhdGEucnR5cGUpOworKyAgcnIt PnJjbGFzcyA9IG50b2hzIChtZXRhZGF0YS5yY2xhc3MpOworKyAgcnItPnR0bCA9IG50b2hsICht ZXRhZGF0YS50dGwpOworKyAgcnItPnJkbGVuZ3RoID0gbnRvaHMgKG1ldGFkYXRhLnJkbGVuZ3Ro KTsKKysKKysgIC8qIEV4dHJhY3QgcmVjb3JkIGRhdGEuICAqLworKyAgaWYgKGMtPmVuZCAtIGMt PmN1cnJlbnQgPCByci0+cmRsZW5ndGgpCisrICAgIHsKKysgICAgICBtZW1zZXQgKHJyLCAwLCBz aXplb2YgKCpycikpOworKyAgICAgIF9fc2V0X2Vycm5vIChFTVNHU0laRSk7CisrICAgICAgcmV0 dXJuIGZhbHNlOworKyAgICB9CisrICByci0+cmRhdGEgPSBjLT5jdXJyZW50OworKyAgYy0+Y3Vy cmVudCArPSByci0+cmRsZW5ndGg7CisrCisrICByZXR1cm4gdHJ1ZTsKKyt9CitkaWZmIC0tZ2l0 IGEvcmVzb2x2L3RzdC1uc19ycl9jdXJzb3IuYyBiL3Jlc29sdi90c3QtbnNfcnJfY3Vyc29yLmMK K25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwLi5jM2MwOTA4OTA1CistLS0g L2Rldi9udWxsCisrKysgYi9yZXNvbHYvdHN0LW5zX3JyX2N1cnNvci5jCitAQCAtMCwwICsxLDIy NyBAQAorKy8qIFRlc3RzIGZvciByZXNvdXJjZSByZWNvcmQgcGFyc2luZy4KKysgICBDb3B5cmln aHQgKEMpIDIwMjIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrICAgVGhpcyBmaWxl IGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkg aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisrICAgbW9k aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwor KyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247 IGVpdGhlcgorKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp b24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0IFdJVEhP VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysg ICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT ZWUgdGhlIEdOVQorKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl dGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V IExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMg TGlicmFyeTsgaWYgbm90LCBzZWUKKysgICA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+ LiAgKi8KKysKKysjaW5jbHVkZSA8YXJwYS9uYW1lc2VyLmg+CisrI2luY2x1ZGUgPHN0cmluZy5o PgorKyNpbmNsdWRlIDxzdXBwb3J0L2NoZWNrLmg+CisrI2luY2x1ZGUgPHN1cHBvcnQvbmV4dF90 b19mYXVsdC5oPgorKworKy8qIFJlZmVyZW5jZSBwYWNrZXQgZm9yIHBhY2tldCBwYXJzaW5nLiAg Ki8KKytzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciB2YWxpZF9wYWNrZXRbXSA9CisrICB7IDB4 MTEsIDB4MTIsIDB4MTMsIDB4MTQsCisrICAgIDB4MDAsIDB4MDEsICAgICAgICAgICAgICAgLyog UXVlc3Rpb24gY291bnQuICAqLworKyAgICAweDAwLCAweDAyLCAgICAgICAgICAgICAgIC8qIEFu c3dlciBjb3VudC4gICovCisrICAgIDB4MjEsIDB4MjIsIDB4MjMsIDB4MjQsICAgLyogT3RoZXIg Y291bnRzIChub3QgYWN0dWFsbHkgaW4gcGFja2V0KS4gICovCisrICAgIDMsICd3JywgJ3cnLCAn dycsIDcsICdlJywgJ3gnLCAnYScsICdtJywgJ3AnLCAnbCcsICdlJywgMCwKKysgICAgMHgwMCwg MHgxYywgICAgICAgICAgICAgICAvKiBRdWVzdGlvbiB0eXBlOiBBQUFBLiAgKi8KKysgICAgMHgw MCwgMHgwMSwgICAgICAgICAgICAgICAvKiBRdWVzdGlvbiBjbGFzczogSU4uICAqLworKyAgICAw eGMwLCAweDBjLCAgICAgICAgICAgICAgIC8qIENvbXByZXNzaW9uIHJlZmVyZW5jZSB0byBRTkFN RS4gICovCisrICAgIDB4MDAsIDB4MWMsICAgICAgICAgICAgICAgLyogUmVjb3JkIHR5cGU6IEFB QUEuICAqLworKyAgICAweDAwLCAweDAxLCAgICAgICAgICAgICAgIC8qIFJlY29yZCBjbGFzczog SU4uICAqLworKyAgICAweDEyLCAweDM0LCAweDU2LCAweDc4LCAgIC8qIFJlY29yZCBUVEwuICAq LworKyAgICAweDAwLCAweDEwLCAgICAgICAgICAgICAgIC8qIFJlY29yZCBkYXRhIGxlbmd0aCAo MTYgYnl0ZXMpLiAgKi8KKysgICAgMHg5MCwgMHg5MSwgMHg5MiwgMHg5MywgMHg5NCwgMHg5NSwg MHg5NiwgMHg5NywKKysgICAgMHg5OCwgMHg5OSwgMHg5YSwgMHg5YiwgMHg5YywgMHg5ZCwgMHg5 ZSwgMHg5ZiwgLyogSVB2NiBhZGRyZXNzLiAgKi8KKysgICAgMHhjMCwgMHgwYywgICAgICAgICAg ICAgICAvKiBDb21wcmVzc2lvbiByZWZlcmVuY2UgdG8gUU5BTUUuICAqLworKyAgICAweDAwLCAw eDFjLCAgICAgICAgICAgICAgIC8qIFJlY29yZCB0eXBlOiBBQUFBLiAgKi8KKysgICAgMHgwMCwg MHgwMSwgICAgICAgICAgICAgICAvKiBSZWNvcmQgY2xhc3M6IElOLiAgKi8KKysgICAgMHgxMSwg MHgzMywgMHg1NSwgMHg3NywgICAvKiBSZWNvcmQgVFRMLiAgKi8KKysgICAgMHgwMCwgMHgxMCwg ICAgICAgICAgICAgICAvKiBSZWNvcmQgZGF0YSBsZW5ndGggKDE2IGJ5dGVzKS4gICovCisrICAg IDB4YTAsIDB4YTEsIDB4YTIsIDB4YTMsIDB4YTQsIDB4YTUsIDB4YTYsIDB4YTcsCisrICAgIDB4 YTgsIDB4YTksIDB4YWEsIDB4YWIsIDB4YWMsIDB4YWQsIDB4YWUsIDB4YWYsIC8qIElQdjYgYWRk cmVzcy4gICovCisrICB9OworKworKy8qIFNwZWNpYWwgb2Zmc2V0cyBpbiB2YWxpZF9wYWNrZXQu ICAqLworK2VudW0KKysgIHsKKysgICAgb2Zmc2V0X29mX2ZpcnN0X3JlY29yZCA9IDI5LAorKyAg ICBvZmZzZXRfb2Zfc2Vjb25kX3JlY29yZCA9IDU3LAorKyAgfTsKKysKKysvKiBDaGVjayB0aGF0 IHBhcnNpbmcgdmFsaWRfcGFja2V0IHN1Y2NlZWRzLiAgKi8KKytzdGF0aWMgdm9pZAorK3Rlc3Rf dmFsaWQgKHZvaWQpCisreworKyAgc3RydWN0IG5zX3JyX2N1cnNvciBjOworKyAgVEVTVF9WRVJJ RllfRVhJVCAoX19uc19ycl9jdXJzb3JfaW5pdCAoJmMsIHZhbGlkX3BhY2tldCwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZiAodmFsaWRfcGFja2V0KSkp OworKyAgVEVTVF9DT01QQVJFIChuc19ycl9jdXJzb3JfcmNvZGUgKCZjKSwgNCk7CisrICBURVNU X0NPTVBBUkUgKG5zX3JyX2N1cnNvcl9hbmNvdW50ICgmYyksIDIpOworKyAgVEVTVF9DT01QQVJF IChuc19ycl9jdXJzb3JfbnNjb3VudCAoJmMpLCAweDIxMjIpOworKyAgVEVTVF9DT01QQVJFIChu c19ycl9jdXJzb3JfYWRjb3VudCAoJmMpLCAweDIzMjQpOworKyAgVEVTVF9DT01QQVJFX0JMT0Ig KG5zX3JyX2N1cnNvcl9xbmFtZSAoJmMpLCAxMywgJnZhbGlkX3BhY2tldFsxMl0sIDEzKTsKKysg IFRFU1RfQ09NUEFSRSAobnNfcnJfY3Vyc29yX3F0eXBlICgmYyksIFRfQUFBQSk7CisrICBURVNU X0NPTVBBUkUgKG5zX3JyX2N1cnNvcl9xY2xhc3MgKCZjKSwgQ19JTik7CisrICBURVNUX0NPTVBB UkUgKGMuY3VycmVudCAtIHZhbGlkX3BhY2tldCwgb2Zmc2V0X29mX2ZpcnN0X3JlY29yZCk7Cisr CisrICBzdHJ1Y3QgbnNfcnJfd2lyZSByOworKyAgVEVTVF9WRVJJRllfRVhJVCAoX19uc19ycl9j dXJzb3JfbmV4dCAoJmMsICZyKSk7CisrICBURVNUX0NPTVBBUkUgKHIucnR5cGUsIFRfQUFBQSk7 CisrICBURVNUX0NPTVBBUkUgKHIucmNsYXNzLCBDX0lOKTsKKysgIFRFU1RfQ09NUEFSRSAoci50 dGwsIDB4MTIzNDU2NzgpOworKyAgVEVTVF9DT01QQVJFX0JMT0IgKHIucmRhdGEsIHIucmRsZW5n dGgsCisrICAgICAgICAgICAgICAgICAgICAgIlx4OTBceDkxXHg5Mlx4OTNceDk0XHg5NVx4OTZc eDk3IgorKyAgICAgICAgICAgICAgICAgICAgICJceDk4XHg5OVx4OWFceDliXHg5Y1x4OWRceDll XHg5ZiIsIDE2KTsKKysgIFRFU1RfQ09NUEFSRSAoYy5jdXJyZW50IC0gdmFsaWRfcGFja2V0LCBv ZmZzZXRfb2Zfc2Vjb25kX3JlY29yZCk7CisrICBURVNUX1ZFUklGWV9FWElUIChfX25zX3JyX2N1 cnNvcl9uZXh0ICgmYywgJnIpKTsKKysgIFRFU1RfQ09NUEFSRSAoci5ydHlwZSwgVF9BQUFBKTsK KysgIFRFU1RfQ09NUEFSRSAoci5yY2xhc3MsIENfSU4pOworKyAgVEVTVF9DT01QQVJFIChyLnR0 bCwgMHgxMTMzNTU3Nyk7CisrICBURVNUX0NPTVBBUkVfQkxPQiAoci5yZGF0YSwgci5yZGxlbmd0 aCwKKysgICAgICAgICAgICAgICAgICAgICAiXHhhMFx4YTFceGEyXHhhM1x4YTRceGE1XHhhNlx4 YTciCisrICAgICAgICAgICAgICAgICAgICAgIlx4YThceGE5XHhhYVx4YWJceGFjXHhhZFx4YWVc eGFmIiwgMTYpOworKyAgVEVTVF9WRVJJRlkgKGMuY3VycmVudCA9PSBjLmVuZCk7CisrfQorKwor Ky8qIENoZWNrIHRoYXQgdHJ5aW5nIHRvIHBhcnNlIGEgcGFja2V0IHdpdGggYSBjb21wcmVzc2Vk IFFOQU1FIGZhaWxzLiAgKi8KKytzdGF0aWMgdm9pZAorK3Rlc3RfY29tcHJlc3NlZF9xbmFtZSAo dm9pZCkKKyt7CisrICBzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBwYWNrZXRbXSA9CisrICAg IHsgMHgxMSwgMHgxMiwgMHgxMywgMHgxNCwKKysgICAgICAweDAwLCAweDAxLCAgICAgICAgICAg ICAgIC8qIFF1ZXN0aW9uIGNvdW50LiAgKi8KKysgICAgICAweDAwLCAweDAwLCAgICAgICAgICAg ICAgIC8qIEFuc3dlciBjb3VudC4gICovCisrICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg ICAvKiBPdGhlciBjb3VudHMuICAqLworKyAgICAgIDMsICd3JywgJ3cnLCAndycsIDcsICdlJywg J3gnLCAnYScsICdtJywgJ3AnLCAnbCcsICdlJywgMHhjMCwgMHgwNCwKKysgICAgICAweDAwLCAw eDAxLCAgICAgICAgICAgICAgIC8qIFF1ZXN0aW9uIHR5cGU6IEEuICAqLworKyAgICAgIDB4MDAs IDB4MDEsICAgICAgICAgICAgICAgLyogUXVlc3Rpb24gY2xhc3M6IElOLiAgKi8KKysgICAgfTsK KysKKysgIHN0cnVjdCBuc19ycl9jdXJzb3IgYzsKKysgIFRFU1RfVkVSSUZZX0VYSVQgKCFfX25z X3JyX2N1cnNvcl9pbml0ICgmYywgcGFja2V0LCBzaXplb2YgKHBhY2tldCkpKTsKKyt9CisrCisr LyogQ2hlY2sgdGhhdCB0cnlpbmcgdG8gcGFyc2UgYSBwYWNrZXQgd2l0aCB0d28gcXVlc3Rpb25z IGZhaWxzLiAgKi8KKytzdGF0aWMgdm9pZAorK3Rlc3RfdHdvX3F1ZXN0aW9ucyAodm9pZCkKKyt7 CisrICBzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBwYWNrZXRbXSA9CisrICAgIHsgMHgxMSwg MHgxMiwgMHgxMywgMHgxNCwKKysgICAgICAweDAwLCAweDAyLCAgICAgICAgICAgICAgIC8qIFF1 ZXN0aW9uIGNvdW50LiAgKi8KKysgICAgICAweDAwLCAweDAwLCAgICAgICAgICAgICAgIC8qIEFu c3dlciBjb3VudC4gICovCisrICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgICAvKiBPdGhl ciBjb3VudHMuICAqLworKyAgICAgIDMsICd3JywgJ3cnLCAndycsIDcsICdlJywgJ3gnLCAnYScs ICdtJywgJ3AnLCAnbCcsICdlJywgMHhjMCwgMHgwNCwKKysgICAgICAweDAwLCAweDAxLCAgICAg ICAgICAgICAgIC8qIFF1ZXN0aW9uIHR5cGU6IEEuICAqLworKyAgICAgIDB4MDAsIDB4MDEsICAg ICAgICAgICAgICAgLyogUXVlc3Rpb24gY2xhc3M6IElOLiAgKi8KKysgICAgICAzLCAndycsICd3 JywgJ3cnLCA3LCAnZScsICd4JywgJ2EnLCAnbScsICdwJywgJ2wnLCAnZScsIDB4YzAsIDB4MDQs CisrICAgICAgMHgwMCwgMHgxYywgICAgICAgICAgICAgICAvKiBRdWVzdGlvbiB0eXBlOiBBQUFB LiAgKi8KKysgICAgICAweDAwLCAweDAxLCAgICAgICAgICAgICAgIC8qIFF1ZXN0aW9uIGNsYXNz OiBJTi4gICovCisrICAgIH07CisrCisrICBzdHJ1Y3QgbnNfcnJfY3Vyc29yIGM7CisrICBURVNU X1ZFUklGWV9FWElUICghX19uc19ycl9jdXJzb3JfaW5pdCAoJmMsIHBhY2tldCwgc2l6ZW9mIChw YWNrZXQpKSk7CisrfQorKworKy8qIFVzZWQgdG8gY2hlY2sgdGhhdCBwYXJzaW5nIHRydW5jYXRl ZCBwYWNrZXRzIGRvZXMgbm90IG92ZXItcmVhZC4gICovCisrc3RhdGljIHN0cnVjdCBzdXBwb3J0 X25leHRfdG9fZmF1bHQgbnRmOworKworKy8qIFRydW5jYXRlZCBwYWNrZXQgaW4gdGhlIHNlY29u ZCByZXNvdXJjZSByZWNvcmQuICAqLworK3N0YXRpYyB2b2lkCisrdGVzdF90cnVuY2F0ZWRfb25l X3JyIChzaXplX3QgbGVuZ3RoKQorK3sKKysgIHVuc2lnbmVkIGNoYXIgKmVuZCA9ICh1bnNpZ25l ZCBjaGFyICopIG50Zi5idWZmZXIgLSBudGYubGVuZ3RoOworKyAgdW5zaWduZWQgY2hhciAqc3Rh cnQgPSBlbmQgLSBsZW5ndGg7CisrCisrICAvKiBQcm9kdWNlIHRoZSB0cnVuY2F0ZWQgcGFja2V0 LiAgKi8KKysgIG1lbWNweSAoc3RhcnQsIHZhbGlkX3BhY2tldCwgbGVuZ3RoKTsKKysKKysgIHN0 cnVjdCBuc19ycl9jdXJzb3IgYzsKKysgIFRFU1RfVkVSSUZZX0VYSVQgKF9fbnNfcnJfY3Vyc29y X2luaXQgKCZjLCBzdGFydCwgbGVuZ3RoKSk7CisrICBURVNUX0NPTVBBUkUgKG5zX3JyX2N1cnNv cl9yY29kZSAoJmMpLCA0KTsKKysgIFRFU1RfQ09NUEFSRSAobnNfcnJfY3Vyc29yX2FuY291bnQg KCZjKSwgMik7CisrICBURVNUX0NPTVBBUkUgKG5zX3JyX2N1cnNvcl9uc2NvdW50ICgmYyksIDB4 MjEyMik7CisrICBURVNUX0NPTVBBUkUgKG5zX3JyX2N1cnNvcl9hZGNvdW50ICgmYyksIDB4MjMy NCk7CisrICBURVNUX0NPTVBBUkVfQkxPQiAobnNfcnJfY3Vyc29yX3FuYW1lICgmYyksIDEzLCAm dmFsaWRfcGFja2V0WzEyXSwgMTMpOworKyAgVEVTVF9DT01QQVJFIChuc19ycl9jdXJzb3JfcXR5 cGUgKCZjKSwgVF9BQUFBKTsKKysgIFRFU1RfQ09NUEFSRSAobnNfcnJfY3Vyc29yX3FjbGFzcyAo JmMpLCBDX0lOKTsKKysgIFRFU1RfQ09NUEFSRSAoYy5jdXJyZW50IC0gc3RhcnQsIG9mZnNldF9v Zl9maXJzdF9yZWNvcmQpOworKworKyAgc3RydWN0IG5zX3JyX3dpcmUgcjsKKysgIFRFU1RfVkVS SUZZX0VYSVQgKF9fbnNfcnJfY3Vyc29yX25leHQgKCZjLCAmcikpOworKyAgVEVTVF9DT01QQVJF IChyLnJ0eXBlLCBUX0FBQUEpOworKyAgVEVTVF9DT01QQVJFIChyLnJjbGFzcywgQ19JTik7Cisr ICBURVNUX0NPTVBBUkUgKHIudHRsLCAweDEyMzQ1Njc4KTsKKysgIFRFU1RfQ09NUEFSRV9CTE9C IChyLnJkYXRhLCByLnJkbGVuZ3RoLAorKyAgICAgICAgICAgICAgICAgICAgICJceDkwXHg5MVx4 OTJceDkzXHg5NFx4OTVceDk2XHg5NyIKKysgICAgICAgICAgICAgICAgICAgICAiXHg5OFx4OTlc eDlhXHg5Ylx4OWNceDlkXHg5ZVx4OWYiLCAxNik7CisrICBURVNUX0NPTVBBUkUgKGMuY3VycmVu dCAtIHN0YXJ0LCBvZmZzZXRfb2Zfc2Vjb25kX3JlY29yZCk7CisrICBURVNUX1ZFUklGWSAoIV9f bnNfcnJfY3Vyc29yX25leHQgKCZjLCAmcikpOworK30KKysKKysvKiBUcnVuY2F0ZWQgcGFja2V0 IGluIHRoZSBmaXJzdCByZXNvdXJjZSByZWNvcmQuICAqLworK3N0YXRpYyB2b2lkCisrdGVzdF90 cnVuY2F0ZWRfbm9fcnIgKHNpemVfdCBsZW5ndGgpCisreworKyAgdW5zaWduZWQgY2hhciAqZW5k ID0gKHVuc2lnbmVkIGNoYXIgKikgbnRmLmJ1ZmZlciAtIG50Zi5sZW5ndGg7CisrICB1bnNpZ25l ZCBjaGFyICpzdGFydCA9IGVuZCAtIGxlbmd0aDsKKysKKysgIC8qIFByb2R1Y2UgdGhlIHRydW5j YXRlZCBwYWNrZXQuICAqLworKyAgbWVtY3B5IChzdGFydCwgdmFsaWRfcGFja2V0LCBsZW5ndGgp OworKworKyAgc3RydWN0IG5zX3JyX2N1cnNvciBjOworKyAgVEVTVF9WRVJJRllfRVhJVCAoX19u c19ycl9jdXJzb3JfaW5pdCAoJmMsIHN0YXJ0LCBsZW5ndGgpKTsKKysgIFRFU1RfQ09NUEFSRSAo bnNfcnJfY3Vyc29yX3Jjb2RlICgmYyksIDQpOworKyAgVEVTVF9DT01QQVJFIChuc19ycl9jdXJz b3JfYW5jb3VudCAoJmMpLCAyKTsKKysgIFRFU1RfQ09NUEFSRSAobnNfcnJfY3Vyc29yX25zY291 bnQgKCZjKSwgMHgyMTIyKTsKKysgIFRFU1RfQ09NUEFSRSAobnNfcnJfY3Vyc29yX2FkY291bnQg KCZjKSwgMHgyMzI0KTsKKysgIFRFU1RfQ09NUEFSRV9CTE9CIChuc19ycl9jdXJzb3JfcW5hbWUg KCZjKSwgMTMsICZ2YWxpZF9wYWNrZXRbMTJdLCAxMyk7CisrICBURVNUX0NPTVBBUkUgKG5zX3Jy X2N1cnNvcl9xdHlwZSAoJmMpLCBUX0FBQUEpOworKyAgVEVTVF9DT01QQVJFIChuc19ycl9jdXJz b3JfcWNsYXNzICgmYyksIENfSU4pOworKyAgVEVTVF9DT01QQVJFIChjLmN1cnJlbnQgLSBzdGFy dCwgb2Zmc2V0X29mX2ZpcnN0X3JlY29yZCk7CisrCisrICBzdHJ1Y3QgbnNfcnJfd2lyZSByOwor KyAgVEVTVF9WRVJJRlkgKCFfX25zX3JyX2N1cnNvcl9uZXh0ICgmYywgJnIpKTsKKyt9CisrCisr LyogVHJ1bmNhdGVkIHBhY2tldCBiZWZvcmUgZmlyc3QgcmVzb3VyY2UgcmVjb3JkLiAgKi8KKytz dGF0aWMgdm9pZAorK3Rlc3RfdHJ1bmNhdGVkX2JlZm9yZV9yciAoc2l6ZV90IGxlbmd0aCkKKyt7 CisrICB1bnNpZ25lZCBjaGFyICplbmQgPSAodW5zaWduZWQgY2hhciAqKSBudGYuYnVmZmVyIC0g bnRmLmxlbmd0aDsKKysgIHVuc2lnbmVkIGNoYXIgKnN0YXJ0ID0gZW5kIC0gbGVuZ3RoOworKwor KyAgLyogUHJvZHVjZSB0aGUgdHJ1bmNhdGVkIHBhY2tldC4gICovCisrICBtZW1jcHkgKHN0YXJ0 LCB2YWxpZF9wYWNrZXQsIGxlbmd0aCk7CisrCisrICBzdHJ1Y3QgbnNfcnJfY3Vyc29yIGM7Cisr ICBURVNUX1ZFUklGWV9FWElUICghX19uc19ycl9jdXJzb3JfaW5pdCAoJmMsIHN0YXJ0LCBsZW5n dGgpKTsKKyt9CisrCisrc3RhdGljIGludAorK2RvX3Rlc3QgKHZvaWQpCisreworKyAgbnRmID0g c3VwcG9ydF9uZXh0X3RvX2ZhdWx0X2FsbG9jYXRlIChzaXplb2YgKHZhbGlkX3BhY2tldCkpOwor KworKyAgdGVzdF92YWxpZCAoKTsKKysgIHRlc3RfY29tcHJlc3NlZF9xbmFtZSAoKTsKKysgIHRl c3RfdHdvX3F1ZXN0aW9ucyAoKTsKKysKKysgIGZvciAoaW50IGxlbmd0aCA9IG9mZnNldF9vZl9z ZWNvbmRfcmVjb3JkOyBsZW5ndGggPCBzaXplb2YgKHZhbGlkX3BhY2tldCk7CisrICAgICAgICsr bGVuZ3RoKQorKyAgICB0ZXN0X3RydW5jYXRlZF9vbmVfcnIgKGxlbmd0aCk7CisrICBmb3IgKGlu dCBsZW5ndGggPSBvZmZzZXRfb2ZfZmlyc3RfcmVjb3JkOyBsZW5ndGggPCBvZmZzZXRfb2Zfc2Vj b25kX3JlY29yZDsKKysgICAgICAgKytsZW5ndGgpCisrICAgIHRlc3RfdHJ1bmNhdGVkX25vX3Jy IChsZW5ndGgpOworKyAgZm9yIChpbnQgbGVuZ3RoID0gMDsgbGVuZ3RoIDwgb2Zmc2V0X29mX2Zp cnN0X3JlY29yZDsgKytsZW5ndGgpCisrICAgIHRlc3RfdHJ1bmNhdGVkX2JlZm9yZV9yciAobGVu Z3RoKTsKKysKKysgIHN1cHBvcnRfbmV4dF90b19mYXVsdF9mcmVlICgmbnRmKTsKKysgIHJldHVy biAwOworK30KKysKKysjaW5jbHVkZSA8c3VwcG9ydC90ZXN0LWRyaXZlci5jPgorLS0gCisyLjM4 LjEKKworCitGcm9tIGI3MTRhYjdlM2NlOTk5Yjc5NDAxY2RkMjIyOTExMjhhN2ZkNmQ4ZWYgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBGbG9yaWFuIFdlaW1lciA8ZndlaW1lckByZWRo YXQuY29tPgorRGF0ZTogVHVlLCAzMCBBdWcgMjAyMiAxMDowMjo0OSArMDIwMAorU3ViamVjdDog W1BBVENIIDI5LzcyXSBuc3NfZG5zOiBTcGxpdCBnZXRhbnN3ZXJfcHRyIGZyb20gZ2V0YW5zd2Vy X3IKKworQW5kIGV4cGFuZCB0aGUgdXNlIG9mIG5hbWVfb2sgYW5kIHF0eXBlIGluIGdldGFuc3dl cl9wdHIgKHRoZQorZm9ybWVyIGFsc28gaW4gZ2V0YW5zd2VyX3IpLgorCitBZnRlciBmdXJ0aGVy IGNsZWFudXBzLCBub3QgbXVjaCBjb2RlIHdpbGwgYmUgc2hhcmVkIGJldHdlZW4gdGhlCit0d28g ZnVuY3Rpb25zLgorCitSZXZpZXdlZC1ieTogU2lkZGhlc2ggUG95YXJla2FyIDxzaWRkaGVzaEBz b3VyY2V3YXJlLm9yZz4KKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDBkY2M0M2U5OTgxMDA1 NTQwYmYzOWRjN2JmMzNmYmFiNjJjZjllODQpCistLS0KKyByZXNvbHYvbnNzX2Rucy9kbnMtaG9z dC5jIHwgMzIwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCisgMSBmaWxl IGNoYW5nZWQsIDI2OCBpbnNlcnRpb25zKCspLCA1MiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdp dCBhL3Jlc29sdi9uc3NfZG5zL2Rucy1ob3N0LmMgYi9yZXNvbHYvbnNzX2Rucy9kbnMtaG9zdC5j CitpbmRleCA1NDRjZmZiZWNkLi5kMzg0ZTFmODJkIDEwMDY0NAorLS0tIGEvcmVzb2x2L25zc19k bnMvZG5zLWhvc3QuYworKysrIGIvcmVzb2x2L25zc19kbnMvZG5zLWhvc3QuYworQEAgLTExNiw2 ICsxMTYsMTEgQEAgc3RhdGljIGVudW0gbnNzX3N0YXR1cyBnZXRhbnN3ZXJfciAoc3RydWN0IHJl c29sdl9jb250ZXh0ICpjdHgsCisgCQkJCSAgICBzdHJ1Y3QgaG9zdGVudCAqcmVzdWx0LCBjaGFy ICpidWZmZXIsCisgCQkJCSAgICBzaXplX3QgYnVmbGVuLCBpbnQgKmVycm5vcCwgaW50ICpoX2Vy cm5vcCwKKyAJCQkJICAgIGludCBtYXAsIGludDMyX3QgKnR0bHAsIGNoYXIgKipjYW5vbnApOwor K3N0YXRpYyBlbnVtIG5zc19zdGF0dXMgZ2V0YW5zd2VyX3B0ciAoY29uc3QgcXVlcnlidWYgKmFu c3dlciwgaW50IGFuc2xlbiwKKysJCQkJICAgICAgY29uc3QgY2hhciAqcW5hbWUsCisrCQkJCSAg ICAgIHN0cnVjdCBob3N0ZW50ICpyZXN1bHQsIGNoYXIgKmJ1ZmZlciwKKysJCQkJICAgICAgc2l6 ZV90IGJ1ZmxlbiwgaW50ICplcnJub3AsCisrCQkJCSAgICAgIGludCAqaF9lcnJub3AsIGludDMy X3QgKnR0bHApOworIAorIHN0YXRpYyBlbnVtIG5zc19zdGF0dXMgZ2FpaF9nZXRhbnN3ZXIgKGNv bnN0IHF1ZXJ5YnVmICphbnN3ZXIxLCBpbnQgYW5zbGVuMSwKKyAJCQkJICAgICAgIGNvbnN0IHF1 ZXJ5YnVmICphbnN3ZXIyLCBpbnQgYW5zbGVuMiwKK0BAIC01NjEsOSArNTY2LDggQEAgX25zc19k bnNfZ2V0aG9zdGJ5YWRkcjJfciAoY29uc3Qgdm9pZCAqYWRkciwgc29ja2xlbl90IGxlbiwgaW50 IGFmLAorICAgICAgIHJldHVybiBlcnJubyA9PSBFQ09OTlJFRlVTRUQgPyBOU1NfU1RBVFVTX1VO QVZBSUwgOiBOU1NfU1RBVFVTX05PVEZPVU5EOworICAgICB9CisgCistICBzdGF0dXMgPSBnZXRh bnN3ZXJfcgorLSAgICAoY3R4LCBob3N0X2J1ZmZlci5idWYsIG4sIHFidWYsIFRfUFRSLCByZXN1 bHQsIGJ1ZmZlciwgYnVmbGVuLAorLSAgICAgZXJybm9wLCBoX2Vycm5vcCwgMCAvKiBYWFggKi8s IHR0bHAsIE5VTEwpOworKyAgc3RhdHVzID0gZ2V0YW5zd2VyX3B0ciAoaG9zdF9idWZmZXIuYnVm LCBuLCBxYnVmLCByZXN1bHQsCisrCQkJICBidWZmZXIsIGJ1ZmxlbiwgZXJybm9wLCBoX2Vycm5v cCwgdHRscCk7CisgICBpZiAoaG9zdF9idWZmZXIuYnVmICE9IG9yaWdfaG9zdF9idWZmZXIpCisg ICAgIGZyZWUgKGhvc3RfYnVmZmVyLmJ1Zik7CisgICBpZiAoc3RhdHVzICE9IE5TU19TVEFUVVNf U1VDQ0VTUykKK0BAIC02NTksOCArNjYzLDYgQEAgZ2V0YW5zd2VyX3IgKHN0cnVjdCByZXNvbHZf Y29udGV4dCAqY3R4LAorICAgaW50IGhhdmVhbnN3ZXIsIGhhZF9lcnJvcjsKKyAgIGNoYXIgKmJw LCAqKmFwLCAqKmhhcDsKKyAgIGNoYXIgdGJ1ZltNQVhETkFNRV07CistICBjb25zdCBjaGFyICp0 bmFtZTsKKy0gIGludCAoKm5hbWVfb2spIChjb25zdCBjaGFyICopOworICAgdV9jaGFyIHBhY2t0 bXBbTlNfTUFYQ0ROQU1FXTsKKyAgIGludCBoYXZlX3RvX21hcCA9IDA7CisgICB1aW50cHRyX3Qg cGFkID0gLSh1aW50cHRyX3QpIGJ1ZmZlciAlIF9fYWxpZ25vZl9fIChzdHJ1Y3QgaG9zdF9kYXRh KTsKK0BAIC02NzksMjIgKzY4MSw4IEBAIGdldGFuc3dlcl9yIChzdHJ1Y3QgcmVzb2x2X2NvbnRl eHQgKmN0eCwKKyAgIGlmIChidWZsZW4gLSBzaXplb2YgKHN0cnVjdCBob3N0X2RhdGEpICE9IGxp bmVidWZsZW4pCisgICAgIGxpbmVidWZsZW4gPSBJTlRfTUFYOworIAorLSAgdG5hbWUgPSBxbmFt ZTsKKyAgIHJlc3VsdC0+aF9uYW1lID0gTlVMTDsKKyAgIGVuZF9vZl9tZXNzYWdlID0gYW5zd2Vy LT5idWYgKyBhbnNsZW47CistICBzd2l0Y2ggKHF0eXBlKQorLSAgICB7CistICAgIGNhc2UgVF9B OgorLSAgICBjYXNlIFRfQUFBQToKKy0gICAgICBuYW1lX29rID0gX19saWJjX3Jlc19obm9rOwor LSAgICAgIGJyZWFrOworLSAgICBjYXNlIFRfUFRSOgorLSAgICAgIG5hbWVfb2sgPSBfX2xpYmNf cmVzX2Rub2s7CistICAgICAgYnJlYWs7CistICAgIGRlZmF1bHQ6CistICAgICAgKmVycm5vcCA9 IEVOT0VOVDsKKy0gICAgICByZXR1cm4gTlNTX1NUQVRVU19VTkFWQUlMOyAgLyogWFhYIHNob3Vs ZCBiZSBhYm9ydCgpOyAqLworLSAgICB9CisgCisgICAvKgorICAgICogZmluZCBmaXJzdCBzYXRp c2ZhY3RvcnkgYW5zd2VyCitAQCAtNzI5LDcgKzcxNyw3IEBAIGdldGFuc3dlcl9yIChzdHJ1Y3Qg cmVzb2x2X2NvbnRleHQgKmN0eCwKKyAgICAgICAqaF9lcnJub3AgPSBOT19SRUNPVkVSWTsKKyAg ICAgICByZXR1cm4gTlNTX1NUQVRVU19VTkFWQUlMOworICAgICB9CistICBpZiAoX19nbGliY191 bmxpa2VseSAobmFtZV9vayAoYnApID09IDApKQorKyAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKF9f bGliY19yZXNfaG5vayAoYnApID09IDApKQorICAgICB7CisgICAgICAgZXJybm8gPSBFQkFETVNH OworICAgICAgICplcnJub3AgPSBFQkFETVNHOworQEAgLTc4Myw3ICs3NzEsNyBAQCBnZXRhbnN3 ZXJfciAoc3RydWN0IHJlc29sdl9jb250ZXh0ICpjdHgsCisgCSAgbiA9IC0xOworIAl9CisgCist ICAgICAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKG4gPCAwIHx8ICgqbmFtZV9vaykgKGJwKSA9PSAw KSkKKysgICAgICBpZiAoX19nbGliY191bmxpa2VseSAobiA8IDAgfHwgX19saWJjX3Jlc19obm9r IChicCkgPT0gMCkpCisgCXsKKyAJICArK2hhZF9lcnJvcjsKKyAJICBjb250aW51ZTsKK0BAIC04 MTYsNyArODA0LDcgQEAgZ2V0YW5zd2VyX3IgKHN0cnVjdCByZXNvbHZfY29udGV4dCAqY3R4LAor IAkgIGNvbnRpbnVlOwkJCS8qIFhYWCAtIGhhZF9lcnJvcisrID8gKi8KKyAJfQorIAorLSAgICAg IGlmICgocXR5cGUgPT0gVF9BIHx8IHF0eXBlID09IFRfQUFBQSkgJiYgdHlwZSA9PSBUX0NOQU1F KQorKyAgICAgIGlmICh0eXBlID09IFRfQ05BTUUpCisgCXsKKyAJICAvKiBBIENOQU1FIGNvdWxk IGFsc28gaGF2ZSBhIFRUTCBlbnRyeS4gICovCisgCSAgaWYgKHR0bHAgIT0gTlVMTCAmJiB0dGwg PCAqdHRscCkKK0BAIC04MjYsNyArODE0LDcgQEAgZ2V0YW5zd2VyX3IgKHN0cnVjdCByZXNvbHZf Y29udGV4dCAqY3R4LAorIAkgICAgY29udGludWU7CisgCSAgbiA9IF9fbGliY19kbl9leHBhbmQg KGFuc3dlci0+YnVmLCBlbmRfb2ZfbWVzc2FnZSwgY3AsCisgCQkJCXRidWYsIHNpemVvZiB0YnVm KTsKKy0JICBpZiAoX19nbGliY191bmxpa2VseSAobiA8IDAgfHwgKCpuYW1lX29rKSAodGJ1Zikg PT0gMCkpCisrCSAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKG4gPCAwIHx8IF9fbGliY19yZXNfaG5v ayAodGJ1ZikgPT0gMCkpCisgCSAgICB7CisgCSAgICAgICsraGFkX2Vycm9yOworIAkgICAgICBj b250aW51ZTsKK0BAIC04NTcsNyArODQ1LDI2MCBAQCBnZXRhbnN3ZXJfciAoc3RydWN0IHJlc29s dl9jb250ZXh0ICpjdHgsCisgCSAgY29udGludWU7CisgCX0KKyAKKy0gICAgICBpZiAocXR5cGUg PT0gVF9QVFIgJiYgdHlwZSA9PSBUX0NOQU1FKQorKyAgICAgIGlmICh0eXBlID09IFRfQSAmJiBx dHlwZSA9PSBUX0FBQUEgJiYgbWFwKQorKwloYXZlX3RvX21hcCA9IDE7CisrICAgICAgZWxzZSBp ZiAoX19nbGliY191bmxpa2VseSAodHlwZSAhPSBxdHlwZSkpCisrCXsKKysJICBjcCArPSBuOwor KwkgIGNvbnRpbnVlOwkJCS8qIFhYWCAtIGhhZF9lcnJvcisrID8gKi8KKysJfQorKworKyAgICAg IHN3aXRjaCAodHlwZSkKKysJeworKwljYXNlIFRfQToKKysJY2FzZSBUX0FBQUE6CisrCSAgaWYg KF9fZ2xpYmNfdW5saWtlbHkgKF9fc3RyY2FzZWNtcCAocmVzdWx0LT5oX25hbWUsIGJwKSAhPSAw KSkKKysJICAgIHsKKysJICAgICAgY3AgKz0gbjsKKysJICAgICAgY29udGludWU7CQkJLyogWFhY IC0gaGFkX2Vycm9yKysgPyAqLworKwkgICAgfQorKworKwkgIC8qIFN0b3AgcGFyc2luZyBhdCBh IHJlY29yZCB3aG9zZSBsZW5ndGggaXMgaW5jb3JyZWN0LiAgKi8KKysJICBpZiAobiAhPSBycnR5 cGVfdG9fcmRhdGFfbGVuZ3RoICh0eXBlKSkKKysJICAgIHsKKysJICAgICAgKytoYWRfZXJyb3I7 CisrCSAgICAgIGJyZWFrOworKwkgICAgfQorKworKwkgIC8qIFNraXAgcmVjb3JkcyBvZiB0aGUg d3JvbmcgdHlwZS4gICovCisrCSAgaWYgKG4gIT0gcmVzdWx0LT5oX2xlbmd0aCkKKysJICAgIHsK KysJICAgICAgY3AgKz0gbjsKKysJICAgICAgY29udGludWU7CisrCSAgICB9CisrCSAgaWYgKCFo YXZlYW5zd2VyKQorKwkgICAgeworKwkgICAgICBpbnQgbm47CisrCisrCSAgICAgIC8qIFdlIGNv bXBvc2UgYSBzaW5nbGUgaG9zdGVudCBvdXQgb2YgdGhlIGVudGlyZSBjaGFpbiBvZgorKwkgICAg ICAgICBlbnRyaWVzLCBzbyB0aGUgVFRMIG9mIHRoZSBob3N0ZW50IGlzIGVzc2VudGlhbGx5IHRo ZSBsb3dlc3QKKysJCSBUVEwgaW4gdGhlIGNoYWluLiAgKi8KKysJICAgICAgaWYgKHR0bHAgIT0g TlVMTCAmJiB0dGwgPCAqdHRscCkKKysJCSp0dGxwID0gdHRsOworKwkgICAgICBpZiAoY2Fub25w ICE9IE5VTEwpCisrCQkqY2Fub25wID0gYnA7CisrCSAgICAgIHJlc3VsdC0+aF9uYW1lID0gYnA7 CisrCSAgICAgIG5uID0gc3RybGVuIChicCkgKyAxOwkvKiBmb3IgdGhlIFwwICovCisrCSAgICAg IGJwICs9IG5uOworKwkgICAgICBsaW5lYnVmbGVuIC09IG5uOworKwkgICAgfQorKworKwkgIC8q IFByb3ZpZGUgc3VmZmljaWVudCBhbGlnbm1lbnQgZm9yIGJvdGggYWRkcmVzcworKwkgICAgIGZh bWlsaWVzLiAgKi8KKysJICBlbnVtIHsgYWxpZ24gPSA0IH07CisrCSAgX1N0YXRpY19hc3NlcnQg KChhbGlnbiAlIF9fYWxpZ25vZl9fIChzdHJ1Y3QgaW5fYWRkcikpID09IDAsCisrCQkJICAic3Ry dWN0IGluX2FkZHIgYWxpZ25tZW50Iik7CisrCSAgX1N0YXRpY19hc3NlcnQgKChhbGlnbiAlIF9f YWxpZ25vZl9fIChzdHJ1Y3QgaW42X2FkZHIpKSA9PSAwLAorKwkJCSAgInN0cnVjdCBpbjZfYWRk ciBhbGlnbm1lbnQiKTsKKysJICB7CisrCSAgICBjaGFyICpuZXdfYnAgPSBQVFJfQUxJR05fVVAg KGJwLCBhbGlnbik7CisrCSAgICBsaW5lYnVmbGVuIC09IG5ld19icCAtIGJwOworKwkgICAgYnAg PSBuZXdfYnA7CisrCSAgfQorKworKwkgIGlmIChfX2dsaWJjX3VubGlrZWx5IChuID4gbGluZWJ1 ZmxlbikpCisrCSAgICBnb3RvIHRvb19zbWFsbDsKKysJICBicCA9IF9fbWVtcGNweSAoKmhhcCsr ID0gYnAsIGNwLCBuKTsKKysJICBjcCArPSBuOworKwkgIGxpbmVidWZsZW4gLT0gbjsKKysJICBi cmVhazsKKysJZGVmYXVsdDoKKysJICBhYm9ydCAoKTsKKysJfQorKyAgICAgIGlmIChoYWRfZXJy b3IgPT0gMCkKKysJKytoYXZlYW5zd2VyOworKyAgICB9CisrCisrICBpZiAoaGF2ZWFuc3dlciA+ IDApCisrICAgIHsKKysgICAgICAqYXAgPSBOVUxMOworKyAgICAgICpoYXAgPSBOVUxMOworKyAg ICAgIC8qCisrICAgICAgICogTm90ZTogd2Ugc29ydCBldmVuIGlmIGhvc3QgY2FuIHRha2Ugb25s eSBvbmUgYWRkcmVzcworKyAgICAgICAqIGluIGl0cyByZXR1cm4gc3RydWN0dXJlcyAtIHNob3Vs ZCBnaXZlIGl0IHRoZSAiYmVzdCIKKysgICAgICAgKiBhZGRyZXNzIGluIHRoYXQgY2FzZSwgbm90 IHNvbWUgcmFuZG9tIG9uZQorKyAgICAgICAqLworKyAgICAgIGlmIChoYXZlYW5zd2VyID4gMSAm JiBxdHlwZSA9PSBUX0EKKysJICAmJiBfX3Jlc29sdl9jb250ZXh0X3NvcnRfY291bnQgKGN0eCkg PiAwKQorKwlhZGRyc29ydCAoY3R4LCBob3N0X2RhdGEtPmhfYWRkcl9wdHJzLCBoYXZlYW5zd2Vy KTsKKysKKysgICAgICBpZiAocmVzdWx0LT5oX25hbWUgPT0gTlVMTCkKKysJeworKwkgIG4gPSBz dHJsZW4gKHFuYW1lKSArIDE7CS8qIEZvciB0aGUgXDAuICAqLworKwkgIGlmIChuID4gbGluZWJ1 ZmxlbikKKysJICAgIGdvdG8gdG9vX3NtYWxsOworKwkgIGlmIChuID49IE1BWEhPU1ROQU1FTEVO KQorKwkgICAgZ290byBub19yZWNvdmVyeTsKKysJICByZXN1bHQtPmhfbmFtZSA9IGJwOworKwkg IGJwID0gX19tZW1wY3B5IChicCwgcW5hbWUsIG4pOwkvKiBDYW5ub3Qgb3ZlcmZsb3cuICAqLwor KwkgIGxpbmVidWZsZW4gLT0gbjsKKysJfQorKworKyAgICAgIGlmIChoYXZlX3RvX21hcCkKKysJ aWYgKG1hcF92NHY2X2hvc3RlbnQgKHJlc3VsdCwgJmJwLCAmbGluZWJ1ZmxlbikpCisrCSAgZ290 byB0b29fc21hbGw7CisrICAgICAgKmhfZXJybm9wID0gTkVUREJfU1VDQ0VTUzsKKysgICAgICBy ZXR1cm4gTlNTX1NUQVRVU19TVUNDRVNTOworKyAgICB9CisrIG5vX3JlY292ZXJ5OgorKyAgKmhf ZXJybm9wID0gTk9fUkVDT1ZFUlk7CisrICAqZXJybm9wID0gRU5PRU5UOworKyAgLyogU3BlY2lh bCBjYXNlIGhlcmU6IGlmIHRoZSByZXNvbHZlciBzZW50IGEgcmVzdWx0IGJ1dCBpdCBvbmx5Cisr ICAgICBjb250YWlucyBhIENOQU1FIHdoaWxlIHdlIGFyZSBsb29raW5nIGZvciBhIFRfQSBvciBU X0FBQUEgcmVjb3JkLAorKyAgICAgd2UgZmFpbCB3aXRoIE5PVEZPVU5EIGluc3RlYWQgb2YgVFJZ QUdBSU4uICAqLworKyAgcmV0dXJuICgocXR5cGUgPT0gVF9BIHx8IHF0eXBlID09IFRfQUFBQSkg JiYgYXAgIT0gaG9zdF9kYXRhLT5hbGlhc2VzCisrCSAgID8gTlNTX1NUQVRVU19OT1RGT1VORCA6 IE5TU19TVEFUVVNfVFJZQUdBSU4pOworK30KKysKKytzdGF0aWMgZW51bSBuc3Nfc3RhdHVzCisr Z2V0YW5zd2VyX3B0ciAoY29uc3QgcXVlcnlidWYgKmFuc3dlciwgaW50IGFuc2xlbiwgY29uc3Qg Y2hhciAqcW5hbWUsCisrCSAgICAgICBzdHJ1Y3QgaG9zdGVudCAqcmVzdWx0LCBjaGFyICpidWZm ZXIsIHNpemVfdCBidWZsZW4sCisrCSAgICAgICBpbnQgKmVycm5vcCwgaW50ICpoX2Vycm5vcCwg aW50MzJfdCAqdHRscCkKKyt7CisrICBzdHJ1Y3QgaG9zdF9kYXRhCisrICB7CisrICAgIGNoYXIg KmFsaWFzZXNbTUFYX05SX0FMSUFTRVNdOworKyAgICB1bnNpZ25lZCBjaGFyIGhvc3RfYWRkclsx Nl07CS8qIElQdjQgb3IgSVB2NiAqLworKyAgICBjaGFyICpoX2FkZHJfcHRyc1swXTsKKysgIH0g Kmhvc3RfZGF0YTsKKysgIGludCBsaW5lYnVmbGVuOworKyAgY29uc3QgSEVBREVSICpocDsKKysg IGNvbnN0IHVfY2hhciAqZW5kX29mX21lc3NhZ2UsICpjcDsKKysgIGludCBuLCBhbmNvdW50LCBx ZGNvdW50OworKyAgaW50IGhhdmVhbnN3ZXIsIGhhZF9lcnJvcjsKKysgIGNoYXIgKmJwLCAqKmFw LCAqKmhhcDsKKysgIGNoYXIgdGJ1ZltNQVhETkFNRV07CisrICBjb25zdCBjaGFyICp0bmFtZTsK KysgIHVfY2hhciBwYWNrdG1wW05TX01BWENETkFNRV07CisrICB1aW50cHRyX3QgcGFkID0gLSh1 aW50cHRyX3QpIGJ1ZmZlciAlIF9fYWxpZ25vZl9fIChzdHJ1Y3QgaG9zdF9kYXRhKTsKKysgIGJ1 ZmZlciArPSBwYWQ7CisrICBidWZsZW4gPSBidWZsZW4gPiBwYWQgPyBidWZsZW4gLSBwYWQgOiAw OworKyAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKGJ1ZmxlbiA8IHNpemVvZiAoc3RydWN0IGhvc3Rf ZGF0YSkpKQorKyAgICB7CisrICAgICAgLyogVGhlIGJ1ZmZlciBpcyB0b28gc21hbGwuICAqLwor KyAgICB0b29fc21hbGw6CisrICAgICAgKmVycm5vcCA9IEVSQU5HRTsKKysgICAgICAqaF9lcnJu b3AgPSBORVREQl9JTlRFUk5BTDsKKysgICAgICByZXR1cm4gTlNTX1NUQVRVU19UUllBR0FJTjsK KysgICAgfQorKyAgaG9zdF9kYXRhID0gKHN0cnVjdCBob3N0X2RhdGEgKikgYnVmZmVyOworKyAg bGluZWJ1ZmxlbiA9IGJ1ZmxlbiAtIHNpemVvZiAoc3RydWN0IGhvc3RfZGF0YSk7CisrICBpZiAo YnVmbGVuIC0gc2l6ZW9mIChzdHJ1Y3QgaG9zdF9kYXRhKSAhPSBsaW5lYnVmbGVuKQorKyAgICBs aW5lYnVmbGVuID0gSU5UX01BWDsKKysKKysgIHRuYW1lID0gcW5hbWU7CisrICByZXN1bHQtPmhf bmFtZSA9IE5VTEw7CisrICBlbmRfb2ZfbWVzc2FnZSA9IGFuc3dlci0+YnVmICsgYW5zbGVuOwor KworKyAgLyoKKysgICAqIGZpbmQgZmlyc3Qgc2F0aXNmYWN0b3J5IGFuc3dlcgorKyAgICovCisr ICBocCA9ICZhbnN3ZXItPmhkcjsKKysgIGFuY291bnQgPSBudG9ocyAoaHAtPmFuY291bnQpOwor KyAgcWRjb3VudCA9IG50b2hzIChocC0+cWRjb3VudCk7CisrICBjcCA9IGFuc3dlci0+YnVmICsg SEZJWEVEU1o7CisrICBpZiAoX19nbGliY191bmxpa2VseSAocWRjb3VudCAhPSAxKSkKKysgICAg eworKyAgICAgICpoX2Vycm5vcCA9IE5PX1JFQ09WRVJZOworKyAgICAgIHJldHVybiBOU1NfU1RB VFVTX1VOQVZBSUw7CisrICAgIH0KKysgIGlmIChzaXplb2YgKHN0cnVjdCBob3N0X2RhdGEpICsg KGFuY291bnQgKyAxKSAqIHNpemVvZiAoY2hhciAqKSA+PSBidWZsZW4pCisrICAgIGdvdG8gdG9v X3NtYWxsOworKyAgYnAgPSAoY2hhciAqKSAmaG9zdF9kYXRhLT5oX2FkZHJfcHRyc1thbmNvdW50 ICsgMV07CisrICBsaW5lYnVmbGVuIC09IChhbmNvdW50ICsgMSkgKiBzaXplb2YgKGNoYXIgKik7 CisrCisrICBuID0gX19uc19uYW1lX3VucGFjayAoYW5zd2VyLT5idWYsIGVuZF9vZl9tZXNzYWdl LCBjcCwKKysJCQlwYWNrdG1wLCBzaXplb2YgcGFja3RtcCk7CisrICBpZiAobiAhPSAtMSAmJiBf X25zX25hbWVfbnRvcCAocGFja3RtcCwgYnAsIGxpbmVidWZsZW4pID09IC0xKQorKyAgICB7Cisr ICAgICAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKGVycm5vID09IEVNU0dTSVpFKSkKKysJZ290byB0 b29fc21hbGw7CisrCisrICAgICAgbiA9IC0xOworKyAgICB9CisrCisrICBpZiAoX19nbGliY191 bmxpa2VseSAobiA8IDApKQorKyAgICB7CisrICAgICAgKmVycm5vcCA9IGVycm5vOworKyAgICAg ICpoX2Vycm5vcCA9IE5PX1JFQ09WRVJZOworKyAgICAgIHJldHVybiBOU1NfU1RBVFVTX1VOQVZB SUw7CisrICAgIH0KKysgIGlmIChfX2dsaWJjX3VubGlrZWx5IChfX2xpYmNfcmVzX2Rub2sgKGJw KSA9PSAwKSkKKysgICAgeworKyAgICAgIGVycm5vID0gRUJBRE1TRzsKKysgICAgICAqZXJybm9w ID0gRUJBRE1TRzsKKysgICAgICAqaF9lcnJub3AgPSBOT19SRUNPVkVSWTsKKysgICAgICByZXR1 cm4gTlNTX1NUQVRVU19VTkFWQUlMOworKyAgICB9CisrICBjcCArPSBuICsgUUZJWEVEU1o7Cisr CisrICBhcCA9IGhvc3RfZGF0YS0+YWxpYXNlczsKKysgICphcCA9IE5VTEw7CisrICByZXN1bHQt PmhfYWxpYXNlcyA9IGhvc3RfZGF0YS0+YWxpYXNlczsKKysgIGhhcCA9IGhvc3RfZGF0YS0+aF9h ZGRyX3B0cnM7CisrICAqaGFwID0gTlVMTDsKKysgIHJlc3VsdC0+aF9hZGRyX2xpc3QgPSBob3N0 X2RhdGEtPmhfYWRkcl9wdHJzOworKyAgaGF2ZWFuc3dlciA9IDA7CisrICBoYWRfZXJyb3IgPSAw OworKworKyAgd2hpbGUgKGFuY291bnQtLSA+IDAgJiYgY3AgPCBlbmRfb2ZfbWVzc2FnZSAmJiBo YWRfZXJyb3IgPT0gMCkKKysgICAgeworKyAgICAgIGludCB0eXBlLCBjbGFzczsKKysKKysgICAg ICBuID0gX19uc19uYW1lX3VucGFjayAoYW5zd2VyLT5idWYsIGVuZF9vZl9tZXNzYWdlLCBjcCwK KysJCQkgICAgcGFja3RtcCwgc2l6ZW9mIHBhY2t0bXApOworKyAgICAgIGlmIChuICE9IC0xICYm IF9fbnNfbmFtZV9udG9wIChwYWNrdG1wLCBicCwgbGluZWJ1ZmxlbikgPT0gLTEpCisrCXsKKysJ ICBpZiAoX19nbGliY191bmxpa2VseSAoZXJybm8gPT0gRU1TR1NJWkUpKQorKwkgICAgZ290byB0 b29fc21hbGw7CisrCisrCSAgbiA9IC0xOworKwl9CisrCisrICAgICAgaWYgKF9fZ2xpYmNfdW5s aWtlbHkgKG4gPCAwIHx8IF9fbGliY19yZXNfZG5vayAoYnApID09IDApKQorKwl7CisrCSAgKyto YWRfZXJyb3I7CisrCSAgY29udGludWU7CisrCX0KKysgICAgICBjcCArPSBuOwkJCQkvKiBuYW1l ICovCisrCisrICAgICAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKGNwICsgMTAgPiBlbmRfb2ZfbWVz c2FnZSkpCisrCXsKKysJICArK2hhZF9lcnJvcjsKKysJICBjb250aW51ZTsKKysJfQorKworKyAg ICAgIE5TX0dFVDE2ICh0eXBlLCBjcCk7CisrICAgICAgTlNfR0VUMTYgKGNsYXNzLCBjcCk7Cisr ICAgICAgaW50MzJfdCB0dGw7CisrICAgICAgTlNfR0VUMzIgKHR0bCwgY3ApOworKyAgICAgIE5T X0dFVDE2IChuLCBjcCk7CQkvKiBSREFUQSBsZW5ndGguICAqLworKworKyAgICAgIGlmIChlbmRf b2ZfbWVzc2FnZSAtIGNwIDwgbikKKysJeworKwkgIC8qIFJEQVRBIGV4dGVuZHMgYmV5b25kIHRo ZSBlbmQgb2YgdGhlIHBhY2tldC4gICovCisrCSAgKytoYWRfZXJyb3I7CisrCSAgY29udGludWU7 CisrCX0KKysKKysgICAgICBpZiAoX19nbGliY191bmxpa2VseSAoY2xhc3MgIT0gQ19JTikpCisr CXsKKysJICAvKiBYWFggLSBkZWJ1Zz8gc3lzbG9nPyAqLworKwkgIGNwICs9IG47CisrCSAgY29u dGludWU7CQkJLyogWFhYIC0gaGFkX2Vycm9yKysgPyAqLworKwl9CisrCisrICAgICAgaWYgKHR5 cGUgPT0gVF9DTkFNRSkKKyAJeworIAkgIC8qIEEgQ05BTUUgY291bGQgYWxzbyBoYXZlIGEgVFRM IGVudHJ5LiAgKi8KKyAJICBpZiAodHRscCAhPSBOVUxMICYmIHR0bCA8ICp0dGxwKQorQEAgLTg4 NiwxNCArMTEyNyw2IEBAIGdldGFuc3dlcl9yIChzdHJ1Y3QgcmVzb2x2X2NvbnRleHQgKmN0eCwK KyAJICBjb250aW51ZTsKKyAJfQorIAorLSAgICAgIGlmICh0eXBlID09IFRfQSAmJiBxdHlwZSA9 PSBUX0FBQUEgJiYgbWFwKQorLQloYXZlX3RvX21hcCA9IDE7CistICAgICAgZWxzZSBpZiAoX19n bGliY191bmxpa2VseSAodHlwZSAhPSBxdHlwZSkpCistCXsKKy0JICBjcCArPSBuOworLQkgIGNv bnRpbnVlOwkJCS8qIFhYWCAtIGhhZF9lcnJvcisrID8gKi8KKy0JfQorLQorICAgICAgIHN3aXRj aCAodHlwZSkKKyAJeworIAljYXNlIFRfUFRSOgorQEAgLTk1NSw4ICsxMTg4LDYgQEAgZ2V0YW5z d2VyX3IgKHN0cnVjdCByZXNvbHZfY29udGV4dCAqY3R4LAorIAkJIFRUTCBpbiB0aGUgY2hhaW4u ICAqLworIAkgICAgICBpZiAodHRscCAhPSBOVUxMICYmIHR0bCA8ICp0dGxwKQorIAkJKnR0bHAg PSB0dGw7CistCSAgICAgIGlmIChjYW5vbnAgIT0gTlVMTCkKKy0JCSpjYW5vbnAgPSBicDsKKyAJ ICAgICAgcmVzdWx0LT5oX25hbWUgPSBicDsKKyAJICAgICAgbm4gPSBzdHJsZW4gKGJwKSArIDE7 CS8qIGZvciB0aGUgXDAgKi8KKyAJICAgICAgYnAgKz0gbm47CitAQCAtOTgzLDcgKzEyMTQsOCBA QCBnZXRhbnN3ZXJfciAoc3RydWN0IHJlc29sdl9jb250ZXh0ICpjdHgsCisgCSAgbGluZWJ1Zmxl biAtPSBuOworIAkgIGJyZWFrOworIAlkZWZhdWx0OgorLQkgIGFib3J0ICgpOworKwkgIGNwICs9 IG47CisrCSAgY29udGludWU7CQkJLyogWFhYIC0gaGFkX2Vycm9yKysgPyAqLworIAl9CisgICAg ICAgaWYgKGhhZF9lcnJvciA9PSAwKQorIAkrK2hhdmVhbnN3ZXI7CitAQCAtOTkzLDE0ICsxMjI1 LDYgQEAgZ2V0YW5zd2VyX3IgKHN0cnVjdCByZXNvbHZfY29udGV4dCAqY3R4LAorICAgICB7Cisg ICAgICAgKmFwID0gTlVMTDsKKyAgICAgICAqaGFwID0gTlVMTDsKKy0gICAgICAvKgorLSAgICAg ICAqIE5vdGU6IHdlIHNvcnQgZXZlbiBpZiBob3N0IGNhbiB0YWtlIG9ubHkgb25lIGFkZHJlc3MK Ky0gICAgICAgKiBpbiBpdHMgcmV0dXJuIHN0cnVjdHVyZXMgLSBzaG91bGQgZ2l2ZSBpdCB0aGUg ImJlc3QiCistICAgICAgICogYWRkcmVzcyBpbiB0aGF0IGNhc2UsIG5vdCBzb21lIHJhbmRvbSBv bmUKKy0gICAgICAgKi8KKy0gICAgICBpZiAoaGF2ZWFuc3dlciA+IDEgJiYgcXR5cGUgPT0gVF9B CistCSAgJiYgX19yZXNvbHZfY29udGV4dF9zb3J0X2NvdW50IChjdHgpID4gMCkKKy0JYWRkcnNv cnQgKGN0eCwgaG9zdF9kYXRhLT5oX2FkZHJfcHRycywgaGF2ZWFuc3dlcik7CisgCisgICAgICAg aWYgKHJlc3VsdC0+aF9uYW1lID09IE5VTEwpCisgCXsKK0BAIC0xMDE0LDIzICsxMjM4LDE1IEBA IGdldGFuc3dlcl9yIChzdHJ1Y3QgcmVzb2x2X2NvbnRleHQgKmN0eCwKKyAJICBsaW5lYnVmbGVu IC09IG47CisgCX0KKyAKKy0gICAgICBpZiAoaGF2ZV90b19tYXApCistCWlmIChtYXBfdjR2Nl9o b3N0ZW50IChyZXN1bHQsICZicCwgJmxpbmVidWZsZW4pKQorLQkgIGdvdG8gdG9vX3NtYWxsOwor ICAgICAgICpoX2Vycm5vcCA9IE5FVERCX1NVQ0NFU1M7CisgICAgICAgcmV0dXJuIE5TU19TVEFU VVNfU1VDQ0VTUzsKKyAgICAgfQorICBub19yZWNvdmVyeToKKyAgICpoX2Vycm5vcCA9IE5PX1JF Q09WRVJZOworICAgKmVycm5vcCA9IEVOT0VOVDsKKy0gIC8qIFNwZWNpYWwgY2FzZSBoZXJlOiBp ZiB0aGUgcmVzb2x2ZXIgc2VudCBhIHJlc3VsdCBidXQgaXQgb25seQorLSAgICAgY29udGFpbnMg YSBDTkFNRSB3aGlsZSB3ZSBhcmUgbG9va2luZyBmb3IgYSBUX0Egb3IgVF9BQUFBIHJlY29yZCwK Ky0gICAgIHdlIGZhaWwgd2l0aCBOT1RGT1VORCBpbnN0ZWFkIG9mIFRSWUFHQUlOLiAgKi8KKy0g IHJldHVybiAoKHF0eXBlID09IFRfQSB8fCBxdHlwZSA9PSBUX0FBQUEpICYmIGFwICE9IGhvc3Rf ZGF0YS0+YWxpYXNlcworLQkgICA/IE5TU19TVEFUVVNfTk9URk9VTkQgOiBOU1NfU1RBVFVTX1RS WUFHQUlOKTsKKysgIHJldHVybiBOU1NfU1RBVFVTX1RSWUFHQUlOOworIH0KKyAKKy0KKyBzdGF0 aWMgZW51bSBuc3Nfc3RhdHVzCisgZ2FpaF9nZXRhbnN3ZXJfc2xpY2UgKGNvbnN0IHF1ZXJ5YnVm ICphbnN3ZXIsIGludCBhbnNsZW4sIGNvbnN0IGNoYXIgKnFuYW1lLAorIAkJICAgICAgc3RydWN0 IGdhaWhfYWRkcnR1cGxlICoqKnBhdHAsCistLSAKKzIuMzguMQorCisKK0Zyb20gNzdmNTIzYzQ3 Mzg3OGVjMDA1MTU4MmVmMTUxNjFjNjk4Mjg3OTA5NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK K0Zyb206IEZsb3JpYW4gV2VpbWVyIDxmd2VpbWVyQHJlZGhhdC5jb20+CitEYXRlOiBUdWUsIDMw IEF1ZyAyMDIyIDEwOjAyOjQ5ICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggMzAvNzJdIG5zc19kbnM6 IFJld3JpdGUgX25zc19kbnNfZ2V0aG9zdGJ5YWRkcjJfciBhbmQKKyBnZXRhbnN3ZXJfcHRyCisK K1RoZSBzaW1wbGlmaWNhdGlvbiB0YWtlcyBhZHZhbnRhZ2Ugb2YgdGhlIHNwbGl0IGZyb20gZ2V0 YW5zd2VyX3IuCitJdCBmaXhlcyB2YXJpb3VzIGFsaWFzZXMgaXNzdWVzLCBhbmQgb3B0aW1pemVz IE5TUyBidWZmZXIgdXNhZ2UuCitUaGUgbmV3IEROUyBwYWNrZXQgcGFyc2luZyBoZWxwZXJzIGFy ZSB1c2VkLCB0b28uCisKK1Jldmlld2VkLWJ5OiBTaWRkaGVzaCBQb3lhcmVrYXIgPHNpZGRoZXNo QHNvdXJjZXdhcmUub3JnPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgZTMyNTQ3ZDY2MWE0 M2RhNjMzNjhlNDg4YjZjZmE5YzUzYjRkY2Y5MikKKy0tLQorIHJlc29sdi9uc3NfZG5zL2Rucy1o b3N0LmMgfCA0MDUgKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAxIGZp bGUgY2hhbmdlZCwgMTAyIGluc2VydGlvbnMoKyksIDMwMyBkZWxldGlvbnMoLSkKKworZGlmZiAt LWdpdCBhL3Jlc29sdi9uc3NfZG5zL2Rucy1ob3N0LmMgYi9yZXNvbHYvbnNzX2Rucy9kbnMtaG9z dC5jCitpbmRleCBkMzg0ZTFmODJkLi5jZDI2Mzk5YjdlIDEwMDY0NAorLS0tIGEvcmVzb2x2L25z c19kbnMvZG5zLWhvc3QuYworKysrIGIvcmVzb2x2L25zc19kbnMvZG5zLWhvc3QuYworQEAgLTY5 LDYgKzY5LDcgQEAKKyAgKiAtLUNvcHlyaWdodC0tCisgICovCisgCisrI2luY2x1ZGUgPGFsbG9j X2J1ZmZlci5oPgorICNpbmNsdWRlIDxhc3NlcnQuaD4KKyAjaW5jbHVkZSA8Y3R5cGUuaD4KKyAj aW5jbHVkZSA8ZXJybm8uaD4KK0BAIC0xMTYsMTAgKzExNyw5IEBAIHN0YXRpYyBlbnVtIG5zc19z dGF0dXMgZ2V0YW5zd2VyX3IgKHN0cnVjdCByZXNvbHZfY29udGV4dCAqY3R4LAorIAkJCQkgICAg c3RydWN0IGhvc3RlbnQgKnJlc3VsdCwgY2hhciAqYnVmZmVyLAorIAkJCQkgICAgc2l6ZV90IGJ1 ZmxlbiwgaW50ICplcnJub3AsIGludCAqaF9lcnJub3AsCisgCQkJCSAgICBpbnQgbWFwLCBpbnQz Ml90ICp0dGxwLCBjaGFyICoqY2Fub25wKTsKKy1zdGF0aWMgZW51bSBuc3Nfc3RhdHVzIGdldGFu c3dlcl9wdHIgKGNvbnN0IHF1ZXJ5YnVmICphbnN3ZXIsIGludCBhbnNsZW4sCistCQkJCSAgICAg IGNvbnN0IGNoYXIgKnFuYW1lLAorLQkJCQkgICAgICBzdHJ1Y3QgaG9zdGVudCAqcmVzdWx0LCBj aGFyICpidWZmZXIsCistCQkJCSAgICAgIHNpemVfdCBidWZsZW4sIGludCAqZXJybm9wLAorK3N0 YXRpYyBlbnVtIG5zc19zdGF0dXMgZ2V0YW5zd2VyX3B0ciAodW5zaWduZWQgY2hhciAqcGFja2V0 LCBzaXplX3QgcGFja2V0bGVuLAorKwkJCQkgICAgICBzdHJ1Y3QgYWxsb2NfYnVmZmVyICphYnVm LAorKwkJCQkgICAgICBjaGFyICoqaG5hbWVwLCBpbnQgKmVycm5vcCwKKyAJCQkJICAgICAgaW50 ICpoX2Vycm5vcCwgaW50MzJfdCAqdHRscCk7CisgCisgc3RhdGljIGVudW0gbnNzX3N0YXR1cyBn YWloX2dldGFuc3dlciAoY29uc3QgcXVlcnlidWYgKmFuc3dlcjEsIGludCBhbnNsZW4xLAorQEAg LTQ1NiwzNiArNDU2LDIxIEBAIF9uc3NfZG5zX2dldGhvc3RieWFkZHIyX3IgKGNvbnN0IHZvaWQg KmFkZHIsIHNvY2tsZW5fdCBsZW4sIGludCBhZiwKKyAgIHN0YXRpYyBjb25zdCB1X2NoYXIgdHVu bmVsbGVkW10gPSB7IDAsMCwgMCwwLCAwLDAsIDAsMCwgMCwwLCAwLDAgfTsKKyAgIHN0YXRpYyBj b25zdCB1X2NoYXIgdjZsb2NhbFtdID0geyAwLDAsIDAsMSB9OworICAgY29uc3QgdV9jaGFyICp1 YWRkciA9IChjb25zdCB1X2NoYXIgKilhZGRyOworLSAgc3RydWN0IGhvc3RfZGF0YQorLSAgewor LSAgICBjaGFyICphbGlhc2VzW01BWF9OUl9BTElBU0VTXTsKKy0gICAgdW5zaWduZWQgY2hhciBo b3N0X2FkZHJbMTZdOwkvKiBJUHY0IG9yIElQdjYgKi8KKy0gICAgY2hhciAqaF9hZGRyX3B0cnNb TUFYX05SX0FERFJTICsgMV07CistICAgIGNoYXIgbGluZWJ1ZmZlclswXTsKKy0gIH0gKmhvc3Rf ZGF0YSA9IChzdHJ1Y3QgaG9zdF9kYXRhICopIGJ1ZmZlcjsKKy0gIHVuaW9uCistICB7CistICAg IHF1ZXJ5YnVmICpidWY7CistICAgIHVfY2hhciAqcHRyOworLSAgfSBob3N0X2J1ZmZlcjsKKy0g IHF1ZXJ5YnVmICpvcmlnX2hvc3RfYnVmZmVyOworICAgY2hhciBxYnVmW01BWEROQU1FKzFdLCAq cXAgPSBOVUxMOworICAgc2l6ZV90IHNpemU7CisgICBpbnQgbiwgc3RhdHVzOworICAgaW50IG9s ZGVyciA9IGVycm5vOworIAorLSB1aW50cHRyX3QgcGFkID0gLSh1aW50cHRyX3QpIGJ1ZmZlciAl IF9fYWxpZ25vZl9fIChzdHJ1Y3QgaG9zdF9kYXRhKTsKKy0gYnVmZmVyICs9IHBhZDsKKy0gYnVm bGVuID0gYnVmbGVuID4gcGFkID8gYnVmbGVuIC0gcGFkIDogMDsKKy0KKy0gaWYgKF9fZ2xpYmNf dW5saWtlbHkgKGJ1ZmxlbiA8IHNpemVvZiAoc3RydWN0IGhvc3RfZGF0YSkpKQorLSAgIHsKKy0g ICAgICplcnJub3AgPSBFUkFOR0U7CistICAgICAqaF9lcnJub3AgPSBORVREQl9JTlRFUk5BTDsK Ky0gICAgIHJldHVybiBOU1NfU1RBVFVTX1RSWUFHQUlOOworLSAgIH0KKy0KKy0gaG9zdF9kYXRh ID0gKHN0cnVjdCBob3N0X2RhdGEgKikgYnVmZmVyOworKyAgLyogUHJlcGFyZSB0aGUgYWxsb2Nh dGlvbiBidWZmZXIuICBTdG9yZSB0aGUgcG9pbnRlciBhcnJheSBmaXJzdCwgdG8KKysgICAgIGJl bmVmaXQgZnJvbSBidWZmZXIgYWxpZ25tZW50LiAgKi8KKysgIHN0cnVjdCBhbGxvY19idWZmZXIg YWJ1ZiA9IGFsbG9jX2J1ZmZlcl9jcmVhdGUgKGJ1ZmZlciwgYnVmbGVuKTsKKysgIGNoYXIgKiph ZGRyZXNzX2FycmF5ID0gYWxsb2NfYnVmZmVyX2FsbG9jX2FycmF5ICgmYWJ1ZiwgY2hhciAqLCAy KTsKKysgIGlmIChhZGRyZXNzX2FycmF5ID09IE5VTEwpCisrICAgIHsKKysgICAgICAqZXJybm9w ID0gRVJBTkdFOworKyAgICAgICpoX2Vycm5vcCA9IE5FVERCX0lOVEVSTkFMOworKyAgICAgIHJl dHVybiBOU1NfU1RBVFVTX1RSWUFHQUlOOworKyAgICB9CisgCisgICBzdHJ1Y3QgcmVzb2x2X2Nv bnRleHQgKmN0eCA9IF9fcmVzb2x2X2NvbnRleHRfZ2V0ICgpOworICAgaWYgKGN0eCA9PSBOVUxM KQorQEAgLTUyOSw4ICs1MTQsNiBAQCBfbnNzX2Ruc19nZXRob3N0YnlhZGRyMl9yIChjb25zdCB2 b2lkICphZGRyLCBzb2NrbGVuX3QgbGVuLCBpbnQgYWYsCisgICAgICAgcmV0dXJuIE5TU19TVEFU VVNfVU5BVkFJTDsKKyAgICAgfQorIAorLSAgaG9zdF9idWZmZXIuYnVmID0gb3JpZ19ob3N0X2J1 ZmZlciA9IChxdWVyeWJ1ZiAqKSBhbGxvY2EgKDEwMjQpOworLQorICAgc3dpdGNoIChhZikKKyAg ICAgeworICAgICBjYXNlIEFGX0lORVQ6CitAQCAtNTU0LDM1ICs1MzcsNTIgQEAgX25zc19kbnNf Z2V0aG9zdGJ5YWRkcjJfciAoY29uc3Qgdm9pZCAqYWRkciwgc29ja2xlbl90IGxlbiwgaW50IGFm LAorICAgICAgIGJyZWFrOworICAgICB9CisgCistICBuID0gX19yZXNfY29udGV4dF9xdWVyeSAo Y3R4LCBxYnVmLCBDX0lOLCBUX1BUUiwgaG9zdF9idWZmZXIuYnVmLT5idWYsCistCQkJICAgMTAy NCwgJmhvc3RfYnVmZmVyLnB0ciwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCk7CisrICB1bnNpZ25l ZCBjaGFyIGRuc19wYWNrZXRfYnVmZmVyWzEwMjRdOworKyAgdW5zaWduZWQgY2hhciAqYWx0X2Ru c19wYWNrZXRfYnVmZmVyID0gZG5zX3BhY2tldF9idWZmZXI7CisrICBuID0gX19yZXNfY29udGV4 dF9xdWVyeSAoY3R4LCBxYnVmLCBDX0lOLCBUX1BUUiwKKysJCQkgICBkbnNfcGFja2V0X2J1ZmZl ciwgc2l6ZW9mIChkbnNfcGFja2V0X2J1ZmZlciksCisrCQkJICAgJmFsdF9kbnNfcGFja2V0X2J1 ZmZlciwKKysJCQkgICBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMKTsKKyAgIGlmIChuIDwgMCkKKyAg ICAgeworICAgICAgICpoX2Vycm5vcCA9IGhfZXJybm87CisgICAgICAgX19zZXRfZXJybm8gKG9s ZGVycik7CistICAgICAgaWYgKGhvc3RfYnVmZmVyLmJ1ZiAhPSBvcmlnX2hvc3RfYnVmZmVyKQor LQlmcmVlIChob3N0X2J1ZmZlci5idWYpOworKyAgICAgIGlmIChhbHRfZG5zX3BhY2tldF9idWZm ZXIgIT0gZG5zX3BhY2tldF9idWZmZXIpCisrCWZyZWUgKGFsdF9kbnNfcGFja2V0X2J1ZmZlcik7 CisgICAgICAgX19yZXNvbHZfY29udGV4dF9wdXQgKGN0eCk7CisgICAgICAgcmV0dXJuIGVycm5v ID09IEVDT05OUkVGVVNFRCA/IE5TU19TVEFUVVNfVU5BVkFJTCA6IE5TU19TVEFUVVNfTk9URk9V TkQ7CisgICAgIH0KKyAKKy0gIHN0YXR1cyA9IGdldGFuc3dlcl9wdHIgKGhvc3RfYnVmZmVyLmJ1 ZiwgbiwgcWJ1ZiwgcmVzdWx0LAorLQkJCSAgYnVmZmVyLCBidWZsZW4sIGVycm5vcCwgaF9lcnJu b3AsIHR0bHApOworLSAgaWYgKGhvc3RfYnVmZmVyLmJ1ZiAhPSBvcmlnX2hvc3RfYnVmZmVyKQor LSAgICBmcmVlIChob3N0X2J1ZmZlci5idWYpOworKyAgc3RhdHVzID0gZ2V0YW5zd2VyX3B0ciAo YWx0X2Ruc19wYWNrZXRfYnVmZmVyLCBuLAorKwkJCSAgJmFidWYsICZyZXN1bHQtPmhfbmFtZSwg ZXJybm9wLCBoX2Vycm5vcCwgdHRscCk7CisrCisrICBpZiAoYWx0X2Ruc19wYWNrZXRfYnVmZmVy ICE9IGRuc19wYWNrZXRfYnVmZmVyKQorKyAgICBmcmVlIChhbHRfZG5zX3BhY2tldF9idWZmZXIp OworKyAgX19yZXNvbHZfY29udGV4dF9wdXQgKGN0eCk7CisrCisgICBpZiAoc3RhdHVzICE9IE5T U19TVEFUVVNfU1VDQ0VTUykKKy0gICAgeworLSAgICAgIF9fcmVzb2x2X2NvbnRleHRfcHV0IChj dHgpOworLSAgICAgIHJldHVybiBzdGF0dXM7CistICAgIH0KKysgICAgcmV0dXJuIHN0YXR1czsK KyAKKysgIC8qIHJlc3VsdC0+aF9uYW1lIGhhcyBhbHJlYWR5IGJlZW4gc2V0IGJ5IGdldGFuc3dl cl9wdHIuICAqLworICAgcmVzdWx0LT5oX2FkZHJ0eXBlID0gYWY7CisgICByZXN1bHQtPmhfbGVu Z3RoID0gbGVuOworLSAgbWVtY3B5IChob3N0X2RhdGEtPmhvc3RfYWRkciwgYWRkciwgbGVuKTsK Ky0gIGhvc3RfZGF0YS0+aF9hZGRyX3B0cnNbMF0gPSAoY2hhciAqKSBob3N0X2RhdGEtPmhvc3Rf YWRkcjsKKy0gIGhvc3RfZGF0YS0+aF9hZGRyX3B0cnNbMV0gPSBOVUxMOworKyAgLyogSW5jcmVh c2UgdGhlIGFsaWdubWVudCB0byA0LCBpbiBjYXNlIHRoZXJlIGFyZSBhcHBsaWNhdGlvbnMgb3V0 CisrICAgICB0aGVyZSB0aGF0IGV4cGVjdCBhdCBsZWFzdCB0aGlzIGxldmVsIG9mIGFkZHJlc3Mg YWxpZ25tZW50LiAgKi8KKysgIGFkZHJlc3NfYXJyYXlbMF0gPSAoY2hhciAqKSBhbGxvY19idWZm ZXJfbmV4dCAoJmFidWYsIHVpbnQzMl90KTsKKysgIGFsbG9jX2J1ZmZlcl9jb3B5X2J5dGVzICgm YWJ1ZiwgdWFkZHIsIGxlbik7CisrICBhZGRyZXNzX2FycmF5WzFdID0gTlVMTDsKKysKKysgIC8q IFRoaXMgY2hlY2sgYWxzbyBjb3ZlcnMgYWxsb2NhdGlvbiBmYWlsdXJlIGluIGdldGFuc3dlcl9w dHIuICAqLworKyAgaWYgKGFsbG9jX2J1ZmZlcl9oYXNfZmFpbGVkICgmYWJ1ZikpCisrICAgIHsK KysgICAgICAqZXJybm9wID0gRVJBTkdFOworKyAgICAgICpoX2Vycm5vcCA9IE5FVERCX0lOVEVS TkFMOworKyAgICAgIHJldHVybiBOU1NfU1RBVFVTX1RSWUFHQUlOOworKyAgICB9CisrICByZXN1 bHQtPmhfYWRkcl9saXN0ID0gYWRkcmVzc19hcnJheTsKKysgIHJlc3VsdC0+aF9hbGlhc2VzID0g JmFkZHJlc3NfYXJyYXlbMV07IC8qIFBvaW50cyB0byBOVUxMLiAgKi8KKysKKyAgICpoX2Vycm5v cCA9IE5FVERCX1NVQ0NFU1M7CistICBfX3Jlc29sdl9jb250ZXh0X3B1dCAoY3R4KTsKKyAgIHJl dHVybiBOU1NfU1RBVFVTX1NVQ0NFU1M7CisgfQorIGxpYmNfaGlkZGVuX2RlZiAoX25zc19kbnNf Z2V0aG9zdGJ5YWRkcjJfcikKK0BAIC05NjEsMjg3ICs5NjEsODYgQEAgZ2V0YW5zd2VyX3IgKHN0 cnVjdCByZXNvbHZfY29udGV4dCAqY3R4LAorIH0KKyAKKyBzdGF0aWMgZW51bSBuc3Nfc3RhdHVz CistZ2V0YW5zd2VyX3B0ciAoY29uc3QgcXVlcnlidWYgKmFuc3dlciwgaW50IGFuc2xlbiwgY29u c3QgY2hhciAqcW5hbWUsCistCSAgICAgICBzdHJ1Y3QgaG9zdGVudCAqcmVzdWx0LCBjaGFyICpi dWZmZXIsIHNpemVfdCBidWZsZW4sCisrZ2V0YW5zd2VyX3B0ciAodW5zaWduZWQgY2hhciAqcGFj a2V0LCBzaXplX3QgcGFja2V0bGVuLAorKwkgICAgICAgc3RydWN0IGFsbG9jX2J1ZmZlciAqYWJ1 ZiwgY2hhciAqKmhuYW1lcCwKKyAJICAgICAgIGludCAqZXJybm9wLCBpbnQgKmhfZXJybm9wLCBp bnQzMl90ICp0dGxwKQorIHsKKy0gIHN0cnVjdCBob3N0X2RhdGEKKy0gIHsKKy0gICAgY2hhciAq YWxpYXNlc1tNQVhfTlJfQUxJQVNFU107CistICAgIHVuc2lnbmVkIGNoYXIgaG9zdF9hZGRyWzE2 XTsJLyogSVB2NCBvciBJUHY2ICovCistICAgIGNoYXIgKmhfYWRkcl9wdHJzWzBdOworLSAgfSAq aG9zdF9kYXRhOworLSAgaW50IGxpbmVidWZsZW47CistICBjb25zdCBIRUFERVIgKmhwOworLSAg Y29uc3QgdV9jaGFyICplbmRfb2ZfbWVzc2FnZSwgKmNwOworLSAgaW50IG4sIGFuY291bnQsIHFk Y291bnQ7CistICBpbnQgaGF2ZWFuc3dlciwgaGFkX2Vycm9yOworLSAgY2hhciAqYnAsICoqYXAs ICoqaGFwOworLSAgY2hhciB0YnVmW01BWEROQU1FXTsKKy0gIGNvbnN0IGNoYXIgKnRuYW1lOwor LSAgdV9jaGFyIHBhY2t0bXBbTlNfTUFYQ0ROQU1FXTsKKy0gIHVpbnRwdHJfdCBwYWQgPSAtKHVp bnRwdHJfdCkgYnVmZmVyICUgX19hbGlnbm9mX18gKHN0cnVjdCBob3N0X2RhdGEpOworLSAgYnVm ZmVyICs9IHBhZDsKKy0gIGJ1ZmxlbiA9IGJ1ZmxlbiA+IHBhZCA/IGJ1ZmxlbiAtIHBhZCA6IDA7 CistICBpZiAoX19nbGliY191bmxpa2VseSAoYnVmbGVuIDwgc2l6ZW9mIChzdHJ1Y3QgaG9zdF9k YXRhKSkpCistICAgIHsKKy0gICAgICAvKiBUaGUgYnVmZmVyIGlzIHRvbyBzbWFsbC4gICovCist ICAgIHRvb19zbWFsbDoKKy0gICAgICAqZXJybm9wID0gRVJBTkdFOworLSAgICAgICpoX2Vycm5v cCA9IE5FVERCX0lOVEVSTkFMOworLSAgICAgIHJldHVybiBOU1NfU1RBVFVTX1RSWUFHQUlOOwor LSAgICB9CistICBob3N0X2RhdGEgPSAoc3RydWN0IGhvc3RfZGF0YSAqKSBidWZmZXI7CistICBs aW5lYnVmbGVuID0gYnVmbGVuIC0gc2l6ZW9mIChzdHJ1Y3QgaG9zdF9kYXRhKTsKKy0gIGlmIChi dWZsZW4gLSBzaXplb2YgKHN0cnVjdCBob3N0X2RhdGEpICE9IGxpbmVidWZsZW4pCistICAgIGxp bmVidWZsZW4gPSBJTlRfTUFYOworLQorLSAgdG5hbWUgPSBxbmFtZTsKKy0gIHJlc3VsdC0+aF9u YW1lID0gTlVMTDsKKy0gIGVuZF9vZl9tZXNzYWdlID0gYW5zd2VyLT5idWYgKyBhbnNsZW47Cist CistICAvKgorLSAgICogZmluZCBmaXJzdCBzYXRpc2ZhY3RvcnkgYW5zd2VyCistICAgKi8KKy0g IGhwID0gJmFuc3dlci0+aGRyOworLSAgYW5jb3VudCA9IG50b2hzIChocC0+YW5jb3VudCk7Cist ICBxZGNvdW50ID0gbnRvaHMgKGhwLT5xZGNvdW50KTsKKy0gIGNwID0gYW5zd2VyLT5idWYgKyBI RklYRURTWjsKKy0gIGlmIChfX2dsaWJjX3VubGlrZWx5IChxZGNvdW50ICE9IDEpKQorLSAgICB7 CistICAgICAgKmhfZXJybm9wID0gTk9fUkVDT1ZFUlk7CistICAgICAgcmV0dXJuIE5TU19TVEFU VVNfVU5BVkFJTDsKKy0gICAgfQorLSAgaWYgKHNpemVvZiAoc3RydWN0IGhvc3RfZGF0YSkgKyAo YW5jb3VudCArIDEpICogc2l6ZW9mIChjaGFyICopID49IGJ1ZmxlbikKKy0gICAgZ290byB0b29f c21hbGw7CistICBicCA9IChjaGFyICopICZob3N0X2RhdGEtPmhfYWRkcl9wdHJzW2FuY291bnQg KyAxXTsKKy0gIGxpbmVidWZsZW4gLT0gKGFuY291bnQgKyAxKSAqIHNpemVvZiAoY2hhciAqKTsK Ky0KKy0gIG4gPSBfX25zX25hbWVfdW5wYWNrIChhbnN3ZXItPmJ1ZiwgZW5kX29mX21lc3NhZ2Us IGNwLAorLQkJCXBhY2t0bXAsIHNpemVvZiBwYWNrdG1wKTsKKy0gIGlmIChuICE9IC0xICYmIF9f bnNfbmFtZV9udG9wIChwYWNrdG1wLCBicCwgbGluZWJ1ZmxlbikgPT0gLTEpCisrICBzdHJ1Y3Qg bnNfcnJfY3Vyc29yIGM7CisrICBpZiAoIV9fbnNfcnJfY3Vyc29yX2luaXQgKCZjLCBwYWNrZXQs IHBhY2tldGxlbikpCisgICAgIHsKKy0gICAgICBpZiAoX19nbGliY191bmxpa2VseSAoZXJybm8g PT0gRU1TR1NJWkUpKQorLQlnb3RvIHRvb19zbWFsbDsKKy0KKy0gICAgICBuID0gLTE7CistICAg IH0KKy0KKy0gIGlmIChfX2dsaWJjX3VubGlrZWx5IChuIDwgMCkpCistICAgIHsKKy0gICAgICAq ZXJybm9wID0gZXJybm87CistICAgICAgKmhfZXJybm9wID0gTk9fUkVDT1ZFUlk7CistICAgICAg cmV0dXJuIE5TU19TVEFUVVNfVU5BVkFJTDsKKy0gICAgfQorLSAgaWYgKF9fZ2xpYmNfdW5saWtl bHkgKF9fbGliY19yZXNfZG5vayAoYnApID09IDApKQorLSAgICB7CistICAgICAgZXJybm8gPSBF QkFETVNHOworLSAgICAgICplcnJub3AgPSBFQkFETVNHOworKyAgICAgIC8qIFRoaXMgc2hvdWxk IG5vdCBoYXBwZW4gYmVjYXVzZSBfX3Jlc19jb250ZXh0X3F1ZXJ5IGFscmVhZHkKKysJIHBlcmZy b21zIHJlc3BvbnNlIHZhbGlkYXRpb24uICAqLworICAgICAgICpoX2Vycm5vcCA9IE5PX1JFQ09W RVJZOworICAgICAgIHJldHVybiBOU1NfU1RBVFVTX1VOQVZBSUw7CisgICAgIH0KKy0gIGNwICs9 IG4gKyBRRklYRURTWjsKKysgIGludCBhbmNvdW50ID0gbnNfcnJfY3Vyc29yX2FuY291bnQgKCZj KTsKKysgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmV4cGVjdGVkX25hbWUgPSBuc19ycl9jdXJzb3Jf cW5hbWUgKCZjKTsKKysgIC8qIGV4cGVjdGVkX25hbWUgbWF5IGJlIHVwZGF0ZWQgdG8gcG9pbnQg aW50byB0aGlzIGJ1ZmZlci4gICovCisrICB1bnNpZ25lZCBjaGFyIG5hbWVfYnVmZmVyW05TX01B WENETkFNRV07CisgCistICBhcCA9IGhvc3RfZGF0YS0+YWxpYXNlczsKKy0gICphcCA9IE5VTEw7 CistICByZXN1bHQtPmhfYWxpYXNlcyA9IGhvc3RfZGF0YS0+YWxpYXNlczsKKy0gIGhhcCA9IGhv c3RfZGF0YS0+aF9hZGRyX3B0cnM7CistICAqaGFwID0gTlVMTDsKKy0gIHJlc3VsdC0+aF9hZGRy X2xpc3QgPSBob3N0X2RhdGEtPmhfYWRkcl9wdHJzOworLSAgaGF2ZWFuc3dlciA9IDA7CistICBo YWRfZXJyb3IgPSAwOworLQorLSAgd2hpbGUgKGFuY291bnQtLSA+IDAgJiYgY3AgPCBlbmRfb2Zf bWVzc2FnZSAmJiBoYWRfZXJyb3IgPT0gMCkKKysgIHdoaWxlIChhbmNvdW50ID4gMCkKKyAgICAg eworLSAgICAgIGludCB0eXBlLCBjbGFzczsKKy0KKy0gICAgICBuID0gX19uc19uYW1lX3VucGFj ayAoYW5zd2VyLT5idWYsIGVuZF9vZl9tZXNzYWdlLCBjcCwKKy0JCQkgICAgcGFja3RtcCwgc2l6 ZW9mIHBhY2t0bXApOworLSAgICAgIGlmIChuICE9IC0xICYmIF9fbnNfbmFtZV9udG9wIChwYWNr dG1wLCBicCwgbGluZWJ1ZmxlbikgPT0gLTEpCisrICAgICAgc3RydWN0IG5zX3JyX3dpcmUgcnI7 CisrICAgICAgaWYgKCFfX25zX3JyX2N1cnNvcl9uZXh0ICgmYywgJnJyKSkKKyAJeworLQkgIGlm IChfX2dsaWJjX3VubGlrZWx5IChlcnJubyA9PSBFTVNHU0laRSkpCistCSAgICBnb3RvIHRvb19z bWFsbDsKKy0KKy0JICBuID0gLTE7CistCX0KKy0KKy0gICAgICBpZiAoX19nbGliY191bmxpa2Vs eSAobiA8IDAgfHwgX19saWJjX3Jlc19kbm9rIChicCkgPT0gMCkpCistCXsKKy0JICArK2hhZF9l cnJvcjsKKy0JICBjb250aW51ZTsKKy0JfQorLSAgICAgIGNwICs9IG47CQkJCS8qIG5hbWUgKi8K Ky0KKy0gICAgICBpZiAoX19nbGliY191bmxpa2VseSAoY3AgKyAxMCA+IGVuZF9vZl9tZXNzYWdl KSkKKy0JeworLQkgICsraGFkX2Vycm9yOworLQkgIGNvbnRpbnVlOworKwkgICpoX2Vycm5vcCA9 IE5PX1JFQ09WRVJZOworKwkgIHJldHVybiBOU1NfU1RBVFVTX1VOQVZBSUw7CisgCX0KKyAKKy0g ICAgICBOU19HRVQxNiAodHlwZSwgY3ApOworLSAgICAgIE5TX0dFVDE2IChjbGFzcywgY3ApOwor LSAgICAgIGludDMyX3QgdHRsOworLSAgICAgIE5TX0dFVDMyICh0dGwsIGNwKTsKKy0gICAgICBO U19HRVQxNiAobiwgY3ApOwkJLyogUkRBVEEgbGVuZ3RoLiAgKi8KKysgICAgICAvKiBTa2lwIG92 ZXIgcmVjb3JkcyB3aXRoIHRoZSB3cm9uZyBjbGFzcy4gICovCisrICAgICAgaWYgKHJyLnJjbGFz cyAhPSBDX0lOKQorKwljb250aW51ZTsKKyAKKy0gICAgICBpZiAoZW5kX29mX21lc3NhZ2UgLSBj cCA8IG4pCistCXsKKy0JICAvKiBSREFUQSBleHRlbmRzIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBw YWNrZXQuICAqLworLQkgICsraGFkX2Vycm9yOworLQkgIGNvbnRpbnVlOworLQl9CistCistICAg ICAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKGNsYXNzICE9IENfSU4pKQorLQl7CistCSAgLyogWFhY IC0gZGVidWc/IHN5c2xvZz8gKi8KKy0JICBjcCArPSBuOworLQkgIGNvbnRpbnVlOwkJCS8qIFhY WCAtIGhhZF9lcnJvcisrID8gKi8KKy0JfQorKyAgICAgIC8qIFVwZGF0ZSBUVEwgZm9yIGtub3du IHJlY29yZCB0eXBlcy4gICovCisrICAgICAgaWYgKChyci5ydHlwZSA9PSBUX0NOQU1FIHx8IHJy LnJ0eXBlID09IFRfUFRSKQorKwkgICYmIHR0bHAgIT0gTlVMTCAmJiAqdHRscCA+IHJyLnR0bCkK KysJKnR0bHAgPSByci50dGw7CisgCistICAgICAgaWYgKHR5cGUgPT0gVF9DTkFNRSkKKysgICAg ICBpZiAocnIucnR5cGUgPT0gVF9DTkFNRSkKKyAJeworLQkgIC8qIEEgQ05BTUUgY291bGQgYWxz byBoYXZlIGEgVFRMIGVudHJ5LiAgKi8KKy0JICBpZiAodHRscCAhPSBOVUxMICYmIHR0bCA8ICp0 dGxwKQorLQkgICAgICAqdHRscCA9IHR0bDsKKy0KKy0JICBuID0gX19saWJjX2RuX2V4cGFuZCAo YW5zd2VyLT5idWYsIGVuZF9vZl9tZXNzYWdlLCBjcCwKKy0JCQkJdGJ1Ziwgc2l6ZW9mIHRidWYp OworLQkgIGlmIChfX2dsaWJjX3VubGlrZWx5IChuIDwgMCB8fCBfX2xpYmNfcmVzX2Rub2sgKHRi dWYpID09IDApKQorLQkgICAgeworLQkgICAgICArK2hhZF9lcnJvcjsKKy0JICAgICAgY29udGlu dWU7CistCSAgICB9CistCSAgY3AgKz0gbjsKKy0JICAvKiBHZXQgY2Fub25pY2FsIG5hbWUuICAq LworLQkgIG4gPSBzdHJsZW4gKHRidWYpICsgMTsgICAvKiBGb3IgdGhlIFwwLiAgKi8KKy0JICBp ZiAoX19nbGliY191bmxpa2VseSAobiA+IGxpbmVidWZsZW4pKQorLQkgICAgZ290byB0b29fc21h bGw7CistCSAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKG4gPj0gTUFYSE9TVE5BTUVMRU4pKQorKwkg IC8qIE5COiBObyBjaGVjayBmb3Igb3duZXIgbmFtZSBtYXRjaCwgYmFzZWQgb24gaGlzdG9yaWMK KysJICAgICBwcmVjZWRlbnQuICBSZWNvcmQgdGhlIENOQU1FIHRhcmdldCBhcyB0aGUgbmV3IGV4 cGVjdGVkCisrCSAgICAgbmFtZS4gICovCisrCSAgaW50IG4gPSBfX25zX25hbWVfdW5wYWNrIChj LmJlZ2luLCBjLmVuZCwgcnIucmRhdGEsCisrCQkJCSAgICBuYW1lX2J1ZmZlciwgc2l6ZW9mIChu YW1lX2J1ZmZlcikpOworKwkgIGlmIChuIDwgMCkKKyAJICAgIHsKKy0JICAgICAgKytoYWRfZXJy b3I7CistCSAgICAgIGNvbnRpbnVlOworKwkgICAgICAqaF9lcnJub3AgPSBOT19SRUNPVkVSWTsK KysJICAgICAgcmV0dXJuIE5TU19TVEFUVVNfVU5BVkFJTDsKKyAJICAgIH0KKy0JICB0bmFtZSA9 IGJwOworLQkgIGJwID0gX19tZW1wY3B5IChicCwgdGJ1Ziwgbik7CS8qIENhbm5vdCBvdmVyZmxv dy4gICovCistCSAgbGluZWJ1ZmxlbiAtPSBuOworLQkgIGNvbnRpbnVlOworKwkgIGV4cGVjdGVk X25hbWUgPSBuYW1lX2J1ZmZlcjsKKyAJfQorLQorLSAgICAgIHN3aXRjaCAodHlwZSkKKysgICAg ICBlbHNlIGlmIChyci5ydHlwZSA9PSBUX1BUUgorKwkgICAgICAgJiYgX19uc19zYW1lYmluYXJ5 bmFtZSAocnIucm5hbWUsIGV4cGVjdGVkX25hbWUpKQorIAl7CistCWNhc2UgVF9QVFI6CistCSAg aWYgKF9fZ2xpYmNfdW5saWtlbHkgKF9fc3RyY2FzZWNtcCAodG5hbWUsIGJwKSAhPSAwKSkKKy0J ICAgIHsKKy0JICAgICAgY3AgKz0gbjsKKy0JICAgICAgY29udGludWU7CQkJLyogWFhYIC0gaGFk X2Vycm9yKysgPyAqLworLQkgICAgfQorLQorLQkgIG4gPSBfX25zX25hbWVfdW5wYWNrIChhbnN3 ZXItPmJ1ZiwgZW5kX29mX21lc3NhZ2UsIGNwLAorLQkJCQlwYWNrdG1wLCBzaXplb2YgcGFja3Rt cCk7CistCSAgaWYgKG4gIT0gLTEgJiYgX19uc19uYW1lX250b3AgKHBhY2t0bXAsIGJwLCBsaW5l YnVmbGVuKSA9PSAtMSkKKy0JICAgIHsKKy0JICAgICAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKGVy cm5vID09IEVNU0dTSVpFKSkKKy0JCWdvdG8gdG9vX3NtYWxsOworLQorLQkgICAgICBuID0gLTE7 CistCSAgICB9CistCistCSAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKG4gPCAwIHx8IF9fbGliY19y ZXNfaG5vayAoYnApID09IDApKQorKwkgIC8qIERlY29tcHJlc3MgdGhlIHRhcmdldCBvZiB0aGUg UFRSIHJlY29yZC4gIFRoaXMgaXMgdGhlCisrCSAgICAgaG9zdCBuYW1lIHdlIGFyZSBsb29raW5n IGZvci4gIFdlIGNhbiBvbmx5IHVzZSBpdCBpZiBpdAorKwkgICAgIGlzIHN5bnRhY3RpY2FsbHkg dmFsaWQuICBIaXN0b3JpY2FsbHksIG9ubHkgb25lIGhvc3QgbmFtZQorKwkgICAgIGlzIHJldHVy bmVkIGhlcmUuICBJZiB0aGUgcmVjdXJzaXZlIHJlc29sdmVyIHBlcmZvcm1zIEROUworKwkgICAg IHJlY29yZCByb3RhdGlvbiwgdGhlIHJldHVybmVkIGhvc3QgbmFtZSBpcyBlc3NlbnRpYWxseQor KwkgICAgIHJhbmRvbSwgd2hpY2ggaXMgd2h5IG11bHRpcGxlIFBUUiByZWNvcmRzIGFyZSByYXJl bHkKKysJICAgICB1c2VkLiAgVXNlIE1BWEhPU1ROQU1FTEVOIGluc3RlYWQgb2YgTlNfTUFYQ0RO QU1FIGZvcgorKwkgICAgIGFkZGl0aW9uYWwgbGVuZ3RoIGNoZWNraW5nLiAgKi8KKysJICBjaGFy IGhuYW1lW01BWEhPU1ROQU1FTEVOICsgMV07CisrCSAgaWYgKF9fbnNfbmFtZV91bnBhY2sgKGMu YmVnaW4sIGMuZW5kLCByci5yZGF0YSwKKysJCQkJbmFtZV9idWZmZXIsIHNpemVvZiAobmFtZV9i dWZmZXIpKSA8IDAKKysJICAgICAgfHwgIV9fcmVzX2JpbmFyeV9obm9rIChleHBlY3RlZF9uYW1l KQorKwkgICAgICB8fCBfX25zX25hbWVfbnRvcCAobmFtZV9idWZmZXIsIGhuYW1lLCBzaXplb2Yg KGhuYW1lKSkgPCAwKQorIAkgICAgeworLQkgICAgICArK2hhZF9lcnJvcjsKKy0JICAgICAgYnJl YWs7CisrCSAgICAgICpoX2Vycm5vcCA9IE5PX1JFQ09WRVJZOworKwkgICAgICByZXR1cm4gTlNT X1NUQVRVU19VTkFWQUlMOworIAkgICAgfQorLQkgIGlmICh0dGxwICE9IE5VTEwgJiYgdHRsIDwg KnR0bHApCistCSAgICAgICp0dGxwID0gdHRsOworLQkgIC8qIGJpbmQgd291bGQgcHV0IG11bHRp cGxlIFBUUiByZWNvcmRzIGFzIGFsaWFzZXMsIGJ1dCB3ZSBkb24ndCBkbworLQkgICAgIHRoYXQu ICAqLworLQkgIHJlc3VsdC0+aF9uYW1lID0gYnA7CistCSAgKmhfZXJybm9wID0gTkVUREJfU1VD Q0VTUzsKKysJICAvKiBTdWNjZXNzZnVsIGFsbG9jYXRpb24gaXMgY2hlY2tlZCBieSB0aGUgY2Fs bGVyLiAgKi8KKysJICAqaG5hbWVwID0gYWxsb2NfYnVmZmVyX2NvcHlfc3RyaW5nIChhYnVmLCBo bmFtZSk7CisgCSAgcmV0dXJuIE5TU19TVEFUVVNfU1VDQ0VTUzsKKy0JY2FzZSBUX0E6CistCWNh c2UgVF9BQUFBOgorLQkgIGlmIChfX2dsaWJjX3VubGlrZWx5IChfX3N0cmNhc2VjbXAgKHJlc3Vs dC0+aF9uYW1lLCBicCkgIT0gMCkpCistCSAgICB7CistCSAgICAgIGNwICs9IG47CistCSAgICAg IGNvbnRpbnVlOwkJCS8qIFhYWCAtIGhhZF9lcnJvcisrID8gKi8KKy0JICAgIH0KKy0KKy0JICAv KiBTdG9wIHBhcnNpbmcgYXQgYSByZWNvcmQgd2hvc2UgbGVuZ3RoIGlzIGluY29ycmVjdC4gICov CistCSAgaWYgKG4gIT0gcnJ0eXBlX3RvX3JkYXRhX2xlbmd0aCAodHlwZSkpCistCSAgICB7Cist CSAgICAgICsraGFkX2Vycm9yOworLQkgICAgICBicmVhazsKKy0JICAgIH0KKy0KKy0JICAvKiBT a2lwIHJlY29yZHMgb2YgdGhlIHdyb25nIHR5cGUuICAqLworLQkgIGlmIChuICE9IHJlc3VsdC0+ aF9sZW5ndGgpCistCSAgICB7CistCSAgICAgIGNwICs9IG47CistCSAgICAgIGNvbnRpbnVlOwor LQkgICAgfQorLQkgIGlmICghaGF2ZWFuc3dlcikKKy0JICAgIHsKKy0JICAgICAgaW50IG5uOwor LQorLQkgICAgICAvKiBXZSBjb21wb3NlIGEgc2luZ2xlIGhvc3RlbnQgb3V0IG9mIHRoZSBlbnRp cmUgY2hhaW4gb2YKKy0JICAgICAgICAgZW50cmllcywgc28gdGhlIFRUTCBvZiB0aGUgaG9zdGVu dCBpcyBlc3NlbnRpYWxseSB0aGUgbG93ZXN0CistCQkgVFRMIGluIHRoZSBjaGFpbi4gICovCist CSAgICAgIGlmICh0dGxwICE9IE5VTEwgJiYgdHRsIDwgKnR0bHApCistCQkqdHRscCA9IHR0bDsK Ky0JICAgICAgcmVzdWx0LT5oX25hbWUgPSBicDsKKy0JICAgICAgbm4gPSBzdHJsZW4gKGJwKSAr IDE7CS8qIGZvciB0aGUgXDAgKi8KKy0JICAgICAgYnAgKz0gbm47CistCSAgICAgIGxpbmVidWZs ZW4gLT0gbm47CistCSAgICB9CistCistCSAgLyogUHJvdmlkZSBzdWZmaWNpZW50IGFsaWdubWVu dCBmb3IgYm90aCBhZGRyZXNzCistCSAgICAgZmFtaWxpZXMuICAqLworLQkgIGVudW0geyBhbGln biA9IDQgfTsKKy0JICBfU3RhdGljX2Fzc2VydCAoKGFsaWduICUgX19hbGlnbm9mX18gKHN0cnVj dCBpbl9hZGRyKSkgPT0gMCwKKy0JCQkgICJzdHJ1Y3QgaW5fYWRkciBhbGlnbm1lbnQiKTsKKy0J ICBfU3RhdGljX2Fzc2VydCAoKGFsaWduICUgX19hbGlnbm9mX18gKHN0cnVjdCBpbjZfYWRkcikp ID09IDAsCistCQkJICAic3RydWN0IGluNl9hZGRyIGFsaWdubWVudCIpOworLQkgIHsKKy0JICAg IGNoYXIgKm5ld19icCA9IFBUUl9BTElHTl9VUCAoYnAsIGFsaWduKTsKKy0JICAgIGxpbmVidWZs ZW4gLT0gbmV3X2JwIC0gYnA7CistCSAgICBicCA9IG5ld19icDsKKy0JICB9CistCistCSAgaWYg KF9fZ2xpYmNfdW5saWtlbHkgKG4gPiBsaW5lYnVmbGVuKSkKKy0JICAgIGdvdG8gdG9vX3NtYWxs OworLQkgIGJwID0gX19tZW1wY3B5ICgqaGFwKysgPSBicCwgY3AsIG4pOworLQkgIGNwICs9IG47 CistCSAgbGluZWJ1ZmxlbiAtPSBuOworLQkgIGJyZWFrOworLQlkZWZhdWx0OgorLQkgIGNwICs9 IG47CistCSAgY29udGludWU7CQkJLyogWFhYIC0gaGFkX2Vycm9yKysgPyAqLworIAl9CistICAg ICAgaWYgKGhhZF9lcnJvciA9PSAwKQorLQkrK2hhdmVhbnN3ZXI7CisgICAgIH0KKyAKKy0gIGlm IChoYXZlYW5zd2VyID4gMCkKKy0gICAgeworLSAgICAgICphcCA9IE5VTEw7CistICAgICAgKmhh cCA9IE5VTEw7CistCistICAgICAgaWYgKHJlc3VsdC0+aF9uYW1lID09IE5VTEwpCistCXsKKy0J ICBuID0gc3RybGVuIChxbmFtZSkgKyAxOwkvKiBGb3IgdGhlIFwwLiAgKi8KKy0JICBpZiAobiA+ IGxpbmVidWZsZW4pCistCSAgICBnb3RvIHRvb19zbWFsbDsKKy0JICBpZiAobiA+PSBNQVhIT1NU TkFNRUxFTikKKy0JICAgIGdvdG8gbm9fcmVjb3Zlcnk7CistCSAgcmVzdWx0LT5oX25hbWUgPSBi cDsKKy0JICBicCA9IF9fbWVtcGNweSAoYnAsIHFuYW1lLCBuKTsJLyogQ2Fubm90IG92ZXJmbG93 LiAgKi8KKy0JICBsaW5lYnVmbGVuIC09IG47CistCX0KKysgIC8qIE5vIFBUUiByZWNvcmQgZm91 bmQuICAqLworKyAgaWYgKHR0bHAgIT0gTlVMTCkKKysgICAgLyogTm8gY2FjaGluZyBvZiBuZWdh dGl2ZSByZXNwb25zZXMuICAqLworKyAgICAqdHRscCA9IDA7CisgCistICAgICAgKmhfZXJybm9w ID0gTkVUREJfU1VDQ0VTUzsKKy0gICAgICByZXR1cm4gTlNTX1NUQVRVU19TVUNDRVNTOworLSAg ICB9CistIG5vX3JlY292ZXJ5OgorICAgKmhfZXJybm9wID0gTk9fUkVDT1ZFUlk7CisgICAqZXJy bm9wID0gRU5PRU5UOworICAgcmV0dXJuIE5TU19TVEFUVVNfVFJZQUdBSU47CistLSAKKzIuMzgu MQorCisKK0Zyb20gNTE2NTA4MGZlYzYzYTFmMDNhYTE5ODViNzdiY2EzMDA0NjViZjU3MCBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEZsb3JpYW4gV2VpbWVyIDxmd2VpbWVyQHJlZGhh dC5jb20+CitEYXRlOiBUdWUsIDMwIEF1ZyAyMDIyIDEwOjAyOjQ5ICswMjAwCitTdWJqZWN0OiBb UEFUQ0ggMzEvNzJdIG5zc19kbnM6IFJlbW92ZSByZW1uYW50cyBvZiBJUHY2IGFkZHJlc3MgbWFw cGluZworCityZXNfdXNlX2luZXQ2IGFsd2F5cyByZXR1cm5zIGZhbHNlIHNpbmNlIGNvbW1pdCAz ZjhiNDRiZTBhNjU4MjY2YWRmZjUKKygicmVzb2x2OiBSZW1vdmUgc3VwcG9ydCBmb3IgUkVTX1VT RV9JTkVUNiBhbmQgdGhlIGluZXQ2IG9wdGlvbiIpLgorCitSZXZpZXdlZC1ieTogU2lkZGhlc2gg UG95YXJla2FyIDxzaWRkaGVzaEBzb3VyY2V3YXJlLm9yZz4KKyhjaGVycnkgcGlja2VkIGZyb20g Y29tbWl0IGE3ZmMzMGI1MjJhMGNkN2M4YzVlN2UyODViOTUzMWI3MDRlMDJmMDQpCistLS0KKyBy ZXNvbHYvUkVBRE1FICAgICAgICAgICAgIHwgIDMgLS0KKyByZXNvbHYvbWFwdjR2NmFkZHIuaCAg ICAgIHwgNjkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZXNvbHYvbWFwdjR2 Nmhvc3RlbnQuaCAgIHwgODQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgcmVzb2x2L25zc19kbnMvZG5zLWhvc3QuYyB8IDU0ICsrKysrLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyA0IGZpbGVzIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgMjAxIGRlbGV0aW9ucygtKQor IGRlbGV0ZSBtb2RlIDEwMDY0NCByZXNvbHYvbWFwdjR2NmFkZHIuaAorIGRlbGV0ZSBtb2RlIDEw MDY0NCByZXNvbHYvbWFwdjR2Nmhvc3RlbnQuaAorCitkaWZmIC0tZ2l0IGEvcmVzb2x2L1JFQURN RSBiL3Jlc29sdi9SRUFETUUKK2luZGV4IDUxNGU5YmI2MTcuLjIxNDZiYzNiMjcgMTAwNjQ0Cist LS0gYS9yZXNvbHYvUkVBRE1FCisrKysgYi9yZXNvbHYvUkVBRE1FCitAQCAtMTQ2LDYgKzE0Niwz IEBAIHJlc19saWJjLmMgaXMgaG9tZS1icmV3biwgYWx0aG91Z2ggcGFydHMgb2YgaXQgYXJlIHRh a2VuIGZyb20gcmVzX2RhdGEuYy4KKyAKKyByZXNfaGNvbmYuYyBhbmQgcmVzX2hjb25mLmggd2Vy ZSBjb250cmlidXRlZCBieSBEYXZpZCBNb3NiZXJnZXIsIGFuZAorIGRvIG5vdCBjb21lIGZyb20g QklORC4KKy0KKy1UaGUgZmlsZXMgZ2V0aG5hbWFkZHIuYywgbWFwdjR2NmFkZHIuaCBhbmQgbWFw djR2Nmhvc3RlbnQuaCBhcmUKKy1sZWZ0b3ZlcnMgZnJvbSBCSU5EIDQuOS43LgorZGlmZiAtLWdp dCBhL3Jlc29sdi9tYXB2NHY2YWRkci5oIGIvcmVzb2x2L21hcHY0djZhZGRyLmgKK2RlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggN2Y4NWY3ZDVlMy4uMDAwMDAwMDAwMAorLS0tIGEvcmVz b2x2L21hcHY0djZhZGRyLmgKKysrKyAvZGV2L251bGwKK0BAIC0xLDY5ICswLDAgQEAKKy0vKgor LSAqICsrQ29weXJpZ2h0KysgMTk4NSwgMTk4OCwgMTk5MworLSAqIC0KKy0gKiBDb3B5cmlnaHQg KGMpIDE5ODUsIDE5ODgsIDE5OTMKKy0gKiAgICBUaGUgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0 eSBvZiBDYWxpZm9ybmlhLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy0gKgorLSAqIFJlZGlzdHJp YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91 dAorLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs b3dpbmcgY29uZGl0aW9ucworLSAqIGFyZSBtZXQ6CistICogMS4gUmVkaXN0cmlidXRpb25zIG9m IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy0gKiAgICBub3Rp Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu CistICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo ZSBhYm92ZSBjb3B5cmlnaHQKKy0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCistICogICAgZG9jdW1lbnRhdGlv biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K Ky0gKiA0LiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJzaXR5IG5vciB0aGUgbmFtZXMg b2YgaXRzIGNvbnRyaWJ1dG9ycworLSAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZQorLSAqICAgIHdpdGhvdXQg c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorLSAqCistICogVEhJUyBTT0ZUV0FS RSBJUyBQUk9WSURFRCBCWSBUSEUgUkVHRU5UUyBBTkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBB TkQKKy0gKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU IE5PVCBMSU1JVEVEIFRPLCBUSEUKKy0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorLSAqIEFSRSBESVND TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIFJFR0VOVFMgT1IgQ09OVFJJQlVUT1JTIEJF IExJQUJMRQorLSAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCistICogREFNQUdFUyAoSU5DTFVESU5HLCBC VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKKy0gKiBP UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO VEVSUlVQVElPTikKKy0gKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorLSAqIExJQUJJTElUWSwgT1IgVE9S VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkK Ky0gKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg VEhFIFBPU1NJQklMSVRZIE9GCistICogU1VDSCBEQU1BR0UuCistICogLQorLSAqIFBvcnRpb25z IENvcHlyaWdodCAoYykgMTk5MyBieSBEaWdpdGFsIEVxdWlwbWVudCBDb3Jwb3JhdGlvbi4KKy0g KgorLSAqIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZCBkaXN0cmlidXRlIHRo aXMgc29mdHdhcmUgZm9yIGFueQorLSAqIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBo ZXJlYnkgZ3JhbnRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgYWJvdmUKKy0gKiBjb3B5cmlnaHQgbm90 aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVzLCBhbmQg dGhhdAorLSAqIHRoZSBuYW1lIG9mIERpZ2l0YWwgRXF1aXBtZW50IENvcnBvcmF0aW9uIG5vdCBi ZSB1c2VkIGluIGFkdmVydGlzaW5nIG9yCistICogcHVibGljaXR5IHBlcnRhaW5pbmcgdG8gZGlz dHJpYnV0aW9uIG9mIHRoZSBkb2N1bWVudCBvciBzb2Z0d2FyZSB3aXRob3V0CistICogc3BlY2lm aWMsIHdyaXR0ZW4gcHJpb3IgcGVybWlzc2lvbi4KKy0gKgorLSAqIFRIRSBTT0ZUV0FSRSBJUyBQ Uk9WSURFRCAiQVMgSVMiIEFORCBESUdJVEFMIEVRVUlQTUVOVCBDT1JQLiBESVNDTEFJTVMgQUxM CistICogV0FSUkFOVElFUyBXSVRIIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFLCBJTkNMVURJTkcg QUxMIElNUExJRUQgV0FSUkFOVElFUworLSAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT Uy4gICBJTiBOTyBFVkVOVCBTSEFMTCBESUdJVEFMIEVRVUlQTUVOVAorLSAqIENPUlBPUkFUSU9O IEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCwgSU5ESVJFQ1QsIE9SIENPTlNFUVVF TlRJQUwKKy0gKiBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZS T00gTE9TUyBPRiBVU0UsIERBVEEgT1IKKy0gKiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElP TiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUiBPVEhFUiBUT1JUSU9VUworLSAqIEFDVElPTiwg QVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1IgUEVSRk9STUFO Q0UgT0YgVEhJUworLSAqIFNPRlRXQVJFLgorLSAqIC0KKy0gKiAtLUNvcHlyaWdodC0tCistICov CistCistI2luY2x1ZGUgPHN0cmluZy5oPgorLSNpbmNsdWRlIDxhcnBhL25hbWVzZXIuaD4KKy0K Ky1zdGF0aWMgdm9pZAorLW1hcF92NHY2X2FkZHJlc3MgKGNvbnN0IGNoYXIgKnNyYywgY2hhciAq ZHN0KQorLXsKKy0gIHVfY2hhciAqcCA9ICh1X2NoYXIgKikgZHN0OworLSAgaW50IGk7CistCist ICAvKiBNb3ZlIHRoZSBJUHY0IHBhcnQgdG8gdGhlIHJpZ2h0IHBvc2l0aW9uLiAgKi8KKy0gIG1l bWNweSAoZHN0ICsgMTIsIHNyYywgSU5BRERSU1opOworLQorLSAgLyogTWFyayB0aGlzIGlwdjYg YWRkciBhcyBhIG1hcHBlZCBpcHY0LiAqLworLSAgZm9yIChpID0gMDsgaSA8IDEwOyBpKyspCist ICAgICpwKysgPSAweDAwOworLSAgKnArKyA9IDB4ZmY7CistICAqcCA9IDB4ZmY7CistfQorZGlm ZiAtLWdpdCBhL3Jlc29sdi9tYXB2NHY2aG9zdGVudC5oIGIvcmVzb2x2L21hcHY0djZob3N0ZW50 LmgKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggYzExMDM4YWRmMy4uMDAwMDAwMDAw MAorLS0tIGEvcmVzb2x2L21hcHY0djZob3N0ZW50LmgKKysrKyAvZGV2L251bGwKK0BAIC0xLDg0 ICswLDAgQEAKKy0vKgorLSAqICsrQ29weXJpZ2h0KysgMTk4NSwgMTk4OCwgMTk5MworLSAqIC0K Ky0gKiBDb3B5cmlnaHQgKGMpIDE5ODUsIDE5ODgsIDE5OTMKKy0gKiAgICBUaGUgUmVnZW50cyBv ZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy0g KgorLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs IHdpdGggb3Igd2l0aG91dAorLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworLSAqIGFyZSBtZXQ6CistICogMS4gUmVk aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln aHQKKy0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93 aW5nIGRpc2NsYWltZXIuCistICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11 c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy0gKiAgICBub3RpY2UsIHRoaXMgbGlz dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCistICog ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl IGRpc3RyaWJ1dGlvbi4KKy0gKiA0LiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJzaXR5 IG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworLSAqICAgIG1heSBiZSB1c2VkIHRv IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZQor LSAqICAgIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorLSAqCist ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgUkVHRU5UUyBBTkQgQ09OVFJJQlVU T1JTIGBgQVMgSVMnJyBBTkQKKy0gKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKy0gKiBJTVBMSUVEIFdBUlJBTlRJ RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RQorLSAqIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIFJFR0VOVFMgT1Ig Q09OVFJJQlVUT1JTIEJFIExJQUJMRQorLSAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCistICogREFNQUdF UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV VEUgR09PRFMKKy0gKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7 IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKy0gKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorLSAqIExJ QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT SU5HIElOIEFOWSBXQVkKKy0gKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCistICogU1VDSCBEQU1BR0UuCistICog LQorLSAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5MyBieSBEaWdpdGFsIEVxdWlwbWVudCBD b3Jwb3JhdGlvbi4KKy0gKgorLSAqIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFu ZCBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueQorLSAqIHB1cnBvc2Ugd2l0aCBvciB3 aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgYWJvdmUKKy0g KiBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBpbiBh bGwgY29waWVzLCBhbmQgdGhhdAorLSAqIHRoZSBuYW1lIG9mIERpZ2l0YWwgRXF1aXBtZW50IENv cnBvcmF0aW9uIG5vdCBiZSB1c2VkIGluIGFkdmVydGlzaW5nIG9yCistICogcHVibGljaXR5IHBl cnRhaW5pbmcgdG8gZGlzdHJpYnV0aW9uIG9mIHRoZSBkb2N1bWVudCBvciBzb2Z0d2FyZSB3aXRo b3V0CistICogc3BlY2lmaWMsIHdyaXR0ZW4gcHJpb3IgcGVybWlzc2lvbi4KKy0gKgorLSAqIFRI RSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiIEFORCBESUdJVEFMIEVRVUlQTUVOVCBDT1JQ LiBESVNDTEFJTVMgQUxMCistICogV0FSUkFOVElFUyBXSVRIIFJFR0FSRCBUTyBUSElTIFNPRlRX QVJFLCBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUworLSAqIE9GIE1FUkNIQU5UQUJJ TElUWSBBTkQgRklUTkVTUy4gICBJTiBOTyBFVkVOVCBTSEFMTCBESUdJVEFMIEVRVUlQTUVOVAor LSAqIENPUlBPUkFUSU9OIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCwgSU5ESVJF Q1QsIE9SIENPTlNFUVVFTlRJQUwKKy0gKiBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VW RVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBVU0UsIERBVEEgT1IKKy0gKiBQUk9GSVRTLCBXSEVU SEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUiBPVEhFUiBUT1JUSU9V UworLSAqIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBV U0UgT1IgUEVSRk9STUFOQ0UgT0YgVEhJUworLSAqIFNPRlRXQVJFLgorLSAqIC0KKy0gKiAtLUNv cHlyaWdodC0tCistICovCistCistI2luY2x1ZGUgPGFycGEvbmFtZXNlci5oPgorLSNpbmNsdWRl IDxzeXMvc29ja2V0Lmg+CistCistdHlwZWRlZiB1bmlvbiB7CistICAgIGludDMyX3QgYWw7Cist ICAgIGNoYXIgYWM7CistfSBhbGlnbjsKKy0KKy1zdGF0aWMgaW50CistbWFwX3Y0djZfaG9zdGVu dCAoc3RydWN0IGhvc3RlbnQgKmhwLCBjaGFyICoqYnBwLCBpbnQgKmxlbnApCisteworLSAgY2hh ciAqKmFwOworLQorLSAgaWYgKGhwLT5oX2FkZHJ0eXBlICE9IEFGX0lORVQgfHwgaHAtPmhfbGVu Z3RoICE9IElOQUREUlNaKQorLSAgICByZXR1cm4gMDsKKy0gIGhwLT5oX2FkZHJ0eXBlID0gQUZf SU5FVDY7CistICBocC0+aF9sZW5ndGggPSBJTjZBRERSU1o7CistICBmb3IgKGFwID0gaHAtPmhf YWRkcl9saXN0OyAqYXA7IGFwKyspCistICAgIHsKKy0gICAgICBpbnQgaSA9IHNpemVvZiAoYWxp Z24pIC0gKCh1X2xvbmcpICpicHAgJSBzaXplb2YgKGFsaWduKSk7CistCistICAgICAgaWYgKCps ZW5wIDwgKGkgKyBJTjZBRERSU1opKQorLQkvKiBPdXQgb2YgbWVtb3J5LiAgKi8KKy0JcmV0dXJu IDE7CistICAgICAgKmJwcCArPSBpOworLSAgICAgICpsZW5wIC09IGk7CistICAgICAgbWFwX3Y0 djZfYWRkcmVzcyAoKmFwLCAqYnBwKTsKKy0gICAgICAqYXAgPSAqYnBwOworLSAgICAgICpicHAg Kz0gSU42QUREUlNaOworLSAgICAgICpsZW5wIC09IElONkFERFJTWjsKKy0gICAgfQorLSAgcmV0 dXJuIDA7CistfQorZGlmZiAtLWdpdCBhL3Jlc29sdi9uc3NfZG5zL2Rucy1ob3N0LmMgYi9yZXNv bHYvbnNzX2Rucy9kbnMtaG9zdC5jCitpbmRleCBjZDI2Mzk5YjdlLi44ZTM4NTgzZTE1IDEwMDY0 NAorLS0tIGEvcmVzb2x2L25zc19kbnMvZG5zLWhvc3QuYworKysrIGIvcmVzb2x2L25zc19kbnMv ZG5zLWhvc3QuYworQEAgLTg3LDEwICs4Nyw2IEBACisgI2luY2x1ZGUgPHJlc29sdi9yZXNvbHYt aW50ZXJuYWwuaD4KKyAjaW5jbHVkZSA8cmVzb2x2L3Jlc29sdl9jb250ZXh0Lmg+CisgCistLyog R2V0IGltcGxlbWVudGF0aW9ucyBvZiBzb21lIGludGVybmFsIGZ1bmN0aW9ucy4gICovCistI2lu Y2x1ZGUgPHJlc29sdi9tYXB2NHY2YWRkci5oPgorLSNpbmNsdWRlIDxyZXNvbHYvbWFwdjR2Nmhv c3RlbnQuaD4KKy0KKyAjZGVmaW5lIFJFU09MVlNPUlQKKyAKKyAjaWYgUEFDS0VUU1ogPiA2NTUz NgorQEAgLTExNiw3ICsxMTIsNyBAQCBzdGF0aWMgZW51bSBuc3Nfc3RhdHVzIGdldGFuc3dlcl9y IChzdHJ1Y3QgcmVzb2x2X2NvbnRleHQgKmN0eCwKKyAJCQkJICAgIGNvbnN0IGNoYXIgKnFuYW1l LCBpbnQgcXR5cGUsCisgCQkJCSAgICBzdHJ1Y3QgaG9zdGVudCAqcmVzdWx0LCBjaGFyICpidWZm ZXIsCisgCQkJCSAgICBzaXplX3QgYnVmbGVuLCBpbnQgKmVycm5vcCwgaW50ICpoX2Vycm5vcCwK Ky0JCQkJICAgIGludCBtYXAsIGludDMyX3QgKnR0bHAsIGNoYXIgKipjYW5vbnApOworKwkJCQkg ICAgaW50MzJfdCAqdHRscCwgY2hhciAqKmNhbm9ucCk7Cisgc3RhdGljIGVudW0gbnNzX3N0YXR1 cyBnZXRhbnN3ZXJfcHRyICh1bnNpZ25lZCBjaGFyICpwYWNrZXQsIHNpemVfdCBwYWNrZXRsZW4s CisgCQkJCSAgICAgIHN0cnVjdCBhbGxvY19idWZmZXIgKmFidWYsCisgCQkJCSAgICAgIGNoYXIg KipobmFtZXAsIGludCAqZXJybm9wLAorQEAgLTE5Nyw3ICsxOTMsNiBAQCBnZXRob3N0YnluYW1l M19jb250ZXh0IChzdHJ1Y3QgcmVzb2x2X2NvbnRleHQgKmN0eCwKKyAgIGNoYXIgdG1wW05TX01B WEROQU1FXTsKKyAgIGludCBzaXplLCB0eXBlLCBuOworICAgY29uc3QgY2hhciAqY3A7CistICBp bnQgbWFwID0gMDsKKyAgIGludCBvbGRlcnIgPSBlcnJubzsKKyAgIGVudW0gbnNzX3N0YXR1cyBz dGF0dXM7CisgCitAQCAtMjU4LDMyICsyNTMsMTIgQEAgZ2V0aG9zdGJ5bmFtZTNfY29udGV4dCAo c3RydWN0IHJlc29sdl9jb250ZXh0ICpjdHgsCisgCSplcnJub3AgPSBFQUdBSU47CisgICAgICAg ZWxzZQorIAlfX3NldF9lcnJubyAob2xkZXJyKTsKKy0KKy0gICAgICAvKiBJZiB3ZSBhcmUgbG9v a2luZyBmb3IgYW4gSVB2NiBhZGRyZXNzIGFuZCBtYXBwaW5nIGlzIGVuYWJsZWQKKy0JIGJ5IGhh dmluZyB0aGUgUkVTX1VTRV9JTkVUNiBiaXQgaW4gX3Jlcy5vcHRpb25zIHNldCwgd2UgdHJ5Cist CSBhbm90aGVyIGxvb2t1cC4gICovCistICAgICAgaWYgKGFmID09IEFGX0lORVQ2ICYmIHJlc191 c2VfaW5ldDYgKCkpCistCW4gPSBfX3Jlc19jb250ZXh0X3NlYXJjaCAoY3R4LCBuYW1lLCBDX0lO LCBUX0EsIGhvc3RfYnVmZmVyLmJ1Zi0+YnVmLAorLQkJCQkgIGhvc3RfYnVmZmVyLmJ1ZiAhPSBv cmlnX2hvc3RfYnVmZmVyCistCQkJCSAgPyBNQVhQQUNLRVQgOiAxMDI0LCAmaG9zdF9idWZmZXIu cHRyLAorLQkJCQkgIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwpOworLQorLSAgICAgIGlmIChuIDwg MCkKKy0JeworLQkgIGlmIChob3N0X2J1ZmZlci5idWYgIT0gb3JpZ19ob3N0X2J1ZmZlcikKKy0J ICAgIGZyZWUgKGhvc3RfYnVmZmVyLmJ1Zik7CistCSAgcmV0dXJuIHN0YXR1czsKKy0JfQorLQor LSAgICAgIG1hcCA9IDE7CistCistICAgICAgcmVzdWx0LT5oX2FkZHJ0eXBlID0gQUZfSU5FVDsK Ky0gICAgICByZXN1bHQtPmhfbGVuZ3RoID0gSU5BRERSU1o7CisgICAgIH0KKysgIGVsc2UKKysg ICAgc3RhdHVzID0gZ2V0YW5zd2VyX3IKKysgICAgICAoY3R4LCBob3N0X2J1ZmZlci5idWYsIG4s IG5hbWUsIHR5cGUsIHJlc3VsdCwgYnVmZmVyLCBidWZsZW4sCisrICAgICAgIGVycm5vcCwgaF9l cnJub3AsIHR0bHAsIGNhbm9ucCk7CisgCistICBzdGF0dXMgPSBnZXRhbnN3ZXJfcgorLSAgICAo Y3R4LCBob3N0X2J1ZmZlci5idWYsIG4sIG5hbWUsIHR5cGUsIHJlc3VsdCwgYnVmZmVyLCBidWZs ZW4sCistICAgICBlcnJub3AsIGhfZXJybm9wLCBtYXAsIHR0bHAsIGNhbm9ucCk7CisgICBpZiAo aG9zdF9idWZmZXIuYnVmICE9IG9yaWdfaG9zdF9idWZmZXIpCisgICAgIGZyZWUgKGhvc3RfYnVm ZmVyLmJ1Zik7CisgICByZXR1cm4gc3RhdHVzOworQEAgLTMyOSwxMyArMzA0LDggQEAgX25zc19k bnNfZ2V0aG9zdGJ5bmFtZV9yIChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgaG9zdGVudCAqcmVz dWx0LAorICAgICAgICpoX2Vycm5vcCA9IE5FVERCX0lOVEVSTkFMOworICAgICAgIHJldHVybiBO U1NfU1RBVFVTX1VOQVZBSUw7CisgICAgIH0KKy0gIHN0YXR1cyA9IE5TU19TVEFUVVNfTk9URk9V TkQ7CistICBpZiAocmVzX3VzZV9pbmV0NiAoKSkKKy0gICAgc3RhdHVzID0gZ2V0aG9zdGJ5bmFt ZTNfY29udGV4dCAoY3R4LCBuYW1lLCBBRl9JTkVUNiwgcmVzdWx0LCBidWZmZXIsCistCQkJCSAg ICAgYnVmbGVuLCBlcnJub3AsIGhfZXJybm9wLCBOVUxMLCBOVUxMKTsKKy0gIGlmIChzdGF0dXMg PT0gTlNTX1NUQVRVU19OT1RGT1VORCkKKy0gICAgc3RhdHVzID0gZ2V0aG9zdGJ5bmFtZTNfY29u dGV4dCAoY3R4LCBuYW1lLCBBRl9JTkVULCByZXN1bHQsIGJ1ZmZlciwKKy0JCQkJICAgICBidWZs ZW4sIGVycm5vcCwgaF9lcnJub3AsIE5VTEwsIE5VTEwpOworKyAgc3RhdHVzID0gZ2V0aG9zdGJ5 bmFtZTNfY29udGV4dCAoY3R4LCBuYW1lLCBBRl9JTkVULCByZXN1bHQsIGJ1ZmZlciwKKysJCQkJ ICAgYnVmbGVuLCBlcnJub3AsIGhfZXJybm9wLCBOVUxMLCBOVUxMKTsKKyAgIF9fcmVzb2x2X2Nv bnRleHRfcHV0IChjdHgpOworICAgcmV0dXJuIHN0YXR1czsKKyB9CitAQCAtNjQ4LDcgKzYxOCw3 IEBAIHN0YXRpYyBlbnVtIG5zc19zdGF0dXMKKyBnZXRhbnN3ZXJfciAoc3RydWN0IHJlc29sdl9j b250ZXh0ICpjdHgsCisgCSAgICAgY29uc3QgcXVlcnlidWYgKmFuc3dlciwgaW50IGFuc2xlbiwg Y29uc3QgY2hhciAqcW5hbWUsIGludCBxdHlwZSwKKyAJICAgICBzdHJ1Y3QgaG9zdGVudCAqcmVz dWx0LCBjaGFyICpidWZmZXIsIHNpemVfdCBidWZsZW4sCistCSAgICAgaW50ICplcnJub3AsIGlu dCAqaF9lcnJub3AsIGludCBtYXAsIGludDMyX3QgKnR0bHAsIGNoYXIgKipjYW5vbnApCisrCSAg ICAgaW50ICplcnJub3AsIGludCAqaF9lcnJub3AsIGludDMyX3QgKnR0bHAsIGNoYXIgKipjYW5v bnApCisgeworICAgc3RydWN0IGhvc3RfZGF0YQorICAgeworQEAgLTY2NCw3ICs2MzQsNiBAQCBn ZXRhbnN3ZXJfciAoc3RydWN0IHJlc29sdl9jb250ZXh0ICpjdHgsCisgICBjaGFyICpicCwgKiph cCwgKipoYXA7CisgICBjaGFyIHRidWZbTUFYRE5BTUVdOworICAgdV9jaGFyIHBhY2t0bXBbTlNf TUFYQ0ROQU1FXTsKKy0gIGludCBoYXZlX3RvX21hcCA9IDA7CisgICB1aW50cHRyX3QgcGFkID0g LSh1aW50cHRyX3QpIGJ1ZmZlciAlIF9fYWxpZ25vZl9fIChzdHJ1Y3QgaG9zdF9kYXRhKTsKKyAg IGJ1ZmZlciArPSBwYWQ7CisgICBidWZsZW4gPSBidWZsZW4gPiBwYWQgPyBidWZsZW4gLSBwYWQg OiAwOworQEAgLTg0NSw5ICs4MTQsNyBAQCBnZXRhbnN3ZXJfciAoc3RydWN0IHJlc29sdl9jb250 ZXh0ICpjdHgsCisgCSAgY29udGludWU7CisgCX0KKyAKKy0gICAgICBpZiAodHlwZSA9PSBUX0Eg JiYgcXR5cGUgPT0gVF9BQUFBICYmIG1hcCkKKy0JaGF2ZV90b19tYXAgPSAxOworLSAgICAgIGVs c2UgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKHR5cGUgIT0gcXR5cGUpKQorKyAgICAgIGlmIChfX2ds aWJjX3VubGlrZWx5ICh0eXBlICE9IHF0eXBlKSkKKyAJeworIAkgIGNwICs9IG47CisgCSAgY29u dGludWU7CQkJLyogWFhYIC0gaGFkX2Vycm9yKysgPyAqLworQEAgLTk0NCw5ICs5MTEsNiBAQCBn ZXRhbnN3ZXJfciAoc3RydWN0IHJlc29sdl9jb250ZXh0ICpjdHgsCisgCSAgbGluZWJ1ZmxlbiAt PSBuOworIAl9CisgCistICAgICAgaWYgKGhhdmVfdG9fbWFwKQorLQlpZiAobWFwX3Y0djZfaG9z dGVudCAocmVzdWx0LCAmYnAsICZsaW5lYnVmbGVuKSkKKy0JICBnb3RvIHRvb19zbWFsbDsKKyAg ICAgICAqaF9lcnJub3AgPSBORVREQl9TVUNDRVNTOworICAgICAgIHJldHVybiBOU1NfU1RBVFVT X1NVQ0NFU1M7CisgICAgIH0KKy0tIAorMi4zOC4xCisKKworRnJvbSA3OGM4ZWYyMWZhNTRlOTk0 NDUxZDViNDJlYWQ2MDgwZDk5YTg4YTQ5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTog RmxvcmlhbiBXZWltZXIgPGZ3ZWltZXJAcmVkaGF0LmNvbT4KK0RhdGU6IFR1ZSwgMzAgQXVnIDIw MjIgMTA6MDI6NDkgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAzMi83Ml0gbnNzX2RuczogUmV3cml0 ZSBnZXRhbnN3ZXJfciB0byBtYXRjaCBnZXRhbnN3ZXJfcHRyCisgKGJ1ZyAxMjE1NCwgYnVnIDI5 MzA1KQorCitBbGxvY2F0ZSB0aGUgcG9pbnRlciBhcnJheXMgb25seSBhdCB0aGUgZW5kLCB3aGVu IHRoZWlyIHNpemVzCithcmUga25vd24uICBUaGlzIGFkZHJlc3NlcyBidWcgMjkzMDUuCisKK1Nr aXAgb3ZlciBpbnZhbGlkIG5hbWVzIGluc3RlYWQgb2YgZmFpbGluZyBsb29rdXBzLiAgVGhpcyBw YXJ0aWFsbHkKK2ZpeGVzIGJ1ZyAxMjE1NCAoZm9yIGdldGhvc3RieW5hbWUsIGZpeGluZyBnZXRh ZGRyaW5mbyByZXF1aXJlcworZGlmZmVyZW50IGNoYW5nZXMpLgorCitSZXZpZXdlZC1ieTogU2lk ZGhlc2ggUG95YXJla2FyIDxzaWRkaGVzaEBzb3VyY2V3YXJlLm9yZz4KKyhjaGVycnkgcGlja2Vk IGZyb20gY29tbWl0IGQxMDFkODM2ZTdlNGJkMWQ0ZTQ5NzJiMGUwYmQwYTU1YzliNjUwZmEpCist LS0KKyByZXNvbHYvbnNzX2Rucy9kbnMtaG9zdC5jIHwgNDc4ICsrKysrKysrKysrKysrLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDE4MCBpbnNlcnRpb25zKCspLCAy OTggZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9yZXNvbHYvbnNzX2Rucy9kbnMtaG9zdC5j IGIvcmVzb2x2L25zc19kbnMvZG5zLWhvc3QuYworaW5kZXggOGUzODU4M2UxNS4uYjg4N2U3N2U5 YyAxMDA2NDQKKy0tLSBhL3Jlc29sdi9uc3NfZG5zL2Rucy1ob3N0LmMKKysrKyBiL3Jlc29sdi9u c3NfZG5zL2Rucy1ob3N0LmMKK0BAIC0xMDcsMTIgKzEwNywxOSBAQCB0eXBlZGVmIHVuaW9uIHF1 ZXJ5YnVmCisgICB1X2NoYXIgYnVmW01BWFBBQ0tFVF07CisgfSBxdWVyeWJ1ZjsKKyAKKy1zdGF0 aWMgZW51bSBuc3Nfc3RhdHVzIGdldGFuc3dlcl9yIChzdHJ1Y3QgcmVzb2x2X2NvbnRleHQgKmN0 eCwKKy0JCQkJICAgIGNvbnN0IHF1ZXJ5YnVmICphbnN3ZXIsIGludCBhbnNsZW4sCistCQkJCSAg ICBjb25zdCBjaGFyICpxbmFtZSwgaW50IHF0eXBlLAorLQkJCQkgICAgc3RydWN0IGhvc3RlbnQg KnJlc3VsdCwgY2hhciAqYnVmZmVyLAorLQkJCQkgICAgc2l6ZV90IGJ1ZmxlbiwgaW50ICplcnJu b3AsIGludCAqaF9lcnJub3AsCistCQkJCSAgICBpbnQzMl90ICp0dGxwLCBjaGFyICoqY2Fub25w KTsKKysvKiBGb3IgaGlzdG9yaWMgcmVhc29ucywgcG9pbnRlcnMgdG8gSVAgYWRkcmVzc2VzIGFy ZSBjaGFyICosIHNvIHVzZSBhCisrICAgc2luZ2xlIGxpc3QgdHlwZSBmb3IgYWRkcmVzc2VzIGFu ZCBob3N0IG5hbWVzLiAgKi8KKysjZGVmaW5lIERZTkFSUkFZX1NUUlVDVCBwdHJsaXN0CisrI2Rl ZmluZSBEWU5BUlJBWV9FTEVNRU5UIGNoYXIgKgorKyNkZWZpbmUgRFlOQVJSQVlfUFJFRklYIHB0 cmxpc3RfCisrI2luY2x1ZGUgPG1hbGxvYy9keW5hcnJheS1za2VsZXRvbi5jPgorKworK3N0YXRp YyBlbnVtIG5zc19zdGF0dXMgZ2V0YW5zd2VyX3IgKHVuc2lnbmVkIGNoYXIgKnBhY2tldCwgc2l6 ZV90IHBhY2tldGxlbiwKKysJCQkJICAgIHVpbnQxNl90IHF0eXBlLCBzdHJ1Y3QgYWxsb2NfYnVm ZmVyICphYnVmLAorKwkJCQkgICAgc3RydWN0IHB0cmxpc3QgKmFkZHJlc3NlcywKKysJCQkJICAg IHN0cnVjdCBwdHJsaXN0ICphbGlhc2VzLAorKwkJCQkgICAgaW50ICplcnJub3AsIGludCAqaF9l cnJub3AsIGludDMyX3QgKnR0bHApOworK3N0YXRpYyB2b2lkIGFkZHJzb3J0IChzdHJ1Y3QgcmVz b2x2X2NvbnRleHQgKmN0eCwgY2hhciAqKmFwLCBpbnQgbnVtKTsKKyBzdGF0aWMgZW51bSBuc3Nf c3RhdHVzIGdldGFuc3dlcl9wdHIgKHVuc2lnbmVkIGNoYXIgKnBhY2tldCwgc2l6ZV90IHBhY2tl dGxlbiwKKyAJCQkJICAgICAgc3RydWN0IGFsbG9jX2J1ZmZlciAqYWJ1ZiwKKyAJCQkJICAgICAg Y2hhciAqKmhuYW1lcCwgaW50ICplcnJub3AsCitAQCAtMTg0LDEyICsxOTEsNiBAQCBnZXRob3N0 YnluYW1lM19jb250ZXh0IChzdHJ1Y3QgcmVzb2x2X2NvbnRleHQgKmN0eCwKKyAJCQljaGFyICpi dWZmZXIsIHNpemVfdCBidWZsZW4sIGludCAqZXJybm9wLAorIAkJCWludCAqaF9lcnJub3AsIGlu dDMyX3QgKnR0bHAsIGNoYXIgKipjYW5vbnApCisgeworLSAgdW5pb24KKy0gIHsKKy0gICAgcXVl cnlidWYgKmJ1ZjsKKy0gICAgdV9jaGFyICpwdHI7CistICB9IGhvc3RfYnVmZmVyOworLSAgcXVl cnlidWYgKm9yaWdfaG9zdF9idWZmZXI7CisgICBjaGFyIHRtcFtOU19NQVhETkFNRV07CisgICBp bnQgc2l6ZSwgdHlwZSwgbjsKKyAgIGNvbnN0IGNoYXIgKmNwOworQEAgLTIyMywxMCArMjI0LDEy IEBAIGdldGhvc3RieW5hbWUzX2NvbnRleHQgKHN0cnVjdCByZXNvbHZfY29udGV4dCAqY3R4LAor ICAgICAgICYmIChjcCA9IF9fcmVzX2NvbnRleHRfaG9zdGFsaWFzIChjdHgsIG5hbWUsIHRtcCwg c2l6ZW9mICh0bXApKSkgIT0gTlVMTCkKKyAgICAgbmFtZSA9IGNwOworIAorLSAgaG9zdF9idWZm ZXIuYnVmID0gb3JpZ19ob3N0X2J1ZmZlciA9IChxdWVyeWJ1ZiAqKSBhbGxvY2EgKDEwMjQpOwor KyAgdW5zaWduZWQgY2hhciBkbnNfcGFja2V0X2J1ZmZlclsxMDI0XTsKKysgIHVuc2lnbmVkIGNo YXIgKmFsdF9kbnNfcGFja2V0X2J1ZmZlciA9IGRuc19wYWNrZXRfYnVmZmVyOworIAorLSAgbiA9 IF9fcmVzX2NvbnRleHRfc2VhcmNoIChjdHgsIG5hbWUsIENfSU4sIHR5cGUsIGhvc3RfYnVmZmVy LmJ1Zi0+YnVmLAorLQkJCSAgICAxMDI0LCAmaG9zdF9idWZmZXIucHRyLCBOVUxMLCBOVUxMLCBO VUxMLCBOVUxMKTsKKysgIG4gPSBfX3Jlc19jb250ZXh0X3NlYXJjaCAoY3R4LCBuYW1lLCBDX0lO LCB0eXBlLAorKwkJCSAgICBkbnNfcGFja2V0X2J1ZmZlciwgc2l6ZW9mIChkbnNfcGFja2V0X2J1 ZmZlciksCisrCQkJICAgICZhbHRfZG5zX3BhY2tldF9idWZmZXIsIE5VTEwsIE5VTEwsIE5VTEws IE5VTEwpOworICAgaWYgKG4gPCAwKQorICAgICB7CisgICAgICAgc3dpdGNoIChlcnJubykKK0BA IC0yNTUsMTIgKzI1OCw3NyBAQCBnZXRob3N0YnluYW1lM19jb250ZXh0IChzdHJ1Y3QgcmVzb2x2 X2NvbnRleHQgKmN0eCwKKyAJX19zZXRfZXJybm8gKG9sZGVycik7CisgICAgIH0KKyAgIGVsc2UK Ky0gICAgc3RhdHVzID0gZ2V0YW5zd2VyX3IKKy0gICAgICAoY3R4LCBob3N0X2J1ZmZlci5idWYs IG4sIG5hbWUsIHR5cGUsIHJlc3VsdCwgYnVmZmVyLCBidWZsZW4sCistICAgICAgIGVycm5vcCwg aF9lcnJub3AsIHR0bHAsIGNhbm9ucCk7CisrICAgIHsKKysgICAgICBzdHJ1Y3QgYWxsb2NfYnVm ZmVyIGFidWYgPSBhbGxvY19idWZmZXJfY3JlYXRlIChidWZmZXIsIGJ1Zmxlbik7CisgCistICBp ZiAoaG9zdF9idWZmZXIuYnVmICE9IG9yaWdfaG9zdF9idWZmZXIpCistICAgIGZyZWUgKGhvc3Rf YnVmZmVyLmJ1Zik7CisrICAgICAgc3RydWN0IHB0cmxpc3QgYWRkcmVzc2VzOworKyAgICAgIHB0 cmxpc3RfaW5pdCAoJmFkZHJlc3Nlcyk7CisrICAgICAgc3RydWN0IHB0cmxpc3QgYWxpYXNlczsK KysgICAgICBwdHJsaXN0X2luaXQgKCZhbGlhc2VzKTsKKysKKysgICAgICBzdGF0dXMgPSBnZXRh bnN3ZXJfciAoYWx0X2Ruc19wYWNrZXRfYnVmZmVyLCBuLCB0eXBlLAorKwkJCSAgICAmYWJ1Ziwg JmFkZHJlc3NlcywgJmFsaWFzZXMsCisrCQkJICAgIGVycm5vcCwgaF9lcnJub3AsIHR0bHApOwor KyAgICAgIGlmIChzdGF0dXMgPT0gTlNTX1NUQVRVU19TVUNDRVNTKQorKwl7CisrCSAgaWYgKHB0 cmxpc3RfaGFzX2ZhaWxlZCAoJmFkZHJlc3NlcykKKysJICAgICAgfHwgcHRybGlzdF9oYXNfZmFp bGVkICgmYWxpYXNlcykpCisrCSAgICB7CisrCSAgICAgIC8qIG1hbGxvYyBmYWlsdXJlLiAgRG8g bm90IHJldHJ5IHVzaW5nIHRoZSBFUkFOR0UgcHJvdG9jb2wuICAqLworKwkgICAgICAqZXJybm9w ID0gRU5PTUVNOworKwkgICAgICAqaF9lcnJub3AgPSBORVREQl9JTlRFUk5BTDsKKysJICAgICAg c3RhdHVzID0gTlNTX1NUQVRVU19VTkFWQUlMOworKwkgICAgfQorKworKwkgIC8qIFJlc2VydmUg dGhlIGFkZHJlc3MgYW5kIGFsaWFzIGFycmF5cyBpbiB0aGUgcmVzdWx0CisrCSAgICAgYnVmZmVy LiAgQm90aCBhcmUgTlVMTC10ZXJtaW5hdGVkLCBidXQgdGhlIGZpcnN0IGVsZW1lbnQKKysJICAg ICBvZiB0aGUgYWxpYXMgYXJyYXkgaXMgc3RvcmVkIGluIGhfbmFtZSwgc28gbm8gZXh0cmEgc3Bh Y2UKKysJICAgICBmb3IgdGhlIE5VTEwgdGVybWluYXRvciBpcyBuZWVkZWQgdGhlcmUuICAqLwor KwkgIHJlc3VsdC0+aF9hZGRyX2xpc3QKKysJICAgID0gYWxsb2NfYnVmZmVyX2FsbG9jX2FycmF5 ICgmYWJ1ZiwgY2hhciAqLAorKwkJCQkJcHRybGlzdF9zaXplICgmYWRkcmVzc2VzKSArIDEpOwor KwkgIHJlc3VsdC0+aF9hbGlhc2VzCisrCSAgICA9IGFsbG9jX2J1ZmZlcl9hbGxvY19hcnJheSAo JmFidWYsIGNoYXIgKiwKKysJCQkJCXB0cmxpc3Rfc2l6ZSAoJmFsaWFzZXMpKTsKKysJICBpZiAo YWxsb2NfYnVmZmVyX2hhc19mYWlsZWQgKCZhYnVmKSkKKysJICAgIHsKKysJICAgICAgLyogUmV0 cnkgdXNpbmcgdGhlIEVSQU5HRSBwcm90b2NvbC4gICovCisrCSAgICAgICplcnJub3AgPSBFUkFO R0U7CisrCSAgICAgICpoX2Vycm5vcCA9IE5FVERCX0lOVEVSTkFMOworKwkgICAgICBzdGF0dXMg PSBOU1NfU1RBVFVTX1RSWUFHQUlOOworKwkgICAgfQorKwkgIGVsc2UKKysJICAgIHsKKysJICAg ICAgLyogQ29weSB0aGUgYWRkcmVzcyBsaXN0IGFuZCBOVUxMLXRlcm1pbmF0ZSBpdC4gICovCisr CSAgICAgIG1lbWNweSAocmVzdWx0LT5oX2FkZHJfbGlzdCwgcHRybGlzdF9iZWdpbiAoJmFkZHJl c3NlcyksCisrCQkgICAgICBwdHJsaXN0X3NpemUgKCZhZGRyZXNzZXMpICogc2l6ZW9mIChjaGFy ICopKTsKKysJICAgICAgcmVzdWx0LT5oX2FkZHJfbGlzdFtwdHJsaXN0X3NpemUgKCZhZGRyZXNz ZXMpXSA9IE5VTEw7CisrCisrCSAgICAgIC8qIFNvcnQgdGhlIGFkZHJlc3MgbGlzdCBpZiByZXF1 ZXN0ZWQuICAqLworKwkgICAgICBpZiAodHlwZSA9PSBUX0EgJiYgX19yZXNvbHZfY29udGV4dF9z b3J0X2NvdW50IChjdHgpID4gMCkKKysJCWFkZHJzb3J0IChjdHgsIHJlc3VsdC0+aF9hZGRyX2xp c3QsIHB0cmxpc3Rfc2l6ZSAoJmFkZHJlc3NlcykpOworKworKwkgICAgICAvKiBDb3B5IHRoZSBh bGlhc2VzLCAgZXhjbHVkaW5nIHRoZSBsYXN0IG9uZS4gKi8KKysJICAgICAgbWVtY3B5IChyZXN1 bHQtPmhfYWxpYXNlcywgcHRybGlzdF9iZWdpbiAoJmFsaWFzZXMpLAorKwkJICAgICAgKHB0cmxp c3Rfc2l6ZSAoJmFsaWFzZXMpIC0gMSkgKiBzaXplb2YgKGNoYXIgKikpOworKwkgICAgICByZXN1 bHQtPmhfYWxpYXNlc1twdHJsaXN0X3NpemUgKCZhbGlhc2VzKSAtIDFdID0gTlVMTDsKKysKKysJ ICAgICAgLyogVGhlIGxhc3QgYWxpYXMgZ29lcyBpbnRvIGhfbmFtZS4gICovCisrCSAgICAgIGFz c2VydCAocHRybGlzdF9zaXplICgmYWxpYXNlcykgPj0gMSk7CisrCSAgICAgIHJlc3VsdC0+aF9u YW1lID0gcHRybGlzdF9lbmQgKCZhbGlhc2VzKVstMV07CisrCisrCSAgICAgIC8qIFRoaXMgaXMg YWxzbyB0aGUgY2Fub25pY2FsIG5hbWUuICAqLworKwkgICAgICBpZiAoY2Fub25wICE9IE5VTEwp CisrCQkqY2Fub25wID0gcmVzdWx0LT5oX25hbWU7CisrCSAgICB9CisrCX0KKysKKysgICAgICBw dHJsaXN0X2ZyZWUgKCZhbGlhc2VzKTsKKysgICAgICBwdHJsaXN0X2ZyZWUgKCZhZGRyZXNzZXMp OworKyAgICB9CisrCisrICBpZiAoYWx0X2Ruc19wYWNrZXRfYnVmZmVyICE9IGRuc19wYWNrZXRf YnVmZmVyKQorKyAgICBmcmVlIChhbHRfZG5zX3BhY2tldF9idWZmZXIpOworICAgcmV0dXJuIHN0 YXR1czsKKyB9CisgCitAQCAtNjE0LDMxNCArNjgyLDEyOCBAQCBhZGRyc29ydCAoc3RydWN0IHJl c29sdl9jb250ZXh0ICpjdHgsIGNoYXIgKiphcCwgaW50IG51bSkKKyAJYnJlYWs7CisgfQorIAor LXN0YXRpYyBlbnVtIG5zc19zdGF0dXMKKy1nZXRhbnN3ZXJfciAoc3RydWN0IHJlc29sdl9jb250 ZXh0ICpjdHgsCistCSAgICAgY29uc3QgcXVlcnlidWYgKmFuc3dlciwgaW50IGFuc2xlbiwgY29u c3QgY2hhciAqcW5hbWUsIGludCBxdHlwZSwKKy0JICAgICBzdHJ1Y3QgaG9zdGVudCAqcmVzdWx0 LCBjaGFyICpidWZmZXIsIHNpemVfdCBidWZsZW4sCistCSAgICAgaW50ICplcnJub3AsIGludCAq aF9lcnJub3AsIGludDMyX3QgKnR0bHAsIGNoYXIgKipjYW5vbnApCisrLyogQ29udmVydCB0aGUg dW5jb21wcmVzc2VkLCBiaW5hcnkgZG9tYWluIG5hbWUgQ0ROQU1FIGludG8gaXRzCisrICAgdGV4 dHVhbCByZXByZXNlbnRhdGlvbiBhbmQgYWRkIGl0IHRvIHRoZSBlbmQgb2YgQUxJQVNFUywgYWxs b2NhdGluZworKyAgIHNwYWNlIGZvciBhIGNvcHkgb2YgdGhlIG5hbWUgZnJvbSBBQlVGLiAgU2tp cCBhZGRpbmcgdGhlIG5hbWUgaWYgaXQKKysgICBpcyBub3QgYSB2YWxpZCBob3N0IG5hbWUsIGFu ZCByZXR1cm4gZmFsc2UgaW4gdGhhdCBjYXNlLCBvdGhlcndpc2UKKysgICB0cnVlLiAgKi8KKytz dGF0aWMgYm9vbAorK2dldGFuc3dlcl9yX3N0b3JlX2FsaWFzIChjb25zdCB1bnNpZ25lZCBjaGFy ICpjZG5hbWUsCisrCQkJIHN0cnVjdCBhbGxvY19idWZmZXIgKmFidWYsCisrCQkJIHN0cnVjdCBw dHJsaXN0ICphbGlhc2VzKQorIHsKKy0gIHN0cnVjdCBob3N0X2RhdGEKKy0gIHsKKy0gICAgY2hh ciAqYWxpYXNlc1tNQVhfTlJfQUxJQVNFU107CistICAgIHVuc2lnbmVkIGNoYXIgaG9zdF9hZGRy WzE2XTsJLyogSVB2NCBvciBJUHY2ICovCistICAgIGNoYXIgKmhfYWRkcl9wdHJzWzBdOworLSAg fSAqaG9zdF9kYXRhOworLSAgaW50IGxpbmVidWZsZW47CistICBjb25zdCBIRUFERVIgKmhwOwor LSAgY29uc3QgdV9jaGFyICplbmRfb2ZfbWVzc2FnZSwgKmNwOworLSAgaW50IG4sIGFuY291bnQs IHFkY291bnQ7CistICBpbnQgaGF2ZWFuc3dlciwgaGFkX2Vycm9yOworLSAgY2hhciAqYnAsICoq YXAsICoqaGFwOworLSAgY2hhciB0YnVmW01BWEROQU1FXTsKKy0gIHVfY2hhciBwYWNrdG1wW05T X01BWENETkFNRV07CistICB1aW50cHRyX3QgcGFkID0gLSh1aW50cHRyX3QpIGJ1ZmZlciAlIF9f YWxpZ25vZl9fIChzdHJ1Y3QgaG9zdF9kYXRhKTsKKy0gIGJ1ZmZlciArPSBwYWQ7CistICBidWZs ZW4gPSBidWZsZW4gPiBwYWQgPyBidWZsZW4gLSBwYWQgOiAwOworLSAgaWYgKF9fZ2xpYmNfdW5s aWtlbHkgKGJ1ZmxlbiA8IHNpemVvZiAoc3RydWN0IGhvc3RfZGF0YSkpKQorLSAgICB7CistICAg ICAgLyogVGhlIGJ1ZmZlciBpcyB0b28gc21hbGwuICAqLworLSAgICB0b29fc21hbGw6CistICAg ICAgKmVycm5vcCA9IEVSQU5HRTsKKy0gICAgICAqaF9lcnJub3AgPSBORVREQl9JTlRFUk5BTDsK Ky0gICAgICByZXR1cm4gTlNTX1NUQVRVU19UUllBR0FJTjsKKy0gICAgfQorLSAgaG9zdF9kYXRh ID0gKHN0cnVjdCBob3N0X2RhdGEgKikgYnVmZmVyOworLSAgbGluZWJ1ZmxlbiA9IGJ1ZmxlbiAt IHNpemVvZiAoc3RydWN0IGhvc3RfZGF0YSk7CistICBpZiAoYnVmbGVuIC0gc2l6ZW9mIChzdHJ1 Y3QgaG9zdF9kYXRhKSAhPSBsaW5lYnVmbGVuKQorLSAgICBsaW5lYnVmbGVuID0gSU5UX01BWDsK Ky0KKy0gIHJlc3VsdC0+aF9uYW1lID0gTlVMTDsKKy0gIGVuZF9vZl9tZXNzYWdlID0gYW5zd2Vy LT5idWYgKyBhbnNsZW47CistCistICAvKgorLSAgICogZmluZCBmaXJzdCBzYXRpc2ZhY3Rvcnkg YW5zd2VyCistICAgKi8KKy0gIGhwID0gJmFuc3dlci0+aGRyOworLSAgYW5jb3VudCA9IG50b2hz IChocC0+YW5jb3VudCk7CistICBxZGNvdW50ID0gbnRvaHMgKGhwLT5xZGNvdW50KTsKKy0gIGNw ID0gYW5zd2VyLT5idWYgKyBIRklYRURTWjsKKy0gIGlmIChfX2dsaWJjX3VubGlrZWx5IChxZGNv dW50ICE9IDEpKQorLSAgICB7CistICAgICAgKmhfZXJybm9wID0gTk9fUkVDT1ZFUlk7CistICAg ICAgcmV0dXJuIE5TU19TVEFUVVNfVU5BVkFJTDsKKy0gICAgfQorLSAgaWYgKHNpemVvZiAoc3Ry dWN0IGhvc3RfZGF0YSkgKyAoYW5jb3VudCArIDEpICogc2l6ZW9mIChjaGFyICopID49IGJ1Zmxl bikKKy0gICAgZ290byB0b29fc21hbGw7CistICBicCA9IChjaGFyICopICZob3N0X2RhdGEtPmhf YWRkcl9wdHJzW2FuY291bnQgKyAxXTsKKy0gIGxpbmVidWZsZW4gLT0gKGFuY291bnQgKyAxKSAq IHNpemVvZiAoY2hhciAqKTsKKy0KKy0gIG4gPSBfX25zX25hbWVfdW5wYWNrIChhbnN3ZXItPmJ1 ZiwgZW5kX29mX21lc3NhZ2UsIGNwLAorLQkJCXBhY2t0bXAsIHNpemVvZiBwYWNrdG1wKTsKKy0g IGlmIChuICE9IC0xICYmIF9fbnNfbmFtZV9udG9wIChwYWNrdG1wLCBicCwgbGluZWJ1Zmxlbikg PT0gLTEpCistICAgIHsKKy0gICAgICBpZiAoX19nbGliY191bmxpa2VseSAoZXJybm8gPT0gRU1T R1NJWkUpKQorLQlnb3RvIHRvb19zbWFsbDsKKy0KKy0gICAgICBuID0gLTE7CistICAgIH0KKysg IC8qIEZpbHRlciBvdXQgZG9tYWluIG5hbWVzIHRoYXQgYXJlIG5vdCBob3N0IG5hbWVzLiAgKi8K KysgIGlmICghX19yZXNfYmluYXJ5X2hub2sgKGNkbmFtZSkpCisrICAgIHJldHVybiBmYWxzZTsK KysKKysgIC8qIE5vdGU6IE5vdCBOU19NQVhDRE5BTUUsIHNvIHRoYXQgX19uc19uYW1lX250b3Ag aW1wbGljaXRseSBjaGVja3MKKysgICAgIGZvciBsZW5ndGguICAqLworKyAgY2hhciBkbmFtZVtN QVhIT1NUTkFNRUxFTiArIDFdOworKyAgaWYgKF9fbnNfbmFtZV9udG9wIChjZG5hbWUsIGRuYW1l LCBzaXplb2YgKGRuYW1lKSkgPCAwKQorKyAgICByZXR1cm4gZmFsc2U7CisrICAvKiBEbyBub3Qg cmVwb3J0IGFuIGVycm9yIG9uIGFsbG9jYXRpb24gZmFpbHVyZSwgaW5zdGVhZCBzdG9yZSBOVUxM CisrICAgICBvciBkbyBub3RoaW5nLiAgZ2V0YW5zd2VyX3IncyBjYWxsZXIgd2lsbCBzZWUgTlNT X1NUQVRVU19TVUNDRVNTCisrICAgICBhbmQgZGV0ZWN0IHRoZSBtZW1vcnkgYWxsb2NhdGlvbiBm YWlsdXJlIG9yIGJ1ZmZlciBzcGFjZQorKyAgICAgZXhoYXVzdGlvbiwgYW5kIHJlcG9ydCBpdCBh Y2NvcmRpbmdseS4gICovCisrICBwdHJsaXN0X2FkZCAoYWxpYXNlcywgYWxsb2NfYnVmZmVyX2Nv cHlfc3RyaW5nIChhYnVmLCBkbmFtZSkpOworKyAgcmV0dXJuIHRydWU7CisrfQorIAorLSAgaWYg KF9fZ2xpYmNfdW5saWtlbHkgKG4gPCAwKSkKKy0gICAgeworLSAgICAgICplcnJub3AgPSBlcnJu bzsKKy0gICAgICAqaF9lcnJub3AgPSBOT19SRUNPVkVSWTsKKy0gICAgICByZXR1cm4gTlNTX1NU QVRVU19VTkFWQUlMOworLSAgICB9CistICBpZiAoX19nbGliY191bmxpa2VseSAoX19saWJjX3Jl c19obm9rIChicCkgPT0gMCkpCisrc3RhdGljIGVudW0gbnNzX3N0YXR1cyBfX2F0dHJpYnV0ZV9f ICgobm9pbmxpbmUpKQorK2dldGFuc3dlcl9yICh1bnNpZ25lZCBjaGFyICpwYWNrZXQsIHNpemVf dCBwYWNrZXRsZW4sIHVpbnQxNl90IHF0eXBlLAorKwkgICAgIHN0cnVjdCBhbGxvY19idWZmZXIg KmFidWYsCisrCSAgICAgc3RydWN0IHB0cmxpc3QgKmFkZHJlc3Nlcywgc3RydWN0IHB0cmxpc3Qg KmFsaWFzZXMsCisrCSAgICAgaW50ICplcnJub3AsIGludCAqaF9lcnJub3AsIGludDMyX3QgKnR0 bHApCisreworKyAgc3RydWN0IG5zX3JyX2N1cnNvciBjOworKyAgaWYgKCFfX25zX3JyX2N1cnNv cl9pbml0ICgmYywgcGFja2V0LCBwYWNrZXRsZW4pKQorICAgICB7CistICAgICAgZXJybm8gPSBF QkFETVNHOworLSAgICAgICplcnJub3AgPSBFQkFETVNHOworKyAgICAgIC8qIFRoaXMgc2hvdWxk IG5vdCBoYXBwZW4gYmVjYXVzZSBfX3Jlc19jb250ZXh0X3F1ZXJ5IGFscmVhZHkKKysJIHBlcmZy b21zIHJlc3BvbnNlIHZhbGlkYXRpb24uICAqLworICAgICAgICpoX2Vycm5vcCA9IE5PX1JFQ09W RVJZOworICAgICAgIHJldHVybiBOU1NfU1RBVFVTX1VOQVZBSUw7CisgICAgIH0KKy0gIGNwICs9 IG4gKyBRRklYRURTWjsKKyAKKy0gIGlmIChxdHlwZSA9PSBUX0EgfHwgcXR5cGUgPT0gVF9BQUFB KQorKyAgLyogVHJlYXQgdGhlIFFOQU1FIGp1c3QgbGlrZSBhbiBhbGlhcy4gIEVycm9yIG91dCBp ZiBpdCBpcyBub3QgYQorKyAgICAgdmFsaWQgaG9zdCBuYW1lLiAgKi8KKysgIGlmIChuc19ycl9j dXJzb3JfcmNvZGUgKCZjKSA9PSBOWERPTUFJTgorKyAgICAgIHx8ICFnZXRhbnN3ZXJfcl9zdG9y ZV9hbGlhcyAobnNfcnJfY3Vyc29yX3FuYW1lICgmYyksIGFidWYsIGFsaWFzZXMpKQorICAgICB7 CistICAgICAgLyogcmVzX3NlbmQoKSBoYXMgYWxyZWFkeSB2ZXJpZmllZCB0aGF0IHRoZSBxdWVy eSBuYW1lIGlzIHRoZQorLSAgICAgICAqIHNhbWUgYXMgdGhlIG9uZSB3ZSBzZW50OyB0aGlzIGp1 c3QgZ2V0cyB0aGUgZXhwYW5kZWQgbmFtZQorLSAgICAgICAqIChpLmUuLCB3aXRoIHRoZSBzdWNj ZWVkaW5nIHNlYXJjaC1kb21haW4gdGFja2VkIG9uKS4KKy0gICAgICAgKi8KKy0gICAgICBuID0g c3RybGVuIChicCkgKyAxOyAgICAgICAgICAgICAvKiBmb3IgdGhlIFwwICovCistICAgICAgaWYg KG4gPj0gTUFYSE9TVE5BTUVMRU4pCistCXsKKy0JICAqaF9lcnJub3AgPSBOT19SRUNPVkVSWTsK Ky0JICAqZXJybm9wID0gRU5PRU5UOworLQkgIHJldHVybiBOU1NfU1RBVFVTX1RSWUFHQUlOOwor LQl9CistICAgICAgcmVzdWx0LT5oX25hbWUgPSBicDsKKy0gICAgICBicCArPSBuOworLSAgICAg IGxpbmVidWZsZW4gLT0gbjsKKy0gICAgICBpZiAobGluZWJ1ZmxlbiA8IDApCistCWdvdG8gdG9v X3NtYWxsOworLSAgICAgIC8qIFRoZSBxbmFtZSBjYW4gYmUgYWJicmV2aWF0ZWQsIGJ1dCBoX25h bWUgaXMgbm93IGFic29sdXRlLiAqLworLSAgICAgIHFuYW1lID0gcmVzdWx0LT5oX25hbWU7Cisr ICAgICAgaWYgKHR0bHAgIT0gTlVMTCkKKysJLyogTm8gbmVnYXRpdmUgY2FjaGluZy4gICovCisr CSp0dGxwID0gMDsKKysgICAgICAqaF9lcnJub3AgPSBIT1NUX05PVF9GT1VORDsKKysgICAgICAq ZXJybm9wID0gRU5PRU5UOworKyAgICAgIHJldHVybiBOU1NfU1RBVFVTX05PVEZPVU5EOworICAg ICB9CisgCistICBhcCA9IGhvc3RfZGF0YS0+YWxpYXNlczsKKy0gICphcCA9IE5VTEw7CistICBy ZXN1bHQtPmhfYWxpYXNlcyA9IGhvc3RfZGF0YS0+YWxpYXNlczsKKy0gIGhhcCA9IGhvc3RfZGF0 YS0+aF9hZGRyX3B0cnM7CistICAqaGFwID0gTlVMTDsKKy0gIHJlc3VsdC0+aF9hZGRyX2xpc3Qg PSBob3N0X2RhdGEtPmhfYWRkcl9wdHJzOworLSAgaGF2ZWFuc3dlciA9IDA7CistICBoYWRfZXJy b3IgPSAwOworKyAgaW50IGFuY291bnQgPSBuc19ycl9jdXJzb3JfYW5jb3VudCAoJmMpOworKyAg Y29uc3QgdW5zaWduZWQgY2hhciAqZXhwZWN0ZWRfbmFtZSA9IG5zX3JyX2N1cnNvcl9xbmFtZSAo JmMpOworKyAgLyogZXhwZWN0ZWRfbmFtZSBtYXkgYmUgdXBkYXRlZCB0byBwb2ludCBpbnRvIHRo aXMgYnVmZmVyLiAgKi8KKysgIHVuc2lnbmVkIGNoYXIgbmFtZV9idWZmZXJbTlNfTUFYQ0ROQU1F XTsKKyAKKy0gIHdoaWxlIChhbmNvdW50LS0gPiAwICYmIGNwIDwgZW5kX29mX21lc3NhZ2UgJiYg aGFkX2Vycm9yID09IDApCisrICBmb3IgKDsgYW5jb3VudCA+IDA7IC0tYW5jb3VudCkKKyAgICAg eworLSAgICAgIGludCB0eXBlLCBjbGFzczsKKy0KKy0gICAgICBuID0gX19uc19uYW1lX3VucGFj ayAoYW5zd2VyLT5idWYsIGVuZF9vZl9tZXNzYWdlLCBjcCwKKy0JCQkgICAgcGFja3RtcCwgc2l6 ZW9mIHBhY2t0bXApOworLSAgICAgIGlmIChuICE9IC0xICYmIF9fbnNfbmFtZV9udG9wIChwYWNr dG1wLCBicCwgbGluZWJ1ZmxlbikgPT0gLTEpCistCXsKKy0JICBpZiAoX19nbGliY191bmxpa2Vs eSAoZXJybm8gPT0gRU1TR1NJWkUpKQorLQkgICAgZ290byB0b29fc21hbGw7CistCistCSAgbiA9 IC0xOworLQl9CistCistICAgICAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKG4gPCAwIHx8IF9fbGli Y19yZXNfaG5vayAoYnApID09IDApKQorLQl7CistCSAgKytoYWRfZXJyb3I7CistCSAgY29udGlu dWU7CistCX0KKy0gICAgICBjcCArPSBuOwkJCQkvKiBuYW1lICovCistCistICAgICAgaWYgKF9f Z2xpYmNfdW5saWtlbHkgKGNwICsgMTAgPiBlbmRfb2ZfbWVzc2FnZSkpCisrICAgICAgc3RydWN0 IG5zX3JyX3dpcmUgcnI7CisrICAgICAgaWYgKCFfX25zX3JyX2N1cnNvcl9uZXh0ICgmYywgJnJy KSkKKyAJeworLQkgICsraGFkX2Vycm9yOworLQkgIGNvbnRpbnVlOworKwkgICpoX2Vycm5vcCA9 IE5PX1JFQ09WRVJZOworKwkgIHJldHVybiBOU1NfU1RBVFVTX1VOQVZBSUw7CisgCX0KKyAKKy0g ICAgICBOU19HRVQxNiAodHlwZSwgY3ApOworLSAgICAgIE5TX0dFVDE2IChjbGFzcywgY3ApOwor LSAgICAgIGludDMyX3QgdHRsOworLSAgICAgIE5TX0dFVDMyICh0dGwsIGNwKTsKKy0gICAgICBO U19HRVQxNiAobiwgY3ApOwkJLyogUkRBVEEgbGVuZ3RoLiAgKi8KKy0KKy0gICAgICBpZiAoZW5k X29mX21lc3NhZ2UgLSBjcCA8IG4pCistCXsKKy0JICAvKiBSREFUQSBleHRlbmRzIGJleW9uZCB0 aGUgZW5kIG9mIHRoZSBwYWNrZXQuICAqLworLQkgICsraGFkX2Vycm9yOworLQkgIGNvbnRpbnVl OworLQl9CisrICAgICAgLyogU2tpcCBvdmVyIHJlY29yZHMgd2l0aCB0aGUgd3JvbmcgY2xhc3Mu ICAqLworKyAgICAgIGlmIChyci5yY2xhc3MgIT0gQ19JTikKKysJY29udGludWU7CisgCistICAg ICAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKGNsYXNzICE9IENfSU4pKQorLQl7CistCSAgLyogWFhY IC0gZGVidWc/IHN5c2xvZz8gKi8KKy0JICBjcCArPSBuOworLQkgIGNvbnRpbnVlOwkJCS8qIFhY WCAtIGhhZF9lcnJvcisrID8gKi8KKy0JfQorKyAgICAgIC8qIFVwZGF0ZSBUVEwgZm9yIHJlY29n bml6ZWQgcmVjb3JkIHR5cGVzLiAgKi8KKysgICAgICBpZiAoKHJyLnJ0eXBlID09IFRfQ05BTUUg fHwgcnIucnR5cGUgPT0gcXR5cGUpCisrCSAgJiYgdHRscCAhPSBOVUxMICYmICp0dGxwID4gcnIu dHRsKQorKwkqdHRscCA9IHJyLnR0bDsKKyAKKy0gICAgICBpZiAodHlwZSA9PSBUX0NOQU1FKQor KyAgICAgIGlmIChyci5ydHlwZSA9PSBUX0NOQU1FKQorIAl7CistCSAgLyogQSBDTkFNRSBjb3Vs ZCBhbHNvIGhhdmUgYSBUVEwgZW50cnkuICAqLworLQkgIGlmICh0dGxwICE9IE5VTEwgJiYgdHRs IDwgKnR0bHApCistCSAgICAgICp0dGxwID0gdHRsOworLQorLQkgIGlmIChhcCA+PSAmaG9zdF9k YXRhLT5hbGlhc2VzW01BWF9OUl9BTElBU0VTIC0gMV0pCistCSAgICBjb250aW51ZTsKKy0JICBu ID0gX19saWJjX2RuX2V4cGFuZCAoYW5zd2VyLT5idWYsIGVuZF9vZl9tZXNzYWdlLCBjcCwKKy0J CQkJdGJ1Ziwgc2l6ZW9mIHRidWYpOworLQkgIGlmIChfX2dsaWJjX3VubGlrZWx5IChuIDwgMCB8 fCBfX2xpYmNfcmVzX2hub2sgKHRidWYpID09IDApKQorLQkgICAgeworLQkgICAgICArK2hhZF9l cnJvcjsKKy0JICAgICAgY29udGludWU7CistCSAgICB9CistCSAgY3AgKz0gbjsKKy0JICAvKiBT dG9yZSBhbGlhcy4gICovCistCSAgKmFwKysgPSBicDsKKy0JICBuID0gc3RybGVuIChicCkgKyAx OwkJLyogRm9yIHRoZSBcMC4gICovCistCSAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKG4gPj0gTUFY SE9TVE5BTUVMRU4pKQorLQkgICAgeworLQkgICAgICArK2hhZF9lcnJvcjsKKy0JICAgICAgY29u dGludWU7CistCSAgICB9CistCSAgYnAgKz0gbjsKKy0JICBsaW5lYnVmbGVuIC09IG47CistCSAg LyogR2V0IGNhbm9uaWNhbCBuYW1lLiAgKi8KKy0JICBuID0gc3RybGVuICh0YnVmKSArIDE7CS8q IEZvciB0aGUgXDAuICAqLworLQkgIGlmIChfX2dsaWJjX3VubGlrZWx5IChuID4gbGluZWJ1Zmxl bikpCistCSAgICBnb3RvIHRvb19zbWFsbDsKKy0JICBpZiAoX19nbGliY191bmxpa2VseSAobiA+ PSBNQVhIT1NUTkFNRUxFTikpCisrCSAgLyogTkI6IE5vIGNoZWNrIGZvciBvd25lciBuYW1lIG1h dGNoLCBiYXNlZCBvbiBoaXN0b3JpYworKwkgICAgIHByZWNlZGVudC4gIFJlY29yZCB0aGUgQ05B TUUgdGFyZ2V0IGFzIHRoZSBuZXcgZXhwZWN0ZWQKKysJICAgICBuYW1lLiAgKi8KKysJICBpbnQg biA9IF9fbnNfbmFtZV91bnBhY2sgKGMuYmVnaW4sIGMuZW5kLCByci5yZGF0YSwKKysJCQkJICAg IG5hbWVfYnVmZmVyLCBzaXplb2YgKG5hbWVfYnVmZmVyKSk7CisrCSAgaWYgKG4gPCAwKQorIAkg ICAgeworLQkgICAgICArK2hhZF9lcnJvcjsKKy0JICAgICAgY29udGludWU7CisrCSAgICAgICpo X2Vycm5vcCA9IE5PX1JFQ09WRVJZOworKwkgICAgICByZXR1cm4gTlNTX1NUQVRVU19VTkFWQUlM OworIAkgICAgfQorLQkgIHJlc3VsdC0+aF9uYW1lID0gYnA7CistCSAgYnAgPSBfX21lbXBjcHkg KGJwLCB0YnVmLCBuKTsJLyogQ2Fubm90IG92ZXJmbG93LiAgKi8KKy0JICBsaW5lYnVmbGVuIC09 IG47CistCSAgY29udGludWU7CisrCSAgLyogQW5kIHN0b3JlIHRoZSBuZXcgbmFtZSBhcyBhbiBh bGlhcy4gICovCisrCSAgZ2V0YW5zd2VyX3Jfc3RvcmVfYWxpYXMgKG5hbWVfYnVmZmVyLCBhYnVm LCBhbGlhc2VzKTsKKysJICBleHBlY3RlZF9uYW1lID0gbmFtZV9idWZmZXI7CisgCX0KKy0KKy0g ICAgICBpZiAoX19nbGliY191bmxpa2VseSAodHlwZSAhPSBxdHlwZSkpCisrICAgICAgZWxzZSBp ZiAocnIucnR5cGUgPT0gcXR5cGUKKysJICAgICAgICYmIF9fbnNfc2FtZWJpbmFyeW5hbWUgKHJy LnJuYW1lLCBleHBlY3RlZF9uYW1lKQorKwkgICAgICAgJiYgcnIucmRsZW5ndGggPT0gcnJ0eXBl X3RvX3JkYXRhX2xlbmd0aCAocXR5cGUpKQorIAl7CistCSAgY3AgKz0gbjsKKy0JICBjb250aW51 ZTsJCQkvKiBYWFggLSBoYWRfZXJyb3IrKyA/ICovCisrCSAgLyogTWFrZSBhIGNvcHkgb2YgdGhl IGFkZHJlc3MgYW5kIHN0b3JlIGl0LiAgSW5jcmVhc2UgdGhlCisrCSAgICAgYWxpZ25tZW50IHRv IDQsIGluIGNhc2UgdGhlcmUgYXJlIGFwcGxpY2F0aW9ucyBvdXQgdGhlcmUKKysJICAgICB0aGF0 IGV4cGVjdCBhdCBsZWFzdCB0aGlzIGxldmVsIG9mIGFkZHJlc3MgYWxpZ25tZW50LiAgKi8KKysJ ICBwdHJsaXN0X2FkZCAoYWRkcmVzc2VzLCAoY2hhciAqKSBhbGxvY19idWZmZXJfbmV4dCAoYWJ1 ZiwgdWludDMyX3QpKTsKKysJICBhbGxvY19idWZmZXJfY29weV9ieXRlcyAoYWJ1ZiwgcnIucmRh dGEsIHJyLnJkbGVuZ3RoKTsKKyAJfQorLQorLSAgICAgIHN3aXRjaCAodHlwZSkKKy0JeworLQlj YXNlIFRfQToKKy0JY2FzZSBUX0FBQUE6CistCSAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKF9fc3Ry Y2FzZWNtcCAocmVzdWx0LT5oX25hbWUsIGJwKSAhPSAwKSkKKy0JICAgIHsKKy0JICAgICAgY3Ag Kz0gbjsKKy0JICAgICAgY29udGludWU7CQkJLyogWFhYIC0gaGFkX2Vycm9yKysgPyAqLworLQkg ICAgfQorLQorLQkgIC8qIFN0b3AgcGFyc2luZyBhdCBhIHJlY29yZCB3aG9zZSBsZW5ndGggaXMg aW5jb3JyZWN0LiAgKi8KKy0JICBpZiAobiAhPSBycnR5cGVfdG9fcmRhdGFfbGVuZ3RoICh0eXBl KSkKKy0JICAgIHsKKy0JICAgICAgKytoYWRfZXJyb3I7CistCSAgICAgIGJyZWFrOworLQkgICAg fQorLQorLQkgIC8qIFNraXAgcmVjb3JkcyBvZiB0aGUgd3JvbmcgdHlwZS4gICovCistCSAgaWYg KG4gIT0gcmVzdWx0LT5oX2xlbmd0aCkKKy0JICAgIHsKKy0JICAgICAgY3AgKz0gbjsKKy0JICAg ICAgY29udGludWU7CistCSAgICB9CistCSAgaWYgKCFoYXZlYW5zd2VyKQorLQkgICAgeworLQkg ICAgICBpbnQgbm47CistCistCSAgICAgIC8qIFdlIGNvbXBvc2UgYSBzaW5nbGUgaG9zdGVudCBv dXQgb2YgdGhlIGVudGlyZSBjaGFpbiBvZgorLQkgICAgICAgICBlbnRyaWVzLCBzbyB0aGUgVFRM IG9mIHRoZSBob3N0ZW50IGlzIGVzc2VudGlhbGx5IHRoZSBsb3dlc3QKKy0JCSBUVEwgaW4gdGhl IGNoYWluLiAgKi8KKy0JICAgICAgaWYgKHR0bHAgIT0gTlVMTCAmJiB0dGwgPCAqdHRscCkKKy0J CSp0dGxwID0gdHRsOworLQkgICAgICBpZiAoY2Fub25wICE9IE5VTEwpCistCQkqY2Fub25wID0g YnA7CistCSAgICAgIHJlc3VsdC0+aF9uYW1lID0gYnA7CistCSAgICAgIG5uID0gc3RybGVuIChi cCkgKyAxOwkvKiBmb3IgdGhlIFwwICovCistCSAgICAgIGJwICs9IG5uOworLQkgICAgICBsaW5l YnVmbGVuIC09IG5uOworLQkgICAgfQorLQorLQkgIC8qIFByb3ZpZGUgc3VmZmljaWVudCBhbGln bm1lbnQgZm9yIGJvdGggYWRkcmVzcworLQkgICAgIGZhbWlsaWVzLiAgKi8KKy0JICBlbnVtIHsg YWxpZ24gPSA0IH07CistCSAgX1N0YXRpY19hc3NlcnQgKChhbGlnbiAlIF9fYWxpZ25vZl9fIChz dHJ1Y3QgaW5fYWRkcikpID09IDAsCistCQkJICAic3RydWN0IGluX2FkZHIgYWxpZ25tZW50Iik7 CistCSAgX1N0YXRpY19hc3NlcnQgKChhbGlnbiAlIF9fYWxpZ25vZl9fIChzdHJ1Y3QgaW42X2Fk ZHIpKSA9PSAwLAorLQkJCSAgInN0cnVjdCBpbjZfYWRkciBhbGlnbm1lbnQiKTsKKy0JICB7Cist CSAgICBjaGFyICpuZXdfYnAgPSBQVFJfQUxJR05fVVAgKGJwLCBhbGlnbik7CistCSAgICBsaW5l YnVmbGVuIC09IG5ld19icCAtIGJwOworLQkgICAgYnAgPSBuZXdfYnA7CistCSAgfQorLQorLQkg IGlmIChfX2dsaWJjX3VubGlrZWx5IChuID4gbGluZWJ1ZmxlbikpCistCSAgICBnb3RvIHRvb19z bWFsbDsKKy0JICBicCA9IF9fbWVtcGNweSAoKmhhcCsrID0gYnAsIGNwLCBuKTsKKy0JICBjcCAr PSBuOworLQkgIGxpbmVidWZsZW4gLT0gbjsKKy0JICBicmVhazsKKy0JZGVmYXVsdDoKKy0JICBh Ym9ydCAoKTsKKy0JfQorLSAgICAgIGlmIChoYWRfZXJyb3IgPT0gMCkKKy0JKytoYXZlYW5zd2Vy OworICAgICB9CisgCistICBpZiAoaGF2ZWFuc3dlciA+IDApCisrICBpZiAocHRybGlzdF9zaXpl IChhZGRyZXNzZXMpID09IDApCisgICAgIHsKKy0gICAgICAqYXAgPSBOVUxMOworLSAgICAgICpo YXAgPSBOVUxMOworLSAgICAgIC8qCistICAgICAgICogTm90ZTogd2Ugc29ydCBldmVuIGlmIGhv c3QgY2FuIHRha2Ugb25seSBvbmUgYWRkcmVzcworLSAgICAgICAqIGluIGl0cyByZXR1cm4gc3Ry dWN0dXJlcyAtIHNob3VsZCBnaXZlIGl0IHRoZSAiYmVzdCIKKy0gICAgICAgKiBhZGRyZXNzIGlu IHRoYXQgY2FzZSwgbm90IHNvbWUgcmFuZG9tIG9uZQorLSAgICAgICAqLworLSAgICAgIGlmICho YXZlYW5zd2VyID4gMSAmJiBxdHlwZSA9PSBUX0EKKy0JICAmJiBfX3Jlc29sdl9jb250ZXh0X3Nv cnRfY291bnQgKGN0eCkgPiAwKQorLQlhZGRyc29ydCAoY3R4LCBob3N0X2RhdGEtPmhfYWRkcl9w dHJzLCBoYXZlYW5zd2VyKTsKKy0KKy0gICAgICBpZiAocmVzdWx0LT5oX25hbWUgPT0gTlVMTCkK Ky0JeworLQkgIG4gPSBzdHJsZW4gKHFuYW1lKSArIDE7CS8qIEZvciB0aGUgXDAuICAqLworLQkg IGlmIChuID4gbGluZWJ1ZmxlbikKKy0JICAgIGdvdG8gdG9vX3NtYWxsOworLQkgIGlmIChuID49 IE1BWEhPU1ROQU1FTEVOKQorLQkgICAgZ290byBub19yZWNvdmVyeTsKKy0JICByZXN1bHQtPmhf bmFtZSA9IGJwOworLQkgIGJwID0gX19tZW1wY3B5IChicCwgcW5hbWUsIG4pOwkvKiBDYW5ub3Qg b3ZlcmZsb3cuICAqLworLQkgIGxpbmVidWZsZW4gLT0gbjsKKy0JfQorKyAgICAgIC8qIE5vIGFk ZHJlc3MgcmVjb3JkIGZvdW5kLiAgKi8KKysgICAgICBpZiAodHRscCAhPSBOVUxMKQorKwkvKiBO byBjYWNoaW5nIG9mIG5lZ2F0aXZlIHJlc3BvbnNlcy4gICovCisrCSp0dGxwID0gMDsKKyAKKysg ICAgICAqaF9lcnJub3AgPSBOT19SRUNPVkVSWTsKKysgICAgICAqZXJybm9wID0gRU5PRU5UOwor KyAgICAgIHJldHVybiBOU1NfU1RBVFVTX1RSWUFHQUlOOworKyAgICB9CisrICBlbHNlCisrICAg IHsKKyAgICAgICAqaF9lcnJub3AgPSBORVREQl9TVUNDRVNTOworICAgICAgIHJldHVybiBOU1Nf U1RBVFVTX1NVQ0NFU1M7CisgICAgIH0KKy0gbm9fcmVjb3Zlcnk6CistICAqaF9lcnJub3AgPSBO T19SRUNPVkVSWTsKKy0gICplcnJub3AgPSBFTk9FTlQ7CistICAvKiBTcGVjaWFsIGNhc2UgaGVy ZTogaWYgdGhlIHJlc29sdmVyIHNlbnQgYSByZXN1bHQgYnV0IGl0IG9ubHkKKy0gICAgIGNvbnRh aW5zIGEgQ05BTUUgd2hpbGUgd2UgYXJlIGxvb2tpbmcgZm9yIGEgVF9BIG9yIFRfQUFBQSByZWNv cmQsCistICAgICB3ZSBmYWlsIHdpdGggTk9URk9VTkQgaW5zdGVhZCBvZiBUUllBR0FJTi4gICov CistICByZXR1cm4gKChxdHlwZSA9PSBUX0EgfHwgcXR5cGUgPT0gVF9BQUFBKSAmJiBhcCAhPSBo b3N0X2RhdGEtPmFsaWFzZXMKKy0JICAgPyBOU1NfU1RBVFVTX05PVEZPVU5EIDogTlNTX1NUQVRV U19UUllBR0FJTik7CisgfQorIAorIHN0YXRpYyBlbnVtIG5zc19zdGF0dXMKKy0tIAorMi4zOC4x CisKKworRnJvbSA3YTIzNmRjNDRhMjJkYzQyNTJlODAzZDFlZTFkM2I5NzBlYzQzODA1IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRmxvcmlhbiBXZWltZXIgPGZ3ZWltZXJAcmVkaGF0 LmNvbT4KK0RhdGU6IFR1ZSwgMzAgQXVnIDIwMjIgMTA6MDI6NDkgKzAyMDAKK1N1YmplY3Q6IFtQ QVRDSCAzMy83Ml0gbnNzX2RuczogSW4gZ2FpaF9nZXRhbnN3ZXJfc2xpY2UsIHNraXAgc3RyYW5n ZSBhbGlhc2VzCisgKGJ1ZyAxMjE1NCkKKworSWYgdGhlIG5hbWUgaXMgbm90IGEgaG9zdCBuYW1l LCBza2lwIGFkZGluZyBpdCB0byB0aGUgcmVzdWx0LCBpbnN0ZWFkCitvZiByZXBvcnRpbmcgcXVl cnkgZmFpbHVyZS4gIFRoaXMgZml4ZXMgYnVnIDEyMTU0IGZvciBnZXRhZGRyaW5mby4KKworVGhp cyBjb21taXQgc3RpbGwga2VlcHMgdGhlIG9sZCBwYXJzaW5nIGNvZGUsIGFuZCBvbmx5IGFkanVz dHMgd2hlbgorYSBob3N0IG5hbWUgaXMgY29waWVkLgorCitSZXZpZXdlZC1ieTogU2lkZGhlc2gg UG95YXJla2FyIDxzaWRkaGVzaEBzb3VyY2V3YXJlLm9yZz4KKyhjaGVycnkgcGlja2VkIGZyb20g Y29tbWl0IDMyYjU5OWFjOGMyMWM0YzMzMmNjMzkwMGE3OTJhMTM5NWJjYTc5YzcpCistLS0KKyBy ZXNvbHYvbnNzX2Rucy9kbnMtaG9zdC5jIHwgOCArKysrLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA0 IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9yZXNvbHYvbnNz X2Rucy9kbnMtaG9zdC5jIGIvcmVzb2x2L25zc19kbnMvZG5zLWhvc3QuYworaW5kZXggYjg4N2U3 N2U5Yy4uYmVhNTA1ZDY5NyAxMDA2NDQKKy0tLSBhL3Jlc29sdi9uc3NfZG5zL2Rucy1ob3N0LmMK KysrKyBiL3Jlc29sdi9uc3NfZG5zL2Rucy1ob3N0LmMKK0BAIC05NzAsMTIgKzk3MCwxMiBAQCBn YWloX2dldGFuc3dlcl9zbGljZSAoY29uc3QgcXVlcnlidWYgKmFuc3dlciwgaW50IGFuc2xlbiwg Y29uc3QgY2hhciAqcW5hbWUsCisgCisgCSAgbiA9IC0xOworIAl9CistICAgICAgaWYgKF9fZ2xp YmNfdW5saWtlbHkgKG4gPCAwIHx8IF9fbGliY19yZXNfaG5vayAoYnVmZmVyKSA9PSAwKSkKKysg ICAgICBpZiAoX19nbGliY191bmxpa2VseSAobiA8IDApKQorIAl7CisgCSAgKytoYWRfZXJyb3I7 CisgCSAgY29udGludWU7CisgCX0KKy0gICAgICBpZiAoKmZpcnN0cCAmJiBjYW5vbiA9PSBOVUxM KQorKyAgICAgIGlmICgqZmlyc3RwICYmIGNhbm9uID09IE5VTEwgJiYgX19saWJjX3Jlc19obm9r IChidWZmZXIpKQorIAl7CisgCSAgaF9uYW1lID0gYnVmZmVyOworIAkgIGJ1ZmZlciArPSBoX25h bWVsZW47CitAQCAtMTAyMSwxNCArMTAyMSwxNCBAQCBnYWloX2dldGFuc3dlcl9zbGljZSAoY29u c3QgcXVlcnlidWYgKmFuc3dlciwgaW50IGFuc2xlbiwgY29uc3QgY2hhciAqcW5hbWUsCisgCisg CSAgbiA9IF9fbGliY19kbl9leHBhbmQgKGFuc3dlci0+YnVmLCBlbmRfb2ZfbWVzc2FnZSwgY3As CisgCQkJCXRidWYsIHNpemVvZiB0YnVmKTsKKy0JICBpZiAoX19nbGliY191bmxpa2VseSAobiA8 IDAgfHwgX19saWJjX3Jlc19obm9rICh0YnVmKSA9PSAwKSkKKysJICBpZiAoX19nbGliY191bmxp a2VseSAobiA8IDApKQorIAkgICAgeworIAkgICAgICArK2hhZF9lcnJvcjsKKyAJICAgICAgY29u dGludWU7CisgCSAgICB9CisgCSAgY3AgKz0gbjsKKyAKKy0JICBpZiAoKmZpcnN0cCkKKysJICBp ZiAoKmZpcnN0cCAmJiBfX2xpYmNfcmVzX2hub2sgKHRidWYpKQorIAkgICAgeworIAkgICAgICAv KiBSZWNsYWltIGJ1ZmZlciBzcGFjZS4gICovCisgCSAgICAgIGlmIChoX25hbWUgKyBoX25hbWVs ZW4gPT0gYnVmZmVyKQorLS0gCisyLjM4LjEKKworCitGcm9tIGUyZWM2YThkYjM4YTZiNzM0YmJk YjQxZTQ5OGZkYzk0NjBmNzU2NmEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBGbG9y aWFuIFdlaW1lciA8ZndlaW1lckByZWRoYXQuY29tPgorRGF0ZTogVHVlLCAzMCBBdWcgMjAyMiAx MDowMjo0OSArMDIwMAorU3ViamVjdDogW1BBVENIIDM0LzcyXSByZXNvbHY6IEFkZCBuZXcgdHN0 LXJlc29sdi1pbnZhbGlkLWNuYW1lCisKK1RoaXMgdGVzdCBjaGVja3MgcmVzb2x1dGlvbiB0aHJv dWdoIENOQU1FIGNoYWlucyB0aGF0IGRvIG5vdCBjb250YWluCitob3N0IG5hbWVzIChidWcgMTIx NTQpLgorCitSZXZpZXdlZC1ieTogU2lkZGhlc2ggUG95YXJla2FyIDxzaWRkaGVzaEBzb3VyY2V3 YXJlLm9yZz4KKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDljYWY3ODIyNzZlY2VhNGJjODZm Yzk0ZmJiNTI3Nzk3MzZmMzEwNmQpCistLS0KKyByZXNvbHYvTWFrZWZpbGUgICAgICAgICAgICAg ICAgICAgfCAgIDMgKworIHJlc29sdi90c3QtcmVzb2x2LWludmFsaWQtY25hbWUuYyB8IDQwNiAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKKyAyIGZpbGVzIGNoYW5nZWQsIDQwOSBpbnNl cnRpb25zKCspCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHJlc29sdi90c3QtcmVzb2x2LWludmFsaWQt Y25hbWUuYworCitkaWZmIC0tZ2l0IGEvcmVzb2x2L01ha2VmaWxlIGIvcmVzb2x2L01ha2VmaWxl CitpbmRleCAwMThiMTgwOGQ2Li5mOGE5MmM2Y2ZmIDEwMDY0NAorLS0tIGEvcmVzb2x2L01ha2Vm aWxlCisrKysgYi9yZXNvbHYvTWFrZWZpbGUKK0BAIC05OCw2ICs5OCw3IEBAIHRlc3RzICs9IFwK KyAgIHRzdC1yZXNvbHYtYmluYXJ5IFwKKyAgIHRzdC1yZXNvbHYtYnlhZGRyIFwKKyAgIHRzdC1y ZXNvbHYtZWRucyBcCisrICB0c3QtcmVzb2x2LWludmFsaWQtY25hbWUgXAorICAgdHN0LXJlc29s di1uZXR3b3JrIFwKKyAgIHRzdC1yZXNvbHYtbm9hYWFhIFwKKyAgIHRzdC1yZXNvbHYtbm9uZGVj aW1hbCBcCitAQCAtMjg3LDYgKzI4OCw4IEBAICQob2JqcGZ4KXRzdC1yZXNvbHYtcmVzX2luaXQt bXVsdGk6ICQob2JqcGZ4KWxpYnJlc29sdi5zbyBcCisgICAkKHNoYXJlZC10aHJlYWQtbGlicmFy eSkKKyAkKG9ianBmeCl0c3QtcmVzb2x2LXJlc19pbml0LXRocmVhZDogJChvYmpwZngpbGlicmVz b2x2LnNvIFwKKyAgICQoc2hhcmVkLXRocmVhZC1saWJyYXJ5KQorKyQob2JqcGZ4KXRzdC1yZXNv bHYtaW52YWxpZC1jbmFtZTogJChvYmpwZngpbGlicmVzb2x2LnNvIFwKKysgICQoc2hhcmVkLXRo cmVhZC1saWJyYXJ5KQorICQob2JqcGZ4KXRzdC1yZXNvbHYtbm9hYWFhOiAkKG9ianBmeClsaWJy ZXNvbHYuc28gJChzaGFyZWQtdGhyZWFkLWxpYnJhcnkpCisgJChvYmpwZngpdHN0LXJlc29sdi1u b25kZWNpbWFsOiAkKG9ianBmeClsaWJyZXNvbHYuc28gJChzaGFyZWQtdGhyZWFkLWxpYnJhcnkp CisgJChvYmpwZngpdHN0LXJlc29sdi1xdHlwZXM6ICQob2JqcGZ4KWxpYnJlc29sdi5zbyAkKHNo YXJlZC10aHJlYWQtbGlicmFyeSkKK2RpZmYgLS1naXQgYS9yZXNvbHYvdHN0LXJlc29sdi1pbnZh bGlkLWNuYW1lLmMgYi9yZXNvbHYvdHN0LXJlc29sdi1pbnZhbGlkLWNuYW1lLmMKK25ldyBmaWxl IG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwLi5hZTJkNDQxOWIxCistLS0gL2Rldi9udWxs CisrKysgYi9yZXNvbHYvdHN0LXJlc29sdi1pbnZhbGlkLWNuYW1lLmMKK0BAIC0wLDAgKzEsNDA2 IEBACisrLyogVGVzdCBoYW5kbGluZyBvZiBDTkFNRXMgd2l0aCBub24taG9zdCBkb21haW4gbmFt ZXMgKGJ1ZyAxMjE1NCkuCisrICAgQ29weXJpZ2h0IChDKSAyMDIyIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLgorKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5 LgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vcgorKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKysgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKysgICB2ZXJzaW9uIDIuMSBvZiB0 aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysKKysg ICBUaGUgR05VIEMgTGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKysgICBMZXNzZXIgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyAgIFlvdSBzaG91bGQgaGF2 ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKysgICBM aWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJhcnk7IGlmIG5vdCwgc2VlCisrICAgPGh0 dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrI2luY2x1ZGUgPGVycm5vLmg+ CisrI2luY2x1ZGUgPG5ldGRiLmg+CisrI2luY2x1ZGUgPHJlc29sdi5oPgorKyNpbmNsdWRlIDxz dGRsaWIuaD4KKysjaW5jbHVkZSA8c3RyaW5nLmg+CisrI2luY2x1ZGUgPHN1cHBvcnQvY2hlY2su aD4KKysjaW5jbHVkZSA8c3VwcG9ydC9jaGVja19uc3MuaD4KKysjaW5jbHVkZSA8c3VwcG9ydC9y ZXNvbHZfdGVzdC5oPgorKyNpbmNsdWRlIDxzdXBwb3J0L3N1cHBvcnQuaD4KKysjaW5jbHVkZSA8 c3VwcG9ydC94bWVtc3RyZWFtLmg+CisrCisrLyogUXVlcnkgc3RyaW5ncyBkZXNjcmliZSB0aGUg Q05BTUUgY2hhaW4gaW4gdGhlIHJlc3BvbnNlLiAgVGhleSBoYXZlCisrICAgdGhlIGZvcm1hdCAi Yml0c0JJVFMuY291bnRDT1VOVC5leGFtcGxlLiIsIHdoZXJlIEJJVFMgYW5kIENPVU5UIGFyZQor KyAgIHJlcGxhY2VkIGJ5IHVuc2lnbmVkIGRlY2ltYWwgbnVtYmVycy4gIENPVU5UIGlzIHRoZSBu dW1iZXIgb2YgQ05BTUUKKysgICByZWNvcmRzIGluIHRoZSByZXNwb25zZS4gIEJJVFMgaGFzIHR3 byBiaXRzIGZvciBlYWNoIENOQU1FIHJlY29yZCwKKysgICBkZXNjcmliaW5nIGEgc3BlY2lhbCBw cmVmaXggdGhhdCBpcyBhZGRlZCB0byB0aGF0IENOQU1FLgorKworKyAgIDA6IE5vIHNwZWNpYWwg bGVhZGluZyBsYWJlbC4KKysgICAxOiBTdGFydGluZyB3aXRoICIqLiIuCisrICAgMjogU3RhcnRp bmcgd2l0aCAiLXguIi4KKysgICAzOiBTdGFydGluZyB3aXRoICJzdGFyLiouIi4KKysKKysgICBU aGUgZmlyc3QgQ05BTUUgaW4gdGhlIHJlc3BvbnNlIHVzaW5nIHRoZSB0d28gbGVhc3Qgc2lnbmlm aWNhbnQKKysgICBiaXRzLgorKworKyAgIEZvciBQVFIgcXVlcmllcywgdGhlIFFOQU1FIGZvcm1h dCBpcyBkaWZmZXJlbnQsIGl0IGlzIGVpdGhlcgorKyAgIENPVU5ULkJJVFMuMTY4LjE5Mi5pbi1h ZGRyLmFycGEuICh3aXRoIEJJVFMgYW5kIENPVU5UIHN0aWxsCisrICAgZGVjaW1hbCksIG9yOgor KworK0NPVU5ULkJJVFMwLkJJVFMxLjAuMC4wLjAuMC4wLjAuMC4wLjAuMC4wLjAuMC4wLjAuMC4w LjAuMC4wLjguYi5kLjAuMS4wLjAuMi5pcDYuYXJwYS4KKysKKysgICB3aGVyZSBCSVRTIGFuZCBD T1VOVCBhcmUgaGV4YWRlY2ltYWwuICAqLworKworK3N0YXRpYyB2b2lkCisrcmVzcG9uc2UgKGNv bnN0IHN0cnVjdCByZXNvbHZfcmVzcG9uc2VfY29udGV4dCAqY3R4LAorKyAgICAgICAgICBzdHJ1 Y3QgcmVzb2x2X3Jlc3BvbnNlX2J1aWxkZXIgKmIsCisrICAgICAgICAgIGNvbnN0IGNoYXIgKnFu YW1lLCB1aW50MTZfdCBxY2xhc3MsIHVpbnQxNl90IHF0eXBlKQorK3sKKysgIFRFU1RfQ09NUEFS RSAocWNsYXNzLCBDX0lOKTsKKysKKysgIC8qIFRoZSBvbmx5IG90aGVyIHF1ZXJ5IHR5cGUgYmVz aWRlcyBBIGlzIFBUUi4gICovCisrICBpZiAocXR5cGUgIT0gVF9BICYmIHF0eXBlICE9IFRfQUFB QSkKKysgICAgVEVTVF9DT01QQVJFIChxdHlwZSwgVF9QVFIpOworKworKyAgdW5zaWduZWQgaW50 IGJpdHMsIGJpdHMxLCBjb3VudDsKKysgIGNoYXIgKnRhaWwgPSBOVUxMOworKyAgaWYgKHNzY2Fu ZiAocW5hbWUsICJiaXRzJXUuY291bnQldS4lbXMiLCAmYml0cywgJmNvdW50LCAmdGFpbCkgPT0g MykKKysgICAgVEVTVF9DT01QQVJFX1NUUklORyAodGFpbCwgImV4YW1wbGUiKTsKKysgIGVsc2Ug aWYgKHN0cnN0ciAocW5hbWUsICJpbi1hZGRyLmFycGEiKSAhPSBOVUxMCisrICAgICAgICAgICAm JiBzc2NhbmYgKHFuYW1lLCAiJXUuJXUuJW1zIiwgJmJpdHMsICZjb3VudCwgJnRhaWwpID09IDMp CisrICAgIFRFU1RfQ09NUEFSRV9TVFJJTkcgKHRhaWwsICIxNjguMTkyLmluLWFkZHIuYXJwYSIp OworKyAgZWxzZSBpZiAoc3NjYW5mIChxbmFtZSwgIiV4LiV4LiV4LiVtcyIsICZiaXRzLCAmYml0 czEsICZjb3VudCwgJnRhaWwpID09IDQpCisrICAgIHsKKysgICAgICBURVNUX0NPTVBBUkVfU1RS SU5HICh0YWlsLCAiXAorKzAuMC4wLjAuMC4wLjAuMC4wLjAuMC4wLjAuMC4wLjAuMC4wLjAuMC4w LjguYi5kLjAuMS4wLjAuMi5pcDYuYXJwYSIpOworKyAgICAgIGJpdHMgfD0gYml0czEgPDwgNDsK KysgICAgfQorKyAgZWxzZQorKyAgICBGQUlMX0VYSVQxICgiaW52YWxpZCBRTkFNRTogJXNcbiIs IHFuYW1lKTsKKysgIGZyZWUgKHRhaWwpOworKworKyAgc3RydWN0IHJlc29sdl9yZXNwb25zZV9m bGFncyBmbGFncyA9IHt9OworKyAgcmVzb2x2X3Jlc3BvbnNlX2luaXQgKGIsIGZsYWdzKTsKKysg IHJlc29sdl9yZXNwb25zZV9hZGRfcXVlc3Rpb24gKGIsIHFuYW1lLCBxY2xhc3MsIHF0eXBlKTsK KysgIHJlc29sdl9yZXNwb25zZV9zZWN0aW9uIChiLCBuc19zX2FuKTsKKysKKysgIC8qIFByb3Zp ZGUgdGhlIHJlcXVlc3RlZCBudW1iZXIgb2YgQ05BTUUgcmVjb3Jkcy4gICovCisrICBjaGFyICpw cmV2aW91c19uYW1lID0gKGNoYXIgKikgcW5hbWU7CisrICB1bnNpZ25lZCBpbnQgb3JpZ2luYWxf Yml0cyA9IGJpdHM7CisrICBmb3IgKGludCB1bmlxdWUgPSAwOyB1bmlxdWUgPCBjb3VudDsgKyt1 bmlxdWUpCisrICAgIHsKKysgICAgICByZXNvbHZfcmVzcG9uc2Vfb3Blbl9yZWNvcmQgKGIsIHBy ZXZpb3VzX25hbWUsIHFjbGFzcywgVF9DTkFNRSwgNjApOworKworKyAgICAgIHN0YXRpYyBjb25z dCBjaGFyIGJpdHNfdG9fcHJlZml4WzRdWzhdID0geyAiIiwgIiouIiwgIi14LiIsICJzdGFyLiou IiB9OworKyAgICAgIGNoYXIgKm5ld19uYW1lID0geGFzcHJpbnRmICgiJXN1bmlxdWUlZC5leGFt cGxlIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYml0c190b19wcmVmaXhb Yml0cyAmIDNdLCB1bmlxdWUpOworKyAgICAgIGJpdHMgPj49IDI7CisrICAgICAgcmVzb2x2X3Jl c3BvbnNlX2FkZF9uYW1lIChiLCBuZXdfbmFtZSk7CisrICAgICAgcmVzb2x2X3Jlc3BvbnNlX2Ns b3NlX3JlY29yZCAoYik7CisrCisrICAgICAgaWYgKHByZXZpb3VzX25hbWUgIT0gcW5hbWUpCisr ICAgICAgICBmcmVlIChwcmV2aW91c19uYW1lKTsKKysgICAgICBwcmV2aW91c19uYW1lID0gbmV3 X25hbWU7CisrICAgIH0KKysKKysgIC8qIEFjdHVhbCBhbnN3ZXIgcmVjb3JkLiAgKi8KKysgIHJl c29sdl9yZXNwb25zZV9vcGVuX3JlY29yZCAoYiwgcHJldmlvdXNfbmFtZSwgcWNsYXNzLCBxdHlw ZSwgNjApOworKyAgc3dpdGNoIChxdHlwZSkKKysgICAgeworKyAgICBjYXNlIFRfQToKKysgICAg ICB7CisrICAgICAgICBjaGFyIGlwdjRbNF0gPSB7MTkyLCAxNjgsIGNvdW50LCBvcmlnaW5hbF9i aXRzfTsKKysgICAgICAgIHJlc29sdl9yZXNwb25zZV9hZGRfZGF0YSAoYiwgJmlwdjQsIHNpemVv ZiAoaXB2NCkpOworKyAgICAgIH0KKysgICAgICBicmVhazsKKysgICAgY2FzZSBUX0FBQUE6Cisr ICAgICAgeworKyAgICAgICAgY2hhciBpcHY2WzE2XSA9CisrICAgICAgICAgIHsKKysgICAgICAg ICAgICAweDIwLCAweDAxLCAweGQsIDB4YjgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAs CisrICAgICAgICAgICAgY291bnQsIG9yaWdpbmFsX2JpdHMKKysgICAgICAgICAgfTsKKysgICAg ICAgIHJlc29sdl9yZXNwb25zZV9hZGRfZGF0YSAoYiwgJmlwdjYsIHNpemVvZiAoaXB2NikpOwor KyAgICAgIH0KKysgICAgICBicmVhazsKKysKKysgICAgY2FzZSBUX1BUUjoKKysgICAgICB7Cisr ICAgICAgICBjaGFyICpuYW1lID0geGFzcHJpbnRmICgiYml0cyV1LmNvdW50JXUuZXhhbXBsZSIs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5hbF9iaXRzLCBjb3VudCk7 CisrICAgICAgICByZXNvbHZfcmVzcG9uc2VfYWRkX25hbWUgKGIsIG5hbWUpOworKyAgICAgICAg ZnJlZSAobmFtZSk7CisrICAgICAgfQorKyAgICAgIGJyZWFrOworKyAgICB9CisrICByZXNvbHZf cmVzcG9uc2VfY2xvc2VfcmVjb3JkIChiKTsKKysKKysgIGlmIChwcmV2aW91c19uYW1lICE9IHFu YW1lKQorKyAgICBmcmVlIChwcmV2aW91c19uYW1lKTsKKyt9CisrCisrLyogQ29udHJvbHMgd2hp Y2ggbmFtZSByZXNvbHV0aW9uIGZ1bmN0aW9uIGlzIGludm9rZWQuICAqLworK2VudW0gdGVzdF9t b2RlCisrICB7CisrICAgIGJ5bmFtZSwgICAgICAgICAgICAgICAgICAgICAvKiBnZXRob3N0Ynlu YW1lLiAgKi8KKysgICAgYnluYW1lMiwgICAgICAgICAgICAgICAgICAgIC8qIGdldGhvc3RieW5h bWUyLiAgKi8KKysgICAgZ2FpLCAgICAgICAgICAgICAgICAgICAgICAgIC8qIGdldGFkZHJpbmZv IHdpdGhvdXQgQUlfQ0FOT05OQU1FLiAgKi8KKysgICAgZ2FpX2Nhbm9uLCAgICAgICAgICAgICAg ICAgIC8qIGdldGFkZHJpbmZvIHdpdGggQUlfQ0FOT05OQU1FLiAgKi8KKysKKysgICAgdGVzdF9t b2RlX251bSAgICAgICAgICAgICAgIC8qIE51bWJlciBvZiBlbnVtIHZhbHVlcy4gICovCisrICB9 OworKworK3N0YXRpYyBjb25zdCBjaGFyICoKKyt0ZXN0X21vZGVfdG9fc3RyaW5nIChlbnVtIHRl c3RfbW9kZSBtb2RlKQorK3sKKysgIHN3aXRjaCAobW9kZSkKKysgICAgeworKyAgICBjYXNlIGJ5 bmFtZToKKysgICAgICByZXR1cm4gImJ5bmFtZSI7CisrICAgIGNhc2UgYnluYW1lMjoKKysgICAg ICByZXR1cm4gImJ5bmFtZTIiOworKyAgICBjYXNlIGdhaToKKysgICAgICByZXR1cm4gImdhaSI7 CisrICAgIGNhc2UgZ2FpX2Nhbm9uOgorKyAgICAgIHJldHVybiAiZ2FpX2Nhbm9uIjsKKysgICAg Y2FzZSB0ZXN0X21vZGVfbnVtOgorKyAgICAgIC8qIFJlcG9ydCBlcnJvciBiZWxvdy4gICovCisr ICAgIH0KKysgIEZBSUxfRVhJVDEgKCJpbnZhbGlkIHRlc3RfbW9kZTogJWQiLCBtb2RlKTsKKyt9 CisrCisrLyogQXBwZW5kIHRoZSBuYW1lIGFuZCBhbGlhc2VzIHRvIE9VVC4gICovCisrc3RhdGlj IHZvaWQKKythcHBlbmRfbmFtZXMgKEZJTEUgKm91dCwgY29uc3QgY2hhciAqcW5hbWUsIGludCBi aXRzLCBpbnQgY291bnQsCisrICAgICAgICAgICAgICBlbnVtIHRlc3RfbW9kZSBtb2RlKQorK3sK KysgIC8qIExhcmdlc3QgdmFsaWQgaW5kZXggd2hpY2ggaGFzIGEgY29ycmVzcG9uZGluZyB6ZXJv IGluIGJpdHMKKysgICAgIChtZWFuaW5nIGEgc3ludGFjdGljYWxseSB2YWxpZCBDTkFNRSkuICAq LworKyAgaW50IGxhc3RfdmFsaWRfY25hbWUgPSAtMTsKKysKKysgIGZvciAoaW50IGkgPSAwOyBp IDwgY291bnQ7ICsraSkKKysgICAgaWYgKChiaXRzICYgKDMgPDwgKGkgKiAyKSkpID09IDApCisr ICAgICAgbGFzdF92YWxpZF9jbmFtZSA9IGk7CisrCisrICBpZiAobW9kZSAhPSBnYWkpCisrICAg IHsKKysgICAgICBjb25zdCBjaGFyICpsYWJlbDsKKysgICAgICBpZiAobW9kZSA9PSBnYWlfY2Fu b24pCisrICAgICAgICBsYWJlbCA9ICJjYW5vbm5hbWUiOworKyAgICAgIGVsc2UKKysgICAgICAg IGxhYmVsID0gIm5hbWUiOworKyAgICAgIGlmIChsYXN0X3ZhbGlkX2NuYW1lID49IDApCisrICAg ICAgICBmcHJpbnRmIChvdXQsICIlczogdW5pcXVlJWQuZXhhbXBsZVxuIiwgbGFiZWwsIGxhc3Rf dmFsaWRfY25hbWUpOworKyAgICAgIGVsc2UKKysgICAgICAgIGZwcmludGYgKG91dCwgIiVzOiAl c1xuIiwgbGFiZWwsIHFuYW1lKTsKKysgICAgfQorKworKyAgaWYgKG1vZGUgPT0gYnluYW1lIHx8 IG1vZGUgPT0gYnluYW1lMikKKysgICAgeworKyAgICAgIGlmIChsYXN0X3ZhbGlkX2NuYW1lID49 IDApCisrICAgICAgICBmcHJpbnRmIChvdXQsICJhbGlhczogJXNcbiIsIHFuYW1lKTsKKysgICAg ICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyArK2kpCisrICAgICAgICB7CisrICAgICAgICAg IGlmICgoYml0cyAmICgzIDw8IChpICogMikpKSA9PSAwICYmIGkgIT0gbGFzdF92YWxpZF9jbmFt ZSkKKysgICAgICAgICAgICBmcHJpbnRmIChvdXQsICJhbGlhczogdW5pcXVlJWQuZXhhbXBsZVxu IiwgaSk7CisrICAgICAgICB9CisrICAgIH0KKyt9CisrCisrLyogQXBwZW5kIHRoZSBhZGRyZXNz IGluZm9ybWF0aW9uIHRvIE9VVC4gICovCisrc3RhdGljIHZvaWQKKythcHBlbmRfYWRkcmVzc2Vz IChGSUxFICpvdXQsIGludCBhZiwgaW50IGJpdHMsIGludCBjb3VudCwgZW51bSB0ZXN0X21vZGUg bW9kZSkKKyt7CisrICBpbnQgbGFzdCA9IGNvdW50ICogMjU2ICsgYml0czsKKysgIGlmIChtb2Rl ID09IGdhaSB8fCBtb2RlID09IGdhaV9jYW5vbikKKysgICAgeworKyAgICAgIGlmIChhZiA9PSBB Rl9JTkVUIHx8IGFmID09IEFGX1VOU1BFQykKKysgICAgICAgIGZwcmludGYgKG91dCwgImFkZHJl c3M6IFNUUkVBTS9UQ1AgMTkyLjE2OC4lZC4lZCA4MFxuIiwgY291bnQsIGJpdHMpOworKyAgICAg IGlmIChhZiA9PSBBRl9JTkVUNiB8fCBhZiA9PSBBRl9VTlNQRUMpCisrICAgICAgICB7CisrICAg ICAgICAgIGlmIChsYXN0ID09IDApCisrICAgICAgICAgICAgZnByaW50ZiAob3V0LCAiYWRkcmVz czogU1RSRUFNL1RDUCAyMDAxOmRiODo6IDgwXG4iKTsKKysgICAgICAgICAgZWxzZQorKyAgICAg ICAgICAgIGZwcmludGYgKG91dCwgImFkZHJlc3M6IFNUUkVBTS9UQ1AgMjAwMTpkYjg6OiV4IDgw XG4iLCBsYXN0KTsKKysgICAgICAgIH0KKysgICAgfQorKyAgZWxzZQorKyAgICB7CisrICAgICAg VEVTVF9WRVJJRlkgKGFmICE9IEFGX1VOU1BFQyk7CisrICAgICAgaWYgKGFmID09IEFGX0lORVQp CisrICAgICAgICBmcHJpbnRmIChvdXQsICJhZGRyZXNzOiAxOTIuMTY4LiVkLiVkXG4iLCBjb3Vu dCwgYml0cyk7CisrICAgICAgaWYgKGFmID09IEFGX0lORVQ2KQorKyAgICAgICAgeworKyAgICAg ICAgICBpZiAobGFzdCA9PSAwKQorKyAgICAgICAgICAgIGZwcmludGYgKG91dCwgImFkZHJlc3M6 IDIwMDE6ZGI4OjpcbiIpOworKyAgICAgICAgICBlbHNlCisrICAgICAgICAgICAgZnByaW50ZiAo b3V0LCAiYWRkcmVzczogMjAwMTpkYjg6OiV4XG4iLCBsYXN0KTsKKysgICAgICAgIH0KKysgICAg fQorK30KKysKKysvKiBQZXJmb3JtIG9uZSB0ZXN0IHVzaW5nIGEgZm9yd2FyZCBsb29rdXAuICAq LworK3N0YXRpYyB2b2lkCisrY2hlY2tfZm9yd2FyZCAoaW50IGFmLCBpbnQgYml0cywgaW50IGNv dW50LCBlbnVtIHRlc3RfbW9kZSBtb2RlKQorK3sKKysgIGNoYXIgKnFuYW1lID0geGFzcHJpbnRm ICgiYml0cyVkLmNvdW50JWQuZXhhbXBsZSIsIGJpdHMsIGNvdW50KTsKKysgIGNoYXIgKmxhYmVs ID0geGFzcHJpbnRmICgiYWY9JWQgYml0cz0lZCBjb3VudD0lZCBtb2RlPSVzIHFuYW1lPSVzIiwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICBhZiwgYml0cywgY291bnQsIHRlc3RfbW9kZV90 b19zdHJpbmcgKG1vZGUpLCBxbmFtZSk7CisrCisrICBzdHJ1Y3QgeG1lbXN0cmVhbSBleHBlY3Rl ZDsKKysgIHhvcGVuX21lbXN0cmVhbSAoJmV4cGVjdGVkKTsKKysgIGlmIChtb2RlID09IGdhaV9j YW5vbikKKysgICAgZnByaW50ZiAoZXhwZWN0ZWQub3V0LCAiZmxhZ3M6IEFJX0NBTk9OTkFNRVxu Iik7CisrICBhcHBlbmRfbmFtZXMgKGV4cGVjdGVkLm91dCwgcW5hbWUsIGJpdHMsIGNvdW50LCBt b2RlKTsKKysgIGFwcGVuZF9hZGRyZXNzZXMgKGV4cGVjdGVkLm91dCwgYWYsIGJpdHMsIGNvdW50 LCBtb2RlKTsKKysgIHhmY2xvc2VfbWVtc3RyZWFtICgmZXhwZWN0ZWQpOworKworKyAgaWYgKG1v ZGUgPT0gZ2FpIHx8IG1vZGUgPT0gZ2FpX2Nhbm9uKQorKyAgICB7CisrICAgICAgc3RydWN0IGFk ZHJpbmZvICphaTsKKysgICAgICBzdHJ1Y3QgYWRkcmluZm8gaGludHMgPQorKyAgICAgICAgewor KyAgICAgICAgICAuYWlfZmFtaWx5ID0gYWYsCisrICAgICAgICAgIC5haV9zb2NrdHlwZSA9IFNP Q0tfU1RSRUFNLAorKyAgICAgICAgfTsKKysgICAgICBpZiAobW9kZSA9PSBnYWlfY2Fub24pCisr ICAgICAgICBoaW50cy5haV9mbGFncyB8PSBBSV9DQU5PTk5BTUU7CisrICAgICAgaW50IHJldCA9 IGdldGFkZHJpbmZvIChxbmFtZSwgIjgwIiwgJmhpbnRzLCAmYWkpOworKyAgICAgIGNoZWNrX2Fk ZHJpbmZvIChsYWJlbCwgYWksIHJldCwgZXhwZWN0ZWQuYnVmZmVyKTsKKysgICAgICBpZiAocmV0 ID09IDApCisrICAgICAgICBmcmVlYWRkcmluZm8gKGFpKTsKKysgICAgfQorKyAgZWxzZQorKyAg ICB7CisrICAgICAgc3RydWN0IGhvc3RlbnQgKmU7CisrICAgICAgaWYgKG1vZGUgPT0gZ2FpKQor KyAgICAgICAgeworKyAgICAgICAgICBURVNUX0NPTVBBUkUgKGFmLCBBRl9JTkVUKTsKKysgICAg ICAgICAgZSA9IGdldGhvc3RieW5hbWUgKHFuYW1lKTsKKysgICAgICAgIH0KKysgICAgICBlbHNl CisrICAgICAgICB7CisrICAgICAgICAgIGlmIChhZiAhPSBBRl9JTkVUKQorKyAgICAgICAgICAg IFRFU1RfQ09NUEFSRSAoYWYsIEFGX0lORVQ2KTsKKysgICAgICAgICAgZSA9IGdldGhvc3RieW5h bWUyIChxbmFtZSwgYWYpOworKyAgICAgICAgfQorKyAgICAgIGNoZWNrX2hvc3RlbnQgKGxhYmVs LCBlLCBleHBlY3RlZC5idWZmZXIpOworKyAgICB9CisrCisrICBmcmVlIChleHBlY3RlZC5idWZm ZXIpOworKyAgZnJlZSAobGFiZWwpOworKyAgZnJlZSAocW5hbWUpOworK30KKysKKysvKiBQZXJm b3JtIG9uZSBjaGVjayB1c2luZyBhIHJldmVyc2UgbG9va3VwLiAgKi8KKysKKytzdGF0aWMgdm9p ZAorK2NoZWNrX3JldmVyc2UgKGludCBhZiwgaW50IGJpdHMsIGludCBjb3VudCkKKyt7CisrICBU RVNUX1ZFUklGWSAoYWYgPT0gQUZfSU5FVCB8fCBhZiA9PSBBRl9JTkVUNik7CisrCisrICBjaGFy ICpsYWJlbCA9IHhhc3ByaW50ZiAoImFmPSVkIGJpdHM9JWQgY291bnQ9JWQiLCBhZiwgYml0cywg Y291bnQpOworKyAgY2hhciAqZnFkbiA9IHhhc3ByaW50ZiAoImJpdHMlZC5jb3VudCVkLmV4YW1w bGUiLCBiaXRzLCBjb3VudCk7CisrCisrICBzdHJ1Y3QgeG1lbXN0cmVhbSBleHBlY3RlZDsKKysg IHhvcGVuX21lbXN0cmVhbSAoJmV4cGVjdGVkKTsKKysgIGZwcmludGYgKGV4cGVjdGVkLm91dCwg Im5hbWU6ICVzXG4iLCBmcWRuKTsKKysgIGFwcGVuZF9hZGRyZXNzZXMgKGV4cGVjdGVkLm91dCwg YWYsIGJpdHMsIGNvdW50LCBieW5hbWUpOworKyAgeGZjbG9zZV9tZW1zdHJlYW0gKCZleHBlY3Rl ZCk7CisrCisrICBjaGFyIGFkZHJbMTZdID0geyAwIH07CisrICBzb2NrbGVuX3QgYWRkcmxlbjsK KysgIGlmIChhZiA9PSBBRl9JTkVUKQorKyAgICB7CisrICAgICAgYWRkclswXSA9IDE5MjsKKysg ICAgICBhZGRyWzFdID0gMTY4OworKyAgICAgIGFkZHJbMl0gPSBjb3VudDsKKysgICAgICBhZGRy WzNdID0gYml0czsKKysgICAgICBhZGRybGVuID0gNDsKKysgICAgfQorKyAgZWxzZQorKyAgICB7 CisrICAgICAgYWRkclswXSA9IDB4MjA7CisrICAgICAgYWRkclsxXSA9IDB4MDE7CisrICAgICAg YWRkclsyXSA9IDB4MGQ7CisrICAgICAgYWRkclszXSA9IDB4Yjg7CisrICAgICAgYWRkclsxNF0g PSBjb3VudDsKKysgICAgICBhZGRyWzE1XSA9IGJpdHM7CisrICAgICAgYWRkcmxlbiA9IDE2Owor KyAgICB9CisrCisrICBzdHJ1Y3QgaG9zdGVudCAqZSA9IGdldGhvc3RieWFkZHIgKGFkZHIsIGFk ZHJsZW4sIGFmKTsKKysgIGNoZWNrX2hvc3RlbnQgKGxhYmVsLCBlLCBleHBlY3RlZC5idWZmZXIp OworKworKyAgLyogZ2V0bmFtZWluZm8gY2hlY2sgaXMgZGlmZmVyZW50LiAgVGhlcmUgaXMgbm8g Z2VuZXJpYyBjaGVja18qCisrICAgICBmdW5jdGlvbiBmb3IgaXQuICAqLworKyAgeworKyAgICBz dHJ1Y3Qgc29ja2FkZHJfaW4gc2luID0geyB9OworKyAgICBzdHJ1Y3Qgc29ja2FkZHJfaW42IHNp bjYgPSB7IH07CisrICAgIHZvaWQgKnNhOworKyAgICBzb2NrbGVuX3Qgc2FsZW47CisrICAgIGlm IChhZiA9PSBBRl9JTkVUKQorKyAgICAgIHsKKysgICAgICAgIHNpbi5zaW5fZmFtaWx5ID0gQUZf SU5FVDsKKysgICAgICAgIG1lbWNweSAoJnNpbi5zaW5fYWRkciwgYWRkciwgYWRkcmxlbik7Cisr ICAgICAgICBzaW4uc2luX3BvcnQgPSBodG9ucyAoODApOworKyAgICAgICAgc2EgPSAmc2luOwor KyAgICAgICAgc2FsZW4gPSBzaXplb2YgKHNpbik7CisrICAgICAgfQorKyAgICBlbHNlCisrICAg ICAgeworKyAgICAgICAgc2luNi5zaW42X2ZhbWlseSA9IEFGX0lORVQ2OworKyAgICAgICAgbWVt Y3B5ICgmc2luNi5zaW42X2FkZHIsIGFkZHIsIGFkZHJsZW4pOworKyAgICAgICAgc2luNi5zaW42 X3BvcnQgPSBodG9ucyAoODApOworKyAgICAgICAgc2EgPSAmc2luNjsKKysgICAgICAgIHNhbGVu ID0gc2l6ZW9mIChzaW42KTsKKysgICAgICB9CisrCisrICAgIGNoYXIgaG9zdFs2NF07CisrICAg IGNoYXIgc2VydmljZVs2NF07CisrICAgIGludCByZXQgPSBnZXRuYW1laW5mbyAoc2EsIHNhbGVu LCBob3N0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZiAoaG9zdCksIHNlcnZp Y2UsIHNpemVvZiAoc2VydmljZSksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgTklfTkFN RVJFUUQgfCBOSV9OVU1FUklDU0VSVik7CisrICAgIFRFU1RfQ09NUEFSRSAocmV0LCAwKTsKKysg ICAgVEVTVF9DT01QQVJFX1NUUklORyAoaG9zdCwgZnFkbik7CisrICAgIFRFU1RfQ09NUEFSRV9T VFJJTkcgKHNlcnZpY2UsICI4MCIpOworKyAgfQorKworKyAgZnJlZSAoZXhwZWN0ZWQuYnVmZmVy KTsKKysgIGZyZWUgKGZxZG4pOworKyAgZnJlZSAobGFiZWwpOworK30KKysKKytzdGF0aWMgaW50 CisrZG9fdGVzdCAodm9pZCkKKyt7CisrICBzdHJ1Y3QgcmVzb2x2X3Rlc3QgKm9iaiA9IHJlc29s dl90ZXN0X3N0YXJ0CisrICAgICgoc3RydWN0IHJlc29sdl9yZWRpcmVjdF9jb25maWcpCisrICAg ICB7CisrICAgICAgIC5yZXNwb25zZV9jYWxsYmFjayA9IHJlc3BvbnNlCisrICAgICB9KTsKKysK KysgIGZvciAoaW50IGNvdW50ID0gMDsgY291bnQgPD0gMzsgKytjb3VudCkKKysgICAgZm9yIChp bnQgYml0cyA9IDA7IGJpdHMgPD0gMSA8PCAoY291bnQgKiAyKTsgKytiaXRzKQorKyAgICAgIHsK KysgICAgICAgIGlmIChjb3VudCA+IDAgJiYgYml0cyA9PSBjb3VudCkKKysgICAgICAgICAgLyog VGhlIGxhc3QgYml0cyB2YWx1ZSBpcyBvbmx5IGNoZWNrZWQgaWYgY291bnQgPT0gMC4gICovCisr ICAgICAgICAgIGNvbnRpbnVlOworKworKyAgICAgICAgZm9yIChlbnVtIHRlc3RfbW9kZSBtb2Rl ID0gMDsgbW9kZSA8IHRlc3RfbW9kZV9udW07ICsrbW9kZSkKKysgICAgICAgICAgeworKyAgICAg ICAgICAgIGNoZWNrX2ZvcndhcmQgKEFGX0lORVQsIGJpdHMsIGNvdW50LCBtb2RlKTsKKysgICAg ICAgICAgICBpZiAobW9kZSAhPSBieW5hbWUpCisrICAgICAgICAgICAgICBjaGVja19mb3J3YXJk IChBRl9JTkVUNiwgYml0cywgY291bnQsIG1vZGUpOworKyAgICAgICAgICAgIGlmIChtb2RlID09 IGdhaSB8fCBtb2RlID09IGdhaV9jYW5vbikKKysgICAgICAgICAgICAgIGNoZWNrX2ZvcndhcmQg KEFGX1VOU1BFQywgYml0cywgY291bnQsIG1vZGUpOworKyAgICAgICAgICB9CisrCisrICAgICAg ICBjaGVja19yZXZlcnNlIChBRl9JTkVULCBiaXRzLCBjb3VudCk7CisrICAgICAgICBjaGVja19y ZXZlcnNlIChBRl9JTkVUNiwgYml0cywgY291bnQpOworKyAgICAgIH0KKysKKysgIHJlc29sdl90 ZXN0X2VuZCAob2JqKTsKKysKKysgIHJldHVybiAwOworK30KKysKKysjaW5jbHVkZSA8c3VwcG9y dC90ZXN0LWRyaXZlci5jPgorLS0gCisyLjM4LjEKKworCitGcm9tIGM1Y2RiMzljMjBlOTZkOWFj MGQ0NmZjNzI4NGI4Mjc2YTUzN2ZkMzUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBG bG9yaWFuIFdlaW1lciA8ZndlaW1lckByZWRoYXQuY29tPgorRGF0ZTogVHVlLCAzMCBBdWcgMjAy MiAxMDowMjo0OSArMDIwMAorU3ViamVjdDogW1BBVENIIDM1LzcyXSBuc3NfZG5zOiBSZXdyaXRl IF9uc3NfZG5zX2dldGhvc3RieW5hbWU0X3IgdXNpbmcKKyBjdXJyZW50IGludGVyZmFjZXMKKwor SW50cm9kdWNlIHN0cnVjdCBhbGxvY19idWZmZXIgdG8gdGhpcyBmdW5jdGlvbiwgYW5kIHVzZSBp dCBhbmQKK3N0cnVjdCBuc19ycl9jdXJzb3IgaW4gZ2FpaF9nZXRhbnN3ZXJfc2xpY2UuICBBZGp1 c3QgZ2FpaF9nZXRhbnN3ZXIKK2FuZCBnYWloX2dldGFuc3dlcl9ub2FhYWEgYWNjb3JkaW5nbHku CisKK1Jldmlld2VkLWJ5OiBTaWRkaGVzaCBQb3lhcmVrYXIgPHNpZGRoZXNoQHNvdXJjZXdhcmUu b3JnPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgMWQ0OTU5MTJhNzQ2ZTJhMWZmYjc4MGM5 YTgxZmQyMzRlYzI0NjRlOCkKKy0tLQorIHJlc29sdi9uc3NfZG5zL2Rucy1ob3N0LmMgfCA0NDMg KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwg MTYyIGluc2VydGlvbnMoKyksIDI4MSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3Jlc29s di9uc3NfZG5zL2Rucy1ob3N0LmMgYi9yZXNvbHYvbnNzX2Rucy9kbnMtaG9zdC5jCitpbmRleCBi ZWE1MDVkNjk3Li45ZmE4MWYyM2M4IDEwMDY0NAorLS0tIGEvcmVzb2x2L25zc19kbnMvZG5zLWhv c3QuYworKysrIGIvcmVzb2x2L25zc19kbnMvZG5zLWhvc3QuYworQEAgLTEwMCwxMyArMTAwLDYg QEAKKyAjZW5kaWYKKyAjZGVmaW5lIE1BWEhPU1ROQU1FTEVOIDI1NgorIAorLS8qIFdlIG5lZWQg dGhpcyB0aW1lIGxhdGVyLiAgKi8KKy10eXBlZGVmIHVuaW9uIHF1ZXJ5YnVmCisteworLSAgSEVB REVSIGhkcjsKKy0gIHVfY2hhciBidWZbTUFYUEFDS0VUXTsKKy19IHF1ZXJ5YnVmOworLQorIC8q IEZvciBoaXN0b3JpYyByZWFzb25zLCBwb2ludGVycyB0byBJUCBhZGRyZXNzZXMgYXJlIGNoYXIg Kiwgc28gdXNlIGEKKyAgICBzaW5nbGUgbGlzdCB0eXBlIGZvciBhZGRyZXNzZXMgYW5kIGhvc3Qg bmFtZXMuICAqLworICNkZWZpbmUgRFlOQVJSQVlfU1RSVUNUIHB0cmxpc3QKK0BAIC0xMjUsMTgg KzExOCwxOCBAQCBzdGF0aWMgZW51bSBuc3Nfc3RhdHVzIGdldGFuc3dlcl9wdHIgKHVuc2lnbmVk IGNoYXIgKnBhY2tldCwgc2l6ZV90IHBhY2tldGxlbiwKKyAJCQkJICAgICAgY2hhciAqKmhuYW1l cCwgaW50ICplcnJub3AsCisgCQkJCSAgICAgIGludCAqaF9lcnJub3AsIGludDMyX3QgKnR0bHAp OworIAorLXN0YXRpYyBlbnVtIG5zc19zdGF0dXMgZ2FpaF9nZXRhbnN3ZXIgKGNvbnN0IHF1ZXJ5 YnVmICphbnN3ZXIxLCBpbnQgYW5zbGVuMSwKKy0JCQkJICAgICAgIGNvbnN0IHF1ZXJ5YnVmICph bnN3ZXIyLCBpbnQgYW5zbGVuMiwKKy0JCQkJICAgICAgIGNvbnN0IGNoYXIgKnFuYW1lLAorK3N0 YXRpYyBlbnVtIG5zc19zdGF0dXMgZ2FpaF9nZXRhbnN3ZXIgKHVuc2lnbmVkIGNoYXIgKnBhY2tl dDEsCisrCQkJCSAgICAgICBzaXplX3QgcGFja2V0MWxlbiwKKysJCQkJICAgICAgIHVuc2lnbmVk IGNoYXIgKnBhY2tldDIsCisrCQkJCSAgICAgICBzaXplX3QgcGFja2V0MmxlbiwKKysJCQkJICAg ICAgIHN0cnVjdCBhbGxvY19idWZmZXIgKmFidWYsCisgCQkJCSAgICAgICBzdHJ1Y3QgZ2FpaF9h ZGRydHVwbGUgKipwYXQsCistCQkJCSAgICAgICBjaGFyICpidWZmZXIsIHNpemVfdCBidWZsZW4s CisgCQkJCSAgICAgICBpbnQgKmVycm5vcCwgaW50ICpoX2Vycm5vcCwKKyAJCQkJICAgICAgIGlu dDMyX3QgKnR0bHApOworLXN0YXRpYyBlbnVtIG5zc19zdGF0dXMgZ2FpaF9nZXRhbnN3ZXJfbm9h YWFhIChjb25zdCBxdWVyeWJ1ZiAqYW5zd2VyMSwKKy0JCQkJCSAgICAgIGludCBhbnNsZW4xLAor LQkJCQkJICAgICAgY29uc3QgY2hhciAqcW5hbWUsCisrc3RhdGljIGVudW0gbnNzX3N0YXR1cyBn YWloX2dldGFuc3dlcl9ub2FhYWEgKHVuc2lnbmVkIGNoYXIgKnBhY2tldCwKKysJCQkJCSAgICAg IHNpemVfdCBwYWNrZXRsZW4sCisrCQkJCQkgICAgICBzdHJ1Y3QgYWxsb2NfYnVmZmVyICphYnVm LAorIAkJCQkJICAgICAgc3RydWN0IGdhaWhfYWRkcnR1cGxlICoqcGF0LAorLQkJCQkJICAgICAg Y2hhciAqYnVmZmVyLCBzaXplX3QgYnVmbGVuLAorIAkJCQkJICAgICAgaW50ICplcnJub3AsIGlu dCAqaF9lcnJub3AsCisgCQkJCQkgICAgICBpbnQzMl90ICp0dGxwKTsKKyAKK0BAIC00MDgsMTcg KzQwMSwxMyBAQCBfbnNzX2Ruc19nZXRob3N0YnluYW1lNF9yIChjb25zdCBjaGFyICpuYW1lLCBz dHJ1Y3QgZ2FpaF9hZGRydHVwbGUgKipwYXQsCisgCW5hbWUgPSBjcDsKKyAgICAgfQorIAorLSAg dW5pb24KKy0gIHsKKy0gICAgcXVlcnlidWYgKmJ1ZjsKKy0gICAgdV9jaGFyICpwdHI7CistICB9 IGhvc3RfYnVmZmVyOworLSAgcXVlcnlidWYgKm9yaWdfaG9zdF9idWZmZXI7CistICBob3N0X2J1 ZmZlci5idWYgPSBvcmlnX2hvc3RfYnVmZmVyID0gKHF1ZXJ5YnVmICopIGFsbG9jYSAoMjA0OCk7 CisrICB1bnNpZ25lZCBjaGFyIGRuc19wYWNrZXRfYnVmZmVyWzIwNDhdOworKyAgdW5zaWduZWQg Y2hhciAqYWx0X2Ruc19wYWNrZXRfYnVmZmVyID0gZG5zX3BhY2tldF9idWZmZXI7CisgICB1X2No YXIgKmFuczJwID0gTlVMTDsKKyAgIGludCBuYW5zMnAgPSAwOworICAgaW50IHJlc3BsZW4yID0g MDsKKyAgIGludCBhbnMycF9tYWxsb2NlZCA9IDA7CisrICBzdHJ1Y3QgYWxsb2NfYnVmZmVyIGFi dWYgPSBhbGxvY19idWZmZXJfY3JlYXRlIChidWZmZXIsIGJ1Zmxlbik7CisgCisgCisgICBpbnQg b2xkZXJyID0gZXJybm87CitAQCAtNDI3LDIyICs0MTYsMjEgQEAgX25zc19kbnNfZ2V0aG9zdGJ5 bmFtZTRfciAoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IGdhaWhfYWRkcnR1cGxlICoqcGF0LAor ICAgaWYgKChjdHgtPnJlc3AtPm9wdGlvbnMgJiBSRVNfTk9BQUFBKSA9PSAwKQorICAgICB7Cisg ICAgICAgbiA9IF9fcmVzX2NvbnRleHRfc2VhcmNoIChjdHgsIG5hbWUsIENfSU4sIFRfUVVFUllf QV9BTkRfQUFBQSwKKy0JCQkJaG9zdF9idWZmZXIuYnVmLT5idWYsIDIwNDgsICZob3N0X2J1ZmZl ci5wdHIsCistCQkJCSZhbnMycCwgJm5hbnMycCwgJnJlc3BsZW4yLCAmYW5zMnBfbWFsbG9jZWQp OworKwkJCQlkbnNfcGFja2V0X2J1ZmZlciwgc2l6ZW9mIChkbnNfcGFja2V0X2J1ZmZlciksCisr CQkJCSZhbHRfZG5zX3BhY2tldF9idWZmZXIsICZhbnMycCwgJm5hbnMycCwKKysJCQkJJnJlc3Bs ZW4yLCAmYW5zMnBfbWFsbG9jZWQpOworICAgICAgIGlmIChuID49IDApCistCXN0YXR1cyA9IGdh aWhfZ2V0YW5zd2VyIChob3N0X2J1ZmZlci5idWYsIG4sIChjb25zdCBxdWVyeWJ1ZiAqKSBhbnMy cCwKKy0JCQkJIHJlc3BsZW4yLCBuYW1lLCBwYXQsIGJ1ZmZlciwgYnVmbGVuLAorLQkJCQkgZXJy bm9wLCBoZXJybm9wLCB0dGxwKTsKKysJc3RhdHVzID0gZ2FpaF9nZXRhbnN3ZXIgKGFsdF9kbnNf cGFja2V0X2J1ZmZlciwgbiwgYW5zMnAsIHJlc3BsZW4yLAorKwkJCQkgJmFidWYsIHBhdCwgZXJy bm9wLCBoZXJybm9wLCB0dGxwKTsKKyAgICAgfQorICAgZWxzZQorICAgICB7CisgICAgICAgbiA9 IF9fcmVzX2NvbnRleHRfc2VhcmNoIChjdHgsIG5hbWUsIENfSU4sIFRfQSwKKy0JCQkJaG9zdF9i dWZmZXIuYnVmLT5idWYsIDIwNDgsIE5VTEwsCistCQkJCU5VTEwsIE5VTEwsIE5VTEwsIE5VTEwp OworKwkJCQlkbnNfcGFja2V0X2J1ZmZlciwgc2l6ZW9mIChkbnNfcGFja2V0X2J1ZmZlciksCisr CQkJCU5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwpOworICAgICAgIGlmIChuID49IDApCist CXN0YXR1cyA9IGdhaWhfZ2V0YW5zd2VyX25vYWFhYSAoaG9zdF9idWZmZXIuYnVmLCBuLAorLQkJ CQkJbmFtZSwgcGF0LCBidWZmZXIsIGJ1ZmxlbiwKKy0JCQkJCWVycm5vcCwgaGVycm5vcCwgdHRs cCk7CisrCXN0YXR1cyA9IGdhaWhfZ2V0YW5zd2VyX25vYWFhYSAoYWx0X2Ruc19wYWNrZXRfYnVm ZmVyLCBuLAorKwkJCQkJJmFidWYsIHBhdCwgZXJybm9wLCBoZXJybm9wLCB0dGxwKTsKKyAgICAg fQorICAgaWYgKG4gPCAwKQorICAgICB7CitAQCAtNDczLDEyICs0NjEsMjAgQEAgX25zc19kbnNf Z2V0aG9zdGJ5bmFtZTRfciAoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IGdhaWhfYWRkcnR1cGxl ICoqcGF0LAorIAlfX3NldF9lcnJubyAob2xkZXJyKTsKKyAgICAgfQorIAorKyAgLyogSW1wbGVt ZW50IHRoZSBidWZmZXIgcmVzaXppbmcgcHJvdG9jb2wuICAqLworKyAgaWYgKGFsbG9jX2J1ZmZl cl9oYXNfZmFpbGVkICgmYWJ1ZikpCisrICAgIHsKKysgICAgICAqZXJybm9wID0gRVJBTkdFOwor KyAgICAgICpoZXJybm9wID0gTkVUREJfSU5URVJOQUw7CisrICAgICAgc3RhdHVzID0gTlNTX1NU QVRVU19UUllBR0FJTjsKKysgICAgfQorKworICAgLyogQ2hlY2sgd2hldGhlciBhbnMycCB3YXMg c2VwYXJhdGVseSBhbGxvY2F0ZWQuICAqLworICAgaWYgKGFuczJwX21hbGxvY2VkKQorICAgICBm cmVlIChhbnMycCk7CisgCistICBpZiAoaG9zdF9idWZmZXIuYnVmICE9IG9yaWdfaG9zdF9idWZm ZXIpCistICAgIGZyZWUgKGhvc3RfYnVmZmVyLmJ1Zik7CisrICBpZiAoYWx0X2Ruc19wYWNrZXRf YnVmZmVyICE9IGRuc19wYWNrZXRfYnVmZmVyKQorKyAgICBmcmVlIChhbHRfZG5zX3BhY2tldF9i dWZmZXIpOworIAorICAgX19yZXNvbHZfY29udGV4dF9wdXQgKGN0eCk7CisgICByZXR1cm4gc3Rh dHVzOworQEAgLTg5MiwyNTkgKzg4OCwxNTIgQEAgZ2V0YW5zd2VyX3B0ciAodW5zaWduZWQgY2hh ciAqcGFja2V0LCBzaXplX3QgcGFja2V0bGVuLAorICAgcmV0dXJuIE5TU19TVEFUVVNfVFJZQUdB SU47CisgfQorIAorKy8qIFBhcnNlcyBETlMgZGF0YSBmb3VuZCBpbiBQQUNLRVRMRU4gYnl0ZXMg YXQgUEFDS0VUIGluIHN0cnVjdAorKyAgIGdhaWhfYWRkcnR1cGxlIGFkZHJlc3MgdHVwbGVzLiAg VGhlIG5ldyBhZGRyZXNzIHR1cGxlcyBhcmUgbGlua2VkCisrICAgZnJvbSAqKlRBSUxQLCB3aXRo IGJhY2tpbmcgc3RvcmUgYWxsb2NhdGVkIGZyb20gQUJVRiwgYW5kICpUQUlMUCBpcworKyAgIHVw ZGF0ZWQgdG8gcG9pbnQgd2hlcmUgdGhlIG5leHQgdHVwbGUgcG9pbnRlciBzaG91bGQgYmUgc3Rv cmVkLiAgSWYKKysgICBUVExQIGlzIG5vdCBudWxsLCAqVFRMUCBpcyB1cGRhdGVkIHRvIHJlZmxl Y3QgdGhlIG1pbmltdW0gVFRMLiAgSWYKKysgICBTVE9SRV9DQU5PTiBpcyB0cnVlLCB0aGUgY2Fu b25pY2FsIG5hbWUgaXMgc3RvcmVkIGFzIHBhcnQgb2YgdGhlCisrICAgZmlyc3QgYWRkcmVzcyB0 dXBsZSBiZWluZyB3cml0dGVuLiAgKi8KKyBzdGF0aWMgZW51bSBuc3Nfc3RhdHVzCistZ2FpaF9n ZXRhbnN3ZXJfc2xpY2UgKGNvbnN0IHF1ZXJ5YnVmICphbnN3ZXIsIGludCBhbnNsZW4sIGNvbnN0 IGNoYXIgKnFuYW1lLAorLQkJICAgICAgc3RydWN0IGdhaWhfYWRkcnR1cGxlICoqKnBhdHAsCist CQkgICAgICBjaGFyICoqYnVmZmVycCwgc2l6ZV90ICpidWZsZW5wLAorLQkJICAgICAgaW50ICpl cnJub3AsIGludCAqaF9lcnJub3AsIGludDMyX3QgKnR0bHAsIGludCAqZmlyc3RwKQorK2dhaWhf Z2V0YW5zd2VyX3NsaWNlICh1bnNpZ25lZCBjaGFyICpwYWNrZXQsIHNpemVfdCBwYWNrZXRsZW4s CisrCQkgICAgICBzdHJ1Y3QgYWxsb2NfYnVmZmVyICphYnVmLAorKwkJICAgICAgc3RydWN0IGdh aWhfYWRkcnR1cGxlICoqKnRhaWxwLAorKwkJICAgICAgaW50ICplcnJub3AsIGludCAqaF9lcnJu b3AsIGludDMyX3QgKnR0bHAsCisrCQkgICAgICBib29sIHN0b3JlX2Nhbm9uKQorIHsKKy0gIGNo YXIgKmJ1ZmZlciA9ICpidWZmZXJwOworLSAgc2l6ZV90IGJ1ZmxlbiA9ICpidWZsZW5wOworLQor LSAgc3RydWN0IGdhaWhfYWRkcnR1cGxlICoqcGF0ID0gKnBhdHA7CistICBjb25zdCBIRUFERVIg KmhwID0gJmFuc3dlci0+aGRyOworLSAgaW50IGFuY291bnQgPSBudG9ocyAoaHAtPmFuY291bnQp OworLSAgaW50IHFkY291bnQgPSBudG9ocyAoaHAtPnFkY291bnQpOworLSAgY29uc3QgdV9jaGFy ICpjcCA9IGFuc3dlci0+YnVmICsgSEZJWEVEU1o7CistICBjb25zdCB1X2NoYXIgKmVuZF9vZl9t ZXNzYWdlID0gYW5zd2VyLT5idWYgKyBhbnNsZW47CistICBpZiAoX19nbGliY191bmxpa2VseSAo cWRjb3VudCAhPSAxKSkKKy0gICAgeworLSAgICAgICpoX2Vycm5vcCA9IE5PX1JFQ09WRVJZOwor LSAgICAgIHJldHVybiBOU1NfU1RBVFVTX1VOQVZBSUw7CistICAgIH0KKy0KKy0gIHVfY2hhciBw YWNrdG1wW05TX01BWENETkFNRV07CistICBpbnQgbiA9IF9fbnNfbmFtZV91bnBhY2sgKGFuc3dl ci0+YnVmLCBlbmRfb2ZfbWVzc2FnZSwgY3AsCistCQkJICAgIHBhY2t0bXAsIHNpemVvZiBwYWNr dG1wKTsKKy0gIC8qIFdlIHVucGFjayB0aGUgbmFtZSB0byBjaGVjayBpdCBmb3IgdmFsaWRpdHku ICBCdXQgd2UgZG8gbm90IG5lZWQKKy0gICAgIGl0IGxhdGVyLiAgKi8KKy0gIGlmIChuICE9IC0x ICYmIF9fbnNfbmFtZV9udG9wIChwYWNrdG1wLCBidWZmZXIsIGJ1ZmxlbikgPT0gLTEpCistICAg IHsKKy0gICAgICBpZiAoX19nbGliY191bmxpa2VseSAoZXJybm8gPT0gRU1TR1NJWkUpKQorLQl7 CistCXRvb19zbWFsbDoKKy0JICAqZXJybm9wID0gRVJBTkdFOworLQkgICpoX2Vycm5vcCA9IE5F VERCX0lOVEVSTkFMOworLQkgIHJldHVybiBOU1NfU1RBVFVTX1RSWUFHQUlOOworLQl9CistCist ICAgICAgbiA9IC0xOworLSAgICB9CistCistICBpZiAoX19nbGliY191bmxpa2VseSAobiA8IDAp KQorLSAgICB7CistICAgICAgKmVycm5vcCA9IGVycm5vOworLSAgICAgICpoX2Vycm5vcCA9IE5P X1JFQ09WRVJZOworLSAgICAgIHJldHVybiBOU1NfU1RBVFVTX1VOQVZBSUw7CistICAgIH0KKy0g IGlmIChfX2dsaWJjX3VubGlrZWx5IChfX2xpYmNfcmVzX2hub2sgKGJ1ZmZlcikgPT0gMCkpCisr ICBzdHJ1Y3QgbnNfcnJfY3Vyc29yIGM7CisrICBpZiAoIV9fbnNfcnJfY3Vyc29yX2luaXQgKCZj LCBwYWNrZXQsIHBhY2tldGxlbikpCisgICAgIHsKKy0gICAgICBlcnJubyA9IEVCQURNU0c7Cist ICAgICAgKmVycm5vcCA9IEVCQURNU0c7CisrICAgICAgLyogVGhpcyBzaG91bGQgbm90IGhhcHBl biBiZWNhdXNlIF9fcmVzX2NvbnRleHRfcXVlcnkgYWxyZWFkeQorKwkgcGVyZnJvbXMgcmVzcG9u c2UgdmFsaWRhdGlvbi4gICovCisgICAgICAgKmhfZXJybm9wID0gTk9fUkVDT1ZFUlk7CisgICAg ICAgcmV0dXJuIE5TU19TVEFUVVNfVU5BVkFJTDsKKyAgICAgfQorLSAgY3AgKz0gbiArIFFGSVhF RFNaOworKyAgYm9vbCBoYXZlYW5zd2VyID0gZmFsc2U7IC8qIFNldCB0byB0cnVlIGlmIGF0IGxl YXN0IG9uZSBhZGRyZXNzLiAgKi8KKysgIHVpbnQxNl90IHF0eXBlID0gbnNfcnJfY3Vyc29yX3F0 eXBlICgmYyk7CisrICBpbnQgYW5jb3VudCA9IG5zX3JyX2N1cnNvcl9hbmNvdW50ICgmYyk7Cisr ICBjb25zdCB1bnNpZ25lZCBjaGFyICpleHBlY3RlZF9uYW1lID0gbnNfcnJfY3Vyc29yX3FuYW1l ICgmYyk7CisrICAvKiBleHBlY3RlZF9uYW1lIG1heSBiZSB1cGRhdGVkIHRvIHBvaW50IGludG8g dGhpcyBidWZmZXIuICAqLworKyAgdW5zaWduZWQgY2hhciBuYW1lX2J1ZmZlcltOU19NQVhDRE5B TUVdOworIAorLSAgaW50IGhhdmVhbnN3ZXIgPSAwOworLSAgaW50IGhhZF9lcnJvciA9IDA7Cist ICBjaGFyICpjYW5vbiA9IE5VTEw7CistICBjaGFyICpoX25hbWUgPSBOVUxMOworLSAgaW50IGhf bmFtZWxlbiA9IDA7CisrICAvKiBUaGlzIGlzIGEgcG9pbnRlciB0byBhIHBvc3NpYmx5LWNvbXBy ZXNzZWQgbmFtZSBpbiB0aGUgcGFja2V0LgorKyAgICAgRXZlbnR1YWxseSBpdCBpcyBlcXVpdmFs ZW50IHRvIHRoZSBjYW5vbmljYWwgbmFtZS4gIElmIG5lZWRlZCwgaXQKKysgICAgIGlzIHVuY29t cHJlc3NlZCBhbmQgdHJhbnNsYXRlZCB0byB0ZXh0IGZvcm0gd2hlbiB0aGUgZmlyc3QKKysgICAg IGFkZHJlc3MgdHVwbGUgaXMgZW5jb3VudGVyZWQuICAqLworKyAgY29uc3QgdW5zaWduZWQgY2hh ciAqY29tcHJlc3NlZF9hbGlhc19uYW1lID0gZXhwZWN0ZWRfbmFtZTsKKyAKKy0gIGlmIChhbmNv dW50ID09IDApCisrICBpZiAoYW5jb3VudCA9PSAwIHx8ICFfX3Jlc19iaW5hcnlfaG5vayAoY29t cHJlc3NlZF9hbGlhc19uYW1lKSkKKyAgICAgeworICAgICAgICpoX2Vycm5vcCA9IEhPU1RfTk9U X0ZPVU5EOworICAgICAgIHJldHVybiBOU1NfU1RBVFVTX05PVEZPVU5EOworICAgICB9CisgCist ICB3aGlsZSAoYW5jb3VudC0tID4gMCAmJiBjcCA8IGVuZF9vZl9tZXNzYWdlICYmIGhhZF9lcnJv ciA9PSAwKQorKyAgZm9yICg7IGFuY291bnQgPiAtMDsgLS1hbmNvdW50KQorICAgICB7CistICAg ICAgbiA9IF9fbnNfbmFtZV91bnBhY2sgKGFuc3dlci0+YnVmLCBlbmRfb2ZfbWVzc2FnZSwgY3As CistCQkJICAgIHBhY2t0bXAsIHNpemVvZiBwYWNrdG1wKTsKKy0gICAgICBpZiAobiAhPSAtMSAm JgorLQkgIChoX25hbWVsZW4gPSBfX25zX25hbWVfbnRvcCAocGFja3RtcCwgYnVmZmVyLCBidWZs ZW4pKSA9PSAtMSkKKy0JeworLQkgIGlmIChfX2dsaWJjX3VubGlrZWx5IChlcnJubyA9PSBFTVNH U0laRSkpCistCSAgICBnb3RvIHRvb19zbWFsbDsKKy0KKy0JICBuID0gLTE7CistCX0KKy0gICAg ICBpZiAoX19nbGliY191bmxpa2VseSAobiA8IDApKQorLQl7CistCSAgKytoYWRfZXJyb3I7Cist CSAgY29udGludWU7CistCX0KKy0gICAgICBpZiAoKmZpcnN0cCAmJiBjYW5vbiA9PSBOVUxMICYm IF9fbGliY19yZXNfaG5vayAoYnVmZmVyKSkKKy0JeworLQkgIGhfbmFtZSA9IGJ1ZmZlcjsKKy0J ICBidWZmZXIgKz0gaF9uYW1lbGVuOworLQkgIGJ1ZmxlbiAtPSBoX25hbWVsZW47CistCX0KKy0K Ky0gICAgICBjcCArPSBuOwkJCQkvKiBuYW1lICovCistCistICAgICAgaWYgKF9fZ2xpYmNfdW5s aWtlbHkgKGNwICsgMTAgPiBlbmRfb2ZfbWVzc2FnZSkpCistCXsKKy0JICArK2hhZF9lcnJvcjsK Ky0JICBjb250aW51ZTsKKy0JfQorLQorLSAgICAgIHVpbnQxNl90IHR5cGU7CistICAgICAgTlNf R0VUMTYgKHR5cGUsIGNwKTsKKy0gICAgICB1aW50MTZfdCBjbGFzczsKKy0gICAgICBOU19HRVQx NiAoY2xhc3MsIGNwKTsKKy0gICAgICBpbnQzMl90IHR0bDsKKy0gICAgICBOU19HRVQzMiAodHRs LCBjcCk7CistICAgICAgTlNfR0VUMTYgKG4sIGNwKTsJCS8qIFJEQVRBIGxlbmd0aC4gICovCist CistICAgICAgaWYgKGVuZF9vZl9tZXNzYWdlIC0gY3AgPCBuKQorKyAgICAgIHN0cnVjdCBuc19y cl93aXJlIHJyOworKyAgICAgIGlmICghX19uc19ycl9jdXJzb3JfbmV4dCAoJmMsICZycikpCisg CXsKKy0JICAvKiBSREFUQSBleHRlbmRzIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBwYWNrZXQuICAq LworLQkgICsraGFkX2Vycm9yOworLQkgIGNvbnRpbnVlOworKwkgICpoX2Vycm5vcCA9IE5PX1JF Q09WRVJZOworKwkgIHJldHVybiBOU1NfU1RBVFVTX1VOQVZBSUw7CisgCX0KKyAKKy0gICAgICBp ZiAoY2xhc3MgIT0gQ19JTikKKy0JeworLQkgIGNwICs9IG47CistCSAgY29udGludWU7CistCX0K KysgICAgICAvKiBVcGRhdGUgVFRMIGZvciBrbm93biByZWNvcmQgdHlwZXMuICAqLworKyAgICAg IGlmICgocnIucnR5cGUgPT0gVF9DTkFNRSB8fCByci5ydHlwZSA9PSBxdHlwZSkKKysJICAmJiB0 dGxwICE9IE5VTEwgJiYgKnR0bHAgPiByci50dGwpCisrCSp0dGxwID0gcnIudHRsOworIAorLSAg ICAgIGlmICh0eXBlID09IFRfQ05BTUUpCisrICAgICAgaWYgKHJyLnJ0eXBlID09IFRfQ05BTUUp CisgCXsKKy0JICBjaGFyIHRidWZbTUFYRE5BTUVdOworLQorLQkgIC8qIEEgQ05BTUUgY291bGQg YWxzbyBoYXZlIGEgVFRMIGVudHJ5LiAgKi8KKy0JICBpZiAodHRscCAhPSBOVUxMICYmIHR0bCA8 ICp0dGxwKQorLQkgICAgICAqdHRscCA9IHR0bDsKKy0KKy0JICBuID0gX19saWJjX2RuX2V4cGFu ZCAoYW5zd2VyLT5idWYsIGVuZF9vZl9tZXNzYWdlLCBjcCwKKy0JCQkJdGJ1Ziwgc2l6ZW9mIHRi dWYpOworLQkgIGlmIChfX2dsaWJjX3VubGlrZWx5IChuIDwgMCkpCistCSAgICB7CistCSAgICAg ICsraGFkX2Vycm9yOworLQkgICAgICBjb250aW51ZTsKKy0JICAgIH0KKy0JICBjcCArPSBuOwor LQorLQkgIGlmICgqZmlyc3RwICYmIF9fbGliY19yZXNfaG5vayAodGJ1ZikpCisrCSAgLyogTkI6 IE5vIGNoZWNrIGZvciBvd25lciBuYW1lIG1hdGNoLCBiYXNlZCBvbiBoaXN0b3JpYworKwkgICAg IHByZWNlZGVudC4gIFJlY29yZCB0aGUgQ05BTUUgdGFyZ2V0IGFzIHRoZSBuZXcgZXhwZWN0ZWQK KysJICAgICBuYW1lLiAgKi8KKysJICBpbnQgbiA9IF9fbnNfbmFtZV91bnBhY2sgKGMuYmVnaW4s IGMuZW5kLCByci5yZGF0YSwKKysJCQkJICAgIG5hbWVfYnVmZmVyLCBzaXplb2YgKG5hbWVfYnVm ZmVyKSk7CisrCSAgaWYgKG4gPCAwKQorIAkgICAgeworLQkgICAgICAvKiBSZWNsYWltIGJ1ZmZl ciBzcGFjZS4gICovCistCSAgICAgIGlmIChoX25hbWUgKyBoX25hbWVsZW4gPT0gYnVmZmVyKQor LQkJeworLQkJICBidWZmZXIgPSBoX25hbWU7CistCQkgIGJ1ZmxlbiArPSBoX25hbWVsZW47Cist CQl9CistCistCSAgICAgIG4gPSBzdHJsZW4gKHRidWYpICsgMTsKKy0JICAgICAgaWYgKF9fZ2xp YmNfdW5saWtlbHkgKG4gPiBidWZsZW4pKQorLQkJZ290byB0b29fc21hbGw7CistCSAgICAgIGlm IChfX2dsaWJjX3VubGlrZWx5IChuID49IE1BWEhPU1ROQU1FTEVOKSkKKy0JCXsKKy0JCSAgKyto YWRfZXJyb3I7CistCQkgIGNvbnRpbnVlOworLQkJfQorLQorLQkgICAgICBjYW5vbiA9IGJ1ZmZl cjsKKy0JICAgICAgYnVmZmVyID0gX19tZW1wY3B5IChidWZmZXIsIHRidWYsIG4pOworLQkgICAg ICBidWZsZW4gLT0gbjsKKy0JICAgICAgaF9uYW1lbGVuID0gMDsKKysJICAgICAgKmhfZXJybm9w ID0gTk9fUkVDT1ZFUlk7CisrCSAgICAgIHJldHVybiBOU1NfU1RBVFVTX1VOQVZBSUw7CisgCSAg ICB9CistCSAgY29udGludWU7CisrCSAgZXhwZWN0ZWRfbmFtZSA9IG5hbWVfYnVmZmVyOworKwkg IGlmIChzdG9yZV9jYW5vbiAmJiBfX3Jlc19iaW5hcnlfaG5vayAobmFtZV9idWZmZXIpKQorKwkg ICAgLyogVGhpcyBuYW1lIGNhbiBiZSB1c2VkIGFzIGEgY2Fub25pY2FsIG5hbWUuICBEbyBub3QK KysJICAgICAgIHRyYW5zbGF0ZSB0byB0ZXh0IGZvcm0gaGVyZSB0byBjb25zZXJ2ZSBidWZmZXIg c3BhY2UuCisrCSAgICAgICBQb2ludCB0byB0aGUgY29tcHJlc3NlZCBuYW1lIGJlY2F1c2UgbmFt ZV9idWZmZXIgY2FuIGJlCisrCSAgICAgICBvdmVyd3JpdHRlbiB3aXRoIGFuIHVudXNhYmxlIG5h bWUgbGF0ZXIuICAqLworKwkgICAgY29tcHJlc3NlZF9hbGlhc19uYW1lID0gcnIucmRhdGE7Cisg CX0KKy0KKy0gICAgICAvKiBTdG9wIHBhcnNpbmcgaWYgd2UgZW5jb3VudGVyIGEgcmVjb3JkIHdp dGggaW5jb3JyZWN0IFJEQVRBCistCSBsZW5ndGguICAqLworLSAgICAgIGlmICh0eXBlID09IFRf QSB8fCB0eXBlID09IFRfQUFBQSkKKysgICAgICBlbHNlIGlmIChyci5ydHlwZSA9PSBxdHlwZQor KwkgICAgICAgJiYgX19uc19zYW1lYmluYXJ5bmFtZSAocnIucm5hbWUsIGV4cGVjdGVkX25hbWUp CisrCSAgICAgICAmJiByci5yZGxlbmd0aCA9PSBycnR5cGVfdG9fcmRhdGFfbGVuZ3RoIChxdHlw ZSkpCisgCXsKKy0JICBpZiAobiAhPSBycnR5cGVfdG9fcmRhdGFfbGVuZ3RoICh0eXBlKSkKKysJ ICBzdHJ1Y3QgZ2FpaF9hZGRydHVwbGUgKm50dXAKKysJICAgID0gYWxsb2NfYnVmZmVyX2FsbG9j IChhYnVmLCBzdHJ1Y3QgZ2FpaF9hZGRydHVwbGUpOworKwkgIC8qIERlbGF5IGVycm9yIHJlcG9y dGluZyB0byB0aGUgY2FsbGVycyAodGhleSBpbXBsZW1lbnQgdGhlCisrCSAgICAgRVJBTkdFIGJ1 ZmZlciByZXNpemluZyBoYW5kc2hha2UpLiAgKi8KKysJICBpZiAobnR1cCAhPSBOVUxMKQorIAkg ICAgeworLQkgICAgICArK2hhZF9lcnJvcjsKKy0JICAgICAgY29udGludWU7CisrCSAgICAgIG50 dXAtPm5leHQgPSBOVUxMOworKwkgICAgICBpZiAoc3RvcmVfY2Fub24gJiYgY29tcHJlc3NlZF9h bGlhc19uYW1lICE9IE5VTEwpCisrCQl7CisrCQkgIC8qIFRoaXMgYXNzdW1lcyB0aGF0IGFsbCB0 aGUgQ05BTUUgcmVjb3JkcyBjb21lCisrCQkgICAgIGZpcnN0LiAgVXNlIE1BWEhPU1ROQU1FTEVO IGluc3RlYWQgb2YKKysJCSAgICAgTlNfTUFYQ0ROQU1FIGZvciBhZGRpdGlvbmFsIGxlbmd0aCBj aGVja2luZy4KKysJCSAgICAgSG93ZXZlciwgdGhlc2UgY2hlY2tzIGFyZSBub3QgZXhwZWN0ZWQg dG8gZmFpbAorKwkJICAgICBiZWNhdXNlIGFsbCBzaXplIE5TX01BWENETkFNRSBuYW1lcyBzaG91 bGQgaW50bworKwkJICAgICB0aGUgaG5hbWUgYnVmZmVyIGJlY2F1c2Ugbm8gZXNjYXBpbmcgaXMK KysJCSAgICAgbmVlZGVkLiAgKi8KKysJCSAgY2hhciB1bnNpZ25lZCBuYnVmW05TX01BWENETkFN RV07CisrCQkgIGNoYXIgaG5hbWVbTUFYSE9TVE5BTUVMRU4gKyAxXTsKKysJCSAgaWYgKF9fbnNf bmFtZV91bnBhY2sgKGMuYmVnaW4sIGMuZW5kLAorKwkJCQkJY29tcHJlc3NlZF9hbGlhc19uYW1l LAorKwkJCQkJbmJ1Ziwgc2l6ZW9mIChuYnVmKSkgPj0gMAorKwkJICAgICAgJiYgX19uc19uYW1l X250b3AgKG5idWYsIGhuYW1lLCBzaXplb2YgKGhuYW1lKSkgPj0gMCkKKysJCSAgICAvKiBTcGFj ZSBjaGVja2luZyBpcyBwZXJmb3JtZWQgYnkgdGhlIGNhbGxlcnMuICAqLworKwkJICAgIG50dXAt Pm5hbWUgPSBhbGxvY19idWZmZXJfY29weV9zdHJpbmcgKGFidWYsIGhuYW1lKTsKKysJCSAgc3Rv cmVfY2Fub24gPSBmYWxzZTsKKysJCX0KKysJICAgICAgZWxzZQorKwkJbnR1cC0+bmFtZSA9IE5V TEw7CisrCSAgICAgIGlmIChyci5yZGxlbmd0aCA9PSA0KQorKwkJbnR1cC0+ZmFtaWx5ID0gQUZf SU5FVDsKKysJICAgICAgZWxzZQorKwkJbnR1cC0+ZmFtaWx5ID0gQUZfSU5FVDY7CisrCSAgICAg IG1lbWNweSAobnR1cC0+YWRkciwgcnIucmRhdGEsIHJyLnJkbGVuZ3RoKTsKKysJICAgICAgbnR1 cC0+c2NvcGVpZCA9IDA7CisrCisrCSAgICAgIC8qIExpbmsgaW4gdGhlIG5ldyB0dXBsZSwgYW5k IHVwZGF0ZSB0aGUgdGFpbCBwb2ludGVyIHRvCisrCQkgcG9pbnQgdG8gaXRzIG5leHQgZmllbGQu ICAqLworKwkgICAgICAqKnRhaWxwID0gbnR1cDsKKysJICAgICAgKnRhaWxwID0gJm50dXAtPm5l eHQ7CisrCisrCSAgICAgIGhhdmVhbnN3ZXIgPSB0cnVlOworIAkgICAgfQorIAl9CistICAgICAg ZWxzZQorLQl7CistCSAgLyogU2tpcCB1bmtub3duIHJlY29yZHMuICAqLworLQkgIGNwICs9IG47 CistCSAgY29udGludWU7CistCX0KKy0KKy0gICAgICBhc3NlcnQgKHR5cGUgPT0gVF9BIHx8IHR5 cGUgPT0gVF9BQUFBKTsKKy0gICAgICBpZiAoKnBhdCA9PSBOVUxMKQorLQl7CistCSAgdWludHB0 cl90IHBhZCA9ICgtKHVpbnRwdHJfdCkgYnVmZmVyCistCQkJICAgJSBfX2FsaWdub2ZfXyAoc3Ry dWN0IGdhaWhfYWRkcnR1cGxlKSk7CistCSAgYnVmZmVyICs9IHBhZDsKKy0JICBidWZsZW4gPSBi dWZsZW4gPiBwYWQgPyBidWZsZW4gLSBwYWQgOiAwOworLQorLQkgIGlmIChfX2dsaWJjX3VubGlr ZWx5IChidWZsZW4gPCBzaXplb2YgKHN0cnVjdCBnYWloX2FkZHJ0dXBsZSkpKQorLQkgICAgZ290 byB0b29fc21hbGw7CistCistCSAgKnBhdCA9IChzdHJ1Y3QgZ2FpaF9hZGRydHVwbGUgKikgYnVm ZmVyOworLQkgIGJ1ZmZlciArPSBzaXplb2YgKHN0cnVjdCBnYWloX2FkZHJ0dXBsZSk7CistCSAg YnVmbGVuIC09IHNpemVvZiAoc3RydWN0IGdhaWhfYWRkcnR1cGxlKTsKKy0JfQorLQorLSAgICAg ICgqcGF0KS0+bmFtZSA9IE5VTEw7CistICAgICAgKCpwYXQpLT5uZXh0ID0gTlVMTDsKKy0KKy0g ICAgICBpZiAoKmZpcnN0cCkKKy0JeworLQkgIC8qIFdlIGNvbXBvc2UgYSBzaW5nbGUgaG9zdGVu dCBvdXQgb2YgdGhlIGVudGlyZSBjaGFpbiBvZgorLQkgICAgIGVudHJpZXMsIHNvIHRoZSBUVEwg b2YgdGhlIGhvc3RlbnQgaXMgZXNzZW50aWFsbHkgdGhlIGxvd2VzdAorLQkgICAgIFRUTCBpbiB0 aGUgY2hhaW4uICAqLworLQkgIGlmICh0dGxwICE9IE5VTEwgJiYgdHRsIDwgKnR0bHApCistCSAg ICAqdHRscCA9IHR0bDsKKy0KKy0JICAoKnBhdCktPm5hbWUgPSBjYW5vbiA/OiBoX25hbWU7Cist CistCSAgKmZpcnN0cCA9IDA7CistCX0KKy0KKy0gICAgICAoKnBhdCktPmZhbWlseSA9IHR5cGUg PT0gVF9BID8gQUZfSU5FVCA6IEFGX0lORVQ2OworLSAgICAgIG1lbWNweSAoKCpwYXQpLT5hZGRy LCBjcCwgbik7CistICAgICAgY3AgKz0gbjsKKy0gICAgICAoKnBhdCktPnNjb3BlaWQgPSAwOwor LQorLSAgICAgIHBhdCA9ICYoKCpwYXQpLT5uZXh0KTsKKy0KKy0gICAgICBoYXZlYW5zd2VyID0g MTsKKyAgICAgfQorIAorICAgaWYgKGhhdmVhbnN3ZXIpCisgICAgIHsKKy0gICAgICAqcGF0cCA9 IHBhdDsKKy0gICAgICAqYnVmZmVycCA9IGJ1ZmZlcjsKKy0gICAgICAqYnVmbGVucCA9IGJ1Zmxl bjsKKy0KKyAgICAgICAqaF9lcnJub3AgPSBORVREQl9TVUNDRVNTOworICAgICAgIHJldHVybiBO U1NfU1RBVFVTX1NVQ0NFU1M7CisgICAgIH0KKy0KKy0gIC8qIFNwZWNpYWwgY2FzZSBoZXJlOiBp ZiB0aGUgcmVzb2x2ZXIgc2VudCBhIHJlc3VsdCBidXQgaXQgb25seQorLSAgICAgY29udGFpbnMg YSBDTkFNRSB3aGlsZSB3ZSBhcmUgbG9va2luZyBmb3IgYSBUX0Egb3IgVF9BQUFBIHJlY29yZCwK Ky0gICAgIHdlIGZhaWwgd2l0aCBOT1RGT1VORCBpbnN0ZWFkIG9mIFRSWUFHQUlOLiAgKi8KKy0g IGlmIChjYW5vbiAhPSBOVUxMKQorKyAgZWxzZQorICAgICB7CisrICAgICAgLyogU3BlY2lhbCBj YXNlIGhlcmU6IGlmIHRoZSByZXNvbHZlciBzZW50IGEgcmVzdWx0IGJ1dCBpdCBvbmx5CisrCSBj b250YWlucyBhIENOQU1FIHdoaWxlIHdlIGFyZSBsb29raW5nIGZvciBhIFRfQSBvciBUX0FBQUEK KysJIHJlY29yZCwgd2UgZmFpbCB3aXRoIE5PVEZPVU5ELiAgKi8KKyAgICAgICAqaF9lcnJub3Ag PSBIT1NUX05PVF9GT1VORDsKKyAgICAgICByZXR1cm4gTlNTX1NUQVRVU19OT1RGT1VORDsKKyAg ICAgfQorLQorLSAgKmhfZXJybm9wID0gTkVUREJfSU5URVJOQUw7CistICByZXR1cm4gTlNTX1NU QVRVU19UUllBR0FJTjsKKyB9CisgCisgCisgc3RhdGljIGVudW0gbnNzX3N0YXR1cworLWdhaWhf Z2V0YW5zd2VyIChjb25zdCBxdWVyeWJ1ZiAqYW5zd2VyMSwgaW50IGFuc2xlbjEsIGNvbnN0IHF1 ZXJ5YnVmICphbnN3ZXIyLAorLQkJaW50IGFuc2xlbjIsIGNvbnN0IGNoYXIgKnFuYW1lLAorLQkJ c3RydWN0IGdhaWhfYWRkcnR1cGxlICoqcGF0LCBjaGFyICpidWZmZXIsIHNpemVfdCBidWZsZW4s CisrZ2FpaF9nZXRhbnN3ZXIgKHVuc2lnbmVkIGNoYXIgKnBhY2tldDEsIHNpemVfdCBwYWNrZXQx bGVuLAorKwkJdW5zaWduZWQgY2hhciAqcGFja2V0Miwgc2l6ZV90IHBhY2tldDJsZW4sCisrCQlz dHJ1Y3QgYWxsb2NfYnVmZmVyICphYnVmLCBzdHJ1Y3QgZ2FpaF9hZGRydHVwbGUgKipwYXQsCisg CQlpbnQgKmVycm5vcCwgaW50ICpoX2Vycm5vcCwgaW50MzJfdCAqdHRscCkKKyB7CistICBpbnQg Zmlyc3QgPSAxOworLQorICAgZW51bSBuc3Nfc3RhdHVzIHN0YXR1cyA9IE5TU19TVEFUVVNfTk9U Rk9VTkQ7CisgCisgICAvKiBDb21iaW5pbmcgdGhlIE5TUyBzdGF0dXMgb2YgdHdvIGRpc3RpbmN0 IHF1ZXJpZXMgcmVxdWlyZXMgc29tZQorQEAgLTExNTYsNyArMTA0NSwxMCBAQCBnYWloX2dldGFu c3dlciAoY29uc3QgcXVlcnlidWYgKmFuc3dlcjEsIGludCBhbnNsZW4xLCBjb25zdCBxdWVyeWJ1 ZiAqYW5zd2VyMiwKKyAgICAgIGJldHdlZW4gVFJZQUdBSU4gKHJlY292ZXJhYmxlKSBhbmQgVFJZ QUdBSU4nIChub3QtcmVjb3ZlcmFibGUpLgorICAgICAgQSByZWNvdmVyYWJsZSBUUllBR0FJTiBp cyBhbG1vc3QgYWx3YXlzIGR1ZSB0byBidWZmZXIgc2l6ZSBpc3N1ZXMKKyAgICAgIGFuZCByZXR1 cm5zIEVSQU5HRSBpbiBlcnJubyBhbmQgdGhlIGNhbGxlciBpcyBleHBlY3RlZCB0byByZXRyeQor LSAgICAgd2l0aCBhIGxhcmdlciBidWZmZXIuCisrICAgICB3aXRoIGEgbGFyZ2VyIGJ1ZmZlci4g IChUaGUgY2FsbGVyLCBfbnNzX2Ruc19nZXRob3N0YnluYW1lNF9yLAorKyAgICAgaWdub3JlcyB0 aGUgcmV0dXJuIHN0YXR1cyBpZiBpdCBkZXRlY3RzIHRoYXQgdGhlIHJlc3VsdCBidWZmZXIKKysg ICAgIGhhcyBiZWVuIGV4aGF1c3RlZCBhbmQgZ2VuZXJhdGVzIGEgVFJZQUdBSU4gZmFpbHVyZSB3 aXRoIGFuCisrICAgICBFUkFOR0UgY29kZS4pCisgCisgICAgICBMYXN0bHksIHlvdSBtYXkgYmUg dGVtcHRlZCB0byBtYWtlIHNpZ25pZmljYW50IGNoYW5nZXMgdG8gdGhlCisgICAgICBjb25kaXRp b25zIGluIHRoaXMgY29kZSB0byBicmluZyBhYm91dCBzeW1tZXRyeSBiZXR3ZWVuIHJlc3BvbnNl cy4KK0BAIC0xMjM2LDM2ICsxMTI4LDMwIEBAIGdhaWhfZ2V0YW5zd2VyIChjb25zdCBxdWVyeWJ1 ZiAqYW5zd2VyMSwgaW50IGFuc2xlbjEsIGNvbnN0IHF1ZXJ5YnVmICphbnN3ZXIyLAorIAkgaXMg YSByZWNvdmVyYWJsZSBlcnJvciB3ZSBub3cgcmV0dXJuIFRSWUFHSU4gZXZlbiBpZiB0aGUgZmly c3QKKyAJIHJlc3BvbnNlIHdhcyBTVUNDRVNTLiAgKi8KKyAKKy0gIGlmIChhbnNsZW4xID4gMCkK Ky0gICAgc3RhdHVzID0gZ2FpaF9nZXRhbnN3ZXJfc2xpY2UoYW5zd2VyMSwgYW5zbGVuMSwgcW5h bWUsCistCQkJCSAgJnBhdCwgJmJ1ZmZlciwgJmJ1ZmxlbiwKKy0JCQkJICBlcnJub3AsIGhfZXJy bm9wLCB0dGxwLAorLQkJCQkgICZmaXJzdCk7CistCistICBpZiAoKHN0YXR1cyA9PSBOU1NfU1RB VFVTX1NVQ0NFU1MgfHwgc3RhdHVzID09IE5TU19TVEFUVVNfTk9URk9VTkQKKy0gICAgICAgfHwg KHN0YXR1cyA9PSBOU1NfU1RBVFVTX1RSWUFHQUlOCistCSAgIC8qIFdlIHdhbnQgdG8gbG9vayBh dCB0aGUgc2Vjb25kIGFuc3dlciBpbiBjYXNlIG9mIGFuCistCSAgICAgIE5TU19TVEFUVVNfVFJZ QUdBSU4gb25seSBpZiB0aGUgZXJyb3IgaXMgbm9uLXJlY292ZXJhYmxlLCBpLmUuCistCSAgICAg ICpoX2Vycm5vcCBpcyBOT19SRUNPVkVSWS4gSWYgbm90LCBhbmQgaWYgdGhlIGZhaWx1cmUgd2Fz IGR1ZSB0bworLQkgICAgICBhbiBpbnN1ZmZpY2llbnQgYnVmZmVyIChFUkFOR0UpLCB0aGVuIHdl IG5lZWQgdG8gZHJvcCB0aGUgcmVzdWx0cworLQkgICAgICBhbmQgcGFzcyBvbiB0aGUgTlNTX1NU QVRVU19UUllBR0FJTiB0byB0aGUgY2FsbGVyIHNvIHRoYXQgaXQgY2FuCistCSAgICAgIHJlcGVh dCB0aGUgcXVlcnkgd2l0aCBhIGxhcmdlciBidWZmZXIuICAqLworLQkgICAmJiAoKmVycm5vcCAh PSBFUkFOR0UgfHwgKmhfZXJybm9wID09IE5PX1JFQ09WRVJZKSkpCistICAgICAgJiYgYW5zd2Vy MiAhPSBOVUxMICYmIGFuc2xlbjIgPiAwKQorKyAgaWYgKHBhY2tldDFsZW4gPiAwKQorICAgICB7 CistICAgICAgZW51bSBuc3Nfc3RhdHVzIHN0YXR1czIgPSBnYWloX2dldGFuc3dlcl9zbGljZShh bnN3ZXIyLCBhbnNsZW4yLCBxbmFtZSwKKy0JCQkJCQkgICAgICZwYXQsICZidWZmZXIsICZidWZs ZW4sCistCQkJCQkJICAgICBlcnJub3AsIGhfZXJybm9wLCB0dGxwLAorLQkJCQkJCSAgICAgJmZp cnN0KTsKKysgICAgICBzdGF0dXMgPSBnYWloX2dldGFuc3dlcl9zbGljZSAocGFja2V0MSwgcGFj a2V0MWxlbiwKKysJCQkJICAgICBhYnVmLCAmcGF0LCBlcnJub3AsIGhfZXJybm9wLCB0dGxwLCB0 cnVlKTsKKysgICAgICBpZiAoYWxsb2NfYnVmZmVyX2hhc19mYWlsZWQgKGFidWYpKQorKwkvKiBE byBub3QgdHJ5IHBhcnNpbmcgdGhlIHNlY29uZCBwYWNrZXQgaWYgYSBsYXJnZXIgcmVzdWx0Cisr CSAgIGJ1ZmZlciBpcyBuZWVkZWQuICBUaGUgY2FsbGVyIGltcGxlbWVudHMgdGhlIHJlc2l6aW5n CisrCSAgIHByb3RvY29sIGJlY2F1c2UgKmFidWYgaGFzIGJlZW4gZXhoYXVzdGVkLiAgKi8KKysJ cmV0dXJuIE5TU19TVEFUVVNfVFJZQUdBSU47IC8qIElnbm9yZWQgYnkgdGhlIGNhbGxlci4gICov CisrICAgIH0KKysKKysgIGlmICgoc3RhdHVzID09IE5TU19TVEFUVVNfU1VDQ0VTUyB8fCBzdGF0 dXMgPT0gTlNTX1NUQVRVU19OT1RGT1VORCkKKysgICAgICAmJiBwYWNrZXQyICE9IE5VTEwgJiYg cGFja2V0MmxlbiA+IDApCisrICAgIHsKKysgICAgICBlbnVtIG5zc19zdGF0dXMgc3RhdHVzMgor Kwk9IGdhaWhfZ2V0YW5zd2VyX3NsaWNlIChwYWNrZXQyLCBwYWNrZXQybGVuLAorKwkJCQlhYnVm LCAmcGF0LCBlcnJub3AsIGhfZXJybm9wLCB0dGxwLAorKwkJCQkvKiBTdWNjZXNzIG1lYW5zIHRo YXQgZGF0YSB3aXRoIGEKKysJCQkJICAgY2Fub25pY2FsIG5hbWUgaGFzIGFscmVhZHkgYmVlbgor KwkJCQkgICBzdG9yZWQuICBEbyBub3Qgc3RvcmUgdGhlIG5hbWUgYWdhaW4uICAqLworKwkJCQlz dGF0dXMgIT0gTlNTX1NUQVRVU19TVUNDRVNTKTsKKyAgICAgICAvKiBVc2UgdGhlIHNlY29uZCBy ZXNwb25zZSBzdGF0dXMgaW4gc29tZSBjYXNlcy4gICovCisgICAgICAgaWYgKHN0YXR1cyAhPSBO U1NfU1RBVFVTX1NVQ0NFU1MgJiYgc3RhdHVzMiAhPSBOU1NfU1RBVFVTX05PVEZPVU5EKQorIAlz dGF0dXMgPSBzdGF0dXMyOworLSAgICAgIC8qIERvIG5vdCByZXR1cm4gYSB0cnVuY2F0ZWQgc2Vj b25kIHJlc3BvbnNlICh1bmxlc3MgaXQgd2FzCistCSB1bmF2b2lkYWJsZSBlLmcuIHVucmVjb3Zl cmFibGUgVFJZQUdBSU4pLiAgKi8KKy0gICAgICBpZiAoc3RhdHVzID09IE5TU19TVEFUVVNfU1VD Q0VTUworLQkgICYmIChzdGF0dXMyID09IE5TU19TVEFUVVNfVFJZQUdBSU4KKy0JICAgICAgJiYg KmVycm5vcCA9PSBFUkFOR0UgJiYgKmhfZXJybm9wICE9IE5PX1JFQ09WRVJZKSkKKy0Jc3RhdHVz ID0gTlNTX1NUQVRVU19UUllBR0FJTjsKKyAgICAgfQorIAorICAgcmV0dXJuIHN0YXR1czsKK0BA IC0xMjczLDE4ICsxMTU5LDEzIEBAIGdhaWhfZ2V0YW5zd2VyIChjb25zdCBxdWVyeWJ1ZiAqYW5z d2VyMSwgaW50IGFuc2xlbjEsIGNvbnN0IHF1ZXJ5YnVmICphbnN3ZXIyLAorIAorIC8qIFZhcmlh bnQgb2YgZ2FpaF9nZXRhbnN3ZXIgd2l0aG91dCBhIHNlY29uZCAoQUFBQSkgcmVzcG9uc2UuICAq LworIHN0YXRpYyBlbnVtIG5zc19zdGF0dXMKKy1nYWloX2dldGFuc3dlcl9ub2FhYWEgKGNvbnN0 IHF1ZXJ5YnVmICphbnN3ZXIxLCBpbnQgYW5zbGVuMSwgY29uc3QgY2hhciAqcW5hbWUsCistCQkg ICAgICAgc3RydWN0IGdhaWhfYWRkcnR1cGxlICoqcGF0LAorLQkJICAgICAgIGNoYXIgKmJ1ZmZl ciwgc2l6ZV90IGJ1ZmxlbiwKKytnYWloX2dldGFuc3dlcl9ub2FhYWEgKHVuc2lnbmVkIGNoYXIg KnBhY2tldCwgc2l6ZV90IHBhY2tldGxlbiwKKysJCSAgICAgICBzdHJ1Y3QgYWxsb2NfYnVmZmVy ICphYnVmLCBzdHJ1Y3QgZ2FpaF9hZGRydHVwbGUgKipwYXQsCisgCQkgICAgICAgaW50ICplcnJu b3AsIGludCAqaF9lcnJub3AsIGludDMyX3QgKnR0bHApCisgeworLSAgaW50IGZpcnN0ID0gMTsK Ky0KKyAgIGVudW0gbnNzX3N0YXR1cyBzdGF0dXMgPSBOU1NfU1RBVFVTX05PVEZPVU5EOworLSAg aWYgKGFuc2xlbjEgPiAwKQorLSAgICBzdGF0dXMgPSBnYWloX2dldGFuc3dlcl9zbGljZSAoYW5z d2VyMSwgYW5zbGVuMSwgcW5hbWUsCistCQkJCSAgICZwYXQsICZidWZmZXIsICZidWZsZW4sCist CQkJCSAgIGVycm5vcCwgaF9lcnJub3AsIHR0bHAsCistCQkJCSAgICZmaXJzdCk7CisrICBpZiAo cGFja2V0bGVuID4gMCkKKysgICAgc3RhdHVzID0gZ2FpaF9nZXRhbnN3ZXJfc2xpY2UgKHBhY2tl dCwgcGFja2V0bGVuLAorKwkJCQkgICBhYnVmLCAmcGF0LCBlcnJub3AsIGhfZXJybm9wLCB0dGxw LCB0cnVlKTsKKyAgIHJldHVybiBzdGF0dXM7CisgfQorLS0gCisyLjM4LjEKKworCitGcm9tIGE3 ZmE2MDRmMzA1MGExMDI0ZGM4ZWMyOGZmMjhiYWQ4MTFmNjE1MWYgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCitGcm9tOiBGbG9yaWFuIFdlaW1lciA8ZndlaW1lckByZWRoYXQuY29tPgorRGF0ZTog VHVlLCAzMCBBdWcgMjAyMiAxMzozMDowMyArMDIwMAorU3ViamVjdDogW1BBVENIIDM2LzcyXSBy ZXNvbHY6IEZpeCBidWlsZGluZyB0c3QtcmVzb2x2LWludmFsaWQtY25hbWUgZm9yCisgZWFybGll ciBDIHN0YW5kYXJkcworTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFp bjsgY2hhcnNldD1VVEYtOAorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitUaGlz IGZpeGVzIHRoaXMgY29tcGlsZXIgZXJyb3I6CisKK3RzdC1yZXNvbHYtaW52YWxpZC1jbmFtZS5j OiBJbiBmdW5jdGlvbiDigJh0ZXN0X21vZGVfdG9fc3RyaW5n4oCZOgordHN0LXJlc29sdi1pbnZh bGlkLWNuYW1lLmM6MTY0OjEwOiBlcnJvcjogbGFiZWwgYXQgZW5kIG9mIGNvbXBvdW5kIHN0YXRl bWVudAorICAgICBjYXNlIHRlc3RfbW9kZV9udW06CisgICAgICAgICAgXn5+fn5+fn5+fn5+fgor CitGaXhlcyBjb21taXQgOWNhZjc4MjI3NmVjZWE0YmM4NmZjOTRmYmI1Mjc3OTczNmYzMTA2ZAor KCJyZXNvbHY6IEFkZCBuZXcgdHN0LXJlc29sdi1pbnZhbGlkLWNuYW1lIikuCisKKyhjaGVycnkg cGlja2VkIGZyb20gY29tbWl0IGQwOWFhNGExNzIyOWJjYWEyZWM3NjQyMDA2YjEyNjEyNDk4NTgy ZTcpCistLS0KKyByZXNvbHYvdHN0LXJlc29sdi1pbnZhbGlkLWNuYW1lLmMgfCAyICstCisgMSBm aWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQg YS9yZXNvbHYvdHN0LXJlc29sdi1pbnZhbGlkLWNuYW1lLmMgYi9yZXNvbHYvdHN0LXJlc29sdi1p bnZhbGlkLWNuYW1lLmMKK2luZGV4IGFlMmQ0NDE5YjEuLjYzZGFjOTBlMDIgMTAwNjQ0CistLS0g YS9yZXNvbHYvdHN0LXJlc29sdi1pbnZhbGlkLWNuYW1lLmMKKysrKyBiL3Jlc29sdi90c3QtcmVz b2x2LWludmFsaWQtY25hbWUuYworQEAgLTE2Miw3ICsxNjIsNyBAQCB0ZXN0X21vZGVfdG9fc3Ry aW5nIChlbnVtIHRlc3RfbW9kZSBtb2RlKQorICAgICBjYXNlIGdhaV9jYW5vbjoKKyAgICAgICBy ZXR1cm4gImdhaV9jYW5vbiI7CisgICAgIGNhc2UgdGVzdF9tb2RlX251bToKKy0gICAgICAvKiBS ZXBvcnQgZXJyb3IgYmVsb3cuICAqLworKyAgICAgIGJyZWFrOyAgICAgICAgICAgICAgICAgICAg LyogUmVwb3J0IGVycm9yIGJlbG93LiAgKi8KKyAgICAgfQorICAgRkFJTF9FWElUMSAoImludmFs aWQgdGVzdF9tb2RlOiAlZCIsIG1vZGUpOworIH0KKy0tIAorMi4zOC4xCisKKworRnJvbSA1ZDg4 NTYxN2NlYzU3MTNmZGRlNDIxNzczOThmZTk4YWNiNjZiN2EyIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQorRnJvbTogRmxvcmlhbiBXZWltZXIgPGZ3ZWltZXJAcmVkaGF0LmNvbT4KK0RhdGU6IFR1 ZSwgMTMgU2VwIDIwMjIgMTM6MjI6MjcgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAzNy83Ml0gTkVX UzogTm90ZSBidWcgMTIxNTQgYW5kIGJ1ZyAyOTMwNSBhcyBmaXhlZAorCistLS0KKyBORVdTIHwg MiArKworIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL05F V1MgYi9ORVdTCitpbmRleCA5MzYwNTk2ZmNjLi4wMzI4MWUzYWI0IDEwMDY0NAorLS0tIGEvTkVX UworKysrIGIvTkVXUworQEAgLTE2LDcgKzE2LDkgQEAgU2VjdXJpdHkgcmVsYXRlZCBjaGFuZ2Vz OgorIAorIFRoZSBmb2xsb3dpbmcgYnVncyBhcmUgcmVzb2x2ZWQgd2l0aCB0aGlzIHJlbGVhc2U6 CisgCisrICBbMTIxNTRdIERvIG5vdCBmYWlsIEROUyByZXNvbHV0aW9uIGZvciBDTkFNRXMgd2hp Y2ggYXJlIG5vdCBob3N0IG5hbWVzCisgICBbMjg4NDZdIENNU0dfTlhUSERSIG1heSB0cmlnZ2Vy IC1Xc3RyaWN0LW92ZXJmbG93IHdhcm5pbmcKKysgIFsyOTMwNV0gQ29uc2VydmUgTlNTIGJ1ZmZl ciBzcGFjZSBkdXJpbmcgRE5TIHBhY2tldCBwYXJzaW5nCisgICBbMjk0MTVdIG5zY2Q6IEZpeCBu ZXRsaW5rIGNhY2hlIGludmFsaWRhdGlvbiBpZiBlcG9sbCBpcyB1c2VkCisgICBbMjk0NDZdIF9k bG9wZW4gbm93IGlnbm9yZXMgZGxfY2FsbGVyIGFyZ3VtZW50IGluIHN0YXRpYyBtb2RlCisgICBb Mjk0ODVdIExpbnV4OiBUZXJtaW5hdGUgc3VicHJvY2VzcyBvbiBsYXRlIGZhaWx1cmUgaW4gdHN0 LXBpZGZkCistLSAKKzIuMzguMQorCisKK0Zyb20gZGY1MTMzNDgyOGYyYWYyMTQxMDVhYWQ4MjA0 MjE0MGVlM2E2ZGUwYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEZsb3JpYW4gV2Vp bWVyIDxmd2VpbWVyQHJlZGhhdC5jb20+CitEYXRlOiBUdWUsIDEzIFNlcCAyMDIyIDE5OjU3OjQz ICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggMzgvNzJdIGVsZjogUnVuIHRzdC1hdWRpdC10bHNkZXNj LCB0c3QtYXVkaXQtdGxzZGVzYy1kbG9wZW4KKyBldmVyeXdoZXJlCisKK1RoZSB0ZXN0IGlzIHZh bGlkIGZvciBhbGwgVExTIG1vZGVscywgYnV0IHdlIHdhbnQgdG8gbWFrZSBhIHJlYXNvbmFibGUK K2VmZm9ydCB0byB0ZXN0IHRoZSBHTlUyIG1vZGVsIHNwZWNpZmljYWxseS4gIEZvciBleGFtcGxl LCBhYXJjaDY0CitkZWZhdWx0cyB0byBHTlUyLCBidXQgZG9lcyBub3QgaGF2ZSAtbXRscy1kaWFs ZWN0PWdudTIsIGFuZCB0aGUgdGVzdAord2FzIG5vdCBydW4gdGhlcmUuCisKK1N1Z2dlc3RlZC1i eTogTWFydGluIENvdWZhbCA8bWNvdWZhbEByZWRoYXQuY29tPgorKGNoZXJyeSBwaWNrZWQgZnJv bSBjb21taXQgZGQyMzE1YTg2NmE0YWMyYjgzOGVhMWNiMTBjNWVhMWMzNWQ1MWEyZikKKworRml4 ZXMgZWFybHkgYmFja3BvcnQgY29tbWl0IDkyNGU0ZjNlYWE1MDJjZTgyZmNjZjg1MzdmMDIxYTc5 NmQxNTg3NzEKKygiZWxmOiBDYWxsIF9fbGliY19lYXJseV9pbml0IGZvciByZXVzZWQgbmFtZXNw YWNlcyAoYnVnIDI5NTI4KSIpOworaXQgaGFkIGEgd3JvbmcgY29uZmxpY3QgcmVzb2x1dGlvbi4K Ky0tLQorIGVsZi9NYWtlZmlsZSB8IDIyICsrKysrKy0tLS0tLS0tLS0tLS0tLS0KKyAxIGZpbGUg Y2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBh L2VsZi9NYWtlZmlsZSBiL2VsZi9NYWtlZmlsZQoraW5kZXggNDMzNTNhNGIwOC4uNzIxNzhkMzNm ZiAxMDA2NDQKKy0tLSBhL2VsZi9NYWtlZmlsZQorKysrIGIvZWxmL01ha2VmaWxlCitAQCAtMzc0 LDYgKzM3NCw4IEBAIHRlc3RzICs9IFwKKyAgIHRzdC1hbGlnbiBcCisgICB0c3QtYWxpZ24yIFwK KyAgIHRzdC1hbGlnbjMgXAorKyAgdHN0LWF1ZGl0LXRsc2Rlc2MgXAorKyAgdHN0LWF1ZGl0LXRs c2Rlc2MtZGxvcGVuIFwKKyAgIHRzdC1hdWRpdDEgXAorICAgdHN0LWF1ZGl0MiBcCisgICB0c3Qt YXVkaXQ4IFwKK0BAIC03NjYsNiArNzY4LDggQEAgbW9kdWxlcy1uYW1lcyArPSBcCisgICB0c3Qt YWxpZ25tb2QzIFwKKyAgIHRzdC1hcnJheTJkZXAgXAorICAgdHN0LWFycmF5NWRlcCBcCisrICB0 c3QtYXVkaXQtdGxzZGVzYy1tb2QxIFwKKysgIHRzdC1hdWRpdC10bHNkZXNjLW1vZDIgXAorICAg dHN0LWF1ZGl0MTFtb2QxIFwKKyAgIHRzdC1hdWRpdDExbW9kMiBcCisgICB0c3QtYXVkaXQxMm1v ZDEgXAorQEAgLTc5OSw2ICs4MDMsNyBAQCBtb2R1bGVzLW5hbWVzICs9IFwKKyAgIHRzdC1hdWRp dG1hbnltb2Q3IFwKKyAgIHRzdC1hdWRpdG1hbnltb2Q4IFwKKyAgIHRzdC1hdWRpdG1hbnltb2Q5 IFwKKysgIHRzdC1hdWRpdG1vZC10bHNkZXNjICBcCisgICB0c3QtYXVkaXRtb2QxIFwKKyAgIHRz dC1hdWRpdG1vZDlhIFwKKyAgIHRzdC1hdWRpdG1vZDliIFwKK0BAIC05OTMsMjMgKzk5OCw4IEBA IG1vZHVsZXMtbmFtZXMgKz0gdHN0LWdudTItdGxzMW1vZAorICQob2JqcGZ4KXRzdC1nbnUyLXRs czE6ICQob2JqcGZ4KXRzdC1nbnUyLXRsczFtb2Quc28KKyB0c3QtZ251Mi10bHMxbW9kLnNvLW5v LXotZGVmcyA9IHllcworIENGTEFHUy10c3QtZ251Mi10bHMxbW9kLmMgKz0gLW10bHMtZGlhbGVj dD1nbnUyCisrZW5kaWYgIyAkKGhhdmUtbXRscy1kaWFsZWN0LWdudTIpCisgCistdGVzdHMgKz0g dHN0LWF1ZGl0LXRsc2Rlc2MgdHN0LWF1ZGl0LXRsc2Rlc2MtZGxvcGVuCistbW9kdWxlcy1uYW1l cyArPSB0c3QtYXVkaXQtdGxzZGVzYy1tb2QxIHRzdC1hdWRpdC10bHNkZXNjLW1vZDIgdHN0LWF1 ZGl0bW9kLXRsc2Rlc2MKKy0kKG9ianBmeCl0c3QtYXVkaXQtdGxzZGVzYzogJChvYmpwZngpdHN0 LWF1ZGl0LXRsc2Rlc2MtbW9kMS5zbyBcCistCQkJICAgICQob2JqcGZ4KXRzdC1hdWRpdC10bHNk ZXNjLW1vZDIuc28gXAorLQkJCSAgICAkKHNoYXJlZC10aHJlYWQtbGlicmFyeSkKKy1DRkxBR1Mt dHN0LWF1ZGl0LXRsc2Rlc2MtbW9kMS5jICs9IC1tdGxzLWRpYWxlY3Q9Z251MgorLUNGTEFHUy10 c3QtYXVkaXQtdGxzZGVzYy1tb2QyLmMgKz0gLW10bHMtZGlhbGVjdD1nbnUyCistJChvYmpwZngp dHN0LWF1ZGl0LXRsc2Rlc2MtZGxvcGVuOiAkKHNoYXJlZC10aHJlYWQtbGlicmFyeSkKKy0kKG9i anBmeCl0c3QtYXVkaXQtdGxzZGVzYy1kbG9wZW4ub3V0OiAkKG9ianBmeCl0c3QtYXVkaXQtdGxz ZGVzYy1tb2QxLnNvIFwKKy0JCQkJICAgICAgICQob2JqcGZ4KXRzdC1hdWRpdC10bHNkZXNjLW1v ZDIuc28KKy0kKG9ianBmeCl0c3QtYXVkaXQtdGxzZGVzYy1tb2QxLnNvOiAkKG9ianBmeCl0c3Qt YXVkaXQtdGxzZGVzYy1tb2QyLnNvCistJChvYmpwZngpdHN0LWF1ZGl0LXRsc2Rlc2Mub3V0OiAk KG9ianBmeCl0c3QtYXVkaXRtb2QtdGxzZGVzYy5zbworLXRzdC1hdWRpdC10bHNkZXNjLUVOViA9 IExEX0FVRElUPSQob2JqcGZ4KXRzdC1hdWRpdG1vZC10bHNkZXNjLnNvCistJChvYmpwZngpdHN0 LWF1ZGl0LXRsc2Rlc2MtZGxvcGVuLm91dDogJChvYmpwZngpdHN0LWF1ZGl0bW9kLXRsc2Rlc2Mu c28KKy10c3QtYXVkaXQtdGxzZGVzYy1kbG9wZW4tRU5WID0gTERfQVVESVQ9JChvYmpwZngpdHN0 LWF1ZGl0bW9kLXRsc2Rlc2Muc28KKy1lbmRpZgorIGlmZXEgKHllcywkKGhhdmUtcHJvdGVjdGVk LWRhdGEpKQorIG1vZHVsZXMtbmFtZXMgKz0gdHN0LXByb3RlY3RlZDFtb2RhIHRzdC1wcm90ZWN0 ZWQxbW9kYgorIHRlc3RzICs9IHRzdC1wcm90ZWN0ZWQxYSB0c3QtcHJvdGVjdGVkMWIKKy0tIAor Mi4zOC4xCisKKworRnJvbSA0Yjk1YjZlOGJiYjVhMmI2ODU2ZjcwN2JmM2JjMzMwOGViZWY1OTVh IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogSmF2aWVyIFBlbGxvIDxkZXZlbEBvdGhl by5ldT4KK0RhdGU6IE1vbiwgNSBTZXAgMjAyMiAyMDowOTowMSArMDIwMAorU3ViamVjdDogW1BB VENIIDM5LzcyXSBlbGY6IEZpeCBod2NhcHMgc3RyaW5nIHNpemUgb3ZlcmVzdGltYXRpb24KKwor Q29tbWl0IGRhZDkwZDUyODI1OWI2NjkzNDI3NTdjMzdkZWRlZmE4NTc3ZTI2MzYgYWRkZWQgZ2xp YmMtaHdjYXBzCitzdXBwb3J0IGZvciBMRF9MSUJSQVJZX1BBVEggYW5kLCBmb3IgdGhpcywgaXQg YWRqdXN0ZWQgdGhlIHRvdGFsCitzdHJpbmcgc2l6ZSByZXF1aXJlZCBpbiBfZGxfaW1wb3J0YW50 X2h3Y2Fwcy4gSG93ZXZlciwgaW4gZG9pbmcgc28KK2l0IGluYWR2ZXJ0ZW50bHkgYWx0ZXJlZCB0 aGUgY2FsY3VsYXRpb24gb2YgdGhlIHNpemUgcmVxdWlyZWQgZm9yCit0aGUgcG93ZXIgc2V0IHN0 cmluZ3MsIGFzIHRoZSBjb21wdXRhdGlvbiBvZiB0aGUgcG93ZXIgc2V0IHN0cmluZworc2l6ZSBk ZXBlbmRlZCBvbiB0aGUgZmlyc3QgdmFsdWUgYXNzaWduZWQgdG8gdGhlIHRvdGFsIHZhcmlhYmxl LAord2hpY2ggaXMgbGF0ZXIgc2hpZnRlZCwgcmVzdWx0aW5nIGluIG92ZXJhbGxvY2F0aW9uIG9m IHN0cmluZworc3BhY2UuIEZpeCB0aGlzIG5vdyBieSB1c2luZyBhIGRpZmZlcmVudCB2YXJpYWJs ZSB0byBob2xkIHRoZQorc3RyaW5nIHNpemUgcmVxdWlyZWQgZm9yIGdsaWJjLWh3Y2Fwcy4KKwor U2lnbmVkLW9mZi1ieTogSmF2aWVyIFBlbGxvIDxkZXZlbEBvdGhlby5ldT4KKyhjaGVycnkgcGlj a2VkIGZyb20gY29tbWl0IGEyMzgyMGY2MDUyYTc0MDI0NmZkYzdkY2Q5YzQzY2U4ZWVkMGM0NWEp CistLS0KKyBlbGYvZGwtaHdjYXBzLmMgfCA4ICsrKysrLS0tCisgMSBmaWxlIGNoYW5nZWQsIDUg aW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2VsZi9kbC1od2Nh cHMuYyBiL2VsZi9kbC1od2NhcHMuYworaW5kZXggNmYxNjFmNmFkNS4uOTJlYjUzNzkwZSAxMDA2 NDQKKy0tLSBhL2VsZi9kbC1od2NhcHMuYworKysrIGIvZWxmL2RsLWh3Y2Fwcy5jCitAQCAtMTkz LDcgKzE5Myw3IEBAIF9kbF9pbXBvcnRhbnRfaHdjYXBzIChjb25zdCBjaGFyICpnbGliY19od2Nh cHNfcHJlcGVuZCwKKyAgIC8qIEVhY2ggaHdjYXBzIHN1YmRpcmVjdG9yeSBoYXMgYSBHTElCQ19I V0NBUFNfUFJFRklYIHN0cmluZyBwcmVmaXgKKyAgICAgIGFuZCBhICIvIiBzdWZmaXggb25jZSBz dG9yZWQgaW4gdGhlIHJlc3VsdC4gICovCisgICBod2NhcHNfY291bnRzLm1heGltdW1fbGVuZ3Ro ICs9IHN0cmxlbiAoR0xJQkNfSFdDQVBTX1BSRUZJWCkgKyAxOworLSAgc2l6ZV90IHRvdGFsID0g KGh3Y2Fwc19jb3VudHMuY291bnQgKiAoc3RybGVuIChHTElCQ19IV0NBUFNfUFJFRklYKSArIDEp CisrICBzaXplX3QgaHdjYXBzX3N6ID0gKGh3Y2Fwc19jb3VudHMuY291bnQgKiAoc3RybGVuIChH TElCQ19IV0NBUFNfUFJFRklYKSArIDEpCisgCQkgICsgaHdjYXBzX2NvdW50cy50b3RhbF9sZW5n dGgpOworIAorICAgLyogQ291bnQgdGhlIG51bWJlciBvZiBiaXRzIHNldCBpbiB0aGUgbWFza2Vk IHZhbHVlLiAgKi8KK0BAIC0yMjksMTEgKzIyOSwxMiBAQCBfZGxfaW1wb3J0YW50X2h3Y2FwcyAo Y29uc3QgY2hhciAqZ2xpYmNfaHdjYXBzX3ByZXBlbmQsCisgICBhc3NlcnQgKG0gPT0gY250KTsK KyAKKyAgIC8qIERldGVybWluZSB0aGUgdG90YWwgc2l6ZSBvZiBhbGwgc3RyaW5ncyB0b2dldGhl ci4gICovCisrICBzaXplX3QgdG90YWw7CisgICBpZiAoY250ID09IDEpCistICAgIHRvdGFsICs9 IHRlbXBbMF0ubGVuICsgMTsKKysgICAgdG90YWwgPSB0ZW1wWzBdLmxlbiArIDE7CisgICBlbHNl CisgICAgIHsKKy0gICAgICB0b3RhbCArPSB0ZW1wWzBdLmxlbiArIHRlbXBbY250IC0gMV0ubGVu ICsgMjsKKysgICAgICB0b3RhbCA9IHRlbXBbMF0ubGVuICsgdGVtcFtjbnQgLSAxXS5sZW4gKyAy OworICAgICAgIGlmIChjbnQgPiAyKQorIAl7CisgCSAgdG90YWwgPDw9IDE7CitAQCAtMjU1LDYg KzI1Niw3IEBAIF9kbF9pbXBvcnRhbnRfaHdjYXBzIChjb25zdCBjaGFyICpnbGliY19od2NhcHNf cHJlcGVuZCwKKyAgIC8qIFRoaXMgaXMgdGhlIG92ZXJhbGwgcmVzdWx0LCBpbmNsdWRpbmcgYm90 aCBnbGliYy1od2NhcHMKKyAgICAgIHN1YmRpcmVjdG9yaWVzIGFuZCB0aGUgbGVnYWN5IGh3Y2Fw cyBzdWJkaXJlY3RvcmllcyB1c2luZyB0aGUKKyAgICAgIHBvd2VyIHNldCBjb25zdHJ1Y3Rpb24u ICAqLworKyAgdG90YWwgKz0gaHdjYXBzX3N6OworICAgc3RydWN0IHJfc3RybGVucGFpciAqb3Zl cmFsbF9yZXN1bHQKKyAgICAgPSBtYWxsb2MgKCpzeiAqIHNpemVvZiAoKnJlc3VsdCkgKyB0b3Rh bCk7CisgICBpZiAob3ZlcmFsbF9yZXN1bHQgPT0gTlVMTCkKKy0tIAorMi4zOC4xCisKKworRnJv bSA3YTNmOGM4YTdhZWI0MWQ0YmJmZWVjMDdkMGJlMWU5MmMzMDE5OTE5IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQorRnJvbTogRmxvcmlhbiBXZWltZXIgPGZ3ZWltZXJAcmVkaGF0LmNvbT4KK0Rh dGU6IFR1ZSwgNiBTZXAgMjAyMiAwNzozODoxMCArMDIwMAorU3ViamVjdDogW1BBVENIIDQwLzcy XSBzY3JpcHRzL2Rzby1vcmRlcmluZy10ZXN0LnB5OiBHZW5lcmF0ZSBwcm9ncmFtIHJ1bi10aW1l CisgZGVwZW5kZW5jaWVzCisKK1RoZSBtYWluIHByb2dyYW0gbmVlZHMgdG8gZGVwZW5kIG9uIGFs bCBzaGFyZWQgb2JqZWN0cywgZXZlbiBvYmplY3RzCit0aGF0IGhhdmUgbGluay10aW1lIGRlcGVu ZGVuY2llcyBhbW9uZyBzaGFyZWQgb2JqZWN0cy4gIEZpbHRlcmluZworb3V0IHNoYXJlZCBvYmpl Y3RzIHRoYXQgYWxyZWFkeSBoYXZlIGFuIGxpbmstdGltZSBkZXBlbmRlbmNpZXMgaXMgbm90Citu ZWNlc3NhcnkgaGVyZTsgbWFrZSB3aWxsIGRvIHRoaXMgYXV0b21hdGljYWxseS4KKworUmV2aWV3 ZWQtYnk6IEFkaGVtZXJ2YWwgWmFuZWxsYSAgPGFkaGVtZXJ2YWwuemFuZWxsYUBsaW5hcm8ub3Jn PgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgMTgzZDk5NzM3Mjk4YmIzMjAwZjA2MTBmZGNk MWM3NTQ5YzhlZDU2MCkKKy0tLQorIHNjcmlwdHMvZHNvLW9yZGVyaW5nLXRlc3QucHkgfCAxMyAr KysrKystLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlv bnMoLSkKKworZGlmZiAtLWdpdCBhL3NjcmlwdHMvZHNvLW9yZGVyaW5nLXRlc3QucHkgYi9zY3Jp cHRzL2Rzby1vcmRlcmluZy10ZXN0LnB5CitpbmRleCAyZGQ2YmZkYTE4Li5iODdjZjJmODA5IDEw MDY0NAorLS0tIGEvc2NyaXB0cy9kc28tb3JkZXJpbmctdGVzdC5weQorKysrIGIvc2NyaXB0cy9k c28tb3JkZXJpbmctdGVzdC5weQorQEAgLTcwNywxMyArNzA3LDEyIEBAIGRlZiBwcm9jZXNzX3Rl c3RjYXNlKHQpOgorICAgICAgICAgICAgICAgICAiXHQkKGNvbXBpbGUuYykgJChPVVRQVVRfT1BU SU9OKVxuIikKKyAgICAgICAgIG1ha2VmaWxlLndyaXRlIChydWxlKQorIAorLSAgICAgICAgbm90 X2RlcGVuZGVkX29ianMgPSBmaW5kX29ianNfbm90X2RlcGVuZGVkX29uKHRlc3RfZGVzY3IpCist ICAgICAgICBpZiBub3RfZGVwZW5kZWRfb2JqczoKKy0gICAgICAgICAgICBkZXBzdHIgPSAiIgor LSAgICAgICAgICAgIGZvciBkZXAgaW4gbm90X2RlcGVuZGVkX29ianM6CistICAgICAgICAgICAg ICAgIGRlcHN0ciArPSAoIiAkKG9ianBmeCkiICsgdGVzdF9zdWJkaXIgKyAiLyIKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICArIHRlc3RfbmFtZSArICItIiArIGRlcCArICIuc28iKQorLSAg ICAgICAgICAgIG1ha2VmaWxlLndyaXRlKCIkKG9ianBmeCklcy5vdXQ6JXNcbiIgJSAoYmFzZV90 ZXN0X25hbWUsIGRlcHN0cikpCisrICAgICAgICAjIEVuc3VyZSB0aGF0IGFsbCBzaGFyZWQgb2Jq ZWN0cyBhcmUgYnVpbHQgYmVmb3JlIHJ1bm5pbmcgdGhlCisrICAgICAgICAjIHRlc3QsIHdoZXRo ZXIgdGhlcmUgbGluay10aW1lIGRlcGVuZGVuY2llcyBvciBub3QuCisrICAgICAgICBkZXBvYmpz ID0gWyIkKG9ianBmeCl7fS97fS17fS5zbyIuZm9ybWF0KHRlc3Rfc3ViZGlyLCB0ZXN0X25hbWUs IGRlcCkKKysgICAgICAgICAgICAgICAgICAgZm9yIGRlcCBpbiB0ZXN0X2Rlc2NyLm9ianNdCisr ICAgICAgICBtYWtlZmlsZS53cml0ZSgiJChvYmpwZngpe30ub3V0OiB7fVxuIi5mb3JtYXQoCisr ICAgICAgICAgICAgYmFzZV90ZXN0X25hbWUsICIgIi5qb2luKGRlcG9ianMpKSkKKyAKKyAgICAg ICAgICMgQWRkIG1haW4gZXhlY3V0YWJsZSB0byB0ZXN0LXNyY3MKKyAgICAgICAgIG1ha2VmaWxl LndyaXRlKCJ0ZXN0LXNyY3MgKz0gJXMvJXNcbiIgJSAodGVzdF9zdWJkaXIsIHRlc3RfbmFtZSkp CistLSAKKzIuMzguMQorCisKK0Zyb20gZDEyNDFjZjAwMTM5NzMzZGUwNjljODQ5MzNjZDU3NmRj MWExZjQ1ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEZsb3JpYW4gV2VpbWVyIDxm d2VpbWVyQHJlZGhhdC5jb20+CitEYXRlOiBUdWUsIDYgU2VwIDIwMjIgMDc6Mzg6MTAgKzAyMDAK K1N1YmplY3Q6IFtQQVRDSCA0MS83Ml0gZWxmOiBSZW5hbWUgX2RsX3NvcnRfbWFwcyBwYXJhbWV0 ZXIgZnJvbSBza2lwIHRvCisgZm9yY2VfZmlyc3QKKworVGhlIG5ldyBpbXBsZW1lbnRhdGlvbiB3 aWxsIG5vdCBiZSBhYmxlIHRvIHNraXAgYW4gYXJiaXRyYXJ5IG51bWJlcgorb2Ygb2JqZWN0cy4K KworUmV2aWV3ZWQtYnk6IEFkaGVtZXJ2YWwgWmFuZWxsYSAgPGFkaGVtZXJ2YWwuemFuZWxsYUBs aW5hcm8ub3JnPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgZGJiNzU1MTNmNWNmOTI4NWM3 N2M5ZTU1Nzc3YzVjMzViNjUzZjg5MCkKKy0tLQorIGVsZi9kbC1zb3J0LW1hcHMuYyAgICAgICAg IHwgMTQgKysrKysrKy0tLS0tLS0KKyBzeXNkZXBzL2dlbmVyaWMvbGRzb2RlZnMuaCB8ICA2ICsr KystLQorIDIgZmlsZXMgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkK KworZGlmZiAtLWdpdCBhL2VsZi9kbC1zb3J0LW1hcHMuYyBiL2VsZi9kbC1zb3J0LW1hcHMuYwor aW5kZXggOTY2MzhkN2VkMS4uNWI1NTBiMWU5NCAxMDA2NDQKKy0tLSBhL2VsZi9kbC1zb3J0LW1h cHMuYworKysrIGIvZWxmL2RsLXNvcnQtbWFwcy5jCitAQCAtMjcsMTIgKzI3LDEyIEBACisgICAg SWYgRk9SX0ZJTkkgaXMgdHJ1ZSwgdGhpcyBpcyBjYWxsZWQgZm9yIGZpbmlzaGluZyBhbiBvYmpl Y3QuICAqLworIHN0YXRpYyB2b2lkCisgX2RsX3NvcnRfbWFwc19vcmlnaW5hbCAoc3RydWN0IGxp bmtfbWFwICoqbWFwcywgdW5zaWduZWQgaW50IG5tYXBzLAorLQkJCXVuc2lnbmVkIGludCBza2lw LCBib29sIGZvcl9maW5pKQorKwkJCWJvb2wgZm9yY2VfZmlyc3QsIGJvb2wgZm9yX2ZpbmkpCisg eworICAgLyogQWxsb3dzIGNhbGxlciB0byBkbyB0aGUgY29tbW9uIG9wdGltaXphdGlvbiBvZiBz a2lwcGluZyB0aGUgZmlyc3QgbWFwLAorICAgICAgdXN1YWxseSB0aGUgbWFpbiBiaW5hcnkuICAq LworLSAgbWFwcyArPSBza2lwOworLSAgbm1hcHMgLT0gc2tpcDsKKysgIG1hcHMgKz0gZm9yY2Vf Zmlyc3Q7CisrICBubWFwcyAtPSBmb3JjZV9maXJzdDsKKyAKKyAgIC8qIEEgbGlzdCBvZiBvbmUg ZWxlbWVudCBuZWVkIG5vdCBiZSBzb3J0ZWQuICAqLworICAgaWYgKG5tYXBzIDw9IDEpCitAQCAt MTgyLDcgKzE4Miw3IEBAIGRmc190cmF2ZXJzYWwgKHN0cnVjdCBsaW5rX21hcCAqKipycG8sIHN0 cnVjdCBsaW5rX21hcCAqbWFwLAorIAorIHN0YXRpYyB2b2lkCisgX2RsX3NvcnRfbWFwc19kZnMg KHN0cnVjdCBsaW5rX21hcCAqKm1hcHMsIHVuc2lnbmVkIGludCBubWFwcywKKy0JCSAgIHVuc2ln bmVkIGludCBza2lwIF9fYXR0cmlidXRlX18gKCh1bnVzZWQpKSwgYm9vbCBmb3JfZmluaSkKKysJ CSAgIGJvb2wgZm9yY2VfZmlyc3QgX19hdHRyaWJ1dGVfXyAoKHVudXNlZCkpLCBib29sIGZvcl9m aW5pKQorIHsKKyAgIGZvciAoaW50IGkgPSBubWFwcyAtIDE7IGkgPj0gMDsgaS0tKQorICAgICBt YXBzW2ldLT5sX3Zpc2l0ZWQgPSAwOworQEAgLTI4Niw3ICsyODYsNyBAQCBfZGxfc29ydF9tYXBz X2luaXQgKHZvaWQpCisgCisgdm9pZAorIF9kbF9zb3J0X21hcHMgKHN0cnVjdCBsaW5rX21hcCAq Km1hcHMsIHVuc2lnbmVkIGludCBubWFwcywKKy0JICAgICAgIHVuc2lnbmVkIGludCBza2lwLCBi b29sIGZvcl9maW5pKQorKwkgICAgICAgYm9vbCBmb3JjZV9maXJzdCwgYm9vbCBmb3JfZmluaSkK KyB7CisgICAvKiBJdCBjYW4gYmUgdGVtcHRpbmcgdG8gdXNlIGEgc3RhdGljIGZ1bmN0aW9uIHBv aW50ZXIgdG8gc3RvcmUgYW5kIGNhbGwKKyAgICAgIHRoZSBjdXJyZW50IHNlbGVjdGVkIHNvcnRp bmcgYWxnb3JpdGhtIHJvdXRpbmUsIGJ1dCBleHBlcmltZW50YXRpb24KK0BAIC0yOTYsOSArMjk2 LDkgQEAgX2RsX3NvcnRfbWFwcyAoc3RydWN0IGxpbmtfbWFwICoqbWFwcywgdW5zaWduZWQgaW50 IG5tYXBzLAorICAgICAgaW5wdXQgY2FzZXMuIEEgc2ltcGxlIGlmLWNhc2Ugd2l0aCBkaXJlY3Qg ZnVuY3Rpb24gY2FsbHMgYXBwZWFycyB0bworICAgICAgYmUgdGhlIGZhc3Rlc3QuICAqLworICAg aWYgKF9fZ2xpYmNfbGlrZWx5IChHTFJPKGRsX2Rzb19zb3J0X2FsZ28pID09IGRzb19zb3J0X2Fs Z29yaXRobV9vcmlnaW5hbCkpCistICAgIF9kbF9zb3J0X21hcHNfb3JpZ2luYWwgKG1hcHMsIG5t YXBzLCBza2lwLCBmb3JfZmluaSk7CisrICAgIF9kbF9zb3J0X21hcHNfb3JpZ2luYWwgKG1hcHMs IG5tYXBzLCBmb3JjZV9maXJzdCwgZm9yX2ZpbmkpOworICAgZWxzZQorLSAgICBfZGxfc29ydF9t YXBzX2RmcyAobWFwcywgbm1hcHMsIHNraXAsIGZvcl9maW5pKTsKKysgICAgX2RsX3NvcnRfbWFw c19kZnMgKG1hcHMsIG5tYXBzLCBmb3JjZV9maXJzdCwgZm9yX2ZpbmkpOworIH0KKyAKKyAjZW5k aWYgLyogSEFWRV9UVU5BQkxFUy4gICovCitkaWZmIC0tZ2l0IGEvc3lzZGVwcy9nZW5lcmljL2xk c29kZWZzLmggYi9zeXNkZXBzL2dlbmVyaWMvbGRzb2RlZnMuaAoraW5kZXggMDUwYTMwMzJkZS4u NmIyNTZiODM4OCAxMDA2NDQKKy0tLSBhL3N5c2RlcHMvZ2VuZXJpYy9sZHNvZGVmcy5oCisrKysg Yi9zeXNkZXBzL2dlbmVyaWMvbGRzb2RlZnMuaAorQEAgLTEwNDgsOSArMTA0OCwxMSBAQCBleHRl cm4gdm9pZCBfZGxfaW5pdCAoc3RydWN0IGxpbmtfbWFwICptYWluX21hcCwgaW50IGFyZ2MsIGNo YXIgKiphcmd2LAorICAgIGluaXRpYWxpemVyIGZ1bmN0aW9ucyBoYXZlIGNvbXBsZXRlZC4gICov CisgZXh0ZXJuIHZvaWQgX2RsX2ZpbmkgKHZvaWQpIGF0dHJpYnV0ZV9oaWRkZW47CisgCistLyog U29ydCBhcnJheSBNQVBTIGFjY29yZGluZyB0byBkZXBlbmRlbmNpZXMgb2YgdGhlIGNvbnRhaW5l ZCBvYmplY3RzLiAgKi8KKysvKiBTb3J0IGFycmF5IE1BUFMgYWNjb3JkaW5nIHRvIGRlcGVuZGVu Y2llcyBvZiB0aGUgY29udGFpbmVkIG9iamVjdHMuCisrICAgSWYgRk9SQ0VfRklSU1QsIE1BUFNb MF0ga2VlcHMgaXRzIHBsYWNlIGV2ZW4gaWYgdGhlIGRlcGVuZGVuY2llcworKyAgIHNheSBvdGhl cndpc2UuICAqLworIGV4dGVybiB2b2lkIF9kbF9zb3J0X21hcHMgKHN0cnVjdCBsaW5rX21hcCAq Km1hcHMsIHVuc2lnbmVkIGludCBubWFwcywKKy0JCQkgICB1bnNpZ25lZCBpbnQgc2tpcCwgYm9v bCBmb3JfZmluaSkgYXR0cmlidXRlX2hpZGRlbjsKKysJCQkgICBib29sIGZvcmNlX2ZpcnN0LCBi b29sIGZvcl9maW5pKSBhdHRyaWJ1dGVfaGlkZGVuOworIAorIC8qIFRoZSBkeW5hbWljIGxpbmtl ciBjYWxscyB0aGlzIGZ1bmN0aW9uIGJlZm9yZSBhbmQgaGF2aW5nIGNoYW5naW5nCisgICAgYW55 IHNoYXJlZCBvYmplY3QgbWFwcGluZ3MuICBUaGUgYHJfc3RhdGUnIG1lbWJlciBvZiBgc3RydWN0 IHJfZGVidWcnCistLSAKKzIuMzguMQorCisKK0Zyb20gZGE1ZjEzNGY2ZDU5NzAxYTNhNjExOTMw OWFlOTFjOTNjM2ZhNWI1MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEZsb3JpYW4g V2VpbWVyIDxmd2VpbWVyQHJlZGhhdC5jb20+CitEYXRlOiBUdWUsIDIwIFNlcCAyMDIyIDExOjAw OjQyICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggNDIvNzJdIGVsZjogSW1wbGVtZW50IGZvcmNlX2Zp cnN0IGhhbmRsaW5nIGluCisgX2RsX3NvcnRfbWFwc19kZnMgKGJ1ZyAyODkzNykKK01JTUUtVmVy c2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRl bnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworVGhlIGltcGxlbWVudGF0aW9uIGluIF9kbF9j bG9zZV93b3JrZXIgcmVxdWlyZXMgdGhhdCB0aGUgZmlyc3QKK2VsZW1lbnQgb2YgbF9pbml0Zmlu aSBpcyBhbHdheXMgdGhpcyB2ZXJ5IG1hcCAo4oCcV2UgYXJlIGFsd2F5cyB0aGUKK3plcm90aCBl bnRyeSwgYW5kIHNpbmNlIHdlIGRvbid0IGluY2x1ZGUgb3Vyc2VsdmVzIGluIHRoZQorZGVwZW5k ZW5jeSBhbmFseXNpcyBzdGFydCBhdCAxLuKAnSkuICBSYXRoZXIgdGhhbiBmaXhpbmcgdGhhdAor YXNzdW1wdGlvbiwgdGhpcyBjb21taXQgYWRkcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgZm9y Y2VfZmlyc3QKK2FyZ3VtZW50IHRvIHRoZSBuZXcgZGVwZW5kZW5jeSBzb3J0aW5nIGFsZ29yaXRo bS4gIFRoaXMgYWxzbyBtZWFucwordGhhdCB0aGUgZGlyZWN0bHkgZGxvcGVuJ2VkIHNoYXJlZCBv YmplY3QgaXMgYWx3YXlzIGluaXRpYWxpemVkIGxhc3QsCit3aGljaCBpcyB0aGUgbGVhc3Qgc3Vy cHJpc2luZyBiZWhhdmlvciBpbiB0aGUgcHJlc2VuY2Ugb2YgY3ljbGVzLgorCitSZXZpZXdlZC1i eTogQWRoZW1lcnZhbCBaYW5lbGxhICA8YWRoZW1lcnZhbC56YW5lbGxhQGxpbmFyby5vcmc+Ciso Y2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCAxZGY3MWQzMmZlNWY1OTA1ZmZkNWQxMDBlNWU5Y2E4 YWQ2MjEwODkxKQorLS0tCisgTkVXUyAgICAgICAgICAgICAgICAgICAgIHwgIDEgKworIGVsZi9k bC1zb3J0LW1hcHMuYyAgICAgICB8IDMyICsrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0t CisgZWxmL2Rzby1zb3J0LXRlc3RzLTEuZGVmIHwgIDcgKysrKysrKworIDMgZmlsZXMgY2hhbmdl ZCwgMzEgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL05FV1Mg Yi9ORVdTCitpbmRleCAwMzI4MWUzYWI0Li41YjQ3NTM0MTZmIDEwMDY0NAorLS0tIGEvTkVXUwor KysrIGIvTkVXUworQEAgLTIwLDYgKzIwLDcgQEAgVGhlIGZvbGxvd2luZyBidWdzIGFyZSByZXNv bHZlZCB3aXRoIHRoaXMgcmVsZWFzZToKKyAgIFsyODg0Nl0gQ01TR19OWFRIRFIgbWF5IHRyaWdn ZXIgLVdzdHJpY3Qtb3ZlcmZsb3cgd2FybmluZworICAgWzI5MzA1XSBDb25zZXJ2ZSBOU1MgYnVm ZmVyIHNwYWNlIGR1cmluZyBETlMgcGFja2V0IHBhcnNpbmcKKyAgIFsyOTQxNV0gbnNjZDogRml4 IG5ldGxpbmsgY2FjaGUgaW52YWxpZGF0aW9uIGlmIGVwb2xsIGlzIHVzZWQKKysgIFsyODkzN10g TmV3IERTTyBkZXBlbmRlbmN5IHNvcnRlciBkb2VzIG5vdCBwdXQgbmV3IG1hcCBmaXJzdCBpZiBp biBhIGN5Y2xlCisgICBbMjk0NDZdIF9kbG9wZW4gbm93IGlnbm9yZXMgZGxfY2FsbGVyIGFyZ3Vt ZW50IGluIHN0YXRpYyBtb2RlCisgICBbMjk0ODVdIExpbnV4OiBUZXJtaW5hdGUgc3VicHJvY2Vz cyBvbiBsYXRlIGZhaWx1cmUgaW4gdHN0LXBpZGZkCisgICBbMjk0OTBdIGFscGhhOiBOZXcgX19i cmtfY2FsbCBpbXBsZW1lbnRhdGlvbiBpcyBicm9rZW4KK2RpZmYgLS1naXQgYS9lbGYvZGwtc29y dC1tYXBzLmMgYi9lbGYvZGwtc29ydC1tYXBzLmMKK2luZGV4IDViNTUwYjFlOTQuLjNlMmE2YTU4 NGUgMTAwNjQ0CistLS0gYS9lbGYvZGwtc29ydC1tYXBzLmMKKysrKyBiL2VsZi9kbC1zb3J0LW1h cHMuYworQEAgLTE4Miw4ICsxODIsOSBAQCBkZnNfdHJhdmVyc2FsIChzdHJ1Y3QgbGlua19tYXAg KioqcnBvLCBzdHJ1Y3QgbGlua19tYXAgKm1hcCwKKyAKKyBzdGF0aWMgdm9pZAorIF9kbF9zb3J0 X21hcHNfZGZzIChzdHJ1Y3QgbGlua19tYXAgKiptYXBzLCB1bnNpZ25lZCBpbnQgbm1hcHMsCist CQkgICBib29sIGZvcmNlX2ZpcnN0IF9fYXR0cmlidXRlX18gKCh1bnVzZWQpKSwgYm9vbCBmb3Jf ZmluaSkKKysJCSAgIGJvb2wgZm9yY2VfZmlyc3QsIGJvb2wgZm9yX2ZpbmkpCisgeworKyAgc3Ry dWN0IGxpbmtfbWFwICpmaXJzdF9tYXAgPSBtYXBzWzBdOworICAgZm9yIChpbnQgaSA9IG5tYXBz IC0gMTsgaSA+PSAwOyBpLS0pCisgICAgIG1hcHNbaV0tPmxfdmlzaXRlZCA9IDA7CisgCitAQCAt MjA4LDE0ICsyMDksNiBAQCBfZGxfc29ydF9tYXBzX2RmcyAoc3RydWN0IGxpbmtfbWFwICoqbWFw cywgdW5zaWduZWQgaW50IG5tYXBzLAorICAgICAgQWRqdXN0aW5nIHRoZSBvcmRlciBzbyB0aGF0 IG1hcHNbMF0gaXMgbGFzdCB0cmF2ZXJzZWQgbmF0dXJhbGx5IGF2b2lkcworICAgICAgdGhpcyBw cm9ibGVtLgorIAorLSAgICAgRnVydGhlciwgdGhlIG9sZCAib3B0aW1pemF0aW9uIiBvZiBza2lw cGluZyB0aGUgbWFpbiBvYmplY3QgYXQgbWFwc1swXQorLSAgICAgZnJvbSB0aGUgY2FsbC1zaXRl IChpLmUuIF9kbF9zb3J0X21hcHMobWFwcysxLG5tYXBzLTEpKSBpcyBpbiBnZW5lcmFsCistICAg ICBubyBsb25nZXIgdmFsaWQsIHNpbmNlIHRyYXZlcnNpbmcgYWxvbmcgb2JqZWN0IGRlcGVuZGVu Y3ktbGlua3MKKy0gICAgIG1heSAiZmluZCIgdGhlIG1haW4gb2JqZWN0IGV2ZW4gd2hlbiBpdCBp cyBub3QgaW5jbHVkZWQgaW4gdGhlIGluaXRpYWwKKy0gICAgIG9yZGVyIChlLmcuIGEgZGxvcGVu KCknZWQgc2hhcmVkIG9iamVjdCBjYW4gaGF2ZSBjaXJjdWxhciBkZXBlbmRlbmNpZXMKKy0gICAg IGxpbmtlZCBiYWNrIHRvIGl0c2VsZikuIEluIHN1Y2ggYSBjYXNlLCB0cmF2ZXJzaW5nIE4tMSBv YmplY3RzIHdpbGwKKy0gICAgIGNyZWF0ZSBhIE4tb2JqZWN0IHJlc3VsdCwgYW5kIHJhaXNlIHBy b2JsZW1zLgorLQorICAgICAgVG8gc3VtbWFyaXplLCBqdXN0IHBhc3NpbmcgaW4gdGhlIGZ1bGwg bGlzdCwgYW5kIGl0ZXJhdGluZyBmcm9tIGJhY2sKKyAgICAgIHRvIGZyb250IG1ha2VzIHRoaW5n cyBtdWNoIG1vcmUgc3RyYWlnaHRmb3J3YXJkLiAgKi8KKyAKK0BAIC0yNzQsNiArMjY3LDI3IEBA IF9kbF9zb3J0X21hcHNfZGZzIChzdHJ1Y3QgbGlua19tYXAgKiptYXBzLCB1bnNpZ25lZCBpbnQg bm1hcHMsCisgICAgIH0KKyAKKyAgIG1lbWNweSAobWFwcywgcnBvLCBzaXplb2YgKHN0cnVjdCBs aW5rX21hcCAqKSAqIG5tYXBzKTsKKysKKysgIC8qIFNraXBwaW5nIHRoZSBmaXJzdCBvYmplY3Qg YXQgbWFwc1swXSBpcyBub3QgdmFsaWQgaW4gZ2VuZXJhbCwKKysgICAgIHNpbmNlIHRyYXZlcnNp bmcgYWxvbmcgb2JqZWN0IGRlcGVuZGVuY3ktbGlua3MgbWF5ICJmaW5kIiB0aGF0CisrICAgICBm aXJzdCBvYmplY3QgZXZlbiB3aGVuIGl0IGlzIG5vdCBpbmNsdWRlZCBpbiB0aGUgaW5pdGlhbCBv cmRlcgorKyAgICAgKGUuZy4sIGEgZGxvcGVuJ2VkIHNoYXJlZCBvYmplY3QgY2FuIGhhdmUgY2ly Y3VsYXIgZGVwZW5kZW5jaWVzCisrICAgICBsaW5rZWQgYmFjayB0byBpdHNlbGYpLiAgSW4gc3Vj aCBhIGNhc2UsIHRyYXZlcnNpbmcgTi0xIG9iamVjdHMKKysgICAgIHdpbGwgY3JlYXRlIGEgTi1v YmplY3QgcmVzdWx0LCBhbmQgcmFpc2UgcHJvYmxlbXMuICBJbnN0ZWFkLAorKyAgICAgZm9yY2Ug dGhlIG9iamVjdCBiYWNrIGludG8gZmlyc3QgcGxhY2UgYWZ0ZXIgc29ydGluZy4gIFRoaXMgbmFp dmUKKysgICAgIGFwcHJvYWNoIG1heSBpbnRyb2R1Y2UgZnVydGhlciBkZXBlbmRlbmN5IG9yZGVy aW5nIHZpb2xhdGlvbnMKKysgICAgIGNvbXBhcmVkIHRvIHJvdGF0aW5nIHRoZSBjeWNsZSB1bnRp bCB0aGUgZmlyc3QgbWFwIGlzIGFnYWluIGluCisrICAgICB0aGUgZmlyc3QgcG9zaXRpb24sIGJ1 dCBhcyB0aGVyZSBpcyBhIGN5Y2xlLCBhdCBsZWFzdCBvbmUKKysgICAgIHZpb2xhdGlvbiBpcyBh bHJlYWR5IHByZXNlbnQuICAqLworKyAgaWYgKGZvcmNlX2ZpcnN0ICYmIG1hcHNbMF0gIT0gZmly c3RfbWFwKQorKyAgICB7CisrICAgICAgaW50IGk7CisrICAgICAgZm9yIChpID0gMDsgbWFwc1tp XSAhPSBmaXJzdF9tYXA7ICsraSkKKysJOworKyAgICAgIGFzc2VydCAoaSA8IG5tYXBzKTsKKysg ICAgICBtZW1tb3ZlICgmbWFwc1sxXSwgbWFwcywgaSAqIHNpemVvZiAobWFwc1swXSkpOworKyAg ICAgIG1hcHNbMF0gPSBmaXJzdF9tYXA7CisrICAgIH0KKyB9CisgCisgdm9pZAorZGlmZiAtLWdp dCBhL2VsZi9kc28tc29ydC10ZXN0cy0xLmRlZiBiL2VsZi9kc28tc29ydC10ZXN0cy0xLmRlZgor aW5kZXggNWY3ZjE4ZWYyNy4uNGJmOTA1MmRiMSAxMDA2NDQKKy0tLSBhL2VsZi9kc28tc29ydC10 ZXN0cy0xLmRlZgorKysrIGIvZWxmL2Rzby1zb3J0LXRlc3RzLTEuZGVmCitAQCAtNjQsMyArNjQs MTAgQEAgb3V0cHV0OiBiPmE+e308YTxiCisgdHN0LWJ6MTUzMTE6IHsrYTsrZTsrZjsrZzsrZDsl ZDstZDstZzstZjstZTstYX07YS0+Yi0+Yy0+ZDtkPT5bYmFdO2M9PmE7Yj0+ZT0+YTtjPT5mPT5i O2Q9Pmc9PmMKKyBvdXRwdXQoZ2xpYmMucnRsZC5keW5hbWljX3NvcnQ9MSk6IHsrYVtkPmM+Yj5h Pl07K2VbZT5dOytmW2Y+XTsrZ1tnPl07K2RbXTslZChiKGUoYSgpKSlhKClnKGMoYSgpZihiKGUo YSgpKSkpKSkpOy1kW107LWdbXTstZltdOy1lW107LWFbPGE8YzxkPGc8ZjxiPGVdO30KKyBvdXRw dXQoZ2xpYmMucnRsZC5keW5hbWljX3NvcnQ9Mik6IHsrYVtkPmM+Yj5hPl07K2VbZT5dOytmW2Y+ XTsrZ1tnPl07K2RbXTslZChiKGUoYSgpKSlhKClnKGMoYSgpZihiKGUoYSgpKSkpKSkpOy1kW107 LWdbXTstZltdOy1lW107LWFbPGc8ZjxhPGI8YzxkPGVdO30KKysKKysjIFRlc3QgdGhhdCBldmVu IGluIHRoZSBwcmVzZW5jZSBvZiBkZXBlbmRlbmN5IGxvb3BzIGludm9sdmluZyBkbG9wZW4nZWQK KysjIG9iamVjdCwgdGhhdCBvYmplY3QgaXMgaW5pdGlhbGl6ZWQgbGFzdCAoYW5kIG5vdCB1bmxv YWRlZCBwcmVtYXR1cmVseSkuCisrIyBGaW5hbCBkZXN0cnVjdG9yIG9yZGVyIGlzIGluZGV0ZXJt aW5hdGUgZHVlIHRvIHRoZSBjeWNsZS4KKyt0c3QtYnoyODkzNzogeythOytiOy1iOytjOyVjfTth LT5hMTthLT5hMjthMi0+YTtiLT5iMTtjLT5hMTtjPT5hMQorK291dHB1dChnbGliYy5ydGxkLmR5 bmFtaWNfc29ydD0xKTogeythW2EyPmExPmE+XTsrYltiMT5iPl07LWJbPGI8YjFdOytjW2M+XTsl YyhhMSgpKTt9PGE8YTI8YzxhMQorK291dHB1dChnbGliYy5ydGxkLmR5bmFtaWNfc29ydD0yKTog eythW2EyPmExPmE+XTsrYltiMT5iPl07LWJbPGI8YjFdOytjW2M+XTslYyhhMSgpKTt9PGEyPGE8 YzxhMQorLS0gCisyLjM4LjEKKworCitGcm9tIDUyYzAzN2YzNTc0ZWI5MDYyYjExMWQ3OGE0Y2Jl Yjc5NjgxZDA3ZDMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBGbG9yaWFuIFdlaW1l ciA8ZndlaW1lckByZWRoYXQuY29tPgorRGF0ZTogVHVlLCAyMCBTZXAgMjAyMiAxMjoxMjo0MyAr MDIwMAorU3ViamVjdDogW1BBVENIIDQzLzcyXSBnY29udjogVXNlIDY0LWJpdCBpbnRlcmZhY2Vz IGluIGdjb252X3BhcnNlY29uZmRpciAoYnVnCisgMjk1ODMpCisKK0l0J3MgcG9zc2libGUgdGhh dCBpbm9kZSBudW1iZXJzIGFyZSBvdXRzaWRlIHRoZSAzMi1iaXQgcmFuZ2UuCitUaGUgZXhpc3Rp bmcgY29kZSBvbmx5IGhhbmRsZXMgdGhlIGluLWxpYmMgY2FzZSBjb3JyZWN0bHksIGFuZAorc3Rp bGwgdXNlcyB0aGUgbGVnYWN5IGludGVyZmFjZXMgd2hlbiBidWlsZGluZyBpY29udi4KKworU3Vn Z2VzdGVkLWJ5OiBIZWxnZSBEZWxsZXIgPGRlbGxlckBnbXguZGU+CisoY2hlcnJ5IHBpY2tlZCBm cm9tIGNvbW1pdCBmOTc5MDVmMjQ2MzEwOTdhZjMyNWQ2YTIzMTA5MzA3MWMzMDc3YTVmKQorLS0t CisgTkVXUyAgICAgICAgICAgICAgICAgICAgICAgfCAgMSArCisgaWNvbnYvZ2NvbnZfcGFyc2Vj b25mZGlyLmggfCAxNiArKysrKysrKy0tLS0tLS0tCisgMiBmaWxlcyBjaGFuZ2VkLCA5IGluc2Vy dGlvbnMoKyksIDggZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9ORVdTIGIvTkVXUworaW5k ZXggNWI0NzUzNDE2Zi4uZWFiODgyOTg3YiAxMDA2NDQKKy0tLSBhL05FV1MKKysrKyBiL05FV1MK K0BAIC0yNiw2ICsyNiw3IEBAIFRoZSBmb2xsb3dpbmcgYnVncyBhcmUgcmVzb2x2ZWQgd2l0aCB0 aGlzIHJlbGVhc2U6CisgICBbMjk0OTBdIGFscGhhOiBOZXcgX19icmtfY2FsbCBpbXBsZW1lbnRh dGlvbiBpcyBicm9rZW4KKyAgIFsyOTUyOF0gZWxmOiBDYWxsIF9fbGliY19lYXJseV9pbml0IGZv ciByZXVzZWQgbmFtZXNwYWNlcworICAgWzI5NTM5XSBsaWJjOiBMRF9UUkFDRV9MT0FERURfT0JK RUNUUyBjaGFuZ2VkIGhvdyB2RFNPIGxpYnJhcnkgYXJlCisrICBbMjk1ODNdIFVzZSA2NC1iaXQg aW50ZXJmYWNlcyBpbiBnY29udl9wYXJzZWNvbmZkaXIKKyAMCisgVmVyc2lvbiAyLjM2CisgCitk aWZmIC0tZ2l0IGEvaWNvbnYvZ2NvbnZfcGFyc2Vjb25mZGlyLmggYi9pY29udi9nY29udl9wYXJz ZWNvbmZkaXIuaAoraW5kZXggZGViYjk2YjMyMi4uYjcyOTMzYjUyNiAxMDA2NDQKKy0tLSBhL2lj b252L2djb252X3BhcnNlY29uZmRpci5oCisrKysgYi9pY29udi9nY29udl9wYXJzZWNvbmZkaXIu aAorQEAgLTI5LDE0ICsyOSwxNCBAQAorICMgZGVmaW5lIGlzc3BhY2UoX19jKSBfX2lzc3BhY2Vf bCAoKF9fYyksIF9ubF9DX2xvY29ial9wdHIpCisgIyBkZWZpbmUgYXNwcmludGYgX19hc3ByaW50 ZgorICMgZGVmaW5lIG9wZW5kaXIgX19vcGVuZGlyCistIyBkZWZpbmUgcmVhZGRpciBfX3JlYWRk aXIKKysjIGRlZmluZSByZWFkZGlyNjQgX19yZWFkZGlyNjQKKyAjIGRlZmluZSBjbG9zZWRpciBf X2Nsb3NlZGlyCisgIyBkZWZpbmUgbWVtcGNweSBfX21lbXBjcHkKKy0jIGRlZmluZSBzdHJ1Y3Rf c3RhdCBzdHJ1Y3QgX19zdGF0NjRfdDY0CistIyBkZWZpbmUgbHN0YXQgX19sc3RhdDY0X3RpbWU2 NAorKyMgZGVmaW5lIHN0cnVjdF9zdGF0NjQgc3RydWN0IF9fc3RhdDY0X3Q2NAorKyMgZGVmaW5l IGxzdGF0NjQgX19sc3RhdDY0X3RpbWU2NAorICMgZGVmaW5lIGZlb2ZfdW5sb2NrZWQgX19mZW9m X3VubG9ja2VkCisgI2Vsc2UKKy0jIGRlZmluZSBzdHJ1Y3Rfc3RhdCBzdHJ1Y3Qgc3RhdAorKyMg ZGVmaW5lIHN0cnVjdF9zdGF0NjQgc3RydWN0IHN0YXQ2NAorICNlbmRpZgorIAorIC8qIE5hbWUg b2YgdGhlIGZpbGUgY29udGFpbmluZyB0aGUgbW9kdWxlIGluZm9ybWF0aW9uIGluIHRoZSBkaXJl Y3RvcmllcworQEAgLTE0OCw4ICsxNDgsOCBAQCBnY29udl9wYXJzZWNvbmZkaXIgKGNvbnN0IGNo YXIgKnByZWZpeCwgY29uc3QgY2hhciAqZGlyLCBzaXplX3QgZGlyX2xlbikKKyAgIERJUiAqY29u ZmRpciA9IG9wZW5kaXIgKGJ1Zik7CisgICBpZiAoY29uZmRpciAhPSBOVUxMKQorICAgICB7Cist ICAgICAgc3RydWN0IGRpcmVudCAqZW50OworLSAgICAgIHdoaWxlICgoZW50ID0gcmVhZGRpciAo Y29uZmRpcikpICE9IE5VTEwpCisrICAgICAgc3RydWN0IGRpcmVudDY0ICplbnQ7CisrICAgICAg d2hpbGUgKChlbnQgPSByZWFkZGlyNjQgKGNvbmZkaXIpKSAhPSBOVUxMKQorIAl7CisgCSAgaWYg KGVudC0+ZF90eXBlICE9IERUX1JFRyAmJiBlbnQtPmRfdHlwZSAhPSBEVF9VTktOT1dOKQorIAkg ICAgY29udGludWU7CitAQCAtMTYxLDEyICsxNjEsMTIgQEAgZ2NvbnZfcGFyc2Vjb25mZGlyIChj b25zdCBjaGFyICpwcmVmaXgsIGNvbnN0IGNoYXIgKmRpciwgc2l6ZV90IGRpcl9sZW4pCisgCSAg ICAgICYmIHN0cmNtcCAoZW50LT5kX25hbWUgKyBsZW4gLSBzdHJsZW4gKHN1ZmZpeCksIHN1ZmZp eCkgPT0gMCkKKyAJICAgIHsKKyAJICAgICAgY2hhciAqY29uZjsKKy0JICAgICAgc3RydWN0X3N0 YXQgc3Q7CisrCSAgICAgIHN0cnVjdF9zdGF0NjQgc3Q7CisgCSAgICAgIGlmIChhc3ByaW50ZiAo JmNvbmYsICIlcy8lcyIsIGJ1ZiwgZW50LT5kX25hbWUpIDwgMCkKKyAJCWNvbnRpbnVlOworIAor IAkgICAgICBpZiAoZW50LT5kX3R5cGUgIT0gRFRfVU5LTk9XTgorLQkJICB8fCAobHN0YXQgKGNv bmYsICZzdCkgIT0gLTEgJiYgU19JU1JFRyAoc3Quc3RfbW9kZSkpKQorKwkJICB8fCAobHN0YXQ2 NCAoY29uZiwgJnN0KSAhPSAtMSAmJiBTX0lTUkVHIChzdC5zdF9tb2RlKSkpCisgCQlmb3VuZCB8 PSByZWFkX2NvbmZfZmlsZSAoY29uZiwgZGlyLCBkaXJfbGVuKTsKKyAKKyAJICAgICAgZnJlZSAo Y29uZik7CistLSAKKzIuMzguMQorCisKK0Zyb20gMjYyODUwMGY1ZGZmMWRkOTljNDlhMDliNDE4 YjNiMWVhM2E2YjVkMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFkaGVtZXJ2YWwg WmFuZWxsYSA8YWRoZW1lcnZhbC56YW5lbGxhQGxpbmFyby5vcmc+CitEYXRlOiBUdWUsIDMwIEF1 ZyAyMDIyIDEwOjMzOjE1IC0wMzAwCitTdWJqZWN0OiBbUEFUQ0ggNDQvNzJdIG02OGs6IEVuZm9y Y2UgNC1ieXRlIGFsaWdubWVudCBvbiBpbnRlcm5hbCBsb2NrcyAoQloKKyAjMjk1MzcpCisKK0Eg bmV3IGludGVybmFsIGRlZmluaXRpb24sIF9fTElCQ19MT0NLX0FMSUdOTUVOVCwgaXMgdXNlZCB0 byBmb3JjZQordGhlIDQtYnl0ZSBhbGlnbm1lbnQgb25seSBmb3IgbTY4aywgb3RoZXIgYXJjaGl0 ZWN0dXJlIGtlZXAgdGhlCituYXR1cmFsIGFsaWdubWVudCBvZiB0aGUgdHlwZSB1c2VkIGludGVy bmFsbHkgKGFuZCBocHBhIGRvZXMgbm90CityZXF1aXJlIDE2LWJ5dGUgYWxpZ25tZW50IGZvciBr ZXJuZWwtYXNzaXN0ZWQgQ0FTKS4KKworUmV2aWV3ZWQtYnk6IEZsb3JpYW4gV2VpbWVyIDxmd2Vp bWVyQHJlZGhhdC5jb20+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBhZWI0ZDJlOTgxNWQ0 NTllMjY0MGEzMWY1YWJiOGVmODAzODMwMTA3KQorLS0tCisgTkVXUyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEgKworIHN5c2RlcHMvZ2VuZXJpYy9saWJjLWxv Y2stYXJjaC5oICAgICAgICAgICAgICB8IDI1ICsrKysrKysrKysrKysrKysrKysKKyBzeXNkZXBz L25wdGwvbGliYy1sb2NrLmggICAgICAgICAgICAgICAgICAgICAgfCAgOCArKysrKy0KKyBzeXNk ZXBzL25wdGwvbGliYy1sb2NrUC5oICAgICAgICAgICAgICAgICAgICAgfCAgMyArKy0KKyBzeXNk ZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL2xpYmMtbG9jay1hcmNoLmggfCAyNSArKysrKysrKysr KysrKysrKysrCisgNSBmaWxlcyBjaGFuZ2VkLCA2MCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9u cygtKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBzeXNkZXBzL2dlbmVyaWMvbGliYy1sb2NrLWFyY2gu aAorIGNyZWF0ZSBtb2RlIDEwMDY0NCBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL2xpYmMt bG9jay1hcmNoLmgKKworZGlmZiAtLWdpdCBhL05FV1MgYi9ORVdTCitpbmRleCBlYWI4ODI5ODdi Li4xY2M5YTE2YmJmIDEwMDY0NAorLS0tIGEvTkVXUworKysrIGIvTkVXUworQEAgLTI1LDYgKzI1 LDcgQEAgVGhlIGZvbGxvd2luZyBidWdzIGFyZSByZXNvbHZlZCB3aXRoIHRoaXMgcmVsZWFzZToK KyAgIFsyOTQ4NV0gTGludXg6IFRlcm1pbmF0ZSBzdWJwcm9jZXNzIG9uIGxhdGUgZmFpbHVyZSBp biB0c3QtcGlkZmQKKyAgIFsyOTQ5MF0gYWxwaGE6IE5ldyBfX2Jya19jYWxsIGltcGxlbWVudGF0 aW9uIGlzIGJyb2tlbgorICAgWzI5NTI4XSBlbGY6IENhbGwgX19saWJjX2Vhcmx5X2luaXQgZm9y IHJldXNlZCBuYW1lc3BhY2VzCisrICBbMjk1MzddIGxpYmM6IFsyLjM0IHJlZ3Jlc3Npb25dOiBB bGlnbm1lbnQgaXNzdWUgb24gbTY4ayB3aGVuIHVzaW5nCisgICBbMjk1MzldIGxpYmM6IExEX1RS QUNFX0xPQURFRF9PQkpFQ1RTIGNoYW5nZWQgaG93IHZEU08gbGlicmFyeSBhcmUKKyAgIFsyOTU4 M10gVXNlIDY0LWJpdCBpbnRlcmZhY2VzIGluIGdjb252X3BhcnNlY29uZmRpcgorIAwKK2RpZmYg LS1naXQgYS9zeXNkZXBzL2dlbmVyaWMvbGliYy1sb2NrLWFyY2guaCBiL3N5c2RlcHMvZ2VuZXJp Yy9saWJjLWxvY2stYXJjaC5oCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAw MC4uNDcxM2IzMGE4YQorLS0tIC9kZXYvbnVsbAorKysrIGIvc3lzZGVwcy9nZW5lcmljL2xpYmMt bG9jay1hcmNoLmgKK0BAIC0wLDAgKzEsMjUgQEAKKysvKiBQcml2YXRlIGxpYmMtaW50ZXJuYWwg YXJjaC1zcGVjaWZpYyBkZWZpbml0aW9ucy4gIEdlbmVyaWMgdmVyc2lvbi4KKysgICBDb3B5cmln aHQgKEMpIDIwMjIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrICAgVGhpcyBmaWxl IGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkg aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisrICAgbW9k aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGFzCisrICAgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247 IGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUKKysgICBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp b24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0IFdJVEhP VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysg ICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT ZWUgdGhlIEdOVQorKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl dGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V IExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMg TGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYKKysgICBub3QsIHNlZSA8aHR0 cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKysKKysjaWZuZGVmIF9MSUJDX0xPQ0tf QVJDSF9ICisrI2RlZmluZSBfTElCQ19MT0NLX0FSQ0hfSAorKworKy8qIFRoZSBkZWZhdWx0IGRl ZmluaXRpb24gdXNlcyB0aGUgbmF0dXJhbCBhbGlnbm1lbnQgZnJvbSB0aGUgbG9jayB0eXBlLiAg Ki8KKysjZGVmaW5lIF9fTElCQ19MT0NLX0FMSUdOTUVOVAorKworKyNlbmRpZgorZGlmZiAtLWdp dCBhL3N5c2RlcHMvbnB0bC9saWJjLWxvY2suaCBiL3N5c2RlcHMvbnB0bC9saWJjLWxvY2suaAor aW5kZXggNWFmNDc2YzQ4Yi4uNjNiM2YzZDc1YyAxMDA2NDQKKy0tLSBhL3N5c2RlcHMvbnB0bC9s aWJjLWxvY2suaAorKysrIGIvc3lzZGVwcy9ucHRsL2xpYmMtbG9jay5oCitAQCAtMjIsNiArMjIs NyBAQAorICNpbmNsdWRlIDxwdGhyZWFkLmg+CisgI2RlZmluZSBfX25lZWRfTlVMTAorICNpbmNs dWRlIDxzdGRkZWYuaD4KKysjaW5jbHVkZSA8bGliYy1sb2NrLWFyY2guaD4KKyAKKyAKKyAvKiBN dXRleCB0eXBlLiAgKi8KK0BAIC0yOSw3ICszMCwxMiBAQAorICMgaWYgKCFJU19JTiAobGliYykg JiYgIUlTX0lOIChsaWJwdGhyZWFkKSkgfHwgIWRlZmluZWQgX0xJQkMKKyB0eXBlZGVmIHN0cnVj dCB7IHB0aHJlYWRfbXV0ZXhfdCBtdXRleDsgfSBfX2xpYmNfbG9ja19yZWN1cnNpdmVfdDsKKyAj IGVsc2UKKy10eXBlZGVmIHN0cnVjdCB7IGludCBsb2NrOyBpbnQgY250OyB2b2lkICpvd25lcjsg fSBfX2xpYmNfbG9ja19yZWN1cnNpdmVfdDsKKyt0eXBlZGVmIHN0cnVjdAorK3sKKysgIGludCBs b2NrIF9fTElCQ19MT0NLX0FMSUdOTUVOVDsKKysgIGludCBjbnQ7CisrICB2b2lkICpvd25lcjsK Kyt9IF9fbGliY19sb2NrX3JlY3Vyc2l2ZV90OworICMgZW5kaWYKKyAjZWxzZQorIHR5cGVkZWYg c3RydWN0IF9fbGliY19sb2NrX3JlY3Vyc2l2ZV9vcGFxdWVfXyBfX2xpYmNfbG9ja19yZWN1cnNp dmVfdDsKK2RpZmYgLS1naXQgYS9zeXNkZXBzL25wdGwvbGliYy1sb2NrUC5oIGIvc3lzZGVwcy9u cHRsL2xpYmMtbG9ja1AuaAoraW5kZXggZDNhNjgzN2ZkMi4uNDI1ZjUxNGM1YyAxMDA2NDQKKy0t LSBhL3N5c2RlcHMvbnB0bC9saWJjLWxvY2tQLmgKKysrKyBiL3N5c2RlcHMvbnB0bC9saWJjLWxv Y2tQLmgKK0BAIC0zMiw5ICszMiwxMCBAQAorICAgIGxkLnNvIG1pZ2h0IGJlIHVzZWQgb24gb2xk IGtlcm5lbHMgd2l0aCBhIGRpZmZlcmVudCBsaWJjLnNvLiAgKi8KKyAjaW5jbHVkZSA8bG93bGV2 ZWxsb2NrLmg+CisgI2luY2x1ZGUgPHRscy5oPgorKyNpbmNsdWRlIDxsaWJjLWxvY2stYXJjaC5o PgorIAorIC8qIE11dGV4IHR5cGUuICAqLworLXR5cGVkZWYgaW50IF9fbGliY19sb2NrX3Q7Cisr dHlwZWRlZiBpbnQgX19saWJjX2xvY2tfdCBfX0xJQkNfTE9DS19BTElHTk1FTlQ7CisgdHlwZWRl ZiBzdHJ1Y3QgeyBwdGhyZWFkX211dGV4X3QgbXV0ZXg7IH0gX19ydGxkX2xvY2tfcmVjdXJzaXZl X3Q7CisgdHlwZWRlZiBwdGhyZWFkX3J3bG9ja190IF9fbGliY19yd2xvY2tfdDsKKyAKK2RpZmYg LS1naXQgYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL2xpYmMtbG9jay1hcmNoLmggYi9z eXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL2xpYmMtbG9jay1hcmNoLmgKK25ldyBmaWxlIG1v ZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwLi4xODQ0YmJhZjZmCistLS0gL2Rldi9udWxsCisr KysgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL2xpYmMtbG9jay1hcmNoLmgKK0BAIC0w LDAgKzEsMjUgQEAKKysvKiBQcml2YXRlIGxpYmMtaW50ZXJuYWwgYXJjaC1zcGVjaWZpYyBkZWZp bml0aW9ucy4gIG02OGsgdmVyc2lvbi4KKysgICBDb3B5cmlnaHQgKEMpIDIwMjIgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBD IExpYnJhcnkuCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisrICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisrICAgcHVibGlz aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIuMSBv ZiB0aGUKKysgICBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u LgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorKyAgIExlc3Nl ciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNo b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp YworKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgc2VlIHRoZSBmaWxl IENPUFlJTkcuTElCLiAgSWYKKysgICBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNl bnNlcy8+LiAgKi8KKysKKysjaWZuZGVmIF9MSUJDX0xPQ0tfQVJDSF9ICisrI2RlZmluZSBfTElC Q19MT0NLX0FSQ0hfSAorKworKy8qIExpbnV4IGVuZm9yY2VzIDQtYnl0ZXMgYWxpZ25tZW50IG9u IGZ1dGV4IGlucHV0cy4gICovCisrI2RlZmluZSBfX0xJQkNfTE9DS19BTElHTk1FTlQgX19hdHRy aWJ1dGVfXyAoKF9fYWxpZ25lZF9fICg0KSkpCisrCisrI2VuZGlmCistLSAKKzIuMzguMQorCisK K0Zyb20gMjI3YzkwMzU4NzJmYzllOWUyY2Y1NmVjOGY4OTIxOTc0N2VlMTliYyBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKK0Zyb206ID0/VVRGLTg/cT9KPUMzPUI2cmc9MjBTb25uZW5iZXJnZXI/ PSA8am9lcmdAYmVjLmRlPgorRGF0ZTogTW9uLCAyNiBTZXAgMjAyMiAxMzo1OToxNiAtMDQwMAor U3ViamVjdDogW1BBVENIIDQ1LzcyXSBnZXRfbnNjZF9hZGRyZXNzZXM6IEZpeCBzdWJzY3JpcHQg dHlwb3MgW0JaICMyOTYwNV0KKworRml4IHRoZSBzdWJzY3JpcHQgb24gYWlyLT5mYW1pbHksIHdo aWNoIHdhcyBhY2NpZGVudGFsbHkgc2V0IHRvIENPVU5UCit3aGVuIGl0IHNob3VsZCBoYXZlIHJl bWFpbmVkIGFzIEkuCisKK1Jlc29sdmVzOiBCWiAjMjk2MDUKKworUmV2aWV3ZWQtYnk6IFNpZGRo ZXNoIFBveWFyZWthciA8c2lkZGhlc2hAc291cmNld2FyZS5vcmc+CisoY2hlcnJ5IHBpY2tlZCBm cm9tIGNvbW1pdCBjOTIyNmMwM2RhMDI3NjU5M2EwOTE4ZWFhOWExNDgzNTE4MzM0M2U4KQorLS0t Cisgc3lzZGVwcy9wb3NpeC9nZXRhZGRyaW5mby5jIHwgNiArKystLS0KKyAxIGZpbGUgY2hhbmdl ZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc3lzZGVw cy9wb3NpeC9nZXRhZGRyaW5mby5jIGIvc3lzZGVwcy9wb3NpeC9nZXRhZGRyaW5mby5jCitpbmRl eCBiY2ZmOTA5YjJmLi41Y2RhOWJiMDcyIDEwMDY0NAorLS0tIGEvc3lzZGVwcy9wb3NpeC9nZXRh ZGRyaW5mby5jCisrKysgYi9zeXNkZXBzL3Bvc2l4L2dldGFkZHJpbmZvLmMKK0BAIC01NDAsMTEg KzU0MCwxMSBAQCBnZXRfbnNjZF9hZGRyZXNzZXMgKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IHN0 cnVjdCBhZGRyaW5mbyAqcmVxLAorIAkgIGF0W2NvdW50XS5hZGRyWzJdID0gaHRvbmwgKDB4ZmZm Zik7CisgCX0KKyAgICAgICBlbHNlIGlmIChyZXEtPmFpX2ZhbWlseSA9PSBBRl9VTlNQRUMKKy0J ICAgICAgIHx8IGFpci0+ZmFtaWx5W2NvdW50XSA9PSByZXEtPmFpX2ZhbWlseSkKKysJICAgICAg IHx8IGFpci0+ZmFtaWx5W2ldID09IHJlcS0+YWlfZmFtaWx5KQorIAl7CistCSAgYXRbY291bnRd LmZhbWlseSA9IGFpci0+ZmFtaWx5W2NvdW50XTsKKysJICBhdFtjb3VudF0uZmFtaWx5ID0gYWly LT5mYW1pbHlbaV07CisgCSAgbWVtY3B5IChhdFtjb3VudF0uYWRkciwgYWRkcnMsIHNpemUpOwor LQkgIGlmIChhaXItPmZhbWlseVtjb3VudF0gPT0gQUZfSU5FVDYpCisrCSAgaWYgKGFpci0+ZmFt aWx5W2ldID09IEFGX0lORVQ2KQorIAkgICAgcmVzLT5nb3RfaXB2NiA9IHRydWU7CisgCX0KKyAg ICAgICBhdFtjb3VudF0ubmV4dCA9IGF0ICsgY291bnQgKyAxOworLS0gCisyLjM4LjEKKworCitG cm9tIDc2ZTA1NjEzZWUyOGY0YWM0YTBhYjk3ZWZmYzMyZTBlNzhlMzdhNTYgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCitGcm9tOiBBZGhlbWVydmFsIFphbmVsbGEgPGFkaGVtZXJ2YWwuemFuZWxs YUBsaW5hcm8ub3JnPgorRGF0ZTogVGh1LCAyOSBTZXAgMjAyMiAxNjoxNToyMCAtMDMwMAorU3Vi amVjdDogW1BBVENIIDQ2LzcyXSBzdGRsaWI6IEZpeCBfX2dldHJhbmRvbV9ub2NhbmNlbCB0eXBl IGFuZCBhcmM0cmFuZG9tCisgdXNhZ2UgKEJaICMyOTYzOCkKKworVXNpbmcgYW4gdW5zaWduZWQg dHlwZSBwcmV2ZW50cyB0aGUgZmFsbGJhY2sgdG8gYmUgdXNlZCBpZiBrZXJuZWwKK2RvZXMgbm90 IHN1cHBvcnQgZ2V0cmFuZG9tIHN5c2NhbGwuCisKK0NoZWNrZWQgb24geDg2XzY0LWxpbnV4LWdu dS4KKworUmV2aWV3ZWQtYnk6IFdpbGNvIERpamtzdHJhICA8V2lsY28uRGlqa3N0cmFAYXJtLmNv bT4KKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDEzZGI5ZWUyY2IzYjc3ZTI1Zjg1MmJlN2Q2 OTUyODgyZTFiZTZmMDApCistLS0KKyBORVdTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAxICsKKyBzdGRsaWIvYXJjNHJhbmRvbS5jICAgICAgICAgICAgICAgICAgfCAyICstCisg c3lzZGVwcy91bml4L3N5c3YvbGludXgvbm90LWNhbmNlbC5oIHwgMiArLQorIDMgZmlsZXMgY2hh bmdlZCwgMyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvTkVX UyBiL05FV1MKK2luZGV4IDFjYzlhMTZiYmYuLjkxYmNmZWI3YTYgMTAwNjQ0CistLS0gYS9ORVdT CisrKysgYi9ORVdTCitAQCAtMjgsNiArMjgsNyBAQCBUaGUgZm9sbG93aW5nIGJ1Z3MgYXJlIHJl c29sdmVkIHdpdGggdGhpcyByZWxlYXNlOgorICAgWzI5NTM3XSBsaWJjOiBbMi4zNCByZWdyZXNz aW9uXTogQWxpZ25tZW50IGlzc3VlIG9uIG02OGsgd2hlbiB1c2luZworICAgWzI5NTM5XSBsaWJj OiBMRF9UUkFDRV9MT0FERURfT0JKRUNUUyBjaGFuZ2VkIGhvdyB2RFNPIGxpYnJhcnkgYXJlCisg ICBbMjk1ODNdIFVzZSA2NC1iaXQgaW50ZXJmYWNlcyBpbiBnY29udl9wYXJzZWNvbmZkaXIKKysg IFsyOTYzOF0gbGliYzogc3RkbGliOiBhcmM0cmFuZG9tIGZhbGxiYWNrIGlzIG5ldmVyIHVzZWQK KyAMCisgVmVyc2lvbiAyLjM2CisgCitkaWZmIC0tZ2l0IGEvc3RkbGliL2FyYzRyYW5kb20uYyBi L3N0ZGxpYi9hcmM0cmFuZG9tLmMKK2luZGV4IGU0MTdlZjYyNGQuLjk2MGEzOGYyOTUgMTAwNjQ0 CistLS0gYS9zdGRsaWIvYXJjNHJhbmRvbS5jCisrKysgYi9zdGRsaWIvYXJjNHJhbmRvbS5jCitA QCAtMzQsNyArMzQsNyBAQCB2b2lkCisgX19hcmM0cmFuZG9tX2J1ZiAodm9pZCAqcCwgc2l6ZV90 IG4pCisgeworICAgc3RhdGljIGludCBzZWVuX2luaXRpYWxpemVkOworLSAgc2l6ZV90IGw7Cisr ICBzc2l6ZV90IGw7CisgICBpbnQgZmQ7CisgCisgICBpZiAobiA9PSAwKQorZGlmZiAtLWdpdCBh L3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L25vdC1jYW5jZWwuaCBiL3N5c2RlcHMvdW5peC9zeXN2 L2xpbnV4L25vdC1jYW5jZWwuaAoraW5kZXggYTI2M2QyOTRiMS4uY2YzNWM4YmZjOSAxMDA2NDQK Ky0tLSBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L25vdC1jYW5jZWwuaAorKysrIGIvc3lzZGVw cy91bml4L3N5c3YvbGludXgvbm90LWNhbmNlbC5oCitAQCAtNjgsNyArNjgsNyBAQCBfX3dyaXRl dl9ub2NhbmNlbF9ub3N0YXR1cyAoaW50IGZkLCBjb25zdCBzdHJ1Y3QgaW92ZWMgKmlvdiwgaW50 IGlvdmNudCkKKyAgIElOVEVSTkFMX1NZU0NBTExfQ0FMTCAod3JpdGV2LCBmZCwgaW92LCBpb3Zj bnQpOworIH0KKyAKKy1zdGF0aWMgaW5saW5lIGludAorK3N0YXRpYyBpbmxpbmUgc3NpemVfdAor IF9fZ2V0cmFuZG9tX25vY2FuY2VsICh2b2lkICpidWYsIHNpemVfdCBidWZsZW4sIHVuc2lnbmVk IGludCBmbGFncykKKyB7CisgICByZXR1cm4gSU5MSU5FX1NZU0NBTExfQ0FMTCAoZ2V0cmFuZG9t LCBidWYsIGJ1ZmxlbiwgZmxhZ3MpOworLS0gCisyLjM4LjEKKworCitGcm9tIGQxZDgzNzliZmYz NGYwMmY4NmY4MmRiMmNlZjViZjY2NzQ2ZDM1NjAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitG cm9tOiBKb2huIERhdmlkIEFuZ2xpbiA8ZGFuZ2xpbkBnY2MuZ251Lm9yZz4KK0RhdGU6IFNhdCwg MSBPY3QgMjAyMiAxOTo0OToyNSArMDAwMAorU3ViamVjdDogW1BBVENIIDQ3LzcyXSBocHBhOiBG aXggaW5pdGlhbGl6YXRpb24gb2YgZHAgcmVnaXN0ZXIgW0JaIDI5NjM1XQorCitBZnRlciB1cGdy YWRpbmcgZ2xpYmMgdG8gRGViaWFuIDIuMzUtMSwgZ2RiIGZhdWx0ZWQgb24KK3N0YXJ0dXAgYW5k IGRyb3BwZWQgY29yZSBpbiBhIGZ1bmN0aW9uIGNhbGwgaW4gdGhlIG1haW4KK2FwcGxpY2F0aW9u LiAgVGhpcyB3YXMgY2F1c2VkIGJ5IG5vdCBpbml0aWFsaXppbmcgdGhlCitnbG9iYWwgZHAgcmVn aXN0ZXIgZm9yIHRoZSBtYWluIGFwcGxpY2F0aW9uIGVhcmx5IGVub3VnaC4KKworUmVzdG9yZSB0 aGUgY29kZSB0byBpbml0aWFsaXplIGRwIGluIF9kbF9zdGFydF91c2VyLgorSXQgd2FzIHJlbW92 ZWQgd2hlbiBjb2RlIHdhcyBhZGRlZCB0byBpbml0aWFsaXplIGRwIGluCitlbGZfbWFjaGluZV9y dW50aW1lX3NldHVwLgorCitTaWduZWQtb2ZmLWJ5OiBKb2huIERhdmlkIEFuZ2xpbiA8ZGF2ZS5h bmdsaW5AYmVsbC5uZXQ+CistLS0KKyBzeXNkZXBzL2hwcGEvZGwtbWFjaGluZS5oIHwgMjQgKysr KysrKysrKysrKysrKysrKy0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDE5IGluc2VydGlvbnMoKyks IDUgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zeXNkZXBzL2hwcGEvZGwtbWFjaGluZS5o IGIvc3lzZGVwcy9ocHBhL2RsLW1hY2hpbmUuaAoraW5kZXggYzg2NTcxM2JlMS4uMWQ1MTk0ODU2 NiAxMDA2NDQKKy0tLSBhL3N5c2RlcHMvaHBwYS9kbC1tYWNoaW5lLmgKKysrKyBiL3N5c2RlcHMv aHBwYS9kbC1tYWNoaW5lLmgKK0BAIC0zNDcsNiArMzQ3LDE2IEBAIGVsZl9tYWNoaW5lX3J1bnRp bWVfc2V0dXAgKHN0cnVjdCBsaW5rX21hcCAqbCwgc3RydWN0IHJfc2NvcGVfZWxlbSAqc2NvcGVb XSwKKyAgICBpdHMgcmV0dXJuIHZhbHVlIGlzIHRoZSB1c2VyIHByb2dyYW0ncyBlbnRyeSBwb2lu dC4gICovCisgCisgI2RlZmluZSBSVExEX1NUQVJUIFwKKysvKiBTZXQgdXAgZHAgZm9yIGFueSBu b24tUElDIGxpYiBjb25zdHJ1Y3RvcnMgdGhhdCBtYXkgYmUgY2FsbGVkLiAgKi8JXAorK3N0YXRp YyBzdHJ1Y3QgbGlua19tYXAgKiBfX2F0dHJpYnV0ZV9fKCh1c2VkKSkJCQkJXAorK3NldF9kcCAo c3RydWN0IGxpbmtfbWFwICptYXApCQkJCQkJXAorK3sJCQkJCQkJCQlcCisrICByZWdpc3RlciBF bGYzMl9BZGRyIGRwIGFzbSAoIiVyMjciKTsJCQkJCVwKKysgIGRwID0gRF9QVFIgKG1hcCwgbF9p bmZvW0RUX1BMVEdPVF0pOwkJCQkJXAorKyAgYXNtIHZvbGF0aWxlICgiIiA6IDogInIiIChkcCkp OwkJCQkJXAorKyAgcmV0dXJuIG1hcDsJCQkJCQkJCVwKKyt9CQkJCQkJCQkJXAorKwkJCQkJCQkJ CVwKKyBhc20gKAkJCQkJCQkJCVwKKyAiCS50ZXh0XG4iCQkJCQkJCVwKKyAiCS5nbG9ibCBfc3Rh cnRcbiIJCQkJCQlcCitAQCAtNDI2LDYgKzQzNiwxMyBAQCBhc20gKAkJCQkJCQkJCVwKKyAJICAg ZGlyZWN0IGxvYWRlciBpbnZvY2F0aW9uLiAgVGh1cywgYXJnYyBhbmQgYXJndiBtdXN0IGJlCVwK KyAJICAgcmVsb2FkZWQgZnJvbSBmcm9tIF9kbF9hcmdjIGFuZCBfZGxfYXJndi4gICovCQlcCisg CQkJCQkJCQkJXAorKwkvKiBMb2FkIG1haW5fbWFwIGZyb20gX3J0bGRfbG9jYWwgYW5kIHNldHVw IGRwLiAqLwkJXAorKyIJYWRkaWwJTFQnX3J0bGRfbG9jYWwsJXIxOVxuIgkJCQkJXAorKyIJbGR3 CVJUJ19ydGxkX2xvY2FsKCVyMSksJXIyNlxuIgkJCQlcCisrIglibAlzZXRfZHAsICVyMlxuIgkJ CQkJCVwKKysiCWxkdwkwKCVyMjYpLCVyMjZcbiIJCQkJCQlcCisrIgljb3B5CSVyZXQwLCVyMjZc biIJCQkJCQlcCisrCQkJCQkJCQkJXAorIAkvKiBMb2FkIGFyZ2MgZnJvbSBfZGxfYXJnYy4gICov CQkJCQlcCisgIglhZGRpbAlMVCdfZGxfYXJnYywlcjE5XG4iCQkJCQlcCisgIglsZHcJUlQnX2Rs X2FyZ2MoJXIxKSwlcjIwXG4iCQkJCVwKK0BAIC00MzgsMTMgKzQ1NSwxMCBAQCBhc20gKAkJCQkJ CQkJCVwKKyAiCWxkdwkwKCVyMjApLCVyMjRcbiIJCQkJCQlcCisgIglzdHcJJXIyNCwtNDQoJXNw KVxuIgkJCQkJXAorIAkJCQkJCQkJCVwKKy0JLyogQ2FsbCBfZGxfaW5pdChtYWluX21hcCwgYXJn YywgYXJndiwgZW52cCkuICovCQlcCistIglhZGRpbAlMVCdfcnRsZF9sb2NhbCwlcjE5XG4iCQkJ CQlcCistIglsZHcJUlQnX3J0bGRfbG9jYWwoJXIxKSwlcjI2XG4iCQkJCVwKKy0iCWxkdwkwKCVy MjYpLCVyMjZcbiIJCQkJCQlcCistCQkJCQkJCQkJXAorIAkvKiBlbnZwID0gYXJndiArIGFyZ2Mg KyAxICovCQkJCQlcCisgIglzaDJhZGQJJXIyNSwlcjI0LCVyMjNcbiIJCQkJCVwKKysJCQkJCQkJ CQlcCisrCS8qIENhbGwgX2RsX2luaXQobWFpbl9tYXAsIGFyZ2MsIGFyZ3YsIGVudnApLiAqLwkJ XAorICIJYmwJX2RsX2luaXQsJXIyXG4iCQkJCQkJXAorICIJbGRvCTQoJXIyMyksJXIyM1xuIgkv KiBkZWxheSBzbG90ICovCQkJXAorIAkJCQkJCQkJCVwKKy0tIAorMi4zOC4xCisKKworRnJvbSBj ZGM0OTZlYjU1ZTMwZjhmMjQ2MWJlZGIwYTczODFjMGE3YTNkM2FlIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQorRnJvbTogSm9obiBEYXZpZCBBbmdsaW4gPGRhbmdsaW5AZ2NjLmdudS5vcmc+CitE YXRlOiBUdWUsIDIwIFNlcCAyMDIyIDIwOjE0OjE0ICswMDAwCitTdWJqZWN0OiBbUEFUQ0ggNDgv NzJdIGhwcGE6IHVuZGVmIF9fQVNTVU1FX1NFVF9ST0JVU1RfTElTVAorCitRRU1VIGRvZXMgbm90 IHN1cHBvcnQgc3VwcG9ydCBzZXRfcm9idXN0X2xpc3QuIFRodXMsIHdlIG5lZWQKK3RvIGVuYWJs ZSBkZXRlY3Rpb24gb2Ygc2V0X3JvYnVzdF9saXN0IHN5c3RlbSBjYWxsLgorCitTaWduZWQtb2Zm LWJ5OiBKb2huIERhdmlkIEFuZ2xpbiA8ZGF2ZS5hbmdsaW5AYmVsbC5uZXQ+CistLS0KKyBzeXNk ZXBzL3VuaXgvc3lzdi9saW51eC9ocHBhL2tlcm5lbC1mZWF0dXJlcy5oIHwgMyArKysKKyAxIGZp bGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9zeXNkZXBzL3VuaXgv c3lzdi9saW51eC9ocHBhL2tlcm5lbC1mZWF0dXJlcy5oIGIvc3lzZGVwcy91bml4L3N5c3YvbGlu dXgvaHBwYS9rZXJuZWwtZmVhdHVyZXMuaAoraW5kZXggMGNkMjFlZjBmYS4uMDc5NjEyZTRhYSAx MDA2NDQKKy0tLSBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2hwcGEva2VybmVsLWZlYXR1cmVz LmgKKysrKyBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2hwcGEva2VybmVsLWZlYXR1cmVzLmgK K0BAIC0zMCwzICszMCw2IEBACisgCisgI3VuZGVmIF9fQVNTVU1FX0NMT05FX0RFRkFVTFQKKyAj ZGVmaW5lIF9fQVNTVU1FX0NMT05FX0JBQ0tXQVJEUyAxCisrCisrLyogUUVNVSBkb2VzIG5vdCBz dXBwb3J0IHNldF9yb2J1c3RfbGlzdC4gICovCisrI3VuZGVmIF9fQVNTVU1FX1NFVF9ST0JVU1Rf TElTVAorLS0gCisyLjM4LjEKKworCitGcm9tIDE4YmVjMjNjYmI0ZDUzMGEyYThjZTk1MzUzNzcw NjYxZmFiY2Q1NWYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBdXJlbGllbiBKYXJu byA8YXVyZWxpZW5AYXVyZWwzMi5uZXQ+CitEYXRlOiBNb24sIDMgT2N0IDIwMjIgMjM6NDY6MTEg KzAyMDAKK1N1YmplY3Q6IFtQQVRDSCA0OS83Ml0geDg2OiBpbmNsdWRlIEJNSTEgYW5kIEJNSTIg aW4geDg2LTY0LXYzIGxldmVsCisKK1RoZSAiU3lzdGVtIFYgQXBwbGljYXRpb24gQmluYXJ5IElu dGVyZmFjZSBBTUQ2NCBBcmNoaXRlY3R1cmUgUHJvY2Vzc29yCitTdXBwbGVtZW50IiBtYW5kYXRl cyB0aGUgQk1JMSBhbmQgQk1JMiBDUFUgZmVhdHVyZXMgZm9yIHRoZSB4ODYtNjQtdjMKK2xldmVs LgorCitSZXZpZXdlZC1ieTogTm9haCBHb2xkc3RlaW4gIDxnb2xkc3RlaW4udy5uQGdtYWlsLmNv bT4KKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IGI4MGYxNmFkYmQ5Nzk4MzFiZjI1ZWE0OTFl MTI2MWU4MTg4NWMyYjYpCistLS0KKyBzeXNkZXBzL3g4Ni9nZXQtaXNhLWxldmVsLmggfCAyICsr CisgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvc3lzZGVw cy94ODYvZ2V0LWlzYS1sZXZlbC5oIGIvc3lzZGVwcy94ODYvZ2V0LWlzYS1sZXZlbC5oCitpbmRl eCAxYWRlNzhhYjczLi41YjRkZDVmMDYyIDEwMDY0NAorLS0tIGEvc3lzZGVwcy94ODYvZ2V0LWlz YS1sZXZlbC5oCisrKysgYi9zeXNkZXBzL3g4Ni9nZXQtaXNhLWxldmVsLmgKK0BAIC00Nyw2ICs0 Nyw4IEBAIGdldF9pc2FfbGV2ZWwgKGNvbnN0IHN0cnVjdCBjcHVfZmVhdHVyZXMgKmNwdV9mZWF0 dXJlcykKKyAJICBpc2FfbGV2ZWwgfD0gR05VX1BST1BFUlRZX1g4Nl9JU0FfMV9WMjsKKyAJICBp ZiAoQ1BVX0ZFQVRVUkVfVVNBQkxFX1AgKGNwdV9mZWF0dXJlcywgQVZYKQorIAkgICAgICAmJiBD UFVfRkVBVFVSRV9VU0FCTEVfUCAoY3B1X2ZlYXR1cmVzLCBBVlgyKQorKwkgICAgICAmJiBDUFVf RkVBVFVSRV9VU0FCTEVfUCAoY3B1X2ZlYXR1cmVzLCBCTUkxKQorKwkgICAgICAmJiBDUFVfRkVB VFVSRV9VU0FCTEVfUCAoY3B1X2ZlYXR1cmVzLCBCTUkyKQorIAkgICAgICAmJiBDUFVfRkVBVFVS RV9VU0FCTEVfUCAoY3B1X2ZlYXR1cmVzLCBGMTZDKQorIAkgICAgICAmJiBDUFVfRkVBVFVSRV9V U0FCTEVfUCAoY3B1X2ZlYXR1cmVzLCBGTUEpCisgCSAgICAgICYmIENQVV9GRUFUVVJFX1VTQUJM RV9QIChjcHVfZmVhdHVyZXMsIExaQ05UKQorLS0gCisyLjM4LjEKKworCitGcm9tIDQ2NDc5ZTVk MTBlZDg3ODI1YWEyNzdkYTE1OGQ2YTY4Nzk3NDUxOGIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CitGcm9tOiBBdXJlbGllbiBKYXJubyA8YXVyZWxpZW5AYXVyZWwzMi5uZXQ+CitEYXRlOiBNb24s IDMgT2N0IDIwMjIgMjM6NDY6MTEgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCA1MC83Ml0geDg2LTY0 OiBSZXF1aXJlIEJNSTIgZm9yIEFWWDIgc3RyKG4pY2FzZWNtcAorIGltcGxlbWVudGF0aW9ucwor CitUaGUgQVZYMiBzdHIobiljYXNlY21wIGltcGxlbWVudGF0aW9ucyB1c2UgdGhlICdiemhpJyBp bnN0cnVjdGlvbiwgd2hpY2gKK2JlbG9uZ3MgdG8gdGhlIEJNSTIgQ1BVIGZlYXR1cmUuCisKK05C OiBJdCBhbHNvIHVzZXMgdGhlICd0emNudCcgQk1JMSBpbnN0cnVjdGlvbiwgYnV0IGl0IGlzIGV4 ZWN1dGVkIGFzIEJTRgorYXMgQlNGIGlmIHRoZSBDUFUgZG9lc24ndCBzdXBwb3J0IFRaQ05ULCBh bmQgcHJvZHVjZXMgdGhlIHNhbWUgcmVzdWx0Citmb3Igbm9uLXplcm8gaW5wdXQuCisKK1BhcnRp YWxseSBmaXhlczogYjc3YjA2ZTBlMjk2ICgieDg2OiBPcHRpbWl6ZSBzdHJjbXAtYXZ4Mi5TIikK K1BhcnRpYWxseSByZXNvbHZlczogQlogIzI5NjExCisKK1Jldmlld2VkLWJ5OiBOb2FoIEdvbGRz dGVpbiAgPGdvbGRzdGVpbi53Lm5AZ21haWwuY29tPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21t aXQgMTBmNzlkMzY3MGIwMzY5MjVkYTYzZGM1MzJiMTIyZDI3Y2U2NWZmOCkKKy0tLQorIHN5c2Rl cHMveDg2XzY0L211bHRpYXJjaC9pZnVuYy1pbXBsLWxpc3QuYyAgfCAyOCArKysrKysrKysrKysr KystLS0tLS0KKyBzeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvaWZ1bmMtc3RyY2FzZWNtcC5oIHwg IDEgKworIDIgZmlsZXMgY2hhbmdlZCwgMjEgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkK KworZGlmZiAtLWdpdCBhL3N5c2RlcHMveDg2XzY0L211bHRpYXJjaC9pZnVuYy1pbXBsLWxpc3Qu YyBiL3N5c2RlcHMveDg2XzY0L211bHRpYXJjaC9pZnVuYy1pbXBsLWxpc3QuYworaW5kZXggYTcx NDQ0ZWNjYi4uZDIwOGZhZTRiZiAxMDA2NDQKKy0tLSBhL3N5c2RlcHMveDg2XzY0L211bHRpYXJj aC9pZnVuYy1pbXBsLWxpc3QuYworKysrIGIvc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL2lmdW5j LWltcGwtbGlzdC5jCitAQCAtNDQ4LDEzICs0NDgsMTYgQEAgX19saWJjX2lmdW5jX2ltcGxfbGlz dCAoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IGxpYmNfaWZ1bmNfaW1wbCAqYXJyYXksCisgICBJ RlVOQ19JTVBMIChpLCBuYW1lLCBzdHJjYXNlY21wLAorIAkgICAgICBYODZfSUZVTkNfSU1QTF9B RERfVjQgKGFycmF5LCBpLCBzdHJjYXNlY21wLAorIAkJCQkgICAgIChDUFVfRkVBVFVSRV9VU0FC TEUgKEFWWDUxMlZMKQorLQkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKEFWWDUxMkJX KSksCisrCQkJCSAgICAgICYmIENQVV9GRUFUVVJFX1VTQUJMRSAoQVZYNTEyQlcpCisrCQkJCSAg ICAgICYmIENQVV9GRUFUVVJFX1VTQUJMRSAoQk1JMikpLAorIAkJCQkgICAgIF9fc3RyY2FzZWNt cF9ldmV4KQorIAkgICAgICBYODZfSUZVTkNfSU1QTF9BRERfVjMgKGFycmF5LCBpLCBzdHJjYXNl Y21wLAorLQkJCQkgICAgIENQVV9GRUFUVVJFX1VTQUJMRSAoQVZYMiksCisrCQkJCSAgICAgKENQ VV9GRUFUVVJFX1VTQUJMRSAoQVZYMikKKysJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxF IChCTUkyKSksCisgCQkJCSAgICAgX19zdHJjYXNlY21wX2F2eDIpCisgCSAgICAgIFg4Nl9JRlVO Q19JTVBMX0FERF9WMyAoYXJyYXksIGksIHN0cmNhc2VjbXAsCisgCQkJCSAgICAgKENQVV9GRUFU VVJFX1VTQUJMRSAoQVZYMikKKysJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChCTUky KQorIAkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKFJUTSkpLAorIAkJCQkgICAgIF9f c3RyY2FzZWNtcF9hdngyX3J0bSkKKyAJICAgICAgWDg2X0lGVU5DX0lNUExfQUREX1YyIChhcnJh eSwgaSwgc3RyY2FzZWNtcCwKK0BAIC00NzAsMTMgKzQ3MywxNiBAQCBfX2xpYmNfaWZ1bmNfaW1w bF9saXN0IChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgbGliY19pZnVuY19pbXBsICphcnJheSwK KyAgIElGVU5DX0lNUEwgKGksIG5hbWUsIHN0cmNhc2VjbXBfbCwKKyAJICAgICAgWDg2X0lGVU5D X0lNUExfQUREX1Y0IChhcnJheSwgaSwgc3RyY2FzZWNtcCwKKyAJCQkJICAgICAoQ1BVX0ZFQVRV UkVfVVNBQkxFIChBVlg1MTJWTCkKKy0JCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChB Vlg1MTJCVykpLAorKwkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKEFWWDUxMkJXKQor KwkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKEJNSTIpKSwKKyAJCQkJICAgICBfX3N0 cmNhc2VjbXBfbF9ldmV4KQorIAkgICAgICBYODZfSUZVTkNfSU1QTF9BRERfVjMgKGFycmF5LCBp LCBzdHJjYXNlY21wLAorLQkJCQkgICAgIENQVV9GRUFUVVJFX1VTQUJMRSAoQVZYMiksCisrCQkJ CSAgICAgKENQVV9GRUFUVVJFX1VTQUJMRSAoQVZYMikKKysJCQkJICAgICAgJiYgQ1BVX0ZFQVRV UkVfVVNBQkxFIChCTUkyKSksCisgCQkJCSAgICAgX19zdHJjYXNlY21wX2xfYXZ4MikKKyAJICAg ICAgWDg2X0lGVU5DX0lNUExfQUREX1YzIChhcnJheSwgaSwgc3RyY2FzZWNtcCwKKyAJCQkJICAg ICAoQ1BVX0ZFQVRVUkVfVVNBQkxFIChBVlgyKQorKwkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9V U0FCTEUgKEJNSTIpCisgCQkJCSAgICAgICYmIENQVV9GRUFUVVJFX1VTQUJMRSAoUlRNKSksCisg CQkJCSAgICAgX19zdHJjYXNlY21wX2xfYXZ4Ml9ydG0pCisgCSAgICAgIFg4Nl9JRlVOQ19JTVBM X0FERF9WMiAoYXJyYXksIGksIHN0cmNhc2VjbXBfbCwKK0BAIC02MzgsMTMgKzY0NCwxNiBAQCBf X2xpYmNfaWZ1bmNfaW1wbF9saXN0IChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgbGliY19pZnVu Y19pbXBsICphcnJheSwKKyAgIElGVU5DX0lNUEwgKGksIG5hbWUsIHN0cm5jYXNlY21wLAorIAkg ICAgICBYODZfSUZVTkNfSU1QTF9BRERfVjQgKGFycmF5LCBpLCBzdHJuY2FzZWNtcCwKKyAJCQkJ ICAgICAoQ1BVX0ZFQVRVUkVfVVNBQkxFIChBVlg1MTJWTCkKKy0JCQkJICAgICAgJiYgQ1BVX0ZF QVRVUkVfVVNBQkxFIChBVlg1MTJCVykpLAorKwkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FC TEUgKEFWWDUxMkJXKQorKwkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKEJNSTIpKSwK KyAJCQkJICAgICBfX3N0cm5jYXNlY21wX2V2ZXgpCisgCSAgICAgIFg4Nl9JRlVOQ19JTVBMX0FE RF9WMyAoYXJyYXksIGksIHN0cm5jYXNlY21wLAorLQkJCQkgICAgIENQVV9GRUFUVVJFX1VTQUJM RSAoQVZYMiksCisrCQkJCSAgICAgKENQVV9GRUFUVVJFX1VTQUJMRSAoQVZYMikKKysJCQkJICAg ICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChCTUkyKSksCisgCQkJCSAgICAgX19zdHJuY2FzZWNt cF9hdngyKQorIAkgICAgICBYODZfSUZVTkNfSU1QTF9BRERfVjMgKGFycmF5LCBpLCBzdHJuY2Fz ZWNtcCwKKyAJCQkJICAgICAoQ1BVX0ZFQVRVUkVfVVNBQkxFIChBVlgyKQorKwkJCQkgICAgICAm JiBDUFVfRkVBVFVSRV9VU0FCTEUgKEJNSTIpCisgCQkJCSAgICAgICYmIENQVV9GRUFUVVJFX1VT QUJMRSAoUlRNKSksCisgCQkJCSAgICAgX19zdHJuY2FzZWNtcF9hdngyX3J0bSkKKyAJICAgICAg WDg2X0lGVU5DX0lNUExfQUREX1YyIChhcnJheSwgaSwgc3RybmNhc2VjbXAsCitAQCAtNjYwLDEz ICs2NjksMTYgQEAgX19saWJjX2lmdW5jX2ltcGxfbGlzdCAoY29uc3QgY2hhciAqbmFtZSwgc3Ry dWN0IGxpYmNfaWZ1bmNfaW1wbCAqYXJyYXksCisgICBJRlVOQ19JTVBMIChpLCBuYW1lLCBzdHJu Y2FzZWNtcF9sLAorIAkgICAgICBYODZfSUZVTkNfSU1QTF9BRERfVjQgKGFycmF5LCBpLCBzdHJu Y2FzZWNtcCwKKyAJCQkJICAgICAoQ1BVX0ZFQVRVUkVfVVNBQkxFIChBVlg1MTJWTCkKKy0JCQkJ ICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChBVlg1MTJCVykpLAorKwkJCQkgICAgICAmIENQ VV9GRUFUVVJFX1VTQUJMRSAoQVZYNTEyQlcpCisrCQkJCSAgICAgICYmIENQVV9GRUFUVVJFX1VT QUJMRSAoQk1JMikpLAorIAkJCQkgICAgIF9fc3RybmNhc2VjbXBfbF9ldmV4KQorIAkgICAgICBY ODZfSUZVTkNfSU1QTF9BRERfVjMgKGFycmF5LCBpLCBzdHJuY2FzZWNtcCwKKy0JCQkJICAgICBD UFVfRkVBVFVSRV9VU0FCTEUgKEFWWDIpLAorKwkJCQkgICAgIChDUFVfRkVBVFVSRV9VU0FCTEUg KEFWWDIpCisrCQkJCSAgICAgICYmIENQVV9GRUFUVVJFX1VTQUJMRSAoQk1JMikpLAorIAkJCQkg ICAgIF9fc3RybmNhc2VjbXBfbF9hdngyKQorIAkgICAgICBYODZfSUZVTkNfSU1QTF9BRERfVjMg KGFycmF5LCBpLCBzdHJuY2FzZWNtcCwKKyAJCQkJICAgICAoQ1BVX0ZFQVRVUkVfVVNBQkxFIChB VlgyKQorKwkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKEJNSTIpCisgCQkJCSAgICAg ICYmIENQVV9GRUFUVVJFX1VTQUJMRSAoUlRNKSksCisgCQkJCSAgICAgX19zdHJuY2FzZWNtcF9s X2F2eDJfcnRtKQorIAkgICAgICBYODZfSUZVTkNfSU1QTF9BRERfVjIgKGFycmF5LCBpLCBzdHJu Y2FzZWNtcF9sLAorZGlmZiAtLWdpdCBhL3N5c2RlcHMveDg2XzY0L211bHRpYXJjaC9pZnVuYy1z dHJjYXNlY21wLmggYi9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvaWZ1bmMtc3RyY2FzZWNtcC5o CitpbmRleCA2ODY0NmVmMTk5Li43NjIyYWYyNTljIDEwMDY0NAorLS0tIGEvc3lzZGVwcy94ODZf NjQvbXVsdGlhcmNoL2lmdW5jLXN0cmNhc2VjbXAuaAorKysrIGIvc3lzZGVwcy94ODZfNjQvbXVs dGlhcmNoL2lmdW5jLXN0cmNhc2VjbXAuaAorQEAgLTM0LDYgKzM0LDcgQEAgSUZVTkNfU0VMRUNU T1IgKHZvaWQpCisgICBjb25zdCBzdHJ1Y3QgY3B1X2ZlYXR1cmVzICpjcHVfZmVhdHVyZXMgPSBf X2dldF9jcHVfZmVhdHVyZXMgKCk7CisgCisgICBpZiAoWDg2X0lTQV9DUFVfRkVBVFVSRV9VU0FC TEVfUCAoY3B1X2ZlYXR1cmVzLCBBVlgyKQorKyAgICAgICYmIFg4Nl9JU0FfQ1BVX0ZFQVRVUkVf VVNBQkxFX1AgKGNwdV9mZWF0dXJlcywgQk1JMikKKyAgICAgICAmJiBYODZfSVNBX0NQVV9GRUFU VVJFU19BUkNIX1AgKGNwdV9mZWF0dXJlcywKKyAJCQkJICAgICAgQVZYX0Zhc3RfVW5hbGlnbmVk X0xvYWQsICkpCisgICAgIHsKKy0tIAorMi4zOC4xCisKKworRnJvbSA3YWZiZDFlNTZhY2I3MjEw MzFiZmZkODc2ZjI3NWRjYjFhZjdlNTMwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTog QXVyZWxpZW4gSmFybm8gPGF1cmVsaWVuQGF1cmVsMzIubmV0PgorRGF0ZTogTW9uLCAzIE9jdCAy MDIyIDIzOjQ2OjExICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggNTEvNzJdIHg4Ni02NDogUmVxdWly ZSBCTUkyIGZvciBBVlgyIHN0cmNtcCBpbXBsZW1lbnRhdGlvbgorCitUaGUgQVZYMiBzdHJjbXAg aW1wbGVtZW50YXRpb24gdXNlcyB0aGUgJ2J6aGknIGluc3RydWN0aW9uLCB3aGljaAorYmVsb25n cyB0byB0aGUgQk1JMiBDUFUgZmVhdHVyZS4KKworTkI6IEl0IGFsc28gdXNlcyB0aGUgJ3R6Y250 JyBCTUkxIGluc3RydWN0aW9uLCBidXQgaXQgaXMgZXhlY3V0ZWQgYXMgQlNGCithcyBCU0YgaWYg dGhlIENQVSBkb2Vzbid0IHN1cHBvcnQgVFpDTlQsIGFuZCBwcm9kdWNlcyB0aGUgc2FtZSByZXN1 bHQKK2ZvciBub24temVybyBpbnB1dC4KKworUGFydGlhbGx5IGZpeGVzOiBiNzdiMDZlMGUyOTYg KCJ4ODY6IE9wdGltaXplIHN0cmNtcC1hdngyLlMiKQorUGFydGlhbGx5IHJlc29sdmVzOiBCWiAj Mjk2MTEKKworUmV2aWV3ZWQtYnk6IE5vYWggR29sZHN0ZWluICA8Z29sZHN0ZWluLncubkBnbWFp bC5jb20+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA0ZDY0YzY0NDU3MzVlOWIzNGUyYWM4 ZTM2OTMxMmNiZmMyZjg4ZTE3KQorLS0tCisgc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL2lmdW5j LWltcGwtbGlzdC5jIHwgNCArKystCisgc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL3N0cmNtcC5j ICAgICAgICAgIHwgNCArKy0tCisgMiBmaWxlcyBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDMg ZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvaWZ1 bmMtaW1wbC1saXN0LmMgYi9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvaWZ1bmMtaW1wbC1saXN0 LmMKK2luZGV4IGQyMDhmYWU0YmYuLmE0MmIwYTQ2MjAgMTAwNjQ0CistLS0gYS9zeXNkZXBzL3g4 Nl82NC9tdWx0aWFyY2gvaWZ1bmMtaW1wbC1saXN0LmMKKysrKyBiL3N5c2RlcHMveDg2XzY0L211 bHRpYXJjaC9pZnVuYy1pbXBsLWxpc3QuYworQEAgLTU5MSwxMCArNTkxLDEyIEBAIF9fbGliY19p ZnVuY19pbXBsX2xpc3QgKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBsaWJjX2lmdW5jX2ltcGwg KmFycmF5LAorIAkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKEJNSTIpKSwKKyAJCQkJ ICAgICBfX3N0cmNtcF9ldmV4KQorIAkgICAgICBYODZfSUZVTkNfSU1QTF9BRERfVjMgKGFycmF5 LCBpLCBzdHJjbXAsCistCQkJCSAgICAgQ1BVX0ZFQVRVUkVfVVNBQkxFIChBVlgyKSwKKysJCQkJ ICAgICAoQ1BVX0ZFQVRVUkVfVVNBQkxFIChBVlgyKQorKwkJCQkgICAgICAmJiBDUFVfRkVBVFVS RV9VU0FCTEUgKEJNSTIpKSwKKyAJCQkJICAgICBfX3N0cmNtcF9hdngyKQorIAkgICAgICBYODZf SUZVTkNfSU1QTF9BRERfVjMgKGFycmF5LCBpLCBzdHJjbXAsCisgCQkJCSAgICAgKENQVV9GRUFU VVJFX1VTQUJMRSAoQVZYMikKKysJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChCTUky KQorIAkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKFJUTSkpLAorIAkJCQkgICAgIF9f c3RyY21wX2F2eDJfcnRtKQorIAkgICAgICBYODZfSUZVTkNfSU1QTF9BRERfVjIgKGFycmF5LCBp LCBzdHJjbXAsCitkaWZmIC0tZ2l0IGEvc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL3N0cmNtcC5j IGIvc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL3N0cmNtcC5jCitpbmRleCBmZGQ1YWZlM2FmLi45 ZDZjOWY2NmJhIDEwMDY0NAorLS0tIGEvc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL3N0cmNtcC5j CisrKysgYi9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvc3RyY21wLmMKK0BAIC00NSwxMiArNDUs MTIgQEAgSUZVTkNfU0VMRUNUT1IgKHZvaWQpCisgICBjb25zdCBzdHJ1Y3QgY3B1X2ZlYXR1cmVz ICpjcHVfZmVhdHVyZXMgPSBfX2dldF9jcHVfZmVhdHVyZXMgKCk7CisgCisgICBpZiAoWDg2X0lT QV9DUFVfRkVBVFVSRV9VU0FCTEVfUCAoY3B1X2ZlYXR1cmVzLCBBVlgyKQorKyAgICAgICYmIFg4 Nl9JU0FfQ1BVX0ZFQVRVUkVfVVNBQkxFX1AgKGNwdV9mZWF0dXJlcywgQk1JMikKKyAgICAgICAm JiBYODZfSVNBX0NQVV9GRUFUVVJFU19BUkNIX1AgKGNwdV9mZWF0dXJlcywKKyAJCQkJICAgICAg QVZYX0Zhc3RfVW5hbGlnbmVkX0xvYWQsICkpCisgICAgIHsKKyAgICAgICBpZiAoWDg2X0lTQV9D UFVfRkVBVFVSRV9VU0FCTEVfUCAoY3B1X2ZlYXR1cmVzLCBBVlg1MTJWTCkKKy0JICAmJiBYODZf SVNBX0NQVV9GRUFUVVJFX1VTQUJMRV9QIChjcHVfZmVhdHVyZXMsIEFWWDUxMkJXKQorLQkgICYm IFg4Nl9JU0FfQ1BVX0ZFQVRVUkVfVVNBQkxFX1AgKGNwdV9mZWF0dXJlcywgQk1JMikpCisrCSAg JiYgWDg2X0lTQV9DUFVfRkVBVFVSRV9VU0FCTEVfUCAoY3B1X2ZlYXR1cmVzLCBBVlg1MTJCVykp CisgCXJldHVybiBPUFRJTUlaRSAoZXZleCk7CisgCisgICAgICAgaWYgKENQVV9GRUFUVVJFX1VT QUJMRV9QIChjcHVfZmVhdHVyZXMsIFJUTSkpCistLSAKKzIuMzguMQorCisKK0Zyb20gMjljNTc3 ZTBmNTRmZTZlNzBjZWFjYjM2NTkxNzk3ODFjNTU2OTkwMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKK0Zyb206IEF1cmVsaWVuIEphcm5vIDxhdXJlbGllbkBhdXJlbDMyLm5ldD4KK0RhdGU6IE1v biwgMyBPY3QgMjAyMiAyMzo0NjoxMSArMDIwMAorU3ViamVjdDogW1BBVENIIDUyLzcyXSB4ODYt NjQ6IFJlcXVpcmUgQk1JMiBmb3IgQVZYMiBzdHJuY21wIGltcGxlbWVudGF0aW9uCisKK1RoZSBB VlgyIHN0cm5jbXAgaW1wbGVtZW50YXRpb25zIHVzZXMgdGhlICdiemhpJyBpbnN0cnVjdGlvbiwg d2hpY2gKK2JlbG9uZ3MgdG8gdGhlIEJNSTIgQ1BVIGZlYXR1cmUuCisKK05COiBJdCBhbHNvIHVz ZXMgdGhlICd0emNudCcgQk1JMSBpbnN0cnVjdGlvbiwgYnV0IGl0IGlzIGV4ZWN1dGVkIGFzIEJT RgorYXMgQlNGIGlmIHRoZSBDUFUgZG9lc24ndCBzdXBwb3J0IFRaQ05ULCBhbmQgcHJvZHVjZXMg dGhlIHNhbWUgcmVzdWx0Citmb3Igbm9uLXplcm8gaW5wdXQuCisKK1BhcnRpYWxseSBmaXhlczog Yjc3YjA2ZTBlMjk2ICgieDg2OiBPcHRpbWl6ZSBzdHJjbXAtYXZ4Mi5TIikKK1BhcnRpYWxseSBy ZXNvbHZlczogQlogIzI5NjExCisKK1Jldmlld2VkLWJ5OiBOb2FoIEdvbGRzdGVpbiAgPGdvbGRz dGVpbi53Lm5AZ21haWwuY29tPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgZmM3ZGUxZDli OTlhZTE2NzZiYzYyNmRkY2E0MjJkN2FiZWUwZWI0OCkKKy0tLQorIHN5c2RlcHMveDg2XzY0L211 bHRpYXJjaC9pZnVuYy1pbXBsLWxpc3QuYyB8IDcgKysrKystLQorIHN5c2RlcHMveDg2XzY0L211 bHRpYXJjaC9zdHJuY21wLmMgICAgICAgICB8IDQgKystLQorIDIgZmlsZXMgY2hhbmdlZCwgNyBp bnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc3lzZGVwcy94ODZf NjQvbXVsdGlhcmNoL2lmdW5jLWltcGwtbGlzdC5jIGIvc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNo L2lmdW5jLWltcGwtbGlzdC5jCitpbmRleCBhNDJiMGE0NjIwLi5hZWJlZjNkYWFmIDEwMDY0NAor LS0tIGEvc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL2lmdW5jLWltcGwtbGlzdC5jCisrKysgYi9z eXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvaWZ1bmMtaW1wbC1saXN0LmMKK0BAIC0xMTc2LDEzICsx MTc2LDE2IEBAIF9fbGliY19pZnVuY19pbXBsX2xpc3QgKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVj dCBsaWJjX2lmdW5jX2ltcGwgKmFycmF5LAorICAgSUZVTkNfSU1QTCAoaSwgbmFtZSwgc3RybmNt cCwKKyAJICAgICAgWDg2X0lGVU5DX0lNUExfQUREX1Y0IChhcnJheSwgaSwgc3RybmNtcCwKKyAJ CQkJICAgICAoQ1BVX0ZFQVRVUkVfVVNBQkxFIChBVlg1MTJWTCkKKy0JCQkJICAgICAgJiYgQ1BV X0ZFQVRVUkVfVVNBQkxFIChBVlg1MTJCVykpLAorKwkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9V U0FCTEUgKEFWWDUxMkJXKQorKwkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKEJNSTIp KSwKKyAJCQkJICAgICBfX3N0cm5jbXBfZXZleCkKKyAJICAgICAgWDg2X0lGVU5DX0lNUExfQURE X1YzIChhcnJheSwgaSwgc3RybmNtcCwKKy0JCQkJICAgICBDUFVfRkVBVFVSRV9VU0FCTEUgKEFW WDIpLAorKwkJCQkgICAgIChDUFVfRkVBVFVSRV9VU0FCTEUgKEFWWDIpCisrCQkJCSAgICAgICYm IENQVV9GRUFUVVJFX1VTQUJMRSAoQk1JMikpLAorIAkJCQkgICAgIF9fc3RybmNtcF9hdngyKQor IAkgICAgICBYODZfSUZVTkNfSU1QTF9BRERfVjMgKGFycmF5LCBpLCBzdHJuY21wLAorIAkJCQkg ICAgIChDUFVfRkVBVFVSRV9VU0FCTEUgKEFWWDIpCisrCQkJCSAgICAgICYmIENQVV9GRUFUVVJF X1VTQUJMRSAoQk1JMikKKyAJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChSVE0pKSwK KyAJCQkJICAgICBfX3N0cm5jbXBfYXZ4Ml9ydG0pCisgCSAgICAgIFg4Nl9JRlVOQ19JTVBMX0FE RF9WMiAoYXJyYXksIGksIHN0cm5jbXAsCitkaWZmIC0tZ2l0IGEvc3lzZGVwcy94ODZfNjQvbXVs dGlhcmNoL3N0cm5jbXAuYyBiL3N5c2RlcHMveDg2XzY0L211bHRpYXJjaC9zdHJuY21wLmMKK2lu ZGV4IDRlYmU0YmRlMzAuLmM0ZjhiNmJiYjUgMTAwNjQ0CistLS0gYS9zeXNkZXBzL3g4Nl82NC9t dWx0aWFyY2gvc3RybmNtcC5jCisrKysgYi9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvc3RybmNt cC5jCitAQCAtNDEsMTIgKzQxLDEyIEBAIElGVU5DX1NFTEVDVE9SICh2b2lkKQorICAgY29uc3Qg c3RydWN0IGNwdV9mZWF0dXJlcyAqY3B1X2ZlYXR1cmVzID0gX19nZXRfY3B1X2ZlYXR1cmVzICgp OworIAorICAgaWYgKFg4Nl9JU0FfQ1BVX0ZFQVRVUkVfVVNBQkxFX1AgKGNwdV9mZWF0dXJlcywg QVZYMikKKysgICAgICAmJiBYODZfSVNBX0NQVV9GRUFUVVJFX1VTQUJMRV9QIChjcHVfZmVhdHVy ZXMsIEJNSTIpCisgICAgICAgJiYgWDg2X0lTQV9DUFVfRkVBVFVSRVNfQVJDSF9QIChjcHVfZmVh dHVyZXMsCisgCQkJCSAgICAgIEFWWF9GYXN0X1VuYWxpZ25lZF9Mb2FkLCApKQorICAgICB7Cisg ICAgICAgaWYgKFg4Nl9JU0FfQ1BVX0ZFQVRVUkVfVVNBQkxFX1AgKGNwdV9mZWF0dXJlcywgQVZY NTEyVkwpCistCSAgJiYgWDg2X0lTQV9DUFVfRkVBVFVSRV9VU0FCTEVfUCAoY3B1X2ZlYXR1cmVz LCBBVlg1MTJCVykKKy0JICAmJiBYODZfSVNBX0NQVV9GRUFUVVJFX1VTQUJMRV9QIChjcHVfZmVh dHVyZXMsIEJNSTIpKQorKwkgICYmIFg4Nl9JU0FfQ1BVX0ZFQVRVUkVfVVNBQkxFX1AgKGNwdV9m ZWF0dXJlcywgQVZYNTEyQlcpKQorIAlyZXR1cm4gT1BUSU1JWkUgKGV2ZXgpOworIAorICAgICAg IGlmIChDUFVfRkVBVFVSRV9VU0FCTEVfUCAoY3B1X2ZlYXR1cmVzLCBSVE0pKQorLS0gCisyLjM4 LjEKKworCitGcm9tIGQ4YmY0Mzg4ZGY2NzlmYTVhM2FlNzg4OWE2NDllNTczZTMxMjQ1MzAgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBdXJlbGllbiBKYXJubyA8YXVyZWxpZW5AYXVy ZWwzMi5uZXQ+CitEYXRlOiBNb24sIDMgT2N0IDIwMjIgMjM6NDY6MTEgKzAyMDAKK1N1YmplY3Q6 IFtQQVRDSCA1My83Ml0geDg2LTY0OiBSZXF1aXJlIEJNSTIgZm9yIEFWWDIgd2NzKG4pY21wIGlt cGxlbWVudGF0aW9ucworCitUaGUgQVZYMiB3Y3MobiljbXAgaW1wbGVtZW50YXRpb25zIHVzZSB0 aGUgJ2J6aGknIGluc3RydWN0aW9uLCB3aGljaAorYmVsb25ncyB0byB0aGUgQk1JMiBDUFUgZmVh dHVyZS4KKworTkI6IEl0IGFsc28gdXNlcyB0aGUgJ3R6Y250JyBCTUkxIGluc3RydWN0aW9uLCBi dXQgaXQgaXMgZXhlY3V0ZWQgYXMgQlNGCithcyBCU0YgaWYgdGhlIENQVSBkb2Vzbid0IHN1cHBv cnQgVFpDTlQsIGFuZCBwcm9kdWNlcyB0aGUgc2FtZSByZXN1bHQKK2ZvciBub24temVybyBpbnB1 dC4KKworUGFydGlhbGx5IGZpeGVzOiBiNzdiMDZlMGUyOTYgKCJ4ODY6IE9wdGltaXplIHN0cmNt cC1hdngyLlMiKQorUGFydGlhbGx5IHJlc29sdmVzOiBCWiAjMjk2MTEKKworUmV2aWV3ZWQtYnk6 IE5vYWggR29sZHN0ZWluICA8Z29sZHN0ZWluLncubkBnbWFpbC5jb20+CisoY2hlcnJ5IHBpY2tl ZCBmcm9tIGNvbW1pdCBmMzFhNWE4ODRlZDg0YmQzNzAzMjcyOWQ0ZDFlYjlkMDZjOWYzYzI5KQor LS0tCisgc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL2lmdW5jLWltcGwtbGlzdC5jIHwgOCArKysr KystLQorIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisK K2RpZmYgLS1naXQgYS9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvaWZ1bmMtaW1wbC1saXN0LmMg Yi9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvaWZ1bmMtaW1wbC1saXN0LmMKK2luZGV4IGFlYmVm M2RhYWYuLmZlYzg3OTBjMTEgMTAwNjQ0CistLS0gYS9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gv aWZ1bmMtaW1wbC1saXN0LmMKKysrKyBiL3N5c2RlcHMveDg2XzY0L211bHRpYXJjaC9pZnVuYy1p bXBsLWxpc3QuYworQEAgLTgxMCwxMCArODEwLDEyIEBAIF9fbGliY19pZnVuY19pbXBsX2xpc3Qg KGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBsaWJjX2lmdW5jX2ltcGwgKmFycmF5LAorIAkJCQkg ICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKEJNSTIpKSwKKyAJCQkJICAgICBfX3djc2NtcF9l dmV4KQorIAkgICAgICBYODZfSUZVTkNfSU1QTF9BRERfVjMgKGFycmF5LCBpLCB3Y3NjbXAsCist CQkJCSAgICAgQ1BVX0ZFQVRVUkVfVVNBQkxFIChBVlgyKSwKKysJCQkJICAgICAoQ1BVX0ZFQVRV UkVfVVNBQkxFIChBVlgyKQorKwkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKEJNSTIp KSwKKyAJCQkJICAgICBfX3djc2NtcF9hdngyKQorIAkgICAgICBYODZfSUZVTkNfSU1QTF9BRERf VjMgKGFycmF5LCBpLCB3Y3NjbXAsCisgCQkJCSAgICAgKENQVV9GRUFUVVJFX1VTQUJMRSAoQVZY MikKKysJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChCTUkyKQorIAkJCQkgICAgICAm JiBDUFVfRkVBVFVSRV9VU0FCTEUgKFJUTSkpLAorIAkJCQkgICAgIF9fd2NzY21wX2F2eDJfcnRt KQorIAkgICAgICAvKiBJU0EgVjIgd3JhcHBlciBmb3IgU1NFMiBpbXBsZW1lbnRhdGlvbiBiZWNh dXNlIHRoZSBTU0UyCitAQCAtODMwLDEwICs4MzIsMTIgQEAgX19saWJjX2lmdW5jX2ltcGxfbGlz dCAoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IGxpYmNfaWZ1bmNfaW1wbCAqYXJyYXksCisgCQkJ CSAgICAgICYmIENQVV9GRUFUVVJFX1VTQUJMRSAoQk1JMikpLAorIAkJCQkgICAgIF9fd2NzbmNt cF9ldmV4KQorIAkgICAgICBYODZfSUZVTkNfSU1QTF9BRERfVjMgKGFycmF5LCBpLCB3Y3NuY21w LAorLQkJCQkgICAgIENQVV9GRUFUVVJFX1VTQUJMRSAoQVZYMiksCisrCQkJCSAgICAgKENQVV9G RUFUVVJFX1VTQUJMRSAoQVZYMikKKysJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChC TUkyKSksCisgCQkJCSAgICAgX193Y3NuY21wX2F2eDIpCisgCSAgICAgIFg4Nl9JRlVOQ19JTVBM X0FERF9WMyAoYXJyYXksIGksIHdjc25jbXAsCisgCQkJCSAgICAgKENQVV9GRUFUVVJFX1VTQUJM RSAoQVZYMikKKysJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChCTUkyKQorIAkJCQkg ICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKFJUTSkpLAorIAkJCQkgICAgIF9fd2NzbmNtcF9h dngyX3J0bSkKKyAJICAgICAgLyogSVNBIFYyIHdyYXBwZXIgZm9yIEdFTkVSSUMgaW1wbGVtZW50 YXRpb24gYmVjYXVzZSB0aGUKKy0tIAorMi4zOC4xCisKKworRnJvbSBkOTE5NmQ0ZjNmYTk5OTcz ODg2NTU4MTNkZGQyMzY0MjZhMTZkZDkyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTog QXVyZWxpZW4gSmFybm8gPGF1cmVsaWVuQGF1cmVsMzIubmV0PgorRGF0ZTogTW9uLCAzIE9jdCAy MDIyIDIzOjQ2OjExICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggNTQvNzJdIHg4Ni02NDogUmVxdWly ZSBCTUkyIGZvciBBVlgyIChyYXd8dyltZW1jaHIKKyBpbXBsZW1lbnRhdGlvbnMKKworVGhlIEFW WDIgbWVtY2hyLCByYXdtZW1jaHIgYW5kIHdtZW1jaHIgaW1wbGVtZW50YXRpb25zIHVzZSB0aGUg J2J6aGknCithbmQgJ3NhcngnIGluc3RydWN0aW9ucywgd2hpY2ggYmVsb25ncyB0byB0aGUgQk1J MiBDUFUgZmVhdHVyZS4KKworRml4ZXM6IGFjZmQwODhhMTk2MyAoIng4NjogT3B0aW1pemUgbWVt Y2hyLWF2eDIuUyIpCitQYXJ0aWFsbHkgcmVzb2x2ZXM6IEJaICMyOTYxMQorCitSZXZpZXdlZC1i eTogTm9haCBHb2xkc3RlaW4gIDxnb2xkc3RlaW4udy5uQGdtYWlsLmNvbT4KKyhjaGVycnkgcGlj a2VkIGZyb20gY29tbWl0IGUzZTdmYWI3ZmU1MTg2ZDE4Y2EyMDQ2ZDk5YmEzMjFjMjdkYjMwYWQp CistLS0KKyBzeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvaWZ1bmMtaW1wbC1saXN0LmMgfCAxMiAr KysrKysrKystLS0KKyAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9u cygtKQorCitkaWZmIC0tZ2l0IGEvc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL2lmdW5jLWltcGwt bGlzdC5jIGIvc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL2lmdW5jLWltcGwtbGlzdC5jCitpbmRl eCBmZWM4NzkwYzExLi43Yzg0OTYzZDkyIDEwMDY0NAorLS0tIGEvc3lzZGVwcy94ODZfNjQvbXVs dGlhcmNoL2lmdW5jLWltcGwtbGlzdC5jCisrKysgYi9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gv aWZ1bmMtaW1wbC1saXN0LmMKK0BAIC02OSwxMCArNjksMTIgQEAgX19saWJjX2lmdW5jX2ltcGxf bGlzdCAoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IGxpYmNfaWZ1bmNfaW1wbCAqYXJyYXksCisg CQkJCSAgICAgICYmIENQVV9GRUFUVVJFX1VTQUJMRSAoQk1JMikpLAorIAkJCQkgICAgIF9fbWVt Y2hyX2V2ZXhfcnRtKQorIAkgICAgICBYODZfSUZVTkNfSU1QTF9BRERfVjMgKGFycmF5LCBpLCBt ZW1jaHIsCistCQkJCSAgICAgQ1BVX0ZFQVRVUkVfVVNBQkxFIChBVlgyKSwKKysJCQkJICAgICAo Q1BVX0ZFQVRVUkVfVVNBQkxFIChBVlgyKQorKwkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FC TEUgKEJNSTIpKSwKKyAJCQkJICAgICBfX21lbWNocl9hdngyKQorIAkgICAgICBYODZfSUZVTkNf SU1QTF9BRERfVjMgKGFycmF5LCBpLCBtZW1jaHIsCisgCQkJCSAgICAgKENQVV9GRUFUVVJFX1VT QUJMRSAoQVZYMikKKysJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChCTUkyKQorIAkJ CQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKFJUTSkpLAorIAkJCQkgICAgIF9fbWVtY2hy X2F2eDJfcnRtKQorIAkgICAgICAvKiBJU0EgVjIgd3JhcHBlciBmb3IgU1NFMiBpbXBsZW1lbnRh dGlvbiBiZWNhdXNlIHRoZSBTU0UyCitAQCAtMzM1LDEwICszMzcsMTIgQEAgX19saWJjX2lmdW5j X2ltcGxfbGlzdCAoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IGxpYmNfaWZ1bmNfaW1wbCAqYXJy YXksCisgCQkJCSAgICAgICYmIENQVV9GRUFUVVJFX1VTQUJMRSAoQk1JMikpLAorIAkJCQkgICAg IF9fcmF3bWVtY2hyX2V2ZXhfcnRtKQorIAkgICAgICBYODZfSUZVTkNfSU1QTF9BRERfVjMgKGFy cmF5LCBpLCByYXdtZW1jaHIsCistCQkJCSAgICAgQ1BVX0ZFQVRVUkVfVVNBQkxFIChBVlgyKSwK KysJCQkJICAgICAoQ1BVX0ZFQVRVUkVfVVNBQkxFIChBVlgyKQorKwkJCQkgICAgICAmJiBDUFVf RkVBVFVSRV9VU0FCTEUgKEJNSTIpKSwKKyAJCQkJICAgICBfX3Jhd21lbWNocl9hdngyKQorIAkg ICAgICBYODZfSUZVTkNfSU1QTF9BRERfVjMgKGFycmF5LCBpLCByYXdtZW1jaHIsCisgCQkJCSAg ICAgKENQVV9GRUFUVVJFX1VTQUJMRSAoQVZYMikKKysJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVf VVNBQkxFIChCTUkyKQorIAkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKFJUTSkpLAor IAkJCQkgICAgIF9fcmF3bWVtY2hyX2F2eDJfcnRtKQorIAkgICAgICAvKiBJU0EgVjIgd3JhcHBl ciBmb3IgU1NFMiBpbXBsZW1lbnRhdGlvbiBiZWNhdXNlIHRoZSBTU0UyCitAQCAtOTI3LDEwICs5 MzEsMTIgQEAgX19saWJjX2lmdW5jX2ltcGxfbGlzdCAoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0 IGxpYmNfaWZ1bmNfaW1wbCAqYXJyYXksCisgCQkJCSAgICAgICYmIENQVV9GRUFUVVJFX1VTQUJM RSAoQk1JMikpLAorIAkJCQkgICAgIF9fd21lbWNocl9ldmV4X3J0bSkKKyAJICAgICAgWDg2X0lG VU5DX0lNUExfQUREX1YzIChhcnJheSwgaSwgd21lbWNociwKKy0JCQkJICAgICBDUFVfRkVBVFVS RV9VU0FCTEUgKEFWWDIpLAorKwkJCQkgICAgIChDUFVfRkVBVFVSRV9VU0FCTEUgKEFWWDIpCisr CQkJCSAgICAgICYmIENQVV9GRUFUVVJFX1VTQUJMRSAoQk1JMikpLAorIAkJCQkgICAgIF9fd21l bWNocl9hdngyKQorIAkgICAgICBYODZfSUZVTkNfSU1QTF9BRERfVjMgKGFycmF5LCBpLCB3bWVt Y2hyLAorIAkJCQkgICAgIChDUFVfRkVBVFVSRV9VU0FCTEUgKEFWWDIpCisrCQkJCSAgICAgICYm IENQVV9GRUFUVVJFX1VTQUJMRSAoQk1JMikKKyAJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNB QkxFIChSVE0pKSwKKyAJCQkJICAgICBfX3dtZW1jaHJfYXZ4Ml9ydG0pCisgCSAgICAgIC8qIElT QSBWMiB3cmFwcGVyIGZvciBTU0UyIGltcGxlbWVudGF0aW9uIGJlY2F1c2UgdGhlIFNTRTIKKy0t IAorMi4zOC4xCisKKworRnJvbSA5MjNjM2YzYzM3M2Y0OTllNjIxNjBlMDA4MzFkZGE1NzY0NDMz MTdiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQXVyZWxpZW4gSmFybm8gPGF1cmVs aWVuQGF1cmVsMzIubmV0PgorRGF0ZTogTW9uLCAzIE9jdCAyMDIyIDIzOjQ2OjExICswMjAwCitT dWJqZWN0OiBbUEFUQ0ggNTUvNzJdIHg4Ni02NDogUmVxdWlyZSBCTUkyIGFuZCBMWkNOVCBmb3Ig QVZYMiBtZW1yY2hyCisgaW1wbGVtZW50YXRpb24KKworVGhlIEFWWDIgbWVtcmNociBpbXBsZW1l bnRhdGlvbiB1c2VzIHRoZSAnc2hseGwnIGluc3RydWN0aW9uLCB3aGljaAorYmVsb25ncyB0byB0 aGUgQk1JMiBDUFUgZmVhdHVyZSBhbmQgdXNlcyB0aGUgJ2x6Y250JyBpbnN0cnVjdGlvbiwgd2hp Y2gKK2JlbG9uZ3MgdG8gdGhlIExaQ05UIENQVSBmZWF0dXJlLgorCitGaXhlczogYWY1MzA2YTcz NWViICgieDg2OiBPcHRpbWl6ZSBtZW1yY2hyLWF2eDIuUyIpCitQYXJ0aWFsbHkgcmVzb2x2ZXM6 IEJaICMyOTYxMQorCitSZXZpZXdlZC1ieTogTm9haCBHb2xkc3RlaW4gIDxnb2xkc3RlaW4udy5u QGdtYWlsLmNvbT4KKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDNjMGM3OGFmYWJmZWQ0YjZm YzE2MWMxNTllNjI4ZmJmMTRmZjM3MGIpCistLS0KKyBzeXNkZXBzL3g4Ni9pc2EtbGV2ZWwuaCAg ICAgICAgICAgICAgICAgICAgfCAgMSArCisgc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL2lmdW5j LWF2eDIuaCAgICAgIHwgIDEgKworIHN5c2RlcHMveDg2XzY0L211bHRpYXJjaC9pZnVuYy1pbXBs LWxpc3QuYyB8IDEwICsrKysrKysrLS0KKyAzIGZpbGVzIGNoYW5nZWQsIDEwIGluc2VydGlvbnMo KyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zeXNkZXBzL3g4Ni9pc2EtbGV2ZWwu aCBiL3N5c2RlcHMveDg2L2lzYS1sZXZlbC5oCitpbmRleCAzYzQ0ODBhYmE3Li5iYmI5MGY1YzVl IDEwMDY0NAorLS0tIGEvc3lzZGVwcy94ODYvaXNhLWxldmVsLmgKKysrKyBiL3N5c2RlcHMveDg2 L2lzYS1sZXZlbC5oCitAQCAtODAsNiArODAsNyBAQAorICNkZWZpbmUgQVZYX1g4Nl9JU0FfTEVW RUwgMworICNkZWZpbmUgQVZYMl9YODZfSVNBX0xFVkVMIDMKKyAjZGVmaW5lIEJNSTJfWDg2X0lT QV9MRVZFTCAzCisrI2RlZmluZSBMWkNOVF9YODZfSVNBX0xFVkVMIDMKKyAjZGVmaW5lIE1PVkJF X1g4Nl9JU0FfTEVWRUwgMworIAorIC8qIElTQSBsZXZlbCA+PSAyIGd1YXJhbnRlZWQgaW5jbHVk ZXMuICAqLworZGlmZiAtLWdpdCBhL3N5c2RlcHMveDg2XzY0L211bHRpYXJjaC9pZnVuYy1hdngy LmggYi9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvaWZ1bmMtYXZ4Mi5oCitpbmRleCBhNTdhOTk1 MmYzLi5mMTc0MTA4M2ZkIDEwMDY0NAorLS0tIGEvc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL2lm dW5jLWF2eDIuaAorKysrIGIvc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL2lmdW5jLWF2eDIuaAor QEAgLTM3LDYgKzM3LDcgQEAgSUZVTkNfU0VMRUNUT1IgKHZvaWQpCisgCisgICBpZiAoWDg2X0lT QV9DUFVfRkVBVFVSRV9VU0FCTEVfUCAoY3B1X2ZlYXR1cmVzLCBBVlgyKQorICAgICAgICYmIFg4 Nl9JU0FfQ1BVX0ZFQVRVUkVfVVNBQkxFX1AgKGNwdV9mZWF0dXJlcywgQk1JMikKKysgICAgICAm JiBYODZfSVNBX0NQVV9GRUFUVVJFX1VTQUJMRV9QIChjcHVfZmVhdHVyZXMsIExaQ05UKQorICAg ICAgICYmIFg4Nl9JU0FfQ1BVX0ZFQVRVUkVTX0FSQ0hfUCAoY3B1X2ZlYXR1cmVzLAorIAkJCQkg ICAgICBBVlhfRmFzdF9VbmFsaWduZWRfTG9hZCwgKSkKKyAgICAgeworZGlmZiAtLWdpdCBhL3N5 c2RlcHMveDg2XzY0L211bHRpYXJjaC9pZnVuYy1pbXBsLWxpc3QuYyBiL3N5c2RlcHMveDg2XzY0 L211bHRpYXJjaC9pZnVuYy1pbXBsLWxpc3QuYworaW5kZXggN2M4NDk2M2Q5Mi4uZWMxYzViNTVm YiAxMDA2NDQKKy0tLSBhL3N5c2RlcHMveDg2XzY0L211bHRpYXJjaC9pZnVuYy1pbXBsLWxpc3Qu YworKysrIGIvc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL2lmdW5jLWltcGwtbGlzdC5jCitAQCAt MjA5LDEzICsyMDksMTkgQEAgX19saWJjX2lmdW5jX2ltcGxfbGlzdCAoY29uc3QgY2hhciAqbmFt ZSwgc3RydWN0IGxpYmNfaWZ1bmNfaW1wbCAqYXJyYXksCisgICBJRlVOQ19JTVBMIChpLCBuYW1l LCBtZW1yY2hyLAorIAkgICAgICBYODZfSUZVTkNfSU1QTF9BRERfVjQgKGFycmF5LCBpLCBtZW1y Y2hyLAorIAkJCQkgICAgIChDUFVfRkVBVFVSRV9VU0FCTEUgKEFWWDUxMlZMKQorLQkJCQkgICAg ICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKEFWWDUxMkJXKSksCisrCQkJCSAgICAgICYmIENQVV9G RUFUVVJFX1VTQUJMRSAoQVZYNTEyQlcpCisrCQkJCSAgICAgICYmIENQVV9GRUFUVVJFX1VTQUJM RSAoQk1JMikKKysJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChMWkNOVCkpLAorIAkJ CQkgICAgIF9fbWVtcmNocl9ldmV4KQorIAkgICAgICBYODZfSUZVTkNfSU1QTF9BRERfVjMgKGFy cmF5LCBpLCBtZW1yY2hyLAorLQkJCQkgICAgIENQVV9GRUFUVVJFX1VTQUJMRSAoQVZYMiksCisr CQkJCSAgICAgKENQVV9GRUFUVVJFX1VTQUJMRSAoQVZYMikKKysJCQkJICAgICAgJiYgQ1BVX0ZF QVRVUkVfVVNBQkxFIChCTUkyKQorKwkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKExa Q05UKSksCisgCQkJCSAgICAgX19tZW1yY2hyX2F2eDIpCisgCSAgICAgIFg4Nl9JRlVOQ19JTVBM X0FERF9WMyAoYXJyYXksIGksIG1lbXJjaHIsCisgCQkJCSAgICAgKENQVV9GRUFUVVJFX1VTQUJM RSAoQVZYMikKKysJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChCTUkyKQorKwkJCQkg ICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKExaQ05UKQorIAkJCQkgICAgICAmJiBDUFVfRkVB VFVSRV9VU0FCTEUgKFJUTSkpLAorIAkJCQkgICAgIF9fbWVtcmNocl9hdngyX3J0bSkKKyAJICAg ICAgLyogSVNBIFYyIHdyYXBwZXIgZm9yIFNTRTIgaW1wbGVtZW50YXRpb24gYmVjYXVzZSB0aGUg U1NFMgorLS0gCisyLjM4LjEKKworCitGcm9tIDJkOGVmNzg0YmQ2YTc4NDQ5NmE2ZmQ0NjBkZTZi NmY1N2M3MGE1MDEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBdXJlbGllbiBKYXJu byA8YXVyZWxpZW5AYXVyZWwzMi5uZXQ+CitEYXRlOiBNb24sIDMgT2N0IDIwMjIgMjM6NDY6MTEg KzAyMDAKK1N1YmplY3Q6IFtQQVRDSCA1Ni83Ml0geDg2LTY0OiBSZXF1aXJlIEJNSTEvQk1JMiBm b3IgQVZYMiBzdHJyY2hyIGFuZCB3Y3NyY2hyCisgaW1wbGVtZW50YXRpb25zCisKK1RoZSBBVlgy IHN0cnJjaHIgYW5kIHdjc3JjaHIgaW1wbGVtZW50YXRpb24gdXNlcyB0aGUgJ2Jsc21zaycKK2lu c3RydWN0aW9uIHdoaWNoIGJlbG9uZ3MgdG8gdGhlIEJNSTEgQ1BVIGZlYXR1cmUgYW5kIHRoZSAn c2hyeCcKK2luc3RydWN0aW9uLCB3aGljaCBiZWxvbmdzIHRvIHRoZSBCTUkyIENQVSBmZWF0dXJl LgorCitGaXhlczogZGY3ZTI5NWQxOGZmICgieDg2OiBPcHRpbWl6ZSB7c3RyfHdjc31yY2hyLWF2 eDIiKQorUGFydGlhbGx5IHJlc29sdmVzOiBCWiAjMjk2MTEKKworUmV2aWV3ZWQtYnk6IE5vYWgg R29sZHN0ZWluICA8Z29sZHN0ZWluLncubkBnbWFpbC5jb20+CisoY2hlcnJ5IHBpY2tlZCBmcm9t IGNvbW1pdCA3ZTgyODMxNzBjNWQ2ODA1YjYwOWEwNDA4MDFkODE5ZTM2MmE2MjkyKQorLS0tCisg c3lzZGVwcy94ODYvaXNhLWxldmVsLmggICAgICAgICAgICAgICAgICAgIHwgIDEgKworIHN5c2Rl cHMveDg2XzY0L211bHRpYXJjaC9pZnVuYy1hdngyLmggICAgICB8ICAxICsKKyBzeXNkZXBzL3g4 Nl82NC9tdWx0aWFyY2gvaWZ1bmMtaW1wbC1saXN0LmMgfCAxNyArKysrKysrKysrKysrKy0tLQor IDMgZmlsZXMgY2hhbmdlZCwgMTYgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKKworZGlm ZiAtLWdpdCBhL3N5c2RlcHMveDg2L2lzYS1sZXZlbC5oIGIvc3lzZGVwcy94ODYvaXNhLWxldmVs LmgKK2luZGV4IGJiYjkwZjVjNWUuLjA2ZjZjOTY2M2UgMTAwNjQ0CistLS0gYS9zeXNkZXBzL3g4 Ni9pc2EtbGV2ZWwuaAorKysrIGIvc3lzZGVwcy94ODYvaXNhLWxldmVsLmgKK0BAIC03OSw2ICs3 OSw3IEBACisgLyogSVNBIGxldmVsID49IDMgZ3VhcmFudGVlZCBpbmNsdWRlcy4gICovCisgI2Rl ZmluZSBBVlhfWDg2X0lTQV9MRVZFTCAzCisgI2RlZmluZSBBVlgyX1g4Nl9JU0FfTEVWRUwgMwor KyNkZWZpbmUgQk1JMV9YODZfSVNBX0xFVkVMIDMKKyAjZGVmaW5lIEJNSTJfWDg2X0lTQV9MRVZF TCAzCisgI2RlZmluZSBMWkNOVF9YODZfSVNBX0xFVkVMIDMKKyAjZGVmaW5lIE1PVkJFX1g4Nl9J U0FfTEVWRUwgMworZGlmZiAtLWdpdCBhL3N5c2RlcHMveDg2XzY0L211bHRpYXJjaC9pZnVuYy1h dngyLmggYi9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvaWZ1bmMtYXZ4Mi5oCitpbmRleCBmMTc0 MTA4M2ZkLi5mMmY1ZThhMjExIDEwMDY0NAorLS0tIGEvc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNo L2lmdW5jLWF2eDIuaAorKysrIGIvc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL2lmdW5jLWF2eDIu aAorQEAgLTM2LDYgKzM2LDcgQEAgSUZVTkNfU0VMRUNUT1IgKHZvaWQpCisgICBjb25zdCBzdHJ1 Y3QgY3B1X2ZlYXR1cmVzICpjcHVfZmVhdHVyZXMgPSBfX2dldF9jcHVfZmVhdHVyZXMgKCk7Cisg CisgICBpZiAoWDg2X0lTQV9DUFVfRkVBVFVSRV9VU0FCTEVfUCAoY3B1X2ZlYXR1cmVzLCBBVlgy KQorKyAgICAgICYmIFg4Nl9JU0FfQ1BVX0ZFQVRVUkVfVVNBQkxFX1AgKGNwdV9mZWF0dXJlcywg Qk1JMSkKKyAgICAgICAmJiBYODZfSVNBX0NQVV9GRUFUVVJFX1VTQUJMRV9QIChjcHVfZmVhdHVy ZXMsIEJNSTIpCisgICAgICAgJiYgWDg2X0lTQV9DUFVfRkVBVFVSRV9VU0FCTEVfUCAoY3B1X2Zl YXR1cmVzLCBMWkNOVCkKKyAgICAgICAmJiBYODZfSVNBX0NQVV9GRUFUVVJFU19BUkNIX1AgKGNw dV9mZWF0dXJlcywKK2RpZmYgLS1naXQgYS9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvaWZ1bmMt aW1wbC1saXN0LmMgYi9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvaWZ1bmMtaW1wbC1saXN0LmMK K2luZGV4IGVjMWM1YjU1ZmIuLjAwYTkxMTIzZDMgMTAwNjQ0CistLS0gYS9zeXNkZXBzL3g4Nl82 NC9tdWx0aWFyY2gvaWZ1bmMtaW1wbC1saXN0LmMKKysrKyBiL3N5c2RlcHMveDg2XzY0L211bHRp YXJjaC9pZnVuYy1pbXBsLWxpc3QuYworQEAgLTU3OCwxMyArNTc4LDE5IEBAIF9fbGliY19pZnVu Y19pbXBsX2xpc3QgKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBsaWJjX2lmdW5jX2ltcGwgKmFy cmF5LAorICAgSUZVTkNfSU1QTCAoaSwgbmFtZSwgc3RycmNociwKKyAJICAgICAgWDg2X0lGVU5D X0lNUExfQUREX1Y0IChhcnJheSwgaSwgc3RycmNociwKKyAJCQkJICAgICAoQ1BVX0ZFQVRVUkVf VVNBQkxFIChBVlg1MTJWTCkKKy0JCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChBVlg1 MTJCVykpLAorKwkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKEFWWDUxMkJXKQorKwkJ CQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKEJNSTEpCisrCQkJCSAgICAgICYmIENQVV9G RUFUVVJFX1VTQUJMRSAoQk1JMikpLAorIAkJCQkgICAgIF9fc3RycmNocl9ldmV4KQorIAkgICAg ICBYODZfSUZVTkNfSU1QTF9BRERfVjMgKGFycmF5LCBpLCBzdHJyY2hyLAorLQkJCQkgICAgIENQ VV9GRUFUVVJFX1VTQUJMRSAoQVZYMiksCisrCQkJCSAgICAgKENQVV9GRUFUVVJFX1VTQUJMRSAo QVZYMikKKysJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChCTUkxKQorKwkJCQkgICAg ICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKEJNSTIpKSwKKyAJCQkJICAgICBfX3N0cnJjaHJfYXZ4 MikKKyAJICAgICAgWDg2X0lGVU5DX0lNUExfQUREX1YzIChhcnJheSwgaSwgc3RycmNociwKKyAJ CQkJICAgICAoQ1BVX0ZFQVRVUkVfVVNBQkxFIChBVlgyKQorKwkJCQkgICAgICAmJiBDUFVfRkVB VFVSRV9VU0FCTEUgKEJNSTEpCisrCQkJCSAgICAgICYmIENQVV9GRUFUVVJFX1VTQUJMRSAoQk1J MikKKyAJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChSVE0pKSwKKyAJCQkJICAgICBf X3N0cnJjaHJfYXZ4Ml9ydG0pCisgCSAgICAgIC8qIElTQSBWMiB3cmFwcGVyIGZvciBTU0UyIGlt cGxlbWVudGF0aW9uIGJlY2F1c2UgdGhlIFNTRTIKK0BAIC03OTcsMTMgKzgwMywxOCBAQCBfX2xp YmNfaWZ1bmNfaW1wbF9saXN0IChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgbGliY19pZnVuY19p bXBsICphcnJheSwKKyAJICAgICAgWDg2X0lGVU5DX0lNUExfQUREX1Y0IChhcnJheSwgaSwgd2Nz cmNociwKKyAJCQkJICAgICAoQ1BVX0ZFQVRVUkVfVVNBQkxFIChBVlg1MTJWTCkKKyAJCQkJICAg ICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChBVlg1MTJCVykKKysJCQkJICAgICAgJiYgQ1BVX0ZF QVRVUkVfVVNBQkxFIChCTUkxKQorIAkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKEJN STIpKSwKKyAJCQkJICAgICBfX3djc3JjaHJfZXZleCkKKyAJICAgICAgWDg2X0lGVU5DX0lNUExf QUREX1YzIChhcnJheSwgaSwgd2NzcmNociwKKy0JCQkJICAgICBDUFVfRkVBVFVSRV9VU0FCTEUg KEFWWDIpLAorKwkJCQkgICAgIChDUFVfRkVBVFVSRV9VU0FCTEUgKEFWWDIpCisrCQkJCSAgICAg ICYmIENQVV9GRUFUVVJFX1VTQUJMRSAoQk1JMSkKKysJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVf VVNBQkxFIChCTUkyKSksCisgCQkJCSAgICAgX193Y3NyY2hyX2F2eDIpCisgCSAgICAgIFg4Nl9J RlVOQ19JTVBMX0FERF9WMyAoYXJyYXksIGksIHdjc3JjaHIsCisgCQkJCSAgICAgKENQVV9GRUFU VVJFX1VTQUJMRSAoQVZYMikKKysJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChCTUkx KQorKwkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKEJNSTIpCisgCQkJCSAgICAgICYm IENQVV9GRUFUVVJFX1VTQUJMRSAoUlRNKSksCisgCQkJCSAgICAgX193Y3NyY2hyX2F2eDJfcnRt KQorIAkgICAgICAvKiBJU0EgVjIgd3JhcHBlciBmb3IgU1NFMiBpbXBsZW1lbnRhdGlvbiBiZWNh dXNlIHRoZSBTU0UyCistLSAKKzIuMzguMQorCisKK0Zyb20gMmJkODE1ZDgzNDc4NTEyMTJiOWE5 MWRiZGNhODA1M2Y0ZGJkYWM4NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFNpZGRo ZXNoIFBveWFyZWthciA8c2lkZGhlc2hAc291cmNld2FyZS5vcmc+CitEYXRlOiBUdWUsIDQgT2N0 IDIwMjIgMTg6NDM6NTAgLTA0MDAKK1N1YmplY3Q6IFtQQVRDSCA1Ny83Ml0gbnNjZDogRHJvcCBs b2NhbCBhZGRyZXNzIHR1cGxlIHZhcmlhYmxlIFtCWiAjMjk2MDddCitNSU1FLVZlcnNpb246IDEu MAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5z ZmVyLUVuY29kaW5nOiA4Yml0CisKK1doZW4gYSByZXF1ZXN0IG5lZWRzIHRvIGJlIHJlc2VudCAo ZS5nLiBkdWUgdG8gaW5zdWZmaWNpZW50IGJ1ZmZlcgorc3BhY2UpLCB0aGUgcmVmZXJlbmNlcyB0 byBzdWJzZXF1ZW50IHR1cGxlcyBpbiB0aGUgbG9jYWwgdmFyaWFibGUgYXJlCitzdGFsZSBhbmQg c2hvdWxkIG5vdCBiZSB1c2VkLiAgVGhpcyB1c2VkIHRvIHdvcmsgYnkgYWNjaWRlbnQgYmVmb3Jl LCBidXQKK3NpbmNlIDFkNDk1OTEyYSBpdCBubyBsb25nZXIgZG9lcy4gIEluc3RlYWQgb2YgdHJ5 aW5nIHRvIHJlc2V0IGl0LCBqdXN0CitsZXQgZ2V0aG9zdGJ5bmFtZTRfciB3cml0ZSBpbnRvIFRV TVBCVUY2IGZvciB1cywgdGh1cyBtYWludGFpbmluZyBhCitjb25zaXN0ZW50IHN0YXRlIGF0IGFs bCB0aW1lcy4gIFRoaXMgaXMgbm93IGNvbnNpc3RlbnQgd2l0aCB3aGF0IGlzIGRvbmUKK2luIGdh aWhfaW5ldCBmb3IgZ2V0YWRkcmluZm8uCisKK1Jlc29sdmVzOiBCWiAjMjk2MDcKK1JlcG9ydGVk LWJ5OiBIb2xnZXIgSG9mZnN0w6R0dGUgPGhvbGdlckBhcHBsaWVkLWFzeW5jaHJvbnkuY29tPgor VGVzdGVkLWJ5OiBIb2xnZXIgSG9mZnN0w6R0dGUgPGhvbGdlckBhcHBsaWVkLWFzeW5jaHJvbnku Y29tPgorUmV2aWV3ZWQtYnk6IENhcmxvcyBPJ0RvbmVsbCA8Y2FybG9zQHJlZGhhdC5jb20+Ciso Y2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA2ZTMzZTVjNGI3M2NlYTdiOGFhM2RlMDk0NzEyM2Ri MTYyMDBmYjY1KQorLS0tCisgTkVXUyAgICAgICAgICAgfCAyICsrCisgbnNjZC9haWNhY2hlLmMg fCA1ICsrLS0tCisgMiBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25z KC0pCisKK2RpZmYgLS1naXQgYS9ORVdTIGIvTkVXUworaW5kZXggOTFiY2ZlYjdhNi4uNjNlMjZk NzA2MiAxMDA2NDQKKy0tLSBhL05FV1MKKysrKyBiL05FV1MKK0BAIC0yOCw2ICsyOCw4IEBAIFRo ZSBmb2xsb3dpbmcgYnVncyBhcmUgcmVzb2x2ZWQgd2l0aCB0aGlzIHJlbGVhc2U6CisgICBbMjk1 MzddIGxpYmM6IFsyLjM0IHJlZ3Jlc3Npb25dOiBBbGlnbm1lbnQgaXNzdWUgb24gbTY4ayB3aGVu IHVzaW5nCisgICBbMjk1MzldIGxpYmM6IExEX1RSQUNFX0xPQURFRF9PQkpFQ1RTIGNoYW5nZWQg aG93IHZEU08gbGlicmFyeSBhcmUKKyAgIFsyOTU4M10gVXNlIDY0LWJpdCBpbnRlcmZhY2VzIGlu IGdjb252X3BhcnNlY29uZmRpcgorKyAgWzI5NjA3XSBuc2NkIHJlcGVhdGFibHkgY3Jhc2hlcyBj YWxsaW5nIF9fc3RybGVuX2F2eDIgd2hlbiBob3N0cyBjYWNoZSBpcworKyAgICBlbmFibGVkCisg ICBbMjk2MzhdIGxpYmM6IHN0ZGxpYjogYXJjNHJhbmRvbSBmYWxsYmFjayBpcyBuZXZlciB1c2Vk CisgDAorIFZlcnNpb24gMi4zNgorZGlmZiAtLWdpdCBhL25zY2QvYWljYWNoZS5jIGIvbnNjZC9h aWNhY2hlLmMKK2luZGV4IDUxZTc5MzE5OWYuLmUwYmFlZDE3MGIgMTAwNjQ0CistLS0gYS9uc2Nk L2FpY2FjaGUuYworKysrIGIvbnNjZC9haWNhY2hlLmMKK0BAIC0xMTAsMTEgKzExMCwxMCBAQCBh ZGRoc3RhaVggKHN0cnVjdCBkYXRhYmFzZV9keW4gKmRiLCBpbnQgZmQsIHJlcXVlc3RfaGVhZGVy ICpyZXEsCisgCQkJCQkJCSAgImdldGhvc3RieW5hbWU0X3IiKTsKKyAgICAgICBpZiAoZmN0NCAh PSBOVUxMKQorIAl7CistCSAgc3RydWN0IGdhaWhfYWRkcnR1cGxlIGF0bWVtOworIAkgIHN0cnVj dCBnYWloX2FkZHJ0dXBsZSAqYXQ7CisgCSAgd2hpbGUgKDEpCisgCSAgICB7CistCSAgICAgIGF0 ID0gJmF0bWVtOworKwkgICAgICBhdCA9IE5VTEw7CisgCSAgICAgIHJjNiA9IDA7CisgCSAgICAg IGhlcnJubyA9IDA7CisgCSAgICAgIHN0YXR1c1sxXSA9IERMX0NBTExfRkNUIChmY3Q0LCAoa2V5 LCAmYXQsCitAQCAtMTM3LDcgKzEzNiw3IEBAIGFkZGhzdGFpWCAoc3RydWN0IGRhdGFiYXNlX2R5 biAqZGIsIGludCBmZCwgcmVxdWVzdF9oZWFkZXIgKnJlcSwKKyAJICAgIGdvdG8gbmV4dF9uaXA7 CisgCisgCSAgLyogV2UgZm91bmQgdGhlIGRhdGEuICBDb3VudCB0aGUgYWRkcmVzc2VzIGFuZCB0 aGUgc2l6ZS4gICovCistCSAgZm9yIChjb25zdCBzdHJ1Y3QgZ2FpaF9hZGRydHVwbGUgKmF0MiA9 IGF0ID0gJmF0bWVtOyBhdDIgIT0gTlVMTDsKKysJICBmb3IgKGNvbnN0IHN0cnVjdCBnYWloX2Fk ZHJ0dXBsZSAqYXQyID0gYXQ7IGF0MiAhPSBOVUxMOworIAkgICAgICAgYXQyID0gYXQyLT5uZXh0 KQorIAkgICAgeworIAkgICAgICArK25hZGRyczsKKy0tIAorMi4zOC4xCisKKworRnJvbSAzZTI3 OTE5Mjc0OWNmY2FlNGNlZWJiMWYyMWEzMjc1ZTY3N2QwNTYxIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQorRnJvbTogTWljaGFlbCBIdWRzb24tRG95bGUgPG1pY2hhZWwuaHVkc29uQGNhbm9uaWNh bC5jb20+CitEYXRlOiBGcmksIDEyIEF1ZyAyMDIyIDExOjI5OjMxICsxMjAwCitTdWJqZWN0OiBb UEFUQ0ggNTgvNzJdIEVuc3VyZSBjYWxjdWxhdGlvbnMgaGFwcGVuIHdpdGggZGVzaXJlZCByb3Vu ZGluZyBtb2RlCisgaW4geTFsZjEyOAorCittYXRoL3Rlc3QtZmxvYXQxMjgteTEgZmFpbHMgb24g eDg2XzY0IGFuZCBwcGM2NGVsIHdpdGggZ2NjIDEyIGFuZCAtTzMsCitiZWNhdXNlIGNvZGUgaW5z aWRlIGEgYmxvY2sgZ3VhcmRlZCBieSBTRVRfUkVTVE9SRV9ST1VOREwgaXMgYmVpbmcgbW92ZWQK K2FmdGVyIHRoZSByb3VuZGluZyBtb2RlIGhhcyBiZWVuIHJlc3RvcmVkLiBVc2UgbWF0aF9mb3Jj ZV9ldmFsIHRvCitwcmV2ZW50IHRoaXMgKGFuZCBpbnNlcnQgc29tZSBtYXRoX29wdF9iYXJyaWVy IGNhbGxzIHRvIHByZXZlbnQgY29kZQorZnJvbSBiZWluZyBtb3ZlZCBiZWZvcmUgdGhlIHJvdW5k aW5nIG1vZGUgaXMgc2V0KS4KKworRml4ZXMgIzI5NDYzCisKK1Jldmlld2VkLUJ5OiBXaWxjbyBE aWprc3RyYSA8V2lsY28uRGlqa3N0cmFAYXJtLmNvbT4KKyhjaGVycnkgcGlja2VkIGZyb20gY29t bWl0IDJiMjc0ZmQ4YzljNzc2Y2Y3MGZjZGI4MzU2ZTY3OGFkYTUyMmE3YjApCistLS0KKyBORVdT ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEgKworIHN5c2RlcHMvaWVlZTc1NC9sZGJs LTEyOC9lX2oxbC5jIHwgMyArKysKKyAyIGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKQor CitkaWZmIC0tZ2l0IGEvTkVXUyBiL05FV1MKK2luZGV4IDYzZTI2ZDcwNjIuLmJlYTFkOGExMWYg MTAwNjQ0CistLS0gYS9ORVdTCisrKysgYi9ORVdTCitAQCAtMjQsNiArMjQsNyBAQCBUaGUgZm9s bG93aW5nIGJ1Z3MgYXJlIHJlc29sdmVkIHdpdGggdGhpcyByZWxlYXNlOgorICAgWzI5NDQ2XSBf ZGxvcGVuIG5vdyBpZ25vcmVzIGRsX2NhbGxlciBhcmd1bWVudCBpbiBzdGF0aWMgbW9kZQorICAg WzI5NDg1XSBMaW51eDogVGVybWluYXRlIHN1YnByb2Nlc3Mgb24gbGF0ZSBmYWlsdXJlIGluIHRz dC1waWRmZAorICAgWzI5NDkwXSBhbHBoYTogTmV3IF9fYnJrX2NhbGwgaW1wbGVtZW50YXRpb24g aXMgYnJva2VuCisrICBbMjk0NjNdIG1hdGgvdGVzdC1mbG9hdDEyOC15MSBmYWlscyBvbiB4ODZf NjQKKyAgIFsyOTUyOF0gZWxmOiBDYWxsIF9fbGliY19lYXJseV9pbml0IGZvciByZXVzZWQgbmFt ZXNwYWNlcworICAgWzI5NTM3XSBsaWJjOiBbMi4zNCByZWdyZXNzaW9uXTogQWxpZ25tZW50IGlz c3VlIG9uIG02OGsgd2hlbiB1c2luZworICAgWzI5NTM5XSBsaWJjOiBMRF9UUkFDRV9MT0FERURf T0JKRUNUUyBjaGFuZ2VkIGhvdyB2RFNPIGxpYnJhcnkgYXJlCitkaWZmIC0tZ2l0IGEvc3lzZGVw cy9pZWVlNzU0L2xkYmwtMTI4L2VfajFsLmMgYi9zeXNkZXBzL2llZWU3NTQvbGRibC0xMjgvZV9q MWwuYworaW5kZXggNTRjNDU3NjgxYS4uOWE5YzVjNmYwMCAxMDA2NDQKKy0tLSBhL3N5c2RlcHMv aWVlZTc1NC9sZGJsLTEyOC9lX2oxbC5jCisrKysgYi9zeXNkZXBzL2llZWU3NTQvbGRibC0xMjgv ZV9qMWwuYworQEAgLTg2OSwxMCArODY5LDEzIEBAIF9faWVlZTc1NF95MWwgKF9GbG9hdDEyOCB4 KQorICAgICB7CisgICAgICAgLyogMCA8PSB4IDw9IDIgKi8KKyAgICAgICBTRVRfUkVTVE9SRV9S T1VOREwgKEZFX1RPTkVBUkVTVCk7CisrICAgICAgeHggPSBtYXRoX29wdF9iYXJyaWVyICh4eCk7 CisrICAgICAgeCA9IG1hdGhfb3B0X2JhcnJpZXIgKHgpOworICAgICAgIHogPSB4eCAqIHh4Owor ICAgICAgIHAgPSB4eCAqIG5ldmFsICh6LCBZMF8yTiwgTlkwXzJOKSAvIGRldmFsICh6LCBZMF8y RCwgTlkwXzJEKTsKKyAgICAgICBwID0gLVRXT09QSSAvIHh4ICsgcDsKKyAgICAgICBwID0gVFdP T1BJICogX19pZWVlNzU0X2xvZ2wgKHgpICogX19pZWVlNzU0X2oxbCAoeCkgKyBwOworKyAgICAg IG1hdGhfZm9yY2VfZXZhbCAocCk7CisgICAgICAgcmV0dXJuIHA7CisgICAgIH0KKyAKKy0tIAor Mi4zOC4xCisKKworRnJvbSA3MDBkMzI4MWY5ZTU3YjUzYzI3YmM5OTEzOTRiMjJkNDY3NDMyNjI2 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRmxvcmlhbiBXZWltZXIgPGZ3ZWltZXJA cmVkaGF0LmNvbT4KK0RhdGU6IFR1ZSwgMTMgU2VwIDIwMjIgMTY6MTA6MjAgKzAyMDAKK1N1Ympl Y3Q6IFtQQVRDSCA1OS83Ml0gbnNzOiBJbXBsZW1lbnQgLS1uby1hZGRyY29uZmlnIG9wdGlvbiBm b3IgZ2V0ZW50CisKK1RoZSBhaG9zdHMsIGFob3N0c3Y0LCBhaG9zdHN2NiBjb21tYW5kcyB1bmNv bmRpdGlvbmFsbHkgcGFzcworQUlfQUREUkNPTkZJRyB0byBnZXRhZGRyaW5mbywgd2hpY2ggaXMg bm90IGFsd2F5cyBkZXNpcmVkLgorCitSZXZpZXdlZC1ieTogQ2FybG9zIE8nRG9uZWxsIDxjYXJs b3NAcmVkaGF0LmNvbT4KKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IGE2MjNmMTNhZGZhYzQ3 Yzg2MzRhNzI4OGUwOGY4MjFhODQ2YmM2NTApCistLS0KKyBORVdTICAgICAgICAgfCAgNyArKysr KysrCisgbnNzL2dldGVudC5jIHwgMTEgKysrKysrKysrKy0KKyAyIGZpbGVzIGNoYW5nZWQsIDE3 IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL05FV1MgYi9ORVdT CitpbmRleCBiZWExZDhhMTFmLi40NjJhMTIyNTNkIDEwMDY0NAorLS0tIGEvTkVXUworKysrIGIv TkVXUworQEAgLTcsNiArNywxMyBAQCB1c2luZyBgZ2xpYmMnIGluIHRoZSAicHJvZHVjdCIgZmll bGQuCisgDAorIFZlcnNpb24gMi4zNi4xCisgCisrTWFqb3IgbmV3IGZlYXR1cmVzOgorKworKyog VGhlIGdldGVudCB0b29sIG5vdyBzdXBwb3J0cyB0aGUgLS1uby1hZGRyY29uZmlnIG9wdGlvbi4g VGhlIG91dHB1dCBvZgorKyAgZ2V0ZW50IHdpdGggLS1uby1hZGRyY29uZmlnIG1heSBjb250YWlu IGFkZHJlc3NlcyBvZiBmYW1pbGllcyBub3QKKysgIGNvbmZpZ3VyZWQgb24gdGhlIGN1cnJlbnQg aG9zdCBpLmUuIGFzLWlmIHlvdSBoYWQgbm90IHBhc3NlZAorKyAgQUlfQUREUkNPTkZJRyB0byBn ZXRhZGRyaW5mbyBjYWxscy4KKysKKyBTZWN1cml0eSByZWxhdGVkIGNoYW5nZXM6CisgCisgICBD VkUtMjAyMi0zOTA0NjogV2hlbiB0aGUgc3lzbG9nIGZ1bmN0aW9uIGlzIHBhc3NlZCBhIGNyYWZ0 ZWQgaW5wdXQKK2RpZmYgLS1naXQgYS9uc3MvZ2V0ZW50LmMgYi9uc3MvZ2V0ZW50LmMKK2luZGV4 IDgxNzhiNGI0NzAuLmQyZDI1MjRiMGMgMTAwNjQ0CistLS0gYS9uc3MvZ2V0ZW50LmMKKysrKyBi L25zcy9nZXRlbnQuYworQEAgLTU4LDYgKzU4LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhcmdw X29wdGlvbiBhcmdzX29wdGlvbnNbXSA9CisgICB7CisgICAgIHsgInNlcnZpY2UiLCAncycsIE5f KCJDT05GSUciKSwgMCwgTl8oIlNlcnZpY2UgY29uZmlndXJhdGlvbiB0byBiZSB1c2VkIikgfSwK KyAgICAgeyAibm8taWRuIiwgJ2knLCBOVUxMLCAwLCBOXygiZGlzYWJsZSBJRE4gZW5jb2Rpbmci KSB9LAorKyAgICB7ICJuby1hZGRyY29uZmlnIiwgJ0EnLCBOVUxMLCAwLAorKyAgICAgIE5fKCJk byBub3QgZmlsdGVyIG91dCB1bnN1cHBvcnRlZCBJUHY0L0lQdjYgYWRkcmVzc2VzICh3aXRoIGFo b3N0cyopIikgfSwKKyAgICAgeyBOVUxMLCAwLCBOVUxMLCAwLCBOVUxMIH0sCisgICB9OworIAor QEAgLTc5LDYgKzgxLDkgQEAgc3RhdGljIHN0cnVjdCBhcmdwIGFyZ3AgPQorIC8qIEFkZGl0aW9u YWwgZ2V0YWRkcmluZm8gZmxhZ3MgZm9yIElETiBlbmNvZGluZy4gICovCisgc3RhdGljIGludCBp ZG5fZmxhZ3MgPSBBSV9JRE4gfCBBSV9DQU5PTklETjsKKyAKKysvKiBTZXQgdG8gMCBieSAtLW5v LWFkZHJjb25maWcuICAqLworK3N0YXRpYyBpbnQgYWRkcmNvbmZpZ19mbGFncyA9IEFJX0FERFJD T05GSUc7CisrCisgLyogUHJpbnQgdGhlIHZlcnNpb24gaW5mb3JtYXRpb24uICAqLworIHN0YXRp YyB2b2lkCisgcHJpbnRfdmVyc2lvbiAoRklMRSAqc3RyZWFtLCBzdHJ1Y3QgYXJncF9zdGF0ZSAq c3RhdGUpCitAQCAtMzQ2LDcgKzM1MSw3IEBAIGFob3N0c19rZXlzX2ludCAoaW50IGFmLCBpbnQg eGZsYWdzLCBpbnQgbnVtYmVyLCBjaGFyICprZXlbXSkKKyAKKyAgIHN0cnVjdCBhZGRyaW5mbyBo aW50OworICAgbWVtc2V0ICgmaGludCwgJ1wwJywgc2l6ZW9mIChoaW50KSk7CistICBoaW50LmFp X2ZsYWdzID0gKEFJX1Y0TUFQUEVEIHwgQUlfQUREUkNPTkZJRyB8IEFJX0NBTk9OTkFNRQorKyAg aGludC5haV9mbGFncyA9IChBSV9WNE1BUFBFRCB8IGFkZHJjb25maWdfZmxhZ3MgfCBBSV9DQU5P Tk5BTUUKKyAJCSAgIHwgaWRuX2ZsYWdzIHwgeGZsYWdzKTsKKyAgIGhpbnQuYWlfZmFtaWx5ID0g YWY7CisgCitAQCAtOTA1LDYgKzkxMCwxMCBAQCBwYXJzZV9vcHRpb24gKGludCBrZXksIGNoYXIg KmFyZywgc3RydWN0IGFyZ3Bfc3RhdGUgKnN0YXRlKQorICAgICAgIGlkbl9mbGFncyA9IDA7Cisg ICAgICAgYnJlYWs7CisgCisrICAgIGNhc2UgJ0EnOgorKyAgICAgIGFkZHJjb25maWdfZmxhZ3Mg PSAwOworKyAgICAgIGJyZWFrOworKworICAgICBkZWZhdWx0OgorICAgICAgIHJldHVybiBBUkdQ X0VSUl9VTktOT1dOOworICAgICB9CistLSAKKzIuMzguMQorCisKK0Zyb20gMjY4MWQzOGNhZmFj ZWFmZWIzMzBiYzA1MzZmYTcxMGI3NWVkNTk0NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy b206IEZsb3JpYW4gV2VpbWVyIDxmd2VpbWVyQHJlZGhhdC5jb20+CitEYXRlOiBUdWUsIDEzIFNl cCAyMDIyIDE2OjExOjQwICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggNjAvNzJdIG5zczogRml4IHRz dC1uc3MtZmlsZXMtaG9zdHMtbG9uZyBvbiBzaW5nbGUtc3RhY2sgaG9zdHMKKyAoYnVnIDI0ODE2 KQorCitnZXRlbnQgaW1wbGljaXRseSBwYXNzZXMgQUlfQUREUkNPTkZJRyB0byBnZXRhZGRyaW5m byBieSBkZWZhdWx0LgorVXNlIC0tbm8tYWRkcmNvbmZpZyB0byBzdXBwcmVzcyB0aGF0LCBzbyB0 aGF0IGJvdGggSVB2NCBhbmQgSVB2NgorbG9va3VwcyBzdWNjZWVkIGV2ZW4gaWYgdGhlIGFkZHJl c3MgZmFtaWx5IGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlCitob3N0LgorCitSZXZpZXdlZC1ieTog Q2FybG9zIE8nRG9uZWxsIDxjYXJsb3NAcmVkaGF0LmNvbT4KKyhjaGVycnkgcGlja2VkIGZyb20g Y29tbWl0IGM3NWQyMGI1YjI3YjBhNjBmMDY3ODIzNmY1MWE0ZDNiMGIwNThjMDApCistLS0KKyBO RVdTICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxICsKKyBuc3MvdHN0LW5zcy1maWxlcy1o b3N0cy1sb25nLmMgfCA5ICsrKysrLS0tLQorIDIgZmlsZXMgY2hhbmdlZCwgNiBpbnNlcnRpb25z KCspLCA0IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvTkVXUyBiL05FV1MKK2luZGV4IDQ2 MmExMjI1M2QuLmRlNzc1YWIxMTYgMTAwNjQ0CistLS0gYS9ORVdTCisrKysgYi9ORVdTCitAQCAt MjQsNiArMjQsNyBAQCBTZWN1cml0eSByZWxhdGVkIGNoYW5nZXM6CisgVGhlIGZvbGxvd2luZyBi dWdzIGFyZSByZXNvbHZlZCB3aXRoIHRoaXMgcmVsZWFzZToKKyAKKyAgIFsxMjE1NF0gRG8gbm90 IGZhaWwgRE5TIHJlc29sdXRpb24gZm9yIENOQU1FcyB3aGljaCBhcmUgbm90IGhvc3QgbmFtZXMK KysgIFsyNDgxNl0gRml4IHRzdC1uc3MtZmlsZXMtaG9zdHMtbG9uZyBvbiBzaW5nbGUtc3RhY2sg aG9zdHMKKyAgIFsyODg0Nl0gQ01TR19OWFRIRFIgbWF5IHRyaWdnZXIgLVdzdHJpY3Qtb3ZlcmZs b3cgd2FybmluZworICAgWzI5MzA1XSBDb25zZXJ2ZSBOU1MgYnVmZmVyIHNwYWNlIGR1cmluZyBE TlMgcGFja2V0IHBhcnNpbmcKKyAgIFsyOTQxNV0gbnNjZDogRml4IG5ldGxpbmsgY2FjaGUgaW52 YWxpZGF0aW9uIGlmIGVwb2xsIGlzIHVzZWQKK2RpZmYgLS1naXQgYS9uc3MvdHN0LW5zcy1maWxl cy1ob3N0cy1sb25nLmMgYi9uc3MvdHN0LW5zcy1maWxlcy1ob3N0cy1sb25nLmMKK2luZGV4IDM5 NDJjZjVmY2EuLmE3Njk3ZTMxNDMgMTAwNjQ0CistLS0gYS9uc3MvdHN0LW5zcy1maWxlcy1ob3N0 cy1sb25nLmMKKysrKyBiL25zcy90c3QtbnNzLWZpbGVzLWhvc3RzLWxvbmcuYworQEAgLTI4LDE0 ICsyOCwxNSBAQCBkb190ZXN0ICh2b2lkKQorIHsKKyAgIGludCByZXQ7CisgCistICAvKiBSdW4g Z2V0ZW50IHRvIGZldGNoIHRoZSBJUHY0IGFkZHJlc3MgZm9yIGhvc3QgdGVzdDQuCistICAgICBU aGlzIGZvcmNlcyAvZXRjL2hvc3RzIHRvIGJlIHBhcnNlZC4gICovCistICByZXQgPSBzeXN0ZW0o ImdldGVudCBhaG9zdHN2NCB0ZXN0NCIpOworKyAgLyogUnVuIGdldGVudCB0byBmZXRjaCB0aGUg SVB2NCBhZGRyZXNzIGZvciBob3N0IHRlc3Q0LiAgVGhpcyBmb3JjZXMKKysgICAgIC9ldGMvaG9z dHMgdG8gYmUgcGFyc2VkLiAgVXNlIC0tbm8tYWRkcmNvbmZpZyB0byByZXR1cm4gYWRkcmVzc2Vz CisrICAgICBldmVuIGluIGFuIElQdjYtb25seSBlbnZpcm9ubWVudC4gICovCisrICByZXQgPSBz eXN0ZW0oImdldGVudCAtLW5vLWFkZHJjb25maWcgYWhvc3RzdjQgdGVzdDQiKTsKKyAgIGlmIChy ZXQgIT0gMCkKKyAgICAgRkFJTF9FWElUMSgiYWhvc3RzdjQgZmFpbGVkIik7CisgCisgICAvKiBM aWtld2lzZSBmb3IgSVB2Ni4gICovCistICByZXQgPSBzeXN0ZW0oImdldGVudCBhaG9zdHN2NiB0 ZXN0NiIpOworKyAgcmV0ID0gc3lzdGVtKCJnZXRlbnQgLS1uby1hZGRyY29uZmlnICBhaG9zdHN2 NiB0ZXN0NiIpOworICAgaWYgKHJldCAhPSAwKQorICAgICBGQUlMX0VYSVQxKCJhaG9zdHN2NiBm YWlsZWQiKTsKKyAKKy0tIAorMi4zOC4xCisKKworRnJvbSA5MDg0NTQxMjlkMjExMjZiZjdmYzU4 ZjJhNTIwYjFmMzA0ZGM1ZjAyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRmxvcmlh biBXZWltZXIgPGZ3ZWltZXJAcmVkaGF0LmNvbT4KK0RhdGU6IEZyaSwgMjMgU2VwIDIwMjIgMTk6 MzA6NTcgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCA2MS83Ml0gbnNzOiBVc2Ugc2hhcmVkIHByZWZp eCBpbiBJUHY0IGFkZHJlc3MgaW4gdHN0LXJlbG9hZDEKKworT3RoZXJ3aXNlLCBzb3J0aW5nIGJh c2VkIG9uIHRoZSBsb25nZXN0LW1hdGNoaW5nIHByZWZpeCBpbgorZ2V0YWRkcmluZm8gY2FuIHJl b3JkZXIgdGhlIGFkZHJlc3NlcyBpbiB3YXlzIHRoZSB0ZXN0IGRvZXMgbm90CitleHBlY3QsIGRl cGVuZGluZyBvbiB0aGUgSVB2NCBhZGRyZXNzIG9mIHRoZSBob3N0LgorCitSZXZpZXdlZC1ieTog U2lkZGhlc2ggUG95YXJla2FyIDxzaWRkaGVzaEBzb3VyY2V3YXJlLm9yZz4KKyhjaGVycnkgcGlj a2VkIGZyb20gY29tbWl0IGMwMmUyOWEwYmE0N2Q2MzYyODFlMWEwMjY0NDRhMWEwYTI1NGFhMTIp CistLS0KKyBuc3MvdHN0LXJlbG9hZDEuYyB8IDggKysrKy0tLS0KKyAxIGZpbGUgY2hhbmdlZCwg NCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvbnNzL3RzdC1y ZWxvYWQxLmMgYi9uc3MvdHN0LXJlbG9hZDEuYworaW5kZXggZmRjNWJkZDY1Yi4uYmMzMmJiMTMy YSAxMDA2NDQKKy0tLSBhL25zcy90c3QtcmVsb2FkMS5jCisrKysgYi9uc3MvdHN0LXJlbG9hZDEu YworQEAgLTQzLDEyICs0MywxMiBAQCBzdGF0aWMgc3RydWN0IHBhc3N3ZCBwd2RfdGFibGVfMVtd ID0geworIAorIHN0YXRpYyBjb25zdCBjaGFyICpob3N0YWRkcl81W10gPQorICAgeworLSAgICJB QkNEIiwgImFiY2QiLCAiMTIzNCIsIE5VTEwKKysgICAiQUJDZCIsICJBQkNEIiwgIkFCQzQiLCBO VUxMCisgICB9OworIAorIHN0YXRpYyBjb25zdCBjaGFyICpob3N0YWRkcl8xNVtdID0KKyAgIHsK Ky0gICAiNDMyMSIsICJnaGlqIiwgTlVMTAorKyAgICI0MzIxIiwgIjQzMjIiLCBOVUxMCisgICB9 OworIAorIHN0YXRpYyBjb25zdCBjaGFyICpob3N0YWRkcl8yNVtdID0KK0BAIC04NiwxMiArODYs MTIgQEAgc3RhdGljIGNvbnN0IGNoYXIgKmhvc3RhZGRyXzZbXSA9CisgCisgc3RhdGljIGNvbnN0 IGNoYXIgKmhvc3RhZGRyXzE2W10gPQorICAgeworLSAgICI3ODkwIiwgImExYjIiLCBOVUxMCisr ICAgIjc4OTAiLCAiNzg5MSIsIE5VTEwKKyAgIH07CisgCisgc3RhdGljIGNvbnN0IGNoYXIgKmhv c3RhZGRyXzI2W10gPQorICAgeworLSAgICJxd2VyIiwgInR5dWkiLCBOVUxMCisrICAgInF3ZXIi LCAicXdlUiIsIE5VTEwKKyAgIH07CisgCisgc3RhdGljIHN0cnVjdCBob3N0ZW50IGhvc3RfdGFi bGVfMltdID0geworLS0gCisyLjM4LjEKKworCitGcm9tIDE5NTM1ZjNiNTczMDZlYTNlYzU1OWE2 YzBiMTBkMmQ3YTg3NDE4YTcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBGbG9yaWFu IFdlaW1lciA8ZndlaW1lckByZWRoYXQuY29tPgorRGF0ZTogRnJpLCAxNCBPY3QgMjAyMiAxMTow MjoyNSArMDIwMAorU3ViamVjdDogW1BBVENIIDYyLzcyXSBlbGY6IERvIG5vdCBjb21wbGV0ZWx5 IGNsZWFyIHJldXNlZCBuYW1lc3BhY2UgaW4KKyBkbG1vcGVuIChidWcgMjk2MDApCisKK1RoZSBk YXRhIGluIHRoZSBfbnNfZGVidWcgbWVtYmVyIG11c3QgYmUgcHJlc2VydmVkLCBvdGhlcndpc2UK K19kbF9kZWJ1Z19pbml0aWFsaXplIGVudGVycyBhbiBpbmZpbml0ZSBsb29wLiAgVG8gYmUgY29u c2VydmF0aXZlLAorb25seSBjbGVhciB0aGUgbGliY19tYXAgbWVtYmVyIGZvciBub3csIHRvIGZp eCBidWcgMjk1MjguCisKK0ZpeGVzIGNvbW1pdCBkMGUzNTdmZjQ1YTc1NTUzZGVlM2IxN2VkN2Qz MDNiZmE1NDRmNmZlCisoImVsZjogQ2FsbCBfX2xpYmNfZWFybHlfaW5pdCBmb3IgcmV1c2VkIG5h bWVzcGFjZXMgKGJ1ZyAyOTUyOCkiKSwKK2J5IHJldmVydGluZyBtb3N0IG9mIGl0LgorCitSZXZp ZXdlZC1ieTogQ2FybG9zIE8nRG9uZWxsIDxjYXJsb3NAcmVkaGF0LmNvbT4KK1Rlc3RlZC1ieTog Q2FybG9zIE8nRG9uZWxsIDxjYXJsb3NAcmVkaGF0LmNvbT4KKyhjaGVycnkgcGlja2VkIGZyb20g Y29tbWl0IDJjNDIyNTczMTQ1MzZiOTRjYzhkNTJlZGVkZTg2ZTk0ZTk4YzE0MzYpCistLS0KKyBO RVdTICAgICAgICAgICAgICAgICAgICB8ICAxICsKKyBlbGYvZGwtb3Blbi5jICAgICAgICAgICB8 IDE0ICsrKysrKy0tLS0tLS0tCisgZWxmL3RzdC1kbG1vcGVuLXR3aWNlLmMgfCAyOCArKysrKysr KysrKysrKysrKysrKysrKystLS0tCisgMyBmaWxlcyBjaGFuZ2VkLCAzMSBpbnNlcnRpb25zKCsp LCAxMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL05FV1MgYi9ORVdTCitpbmRleCBkZTc3 NWFiMTE2Li5hNmRhNTg4Yzg1IDEwMDY0NAorLS0tIGEvTkVXUworKysrIGIvTkVXUworQEAgLTM3 LDYgKzM3LDcgQEAgVGhlIGZvbGxvd2luZyBidWdzIGFyZSByZXNvbHZlZCB3aXRoIHRoaXMgcmVs ZWFzZToKKyAgIFsyOTUzN10gbGliYzogWzIuMzQgcmVncmVzc2lvbl06IEFsaWdubWVudCBpc3N1 ZSBvbiBtNjhrIHdoZW4gdXNpbmcKKyAgIFsyOTUzOV0gbGliYzogTERfVFJBQ0VfTE9BREVEX09C SkVDVFMgY2hhbmdlZCBob3cgdkRTTyBsaWJyYXJ5IGFyZQorICAgWzI5NTgzXSBVc2UgNjQtYml0 IGludGVyZmFjZXMgaW4gZ2NvbnZfcGFyc2Vjb25mZGlyCisrICBbMjk2MDBdIERvIG5vdCBjb21w bGV0ZWx5IGNsZWFyIHJldXNlZCBuYW1lc3BhY2UgaW4gZGxtb3BlbgorICAgWzI5NjA3XSBuc2Nk IHJlcGVhdGFibHkgY3Jhc2hlcyBjYWxsaW5nIF9fc3RybGVuX2F2eDIgd2hlbiBob3N0cyBjYWNo ZSBpcworICAgICBlbmFibGVkCisgICBbMjk2MzhdIGxpYmM6IHN0ZGxpYjogYXJjNHJhbmRvbSBm YWxsYmFjayBpcyBuZXZlciB1c2VkCitkaWZmIC0tZ2l0IGEvZWxmL2RsLW9wZW4uYyBiL2VsZi9k bC1vcGVuLmMKK2luZGV4IDQ2ZTgwNjZmZDguLmU3ZGI1ZTk2NDIgMTAwNjQ0CistLS0gYS9lbGYv ZGwtb3Blbi5jCisrKysgYi9lbGYvZGwtb3Blbi5jCitAQCAtODQ0LDE1ICs4NDQsMTMgQEAgX2Rs X29wZW4gKGNvbnN0IGNoYXIgKmZpbGUsIGludCBtb2RlLCBjb25zdCB2b2lkICpjYWxsZXJfZGxv cGVuLCBMbWlkX3QgbnNpZCwKKyAJICBfZGxfc2lnbmFsX2Vycm9yIChFSU5WQUwsIGZpbGUsIE5V TEwsIE5fKCJcCisgbm8gbW9yZSBuYW1lc3BhY2VzIGF2YWlsYWJsZSBmb3IgZGxtb3BlbigpIikp OworIAl9CisrICAgICAgZWxzZSBpZiAobnNpZCA9PSBHTChkbF9ubnMpKQorKwl7CisrCSAgX19y dGxkX2xvY2tfaW5pdGlhbGl6ZSAoR0woZGxfbnMpW25zaWRdLl9uc191bmlxdWVfc3ltX3RhYmxl LmxvY2spOworKwkgICsrR0woZGxfbm5zKTsKKysJfQorIAorLSAgICAgIGlmIChuc2lkID09IEdM KGRsX25ucykpCistCSsrR0woZGxfbm5zKTsKKy0KKy0gICAgICAvKiBJbml0aWFsaXplIHRoZSBu ZXcgbmFtZXNwYWNlLiAgTW9zdCBtZW1iZXJzIGFyZQorLQkgemVyby1pbml0aWFsaXplZCwgb25s eSB0aGUgbG9jayBuZWVkcyBzcGVjaWFsIHRyZWF0bWVudC4gICovCistICAgICAgbWVtc2V0ICgm R0woZGxfbnMpW25zaWRdLCAwLCBzaXplb2YgKEdMKGRsX25zKVtuc2lkXSkpOworLSAgICAgIF9f cnRsZF9sb2NrX2luaXRpYWxpemUgKEdMKGRsX25zKVtuc2lkXS5fbnNfdW5pcXVlX3N5bV90YWJs ZS5sb2NrKTsKKy0KKysgICAgICBHTChkbF9ucylbbnNpZF0ubGliY19tYXAgPSBOVUxMOworICAg ICAgIF9kbF9kZWJ1Z191cGRhdGUgKG5zaWQpLT5yX3N0YXRlID0gUlRfQ09OU0lTVEVOVDsKKyAg ICAgfQorICAgLyogTmV2ZXIgYWxsb3cgbG9hZGluZyBhIERTTyBpbiBhIG5hbWVzcGFjZSB3aGlj aCBpcyBlbXB0eS4gIFN1Y2gKK2RpZmYgLS1naXQgYS9lbGYvdHN0LWRsbW9wZW4tdHdpY2UuYyBi L2VsZi90c3QtZGxtb3Blbi10d2ljZS5jCitpbmRleCA0NDlmM2M4ZmE5Li43MGM3MWZlMTljIDEw MDY0NAorLS0tIGEvZWxmL3RzdC1kbG1vcGVuLXR3aWNlLmMKKysrKyBiL2VsZi90c3QtZGxtb3Bl bi10d2ljZS5jCitAQCAtMTYsMTggKzE2LDM4IEBACisgICAgTGljZW5zZSBhbG9uZyB3aXRoIHRo ZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorICAgIDxodHRwczovL3d3dy5nbnUub3JnL2xp Y2Vuc2VzLz4uICAqLworIAorLSNpbmNsdWRlIDxzdXBwb3J0L3hkbGZjbi5oPgorKyNpbmNsdWRl IDxzdGRpby5oPgorICNpbmNsdWRlIDxzdXBwb3J0L2NoZWNrLmg+CisrI2luY2x1ZGUgPHN1cHBv cnQveGRsZmNuLmg+CisgCistc3RhdGljIGludAorLWRvX3Rlc3QgKHZvaWQpCisrLyogUnVuIHRo ZSB0ZXN0IG11bHRpcGxlIHRpbWVzLCB0byBjaGVjayBmaW5kaW5nIGEgbmV3IG5hbWVzcGFjZSB3 aGlsZQorKyAgIGFub3RoZXIgbmFtZXNwYWNlIGlzIGFscmVhZHkgaW4gdXNlLiAgVGhpcyB1c2Vk IHRvIHRyaWdnZXIgYnVnIDI5NjAwLiAgKi8KKytzdGF0aWMgdm9pZAorK3JlY3Vyc2UgKGludCBk ZXB0aCkKKyB7CistICB2b2lkICpoYW5kbGUgPSB4ZGxtb3BlbiAoTE1fSURfTkVXTE0sICJ0c3Qt ZGxtb3Blbi10d2ljZS1tb2QxLnNvIiwgUlRMRF9OT1cpOworKyAgaWYgKGRlcHRoID09IDApCisr ICAgIHJldHVybjsKKysKKysgIHByaW50ZiAoImluZm86IHJ1bm5pbmcgYXQgZGVwdGggJWRcbiIs IGRlcHRoKTsKKysgIHZvaWQgKmhhbmRsZSA9IHhkbG1vcGVuIChMTV9JRF9ORVdMTSwgInRzdC1k bG1vcGVuLXR3aWNlLW1vZDEuc28iLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFJUTERf Tk9XKTsKKyAgIHhkbGNsb3NlIChoYW5kbGUpOworICAgaGFuZGxlID0geGRsbW9wZW4gKExNX0lE X05FV0xNLCAidHN0LWRsbW9wZW4tdHdpY2UtbW9kMi5zbyIsIFJUTERfTk9XKTsKKyAgIGludCAo KnJ1bl9jaGVjaykgKHZvaWQpID0geGRsc3ltIChoYW5kbGUsICJydW5fY2hlY2siKTsKKyAgIFRF U1RfQ09NUEFSRSAocnVuX2NoZWNrICgpLCAwKTsKKysgIHJlY3Vyc2UgKGRlcHRoIC0gMSk7Cisg ICB4ZGxjbG9zZSAoaGFuZGxlKTsKKyt9CisrCisrc3RhdGljIGludAorK2RvX3Rlc3QgKHZvaWQp CisreworKyAgLyogRmlyc3QgcnVuIHRoZSB0ZXN0IHdpdGhvdXQgbmVzdGluZy4gICovCisrICBy ZWN1cnNlICgxKTsKKysKKysgIC8qIFRoZW4gd2l0aCBuZXN0aW5nLiAgVGhlIGNvbnN0YW50IG5l ZWRzIHRvIGJlIGxlc3MgdGhhbiB0aGUKKysgICAgIGludGVybmFsIERMX05OUyBuYW1lc3BhY2Ug Y29uc3RhbnQuICAqLworKyAgcmVjdXJzZSAoMTApOworICAgcmV0dXJuIDA7CisgfQorIAorLS0g CisyLjM4LjEKKworCitGcm9tIGIzNTcxNTczNjExMTcxODJjN2E2OGM5MGZkYTdiYTQzMWI2NDQ0 MmMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBNaWNoYWVsIEh1ZHNvbi1Eb3lsZSA8 bWljaGFlbC5odWRzb25AY2Fub25pY2FsLmNvbT4KK0RhdGU6IE1vbiwgMjIgQXVnIDIwMjIgMTQ6 MDU6MDQgKzEyMDAKK1N1YmplY3Q6IFtQQVRDSCA2My83Ml0gRml4IEJaICMyOTQ2MyBpbiB0aGUg aWJtMTI4IGltcGxlbWVudGF0aW9uIG9mIHkxbCB0b28KKworQXZvaWQgbW92aW5nIGNvZGUgYWNy b3NzIFNFVF9SRVNUT1JFX1JPVU5ETCBpbiBvcmRlciB0byBmaXgKK1tCWiAjMjk0NjNdLgorCitU ZXN0ZWQtYnk6IEF1cmVsaWVuIEphcm5vIDxhdXJlbGllbkBhdXJlbDMyLm5ldD4KK1Jldmlld2Vk LWJ5OiBBdXJlbGllbiBKYXJubyA8YXVyZWxpZW5AYXVyZWwzMi5uZXQ+CitSZXZpZXdlZC1ieTog VHVsaW8gTWFnbm8gUXVpdGVzIE1hY2hhZG8gRmlsaG8gPHR1bGlvbUBsaW51eC5pYm0uY29tPgor KGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgYjZlMzdiNzgwNWIwMTgyYzNlMjVjZGFiMzllYmY1 ZjAwMWMwNGQwNSkKKy0tLQorIHN5c2RlcHMvaWVlZTc1NC9sZGJsLTEyOGlibS9lX2oxbC5jIHwg MyArKysKKyAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9z eXNkZXBzL2llZWU3NTQvbGRibC0xMjhpYm0vZV9qMWwuYyBiL3N5c2RlcHMvaWVlZTc1NC9sZGJs LTEyOGlibS9lX2oxbC5jCitpbmRleCBmODViYTk0NDY2Li4wYTVmZTY4MzQyIDEwMDY0NAorLS0t IGEvc3lzZGVwcy9pZWVlNzU0L2xkYmwtMTI4aWJtL2VfajFsLmMKKysrKyBiL3N5c2RlcHMvaWVl ZTc1NC9sZGJsLTEyOGlibS9lX2oxbC5jCitAQCAtNzkyLDEwICs3OTIsMTMgQEAgX19pZWVlNzU0 X3kxbCAobG9uZyBkb3VibGUgeCkKKyAgICAgeworICAgICAgIC8qIDAgPD0geCA8PSAyICovCisg ICAgICAgU0VUX1JFU1RPUkVfUk9VTkRMIChGRV9UT05FQVJFU1QpOworKyAgICAgIHh4ID0gbWF0 aF9vcHRfYmFycmllciAoeHgpOworKyAgICAgIHggPSBtYXRoX29wdF9iYXJyaWVyICh4KTsKKyAg ICAgICB6ID0geHggKiB4eDsKKyAgICAgICBwID0geHggKiBuZXZhbCAoeiwgWTBfMk4sIE5ZMF8y TikgLyBkZXZhbCAoeiwgWTBfMkQsIE5ZMF8yRCk7CisgICAgICAgcCA9IC1UV09PUEkgLyB4eCAr IHA7CisgICAgICAgcCA9IFRXT09QSSAqIF9faWVlZTc1NF9sb2dsICh4KSAqIF9faWVlZTc1NF9q MWwgKHgpICsgcDsKKysgICAgICBtYXRoX2ZvcmNlX2V2YWwgKHApOworICAgICAgIHJldHVybiBw OworICAgICB9CisgCistLSAKKzIuMzguMQorCisKK0Zyb20gOTI3M2IyZDBlOTNlNzM1NTY1NmNh ZDNiZTNhMWNhNzY0ODlkZjQ4MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEF1cmVs aWVuIEphcm5vIDxhdXJlbGllbkBhdXJlbDMyLm5ldD4KK0RhdGU6IE1vbiwgMTAgT2N0IDIwMjIg MDA6Mzk6MzMgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCA2NC83Ml0gQXZvaWQgdW5kZWZpbmVkIGJl aGF2aW91ciBpbiBpYm0xMjggaW1wbGVtZW50YXRpb24gb2YKKyBsbHJvdW5kbCAoQlogIzI5NDg4 KQorCitEZXRlY3RpbmcgYW4gb3ZlcmZsb3cgZWRnZSBjYXNlIGRlcGVuZGVkIG9uIHNpZ25lZCBv dmVyZmxvdyBvZiBhIGxvbmcKK2xvbmcuIFJlcGxhY2UgdGhlIGFkZGl0aW9ucyBhbmQgdGhlIG92 ZXJmbG93IGNoZWNrcyBieQorX19idWlsdGluX2FkZF9vdmVyZmxvdygpLgorCitSZXZpZXdlZC1i eTogVHVsaW8gTWFnbm8gUXVpdGVzIE1hY2hhZG8gRmlsaG8gPHR1bGlvbUBsaW51eC5pYm0uY29t PgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgMmI1NDc4NTY5ZTcyZWU0ODIwYTZlMTYzZDMw NjY5MGM5YzBlYWY1ZSkKKy0tLQorIE5FV1MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgMiArKworIHN5c2RlcHMvaWVlZTc1NC9sZGJsLTEyOGlibS9zX2xscm91bmRsLmMg fCAyMSArKysrKysrKystLS0tLS0tLS0tLS0KKyAyIGZpbGVzIGNoYW5nZWQsIDExIGluc2VydGlv bnMoKyksIDEyIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvTkVXUyBiL05FV1MKK2luZGV4 IGE2ZGE1ODhjODUuLjhjNjBkM2RjOGQgMTAwNjQ0CistLS0gYS9ORVdTCisrKysgYi9ORVdTCitA QCAtMzMsNiArMzMsOCBAQCBUaGUgZm9sbG93aW5nIGJ1Z3MgYXJlIHJlc29sdmVkIHdpdGggdGhp cyByZWxlYXNlOgorICAgWzI5NDg1XSBMaW51eDogVGVybWluYXRlIHN1YnByb2Nlc3Mgb24gbGF0 ZSBmYWlsdXJlIGluIHRzdC1waWRmZAorICAgWzI5NDkwXSBhbHBoYTogTmV3IF9fYnJrX2NhbGwg aW1wbGVtZW50YXRpb24gaXMgYnJva2VuCisgICBbMjk0NjNdIG1hdGgvdGVzdC1mbG9hdDEyOC15 MSBmYWlscyBvbiB4ODZfNjQKKysgIFsyOTQ4OF0gdGVzdC1pYm0xMjgtbGxyb3VuZCBmYWlscyBv biBwcGM2NGVsIHdoZW4gYnVpbHQgd2l0aCBnY2MtMTIgYW5kIC1PMgorKyAgICBvciBoaWdoZXIK KyAgIFsyOTUyOF0gZWxmOiBDYWxsIF9fbGliY19lYXJseV9pbml0IGZvciByZXVzZWQgbmFtZXNw YWNlcworICAgWzI5NTM3XSBsaWJjOiBbMi4zNCByZWdyZXNzaW9uXTogQWxpZ25tZW50IGlzc3Vl IG9uIG02OGsgd2hlbiB1c2luZworICAgWzI5NTM5XSBsaWJjOiBMRF9UUkFDRV9MT0FERURfT0JK RUNUUyBjaGFuZ2VkIGhvdyB2RFNPIGxpYnJhcnkgYXJlCitkaWZmIC0tZ2l0IGEvc3lzZGVwcy9p ZWVlNzU0L2xkYmwtMTI4aWJtL3NfbGxyb3VuZGwuYyBiL3N5c2RlcHMvaWVlZTc1NC9sZGJsLTEy OGlibS9zX2xscm91bmRsLmMKK2luZGV4IGQ4NTE1NGU3M2EuLmQ4YzBkZTFmYWYgMTAwNjQ0Cist LS0gYS9zeXNkZXBzL2llZWU3NTQvbGRibC0xMjhpYm0vc19sbHJvdW5kbC5jCisrKysgYi9zeXNk ZXBzL2llZWU3NTQvbGRibC0xMjhpYm0vc19sbHJvdW5kbC5jCitAQCAtNjYsMzggKzY2LDM1IEBA IF9fbGxyb3VuZGwgKGxvbmcgZG91YmxlIHgpCisgICAgICAgLyogUGVnIGF0IG1heC9taW4gdmFs dWVzLCBhc3N1bWluZyB0aGF0IHRoZSBhYm92ZSBjb252ZXJzaW9ucyBkbyBzby4KKyAgICAgICAg ICBTdHJpY3RseSBzcGVha2luZywgd2UgY2FuIHJldHVybiBhbnl0aGluZyBmb3IgdmFsdWVzIHRo YXQgb3ZlcmZsb3csCisgICAgICAgICAgYnV0IHRoaXMgaXMgbW9yZSB1c2VmdWwuICAqLworLSAg ICAgIHJlcyA9IGhpICsgbG87CistCistICAgICAgLyogVGhpcyBpcyBqdXN0IHNpZ24oaGkpID09 IHNpZ24obG8pICYmIHNpZ24ocmVzKSAhPSBzaWduKGhpKS4gICovCistICAgICAgaWYgKF9fZ2xp YmNfdW5saWtlbHkgKCgofihoaSBeIGxvKSAmIChyZXMgXiBoaSkpIDwgMCkpKQorKyAgICAgIGlm IChfX2dsaWJjX3VubGlrZWx5IChfX2J1aWx0aW5fYWRkX292ZXJmbG93IChoaSwgbG8sICZyZXMp KSkKKyAJZ290byBvdmVyZmxvdzsKKyAKKyAgICAgICB4aCAtPSBsbzsKKyAgICAgICBsZGJsX2Nh bm9uaWNhbGl6ZSAoJnhoLCAmeGwpOworIAorLSAgICAgIGhpID0gcmVzOworICAgICAgIGlmICh4 aCA+IDAuNSkKKyAJeworLQkgIHJlcyArPSAxOworKwkgIGlmIChfX2dsaWJjX3VubGlrZWx5IChf X2J1aWx0aW5fYWRkX292ZXJmbG93IChyZXMsIDEsICZyZXMpKSkKKysJICAgIGdvdG8gb3ZlcmZs b3c7CisgCX0KKyAgICAgICBlbHNlIGlmICh4aCA9PSAwLjUpCisgCXsKKyAJICBpZiAoeGwgPiAw LjAgfHwgKHhsID09IDAuMCAmJiByZXMgPj0gMCkpCistCSAgICByZXMgKz0gMTsKKysJICAgIGlm IChfX2dsaWJjX3VubGlrZWx5IChfX2J1aWx0aW5fYWRkX292ZXJmbG93IChyZXMsIDEsICZyZXMp KSkKKysJICAgICAgZ290byBvdmVyZmxvdzsKKyAJfQorICAgICAgIGVsc2UgaWYgKC14aCA+IDAu NSkKKyAJeworLQkgIHJlcyAtPSAxOworKwkgIGlmIChfX2dsaWJjX3VubGlrZWx5IChfX2J1aWx0 aW5fYWRkX292ZXJmbG93IChyZXMsIC0xLCAmcmVzKSkpCisrCSAgICBnb3RvIG92ZXJmbG93Owor IAl9CisgICAgICAgZWxzZSBpZiAoLXhoID09IDAuNSkKKyAJeworIAkgIGlmICh4bCA8IDAuMCB8 fCAoeGwgPT0gMC4wICYmIHJlcyA8PSAwKSkKKy0JICAgIHJlcyAtPSAxOworKwkgICAgaWYgKF9f Z2xpYmNfdW5saWtlbHkgKF9fYnVpbHRpbl9hZGRfb3ZlcmZsb3cgKHJlcywgLTEsICZyZXMpKSkK KysJICAgICAgZ290byBvdmVyZmxvdzsKKyAJfQorIAorLSAgICAgIGlmIChfX2dsaWJjX3VubGlr ZWx5ICgoKH4oaGkgXiAocmVzIC0gaGkpKSAmIChyZXMgXiBoaSkpIDwgMCkpKQorLQlnb3RvIG92 ZXJmbG93OworLQorICAgICAgIHJldHVybiByZXM7CisgICAgIH0KKyAgIGVsc2UKKy0tIAorMi4z OC4xCisKKworRnJvbSA3YjdkZmJiMGNiZGZmZWJmMDIzM2M2NTA2MjdhNDg2MTIxMmZiYjYwIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQWRoZW1lcnZhbCBaYW5lbGxhIDxhZGhlbWVy dmFsLnphbmVsbGFAbGluYXJvLm9yZz4KK0RhdGU6IFdlZCwgMTkgT2N0IDIwMjIgMTk6MTQ6MDQg LTAzMDAKK1N1YmplY3Q6IFtQQVRDSCA2NS83Ml0gbGludXg6IEZpeCBnZW5lcmljIHN0cnVjdF9z dGF0IGZvciA2NCBiaXQgdGltZSAoQlojCisgMjk2NTcpCisKK1RoZSBnZW5lcmljIExpbnV4IHN0 cnVjdF9zdGF0IG1pc3NlcyB0aGUgY29uZGl0aW9uYWxzIHRvIHVzZQorYml0cy9zdHJ1Y3Rfc3Rh dF90aW1lNjRfaGVscGVyLmggaW4gdGhlIF9fVVNFX1RJTUVfQklUUzY0IGZvcgorYXJjaGl0ZWN0 dXJlIHRoYXQgdXNlcyBfX1RJTUVTSVpFID09IDMyIChjdXJyZW50bHkgY3NreSBhbmQgbmlvczIp LgorCitTaW5jZSBuZXdlciBwb3J0cyBzaG91bGQgbm90IHN1cHBvcnQgMzIgYml0IHRpbWVfdCwg dGhlIGdlbmVyaWMKK2ltcGxlbWVudGF0aW9uIHNob3VsZCBiZSB1c2VkIGFzIGRlZmF1bHQuCisK K0ZvciBhcm0sIGhwcGEsIGFuZCBzaCBhIGNvcHkgb2YgZGVmYXVsdCBzdHJ1Y3Rfc3RhdCBpcyBh ZGRlZCwKK3doaWxlIGZvciBjc2t5IGFuZCBuaW9zIGEgbmV3IG9uZSBiYXNlZCBvbiBnZW5lcmlj IGlzIHVzZWQsIGFsb25nCit3aXRoIGNvbmRpdGlvbmFscyB0byB1c2UgYml0cy9zdHJ1Y3Rfc3Rh dF90aW1lNjRfaGVscGVyLmguCisKK1RoZSBkZWZhdWx0IHN0cnVjdF9zdGF0IGlzIGFsc28gcmVw bGFjZWQgd2l0aCB0aGUgZ2VuZXJpYyBvbmUuCisKK0NoZWNrZWQgb24gYWFyY2g2NC1saW51eC1n bnUgYW5kIGFybS1saW51eC1nbnVlYWJpaGYuCisKKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0 IDdhNmNhODJmODAwN2RkYmQ0M2UyYjhmY2U4MDZiYTcxMDFlZTQ3ZjUpCistLS0KKyBORVdTICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKworIC4uLi91bml4 L3N5c3YvbGludXgvYXJtL2JpdHMvc3RydWN0X3N0YXQuaCAgICB8IDEzOSArKysrKysrKysrKysr KysrKysKKyBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9iaXRzL3N0cnVjdF9zdGF0LmggICAgfCAx MTYgKysrKysrKy0tLS0tLS0tCisgLi4uL3tnZW5lcmljID0+IGNza3l9L2JpdHMvc3RydWN0X3N0 YXQuaCAgICAgIHwgIDI4ICsrLS0KKyAuLi4vdW5peC9zeXN2L2xpbnV4L2hwcGEvYml0cy9zdHJ1 Y3Rfc3RhdC5oICAgfCAxMzkgKysrKysrKysrKysrKysrKysrCisgLi4uL3VuaXgvc3lzdi9saW51 eC9uaW9zMi9iaXRzL3N0cnVjdF9zdGF0LmggIHwgMTM1ICsrKysrKysrKysrKysrKysrCisgc3lz ZGVwcy91bml4L3N5c3YvbGludXgvc2gvYml0cy9zdHJ1Y3Rfc3RhdC5oIHwgMTM5ICsrKysrKysr KysrKysrKysrKworIDcgZmlsZXMgY2hhbmdlZCwgNjI0IGluc2VydGlvbnMoKyksIDc0IGRlbGV0 aW9ucygtKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hcm0v Yml0cy9zdHJ1Y3Rfc3RhdC5oCisgcmVuYW1lIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3tnZW5l cmljID0+IGNza3l9L2JpdHMvc3RydWN0X3N0YXQuaCAoOTIlKQorIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9ocHBhL2JpdHMvc3RydWN0X3N0YXQuaAorIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9uaW9zMi9iaXRzL3N0cnVjdF9z dGF0LmgKKyBjcmVhdGUgbW9kZSAxMDA2NDQgc3lzZGVwcy91bml4L3N5c3YvbGludXgvc2gvYml0 cy9zdHJ1Y3Rfc3RhdC5oCisKK2RpZmYgLS1naXQgYS9ORVdTIGIvTkVXUworaW5kZXggOGM2MGQz ZGM4ZC4uODMzMDQ1NTg1ZiAxMDA2NDQKKy0tLSBhL05FV1MKKysrKyBiL05FV1MKK0BAIC00Myw2 ICs0Myw4IEBAIFRoZSBmb2xsb3dpbmcgYnVncyBhcmUgcmVzb2x2ZWQgd2l0aCB0aGlzIHJlbGVh c2U6CisgICBbMjk2MDddIG5zY2QgcmVwZWF0YWJseSBjcmFzaGVzIGNhbGxpbmcgX19zdHJsZW5f YXZ4MiB3aGVuIGhvc3RzIGNhY2hlIGlzCisgICAgIGVuYWJsZWQKKyAgIFsyOTYzOF0gbGliYzog c3RkbGliOiBhcmM0cmFuZG9tIGZhbGxiYWNrIGlzIG5ldmVyIHVzZWQKKysgIFsyOTY1N10gbGli YzogSW5jb3JyZWN0IHN0cnVjdCBzdGF0IGZvciA2NC1iaXQgdGltZSBvbiBsaW51eC9nZW5lcmlj CisrICAgIHBsYXRmb3JtcworIAwKKyBWZXJzaW9uIDIuMzYKKyAKK2RpZmYgLS1naXQgYS9zeXNk ZXBzL3VuaXgvc3lzdi9saW51eC9hcm0vYml0cy9zdHJ1Y3Rfc3RhdC5oIGIvc3lzZGVwcy91bml4 L3N5c3YvbGludXgvYXJtL2JpdHMvc3RydWN0X3N0YXQuaAorbmV3IGZpbGUgbW9kZSAxMDA2NDQK K2luZGV4IDAwMDAwMDAwMDAuLjMwZWU2Mjc5ZDIKKy0tLSAvZGV2L251bGwKKysrKyBiL3N5c2Rl cHMvdW5peC9zeXN2L2xpbnV4L2FybS9iaXRzL3N0cnVjdF9zdGF0LmgKK0BAIC0wLDAgKzEsMTM5 IEBACisrLyogRGVmaW5pdGlvbiBmb3Igc3RydWN0IHN0YXQuICBMaW51eC9hcm0gdmVyc2lvbi4K KysgICBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KKysgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKysKKysgICBU aGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IKKysgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2Vy IEdlbmVyYWwgUHVibGljCisrICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisrICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2Us IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrCisrICAgVGhlIEdOVSBD IExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1 bCwKKysgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZgorKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisrICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysKKysgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg YSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisrICAgTGljZW5zZSBhbG9u ZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5LiAgSWYgbm90LCBzZWUKKysgICA8aHR0cHM6Ly93d3cu Z251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKysKKysjaWYgIWRlZmluZWQgX1NZU19TVEFUX0ggJiYg IWRlZmluZWQgX0ZDTlRMX0gKKysjIGVycm9yICJOZXZlciBpbmNsdWRlIDxiaXRzL3N0cnVjdF9z dGF0Lmg+IGRpcmVjdGx5OyB1c2UgPHN5cy9zdGF0Lmg+IGluc3RlYWQuIgorKyNlbmRpZgorKwor KyNpZm5kZWYgX0JJVFNfU1RSVUNUX1NUQVRfSAorKyNkZWZpbmUgX0JJVFNfU1RSVUNUX1NUQVRf SAkxCisrCisrI2luY2x1ZGUgPGJpdHMvZW5kaWFuLmg+CisrI2luY2x1ZGUgPGJpdHMvd29yZHNp emUuaD4KKysKKytzdHJ1Y3Qgc3RhdAorKyAgeworKyNpZmRlZiBfX1VTRV9USU1FX0JJVFM2NAor KyMgaW5jbHVkZSA8Yml0cy9zdHJ1Y3Rfc3RhdF90aW1lNjRfaGVscGVyLmg+CisrI2Vsc2UKKysg ICAgX19kZXZfdCBzdF9kZXY7CQkJLyogRGV2aWNlLiAgKi8KKysgICAgdW5zaWduZWQgc2hvcnQg aW50IF9fcGFkMTsKKysjIGlmbmRlZiBfX1VTRV9GSUxFX09GRlNFVDY0CisrICAgIF9faW5vX3Qg c3RfaW5vOwkJCS8qIEZpbGUgc2VyaWFsIG51bWJlci4JKi8KKysjIGVsc2UKKysgICAgX19pbm9f dCBfX3N0X2lubzsJCQkvKiAzMmJpdCBmaWxlIHNlcmlhbCBudW1iZXIuCSovCisrIyBlbmRpZgor KyAgICBfX21vZGVfdCBzdF9tb2RlOwkJCS8qIEZpbGUgbW9kZS4gICovCisrICAgIF9fbmxpbmtf dCBzdF9ubGluazsJCQkvKiBMaW5rIGNvdW50LiAgKi8KKysgICAgX191aWRfdCBzdF91aWQ7CQkJ LyogVXNlciBJRCBvZiB0aGUgZmlsZSdzIG93bmVyLgkqLworKyAgICBfX2dpZF90IHN0X2dpZDsJ CQkvKiBHcm91cCBJRCBvZiB0aGUgZmlsZSdzIGdyb3VwLiovCisrICAgIF9fZGV2X3Qgc3RfcmRl djsJCQkvKiBEZXZpY2UgbnVtYmVyLCBpZiBkZXZpY2UuICAqLworKyAgICB1bnNpZ25lZCBzaG9y dCBpbnQgX19wYWQyOworKyMgaWZuZGVmIF9fVVNFX0ZJTEVfT0ZGU0VUNjQKKysgICAgX19vZmZf dCBzdF9zaXplOwkJCS8qIFNpemUgb2YgZmlsZSwgaW4gYnl0ZXMuICAqLworKyMgZWxzZQorKyAg ICBfX29mZjY0X3Qgc3Rfc2l6ZTsJCQkvKiBTaXplIG9mIGZpbGUsIGluIGJ5dGVzLiAgKi8KKysj IGVuZGlmCisrICAgIF9fYmxrc2l6ZV90IHN0X2Jsa3NpemU7CQkvKiBPcHRpbWFsIGJsb2NrIHNp emUgZm9yIEkvTy4gICovCisrCisrIyBpZm5kZWYgX19VU0VfRklMRV9PRkZTRVQ2NAorKyAgICBf X2Jsa2NudF90IHN0X2Jsb2NrczsJCS8qIE51bWJlciA1MTItYnl0ZSBibG9ja3MgYWxsb2NhdGVk LiAqLworKyMgZWxzZQorKyAgICBfX2Jsa2NudDY0X3Qgc3RfYmxvY2tzOwkJLyogTnVtYmVyIDUx Mi1ieXRlIGJsb2NrcyBhbGxvY2F0ZWQuICovCisrIyBlbmRpZgorKyMgaWZkZWYgX19VU0VfWE9Q RU4ySzgKKysgICAgLyogTmFub3NlY29uZCByZXNvbHV0aW9uIHRpbWVzdGFtcHMgYXJlIHN0b3Jl ZCBpbiBhIGZvcm1hdAorKyAgICAgICBlcXVpdmFsZW50IHRvICdzdHJ1Y3QgdGltZXNwZWMnLiAg VGhpcyBpcyB0aGUgdHlwZSB1c2VkCisrICAgICAgIHdoZW5ldmVyIHBvc3NpYmxlIGJ1dCB0aGUg VW5peCBuYW1lc3BhY2UgcnVsZXMgZG8gbm90IGFsbG93IHRoZQorKyAgICAgICBpZGVudGlmaWVy ICd0aW1lc3BlYycgdG8gYXBwZWFyIGluIHRoZSA8c3lzL3N0YXQuaD4gaGVhZGVyLgorKyAgICAg ICBUaGVyZWZvcmUgd2UgaGF2ZSB0byBoYW5kbGUgdGhlIHVzZSBvZiB0aGlzIGhlYWRlciBpbiBz dHJpY3RseQorKyAgICAgICBzdGFuZGFyZC1jb21wbGlhbnQgc291cmNlcyBzcGVjaWFsLiAgKi8K KysgICAgc3RydWN0IHRpbWVzcGVjIHN0X2F0aW07CQkvKiBUaW1lIG9mIGxhc3QgYWNjZXNzLiAg Ki8KKysgICAgc3RydWN0IHRpbWVzcGVjIHN0X210aW07CQkvKiBUaW1lIG9mIGxhc3QgbW9kaWZp Y2F0aW9uLiAgKi8KKysgICAgc3RydWN0IHRpbWVzcGVjIHN0X2N0aW07CQkvKiBUaW1lIG9mIGxh c3Qgc3RhdHVzIGNoYW5nZS4gICovCisrIyAgZGVmaW5lIHN0X2F0aW1lIHN0X2F0aW0udHZfc2Vj CS8qIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkuICAqLworKyMgIGRlZmluZSBzdF9tdGltZSBzdF9t dGltLnR2X3NlYworKyMgIGRlZmluZSBzdF9jdGltZSBzdF9jdGltLnR2X3NlYworKyMgZWxzZQor KyAgICBfX3RpbWVfdCBzdF9hdGltZTsJCQkvKiBUaW1lIG9mIGxhc3QgYWNjZXNzLiAgKi8KKysg ICAgdW5zaWduZWQgbG9uZyBpbnQgc3RfYXRpbWVuc2VjOwkvKiBOc2NlY3Mgb2YgbGFzdCBhY2Nl c3MuICAqLworKyAgICBfX3RpbWVfdCBzdF9tdGltZTsJCQkvKiBUaW1lIG9mIGxhc3QgbW9kaWZp Y2F0aW9uLiAgKi8KKysgICAgdW5zaWduZWQgbG9uZyBpbnQgc3RfbXRpbWVuc2VjOwkvKiBOc2Vj cyBvZiBsYXN0IG1vZGlmaWNhdGlvbi4gICovCisrICAgIF9fdGltZV90IHN0X2N0aW1lOwkJCS8q IFRpbWUgb2YgbGFzdCBzdGF0dXMgY2hhbmdlLiAgKi8KKysgICAgdW5zaWduZWQgbG9uZyBpbnQg c3RfY3RpbWVuc2VjOwkvKiBOc2VjcyBvZiBsYXN0IHN0YXR1cyBjaGFuZ2UuICAqLworKyMgZW5k aWYKKysjIGlmbmRlZiBfX1VTRV9GSUxFX09GRlNFVDY0CisrICAgIHVuc2lnbmVkIGxvbmcgaW50 IF9fZ2xpYmNfcmVzZXJ2ZWQ0OworKyAgICB1bnNpZ25lZCBsb25nIGludCBfX2dsaWJjX3Jlc2Vy dmVkNTsKKysjIGVsc2UKKysgICAgX19pbm82NF90IHN0X2lubzsJCQkvKiBGaWxlIHNlcmlhbCBu dW1iZXIuCSovCisrIyBlbmRpZgorKyNlbmRpZiAvKiBfX1VTRV9USU1FX0JJVFM2NCAgKi8KKysg IH07CisrCisrI2lmZGVmIF9fVVNFX0xBUkdFRklMRTY0Cisrc3RydWN0IHN0YXQ2NAorKyAgewor KyMgaWZkZWYgX19VU0VfVElNRV9CSVRTNjQKKysjICBpbmNsdWRlIDxiaXRzL3N0cnVjdF9zdGF0 X3RpbWU2NF9oZWxwZXIuaD4KKysjIGVsc2UKKysgICAgX19kZXZfdCBzdF9kZXY7CQkJLyogRGV2 aWNlLiAgKi8KKysgICAgdW5zaWduZWQgaW50IF9fcGFkMTsKKysKKysgICAgX19pbm9fdCBfX3N0 X2lubzsJCQkvKiAzMmJpdCBmaWxlIHNlcmlhbCBudW1iZXIuCSovCisrICAgIF9fbW9kZV90IHN0 X21vZGU7CQkJLyogRmlsZSBtb2RlLiAgKi8KKysgICAgX19ubGlua190IHN0X25saW5rOwkJCS8q IExpbmsgY291bnQuICAqLworKyAgICBfX3VpZF90IHN0X3VpZDsJCQkvKiBVc2VyIElEIG9mIHRo ZSBmaWxlJ3Mgb3duZXIuCSovCisrICAgIF9fZ2lkX3Qgc3RfZ2lkOwkJCS8qIEdyb3VwIElEIG9m IHRoZSBmaWxlJ3MgZ3JvdXAuKi8KKysgICAgX19kZXZfdCBzdF9yZGV2OwkJCS8qIERldmljZSBu dW1iZXIsIGlmIGRldmljZS4gICovCisrICAgIHVuc2lnbmVkIGludCBfX3BhZDI7CisrICAgIF9f b2ZmNjRfdCBzdF9zaXplOwkJCS8qIFNpemUgb2YgZmlsZSwgaW4gYnl0ZXMuICAqLworKyAgICBf X2Jsa3NpemVfdCBzdF9ibGtzaXplOwkJLyogT3B0aW1hbCBibG9jayBzaXplIGZvciBJL08uICAq LworKworKyAgICBfX2Jsa2NudDY0X3Qgc3RfYmxvY2tzOwkJLyogTnVtYmVyIDUxMi1ieXRlIGJs b2NrcyBhbGxvY2F0ZWQuICovCisrIyAgaWZkZWYgX19VU0VfWE9QRU4ySzgKKysgICAgLyogTmFu b3NlY29uZCByZXNvbHV0aW9uIHRpbWVzdGFtcHMgYXJlIHN0b3JlZCBpbiBhIGZvcm1hdAorKyAg ICAgICBlcXVpdmFsZW50IHRvICdzdHJ1Y3QgdGltZXNwZWMnLiAgVGhpcyBpcyB0aGUgdHlwZSB1 c2VkCisrICAgICAgIHdoZW5ldmVyIHBvc3NpYmxlIGJ1dCB0aGUgVW5peCBuYW1lc3BhY2UgcnVs ZXMgZG8gbm90IGFsbG93IHRoZQorKyAgICAgICBpZGVudGlmaWVyICd0aW1lc3BlYycgdG8gYXBw ZWFyIGluIHRoZSA8c3lzL3N0YXQuaD4gaGVhZGVyLgorKyAgICAgICBUaGVyZWZvcmUgd2UgaGF2 ZSB0byBoYW5kbGUgdGhlIHVzZSBvZiB0aGlzIGhlYWRlciBpbiBzdHJpY3RseQorKyAgICAgICBz dGFuZGFyZC1jb21wbGlhbnQgc291cmNlcyBzcGVjaWFsLiAgKi8KKysgICAgc3RydWN0IHRpbWVz cGVjIHN0X2F0aW07CQkvKiBUaW1lIG9mIGxhc3QgYWNjZXNzLiAgKi8KKysgICAgc3RydWN0IHRp bWVzcGVjIHN0X210aW07CQkvKiBUaW1lIG9mIGxhc3QgbW9kaWZpY2F0aW9uLiAgKi8KKysgICAg c3RydWN0IHRpbWVzcGVjIHN0X2N0aW07CQkvKiBUaW1lIG9mIGxhc3Qgc3RhdHVzIGNoYW5nZS4g ICovCisrIyAgZWxzZQorKyAgICBfX3RpbWVfdCBzdF9hdGltZTsJCQkvKiBUaW1lIG9mIGxhc3Qg YWNjZXNzLiAgKi8KKysgICAgdW5zaWduZWQgbG9uZyBpbnQgc3RfYXRpbWVuc2VjOwkvKiBOc2Nl Y3Mgb2YgbGFzdCBhY2Nlc3MuICAqLworKyAgICBfX3RpbWVfdCBzdF9tdGltZTsJCQkvKiBUaW1l IG9mIGxhc3QgbW9kaWZpY2F0aW9uLiAgKi8KKysgICAgdW5zaWduZWQgbG9uZyBpbnQgc3RfbXRp bWVuc2VjOwkvKiBOc2VjcyBvZiBsYXN0IG1vZGlmaWNhdGlvbi4gICovCisrICAgIF9fdGltZV90 IHN0X2N0aW1lOwkJCS8qIFRpbWUgb2YgbGFzdCBzdGF0dXMgY2hhbmdlLiAgKi8KKysgICAgdW5z aWduZWQgbG9uZyBpbnQgc3RfY3RpbWVuc2VjOwkvKiBOc2VjcyBvZiBsYXN0IHN0YXR1cyBjaGFu Z2UuICAqLworKyMgIGVuZGlmCisrICAgIF9faW5vNjRfdCBzdF9pbm87CQkJLyogRmlsZSBzZXJp YWwgbnVtYmVyLgkJKi8KKysjIGVuZGlmIC8qIF9fVVNFX1RJTUVfQklUUzY0ICAqLworKyAgfTsK KysjZW5kaWYKKysKKysvKiBUZWxsIGNvZGUgd2UgaGF2ZSB0aGVzZSBtZW1iZXJzLiAgKi8KKysj ZGVmaW5lCV9TVEFUQlVGX1NUX0JMS1NJWkUKKysjZGVmaW5lIF9TVEFUQlVGX1NUX1JERVYKKysv KiBOYW5vc2Vjb25kIHJlc29sdXRpb24gdGltZSB2YWx1ZXMgYXJlIHN1cHBvcnRlZC4gICovCisr I2RlZmluZSBfU1RBVEJVRl9TVF9OU0VDCisrCisrCisrI2VuZGlmIC8qIF9CSVRTX1NUUlVDVF9T VEFUX0ggICovCitkaWZmIC0tZ2l0IGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvYml0cy9zdHJ1 Y3Rfc3RhdC5oIGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvYml0cy9zdHJ1Y3Rfc3RhdC5oCitp bmRleCAyNWJkNmNiNjM4Li5mYjExYTNmYmE0IDEwMDY0NAorLS0tIGEvc3lzZGVwcy91bml4L3N5 c3YvbGludXgvYml0cy9zdHJ1Y3Rfc3RhdC5oCisrKysgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51 eC9iaXRzL3N0cnVjdF9zdGF0LmgKK0BAIC0yNiwzNyArMjYsMzYgQEAKKyAjaW5jbHVkZSA8Yml0 cy9lbmRpYW4uaD4KKyAjaW5jbHVkZSA8Yml0cy93b3Jkc2l6ZS5oPgorIAorLXN0cnVjdCBzdGF0 CistICB7CistI2lmZGVmIF9fVVNFX1RJTUVfQklUUzY0CistIyBpbmNsdWRlIDxiaXRzL3N0cnVj dF9zdGF0X3RpbWU2NF9oZWxwZXIuaD4KKy0jZWxzZQorLSAgICBfX2Rldl90IHN0X2RldjsJCQkv KiBEZXZpY2UuICAqLworLSAgICB1bnNpZ25lZCBzaG9ydCBpbnQgX19wYWQxOworLSMgaWZuZGVm IF9fVVNFX0ZJTEVfT0ZGU0VUNjQKKy0gICAgX19pbm9fdCBzdF9pbm87CQkJLyogRmlsZSBzZXJp YWwgbnVtYmVyLgkqLworLSMgZWxzZQorLSAgICBfX2lub190IF9fc3RfaW5vOwkJCS8qIDMyYml0 IGZpbGUgc2VyaWFsIG51bWJlci4JKi8KKysjaWYgZGVmaW5lZCBfX1VTRV9GSUxFX09GRlNFVDY0 CisrIyBkZWZpbmUgX19maWVsZDY0KHR5cGUsIHR5cGU2NCwgbmFtZSkgdHlwZTY0IG5hbWUKKysj ZWxpZiBfX1dPUkRTSVpFID09IDY0IHx8IGRlZmluZWQgX19JTk9fVF9NQVRDSEVTX0lOTzY0X1QK KysjIGlmIGRlZmluZWQgX19JTk9fVF9NQVRDSEVTX0lOTzY0X1QgJiYgIWRlZmluZWQgX19PRkZf VF9NQVRDSEVTX09GRjY0X1QKKysjICBlcnJvciAiaW5vX3QgYW5kIG9mZl90IG11c3QgYm90aCBi ZSB0aGUgc2FtZSB0eXBlIgorICMgZW5kaWYKKy0gICAgX19tb2RlX3Qgc3RfbW9kZTsJCQkvKiBG aWxlIG1vZGUuICAqLworLSAgICBfX25saW5rX3Qgc3Rfbmxpbms7CQkJLyogTGluayBjb3VudC4g ICovCistICAgIF9fdWlkX3Qgc3RfdWlkOwkJCS8qIFVzZXIgSUQgb2YgdGhlIGZpbGUncyBvd25l ci4JKi8KKy0gICAgX19naWRfdCBzdF9naWQ7CQkJLyogR3JvdXAgSUQgb2YgdGhlIGZpbGUncyBn cm91cC4qLworLSAgICBfX2Rldl90IHN0X3JkZXY7CQkJLyogRGV2aWNlIG51bWJlciwgaWYgZGV2 aWNlLiAgKi8KKy0gICAgdW5zaWduZWQgc2hvcnQgaW50IF9fcGFkMjsKKy0jIGlmbmRlZiBfX1VT RV9GSUxFX09GRlNFVDY0CistICAgIF9fb2ZmX3Qgc3Rfc2l6ZTsJCQkvKiBTaXplIG9mIGZpbGUs IGluIGJ5dGVzLiAgKi8KKy0jIGVsc2UKKy0gICAgX19vZmY2NF90IHN0X3NpemU7CQkJLyogU2l6 ZSBvZiBmaWxlLCBpbiBieXRlcy4gICovCistIyBlbmRpZgorLSAgICBfX2Jsa3NpemVfdCBzdF9i bGtzaXplOwkJLyogT3B0aW1hbCBibG9jayBzaXplIGZvciBJL08uICAqLworKyMgZGVmaW5lIF9f ZmllbGQ2NCh0eXBlLCB0eXBlNjQsIG5hbWUpIHR5cGUgbmFtZQorKyNlbGlmIF9fQllURV9PUkRF UiA9PSBfX0xJVFRMRV9FTkRJQU4KKysjIGRlZmluZSBfX2ZpZWxkNjQodHlwZSwgdHlwZTY0LCBu YW1lKSBcCisrICB0eXBlIG5hbWUgX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18gKF9fYWxpZ25v Zl9fICh0eXBlNjQpKSkpOyBpbnQgX18jI25hbWUjI19wYWQKKysjZWxzZQorKyMgZGVmaW5lIF9f ZmllbGQ2NCh0eXBlLCB0eXBlNjQsIG5hbWUpIFwKKysgIGludCBfXyMjbmFtZSMjX3BhZCBfX2F0 dHJpYnV0ZV9fKChfX2FsaWduZWRfXyAoX19hbGlnbm9mX18gKHR5cGU2NCkpKSk7IHR5cGUgbmFt ZQorKyNlbmRpZgorIAorLSMgaWZuZGVmIF9fVVNFX0ZJTEVfT0ZGU0VUNjQKKy0gICAgX19ibGtj bnRfdCBzdF9ibG9ja3M7CQkvKiBOdW1iZXIgNTEyLWJ5dGUgYmxvY2tzIGFsbG9jYXRlZC4gKi8K Ky0jIGVsc2UKKy0gICAgX19ibGtjbnQ2NF90IHN0X2Jsb2NrczsJCS8qIE51bWJlciA1MTItYnl0 ZSBibG9ja3MgYWxsb2NhdGVkLiAqLworLSMgZW5kaWYKKy0jIGlmZGVmIF9fVVNFX1hPUEVOMks4 Cisrc3RydWN0IHN0YXQKKysgIHsKKysgICAgX19kZXZfdCBzdF9kZXY7CQkvKiBEZXZpY2UuICAq LworKyAgICBfX2ZpZWxkNjQoX19pbm9fdCwgX19pbm82NF90LCBzdF9pbm8pOyAgLyogRmlsZSBz ZXJpYWwgbnVtYmVyLiAqLworKyAgICBfX21vZGVfdCBzdF9tb2RlOwkJLyogRmlsZSBtb2RlLiAg Ki8KKysgICAgX19ubGlua190IHN0X25saW5rOwkJLyogTGluayBjb3VudC4gICovCisrICAgIF9f dWlkX3Qgc3RfdWlkOwkJLyogVXNlciBJRCBvZiB0aGUgZmlsZSdzIG93bmVyLgkqLworKyAgICBf X2dpZF90IHN0X2dpZDsJCS8qIEdyb3VwIElEIG9mIHRoZSBmaWxlJ3MgZ3JvdXAuKi8KKysgICAg X19kZXZfdCBzdF9yZGV2OwkJLyogRGV2aWNlIG51bWJlciwgaWYgZGV2aWNlLiAgKi8KKysgICAg X19kZXZfdCBfX3BhZDE7CisrICAgIF9fZmllbGQ2NChfX29mZl90LCBfX29mZjY0X3QsIHN0X3Np emUpOyAgLyogU2l6ZSBvZiBmaWxlLCBpbiBieXRlcy4gKi8KKysgICAgX19ibGtzaXplX3Qgc3Rf Ymxrc2l6ZTsJLyogT3B0aW1hbCBibG9jayBzaXplIGZvciBJL08uICAqLworKyAgICBpbnQgX19w YWQyOworKyAgICBfX2ZpZWxkNjQoX19ibGtjbnRfdCwgX19ibGtjbnQ2NF90LCBzdF9ibG9ja3Mp OyAgLyogNTEyLWJ5dGUgYmxvY2tzICovCisrI2lmZGVmIF9fVVNFX1hPUEVOMks4CisgICAgIC8q IE5hbm9zZWNvbmQgcmVzb2x1dGlvbiB0aW1lc3RhbXBzIGFyZSBzdG9yZWQgaW4gYSBmb3JtYXQK KyAgICAgICAgZXF1aXZhbGVudCB0byAnc3RydWN0IHRpbWVzcGVjJy4gIFRoaXMgaXMgdGhlIHR5 cGUgdXNlZAorICAgICAgICB3aGVuZXZlciBwb3NzaWJsZSBidXQgdGhlIFVuaXggbmFtZXNwYWNl IHJ1bGVzIGRvIG5vdCBhbGxvdyB0aGUKK0BAIC02Niw0NyArNjUsMzggQEAgc3RydWN0IHN0YXQK KyAgICAgc3RydWN0IHRpbWVzcGVjIHN0X2F0aW07CQkvKiBUaW1lIG9mIGxhc3QgYWNjZXNzLiAg Ki8KKyAgICAgc3RydWN0IHRpbWVzcGVjIHN0X210aW07CQkvKiBUaW1lIG9mIGxhc3QgbW9kaWZp Y2F0aW9uLiAgKi8KKyAgICAgc3RydWN0IHRpbWVzcGVjIHN0X2N0aW07CQkvKiBUaW1lIG9mIGxh c3Qgc3RhdHVzIGNoYW5nZS4gICovCistIyAgZGVmaW5lIHN0X2F0aW1lIHN0X2F0aW0udHZfc2Vj CS8qIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkuICAqLworLSMgIGRlZmluZSBzdF9tdGltZSBzdF9t dGltLnR2X3NlYworLSMgIGRlZmluZSBzdF9jdGltZSBzdF9jdGltLnR2X3NlYworLSMgZWxzZQor KyMgZGVmaW5lIHN0X2F0aW1lIHN0X2F0aW0udHZfc2VjCS8qIEJhY2t3YXJkIGNvbXBhdGliaWxp dHkuICAqLworKyMgZGVmaW5lIHN0X210aW1lIHN0X210aW0udHZfc2VjCisrIyBkZWZpbmUgc3Rf Y3RpbWUgc3RfY3RpbS50dl9zZWMKKysjZWxzZQorICAgICBfX3RpbWVfdCBzdF9hdGltZTsJCQkv KiBUaW1lIG9mIGxhc3QgYWNjZXNzLiAgKi8KKyAgICAgdW5zaWduZWQgbG9uZyBpbnQgc3RfYXRp bWVuc2VjOwkvKiBOc2NlY3Mgb2YgbGFzdCBhY2Nlc3MuICAqLworICAgICBfX3RpbWVfdCBzdF9t dGltZTsJCQkvKiBUaW1lIG9mIGxhc3QgbW9kaWZpY2F0aW9uLiAgKi8KKyAgICAgdW5zaWduZWQg bG9uZyBpbnQgc3RfbXRpbWVuc2VjOwkvKiBOc2VjcyBvZiBsYXN0IG1vZGlmaWNhdGlvbi4gICov CisgICAgIF9fdGltZV90IHN0X2N0aW1lOwkJCS8qIFRpbWUgb2YgbGFzdCBzdGF0dXMgY2hhbmdl LiAgKi8KKyAgICAgdW5zaWduZWQgbG9uZyBpbnQgc3RfY3RpbWVuc2VjOwkvKiBOc2VjcyBvZiBs YXN0IHN0YXR1cyBjaGFuZ2UuICAqLworLSMgZW5kaWYKKy0jIGlmbmRlZiBfX1VTRV9GSUxFX09G RlNFVDY0CistICAgIHVuc2lnbmVkIGxvbmcgaW50IF9fZ2xpYmNfcmVzZXJ2ZWQ0OworLSAgICB1 bnNpZ25lZCBsb25nIGludCBfX2dsaWJjX3Jlc2VydmVkNTsKKy0jIGVsc2UKKy0gICAgX19pbm82 NF90IHN0X2lubzsJCQkvKiBGaWxlIHNlcmlhbCBudW1iZXIuCSovCistIyBlbmRpZgorLSNlbmRp ZiAvKiBfX1VTRV9USU1FX0JJVFM2NCAgKi8KKysjZW5kaWYKKysgICAgaW50IF9fZ2xpYmNfcmVz ZXJ2ZWRbMl07CisgICB9OworIAorKyN1bmRlZiBfX2ZpZWxkNjQKKysKKyAjaWZkZWYgX19VU0Vf TEFSR0VGSUxFNjQKKyBzdHJ1Y3Qgc3RhdDY0CisgICB7CistIyBpZmRlZiBfX1VTRV9USU1FX0JJ VFM2NAorLSMgIGluY2x1ZGUgPGJpdHMvc3RydWN0X3N0YXRfdGltZTY0X2hlbHBlci5oPgorLSMg ZWxzZQorLSAgICBfX2Rldl90IHN0X2RldjsJCQkvKiBEZXZpY2UuICAqLworLSAgICB1bnNpZ25l ZCBpbnQgX19wYWQxOworLQorLSAgICBfX2lub190IF9fc3RfaW5vOwkJCS8qIDMyYml0IGZpbGUg c2VyaWFsIG51bWJlci4JKi8KKy0gICAgX19tb2RlX3Qgc3RfbW9kZTsJCQkvKiBGaWxlIG1vZGUu ICAqLworLSAgICBfX25saW5rX3Qgc3Rfbmxpbms7CQkJLyogTGluayBjb3VudC4gICovCistICAg IF9fdWlkX3Qgc3RfdWlkOwkJCS8qIFVzZXIgSUQgb2YgdGhlIGZpbGUncyBvd25lci4JKi8KKy0g ICAgX19naWRfdCBzdF9naWQ7CQkJLyogR3JvdXAgSUQgb2YgdGhlIGZpbGUncyBncm91cC4qLwor LSAgICBfX2Rldl90IHN0X3JkZXY7CQkJLyogRGV2aWNlIG51bWJlciwgaWYgZGV2aWNlLiAgKi8K Ky0gICAgdW5zaWduZWQgaW50IF9fcGFkMjsKKy0gICAgX19vZmY2NF90IHN0X3NpemU7CQkJLyog U2l6ZSBvZiBmaWxlLCBpbiBieXRlcy4gICovCistICAgIF9fYmxrc2l6ZV90IHN0X2Jsa3NpemU7 CQkvKiBPcHRpbWFsIGJsb2NrIHNpemUgZm9yIEkvTy4gICovCistCistICAgIF9fYmxrY250NjRf dCBzdF9ibG9ja3M7CQkvKiBOdW1iZXIgNTEyLWJ5dGUgYmxvY2tzIGFsbG9jYXRlZC4gKi8KKy0j ICBpZmRlZiBfX1VTRV9YT1BFTjJLOAorKyAgICBfX2Rldl90IHN0X2RldjsJCS8qIERldmljZS4g ICovCisrICAgIF9faW5vNjRfdCBzdF9pbm87CQkvKiBGaWxlIHNlcmlhbCBudW1iZXIuCSovCisr ICAgIF9fbW9kZV90IHN0X21vZGU7CQkvKiBGaWxlIG1vZGUuICAqLworKyAgICBfX25saW5rX3Qg c3Rfbmxpbms7CQkvKiBMaW5rIGNvdW50LiAgKi8KKysgICAgX191aWRfdCBzdF91aWQ7CQkvKiBV c2VyIElEIG9mIHRoZSBmaWxlJ3Mgb3duZXIuCSovCisrICAgIF9fZ2lkX3Qgc3RfZ2lkOwkJLyog R3JvdXAgSUQgb2YgdGhlIGZpbGUncyBncm91cC4qLworKyAgICBfX2Rldl90IHN0X3JkZXY7CQkv KiBEZXZpY2UgbnVtYmVyLCBpZiBkZXZpY2UuICAqLworKyAgICBfX2Rldl90IF9fcGFkMTsKKysg ICAgX19vZmY2NF90IHN0X3NpemU7CQkvKiBTaXplIG9mIGZpbGUsIGluIGJ5dGVzLiAgKi8KKysg ICAgX19ibGtzaXplX3Qgc3RfYmxrc2l6ZTsJLyogT3B0aW1hbCBibG9jayBzaXplIGZvciBJL08u ICAqLworKyAgICBpbnQgX19wYWQyOworKyAgICBfX2Jsa2NudDY0X3Qgc3RfYmxvY2tzOwkvKiBO ci4gNTEyLWJ5dGUgYmxvY2tzIGFsbG9jYXRlZC4gICovCisrI2lmZGVmIF9fVVNFX1hPUEVOMks4 CisgICAgIC8qIE5hbm9zZWNvbmQgcmVzb2x1dGlvbiB0aW1lc3RhbXBzIGFyZSBzdG9yZWQgaW4g YSBmb3JtYXQKKyAgICAgICAgZXF1aXZhbGVudCB0byAnc3RydWN0IHRpbWVzcGVjJy4gIFRoaXMg aXMgdGhlIHR5cGUgdXNlZAorICAgICAgICB3aGVuZXZlciBwb3NzaWJsZSBidXQgdGhlIFVuaXgg bmFtZXNwYWNlIHJ1bGVzIGRvIG5vdCBhbGxvdyB0aGUKK0BAIC0xMTYsMTYgKzEwNiwxNSBAQCBz dHJ1Y3Qgc3RhdDY0CisgICAgIHN0cnVjdCB0aW1lc3BlYyBzdF9hdGltOwkJLyogVGltZSBvZiBs YXN0IGFjY2Vzcy4gICovCisgICAgIHN0cnVjdCB0aW1lc3BlYyBzdF9tdGltOwkJLyogVGltZSBv ZiBsYXN0IG1vZGlmaWNhdGlvbi4gICovCisgICAgIHN0cnVjdCB0aW1lc3BlYyBzdF9jdGltOwkJ LyogVGltZSBvZiBsYXN0IHN0YXR1cyBjaGFuZ2UuICAqLworLSMgIGVsc2UKKysjZWxzZQorICAg ICBfX3RpbWVfdCBzdF9hdGltZTsJCQkvKiBUaW1lIG9mIGxhc3QgYWNjZXNzLiAgKi8KKyAgICAg dW5zaWduZWQgbG9uZyBpbnQgc3RfYXRpbWVuc2VjOwkvKiBOc2NlY3Mgb2YgbGFzdCBhY2Nlc3Mu ICAqLworICAgICBfX3RpbWVfdCBzdF9tdGltZTsJCQkvKiBUaW1lIG9mIGxhc3QgbW9kaWZpY2F0 aW9uLiAgKi8KKyAgICAgdW5zaWduZWQgbG9uZyBpbnQgc3RfbXRpbWVuc2VjOwkvKiBOc2VjcyBv ZiBsYXN0IG1vZGlmaWNhdGlvbi4gICovCisgICAgIF9fdGltZV90IHN0X2N0aW1lOwkJCS8qIFRp bWUgb2YgbGFzdCBzdGF0dXMgY2hhbmdlLiAgKi8KKyAgICAgdW5zaWduZWQgbG9uZyBpbnQgc3Rf Y3RpbWVuc2VjOwkvKiBOc2VjcyBvZiBsYXN0IHN0YXR1cyBjaGFuZ2UuICAqLworLSMgIGVuZGlm CistICAgIF9faW5vNjRfdCBzdF9pbm87CQkJLyogRmlsZSBzZXJpYWwgbnVtYmVyLgkJKi8KKy0j IGVuZGlmIC8qIF9fVVNFX1RJTUVfQklUUzY0ICAqLworKyNlbmRpZgorKyAgICBpbnQgX19nbGli Y19yZXNlcnZlZFsyXTsKKyAgIH07CisgI2VuZGlmCisgCitAQCAtMTM1LDUgKzEyNCw0IEBAIHN0 cnVjdCBzdGF0NjQKKyAvKiBOYW5vc2Vjb25kIHJlc29sdXRpb24gdGltZSB2YWx1ZXMgYXJlIHN1 cHBvcnRlZC4gICovCisgI2RlZmluZSBfU1RBVEJVRl9TVF9OU0VDCisgCistCisgI2VuZGlmIC8q IF9CSVRTX1NUUlVDVF9TVEFUX0ggICovCitkaWZmIC0tZ2l0IGEvc3lzZGVwcy91bml4L3N5c3Yv bGludXgvZ2VuZXJpYy9iaXRzL3N0cnVjdF9zdGF0LmggYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51 eC9jc2t5L2JpdHMvc3RydWN0X3N0YXQuaAorc2ltaWxhcml0eSBpbmRleCA5MiUKK3JlbmFtZSBm cm9tIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2dlbmVyaWMvYml0cy9zdHJ1Y3Rfc3RhdC5oCity ZW5hbWUgdG8gc3lzZGVwcy91bml4L3N5c3YvbGludXgvY3NreS9iaXRzL3N0cnVjdF9zdGF0LmgK K2luZGV4IGZiMTFhM2ZiYTQuLmYwZWU0NTU3NDggMTAwNjQ0CistLS0gYS9zeXNkZXBzL3VuaXgv c3lzdi9saW51eC9nZW5lcmljL2JpdHMvc3RydWN0X3N0YXQuaAorKysrIGIvc3lzZGVwcy91bml4 L3N5c3YvbGludXgvY3NreS9iaXRzL3N0cnVjdF9zdGF0LmgKK0BAIC0xLDQgKzEsNCBAQAorLS8q IERlZmluaXRpb24gZm9yIHN0cnVjdCBzdGF0LgorKy8qIERlZmluaXRpb24gZm9yIHN0cnVjdCBz dGF0LiAgTGludXgvY3NreSB2ZXJzaW9uLgorICAgIENvcHlyaWdodCAoQykgMjAyMC0yMDIyIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRo ZSBHTlUgQyBMaWJyYXJ5LgorIAorQEAgLTQzLDYgKzQzLDkgQEAKKyAKKyBzdHJ1Y3Qgc3RhdAor ICAgeworKyNpZmRlZiBfX1VTRV9USU1FX0JJVFM2NAorKyMgaW5jbHVkZSA8Yml0cy9zdHJ1Y3Rf c3RhdF90aW1lNjRfaGVscGVyLmg+CisrI2Vsc2UKKyAgICAgX19kZXZfdCBzdF9kZXY7CQkvKiBE ZXZpY2UuICAqLworICAgICBfX2ZpZWxkNjQoX19pbm9fdCwgX19pbm82NF90LCBzdF9pbm8pOyAg LyogRmlsZSBzZXJpYWwgbnVtYmVyLiAqLworICAgICBfX21vZGVfdCBzdF9tb2RlOwkJLyogRmls ZSBtb2RlLiAgKi8KK0BAIC01NSw3ICs1OCw3IEBAIHN0cnVjdCBzdGF0CisgICAgIF9fYmxrc2l6 ZV90IHN0X2Jsa3NpemU7CS8qIE9wdGltYWwgYmxvY2sgc2l6ZSBmb3IgSS9PLiAgKi8KKyAgICAg aW50IF9fcGFkMjsKKyAgICAgX19maWVsZDY0KF9fYmxrY250X3QsIF9fYmxrY250NjRfdCwgc3Rf YmxvY2tzKTsgIC8qIDUxMi1ieXRlIGJsb2NrcyAqLworLSNpZmRlZiBfX1VTRV9YT1BFTjJLOAor KyMgaWZkZWYgX19VU0VfWE9QRU4ySzgKKyAgICAgLyogTmFub3NlY29uZCByZXNvbHV0aW9uIHRp bWVzdGFtcHMgYXJlIHN0b3JlZCBpbiBhIGZvcm1hdAorICAgICAgICBlcXVpdmFsZW50IHRvICdz dHJ1Y3QgdGltZXNwZWMnLiAgVGhpcyBpcyB0aGUgdHlwZSB1c2VkCisgICAgICAgIHdoZW5ldmVy IHBvc3NpYmxlIGJ1dCB0aGUgVW5peCBuYW1lc3BhY2UgcnVsZXMgZG8gbm90IGFsbG93IHRoZQor QEAgLTY1LDE4ICs2OCwxOSBAQCBzdHJ1Y3Qgc3RhdAorICAgICBzdHJ1Y3QgdGltZXNwZWMgc3Rf YXRpbTsJCS8qIFRpbWUgb2YgbGFzdCBhY2Nlc3MuICAqLworICAgICBzdHJ1Y3QgdGltZXNwZWMg c3RfbXRpbTsJCS8qIFRpbWUgb2YgbGFzdCBtb2RpZmljYXRpb24uICAqLworICAgICBzdHJ1Y3Qg dGltZXNwZWMgc3RfY3RpbTsJCS8qIFRpbWUgb2YgbGFzdCBzdGF0dXMgY2hhbmdlLiAgKi8KKy0j IGRlZmluZSBzdF9hdGltZSBzdF9hdGltLnR2X3NlYwkvKiBCYWNrd2FyZCBjb21wYXRpYmlsaXR5 LiAgKi8KKy0jIGRlZmluZSBzdF9tdGltZSBzdF9tdGltLnR2X3NlYworLSMgZGVmaW5lIHN0X2N0 aW1lIHN0X2N0aW0udHZfc2VjCistI2Vsc2UKKysjICBkZWZpbmUgc3RfYXRpbWUgc3RfYXRpbS50 dl9zZWMJLyogQmFja3dhcmQgY29tcGF0aWJpbGl0eS4gICovCisrIyAgZGVmaW5lIHN0X210aW1l IHN0X210aW0udHZfc2VjCisrIyAgZGVmaW5lIHN0X2N0aW1lIHN0X2N0aW0udHZfc2VjCisrIyBl bHNlCisgICAgIF9fdGltZV90IHN0X2F0aW1lOwkJCS8qIFRpbWUgb2YgbGFzdCBhY2Nlc3MuICAq LworICAgICB1bnNpZ25lZCBsb25nIGludCBzdF9hdGltZW5zZWM7CS8qIE5zY2VjcyBvZiBsYXN0 IGFjY2Vzcy4gICovCisgICAgIF9fdGltZV90IHN0X210aW1lOwkJCS8qIFRpbWUgb2YgbGFzdCBt b2RpZmljYXRpb24uICAqLworICAgICB1bnNpZ25lZCBsb25nIGludCBzdF9tdGltZW5zZWM7CS8q IE5zZWNzIG9mIGxhc3QgbW9kaWZpY2F0aW9uLiAgKi8KKyAgICAgX190aW1lX3Qgc3RfY3RpbWU7 CQkJLyogVGltZSBvZiBsYXN0IHN0YXR1cyBjaGFuZ2UuICAqLworICAgICB1bnNpZ25lZCBsb25n IGludCBzdF9jdGltZW5zZWM7CS8qIE5zZWNzIG9mIGxhc3Qgc3RhdHVzIGNoYW5nZS4gICovCist I2VuZGlmCisrIyBlbmRpZgorICAgICBpbnQgX19nbGliY19yZXNlcnZlZFsyXTsKKysjZW5kaWYK KyAgIH07CisgCisgI3VuZGVmIF9fZmllbGQ2NAorQEAgLTg0LDYgKzg4LDkgQEAgc3RydWN0IHN0 YXQKKyAjaWZkZWYgX19VU0VfTEFSR0VGSUxFNjQKKyBzdHJ1Y3Qgc3RhdDY0CisgICB7CisrIyBp ZmRlZiBfX1VTRV9USU1FX0JJVFM2NAorKyMgIGluY2x1ZGUgPGJpdHMvc3RydWN0X3N0YXRfdGlt ZTY0X2hlbHBlci5oPgorKyMgZWxzZQorICAgICBfX2Rldl90IHN0X2RldjsJCS8qIERldmljZS4g ICovCisgICAgIF9faW5vNjRfdCBzdF9pbm87CQkvKiBGaWxlIHNlcmlhbCBudW1iZXIuCSovCisg ICAgIF9fbW9kZV90IHN0X21vZGU7CQkvKiBGaWxlIG1vZGUuICAqLworQEAgLTk2LDcgKzEwMyw3 IEBAIHN0cnVjdCBzdGF0NjQKKyAgICAgX19ibGtzaXplX3Qgc3RfYmxrc2l6ZTsJLyogT3B0aW1h bCBibG9jayBzaXplIGZvciBJL08uICAqLworICAgICBpbnQgX19wYWQyOworICAgICBfX2Jsa2Nu dDY0X3Qgc3RfYmxvY2tzOwkvKiBOci4gNTEyLWJ5dGUgYmxvY2tzIGFsbG9jYXRlZC4gICovCist I2lmZGVmIF9fVVNFX1hPUEVOMks4CisrIyAgaWZkZWYgX19VU0VfWE9QRU4ySzgKKyAgICAgLyog TmFub3NlY29uZCByZXNvbHV0aW9uIHRpbWVzdGFtcHMgYXJlIHN0b3JlZCBpbiBhIGZvcm1hdAor ICAgICAgICBlcXVpdmFsZW50IHRvICdzdHJ1Y3QgdGltZXNwZWMnLiAgVGhpcyBpcyB0aGUgdHlw ZSB1c2VkCisgICAgICAgIHdoZW5ldmVyIHBvc3NpYmxlIGJ1dCB0aGUgVW5peCBuYW1lc3BhY2Ug cnVsZXMgZG8gbm90IGFsbG93IHRoZQorQEAgLTEwNiwxNSArMTEzLDE2IEBAIHN0cnVjdCBzdGF0 NjQKKyAgICAgc3RydWN0IHRpbWVzcGVjIHN0X2F0aW07CQkvKiBUaW1lIG9mIGxhc3QgYWNjZXNz LiAgKi8KKyAgICAgc3RydWN0IHRpbWVzcGVjIHN0X210aW07CQkvKiBUaW1lIG9mIGxhc3QgbW9k aWZpY2F0aW9uLiAgKi8KKyAgICAgc3RydWN0IHRpbWVzcGVjIHN0X2N0aW07CQkvKiBUaW1lIG9m IGxhc3Qgc3RhdHVzIGNoYW5nZS4gICovCistI2Vsc2UKKysjICBlbHNlCisgICAgIF9fdGltZV90 IHN0X2F0aW1lOwkJCS8qIFRpbWUgb2YgbGFzdCBhY2Nlc3MuICAqLworICAgICB1bnNpZ25lZCBs b25nIGludCBzdF9hdGltZW5zZWM7CS8qIE5zY2VjcyBvZiBsYXN0IGFjY2Vzcy4gICovCisgICAg IF9fdGltZV90IHN0X210aW1lOwkJCS8qIFRpbWUgb2YgbGFzdCBtb2RpZmljYXRpb24uICAqLwor ICAgICB1bnNpZ25lZCBsb25nIGludCBzdF9tdGltZW5zZWM7CS8qIE5zZWNzIG9mIGxhc3QgbW9k aWZpY2F0aW9uLiAgKi8KKyAgICAgX190aW1lX3Qgc3RfY3RpbWU7CQkJLyogVGltZSBvZiBsYXN0 IHN0YXR1cyBjaGFuZ2UuICAqLworICAgICB1bnNpZ25lZCBsb25nIGludCBzdF9jdGltZW5zZWM7 CS8qIE5zZWNzIG9mIGxhc3Qgc3RhdHVzIGNoYW5nZS4gICovCistI2VuZGlmCisrIyAgZW5kaWYK KyAgICAgaW50IF9fZ2xpYmNfcmVzZXJ2ZWRbMl07CisrIyBlbmRpZgorICAgfTsKKyAjZW5kaWYK KyAKK2RpZmYgLS1naXQgYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9ocHBhL2JpdHMvc3RydWN0 X3N0YXQuaCBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2hwcGEvYml0cy9zdHJ1Y3Rfc3RhdC5o CituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMC4uMzhiNmUxM2U2OAorLS0t IC9kZXYvbnVsbAorKysrIGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvaHBwYS9iaXRzL3N0cnVj dF9zdGF0LmgKK0BAIC0wLDAgKzEsMTM5IEBACisrLyogRGVmaW5pdGlvbiBmb3Igc3RydWN0IHN0 YXQuICBMaW51eC9ocHBhIHZlcnNpb24uCisrICAgQ29weXJpZ2h0IChDKSAyMDIwLTIwMjIgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhl IEdOVSBDIExpYnJhcnkuCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisrICAgbW9kaWZ5IGl0IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYXMg cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorKyAgIHZl cnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2 ZXJzaW9uLgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFCSUxJ VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorKyAg IExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAg WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs IFB1YmxpYworKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeS4gIElmIG5v dCwgc2VlCisrICAgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrI2lm ICFkZWZpbmVkIF9TWVNfU1RBVF9IICYmICFkZWZpbmVkIF9GQ05UTF9ICisrIyBlcnJvciAiTmV2 ZXIgaW5jbHVkZSA8Yml0cy9zdHJ1Y3Rfc3RhdC5oPiBkaXJlY3RseTsgdXNlIDxzeXMvc3RhdC5o PiBpbnN0ZWFkLiIKKysjZW5kaWYKKysKKysjaWZuZGVmIF9CSVRTX1NUUlVDVF9TVEFUX0gKKysj ZGVmaW5lIF9CSVRTX1NUUlVDVF9TVEFUX0gJMQorKworKyNpbmNsdWRlIDxiaXRzL2VuZGlhbi5o PgorKyNpbmNsdWRlIDxiaXRzL3dvcmRzaXplLmg+CisrCisrc3RydWN0IHN0YXQKKysgIHsKKysj aWZkZWYgX19VU0VfVElNRV9CSVRTNjQKKysjIGluY2x1ZGUgPGJpdHMvc3RydWN0X3N0YXRfdGlt ZTY0X2hlbHBlci5oPgorKyNlbHNlCisrICAgIF9fZGV2X3Qgc3RfZGV2OwkJCS8qIERldmljZS4g ICovCisrICAgIHVuc2lnbmVkIHNob3J0IGludCBfX3BhZDE7CisrIyBpZm5kZWYgX19VU0VfRklM RV9PRkZTRVQ2NAorKyAgICBfX2lub190IHN0X2lubzsJCQkvKiBGaWxlIHNlcmlhbCBudW1iZXIu CSovCisrIyBlbHNlCisrICAgIF9faW5vX3QgX19zdF9pbm87CQkJLyogMzJiaXQgZmlsZSBzZXJp YWwgbnVtYmVyLgkqLworKyMgZW5kaWYKKysgICAgX19tb2RlX3Qgc3RfbW9kZTsJCQkvKiBGaWxl IG1vZGUuICAqLworKyAgICBfX25saW5rX3Qgc3Rfbmxpbms7CQkJLyogTGluayBjb3VudC4gICov CisrICAgIF9fdWlkX3Qgc3RfdWlkOwkJCS8qIFVzZXIgSUQgb2YgdGhlIGZpbGUncyBvd25lci4J Ki8KKysgICAgX19naWRfdCBzdF9naWQ7CQkJLyogR3JvdXAgSUQgb2YgdGhlIGZpbGUncyBncm91 cC4qLworKyAgICBfX2Rldl90IHN0X3JkZXY7CQkJLyogRGV2aWNlIG51bWJlciwgaWYgZGV2aWNl LiAgKi8KKysgICAgdW5zaWduZWQgc2hvcnQgaW50IF9fcGFkMjsKKysjIGlmbmRlZiBfX1VTRV9G SUxFX09GRlNFVDY0CisrICAgIF9fb2ZmX3Qgc3Rfc2l6ZTsJCQkvKiBTaXplIG9mIGZpbGUsIGlu IGJ5dGVzLiAgKi8KKysjIGVsc2UKKysgICAgX19vZmY2NF90IHN0X3NpemU7CQkJLyogU2l6ZSBv ZiBmaWxlLCBpbiBieXRlcy4gICovCisrIyBlbmRpZgorKyAgICBfX2Jsa3NpemVfdCBzdF9ibGtz aXplOwkJLyogT3B0aW1hbCBibG9jayBzaXplIGZvciBJL08uICAqLworKworKyMgaWZuZGVmIF9f VVNFX0ZJTEVfT0ZGU0VUNjQKKysgICAgX19ibGtjbnRfdCBzdF9ibG9ja3M7CQkvKiBOdW1iZXIg NTEyLWJ5dGUgYmxvY2tzIGFsbG9jYXRlZC4gKi8KKysjIGVsc2UKKysgICAgX19ibGtjbnQ2NF90 IHN0X2Jsb2NrczsJCS8qIE51bWJlciA1MTItYnl0ZSBibG9ja3MgYWxsb2NhdGVkLiAqLworKyMg ZW5kaWYKKysjIGlmZGVmIF9fVVNFX1hPUEVOMks4CisrICAgIC8qIE5hbm9zZWNvbmQgcmVzb2x1 dGlvbiB0aW1lc3RhbXBzIGFyZSBzdG9yZWQgaW4gYSBmb3JtYXQKKysgICAgICAgZXF1aXZhbGVu dCB0byAnc3RydWN0IHRpbWVzcGVjJy4gIFRoaXMgaXMgdGhlIHR5cGUgdXNlZAorKyAgICAgICB3 aGVuZXZlciBwb3NzaWJsZSBidXQgdGhlIFVuaXggbmFtZXNwYWNlIHJ1bGVzIGRvIG5vdCBhbGxv dyB0aGUKKysgICAgICAgaWRlbnRpZmllciAndGltZXNwZWMnIHRvIGFwcGVhciBpbiB0aGUgPHN5 cy9zdGF0Lmg+IGhlYWRlci4KKysgICAgICAgVGhlcmVmb3JlIHdlIGhhdmUgdG8gaGFuZGxlIHRo ZSB1c2Ugb2YgdGhpcyBoZWFkZXIgaW4gc3RyaWN0bHkKKysgICAgICAgc3RhbmRhcmQtY29tcGxp YW50IHNvdXJjZXMgc3BlY2lhbC4gICovCisrICAgIHN0cnVjdCB0aW1lc3BlYyBzdF9hdGltOwkJ LyogVGltZSBvZiBsYXN0IGFjY2Vzcy4gICovCisrICAgIHN0cnVjdCB0aW1lc3BlYyBzdF9tdGlt OwkJLyogVGltZSBvZiBsYXN0IG1vZGlmaWNhdGlvbi4gICovCisrICAgIHN0cnVjdCB0aW1lc3Bl YyBzdF9jdGltOwkJLyogVGltZSBvZiBsYXN0IHN0YXR1cyBjaGFuZ2UuICAqLworKyMgIGRlZmlu ZSBzdF9hdGltZSBzdF9hdGltLnR2X3NlYwkvKiBCYWNrd2FyZCBjb21wYXRpYmlsaXR5LiAgKi8K KysjICBkZWZpbmUgc3RfbXRpbWUgc3RfbXRpbS50dl9zZWMKKysjICBkZWZpbmUgc3RfY3RpbWUg c3RfY3RpbS50dl9zZWMKKysjIGVsc2UKKysgICAgX190aW1lX3Qgc3RfYXRpbWU7CQkJLyogVGlt ZSBvZiBsYXN0IGFjY2Vzcy4gICovCisrICAgIHVuc2lnbmVkIGxvbmcgaW50IHN0X2F0aW1lbnNl YzsJLyogTnNjZWNzIG9mIGxhc3QgYWNjZXNzLiAgKi8KKysgICAgX190aW1lX3Qgc3RfbXRpbWU7 CQkJLyogVGltZSBvZiBsYXN0IG1vZGlmaWNhdGlvbi4gICovCisrICAgIHVuc2lnbmVkIGxvbmcg aW50IHN0X210aW1lbnNlYzsJLyogTnNlY3Mgb2YgbGFzdCBtb2RpZmljYXRpb24uICAqLworKyAg ICBfX3RpbWVfdCBzdF9jdGltZTsJCQkvKiBUaW1lIG9mIGxhc3Qgc3RhdHVzIGNoYW5nZS4gICov CisrICAgIHVuc2lnbmVkIGxvbmcgaW50IHN0X2N0aW1lbnNlYzsJLyogTnNlY3Mgb2YgbGFzdCBz dGF0dXMgY2hhbmdlLiAgKi8KKysjIGVuZGlmCisrIyBpZm5kZWYgX19VU0VfRklMRV9PRkZTRVQ2 NAorKyAgICB1bnNpZ25lZCBsb25nIGludCBfX2dsaWJjX3Jlc2VydmVkNDsKKysgICAgdW5zaWdu ZWQgbG9uZyBpbnQgX19nbGliY19yZXNlcnZlZDU7CisrIyBlbHNlCisrICAgIF9faW5vNjRfdCBz dF9pbm87CQkJLyogRmlsZSBzZXJpYWwgbnVtYmVyLgkqLworKyMgZW5kaWYKKysjZW5kaWYgLyog X19VU0VfVElNRV9CSVRTNjQgICovCisrICB9OworKworKyNpZmRlZiBfX1VTRV9MQVJHRUZJTEU2 NAorK3N0cnVjdCBzdGF0NjQKKysgIHsKKysjIGlmZGVmIF9fVVNFX1RJTUVfQklUUzY0CisrIyAg aW5jbHVkZSA8Yml0cy9zdHJ1Y3Rfc3RhdF90aW1lNjRfaGVscGVyLmg+CisrIyBlbHNlCisrICAg IF9fZGV2X3Qgc3RfZGV2OwkJCS8qIERldmljZS4gICovCisrICAgIHVuc2lnbmVkIGludCBfX3Bh ZDE7CisrCisrICAgIF9faW5vX3QgX19zdF9pbm87CQkJLyogMzJiaXQgZmlsZSBzZXJpYWwgbnVt YmVyLgkqLworKyAgICBfX21vZGVfdCBzdF9tb2RlOwkJCS8qIEZpbGUgbW9kZS4gICovCisrICAg IF9fbmxpbmtfdCBzdF9ubGluazsJCQkvKiBMaW5rIGNvdW50LiAgKi8KKysgICAgX191aWRfdCBz dF91aWQ7CQkJLyogVXNlciBJRCBvZiB0aGUgZmlsZSdzIG93bmVyLgkqLworKyAgICBfX2dpZF90 IHN0X2dpZDsJCQkvKiBHcm91cCBJRCBvZiB0aGUgZmlsZSdzIGdyb3VwLiovCisrICAgIF9fZGV2 X3Qgc3RfcmRldjsJCQkvKiBEZXZpY2UgbnVtYmVyLCBpZiBkZXZpY2UuICAqLworKyAgICB1bnNp Z25lZCBpbnQgX19wYWQyOworKyAgICBfX29mZjY0X3Qgc3Rfc2l6ZTsJCQkvKiBTaXplIG9mIGZp bGUsIGluIGJ5dGVzLiAgKi8KKysgICAgX19ibGtzaXplX3Qgc3RfYmxrc2l6ZTsJCS8qIE9wdGlt YWwgYmxvY2sgc2l6ZSBmb3IgSS9PLiAgKi8KKysKKysgICAgX19ibGtjbnQ2NF90IHN0X2Jsb2Nr czsJCS8qIE51bWJlciA1MTItYnl0ZSBibG9ja3MgYWxsb2NhdGVkLiAqLworKyMgIGlmZGVmIF9f VVNFX1hPUEVOMks4CisrICAgIC8qIE5hbm9zZWNvbmQgcmVzb2x1dGlvbiB0aW1lc3RhbXBzIGFy ZSBzdG9yZWQgaW4gYSBmb3JtYXQKKysgICAgICAgZXF1aXZhbGVudCB0byAnc3RydWN0IHRpbWVz cGVjJy4gIFRoaXMgaXMgdGhlIHR5cGUgdXNlZAorKyAgICAgICB3aGVuZXZlciBwb3NzaWJsZSBi dXQgdGhlIFVuaXggbmFtZXNwYWNlIHJ1bGVzIGRvIG5vdCBhbGxvdyB0aGUKKysgICAgICAgaWRl bnRpZmllciAndGltZXNwZWMnIHRvIGFwcGVhciBpbiB0aGUgPHN5cy9zdGF0Lmg+IGhlYWRlci4K KysgICAgICAgVGhlcmVmb3JlIHdlIGhhdmUgdG8gaGFuZGxlIHRoZSB1c2Ugb2YgdGhpcyBoZWFk ZXIgaW4gc3RyaWN0bHkKKysgICAgICAgc3RhbmRhcmQtY29tcGxpYW50IHNvdXJjZXMgc3BlY2lh bC4gICovCisrICAgIHN0cnVjdCB0aW1lc3BlYyBzdF9hdGltOwkJLyogVGltZSBvZiBsYXN0IGFj Y2Vzcy4gICovCisrICAgIHN0cnVjdCB0aW1lc3BlYyBzdF9tdGltOwkJLyogVGltZSBvZiBsYXN0 IG1vZGlmaWNhdGlvbi4gICovCisrICAgIHN0cnVjdCB0aW1lc3BlYyBzdF9jdGltOwkJLyogVGlt ZSBvZiBsYXN0IHN0YXR1cyBjaGFuZ2UuICAqLworKyMgIGVsc2UKKysgICAgX190aW1lX3Qgc3Rf YXRpbWU7CQkJLyogVGltZSBvZiBsYXN0IGFjY2Vzcy4gICovCisrICAgIHVuc2lnbmVkIGxvbmcg aW50IHN0X2F0aW1lbnNlYzsJLyogTnNjZWNzIG9mIGxhc3QgYWNjZXNzLiAgKi8KKysgICAgX190 aW1lX3Qgc3RfbXRpbWU7CQkJLyogVGltZSBvZiBsYXN0IG1vZGlmaWNhdGlvbi4gICovCisrICAg IHVuc2lnbmVkIGxvbmcgaW50IHN0X210aW1lbnNlYzsJLyogTnNlY3Mgb2YgbGFzdCBtb2RpZmlj YXRpb24uICAqLworKyAgICBfX3RpbWVfdCBzdF9jdGltZTsJCQkvKiBUaW1lIG9mIGxhc3Qgc3Rh dHVzIGNoYW5nZS4gICovCisrICAgIHVuc2lnbmVkIGxvbmcgaW50IHN0X2N0aW1lbnNlYzsJLyog TnNlY3Mgb2YgbGFzdCBzdGF0dXMgY2hhbmdlLiAgKi8KKysjICBlbmRpZgorKyAgICBfX2lubzY0 X3Qgc3RfaW5vOwkJCS8qIEZpbGUgc2VyaWFsIG51bWJlci4JCSovCisrIyBlbmRpZiAvKiBfX1VT RV9USU1FX0JJVFM2NCAgKi8KKysgIH07CisrI2VuZGlmCisrCisrLyogVGVsbCBjb2RlIHdlIGhh dmUgdGhlc2UgbWVtYmVycy4gICovCisrI2RlZmluZQlfU1RBVEJVRl9TVF9CTEtTSVpFCisrI2Rl ZmluZSBfU1RBVEJVRl9TVF9SREVWCisrLyogTmFub3NlY29uZCByZXNvbHV0aW9uIHRpbWUgdmFs dWVzIGFyZSBzdXBwb3J0ZWQuICAqLworKyNkZWZpbmUgX1NUQVRCVUZfU1RfTlNFQworKworKwor KyNlbmRpZiAvKiBfQklUU19TVFJVQ1RfU1RBVF9IICAqLworZGlmZiAtLWdpdCBhL3N5c2RlcHMv dW5peC9zeXN2L2xpbnV4L25pb3MyL2JpdHMvc3RydWN0X3N0YXQuaCBiL3N5c2RlcHMvdW5peC9z eXN2L2xpbnV4L25pb3MyL2JpdHMvc3RydWN0X3N0YXQuaAorbmV3IGZpbGUgbW9kZSAxMDA2NDQK K2luZGV4IDAwMDAwMDAwMDAuLmUwMGU3MTE3M2UKKy0tLSAvZGV2L251bGwKKysrKyBiL3N5c2Rl cHMvdW5peC9zeXN2L2xpbnV4L25pb3MyL2JpdHMvc3RydWN0X3N0YXQuaAorQEAgLTAsMCArMSwx MzUgQEAKKysvKiBEZWZpbml0aW9uIGZvciBzdHJ1Y3Qgc3RhdC4gIExpbnV4L25pb3MyIHZlcnNp b24uCisrICAgQ29weXJpZ2h0IChDKSAyMDIwLTIwMjIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCisrICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisrCisr ICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yCisrICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExl c3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNl bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoZSBH TlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsCisrICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt cGxpZWQgd2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorKyAgIExlc3NlciBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2Ug YWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeS4gIElmIG5vdCwgc2VlCisrICAgPGh0dHBzOi8v d3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrI2lmICFkZWZpbmVkIF9TWVNfU1RBVF9I ICYmICFkZWZpbmVkIF9GQ05UTF9ICisrIyBlcnJvciAiTmV2ZXIgaW5jbHVkZSA8Yml0cy9zdHJ1 Y3Rfc3RhdC5oPiBkaXJlY3RseTsgdXNlIDxzeXMvc3RhdC5oPiBpbnN0ZWFkLiIKKysjZW5kaWYK KysKKysjaWZuZGVmIF9CSVRTX1NUUlVDVF9TVEFUX0gKKysjZGVmaW5lIF9CSVRTX1NUUlVDVF9T VEFUX0gJMQorKworKyNpbmNsdWRlIDxiaXRzL2VuZGlhbi5oPgorKyNpbmNsdWRlIDxiaXRzL3dv cmRzaXplLmg+CisrCisrI2lmIGRlZmluZWQgX19VU0VfRklMRV9PRkZTRVQ2NAorKyMgZGVmaW5l IF9fZmllbGQ2NCh0eXBlLCB0eXBlNjQsIG5hbWUpIHR5cGU2NCBuYW1lCisrI2VsaWYgX19XT1JE U0laRSA9PSA2NCB8fCBkZWZpbmVkIF9fSU5PX1RfTUFUQ0hFU19JTk82NF9UCisrIyBpZiBkZWZp bmVkIF9fSU5PX1RfTUFUQ0hFU19JTk82NF9UICYmICFkZWZpbmVkIF9fT0ZGX1RfTUFUQ0hFU19P RkY2NF9UCisrIyAgZXJyb3IgImlub190IGFuZCBvZmZfdCBtdXN0IGJvdGggYmUgdGhlIHNhbWUg dHlwZSIKKysjIGVuZGlmCisrIyBkZWZpbmUgX19maWVsZDY0KHR5cGUsIHR5cGU2NCwgbmFtZSkg dHlwZSBuYW1lCisrI2VsaWYgX19CWVRFX09SREVSID09IF9fTElUVExFX0VORElBTgorKyMgZGVm aW5lIF9fZmllbGQ2NCh0eXBlLCB0eXBlNjQsIG5hbWUpIFwKKysgIHR5cGUgbmFtZSBfX2F0dHJp YnV0ZV9fKChfX2FsaWduZWRfXyAoX19hbGlnbm9mX18gKHR5cGU2NCkpKSk7IGludCBfXyMjbmFt ZSMjX3BhZAorKyNlbHNlCisrIyBkZWZpbmUgX19maWVsZDY0KHR5cGUsIHR5cGU2NCwgbmFtZSkg XAorKyAgaW50IF9fIyNuYW1lIyNfcGFkIF9fYXR0cmlidXRlX18oKF9fYWxpZ25lZF9fIChfX2Fs aWdub2ZfXyAodHlwZTY0KSkpKTsgdHlwZSBuYW1lCisrI2VuZGlmCisrCisrc3RydWN0IHN0YXQK KysgIHsKKysjaWZkZWYgX19VU0VfVElNRV9CSVRTNjQKKysjIGluY2x1ZGUgPGJpdHMvc3RydWN0 X3N0YXRfdGltZTY0X2hlbHBlci5oPgorKyNlbHNlCisrICAgIF9fZGV2X3Qgc3RfZGV2OwkJLyog RGV2aWNlLiAgKi8KKysgICAgX19maWVsZDY0KF9faW5vX3QsIF9faW5vNjRfdCwgc3RfaW5vKTsg IC8qIEZpbGUgc2VyaWFsIG51bWJlci4gKi8KKysgICAgX19tb2RlX3Qgc3RfbW9kZTsJCS8qIEZp bGUgbW9kZS4gICovCisrICAgIF9fbmxpbmtfdCBzdF9ubGluazsJCS8qIExpbmsgY291bnQuICAq LworKyAgICBfX3VpZF90IHN0X3VpZDsJCS8qIFVzZXIgSUQgb2YgdGhlIGZpbGUncyBvd25lci4J Ki8KKysgICAgX19naWRfdCBzdF9naWQ7CQkvKiBHcm91cCBJRCBvZiB0aGUgZmlsZSdzIGdyb3Vw LiovCisrICAgIF9fZGV2X3Qgc3RfcmRldjsJCS8qIERldmljZSBudW1iZXIsIGlmIGRldmljZS4g ICovCisrICAgIF9fZGV2X3QgX19wYWQxOworKyAgICBfX2ZpZWxkNjQoX19vZmZfdCwgX19vZmY2 NF90LCBzdF9zaXplKTsgIC8qIFNpemUgb2YgZmlsZSwgaW4gYnl0ZXMuICovCisrICAgIF9fYmxr c2l6ZV90IHN0X2Jsa3NpemU7CS8qIE9wdGltYWwgYmxvY2sgc2l6ZSBmb3IgSS9PLiAgKi8KKysg ICAgaW50IF9fcGFkMjsKKysgICAgX19maWVsZDY0KF9fYmxrY250X3QsIF9fYmxrY250NjRfdCwg c3RfYmxvY2tzKTsgIC8qIDUxMi1ieXRlIGJsb2NrcyAqLworKyMgaWZkZWYgX19VU0VfWE9QRU4y SzgKKysgICAgLyogTmFub3NlY29uZCByZXNvbHV0aW9uIHRpbWVzdGFtcHMgYXJlIHN0b3JlZCBp biBhIGZvcm1hdAorKyAgICAgICBlcXVpdmFsZW50IHRvICdzdHJ1Y3QgdGltZXNwZWMnLiAgVGhp cyBpcyB0aGUgdHlwZSB1c2VkCisrICAgICAgIHdoZW5ldmVyIHBvc3NpYmxlIGJ1dCB0aGUgVW5p eCBuYW1lc3BhY2UgcnVsZXMgZG8gbm90IGFsbG93IHRoZQorKyAgICAgICBpZGVudGlmaWVyICd0 aW1lc3BlYycgdG8gYXBwZWFyIGluIHRoZSA8c3lzL3N0YXQuaD4gaGVhZGVyLgorKyAgICAgICBU aGVyZWZvcmUgd2UgaGF2ZSB0byBoYW5kbGUgdGhlIHVzZSBvZiB0aGlzIGhlYWRlciBpbiBzdHJp Y3RseQorKyAgICAgICBzdGFuZGFyZC1jb21wbGlhbnQgc291cmNlcyBzcGVjaWFsLiAgKi8KKysg ICAgc3RydWN0IHRpbWVzcGVjIHN0X2F0aW07CQkvKiBUaW1lIG9mIGxhc3QgYWNjZXNzLiAgKi8K KysgICAgc3RydWN0IHRpbWVzcGVjIHN0X210aW07CQkvKiBUaW1lIG9mIGxhc3QgbW9kaWZpY2F0 aW9uLiAgKi8KKysgICAgc3RydWN0IHRpbWVzcGVjIHN0X2N0aW07CQkvKiBUaW1lIG9mIGxhc3Qg c3RhdHVzIGNoYW5nZS4gICovCisrIyAgZGVmaW5lIHN0X2F0aW1lIHN0X2F0aW0udHZfc2VjCS8q IEJhY2t3YXJkIGNvbXBhdGliaWxpdHkuICAqLworKyMgIGRlZmluZSBzdF9tdGltZSBzdF9tdGlt LnR2X3NlYworKyMgIGRlZmluZSBzdF9jdGltZSBzdF9jdGltLnR2X3NlYworKyMgZWxzZQorKyAg ICBfX3RpbWVfdCBzdF9hdGltZTsJCQkvKiBUaW1lIG9mIGxhc3QgYWNjZXNzLiAgKi8KKysgICAg dW5zaWduZWQgbG9uZyBpbnQgc3RfYXRpbWVuc2VjOwkvKiBOc2NlY3Mgb2YgbGFzdCBhY2Nlc3Mu ICAqLworKyAgICBfX3RpbWVfdCBzdF9tdGltZTsJCQkvKiBUaW1lIG9mIGxhc3QgbW9kaWZpY2F0 aW9uLiAgKi8KKysgICAgdW5zaWduZWQgbG9uZyBpbnQgc3RfbXRpbWVuc2VjOwkvKiBOc2VjcyBv ZiBsYXN0IG1vZGlmaWNhdGlvbi4gICovCisrICAgIF9fdGltZV90IHN0X2N0aW1lOwkJCS8qIFRp bWUgb2YgbGFzdCBzdGF0dXMgY2hhbmdlLiAgKi8KKysgICAgdW5zaWduZWQgbG9uZyBpbnQgc3Rf Y3RpbWVuc2VjOwkvKiBOc2VjcyBvZiBsYXN0IHN0YXR1cyBjaGFuZ2UuICAqLworKyMgZW5kaWYK KysgICAgaW50IF9fZ2xpYmNfcmVzZXJ2ZWRbMl07CisrI2VuZGlmCisrICB9OworKworKyN1bmRl ZiBfX2ZpZWxkNjQKKysKKysjaWZkZWYgX19VU0VfTEFSR0VGSUxFNjQKKytzdHJ1Y3Qgc3RhdDY0 CisrICB7CisrIyBpZmRlZiBfX1VTRV9USU1FX0JJVFM2NAorKyMgIGluY2x1ZGUgPGJpdHMvc3Ry dWN0X3N0YXRfdGltZTY0X2hlbHBlci5oPgorKyMgZWxzZQorKyAgICBfX2Rldl90IHN0X2RldjsJ CS8qIERldmljZS4gICovCisrICAgIF9faW5vNjRfdCBzdF9pbm87CQkvKiBGaWxlIHNlcmlhbCBu dW1iZXIuCSovCisrICAgIF9fbW9kZV90IHN0X21vZGU7CQkvKiBGaWxlIG1vZGUuICAqLworKyAg ICBfX25saW5rX3Qgc3Rfbmxpbms7CQkvKiBMaW5rIGNvdW50LiAgKi8KKysgICAgX191aWRfdCBz dF91aWQ7CQkvKiBVc2VyIElEIG9mIHRoZSBmaWxlJ3Mgb3duZXIuCSovCisrICAgIF9fZ2lkX3Qg c3RfZ2lkOwkJLyogR3JvdXAgSUQgb2YgdGhlIGZpbGUncyBncm91cC4qLworKyAgICBfX2Rldl90 IHN0X3JkZXY7CQkvKiBEZXZpY2UgbnVtYmVyLCBpZiBkZXZpY2UuICAqLworKyAgICBfX2Rldl90 IF9fcGFkMTsKKysgICAgX19vZmY2NF90IHN0X3NpemU7CQkvKiBTaXplIG9mIGZpbGUsIGluIGJ5 dGVzLiAgKi8KKysgICAgX19ibGtzaXplX3Qgc3RfYmxrc2l6ZTsJLyogT3B0aW1hbCBibG9jayBz aXplIGZvciBJL08uICAqLworKyAgICBpbnQgX19wYWQyOworKyAgICBfX2Jsa2NudDY0X3Qgc3Rf YmxvY2tzOwkvKiBOci4gNTEyLWJ5dGUgYmxvY2tzIGFsbG9jYXRlZC4gICovCisrIyAgaWZkZWYg X19VU0VfWE9QRU4ySzgKKysgICAgLyogTmFub3NlY29uZCByZXNvbHV0aW9uIHRpbWVzdGFtcHMg YXJlIHN0b3JlZCBpbiBhIGZvcm1hdAorKyAgICAgICBlcXVpdmFsZW50IHRvICdzdHJ1Y3QgdGlt ZXNwZWMnLiAgVGhpcyBpcyB0aGUgdHlwZSB1c2VkCisrICAgICAgIHdoZW5ldmVyIHBvc3NpYmxl IGJ1dCB0aGUgVW5peCBuYW1lc3BhY2UgcnVsZXMgZG8gbm90IGFsbG93IHRoZQorKyAgICAgICBp ZGVudGlmaWVyICd0aW1lc3BlYycgdG8gYXBwZWFyIGluIHRoZSA8c3lzL3N0YXQuaD4gaGVhZGVy LgorKyAgICAgICBUaGVyZWZvcmUgd2UgaGF2ZSB0byBoYW5kbGUgdGhlIHVzZSBvZiB0aGlzIGhl YWRlciBpbiBzdHJpY3RseQorKyAgICAgICBzdGFuZGFyZC1jb21wbGlhbnQgc291cmNlcyBzcGVj aWFsLiAgKi8KKysgICAgc3RydWN0IHRpbWVzcGVjIHN0X2F0aW07CQkvKiBUaW1lIG9mIGxhc3Qg YWNjZXNzLiAgKi8KKysgICAgc3RydWN0IHRpbWVzcGVjIHN0X210aW07CQkvKiBUaW1lIG9mIGxh c3QgbW9kaWZpY2F0aW9uLiAgKi8KKysgICAgc3RydWN0IHRpbWVzcGVjIHN0X2N0aW07CQkvKiBU aW1lIG9mIGxhc3Qgc3RhdHVzIGNoYW5nZS4gICovCisrIyAgZWxzZQorKyAgICBfX3RpbWVfdCBz dF9hdGltZTsJCQkvKiBUaW1lIG9mIGxhc3QgYWNjZXNzLiAgKi8KKysgICAgdW5zaWduZWQgbG9u ZyBpbnQgc3RfYXRpbWVuc2VjOwkvKiBOc2NlY3Mgb2YgbGFzdCBhY2Nlc3MuICAqLworKyAgICBf X3RpbWVfdCBzdF9tdGltZTsJCQkvKiBUaW1lIG9mIGxhc3QgbW9kaWZpY2F0aW9uLiAgKi8KKysg ICAgdW5zaWduZWQgbG9uZyBpbnQgc3RfbXRpbWVuc2VjOwkvKiBOc2VjcyBvZiBsYXN0IG1vZGlm aWNhdGlvbi4gICovCisrICAgIF9fdGltZV90IHN0X2N0aW1lOwkJCS8qIFRpbWUgb2YgbGFzdCBz dGF0dXMgY2hhbmdlLiAgKi8KKysgICAgdW5zaWduZWQgbG9uZyBpbnQgc3RfY3RpbWVuc2VjOwkv KiBOc2VjcyBvZiBsYXN0IHN0YXR1cyBjaGFuZ2UuICAqLworKyMgIGVuZGlmCisrICAgIGludCBf X2dsaWJjX3Jlc2VydmVkWzJdOworKyMgZW5kaWYKKysgIH07CisrI2VuZGlmCisrCisrLyogVGVs bCBjb2RlIHdlIGhhdmUgdGhlc2UgbWVtYmVycy4gICovCisrI2RlZmluZQlfU1RBVEJVRl9TVF9C TEtTSVpFCisrI2RlZmluZSBfU1RBVEJVRl9TVF9SREVWCisrLyogTmFub3NlY29uZCByZXNvbHV0 aW9uIHRpbWUgdmFsdWVzIGFyZSBzdXBwb3J0ZWQuICAqLworKyNkZWZpbmUgX1NUQVRCVUZfU1Rf TlNFQworKworKyNlbmRpZiAvKiBfQklUU19TVFJVQ1RfU1RBVF9IICAqLworZGlmZiAtLWdpdCBh L3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NoL2JpdHMvc3RydWN0X3N0YXQuaCBiL3N5c2RlcHMv dW5peC9zeXN2L2xpbnV4L3NoL2JpdHMvc3RydWN0X3N0YXQuaAorbmV3IGZpbGUgbW9kZSAxMDA2 NDQKK2luZGV4IDAwMDAwMDAwMDAuLjBmN2M5Y2RjODkKKy0tLSAvZGV2L251bGwKKysrKyBiL3N5 c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NoL2JpdHMvc3RydWN0X3N0YXQuaAorQEAgLTAsMCArMSwx MzkgQEAKKysvKiBEZWZpbml0aW9uIGZvciBzdHJ1Y3Qgc3RhdC4gIExpbnV4L3NoIHZlcnNpb24u CisrICAgQ29weXJpZ2h0IChDKSAyMDIwLTIwMjIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCisrICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisrCisrICAg VGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yCisrICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3Nl ciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNl LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoZSBHTlUg QyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCisrICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYWxv bmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeS4gIElmIG5vdCwgc2VlCisrICAgPGh0dHBzOi8vd3d3 LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrI2lmICFkZWZpbmVkIF9TWVNfU1RBVF9IICYm ICFkZWZpbmVkIF9GQ05UTF9ICisrIyBlcnJvciAiTmV2ZXIgaW5jbHVkZSA8Yml0cy9zdHJ1Y3Rf c3RhdC5oPiBkaXJlY3RseTsgdXNlIDxzeXMvc3RhdC5oPiBpbnN0ZWFkLiIKKysjZW5kaWYKKysK KysjaWZuZGVmIF9CSVRTX1NUUlVDVF9TVEFUX0gKKysjZGVmaW5lIF9CSVRTX1NUUlVDVF9TVEFU X0gJMQorKworKyNpbmNsdWRlIDxiaXRzL2VuZGlhbi5oPgorKyNpbmNsdWRlIDxiaXRzL3dvcmRz aXplLmg+CisrCisrc3RydWN0IHN0YXQKKysgIHsKKysjaWZkZWYgX19VU0VfVElNRV9CSVRTNjQK KysjIGluY2x1ZGUgPGJpdHMvc3RydWN0X3N0YXRfdGltZTY0X2hlbHBlci5oPgorKyNlbHNlCisr ICAgIF9fZGV2X3Qgc3RfZGV2OwkJCS8qIERldmljZS4gICovCisrICAgIHVuc2lnbmVkIHNob3J0 IGludCBfX3BhZDE7CisrIyBpZm5kZWYgX19VU0VfRklMRV9PRkZTRVQ2NAorKyAgICBfX2lub190 IHN0X2lubzsJCQkvKiBGaWxlIHNlcmlhbCBudW1iZXIuCSovCisrIyBlbHNlCisrICAgIF9faW5v X3QgX19zdF9pbm87CQkJLyogMzJiaXQgZmlsZSBzZXJpYWwgbnVtYmVyLgkqLworKyMgZW5kaWYK KysgICAgX19tb2RlX3Qgc3RfbW9kZTsJCQkvKiBGaWxlIG1vZGUuICAqLworKyAgICBfX25saW5r X3Qgc3Rfbmxpbms7CQkJLyogTGluayBjb3VudC4gICovCisrICAgIF9fdWlkX3Qgc3RfdWlkOwkJ CS8qIFVzZXIgSUQgb2YgdGhlIGZpbGUncyBvd25lci4JKi8KKysgICAgX19naWRfdCBzdF9naWQ7 CQkJLyogR3JvdXAgSUQgb2YgdGhlIGZpbGUncyBncm91cC4qLworKyAgICBfX2Rldl90IHN0X3Jk ZXY7CQkJLyogRGV2aWNlIG51bWJlciwgaWYgZGV2aWNlLiAgKi8KKysgICAgdW5zaWduZWQgc2hv cnQgaW50IF9fcGFkMjsKKysjIGlmbmRlZiBfX1VTRV9GSUxFX09GRlNFVDY0CisrICAgIF9fb2Zm X3Qgc3Rfc2l6ZTsJCQkvKiBTaXplIG9mIGZpbGUsIGluIGJ5dGVzLiAgKi8KKysjIGVsc2UKKysg ICAgX19vZmY2NF90IHN0X3NpemU7CQkJLyogU2l6ZSBvZiBmaWxlLCBpbiBieXRlcy4gICovCisr IyBlbmRpZgorKyAgICBfX2Jsa3NpemVfdCBzdF9ibGtzaXplOwkJLyogT3B0aW1hbCBibG9jayBz aXplIGZvciBJL08uICAqLworKworKyMgaWZuZGVmIF9fVVNFX0ZJTEVfT0ZGU0VUNjQKKysgICAg X19ibGtjbnRfdCBzdF9ibG9ja3M7CQkvKiBOdW1iZXIgNTEyLWJ5dGUgYmxvY2tzIGFsbG9jYXRl ZC4gKi8KKysjIGVsc2UKKysgICAgX19ibGtjbnQ2NF90IHN0X2Jsb2NrczsJCS8qIE51bWJlciA1 MTItYnl0ZSBibG9ja3MgYWxsb2NhdGVkLiAqLworKyMgZW5kaWYKKysjIGlmZGVmIF9fVVNFX1hP UEVOMks4CisrICAgIC8qIE5hbm9zZWNvbmQgcmVzb2x1dGlvbiB0aW1lc3RhbXBzIGFyZSBzdG9y ZWQgaW4gYSBmb3JtYXQKKysgICAgICAgZXF1aXZhbGVudCB0byAnc3RydWN0IHRpbWVzcGVjJy4g IFRoaXMgaXMgdGhlIHR5cGUgdXNlZAorKyAgICAgICB3aGVuZXZlciBwb3NzaWJsZSBidXQgdGhl IFVuaXggbmFtZXNwYWNlIHJ1bGVzIGRvIG5vdCBhbGxvdyB0aGUKKysgICAgICAgaWRlbnRpZmll ciAndGltZXNwZWMnIHRvIGFwcGVhciBpbiB0aGUgPHN5cy9zdGF0Lmg+IGhlYWRlci4KKysgICAg ICAgVGhlcmVmb3JlIHdlIGhhdmUgdG8gaGFuZGxlIHRoZSB1c2Ugb2YgdGhpcyBoZWFkZXIgaW4g c3RyaWN0bHkKKysgICAgICAgc3RhbmRhcmQtY29tcGxpYW50IHNvdXJjZXMgc3BlY2lhbC4gICov CisrICAgIHN0cnVjdCB0aW1lc3BlYyBzdF9hdGltOwkJLyogVGltZSBvZiBsYXN0IGFjY2Vzcy4g ICovCisrICAgIHN0cnVjdCB0aW1lc3BlYyBzdF9tdGltOwkJLyogVGltZSBvZiBsYXN0IG1vZGlm aWNhdGlvbi4gICovCisrICAgIHN0cnVjdCB0aW1lc3BlYyBzdF9jdGltOwkJLyogVGltZSBvZiBs YXN0IHN0YXR1cyBjaGFuZ2UuICAqLworKyMgIGRlZmluZSBzdF9hdGltZSBzdF9hdGltLnR2X3Nl YwkvKiBCYWNrd2FyZCBjb21wYXRpYmlsaXR5LiAgKi8KKysjICBkZWZpbmUgc3RfbXRpbWUgc3Rf bXRpbS50dl9zZWMKKysjICBkZWZpbmUgc3RfY3RpbWUgc3RfY3RpbS50dl9zZWMKKysjIGVsc2UK KysgICAgX190aW1lX3Qgc3RfYXRpbWU7CQkJLyogVGltZSBvZiBsYXN0IGFjY2Vzcy4gICovCisr ICAgIHVuc2lnbmVkIGxvbmcgaW50IHN0X2F0aW1lbnNlYzsJLyogTnNjZWNzIG9mIGxhc3QgYWNj ZXNzLiAgKi8KKysgICAgX190aW1lX3Qgc3RfbXRpbWU7CQkJLyogVGltZSBvZiBsYXN0IG1vZGlm aWNhdGlvbi4gICovCisrICAgIHVuc2lnbmVkIGxvbmcgaW50IHN0X210aW1lbnNlYzsJLyogTnNl Y3Mgb2YgbGFzdCBtb2RpZmljYXRpb24uICAqLworKyAgICBfX3RpbWVfdCBzdF9jdGltZTsJCQkv KiBUaW1lIG9mIGxhc3Qgc3RhdHVzIGNoYW5nZS4gICovCisrICAgIHVuc2lnbmVkIGxvbmcgaW50 IHN0X2N0aW1lbnNlYzsJLyogTnNlY3Mgb2YgbGFzdCBzdGF0dXMgY2hhbmdlLiAgKi8KKysjIGVu ZGlmCisrIyBpZm5kZWYgX19VU0VfRklMRV9PRkZTRVQ2NAorKyAgICB1bnNpZ25lZCBsb25nIGlu dCBfX2dsaWJjX3Jlc2VydmVkNDsKKysgICAgdW5zaWduZWQgbG9uZyBpbnQgX19nbGliY19yZXNl cnZlZDU7CisrIyBlbHNlCisrICAgIF9faW5vNjRfdCBzdF9pbm87CQkJLyogRmlsZSBzZXJpYWwg bnVtYmVyLgkqLworKyMgZW5kaWYKKysjZW5kaWYgLyogX19VU0VfVElNRV9CSVRTNjQgICovCisr ICB9OworKworKyNpZmRlZiBfX1VTRV9MQVJHRUZJTEU2NAorK3N0cnVjdCBzdGF0NjQKKysgIHsK KysjIGlmZGVmIF9fVVNFX1RJTUVfQklUUzY0CisrIyAgaW5jbHVkZSA8Yml0cy9zdHJ1Y3Rfc3Rh dF90aW1lNjRfaGVscGVyLmg+CisrIyBlbHNlCisrICAgIF9fZGV2X3Qgc3RfZGV2OwkJCS8qIERl dmljZS4gICovCisrICAgIHVuc2lnbmVkIGludCBfX3BhZDE7CisrCisrICAgIF9faW5vX3QgX19z dF9pbm87CQkJLyogMzJiaXQgZmlsZSBzZXJpYWwgbnVtYmVyLgkqLworKyAgICBfX21vZGVfdCBz dF9tb2RlOwkJCS8qIEZpbGUgbW9kZS4gICovCisrICAgIF9fbmxpbmtfdCBzdF9ubGluazsJCQkv KiBMaW5rIGNvdW50LiAgKi8KKysgICAgX191aWRfdCBzdF91aWQ7CQkJLyogVXNlciBJRCBvZiB0 aGUgZmlsZSdzIG93bmVyLgkqLworKyAgICBfX2dpZF90IHN0X2dpZDsJCQkvKiBHcm91cCBJRCBv ZiB0aGUgZmlsZSdzIGdyb3VwLiovCisrICAgIF9fZGV2X3Qgc3RfcmRldjsJCQkvKiBEZXZpY2Ug bnVtYmVyLCBpZiBkZXZpY2UuICAqLworKyAgICB1bnNpZ25lZCBpbnQgX19wYWQyOworKyAgICBf X29mZjY0X3Qgc3Rfc2l6ZTsJCQkvKiBTaXplIG9mIGZpbGUsIGluIGJ5dGVzLiAgKi8KKysgICAg X19ibGtzaXplX3Qgc3RfYmxrc2l6ZTsJCS8qIE9wdGltYWwgYmxvY2sgc2l6ZSBmb3IgSS9PLiAg Ki8KKysKKysgICAgX19ibGtjbnQ2NF90IHN0X2Jsb2NrczsJCS8qIE51bWJlciA1MTItYnl0ZSBi bG9ja3MgYWxsb2NhdGVkLiAqLworKyMgIGlmZGVmIF9fVVNFX1hPUEVOMks4CisrICAgIC8qIE5h bm9zZWNvbmQgcmVzb2x1dGlvbiB0aW1lc3RhbXBzIGFyZSBzdG9yZWQgaW4gYSBmb3JtYXQKKysg ICAgICAgZXF1aXZhbGVudCB0byAnc3RydWN0IHRpbWVzcGVjJy4gIFRoaXMgaXMgdGhlIHR5cGUg dXNlZAorKyAgICAgICB3aGVuZXZlciBwb3NzaWJsZSBidXQgdGhlIFVuaXggbmFtZXNwYWNlIHJ1 bGVzIGRvIG5vdCBhbGxvdyB0aGUKKysgICAgICAgaWRlbnRpZmllciAndGltZXNwZWMnIHRvIGFw cGVhciBpbiB0aGUgPHN5cy9zdGF0Lmg+IGhlYWRlci4KKysgICAgICAgVGhlcmVmb3JlIHdlIGhh dmUgdG8gaGFuZGxlIHRoZSB1c2Ugb2YgdGhpcyBoZWFkZXIgaW4gc3RyaWN0bHkKKysgICAgICAg c3RhbmRhcmQtY29tcGxpYW50IHNvdXJjZXMgc3BlY2lhbC4gICovCisrICAgIHN0cnVjdCB0aW1l c3BlYyBzdF9hdGltOwkJLyogVGltZSBvZiBsYXN0IGFjY2Vzcy4gICovCisrICAgIHN0cnVjdCB0 aW1lc3BlYyBzdF9tdGltOwkJLyogVGltZSBvZiBsYXN0IG1vZGlmaWNhdGlvbi4gICovCisrICAg IHN0cnVjdCB0aW1lc3BlYyBzdF9jdGltOwkJLyogVGltZSBvZiBsYXN0IHN0YXR1cyBjaGFuZ2Uu ICAqLworKyMgIGVsc2UKKysgICAgX190aW1lX3Qgc3RfYXRpbWU7CQkJLyogVGltZSBvZiBsYXN0 IGFjY2Vzcy4gICovCisrICAgIHVuc2lnbmVkIGxvbmcgaW50IHN0X2F0aW1lbnNlYzsJLyogTnNj ZWNzIG9mIGxhc3QgYWNjZXNzLiAgKi8KKysgICAgX190aW1lX3Qgc3RfbXRpbWU7CQkJLyogVGlt ZSBvZiBsYXN0IG1vZGlmaWNhdGlvbi4gICovCisrICAgIHVuc2lnbmVkIGxvbmcgaW50IHN0X210 aW1lbnNlYzsJLyogTnNlY3Mgb2YgbGFzdCBtb2RpZmljYXRpb24uICAqLworKyAgICBfX3RpbWVf dCBzdF9jdGltZTsJCQkvKiBUaW1lIG9mIGxhc3Qgc3RhdHVzIGNoYW5nZS4gICovCisrICAgIHVu c2lnbmVkIGxvbmcgaW50IHN0X2N0aW1lbnNlYzsJLyogTnNlY3Mgb2YgbGFzdCBzdGF0dXMgY2hh bmdlLiAgKi8KKysjICBlbmRpZgorKyAgICBfX2lubzY0X3Qgc3RfaW5vOwkJCS8qIEZpbGUgc2Vy aWFsIG51bWJlci4JCSovCisrIyBlbmRpZiAvKiBfX1VTRV9USU1FX0JJVFM2NCAgKi8KKysgIH07 CisrI2VuZGlmCisrCisrLyogVGVsbCBjb2RlIHdlIGhhdmUgdGhlc2UgbWVtYmVycy4gICovCisr I2RlZmluZQlfU1RBVEJVRl9TVF9CTEtTSVpFCisrI2RlZmluZSBfU1RBVEJVRl9TVF9SREVWCisr LyogTmFub3NlY29uZCByZXNvbHV0aW9uIHRpbWUgdmFsdWVzIGFyZSBzdXBwb3J0ZWQuICAqLwor KyNkZWZpbmUgX1NUQVRCVUZfU1RfTlNFQworKworKworKyNlbmRpZiAvKiBfQklUU19TVFJVQ1Rf U1RBVF9IICAqLworLS0gCisyLjM4LjEKKworCitGcm9tIGExZGMwYmUwM2M5ZGQ4NTBiODY0YmQ3 YTljMDNjZjhlMzk2ZWI3Y2EgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBZGhlbWVy dmFsIFphbmVsbGEgPGFkaGVtZXJ2YWwuemFuZWxsYUBsaW5hcm8ub3JnPgorRGF0ZTogVHVlLCAy NSBPY3QgMjAyMiAxMzoxOToxNiAtMDMwMAorU3ViamVjdDogW1BBVENIIDY2LzcyXSBlbGY6IFJl aW5zdGF0ZSBvbiBETF9ERUJVR19CSU5ESU5HUyBfZGxfbG9va3VwX3N5bWJvbF94CisKK1RoZSBw cmVsaW5rIHJlbW92YWwgZG9uZSBieSA2NjI4Yzc0MmIyYzE2ZSB3cm9uZ2x5IHJlbW92ZWQgdGhl IGRlYnVnCitzdXBwb3J0LgorCitDaGVja2VkIG9uIHg4Nl82NC1saW51eC1nbnUuCisKKyhjaGVy cnkgcGlja2VkIGZyb20gY29tbWl0IDg5MWE3OTU4YTI4ZWFjNmQ0YWYxNTE3ZGQyODk2ZmVmNWU0 OTUxZDQpCistLS0KKyBlbGYvZGwtbG9va3VwLmMgfCAxNyArKysrKysrKysrKysrKysrKworIDEg ZmlsZSBjaGFuZ2VkLCAxNyBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9lbGYvZGwtbG9v a3VwLmMgYi9lbGYvZGwtbG9va3VwLmMKK2luZGV4IDRjODZkYzY5NGUuLjY3ZmIyZTMxZTIgMTAw NjQ0CistLS0gYS9lbGYvZGwtbG9va3VwLmMKKysrKyBiL2VsZi9kbC1sb29rdXAuYworQEAgLTg1 NCw2ICs4NTQsMjMgQEAgX2RsX2xvb2t1cF9zeW1ib2xfeCAoY29uc3QgY2hhciAqdW5kZWZfbmFt ZSwgc3RydWN0IGxpbmtfbWFwICp1bmRlZl9tYXAsCisgICBpZiAoX19nbGliY191bmxpa2VseSAo Y3VycmVudF92YWx1ZS5tLT5sX3VzZWQgPT0gMCkpCisgICAgIGN1cnJlbnRfdmFsdWUubS0+bF91 c2VkID0gMTsKKyAKKysgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKEdMUk8oZGxfZGVidWdfbWFzaykg JiBETF9ERUJVR19CSU5ESU5HUykpCisrICAgeworKyAgICAgIGNvbnN0IGNoYXIgKnJlZmVyZW5j ZV9uYW1lID0gdW5kZWZfbWFwLT5sX25hbWU7CisrCisrICAgICAgX2RsX2RlYnVnX3ByaW50ZiAo ImJpbmRpbmcgZmlsZSAlcyBbJWx1XSB0byAlcyBbJWx1XTogJXMgc3ltYm9sIGAlcyciLAorKwkJ CURTT19GSUxFTkFNRSAocmVmZXJlbmNlX25hbWUpLAorKwkJCXVuZGVmX21hcC0+bF9ucywKKysJ CQlEU09fRklMRU5BTUUgKGN1cnJlbnRfdmFsdWUubS0+bF9uYW1lKSwKKysJCQljdXJyZW50X3Zh bHVlLm0tPmxfbnMsCisrCQkJcHJvdGVjdGVkID8gInByb3RlY3RlZCIgOiAibm9ybWFsIiwgdW5k ZWZfbmFtZSk7CisrICAgICAgaWYgKHZlcnNpb24pCisrCV9kbF9kZWJ1Z19wcmludGZfYyAoIiBb JXNdXG4iLCB2ZXJzaW9uLT5uYW1lKTsKKysgICAgICBlbHNlCisrCV9kbF9kZWJ1Z19wcmludGZf YyAoIlxuIik7CisrICAgfQorKworKworICAgKnJlZiA9IGN1cnJlbnRfdmFsdWUuczsKKyAgIHJl dHVybiBMT09LVVBfVkFMVUUgKGN1cnJlbnRfdmFsdWUubSk7CisgfQorLS0gCisyLjM4LjEKKwor CitGcm9tIDRjNmE3OGFkZGFiYmQ2ZTFiNjk3NjNlMjg2NzY4OTE5ZTU2ZGZlMGEgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCitGcm9tOiBYaSBSdW95YW8gPHhyeTExMUB4cnkxMTEuc2l0ZT4KK0Rh dGU6IFNhdCwgMTUgT2N0IDIwMjIgMTQ6MTI6MTMgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSCA2Ny83 Ml0gbG9uZ2xvbmcuaDogdXBkYXRlIGZyb20gR0NDIGZvciBMb29uZ0FyY2ggY2x6L2N0egorIHN1 cHBvcnQKKworVXBkYXRlIGxvbmdsb25nLmggdG8gR0NDIHIxMy0zMjY5LiAgS2VlcCBvdXIgbG9j YWwgY2hhbmdlIChwcmVmZXIgaHR0cHMKK2ZvciBnbnUub3JnIFVSTCkuCistLS0KKyBzdGRsaWIv bG9uZ2xvbmcuaCB8IDEyICsrKysrKysrKysrKworIDEgZmlsZSBjaGFuZ2VkLCAxMiBpbnNlcnRp b25zKCspCisKK2RpZmYgLS1naXQgYS9zdGRsaWIvbG9uZ2xvbmcuaCBiL3N0ZGxpYi9sb25nbG9u Zy5oCitpbmRleCA5Yjg5NDY5YWMyLi5kOGY3NmE0M2I1IDEwMDY0NAorLS0tIGEvc3RkbGliL2xv bmdsb25nLmgKKysrKyBiL3N0ZGxpYi9sb25nbG9uZy5oCitAQCAtNTkzLDYgKzU5MywxOCBAQCBl eHRlcm4gVURJdHlwZSBfX3VtdWxzaWRpMyAoVVNJdHlwZSwgVVNJdHlwZSk7CisgI2RlZmluZSBV TVVMX1RJTUUgMTQKKyAjZW5kaWYKKyAKKysjaWZkZWYgX19sb29uZ2FyY2hfXworKyMgaWYgV19U WVBFX1NJWkUgPT0gMzIKKysjICBkZWZpbmUgY291bnRfbGVhZGluZ196ZXJvcyhjb3VudCwgeCkg ICgoY291bnQpID0gX19idWlsdGluX2NseiAoeCkpCisrIyAgZGVmaW5lIGNvdW50X3RyYWlsaW5n X3plcm9zKGNvdW50LCB4KSAoKGNvdW50KSA9IF9fYnVpbHRpbl9jdHogKHgpKQorKyMgIGRlZmlu ZSBDT1VOVF9MRUFESU5HX1pFUk9TXzAgMzIKKysjIGVsaWYgV19UWVBFX1NJWkUgPT0gNjQKKysj ICBkZWZpbmUgY291bnRfbGVhZGluZ196ZXJvcyhjb3VudCwgeCkgICgoY291bnQpID0gX19idWls dGluX2NsemxsICh4KSkKKysjICBkZWZpbmUgY291bnRfdHJhaWxpbmdfemVyb3MoY291bnQsIHgp ICgoY291bnQpID0gX19idWlsdGluX2N0emxsICh4KSkKKysjICBkZWZpbmUgQ09VTlRfTEVBRElO R19aRVJPU18wIDY0CisrIyBlbmRpZgorKyNlbmRpZgorKworICNpZiBkZWZpbmVkIChfX00zMlJf XykgJiYgV19UWVBFX1NJWkUgPT0gMzIKKyAjZGVmaW5lIGFkZF9zc2FhYWEoc2gsIHNsLCBhaCwg YWwsIGJoLCBibCkgXAorICAgLyogVGhlIGNtcCBjbGVhcnMgdGhlIGNvbmRpdGlvbiBiaXQuICAq LyBcCistLSAKKzIuMzguMQorCisKK0Zyb20gZGQ0MTMxYzgzMjI4OTFhMGFkN2NmYjY2MWVmYTQx YWVjYzAyYjU4MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEF1cmVsaWVuIEphcm5v IDxhdXJlbGllbkBhdXJlbDMyLm5ldD4KK0RhdGU6IFR1ZSwgMSBOb3YgMjAyMiAyMDo0Mzo1NSAr MDEwMAorU3ViamVjdDogW1BBVENIIDY4LzcyXSBsaW51eDogRml4IGZzdGF0YXQgb24gTUlQU242 NCAoQlogIzI5NzMwKQorCitDb21taXQgNmU4YTBhYWMyZjg4MyAoInRpbWU6IEZpeCBvdmVyZmxv dyBpdGltZXIgdGVzdHMgb24gMzItYml0CitzeXN0ZW1zIikgY2hhbmdlZCBpbl90aW1lX3RfcmFu Z2UgdG8gYXNzdW1lIGEgMzItYml0IHRpbWVfdC4gVGhpcyBicm9rZQorZnN0YXRhdCBvbiBNSVBT bjY0IHRoYXQgd2FzIHVzaW5nIGl0IHdpdGggYSA2NC1iaXQgdGltZV90IGR1ZSB0bworZGlmZmVy ZW5jZSBiZXR3ZWVuIHN0YXQgYW5kIHN0YXQ2NC4gVGhpcyBjb21taXQgZml4IHRoYXQgYnkgYWRk aW5nIGEKK01JUFNuNjQgc3BlY2lmaWMgdmVyc2lvbiwgd2hpY2ggYnlwYXNzZXMgdGhlIEVPVkVS RkxPVyB0ZXN0cy4KKworUmVzb2x2ZXM6IEJaICMyOTczMAorCitSZXZpZXdlZC1ieTogQWRoZW1l cnZhbCBaYW5lbGxhICA8YWRoZW1lcnZhbC56YW5lbGxhQGxpbmFyby5vcmc+CisoY2hlcnJ5IHBp Y2tlZCBmcm9tIGNvbW1pdCA3NDU3YjdlZWY4ZGZlOGNjNDhlNTViOWY5ODM3ZGY2ZGQzOTdiODBk KQorLS0tCisgTkVXUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg IDEgKworIC4uLi91bml4L3N5c3YvbGludXgvbWlwcy9taXBzNjQvbjY0L2ZzdGF0YXQuYyB8IDUx ICsrKysrKysrKysrKysrKysrKysKKyAyIGZpbGVzIGNoYW5nZWQsIDUyIGluc2VydGlvbnMoKykK KyBjcmVhdGUgbW9kZSAxMDA2NDQgc3lzZGVwcy91bml4L3N5c3YvbGludXgvbWlwcy9taXBzNjQv bjY0L2ZzdGF0YXQuYworCitkaWZmIC0tZ2l0IGEvTkVXUyBiL05FV1MKK2luZGV4IDgzMzA0NTU4 NWYuLmU5MmQ1NDdlMmMgMTAwNjQ0CistLS0gYS9ORVdTCisrKysgYi9ORVdTCitAQCAtNDUsNiAr NDUsNyBAQCBUaGUgZm9sbG93aW5nIGJ1Z3MgYXJlIHJlc29sdmVkIHdpdGggdGhpcyByZWxlYXNl OgorICAgWzI5NjM4XSBsaWJjOiBzdGRsaWI6IGFyYzRyYW5kb20gZmFsbGJhY2sgaXMgbmV2ZXIg dXNlZAorICAgWzI5NjU3XSBsaWJjOiBJbmNvcnJlY3Qgc3RydWN0IHN0YXQgZm9yIDY0LWJpdCB0 aW1lIG9uIGxpbnV4L2dlbmVyaWMKKyAgICAgcGxhdGZvcm1zCisrICBbMjk3MzBdIGJyb2tlbiB5 MjAzOCBzdXBwb3J0IGluIGZzdGF0YXQgb24gTUlQUyBONjQKKyAMCisgVmVyc2lvbiAyLjM2Cisg CitkaWZmIC0tZ2l0IGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvbWlwcy9taXBzNjQvbjY0L2Zz dGF0YXQuYyBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L21pcHMvbWlwczY0L242NC9mc3RhdGF0 LmMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwLi5mZTZjM2EwZGRhCist LS0gL2Rldi9udWxsCisrKysgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9taXBzL21pcHM2NC9u NjQvZnN0YXRhdC5jCitAQCAtMCwwICsxLDUxIEBACisrLyogR2V0IGZpbGUgc3RhdHVzLiAgTGlu dXgvTUlQU242NCB2ZXJzaW9uLgorKyAgIENvcHlyaWdodCAoQykgMjAyMiBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KKysgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGli cmFyeS4KKysKKysgICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKysgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisrICAgTGljZW5zZSBhcyBwdWJsaXNoZWQg YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisrICAgdmVyc2lvbiAyLjEg b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisr CisrICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp dCB3aWxsIGJlIHVzZWZ1bCwKKysgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisrICAgTGVzc2VyIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysKKysgICBZb3Ugc2hvdWxk IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisr ICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorKyAg IDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworKworKyNpbmNsdWRlIDxzeXMv c3RhdC5oPgorKyNpbmNsdWRlIDxzeXNkZXAuaD4KKysKKysvKiBEaWZmZXJlbnQgdGhhbiBvdGhl ciBBQklzLCBtaXBzNjQgaGFzIGRpZmZlcmVudCBsYXlvdXRzIGZvciBub24tTEZTCisrICAgYW5k IExGUyBzdHJ1Y3Qgc3RhdC4gICovCisraW50CisrX19mc3RhdGF0IChpbnQgZmQsIGNvbnN0IGNo YXIgKmZpbGUsIHN0cnVjdCBzdGF0ICpidWYsIGludCBmbGFnKQorK3sKKysgIHN0cnVjdCBfX3N0 YXQ2NF90NjQgc3Q2NDsKKysgIGludCByID0gX19mc3RhdGF0NjRfdGltZTY0IChmZCwgZmlsZSwg JnN0NjQsIGZsYWcpOworKyAgaWYgKHIgPT0gMCkKKysgICAgeworKyAgICAgIC8qIENsZWFyIGlu dGVybmFsIHBhZCBhbmQgcmVzZXJ2ZWQgZmllbGRzLiAgKi8KKysgICAgICBtZW1zZXQgKGJ1Ziwg MCwgc2l6ZW9mICgqYnVmKSk7CisrCisrICAgICAgYnVmLT5zdF9kZXYgPSBzdDY0LnN0X2RldjsK KysgICAgICBidWYtPnN0X2lubyA9IHN0NjQuc3RfaW5vOworKyAgICAgIGJ1Zi0+c3RfbW9kZSA9 IHN0NjQuc3RfbW9kZTsKKysgICAgICBidWYtPnN0X25saW5rID0gc3Q2NC5zdF9ubGluazsKKysg ICAgICBidWYtPnN0X3VpZCA9IHN0NjQuc3RfdWlkOworKyAgICAgIGJ1Zi0+c3RfZ2lkID0gc3Q2 NC5zdF9naWQ7CisrICAgICAgYnVmLT5zdF9yZGV2ID0gc3Q2NC5zdF9yZGV2OworKyAgICAgIGJ1 Zi0+c3Rfc2l6ZSA9IHN0NjQuc3Rfc2l6ZTsKKysgICAgICBidWYtPnN0X2Jsa3NpemUgPSBzdDY0 LnN0X2Jsa3NpemU7CisrICAgICAgYnVmLT5zdF9ibG9ja3MgID0gc3Q2NC5zdF9ibG9ja3M7Cisr ICAgICAgYnVmLT5zdF9hdGltID0gc3Q2NC5zdF9hdGltOworKyAgICAgIGJ1Zi0+c3RfbXRpbSA9 IHN0NjQuc3RfbXRpbTsKKysgICAgICBidWYtPnN0X2N0aW0gPSBzdDY0LnN0X2N0aW07CisrICAg IH0KKysgIHJldHVybiByOworK30KKysKKyt3ZWFrX2FsaWFzIChfX2ZzdGF0YXQsIGZzdGF0YXQp CistLSAKKzIuMzguMQorCisKK0Zyb20gMmZjZTg1ZjY3YzU2ZTQ2ODYzZGI0MGI4Y2E3NWJiZjBm YTk5MzA1MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IGNhaXlpbnl1IDxjYWl5aW55 dUBsb29uZ3Nvbi5jbj4KK0RhdGU6IFdlZCwgMTIgT2N0IDIwMjIgMjA6Mjg6NDIgKzA4MDAKK1N1 YmplY3Q6IFtQQVRDSCA2OS83Ml0gTG9vbmdBcmNoOiBGaXggQUJJIHJlbGF0ZWQgbWFjcm9zIGlu IGVsZi5oIHRvIGtlZXAKKyBjb25zaXN0ZW50IHdpdGggYmludXRpbHNbMV0uCisKK1sxXToKK2h0 dHBzOi8vc291cmNld2FyZS5vcmcvZ2l0Lz9wPWJpbnV0aWxzLWdkYi5naXQ7YT1jb21taXRkaWZm O2g9YzRhN2U2YjU2MjE4ZTFkNWE4NTg2ODIxODZiNTQyZTJlYWUwMWE0YTtocD0wZDk0YTg3MzUw NTU0MzIwMjkyMzc2MTJhNmViOTE2NWRiMWVjOWRkCitbMl06CitSZWZlcmVuY2U6IGh0dHBzOi8v bG9vbmdzb24uZ2l0aHViLmlvL0xvb25nQXJjaC1Eb2N1bWVudGF0aW9uL0xvb25nQXJjaC1FTEYt QUJJLUVOLmh0bWwjX2VfZmxhZ3NfaWRlbnRpZmllc19hYmlfdHlwZV9hbmRfdmVyc2lvbgorLS0t CisgZWxmL2VsZi5oIHwgNyArKysrKy0tCisgMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygr KSwgMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2VsZi9lbGYuaCBiL2VsZi9lbGYuaAor aW5kZXggMDJhMWIzZjUyZi4uMDE0MzkzZjNjYyAxMDA2NDQKKy0tLSBhL2VsZi9lbGYuaAorKysr IGIvZWxmL2VsZi5oCitAQCAtNDA4NSw4ICs0MDg1LDExIEBAIGVudW0KKyAjZGVmaW5lIFJfTkRT MzJfVExTX0RFU0MJMTE5CisgCisgLyogTG9vbmdBcmNoIEVMRiBGbGFncyAqLworLSNkZWZpbmUg RUZfTEFSQ0hfQUJJICAgIAkweDA3CistI2RlZmluZSBFRl9MQVJDSF9BQklfTFA2NEQJMHgwMwor KyNkZWZpbmUgRUZfTEFSQ0hfQUJJX01PRElGSUVSX01BU0sgIDB4MDcKKysjZGVmaW5lIEVGX0xB UkNIX0FCSV9TT0ZUX0ZMT0FUICAgICAweDAxCisrI2RlZmluZSBFRl9MQVJDSF9BQklfU0lOR0xF X0ZMT0FUICAgMHgwMgorKyNkZWZpbmUgRUZfTEFSQ0hfQUJJX0RPVUJMRV9GTE9BVCAgIDB4MDMK KysjZGVmaW5lIEVGX0xBUkNIX09CSkFCSV9WMSAgICAgICAgICAweDQwCisgCisgLyogTG9vbmdB cmNoIHNwZWNpZmljIGR5bmFtaWMgcmVsb2NhdGlvbnMgKi8KKyAjZGVmaW5lIFJfTEFSQ0hfTk9O RQkJMAorLS0gCisyLjM4LjEKKworCitGcm9tIDM2Y2MwNjM0MWEwYzUwMjlmNDllZmFlZWY3NDRk YzNlOTc1OGU2NjkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBTZXJnZWkgVHJvZmlt b3ZpY2ggPHNseWljaEBnbWFpbC5jb20+CitEYXRlOiBUdWUsIDEzIFNlcCAyMDIyIDEzOjM5OjEz IC0wNDAwCitTdWJqZWN0OiBbUEFUQ0ggNzAvNzJdIE1ha2VydWxlczogZml4IE1BS0VGTEFHUyBh c3NpZ25tZW50IGZvciB1cGNvbWluZworIG1ha2UtNC40IFtCWiMgMjk1NjRdCisKK21ha2UtNC40 IHdpbGwgYWRkIGxvbmcgZmxhZ3MgdG8gTUFLRUZMQUdTIHZhcmlhYmxlOgorCisgICAgKiBXQVJO SU5HOiBCYWNrd2FyZC1pbmNvbXBhdGliaWxpdHkhCisgICAgICBQcmV2aW91c2x5IG9ubHkgc2lt cGxlIChvbmUtbGV0dGVyKSBvcHRpb25zIHdlcmUgYWRkZWQgdG8gdGhlIE1BS0VGTEFHUworICAg ICAgdmFyaWFibGUgdGhhdCB3YXMgdmlzaWJsZSB3aGlsZSBwYXJzaW5nIG1ha2VmaWxlcy4gIE5v dywgYWxsIG9wdGlvbnMKKyAgICAgIGFyZSBhdmFpbGFibGUgaW4gTUFLRUZMQUdTLgorCitUaGlz IGNhdXNlcyBsb2NhbGUgYnVpbGRzIHRvIGZhaWwgd2hlbiBsb25nIG9wdGlvbnMgYXJlIHVzZWQ6 CisKKyAgICAkIG1ha2UgLS1zaHVmZmxlCisgICAgLi4uCisgICAgbWFrZSAgLUMgbG9jYWxlZGF0 YSBpbnN0YWxsLWxvY2FsZXMKKyAgICBtYWtlOiBpbnZhbGlkIHNodWZmbGUgbW9kZTogJzE2NjI3 MjQ0MjZyJworCitUaGUgY2hhbmdlIGZpeGVzIGl0IGJ5IHBhc3NpbmcgZWFzaCBvcHRpb24gdmlh IHdoaXRlc3BhY2UgYW5kIGRhc2hlcy4KK1RoYXQgd2F5IG9wdGlvbiBpcyBhcHBlbmRlZCB0byBi b3RoIHNpbmdsZS13b3JkIGZvcm0gYW5kIHdoaXRlc3BhY2UKK3NlcGFyYXRlZCBmb3JtLgorCitX aGlsZSBhdCBpdCBmaXhlZCAtLXNpbGVudCBtb2RlIGRldGVjdGlvbiBpbiAkKE1BS0VGTEFHUykg YnkgZmlsdGVyaW5nCitvdXQgLS1sb25nLW9wdGlvbnMuIE90aGVyd2lzZSBvcHRpb25zIGxpa2Ug LS1zaHVmZmxlIGZsYWcgZW5hYmxlIHNpbGVudAorbW9kZSB1bmludGVudGlvbmFsbHkuICQoc2ls ZW50LW1ha2UpIHZhcmlhYmxlIGNvbnNvbGlkYXRlcyB0aGUgY2hlY2tzLgorCitSZXNvbHZlczog QlojIDI5NTY0CisKK0NDOiBQYXVsIFNtaXRoIDxwc21pdGhAZ251Lm9yZz4KK0NDOiBTaWRkaGVz aCBQb3lhcmVrYXIgPHNpZGRoZXNoQGdvdHBsdC5vcmc+CitTaWduZWQtb2ZmLWJ5OiBTZXJnZWkg VHJvZmltb3ZpY2ggPHNseWljaEBnbWFpbC5jb20+CitSZXZpZXdlZC1ieTogU2lkZGhlc2ggUG95 YXJla2FyIDxzaWRkaGVzaEBzb3VyY2V3YXJlLm9yZz4KKyhjaGVycnkgcGlja2VkIGZyb20gY29t bWl0IDJkN2VkOThhZGQxNGY3NTA0MTQ5OWFjMTg5Njk2YzliZDNkNzU3ZmUpCistLS0KKyBNYWtl Y29uZmlnICAgICB8IDE4ICsrKysrKysrKysrKysrKysrLQorIE1ha2VydWxlcyAgICAgIHwgIDQg KystLQorIGVsZi9ydGxkLVJ1bGVzIHwgIDIgKy0KKyAzIGZpbGVzIGNoYW5nZWQsIDIwIGluc2Vy dGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9NYWtlY29uZmlnIGIvTWFr ZWNvbmZpZworaW5kZXggYmE3MDMyMWFmMS4uMmJiY2FiZDhmOSAxMDA2NDQKKy0tLSBhL01ha2Vj b25maWcKKysrKyBiL01ha2Vjb25maWcKK0BAIC00Myw2ICs0MywyMiBAQCBlbHNlCisgJChlcnJv ciBvYmpkaXIgbXVzdCBiZSBkZWZpbmVkIGJ5IHRoZSBidWlsZC1kaXJlY3RvcnkgTWFrZWZpbGUp CisgZW5kaWYKKyAKKysjIERpZCB3ZSByZXF1ZXN0ICdtYWtlIC1zJyBydW4/ICJ5ZXMiIG9yICJu byIuCisrIyBTdGFydGluZyBmcm9tIG1ha2UtNC40IE1BS0VGTEFHUyBub3cgY29udGFpbnMgbG9u ZworKyMgb3B0aW9ucyBsaWtlICctLXNodWZmbGUnLiBUbyBkZXRlY3QgcHJlc2VuY2Ugb2YgJ3Mn CisrIyB3ZSBwaWNrIGZpcnN0IHdvcmQgd2l0aCBzaG9ydCBvcHRpb25zLiBMb25nIG9wdGlvbnMK KysjIGFyZSBndWFyYW50ZWVkIHRvIGNvbWUgYWZ0ZXIgd2hpdGVzcGFjZS4gV2UgdXNlICctJwor KyMgcHJlZml4IHRvIGFsd2F5cyBoYXZlIGEgd29yZCBiZWZvcmUgbG9uZyBvcHRpb25zCisrIyBl dmVuIGlmIG5vIHNob3J0IG9wdGlvbnMgd2VyZSBwYXNzZWQuCisrIyBUeXBpY2FsIE1BS0VGTEFH UyB2YWx1ZXMgdG8gd2F0Y2ggZm9yOgorKyMgICAicnMgLS1zaHVmZmxlPTQyIiAoc2lsZW50KQor KyMgICAiIC0tc2h1ZmZsZSIgKG5vdCBzaWxlbnQpCisraWZlcSAoJChmaW5kc3RyaW5nIHMsICQo Zmlyc3R3b3JkIC0kKE1BS0VGTEFHUykpKSwpCisrc2lsZW50LW1ha2UgOj0gbm8KKytlbHNlCisr c2lsZW50LW1ha2UgOj0geWVzCisrZW5kaWYKKysKKyAjIFJvb3Qgb2YgdGhlIHN5c2RlcHMgdHJl ZS4KKyBzeXNkZXBfZGlyIDo9ICQoLi4pc3lzZGVwcworIGV4cG9ydCBzeXNkZXBfZGlyIDo9ICQo c3lzZGVwX2RpcikKK0BAIC05MTcsNyArOTMzLDcgQEAgZW5kaWYKKyAjIHVtcHRlZW4gemlsbGlv biBmaWxlbmFtZXMgYWxvbmcgd2l0aCBpdCAod2UgdXNlIGAuLi4nIGluc3RlYWQpCisgIyBidXQg d2UgZG9uJ3Qgd2FudCB0aGlzIGVjaG9pbmcgZG9uZSB3aGVuIHRoZSB1c2VyIGhhcyBzYWlkCisg IyBoZSBkb2Vzbid0IHdhbnQgdG8gc2VlIGNvbW1hbmRzIGVjaG9lZCBieSB1c2luZyAtcy4KKy1p Zm5lcQkiJChmaW5kc3RyaW5nIHMsJChNQUtFRkxBR1MpKSIgIiIJIyBpZiAtcworK2lmZXEgKCQo c2lsZW50LW1ha2UpLHllcykJCQkjIGlmIC1zCisgK2NtZGVjaG8JOj0gZWNobyA+L2Rldi9udWxs CisgZWxzZQkJCQkJCSMgbm90IC1zCisgK2NtZGVjaG8JOj0gZWNobworZGlmZiAtLWdpdCBhL01h a2VydWxlcyBiL01ha2VydWxlcworaW5kZXggZDFlMTM5ZDAzYy4uMDljMGNmODM1NyAxMDA2NDQK Ky0tLSBhL01ha2VydWxlcworKysrIGIvTWFrZXJ1bGVzCitAQCAtNzk0LDcgKzc5NCw3IEBAIGVu ZGlmCisgIyBNYXhpbWl6ZSBlZmZpY2llbmN5IGJ5IG1pbmltaXppbmcgdGhlIG51bWJlciBvZiBy dWxlcy4KKyAuU1VGRklYRVM6CSMgQ2xlYXIgdGhlIHN1ZmZpeCBsaXN0LiAgV2UgZG9uJ3QgdXNl IHN1ZmZpeCBydWxlcy4KKyAjIERvbid0IGRlZmluZSBhbnkgYnVpbHRpbiBydWxlcy4KKy1NQUtF RkxBR1MgOj0gJChNQUtFRkxBR1MpcgorK01BS0VGTEFHUyA6PSAkKE1BS0VGTEFHUykgLXIKKyAK KyAjIEdlbmVyaWMgcnVsZSBmb3IgbWFraW5nIGRpcmVjdG9yaWVzLgorICUvOgorQEAgLTgxMSw3 ICs4MTEsNyBAQCBNQUtFRkxBR1MgOj0gJChNQUtFRkxBR1MpcgorIC5QUkVDSU9VUzogJChmb3Jl YWNoIGwsJChsaWJ0eXBlcyksJChwYXRzdWJzdCAlLCQoY29tbW9uLW9ianBmeCkkbCxjKSkKKyAM CisgIyBVc2UgdGhlIHZlcmJvc2Ugb3B0aW9uIG9mIGFyIGFuZCB0YXIgd2hlbiBub3QgcnVubmlu ZyBzaWxlbnRseS4KKy1pZmVxCSIkKGZpbmRzdHJpbmcgcywkKE1BS0VGTEFHUykpIiAiIgkjIGlm IG5vdCAtcworK2lmZXEgKCQoc2lsZW50LW1ha2UpLG5vKQkJCSMgaWYgbm90IC1zCisgdmVyYm9z ZSA6PSB2CisgZWxzZQkgICAJCQkJCSMgLXMKKyB2ZXJib3NlCTo9CitkaWZmIC0tZ2l0IGEvZWxm L3J0bGQtUnVsZXMgYi9lbGYvcnRsZC1SdWxlcworaW5kZXggY2EwMGRkMWZlMi4uM2M1ZTI3M2Yy YiAxMDA2NDQKKy0tLSBhL2VsZi9ydGxkLVJ1bGVzCisrKysgYi9lbGYvcnRsZC1SdWxlcworQEAg LTUyLDcgKzUyLDcgQEAgJChvYmpwZngpcnRsZC1saWJjLmE6ICQoZm9yZWFjaCBkaXIsJChydGxk LXN1YmRpcnMpLFwKKyAJbXYgLWYgJEBUICRACisgCisgIyBVc2UgdGhlIHZlcmJvc2Ugb3B0aW9u IG9mIGFyIGFuZCB0YXIgd2hlbiBub3QgcnVubmluZyBzaWxlbnRseS4KKy1pZmVxCSIkKGZpbmRz dHJpbmcgcywkKE1BS0VGTEFHUykpIiAiIgkjIGlmIG5vdCAtcworK2lmZXEgKCQoc2lsZW50LW1h a2UpLG5vKQkJCSMgaWYgbm90IC1zCisgdmVyYm9zZSA6PSB2CisgZWxzZQkJCQkJCSMgLXMKKyB2 ZXJib3NlCTo9CistLSAKKzIuMzguMQorCisKK0Zyb20gNzA0MTBmMjI4NmNjMzZjOWNjYjEzMzg3 ODgxMWM3MjhhZTUxNzI1ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFBhdWwgRWdn ZXJ0IDxlZ2dlcnRAY3MudWNsYS5lZHU+CitEYXRlOiBUaHUsIDggU2VwIDIwMjIgMjA6MDg6MzIg LTA1MDAKK1N1YmplY3Q6IFtQQVRDSCA3MS83Ml0gbWt0aW1lOiBpbXByb3ZlIGhldXJpc3RpYyBm b3IgY2EtMTk4NiBJbmRpYW5hIERTVAorCitUaGlzIHBhdGNoIHN5bmNzIG1rdGltZS5jIGZyb20g R251bGliLCBmaXhpbmcgYQorcHJvYmxlbSByZXBvcnRlZCBieSBNYXJrIEtyZW56IDxodHRwczov L2J1Z3MuZ251Lm9yZy80ODA4NT4sCithbmQgaXQgc2hvdWxkIGZpeCBCWiMyOTAzNSB0b28uCisq IHRpbWUvbWt0aW1lLmMgKF9fbWt0aW1lX2ludGVybmFsKTogQmUgbW9yZSBnZW5lcm91cyBhYm91 dAorYWNjZXB0aW5nIGFyZ3VtZW50cyB3aXRoIHRoZSB3cm9uZyB2YWx1ZSBvZiB0bV9pc2RzdCwg YnkgZmFsbGluZworYmFjayB0byBhIG9uZS1ob3VyIERTVCBkaWZmZXJlbmNlIGlmIHdlIGZpbmQg bm8gbmVhcmJ5IERTVCB0aGF0IGlzCit1bnVzdWFsLiAgVGhpcyBmaXhlcyBhIHByb2JsZW0gd2hl cmUgIjE5ODYtMDQtMjggMDA6MDAgRURUIiB3YXMKK3JlamVjdGVkIHdoZW4gVFo9IkFtZXJpY2Ev SW5kaWFuYXBvbGlzIiBiZWNhdXNlIHRoZSBuZWFyZXN0IERTVAordGltZXN0YW1wIG9jY3VycmVk IGluIDE5NzAsIGEgdGVtcG9yYWwgZGlzdGFuY2UgdG9vIGdyZWF0IGZvciB0aGUKK29sZCBoZXVy aXN0aWMuICBUaGlzIGFsc28gYWxzbyBuYXJyb3dzIHRoZSBzZWFyY2ggYSBiaXQsIHdoaWNoCitp cyBhIG1pbm9yIHBlcmZvcm1hbmNlIHdpbi4KKworKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQg ODM4NTllMTExNTI2OWNmNTZkMjE2NjkzNjFkNGRkYmUyNjg3ODMxYykKKy0tLQorIHRpbWUvbWt0 aW1lLmMgfCAyOCArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQs IDIwIGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS90aW1lL21r dGltZS5jIGIvdGltZS9ta3RpbWUuYworaW5kZXggNDk0Yzg5YmY1NC4uZTlhNjAwNjcxMCAxMDA2 NDQKKy0tLSBhL3RpbWUvbWt0aW1lLmMKKysrKyBiL3RpbWUvbWt0aW1lLmMKK0BAIC00MjksOCAr NDI5LDEzIEBAIF9fbWt0aW1lX2ludGVybmFsIChzdHJ1Y3QgdG0gKnRwLAorIAkgdGltZSB3aXRo IHRoZSByaWdodCB2YWx1ZSwgYW5kIHVzZSBpdHMgVVRDIG9mZnNldC4KKyAKKyAJIEhldXJpc3Rp YzogcHJvYmUgdGhlIGFkamFjZW50IHRpbWVzdGFtcHMgaW4gYm90aCBkaXJlY3Rpb25zLAorLQkg bG9va2luZyBmb3IgdGhlIGRlc2lyZWQgaXNkc3QuICBUaGlzIHNob3VsZCB3b3JrIGZvciBhbGwg cmVhbAorLQkgdGltZSB6b25lIGhpc3RvcmllcyBpbiB0aGUgdHogZGF0YWJhc2UuICAqLworKwkg bG9va2luZyBmb3IgdGhlIGRlc2lyZWQgaXNkc3QuICBJZiBub25lIGlzIGZvdW5kIHdpdGhpbiBh CisrCSByZWFzb25hYmxlIGR1cmF0aW9uIGJvdW5kLCBhc3N1bWUgYSBvbmUtaG91ciBEU1QgZGlm ZmVyZW5jZS4KKysJIFRoaXMgc2hvdWxkIHdvcmsgZm9yIGFsbCByZWFsIHRpbWUgem9uZSBoaXN0 b3JpZXMgaW4gdGhlIHR6CisrCSBkYXRhYmFzZS4gICovCisrCisrICAgICAgLyogKzEgaWYgd2Ug d2FudGVkIHN0YW5kYXJkIHRpbWUgYnV0IGdvdCBEU1QsIC0xIGlmIHRoZSByZXZlcnNlLiAgKi8K KysgICAgICBpbnQgZHN0X2RpZmZlcmVuY2UgPSAoaXNkc3QgPT0gMCkgLSAodG0udG1faXNkc3Qg PT0gMCk7CisgCisgICAgICAgLyogRGlzdGFuY2UgYmV0d2VlbiBwcm9iZXMgd2hlbiBsb29raW5n IGZvciBhIERTVCBib3VuZGFyeS4gIEluCisgCSB0emRhdGEyMDAzYSwgdGhlIHNob3J0ZXN0IHBl cmlvZCBvZiBEU1QgaXMgNjAxMjAwIHNlY29uZHMKK0BAIC00NDEsMTIgKzQ0NiwxNCBAQCBfX21r dGltZV9pbnRlcm5hbCAoc3RydWN0IHRtICp0cCwKKyAJIHBlcmlvZHMgd2hlbiBwcm9iaW5nLiAg Ki8KKyAgICAgICBpbnQgc3RyaWRlID0gNjAxMjAwOworIAorLSAgICAgIC8qIFRoZSBsb25nZXN0 IHBlcmlvZCBvZiBEU1QgaW4gdHpkYXRhMjAwM2EgaXMgNTM2NDU0MDAwIHNlY29uZHMKKy0JIChl LmcuLCBBbWVyaWNhL0p1anV5IHN0YXJ0aW5nIDE5NDYtMTAtMDEgMDE6MDApLiAgVGhlIGxvbmdl c3QKKy0JIHBlcmlvZCBvZiBub24tRFNUIGlzIG11Y2ggbG9uZ2VyLCBidXQgaXQgbWFrZXMgbm8g cmVhbCBzZW5zZQorLQkgdG8gc2VhcmNoIGZvciBtb3JlIHRoYW4gYSB5ZWFyIG9mIG5vbi1EU1Qs IHNvIHVzZSB0aGUgRFNUCistCSBtYXguICAqLworLSAgICAgIGludCBkdXJhdGlvbl9tYXggPSA1 MzY0NTQwMDA7CisrICAgICAgLyogSW4gVFpEQiAyMDIxZSwgdGhlIGxvbmdlc3QgcGVyaW9kIG9m IERTVCAob3Igb2Ygbm9uLURTVCksIGluCisrCSB3aGljaCB0aGUgRFNUIChvciBhZGphY2VudCBE U1QpIGRpZmZlcmVuY2UgaXMgbm90IG9uZSBob3VyLAorKwkgaXMgNDU3MjQzMjA5IHNlY29uZHM6 IGUuZy4sIEFtZXJpY2EvQ2FtYnJpZGdlX0JheSB3aXRoIGxlYXAKKysJIHNlY29uZHMsIHN0YXJ0 aW5nIDE5NjUtMTAtMzEgMDA6MDAgaW4gYSBzd2l0Y2ggZnJvbQorKwkgZG91YmxlLWRheWxpZ2h0 IHRpbWUgKC0wNSkgdG8gc3RhbmRhcmQgdGltZSAoLTA3KSwgYW5kCisrCSBjb250aW51aW5nIHRv IDE5ODAtMDQtMjcgMDI6MDAgaW4gYSBzd2l0Y2ggZnJvbSBzdGFuZGFyZCB0aW1lCisrCSAoLTA3 KSB0byBkYXlsaWdodCB0aW1lICgtMDYpLiAgKi8KKysgICAgICBpbnQgZHVyYXRpb25fbWF4ID0g NDU3MjQzMjA5OworIAorICAgICAgIC8qIFNlYXJjaCBpbiBib3RoIGRpcmVjdGlvbnMsIHNvIHRo ZSBtYXhpbXVtIGRpc3RhbmNlIGlzIGhhbGYKKyAJIHRoZSBkdXJhdGlvbjsgYWRkIHRoZSBzdHJp ZGUgdG8gYXZvaWQgb2ZmLWJ5LTEgcHJvYmxlbXMuICAqLworQEAgLTQ4Myw2ICs0OTAsMTEgQEAg X19ta3RpbWVfaW50ZXJuYWwgKHN0cnVjdCB0bSAqdHAsCisgCSAgICAgIH0KKyAJICB9CisgCisr ICAgICAgLyogTm8gdW51c3VhbCBEU1Qgb2Zmc2V0IHdhcyBmb3VuZCBuZWFyYnkuICBBc3N1bWUg b25lLWhvdXIgRFNULiAgKi8KKysgICAgICB0ICs9IDYwICogNjAgKiBkc3RfZGlmZmVyZW5jZTsK KysgICAgICBpZiAobWt0aW1lX21pbiA8PSB0ICYmIHQgPD0gbWt0aW1lX21heCAmJiBjb252ZXJ0 X3RpbWUgKGNvbnZlcnQsIHQsICZ0bSkpCisrCWdvdG8gb2Zmc2V0X2ZvdW5kOworKworICAgICAg IF9fc2V0X2Vycm5vIChFT1ZFUkZMT1cpOworICAgICAgIHJldHVybiAtMTsKKyAgICAgfQorLS0g CisyLjM4LjEKKworCitGcm9tIDBmOTBkNjIwNGQ3OTIyM2ZkMzIyNDhjNzc0ZGYwY2I3ZjBlNjA0 ZGUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBGbG9yaWFuIFdlaW1lciA8ZndlaW1l ckByZWRoYXQuY29tPgorRGF0ZTogVHVlLCA4IE5vdiAyMDIyIDE0OjE1OjAyICswMTAwCitTdWJq ZWN0OiBbUEFUQ0ggNzIvNzJdIExpbnV4OiBTdXBwb3J0IF9fSVBDXzY0IGluIHN5c3ZjdGwgKmN0 bCBjb21tYW5kCisgYXJndW1lbnRzIChidWcgMjk3NzEpCisKK09sZCBhcHBsaWNhdGlvbnMgcGFz cyBfX0lQQ182NCBhcyBwYXJ0IG9mIHRoZSBjb21tYW5kIGFyZ3VtZW50IGJlY2F1c2UKK29sZCBn bGliYyBkaWQgbm90IGNoZWNrIGZvciB1bmtub3duIGNvbW1hbmRzLCBhbmQgcGFzc2VkIHRocm91 Z2ggdGhlCithcmd1bWVudHMgZGlyZWN0bHkgdG8gdGhlIGtlcm5lbCwgd2l0aG91dCBhZGRpbmcg X19JUENfNjQuCitBcHBsaWNhdGlvbnMgbmVlZCB0byBjb250aW51ZSBkb2luZyB0aGF0IGZvciBv bGQgZ2xpYmMgY29tcGF0aWJpbGl0eSwKK3NvIHRoaXMgY29tbWl0IGVuYWJsZXMgdGhpcyBhcHBy b2FjaCBpbiBjdXJyZW50IGdsaWJjLgorCitGb3IgbXNnY3RsIGFuZCBzaG1jdGwsIGlmIG5vIHRy YW5zbGF0aW9uIGlzIHJlcXVpcmVkLCBtYWtlCitkaXJlY3Qgc3lzdGVtIGNhbGxzLCBhcyB3ZSBk aWQgYmVmb3JlIHRoZSB0aW1lNjQgY2hhbmdlcy4gIElmCit0cmFuc2xhdGlvbiBpcyByZXF1aXJl ZCwgbWFzayBfX0lQQ182NCBmcm9tIHRoZSBjb21tYW5kIGFyZ3VtZW50LgorCitGb3Igc2VtY3Rs LCB0aGUgdW5pb24taW4tdmFyYXJnIGFyZ3VtZW50IGhhbmRsaW5nIG1lYW5zIHRoYXQKK3RyYW5z bGF0aW9uIGlzIG5lZWRlZCBvbiBhbGwgYXJjaGl0ZWN0dXJlcy4KKworUmV2aWV3ZWQtYnk6IEFk aGVtZXJ2YWwgWmFuZWxsYSAgPGFkaGVtZXJ2YWwuemFuZWxsYUBsaW5hcm8ub3JnPgorKGNoZXJy eSBwaWNrZWQgZnJvbSBjb21taXQgMjJhNDZkZWUyNDM1MWZkNWY0ZjE4OGFkODA1NTRjYWQ3OWM4 MjUyNCkKKy0tLQorIE5FV1MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMSArCisg c3lzZGVwcy91bml4L3N5c3YvbGludXgvaXBjX3ByaXYuaCB8ICA2ICsrKysrCisgc3lzZGVwcy91 bml4L3N5c3YvbGludXgvbXNnY3RsLmMgICB8IDM4ICsrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tLQorIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NlbWN0bC5jICAgfCAgNyArKysrKysKKyBz eXNkZXBzL3VuaXgvc3lzdi9saW51eC9zaG1jdGwuYyAgIHwgMzggKysrKysrKysrKysrKysrKysr KystLS0tLS0tLS0tCisgNSBmaWxlcyBjaGFuZ2VkLCA2NCBpbnNlcnRpb25zKCspLCAyNiBkZWxl dGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL05FV1MgYi9ORVdTCitpbmRleCBlOTJkNTQ3ZTJjLi45 ZjhlZGVhNWRiIDEwMDY0NAorLS0tIGEvTkVXUworKysrIGIvTkVXUworQEAgLTQ2LDYgKzQ2LDcg QEAgVGhlIGZvbGxvd2luZyBidWdzIGFyZSByZXNvbHZlZCB3aXRoIHRoaXMgcmVsZWFzZToKKyAg IFsyOTY1N10gbGliYzogSW5jb3JyZWN0IHN0cnVjdCBzdGF0IGZvciA2NC1iaXQgdGltZSBvbiBs aW51eC9nZW5lcmljCisgICAgIHBsYXRmb3JtcworICAgWzI5NzMwXSBicm9rZW4geTIwMzggc3Vw cG9ydCBpbiBmc3RhdGF0IG9uIE1JUFMgTjY0CisrICBbMjk3NzFdIFJlc3RvcmUgSVBDXzY0IHN1 cHBvcnQgaW4gc3lzdmlwYyAqY3RsIGZ1bmN0aW9ucworIAwKKyBWZXJzaW9uIDIuMzYKKyAKK2Rp ZmYgLS1naXQgYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pcGNfcHJpdi5oIGIvc3lzZGVwcy91 bml4L3N5c3YvbGludXgvaXBjX3ByaXYuaAoraW5kZXggODc4OTNhNjc1Ny4uMmY1MGMzMWE4ZSAx MDA2NDQKKy0tLSBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2lwY19wcml2LmgKKysrKyBiL3N5 c2RlcHMvdW5peC9zeXN2L2xpbnV4L2lwY19wcml2LmgKK0BAIC02Myw0ICs2MywxMCBAQCBzdHJ1 Y3QgX19vbGRfaXBjX3Blcm0KKyAjIGRlZmluZSBfX0lQQ19USU1FNjQgMAorICNlbmRpZgorIAor KyNpZiBfX0lQQ19USU1FNjQgfHwgZGVmaW5lZCBfX0FTU1VNRV9TWVNWSVBDX0JST0tFTl9NT0RF X1QKKysjIGRlZmluZSBJUENfQ1RMX05FRURfVFJBTlNMQVRJT04gMQorKyNlbHNlCisrIyBkZWZp bmUgSVBDX0NUTF9ORUVEX1RSQU5TTEFUSU9OIDAKKysjZW5kaWYKKysKKyAjaW5jbHVkZSA8aXBj X29wcy5oPgorZGlmZiAtLWdpdCBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L21zZ2N0bC5jIGIv c3lzZGVwcy91bml4L3N5c3YvbGludXgvbXNnY3RsLmMKK2luZGV4IGU4MjRlYmIwOTUuLjIwNzIy MDUyNTIgMTAwNjQ0CistLS0gYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tc2djdGwuYworKysr IGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvbXNnY3RsLmMKK0BAIC04NSwxMSArODUsMTkgQEAg bXNnY3RsX3N5c2NhbGwgKGludCBtc3FpZCwgaW50IGNtZCwgbXNnY3RsX2FyZ190ICpidWYpCisg aW50CisgX19tc2djdGw2NCAoaW50IG1zcWlkLCBpbnQgY21kLCBzdHJ1Y3QgX19tc3FpZDY0X2Rz ICpidWYpCisgeworLSNpZiBfX0lQQ19USU1FNjQKKysjaWYgSVBDX0NUTF9ORUVEX1RSQU5TTEFU SU9OCisrIyBpZiBfX0lQQ19USU1FNjQKKyAgIHN0cnVjdCBrZXJuZWxfbXNxaWQ2NF9kcyBrc2Vt aWQsICphcmcgPSBOVUxMOworLSNlbHNlCisrIyBlbHNlCisgICBtc2djdGxfYXJnX3QgKmFyZzsK Ky0jZW5kaWYKKysjIGVuZGlmCisrCisrICAvKiBTb21lIGFwcGxpY2F0aW9ucyBwYXNzIHRoZSBf X0lQQ182NCBmbGFnIGluIGNtZCwgdG8gaW52b2tlCisrICAgICBwcmV2aW91c2x5IHVuc3VwcG9y dGVkIGNvbW1hbmRzIGJhY2sgd2hlbiB0aGVyZSB3YXMgbm8gRUlOVkFMCisrICAgICBlcnJvciBj aGVja2luZyBpbiBnbGliYy4gIE1hc2sgdGhlIGZsYWcgZm9yIHRoZSBzd2l0Y2ggc3RhdGVtZW50 cworKyAgICAgYmVsb3cuICBtc2djdGxfc3lzY2FsbCBhZGRzIGJhY2sgdGhlIF9fSVBDXzY0IGZs YWcgZm9yIHRoZSBhY3R1YWwKKysgICAgIHN5c3RlbSBjYWxsLiAgKi8KKysgIGNtZCAmPSB+X19J UENfNjQ7CisgCisgICBzd2l0Y2ggKGNtZCkKKyAgICAgeworQEAgLTEwMSwxOSArMTA5LDE5IEBA IF9fbXNnY3RsNjQgKGludCBtc3FpZCwgaW50IGNtZCwgc3RydWN0IF9fbXNxaWQ2NF9kcyAqYnVm KQorICAgICBjYXNlIElQQ19TVEFUOgorICAgICBjYXNlIE1TR19TVEFUOgorICAgICBjYXNlIE1T R19TVEFUX0FOWToKKy0jaWYgX19JUENfVElNRTY0CisrIyBpZiBfX0lQQ19USU1FNjQKKyAgICAg ICBpZiAoYnVmICE9IE5VTEwpCisgCXsKKyAJICBtc3FpZDY0X3RvX2ttc3FpZDY0IChidWYsICZr c2VtaWQpOworIAkgIGFyZyA9ICZrc2VtaWQ7CisgCX0KKy0jIGlmZGVmIF9fQVNTVU1FX1NZU1ZJ UENfQlJPS0VOX01PREVfVAorKyMgIGlmZGVmIF9fQVNTVU1FX1NZU1ZJUENfQlJPS0VOX01PREVf VAorICAgICAgIGlmIChjbWQgPT0gSVBDX1NFVCkKKyAJYXJnLT5tc2dfcGVybS5tb2RlICo9IDB4 MTAwMDBVOworLSMgZW5kaWYKKy0jZWxzZQorKyMgIGVuZGlmCisrIyBlbHNlCisgICAgICAgYXJn ID0gYnVmOworLSNlbmRpZgorKyMgZW5kaWYKKyAgICAgICBicmVhazsKKyAKKyAgICAgY2FzZSBJ UENfSU5GTzoKK0BAIC0xMzcsMjEgKzE0NSwyNSBAQCBfX21zZ2N0bDY0IChpbnQgbXNxaWQsIGlu dCBjbWQsIHN0cnVjdCBfX21zcWlkNjRfZHMgKmJ1ZikKKyAgICAgY2FzZSBJUENfU1RBVDoKKyAg ICAgY2FzZSBNU0dfU1RBVDoKKyAgICAgY2FzZSBNU0dfU1RBVF9BTlk6CistI2lmZGVmIF9fQVNT VU1FX1NZU1ZJUENfQlJPS0VOX01PREVfVAorKyMgaWZkZWYgX19BU1NVTUVfU1lTVklQQ19CUk9L RU5fTU9ERV9UCisgICAgICAgYXJnLT5tc2dfcGVybS5tb2RlID4+PSAxNjsKKy0jZWxzZQorKyMg ZWxzZQorICAgICAgIC8qIE9sZCBMaW51eCBrZXJuZWwgdmVyc2lvbnMgbWlnaHQgbm90IGNsZWFy IHRoZSBtb2RlIHBhZGRpbmcuICAqLworICAgICAgIGlmIChzaXplb2YgKChzdHJ1Y3QgbXNxaWRf ZHMpezB9Lm1zZ19wZXJtLm1vZGUpCisgICAgICAgICAgICE9IHNpemVvZiAoX19rZXJuZWxfbW9k ZV90KSkKKyAJYXJnLT5tc2dfcGVybS5tb2RlICY9IDB4RkZGRjsKKy0jZW5kaWYKKysjIGVuZGlm CisgCistI2lmIF9fSVBDX1RJTUU2NAorKyMgaWYgX19JUENfVElNRTY0CisgICAgICAga21zcWlk NjRfdG9fbXNxaWQ2NCAoYXJnLCBidWYpOworLSNlbmRpZgorKyMgZW5kaWYKKyAgICAgfQorIAor ICAgcmV0dXJuIHJldDsKKysKKysjZWxzZSAvKiAhSVBDX0NUTF9ORUVEX1RSQU5TTEFUSU9OICov CisrICByZXR1cm4gbXNnY3RsX3N5c2NhbGwgKG1zcWlkLCBjbWQsIGJ1Zik7CisrI2VuZGlmCisg fQorICNpZiBfX1RJTUVTSVpFICE9IDY0CisgbGliY19oaWRkZW5fZGVmIChfX21zZ2N0bDY0KQor ZGlmZiAtLWdpdCBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NlbWN0bC5jIGIvc3lzZGVwcy91 bml4L3N5c3YvbGludXgvc2VtY3RsLmMKK2luZGV4IDc3YTgxMzBjMTguLjM0NThiMDE4YmMgMTAw NjQ0CistLS0gYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zZW1jdGwuYworKysrIGIvc3lzZGVw cy91bml4L3N5c3YvbGludXgvc2VtY3RsLmMKK0BAIC0xNDAsNiArMTQwLDEzIEBAIF9fc2VtY3Rs NjQgKGludCBzZW1pZCwgaW50IHNlbW51bSwgaW50IGNtZCwgLi4uKQorICAgdW5pb24gc2VtdW42 NCBhcmc2NCA9IHsgMCB9OworICAgdmFfbGlzdCBhcDsKKyAKKysgIC8qIFNvbWUgYXBwbGljYXRp b25zIHBhc3MgdGhlIF9fSVBDXzY0IGZsYWcgaW4gY21kLCB0byBpbnZva2UKKysgICAgIHByZXZp b3VzbHkgdW5zdXBwb3J0ZWQgY29tbWFuZHMgYmFjayB3aGVuIHRoZXJlIHdhcyBubyBFSU5WQUwK KysgICAgIGVycm9yIGNoZWNraW5nIGluIGdsaWJjLiAgTWFzayB0aGUgZmxhZyBmb3IgdGhlIHN3 aXRjaCBzdGF0ZW1lbnRzCisrICAgICBiZWxvdy4gIHNlbWN0bF9zeXNjYWxsIGFkZHMgYmFjayB0 aGUgX19JUENfNjQgZmxhZyBmb3IgdGhlIGFjdHVhbAorKyAgICAgc3lzdGVtIGNhbGwuICAqLwor KyAgY21kICY9IH5fX0lQQ182NDsKKysKKyAgIC8qIEdldCB0aGUgYXJndW1lbnQgb25seSBpZiBy ZXF1aXJlZC4gICovCisgICBzd2l0Y2ggKGNtZCkKKyAgICAgeworZGlmZiAtLWdpdCBhL3N5c2Rl cHMvdW5peC9zeXN2L2xpbnV4L3NobWN0bC5jIGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvc2ht Y3RsLmMKK2luZGV4IGVhMzg5MzU0OTcuLmYwMDgxN2E2ZjYgMTAwNjQ0CistLS0gYS9zeXNkZXBz L3VuaXgvc3lzdi9saW51eC9zaG1jdGwuYworKysrIGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgv c2htY3RsLmMKK0BAIC04NSwxMSArODUsMTkgQEAgc2htY3RsX3N5c2NhbGwgKGludCBzaG1pZCwg aW50IGNtZCwgc2htY3RsX2FyZ190ICpidWYpCisgaW50CisgX19zaG1jdGw2NCAoaW50IHNobWlk LCBpbnQgY21kLCBzdHJ1Y3QgX19zaG1pZDY0X2RzICpidWYpCisgeworLSNpZiBfX0lQQ19USU1F NjQKKysjaWYgSVBDX0NUTF9ORUVEX1RSQU5TTEFUSU9OCisrIyBpZiBfX0lQQ19USU1FNjQKKyAg IHN0cnVjdCBrZXJuZWxfc2htaWQ2NF9kcyBrc2htaWQsICphcmcgPSBOVUxMOworLSNlbHNlCisr IyBlbHNlCisgICBzaG1jdGxfYXJnX3QgKmFyZzsKKy0jZW5kaWYKKysjIGVuZGlmCisrCisrICAv KiBTb21lIGFwcGxpY2F0aW9ucyBwYXNzIHRoZSBfX0lQQ182NCBmbGFnIGluIGNtZCwgdG8gaW52 b2tlCisrICAgICBwcmV2aW91c2x5IHVuc3VwcG9ydGVkIGNvbW1hbmRzIGJhY2sgd2hlbiB0aGVy ZSB3YXMgbm8gRUlOVkFMCisrICAgICBlcnJvciBjaGVja2luZyBpbiBnbGliYy4gIE1hc2sgdGhl IGZsYWcgZm9yIHRoZSBzd2l0Y2ggc3RhdGVtZW50cworKyAgICAgYmVsb3cuICBzaG1jdGxfc3lz Y2FsbCBhZGRzIGJhY2sgdGhlIF9fSVBDXzY0IGZsYWcgZm9yIHRoZSBhY3R1YWwKKysgICAgIHN5 c3RlbSBjYWxsLiAgKi8KKysgIGNtZCAmPSB+X19JUENfNjQ7CisgCisgICBzd2l0Y2ggKGNtZCkK KyAgICAgeworQEAgLTEwMywxOSArMTExLDE5IEBAIF9fc2htY3RsNjQgKGludCBzaG1pZCwgaW50 IGNtZCwgc3RydWN0IF9fc2htaWQ2NF9kcyAqYnVmKQorICAgICBjYXNlIElQQ19TVEFUOgorICAg ICBjYXNlIFNITV9TVEFUOgorICAgICBjYXNlIFNITV9TVEFUX0FOWToKKy0jaWYgX19JUENfVElN RTY0CisrIyBpZiBfX0lQQ19USU1FNjQKKyAgICAgICBpZiAoYnVmICE9IE5VTEwpCisgCXsKKyAJ ICBzaG1pZDY0X3RvX2tzaG1pZDY0IChidWYsICZrc2htaWQpOworIAkgIGFyZyA9ICZrc2htaWQ7 CisgCX0KKy0jIGlmZGVmIF9fQVNTVU1FX1NZU1ZJUENfQlJPS0VOX01PREVfVAorKyMgIGlmZGVm IF9fQVNTVU1FX1NZU1ZJUENfQlJPS0VOX01PREVfVAorICAgICAgIGlmIChjbWQgPT0gSVBDX1NF VCkKKyAgICAgICAgIGFyZy0+c2htX3Blcm0ubW9kZSAqPSAweDEwMDAwVTsKKy0jIGVuZGlmCist I2Vsc2UKKysjICBlbmRpZgorKyMgZWxzZQorICAgICAgIGFyZyA9IGJ1ZjsKKy0jZW5kaWYKKysj IGVuZGlmCisgICAgICAgYnJlYWs7CisgCisgICAgIGNhc2UgSVBDX0lORk86CitAQCAtMTQwLDIx ICsxNDgsMjUgQEAgX19zaG1jdGw2NCAoaW50IHNobWlkLCBpbnQgY21kLCBzdHJ1Y3QgX19zaG1p ZDY0X2RzICpidWYpCisgICAgICAgY2FzZSBJUENfU1RBVDoKKyAgICAgICBjYXNlIFNITV9TVEFU OgorICAgICAgIGNhc2UgU0hNX1NUQVRfQU5ZOgorLSNpZmRlZiBfX0FTU1VNRV9TWVNWSVBDX0JS T0tFTl9NT0RFX1QKKysjIGlmZGVmIF9fQVNTVU1FX1NZU1ZJUENfQlJPS0VOX01PREVfVAorICAg ICAgICAgYXJnLT5zaG1fcGVybS5tb2RlID4+PSAxNjsKKy0jZWxzZQorKyMgZWxzZQorICAgICAg IC8qIE9sZCBMaW51eCBrZXJuZWwgdmVyc2lvbnMgbWlnaHQgbm90IGNsZWFyIHRoZSBtb2RlIHBh ZGRpbmcuICAqLworICAgICAgIGlmIChzaXplb2YgKChzdHJ1Y3Qgc2htaWRfZHMpezB9LnNobV9w ZXJtLm1vZGUpCisgCSAgIT0gc2l6ZW9mIChfX2tlcm5lbF9tb2RlX3QpKQorIAlhcmctPnNobV9w ZXJtLm1vZGUgJj0gMHhGRkZGOworLSNlbmRpZgorKyMgZW5kaWYKKyAKKy0jaWYgX19JUENfVElN RTY0CisrIyBpZiBfX0lQQ19USU1FNjQKKyAgICAgICBrc2htaWQ2NF90b19zaG1pZDY0IChhcmcs IGJ1Zik7CistI2VuZGlmCisrIyBlbmRpZgorICAgICB9CisgCisgICByZXR1cm4gcmV0OworKwor KyNlbHNlIC8qICFJUENfQ1RMX05FRURfVFJBTlNMQVRJT04gKi8KKysgIHJldHVybiBzaG1jdGxf c3lzY2FsbCAoc2htaWQsIGNtZCwgYnVmKTsKKysjZW5kaWYKKyB9CisgI2lmIF9fVElNRVNJWkUg IT0gNjQKKyBsaWJjX2hpZGRlbl9kZWYgKF9fc2htY3RsNjQpCistLSAKKzIuMzguMQorCmRpZmYg LS1naXQgYS9zcmNwa2dzL2dsaWJjL3BhdGNoZXMvZ2xpYmMtYy11dGY4LWxvY2FsZS5wYXRjaCBi L3NyY3BrZ3MvZ2xpYmMvcGF0Y2hlcy9nbGliYy1jLXV0ZjgtbG9jYWxlLnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MjE1ZTE1NThiNjIuLjAwMDAwMDAwMDAwMAotLS0gYS9z cmNwa2dzL2dsaWJjL3BhdGNoZXMvZ2xpYmMtYy11dGY4LWxvY2FsZS5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDI4NiArMCwwIEBACi1TaG9ydCBkZXNjcmlwdGlvbjogQWRkIEMuVVRGLTggc3Vw cG9ydC4KLUF1dGhvcihzKTogRmVkb3JhIGdsaWJjIHRlYW0gPGdsaWJjQGxpc3RzLmZlZG9yYXBy b2plY3Qub3JnPgotT3JpZ2luOiBQQVRDSAotVXBzdHJlYW0gc3RhdHVzOiBub3Qtc3VibWl0dGVk Ci0KLVRoaXMgcGF0Y2ggbmVlZHMgdG8gdXBzdHJlYW0gYXMgcGFydCBvZiBDYXJsb3MgTydEb25l bGwKLTxjYXJsb3NAcmVkaGF0LmNvbT4ncyB3b3JrIG9uIGVuYWJsaW5nIHVwc3RyZWFtIEMuVVRG LTggc3VwcG9ydC4gVGhpcwotd29yayBpcyBjdXJyZW50bHkgYmxvY2tlZCBvbiBjbGVhbmluZyB1 cCB0aGUgdGVzdCByZXN1bHRzIHRvIHByb3ZlIHRoYXQKLWZ1bGwgY29kZS1wb2ludCBzb3J0aW5n IGlzIHdvcmtpbmcgYXMgaW50ZW5kZWQuCi0KLU5vdGUgdGhhdCB0aGlzIHBhdGNoIGRvZXMgbm90 IHByb3ZpZGUgZnVsbCBjb2RlLXBvaW50IHNvcnRpbmcgYXMKLWV4cGVjdGVkLgotCi1UaGlzIHBh dGNoIG5lZWRzIHRvIHVwc3RyZWFtIGFzIHNvb24gYXMgcG9zc2libGUgc2luY2UgaXQgd291bGQg YmUgbmljZQotdG8gaGF2ZSB0aGlzIGluIEYyOSBhbmQgZml4ZWQuCi0KLUZyb20gMmVkYTdiNDYy YjQxNTEwNWY1YTA1YzEzMjMzNzJkNGUzOWQ0NjQzOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK LUZyb206IE1pa2UgRkFCSUFOIDxtZmFiaWFuQHJlZGhhdC5jb20+Ci1EYXRlOiBNb24sIDEwIEF1 ZyAyMDE1IDE1OjU4OjEyICswMjAwCi1TdWJqZWN0OiBbUEFUQ0hdIEFkZCBhIEMuVVRGLTggbG9j YWxlCi0KLS0tLQotIGxvY2FsZWRhdGEvU1VQUE9SVEVEIHwgICAxICsKLSBsb2NhbGVkYXRhL2xv Y2FsZXMvQyB8IDIzOCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysKLSAyIGZpbGVzIGNoYW5nZWQsIDIzOSBpbnNlcnRpb25zKCspCi0gY3JlYXRlIG1v ZGUgMTAwNjQ0IGxvY2FsZWRhdGEvbG9jYWxlcy9DCi0KLWRpZmYgLS1naXQgYS9sb2NhbGVkYXRh L1NVUFBPUlRFRCBiL2xvY2FsZWRhdGEvU1VQUE9SVEVECi1pbmRleCA4Y2EwMjNlLi4yYTc4Mzkx IDEwMDY0NAotLS0tIGEvbG9jYWxlZGF0YS9TVVBQT1JURUQKLSsrKyBiL2xvY2FsZWRhdGEvU1VQ UE9SVEVECi1AQCAtMSw2ICsxLDcgQEAKLSAjIFRoaXMgZmlsZSBuYW1lcyB0aGUgY3VycmVudGx5 IHN1cHBvcnRlZCBhbmQgc29tZXdoYXQgdGVzdGVkIGxvY2FsZXMuCi0gIyBJZiB5b3UgaGF2ZSBh bnkgYWRkaXRpb25zIHBsZWFzZSBmaWxlIGEgZ2xpYmMgYnVnIHJlcG9ydC4KLSBTVVBQT1JURUQt TE9DQUxFUz1cCi0rQy5VVEYtOC9VVEYtOCBcCi0gYWFfREouVVRGLTgvVVRGLTggXAotIGFhX0RK L0lTTy04ODU5LTEgXAotIGFhX0VSL1VURi04IFwKLWRpZmYgLS1naXQgYS9sb2NhbGVkYXRhL2xv Y2FsZXMvQyBiL2xvY2FsZWRhdGEvbG9jYWxlcy9DCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5k ZXggMDAwMDAwMC4uZmRmNDYwZQotLS0tIC9kZXYvbnVsbAotKysrIGIvbG9jYWxlZGF0YS9sb2Nh bGVzL0MKLUBAIC0wLDAgKzEsMjM4IEBACi0rZXNjYXBlX2NoYXIgLwotK2NvbW1lbnRfY2hhciAl Ci0rJSBMb2NhbGUgZm9yIEMgbG9jYWxlIGluIFVURi04Ci0rCi0rTENfSURFTlRJRklDQVRJT04K LSt0aXRsZSAgICAgICJDIGxvY2FsZSIKLStzb3VyY2UgICAgICIiCi0rYWRkcmVzcyAgICAiIgot K2NvbnRhY3QgICAgIiIKLStlbWFpbCAgICAgICJtZmFiaWFuQHJlZGhhdC5jb20iCi0rdGVsICAg ICAgICAiIgotK2ZheCAgICAgICAgIiIKLStsYW5ndWFnZSAgICJDIgotK3RlcnJpdG9yeSAgIiIK LStyZXZpc2lvbiAgICIxLjAiCi0rZGF0ZSAgICAgICAiMjAxNS0wOC0xMCIKLSslCi0rY2F0ZWdv cnkgICJpMThuOjIwMTIiO0xDX0lERU5USUZJQ0FUSU9OCi0rY2F0ZWdvcnkgICJpMThuOjIwMTIi O0xDX0NUWVBFCi0rY2F0ZWdvcnkgICJpMThuOjIwMTIiO0xDX0NPTExBVEUKLStjYXRlZ29yeSAg ImkxOG46MjAxMiI7TENfVElNRQotK2NhdGVnb3J5ICAiaTE4bjoyMDEyIjtMQ19OVU1FUklDCi0r Y2F0ZWdvcnkgICJpMThuOjIwMTIiO0xDX01PTkVUQVJZCi0rY2F0ZWdvcnkgICJpMThuOjIwMTIi O0xDX01FU1NBR0VTCi0rY2F0ZWdvcnkgICJpMThuOjIwMTIiO0xDX1BBUEVSCi0rY2F0ZWdvcnkg ICJpMThuOjIwMTIiO0xDX05BTUUKLStjYXRlZ29yeSAgImkxOG46MjAxMiI7TENfQUREUkVTUwot K2NhdGVnb3J5ICAiaTE4bjoyMDEyIjtMQ19URUxFUEhPTkUKLStjYXRlZ29yeSAgImkxOG46MjAx MiI7TENfTUVBU1VSRU1FTlQKLStFTkQgTENfSURFTlRJRklDQVRJT04KLSsKLStMQ19DVFlQRQot K2NvcHkgImkxOG4iCi0rCi0rdHJhbnNsaXRfc3RhcnQKLStpbmNsdWRlICJ0cmFuc2xpdF9jb21i aW5pbmciOyIiCi0rdHJhbnNsaXRfZW5kCi0rCi0rRU5EIExDX0NUWVBFCi0rCi0rTENfQ09MTEFU RQotK29yZGVyX3N0YXJ0IGZvcndhcmQKLSs8VTAwMDA+Ci0rLi4KLSs8VUZGRkY+Ci0rPFUxMDAw MD4KLSsuLgotKzxVMUZGRkY+Ci0rPFUyMDAwMD4KLSsuLgotKzxVMkZGRkY+Ci0rPFVFMDAwMD4K LSsuLgotKzxVRUZGRkY+Ci0rPFVGMDAwMD4KLSsuLgotKzxVRkZGRkY+Ci0rPFUxMDAwMDA+Ci0r Li4KLSs8VTEwRkZGRj4KLStVTkRFRklORUQKLStvcmRlcl9lbmQKLStFTkQgTENfQ09MTEFURQot KwotK0xDX01PTkVUQVJZCi0rJSBUaGlzIGlzIHRoZSAxNDY1MiBpMThuIGZkY2Mtc2V0IGRlZmlu aXRpb24gZm9yCi0rJSB0aGUgTENfTU9ORVRBUlkgY2F0ZWdvcnkKLSslIChleGNlcHQgZm9yIHRo ZSBpbnRfY3Vycl9zeW1ib2wgYW5kIGN1cnJlbmN5X3N5bWJvbCwgdGhleSBhcmUgZW1wdHkgaW4K LSslIHRoZSAxNDY1MiBpMThuIGZkY2Mtc2V0IGRlZmluaXRpb24gYW5kIGFsc28gZW1wdHkgaW4K LSslIGdsaWJjL2xvY2FsZS9DLW1vbmV0YXJ5LmMuIEJ1dCBsb2NhbGVkZWYgY29tcGxhaW5zIGlu IHRoYXQgY2FzZSkuCi0rJQotKyUgVXNpbmcgIlVTRCIgZm9yIGludF9jdXJyX3N5bWJvbC4gQnV0 IG1heWJlICJYWFgiIHdvdWxkIGJlIGJldHRlcj8KLSslIFhYWCBpcyAiTm8gY3VycmVuY3kiICho dHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fNDIxNykKLStpbnRfY3Vycl9zeW1ib2wg ICAgICI8VTAwNTU+PFUwMDUzPjxVMDA0ND48VTAwMjA+IgotKyUgVXNpbmcgIiQiIGZvciBjdXJy ZW5jeV9zeW1ib2wuIEJ1dCBtYXliZSA8VTAwQTQ+IHdvdWxkIGJlIGJldHRlcj8KLSslIFUrMDBB NCBpcyB0aGUgImdlbmVyaWMgY3VycmVuY3kgc3ltYm9sIgotKyUgKGh0dHBzOi8vZW4ud2lraXBl ZGlhLm9yZy93aWtpL0N1cnJlbmN5X3NpZ25fJTI4dHlwb2dyYXBoeSUyOSkKLStjdXJyZW5jeV9z eW1ib2wgICAgICI8VTAwMjQ+IgotK21vbl9kZWNpbWFsX3BvaW50ICAgIjxVMDAyRT4iCi0rbW9u X3Rob3VzYW5kc19zZXAgICAiIgotK21vbl9ncm91cGluZyAgICAgICAgLTEKLStwb3NpdGl2ZV9z aWduICAgICAgICIiCi0rbmVnYXRpdmVfc2lnbiAgICAgICAiPFUwMDJEPiIKLStpbnRfZnJhY19k aWdpdHMgICAgIC0xCi0rZnJhY19kaWdpdHMgICAgICAgICAtMQotK3BfY3NfcHJlY2VkZXMgICAg ICAgLTEKLStpbnRfcF9zZXBfYnlfc3BhY2UgIC0xCi0rcF9zZXBfYnlfc3BhY2UgICAgICAtMQot K25fY3NfcHJlY2VkZXMgICAgICAgLTEKLStpbnRfbl9zZXBfYnlfc3BhY2UgIC0xCi0rbl9zZXBf Ynlfc3BhY2UgICAgICAtMQotK3Bfc2lnbl9wb3NuICAgICAgICAgLTEKLStuX3NpZ25fcG9zbiAg ICAgICAgIC0xCi0rJQotK0VORCBMQ19NT05FVEFSWQotKwotK0xDX05VTUVSSUMKLSslIFRoaXMg aXMgdGhlIFBPU0lYIExvY2FsZSBkZWZpbml0aW9uIGZvcgotKyUgdGhlIExDX05VTUVSSUMgY2F0 ZWdvcnkuCi0rJQotK2RlY2ltYWxfcG9pbnQgICAiPFUwMDJFPiIKLSt0aG91c2FuZHNfc2VwICAg IiIKLStncm91cGluZyAgICAgICAgLTEKLStFTkQgTENfTlVNRVJJQwotKwotK0xDX1RJTUUKLSsl IFRoaXMgaXMgdGhlIFBPU0lYIExvY2FsZSBkZWZpbml0aW9uIGZvcgotKyUgdGhlIExDX1RJTUUg Y2F0ZWdvcnkuCi0rJQotKyUgQWJicmV2aWF0ZWQgd2Vla2RheSBuYW1lcyAoJWEpCi0rYWJkYXkg ICAgICAgIjxVMDA1Mz48VTAwNzU+PFUwMDZFPiI7IjxVMDA0RD48VTAwNkY+PFUwMDZFPiI7Lwot KyAgICAgICAgICAgICI8VTAwNTQ+PFUwMDc1PjxVMDA2NT4iOyI8VTAwNTc+PFUwMDY1PjxVMDA2 ND4iOy8KLSsgICAgICAgICAgICAiPFUwMDU0PjxVMDA2OD48VTAwNzU+IjsiPFUwMDQ2PjxVMDA3 Mj48VTAwNjk+IjsvCi0rICAgICAgICAgICAgIjxVMDA1Mz48VTAwNjE+PFUwMDc0PiIKLSsKLSsl IEZ1bGwgd2Vla2RheSBuYW1lcyAoJUEpCi0rZGF5ICAgICAgICAgIjxVMDA1Mz48VTAwNzU+PFUw MDZFPjxVMDA2ND48VTAwNjE+PFUwMDc5PiI7LwotKyAgICAgICAgICAgICI8VTAwNEQ+PFUwMDZG PjxVMDA2RT48VTAwNjQ+PFUwMDYxPjxVMDA3OT4iOy8KLSsgICAgICAgICAgICAiPFUwMDU0PjxV MDA3NT48VTAwNjU+PFUwMDczPjxVMDA2ND48VTAwNjE+PFUwMDc5PiI7LwotKyAgICAgICAgICAg ICI8VTAwNTc+PFUwMDY1PjxVMDA2ND48VTAwNkU+PFUwMDY1PjxVMDA3Mz48VTAwNjQ+PFUwMDYx PjxVMDA3OT4iOy8KLSsgICAgICAgICAgICAiPFUwMDU0PjxVMDA2OD48VTAwNzU+PFUwMDcyPjxV MDA3Mz48VTAwNjQ+PFUwMDYxPjxVMDA3OT4iOy8KLSsgICAgICAgICAgICAiPFUwMDQ2PjxVMDA3 Mj48VTAwNjk+PFUwMDY0PjxVMDA2MT48VTAwNzk+IjsvCi0rICAgICAgICAgICAgIjxVMDA1Mz48 VTAwNjE+PFUwMDc0PjxVMDA3NT48VTAwNzI+PFUwMDY0PjxVMDA2MT48VTAwNzk+IgotKwotKyUg QWJicmV2aWF0ZWQgbW9udGggbmFtZXMgKCViKQotK2FibW9uICAgICAgICI8VTAwNEE+PFUwMDYx PjxVMDA2RT4iOyI8VTAwNDY+PFUwMDY1PjxVMDA2Mj4iOy8KLSsgICAgICAgICAgICAiPFUwMDRE PjxVMDA2MT48VTAwNzI+IjsiPFUwMDQxPjxVMDA3MD48VTAwNzI+IjsvCi0rICAgICAgICAgICAg IjxVMDA0RD48VTAwNjE+PFUwMDc5PiI7IjxVMDA0QT48VTAwNzU+PFUwMDZFPiI7LwotKyAgICAg ICAgICAgICI8VTAwNEE+PFUwMDc1PjxVMDA2Qz4iOyI8VTAwNDE+PFUwMDc1PjxVMDA2Nz4iOy8K LSsgICAgICAgICAgICAiPFUwMDUzPjxVMDA2NT48VTAwNzA+IjsiPFUwMDRGPjxVMDA2Mz48VTAw NzQ+IjsvCi0rICAgICAgICAgICAgIjxVMDA0RT48VTAwNkY+PFUwMDc2PiI7IjxVMDA0ND48VTAw NjU+PFUwMDYzPiIKLSsKLSslIEZ1bGwgbW9udGggbmFtZXMgKCVCKQotK21vbiAgICAgICAgICI8 VTAwNEE+PFUwMDYxPjxVMDA2RT48VTAwNzU+PFUwMDYxPjxVMDA3Mj48VTAwNzk+IjsvCi0rICAg ICAgICAgICAgIjxVMDA0Nj48VTAwNjU+PFUwMDYyPjxVMDA3Mj48VTAwNzU+PFUwMDYxPjxVMDA3 Mj48VTAwNzk+IjsvCi0rICAgICAgICAgICAgIjxVMDA0RD48VTAwNjE+PFUwMDcyPjxVMDA2Mz48 VTAwNjg+IjsvCi0rICAgICAgICAgICAgIjxVMDA0MT48VTAwNzA+PFUwMDcyPjxVMDA2OT48VTAw NkM+IjsvCi0rICAgICAgICAgICAgIjxVMDA0RD48VTAwNjE+PFUwMDc5PiI7LwotKyAgICAgICAg ICAgICI8VTAwNEE+PFUwMDc1PjxVMDA2RT48VTAwNjU+IjsvCi0rICAgICAgICAgICAgIjxVMDA0 QT48VTAwNzU+PFUwMDZDPjxVMDA3OT4iOy8KLSsgICAgICAgICAgICAiPFUwMDQxPjxVMDA3NT48 VTAwNjc+PFUwMDc1PjxVMDA3Mz48VTAwNzQ+IjsvCi0rICAgICAgICAgICAgIjxVMDA1Mz48VTAw NjU+PFUwMDcwPjxVMDA3ND48VTAwNjU+PFUwMDZEPjxVMDA2Mj48VTAwNjU+PFUwMDcyPiI7Lwot KyAgICAgICAgICAgICI8VTAwNEY+PFUwMDYzPjxVMDA3ND48VTAwNkY+PFUwMDYyPjxVMDA2NT48 VTAwNzI+IjsvCi0rICAgICAgICAgICAgIjxVMDA0RT48VTAwNkY+PFUwMDc2PjxVMDA2NT48VTAw NkQ+PFUwMDYyPjxVMDA2NT48VTAwNzI+IjsvCi0rICAgICAgICAgICAgIjxVMDA0ND48VTAwNjU+ PFUwMDYzPjxVMDA2NT48VTAwNkQ+PFUwMDYyPjxVMDA2NT48VTAwNzI+IgotKwotKyUgV2VlayBk ZXNjcmlwdGlvbiwgY29uc2lzdHMgb2YgdGhyZWUgZmllbGRzOgotKyUgMS4gTnVtYmVyIG9mIGRh eXMgaW4gYSB3ZWVrLgotKyUgMi4gR3JlZ29yaWFuIGRhdGUgdGhhdCBpcyBhIGZpcnN0IHdlZWtk YXkgKDE5OTcxMTMwIGZvciBTdW5kYXksIDE5OTcxMjAxIGZvciBNb25kYXkpLgotKyUgMy4gVGhl IHdlZWtkYXkgbnVtYmVyIHRvIGJlIGNvbnRhaW5lZCBpbiB0aGUgZmlyc3Qgd2VlayBvZiB0aGUg eWVhci4KLSslCi0rJSBJU08gODYwMSBjb25mb3JtaW5nIGFwcGxpY2F0aW9ucyBzaG91bGQgdXNl IHRoZSB2YWx1ZXMgNywgMTk5NzEyMDEgKGEKLSslIE1vbmRheSksIGFuZCA0IChUaHVyc2RheSks IHJlc3BlY3RpdmVseS4KLSt3ZWVrICAgIDc7MTk5NzEyMDE7NAotK2ZpcnN0X3dlZWtkYXkJMQot K2ZpcnN0X3dvcmtkYXkJMQotKwotKyUgQXBwcm9wcmlhdGUgZGF0ZSBhbmQgdGltZSByZXByZXNl bnRhdGlvbiAoJWMpCi0rJQkiJWEgJWIgJWUgJUg6JU06JVMgJVkiCi0rZF90X2ZtdCAiPFUwMDI1 PjxVMDA2MT48VTAwMjA+PFUwMDI1PjxVMDA2Mj48VTAwMjA+PFUwMDI1PjxVMDA2NT48VTAwMjA+ PFUwMDI1PjxVMDA0OD48VTAwM0E+PFUwMDI1PjxVMDA0RD48VTAwM0E+PFUwMDI1PjxVMDA1Mz48 VTAwMjA+PFUwMDI1PjxVMDA1OT4iCi0rCi0rJSBBcHByb3ByaWF0ZSBkYXRlIHJlcHJlc2VudGF0 aW9uICgleCkKLSslCSIlbS8lZC8leSIKLStkX2ZtdCAgICI8VTAwMjU+PFUwMDZEPjxVMDAyRj48 VTAwMjU+PFUwMDY0PjxVMDAyRj48VTAwMjU+PFUwMDc5PiIKLSsKLSslIEFwcHJvcHJpYXRlIHRp bWUgcmVwcmVzZW50YXRpb24gKCVYKQotKyUJIiVIOiVNOiVTIgotK3RfZm10ICAgIjxVMDAyNT48 VTAwNDg+PFUwMDNBPjxVMDAyNT48VTAwNEQ+PFUwMDNBPjxVMDAyNT48VTAwNTM+IgotKwotKyUg QXBwcm9wcmlhdGUgQU0vUE0gdGltZSByZXByZXNlbnRhdGlvbiAoJXIpCi0rJQkiJUk6JU06JVMg JXAiCi0rdF9mbXRfYW1wbSAiPFUwMDI1PjxVMDA0OT48VTAwM0E+PFUwMDI1PjxVMDA0RD48VTAw M0E+PFUwMDI1PjxVMDA1Mz48VTAwMjA+PFUwMDI1PjxVMDA3MD4iCi0rCi0rJSBFcXVpdmFsZW50 IG9mIEFNL1BNICglcCkgICAgICAiQU0iLyJQTSIKLSslCi0rYW1fcG0JIjxVMDA0MT48VTAwNEQ+ IjsiPFUwMDUwPjxVMDA0RD4iCi0rCi0rJSBBcHByb3ByaWF0ZSBkYXRlIHJlcHJlc2VudGF0aW9u IChkYXRlKDEpKSAgICIlYSAlYiAlZSAlSDolTTolUyAlWiAlWSIKLStkYXRlX2ZtdAkiPFUwMDI1 PjxVMDA2MT48VTAwMjA+PFUwMDI1PjxVMDA2Mj48VTAwMjA+PFUwMDI1PjxVMDA2NT48VTAwMjA+ PFUwMDI1PjxVMDA0OD48VTAwM0E+PFUwMDI1PjxVMDA0RD48VTAwM0E+PFUwMDI1PjxVMDA1Mz48 VTAwMjA+PFUwMDI1PjxVMDA1QT48VTAwMjA+PFUwMDI1PjxVMDA1OT4iCi0rRU5EIExDX1RJTUUK LSsKLStMQ19NRVNTQUdFUwotKyUgVGhpcyBpcyB0aGUgUE9TSVggTG9jYWxlIGRlZmluaXRpb24g Zm9yCi0rJSB0aGUgTENfTlVNRVJJQyBjYXRlZ29yeS4KLSslCi0reWVzZXhwciAiPFUwMDVFPjxV MDA1Qj48VTAwNzk+PFUwMDU5PjxVMDA1RD4iCi0rbm9leHByICAiPFUwMDVFPjxVMDA1Qj48VTAw NkU+PFUwMDRFPjxVMDA1RD4iCi0reWVzc3RyICAiPFUwMDU5PjxVMDA2NT48VTAwNzM+IgotK25v c3RyICAgIjxVMDA0RT48VTAwNkY+IgotK0VORCBMQ19NRVNTQUdFUwotKwotK0xDX1BBUEVSCi0r JSBUaGlzIGlzIHRoZSBJU08vSUVDIDE0NjUyICJpMThuIiBkZWZpbml0aW9uIGZvcgotKyUgdGhl IExDX1BBUEVSIGNhdGVnb3J5LgotKyUgKEE0IHBhcGVyLCB0aGlzIGlzIGFsc28gdXNlZCBpbiB0 aGUgYnVpbHQgaW4gQy9QT1NJWAotKyUgbG9jYWxlIGluIGdsaWJjL2xvY2FsZS9DLXBhcGVyLmMp Ci0raGVpZ2h0ICAgMjk3Ci0rd2lkdGggICAgMjEwCi0rRU5EIExDX1BBUEVSCi0rCi0rTENfTkFN RQotKyUgVGhpcyBpcyB0aGUgSVNPL0lFQyAxNDY1MiAiaTE4biIgZGVmaW5pdGlvbiBmb3IKLSsl IHRoZSBMQ19OQU1FIGNhdGVnb3J5LgotKyUgIiVwJXQlZyV0JW0ldCVmIgotKyUgKGFsc28gdXNl ZCBpbiB0aGUgYnVpbHQgaW4gQy9QT1NJWCBsb2NhbGUgaW4gZ2xpYmMvbG9jYWxlL0MtbmFtZS5j KQotK25hbWVfZm10ICAgICI8VTAwMjU+PFUwMDcwPjxVMDAyNT48VTAwNzQ+PFUwMDI1PjxVMDA2 Nz48VTAwMjU+PFUwMDc0Pi8KLSs8VTAwMjU+PFUwMDZEPjxVMDAyNT48VTAwNzQ+PFUwMDI1PjxV MDA2Nj4iCi0rRU5EIExDX05BTUUKLSsKLStMQ19BRERSRVNTCi0rJSBUaGlzIGlzIHRoZSBJU08v SUVDIDE0NjUyICJpMThuIiBkZWZpbml0aW9uIGZvcgotKyUgdGhlIExDX0FERFJFU1MgY2F0ZWdv cnkuCi0rJSAiJWElTiVmJU4lZCVOJWIlTiVzICVoICVlICVyJU4lQy0leiAlVCVOJWMlTiIKLSsl IChhbHNvIHVzZWQgaW4gdGhlIGJ1aWx0IGluIEMvUE9TSVggbG9jYWxlIGluIGdsaWJjL2xvY2Fs ZS9DLWFkZHJlc3MuYykKLStwb3N0YWxfZm10ICAgICI8VTAwMjU+PFUwMDYxPjxVMDAyNT48VTAw NEU+PFUwMDI1PjxVMDA2Nj48VTAwMjU+PFUwMDRFPi8KLSs8VTAwMjU+PFUwMDY0PjxVMDAyNT48 VTAwNEU+PFUwMDI1PjxVMDA2Mj48VTAwMjU+PFUwMDRFPjxVMDAyNT48VTAwNzM+LwotKzxVMDAy MD48VTAwMjU+PFUwMDY4PjxVMDAyMD48VTAwMjU+PFUwMDY1PjxVMDAyMD48VTAwMjU+PFUwMDcy PjxVMDAyNT4vCi0rPFUwMDRFPjxVMDAyNT48VTAwNDM+PFUwMDJEPjxVMDAyNT48VTAwN0E+PFUw MDIwPjxVMDAyNT48VTAwNTQ+PFUwMDI1Pi8KLSs8VTAwNEU+PFUwMDI1PjxVMDA2Mz48VTAwMjU+ PFUwMDRFPiIKLStFTkQgTENfQUREUkVTUwotKwotK0xDX1RFTEVQSE9ORQotKyUgVGhpcyBpcyB0 aGUgSVNPL0lFQyAxNDY1MiAiaTE4biIgZGVmaW5pdGlvbiBmb3IKLSslIHRoZSBMQ19URUxFUEhP TkUgY2F0ZWdvcnkuCi0rJSAiKyVjICVhICVsIgotK3RlbF9pbnRfZm10ICAgICI8VTAwMkI+PFUw MDI1PjxVMDA2Mz48VTAwMjA+PFUwMDI1PjxVMDA2MT48VTAwMjA+PFUwMDI1Pi8KLSs8VTAwNkM+ IgotKyUgKGFsc28gdXNlZCBpbiB0aGUgYnVpbHQgaW4gQy9QT1NJWCBsb2NhbGUgaW4gZ2xpYmMv bG9jYWxlL0MtdGVsZXBob25lLmMpCi0rRU5EIExDX1RFTEVQSE9ORQotKwotK0xDX01FQVNVUkVN RU5UCi0rJSBUaGlzIGlzIHRoZSBJU08vSUVDIDE0NjUyICJpMThuIiBkZWZpbml0aW9uIGZvcgot KyUgdGhlIExDX01FQVNVUkVNRU5UIGNhdGVnb3J5LgotKyUgKHNhbWUgYXMgaW4gdGhlIGJ1aWx0 IGluIEMvUE9TSVggbG9jYWxlIGluIGdsaWJjL2xvY2FsZS9DLW1lYXN1cmVtZW50LmMpCi0rJW1l dHJpYwotK21lYXN1cmVtZW50ICAgIDEKLStFTkQgTENfTUVBU1VSRU1FTlQKLSsKLS0tIAotMi40 LjMKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbGliYy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ2xpYmMv dGVtcGxhdGUKaW5kZXggYzYyYTRkMmFlZGYxLi4wMTBiNjhkODg2YWYgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvZ2xpYmMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbGliYy90ZW1wbGF0ZQpAQCAtMSwx NCArMSwxOCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ2xpYmMnCisjCisjIFRoZSBsYXRlc3Qg Z2xpYmMgcGF0Y2hlcyBjYW4gYmUgb2J0YWluZWQgZnJvbSB0aGUgcmVsZWFzZSBicmFuY2ggdXNp bmc6CisjIGdpdCBmb3JtYXQtcGF0Y2ggJChnaXQgZGVzY3JpYmUgLS1hYmJyZXY9MCAtLW1hdGNo ICdnbGliYy0qJykgLS1zdGRvdXQgPiBnaXQtdXBkYXRlcy5wYXRjaAorIwogcGtnbmFtZT1nbGli YwotdmVyc2lvbj0yLjMyCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTIuMzYKK3JldmlzaW9uPTEKIGJv b3RzdHJhcD15ZXMKIHNob3J0X2Rlc2M9IkdOVSBDIGxpYnJhcnkiCiBtYWludGFpbmVyPSJFbm5v IEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRl ciwgTEdQTC0yLjEtb3ItbGF0ZXIsIEJTRC0zLUNsYXVzZSIKIGhvbWVwYWdlPSJodHRwOi8vd3d3 LmdudS5vcmcvc29mdHdhcmUvbGliYyIKIGRpc3RmaWxlcz0iJHtHTlVfU0lURX0vZ2xpYmMvZ2xp YmMtJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0xNjI3ZWE1NGY1YTFhODQ2NzAzMjU2MzM5 M2UwOTAxMDc3NjI2ZGM2NmYzN2YxMGVlNjM2M2JiNzIyMjIyODM2CitjaGVja3N1bT0xYzk1OWZl YTI0MDkwNjIyNjA2MmNiNGIxZTdlYmNlNzFhOWYwZTNjMDgzNmMwOWU3ZTM0MjNkNDM0ZmNmZTc1 CiAjIERvIG5vdCBzdHJpcCB0aGVzZSBmaWxlcywgb2JqY29weSBlcnJvcnMgb3V0Lgogbm9zdHJp cF9maWxlcz0iCiAJWEJTNV9JTFAzMl9PRkZCSUcKQEAgLTIwLDI3ICsyNCwyOCBAQCBub3N0cmlw X2ZpbGVzPSIKIAlQT1NJWF9WNl9MUDY0X09GRjY0CiAJUE9TSVhfVjdfTFA2NF9PRkY2NAogCVhC UzVfTFA2NF9PRkY2NAotCWxkLSR7dmVyc2lvbn0uc28KLQlsaWJkbC0ke3ZlcnNpb259LnNvCi0J bGliYW5sLSR7dmVyc2lvbn0uc28KLQlsaWJjaWRuLSR7dmVyc2lvbn0uc28KLQlsaWJyZXNvbHYt JHt2ZXJzaW9ufS5zbwotCWxpYmNyeXB0LSR7dmVyc2lvbn0uc28KLQlsaWJwdGhyZWFkLSR7dmVy c2lvbn0uc28KLQlsaWJtLSR7dmVyc2lvbn0uc28KLQlsaWJ1dGlsLSR7dmVyc2lvbn0uc28KLQls aWJ0aHJlYWRfZGItMS4wLnNvCi0JbGlicnQtJHt2ZXJzaW9ufS5zbwotCWxpYm5zbC0ke3ZlcnNp b259LnNvCi0JbGliYy0ke3ZlcnNpb259LnNvCi0JbGliQnJva2VuTG9jYWxlLSR7dmVyc2lvbn0u c28KLQlsaWJuc3NfY29tcGF0LSR7dmVyc2lvbn0uc28KLQlsaWJuc3NfZGItJHt2ZXJzaW9ufS5z bwotCWxpYm5zc19kbnMtJHt2ZXJzaW9ufS5zbwotCWxpYm5zc19maWxlcy0ke3ZlcnNpb259LnNv Ci0JbGlibnNzX2hlc2lvZC0ke3ZlcnNpb259LnNvCi0JbGlibnNzX25pc3BsdXMtJHt2ZXJzaW9u fS5zbwotCWxpYm5zc19uaXMtJHt2ZXJzaW9ufS5zbyIKKwlsZC1saW51eC14ODYtNjQuc28uMgor CWxkLWxpbnV4LnNvLjIKKwlsZC1saW51eC5zby4zCisJbGQtbGludXgtYWFyY2g2NC5zby4xCisJ bGQ2NC5zby4yCisJbGQuc28uMQorCWxkLWxpbnV4LWFybWhmLnNvLjMKKwlsaWJyZXNvbHYuc28u MgorCWxpYmNyeXB0LnNvLjEKKwlsaWJtLnNvLjYKKwlsaWJ0aHJlYWRfZGIuc28uMQorCWxpYm5z bC5zby4xCisJbGliYy5zby42CisJbGliY19tYWxsb2NfZGVidWcuc28uMAorCWxpYm1lbXVzYWdl LnNvCisJbGlibXZlYy5zby4xCisJbGliQnJva2VuTG9jYWxlLnNvLjEKKwlsaWJuc3NfY29tcGF0 LnNvLjIKKwlsaWJuc3NfZGIuc28uMgorCWxpYm5zc19kbnMuc28uMgorCWxpYm5zc19maWxlcy5z by4yCisJbGlibnNzX2hlc2lvZC5zby4yIgogCiBjb25mX2ZpbGVzPSIKIAkvZXRjL3JwYwpAQCAt NTQsNyArNTksNiBAQCBsaWIzMmZpbGVzPSIvdXNyL2xpYi9nY29udi9nY29udi1tb2R1bGVzIgog bGliMzJzeW1saW5rcz0ibGQtbGludXguc28uMiIKICMgVGhlcmUncyBubyBwb2ludCBpbiBidWls ZGluZyB0aGlzIGZvciBtdXNsLgogYXJjaHM9In4qLW11c2wiCi1ub3BpZT15ZXMKIAogZG9fY29u ZmlndXJlKCkgewogCW1rZGlyIGJ1aWxkCkBAIC0xNjMsMTggKzE2Nyw2IEBAIGRvX2luc3RhbGwo KSB7CiAJcm0gLWYgJHtERVNURElSfS91c3IvYmluL3p7ZHVtcCxpY30KIAogCW12ICR7REVTVERJ Un0vdXNyL3NiaW4vKiAke0RFU1RESVJ9L3Vzci9iaW4KLQotCSMgQ3JlYXRlIHhicHMuZCg1KSBh cmNoIG92ZXJyaWRlIGZpbGUgZm9yIDMyLWJpdCBhcmNoaXRlY3R1cmVzCi0JIyAzMi1iaXQgdXNl cmxhbmRzIG1heSBiZSB1c2VkIHdpdGggNjQtYml0IGtlcm5lbHMgYW5kIHRoZW4KLQkjIHhicHMg d2lsbCByZXBvcnQgYW4gaW5jb3JyZWN0IGFyY2hpdGVjdHVyZSBieSBkZWZhdWx0Ci0JY2FzZSAi JFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCi0JCWk2ODZ8cHBjfHBwY2xlfGFybXYqKQotCQkJdm1r ZGlyIHVzci9zaGFyZS94YnBzLmQKLQkJCWVjaG8gImFyY2hpdGVjdHVyZT0ke1hCUFNfVEFSR0VU X01BQ0hJTkV9IiA+IFwKLQkJCQkke0RFU1RESVJ9L3Vzci9zaGFyZS94YnBzLmQvYXJjaC0zMmJp dC5jb25mCi0JCQk7OwotCQkqKSA7OwotCWVzYWMKIH0KIAogZ2xpYmMtZGV2ZWxfcGFja2FnZSgp IHsKCkZyb20gYTdhNzNiZjA3M2Y1ZTlkYzY3NDFhMzFmY2Y1NTA0ZGVkMTJmYTFlNiBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogb3JlbzYzOSA8b3JlbzYzOTFAZ21haWwuY29tPgpEYXRl OiBTYXQsIDUgTm92IDIwMjIgMTE6MzM6MTIgLTA3MDAKU3ViamVjdDogW1BBVENIIDA3LzM3XSBt dXNsOiBhZGQgc3VwcG9ydCBmb3IgU0lHRVZfVEhSRUFEX0lEIHRpbWVycwoKaHR0cHM6Ly9naXQu bXVzbC1saWJjLm9yZy9jZ2l0L211c2wvY29tbWl0Lz9pZD03YzcxNzkyZTg3NjkxNDUxZjJhNmI3 NjM0OGU4M2FkMTg4OWYxZGNiCi0tLQogLi4uZC1zdXBwb3J0LWZvci1TSUdFVl9USFJFQURfSUQt dGltZXJzLnBhdGNoIHwgNzQgKysrKysrKysrKysrKysrKysrKwogc3JjcGtncy9tdXNsL3RlbXBs YXRlICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIDIgZmlsZXMgY2hhbmdlZCwgNzUg aW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv bXVzbC9wYXRjaGVzL2FkZC1zdXBwb3J0LWZvci1TSUdFVl9USFJFQURfSUQtdGltZXJzLnBhdGNo CgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvYWRkLXN1cHBvcnQtZm9yLVNJR0VW X1RIUkVBRF9JRC10aW1lcnMucGF0Y2ggYi9zcmNwa2dzL211c2wvcGF0Y2hlcy9hZGQtc3VwcG9y dC1mb3ItU0lHRVZfVEhSRUFEX0lELXRpbWVycy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMDAuLmUyMGRmZjViYTBkNAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3MvbXVzbC9wYXRjaGVzL2FkZC1zdXBwb3J0LWZvci1TSUdFVl9USFJFQURfSUQtdGltZXJzLnBh dGNoCkBAIC0wLDAgKzEsNzQgQEAKK0Zyb20gN2M3MTc5MmU4NzY5MTQ1MWYyYTZiNzYzNDhlODNh ZDE4ODlmMWRjYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEphbWVzIFkgS25pZ2h0 IDxqeWtuaWdodEBnb29nbGUuY29tPgorRGF0ZTogU3VuLCAzMCBKdW4gMjAxOSAyMTo1NToyMCAt MDQwMAorU3ViamVjdDogW1BBVENIXSBhZGQgc3VwcG9ydCBmb3IgU0lHRVZfVEhSRUFEX0lEIHRp bWVycworCitUaGlzIGlzIGxpa2UgU0lHRVZfU0lHTkFMLCBidXQgdGFyZ2V0ZWQgdG8gYSBwYXJ0 aWN1bGFyIHRocmVhZCdzCit0aWQsIHJhdGhlciB0aGFuIHRoZSBwcm9jZXNzLgorLS0tCisgaW5j bHVkZS9zaWduYWwuaCAgICAgICAgfCAxNiArKysrKysrKysrKysrLS0tCisgc3JjL3RpbWUvdGlt ZXJfY3JlYXRlLmMgfCAgOCArKysrKystLQorIDIgZmlsZXMgY2hhbmdlZCwgMTkgaW5zZXJ0aW9u cygrKSwgNSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2luY2x1ZGUvc2lnbmFsLmggYi9p bmNsdWRlL3NpZ25hbC5oCitpbmRleCBmYmRmNjY3YjIuLjllZDkyOWU0ZiAxMDA2NDQKKy0tLSBh L2luY2x1ZGUvc2lnbmFsLmgKKysrKyBiL2luY2x1ZGUvc2lnbmFsLmgKK0BAIC0xODAsMTQgKzE4 MCwyNCBAQCBzdHJ1Y3Qgc2lnZXZlbnQgeworIAl1bmlvbiBzaWd2YWwgc2lnZXZfdmFsdWU7Cisg CWludCBzaWdldl9zaWdubzsKKyAJaW50IHNpZ2V2X25vdGlmeTsKKy0Jdm9pZCAoKnNpZ2V2X25v dGlmeV9mdW5jdGlvbikodW5pb24gc2lndmFsKTsKKy0JcHRocmVhZF9hdHRyX3QgKnNpZ2V2X25v dGlmeV9hdHRyaWJ1dGVzOworLQljaGFyIF9fcGFkWzU2LTMqc2l6ZW9mKGxvbmcpXTsKKysJdW5p b24geworKwkJY2hhciBfX3BhZFs2NCAtIDIqc2l6ZW9mKGludCkgLSBzaXplb2YodW5pb24gc2ln dmFsKV07CisrCQlwaWRfdCBzaWdldl9ub3RpZnlfdGhyZWFkX2lkOworKwkJc3RydWN0IHsKKysJ CQl2b2lkICgqc2lnZXZfbm90aWZ5X2Z1bmN0aW9uKSh1bmlvbiBzaWd2YWwpOworKwkJCXB0aHJl YWRfYXR0cl90ICpzaWdldl9ub3RpZnlfYXR0cmlidXRlczsKKysJCX0gX19zZXZfdGhyZWFkOwor Kwl9IF9fc2V2X2ZpZWxkczsKKyB9OworIAorKyNkZWZpbmUgc2lnZXZfbm90aWZ5X3RocmVhZF9p ZCBfX3Nldl9maWVsZHMuc2lnZXZfbm90aWZ5X3RocmVhZF9pZAorKyNkZWZpbmUgc2lnZXZfbm90 aWZ5X2Z1bmN0aW9uIF9fc2V2X2ZpZWxkcy5fX3Nldl90aHJlYWQuc2lnZXZfbm90aWZ5X2Z1bmN0 aW9uCisrI2RlZmluZSBzaWdldl9ub3RpZnlfYXR0cmlidXRlcyBfX3Nldl9maWVsZHMuX19zZXZf dGhyZWFkLnNpZ2V2X25vdGlmeV9hdHRyaWJ1dGVzCisrCisgI2RlZmluZSBTSUdFVl9TSUdOQUwg MAorICNkZWZpbmUgU0lHRVZfTk9ORSAxCisgI2RlZmluZSBTSUdFVl9USFJFQUQgMgorKyNkZWZp bmUgU0lHRVZfVEhSRUFEX0lEIDQKKyAKKyBpbnQgX19saWJjX2N1cnJlbnRfc2lncnRtaW4odm9p ZCk7CisgaW50IF9fbGliY19jdXJyZW50X3NpZ3J0bWF4KHZvaWQpOworZGlmZiAtLWdpdCBhL3Ny Yy90aW1lL3RpbWVyX2NyZWF0ZS5jIGIvc3JjL3RpbWUvdGltZXJfY3JlYXRlLmMKK2luZGV4IDVk ZGZkYTI3OC4uNGJlZjIzOTA1IDEwMDY0NAorLS0tIGEvc3JjL3RpbWUvdGltZXJfY3JlYXRlLmMK KysrKyBiL3NyYy90aW1lL3RpbWVyX2NyZWF0ZS5jCitAQCAtNzEsMTEgKzcxLDE1IEBAIGludCB0 aW1lcl9jcmVhdGUoY2xvY2tpZF90IGNsaywgc3RydWN0IHNpZ2V2ZW50ICpyZXN0cmljdCBldnAs IHRpbWVyX3QgKnJlc3RyaWN0CisgCXN3aXRjaCAoZXZwID8gZXZwLT5zaWdldl9ub3RpZnkgOiBT SUdFVl9TSUdOQUwpIHsKKyAJY2FzZSBTSUdFVl9OT05FOgorIAljYXNlIFNJR0VWX1NJR05BTDoK KysJY2FzZSBTSUdFVl9USFJFQURfSUQ6CisgCQlpZiAoZXZwKSB7CisgCQkJa3Nldi5zaWdldl92 YWx1ZSA9IGV2cC0+c2lnZXZfdmFsdWU7CisgCQkJa3Nldi5zaWdldl9zaWdubyA9IGV2cC0+c2ln ZXZfc2lnbm87CisgCQkJa3Nldi5zaWdldl9ub3RpZnkgPSBldnAtPnNpZ2V2X25vdGlmeTsKKy0J CQlrc2V2LnNpZ2V2X3RpZCA9IDA7CisrCQkJaWYgKGV2cC0+c2lnZXZfbm90aWZ5ID09IFNJR0VW X1RIUkVBRF9JRCkKKysJCQkJa3Nldi5zaWdldl90aWQgPSBldnAtPnNpZ2V2X25vdGlmeV90aHJl YWRfaWQ7CisrCQkJZWxzZQorKwkJCQlrc2V2LnNpZ2V2X3RpZCA9IDA7CisgCQkJa3NldnAgPSAm a3NldjsKKyAJCX0KKyAJCWlmIChzeXNjYWxsKFNZU190aW1lcl9jcmVhdGUsIGNsaywga3NldnAs ICZ0aW1lcmlkKSA8IDApCitAQCAtMTA3LDcgKzExMSw3IEBAIGludCB0aW1lcl9jcmVhdGUoY2xv Y2tpZF90IGNsaywgc3RydWN0IHNpZ2V2ZW50ICpyZXN0cmljdCBldnAsIHRpbWVyX3QgKnJlc3Ry aWN0CisgCisgCQlrc2V2LnNpZ2V2X3ZhbHVlLnNpdmFsX3B0ciA9IDA7CisgCQlrc2V2LnNpZ2V2 X3NpZ25vID0gU0lHVElNRVI7CistCQlrc2V2LnNpZ2V2X25vdGlmeSA9IDQ7IC8qIFNJR0VWX1RI UkVBRF9JRCAqLworKwkJa3Nldi5zaWdldl9ub3RpZnkgPSBTSUdFVl9USFJFQURfSUQ7CisgCQlr c2V2LnNpZ2V2X3RpZCA9IHRkLT50aWQ7CisgCQlpZiAoc3lzY2FsbChTWVNfdGltZXJfY3JlYXRl LCBjbGssICZrc2V2LCAmdGltZXJpZCkgPCAwKQorIAkJCXRpbWVyaWQgPSAtMTsKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvbXVzbC90ZW1wbGF0ZSBiL3NyY3BrZ3MvbXVzbC90ZW1wbGF0ZQppbmRleCAz NGU2ZWQ0ZmJhNmUuLmFmYjMzY2Q4NjhiNSAxMDA2NDQKLS0tIGEvc3JjcGtncy9tdXNsL3RlbXBs YXRlCisrKyBiL3NyY3BrZ3MvbXVzbC90ZW1wbGF0ZQpAQCAtMiw3ICsyLDcgQEAKIHBrZ25hbWU9 bXVzbAogcmV2ZXJ0cz0iMS4yLjBfMSIKIHZlcnNpb249MS4xLjI0Ci1yZXZpc2lvbj0xMQorcmV2 aXNpb249MTIKIGFyY2hzPSIqLW11c2wiCiBib290c3RyYXA9eWVzCiBidWlsZF9zdHlsZT1nbnUt Y29uZmlndXJlCgpGcm9tIDk1MmY4MDRiZWVhMzI5ZTg4YjMwNjdiNjY3OTg2MGUzNTQzZDAxZTIg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IG9yZW82MzkgPG9yZW82MzkxQGdtYWlsLmNv bT4KRGF0ZTogU2F0LCA1IE5vdiAyMDIyIDExOjMzOjEyIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAw OC8zN10gZ2NjLW11bHRpbGliOiB1cGRhdGUgdG8gMTIuMi4wLgoKLS0tCiBzcmNwa2dzL2djYy1t dWx0aWxpYi90ZW1wbGF0ZSB8IDEyICsrKysrKy0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5z ZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2djYy1tdWx0 aWxpYi90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ2NjLW11bHRpbGliL3RlbXBsYXRlCmluZGV4IGYyOGVi MjM3YzI4Ny4uYmE5YmFmY2FkZmQ2IDEwMDY0NAotLS0gYS9zcmNwa2dzL2djYy1tdWx0aWxpYi90 ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2djYy1tdWx0aWxpYi90ZW1wbGF0ZQpAQCAtMywxNSArMywx NSBAQCBhcmNocz0ieDg2XzY0IgogX3RyaXBsZXQ9Ing4Nl82NC11bmtub3duLWxpbnV4LWdudSIK IAogcGtnbmFtZT1nY2MtbXVsdGlsaWIKLXZlcnNpb249MTAuMi4xcHJlMQordmVyc2lvbj0xMi4y LjAKIHJldmlzaW9uPTEKIF9tYWpvcnZlcj0iJHt2ZXJzaW9uJS4qfSIKIHNob3J0X2Rlc2M9IkdO VSBDb21waWxlciBDb2xsZWN0aW9uIChtdWx0aWxpYiBmaWxlcykiCiBtYWludGFpbmVyPSJPcnBo YW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgogaG9tZXBhZ2U9Imh0dHA6Ly9nY2MuZ251Lm9y ZyIKIGxpY2Vuc2U9IkdGREwtMS4yLW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVyLCBMR1BMLTIu MS1vci1sYXRlciIKLWRpc3RmaWxlcz0iaHR0cHM6Ly9kZXYuYWxwaW5lbGludXgub3JnL35uZW5v bG9kL2djYy0ke3ZlcnNpb24vcHJlL19wcmV9LnRhci54eiIKLWNoZWNrc3VtPTc3MmNmZDVkMzBl YjljYzVhOTk2ZmVjOWJhOGNkY2I0NWQzN2RmMWM5YjU3NzA2MTAxMDNiODE0YjczMmM1OTAKK2Rp c3RmaWxlcz0iJHtHTlVfU0lURX0vZ2NjL2djYy0ke3ZlcnNpb259L2djYy0ke3ZlcnNpb259LnRh ci54eiIKK2NoZWNrc3VtPWU1NDljZjljZjM1OTRhMDBlMjdiNjU4OWQ0MzIyZDcwZTA3MjBjZGQy MTNmMzliZWI0MTgxZTA2OTI2MjMwZmYKIAogaG9zdG1ha2VkZXBlbmRzPSJwZXJsIGZsZXggdGFy IHppcCB1bnppcCIKIG1ha2VkZXBlbmRzPSJ6bGliLWRldmVsIGxpYm1wYy1kZXZlbCBpc2wxNS1k ZXZlbCBsaWJmbC1kZXZlbApAQCAtNzAsNyArNzAsNyBAQCBkb19idWlsZCgpIHsKIAltYWtlICR7 bWFrZWpvYnN9CiB9CiBkb19pbnN0YWxsKCkgewotCWxvY2FsIF9wY190cmlwbGV0PXg4Nl82NC1w Yy1saW51eC1nbnUgX3ZlcnNpb249JHt2ZXJzaW9uJXByZTF9CisJbG9jYWwgX3BjX3RyaXBsZXQ9 eDg2XzY0LXBjLWxpbnV4LWdudQogCSMgSW5zdGFsbCB0byBhIHRlbXBkaXIgYW5kIHRoZW4gb25s eSBjb3B5IHJlbGV2YW50IGZpbGVzLgogCWNkICR7d3Jrc3JjfQogCW1ha2UgREVTVERJUj0ke3dy a3NyY30vJHtwa2duYW1lfS1idWlsZCBpbnN0YWxsCkBAIC04MCw5ICs4MCw5IEBAIGRvX2luc3Rh bGwoKSB7CiAJdm1rZGlyIHVzci9pbmNsdWRlL2MrKy8ke19tYWpvcnZlcn0vJHtfdHJpcGxldH0K IAl2bWtkaXIgdXNyL2xpYi9nY2MvJHtfdHJpcGxldH0vJHtfbWFqb3J2ZXJ9CiAKLQljcCAtYSAk e3dya3NyY30vJHtwa2duYW1lfS1idWlsZC91c3IvbGliL2djYy8ke19wY190cmlwbGV0fS8ke192 ZXJzaW9ufS8zMiBcCisJY3AgLWEgJHt3cmtzcmN9LyR7cGtnbmFtZX0tYnVpbGQvdXNyL2xpYi9n Y2MvJHtfcGNfdHJpcGxldH0vJHt2ZXJzaW9ufS8zMiBcCiAJCSR7REVTVERJUn0vdXNyL2xpYi9n Y2MvJHtfdHJpcGxldH0vJHtfbWFqb3J2ZXJ9LwotCWNwIC1hICR7d3Jrc3JjfS8ke3BrZ25hbWV9 LWJ1aWxkL3Vzci9pbmNsdWRlL2MrKy8ke192ZXJzaW9ufS8ke19wY190cmlwbGV0fS8zMiBcCisJ Y3AgLWEgJHt3cmtzcmN9LyR7cGtnbmFtZX0tYnVpbGQvdXNyL2luY2x1ZGUvYysrLyR7dmVyc2lv bn0vJHtfcGNfdHJpcGxldH0vMzIgXAogCQkke0RFU1RESVJ9L3Vzci9pbmNsdWRlL2MrKy8ke19t YWpvcnZlcn0vJHtfdHJpcGxldH0KIAogCXZpbnN0YWxsICR7d3Jrc3JjfS9ob3N0LSR7X3BjX3Ry aXBsZXR9L2djYy9zcGVjcyA2NDQgdXNyL2xpYi9nY2MvJHtfdHJpcGxldH0vJHtfbWFqb3J2ZXJ9 CgpGcm9tIDYyZmQ1ZGM3NjJlMjNlMWNjOWJjMzQzMzMzZTk0OTMyMDEyNmQyODkgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IG9yZW82MzkgPG9yZW82MzkxQGdtYWlsLmNvbT4KRGF0ZTog U2F0LCA1IE5vdiAyMDIyIDExOjMzOjEyIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwOS8zN10gbGli Z2Njaml0OiB1cGRhdGUgdG8gMTIuMi4wLgoKLS0tCiBzcmNwa2dzL2xpYmdjY2ppdC9maWxlcy9s aWJnY2NqaXQtbXVzbC5wYXRjaCB8IDYzIC0tLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmNwa2dzL2xp YmdjY2ppdC90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICB8IDI0ICsrKy0tLS0tCiAyIGZpbGVz IGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgNzggZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAx MDA2NDQgc3JjcGtncy9saWJnY2NqaXQvZmlsZXMvbGliZ2Njaml0LW11c2wucGF0Y2gKCmRpZmYg LS1naXQgYS9zcmNwa2dzL2xpYmdjY2ppdC9maWxlcy9saWJnY2NqaXQtbXVzbC5wYXRjaCBiL3Ny Y3BrZ3MvbGliZ2Njaml0L2ZpbGVzL2xpYmdjY2ppdC1tdXNsLnBhdGNoCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCBkMmVkMTY5MjhjODIuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dz L2xpYmdjY2ppdC9maWxlcy9saWJnY2NqaXQtbXVzbC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0x LDYzICswLDAgQEAKLWRpZmYgLS1naXQgYS9nY2Mvaml0L2ppdC1wbGF5YmFjay5jIGIvZ2NjL2pp dC9qaXQtcGxheWJhY2suYwotaW5kZXggNWJjY2Y1OTFhLi4zNWY1ZTM1ZWYgMTAwNjQ0Ci0tLS0g YS9nY2Mvaml0L2ppdC1wbGF5YmFjay5jCi0rKysgYi9nY2Mvaml0L2ppdC1wbGF5YmFjay5jCi1A QCAtMTgsNiArMTgsOCBAQCBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotIGFsb25nIHdpdGggR0NDOyBzZWUgdGhlIGZpbGUg Q09QWUlORzMuICBJZiBub3Qgc2VlCi0gPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAg Ki8KLSAKLSsjaW5jbHVkZSA8cHRocmVhZC5oPgotKwotICNpbmNsdWRlICJjb25maWcuaCIKLSAj aW5jbHVkZSAic3lzdGVtLmgiCi0gI2luY2x1ZGUgImNvcmV0eXBlcy5oIgotQEAgLTQxLDggKzQz LDYgQEAgYWxvbmcgd2l0aCBHQ0M7IHNlZSB0aGUgZmlsZSBDT1BZSU5HMy4gIElmIG5vdCBzZWUK LSAjaW5jbHVkZSAiZGlhZ25vc3RpYy5oIgotICNpbmNsdWRlICJzdG10LmgiCi0gCi0tI2luY2x1 ZGUgPHB0aHJlYWQuaD4KLS0KLSAjaW5jbHVkZSAiaml0LXBsYXliYWNrLmgiCi0gI2luY2x1ZGUg ImppdC1yZXN1bHQuaCIKLSAjaW5jbHVkZSAiaml0LWJ1aWx0aW5zLmgiCi1kaWZmIC0tZ2l0IGEv Z2NjL2ppdC9qaXQtcmVjb3JkaW5nLmMgYi9nY2Mvaml0L2ppdC1yZWNvcmRpbmcuYwotaW5kZXgg YTIzN2Q1NzRmLi41Nzg1ZTMyNjkgMTAwNjQ0Ci0tLS0gYS9nY2Mvaml0L2ppdC1yZWNvcmRpbmcu YwotKysrIGIvZ2NjL2ppdC9qaXQtcmVjb3JkaW5nLmMKLUBAIC0xOCw2ICsxOCw4IEBAIFlvdSBz aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlCi0gYWxvbmcgd2l0aCBHQ0M7IHNlZSB0aGUgZmlsZSBDT1BZSU5HMy4gIElmIG5vdCBzZWUK LSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLwotIAotKyNpbmNsdWRlIDxwdGhy ZWFkLmg+Ci0rCi0gI2luY2x1ZGUgImNvbmZpZy5oIgotICNpbmNsdWRlICJzeXN0ZW0uaCIKLSAj aW5jbHVkZSAiY29yZXR5cGVzLmgiCi1AQCAtMjUsOCArMjcsNiBAQCBhbG9uZyB3aXRoIEdDQzsg c2VlIHRoZSBmaWxlIENPUFlJTkczLiAgSWYgbm90IHNlZQotICNpbmNsdWRlICJwcmV0dHktcHJp bnQuaCIKLSAjaW5jbHVkZSAidG9wbGV2LmgiCi0gCi0tI2luY2x1ZGUgPHB0aHJlYWQuaD4KLS0K LSAjaW5jbHVkZSAiaml0LWJ1aWx0aW5zLmgiCi0gI2luY2x1ZGUgImppdC1yZWNvcmRpbmcuaCIK LSAjaW5jbHVkZSAiaml0LXBsYXliYWNrLmgiCi1kaWZmIC0tZ2l0IGEvZ2NjL2ppdC9saWJnY2Nq aXQuYyBiL2djYy9qaXQvbGliZ2Njaml0LmMKLWluZGV4IGY5YzMzYzYzYy4uNzVmMjFkMjc1IDEw MDY0NAotLS0tIGEvZ2NjL2ppdC9saWJnY2NqaXQuYwotKysrIGIvZ2NjL2ppdC9saWJnY2NqaXQu YwotQEAgLTE4LDEzICsxOCwxMyBAQCBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotIGFsb25nIHdpdGggR0NDOyBzZWUgdGhl IGZpbGUgQ09QWUlORzMuICBJZiBub3Qgc2VlCi0gPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNl cy8+LiAgKi8KLSAKLSsjaW5jbHVkZSA8cHRocmVhZC5oPgotICNpbmNsdWRlICJjb25maWcuaCIK LSAjaW5jbHVkZSAic3lzdGVtLmgiCi0gI2luY2x1ZGUgImNvcmV0eXBlcy5oIgotICNpbmNsdWRl ICJ0aW1ldmFyLmgiCi0gI2luY2x1ZGUgInR5cGVkLXNwbGF5LXRyZWUuaCIKLSAjaW5jbHVkZSAi Y3BwYnVpbHRpbi5oIgotLSNpbmNsdWRlIDxwdGhyZWFkLmg+Ci0gCi0gI2luY2x1ZGUgImxpYmdj Y2ppdC5oIgotICNpbmNsdWRlICJqaXQtcmVjb3JkaW5nLmgiCmRpZmYgLS1naXQgYS9zcmNwa2dz L2xpYmdjY2ppdC90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGliZ2Njaml0L3RlbXBsYXRlCmluZGV4IDBi MzdjM2VlOWY4Yi4uZmRlMWFmZmQ1NGI3IDEwMDY0NAotLS0gYS9zcmNwa2dzL2xpYmdjY2ppdC90 ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2xpYmdjY2ppdC90ZW1wbGF0ZQpAQCAtMywxOCArMywxMiBA QAogIyB3aGljaCB1c2UgdGhlIHZlcnNpb24gbnVtYmVyLgogCiBwa2duYW1lPWxpYmdjY2ppdAot IyB3ZSBhcmUgdXNpbmcgYSAxMC1zdGFibGUgZ2l0IHNuYXBzaG90IGFscGluZSBpcyB1c2luZyBp biBvcmRlcgotIyB0byBnZXQgcmVncmVzc2lvbiBmaXhlcyBub3QgeWV0IGluY29ycG9yYXRlIGlu dG8gYSBzdGFibGUgcmVsZWFzZQotIyBpdCBzaG91bGQgYmUgcG9zc2libGUgdG8gc3dpdGNoIGJh Y2sgdG8gc3RhYmxlIHdpdGggMTAuMyBvciAxMQotdmVyc2lvbj0xMC4yLjFwcmUxCit2ZXJzaW9u PTEyLjIuMAogcmV2aXNpb249MQotX3BhdGNodmVyPSIke3ZlcnNpb24lcHJlKn0iCi1fbWlub3J2 ZXI9IiR7X3BhdGNodmVyJS4qfSIKLV9tYWpvcnZlcj0iJHtfbWlub3J2ZXIlLip9IgotX2dtcF92 ZXJzaW9uPTYuMi4wCitfZ21wX3ZlcnNpb249Ni4yLjEKIF9tcGZyX3ZlcnNpb249NC4xLjAKLV9t cGNfdmVyc2lvbj0xLjEuMAotX2lzbF92ZXJzaW9uPTAuMjEKK19tcGNfdmVyc2lvbj0xLjIuMQor X2lzbF92ZXJzaW9uPTAuMjQKIGNyZWF0ZV93cmtzcmM9eWVzCiBzaG9ydF9kZXNjPSJKdXN0LUlu LVRpbWUgQ29tcGlsYXRpb24gbGlicmFyeSBmb3IgR0NDIgogbWFpbnRhaW5lcj0iTGFuZSBCaW9j aW5pIDxsYW5lQG1haWxib3gub3JnPiIKQEAgLTIyLDE2ICsxNiwxNiBAQCBob21lcGFnZT0iaHR0 cHM6Ly9nY2MuZ251Lm9yZyIKIGxpY2Vuc2U9IkdGREwtMS4yLW9yLWxhdGVyLCBHUEwtMy4wLW9y LWxhdGVyLCBMR1BMLTIuMS1vci1sYXRlciIKICMgKi1tdXNsIGJ1aWxkZXJzIGhhdmUgaXNzdWVz IGZldGNoaW5nIGh0dHBzOi8vZnRwLmdudS5vcmcvZ251L21wYy9tcGMtMS4xLjAudGFyLmd6CiBk aXN0ZmlsZXM9IgotIGh0dHBzOi8vZGV2LmFscGluZWxpbnV4Lm9yZy9+bmVub2xvZC9nY2MtJHt2 ZXJzaW9uL3ByZS9fcHJlfS50YXIueHoKKyAke0dOVV9TSVRFfS9nY2MvZ2NjLSR7dmVyc2lvbn0v Z2NjLSR7dmVyc2lvbn0udGFyLnh6CiAgaHR0cHM6Ly9nbXBsaWIub3JnL2Rvd25sb2FkL2dtcC9n bXAtJHtfZ21wX3ZlcnNpb259LnRhci54egogICR7R05VX1NJVEV9L21wZnIvbXBmci0ke19tcGZy X3ZlcnNpb259LnRhci54egogICR7R05VX1NJVEV9L21wYy9tcGMtJHtfbXBjX3ZlcnNpb259LnRh ci5negogICR7U09VUkNFRk9SR0VfU0lURX0vbGliaXNsL2lzbC0ke19pc2xfdmVyc2lvbn0udGFy LmJ6MiIKLWNoZWNrc3VtPSI3NzJjZmQ1ZDMwZWI5Y2M1YTk5NmZlYzliYThjZGNiNDVkMzdkZjFj OWI1NzcwNjEwMTAzYjgxNGI3MzJjNTkwCi0gMjU4ZTZjZDUxYjNmYmRmYzE4NWM3MTZkNTVmODJj MDhhZmY1N2RmMGM2ZmJkMTQzY2Y2ZWQ1NjEyNjdhMTUyNgorY2hlY2tzdW09ImU1NDljZjljZjM1 OTRhMDBlMjdiNjU4OWQ0MzIyZDcwZTA3MjBjZGQyMTNmMzliZWI0MTgxZTA2OTI2MjMwZmYKKyBm ZDQ4Mjk5MTJjZGRkMTJmODQxODFjMzQ1MWNjNzUyYmUyMjQ2NDNlODdmYWM0OTdiNjllZGRkYWRj NDliNGYyCiAgMGM5OGEzZjE3MzJmZjZjYTRlYTY5MDU1MjA3OWRhOWM1OTc4NzJkMzBlOTZlYzI4 NDE0ZWUyM2M5NTU1OGE3ZgotIDY5ODVjNTM4MTQzYzEyMDhkY2IxYWM0MmNlZGFkNmZmNTJlMjY3 YjQ3ZTVmOTcwMTgzYTNlNzUxMjViNDNjMmUKLSBkMThjYTExZjhhZDFhMzlhYjZkMDNkM2RjYjMz NjVhYjQxNjcyMGZjYjY1YjQyZDY5ZjM0ZjUxYmYwYTBlODU5IgorIDE3NTAzZDJjMzk1ZGZjZjEw NmI2MjJkYzE0MjY4M2MxMTk5NDMxZDA5NTM2N2M2YWFjYmE2ZWVjMzAzNDA0NTkKKyBmY2Y3OGRk OTY1NmMxMGViOGNmOWZiZDVmNTlhMGI2YjAxMzg2MjA1ZmUxOTM0YjNiMjg3YTBhMTg5ODE0NWMw Igogbm9waWU9eWVzCiBsaWIzMmRpc2FibGVkPXllcwogbWFrZWRlcGVuZHM9InpsaWItZGV2ZWwi CgpGcm9tIDY3ZWMzYzZjNWQyNDMxMjYwMDJiM2M4YWU3ZDNkMGNkYTUyN2I1ZjAgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IG9yZW82MzkgPG9yZW82MzkxQGdtYWlsLmNvbT4KRGF0ZTog U2F0LCA1IE5vdiAyMDIyIDExOjMzOjEyIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxMC8zN10gYnVp bGQtc3R5bGUvdm9pZC1jcm9zczogVXBkYXRlIGZsYWdzIGZvciBnY2MxMiBhbmQKIGdsaWJjIDIu MzYKCmdjb3YgY2FuJ3QgYmUgYnVpbHQgd2l0aG91dCBsaWJjOgpodHRwczovL2djYy5nbnUub3Jn L2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0xMDAyODkKClJlbW92ZSAtbm8tcGllIGZyb20gYnVp bGQuIGdsaWJjIDIuMzUgYW5kIG5ld2VyIHVzZXMgLXN0YXRpYy1waWUgYnkgZGVmYXVsdDoKaHR0 cHM6Ly9zb3VyY2V3YXJlLm9yZy9waXBlcm1haWwvZ2xpYmMtY3ZzLzIwMjFxNC8wNzU5MTYuaHRt bAotLS0KIGNvbW1vbi9idWlsZC1zdHlsZS92b2lkLWNyb3NzLnNoIHwgMTkgKysrKysrKysrKysr KysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDE5IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9j b21tb24vYnVpbGQtc3R5bGUvdm9pZC1jcm9zcy5zaCBiL2NvbW1vbi9idWlsZC1zdHlsZS92b2lk LWNyb3NzLnNoCmluZGV4IDkyZjAzZjgxMzBmNS4uZjdlMDJkYmM0OGNiIDEwMDY0NAotLS0gYS9j b21tb24vYnVpbGQtc3R5bGUvdm9pZC1jcm9zcy5zaAorKysgYi9jb21tb24vYnVpbGQtc3R5bGUv dm9pZC1jcm9zcy5zaApAQCAtNTMsNiArNTMsNyBAQCBfdm9pZF9jcm9zc19idWlsZF9iaW51dGls cygpIHsKIAkJLS1zYmluZGlyPS91c3IvYmluIFwKIAkJLS1saWJkaXI9L3Vzci9saWIgXAogCQkt LWxpYmV4ZWNkaXI9L3Vzci9saWIgXAorCQktLXN5c2NvbmZkaXI9L2V0YyBcCiAJCS0tdGFyZ2V0 PSR7dGd0fSBcCiAJCS0td2l0aC1zeXNyb290PS91c3IvJHt0Z3R9IFwKIAkJLS1kaXNhYmxlLW5s cyBcCkBAIC02MCw3ICs2MSw5IEBAIF92b2lkX2Nyb3NzX2J1aWxkX2JpbnV0aWxzKCkgewogCQkt LWRpc2FibGUtbXVsdGlsaWIgXAogCQktLWRpc2FibGUtd2Vycm9yIFwKIAkJLS1kaXNhYmxlLWdv bGQgXAorCQktLWRpc2FibGUtZ3Byb2ZuZyBcCiAJCS0tZW5hYmxlLXJlbHJvIFwKKwkJLS1lbmFi bGUtbmV3LWR0YWdzIFwKIAkJLS1lbmFibGUtcGx1Z2lucyBcCiAJCS0tZW5hYmxlLTY0LWJpdC1i ZmQgXAogCQktLWVuYWJsZS1kZXRlcm1pbmlzdGljLWFyY2hpdmVzIFwKQEAgLTkxLDYgKzk0LDkg QEAgX3ZvaWRfY3Jvc3NfYnVpbGRfYm9vdHN0cmFwX2djYygpIHsKIAkjIERvIG5vdCBydW4gZml4 aW5jbHVkZXMKIAlzZWQgLWkgJ3NALi9maXhpbmMuc2hALWMgdHJ1ZUAnIE1ha2VmaWxlLmluCiAK KwkjIERvIG5vdCB1c2Ugc3lzdGVtIGhlYWRlcnMgdG8gZGV0ZXJtaW5lIGNsb2NhbGUgaW1wbGVt ZW50YXRpb24KKwlzZWQgLWkgJ3MvI2lmIChfX0dMSUJDX18gPiAyIHx8IChfX0dMSUJDX18gPT0g MiAmJiBfX0dMSUJDX01JTk9SX18gPj0gMykpICYmICFkZWZpbmVkKF9fVUNMSUJDX18pLyNpZiAx L2cnIGxpYnN0ZGMrKy12My9jb25maWd1cmUKKwogCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9 L2djYy9wYXRjaGVzLyoucGF0Y2g7IGRvCiAJCV92b2lkX2Nyb3NzX2FwcGx5X3BhdGNoICIkZiIK IAlkb25lCkBAIC0xMzIsNiArMTM4LDcgQEAgX3ZvaWRfY3Jvc3NfYnVpbGRfYm9vdHN0cmFwX2dj YygpIHsKIAkJLS1kaXNhYmxlLWxpYnNzcCBcCiAJCS0tZGlzYWJsZS1saWJpdG0gXAogCQktLWRp c2FibGUtbGliYXRvbWljIFwKKwkJLS1kaXNhYmxlLWdjb3YgXAogCQktLWRpc2FibGUtdGhyZWFk cyBcCiAJCS0tZGlzYWJsZS1zamxqLWV4Y2VwdGlvbnMgXAogCQktLWVuYWJsZS1sYW5ndWFnZXM9 YyBcCkBAIC0zODEsNiArMzg4LDcgQEAgX3ZvaWRfY3Jvc3NfYnVpbGRfZ2NjKCkgewogCQlleHRy YV9hcmdzKz0iIC0tZGlzYWJsZS1nbnUtdW5pcXVlLW9iamVjdCIKIAkJZXh0cmFfYXJncys9IiBs aWJhdF9jdl9oYXZlX2lmdW5jPW5vIgogCWVsc2UKKwkJZXh0cmFfYXJncys9IiAtLWVuYWJsZS1j bG9jYWxlPWdudSIKIAkJZXh0cmFfYXJncys9IiAtLWVuYWJsZS1nbnUtdW5pcXVlLW9iamVjdCIK IAlmaQogCkBAIC00NjAsNiArNDY4LDE0IEBAIGRvX2J1aWxkKCkgewogCWxvY2FsIGJpbnV0aWxz X3ZlciBsaW51eF92ZXIgZ2NjX3ZlciBsaWJjX3ZlciBsaWJ1Y29udGV4dF92ZXIKIAlsb2NhbCB0 Z3Q9JHtzb3VyY2Vwa2cvY3Jvc3MtfQogCisJZXhwb3J0IENGTEFHUz0iJHtDRkxBR1MvLURfRk9S VElGWV9TT1VSQ0U9Mi99IgorCWV4cG9ydCBDWFhGTEFHUz0iJHtDWFhGTEFHUy8tRF9GT1JUSUZZ X1NPVVJDRT0yL30iCisKKwkjIERpc2FibGUgZXhwbGljaXQgLWZuby1QSUUsIGdjYy9iaW51dGls cy9saWJjIHdpbGwgZmlndXJlIHRoaXMgb3V0IGl0c2VsZi4KKwlleHBvcnQgQ0ZMQUdTPSIke0NG TEFHUy8vLWZuby1QSUUvfSIKKwlleHBvcnQgQ1hYRkxBR1M9IiR7Q1hYRkxBR1MvLy1mbm8tUElF L30iCisJZXhwb3J0IExERkxBR1M9IiR7TERGTEFHUy8vLW5vLXBpZS99IgorCiAJX3ZvaWRfY3Jv c3NfdGVzdF92ZXIgYmludXRpbHMKIAlfdm9pZF9jcm9zc190ZXN0X3ZlciBsaW51eAogCV92b2lk X2Nyb3NzX3Rlc3RfdmVyIGdjYwpAQCAtNjI1LDYgKzY0MSw5IEBAIGRvX2luc3RhbGwoKSB7CiAJ IyB0aGVuIHJlbW92ZSBpdCBiZWNhdXNlIGl0IGNvbmZsaWN0cyB3aXRoIGxpYnF1YWRtYXRoIHBh Y2thZ2UKIAlybSAtcmYgJHtERVNURElSfS8ke3N5c3Jvb3R9L3Vzci9saWIvbGlicXVhZG1hdGgu KgogCisJIyBSZW1vdmUgbGliZGVwIGxpbmtlciBwbHVnaW4gYmVjYXVzZSBpdCBjb25mbGljdHMg d2l0aCBzeXN0ZW0gYmludXRpbHMKKwlybSAtZiAke0RFU1RESVJ9L3Vzci9saWIvYmZkLXBsdWdp bnMvbGliZGVwKgorCiAJIyBSZW1vdmUgbGVmdG92ZXIgc3ltbGlua3MKIAlybSAtZiAke0RFU1RE SVJ9L3Vzci9saWIke1hCUFNfVEFSR0VUX1dPUkRTSVpFfQogCXJtIC1mICR7REVTVERJUn0vbGli KgoKRnJvbSAyY2E3NDcwZjI0MDRlYjliODk2YjliMTI0ZWE4NDQ3NGJjZTI4MWNkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDxvcmVvNjM5MUBnbWFpbC5jb20+CkRhdGU6 IFNhdCwgNSBOb3YgMjAyMiAxMTozMzoxMiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTEvMzddIHFl bXU6IHJlbW92ZSBicm9rZW4gcGF0Y2gKClRoZSBuZWNlc3NhcnkgcGF0Y2ggaGFzIGJlZW4gaW1w b3J0ZWQgaW50byBtdXNsIHNvIG5vIG5lZWQKdG8gY2FzdCB0aGUgc2lnZXZlbnQgc3RydWN0IHRv IGEgbW9yZSBnbGliYy1saWtlIG9uZS4KLS0tCiAuLi4vbXVzbC1maXgtc2lnZXZlbnQtYW5kLXNp Z3ZhbF90LnBhdGNoICAgICAgfCAyNyAtLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdl ZCwgMjcgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xZW11L3BhdGNo ZXMvbXVzbC1maXgtc2lnZXZlbnQtYW5kLXNpZ3ZhbF90LnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9xZW11L3BhdGNoZXMvbXVzbC1maXgtc2lnZXZlbnQtYW5kLXNpZ3ZhbF90LnBhdGNoIGIv c3JjcGtncy9xZW11L3BhdGNoZXMvbXVzbC1maXgtc2lnZXZlbnQtYW5kLXNpZ3ZhbF90LnBhdGNo CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YjRmMTExN2MxNWYuLjAwMDAwMDAwMDAw MAotLS0gYS9zcmNwa2dzL3FlbXUvcGF0Y2hlcy9tdXNsLWZpeC1zaWdldmVudC1hbmQtc2lndmFs X3QucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi1Ob3RlOiBSZW1vdmUgdGhp cyBwYXRjaCB3aXRoIG11c2wgMS4yLjIKLQotLS0tIGEvbGludXgtdXNlci9zeXNjYWxsLmMKLSsr KyBiL2xpbnV4LXVzZXIvc3lzY2FsbC5jCi1AQCAtNTAyMCwxMCArNTAyMCwyMSBAQAotICNpZm5k ZWYgSEFWRV9TSUdFVl9OT1RJRllfVEhSRUFEX0lECi0gI2RlZmluZSBzaWdldl9ub3RpZnlfdGhy ZWFkX2lkIF9zaWdldl91bi5fdGlkCi0gI2VuZGlmCi0gCi0tc3RhdGljIGlubGluZSBhYmlfbG9u ZyB0YXJnZXRfdG9faG9zdF9zaWdldmVudChzdHJ1Y3Qgc2lnZXZlbnQgKmhvc3Rfc2V2cCwKLStz dHJ1Y3QgaG9zdF9zaWdldmVudCB7Ci0rICAgIHVuaW9uIHNpZ3ZhbCBzaWdldl92YWx1ZTsKLSsg ICAgaW50IHNpZ2V2X3NpZ25vOwotKyAgICBpbnQgc2lnZXZfbm90aWZ5OwotKyAgICB1bmlvbiB7 Ci0rICAgICAgIGNoYXIgX3BhZFs2NCAtIHNpemVvZihpbnQpICogMiAtIHNpemVvZih1bmlvbiBz aWd2YWwpXTsKLSsgICAgICAgaW50IF90aWQ7Ci0rICAgIH0gX3NpZ2V2X3VuOwotK307Ci0rCi0r c3RhdGljIGlubGluZSBhYmlfbG9uZyB0YXJnZXRfdG9faG9zdF9zaWdldmVudChzdHJ1Y3Qgc2ln ZXZlbnQgKnNldnAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhYmlfdWxvbmcgdGFyZ2V0X2FkZHIpCi0gewotKyAgICBzdHJ1Y3QgaG9zdF9zaWdldmVu dCAqaG9zdF9zZXZwID0gKHN0cnVjdCBob3N0X3NpZ2V2ZW50ICopIHNldnA7Ci0gICAgIHN0cnVj dCB0YXJnZXRfc2lnZXZlbnQgKnRhcmdldF9zZXZwOwotIAotICAgICBpZiAoIWxvY2tfdXNlcl9z dHJ1Y3QoVkVSSUZZX1JFQUQsIHRhcmdldF9zZXZwLCB0YXJnZXRfYWRkciwgMSkpIHsKCkZyb20g NDkyMzNiODU2NTMxNjc2YzllMTdmZjVmYzhjMDA0NzAwNTk0MTAyZSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogb3JlbzYzOSA8b3JlbzYzOTFAZ21haWwuY29tPgpEYXRlOiBTYXQsIDE5 IE5vdiAyMDIyIDEzOjI2OjI0IC0wODAwClN1YmplY3Q6IFtQQVRDSCAxMi8zN10gbWstY29uZmln dXJlOiByZWJ1aWxkIGZvciBnY2MgMTIKCi0tLQogc3JjcGtncy9tay1jb25maWd1cmUvdGVtcGxh dGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkK CmRpZmYgLS1naXQgYS9zcmNwa2dzL21rLWNvbmZpZ3VyZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvbWst Y29uZmlndXJlL3RlbXBsYXRlCmluZGV4IDlkMTJmMTFhOTc5OS4uYzUwZDhhZGYyMTNmIDEwMDY0 NAotLS0gYS9zcmNwa2dzL21rLWNvbmZpZ3VyZS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL21rLWNv bmZpZ3VyZS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ21r LWNvbmZpZ3VyZScKIHBrZ25hbWU9bWstY29uZmlndXJlCiB2ZXJzaW9uPTAuMzcuMAotcmV2aXNp b249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9Z251LW1ha2VmaWxlCiBtYWtlX2NtZD1ibWFr ZQogbWFrZV9pbnN0YWxsX2FyZ3M9Ik1BTkRJUj0vdXNyL3NoYXJlL21hbiIKCkZyb20gODMyYTE2 NmM3MGE3ZWQ2NWM2NGIzNDU4NGYyNzk5ZDMzNjAyNzU4YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogb3JlbzYzOSA8b3JlbzYzOTFAZ21haWwuY29tPgpEYXRlOiBTdW4sIDYgTm92IDIw MjIgMTE6MzM6MjggLTA4MDAKU3ViamVjdDogW1BBVENIIDEzLzM3XSBjcm9zcy1hYXJjaDY0LWxp bnV4LWdudTogdXBkYXRlIHRvIGdjYyAxMi4yLjAuCgotLS0KIHNyY3BrZ3MvY3Jvc3MtYWFyY2g2 NC1saW51eC1nbnUvdGVtcGxhdGUgfCAxOSArKysrKysrKysrLS0tLS0tLS0tCiAxIGZpbGUgY2hh bmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNw a2dzL2Nyb3NzLWFhcmNoNjQtbGludXgtZ251L3RlbXBsYXRlIGIvc3JjcGtncy9jcm9zcy1hYXJj aDY0LWxpbnV4LWdudS90ZW1wbGF0ZQppbmRleCAxOGRlMjFhYTNjY2QuLjllNmZiNzVjMTk4ZCAx MDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy1hYXJjaDY0LWxpbnV4LWdudS90ZW1wbGF0ZQorKysg Yi9zcmNwa2dzL2Nyb3NzLWFhcmNoNjQtbGludXgtZ251L3RlbXBsYXRlCkBAIC0xLDE1ICsxLDE2 IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdjcm9zcy1hYXJjaDY0LWxpbnV4LWdudScKLV9iaW51 dGlsc192ZXJzaW9uPTIuMzUuMQotX2djY192ZXJzaW9uPTEwLjIuMV9wcmUxCi1fZ2xpYmNfdmVy c2lvbj0yLjMyCitfYmludXRpbHNfdmVyc2lvbj0yLjM5CitfZ2NjX3ZlcnNpb249MTIuMi4wCitf Z2xpYmNfdmVyc2lvbj0yLjM2CiBfbGludXhfdmVyc2lvbj01LjEwLjQKIHBrZ25hbWU9Y3Jvc3Mt YWFyY2g2NC1saW51eC1nbnUKLXZlcnNpb249MC4zNAordmVyc2lvbj0wLjM1CiByZXZpc2lvbj0x CiBidWlsZF9zdHlsZT12b2lkLWNyb3NzCiBjb25maWd1cmVfYXJncz0iLS13aXRoLWFyY2g9YXJt djgtYSIKIGhvc3RtYWtlZGVwZW5kcz0idGV4aW5mbyB0YXIgZ2NjLW9iamMgZ2NjLWdvIGZsZXgg cGVybCBweXRob24zIgotbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6bGli LWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIgorbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxp Ym1wYy1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbAorIHpsaWItZGV2ZWwgbGlienN0ZC1kZXZl bCIKIGRlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259Igogc2hv cnRfZGVzYz0iVm9pZCBjcm9zcyB0b29sY2hhaW4gZm9yICR7cGtnbmFtZS9jcm9zcy19IgogbWFp bnRhaW5lcj0iTGVhaCBOZXVraXJjaGVuIDxsZWFoQHZ1eHUub3JnPiIKQEAgLTE3LDEyICsxOCwx MiBAQCBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVyLCBMR1BMLTIu MS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3d3dy52b2lkbGludXgub3JnLyIKIGRpc3Rm aWxlcz0iCiAgJHtHTlVfU0lURX0vYmludXRpbHMvYmludXRpbHMtJHtfYmludXRpbHNfdmVyc2lv bn0udGFyLnh6Ci0gaHR0cHM6Ly9kZXYuYWxwaW5lbGludXgub3JnL35uZW5vbG9kL2djYy0ke19n Y2NfdmVyc2lvbn0udGFyLnh6CisgJHtHTlVfU0lURX0vZ2NjL2djYy0ke19nY2NfdmVyc2lvbn0v Z2NjLSR7X2djY192ZXJzaW9ufS50YXIueHoKICAke0dOVV9TSVRFfS9nbGliYy9nbGliYy0ke19n bGliY192ZXJzaW9ufS50YXIueHoKICAke0tFUk5FTF9TSVRFfS9rZXJuZWwvdjUueC9saW51eC0k e19saW51eF92ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0iM2NlZDkxZGI5YmYwMTE4MmI3ZTQy MGVhYjY4MDM5ZjIwODNhZWQwYTIxNGMwNDI0ZTI1N2VhZTNkZGVlODYwNwotIDc3MmNmZDVkMzBl YjljYzVhOTk2ZmVjOWJhOGNkY2I0NWQzN2RmMWM5YjU3NzA2MTAxMDNiODE0YjczMmM1OTAKLSAx NjI3ZWE1NGY1YTFhODQ2NzAzMjU2MzM5M2UwOTAxMDc3NjI2ZGM2NmYzN2YxMGVlNjM2M2JiNzIy MjIyODM2CitjaGVja3N1bT0iNjQ1YzI1ZjU2M2I4YWRjMGE4MWRiZDZhNDFjZmZiZjRkMzcwODNh MzgyZTAyZDVkM2RmNGY2NWMwOTUxNmQwMAorIGU1NDljZjljZjM1OTRhMDBlMjdiNjU4OWQ0MzIy ZDcwZTA3MjBjZGQyMTNmMzliZWI0MTgxZTA2OTI2MjMwZmYKKyAxYzk1OWZlYTI0MDkwNjIyNjA2 MmNiNGIxZTdlYmNlNzFhOWYwZTNjMDgzNmMwOWU3ZTM0MjNkNDM0ZmNmZTc1CiAgOTA0ZTM5NmMy NmU5OTkyYTE2Y2QxY2M5ODk0NjAxNzE1MzZiZWQ3NzM5YmYzNjA0OWY2ZWIwMjBlZTVkNTZlYyIK IG5vY3Jvc3M9eWVzCiAKCkZyb20gOTRkMzc2YzU1YzgwYmYzOTBjMGNjNWE2ZWVlYTM5NzVmOGE1 YzU1NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogb3JlbzYzOSA8b3JlbzYzOTFAZ21h aWwuY29tPgpEYXRlOiBTdW4sIDYgTm92IDIwMjIgMTE6MzM6MjggLTA4MDAKU3ViamVjdDogW1BB VENIIDE0LzM3XSBjcm9zcy1hYXJjaDY0LWxpbnV4LW11c2w6IHVwZGF0ZSB0byBnY2MgMTIuMi4w LgoKLS0tCiBzcmNwa2dzL2Nyb3NzLWFhcmNoNjQtbGludXgtbXVzbC90ZW1wbGF0ZSB8IDE5ICsr KysrKysrKystLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCA5IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY3Jvc3MtYWFyY2g2NC1saW51eC1tdXNs L3RlbXBsYXRlIGIvc3JjcGtncy9jcm9zcy1hYXJjaDY0LWxpbnV4LW11c2wvdGVtcGxhdGUKaW5k ZXggYmI2YTc3MGFmYjc5Li5iYTE0Yzk2YmNjZWEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jvc3Mt YWFyY2g2NC1saW51eC1tdXNsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3MtYWFyY2g2NC1s aW51eC1tdXNsL3RlbXBsYXRlCkBAIC0xLDI5ICsxLDMwIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9y ICdjcm9zcy1hYXJjaDY0LWxpbnV4LW11c2wnCi1fYmludXRpbHNfdmVyc2lvbj0yLjM1LjEKLV9n Y2NfdmVyc2lvbj0xMC4yLjFfcHJlMQorX2JpbnV0aWxzX3ZlcnNpb249Mi4zOQorX2djY192ZXJz aW9uPTEyLjIuMAogX211c2xfdmVyc2lvbj0xLjEuMjQKIF9saW51eF92ZXJzaW9uPTUuMTAuNAog X2xpYnVjb250ZXh0X3ZlcnNpb249MS4wCiBwa2duYW1lPWNyb3NzLWFhcmNoNjQtbGludXgtbXVz bAotdmVyc2lvbj0wLjM0Ci1yZXZpc2lvbj00Cit2ZXJzaW9uPTAuMzUKK3JldmlzaW9uPTEKIGJ1 aWxkX3N0eWxlPXZvaWQtY3Jvc3MKIGNvbmZpZ3VyZV9hcmdzPSItLXdpdGgtYXJjaD1hcm12OC1h IgogaG9zdG1ha2VkZXBlbmRzPSJ0ZXhpbmZvIHRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJs IHB5dGhvbjMiCi1tYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2 ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwiCittYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBj LWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsCisgemxpYi1kZXZlbCBsaWJ6c3RkLWRldmVsIgog ZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCiBzaG9ydF9k ZXNjPSJWb2lkIGNyb3NzIHRvb2xjaGFpbiBmb3IgJHtwa2duYW1lL2Nyb3NzLX0iCiBtYWludGFp bmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgotaG9tZXBhZ2U9Imh0dHBzOi8v d3d3LnZvaWRsaW51eC5vcmcvIgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR1BMLTMuMC1v ci1sYXRlciwgTUlUIgoraG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcvIgogZGlz dGZpbGVzPSIKICAke0dOVV9TSVRFfS9iaW51dGlscy9iaW51dGlscy0ke19iaW51dGlsc192ZXJz aW9ufS50YXIueHoKLSBodHRwczovL2Rldi5hbHBpbmVsaW51eC5vcmcvfm5lbm9sb2QvZ2NjLSR7 X2djY192ZXJzaW9ufS50YXIueHoKKyAke0dOVV9TSVRFfS9nY2MvZ2NjLSR7X2djY192ZXJzaW9u fS9nY2MtJHtfZ2NjX3ZlcnNpb259LnRhci54egogIGh0dHBzOi8vbXVzbC5saWJjLm9yZy9yZWxl YXNlcy9tdXNsLSR7X211c2xfdmVyc2lvbn0udGFyLmd6CiAgJHtLRVJORUxfU0lURX0va2VybmVs L3Y1LngvbGludXgtJHtfbGludXhfdmVyc2lvbn0udGFyLnh6CiAgaHR0cHM6Ly9naXRodWIuY29t L2thbmlpbmkvbGlidWNvbnRleHQvYXJjaGl2ZS9saWJ1Y29udGV4dC0ke19saWJ1Y29udGV4dF92 ZXJzaW9ufS50YXIuZ3oiCi1jaGVja3N1bT0iM2NlZDkxZGI5YmYwMTE4MmI3ZTQyMGVhYjY4MDM5 ZjIwODNhZWQwYTIxNGMwNDI0ZTI1N2VhZTNkZGVlODYwNwotIDc3MmNmZDVkMzBlYjljYzVhOTk2 ZmVjOWJhOGNkY2I0NWQzN2RmMWM5YjU3NzA2MTAxMDNiODE0YjczMmM1OTAKK2NoZWNrc3VtPSI2 NDVjMjVmNTYzYjhhZGMwYTgxZGJkNmE0MWNmZmJmNGQzNzA4M2EzODJlMDJkNWQzZGY0ZjY1YzA5 NTE2ZDAwCisgZTU0OWNmOWNmMzU5NGEwMGUyN2I2NTg5ZDQzMjJkNzBlMDcyMGNkZDIxM2YzOWJl YjQxODFlMDY5MjYyMzBmZgogIDEzNzBjOWE4MTJiMmNmMmE3ZDkyODAyNTEwY2NhMDA1OGNjMzdl NjZhN2JlZGQ3MDA1MWYwYTM0MDE1MDIyYTMKICA5MDRlMzk2YzI2ZTk5OTJhMTZjZDFjYzk4OTQ2 MDE3MTUzNmJlZDc3MzliZjM2MDQ5ZjZlYjAyMGVlNWQ1NmVjCiAgMjM3MTRlOTlhODdmNmRlYTgy ZThhMDczYzUyNjMyNTE2MWRkNjU0NjI0NTk4MjBiMTZhNjE2MmJlOTE5NTViYiIKCkZyb20gOWEz NmQyZTg0ZjViYjM5ZjkwZGQ3YjMxYmJlZDRmZjI1ODk2Njk5YSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogb3JlbzYzOSA8b3JlbzYzOTFAZ21haWwuY29tPgpEYXRlOiBTdW4sIDYgTm92 IDIwMjIgMTE6MzM6MjggLTA4MDAKU3ViamVjdDogW1BBVENIIDE1LzM3XSBjcm9zcy1hcm0tbGlu dXgtZ251ZWFiaTogdXBkYXRlIHRvIGdjYyAxMi4yLjAuCgotLS0KIHNyY3BrZ3MvY3Jvc3MtYXJt LWxpbnV4LWdudWVhYmkvdGVtcGxhdGUgfCAxOSArKysrKysrKysrLS0tLS0tLS0tCiAxIGZpbGUg Y2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmNwa2dzL2Nyb3NzLWFybS1saW51eC1nbnVlYWJpL3RlbXBsYXRlIGIvc3JjcGtncy9jcm9zcy1h cm0tbGludXgtZ251ZWFiaS90ZW1wbGF0ZQppbmRleCBhM2FiYTcyYWE5M2EuLjVjNzc0ZTE2ZjQz MCAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy1hcm0tbGludXgtZ251ZWFiaS90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL2Nyb3NzLWFybS1saW51eC1nbnVlYWJpL3RlbXBsYXRlCkBAIC0xLDE1ICsx LDE2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdjcm9zcy1hcm0tbGludXgtZ251ZWFiaScKLV9i aW51dGlsc192ZXJzaW9uPTIuMzUuMQotX2djY192ZXJzaW9uPTEwLjIuMV9wcmUxCi1fZ2xpYmNf dmVyc2lvbj0yLjMyCitfYmludXRpbHNfdmVyc2lvbj0yLjM5CitfZ2NjX3ZlcnNpb249MTIuMi4w CitfZ2xpYmNfdmVyc2lvbj0yLjM2CiBfbGludXhfdmVyc2lvbj01LjEwLjQKIHBrZ25hbWU9Y3Jv c3MtYXJtLWxpbnV4LWdudWVhYmkKLXZlcnNpb249MC4zNAordmVyc2lvbj0wLjM1CiByZXZpc2lv bj0xCiBidWlsZF9zdHlsZT12b2lkLWNyb3NzCiBjb25maWd1cmVfYXJncz0iLS13aXRoLWFyY2g9 YXJtdjV0ZSAtLXdpdGgtZmxvYXQ9c29mdCIKIGhvc3RtYWtlZGVwZW5kcz0idGV4aW5mbyB0YXIg Z2NjLW9iamMgZ2NjLWdvIGZsZXggcGVybCBweXRob24zIgotbWFrZWRlcGVuZHM9ImlzbDE1LWRl dmVsIGxpYm1wYy1kZXZlbCB6bGliLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIgorbWFrZWRl cGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbAorIHps aWItZGV2ZWwgbGlienN0ZC1kZXZlbCIKIGRlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNp b259XyR7cmV2aXNpb259Igogc2hvcnRfZGVzYz0iVm9pZCBjcm9zcyB0b29sY2hhaW4gZm9yICR7 cGtnbmFtZS9jcm9zcy19IgogbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgu b3JnPiIKQEAgLTE3LDEyICsxOCwxMiBAQCBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBHUEwt My4wLW9yLWxhdGVyLCBMR1BMLTIuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3d3dy52 b2lkbGludXgub3JnLyIKIGRpc3RmaWxlcz0iCiAgJHtHTlVfU0lURX0vYmludXRpbHMvYmludXRp bHMtJHtfYmludXRpbHNfdmVyc2lvbn0udGFyLnh6Ci0gaHR0cHM6Ly9kZXYuYWxwaW5lbGludXgu b3JnL35uZW5vbG9kL2djYy0ke19nY2NfdmVyc2lvbn0udGFyLnh6CisgJHtHTlVfU0lURX0vZ2Nj L2djYy0ke19nY2NfdmVyc2lvbn0vZ2NjLSR7X2djY192ZXJzaW9ufS50YXIueHoKICAke0dOVV9T SVRFfS9nbGliYy9nbGliYy0ke19nbGliY192ZXJzaW9ufS50YXIueHoKICAke0tFUk5FTF9TSVRF fS9rZXJuZWwvdjUueC9saW51eC0ke19saW51eF92ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0i M2NlZDkxZGI5YmYwMTE4MmI3ZTQyMGVhYjY4MDM5ZjIwODNhZWQwYTIxNGMwNDI0ZTI1N2VhZTNk ZGVlODYwNwotIDc3MmNmZDVkMzBlYjljYzVhOTk2ZmVjOWJhOGNkY2I0NWQzN2RmMWM5YjU3NzA2 MTAxMDNiODE0YjczMmM1OTAKLSAxNjI3ZWE1NGY1YTFhODQ2NzAzMjU2MzM5M2UwOTAxMDc3NjI2 ZGM2NmYzN2YxMGVlNjM2M2JiNzIyMjIyODM2CitjaGVja3N1bT0iNjQ1YzI1ZjU2M2I4YWRjMGE4 MWRiZDZhNDFjZmZiZjRkMzcwODNhMzgyZTAyZDVkM2RmNGY2NWMwOTUxNmQwMAorIGU1NDljZjlj ZjM1OTRhMDBlMjdiNjU4OWQ0MzIyZDcwZTA3MjBjZGQyMTNmMzliZWI0MTgxZTA2OTI2MjMwZmYK KyAxYzk1OWZlYTI0MDkwNjIyNjA2MmNiNGIxZTdlYmNlNzFhOWYwZTNjMDgzNmMwOWU3ZTM0MjNk NDM0ZmNmZTc1CiAgOTA0ZTM5NmMyNmU5OTkyYTE2Y2QxY2M5ODk0NjAxNzE1MzZiZWQ3NzM5YmYz NjA0OWY2ZWIwMjBlZTVkNTZlYyIKIG5vY3Jvc3M9eWVzCiAKCkZyb20gMzU0MWYwNzkxYTUyNzUx NzZhZjk2NmNmOWFjNTYxMGNmYmVkYmJjMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog b3JlbzYzOSA8b3JlbzYzOTFAZ21haWwuY29tPgpEYXRlOiBTdW4sIDYgTm92IDIwMjIgMTE6MzM6 MjggLTA4MDAKU3ViamVjdDogW1BBVENIIDE2LzM3XSBjcm9zcy1hcm0tbGludXgtZ251ZWFiaWhm OiB1cGRhdGUgdG8gZ2NjIDEyLjIuMC4KCi0tLQogc3JjcGtncy9jcm9zcy1hcm0tbGludXgtZ251 ZWFiaWhmL3RlbXBsYXRlIHwgMTkgKysrKysrKysrKy0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQs IDEwIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9j cm9zcy1hcm0tbGludXgtZ251ZWFiaWhmL3RlbXBsYXRlIGIvc3JjcGtncy9jcm9zcy1hcm0tbGlu dXgtZ251ZWFiaWhmL3RlbXBsYXRlCmluZGV4IGQ5YWI4NmNmMmVjYy4uZDYyOThhYjYzOWE0IDEw MDY0NAotLS0gYS9zcmNwa2dzL2Nyb3NzLWFybS1saW51eC1nbnVlYWJpaGYvdGVtcGxhdGUKKysr IGIvc3JjcGtncy9jcm9zcy1hcm0tbGludXgtZ251ZWFiaWhmL3RlbXBsYXRlCkBAIC0xLDE1ICsx LDE2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdjcm9zcy1hcm0tbGludXgtZ251ZWFiaWhmJwot X2JpbnV0aWxzX3ZlcnNpb249Mi4zNS4xCi1fZ2NjX3ZlcnNpb249MTAuMi4xX3ByZTEKLV9nbGli Y192ZXJzaW9uPTIuMzIKK19iaW51dGlsc192ZXJzaW9uPTIuMzkKK19nY2NfdmVyc2lvbj0xMi4y LjAKK19nbGliY192ZXJzaW9uPTIuMzYKIF9saW51eF92ZXJzaW9uPTUuMTAuNAogcGtnbmFtZT1j cm9zcy1hcm0tbGludXgtZ251ZWFiaWhmCi12ZXJzaW9uPTAuMzQKK3ZlcnNpb249MC4zNQogcmV2 aXNpb249MQogYnVpbGRfc3R5bGU9dm9pZC1jcm9zcwogY29uZmlndXJlX2FyZ3M9Ii0td2l0aC1h cmNoPWFybXY2IC0td2l0aC1mcHU9dmZwIC0td2l0aC1mbG9hdD1oYXJkIgogaG9zdG1ha2VkZXBl bmRzPSJ0ZXhpbmZvIHRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5dGhvbjMiCi1tYWtl ZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwgZ21wLWRldmVsIG1w ZnItZGV2ZWwiCittYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIGdtcC1kZXZl bCBtcGZyLWRldmVsCisgemxpYi1kZXZlbCBsaWJ6c3RkLWRldmVsIgogZGVwZW5kcz0iJHtwa2du YW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCiBzaG9ydF9kZXNjPSJWb2lkIGNyb3Nz IHRvb2xjaGFpbiBmb3IgJHtwa2duYW1lL2Nyb3NzLX0iCiBtYWludGFpbmVyPSJPcnBoYW5lZCA8 b3JwaGFuQHZvaWRsaW51eC5vcmc+IgpAQCAtMTcsMTIgKzE4LDEyIEBAIGxpY2Vuc2U9IkdQTC0y LjAtb3ItbGF0ZXIsIEdQTC0zLjAtb3ItbGF0ZXIsIExHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBh Z2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcvIgogZGlzdGZpbGVzPSIKICAke0dOVV9TSVRF fS9iaW51dGlscy9iaW51dGlscy0ke19iaW51dGlsc192ZXJzaW9ufS50YXIueHoKLSBodHRwczov L2Rldi5hbHBpbmVsaW51eC5vcmcvfm5lbm9sb2QvZ2NjLSR7X2djY192ZXJzaW9ufS50YXIueHoK KyAke0dOVV9TSVRFfS9nY2MvZ2NjLSR7X2djY192ZXJzaW9ufS9nY2MtJHtfZ2NjX3ZlcnNpb259 LnRhci54egogICR7R05VX1NJVEV9L2dsaWJjL2dsaWJjLSR7X2dsaWJjX3ZlcnNpb259LnRhci54 egogICR7S0VSTkVMX1NJVEV9L2tlcm5lbC92NS54L2xpbnV4LSR7X2xpbnV4X3ZlcnNpb259LnRh ci54eiIKLWNoZWNrc3VtPSIzY2VkOTFkYjliZjAxMTgyYjdlNDIwZWFiNjgwMzlmMjA4M2FlZDBh MjE0YzA0MjRlMjU3ZWFlM2RkZWU4NjA3Ci0gNzcyY2ZkNWQzMGViOWNjNWE5OTZmZWM5YmE4Y2Rj YjQ1ZDM3ZGYxYzliNTc3MDYxMDEwM2I4MTRiNzMyYzU5MAotIDE2MjdlYTU0ZjVhMWE4NDY3MDMy NTYzMzkzZTA5MDEwNzc2MjZkYzY2ZjM3ZjEwZWU2MzYzYmI3MjIyMjI4MzYKK2NoZWNrc3VtPSI2 NDVjMjVmNTYzYjhhZGMwYTgxZGJkNmE0MWNmZmJmNGQzNzA4M2EzODJlMDJkNWQzZGY0ZjY1YzA5 NTE2ZDAwCisgZTU0OWNmOWNmMzU5NGEwMGUyN2I2NTg5ZDQzMjJkNzBlMDcyMGNkZDIxM2YzOWJl YjQxODFlMDY5MjYyMzBmZgorIDFjOTU5ZmVhMjQwOTA2MjI2MDYyY2I0YjFlN2ViY2U3MWE5ZjBl M2MwODM2YzA5ZTdlMzQyM2Q0MzRmY2ZlNzUKICA5MDRlMzk2YzI2ZTk5OTJhMTZjZDFjYzk4OTQ2 MDE3MTUzNmJlZDc3MzliZjM2MDQ5ZjZlYjAyMGVlNWQ1NmVjIgogbm9jcm9zcz15ZXMKIAoKRnJv bSBmM2Q5ZjQyOWRmNzQ2NmQ2NzMzZTA2MjViM2U5YzBkY2U5NzAwMzFlIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDxvcmVvNjM5MUBnbWFpbC5jb20+CkRhdGU6IFN1biwg NiBOb3YgMjAyMiAxMTozMzoyOCAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTcvMzddIGNyb3NzLWFy bS1saW51eC1tdXNsZWFiaTogdXBkYXRlIHRvIGdjYyAxMi4yLjAuCgotLS0KIHNyY3BrZ3MvY3Jv c3MtYXJtLWxpbnV4LW11c2xlYWJpL3RlbXBsYXRlIHwgMTkgKysrKysrKysrKy0tLS0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9jcm9zcy1hcm0tbGludXgtbXVzbGVhYmkvdGVtcGxhdGUgYi9zcmNwa2dz L2Nyb3NzLWFybS1saW51eC1tdXNsZWFiaS90ZW1wbGF0ZQppbmRleCA2NjkyZDg5MWUxYmQuLjI0 ZGY3OGU4ZmQ4ZSAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy1hcm0tbGludXgtbXVzbGVhYmkv dGVtcGxhdGUKKysrIGIvc3JjcGtncy9jcm9zcy1hcm0tbGludXgtbXVzbGVhYmkvdGVtcGxhdGUK QEAgLTEsMjkgKzEsMzAgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLWFybS1saW51eC1t dXNsZWFiaScKLV9iaW51dGlsc192ZXJzaW9uPTIuMzUuMQotX2djY192ZXJzaW9uPTEwLjIuMV9w cmUxCitfYmludXRpbHNfdmVyc2lvbj0yLjM5CitfZ2NjX3ZlcnNpb249MTIuMi4wCiBfbXVzbF92 ZXJzaW9uPTEuMS4yNAogX2xpbnV4X3ZlcnNpb249NS4xMC40CiBfbGlidWNvbnRleHRfdmVyc2lv bj0xLjAKIHBrZ25hbWU9Y3Jvc3MtYXJtLWxpbnV4LW11c2xlYWJpCi12ZXJzaW9uPTAuMzQKLXJl dmlzaW9uPTQKK3ZlcnNpb249MC4zNQorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9dm9pZC1jcm9z cwogY29uZmlndXJlX2FyZ3M9Ii0td2l0aC1hcmNoPWFybXY1dGUgLS13aXRoLWZsb2F0PXNvZnQi CiBob3N0bWFrZWRlcGVuZHM9InRleGluZm8gdGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4IHBlcmwg cHl0aG9uMyIKLW1ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgemxpYi1kZXZl bCBnbXAtZGV2ZWwgbXBmci1kZXZlbCIKK21ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMt ZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwKKyB6bGliLWRldmVsIGxpYnpzdGQtZGV2ZWwiCiBk ZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKIHNob3J0X2Rl c2M9IlZvaWQgY3Jvc3MgdG9vbGNoYWluIGZvciAke3BrZ25hbWUvY3Jvc3MtfSIKIG1haW50YWlu ZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCi1ob21lcGFnZT0iaHR0cHM6Ly93 d3cudm9pZGxpbnV4Lm9yZy8iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBHUEwtMy4wLW9y LWxhdGVyLCBNSVQiCitob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBkaXN0 ZmlsZXM9IgogICR7R05VX1NJVEV9L2JpbnV0aWxzL2JpbnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNp b259LnRhci54egotIGh0dHBzOi8vZGV2LmFscGluZWxpbnV4Lm9yZy9+bmVub2xvZC9nY2MtJHtf Z2NjX3ZlcnNpb259LnRhci54egorICR7R05VX1NJVEV9L2djYy9nY2MtJHtfZ2NjX3ZlcnNpb259 L2djYy0ke19nY2NfdmVyc2lvbn0udGFyLnh6CiAgaHR0cHM6Ly9tdXNsLmxpYmMub3JnL3JlbGVh c2VzL211c2wtJHtfbXVzbF92ZXJzaW9ufS50YXIuZ3oKICAke0tFUk5FTF9TSVRFfS9rZXJuZWwv djUueC9saW51eC0ke19saW51eF92ZXJzaW9ufS50YXIueHoKICBodHRwczovL2dpdGh1Yi5jb20v a2FuaWluaS9saWJ1Y29udGV4dC9hcmNoaXZlL2xpYnVjb250ZXh0LSR7X2xpYnVjb250ZXh0X3Zl cnNpb259LnRhci5neiIKLWNoZWNrc3VtPSIzY2VkOTFkYjliZjAxMTgyYjdlNDIwZWFiNjgwMzlm MjA4M2FlZDBhMjE0YzA0MjRlMjU3ZWFlM2RkZWU4NjA3Ci0gNzcyY2ZkNWQzMGViOWNjNWE5OTZm ZWM5YmE4Y2RjYjQ1ZDM3ZGYxYzliNTc3MDYxMDEwM2I4MTRiNzMyYzU5MAorY2hlY2tzdW09IjY0 NWMyNWY1NjNiOGFkYzBhODFkYmQ2YTQxY2ZmYmY0ZDM3MDgzYTM4MmUwMmQ1ZDNkZjRmNjVjMDk1 MTZkMDAKKyBlNTQ5Y2Y5Y2YzNTk0YTAwZTI3YjY1ODlkNDMyMmQ3MGUwNzIwY2RkMjEzZjM5YmVi NDE4MWUwNjkyNjIzMGZmCiAgMTM3MGM5YTgxMmIyY2YyYTdkOTI4MDI1MTBjY2EwMDU4Y2MzN2U2 NmE3YmVkZDcwMDUxZjBhMzQwMTUwMjJhMwogIDkwNGUzOTZjMjZlOTk5MmExNmNkMWNjOTg5NDYw MTcxNTM2YmVkNzczOWJmMzYwNDlmNmViMDIwZWU1ZDU2ZWMKICAyMzcxNGU5OWE4N2Y2ZGVhODJl OGEwNzNjNTI2MzI1MTYxZGQ2NTQ2MjQ1OTgyMGIxNmE2MTYyYmU5MTk1NWJiIgoKRnJvbSA3NjI1 MjMzMjI1MTEyMmEzYWMyYWYyMDJmYWZmYmQ0ZTdiMjA0ZWFhIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBvcmVvNjM5IDxvcmVvNjM5MUBnbWFpbC5jb20+CkRhdGU6IFN1biwgNiBOb3Yg MjAyMiAxMTozMzoyOCAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTgvMzddIGNyb3NzLWFybS1saW51 eC1tdXNsZWFiaWhmOiB1cGRhdGUgdG8gZ2NjIDEyLjIuMC4KCi0tLQogc3JjcGtncy9jcm9zcy1h cm0tbGludXgtbXVzbGVhYmloZi90ZW1wbGF0ZSB8IDE5ICsrKysrKysrKystLS0tLS0tLS0KIDEg ZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvY3Jvc3MtYXJtLWxpbnV4LW11c2xlYWJpaGYvdGVtcGxhdGUgYi9zcmNwa2dz L2Nyb3NzLWFybS1saW51eC1tdXNsZWFiaWhmL3RlbXBsYXRlCmluZGV4IGJiNjJiZDVlYmM1NS4u ODA5MzcwMGY5MDljIDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nyb3NzLWFybS1saW51eC1tdXNsZWFi aWhmL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3MtYXJtLWxpbnV4LW11c2xlYWJpaGYvdGVt cGxhdGUKQEAgLTEsMjkgKzEsMzAgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLWFybS1s aW51eC1tdXNsZWFiaWhmJwotX2JpbnV0aWxzX3ZlcnNpb249Mi4zNS4xCi1fZ2NjX3ZlcnNpb249 MTAuMi4xX3ByZTEKK19iaW51dGlsc192ZXJzaW9uPTIuMzkKK19nY2NfdmVyc2lvbj0xMi4yLjAK IF9tdXNsX3ZlcnNpb249MS4xLjI0CiBfbGludXhfdmVyc2lvbj01LjEwLjQKIF9saWJ1Y29udGV4 dF92ZXJzaW9uPTEuMAogcGtnbmFtZT1jcm9zcy1hcm0tbGludXgtbXVzbGVhYmloZgotdmVyc2lv bj0wLjM0Ci1yZXZpc2lvbj00Cit2ZXJzaW9uPTAuMzUKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxl PXZvaWQtY3Jvc3MKIGNvbmZpZ3VyZV9hcmdzPSItLXdpdGgtYXJjaD1hcm12NiAtLXdpdGgtZnB1 PXZmcCAtLXdpdGgtZmxvYXQ9aGFyZCIKIGhvc3RtYWtlZGVwZW5kcz0idGV4aW5mbyB0YXIgZ2Nj LW9iamMgZ2NjLWdvIGZsZXggcGVybCBweXRob24zIgotbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVs IGxpYm1wYy1kZXZlbCB6bGliLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIgorbWFrZWRlcGVu ZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbAorIHpsaWIt ZGV2ZWwgbGlienN0ZC1kZXZlbCIKIGRlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259 XyR7cmV2aXNpb259Igogc2hvcnRfZGVzYz0iVm9pZCBjcm9zcyB0b29sY2hhaW4gZm9yICR7cGtn bmFtZS9jcm9zcy19IgogbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3Jn PiIKLWhvbWVwYWdlPSJodHRwczovL3d3dy52b2lkbGludXgub3JnLyIKIGxpY2Vuc2U9IkdQTC0y LjAtb3ItbGF0ZXIsIEdQTC0zLjAtb3ItbGF0ZXIsIE1JVCIKK2hvbWVwYWdlPSJodHRwczovL3d3 dy52b2lkbGludXgub3JnLyIKIGRpc3RmaWxlcz0iCiAgJHtHTlVfU0lURX0vYmludXRpbHMvYmlu dXRpbHMtJHtfYmludXRpbHNfdmVyc2lvbn0udGFyLnh6Ci0gaHR0cHM6Ly9kZXYuYWxwaW5lbGlu dXgub3JnL35uZW5vbG9kL2djYy0ke19nY2NfdmVyc2lvbn0udGFyLnh6CisgJHtHTlVfU0lURX0v Z2NjL2djYy0ke19nY2NfdmVyc2lvbn0vZ2NjLSR7X2djY192ZXJzaW9ufS50YXIueHoKICBodHRw czovL211c2wubGliYy5vcmcvcmVsZWFzZXMvbXVzbC0ke19tdXNsX3ZlcnNpb259LnRhci5negog ICR7S0VSTkVMX1NJVEV9L2tlcm5lbC92NS54L2xpbnV4LSR7X2xpbnV4X3ZlcnNpb259LnRhci54 egogIGh0dHBzOi8vZ2l0aHViLmNvbS9rYW5paW5pL2xpYnVjb250ZXh0L2FyY2hpdmUvbGlidWNv bnRleHQtJHtfbGlidWNvbnRleHRfdmVyc2lvbn0udGFyLmd6IgotY2hlY2tzdW09IjNjZWQ5MWRi OWJmMDExODJiN2U0MjBlYWI2ODAzOWYyMDgzYWVkMGEyMTRjMDQyNGUyNTdlYWUzZGRlZTg2MDcK LSA3NzJjZmQ1ZDMwZWI5Y2M1YTk5NmZlYzliYThjZGNiNDVkMzdkZjFjOWI1NzcwNjEwMTAzYjgx NGI3MzJjNTkwCitjaGVja3N1bT0iNjQ1YzI1ZjU2M2I4YWRjMGE4MWRiZDZhNDFjZmZiZjRkMzcw ODNhMzgyZTAyZDVkM2RmNGY2NWMwOTUxNmQwMAorIGU1NDljZjljZjM1OTRhMDBlMjdiNjU4OWQ0 MzIyZDcwZTA3MjBjZGQyMTNmMzliZWI0MTgxZTA2OTI2MjMwZmYKICAxMzcwYzlhODEyYjJjZjJh N2Q5MjgwMjUxMGNjYTAwNThjYzM3ZTY2YTdiZWRkNzAwNTFmMGEzNDAxNTAyMmEzCiAgOTA0ZTM5 NmMyNmU5OTkyYTE2Y2QxY2M5ODk0NjAxNzE1MzZiZWQ3NzM5YmYzNjA0OWY2ZWIwMjBlZTVkNTZl YwogIDIzNzE0ZTk5YTg3ZjZkZWE4MmU4YTA3M2M1MjYzMjUxNjFkZDY1NDYyNDU5ODIwYjE2YTYx NjJiZTkxOTU1YmIiCgpGcm9tIGI0M2QwMGFmZDAyMzcwNzA5NGIwM2M0OTJiM2UyOWVmYTgwODdi ZWEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IG9yZW82MzkgPG9yZW82MzkxQGdtYWls LmNvbT4KRGF0ZTogU3VuLCA2IE5vdiAyMDIyIDExOjMzOjI4IC0wODAwClN1YmplY3Q6IFtQQVRD SCAxOS8zN10gY3Jvc3MtYXJtdjdsLWxpbnV4LWdudWVhYmloZjogdXBkYXRlIHRvIGdjYyAxMi4y LjAuCgotLS0KIHNyY3BrZ3MvY3Jvc3MtYXJtdjdsLWxpbnV4LWdudWVhYmloZi90ZW1wbGF0ZSB8 IDE5ICsrKysrKysrKystLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCsp LCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY3Jvc3MtYXJtdjdsLWxpbnV4 LWdudWVhYmloZi90ZW1wbGF0ZSBiL3NyY3BrZ3MvY3Jvc3MtYXJtdjdsLWxpbnV4LWdudWVhYmlo Zi90ZW1wbGF0ZQppbmRleCAzMGM4OWI2Mjk0ZWYuLjkyNjY1MzI2NDI4YiAxMDA2NDQKLS0tIGEv c3JjcGtncy9jcm9zcy1hcm12N2wtbGludXgtZ251ZWFiaWhmL3RlbXBsYXRlCisrKyBiL3NyY3Br Z3MvY3Jvc3MtYXJtdjdsLWxpbnV4LWdudWVhYmloZi90ZW1wbGF0ZQpAQCAtMSwxNSArMSwxNiBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnY3Jvc3MtYXJtdjdsLWxpbnV4LWdudWVhYmloZicKLV9i aW51dGlsc192ZXJzaW9uPTIuMzUuMQotX2djY192ZXJzaW9uPTEwLjIuMV9wcmUxCi1fZ2xpYmNf dmVyc2lvbj0yLjMyCitfYmludXRpbHNfdmVyc2lvbj0yLjM5CitfZ2NjX3ZlcnNpb249MTIuMi4w CitfZ2xpYmNfdmVyc2lvbj0yLjM2CiBfbGludXhfdmVyc2lvbj01LjEwLjQKIHBrZ25hbWU9Y3Jv c3MtYXJtdjdsLWxpbnV4LWdudWVhYmloZgotdmVyc2lvbj0wLjM0Cit2ZXJzaW9uPTAuMzUKIHJl dmlzaW9uPTEKIGJ1aWxkX3N0eWxlPXZvaWQtY3Jvc3MKIGNvbmZpZ3VyZV9hcmdzPSItLXdpdGgt YXJjaD1hcm12Ny1hIC0td2l0aC1mcHU9dmZwdjMgLS13aXRoLWZsb2F0PWhhcmQiCiBob3N0bWFr ZWRlcGVuZHM9InRleGluZm8gdGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4IHBlcmwgcHl0aG9uMyIK LW1ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgemxpYi1kZXZlbCBnbXAtZGV2 ZWwgbXBmci1kZXZlbCIKK21ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgZ21w LWRldmVsIG1wZnItZGV2ZWwKKyB6bGliLWRldmVsIGxpYnpzdGQtZGV2ZWwiCiBkZXBlbmRzPSIk e3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKIHNob3J0X2Rlc2M9IlZvaWQg Y3Jvc3MgdG9vbGNoYWluIGZvciAke3BrZ25hbWUvY3Jvc3MtfSIKIG1haW50YWluZXI9Ik9ycGhh bmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCkBAIC0xNywxMiArMTgsMTIgQEAgbGljZW5zZT0i R1BMLTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1sYXRlciwgTEdQTC0yLjEtb3ItbGF0ZXIiCiBo b21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBkaXN0ZmlsZXM9IgogICR7R05V X1NJVEV9L2JpbnV0aWxzL2JpbnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259LnRhci54egotIGh0 dHBzOi8vZGV2LmFscGluZWxpbnV4Lm9yZy9+bmVub2xvZC9nY2MtJHtfZ2NjX3ZlcnNpb259LnRh ci54egorICR7R05VX1NJVEV9L2djYy9nY2MtJHtfZ2NjX3ZlcnNpb259L2djYy0ke19nY2NfdmVy c2lvbn0udGFyLnh6CiAgJHtHTlVfU0lURX0vZ2xpYmMvZ2xpYmMtJHtfZ2xpYmNfdmVyc2lvbn0u dGFyLnh6CiAgJHtLRVJORUxfU0lURX0va2VybmVsL3Y1LngvbGludXgtJHtfbGludXhfdmVyc2lv bn0udGFyLnh6IgotY2hlY2tzdW09IjNjZWQ5MWRiOWJmMDExODJiN2U0MjBlYWI2ODAzOWYyMDgz YWVkMGEyMTRjMDQyNGUyNTdlYWUzZGRlZTg2MDcKLSA3NzJjZmQ1ZDMwZWI5Y2M1YTk5NmZlYzli YThjZGNiNDVkMzdkZjFjOWI1NzcwNjEwMTAzYjgxNGI3MzJjNTkwCi0gMTYyN2VhNTRmNWExYTg0 NjcwMzI1NjMzOTNlMDkwMTA3NzYyNmRjNjZmMzdmMTBlZTYzNjNiYjcyMjIyMjgzNgorY2hlY2tz dW09IjY0NWMyNWY1NjNiOGFkYzBhODFkYmQ2YTQxY2ZmYmY0ZDM3MDgzYTM4MmUwMmQ1ZDNkZjRm NjVjMDk1MTZkMDAKKyBlNTQ5Y2Y5Y2YzNTk0YTAwZTI3YjY1ODlkNDMyMmQ3MGUwNzIwY2RkMjEz ZjM5YmViNDE4MWUwNjkyNjIzMGZmCisgMWM5NTlmZWEyNDA5MDYyMjYwNjJjYjRiMWU3ZWJjZTcx YTlmMGUzYzA4MzZjMDllN2UzNDIzZDQzNGZjZmU3NQogIDkwNGUzOTZjMjZlOTk5MmExNmNkMWNj OTg5NDYwMTcxNTM2YmVkNzczOWJmMzYwNDlmNmViMDIwZWU1ZDU2ZWMiCiBub2Nyb3NzPXllcwog CgpGcm9tIGMxOThhYjU0YzJjNWFhNDNkOWE2YjA5NDFiMjFkNGM0MmFhN2Y1OTUgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IG9yZW82MzkgPG9yZW82MzkxQGdtYWlsLmNvbT4KRGF0ZTog U3VuLCA2IE5vdiAyMDIyIDExOjMzOjI4IC0wODAwClN1YmplY3Q6IFtQQVRDSCAyMC8zN10gY3Jv c3MtYXJtdjdsLWxpbnV4LW11c2xlYWJpaGY6IHVwZGF0ZSB0byBnY2MgMTIuMi4wLgoKLS0tCiAu Li4vY3Jvc3MtYXJtdjdsLWxpbnV4LW11c2xlYWJpaGYvdGVtcGxhdGUgICAgfCAxOSArKysrKysr KysrLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nyb3NzLWFybXY3bC1saW51eC1tdXNsZWFiaWhm L3RlbXBsYXRlIGIvc3JjcGtncy9jcm9zcy1hcm12N2wtbGludXgtbXVzbGVhYmloZi90ZW1wbGF0 ZQppbmRleCAwYTU4OGNkZjFhNTguLmU1YWYyYzljY2JmMiAxMDA2NDQKLS0tIGEvc3JjcGtncy9j cm9zcy1hcm12N2wtbGludXgtbXVzbGVhYmloZi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Nyb3Nz LWFybXY3bC1saW51eC1tdXNsZWFiaWhmL3RlbXBsYXRlCkBAIC0xLDI5ICsxLDMwIEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdjcm9zcy1hcm12N2wtbGludXgtbXVzbGVhYmloZicKLV9iaW51dGls c192ZXJzaW9uPTIuMzUuMQotX2djY192ZXJzaW9uPTEwLjIuMV9wcmUxCitfYmludXRpbHNfdmVy c2lvbj0yLjM5CitfZ2NjX3ZlcnNpb249MTIuMi4wCiBfbXVzbF92ZXJzaW9uPTEuMS4yNAogX2xp bnV4X3ZlcnNpb249NS4xMC40CiBfbGlidWNvbnRleHRfdmVyc2lvbj0xLjAKIHBrZ25hbWU9Y3Jv c3MtYXJtdjdsLWxpbnV4LW11c2xlYWJpaGYKLXZlcnNpb249MC4zNAotcmV2aXNpb249NAordmVy c2lvbj0wLjM1CityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT12b2lkLWNyb3NzCiBjb25maWd1cmVf YXJncz0iLS13aXRoLWFyY2g9YXJtdjctYSAtLXdpdGgtZnB1PXZmcHYzIC0td2l0aC1mbG9hdD1o YXJkIgogaG9zdG1ha2VkZXBlbmRzPSJ0ZXhpbmZvIHRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBw 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 NTE3ZjZkYmM4NmE1YjAyMzU5OTIyNzIzMDNlM2JlMGE5ODIwODczMSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogb3JlbzYzOSA8b3JlbzYzOTFAZ21haWwuY29tPgpEYXRlOiBTdW4sIDYg Tm92IDIwMjIgMTE6MzM6MjkgLTA4MDAKU3ViamVjdDogW1BBVENIIDIxLzM3XSBjcm9zcy1pNjg2 LWxpbnV4LW11c2w6IHVwZGF0ZSB0byBnY2MgMTIuMi4wLgoKLS0tCiBzcmNwa2dzL2Nyb3NzLWk2 ODYtbGludXgtbXVzbC90ZW1wbGF0ZSB8IDE5ICsrKysrKysrKystLS0tLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvY3Jvc3MtaTY4Ni1saW51eC1tdXNsL3RlbXBsYXRlIGIvc3JjcGtncy9jcm9zcy1pNjg2 LWxpbnV4LW11c2wvdGVtcGxhdGUKaW5kZXggOGJlMTZhMjMwZDhkLi5kNjI0YmI3YTMyNTQgMTAw NjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jvc3MtaTY4Ni1saW51eC1tdXNsL3RlbXBsYXRlCisrKyBiL3Ny Y3BrZ3MvY3Jvc3MtaTY4Ni1saW51eC1tdXNsL3RlbXBsYXRlCkBAIC0xLDI4ICsxLDI5IEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICdjcm9zcy1pNjg2LWxpbnV4LW11c2wnCi1fYmludXRpbHNfdmVy c2lvbj0yLjM1LjEKLV9nY2NfdmVyc2lvbj0xMC4yLjFfcHJlMQorX2JpbnV0aWxzX3ZlcnNpb249 Mi4zOQorX2djY192ZXJzaW9uPTEyLjIuMAogX211c2xfdmVyc2lvbj0xLjEuMjQKIF9saW51eF92 ZXJzaW9uPTUuMTAuNAogX2xpYnVjb250ZXh0X3ZlcnNpb249MS4wCiBwa2duYW1lPWNyb3NzLWk2 ODYtbGludXgtbXVzbAotdmVyc2lvbj0wLjM0Ci1yZXZpc2lvbj00Cit2ZXJzaW9uPTAuMzUKK3Jl dmlzaW9uPTEKIGJ1aWxkX3N0eWxlPXZvaWQtY3Jvc3MKIGhvc3RtYWtlZGVwZW5kcz0idGV4aW5m byB0YXIgZ2NjLW9iamMgZ2NjLWdvIGZsZXggcGVybCBweXRob24zIgotbWFrZWRlcGVuZHM9Imlz bDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6bGliLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIgor bWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZl bAorIHpsaWItZGV2ZWwgbGlienN0ZC1kZXZlbCIKIGRlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0k e3ZlcnNpb259XyR7cmV2aXNpb259Igogc2hvcnRfZGVzYz0iVm9pZCBjcm9zcyB0b29sY2hhaW4g Zm9yICR7cGtnbmFtZS9jcm9zcy19IgogbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lk bGludXgub3JnPiIKLWhvbWVwYWdlPSJodHRwczovL3d3dy52b2lkbGludXgub3JnLyIKIGxpY2Vu c2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdQTC0zLjAtb3ItbGF0ZXIsIE1JVCIKK2hvbWVwYWdlPSJo dHRwczovL3d3dy52b2lkbGludXgub3JnLyIKIGRpc3RmaWxlcz0iCiAgJHtHTlVfU0lURX0vYmlu dXRpbHMvYmludXRpbHMtJHtfYmludXRpbHNfdmVyc2lvbn0udGFyLnh6Ci0gaHR0cHM6Ly9kZXYu YWxwaW5lbGludXgub3JnL35uZW5vbG9kL2djYy0ke19nY2NfdmVyc2lvbn0udGFyLnh6CisgJHtH TlVfU0lURX0vZ2NjL2djYy0ke19nY2NfdmVyc2lvbn0vZ2NjLSR7X2djY192ZXJzaW9ufS50YXIu eHoKICBodHRwczovL211c2wubGliYy5vcmcvcmVsZWFzZXMvbXVzbC0ke19tdXNsX3ZlcnNpb259 LnRhci5negogICR7S0VSTkVMX1NJVEV9L2tlcm5lbC92NS54L2xpbnV4LSR7X2xpbnV4X3ZlcnNp b259LnRhci54egogIGh0dHBzOi8vZ2l0aHViLmNvbS9rYW5paW5pL2xpYnVjb250ZXh0L2FyY2hp dmUvbGlidWNvbnRleHQtJHtfbGlidWNvbnRleHRfdmVyc2lvbn0udGFyLmd6IgotY2hlY2tzdW09 IjNjZWQ5MWRiOWJmMDExODJiN2U0MjBlYWI2ODAzOWYyMDgzYWVkMGEyMTRjMDQyNGUyNTdlYWUz ZGRlZTg2MDcKLSA3NzJjZmQ1ZDMwZWI5Y2M1YTk5NmZlYzliYThjZGNiNDVkMzdkZjFjOWI1Nzcw NjEwMTAzYjgxNGI3MzJjNTkwCitjaGVja3N1bT0iNjQ1YzI1ZjU2M2I4YWRjMGE4MWRiZDZhNDFj ZmZiZjRkMzcwODNhMzgyZTAyZDVkM2RmNGY2NWMwOTUxNmQwMAorIGU1NDljZjljZjM1OTRhMDBl MjdiNjU4OWQ0MzIyZDcwZTA3MjBjZGQyMTNmMzliZWI0MTgxZTA2OTI2MjMwZmYKICAxMzcwYzlh ODEyYjJjZjJhN2Q5MjgwMjUxMGNjYTAwNThjYzM3ZTY2YTdiZWRkNzAwNTFmMGEzNDAxNTAyMmEz CiAgOTA0ZTM5NmMyNmU5OTkyYTE2Y2QxY2M5ODk0NjAxNzE1MzZiZWQ3NzM5YmYzNjA0OWY2ZWIw MjBlZTVkNTZlYwogIDIzNzE0ZTk5YTg3ZjZkZWE4MmU4YTA3M2M1MjYzMjUxNjFkZDY1NDYyNDU5 ODIwYjE2YTYxNjJiZTkxOTU1YmIiCgpGcm9tIDgwYmMwNzZlNGMzNGJlM2NmYWI2YzE5NTA1YjQx NzExZWU0MWJiMWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IG9yZW82MzkgPG9yZW82 MzkxQGdtYWlsLmNvbT4KRGF0ZTogU3VuLCA2IE5vdiAyMDIyIDExOjMzOjI5IC0wODAwClN1Ympl Y3Q6IFtQQVRDSCAyMi8zN10gY3Jvc3MtaTY4Ni1wYy1saW51eC1nbnU6IHVwZGF0ZSB0byBnY2Mg MTIuMi4wLgoKLS0tCiBzcmNwa2dzL2Nyb3NzLWk2ODYtcGMtbGludXgtZ251L3RlbXBsYXRlIHwg MTkgKysrKysrKysrKy0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyks IDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jcm9zcy1pNjg2LXBjLWxpbnV4 LWdudS90ZW1wbGF0ZSBiL3NyY3BrZ3MvY3Jvc3MtaTY4Ni1wYy1saW51eC1nbnUvdGVtcGxhdGUK aW5kZXggMjYzYTQzZjdhN2I4Li42YTllNTRkYjgwN2EgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jv c3MtaTY4Ni1wYy1saW51eC1nbnUvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9jcm9zcy1pNjg2LXBj LWxpbnV4LWdudS90ZW1wbGF0ZQpAQCAtMSwxNCArMSwxNSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZv ciAnY3Jvc3MtaTY4Ni1wYy1saW51eC1nbnUnCi1fYmludXRpbHNfdmVyc2lvbj0yLjM1LjEKLV9n Y2NfdmVyc2lvbj0xMC4yLjFfcHJlMQotX2dsaWJjX3ZlcnNpb249Mi4zMgorX2JpbnV0aWxzX3Zl cnNpb249Mi4zOQorX2djY192ZXJzaW9uPTEyLjIuMAorX2dsaWJjX3ZlcnNpb249Mi4zNgogX2xp bnV4X3ZlcnNpb249NS4xMC40CiBwa2duYW1lPWNyb3NzLWk2ODYtcGMtbGludXgtZ251Ci12ZXJz aW9uPTAuMzQKK3ZlcnNpb249MC4zNQogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9dm9pZC1jcm9z cwogaG9zdG1ha2VkZXBlbmRzPSJ0ZXhpbmZvIHRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJs IHB5dGhvbjMiCi1tYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2 ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwiCittYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBj LWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsCisgemxpYi1kZXZlbCBsaWJ6c3RkLWRldmVsIgog ZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCiBzaG9ydF9k ZXNjPSJWb2lkIGNyb3NzIHRvb2xjaGFpbiBmb3IgJHtwa2duYW1lL2Nyb3NzLX0iCiBtYWludGFp bmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgpAQCAtMTYsMTIgKzE3LDEyIEBA IGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdQTC0zLjAtb3ItbGF0ZXIsIExHUEwtMi4xLW9y LWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcvIgogZGlzdGZpbGVz PSIKICAke0dOVV9TSVRFfS9iaW51dGlscy9iaW51dGlscy0ke19iaW51dGlsc192ZXJzaW9ufS50 YXIueHoKLSBodHRwczovL2Rldi5hbHBpbmVsaW51eC5vcmcvfm5lbm9sb2QvZ2NjLSR7X2djY192 ZXJzaW9ufS50YXIueHoKKyAke0dOVV9TSVRFfS9nY2MvZ2NjLSR7X2djY192ZXJzaW9ufS9nY2Mt JHtfZ2NjX3ZlcnNpb259LnRhci54egogICR7R05VX1NJVEV9L2dsaWJjL2dsaWJjLSR7X2dsaWJj X3ZlcnNpb259LnRhci54egogICR7S0VSTkVMX1NJVEV9L2tlcm5lbC92NS54L2xpbnV4LSR7X2xp bnV4X3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPSIzY2VkOTFkYjliZjAxMTgyYjdlNDIwZWFi NjgwMzlmMjA4M2FlZDBhMjE0YzA0MjRlMjU3ZWFlM2RkZWU4NjA3Ci0gNzcyY2ZkNWQzMGViOWNj NWE5OTZmZWM5YmE4Y2RjYjQ1ZDM3ZGYxYzliNTc3MDYxMDEwM2I4MTRiNzMyYzU5MAotIDE2Mjdl YTU0ZjVhMWE4NDY3MDMyNTYzMzkzZTA5MDEwNzc2MjZkYzY2ZjM3ZjEwZWU2MzYzYmI3MjIyMjI4 MzYKK2NoZWNrc3VtPSI2NDVjMjVmNTYzYjhhZGMwYTgxZGJkNmE0MWNmZmJmNGQzNzA4M2EzODJl MDJkNWQzZGY0ZjY1YzA5NTE2ZDAwCisgZTU0OWNmOWNmMzU5NGEwMGUyN2I2NTg5ZDQzMjJkNzBl MDcyMGNkZDIxM2YzOWJlYjQxODFlMDY5MjYyMzBmZgorIDFjOTU5ZmVhMjQwOTA2MjI2MDYyY2I0 YjFlN2ViY2U3MWE5ZjBlM2MwODM2YzA5ZTdlMzQyM2Q0MzRmY2ZlNzUKICA5MDRlMzk2YzI2ZTk5 OTJhMTZjZDFjYzk4OTQ2MDE3MTUzNmJlZDc3MzliZjM2MDQ5ZjZlYjAyMGVlNWQ1NmVjIgogbm9j cm9zcz15ZXMKIAoKRnJvbSA1YjM5OWJkOTU2YTBmOGZhOWQ3MTQ1MjVkNjExYWJkNzE3N2M3ZGMx IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDxvcmVvNjM5MUBnbWFpbC5j b20+CkRhdGU6IFN1biwgNiBOb3YgMjAyMiAxMTozMzoyOSAtMDgwMApTdWJqZWN0OiBbUEFUQ0gg MjMvMzddIGNyb3NzLW1pcHMtbGludXgtbXVzbDogdXBkYXRlIHRvIGdjYyAxMi4yLjAuCgotLS0K IHNyY3BrZ3MvY3Jvc3MtbWlwcy1saW51eC1tdXNsL3RlbXBsYXRlIHwgMjEgKysrKysrKysrKyst LS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jcm9zcy1taXBzLWxpbnV4LW11c2wvdGVtcGxhdGUg Yi9zcmNwa2dzL2Nyb3NzLW1pcHMtbGludXgtbXVzbC90ZW1wbGF0ZQppbmRleCA5YjVkNTgxOWIx YTAuLjY3YTVjNDEzMzk2YyAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy1taXBzLWxpbnV4LW11 c2wvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9jcm9zcy1taXBzLWxpbnV4LW11c2wvdGVtcGxhdGUK QEAgLTEsMjggKzEsMjkgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLW1pcHMtbGludXgt bXVzbCcKLV9iaW51dGlsc192ZXJzaW9uPTIuMzUuMQotX2djY192ZXJzaW9uPTEwLjIuMV9wcmUx CitfYmludXRpbHNfdmVyc2lvbj0yLjM5CitfZ2NjX3ZlcnNpb249MTIuMi4wCiBfbXVzbF92ZXJz aW9uPTEuMS4yNAogX2xpbnV4X3ZlcnNpb249NS4xMC40CiBwa2duYW1lPWNyb3NzLW1pcHMtbGlu dXgtbXVzbAotdmVyc2lvbj0wLjM0Ci1yZXZpc2lvbj0zCit2ZXJzaW9uPTAuMzUKK3JldmlzaW9u PTEKIGJ1aWxkX3N0eWxlPXZvaWQtY3Jvc3MKIGNvbmZpZ3VyZV9hcmdzPSItLXdpdGgtYXJjaD1t aXBzMzJyMiAtLXdpdGgtZmxvYXQ9c29mdAogIC0td2l0aC1saW5rZXItaGFzaC1zdHlsZT1zeXN2 IgogaG9zdG1ha2VkZXBlbmRzPSJ0ZXhpbmZvIHRhciBnY2Mtb2JqYyBmbGV4IHBlcmwgcHl0aG9u MyIKLW1ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgemxpYi1kZXZlbCBnbXAt ZGV2ZWwgbXBmci1kZXZlbCIKK21ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwg Z21wLWRldmVsIG1wZnItZGV2ZWwKKyB6bGliLWRldmVsIGxpYnpzdGQtZGV2ZWwiCiBkZXBlbmRz PSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKIHNob3J0X2Rlc2M9IlZv aWQgY3Jvc3MgdG9vbGNoYWluIGZvciAke3BrZ25hbWUvY3Jvc3MtfSIKIG1haW50YWluZXI9Ik9y cGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCi1ob21lcGFnZT0iaHR0cHM6Ly93d3cudm9p ZGxpbnV4Lm9yZy8iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVy LCBNSVQiCitob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBkaXN0ZmlsZXM9 IgogICR7R05VX1NJVEV9L2JpbnV0aWxzL2JpbnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259LnRh ci54egotIGh0dHBzOi8vZGV2LmFscGluZWxpbnV4Lm9yZy9+bmVub2xvZC9nY2MtJHtfZ2NjX3Zl cnNpb259LnRhci54egotIGh0dHBzOi8vd3d3Lm11c2wtbGliYy5vcmcvcmVsZWFzZXMvbXVzbC0k e19tdXNsX3ZlcnNpb259LnRhci5negorICR7R05VX1NJVEV9L2djYy9nY2MtJHtfZ2NjX3ZlcnNp b259L2djYy0ke19nY2NfdmVyc2lvbn0udGFyLnh6CisgaHR0cHM6Ly9tdXNsLmxpYmMub3JnL3Jl bGVhc2VzL211c2wtJHtfbXVzbF92ZXJzaW9ufS50YXIuZ3oKICAke0tFUk5FTF9TSVRFfS9rZXJu ZWwvdjUueC9saW51eC0ke19saW51eF92ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0iM2NlZDkx ZGI5YmYwMTE4MmI3ZTQyMGVhYjY4MDM5ZjIwODNhZWQwYTIxNGMwNDI0ZTI1N2VhZTNkZGVlODYw NwotIDc3MmNmZDVkMzBlYjljYzVhOTk2ZmVjOWJhOGNkY2I0NWQzN2RmMWM5YjU3NzA2MTAxMDNi ODE0YjczMmM1OTAKK2NoZWNrc3VtPSI2NDVjMjVmNTYzYjhhZGMwYTgxZGJkNmE0MWNmZmJmNGQz NzA4M2EzODJlMDJkNWQzZGY0ZjY1YzA5NTE2ZDAwCisgZTU0OWNmOWNmMzU5NGEwMGUyN2I2NTg5 ZDQzMjJkNzBlMDcyMGNkZDIxM2YzOWJlYjQxODFlMDY5MjYyMzBmZgogIDEzNzBjOWE4MTJiMmNm MmE3ZDkyODAyNTEwY2NhMDA1OGNjMzdlNjZhN2JlZGQ3MDA1MWYwYTM0MDE1MDIyYTMKICA5MDRl Mzk2YzI2ZTk5OTJhMTZjZDFjYzk4OTQ2MDE3MTUzNmJlZDc3MzliZjM2MDQ5ZjZlYjAyMGVlNWQ1 NmVjIgogbm9jcm9zcz15ZXMKCkZyb20gZmRkODE3MWUyM2I1OTBlZWNiNTY4NWI1YjU4Zjg1Y2Ey YjM0MjQyZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogb3JlbzYzOSA8b3JlbzYzOTFA Z21haWwuY29tPgpEYXRlOiBTdW4sIDYgTm92IDIwMjIgMTE6MzM6MjkgLTA4MDAKU3ViamVjdDog W1BBVENIIDI0LzM3XSBjcm9zcy1taXBzLWxpbnV4LW11c2xoZjogdXBkYXRlIHRvIGdjYyAxMi4y LjAuCgotLS0KIHNyY3BrZ3MvY3Jvc3MtbWlwcy1saW51eC1tdXNsaGYvdGVtcGxhdGUgfCAyMSAr KysrKysrKysrKy0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCAx MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nyb3NzLW1pcHMtbGludXgtbXVz bGhmL3RlbXBsYXRlIGIvc3JjcGtncy9jcm9zcy1taXBzLWxpbnV4LW11c2xoZi90ZW1wbGF0ZQpp bmRleCBkNzU5MGFmOWVjMDMuLmJkZjg2MDBjZTk1YiAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9z cy1taXBzLWxpbnV4LW11c2xoZi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Nyb3NzLW1pcHMtbGlu dXgtbXVzbGhmL3RlbXBsYXRlCkBAIC0xLDI4ICsxLDI5IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9y ICdjcm9zcy1taXBzLWxpbnV4LW11c2xoZicKLV9iaW51dGlsc192ZXJzaW9uPTIuMzUuMQotX2dj Y192ZXJzaW9uPTEwLjIuMV9wcmUxCitfYmludXRpbHNfdmVyc2lvbj0yLjM5CitfZ2NjX3ZlcnNp b249MTIuMi4wCiBfbXVzbF92ZXJzaW9uPTEuMS4yNAogX2xpbnV4X3ZlcnNpb249NS4xMC40CiBw a2duYW1lPWNyb3NzLW1pcHMtbGludXgtbXVzbGhmCi12ZXJzaW9uPTAuMzQKLXJldmlzaW9uPTMK K3ZlcnNpb249MC4zNQorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9dm9pZC1jcm9zcwogY29uZmln dXJlX2FyZ3M9Ii0td2l0aC1hcmNoPW1pcHMzMnIyIC0td2l0aC1mbG9hdD1oYXJkCiAgLS13aXRo LWxpbmtlci1oYXNoLXN0eWxlPXN5c3YiCiBob3N0bWFrZWRlcGVuZHM9InRleGluZm8gdGFyIGdj Yy1vYmpjIGZsZXggcGVybCBweXRob24zIgotbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1w Yy1kZXZlbCB6bGliLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIgorbWFrZWRlcGVuZHM9Imlz bDE1LWRldmVsIGxpYm1wYy1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbAorIHpsaWItZGV2ZWwg bGlienN0ZC1kZXZlbCIKIGRlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2 aXNpb259Igogc2hvcnRfZGVzYz0iVm9pZCBjcm9zcyB0b29sY2hhaW4gZm9yICR7cGtnbmFtZS9j cm9zcy19IgogbWFpbnRhaW5lcj0iaGlwcGVyc29uMCA8aGlwcGVyc29uMEBnbWFpbC5jb20+Igot aG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcvIgogbGljZW5zZT0iR1BMLTIuMC1v ci1sYXRlciwgR1BMLTMuMC1vci1sYXRlciwgTUlUIgoraG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZv aWRsaW51eC5vcmcvIgogZGlzdGZpbGVzPSIKICAke0dOVV9TSVRFfS9iaW51dGlscy9iaW51dGls cy0ke19iaW51dGlsc192ZXJzaW9ufS50YXIueHoKLSBodHRwczovL2Rldi5hbHBpbmVsaW51eC5v cmcvfm5lbm9sb2QvZ2NjLSR7X2djY192ZXJzaW9ufS50YXIueHoKLSBodHRwczovL3d3dy5tdXNs LWxpYmMub3JnL3JlbGVhc2VzL211c2wtJHtfbXVzbF92ZXJzaW9ufS50YXIuZ3oKKyAke0dOVV9T SVRFfS9nY2MvZ2NjLSR7X2djY192ZXJzaW9ufS9nY2MtJHtfZ2NjX3ZlcnNpb259LnRhci54egor IGh0dHBzOi8vbXVzbC5saWJjLm9yZy9yZWxlYXNlcy9tdXNsLSR7X211c2xfdmVyc2lvbn0udGFy Lmd6CiAgJHtLRVJORUxfU0lURX0va2VybmVsL3Y1LngvbGludXgtJHtfbGludXhfdmVyc2lvbn0u dGFyLnh6IgotY2hlY2tzdW09IjNjZWQ5MWRiOWJmMDExODJiN2U0MjBlYWI2ODAzOWYyMDgzYWVk MGEyMTRjMDQyNGUyNTdlYWUzZGRlZTg2MDcKLSA3NzJjZmQ1ZDMwZWI5Y2M1YTk5NmZlYzliYThj ZGNiNDVkMzdkZjFjOWI1NzcwNjEwMTAzYjgxNGI3MzJjNTkwCitjaGVja3N1bT0iNjQ1YzI1ZjU2 M2I4YWRjMGE4MWRiZDZhNDFjZmZiZjRkMzcwODNhMzgyZTAyZDVkM2RmNGY2NWMwOTUxNmQwMAor IGU1NDljZjljZjM1OTRhMDBlMjdiNjU4OWQ0MzIyZDcwZTA3MjBjZGQyMTNmMzliZWI0MTgxZTA2 OTI2MjMwZmYKICAxMzcwYzlhODEyYjJjZjJhN2Q5MjgwMjUxMGNjYTAwNThjYzM3ZTY2YTdiZWRk NzAwNTFmMGEzNDAxNTAyMmEzCiAgOTA0ZTM5NmMyNmU5OTkyYTE2Y2QxY2M5ODk0NjAxNzE1MzZi ZWQ3NzM5YmYzNjA0OWY2ZWIwMjBlZTVkNTZlYyIKIG5vY3Jvc3M9eWVzCgpGcm9tIGU2MDllYWU4 YmU0ZTZhNWZmYjhhN2Y5M2JkMjZjOTFkNjUwZjZmMTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IG9yZW82MzkgPG9yZW82MzkxQGdtYWlsLmNvbT4KRGF0ZTogU3VuLCA2IE5vdiAyMDIy IDExOjMzOjI5IC0wODAwClN1YmplY3Q6IFtQQVRDSCAyNS8zN10gY3Jvc3MtbWlwc2VsLWxpbnV4 LW11c2w6IHVwZGF0ZSB0byBnY2MgMTIuMi4wLgoKLS0tCiBzcmNwa2dzL2Nyb3NzLW1pcHNlbC1s aW51eC1tdXNsL3RlbXBsYXRlIHwgMjEgKysrKysrKysrKystLS0tLS0tLS0tCiAxIGZpbGUgY2hh bmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9jcm9zcy1taXBzZWwtbGludXgtbXVzbC90ZW1wbGF0ZSBiL3NyY3BrZ3MvY3Jvc3MtbWlw c2VsLWxpbnV4LW11c2wvdGVtcGxhdGUKaW5kZXggMWFjYmE3MDE2ZGJjLi5kZTQ5Mzg3ZDUxN2Ig MTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jvc3MtbWlwc2VsLWxpbnV4LW11c2wvdGVtcGxhdGUKKysr IGIvc3JjcGtncy9jcm9zcy1taXBzZWwtbGludXgtbXVzbC90ZW1wbGF0ZQpAQCAtMSwyOCArMSwy OSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnY3Jvc3MtbWlwc2VsLWxpbnV4LW11c2wnCi1fYmlu dXRpbHNfdmVyc2lvbj0yLjM1LjEKLV9nY2NfdmVyc2lvbj0xMC4yLjFfcHJlMQorX2JpbnV0aWxz X3ZlcnNpb249Mi4zOQorX2djY192ZXJzaW9uPTEyLjIuMAogX211c2xfdmVyc2lvbj0xLjEuMjQK IF9saW51eF92ZXJzaW9uPTUuMTAuNAogcGtnbmFtZT1jcm9zcy1taXBzZWwtbGludXgtbXVzbAot dmVyc2lvbj0wLjM0Ci1yZXZpc2lvbj0zCit2ZXJzaW9uPTAuMzUKK3JldmlzaW9uPTEKIGJ1aWxk X3N0eWxlPXZvaWQtY3Jvc3MKIGNvbmZpZ3VyZV9hcmdzPSItLXdpdGgtYXJjaD1taXBzMzJyMiAt LXdpdGgtZmxvYXQ9c29mdAogIC0td2l0aC1saW5rZXItaGFzaC1zdHlsZT1zeXN2IgogaG9zdG1h a2VkZXBlbmRzPSJ0ZXhpbmZvIHRhciBnY2Mtb2JqYyBmbGV4IHBlcmwgcHl0aG9uMyIKLW1ha2Vk ZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBm ci1kZXZlbCIKK21ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgZ21wLWRldmVs IG1wZnItZGV2ZWwKKyB6bGliLWRldmVsIGxpYnpzdGQtZGV2ZWwiCiBkZXBlbmRzPSIke3BrZ25h bWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKIHNob3J0X2Rlc2M9IlZvaWQgY3Jvc3Mg dG9vbGNoYWluIGZvciAke3BrZ25hbWUvY3Jvc3MtfSIKIG1haW50YWluZXI9Ik9ycGhhbmVkIDxv cnBoYW5Adm9pZGxpbnV4Lm9yZz4iCi1ob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9y Zy8iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVyLCBNSVQiCito b21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBkaXN0ZmlsZXM9IgogICR7R05V X1NJVEV9L2JpbnV0aWxzL2JpbnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259LnRhci54egotIGh0 dHBzOi8vZGV2LmFscGluZWxpbnV4Lm9yZy9+bmVub2xvZC9nY2MtJHtfZ2NjX3ZlcnNpb259LnRh ci54egotIGh0dHBzOi8vd3d3Lm11c2wtbGliYy5vcmcvcmVsZWFzZXMvbXVzbC0ke19tdXNsX3Zl cnNpb259LnRhci5negorICR7R05VX1NJVEV9L2djYy9nY2MtJHtfZ2NjX3ZlcnNpb259L2djYy0k e19nY2NfdmVyc2lvbn0udGFyLnh6CisgaHR0cHM6Ly9tdXNsLmxpYmMub3JnL3JlbGVhc2VzL211 c2wtJHtfbXVzbF92ZXJzaW9ufS50YXIuZ3oKICAke0tFUk5FTF9TSVRFfS9rZXJuZWwvdjUueC9s aW51eC0ke19saW51eF92ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0iM2NlZDkxZGI5YmYwMTE4 MmI3ZTQyMGVhYjY4MDM5ZjIwODNhZWQwYTIxNGMwNDI0ZTI1N2VhZTNkZGVlODYwNwotIDc3MmNm ZDVkMzBlYjljYzVhOTk2ZmVjOWJhOGNkY2I0NWQzN2RmMWM5YjU3NzA2MTAxMDNiODE0YjczMmM1 OTAKK2NoZWNrc3VtPSI2NDVjMjVmNTYzYjhhZGMwYTgxZGJkNmE0MWNmZmJmNGQzNzA4M2EzODJl MDJkNWQzZGY0ZjY1YzA5NTE2ZDAwCisgZTU0OWNmOWNmMzU5NGEwMGUyN2I2NTg5ZDQzMjJkNzBl MDcyMGNkZDIxM2YzOWJlYjQxODFlMDY5MjYyMzBmZgogIDEzNzBjOWE4MTJiMmNmMmE3ZDkyODAy NTEwY2NhMDA1OGNjMzdlNjZhN2JlZGQ3MDA1MWYwYTM0MDE1MDIyYTMKICA5MDRlMzk2YzI2ZTk5 OTJhMTZjZDFjYzk4OTQ2MDE3MTUzNmJlZDc3MzliZjM2MDQ5ZjZlYjAyMGVlNWQ1NmVjIgogbm9j cm9zcz15ZXMKCkZyb20gODM4NDdkY2FhNTE2MjliZWNmZTY5YzM3N2IxMzViN2YwYWFhNjQ4MiBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogb3JlbzYzOSA8b3JlbzYzOTFAZ21haWwuY29t PgpEYXRlOiBTdW4sIDYgTm92IDIwMjIgMTE6MzM6MjkgLTA4MDAKU3ViamVjdDogW1BBVENIIDI2 LzM3XSBjcm9zcy1taXBzZWwtbGludXgtbXVzbGhmOiB1cGRhdGUgdG8gZ2NjIDEyLjIuMC4KCi0t LQogc3JjcGtncy9jcm9zcy1taXBzZWwtbGludXgtbXVzbGhmL3RlbXBsYXRlIHwgMjEgKysrKysr KysrKystLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgMTAgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jcm9zcy1taXBzZWwtbGludXgtbXVzbGhm L3RlbXBsYXRlIGIvc3JjcGtncy9jcm9zcy1taXBzZWwtbGludXgtbXVzbGhmL3RlbXBsYXRlCmlu ZGV4IGU0YTU1ZjAyOGJjNC4uYjI3Y2U2NDc1YTM4IDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nyb3Nz LW1pcHNlbC1saW51eC1tdXNsaGYvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9jcm9zcy1taXBzZWwt bGludXgtbXVzbGhmL3RlbXBsYXRlCkBAIC0xLDI4ICsxLDI5IEBACiAjIFRlbXBsYXRlIGZpbGUg Zm9yICdjcm9zcy1taXBzZWwtbGludXgtbXVzbGhmJwotX2JpbnV0aWxzX3ZlcnNpb249Mi4zNS4x Ci1fZ2NjX3ZlcnNpb249MTAuMi4xX3ByZTEKK19iaW51dGlsc192ZXJzaW9uPTIuMzkKK19nY2Nf dmVyc2lvbj0xMi4yLjAKIF9tdXNsX3ZlcnNpb249MS4xLjI0CiBfbGludXhfdmVyc2lvbj01LjEw LjQKIHBrZ25hbWU9Y3Jvc3MtbWlwc2VsLWxpbnV4LW11c2xoZgotdmVyc2lvbj0wLjM0Ci1yZXZp c2lvbj0zCit2ZXJzaW9uPTAuMzUKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPXZvaWQtY3Jvc3MK IGNvbmZpZ3VyZV9hcmdzPSItLXdpdGgtYXJjaD1taXBzMzJyMiAtLXdpdGgtZmxvYXQ9aGFyZAog IC0td2l0aC1saW5rZXItaGFzaC1zdHlsZT1zeXN2IgogaG9zdG1ha2VkZXBlbmRzPSJ0ZXhpbmZv IHRhciBnY2Mtb2JqYyBmbGV4IHBlcmwgcHl0aG9uMyIKLW1ha2VkZXBlbmRzPSJpc2wxNS1kZXZl bCBsaWJtcGMtZGV2ZWwgemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbCIKK21ha2VkZXBl bmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwKKyB6bGli LWRldmVsIGxpYnpzdGQtZGV2ZWwiCiBkZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9u fV8ke3JldmlzaW9ufSIKIHNob3J0X2Rlc2M9IlZvaWQgY3Jvc3MgdG9vbGNoYWluIGZvciAke3Br Z25hbWUvY3Jvc3MtfSIKIG1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9y Zz4iCi1ob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBsaWNlbnNlPSJHUEwt Mi4wLW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVyLCBNSVQiCitob21lcGFnZT0iaHR0cHM6Ly93 d3cudm9pZGxpbnV4Lm9yZy8iCiBkaXN0ZmlsZXM9IgogICR7R05VX1NJVEV9L2JpbnV0aWxzL2Jp bnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259LnRhci54egotIGh0dHBzOi8vZGV2LmFscGluZWxp bnV4Lm9yZy9+bmVub2xvZC9nY2MtJHtfZ2NjX3ZlcnNpb259LnRhci54egotIGh0dHBzOi8vd3d3 Lm11c2wtbGliYy5vcmcvcmVsZWFzZXMvbXVzbC0ke19tdXNsX3ZlcnNpb259LnRhci5negorICR7 R05VX1NJVEV9L2djYy9nY2MtJHtfZ2NjX3ZlcnNpb259L2djYy0ke19nY2NfdmVyc2lvbn0udGFy Lnh6CisgaHR0cHM6Ly9tdXNsLmxpYmMub3JnL3JlbGVhc2VzL211c2wtJHtfbXVzbF92ZXJzaW9u fS50YXIuZ3oKICAke0tFUk5FTF9TSVRFfS9rZXJuZWwvdjUueC9saW51eC0ke19saW51eF92ZXJz aW9ufS50YXIueHoiCi1jaGVja3N1bT0iM2NlZDkxZGI5YmYwMTE4MmI3ZTQyMGVhYjY4MDM5ZjIw ODNhZWQwYTIxNGMwNDI0ZTI1N2VhZTNkZGVlODYwNwotIDc3MmNmZDVkMzBlYjljYzVhOTk2ZmVj OWJhOGNkY2I0NWQzN2RmMWM5YjU3NzA2MTAxMDNiODE0YjczMmM1OTAKK2NoZWNrc3VtPSI2NDVj MjVmNTYzYjhhZGMwYTgxZGJkNmE0MWNmZmJmNGQzNzA4M2EzODJlMDJkNWQzZGY0ZjY1YzA5NTE2 ZDAwCisgZTU0OWNmOWNmMzU5NGEwMGUyN2I2NTg5ZDQzMjJkNzBlMDcyMGNkZDIxM2YzOWJlYjQx ODFlMDY5MjYyMzBmZgogIDEzNzBjOWE4MTJiMmNmMmE3ZDkyODAyNTEwY2NhMDA1OGNjMzdlNjZh N2JlZGQ3MDA1MWYwYTM0MDE1MDIyYTMKICA5MDRlMzk2YzI2ZTk5OTJhMTZjZDFjYzk4OTQ2MDE3 MTUzNmJlZDc3MzliZjM2MDQ5ZjZlYjAyMGVlNWQ1NmVjIgogbm9jcm9zcz15ZXMKCkZyb20gZjQ2 ZDVhMjJlNmJjYWM3OTcyNGRkNTZhNzMxNjUxZDhmYzA1MzdiNyBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogb3JlbzYzOSA8b3JlbzYzOTFAZ21haWwuY29tPgpEYXRlOiBTdW4sIDYgTm92 IDIwMjIgMTE6MzM6MjkgLTA4MDAKU3ViamVjdDogW1BBVENIIDI3LzM3XSBjcm9zcy1wb3dlcnBj LWxpbnV4LWdudTogdXBkYXRlIHRvIGdjYyAxMi4yLjAuCgotLS0KIHNyY3BrZ3MvY3Jvc3MtcG93 ZXJwYy1saW51eC1nbnUvdGVtcGxhdGUgfCAxOSArKysrKysrKysrLS0tLS0tLS0tCiAxIGZpbGUg Y2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmNwa2dzL2Nyb3NzLXBvd2VycGMtbGludXgtZ251L3RlbXBsYXRlIGIvc3JjcGtncy9jcm9zcy1w b3dlcnBjLWxpbnV4LWdudS90ZW1wbGF0ZQppbmRleCBiOTdhMjFkMGQ3MmUuLjc5NTc5ZTA5M2Ix MiAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy1wb3dlcnBjLWxpbnV4LWdudS90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL2Nyb3NzLXBvd2VycGMtbGludXgtZ251L3RlbXBsYXRlCkBAIC0xLDE1ICsx LDE2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdjcm9zcy1wb3dlcnBjLWxpbnV4LWdudScKLV9i aW51dGlsc192ZXJzaW9uPTIuMzUuMQotX2djY192ZXJzaW9uPTEwLjIuMV9wcmUxCi1fZ2xpYmNf dmVyc2lvbj0yLjMyCitfYmludXRpbHNfdmVyc2lvbj0yLjM5CitfZ2NjX3ZlcnNpb249MTIuMi4w CitfZ2xpYmNfdmVyc2lvbj0yLjM2CiBfbGludXhfdmVyc2lvbj01LjEwLjQKIHBrZ25hbWU9Y3Jv c3MtcG93ZXJwYy1saW51eC1nbnUKLXZlcnNpb249MC4zNAordmVyc2lvbj0wLjM1CiByZXZpc2lv bj0xCiBidWlsZF9zdHlsZT12b2lkLWNyb3NzCiBjb25maWd1cmVfYXJncz0iLS1lbmFibGUtc2Vj dXJlcGx0IC0tZGlzYWJsZS12dGFibGUtdmVyaWZ5IgogaG9zdG1ha2VkZXBlbmRzPSJ0ZXhpbmZv IHRhciBnY2Mtb2JqYyBmbGV4IHBlcmwgcHl0aG9uMyIKLW1ha2VkZXBlbmRzPSJpc2wxNS1kZXZl bCBsaWJtcGMtZGV2ZWwgemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbCIKK21ha2VkZXBl bmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwKKyB6bGli LWRldmVsIGxpYnpzdGQtZGV2ZWwiCiBkZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9u fV8ke3JldmlzaW9ufSIKIHNob3J0X2Rlc2M9IlZvaWQgY3Jvc3MgdG9vbGNoYWluIGZvciAke3Br Z25hbWUvY3Jvc3MtfSIKIG1haW50YWluZXI9IlRob21hcyBCYXR0ZW4gPHN0ZW5zdG9ycG1jQGdt YWlsLmNvbT4iCkBAIC0xNywxMiArMTgsMTIgQEAgbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwg R1BMLTMuMC1vci1sYXRlciwgTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93 d3cudm9pZGxpbnV4Lm9yZy8iCiBkaXN0ZmlsZXM9IgogICR7R05VX1NJVEV9L2JpbnV0aWxzL2Jp bnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259LnRhci54egotIGh0dHBzOi8vZGV2LmFscGluZWxp bnV4Lm9yZy9+bmVub2xvZC9nY2MtJHtfZ2NjX3ZlcnNpb259LnRhci54egorICR7R05VX1NJVEV9 L2djYy9nY2MtJHtfZ2NjX3ZlcnNpb259L2djYy0ke19nY2NfdmVyc2lvbn0udGFyLnh6CiAgJHtH TlVfU0lURX0vZ2xpYmMvZ2xpYmMtJHtfZ2xpYmNfdmVyc2lvbn0udGFyLnh6CiAgJHtLRVJORUxf U0lURX0va2VybmVsL3Y1LngvbGludXgtJHtfbGludXhfdmVyc2lvbn0udGFyLnh6IgotY2hlY2tz dW09IjNjZWQ5MWRiOWJmMDExODJiN2U0MjBlYWI2ODAzOWYyMDgzYWVkMGEyMTRjMDQyNGUyNTdl YWUzZGRlZTg2MDcKLSA3NzJjZmQ1ZDMwZWI5Y2M1YTk5NmZlYzliYThjZGNiNDVkMzdkZjFjOWI1 NzcwNjEwMTAzYjgxNGI3MzJjNTkwCi0gMTYyN2VhNTRmNWExYTg0NjcwMzI1NjMzOTNlMDkwMTA3 NzYyNmRjNjZmMzdmMTBlZTYzNjNiYjcyMjIyMjgzNgorY2hlY2tzdW09IjY0NWMyNWY1NjNiOGFk YzBhODFkYmQ2YTQxY2ZmYmY0ZDM3MDgzYTM4MmUwMmQ1ZDNkZjRmNjVjMDk1MTZkMDAKKyBlNTQ5 Y2Y5Y2YzNTk0YTAwZTI3YjY1ODlkNDMyMmQ3MGUwNzIwY2RkMjEzZjM5YmViNDE4MWUwNjkyNjIz MGZmCisgMWM5NTlmZWEyNDA5MDYyMjYwNjJjYjRiMWU3ZWJjZTcxYTlmMGUzYzA4MzZjMDllN2Uz NDIzZDQzNGZjZmU3NQogIDkwNGUzOTZjMjZlOTk5MmExNmNkMWNjOTg5NDYwMTcxNTM2YmVkNzcz OWJmMzYwNDlmNmViMDIwZWU1ZDU2ZWMiCiBub2Nyb3NzPXllcwogCgpGcm9tIGU1NzNhMGEyNmRi ZDU0ZjA2ZmU5YzUwYTlhMGMxOTU2OTlmMzExYTIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IG9yZW82MzkgPG9yZW82MzkxQGdtYWlsLmNvbT4KRGF0ZTogU3VuLCA2IE5vdiAyMDIyIDEx OjMzOjI5IC0wODAwClN1YmplY3Q6IFtQQVRDSCAyOC8zN10gY3Jvc3MtcG93ZXJwYy1saW51eC1t dXNsOiB1cGRhdGUgdG8gZ2NjIDEyLjIuMC4KCi0tLQogc3JjcGtncy9jcm9zcy1wb3dlcnBjLWxp bnV4LW11c2wvdGVtcGxhdGUgfCAxOSArKysrKysrKysrLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdl ZCwgMTAgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dz L2Nyb3NzLXBvd2VycGMtbGludXgtbXVzbC90ZW1wbGF0ZSBiL3NyY3BrZ3MvY3Jvc3MtcG93ZXJw Yy1saW51eC1tdXNsL3RlbXBsYXRlCmluZGV4IGY5YjIyZjA2MTBkMy4uOWJiNmFjZDM1OWI2IDEw MDY0NAotLS0gYS9zcmNwa2dzL2Nyb3NzLXBvd2VycGMtbGludXgtbXVzbC90ZW1wbGF0ZQorKysg Yi9zcmNwa2dzL2Nyb3NzLXBvd2VycGMtbGludXgtbXVzbC90ZW1wbGF0ZQpAQCAtMSwyOCArMSwy OSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnY3Jvc3MtcG93ZXJwYy1saW51eC1tdXNsJwotX2Jp bnV0aWxzX3ZlcnNpb249Mi4zNS4xCi1fZ2NjX3ZlcnNpb249MTAuMi4xX3ByZTEKK19iaW51dGls c192ZXJzaW9uPTIuMzkKK19nY2NfdmVyc2lvbj0xMi4yLjAKIF9tdXNsX3ZlcnNpb249MS4xLjI0 CiBfbGludXhfdmVyc2lvbj01LjEwLjQKIHBrZ25hbWU9Y3Jvc3MtcG93ZXJwYy1saW51eC1tdXNs Ci12ZXJzaW9uPTAuMzQKLXJldmlzaW9uPTMKK3ZlcnNpb249MC4zNQorcmV2aXNpb249MQogYnVp bGRfc3R5bGU9dm9pZC1jcm9zcwogY29uZmlndXJlX2FyZ3M9Ii0tZW5hYmxlLXNlY3VyZXBsdCAt LWRpc2FibGUtdnRhYmxlLXZlcmlmeQogIC0tZGlzYWJsZS1kZWNpbWFsLWZsb2F0IgogaG9zdG1h a2VkZXBlbmRzPSJ0ZXhpbmZvIHRhciBnY2Mtb2JqYyBmbGV4IHBlcmwgcHl0aG9uMyIKLW1ha2Vk ZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBm ci1kZXZlbCIKK21ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgZ21wLWRldmVs IG1wZnItZGV2ZWwKKyB6bGliLWRldmVsIGxpYnpzdGQtZGV2ZWwiCiBkZXBlbmRzPSIke3BrZ25h bWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKIHNob3J0X2Rlc2M9IlZvaWQgY3Jvc3Mg dG9vbGNoYWluIGZvciAke3BrZ25hbWUvY3Jvc3MtfSIKIG1haW50YWluZXI9IlRob21hcyBCYXR0 ZW4gPHN0ZW5zdG9ycG1jQGdtYWlsLmNvbT4iCi1ob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxp bnV4Lm9yZy8iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVyLCBN SVQiCitob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBkaXN0ZmlsZXM9Igog ICR7R05VX1NJVEV9L2JpbnV0aWxzL2JpbnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259LnRhci54 egotIGh0dHBzOi8vZGV2LmFscGluZWxpbnV4Lm9yZy9+bmVub2xvZC9nY2MtJHtfZ2NjX3ZlcnNp b259LnRhci54egorICR7R05VX1NJVEV9L2djYy9nY2MtJHtfZ2NjX3ZlcnNpb259L2djYy0ke19n Y2NfdmVyc2lvbn0udGFyLnh6CiAgaHR0cHM6Ly9tdXNsLmxpYmMub3JnL3JlbGVhc2VzL211c2wt JHtfbXVzbF92ZXJzaW9ufS50YXIuZ3oKICAke0tFUk5FTF9TSVRFfS9rZXJuZWwvdjUueC9saW51 eC0ke19saW51eF92ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0iM2NlZDkxZGI5YmYwMTE4MmI3 ZTQyMGVhYjY4MDM5ZjIwODNhZWQwYTIxNGMwNDI0ZTI1N2VhZTNkZGVlODYwNwotIDc3MmNmZDVk MzBlYjljYzVhOTk2ZmVjOWJhOGNkY2I0NWQzN2RmMWM5YjU3NzA2MTAxMDNiODE0YjczMmM1OTAK K2NoZWNrc3VtPSI2NDVjMjVmNTYzYjhhZGMwYTgxZGJkNmE0MWNmZmJmNGQzNzA4M2EzODJlMDJk NWQzZGY0ZjY1YzA5NTE2ZDAwCisgZTU0OWNmOWNmMzU5NGEwMGUyN2I2NTg5ZDQzMjJkNzBlMDcy MGNkZDIxM2YzOWJlYjQxODFlMDY5MjYyMzBmZgogIDEzNzBjOWE4MTJiMmNmMmE3ZDkyODAyNTEw Y2NhMDA1OGNjMzdlNjZhN2JlZGQ3MDA1MWYwYTM0MDE1MDIyYTMKICA5MDRlMzk2YzI2ZTk5OTJh MTZjZDFjYzk4OTQ2MDE3MTUzNmJlZDc3MzliZjM2MDQ5ZjZlYjAyMGVlNWQ1NmVjIgogbm9jcm9z cz15ZXMKCkZyb20gYWVkNTQ2MDg5MjY2ZGI5MTZlNzU4YzFlZjEwYTJkYTgxODY5ZjRjZiBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogb3JlbzYzOSA8b3JlbzYzOTFAZ21haWwuY29tPgpE YXRlOiBTdW4sIDYgTm92IDIwMjIgMTE6MzM6MjkgLTA4MDAKU3ViamVjdDogW1BBVENIIDI5LzM3 XSBjcm9zcy1wb3dlcnBjNjQtbGludXgtZ251OiB1cGRhdGUgdG8gZ2NjIDEyLjIuMC4KCi0tLQog c3JjcGtncy9jcm9zcy1wb3dlcnBjNjQtbGludXgtZ251L3RlbXBsYXRlIHwgMTkgKysrKysrKysr Ky0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jcm9zcy1wb3dlcnBjNjQtbGludXgtZ251L3RlbXBs YXRlIGIvc3JjcGtncy9jcm9zcy1wb3dlcnBjNjQtbGludXgtZ251L3RlbXBsYXRlCmluZGV4IDM1 Y2ZjYWE2ZjAyZS4uMmQxNTNkMDBhZGQ2IDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nyb3NzLXBvd2Vy cGM2NC1saW51eC1nbnUvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9jcm9zcy1wb3dlcnBjNjQtbGlu dXgtZ251L3RlbXBsYXRlCkBAIC0xLDE2ICsxLDE3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdj cm9zcy1wb3dlcnBjNjQtbGludXgtZ251JwotX2JpbnV0aWxzX3ZlcnNpb249Mi4zNS4xCi1fZ2Nj X3ZlcnNpb249MTAuMi4xX3ByZTEKLV9nbGliY192ZXJzaW9uPTIuMzIKK19iaW51dGlsc192ZXJz aW9uPTIuMzkKK19nY2NfdmVyc2lvbj0xMi4yLjAKK19nbGliY192ZXJzaW9uPTIuMzYKIF9saW51 eF92ZXJzaW9uPTUuMTAuNAogcGtnbmFtZT1jcm9zcy1wb3dlcnBjNjQtbGludXgtZ251Ci12ZXJz aW9uPTAuMzQKK3ZlcnNpb249MC4zNQogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9dm9pZC1jcm9z cwogY29uZmlndXJlX2FyZ3M9Ii0tZW5hYmxlLXNlY3VyZXBsdCAtLWRpc2FibGUtdnRhYmxlLXZl cmlmeSAtLXdpdGgtYWJpPWVsZnYyCiAgLS1lbmFibGUtdGFyZ2V0cz1wb3dlcnBjLWxpbnV4Igog aG9zdG1ha2VkZXBlbmRzPSJ0ZXhpbmZvIHRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5 dGhvbjMiCi1tYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwg Z21wLWRldmVsIG1wZnItZGV2ZWwiCittYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRl dmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsCisgemxpYi1kZXZlbCBsaWJ6c3RkLWRldmVsIgogZGVw ZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCiBzaG9ydF9kZXNj PSJWb2lkIGNyb3NzIHRvb2xjaGFpbiBmb3IgJHtwa2duYW1lL2Nyb3NzLX0iCiBtYWludGFpbmVy PSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgpAQCAtMTgsMTIgKzE5LDEyIEBAIGxp Y2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdQTC0zLjAtb3ItbGF0ZXIsIExHUEwtMi4xLW9yLWxh dGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcvIgogZGlzdGZpbGVzPSIK ICAke0dOVV9TSVRFfS9iaW51dGlscy9iaW51dGlscy0ke19iaW51dGlsc192ZXJzaW9ufS50YXIu eHoKLSBodHRwczovL2Rldi5hbHBpbmVsaW51eC5vcmcvfm5lbm9sb2QvZ2NjLSR7X2djY192ZXJz aW9ufS50YXIueHoKKyAke0dOVV9TSVRFfS9nY2MvZ2NjLSR7X2djY192ZXJzaW9ufS9nY2MtJHtf Z2NjX3ZlcnNpb259LnRhci54egogICR7R05VX1NJVEV9L2dsaWJjL2dsaWJjLSR7X2dsaWJjX3Zl cnNpb259LnRhci54egogICR7S0VSTkVMX1NJVEV9L2tlcm5lbC92NS54L2xpbnV4LSR7X2xpbnV4 X3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPSIzY2VkOTFkYjliZjAxMTgyYjdlNDIwZWFiNjgw MzlmMjA4M2FlZDBhMjE0YzA0MjRlMjU3ZWFlM2RkZWU4NjA3Ci0gNzcyY2ZkNWQzMGViOWNjNWE5 OTZmZWM5YmE4Y2RjYjQ1ZDM3ZGYxYzliNTc3MDYxMDEwM2I4MTRiNzMyYzU5MAotIDE2MjdlYTU0 ZjVhMWE4NDY3MDMyNTYzMzkzZTA5MDEwNzc2MjZkYzY2ZjM3ZjEwZWU2MzYzYmI3MjIyMjI4MzYK K2NoZWNrc3VtPSI2NDVjMjVmNTYzYjhhZGMwYTgxZGJkNmE0MWNmZmJmNGQzNzA4M2EzODJlMDJk NWQzZGY0ZjY1YzA5NTE2ZDAwCisgZTU0OWNmOWNmMzU5NGEwMGUyN2I2NTg5ZDQzMjJkNzBlMDcy MGNkZDIxM2YzOWJlYjQxODFlMDY5MjYyMzBmZgorIDFjOTU5ZmVhMjQwOTA2MjI2MDYyY2I0YjFl N2ViY2U3MWE5ZjBlM2MwODM2YzA5ZTdlMzQyM2Q0MzRmY2ZlNzUKICA5MDRlMzk2YzI2ZTk5OTJh MTZjZDFjYzk4OTQ2MDE3MTUzNmJlZDc3MzliZjM2MDQ5ZjZlYjAyMGVlNWQ1NmVjIgogbm9jcm9z cz15ZXMKIAoKRnJvbSA0MTc1OTM0ODY4MGNmYWM5NmM2OTcwMDRkNzNiNTI2MmRjMDQ5OTc3IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDxvcmVvNjM5MUBnbWFpbC5jb20+ CkRhdGU6IFN1biwgNiBOb3YgMjAyMiAxMTozMzoyOSAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMzAv MzddIGNyb3NzLXBvd2VycGM2NC1saW51eC1tdXNsOiB1cGRhdGUgdG8gZ2NjIDEyLjIuMC4KCi0t LQogc3JjcGtncy9jcm9zcy1wb3dlcnBjNjQtbGludXgtbXVzbC90ZW1wbGF0ZSB8IDE5ICsrKysr KysrKystLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCA5IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY3Jvc3MtcG93ZXJwYzY0LWxpbnV4LW11c2wv dGVtcGxhdGUgYi9zcmNwa2dzL2Nyb3NzLXBvd2VycGM2NC1saW51eC1tdXNsL3RlbXBsYXRlCmlu ZGV4IDAxNmYxODc3NmE2ZC4uZTA4NDhmZTBiZmY3IDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nyb3Nz LXBvd2VycGM2NC1saW51eC1tdXNsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3MtcG93ZXJw YzY0LWxpbnV4LW11c2wvdGVtcGxhdGUKQEAgLTEsMzAgKzEsMzEgQEAKICMgVGVtcGxhdGUgZmls ZSBmb3IgJ2Nyb3NzLXBvd2VycGM2NC1saW51eC1tdXNsJwotX2JpbnV0aWxzX3ZlcnNpb249Mi4z NS4xCi1fZ2NjX3ZlcnNpb249MTAuMi4xX3ByZTEKK19iaW51dGlsc192ZXJzaW9uPTIuMzkKK19n Y2NfdmVyc2lvbj0xMi4yLjAKIF9tdXNsX3ZlcnNpb249MS4xLjI0CiBfbGludXhfdmVyc2lvbj01 LjEwLjQKIF9saWJ1Y29udGV4dF92ZXJzaW9uPTEuMAogcGtnbmFtZT1jcm9zcy1wb3dlcnBjNjQt bGludXgtbXVzbAotdmVyc2lvbj0wLjM0Ci1yZXZpc2lvbj00Cit2ZXJzaW9uPTAuMzUKK3Jldmlz aW9uPTEKIGJ1aWxkX3N0eWxlPXZvaWQtY3Jvc3MKIGNvbmZpZ3VyZV9hcmdzPSItLWVuYWJsZS1z ZWN1cmVwbHQgLS1kaXNhYmxlLXZ0YWJsZS12ZXJpZnkKICAtLWRpc2FibGUtZGVjaW1hbC1mbG9h dCAtLXdpdGgtYWJpPWVsZnYyIC0tZW5hYmxlLXRhcmdldHM9cG93ZXJwYy1saW51eCIKIGhvc3Rt YWtlZGVwZW5kcz0idGV4aW5mbyB0YXIgZ2NjLW9iamMgZ2NjLWdvIGZsZXggcGVybCBweXRob24z IgotbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6bGliLWRldmVsIGdtcC1k ZXZlbCBtcGZyLWRldmVsIgorbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCBn bXAtZGV2ZWwgbXBmci1kZXZlbAorIHpsaWItZGV2ZWwgbGlienN0ZC1kZXZlbCIKIGRlcGVuZHM9 IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259Igogc2hvcnRfZGVzYz0iVm9p ZCBjcm9zcyB0b29sY2hhaW4gZm9yICR7cGtnbmFtZS9jcm9zcy19IgogbWFpbnRhaW5lcj0iT3Jw aGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKLWhvbWVwYWdlPSJodHRwczovL3d3dy52b2lk bGludXgub3JnLyIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdQTC0zLjAtb3ItbGF0ZXIs IE1JVCIKK2hvbWVwYWdlPSJodHRwczovL3d3dy52b2lkbGludXgub3JnLyIKIGRpc3RmaWxlcz0i CiAgJHtHTlVfU0lURX0vYmludXRpbHMvYmludXRpbHMtJHtfYmludXRpbHNfdmVyc2lvbn0udGFy Lnh6Ci0gaHR0cHM6Ly9kZXYuYWxwaW5lbGludXgub3JnL35uZW5vbG9kL2djYy0ke19nY2NfdmVy c2lvbn0udGFyLnh6CisgJHtHTlVfU0lURX0vZ2NjL2djYy0ke19nY2NfdmVyc2lvbn0vZ2NjLSR7 X2djY192ZXJzaW9ufS50YXIueHoKICBodHRwczovL211c2wubGliYy5vcmcvcmVsZWFzZXMvbXVz bC0ke19tdXNsX3ZlcnNpb259LnRhci5negogICR7S0VSTkVMX1NJVEV9L2tlcm5lbC92NS54L2xp bnV4LSR7X2xpbnV4X3ZlcnNpb259LnRhci54egogIGh0dHBzOi8vZ2l0aHViLmNvbS9rYW5paW5p L2xpYnVjb250ZXh0L2FyY2hpdmUvbGlidWNvbnRleHQtJHtfbGlidWNvbnRleHRfdmVyc2lvbn0u dGFyLmd6IgotY2hlY2tzdW09IjNjZWQ5MWRiOWJmMDExODJiN2U0MjBlYWI2ODAzOWYyMDgzYWVk MGEyMTRjMDQyNGUyNTdlYWUzZGRlZTg2MDcKLSA3NzJjZmQ1ZDMwZWI5Y2M1YTk5NmZlYzliYThj ZGNiNDVkMzdkZjFjOWI1NzcwNjEwMTAzYjgxNGI3MzJjNTkwCitjaGVja3N1bT0iNjQ1YzI1ZjU2 M2I4YWRjMGE4MWRiZDZhNDFjZmZiZjRkMzcwODNhMzgyZTAyZDVkM2RmNGY2NWMwOTUxNmQwMAor IGU1NDljZjljZjM1OTRhMDBlMjdiNjU4OWQ0MzIyZDcwZTA3MjBjZGQyMTNmMzliZWI0MTgxZTA2 OTI2MjMwZmYKICAxMzcwYzlhODEyYjJjZjJhN2Q5MjgwMjUxMGNjYTAwNThjYzM3ZTY2YTdiZWRk NzAwNTFmMGEzNDAxNTAyMmEzCiAgOTA0ZTM5NmMyNmU5OTkyYTE2Y2QxY2M5ODk0NjAxNzE1MzZi ZWQ3NzM5YmYzNjA0OWY2ZWIwMjBlZTVkNTZlYwogIDIzNzE0ZTk5YTg3ZjZkZWE4MmU4YTA3M2M1 MjYzMjUxNjFkZDY1NDYyNDU5ODIwYjE2YTYxNjJiZTkxOTU1YmIiCgpGcm9tIDE5ZGE3MTIyYWJm MGQ5ZDI4ZmY2NmUxOGZiODBmZmI0YTZhYjgyYWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IG9yZW82MzkgPG9yZW82MzkxQGdtYWlsLmNvbT4KRGF0ZTogU3VuLCA2IE5vdiAyMDIyIDEx OjMzOjI5IC0wODAwClN1YmplY3Q6IFtQQVRDSCAzMS8zN10gY3Jvc3MtcG93ZXJwYzY0bGUtbGlu dXgtZ251OiB1cGRhdGUgdG8gZ2NjIDEyLjIuMC4KCi0tLQogc3JjcGtncy9jcm9zcy1wb3dlcnBj NjRsZS1saW51eC1nbnUvdGVtcGxhdGUgfCAxOSArKysrKysrKysrLS0tLS0tLS0tCiAxIGZpbGUg Y2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmNwa2dzL2Nyb3NzLXBvd2VycGM2NGxlLWxpbnV4LWdudS90ZW1wbGF0ZSBiL3NyY3BrZ3MvY3Jv c3MtcG93ZXJwYzY0bGUtbGludXgtZ251L3RlbXBsYXRlCmluZGV4IDQ2M2Q3ZTkyZDIwZC4uOGQ4 ZTAxMGUxNWMwIDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nyb3NzLXBvd2VycGM2NGxlLWxpbnV4LWdu dS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Nyb3NzLXBvd2VycGM2NGxlLWxpbnV4LWdudS90ZW1w bGF0ZQpAQCAtMSwxNiArMSwxNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnY3Jvc3MtcG93ZXJw YzY0bGUtbGludXgtZ251JwotX2JpbnV0aWxzX3ZlcnNpb249Mi4zNS4xCi1fZ2NjX3ZlcnNpb249 MTAuMi4xX3ByZTEKLV9nbGliY192ZXJzaW9uPTIuMzIKK19iaW51dGlsc192ZXJzaW9uPTIuMzkK K19nY2NfdmVyc2lvbj0xMi4yLjAKK19nbGliY192ZXJzaW9uPTIuMzYKIF9saW51eF92ZXJzaW9u PTUuMTAuNAogcGtnbmFtZT1jcm9zcy1wb3dlcnBjNjRsZS1saW51eC1nbnUKLXZlcnNpb249MC4z NAordmVyc2lvbj0wLjM1CiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT12b2lkLWNyb3NzCiBjb25m aWd1cmVfYXJncz0iLS1lbmFibGUtc2VjdXJlcGx0IC0tZGlzYWJsZS12dGFibGUtdmVyaWZ5IC0t d2l0aC1hYmk9ZWxmdjIKICAtLWVuYWJsZS10YXJnZXRzPXBvd2VycGNsZS1saW51eCIKIGhvc3Rt YWtlZGVwZW5kcz0idGV4aW5mbyB0YXIgZ2NjLW9iamMgZ2NjLWdvIGZsZXggcGVybCBweXRob24z IgotbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6bGliLWRldmVsIGdtcC1k ZXZlbCBtcGZyLWRldmVsIgorbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCBn bXAtZGV2ZWwgbXBmci1kZXZlbAorIHpsaWItZGV2ZWwgbGlienN0ZC1kZXZlbCIKIGRlcGVuZHM9 IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259Igogc2hvcnRfZGVzYz0iVm9p ZCBjcm9zcyB0b29sY2hhaW4gZm9yICR7cGtnbmFtZS9jcm9zcy19IgogbWFpbnRhaW5lcj0iT3Jw aGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKQEAgLTE4LDEyICsxOSwxMiBAQCBsaWNlbnNl PSJHUEwtMi4wLW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVyLCBMR1BMLTIuMS1vci1sYXRlciIK IGhvbWVwYWdlPSJodHRwczovL3d3dy52b2lkbGludXgub3JnLyIKIGRpc3RmaWxlcz0iCiAgJHtH TlVfU0lURX0vYmludXRpbHMvYmludXRpbHMtJHtfYmludXRpbHNfdmVyc2lvbn0udGFyLnh6Ci0g aHR0cHM6Ly9kZXYuYWxwaW5lbGludXgub3JnL35uZW5vbG9kL2djYy0ke19nY2NfdmVyc2lvbn0u dGFyLnh6CisgJHtHTlVfU0lURX0vZ2NjL2djYy0ke19nY2NfdmVyc2lvbn0vZ2NjLSR7X2djY192 ZXJzaW9ufS50YXIueHoKICAke0dOVV9TSVRFfS9nbGliYy9nbGliYy0ke19nbGliY192ZXJzaW9u fS50YXIueHoKICAke0tFUk5FTF9TSVRFfS9rZXJuZWwvdjUueC9saW51eC0ke19saW51eF92ZXJz aW9ufS50YXIueHoiCi1jaGVja3N1bT0iM2NlZDkxZGI5YmYwMTE4MmI3ZTQyMGVhYjY4MDM5ZjIw ODNhZWQwYTIxNGMwNDI0ZTI1N2VhZTNkZGVlODYwNwotIDc3MmNmZDVkMzBlYjljYzVhOTk2ZmVj OWJhOGNkY2I0NWQzN2RmMWM5YjU3NzA2MTAxMDNiODE0YjczMmM1OTAKLSAxNjI3ZWE1NGY1YTFh ODQ2NzAzMjU2MzM5M2UwOTAxMDc3NjI2ZGM2NmYzN2YxMGVlNjM2M2JiNzIyMjIyODM2CitjaGVj a3N1bT0iNjQ1YzI1ZjU2M2I4YWRjMGE4MWRiZDZhNDFjZmZiZjRkMzcwODNhMzgyZTAyZDVkM2Rm NGY2NWMwOTUxNmQwMAorIGU1NDljZjljZjM1OTRhMDBlMjdiNjU4OWQ0MzIyZDcwZTA3MjBjZGQy MTNmMzliZWI0MTgxZTA2OTI2MjMwZmYKKyAxYzk1OWZlYTI0MDkwNjIyNjA2MmNiNGIxZTdlYmNl NzFhOWYwZTNjMDgzNmMwOWU3ZTM0MjNkNDM0ZmNmZTc1CiAgOTA0ZTM5NmMyNmU5OTkyYTE2Y2Qx Y2M5ODk0NjAxNzE1MzZiZWQ3NzM5YmYzNjA0OWY2ZWIwMjBlZTVkNTZlYyIKIG5vY3Jvc3M9eWVz CiAKCkZyb20gODQ5NWUyMjRmNDM2MDE2MDE1MjQ0NDMyMmZjZGY3MzNjYTZjMGZhNiBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogb3JlbzYzOSA8b3JlbzYzOTFAZ21haWwuY29tPgpEYXRl OiBTdW4sIDYgTm92IDIwMjIgMTE6MzM6MjkgLTA4MDAKU3ViamVjdDogW1BBVENIIDMyLzM3XSBj cm9zcy1wb3dlcnBjNjRsZS1saW51eC1tdXNsOiB1cGRhdGUgdG8gZ2NjIDEyLjIuMC4KCi0tLQog c3JjcGtncy9jcm9zcy1wb3dlcnBjNjRsZS1saW51eC1tdXNsL3RlbXBsYXRlIHwgMTkgKysrKysr KysrKy0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDkgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jcm9zcy1wb3dlcnBjNjRsZS1saW51eC1tdXNs L3RlbXBsYXRlIGIvc3JjcGtncy9jcm9zcy1wb3dlcnBjNjRsZS1saW51eC1tdXNsL3RlbXBsYXRl CmluZGV4IGMxN2EzY2NjZmUyOS4uMDkxNWU1MjQ1NDVmIDEwMDY0NAotLS0gYS9zcmNwa2dzL2Ny b3NzLXBvd2VycGM2NGxlLWxpbnV4LW11c2wvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9jcm9zcy1w b3dlcnBjNjRsZS1saW51eC1tdXNsL3RlbXBsYXRlCkBAIC0xLDMwICsxLDMxIEBACiAjIFRlbXBs YXRlIGZpbGUgZm9yICdjcm9zcy1wb3dlcnBjNjRsZS1saW51eC1tdXNsJwotX2JpbnV0aWxzX3Zl cnNpb249Mi4zNS4xCi1fZ2NjX3ZlcnNpb249MTAuMi4xX3ByZTEKK19iaW51dGlsc192ZXJzaW9u PTIuMzkKK19nY2NfdmVyc2lvbj0xMi4yLjAKIF9tdXNsX3ZlcnNpb249MS4xLjI0CiBfbGludXhf dmVyc2lvbj01LjEwLjQKIF9saWJ1Y29udGV4dF92ZXJzaW9uPTEuMAogcGtnbmFtZT1jcm9zcy1w b3dlcnBjNjRsZS1saW51eC1tdXNsCi12ZXJzaW9uPTAuMzQKLXJldmlzaW9uPTQKK3ZlcnNpb249 MC4zNQorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9dm9pZC1jcm9zcwogY29uZmlndXJlX2FyZ3M9 Ii0tZW5hYmxlLXNlY3VyZXBsdCAtLWRpc2FibGUtdnRhYmxlLXZlcmlmeQogIC0tZGlzYWJsZS1k ZWNpbWFsLWZsb2F0IC0td2l0aC1hYmk9ZWxmdjIgLS1lbmFibGUtdGFyZ2V0cz1wb3dlcnBjbGUt bGludXgiCiBob3N0bWFrZWRlcGVuZHM9InRleGluZm8gdGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4 IHBlcmwgcHl0aG9uMyIKLW1ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgemxp Yi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbCIKK21ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBs aWJtcGMtZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwKKyB6bGliLWRldmVsIGxpYnpzdGQtZGV2 ZWwiCiBkZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKIHNo b3J0X2Rlc2M9IlZvaWQgY3Jvc3MgdG9vbGNoYWluIGZvciAke3BrZ25hbWUvY3Jvc3MtfSIKIG1h aW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCi1ob21lcGFnZT0iaHR0 cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBHUEwt My4wLW9yLWxhdGVyLCBNSVQiCitob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8i CiBkaXN0ZmlsZXM9IgogICR7R05VX1NJVEV9L2JpbnV0aWxzL2JpbnV0aWxzLSR7X2JpbnV0aWxz X3ZlcnNpb259LnRhci54egotIGh0dHBzOi8vZGV2LmFscGluZWxpbnV4Lm9yZy9+bmVub2xvZC9n Y2MtJHtfZ2NjX3ZlcnNpb259LnRhci54egorICR7R05VX1NJVEV9L2djYy9nY2MtJHtfZ2NjX3Zl cnNpb259L2djYy0ke19nY2NfdmVyc2lvbn0udGFyLnh6CiAgaHR0cHM6Ly9tdXNsLmxpYmMub3Jn L3JlbGVhc2VzL211c2wtJHtfbXVzbF92ZXJzaW9ufS50YXIuZ3oKICAke0tFUk5FTF9TSVRFfS9r ZXJuZWwvdjUueC9saW51eC0ke19saW51eF92ZXJzaW9ufS50YXIueHoKICBodHRwczovL2dpdGh1 Yi5jb20va2FuaWluaS9saWJ1Y29udGV4dC9hcmNoaXZlL2xpYnVjb250ZXh0LSR7X2xpYnVjb250 ZXh0X3ZlcnNpb259LnRhci5neiIKLWNoZWNrc3VtPSIzY2VkOTFkYjliZjAxMTgyYjdlNDIwZWFi NjgwMzlmMjA4M2FlZDBhMjE0YzA0MjRlMjU3ZWFlM2RkZWU4NjA3Ci0gNzcyY2ZkNWQzMGViOWNj NWE5OTZmZWM5YmE4Y2RjYjQ1ZDM3ZGYxYzliNTc3MDYxMDEwM2I4MTRiNzMyYzU5MAorY2hlY2tz dW09IjY0NWMyNWY1NjNiOGFkYzBhODFkYmQ2YTQxY2ZmYmY0ZDM3MDgzYTM4MmUwMmQ1ZDNkZjRm NjVjMDk1MTZkMDAKKyBlNTQ5Y2Y5Y2YzNTk0YTAwZTI3YjY1ODlkNDMyMmQ3MGUwNzIwY2RkMjEz ZjM5YmViNDE4MWUwNjkyNjIzMGZmCiAgMTM3MGM5YTgxMmIyY2YyYTdkOTI4MDI1MTBjY2EwMDU4 Y2MzN2U2NmE3YmVkZDcwMDUxZjBhMzQwMTUwMjJhMwogIDkwNGUzOTZjMjZlOTk5MmExNmNkMWNj OTg5NDYwMTcxNTM2YmVkNzczOWJmMzYwNDlmNmViMDIwZWU1ZDU2ZWMKICAyMzcxNGU5OWE4N2Y2 ZGVhODJlOGEwNzNjNTI2MzI1MTYxZGQ2NTQ2MjQ1OTgyMGIxNmE2MTYyYmU5MTk1NWJiIgoKRnJv bSA4MjFiNzVjMGJlZTk2ZTk0ZjhlNmU2ZjRkZGM3MDhhYTdlY2QzYzA4IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDxvcmVvNjM5MUBnbWFpbC5jb20+CkRhdGU6IFN1biwg NiBOb3YgMjAyMiAxMTozMzoyOSAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMzMvMzddIGNyb3NzLXBv d2VycGNsZS1saW51eC1nbnU6IHVwZGF0ZSB0byBnY2MgMTIuMi4wLgoKLS0tCiBzcmNwa2dzL2Ny b3NzLXBvd2VycGNsZS1saW51eC1nbnUvdGVtcGxhdGUgfCAyMSArKysrKysrKysrKystLS0tLS0t LS0KIDEgZmlsZSBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvY3Jvc3MtcG93ZXJwY2xlLWxpbnV4LWdudS90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvY3Jvc3MtcG93ZXJwY2xlLWxpbnV4LWdudS90ZW1wbGF0ZQppbmRleCA5YWVkZTNjNDY1 Y2UuLjY4N2JlOGE0NGM2YyAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy1wb3dlcnBjbGUtbGlu dXgtZ251L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3MtcG93ZXJwY2xlLWxpbnV4LWdudS90 ZW1wbGF0ZQpAQCAtMSwxNSArMSwxNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnY3Jvc3MtcG93 ZXJwY2xlLWxpbnV4LWdudScKLV9iaW51dGlsc192ZXJzaW9uPTIuMzUuMQotX2djY192ZXJzaW9u PTEwLjIuMV9wcmUxCi1fZ2xpYmNfdmVyc2lvbj0yLjMyCitfYmludXRpbHNfdmVyc2lvbj0yLjM5 CitfZ2NjX3ZlcnNpb249MTIuMi4wCitfZ2xpYmNfdmVyc2lvbj0yLjM2CiBfbGludXhfdmVyc2lv bj01LjEwLjQKIHBrZ25hbWU9Y3Jvc3MtcG93ZXJwY2xlLWxpbnV4LWdudQotdmVyc2lvbj0wLjM0 Cit2ZXJzaW9uPTAuMzUKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPXZvaWQtY3Jvc3MKIGNvbmZp Z3VyZV9hcmdzPSItLWVuYWJsZS1zZWN1cmVwbHQgLS1kaXNhYmxlLXZ0YWJsZS12ZXJpZnkiCiBo b3N0bWFrZWRlcGVuZHM9InRleGluZm8gdGFyIGdjYy1vYmpjIGZsZXggcGVybCBweXRob24zIgot bWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6bGliLWRldmVsIGdtcC1kZXZl bCBtcGZyLWRldmVsIgorbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCBnbXAt ZGV2ZWwgbXBmci1kZXZlbAorIHpsaWItZGV2ZWwgbGlienN0ZC1kZXZlbCIKIGRlcGVuZHM9IiR7 cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259Igogc2hvcnRfZGVzYz0iVm9pZCBj cm9zcyB0b29sY2hhaW4gZm9yICR7cGtnbmFtZS9jcm9zcy19IgogbWFpbnRhaW5lcj0iT3JwaGFu ZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKQEAgLTE3LDEyICsxOCwxMiBAQCBsaWNlbnNlPSJH UEwtMi4wLW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVyLCBMR1BMLTIuMS1vci1sYXRlciIKIGhv bWVwYWdlPSJodHRwczovL3d3dy52b2lkbGludXgub3JnLyIKIGRpc3RmaWxlcz0iCiAgJHtHTlVf U0lURX0vYmludXRpbHMvYmludXRpbHMtJHtfYmludXRpbHNfdmVyc2lvbn0udGFyLnh6Ci0gaHR0 cHM6Ly9kZXYuYWxwaW5lbGludXgub3JnL35uZW5vbG9kL2djYy0ke19nY2NfdmVyc2lvbn0udGFy Lnh6CisgJHtHTlVfU0lURX0vZ2NjL2djYy0ke19nY2NfdmVyc2lvbn0vZ2NjLSR7X2djY192ZXJz aW9ufS50YXIueHoKICAke0dOVV9TSVRFfS9nbGliYy9nbGliYy0ke19nbGliY192ZXJzaW9ufS50 YXIueHoKICAke0tFUk5FTF9TSVRFfS9rZXJuZWwvdjUueC9saW51eC0ke19saW51eF92ZXJzaW9u fS50YXIueHoiCi1jaGVja3N1bT0iM2NlZDkxZGI5YmYwMTE4MmI3ZTQyMGVhYjY4MDM5ZjIwODNh ZWQwYTIxNGMwNDI0ZTI1N2VhZTNkZGVlODYwNwotIDc3MmNmZDVkMzBlYjljYzVhOTk2ZmVjOWJh OGNkY2I0NWQzN2RmMWM5YjU3NzA2MTAxMDNiODE0YjczMmM1OTAKLSAxNjI3ZWE1NGY1YTFhODQ2 NzAzMjU2MzM5M2UwOTAxMDc3NjI2ZGM2NmYzN2YxMGVlNjM2M2JiNzIyMjIyODM2CitjaGVja3N1 bT0iNjQ1YzI1ZjU2M2I4YWRjMGE4MWRiZDZhNDFjZmZiZjRkMzcwODNhMzgyZTAyZDVkM2RmNGY2 NWMwOTUxNmQwMAorIGU1NDljZjljZjM1OTRhMDBlMjdiNjU4OWQ0MzIyZDcwZTA3MjBjZGQyMTNm MzliZWI0MTgxZTA2OTI2MjMwZmYKKyAxYzk1OWZlYTI0MDkwNjIyNjA2MmNiNGIxZTdlYmNlNzFh OWYwZTNjMDgzNmMwOWU3ZTM0MjNkNDM0ZmNmZTc1CiAgOTA0ZTM5NmMyNmU5OTkyYTE2Y2QxY2M5 ODk0NjAxNzE1MzZiZWQ3NzM5YmYzNjA0OWY2ZWIwMjBlZTVkNTZlYyIKIG5vY3Jvc3M9eWVzCiAK QEAgLTM1LDYgKzM2LDggQEAgaWYgWyAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiID0gInBwY2xlIiBd OyB0aGVuCiAJYnJva2VuPSJDYW4ndCBidWlsZCBjcm9zc3Rvb2xjaGFpbiB0byBpdHNlbGYiCiBm aQogCiticm9rZW49ImdsaWJjIHVzZXMgYmlnLWVuZGlhbiBzcGVjaWZpYyBpbnN0cnVjdGlvbnMg b24gMzItYml0IHBvd2VycGMiCisKIGNyb3NzLXBvd2VycGNsZS1saW51eC1nbnUtbGliY19wYWNr YWdlKCkgewogCXNob3J0X2Rlc2MrPSIgLSBnbGliYyBmaWxlcyIKIAlub3N0cmlwPXllcwoKRnJv bSBjNmM3ZmE3ZWQ1YjE1MjA3YzE5YmQ4MDhjOWEzZDE0YzQxMDQ2ZTdlIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDxvcmVvNjM5MUBnbWFpbC5jb20+CkRhdGU6IFN1biwg NiBOb3YgMjAyMiAxMTozMzoyOSAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMzQvMzddIGNyb3NzLXBv d2VycGNsZS1saW51eC1tdXNsOiB1cGRhdGUgdG8gZ2NjIDEyLjIuMC4KCi0tLQogc3JjcGtncy9j cm9zcy1wb3dlcnBjbGUtbGludXgtbXVzbC90ZW1wbGF0ZSB8IDE5ICsrKysrKysrKystLS0tLS0t LS0KIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvY3Jvc3MtcG93ZXJwY2xlLWxpbnV4LW11c2wvdGVtcGxhdGUgYi9z cmNwa2dzL2Nyb3NzLXBvd2VycGNsZS1saW51eC1tdXNsL3RlbXBsYXRlCmluZGV4IDA0NWNmZGE5 ODdmZS4uYmI5ODRiOWM0MmViIDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nyb3NzLXBvd2VycGNsZS1s aW51eC1tdXNsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3MtcG93ZXJwY2xlLWxpbnV4LW11 c2wvdGVtcGxhdGUKQEAgLTEsMjggKzEsMjkgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3Nz LXBvd2VycGNsZS1saW51eC1tdXNsJwotX2JpbnV0aWxzX3ZlcnNpb249Mi4zNS4xCi1fZ2NjX3Zl cnNpb249MTAuMi4xX3ByZTEKK19iaW51dGlsc192ZXJzaW9uPTIuMzkKK19nY2NfdmVyc2lvbj0x Mi4yLjAKIF9tdXNsX3ZlcnNpb249MS4xLjI0CiBfbGludXhfdmVyc2lvbj01LjEwLjQKIHBrZ25h bWU9Y3Jvc3MtcG93ZXJwY2xlLWxpbnV4LW11c2wKLXZlcnNpb249MC4zNAotcmV2aXNpb249Mwor dmVyc2lvbj0wLjM1CityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT12b2lkLWNyb3NzCiBjb25maWd1 cmVfYXJncz0iLS1lbmFibGUtc2VjdXJlcGx0IC0tZGlzYWJsZS12dGFibGUtdmVyaWZ5CiAgLS1k aXNhYmxlLWRlY2ltYWwtZmxvYXQiCiBob3N0bWFrZWRlcGVuZHM9InRleGluZm8gdGFyIGdjYy1v YmpjIGZsZXggcGVybCBweXRob24zIgotbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1k ZXZlbCB6bGliLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIgorbWFrZWRlcGVuZHM9ImlzbDE1 LWRldmVsIGxpYm1wYy1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbAorIHpsaWItZGV2ZWwgbGli enN0ZC1kZXZlbCIKIGRlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNp b259Igogc2hvcnRfZGVzYz0iVm9pZCBjcm9zcyB0b29sY2hhaW4gZm9yICR7cGtnbmFtZS9jcm9z cy19IgogbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKLWhvbWVw YWdlPSJodHRwczovL3d3dy52b2lkbGludXgub3JnLyIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0 ZXIsIEdQTC0zLjAtb3ItbGF0ZXIsIE1JVCIKK2hvbWVwYWdlPSJodHRwczovL3d3dy52b2lkbGlu dXgub3JnLyIKIGRpc3RmaWxlcz0iCiAgJHtHTlVfU0lURX0vYmludXRpbHMvYmludXRpbHMtJHtf YmludXRpbHNfdmVyc2lvbn0udGFyLnh6Ci0gaHR0cHM6Ly9kZXYuYWxwaW5lbGludXgub3JnL35u ZW5vbG9kL2djYy0ke19nY2NfdmVyc2lvbn0udGFyLnh6CisgJHtHTlVfU0lURX0vZ2NjL2djYy0k e19nY2NfdmVyc2lvbn0vZ2NjLSR7X2djY192ZXJzaW9ufS50YXIueHoKICBodHRwczovL211c2wu bGliYy5vcmcvcmVsZWFzZXMvbXVzbC0ke19tdXNsX3ZlcnNpb259LnRhci5negogICR7S0VSTkVM X1NJVEV9L2tlcm5lbC92NS54L2xpbnV4LSR7X2xpbnV4X3ZlcnNpb259LnRhci54eiIKLWNoZWNr c3VtPSIzY2VkOTFkYjliZjAxMTgyYjdlNDIwZWFiNjgwMzlmMjA4M2FlZDBhMjE0YzA0MjRlMjU3 ZWFlM2RkZWU4NjA3Ci0gNzcyY2ZkNWQzMGViOWNjNWE5OTZmZWM5YmE4Y2RjYjQ1ZDM3ZGYxYzli NTc3MDYxMDEwM2I4MTRiNzMyYzU5MAorY2hlY2tzdW09IjY0NWMyNWY1NjNiOGFkYzBhODFkYmQ2 YTQxY2ZmYmY0ZDM3MDgzYTM4MmUwMmQ1ZDNkZjRmNjVjMDk1MTZkMDAKKyBlNTQ5Y2Y5Y2YzNTk0 YTAwZTI3YjY1ODlkNDMyMmQ3MGUwNzIwY2RkMjEzZjM5YmViNDE4MWUwNjkyNjIzMGZmCiAgMTM3 MGM5YTgxMmIyY2YyYTdkOTI4MDI1MTBjY2EwMDU4Y2MzN2U2NmE3YmVkZDcwMDUxZjBhMzQwMTUw MjJhMwogIDkwNGUzOTZjMjZlOTk5MmExNmNkMWNjOTg5NDYwMTcxNTM2YmVkNzczOWJmMzYwNDlm NmViMDIwZWU1ZDU2ZWMiCiBub2Nyb3NzPXllcwoKRnJvbSBhZmQ2MGRmMjA3ZGUxMzcxNjVjMzFm OGYwYTBhOGE4MzU1ZjFjNzhmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5 IDxvcmVvNjM5MUBnbWFpbC5jb20+CkRhdGU6IFN1biwgNiBOb3YgMjAyMiAxMTozMzozMCAtMDgw MApTdWJqZWN0OiBbUEFUQ0ggMzUvMzddIGNyb3NzLXg4Nl82NC1saW51eC1nbnU6IHVwZGF0ZSB0 byBnY2MgMTIuMi4wLgoKLS0tCiBzcmNwa2dzL2Nyb3NzLXg4Nl82NC1saW51eC1nbnUvdGVtcGxh dGUgfCAxOSArKysrKysrKysrLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTAgaW5zZXJ0aW9u cygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nyb3NzLXg4Nl82NC1s aW51eC1nbnUvdGVtcGxhdGUgYi9zcmNwa2dzL2Nyb3NzLXg4Nl82NC1saW51eC1nbnUvdGVtcGxh dGUKaW5kZXggODkxOGYzYzIyYTFjLi45MzBhYWYyYTUwOGIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv Y3Jvc3MteDg2XzY0LWxpbnV4LWdudS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Nyb3NzLXg4Nl82 NC1saW51eC1nbnUvdGVtcGxhdGUKQEAgLTEsMTQgKzEsMTUgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ2Nyb3NzLXg4Nl82NC1saW51eC1nbnUnCi1fYmludXRpbHNfdmVyc2lvbj0yLjM1LjEKLV9n Y2NfdmVyc2lvbj0xMC4yLjFfcHJlMQotX2dsaWJjX3ZlcnNpb249Mi4zMgorX2JpbnV0aWxzX3Zl cnNpb249Mi4zOQorX2djY192ZXJzaW9uPTEyLjIuMAorX2dsaWJjX3ZlcnNpb249Mi4zNgogX2xp bnV4X3ZlcnNpb249NS4xMC40CiBwa2duYW1lPWNyb3NzLXg4Nl82NC1saW51eC1nbnUKLXZlcnNp b249MC4zNAordmVyc2lvbj0wLjM1CiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT12b2lkLWNyb3Nz CiBob3N0bWFrZWRlcGVuZHM9InRleGluZm8gdGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4IHBlcmwg cHl0aG9uMyIKLW1ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgemxpYi1kZXZl bCBnbXAtZGV2ZWwgbXBmci1kZXZlbCIKK21ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMt ZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwKKyB6bGliLWRldmVsIGxpYnpzdGQtZGV2ZWwiCiBk ZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKIHNob3J0X2Rl c2M9IlZvaWQgY3Jvc3MgdG9vbGNoYWluIGZvciAke3BrZ25hbWUvY3Jvc3MtfSIKIG1haW50YWlu ZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCkBAIC0xNiwxMiArMTcsMTIgQEAg bGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1sYXRlciwgTEdQTC0yLjEtb3It bGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBkaXN0ZmlsZXM9 IgogICR7R05VX1NJVEV9L2JpbnV0aWxzL2JpbnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259LnRh ci54egotIGh0dHBzOi8vZGV2LmFscGluZWxpbnV4Lm9yZy9+bmVub2xvZC9nY2MtJHtfZ2NjX3Zl cnNpb259LnRhci54egorICR7R05VX1NJVEV9L2djYy9nY2MtJHtfZ2NjX3ZlcnNpb259L2djYy0k e19nY2NfdmVyc2lvbn0udGFyLnh6CiAgJHtHTlVfU0lURX0vZ2xpYmMvZ2xpYmMtJHtfZ2xpYmNf dmVyc2lvbn0udGFyLnh6CiAgJHtLRVJORUxfU0lURX0va2VybmVsL3Y1LngvbGludXgtJHtfbGlu dXhfdmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09IjNjZWQ5MWRiOWJmMDExODJiN2U0MjBlYWI2 ODAzOWYyMDgzYWVkMGEyMTRjMDQyNGUyNTdlYWUzZGRlZTg2MDcKLSA3NzJjZmQ1ZDMwZWI5Y2M1 YTk5NmZlYzliYThjZGNiNDVkMzdkZjFjOWI1NzcwNjEwMTAzYjgxNGI3MzJjNTkwCi0gMTYyN2Vh NTRmNWExYTg0NjcwMzI1NjMzOTNlMDkwMTA3NzYyNmRjNjZmMzdmMTBlZTYzNjNiYjcyMjIyMjgz NgorY2hlY2tzdW09IjY0NWMyNWY1NjNiOGFkYzBhODFkYmQ2YTQxY2ZmYmY0ZDM3MDgzYTM4MmUw MmQ1ZDNkZjRmNjVjMDk1MTZkMDAKKyBlNTQ5Y2Y5Y2YzNTk0YTAwZTI3YjY1ODlkNDMyMmQ3MGUw NzIwY2RkMjEzZjM5YmViNDE4MWUwNjkyNjIzMGZmCisgMWM5NTlmZWEyNDA5MDYyMjYwNjJjYjRi MWU3ZWJjZTcxYTlmMGUzYzA4MzZjMDllN2UzNDIzZDQzNGZjZmU3NQogIDkwNGUzOTZjMjZlOTk5 MmExNmNkMWNjOTg5NDYwMTcxNTM2YmVkNzczOWJmMzYwNDlmNmViMDIwZWU1ZDU2ZWMiCiBub2Ny b3NzPXllcwogCgpGcm9tIDg2MThjMTI3NzU2ZTk5YTMyYjIwM2FkYzk5M2JmNzgzZTg3NGZjMWMg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IG9yZW82MzkgPG9yZW82MzkxQGdtYWlsLmNv bT4KRGF0ZTogU3VuLCA2IE5vdiAyMDIyIDExOjMzOjMwIC0wODAwClN1YmplY3Q6IFtQQVRDSCAz Ni8zN10gY3Jvc3MteDg2XzY0LWxpbnV4LW11c2w6IHVwZGF0ZSB0byBnY2MgMTIuMi4wLgoKLS0t CiBzcmNwa2dzL2Nyb3NzLXg4Nl82NC1saW51eC1tdXNsL3RlbXBsYXRlIHwgMTkgKysrKysrKysr Ky0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jcm9zcy14ODZfNjQtbGludXgtbXVzbC90ZW1wbGF0 ZSBiL3NyY3BrZ3MvY3Jvc3MteDg2XzY0LWxpbnV4LW11c2wvdGVtcGxhdGUKaW5kZXggYTk0MWU3 ZTAyZjZmLi5hYzViMWM0NmFiODIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jvc3MteDg2XzY0LWxp bnV4LW11c2wvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9jcm9zcy14ODZfNjQtbGludXgtbXVzbC90 ZW1wbGF0ZQpAQCAtMSwyOCArMSwyOSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnY3Jvc3MteDg2 XzY0LWxpbnV4LW11c2wnCi1fYmludXRpbHNfdmVyc2lvbj0yLjM1LjEKLV9nY2NfdmVyc2lvbj0x MC4yLjFfcHJlMQorX2JpbnV0aWxzX3ZlcnNpb249Mi4zOQorX2djY192ZXJzaW9uPTEyLjIuMAog X211c2xfdmVyc2lvbj0xLjEuMjQKIF9saW51eF92ZXJzaW9uPTUuMTAuNAogX2xpYnVjb250ZXh0 X3ZlcnNpb249MS4wCiBwa2duYW1lPWNyb3NzLXg4Nl82NC1saW51eC1tdXNsCi12ZXJzaW9uPTAu MzQKLXJldmlzaW9uPTMKK3ZlcnNpb249MC4zNQorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9dm9p ZC1jcm9zcwogaG9zdG1ha2VkZXBlbmRzPSJ0ZXhpbmZvIHRhciBnY2Mtb2JqYyBnY2MtZ28gZmxl eCBwZXJsIHB5dGhvbjMiCi1tYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHps aWItZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwiCittYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwg bGlibXBjLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsCisgemxpYi1kZXZlbCBsaWJ6c3RkLWRl dmVsIgogZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCiBz aG9ydF9kZXNjPSJWb2lkIGNyb3NzIHRvb2xjaGFpbiBmb3IgJHtwa2duYW1lL2Nyb3NzLX0iCiBt YWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgotaG9tZXBhZ2U9Imh0 dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcvIgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR1BM LTMuMC1vci1sYXRlciwgTUlUIgoraG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcv IgogZGlzdGZpbGVzPSIKICAke0dOVV9TSVRFfS9iaW51dGlscy9iaW51dGlscy0ke19iaW51dGls c192ZXJzaW9ufS50YXIueHoKLSBodHRwczovL2Rldi5hbHBpbmVsaW51eC5vcmcvfm5lbm9sb2Qv Z2NjLSR7X2djY192ZXJzaW9ufS50YXIueHoKKyAke0dOVV9TSVRFfS9nY2MvZ2NjLSR7X2djY192 ZXJzaW9ufS9nY2MtJHtfZ2NjX3ZlcnNpb259LnRhci54egogIGh0dHBzOi8vbXVzbC5saWJjLm9y Zy9yZWxlYXNlcy9tdXNsLSR7X211c2xfdmVyc2lvbn0udGFyLmd6CiAgJHtLRVJORUxfU0lURX0v a2VybmVsL3Y1LngvbGludXgtJHtfbGludXhfdmVyc2lvbn0udGFyLnh6CiAgaHR0cHM6Ly9naXRo dWIuY29tL2thbmlpbmkvbGlidWNvbnRleHQvYXJjaGl2ZS9saWJ1Y29udGV4dC0ke19saWJ1Y29u dGV4dF92ZXJzaW9ufS50YXIuZ3oiCi1jaGVja3N1bT0iM2NlZDkxZGI5YmYwMTE4MmI3ZTQyMGVh YjY4MDM5ZjIwODNhZWQwYTIxNGMwNDI0ZTI1N2VhZTNkZGVlODYwNwotIDc3MmNmZDVkMzBlYjlj YzVhOTk2ZmVjOWJhOGNkY2I0NWQzN2RmMWM5YjU3NzA2MTAxMDNiODE0YjczMmM1OTAKK2NoZWNr c3VtPSI2NDVjMjVmNTYzYjhhZGMwYTgxZGJkNmE0MWNmZmJmNGQzNzA4M2EzODJlMDJkNWQzZGY0 ZjY1YzA5NTE2ZDAwCisgZTU0OWNmOWNmMzU5NGEwMGUyN2I2NTg5ZDQzMjJkNzBlMDcyMGNkZDIx M2YzOWJlYjQxODFlMDY5MjYyMzBmZgogIDEzNzBjOWE4MTJiMmNmMmE3ZDkyODAyNTEwY2NhMDA1 OGNjMzdlNjZhN2JlZGQ3MDA1MWYwYTM0MDE1MDIyYTMKICA5MDRlMzk2YzI2ZTk5OTJhMTZjZDFj Yzk4OTQ2MDE3MTUzNmJlZDc3MzliZjM2MDQ5ZjZlYjAyMGVlNWQ1NmVjCiAgMjM3MTRlOTlhODdm NmRlYTgyZThhMDczYzUyNjMyNTE2MWRkNjU0NjI0NTk4MjBiMTZhNjE2MmJlOTE5NTViYiIKCkZy b20gMmI3ZTA1ZTRiZWRmODZiZmU0ZTlkMTliZTRjOTY5NGRlNmJkNDkyNiBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogb3JlbzYzOSA8b3JlbzYzOTFAZ21haWwuY29tPgpEYXRlOiBGcmks IDE4IE5vdiAyMDIyIDAyOjAxOjE5IC0wODAwClN1YmplY3Q6IFtQQVRDSCAzNy8zN10gY3Jvc3Mt dnBrZy1kdW1teTogdXBkYXRlIHRvIDAuMzkuCgotLS0KIHNyY3BrZ3MvY3Jvc3MtdnBrZy1kdW1t eS90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAz IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY3Jvc3MtdnBrZy1kdW1teS90ZW1w bGF0ZSBiL3NyY3BrZ3MvY3Jvc3MtdnBrZy1kdW1teS90ZW1wbGF0ZQppbmRleCBkODNlMzhkYzYz YWMuLmFlYWZiNzQ5ZGQ1ZiAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy12cGtnLWR1bW15L3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3MtdnBrZy1kdW1teS90ZW1wbGF0ZQpAQCAtMSw2ICsx LDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLXZwa2ctZHVtbXknCiBwa2duYW1lPWNy b3NzLXZwa2ctZHVtbXkKLXZlcnNpb249MC4zOAordmVyc2lvbj0wLjM5CiByZXZpc2lvbj0xCiBi dWlsZF9zdHlsZT1tZXRhCiBzaG9ydF9kZXNjPSJEdW1teSBtZXRhLXBrZyBmb3IgY3Jvc3MgYnVp bGRpbmcgcGFja2FnZXMgd2l0aCB4YnBzLXNyYyIKQEAgLTU0LDggKzU0LDggQEAgY29uZmxpY3Rz PSIKIAlnY2Mtb2JqYysrPj0wIgogc2hsaWJfcHJvdmlkZXM9IgogCWxpYmdjY19zLnNvLjEKLQls aWJnbmF0LTEwLnNvCi0JbGliZ25hcmwtMTAuc28KKwlsaWJnbmF0LTEyLnNvCisJbGliZ25hcmwt MTIuc28KIAlsaWJzdGRjKysuc28uNgogCWxpYmdmb3J0cmFuLnNvLjUiCiAK --===============7440409913791559572==--