From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Andrew Burgess To: git-commits@fedoraproject.org Subject: [rpms/gdb] fix-dup-patch: fix rhbz2467251 - multi piece computed locations and synthetic pointers Date: Thu, 23 Jul 2026 18:36:30 GMT Message-ID: <178483179003.1.60539145754047663.rpms-gdb-c46ee7ea1c1f@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: fix-dup-patch X-Git-Rev: c46ee7ea1c1f3cb292b1e43d128b54e432450ca7 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ2RiCiAgICAgICAgICAgIEJyYW5jaCA6IGZpeC1kdXAtcGF0Y2gKICAgICAg ICAgICAgQ29tbWl0IDogYzQ2ZWU3ZWExYzFmM2NiMjkyYjFlNDNkMTI4YjU0ZTQzMjQ1MGNhNwog ICAgICAgICAgICBBdXRob3IgOiBBbmRyZXcgQnVyZ2VzcyA8YWJ1cmdlc3NAcmVkaGF0LmNvbT4K ICAgICAgICAgICAgRGF0ZSAgIDogMjAyNi0wNS0xNlQxNToxMToyNiswMTowMAogICAgICAgICAg ICBTdGF0cyAgOiArMTI0NC8tMSBpbiA1IGZpbGUocykKICAgICAgICAgICAgVVJMICAgIDogaHR0 cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9nZGIvYy9jNDZlZTdlYTFjMWYzY2IyOTJi MWU0M2QxMjhiNTRlNDMyNDUwY2E3P2JyYW5jaD1maXgtZHVwLXBhdGNoCgogICAgICAgICAgICBM b2c6CiAgICAgICAgICAgIGZpeCByaGJ6MjQ2NzI1MSAtIG11bHRpIHBpZWNlIGNvbXB1dGVkIGxv Y2F0aW9ucyBhbmQgc3ludGhldGljIHBvaW50ZXJzCgpCYWNrcG9ydCB0aGUgZm9sbG93aW5nIHVw c3RyZWFtIGNvbW1pdHMgaW4gb3JkZXIgdG8gYWRkcmVzcyBSSEJaCjI0NjcyNTE6IGQ5ODAzMTdj N2YxLCA5NThkMDYyNjJhNywgN2QxZDczODY1NjEsIDg5MTVkZTA4ODNjLAo4ZjY1YWI3YjcxZi4g IFRoZXNlIGNvbW1pdHMgd2lsbCBhbGwgZHJvcCBvdXQgd2hlbiB3ZSByZWJhc2UgdG8gR0RCCjE4 LgoKLS0tCmRpZmYgLS1naXQgYS9fZ2RiLnNwZWMuUGF0Y2guaW5jbHVkZSBiL19nZGIuc3BlYy5Q YXRjaC5pbmNsdWRlCmluZGV4IDJmMjMwZjkuLmE1MGM1NTEgMTAwNjQ0Ci0tLSBhL19nZGIuc3Bl Yy5QYXRjaC5pbmNsdWRlCisrKyBiL19nZGIuc3BlYy5QYXRjaC5pbmNsdWRlCkBAIC02OSwzICs2 OSw5IEBAIFBhdGNoMDEzOiBnZGItcmhiejIzNjY0NjEtbWlzc2luZy10aHJlYWQucGF0Y2gKICMg Y29tbWl0IHdpbGwgZHJvcCBvdXQgd2l0aCBHREIgMTguCiBQYXRjaDAxNDogZ2RiLXJoYnoyMzY2 NDYxLWJhZC1zb2xpYi1lbnRyeS1hZGRyLnBhdGNoCiAKKyMgQmFja3BvcnQgdGhlIGZvbGxvd2lu ZyB1cHN0cmVhbSBjb21taXRzIGluIG9yZGVyIHRvIGFkZHJlc3MgUkhCWgorIyAyNDY3MjUxOiBk OTgwMzE3YzdmMSwgOTU4ZDA2MjYyYTcsIDdkMWQ3Mzg2NTYxLCA4OTE1ZGUwODgzYywKKyMgOGY2 NWFiN2I3MWYuICBUaGVzZSBjb21taXRzIHdpbGwgYWxsIGRyb3Agb3V0IHdoZW4gd2UgcmViYXNl IHRvIEdEQgorIyAxOC4KK1BhdGNoMDE1OiBnZGItcmhiejI0NjcyNTEtY29tcHV0ZWQtbG9jYXRp b24tc3ludGhldGljLXBvaW50ZXJzLnBhdGNoCisKCmRpZmYgLS1naXQgYS9fZ2RiLnNwZWMucGF0 Y2guaW5jbHVkZSBiL19nZGIuc3BlYy5wYXRjaC5pbmNsdWRlCmluZGV4IGU3ZTk2ZTIuLmY2MzBm YzIgMTAwNjQ0Ci0tLSBhL19nZGIuc3BlYy5wYXRjaC5pbmNsdWRlCisrKyBiL19nZGIuc3BlYy5w YXRjaC5pbmNsdWRlCkBAIC0xMiwzICsxMiw0IEBACiAlcGF0Y2ggLXAxIC1QMDEyCiAlcGF0Y2gg LXAxIC1QMDEzCiAlcGF0Y2ggLXAxIC1QMDE0CislcGF0Y2ggLXAxIC1QMDE1CgpkaWZmIC0tZ2l0 IGEvX3BhdGNoX29yZGVyIGIvX3BhdGNoX29yZGVyCmluZGV4IDYxNTc3OWUuLmY5ODljMGYgMTAw NjQ0Ci0tLSBhL19wYXRjaF9vcmRlcgorKysgYi9fcGF0Y2hfb3JkZXIKQEAgLTEyLDMgKzEyLDQg QEAgZ2RiLWZpbGVpby10ZXN0LWZpeGVzLnBhdGNoCiBnZGItZml4LXRlc3RzdWl0ZS1uZXdlci10 Y2wucGF0Y2gKIGdkYi1yaGJ6MjM2NjQ2MS1taXNzaW5nLXRocmVhZC5wYXRjaAogZ2RiLXJoYnoy MzY2NDYxLWJhZC1zb2xpYi1lbnRyeS1hZGRyLnBhdGNoCitnZGItcmhiejI0NjcyNTEtY29tcHV0 ZWQtbG9jYXRpb24tc3ludGhldGljLXBvaW50ZXJzLnBhdGNoCgpkaWZmIC0tZ2l0IGEvZ2RiLXJo YnoyNDY3MjUxLWNvbXB1dGVkLWxvY2F0aW9uLXN5bnRoZXRpYy1wb2ludGVycy5wYXRjaCBiL2dk Yi1yaGJ6MjQ2NzI1MS1jb21wdXRlZC1sb2NhdGlvbi1zeW50aGV0aWMtcG9pbnRlcnMucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjJjMWUwYQotLS0gL2Rldi9udWxs CisrKyBiL2dkYi1yaGJ6MjQ2NzI1MS1jb21wdXRlZC1sb2NhdGlvbi1zeW50aGV0aWMtcG9pbnRl cnMucGF0Y2gKQEAgLTAsMCArMSwxMjI5IEBACitGcm9tIEZFRE9SQV9QQVRDSEVTIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQW5kcmV3IEJ1cmdlc3MgPGFidXJnZXNzQHJlZGhhdC5j b20+CitEYXRlOiBGcmksIDggTWF5IDIwMjYgMjE6NDQ6MTIgKzAxMDAKK1N1YmplY3Q6IGdkYi1y aGJ6MjQ2NzI1MS1jb21wdXRlZC1sb2NhdGlvbi1zeW50aGV0aWMtcG9pbnRlcnMucGF0Y2gKKwor OzsgQmFja3BvcnQgdGhlIGZvbGxvd2luZyB1cHN0cmVhbSBjb21taXRzIGluIG9yZGVyIHRvIGFk ZHJlc3MgUkhCWgorOzsgMjQ2NzI1MTogZDk4MDMxN2M3ZjEsIDk1OGQwNjI2MmE3LCA3ZDFkNzM4 NjU2MSwgODkxNWRlMDg4M2MsCis7OyA4ZjY1YWI3YjcxZi4gIFRoZXNlIGNvbW1pdHMgd2lsbCBh bGwgZHJvcCBvdXQgd2hlbiB3ZSByZWJhc2UgdG8gR0RCCis7OyAxOC4KKworKioqIENvbW1pdCBk OTgwMzE3YzdmMTogZ2RiOiBpbnQgdG8gYm9vbCBjb252ZXJzaW9uIGluIHZhbHByaW50LntjLH1o CisKK2dkYjogaW50IHRvIGJvb2wgY29udmVyc2lvbiBpbiB2YWxwcmludC57YyxofQorCitTb21l IGludCB0byBib29sIGNvbnZlcnNpb24gaW4gdmFscHJpbnQuYyBhbmQgdmFscHJpbnQuaC4gIEkg YWxzbworbW92ZWQgdGhlIGhlYWRlciBjb21tZW50IG9uIHZhbF9wcmludF9zY2FsYXJfdHlwZV9w IGludG8gdGhlIGhlYWRlci4KKworVGhlcmUgc2hvdWxkIGJlIG5vIHVzZXIgdmlzaWJsZSBjaGFu Z2VzIGFmdGVyIHRoaXMgY29tbWl0LgorCitBcHByb3ZlZC1CeTogVG9tIFRyb21leSA8dG9tQHRy b21leS5jb20+CisKK0NvbW1pdCA5NThkMDYyNjJhNzogZ2RiOiBmaXggY29lcmNlX3BpZWNlZF9y ZWYgZm9yIG11bHRpLXBpZWNlIHZhbHVlcworCitnZGI6IGZpeCBjb2VyY2VfcGllY2VkX3JlZiBm b3IgbXVsdGktcGllY2UgdmFsdWVzCisKK0J1ZyBQUiBnZGIvMzA2OTMgZGVzY3JpYmVzIGEgY2Fz ZSB3aGVyZSB0aGUgZm9sbG93aW5nIGFzc2VydGlvbiBjYW4gYmUKK3RyaWdnZXJlZDoKKworICAu Li8uLi9nZGIvZHdhcmYyL2xvYy5jOjIyMTM6IGludGVybmFsLWVycm9yOiB2YWx1ZSogY29lcmNl X3BpZWNlZF9yZWYoY29uc3QgdmFsdWUqKTogQXNzZXJ0aW9uIGBjbG9zdXJlLT5waWVjZXMuc2l6 ZSAoKSA9PSAxJyBmYWlsZWQuCisKK1RoZSBwcm9ibGVtIGlzIHRoYXQgY29lcmNlX3BpZWNlZF9y ZWYgbWFrZXMgdGhlIGZvbGxvd2luZyBjbGFpbToKKworICAgICAgLyogZ2RiIHJlcHJlc2VudHMg c3ludGhldGljIHBvaW50ZXJzIGFzIHBpZWNlZCB2YWx1ZXMgd2l0aCBhIHNpbmdsZQorICAgICAg ICBwaWVjZS4gICovCisgICAgICBnZGJfYXNzZXJ0IChjbG9zdXJlICE9IE5VTEwpOworICAgICAg Z2RiX2Fzc2VydCAoY2xvc3VyZS0+cGllY2VzLnNpemUgKCkgPT0gMSk7CisKK0J1dCB0aGlzIGlz IG5vdCByZWFsbHkgdHJ1ZS4gIElmIGFuIGFnZ3JlZ2F0ZSB0eXBlIGNvbnRhaW5zIGEgc3ludGhl dGljCitwb2ludGVyLCB0aGVuIGl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlIGFnZ3JlZ2F0ZSB0eXBl IHdpbGwgaGF2ZSBhCitjb21wdXRlZCBsb2NhdGlvbiBjb25zaXN0aW5nIG9mIG11bHRpcGxlIHBp ZWNlcy4gIFdoZW4gR0RCIHByaW50cyB0aGUKK2ZpZWxkcyBvZiB0aGF0IGFnZ3JlZ2F0ZSB0eXBl IHRoZXNlIGZpZWxkcyBhcmUgZXh0cmFjdGVkIGJ5IGNhbGxpbmcKK3ZhbHVlOjpwcmltaXRpdmVf ZmllbGQuICBXaXRoaW4gdmFsdWU6OnByaW1pdGl2ZV9maWVsZCB0aGUgbG9jYXRpb24gb2YKK3Ro ZSBmaWVsZCBpcyBzZXQgYnkgY2FsbGluZyB2YWx1ZTo6c2V0X2NvbXBvbmVudF9sb2NhdGlvbi4K KworV2hlbiB0aGUgcGFyZW50IHZhbHVlIHRoYXQgaG9sZHMgdGhlIGZpZWxkIGhhcyBhIGNvbXB1 dGVkIGxvY2F0aW9uLCB0aGUKK2ZpZWxkIHZhbHVlIGdhaW5zIGEgcmVmZXJlbmNlIHRvIHRoZSBw YXJlbnQgdmFsdWUncyBjbG9zdXJlLCB0aGlzIGNhbiBiZQorc2VlbiBpbiBjb3B5X3BpZWNlZF92 YWx1ZV9jbG9zdXJlIGluIGR3YXJmMi9leHByLmMuCisKK1doYXQgdGhpcyBtZWFucyBpcyB0aGF0 LCBpZiB0aGUgYWdncmVnYXRlIHZhbHVlIGhhcyBhIG11bHRpLXBpZWNlCitjb21wdXRlZCBsb2Nh dGlvbiwgdGhlbiB0aGUgc3ludGhldGljIHBvaW50ZXIgZmllbGQgd2lsbCBhbHNvIGhhdmUgYQor cmVmZXJlbmNlIHRvIHRoYXQgc2FtZSBtdWx0aS1waWVjZSBjb21wdXRlZCBsb2NhdGlvbiwgZXZl biBpZiB0aGVyZSBpcworcmVhbGx5IG9ubHkgYSBzaW5nbGUgcGllY2UgdGhhdCBkZXNjcmliZXMg dGhlIHN5bnRoZXRpYyBwb2ludGVyIGl0c2VsZi4KKworU29tZSBwYXJ0cyBvZiBHREIgYXJlIGFs cmVhZHkgYXdhcmUgb2YgdGhpcy4gIElmIHdlIGxvb2sgYXQKK2NoZWNrX3BpZWNlZF9zeW50aGV0 aWNfcG9pbnRlciB3aGljaCBpbXBsZW1lbnRzIHRoZQordmFsdWU6OmJpdHNfc3ludGhldGljX3Bv aW50ZXIgZnVuY3Rpb24sIHlvdSdsbCBzZWUgdGhhdCB0aGlzIGZ1bmN0aW9uCitzZWFyY2hlcyB0 aHJvdWdoIGFsbCBvZiB0aGUgcGllY2VzIHRvIGZpbmQgdGhlIHBpZWNlIHRoYXQgY292ZXJzIHRo ZQordmFsdWUgd2UgYXJlIGxvb2tpbmcgZm9yLCBpdCB0aGVuIGNoZWNrcyBpZiB0aGF0IHBpZWNl IGlzIGFuIGltcGxpY2l0Citwb2ludGVyIGxvY2F0aW9uLiAgQnV0IGJhY2sgaW4gY29lcmNlX3Bp ZWNlZF9yZWYsIGFmdGVyIGNhbGxpbmcKK3ZhbHVlOjpiaXRzX3N5bnRoZXRpY19wb2ludGVyLCB3 ZSBzdGlsbCBtYWtlIHRoZSBhc3NlcnRpb24gdGhhdCB0aGVyZQord2lsbCBiZSBqdXN0IGEgc2lu Z2xlIHBpZWNlLgorCitGaXggdGhpcyBieSBjb3B5aW5nIHRoZSBzZWFyY2ggdGhyb3VnaCBhbGwg cGllY2VzIGxvZ2ljIGludG8KK2NvZXJjZV9waWVjZWRfcmVmIChzZWUgbm90ZSBvbiBlZmZpY2ll bmN5IGJlbG93KS4gIFdlIG5vdyBzZWFyY2ggdGhyb3VnaAorYWxsIHRoZSBwaWVjZXMgbG9va2lu ZyBmb3IgYSBwaWVjZSB0aGF0IGRlc2NyaWJlcyB0aGUgbG9jYXRpb24gb2YgdGhlCitzeW50aGV0 aWMgcG9pbnRlciwgYW5kIHdlIHRoZW4gdXNlIHRoYXQgcGllY2UgdG8gZm9ybSB0aGUgcG9pbnRl cidzCit2YWx1ZS4KKworVGhlcmUgYXJlIHNvbWUgYXNzZXJ0aW9ucyBpbiB0aGUgbmV3IGNvZGUs IHRoZXNlIGFsaWduIHdpdGggaG93CitjaGVja19waWVjZWRfc3ludGhldGljX3BvaW50ZXIgb3Bl cmF0ZXMuCisKK0luIGFkZGl0aW9uLCB0aGVyZSBpcyBhbiBlcnJvciBmb3IgdGhlIGNhc2Ugd2hl cmUgbXVsdGlwbGUgcGllY2VzIGFyZQordXNlZCB0byBkZXNjcmliZSB0aGUgbG9jYXRpb24gb2Yg YSBzeW50aGV0aWMgcG9pbnRlci4gIFRoaXMgY2FzZSBpcwordGVjaG5pY2FsbHkgYWxsb3dlZCBi eSBjaGVja19waWVjZWRfc3ludGhldGljX3BvaW50ZXIsIGJ1dCBzdXBwb3J0aW5nCit0aGlzIHdv dWxkIHJlcXVpcmUgY2hhbmdlcyB0byBpbmRpcmVjdF9zeW50aGV0aWNfcG9pbnRlciwgc28gSSBw cm9wb3NlCitsZWF2aW5nIHRoYXQgdW50aWwgd2Ugc2VlIHN1Y2ggYSBjYXNlIGluIHRoZSB3aWxk LgorCitPbiBlZmZpY2llbmN5LCB5b3UnbGwgbm90aWNlIHRoYXQgY2hlY2tfcGllY2VkX3N5bnRo ZXRpY19wb2ludGVyCitwZXJmb3JtcyBhIHNlYXJjaCB0aHJvdWdoIGFsbCB0aGUgbG9jYXRpb24g cGllY2VzLCBhbmQKK2NvZXJjZV9waWVjZWRfcmVmIGFsc28gaGFzIHRvIHNlYXJjaCB0aHJvdWdo IHRoZSBwaWVjZXMuICBJdCB3b3VsZCBiZQorbmljZSBpZiB0aGlzIGNvdWxkIGJlIGF2b2lkZWQg aW4gb3JkZXIgdG8gYXZvaWQgbXVsdGlwbGUgc2VhcmNoZXMuCitDdXJyZW50bHkgdGhvdWdoIGNv ZXJjZV9waWVjZWRfcmVmIGNhbGxzCit2YWx1ZS0+Yml0c19zeW50aGV0aWNfcG9pbnRlciwgd2hp Y2ggaXMgYW4gQVBJIHRoYXQgc2hvdWxkIGJlIGFnbm9zdGljCit0byB0aGUgdW5kZXJseWluZyBp bXBsZW1lbnRhdGlvbiwgaS5lLiBzaG91bGRuJ3QgbmVlZCB0byBrbm93IHRoYXQgdGhlCitpbXBs ZW1lbnRhdGlvbiBpcyBjb21wdXRlZCwgc28gcGFzc2luZyBwaWVjZXMgYmFjayB3b3VsZCBiZSBo YXJkZXIuCisKK01heWJlIGNvZXJjZV9waWVjZWRfcmVmIGNvdWxkIGF2b2lkIHRoZSB2YWx1ZTo6 Yml0c19zeW50aGV0aWNfcG9pbnRlcgorY2FsbCwgYW5kIGluc3RlYWQgY2FsbCBjaGVja19waWVj ZWRfc3ludGhldGljX3BvaW50ZXIgZGlyZWN0bHksIG9yCitzb21lIHJlbGF0ZWQgaGVscGVyIGZ1 bmN0aW9uLCBhbmQgY291bGQgZ2V0IHRoZSBwaWVjZXMgYmFjayB0aGF0IHdheS4KK0J1dCB0aGlz IGJyZWFrcyB0aGUgY2xlYW5seSBzdHJ1Y3R1cmVkIEFQSSB0aGF0IHdlIGN1cnJlbnRseSBoYXZl LgorCitGb3Igbm93IEknbSBsZWF2aW5nIHRoaW5ncyBhcyB0aGV5IGFyZS4gIE15IGFzc3VtcHRp b24gaXMgdGhhdCB0aGUKK251bWJlciBvZiBwaWVjZXMgdXNlZCB0byByZXByZXNlbnQgYSB2YWx1 ZSBpcyBwcmV0dHkgbG93LCBzbyB0aGUKK3NlYXJjaCBpcyBhY3R1YWxseSBwcmV0dHkgY2hlYXAu CisKK1RoZXJlJ3MgYSBuZXcgdGVzdCB0aGF0IHVzZXMgdGhlIERXQVJGIGFzc2VtYmxlciB0byBj cmVhdGUgYQorcmVwcmVzZW50YXRpdmUgZXhhbXBsZSBvZiBhIG11bHRpLXBpZWNlIGFnZ3JlZ2F0 ZSB0aGF0IGNvbnRhaW5zIGEKK3N5bnRoZXRpYyBwb2ludGVyIG1lbWJlciB2YXJpYWJsZS4gIFRo aXMgdGVzdCB0cmlnZ2VycyB0aGUgYXNzZXJ0aW9uCitiZWZvcmUgdGhpcyBjb21taXQuCisKK0J1 ZzogaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MzA2OTMK K0J1ZzogaHR0cHM6Ly9idWd6aWxsYS5yZWRoYXQuY29tL3Nob3dfYnVnLmNnaT9pZD0yNDY3MjUx CisKK0FwcHJvdmVkLUJ5OiBUb20gVHJvbWV5IDx0b21AdHJvbWV5LmNvbT4KKworQ29tbWl0IDdk MWQ3Mzg2NTYxOiBnZGI6IHJlbmFtZSBhcmd1bWVudCBpbiB2YWxwcmludF9jaGVja192YWxpZGl0 eQorCitnZGI6IHJlbmFtZSBhcmd1bWVudCBpbiB2YWxwcmludF9jaGVja192YWxpZGl0eQorCitU byB1bmRlcnN0YW5kIHRoZSBtb3RpdmF0aW9uIGZvciB0aGlzIGNvbW1pdCB5b3UnbGwgbmVlZCB0 byBsb29rIGFoZWFkCit0d28gY29tbWl0cyBpbiB0aGlzIHNlcmllcyBmb3IgYW4gdXBjb21pbmcg YnVnIGZpeC4KKworTG9vayBhdCBjb2VyY2VfcGllY2VkX3JlZiBpbiBkd2FyZjIvZXhwci5jLCBh bmQgdGhpcyBjYWxsOgorCisgIGlmICh2YWx1ZS0+Yml0c19zeW50aGV0aWNfcG9pbnRlciAodmFs dWUtPmVtYmVkZGVkX29mZnNldCAoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBUQVJHRVRfQ0hBUl9CSVQgKiB0eXBlLT5sZW5ndGggKCkpKQorICAgIHsgLi4uIH0KKwor VGhpcyBwYXNzZXMgdGhlIHJlc3VsdCBmcm9tIHZhbHVlOjplbWJlZGRlZF9vZmZzZXQgYXMgdGhl IGZpcnN0IGFyZ3VtZW50LgorVGhvdWdoIGl0J3Mgbm90IGNsZWFyIGZyb20gdmFsdWUuaCwgdGhl IG51bWJlciByZXR1cm5lZCBieQordmFsdWU6OmVtYmVkZGVkX29mZnNldCBpcyBhIGJ5dGUgb2Zm c2V0LgorCitUaGUgdmFsdWU6OmJpdHNfc3ludGhldGljX3BvaW50ZXIgY2FsbCBjYW4gZW5kIHVw IGNhbGxpbmcKK2NoZWNrX3BpZWNlZF9zeW50aGV0aWNfcG9pbnRlciwgd2l0aCB0aGUgZmlyc3Qg YXJndW1lbnQgdG8KK3ZhbHVlOjpiaXRzX3N5bnRoZXRpY19wb2ludGVyIGJlY29taW5nIHRoZSBz ZWNvbmQgYXJndW1lbnQgdG8KK2NoZWNrX3BpZWNlZF9zeW50aGV0aWNfcG9pbnRlci4gIFRoZSBz ZWNvbmQgYXJndW1lbnQgdG8KK2NoZWNrX3BpZWNlZF9zeW50aGV0aWNfcG9pbnRlciBpcyBjYWxs ZWQgQklUX09GRlNFVCwgYSB2YWx1ZSBpbiBiaXRzLgorTG9va2luZyBhdCBob3cgdGhpcyBhcmd1 bWVudCBpcyB1c2VkIGNvbmZpcm1zIHRoYXQgaXQgaXMgZXhwZWN0ZWQgdG8gYmUKK2EgdmFsdWUg aW4gYml0cywgbm90IGJ5dGVzLgorCitUaGUgZml4IHNob3VsZCBiZSBlYXN5LCBtdWx0aXBseSB0 aGUgZW1iZWRkZWQgb2Zmc2V0IGJ5CitUQVJHRVRfQ0hBUl9CSVQsIGJ1dCBJIHRoaW5rIHRoaW5n cyBhcmUgYSBsaXR0bGUgbW9yZSBjb21wbGV4IHRoYW4KK3RoaXMuCisKK0kgc3RhcnRlZCBsb29r aW5nIGF0IGhvdyB2YWx1ZTo6Yml0c19zeW50aGV0aWNfcG9pbnRlciBpcyB1c2VkLCB0aGVyZQor YXJlIG9ubHkgNyB1c2VzLCBhbmQgdGhleSBjYW4gYmUgZ3JvdXBlZCBhcyBmb2xsb3dzOgorCitn ZGIvZHdhcmYyL2V4cHIuYworZ2RiL3ZhbG9wcy5jCisKKyAgVGhlc2UgY2FsbCB2YWx1ZTo6ZW1i ZWRkZWRfb2Zmc2V0IGRpcmVjdGx5IHdpdGhpbiB0aGUgY2FsbCB0bworICB2YWx1ZTo6Yml0c19z eW50aGV0aWNfcG9pbnRlci4KKworZ2RiL29wZW5jbC1sYW5nLmMKKworICBUaGlzIGZ1bmN0aW9u IGlzIHVzZWQgYXMgYSB3cmFwcGVyIHRoYXQgaW1wbGVtZW50cyBhCisgIGx2YWxfZnVuY3M6OmNo ZWNrX3N5bnRoZXRpY19wb2ludGVyIGNhbGxiYWNrLCBpdCBhZGp1c3RzIHRoZQorICBhcmd1bWVu dHMgYW5kIHRoZW4gY2FsbHMgdmFsdWU6OmJpdHNfc3ludGhldGljX3BvaW50ZXIuICBBcyBzdWNo IHdlJ2QKKyAgbm90IGV4cGVjdCB0byBzZWUgZW1iZWRkZWQgb2Zmc2V0IG1lbnRpb25lZCBoZXJl IGFzIHRoYXQgd291bGQgKHdlCisgIGFzc3VtZSkgYmUgaGFuZGxlZCBieSB0aGUgY2FsbGVyLgor CitnZGIvdmFscHJpbnQuYyAoaW4gZ2VuZXJpY192YWxfcHJpbnRfcmVmKQorCisgIFRoaXMgY2Fs bCBwYXNzZXMgYW4gYXJndW1lbnQgY2FsbGVkICdlbWJlZGRlZF9vZmZzZXQnLCBidXQgdGhlCisg IGZ1bmN0aW9uIGdlbmVyaWNfdmFsX3ByaW50X3JlZiBpcyBvbmx5IHVzZWQgaW4gb25lIHBsYWNl LCBhbmQgdGhlCisgIGVtYmVkZGVkX29mZnNldCBpcyBhbHdheXMgcGFzc2VkIGFzIHplcm8uCisK K2dkYi92YWxwcmludC5jIChpbiB2YWxwcmludF9jaGVja192YWxpZGl0eSkKKworICBUaGlzIGNh bGwgYWxzbyBwYXNzZXMgYW4gYXJndW1lbnQgY2FsbGVkICdlbWJlZGRlZF9vZmZzZXQnLiAgVGhp cworICBmdW5jdGlvbiBpcyB1c2VkIGluIHR3byBwbGFjZXMuICBJbiBjb21tb25fdmFsX3ByaW50 IHRoZQorICBlbWJlZGRlZF9vZmZzZXQgaXMgYWx3YXlzIHBhc3NlZCBhcyB6ZXJvLCBidXQgaW4K KyAgdmFscHJpbnRfY2hlY2tfdmFsaWRpdHkgKGluIGNwLXZhbHByaW50LmMpIHRoZSBlbWJlZGRl ZF9vZmZzZXQgYmVpbmcKKyAgcGFzc2VkIGlzIHRoZSBvZmZzZXQgb2YgYSBmaWVsZCB3aXRoaW4g dGhlIHZhbHVlLCBub3QgdGhlIHZhbHVlJ3MKKyAgZW1iZWRkZWRfb2Zmc2V0IHdpdGhpbiBzb21l IGxhcmdlciB2YWx1ZS4KKworZ2RiL2NwLXZhbHByaW50LmMKK2dkYi9wLXZhbHByaW50LmMKKwor ICBBcyB3aXRoIHRoZSBjYWxsIHRvIHZhbHByaW50X2NoZWNrX3ZhbGlkaXR5IGluIGNwLXZhbHBy aW50LmMsIHRoZXNlCisgIHR3byBkaXJlY3QgY2FsbHMgdG8gdmFsdWU6OmJpdHNfc3ludGhldGlj X3BvaW50ZXIgcGFzcyB0aGUgb2Zmc2V0IG9mIGEKKyAgZmllbGQgd2l0aGluIHRoZSB2YWx1ZSwg cmF0aGVyIHRoYW4gdGhlIHZhbHVlJ3MgZW1iZWRkZWRfb2Zmc2V0LgorCitXaGF0IEkgc2VlIGlu IHRoZSBhYm92ZSBpcyBzb21lIGNvbmZ1c2lvbi4gIEluIHNvbWUgcGxhY2VzIHdlIGFyZQorcGFz c2luZyB0aGUgdmFsdWU6OmVtYmVkZGVkX29mZnNldCwgd2hpbGUgaW4gb3RoZXIgcGxhY2VzIHdl IGFyZQorcGFzc2luZyB0aGUgb2Zmc2V0IG9mIGEgZmllbGQgd2l0aGluIHRoZSB2YWx1ZSBpdHNl bGYuCisKK0lmIHdlIGNvbnNpZGVyIHRoZSBkaXJlY3QgY2FsbCB0byB2YWx1ZTo6Yml0c19zeW50 aGV0aWNfcG9pbnRlciBpbgorZ2RiL2NwLXZhbHByaW50LmMsIHdoZXJlIGEgZmllbGQgb2Zmc2V0 IGlzIHBhc3NlZCwgdGhlbiBpdCBzaG91bGQgYmUKK3Bvc3NpYmxlLCB0aGF0IGlmIHdlIGNhbiBj cmVhdGUgYW4gb2JqZWN0IHdpdGggYSBub24temVybworZW1iZWRkZWRfb2Zmc2V0ICh3aGljaCBp c24ndCBhY2NvdW50ZWQgZm9yIGluIHRoaXMgY29kZSBwYXRoKSwgdGhlbiB3ZQorc2hvdWxkIHNl ZSBzb21lIGJ1Z3MgaW4gR0RCLCBhbmQgaW5kZWVkLCB0aGlzIGlzIHdoYXQgSSBkbyBzZWUuCisK K015IHBsYW4gZm9yIGZpeGluZyB0aGlzIGlzIHRvIGhhdmUgdGhlIG9mZnNldCBwYXNzZWQgdG8K K3ZhbHVlOjpiaXRzX3N5bnRoZXRpY19wb2ludGVyIGFsd2F5cyBiZSBhIGZpZWxkIG9mZnNldCB3 aXRoaW4gdGhlIHZhbHVlLAordGhlIHZhbHVlOjplbWJlZGRlZF9vZmZzZXQgd2lsbCB0aGVuIGJl IGhhbmRsZWQgZGlyZWN0bHkgd2l0aGluIHRoZQordmFyaW91cyB2YWx1ZTo6Yml0c19zeW50aGV0 aWNfcG9pbnRlciBpbXBsZW1lbnRhdGlvbnMuCisKK1RoaXMgY29tbWl0IGlzIGEgc21hbGwgcmVm YWN0b3IgaW4gcHJlcGFyYXRpb24gZm9yIHRoaXMgZml4LgorCitJIGJlbGlldmUgcGFydCBvZiB0 aGUgY29uZnVzaW9uIGhlcmUgaXMgdGhhdCB3ZSBoYXZlIGZ1bmN0aW9ucyB0aGF0Cit0YWtlIGFy Z3VtZW50cyBjYWxsZWQgZW1iZWRkZWRfb2Zmc2V0LCB3aGVuIHRoZSB2YWx1ZSB0aGV5IHNob3Vs ZAorYWNjZXB0IGlzIG5vIGxvbmdlciB0aGUgZW1iZWRkZWQgb2Zmc2V0LgorCitTbyBpbiB0aGlz IGNvbW1pdCBJIHByb3Bvc2UgcmVuYW1pbmcgdGhlIGVtYmVkZGVkX29mZnNldCBhcmd1bWVudCB0 bworZmllbGRfYnl0ZV9vZmZzZXQgaW4gdmFscHJpbnRfY2hlY2tfdmFsaWRpdHkuICBUaGlzIGlz IHB1cmVseSBhCittZWNoYW5pY2FsIHJlbmFtZSwgdGhlcmUgc2hvdWxkIGJlIG5vIHVzZXIgdmlz aWJsZSBjaGFuZ2VzIGFmdGVyIHRoaXMKK2NvbW1pdC4KKworQXBwcm92ZWQtQnk6IFRvbSBUcm9t ZXkgPHRvbUB0cm9tZXkuY29tPgorCitDb21taXQgODkxNWRlMDg4M2M6IGdkYjogcmVtb3ZlIGVt YmVkZGVkX29mZnNldCBhcmd1bWVudCB0aGF0IGlzIGFsd2F5cyAwCisKK2dkYjogcmVtb3ZlIGVt YmVkZGVkX29mZnNldCBhcmd1bWVudCB0aGF0IGlzIGFsd2F5cyAwCisKK0ZvciB0aGUgYmFja2dy b3VuZCBhbmQgbW90aXZhdGlvbiBmb3IgdGhpcyBwYXRjaCB5b3Ugc2hvdWxkIHJlYWQgdGhlCitw cmV2aW91cyBjb21taXQuCisKK1RoZSBnb2FsIG9mIHRoaXMgY29tbWl0IHN0YXJ0ZWQgYXMgc2lt aWxhciB0byB0aGUgcHJldmlvdXMgb25lOyByZW5hbWUKK3RoZSBlbWJlZGRlZF9vZmZzZXQgYXJn dW1lbnQgdG8gZ2VuZXJpY192YWxfcHJpbnRfcmVmLiAgVG8gZG8gdGhpcyBJCitzdGFydGVkIHRy YWNpbmcgYmFjayB3aGljaCB2YWx1ZXMgYXJlIHBhc3NlZCBpbnRvIHRoaXMgZnVuY3Rpb24gc28g SQorY291bGQgbWFrZSBzdXJlIHRoZSBuZXcgYXJndW1lbnQgbmFtZSBtYXRjaGVkIHRoZSB1c2Fn ZS4KKworQnV0IGl0IHR1cm5zIG91dCB0aGF0IHRoZSBvbmx5IHZhbHVlIHRoYXQgaXMgZXZlciBw YXNzZWQgdG8gdGhpcworZnVuY3Rpb24gaXMgemVyby4KKworSSBiZWxpZXZlIHRoYXQsIGxpa2Ug dGhlIGxhc3QgY29tbWl0LCB0aGUgZW1iZWRkZWRfb2Zmc2V0IGlzIGFjdHVhbGx5CityZXByZXNl bnRpbmcgdGhlIG9mZnNldCBvZiBhIGZpZWxkIHdpdGhpbiBhIHZhbHVlLiAgSG93ZXZlciwgaW4g YWxsIG9mCit0aGUgdXNlIGNhc2VzLCB0aGUgImZpZWxkIiBiZWluZyBhY2Nlc3NlZCBpcyB0aGUg ZW50aXJlIHZhbHVlLCBoZW5jZQord2h5IHdlIGFsd2F5cyBwYXNzIDAsIHdlIGFyZSBhc2tpbmcg YWJvdXQgdGhlIHdob2xlIHZhbHVlIHN0YXJ0aW5nCitmcm9tIHRoZSB2ZXJ5IGJlZ2lubmluZy4K KworR2l2ZW4gdGhpcywgSSBjb3VsZG4ndCBicmluZyBteXNlbGYgdG8gcmVuYW1lIHRoZSBhcmd1 bWVudC4gIExldCdzIGp1c3QKK3JlbW92ZSBpdC4gIEl0IHR1cm5zIG91dCB0aGF0IHRoZXJlJ3Mg YSBidW5jaCBvZiBmdW5jdGlvbnMgaW4KK3ZhbHByaW50LmMgdGhhdCB0YWtlIGFuIGFyZ3VtZW50 IGNhbGxlZCBlbWJlZGRlZF9vZmZzZXQsIHdoaWNoIGFyZQorYWx3YXlzIHplcm8uCisKK1RoaXMg Y29tbWl0IHJlbW92ZXMgdGhlIGFyZ3VtZW50LCBhbmQgdXBkYXRlcyB0aGUgY29kZSB0byBhc3N1 bWUgemVyby4KKworVGhlcmUgc2hvdWxkIGJlIG5vIHVzZXIgdmlzaWJsZSBjaGFuZ2VzIGFmdGVy IHRoaXMgY29tbWl0LgorCitBcHByb3ZlZC1CeTogVG9tIFRyb21leSA8dG9tQHRyb21leS5jb20+ CisKK0NvbW1pdCA4ZjY1YWI3YjcxZjogZ2RiOiB1c2UgdmFsdWU6OmVtYmVkZGVkX29mZnNldCBp biBjaGVja19waWVjZWRfc3ludGhldGljX3BvaW50ZXIKKworZ2RiOiB1c2UgdmFsdWU6OmVtYmVk ZGVkX29mZnNldCBpbiBjaGVja19waWVjZWRfc3ludGhldGljX3BvaW50ZXIKKworVGhpcyBjb21t aXQgYnVpbGRzIG9uIHRoZSBwcmV2aW91cyB0d28gY29tbWl0cy4gIFlvdSBzaG91bGQgZ28gYW5k CityZWFkIHRoZW0gYm90aCBmb3IgY29udGV4dC4KKworTG9va2luZyBhdCB0aGUgdXNlcnMgb2Yg dmFsdWU6OmJpdHNfc3ludGhldGljX3BvaW50ZXIsIGFsbCBjYWxsZXJzIGJ1dAordHdvIGFyZSBu b3cgcGFzc2luZyBlaXRoZXIgdGhlIG9mZnNldCBvZiBhIGZpZWxkIHdpdGhpbiB0aGUgdmFsdWUs IG9yCitoYXJkLWNvZGVkIHplcm8gYXMgdGhleSB3YW50IHRvIGFzayBhYm91dCB0aGUgZW50aXJl IHZhbHVlLgorCitUaGUgdHdvIGV4Y2VwdGlvbnMgYXJlIGluIGNvZXJjZV9waWVjZWRfcmVmIChp biBkd2FyZjIvZXhwci5jKSBhbmQgaW4KK3ZhbHVlX2FkZHIgKGluIHZhbG9wcy5jKSB3aGVyZSB3 ZSBzdGlsbCBwYXNzIHZhbHVlOjplbWJlZGRlZF9vZmZzZXQuCisKK1RoZSBwcm9ibGVtIGlzIHRo YXQgc29tZSBvZiB0aGUgb3RoZXIgY2FsbGVycywgd2hlcmUgd2UgY3VycmVudGx5IHBhc3MKK2p1 c3QgYSBmaWVsZCBvZmZzZXQsIG1pZ2h0IGFsc28gaGF2ZSBhIG5vbi16ZXJvIGVtYmVkZGVkIG9m ZnNldCwKK3NwZWNpZmljYWxseSwgdGhlIGNhbGwgaW4gY3BfcHJpbnRfdmFsdWVfZmllbGRzIGlz IGluIHRoaXMgY2F0ZWdvcnkuCitJbiBjcF9wcmludF92YWx1ZV9maWVsZHMgd2UgYXJlIHByaW50 aW5nIGZpZWxkcyBmcm9tIGEgdmFsdWUgd2hpY2ggaXMKK3BvdGVudGlhbGx5IGEgYmFzZSBjbGFz cyBjb250YWluZWQgd2l0aGluIGFuIGluc3RhbmNlIG9mIGEgZGVyaXZlZAorY2xhc3MsIHRoaXMg d2lsbCBiZSByZXByZXNlbnRlZCBieSBhIG5vbi16ZXJvIGVtYmVkZGVkX29mZnNldCwgd2hpY2gK K2lzIGN1cnJlbnRseSBub3QgdGFrZW4gaW50byBhY2NvdW50LgorCitBZGRpdGlvbmFsbHksIHRo ZSB0d28gY2FsbGVycyB0aGF0IGN1cnJlbnRseSBwYXNzIHRoZQordmFsdWU6OmVtYmVkZGVkX29m ZnNldCBkb24ndCBzY2FsZSB0aGUgZW1iZWRkZWQgb2Zmc2V0IGZyb20gYnl0ZXMgdG8KK2JpdHMu CisKK1RoZSBmYWlsdXJlIHRvIHNjYWxlIGZyb20gYnl0ZXMgdG8gYml0cyBpcyBpbnRlcmVzdGlu ZywgSSBvcmlnaW5hbGx5Cit0cmllZCB0byBjcmVhdGUgc29tZSB0ZXN0cyB0aGF0IGV4cG9zZWQg dGhpcywgYnV0IGNvbnN0YW50bHkgZmFpbGVkLgorSXQgdHVybnMgb3V0LCB0aGF0IGluIGJvdGgg dGhlc2UgbG9jYXRpb25zLCBpbiBhbGwgY29kZSBwYXRocyB0aGF0IEkKK2NvdWxkIGZpbmQsIHRo ZSB2YWx1ZTo6ZW1iZWRkZWRfb2Zmc2V0IHdpbGwgYWx3YXlzIGJlIHplcm8uICBGb3IKK2V4YW1w bGUgaW4gY29lcmNlX3BpZWNlZF9yZWYsIGEgcmVmZXJlbmNlIGNhbm5vdCBiZSBhIGJhc2UgY2xh c3MsIGFuZAorc28gd2UgbmV2ZXIgZXhwZWN0IHRvIHNlZSBhIG5vbi16ZXJvIGVtYmVkZGVkX29m ZnNldCBpbiB0aGlzIGNhc2UuCisKK1NpbWlsYXJseSwgaW4gdmFsdWVfYWRkciwgdGhlIHVzZSBv ZiB2YWx1ZTo6Yml0c19zeW50aGV0aWNfcG9pbnRlciBpcword2l0aGluIGEgYmxvY2sgdGhhdCBv bmx5IGFwcGxpZXMgdG8gcmVmZXJlbmNlIHR5cGVzLCB3aGljaCBtZWFucyB0aGUKK2VtYmVkZGVk X29mZnNldCB3aWxsIGJlIHplcm8uCisKK05vdyB3aXRoaW4gY2hlY2tfcGllY2VkX3N5bnRoZXRp Y19wb2ludGVyIHdlIGFscmVhZHkgYWRkIHRoZQordmFsdWU6Om9mZnNldCBpbnRvIHRoZSBiaXRf b2Zmc2V0IHdoaWNoIGlzIHBhc3NlZCBpbi4gIFJlbWVtYmVyLCBhZnRlcgordGhlIHByZXZpb3Vz IHR3byBjb21taXRzLCB0aGUgaW5jb21pbmcgYml0X29mZnNldCBpcyAoYWxtb3N0KSBhbHdheXMK K3RoZSBvZmZzZXQgb2YgYSBmaWVsZCB3aXRoaW4gdGhlIHZhbHVlLiAgVGhlIGFsbW9zdCBoZXJl IGlzIHRoZSB0d28KK2Nhc2VzIG1lbnRpb25lZCBhYm92ZS4KKworSSBwcm9wb3NlIHRoYXQgd2l0 aGluIGNoZWNrX3BpZWNlZF9zeW50aGV0aWNfcG9pbnRlciB3ZSBzaG91bGQgdGFrZQoraW50byBh Y2NvdW50IGJvdGggdmFsdWU6Om9mZnNldCBhbmQgdmFsdWU6OmVtYmVkZGVkX29mZnNldC4gIFRo ZW4gdGhlCit0d28gY2FzZXMgdGhhdCBjdXJyZW50bHkgcGFzcyB2YWx1ZTo6ZW1iZWRkZWRfb2Zm c2V0IGNhbiBiZSBjaGFuZ2VkIHRvCitqdXN0IHBhc3MgemVyby4KKworV2l0aCB0aGlzIGRvbmUs IGFuZCB0aGUgcHJldmlvdXMgdHdvIGNvbW1pdHMsIHdlIG5vdyBoYXZlIGEgY29uc2lzdGVudAor bW9kZWwuICB2YWx1ZTo6Yml0c19zeW50aGV0aWNfcG9pbnRlciBleHBlY3RzIHRoZSAoYml0KSBv ZmZzZXQgb2YgYQorZmllbGQgd2l0aGluIHRoZSB2YWx1ZSB0byBjaGVjay4gIEluIG1hbnkgY2Fz ZXMgdGhpcyB3aWxsIGJlIHplcm8KK21lYW5pbmcgd2Ugd2FudCB0byBjaGVjayBmcm9tIHRoZSBz dGFydCBvZiB0aGUgdmFsdWUsIGJ1dCBpbiBzb21lCitjYXNlcyBpdCBjYW4gYmUgbm9uLXplcm8u CisKK1RoZW4gd2l0aGluIHZhbHVlOjpiaXRzX3N5bnRoZXRpY19wb2ludGVyIGltcGxlbWVudGF0 aW9ucywgbGlrZQorY2hlY2tfcGllY2VkX3N5bnRoZXRpY19wb2ludGVyLCB3ZSB3aWxsIHRha2Ug dGhlIHZhbHVlOjpvZmZzZXQgYW5kCit2YWx1ZTo6ZW1iZWRkZWRfb2Zmc2V0IGludG8gYWNjb3Vu dCwgcmVtZW1iZXJpbmcgdG8gc2NhbGUgdGhlbSBmcm9tCitieXRlcyB0byBiaXRzLgorCitJIGhh dmUgYWxzbyBjaGFuZ2VkIGluZGlyZWN0X3BpZWNlZF92YWx1ZSB0byBhbHNvIHRha2UgdGhlCitl bWJlZGRlZF9vZmZzZXQgaW50byBhY2NvdW50LiAgSSBoYXZlIGRvbmUgdGhpcyBmb3IgY29uc2lz dGVuY3kgcmF0aGVyCit0aGFuIG5lY2Vzc2l0eS4gIEkgYmVsaWV2ZSB0aGF0IHRoZSBlbWJlZGRl ZF9vZmZzZXQgd2lsbCBhbHdheXMgYmUKK3plcm8gd2l0aGluIGluZGlyZWN0X3BpZWNlZF92YWx1 ZS4gIFRoZSBpbmRpcmVjdF9waWVjZWRfdmFsdWUgZnVuY3Rpb24KK2lzIG9ubHkgY2FsbGVkIGZy b20gdmFsdWVfaW5kIChpbiB2YWxvcHMuYyksIGFuZCBvbmx5IG9wZXJhdGVzIG9uCitUWVBFX0NP REVfUFRSIHR5cGVzIChjaGVja2VkIGZvciBpbiBpbmRpcmVjdF9waWVjZWRfdmFsdWUpLiAgQXMg YQorVFlQRV9DT0RFX1BUUiBjYW5ub3QgYmUgdGhlIGJhc2UgY2xhc3MgZm9yIGEgZGVyaXZlZCB0 eXBlLCB0aGVuIHdlCitkb24ndCBleHBlY3QgdG8gZXZlciBzZWUgYSBUWVBFX0NPREVfUFRSIHZh bHVlIHdpdGggYSBub24temVybworZW1iZWRkZWRfb2Zmc2V0LiAgQnV0LCBoYXZpbmcgaW5kaXJl Y3RfcGllY2VkX3ZhbHVlIHRha2UgdGhlIGVtYmVkZGVkCitvZmZzZXQgaW50byBhY2NvdW50IGlz IHNpbXBsZSBlbm91Z2gsIGFuZCBmdXR1cmUgcHJvb2ZzIHRoZSBjb2RlLgorCitJbiBib3RoIGNo ZWNrX3BpZWNlZF9zeW50aGV0aWNfcG9pbnRlciBhbmQgaW5kaXJlY3RfcGllY2VkX3ZhbHVlIEkK K2hhdmUgY2hhbmdlZCB1c2VzIG9mICc4JyB0byAnVEFSR0VUX0NIQVJfQklUJywgSSB3YXMgYWxy ZWFkeSB0b3VjaGluZworc29tZSBvZiB0aGVzZSBsaW5lcywgYW5kIEkgdGhpbmsgVEFSR0VUX0NI QVJfQklUIGlzIGNsZWFyZXIsIGJ1dCBvbmUKK2xpbmUgaW4gaW5kaXJlY3RfcGllY2VkX3ZhbHVl IHdhcyBqdXN0IHVwZGF0ZWQgdG8gdXNlIFRBUkdFVF9DSEFSX0JJVCwKK3RoaXMgaXMgZG9uZSBm b3IgY29uc2lzdGVuY3kuCisKK1RoZSBnZGIuZHdhcmYyL211bHRpLXBpZWNlLWluaGVyaXRlZC1i aXRmaWVsZC5leHAgdGVzdCBmYWlscyB3aXRob3V0Cit0aGlzIHBhdGNoLCB0aGlzIGV4cG9zZXMg dGhlIGNhc2Ugd2hlcmUgdGhlIGVtYmVkZGVkX29mZnNldCBpcworbm9uLXplcm8gYW5kIHdlIHdl cmUgcHJldmlvdXNseSBmYWlsaW5nIHRvIHRha2UgdGhpcyBpbnRvIGFjY291bnQuCisKK1RoZSBn ZGIuZHdhcmYyL211bHRpLXBpZWNlLXByaW1pdGl2ZS1maWVsZC5leHAgdGVzdCB3YXMgc29tZXRo aW5nIEkKK3dyb3RlIHdoaWxlIHRyeWluZyB0byBleGVyY2lzZSB0aGUgY29lcmNlX3BpZWNlZF9y ZWYgY29kZSBwYXRoIHNvbWUKK21vcmUuICBJdCBpcyBhbiBpbmhlcml0YW5jZSBiYXNlZCB2ZXJz aW9uIG9mIHRoZSBleGlzdGluZyB0ZXN0LCBJIHdhcword29uZGVyaW5nIGlmIHRoaXMgd291bGQg cmVzdWx0IGluIGEgdmFsdWUgd2l0aCBhIG5vbi16ZXJvCitlbWJlZGRlZF9vZmZzZXQsIGJ1dCBk dWUgdG8gaG93IHRoZSBmaWVsZHMgYXJlIGV4dHJhY3RlZCBmcm9tIHRoZQorYWdncmVnYXRlIHBy aW9yIHRvIGNhbGxpbmcgY29lcmNlX3BpZWNlZF9yZWYgdGhlIGVtYmVkZGVkX29mZnNldCBpcwor YWx3YXlzIHplcm8gaW4gdGhpcyBmdW5jdGlvbi4KKworQXBwcm92ZWQtQnk6IFRvbSBUcm9tZXkg PHRvbUB0cm9tZXkuY29tPgorCitkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMi9leHByLmMgYi9nZGIv ZHdhcmYyL2V4cHIuYworLS0tIGEvZ2RiL2R3YXJmMi9leHByLmMKKysrKyBiL2dkYi9kd2FyZjIv ZXhwci5jCitAQCAtNDkyLDcgKzQ5Miw4IEBAIGNoZWNrX3BpZWNlZF9zeW50aGV0aWNfcG9pbnRl ciAoY29uc3QgdmFsdWUgKnZhbHVlLCBMT05HRVNUIGJpdF9vZmZzZXQsCisgICBwaWVjZV9jbG9z dXJlICpjID0gKHBpZWNlX2Nsb3N1cmUgKikgdmFsdWUtPmNvbXB1dGVkX2Nsb3N1cmUgKCk7Cisg ICBpbnQgaTsKKyAKKy0gIGJpdF9vZmZzZXQgKz0gOCAqIHZhbHVlLT5vZmZzZXQgKCk7CisrICBi aXRfb2Zmc2V0ICs9IChUQVJHRVRfQ0hBUl9CSVQKKysJCSAqICh2YWx1ZS0+b2Zmc2V0ICgpICsg dmFsdWUtPmVtYmVkZGVkX29mZnNldCAoKSkpOworICAgaWYgKHZhbHVlLT5iaXRzaXplICgpKQor ICAgICBiaXRfb2Zmc2V0ICs9IHZhbHVlLT5iaXRwb3MgKCk7CisgCitAQCAtNTM3LDggKzUzOCw5 IEBAIGluZGlyZWN0X3BpZWNlZF92YWx1ZSAodmFsdWUgKnZhbHVlKQorICAgaWYgKHR5cGUtPmNv ZGUgKCkgIT0gVFlQRV9DT0RFX1BUUikKKyAgICAgcmV0dXJuIE5VTEw7CisgCistICBpbnQgYml0 X2xlbmd0aCA9IDggKiB0eXBlLT5sZW5ndGggKCk7CistICBMT05HRVNUIGJpdF9vZmZzZXQgPSA4 ICogdmFsdWUtPm9mZnNldCAoKTsKKysgIGludCBiaXRfbGVuZ3RoID0gVEFSR0VUX0NIQVJfQklU ICogdHlwZS0+bGVuZ3RoICgpOworKyAgTE9OR0VTVCBiaXRfb2Zmc2V0CisrICAgID0gKFRBUkdF VF9DSEFSX0JJVCAqICh2YWx1ZS0+b2Zmc2V0ICgpICsgdmFsdWUtPmVtYmVkZGVkX29mZnNldCAo KSkpOworICAgaWYgKHZhbHVlLT5iaXRzaXplICgpKQorICAgICBiaXRfb2Zmc2V0ICs9IHZhbHVl LT5iaXRwb3MgKCk7CisgCitAQCAtNjAyLDIyICs2MDQsNjIgQEAgY29lcmNlX3BpZWNlZF9yZWYg KGNvbnN0IHZhbHVlICp2YWx1ZSkKKyB7CisgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IGNoZWNrX3R5 cGVkZWYgKHZhbHVlLT50eXBlICgpKTsKKyAKKy0gIGlmICh2YWx1ZS0+Yml0c19zeW50aGV0aWNf cG9pbnRlciAodmFsdWUtPmVtYmVkZGVkX29mZnNldCAoKSwKKy0JCQkJICAgICBUQVJHRVRfQ0hB Ul9CSVQgKiB0eXBlLT5sZW5ndGggKCkpKQorKyAgaWYgKHZhbHVlLT5iaXRzX3N5bnRoZXRpY19w b2ludGVyICgwLCBUQVJHRVRfQ0hBUl9CSVQgKiB0eXBlLT5sZW5ndGggKCkpKQorICAgICB7Cisg ICAgICAgY29uc3QgcGllY2VfY2xvc3VyZSAqY2xvc3VyZQorIAk9IChwaWVjZV9jbG9zdXJlICop IHZhbHVlLT5jb21wdXRlZF9jbG9zdXJlICgpOworICAgICAgIGZyYW1lX2luZm9fcHRyIGZyYW1l CisgCT0gZ2V0X3NlbGVjdGVkX2ZyYW1lIChfKCJObyBmcmFtZSBzZWxlY3RlZC4iKSk7CisgCist ICAgICAgLyogZ2RiIHJlcHJlc2VudHMgc3ludGhldGljIHBvaW50ZXJzIGFzIHBpZWNlZCB2YWx1 ZXMgd2l0aCBhIHNpbmdsZQorLQkgcGllY2UuICAqLworLSAgICAgIGdkYl9hc3NlcnQgKGNsb3N1 cmUgIT0gTlVMTCk7CistICAgICAgZ2RiX2Fzc2VydCAoY2xvc3VyZS0+cGllY2VzLnNpemUgKCkg PT0gMSk7CisrICAgICAgZ2RiX2Fzc2VydCAoY2xvc3VyZSAhPSBudWxscHRyKTsKKysKKysgICAg ICAvKiBUaGUgdmFsdWU6OmJpdHNfc3ludGhldGljX3BvaW50ZXIgd2lsbCByZXR1cm4gdHJ1ZSBp ZiBtdWx0aXBsZQorKwkgcGllY2VzIGFyZSB1c2VkIHRvIGNvdmVyIFZBTFVFLCBzbyBsb25nIGFz IGVhY2ggcGllY2UgaXMKKysJIERXQVJGX1ZBTFVFX0lNUExJQ0lUX1BPSU5URVIuICBJIGd1ZXNz IG1heWJlIHRoaXMgaXMgcG9zc2libGUsIGJ1dAorKwkgd2UndmUgbm90IHNlZW4gc3VjaCBhIGNh c2UgaW4gdGhlIHdpbGQgeWV0LiAgRm9yIG5vdyB0aGVuIHdlIGxvb2sKKysJIGluIENMT1NVUkUg Zm9yIGEgc2luZ2xlIERXQVJGX1ZBTFVFX0lNUExJQ0lUX1BPSU5URVIgcGllY2UgdGhhdAorKwkg Y292ZXJzIFZBTFVFLiAgKi8KKysgICAgICBMT05HRVNUIGJpdF9vZmZzZXQgPSBUQVJHRVRfQ0hB Ul9CSVQgKiAodmFsdWUtPmVtYmVkZGVkX29mZnNldCAoKQorKwkJCQkJICAgICAgKyB2YWx1ZS0+ b2Zmc2V0ICgpKTsKKysgICAgICBpZiAodmFsdWUtPmJpdHNpemUgKCkpCisrCWJpdF9vZmZzZXQg Kz0gdmFsdWUtPmJpdHBvcyAoKTsKKysgICAgICBpbnQgYml0X2xlbmd0aCA9IFRBUkdFVF9DSEFS X0JJVCAqIHR5cGUtPmxlbmd0aCAoKTsKKysKKysgICAgICBjb25zdCBkd2FyZl9leHByX3BpZWNl ICpwaWVjZSA9IG51bGxwdHI7CisrICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjbG9zdXJl LT5waWVjZXMuc2l6ZSAoKTsgaSsrKQorKwl7CisrCSAgY29uc3QgZHdhcmZfZXhwcl9waWVjZSAq cCA9ICZjbG9zdXJlLT5waWVjZXNbaV07CisrCSAgc2l6ZV90IHRoaXNfc2l6ZV9iaXRzID0gcC0+ c2l6ZTsKKysKKysJICBpZiAoYml0X29mZnNldCA+PSB0aGlzX3NpemVfYml0cykKKysJICAgIHsK KysJICAgICAgYml0X29mZnNldCAtPSB0aGlzX3NpemVfYml0czsKKysJICAgICAgY29udGludWU7 CisrCSAgICB9CisrCisrCSAgLyogdmFsdWU6OmJpdHNfc3ludGhldGljX3BvaW50ZXIgZG9lcyBh bGxvdyBmb3IgbXVsdGlwbGUKKysJICAgICBwaWVjZXMgdG8gZGVzY3JpYmUgdGhlIGxvY2F0aW9u IG9mIGEgc2luZ2xlIHN5bnRoZXRpYworKwkgICAgIHBvaW50ZXIsIG9yIGZvciBhIHN5bnRoZXRp YyBwb2ludGVyIHRvIG5vdCBzdGFydCBhdCB0aGUKKysJICAgICBleGFjdCBzdGFydCBvZiBhIHBp ZWNlLCBob3dldmVyLCB3ZSBkb24ndCBjdXJyZW50bHkKKysJICAgICBzdXBwb3J0IHRoaXMgY2Fz ZS4gICovCisrCSAgaWYgKGJpdF9vZmZzZXQgIT0gMCB8fCBiaXRfbGVuZ3RoICE9IHRoaXNfc2l6 ZV9iaXRzKQorKwkgICAgZXJyb3IgKF8oInVuc3VwcG9ydGVkIHZhbHVlLXBpZWNlIGNvbmZpZ3Vy YXRpb24gIgorKwkJICAgICAiYml0X29mZnNldCA9ICVzLCBiaXRfbGVuZ3RoID0gJWQsIHRoaXNf c2l6ZV9iaXRzID0gJXMiKSwKKysJCSAgIHBsb25nZXN0IChiaXRfb2Zmc2V0KSwgYml0X2xlbmd0 aCwKKysJCSAgIHB1bG9uZ2VzdCAodGhpc19zaXplX2JpdHMpKTsKKysKKysJICBwaWVjZSA9IHA7 CisrCSAgYnJlYWs7CisrCX0KKysKKysgICAgICAvKiBJZiB2YWx1ZTo6Yml0c19zeW50aGV0aWNf cG9pbnRlciByZXR1cm5lZCB0cnVlIHRoZW4gd2Ugc2hvdWxkIGhhdmUKKysJIGZvdW5kIGEgc3Vp dGFibGUgcGllY2UuICAqLworKyAgICAgIGdkYl9hc3NlcnQgKHBpZWNlICE9IG51bGxwdHIpOwor KyAgICAgIGdkYl9hc3NlcnQgKHBpZWNlLT5sb2NhdGlvbiA9PSBEV0FSRl9WQUxVRV9JTVBMSUNJ VF9QT0lOVEVSKTsKKyAKKyAgICAgICByZXR1cm4gaW5kaXJlY3Rfc3ludGhldGljX3BvaW50ZXIK Ky0JKGNsb3N1cmUtPnBpZWNlc1swXS52LnB0ci5kaWVfc2VjdF9vZmYsCistCSBjbG9zdXJlLT5w aWVjZXNbMF0udi5wdHIub2Zmc2V0LAorKwkocGllY2UtPnYucHRyLmRpZV9zZWN0X29mZiwKKysJ IHBpZWNlLT52LnB0ci5vZmZzZXQsCisgCSBjbG9zdXJlLT5wZXJfY3UsIGNsb3N1cmUtPnBlcl9v YmpmaWxlLCBmcmFtZSwgdHlwZSk7CisgICAgIH0KKyAgIGVsc2UKK2RpZmYgLS1naXQgYS9nZGIv dGVzdHN1aXRlL2dkYi5kd2FyZjIvbXVsdGktcGllY2UtaW5oZXJpdGVkLWJpdGZpZWxkLmMgYi9n ZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvbXVsdGktcGllY2UtaW5oZXJpdGVkLWJpdGZpZWxkLmMK K25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi9nZGIvdGVzdHN1aXRl L2dkYi5kd2FyZjIvbXVsdGktcGllY2UtaW5oZXJpdGVkLWJpdGZpZWxkLmMKK0BAIC0wLDAgKzEs MjUgQEAKKysvKiBDb3B5cmlnaHQgKEMpIDIwMjYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCisrCisrICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR0RCLgorKworKyAgIFRoaXMgcHJvZ3Jh bSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5 CisrICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBhcyBwdWJsaXNoZWQgYnkKKysgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo ZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyAgIChhdCB5b3VyIG9wdGlvbikgYW55 IGxhdGVyIHZlcnNpb24uCisrCisrICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFC SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrICAg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysKKysgICBZb3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZQorKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93 d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKysKKytpbnQgdGFyZ2V0X3ZhciA9IDQyOworKwor K2ludAorK21haW4gKHZvaWQpCisreworKyAgYXNtICgibWFpbl9sYWJlbDogLmdsb2JsIG1haW5f bGFiZWwiKTsKKysgIHJldHVybiAwOworK30KK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dk Yi5kd2FyZjIvbXVsdGktcGllY2UtaW5oZXJpdGVkLWJpdGZpZWxkLmV4cCBiL2dkYi90ZXN0c3Vp dGUvZ2RiLmR3YXJmMi9tdWx0aS1waWVjZS1pbmhlcml0ZWQtYml0ZmllbGQuZXhwCituZXcgZmls ZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdh cmYyL211bHRpLXBpZWNlLWluaGVyaXRlZC1iaXRmaWVsZC5leHAKK0BAIC0wLDAgKzEsMTUxIEBA CisrIyBDb3B5cmlnaHQgMjAyNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysjCisr IyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yIG1vZGlmeQorKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrIyAoYXQgeW91ciBv cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyMKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmli dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQg QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysjIE1F UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0 aGUKKysjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrIwor KyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0 dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorKworKyMgU2V0dXAgYSBkZXJpdmVkIHN0cnVj dCB0aGF0IHVzZXMgbXVsdGlwbGUgaW5oZXJpdGFuY2UgYW5kIGlzIGRlc2NyaWJlZAorKyMgYnkg YSBtdWx0aS1waWVjZSBEV0FSRiBsb2NhdGlvbi4gIFRoZSBzZWNvbmQgYmFzZSBjbGFzcyBjb250 YWlucyBhCisrIyBiaXRmaWVsZCBtZW1iZXIuICBBdCBvbmUgdGltZSwgcHJpbnRpbmcgc3VjaCBh IHN0cnVjdCB3b3VsZCBpbmNvcnJlY3RseQorKyMgZGlzcGxheSB0aGUgYml0ZmllbGQgYXMgPHN5 bnRoZXRpYyBwb2ludGVyPi4KKysjCisrIyBUaGUgY2F1c2Ugd2FzIHRoYXQgY2hlY2tfcGllY2Vk X3N5bnRoZXRpY19wb2ludGVyIChkd2FyZjIvZXhwci5jKQorKyMgY29tcHV0ZXMgdGhlIGJpdCBv ZmZzZXQgYXMgOCAqIHZhbHVlLT5vZmZzZXQoKSBidXQgZG9lcyBub3QgYWRkCisrIyA4ICogdmFs dWUtPmVtYmVkZGVkX29mZnNldCgpLiAgV2hlbiBhIGJhc2Ugc3Vib2JqZWN0IGlzIGV4dHJhY3Rl ZCB2aWEKKysjIHByaW1pdGl2ZV9maWVsZCwgaXQgZ2V0cyBhIG5vbi16ZXJvIGVtYmVkZGVkX29m ZnNldCBidXQgb2Zmc2V0IHJlbWFpbnMKKysjIHplcm8uICBjaGVja19waWVjZWRfc3ludGhldGlj X3BvaW50ZXIgdGhlbiBjaGVja3MgcGllY2UgMCBpbnN0ZWFkIG9mCisrIyB0aGUgY29ycmVjdCBw aWVjZSwgYW5kIGlmIHBpZWNlIDAgaGFwcGVucyB0byBiZSBhbiBpbXBsaWNpdCBwb2ludGVyLAor KyMgaXQgaW5jb3JyZWN0bHkgcmVwb3J0cyB0aGUgYml0ZmllbGQgYXMgYSBzeW50aGV0aWMgcG9p bnRlci4KKysKKytyZXF1aXJlIGFsbG93X2NwbHVzX3Rlc3RzCisrCisrbG9hZF9saWIgZHdhcmYu ZXhwCisrCisrIyBUaGlzIHRlc3QgY2FuIG9ubHkgYmUgcnVuIG9uIHRhcmdldHMgd2hpY2ggc3Vw cG9ydCBEV0FSRi0yIGFuZCB1c2UgZ2FzLgorK3JlcXVpcmUgZHdhcmYyX3N1cHBvcnQKKysKKytz dGFuZGFyZF90ZXN0ZmlsZSAuYyAuUworKworK3NldCBhc21fZmlsZSBbc3RhbmRhcmRfb3V0cHV0 X2ZpbGUgJHtzcmNmaWxlMn1dCisrCisrIyBGaXJzdCBjb21waWxlIHRoZSBDIGZpbGUgb25seSwg c28gd2UgY2FuIHF1ZXJ5IHNvbWUgdHlwZSBzaXplcy4KKytpZiB7W3ByZXBhcmVfZm9yX3Rlc3Rp bmcgImZhaWxlZCB0byBwcmVwYXJlIiAke3Rlc3RmaWxlfSAke3NyY2ZpbGV9XX0geworKyAgICBy ZXR1cm4KKyt9CisrCisrRHdhcmY6OmFzc2VtYmxlICR7YXNtX2ZpbGV9IHsKKysgICAgY3Uge30g eworKwlEV19UQUdfY29tcGlsZV91bml0IHsKKysJICAgIHtEV19BVF9sYW5ndWFnZSBARFdfTEFO R19DX3BsdXNfcGx1c30KKysJfSB7CisrCSAgICBkZWNsYXJlX2xhYmVscyBjaGFyX2xhYmVsIGlu dF9sYWJlbCBmaXJzdF9sYWJlbCBzZWNvbmRfbGFiZWwgXAorKwkJZGVyaXZlZF9sYWJlbCB0YXJn ZXRfbGFiZWwKKysJICAgIHNldCBpbnRfc2l6ZSBbZ2V0X3NpemVvZiAiaW50IiAtMV0KKysKKysJ ICAgIGNoYXJfbGFiZWw6IERXX1RBR19iYXNlX3R5cGUgeworKwkJe0RXX0FUX2J5dGVfc2l6ZSAx IERXX0ZPUk1fdWRhdGF9CisrCQl7RFdfQVRfZW5jb2RpbmcgQERXX0FURV91bnNpZ25lZF9jaGFy fQorKwkJe0RXX0FUX25hbWUgImNoYXIifQorKwkgICAgfQorKworKwkgICAgaW50X2xhYmVsOiBE V19UQUdfYmFzZV90eXBlIHsKKysJCXtEV19BVF9ieXRlX3NpemUgJHtpbnRfc2l6ZX0gRFdfRk9S TV91ZGF0YX0KKysJCXtEV19BVF9lbmNvZGluZyBARFdfQVRFX3NpZ25lZH0KKysJCXtEV19BVF9u YW1lICJpbnQifQorKwkgICAgfQorKworKwkgICAgZmlyc3RfbGFiZWw6IERXX1RBR19zdHJ1Y3R1 cmVfdHlwZSB7CisrCQl7RFdfQVRfbmFtZSAiRmlyc3QifQorKwkJe0RXX0FUX2J5dGVfc2l6ZSAx IERXX0ZPUk1fdWRhdGF9CisrCSAgICB9IHsKKysJCURXX1RBR19tZW1iZXIgeworKwkJICAgIHtE V19BVF9uYW1lICJhIn0KKysJCSAgICB7RFdfQVRfdHlwZSA6JHtjaGFyX2xhYmVsfX0KKysJCSAg ICB7RFdfQVRfZGF0YV9tZW1iZXJfbG9jYXRpb24gMCBEV19GT1JNX3VkYXRhfQorKwkJfQorKwkg ICAgfQorKworKwkgICAgc2Vjb25kX2xhYmVsOiBEV19UQUdfc3RydWN0dXJlX3R5cGUgeworKwkJ e0RXX0FUX25hbWUgIlNlY29uZCJ9CisrCQl7RFdfQVRfYnl0ZV9zaXplIDEgRFdfRk9STV91ZGF0 YX0KKysJICAgIH0geworKwkJRFdfVEFHX21lbWJlciB7CisrCQkgICAge0RXX0FUX25hbWUgImJm In0KKysJCSAgICB7RFdfQVRfdHlwZSA6JHtpbnRfbGFiZWx9fQorKwkJICAgIHtEV19BVF9kYXRh X21lbWJlcl9sb2NhdGlvbiAwIERXX0ZPUk1fdWRhdGF9CisrCQkgICAge0RXX0FUX2JpdF9zaXpl IDggRFdfRk9STV91ZGF0YX0KKysJCX0KKysJICAgIH0KKysKKysJICAgIGRlcml2ZWRfbGFiZWw6 IERXX1RBR19zdHJ1Y3R1cmVfdHlwZSB7CisrCQl7RFdfQVRfbmFtZSAiRGVyaXZlZCJ9CisrCQl7 RFdfQVRfYnl0ZV9zaXplIDIgRFdfRk9STV91ZGF0YX0KKysJICAgIH0geworKwkJRFdfVEFHX2lu aGVyaXRhbmNlIHsKKysJCSAgICB7RFdfQVRfdHlwZSA6JHtmaXJzdF9sYWJlbH19CisrCQkgICAg e0RXX0FUX2RhdGFfbWVtYmVyX2xvY2F0aW9uIDAgRFdfRk9STV91ZGF0YX0KKysJCX0KKysKKysJ CURXX1RBR19pbmhlcml0YW5jZSB7CisrCQkgICAge0RXX0FUX3R5cGUgOiR7c2Vjb25kX2xhYmVs fX0KKysJCSAgICB7RFdfQVRfZGF0YV9tZW1iZXJfbG9jYXRpb24gMSBEV19GT1JNX3VkYXRhfQor KwkJfQorKwkgICAgfQorKworKwkgICAgdGFyZ2V0X2xhYmVsOiBEV19UQUdfdmFyaWFibGUgewor KwkJe0RXX0FUX25hbWUgInRhcmdldF92YXIifQorKwkJe0RXX0FUX3R5cGUgOiR7aW50X2xhYmVs fX0KKysJCXtEV19BVF9leHRlcm5hbCAxIERXX0ZPUk1fZmxhZ30KKysJCXtEV19BVF9sb2NhdGlv biB7CisrCQkgICAgRFdfT1BfYWRkciBbZ2RiX3RhcmdldF9zeW1ib2wgInRhcmdldF92YXIiXQor KwkJfSBTUEVDSUFMX2V4cHJ9CisrCSAgICB9CisrCisrCSAgICBEV19UQUdfc3VicHJvZ3JhbSB7 CisrCQl7TUFDUk9fQVRfZnVuYyB7ICJtYWluIiB9fQorKwkJe0RXX0FUX3R5cGUgOiR7aW50X2xh YmVsfX0KKysJCXtEV19BVF9leHRlcm5hbCAxIERXX0ZPUk1fZmxhZ30KKysJICAgIH0geworKwkJ RFdfVEFHX3ZhcmlhYmxlIHsKKysJCSAgICB7RFdfQVRfbmFtZSAiZCJ9CisrCQkgICAge0RXX0FU X3R5cGUgOiR7ZGVyaXZlZF9sYWJlbH19CisrCQkgICAge0RXX0FUX2xvY2F0aW9uIHsKKysJCQlE V19PUF9HTlVfaW1wbGljaXRfcG9pbnRlciAkdGFyZ2V0X2xhYmVsIDAKKysJCQlEV19PUF9waWVj ZSAxCisrCQkJRFdfT1BfY29uc3QxdSA0MgorKwkJCURXX09QX3N0YWNrX3ZhbHVlCisrCQkJRFdf T1BfcGllY2UgMQorKwkJICAgIH0gU1BFQ0lBTF9leHByfQorKwkJfQorKwkgICAgfQorKwl9Cisr ICAgIH0KKyt9CisrCisrIyBOb3cgY29tcGlsZSBib3RoIEMgc291cmNlIGFuZCBnZW5lcmF0ZWQg RFdBUkYgYXNzZW1ibHkuCisraWYge1twcmVwYXJlX2Zvcl90ZXN0aW5nICJmYWlsZWQgdG8gcHJl cGFyZSIgJHt0ZXN0ZmlsZX0gXAorKwkgW2xpc3QgJHthc21fZmlsZX0gJHtzcmNmaWxlfV0ge31d fSB7CisrICAgIHJldHVybgorK30KKysKKysjIFN0YXJ0IHRoZSBpbmZlcmlvciBzbyB0aGF0ICdk JyBpcyBpbiBzY29wZS4KKytpZiB7IVtydW50b19tYWluXX0geworKyAgICByZXR1cm4KKyt9Cisr CisrIyBXaXRoIHRoZSBidWcgaW4gY2hlY2tfcGllY2VkX3N5bnRoZXRpY19wb2ludGVyLCB0aGUg Yml0ZmllbGQgYmYgaW4gdGhlCisrIyBTZWNvbmQgYmFzZSBzdWJvYmplY3QgaXMgaW5jb3JyZWN0 bHkgcmVwb3J0ZWQgYXMgPHN5bnRoZXRpYyBwb2ludGVyPi4KKysjIFRoaXMgaGFwcGVucyBiZWNh dXNlIGNoZWNrX3BpZWNlZF9zeW50aGV0aWNfcG9pbnRlciBkb2VzIG5vdCBhY2NvdW50IGZvcgor KyMgZW1iZWRkZWRfb2Zmc2V0LCBzbyBpdCBjaGVja3MgcGllY2UgMCAodGhlIGltcGxpY2l0IHBv aW50ZXIgY292ZXJpbmcKKysjIEZpcnN0KSBpbnN0ZWFkIG9mIHBpZWNlIDEgKHRoZSBzdGFjayB2 YWx1ZSBjb3ZlcmluZyBTZWNvbmQpLgorK2dkYl90ZXN0ICJwcmludCBkIiAiID0gezxGaXJzdD4g PSB7YSA9IDxzeW50aGV0aWMgcG9pbnRlcj59LCA8U2Vjb25kPiA9IHtiZiA9IDQyfSwgPE5vIGRh dGEgZmllbGRzPn0iIFwKKysgICAgImJpdGZpZWxkIGluIGJhc2Ugc3Vib2JqZWN0IGlzIG5vdCBz eW50aGV0aWMgcG9pbnRlciIKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIv bXVsdGktcGllY2UtcHJpbWl0aXZlLWZpZWxkLmMgYi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIv bXVsdGktcGllY2UtcHJpbWl0aXZlLWZpZWxkLmMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0g L2Rldi9udWxsCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvbXVsdGktcGllY2UtcHJp bWl0aXZlLWZpZWxkLmMKK0BAIC0wLDAgKzEsMjUgQEAKKysvKiBDb3B5cmlnaHQgKEMpIDIwMjYg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrICAgVGhpcyBmaWxlIGlzIHBhcnQg b2YgR0RCLgorKworKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysgICB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBv cgorKyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrCisrICAgVGhpcyBw cm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws CisrICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlCisrICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KKysKKysgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyAgIGFsb25nIHdpdGggdGhpcyBwcm9n cmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKysK KytpbnQgdGFyZ2V0X3ZhciA9IDQyOworKworK2ludAorK21haW4gKHZvaWQpCisreworKyAgYXNt ICgibWFpbl9sYWJlbDogLmdsb2JsIG1haW5fbGFiZWwiKTsKKysgIHJldHVybiAwOworK30KK2Rp ZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvbXVsdGktcGllY2UtcHJpbWl0aXZl LWZpZWxkLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9tdWx0aS1waWVjZS1wcmltaXRp dmUtZmllbGQuZXhwCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIv Z2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL211bHRpLXBpZWNlLXByaW1pdGl2ZS1maWVsZC5leHAK K0BAIC0wLDAgKzEsMTkwIEBACisrIyBDb3B5cmlnaHQgMjAyNiBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KKysjCisrIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysjIHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2Us IG9yCisrIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyMKKysjIFRoaXMg cHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs LAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt b3JlIGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFt LiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorKworKyMgU2V0 dXAgYSBzdHJ1Y3QgdmFyaWFibGUgdGhhdCBpcyBkZXNjcmliZWQgYnkgYSBtdWx0aS1waWVjZSBE V0FSRiBsb2NhdGlvbi4KKysjIE9uZSBvZiB0aGUgc3RydWN0J3MgZmllbGRzIGlzIGEgQysrIHJl ZmVyZW5jZSB0eXBlIGltcGxlbWVudGVkIHZpYQorKyMgRFdfT1BfR05VX2ltcGxpY2l0X3BvaW50 ZXIuICBBdCBvbmUgdGltZSwgYXR0ZW1wdGluZyB0byBwcmludCBzdWNoIGEgZmllbGQKKysjIHdv dWxkIHRyaWdnZXIgYW4gYXNzZXJ0aW9uIGluIEdEQi4KKysjCisrIyBUaGUgY2F1c2Ugd2FzIHRo YXQgcHJpbWl0aXZlX2ZpZWxkIGV4dHJhY3RzIHRoZSByZWZlcmVuY2UgZmllbGQgYW5kCisrIyBz ZXRfY29tcG9uZW50X2xvY2F0aW9uIGNvcGllcyB0aGUgcGFyZW50J3MgZW50aXJlIHBpZWNlX2Ns b3N1cmUgKGp1c3QKKysjIGluY3JlbWVudGluZyBpdHMgcmVmY291bnQpLiAgVGhlbiBjb2VyY2Vf cGllY2VkX3JlZiB3b3VsZCBhc3NlcnQKKysjIGNsb3N1cmUtPnBpZWNlcy5zaXplKCkgPT0gMSwg d2hpY2ggZmFpbGVkIGJlY2F1c2UgdGhlIGNsb3N1cmUgc3RpbGwgaGFkCisrIyBhbGwgdGhlIHBh cmVudCdzIHBpZWNlcy4KKysjCisrIyBUaGlzIHRlc3QgY29uZmlybXMgdGhhdCB0aGlzIGlzc3Vl IGhhcyBub3cgYmVlbiBmaXhlZC4KKysKKytyZXF1aXJlIGFsbG93X2NwbHVzX3Rlc3RzCisrCisr bG9hZF9saWIgZHdhcmYuZXhwCisrCisrIyBUaGlzIHRlc3QgY2FuIG9ubHkgYmUgcnVuIG9uIHRh cmdldHMgd2hpY2ggc3VwcG9ydCBEV0FSRi0yIGFuZCB1c2UgZ2FzLgorK3JlcXVpcmUgZHdhcmYy X3N1cHBvcnQKKysKKytzdGFuZGFyZF90ZXN0ZmlsZSAuYyAuUworKworK3NldCBhc21fZmlsZSBb c3RhbmRhcmRfb3V0cHV0X2ZpbGUgJHtzcmNmaWxlMn1dCisrCisrIyBGaXJzdCBjb21waWxlIHRo ZSBDIGZpbGUgb25seSwgc28gd2UgY2FuIHF1ZXJ5IHNvbWUgdHlwZSBzaXplcy4KKytpZiB7W3By ZXBhcmVfZm9yX3Rlc3RpbmcgImZhaWxlZCB0byBwcmVwYXJlIiAke3Rlc3RmaWxlfSAke3NyY2Zp bGV9XX0geworKyAgICByZXR1cm4KKyt9CisrCisrRHdhcmY6OmFzc2VtYmxlICR7YXNtX2ZpbGV9 IHsKKysgICAgY3Uge30geworKwlEV19UQUdfY29tcGlsZV91bml0IHsKKysJICAgIHtEV19BVF9s YW5ndWFnZSBARFdfTEFOR19DX3BsdXNfcGx1c30KKysJfSB7CisrCSAgICBkZWNsYXJlX2xhYmVs cyBpbnRfbGFiZWwgc3RydWN0X2xhYmVsIHJlZl90eXBlX2xhYmVsIHRhcmdldF9sYWJlbCBcCisr CQlmaXJzdF9sYWJlbCBzZWNvbmRfbGFiZWwgZGVyaXZlZF9sYWJlbAorKwkgICAgc2V0IGludF9z aXplIFtnZXRfc2l6ZW9mICJpbnQiIC0xXQorKwkgICAgc2V0IGFkZHJfc2l6ZSBbZ2V0X3NpemVv ZiAidm9pZCAqIiAtMV0KKysJICAgIHNldCBzdHJ1Y3Rfc2l6ZSBbZXhwciB7JGludF9zaXplICsg JGFkZHJfc2l6ZX1dCisrCisrCSAgICBpbnRfbGFiZWw6IERXX1RBR19iYXNlX3R5cGUgeworKwkJ e0RXX0FUX2J5dGVfc2l6ZSAke2ludF9zaXplfSBEV19GT1JNX3VkYXRhfQorKwkJe0RXX0FUX2Vu Y29kaW5nIEBEV19BVEVfc2lnbmVkfQorKwkJe0RXX0FUX25hbWUgImludCJ9CisrCSAgICB9Cisr CisrCSAgICByZWZfdHlwZV9sYWJlbDogRFdfVEFHX3JlZmVyZW5jZV90eXBlIHsKKysJCXtEV19B VF9ieXRlX3NpemUgJHthZGRyX3NpemV9IERXX0ZPUk1fdWRhdGF9CisrCQl7RFdfQVRfdHlwZSA6 JHtpbnRfbGFiZWx9fQorKwkgICAgfQorKworKwkgICAgc3RydWN0X2xhYmVsOiBEV19UQUdfc3Ry dWN0dXJlX3R5cGUgeworKwkJe0RXX0FUX25hbWUgIlMifQorKwkJe0RXX0FUX2J5dGVfc2l6ZSAk e3N0cnVjdF9zaXplfSBEV19GT1JNX3VkYXRhfQorKwkgICAgfSB7CisrCQlEV19UQUdfbWVtYmVy IHsKKysJCSAgICB7RFdfQVRfbmFtZSAieCJ9CisrCQkgICAge0RXX0FUX3R5cGUgOiR7aW50X2xh YmVsfX0KKysJCSAgICB7RFdfQVRfZGF0YV9tZW1iZXJfbG9jYXRpb24gMCBEV19GT1JNX3VkYXRh fQorKwkJfQorKworKwkJRFdfVEFHX21lbWJlciB7CisrCQkgICAge0RXX0FUX25hbWUgInJlZiJ9 CisrCQkgICAge0RXX0FUX3R5cGUgOiR7cmVmX3R5cGVfbGFiZWx9fQorKwkJICAgIHtEV19BVF9k YXRhX21lbWJlcl9sb2NhdGlvbiAke2ludF9zaXplfSBEV19GT1JNX3VkYXRhfQorKwkJfQorKwkg ICAgfQorKworKwkgICAgZmlyc3RfbGFiZWw6IERXX1RBR19zdHJ1Y3R1cmVfdHlwZSB7CisrCQl7 RFdfQVRfbmFtZSAiZmlyc3QifQorKwkJe0RXX0FUX2J5dGVfc2l6ZSAke2ludF9zaXplfSBEV19G T1JNX3VkYXRhfQorKwkgICAgfSB7CisrCQlEV19UQUdfbWVtYmVyIHsKKysJCSAgICB7RFdfQVRf bmFtZSAieCJ9CisrCQkgICAge0RXX0FUX3R5cGUgOiR7aW50X2xhYmVsfX0KKysJCSAgICB7RFdf QVRfZGF0YV9tZW1iZXJfbG9jYXRpb24gMCBEV19GT1JNX3VkYXRhfQorKwkJfQorKwkgICAgfQor KworKwkgICAgc2Vjb25kX2xhYmVsOiBEV19UQUdfc3RydWN0dXJlX3R5cGUgeworKwkJe0RXX0FU X25hbWUgInNlY29uZCJ9CisrCQl7RFdfQVRfYnl0ZV9zaXplICR7YWRkcl9zaXplfSBEV19GT1JN X3VkYXRhfQorKwkgICAgfSB7CisrCQlEV19UQUdfbWVtYmVyIHsKKysJCSAgICB7RFdfQVRfbmFt ZSAicmVmIn0KKysJCSAgICB7RFdfQVRfdHlwZSA6JHtyZWZfdHlwZV9sYWJlbH19CisrCQkgICAg e0RXX0FUX2RhdGFfbWVtYmVyX2xvY2F0aW9uIDAgRFdfRk9STV91ZGF0YX0KKysJCX0KKysJICAg IH0KKysKKysJICAgIGRlcml2ZWRfbGFiZWw6IERXX1RBR19zdHJ1Y3R1cmVfdHlwZSB7CisrCQl7 RFdfQVRfbmFtZSAiZGVyaXZlZCJ9CisrCQl7RFdfQVRfYnl0ZV9zaXplICR7c3RydWN0X3NpemV9 IERXX0ZPUk1fdWRhdGF9CisrCSAgICB9IHsKKysJCURXX1RBR19pbmhlcml0YW5jZSB7CisrCQkg ICAge0RXX0FUX3R5cGUgOiR7Zmlyc3RfbGFiZWx9fQorKwkJICAgIHtEV19BVF9kYXRhX21lbWJl cl9sb2NhdGlvbiAwIERXX0ZPUk1fdWRhdGF9CisrCQl9CisrCisrCQlEV19UQUdfaW5oZXJpdGFu Y2UgeworKwkJICAgIHtEV19BVF90eXBlIDoke3NlY29uZF9sYWJlbH19CisrCQkgICAge0RXX0FU X2RhdGFfbWVtYmVyX2xvY2F0aW9uICR7aW50X3NpemV9IERXX0ZPUk1fdWRhdGF9CisrCQl9Cisr CSAgICB9CisrCisrCSAgICB0YXJnZXRfbGFiZWw6IERXX1RBR192YXJpYWJsZSB7CisrCQl7RFdf QVRfbmFtZSAidGFyZ2V0X3ZhciJ9CisrCQl7RFdfQVRfdHlwZSA6JHtpbnRfbGFiZWx9fQorKwkJ e0RXX0FUX2V4dGVybmFsIDEgRFdfRk9STV9mbGFnfQorKwkJe0RXX0FUX2xvY2F0aW9uIHsKKysJ CSAgICBEV19PUF9hZGRyIFtnZGJfdGFyZ2V0X3N5bWJvbCAidGFyZ2V0X3ZhciJdCisrCQl9IFNQ RUNJQUxfZXhwcn0KKysJICAgIH0KKysKKysJICAgIERXX1RBR19zdWJwcm9ncmFtIHsKKysJCXtN QUNST19BVF9mdW5jIHsgIm1haW4iIH19CisrCQl7RFdfQVRfdHlwZSA6JHtpbnRfbGFiZWx9fQor KwkJe0RXX0FUX2V4dGVybmFsIDEgRFdfRk9STV9mbGFnfQorKwkgICAgfSB7CisrCQlEV19UQUdf dmFyaWFibGUgeworKwkJICAgIHtEV19BVF9uYW1lICJzIn0KKysJCSAgICB7RFdfQVRfdHlwZSA6 JHtzdHJ1Y3RfbGFiZWx9fQorKwkJICAgIHtEV19BVF9sb2NhdGlvbiB7CisrCQkJRFdfT1BfY29u c3Q0dSAxMjMKKysJCQlEV19PUF9zdGFja192YWx1ZQorKwkJCURXX09QX3BpZWNlICRpbnRfc2l6 ZQorKwkJCURXX09QX0dOVV9pbXBsaWNpdF9wb2ludGVyICR0YXJnZXRfbGFiZWwgMAorKwkJCURX X09QX3BpZWNlICRhZGRyX3NpemUKKysJCSAgICB9IFNQRUNJQUxfZXhwcn0KKysJCX0KKysKKysJ CURXX1RBR192YXJpYWJsZSB7CisrCQkgICAge0RXX0FUX25hbWUgImQifQorKwkJICAgIHtEV19B VF90eXBlIDoke2Rlcml2ZWRfbGFiZWx9fQorKwkJICAgIHtEV19BVF9sb2NhdGlvbiB7CisrCQkJ RFdfT1BfY29uc3Q0dSA0NTYKKysJCQlEV19PUF9zdGFja192YWx1ZQorKwkJCURXX09QX3BpZWNl ICRpbnRfc2l6ZQorKwkJCURXX09QX0dOVV9pbXBsaWNpdF9wb2ludGVyICR0YXJnZXRfbGFiZWwg MAorKwkJCURXX09QX3BpZWNlICRhZGRyX3NpemUKKysJCSAgICB9IFNQRUNJQUxfZXhwcn0KKysJ CX0KKysJICAgIH0KKysJfQorKyAgICB9CisrfQorKworKyMgTm93IGNvbXBpbGUgYm90aCBDIHNv dXJjZSBhbmQgZ2VuZXJhdGVkIERXQVJGIGFzc2VtYmx5LgorK2lmIHtbcHJlcGFyZV9mb3JfdGVz dGluZyAiZmFpbGVkIHRvIHByZXBhcmUiICR7dGVzdGZpbGV9IFwKKysJIFtsaXN0ICR7YXNtX2Zp bGV9ICR7c3JjZmlsZX1dIHt9XX0geworKyAgICByZXR1cm4KKyt9CisrCisrIyBTdGFydCB0aGUg aW5mZXJpb3Igc28gdGhhdCAncycgaXMgaW4gc2NvcGUuCisraWYgeyFbcnVudG9fbWFpbl19IHsK KysgICAgcmV0dXJuCisrfQorKworKyMgUHJpbnRpbmcgYHNgIHVzZWQgdG8gY3Jhc2ggd2l0aCBh biBhc3NlcnRpb24gZmFpbHVyZSBpbiBjb2VyY2VfcGllY2VkX3JlZgorKyMgYmVjYXVzZSB0aGUg cmVmIGZpZWxkIGluaGVyaXRlZCB0aGUgcGFyZW50IHN0cnVjdCdzIG11bHRpLXBpZWNlIGNsb3N1 cmUuCisrZ2RiX3Rlc3QgInByaW50IHMiICIgPSB7eCA9IDEyMywgcmVmID0gQCRoZXh9IiBcCisr ICAgICJwcmludCBtdWx0aS1waWVjZSBzdHJ1Y3Qgd2l0aCBpbXBsaWNpdCBwb2ludGVyIHJlZmVy ZW5jZSBmaWVsZCIKKysKKytnZGJfdGVzdCAicHJpbnQgcy5yZWYiICIgPSBcXChpbnQgJlxcKSBA JGhleDogNDIiIFwKKysgICAgInByaW50IHJlZiBtZW1iZXIgb2YgbXVsdGktcGllY2Ugc3RydWN0 IgorKworKyMgU2FtZSB0ZXN0IGJ1dCB3aXRoIGluaGVyaXRhbmNlLiAgVGhlIHJlZmVyZW5jZSBm aWVsZCBpcyBpbiB0aGUKKysjIHNlY29uZCBiYXNlIGNsYXNzLCBzbyBpdCByZWFjaGVzIGNvZXJj ZV9waWVjZWRfcmVmIHRocm91Z2ggYQorKyMgZGlmZmVyZW50IHBhdGggdG8gdGhlIGFib3ZlIGNh c2UuCisrZ2RiX3Rlc3QgInByaW50IGQiIFwKKysgICAgIiA9IHs8Zmlyc3Q+ID0ge3ggPSA0NTZ9 LCA8c2Vjb25kPiA9IHtyZWYgPSBAJGhleH0sIDxObyBkYXRhIGZpZWxkcz59IiBcCisrICAgICJw cmludCBpbmhlcml0ZWQgbXVsdGktcGllY2Ugc3RydWN0IHdpdGggaW1wbGljaXQgcG9pbnRlciBy ZWYiCisrCisrZ2RiX3Rlc3QgInByaW50IGQucmVmIiAiID0gXFwoaW50ICZcXCkgQCRoZXg6IDQy IiBcCisrICAgICJwcmludCByZWYgbWVtYmVyIG9mIGluaGVyaXRlZCBtdWx0aS1waWVjZSBzdHJ1 Y3QiCitkaWZmIC0tZ2l0IGEvZ2RiL3ZhbG9wcy5jIGIvZ2RiL3ZhbG9wcy5jCistLS0gYS9nZGIv dmFsb3BzLmMKKysrKyBiL2dkYi92YWxvcHMuYworQEAgLTE1NDUsOCArMTU0NSw3IEBAIHZhbHVl X2FkZHIgKHN0cnVjdCB2YWx1ZSAqYXJnMSkKKyAKKyAgIGlmIChUWVBFX0lTX1JFRkVSRU5DRSAo dHlwZSkpCisgICAgIHsKKy0gICAgICBpZiAoYXJnMS0+Yml0c19zeW50aGV0aWNfcG9pbnRlciAo YXJnMS0+ZW1iZWRkZWRfb2Zmc2V0ICgpLAorLQkJCQkJVEFSR0VUX0NIQVJfQklUICogdHlwZS0+ bGVuZ3RoICgpKSkKKysgICAgICBpZiAoYXJnMS0+Yml0c19zeW50aGV0aWNfcG9pbnRlciAoMCwg VEFSR0VUX0NIQVJfQklUICogdHlwZS0+bGVuZ3RoICgpKSkKKyAJYXJnMSA9IGNvZXJjZV9yZWYg KGFyZzEpOworICAgICAgIGVsc2UKKyAJeworZGlmZiAtLWdpdCBhL2dkYi92YWxwcmludC5jIGIv Z2RiL3ZhbHByaW50LmMKKy0tLSBhL2dkYi92YWxwcmludC5jCisrKysgYi9nZGIvdmFscHJpbnQu YworQEAgLTkyLDcgKzkyLDYgQEAgc3RhdGljIHZvaWQgc2V0X291dHB1dF9yYWRpeF8xIChpbnQs IHVuc2lnbmVkKTsKKyAKKyBzdGF0aWMgdm9pZCB2YWxfcHJpbnRfdHlwZV9jb2RlX2ZsYWdzIChz dHJ1Y3QgdHlwZSAqdHlwZSwKKyAJCQkJICAgICAgIHN0cnVjdCB2YWx1ZSAqb3JpZ2luYWxfdmFs dWUsCistCQkJCSAgICAgICBpbnQgZW1iZWRkZWRfb2Zmc2V0LAorIAkJCQkgICAgICAgc3RydWN0 IHVpX2ZpbGUgKnN0cmVhbSk7CisgCisgLyogU3RhcnQgcHJpbnRfbWF4IGF0IHRoaXMgdmFsdWUu ICAqLworQEAgLTMxMCwxMSArMzA5LDkgQEAgc2hvd19zeW1ib2xfcHJpbnQgKHN0cnVjdCB1aV9m aWxlICpmaWxlLCBpbnQgZnJvbV90dHksCisgCisgDAorIAorLS8qIEEgaGVscGVyIGZ1bmN0aW9u IGZvciB2YWxfcHJpbnQuICBXaGVuIHByaW50aW5nIGluICJzdW1tYXJ5IiBtb2RlLAorLSAgIHdl IHdhbnQgdG8gcHJpbnQgc2NhbGFyIGFyZ3VtZW50cywgYnV0IG5vdCBhZ2dyZWdhdGUgYXJndW1l bnRzLgorLSAgIFRoaXMgZnVuY3Rpb24gZGlzdGluZ3Vpc2hlcyBiZXR3ZWVuIHRoZSB0d28uICAq LworKy8qIFNlZSB2YWxwcmludC5oLiAgKi8KKyAKKy1pbnQKKytib29sCisgdmFsX3ByaW50X3Nj YWxhcl90eXBlX3AgKHN0cnVjdCB0eXBlICp0eXBlKQorIHsKKyAgIHR5cGUgPSBjaGVja190eXBl ZGVmICh0eXBlKTsKK0BAIC0zMzAsOSArMzI3LDkgQEAgdmFsX3ByaW50X3NjYWxhcl90eXBlX3Ag KHN0cnVjdCB0eXBlICp0eXBlKQorICAgICBjYXNlIFRZUEVfQ09ERV9VTklPTjoKKyAgICAgY2Fz ZSBUWVBFX0NPREVfU0VUOgorICAgICBjYXNlIFRZUEVfQ09ERV9TVFJJTkc6CistICAgICAgcmV0 dXJuIDA7CisrICAgICAgcmV0dXJuIGZhbHNlOworICAgICBkZWZhdWx0OgorLSAgICAgIHJldHVy biAxOworKyAgICAgIHJldHVybiB0cnVlOworICAgICB9CisgfQorIAorQEAgLTM1MCwxMCArMzQ3 LDEwIEBAIHZhbF9wcmludF9zY2FsYXJfb3Jfc3RyaW5nX3R5cGVfcCAoc3RydWN0IHR5cGUgKnR5 cGUsCisgCisgLyogU2VlIHZhbHByaW50LmguICAqLworIAorLWludAorK2Jvb2wKKyB2YWxwcmlu dF9jaGVja192YWxpZGl0eSAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKKyAJCQkgc3RydWN0IHR5 cGUgKnR5cGUsCistCQkJIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LAorKwkJCSBMT05HRVNUIGZp ZWxkX2J5dGVfb2Zmc2V0LAorIAkJCSBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCkKKyB7CisgICB0 eXBlID0gY2hlY2tfdHlwZWRlZiAodHlwZSk7CitAQCAtMzYxLDMxICszNTgsMzEgQEAgdmFscHJp bnRfY2hlY2tfdmFsaWRpdHkgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sCisgICBpZiAodHlwZV9u b3RfYXNzb2NpYXRlZCAodHlwZSkpCisgICAgIHsKKyAgICAgICB2YWxfcHJpbnRfbm90X2Fzc29j aWF0ZWQgKHN0cmVhbSk7CistICAgICAgcmV0dXJuIDA7CisrICAgICAgcmV0dXJuIGZhbHNlOwor ICAgICB9CisgCisgICBpZiAodHlwZV9ub3RfYWxsb2NhdGVkICh0eXBlKSkKKyAgICAgeworICAg ICAgIHZhbF9wcmludF9ub3RfYWxsb2NhdGVkIChzdHJlYW0pOworLSAgICAgIHJldHVybiAwOwor KyAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgfQorIAorICAgaWYgKHR5cGUtPmNvZGUgKCkgIT0g VFlQRV9DT0RFX1VOSU9OCisgICAgICAgJiYgdHlwZS0+Y29kZSAoKSAhPSBUWVBFX0NPREVfU1RS VUNUCisgICAgICAgJiYgdHlwZS0+Y29kZSAoKSAhPSBUWVBFX0NPREVfQVJSQVkpCisgICAgIHsK Ky0gICAgICBpZiAodmFsLT5iaXRzX2FueV9vcHRpbWl6ZWRfb3V0IChUQVJHRVRfQ0hBUl9CSVQg KiBlbWJlZGRlZF9vZmZzZXQsCisrICAgICAgaWYgKHZhbC0+Yml0c19hbnlfb3B0aW1pemVkX291 dCAoVEFSR0VUX0NIQVJfQklUICogZmllbGRfYnl0ZV9vZmZzZXQsCisgCQkJCSAgICAgICBUQVJH RVRfQ0hBUl9CSVQgKiB0eXBlLT5sZW5ndGggKCkpKQorIAl7CisgCSAgdmFsX3ByaW50X29wdGlt aXplZF9vdXQgKHZhbCwgc3RyZWFtKTsKKy0JICByZXR1cm4gMDsKKysJICByZXR1cm4gZmFsc2U7 CisgCX0KKyAKKy0gICAgICBpZiAodmFsLT5iaXRzX3N5bnRoZXRpY19wb2ludGVyIChUQVJHRVRf Q0hBUl9CSVQgKiBlbWJlZGRlZF9vZmZzZXQsCisrICAgICAgaWYgKHZhbC0+Yml0c19zeW50aGV0 aWNfcG9pbnRlciAoVEFSR0VUX0NIQVJfQklUICogZmllbGRfYnl0ZV9vZmZzZXQsCisgCQkJCSAg ICAgICBUQVJHRVRfQ0hBUl9CSVQgKiB0eXBlLT5sZW5ndGggKCkpKQorIAl7CistCSAgY29uc3Qg aW50IGlzX3JlZiA9IHR5cGUtPmNvZGUgKCkgPT0gVFlQRV9DT0RFX1JFRjsKKy0JICBpbnQgcmVm X2lzX2FkZHJlc3NhYmxlID0gMDsKKysJICBjb25zdCBib29sIGlzX3JlZiA9IHR5cGUtPmNvZGUg KCkgPT0gVFlQRV9DT0RFX1JFRjsKKysJICBib29sIHJlZl9pc19hZGRyZXNzYWJsZSA9IGZhbHNl OworIAorIAkgIGlmIChpc19yZWYpCisgCSAgICB7CitAQCAtNDAzLDE0ICs0MDAsMTQgQEAgdmFs cHJpbnRfY2hlY2tfdmFsaWRpdHkgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sCisgCSAgcmV0dXJu IGlzX3JlZjsKKyAJfQorIAorLSAgICAgIGlmICghdmFsLT5ieXRlc19hdmFpbGFibGUgKGVtYmVk ZGVkX29mZnNldCwgdHlwZS0+bGVuZ3RoICgpKSkKKysgICAgICBpZiAoIXZhbC0+Ynl0ZXNfYXZh aWxhYmxlIChmaWVsZF9ieXRlX29mZnNldCwgdHlwZS0+bGVuZ3RoICgpKSkKKyAJeworIAkgIHZh bF9wcmludF91bmF2YWlsYWJsZSAoc3RyZWFtKTsKKy0JICByZXR1cm4gMDsKKysJICByZXR1cm4g ZmFsc2U7CisgCX0KKyAgICAgfQorIAorLSAgcmV0dXJuIDE7CisrICByZXR1cm4gdHJ1ZTsKKyB9 CisgCisgdm9pZAorQEAgLTU5NSwxNCArNTkyLDEzIEBAIGdlbmVyaWNfdmFsdWVfcHJpbnRfcHRy IChzdHJ1Y3QgdmFsdWUgKnZhbCwgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKKyAKKyBzdGF0aWMg dm9pZAorIHByaW50X3JlZl9hZGRyZXNzIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5 dGUgKmFkZHJlc3NfYnVmZmVyLAorLQkJICBpbnQgZW1iZWRkZWRfb2Zmc2V0LCBzdHJ1Y3QgdWlf ZmlsZSAqc3RyZWFtKQorKwkJICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSkKKyB7CisgICBzdHJ1 Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IHR5cGUtPmFyY2ggKCk7CisgCisgICBpZiAoYWRkcmVzc19i dWZmZXIgIT0gTlVMTCkKKyAgICAgeworLSAgICAgIENPUkVfQUREUiBhZGRyZXNzCistCT0gZXh0 cmFjdF90eXBlZF9hZGRyZXNzIChhZGRyZXNzX2J1ZmZlciArIGVtYmVkZGVkX29mZnNldCwgdHlw ZSk7CisrICAgICAgQ09SRV9BRERSIGFkZHJlc3MgPSBleHRyYWN0X3R5cGVkX2FkZHJlc3MgKGFk ZHJlc3NfYnVmZmVyLCB0eXBlKTsKKyAKKyAgICAgICBnZGJfcHJpbnRmIChzdHJlYW0sICJAIik7 CisgICAgICAgZ2RiX3B1dHMgKHBhZGRyZXNzIChnZGJhcmNoLCBhZGRyZXNzKSwgc3RyZWFtKTsK K0BAIC02MzEsMzIgKzYyNywyNyBAQCBnZXRfdmFsdWVfYWRkcl9jb250ZW50cyAoc3RydWN0IHZh bHVlICpkZXJlZl92YWwpCisgCisgc3RhdGljIHZvaWQKKyBnZW5lcmljX3ZhbF9wcmludF9yZWYg KHN0cnVjdCB0eXBlICp0eXBlLAorLQkJICAgICAgIGludCBlbWJlZGRlZF9vZmZzZXQsIHN0cnVj dCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAorKwkJICAgICAgIHN0cnVjdCB1aV9maWxl ICpzdHJlYW0sIGludCByZWN1cnNlLAorIAkJICAgICAgIHN0cnVjdCB2YWx1ZSAqb3JpZ2luYWxf dmFsdWUsCisgCQkgICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlv bnMpCisgeworICAgc3RydWN0IHR5cGUgKmVsdHR5cGUgPSBjaGVja190eXBlZGVmICh0eXBlLT50 YXJnZXRfdHlwZSAoKSk7CisgICBzdHJ1Y3QgdmFsdWUgKmRlcmVmX3ZhbCA9IE5VTEw7CisgICBj b25zdCBib29sIHZhbHVlX2lzX3N5bnRoZXRpYworLSAgICA9IG9yaWdpbmFsX3ZhbHVlLT5iaXRz X3N5bnRoZXRpY19wb2ludGVyIChUQVJHRVRfQ0hBUl9CSVQgKiBlbWJlZGRlZF9vZmZzZXQsCist CQkJCQkgICAgICBUQVJHRVRfQ0hBUl9CSVQgKiB0eXBlLT5sZW5ndGggKCkpOworLSAgY29uc3Qg aW50IG11c3RfY29lcmNlX3JlZiA9ICgob3B0aW9ucy0+YWRkcmVzc3ByaW50ICYmIHZhbHVlX2lz X3N5bnRoZXRpYykKKy0JCQkgICAgICAgfHwgb3B0aW9ucy0+ZGVyZWZfcmVmKTsKKy0gIGNvbnN0 IGludCB0eXBlX2lzX2RlZmluZWQgPSBlbHR0eXBlLT5jb2RlICgpICE9IFRZUEVfQ09ERV9VTkRF RjsKKysgICAgPSBvcmlnaW5hbF92YWx1ZS0+Yml0c19zeW50aGV0aWNfcG9pbnRlciAoMCwgKFRB UkdFVF9DSEFSX0JJVAorKwkJCQkJCSAgKiB0eXBlLT5sZW5ndGggKCkpKTsKKysgIGNvbnN0IGJv b2wgbXVzdF9jb2VyY2VfcmVmID0gKChvcHRpb25zLT5hZGRyZXNzcHJpbnQgJiYgdmFsdWVfaXNf c3ludGhldGljKQorKwkJCQl8fCBvcHRpb25zLT5kZXJlZl9yZWYpOworKyAgY29uc3QgYm9vbCB0 eXBlX2lzX2RlZmluZWQgPSBlbHR0eXBlLT5jb2RlICgpICE9IFRZUEVfQ09ERV9VTkRFRjsKKyAg IGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyID0gb3JpZ2luYWxfdmFsdWUtPmNvbnRlbnRzX2Zvcl9w cmludGluZyAoKS5kYXRhICgpOworIAorICAgaWYgKG11c3RfY29lcmNlX3JlZiAmJiB0eXBlX2lz X2RlZmluZWQpCisgICAgIHsKKyAgICAgICBkZXJlZl92YWwgPSBjb2VyY2VfcmVmX2lmX2NvbXB1 dGVkIChvcmlnaW5hbF92YWx1ZSk7CisgCistICAgICAgaWYgKGRlcmVmX3ZhbCAhPSBOVUxMKQor LQl7CistCSAgLyogTW9yZSBjb21wbGljYXRlZCBjb21wdXRlZCByZWZlcmVuY2VzIGFyZSBub3Qg c3VwcG9ydGVkLiAgKi8KKy0JICBnZGJfYXNzZXJ0IChlbWJlZGRlZF9vZmZzZXQgPT0gMCk7Cist CX0KKy0gICAgICBlbHNlCisrICAgICAgaWYgKGRlcmVmX3ZhbCA9PSBudWxscHRyKQorIAlkZXJl Zl92YWwgPSB2YWx1ZV9hdCAodHlwZS0+dGFyZ2V0X3R5cGUgKCksCistCQkJICAgICAgdW5wYWNr X3BvaW50ZXIgKHR5cGUsIHZhbGFkZHIgKyBlbWJlZGRlZF9vZmZzZXQpKTsKKysJCQkgICAgICB1 bnBhY2tfcG9pbnRlciAodHlwZSwgdmFsYWRkcikpOworICAgICB9CisgICAvKiBFbHNlLCBvcmln aW5hbF92YWx1ZSBpc24ndCBhIHN5bnRoZXRpYyByZWZlcmVuY2Ugb3Igd2UgZG9uJ3QgaGF2ZSB0 byBwcmludAorICAgICAgdGhlIHJlZmVyZW5jZSdzIGNvbnRlbnRzLgorQEAgLTY3Niw3ICs2Njcs NyBAQCBnZW5lcmljX3ZhbF9wcmludF9yZWYgKHN0cnVjdCB0eXBlICp0eXBlLAorIAkJCQkgPyBn ZXRfdmFsdWVfYWRkcl9jb250ZW50cyAoZGVyZWZfdmFsKQorIAkJCQkgOiB2YWxhZGRyKTsKKyAK Ky0gICAgICBwcmludF9yZWZfYWRkcmVzcyAodHlwZSwgYWRkcmVzcywgZW1iZWRkZWRfb2Zmc2V0 LCBzdHJlYW0pOworKyAgICAgIHByaW50X3JlZl9hZGRyZXNzICh0eXBlLCBhZGRyZXNzLCBzdHJl YW0pOworIAorICAgICAgIGlmIChvcHRpb25zLT5kZXJlZl9yZWYpCisgCWdkYl9wdXRzICgiOiAi LCBzdHJlYW0pOworQEAgLTcxOCw3ICs3MDksNyBAQCBnZW5lcmljX3ZhbF9wcmludF9lbnVtXzEg KHN0cnVjdCB0eXBlICp0eXBlLCBMT05HRVNUIHZhbCwKKyAgICAgfQorICAgZWxzZSBpZiAodHlw ZS0+aXNfZmxhZ19lbnVtICgpKQorICAgICB7CistICAgICAgaW50IGZpcnN0ID0gMTsKKysgICAg ICBib29sIGZpcnN0ID0gdHJ1ZTsKKyAKKyAgICAgICAvKiBXZSBoYXZlIGEgImZsYWciIGVudW0s IHNvIHdlIHRyeSB0byBkZWNvbXBvc2UgaXQgaW50byBwaWVjZXMgYXMKKyAJIGFwcHJvcHJpYXRl LiAgVGhlIGVudW0gbWF5IGhhdmUgbXVsdGlwbGUgZW51bWVyYXRvcnMgcmVwcmVzZW50aW5nCitA QCAtNzM4LDcgKzcyOSw3IEBAIGdlbmVyaWNfdmFsX3ByaW50X2VudW1fMSAoc3RydWN0IHR5cGUg KnR5cGUsIExPTkdFU1QgdmFsLAorIAkgICAgICBpZiAoZmlyc3QpCisgCQl7CisgCQkgIGdkYl9w dXRzICgiKCIsIHN0cmVhbSk7CistCQkgIGZpcnN0ID0gMDsKKysJCSAgZmlyc3QgPSBmYWxzZTsK KyAJCX0KKyAJICAgICAgZWxzZQorIAkJZ2RiX3B1dHMgKCIgfCAiLCBzdHJlYW0pOworQEAgLTc4 MCwyMCArNzcxLDE1IEBAIGdlbmVyaWNfdmFsX3ByaW50X2VudW1fMSAoc3RydWN0IHR5cGUgKnR5 cGUsIExPTkdFU1QgdmFsLAorIC8qIGdlbmVyaWNfdmFsX3ByaW50IGhlbHBlciBmb3IgVFlQRV9D T0RFX0VOVU0uICAqLworIAorIHN0YXRpYyB2b2lkCistZ2VuZXJpY192YWxfcHJpbnRfZW51bSAo c3RydWN0IHR5cGUgKnR5cGUsCistCQkJaW50IGVtYmVkZGVkX29mZnNldCwgc3RydWN0IHVpX2Zp bGUgKnN0cmVhbSwKKytnZW5lcmljX3ZhbF9wcmludF9lbnVtIChzdHJ1Y3QgdHlwZSAqdHlwZSwg c3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKKyAJCQlzdHJ1Y3QgdmFsdWUgKm9yaWdpbmFsX3ZhbHVl LAorIAkJCWNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQorIHsKKy0g IExPTkdFU1QgdmFsOworLSAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSB0eXBlLT5hcmNoICgp OworLSAgaW50IHVuaXRfc2l6ZSA9IGdkYmFyY2hfYWRkcmVzc2FibGVfbWVtb3J5X3VuaXRfc2l6 ZSAoZ2RiYXJjaCk7CistCisgICBnZGJfYXNzZXJ0ICghb3B0aW9ucy0+Zm9ybWF0KTsKKyAKKyAg IGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyID0gb3JpZ2luYWxfdmFsdWUtPmNvbnRlbnRzX2Zvcl9w cmludGluZyAoKS5kYXRhICgpOworIAorLSAgdmFsID0gdW5wYWNrX2xvbmcgKHR5cGUsIHZhbGFk ZHIgKyBlbWJlZGRlZF9vZmZzZXQgKiB1bml0X3NpemUpOworKyAgTE9OR0VTVCB2YWwgPSB1bnBh Y2tfbG9uZyAodHlwZSwgdmFsYWRkcik7CisgCisgICBnZW5lcmljX3ZhbF9wcmludF9lbnVtXzEg KHR5cGUsIHZhbCwgc3RyZWFtKTsKKyB9CitAQCAtODAxLDggKzc4Nyw3IEBAIGdlbmVyaWNfdmFs X3ByaW50X2VudW0gKHN0cnVjdCB0eXBlICp0eXBlLAorIC8qIGdlbmVyaWNfdmFsX3ByaW50IGhl bHBlciBmb3IgVFlQRV9DT0RFX0ZVTkMgYW5kIFRZUEVfQ09ERV9NRVRIT0QuICAqLworIAorIHN0 YXRpYyB2b2lkCistZ2VuZXJpY192YWxfcHJpbnRfZnVuYyAoc3RydWN0IHR5cGUgKnR5cGUsCist CQkJaW50IGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCisrZ2VuZXJpY192YWxf cHJpbnRfZnVuYyAoc3RydWN0IHR5cGUgKnR5cGUsIENPUkVfQUREUiBhZGRyZXNzLAorIAkJCXN0 cnVjdCB1aV9maWxlICpzdHJlYW0sCisgCQkJc3RydWN0IHZhbHVlICpvcmlnaW5hbF92YWx1ZSwK KyAJCQljb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKK0BAIC0xMDE1 LDcgKzEwMDAsNyBAQCBnZW5lcmljX3ZhbHVlX3ByaW50IChzdHJ1Y3QgdmFsdWUgKnZhbCwgc3Ry dWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCisgCisgICAgIGNhc2UgVFlQRV9DT0RF X1JFRjoKKyAgICAgY2FzZSBUWVBFX0NPREVfUlZBTFVFX1JFRjoKKy0gICAgICBnZW5lcmljX3Zh bF9wcmludF9yZWYgKHR5cGUsIDAsIHN0cmVhbSwgcmVjdXJzZSwKKysgICAgICBnZW5lcmljX3Zh bF9wcmludF9yZWYgKHR5cGUsIHN0cmVhbSwgcmVjdXJzZSwKKyAJCQkgICAgIHZhbCwgb3B0aW9u cyk7CisgICAgICAgYnJlYWs7CisgCitAQCAtMTAyMywxNCArMTAwOCwxNCBAQCBnZW5lcmljX3Zh bHVlX3ByaW50IChzdHJ1Y3QgdmFsdWUgKnZhbCwgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50 IHJlY3Vyc2UsCisgICAgICAgaWYgKG9wdGlvbnMtPmZvcm1hdCkKKyAJdmFsdWVfcHJpbnRfc2Nh bGFyX2Zvcm1hdHRlZCAodmFsLCBvcHRpb25zLCAwLCBzdHJlYW0pOworICAgICAgIGVsc2UKKy0J Z2VuZXJpY192YWxfcHJpbnRfZW51bSAodHlwZSwgMCwgc3RyZWFtLCB2YWwsIG9wdGlvbnMpOwor KwlnZW5lcmljX3ZhbF9wcmludF9lbnVtICh0eXBlLCBzdHJlYW0sIHZhbCwgb3B0aW9ucyk7Cisg ICAgICAgYnJlYWs7CisgCisgICAgIGNhc2UgVFlQRV9DT0RFX0ZMQUdTOgorICAgICAgIGlmIChv cHRpb25zLT5mb3JtYXQpCisgCXZhbHVlX3ByaW50X3NjYWxhcl9mb3JtYXR0ZWQgKHZhbCwgb3B0 aW9ucywgMCwgc3RyZWFtKTsKKyAgICAgICBlbHNlCistCXZhbF9wcmludF90eXBlX2NvZGVfZmxh Z3MgKHR5cGUsIHZhbCwgMCwgc3RyZWFtKTsKKysJdmFsX3ByaW50X3R5cGVfY29kZV9mbGFncyAo dHlwZSwgdmFsLCBzdHJlYW0pOworICAgICAgIGJyZWFrOworIAorICAgICBjYXNlIFRZUEVfQ09E RV9GVU5DOgorQEAgLTEwMzgsNyArMTAyMyw3IEBAIGdlbmVyaWNfdmFsdWVfcHJpbnQgKHN0cnVj dCB2YWx1ZSAqdmFsLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKKyAgICAg ICBpZiAob3B0aW9ucy0+Zm9ybWF0KQorIAl2YWx1ZV9wcmludF9zY2FsYXJfZm9ybWF0dGVkICh2 YWwsIG9wdGlvbnMsIDAsIHN0cmVhbSk7CisgICAgICAgZWxzZQorLQlnZW5lcmljX3ZhbF9wcmlu dF9mdW5jICh0eXBlLCAwLCB2YWwtPmFkZHJlc3MgKCksIHN0cmVhbSwKKysJZ2VuZXJpY192YWxf cHJpbnRfZnVuYyAodHlwZSwgdmFsLT5hZGRyZXNzICgpLCBzdHJlYW0sCisgCQkJCXZhbCwgb3B0 aW9ucyk7CisgICAgICAgYnJlYWs7CisgCitAQCAtMTE5MCwxMSArMTE3NSwxMSBAQCB2YWxfcHJp bnRfY2hlY2tfbWF4X2RlcHRoIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwK KyAgIHJldHVybiBmYWxzZTsKKyB9CisgCistLyogQ2hlY2sgd2hldGhlciB0aGUgdmFsdWUgVkFM IGlzIHByaW50YWJsZS4gIFJldHVybiAxIGlmIGl0IGlzOworLSAgIHJldHVybiAwIGFuZCBwcmlu dCBhbiBhcHByb3ByaWF0ZSBlcnJvciBtZXNzYWdlIHRvIFNUUkVBTSBhY2NvcmRpbmcgdG8KKy0g ICBPUFRJT05TIGlmIGl0IGlzIG5vdC4gICovCisrLyogQ2hlY2sgd2hldGhlciB0aGUgdmFsdWUg VkFMIGlzIHByaW50YWJsZS4gIFJldHVybiB0cnVlIGlmIGl0IGlzOworKyAgIHJldHVybiBmYWxz ZSBhbmQgcHJpbnQgYW4gYXBwcm9wcmlhdGUgZXJyb3IgbWVzc2FnZSB0byBTVFJFQU0KKysgICBh Y2NvcmRpbmcgdG8gT1BUSU9OUyBpZiBpdCBpcyBub3QuICAqLworIAorLXN0YXRpYyBpbnQKKytz dGF0aWMgYm9vbAorIHZhbHVlX2NoZWNrX3ByaW50YWJsZSAoc3RydWN0IHZhbHVlICp2YWwsIHN0 cnVjdCB1aV9maWxlICpzdHJlYW0sCisgCQkgICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50 X29wdGlvbnMgKm9wdGlvbnMpCisgeworQEAgLTEyMDIsNyArMTE4Nyw3IEBAIHZhbHVlX2NoZWNr X3ByaW50YWJsZSAoc3RydWN0IHZhbHVlICp2YWwsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sCisg ICAgIHsKKyAgICAgICBmcHJpbnRmX3N0eWxlZCAoc3RyZWFtLCBtZXRhZGF0YV9zdHlsZS5zdHls ZSAoKSwKKyAJCSAgICAgIF8oIjxhZGRyZXNzIG9mIHZhbHVlIHVua25vd24+IikpOworLSAgICAg IHJldHVybiAwOworKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgfQorIAorICAgaWYgKHZhbC0+ ZW50aXJlbHlfb3B0aW1pemVkX291dCAoKSkKK0BAIC0xMjExLDcgKzExOTYsNyBAQCB2YWx1ZV9j aGVja19wcmludGFibGUgKHN0cnVjdCB2YWx1ZSAqdmFsLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFt LAorIAlnZGJfcHJpbnRmIChzdHJlYW0sICIuLi4iKTsKKyAgICAgICBlbHNlCisgCXZhbF9wcmlu dF9vcHRpbWl6ZWRfb3V0ICh2YWwsIHN0cmVhbSk7CistICAgICAgcmV0dXJuIDA7CisrICAgICAg cmV0dXJuIGZhbHNlOworICAgICB9CisgCisgICBpZiAodmFsLT5lbnRpcmVseV91bmF2YWlsYWJs ZSAoKSkKK0BAIC0xMjIwLDcgKzEyMDUsNyBAQCB2YWx1ZV9jaGVja19wcmludGFibGUgKHN0cnVj dCB2YWx1ZSAqdmFsLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAorIAlnZGJfcHJpbnRmIChzdHJl YW0sICIuLi4iKTsKKyAgICAgICBlbHNlCisgCXZhbF9wcmludF91bmF2YWlsYWJsZSAoc3RyZWFt KTsKKy0gICAgICByZXR1cm4gMDsKKysgICAgICByZXR1cm4gZmFsc2U7CisgICAgIH0KKyAKKyAg IGlmICh2YWwtPnR5cGUgKCktPmNvZGUgKCkgPT0gVFlQRV9DT0RFX0lOVEVSTkFMX0ZVTkNUSU9O KQorQEAgLTEyMjgsMTYgKzEyMTMsMTYgQEAgdmFsdWVfY2hlY2tfcHJpbnRhYmxlIChzdHJ1Y3Qg dmFsdWUgKnZhbCwgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKKyAgICAgICBmcHJpbnRmX3N0eWxl ZCAoc3RyZWFtLCBtZXRhZGF0YV9zdHlsZS5zdHlsZSAoKSwKKyAJCSAgICAgIF8oIjxpbnRlcm5h bCBmdW5jdGlvbiAlcz4iKSwKKyAJCSAgICAgIHZhbHVlX2ludGVybmFsX2Z1bmN0aW9uX25hbWUg KHZhbCkpOworLSAgICAgIHJldHVybiAwOworKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgfQor IAorICAgaWYgKHR5cGVfbm90X2FsbG9jYXRlZCAodmFsLT50eXBlICgpKSkKKyAgICAgeworICAg ICAgIHZhbF9wcmludF9ub3RfYWxsb2NhdGVkIChzdHJlYW0pOworLSAgICAgIHJldHVybiAwOwor KyAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgfQorIAorLSAgcmV0dXJuIDE7CisrICByZXR1cm4g dHJ1ZTsKKyB9CisgCisgLyogU2VlIHZhbHByaW50LmguICAqLworQEAgLTEyOTIsMTAgKzEyNzcs OSBAQCBkZWJ1Z192YWwgKHN0cnVjdCB2YWx1ZSAqdmFsKQorIAorIHN0YXRpYyB2b2lkCisgdmFs X3ByaW50X3R5cGVfY29kZV9mbGFncyAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCB2YWx1ZSAq b3JpZ2luYWxfdmFsdWUsCistCQkJICAgaW50IGVtYmVkZGVkX29mZnNldCwgc3RydWN0IHVpX2Zp bGUgKnN0cmVhbSkKKysJCQkgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKQorIHsKKy0gIGNvbnN0 IGdkYl9ieXRlICp2YWxhZGRyID0gKG9yaWdpbmFsX3ZhbHVlLT5jb250ZW50c19mb3JfcHJpbnRp bmcgKCkuZGF0YSAoKQorLQkJCSAgICAgKyBlbWJlZGRlZF9vZmZzZXQpOworKyAgY29uc3QgZ2Ri X2J5dGUgKnZhbGFkZHIgPSAob3JpZ2luYWxfdmFsdWUtPmNvbnRlbnRzX2Zvcl9wcmludGluZyAo KS5kYXRhICgpKTsKKyAgIFVMT05HRVNUIHZhbCA9IHVucGFja19sb25nICh0eXBlLCB2YWxhZGRy KTsKKyAgIGludCBmaWVsZCwgbmZpZWxkcyA9IHR5cGUtPm51bV9maWVsZHMgKCk7CisgICBzdHJ1 Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IHR5cGUtPmFyY2ggKCk7CitAQCAtMzE4OCw3ICszMTcyLDcg QEAgdGVzdF9wcmludF9mbGFncyAoZ2RiYXJjaCAqYXJjaCkKKyAgIHN0b3JlX3Vuc2lnbmVkX2lu dGVnZXIgKGNvbnRlbnRzLCA0LCBnZGJhcmNoX2J5dGVfb3JkZXIgKGFyY2gpLCAweGFhKTsKKyAK KyAgIHN0cmluZ19maWxlIG91dDsKKy0gIHZhbF9wcmludF90eXBlX2NvZGVfZmxhZ3MgKGZsYWdz X3R5cGUsIHZhbCwgMCwgJm91dCk7CisrICB2YWxfcHJpbnRfdHlwZV9jb2RlX2ZsYWdzIChmbGFn c190eXBlLCB2YWwsICZvdXQpOworICAgU0VMRl9DSEVDSyAob3V0LnN0cmluZyAoKSA9PSAiWyBB PTIgQj0xIEM9NSBdIik7CisgfQorIAorZGlmZiAtLWdpdCBhL2dkYi92YWxwcmludC5oIGIvZ2Ri L3ZhbHByaW50LmgKKy0tLSBhL2dkYi92YWxwcmludC5oCisrKysgYi9nZGIvdmFscHJpbnQuaAor QEAgLTE5NywxNyArMTk3LDE1IEBAIGV4dGVybiB2b2lkIHByaW50X2Z1bmN0aW9uX3BvaW50ZXJf YWRkcmVzcyAoY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wCisgCisgLyogSGVs cGVyIGZ1bmN0aW9uIHRvIGNoZWNrIHRoZSB2YWxpZGl0eSBvZiBzb21lIGJpdHMgb2YgYSB2YWx1 ZS4KKyAKKy0gICBJZiBUWVBFIHJlcHJlc2VudHMgc29tZSBhZ2dyZWdhdGUgdHlwZSAoZS5nLiwg YSBzdHJ1Y3R1cmUpLCByZXR1cm4gMS4KKysgICBJZiBUWVBFIHJlcHJlc2VudHMgc29tZSBhZ2dy ZWdhdGUgdHlwZSAoZS5nLiwgYSBzdHJ1Y3R1cmUpLCByZXR1cm4gdHJ1ZS4KKyAKKy0gICBPdGhl cndpc2UsIGFueSBvZiB0aGUgYnl0ZXMgc3RhcnRpbmcgYXQgT0ZGU0VUIGFuZCBleHRlbmRpbmcg Zm9yCistICAgVFlQRS0+bGVuZ3RoICgpIGJ5dGVzIGFyZSBpbnZhbGlkLCBwcmludCBhIG1lc3Nh Z2UgdG8gU1RSRUFNIGFuZAorLSAgIHJldHVybiAwLiAgVGhlIGNoZWNraW5nIGlzIGRvbmUgdXNp bmcgRlVOQ1MuCisrICAgRm9yIG5vbi1hZ2dyZWdhdGUgVFlQRXMsIGlmIGFueSBvZiB0aGUgYnl0 ZXMgc3RhcnRpbmcgYXQgRklFTERfQllURV9PRkZTRVQKKysgICBhbmQgZXh0ZW5kaW5nIGZvciBU WVBFLT5sZW5ndGggKCkgYnl0ZXMgYXJlIGludmFsaWQsIHByaW50IGEgbWVzc2FnZSB0bworKyAg IFNUUkVBTSBhbmQgcmV0dXJuIGZhbHNlLiAgT3RoZXJ3aXNlLCByZXR1cm4gdHJ1ZS4gICovCisg CistICAgT3RoZXJ3aXNlLCByZXR1cm4gMS4gICovCistCistZXh0ZXJuIGludCB2YWxwcmludF9j aGVja192YWxpZGl0eSAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3RydWN0IHR5cGUgKnR5cGUs CistCQkJCSAgICBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwKKy0JCQkJICAgIGNvbnN0IHN0cnVj dCB2YWx1ZSAqdmFsKTsKKytleHRlcm4gYm9vbCB2YWxwcmludF9jaGVja192YWxpZGl0eSAoc3Ry dWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3RydWN0IHR5cGUgKnR5cGUsCisrCQkJCSAgICAgTE9OR0VT VCBmaWVsZF9ieXRlX29mZnNldCwKKysJCQkJICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCk7 CisgCisgZXh0ZXJuIHZvaWQgdmFsX3ByaW50X29wdGltaXplZF9vdXQgKGNvbnN0IHN0cnVjdCB2 YWx1ZSAqdmFsLAorIAkJCQkgICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0pOworQEAgLTI3Miw3 ICsyNzAsMTEgQEAgZXh0ZXJuIHZvaWQgZ2VuZXJpY19wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUg KnN0cmVhbSwgc3RydWN0IHR5cGUgKnR5cGUsCisgCisgZXh0ZXJuIHZvaWQgb3V0cHV0X2NvbW1h bmQgKGNvbnN0IGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSk7CisgCistZXh0ZXJuIGludCB2YWxf cHJpbnRfc2NhbGFyX3R5cGVfcCAoc3RydWN0IHR5cGUgKnR5cGUpOworKy8qIFdoZW4gcHJpbnRp bmcgaW4gInN1bW1hcnkiIG1vZGUgd2Ugd2FudCB0byBwcmludCBzY2FsYXIgYXJndW1lbnRzCisr ICAgYnV0IG5vdCBhZ2dyZWdhdGUgYXJndW1lbnRzLiAgUmV0dXJuIHRydWUgaWYgVFlQRSBpcyBh IHNjYWxhciB0eXBlLAorKyAgIGZhbHNlIGlmIGl0IGlzIGFuIGFnZ3JlZ2F0ZS4gICovCisrCisr ZXh0ZXJuIGJvb2wgdmFsX3ByaW50X3NjYWxhcl90eXBlX3AgKHN0cnVjdCB0eXBlICp0eXBlKTsK KyAKKyBzdHJ1Y3QgZm9ybWF0X2RhdGEKKyAgIHsKCmRpZmYgLS1naXQgYS9nZGIuc3BlYyBiL2dk Yi5zcGVjCmluZGV4IDRlNGY5NDAuLmE0MzBkOTEgMTAwNjQ0Ci0tLSBhL2dkYi5zcGVjCisrKyBi L2dkYi5zcGVjCkBAIC00NSw3ICs0NSw3IEBAIFZlcnNpb246IDE3LjEKIAogIyBUaGUgcmVsZWFz ZSBhbHdheXMgY29udGFpbnMgYSBsZWFkaW5nIHJlc2VydmVkIG51bWJlciwgc3RhcnQgaXQgYXQg MS4KICMgYHVwc3RyZWFtJyBpcyBub3QgYSBwYXJ0IG9mIGBuYW1lJyB0byBzdGF5IGZ1bGx5IHJw bSBkZXBlbmRlbmNpZXMgY29tcGF0aWJsZSBmb3IgdGhlIHRlc3RpbmcuCi1SZWxlYXNlOiA2JXs/ ZGlzdH0KK1JlbGVhc2U6IDclez9kaXN0fQogCiBMaWNlbnNlOiBHUEwtMy4wLW9yLWxhdGVyIEFO RCBCU0QtMy1DbGF1c2UgQU5EIEZTRkFQIEFORCBMR1BMLTIuMS1vci1sYXRlciBBTkQgR1BMLTIu MC1vci1sYXRlciBBTkQgTEdQTC0yLjAtb3ItbGF0ZXIgQU5EIExpY2Vuc2VSZWYtRmVkb3JhLVB1 YmxpYy1Eb21haW4gQU5EIEdGREwtMS4zLW9yLWxhdGVyIEFORCBMR1BMLTIuMC1vci1sYXRlciBX SVRIIEdDQy1leGNlcHRpb24tMi4wIEFORCBHUEwtMy4wLW9yLWxhdGVyIFdJVEggR0NDLWV4Y2Vw dGlvbi0zLjEgQU5EIEdQTC0yLjAtb3ItbGF0ZXIgV0lUSCBHTlUtY29tcGlsZXItZXhjZXB0aW9u IEFORCBNSVQKICMgRG8gbm90IHByb3ZpZGUgVVJMIGZvciBzbmFwc2hvdHMgYXMgdGhlIGZpbGUg bGFzdHMgdGhlcmUgb25seSBmb3IgMiBkYXlzLgpAQCAtOTMyLDYgKzkzMiwxMiBAQCBmaQogIyBl bmRpZiBzY2wKIAogJWNoYW5nZWxvZworKiBTYXQgTWF5IDE2IDIwMjYgQW5kcmV3IEJ1cmdlc3Mg PGFidXJnZXNzQHJlZGhhdC5jb20+CistIEJhY2twb3J0IHRoZSBmb2xsb3dpbmcgdXBzdHJlYW0g Y29tbWl0cyBpbiBvcmRlciB0byBhZGRyZXNzIFJIQloKKyAgMjQ2NzI1MTogZDk4MDMxN2M3ZjEs IDk1OGQwNjI2MmE3LCA3ZDFkNzM4NjU2MSwgODkxNWRlMDg4M2MsCisgIDhmNjVhYjdiNzFmLiAg VGhlc2UgY29tbWl0cyB3aWxsIGFsbCBkcm9wIG91dCB3aGVuIHdlIHJlYmFzZSB0byBHREIKKyAg MTguCisKICogVHVlIEFwciAyMSAyMDI2IEFuZHJldyBCdXJnZXNzIDxhYnVyZ2Vzc0ByZWRoYXQu Y29tPgogLSBCYWNrcG9ydCB1cHN0cmVhbSBjb21taXRzIDhiZDA4ZWU5MmM0IGFuZCBjZDI4OWRm MDY4ZSB0byBhZGRyZXNzCiAgIHJoYnoyMzY2NDYxLiAgVGhlc2UgYmFja3BvcnRzIHdpbGwgbm90 IGJlIG5lZWRlZCBvbmNlIHdlIHJlYmFzZSB0bwo=