From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: [PATCH v4 04/34] HYPERCALL_version_op. New hypercall mirroring XENVER_ but sane. Date: Tue, 22 Mar 2016 16:39:30 -0400 Message-ID: <20160322203930.GA30388@char.us.oracle.com> References: <56E85478.5070408@citrix.com> <20160315201906.GA6211@localhost.localdomain> <20160317013852.GA22460@char.us.oracle.com> <56EC046302000078000DE54F@prv-mh.provo.novell.com> <20160318192224.GA11924@char.us.oracle.com> <56EFFAF802000078000DED1F@prv-mh.provo.novell.com> <20160322155251.GB20062@char.us.oracle.com> <56F17B8902000078000DF47F@prv-mh.provo.novell.com> <20160322185744.GA28711@char.us.oracle.com> <56F19CF9.7020007@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([85.158.143.247]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1aiT6o-0003vo-9m for xen-devel@lists.xenproject.org; Tue, 22 Mar 2016 20:40:58 +0000 Content-Disposition: inline In-Reply-To: <56F19CF9.7020007@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Andrew Cooper Cc: Wei Liu , Stefano Stabellini , Ian Jackson , mpohlack@amazon.de, ross.lagerwall@citrix.com, Julien Grall , Stefano Stabellini , Jan Beulich , xen-devel@lists.xenproject.org, Daniel De Graaf , Keir Fraser , sasha.levin@oracle.com List-Id: xen-devel@lists.xenproject.org T24gVHVlLCBNYXIgMjIsIDIwMTYgYXQgMDc6Mjg6NTdQTSArMDAwMCwgQW5kcmV3IENvb3BlciB3 cm90ZToKPiBPbiAyMi8wMy8xNiAxODo1NywgS29ucmFkIFJ6ZXN6dXRlayBXaWxrIHdyb3RlOgo+ ID4+Pj4+IC0tLSBhL3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oCj4gPj4+Pj4gKysrIGIveGVuL2lu Y2x1ZGUveHNtL2R1bW15LmgKPiA+Pj4+PiBAQCAtNzUxLDMgKzc1MSwyMiBAQCBzdGF0aWMgWFNN X0lOTElORSBpbnQgeHNtX3hlbl92ZXJzaW9uIChYU01fREVGQVVMVF9BUkcgdWludDMyX3Qgb3Ap Cj4gPj4+Pj4gICAgICAgICAgcmV0dXJuIHhzbV9kZWZhdWx0X2FjdGlvbihYU01fUFJJViwgY3Vy cmVudC0+ZG9tYWluLCBOVUxMKTsKPiA+Pj4+PiAgICAgIH0KPiA+Pj4+PiAgfQo+ID4+Pj4+ICsK PiA+Pj4+PiArc3RhdGljIFhTTV9JTkxJTkUgaW50IHhzbV92ZXJzaW9uX29wIChYU01fREVGQVVM VF9BUkcgdWludDMyX3Qgb3ApCj4gPj4+Pj4gK3sKPiA+Pj4+PiArICAgIFhTTV9BU1NFUlRfQUNU SU9OKFhTTV9PVEhFUik7Cj4gPj4+Pj4gKyAgICBzd2l0Y2ggKCBvcCApCj4gPj4+Pj4gKyAgICB7 Cj4gPj4+Pj4gKyAgICBjYXNlIFhFTl9WRVJTSU9OX3ZlcnNpb246Cj4gPj4+Pj4gKyAgICBjYXNl IFhFTl9WRVJTSU9OX2V4dHJhdmVyc2lvbjoKPiA+Pj4+PiArICAgIGNhc2UgWEVOX1ZFUlNJT05f Y2FwYWJpbGl0aWVzOgo+ID4+Pj4+ICsgICAgY2FzZSBYRU5fVkVSU0lPTl9wbGF0Zm9ybV9wYXJh bWV0ZXJzOgo+ID4+Pj4+ICsgICAgY2FzZSBYRU5fVkVSU0lPTl9nZXRfZmVhdHVyZXM6Cj4gPj4+ Pj4gKyAgICBjYXNlIFhFTl9WRVJTSU9OX3BhZ2VzaXplOgo+ID4+Pj4+ICsgICAgY2FzZSBYRU5f VkVSU0lPTl9ndWVzdF9oYW5kbGU6Cj4gPj4+Pj4gKyAgICAgICAgLyogVGhlc2UgTVVTVCBhbHdh eXMgYmUgYWNjZXNzaWJsZSB0byBhbnkgZ3Vlc3QgYnkgZGVmYXVsdC4gKi8KPiA+Pj4+PiArICAg ICAgICByZXR1cm4geHNtX2RlZmF1bHRfYWN0aW9uKFhTTV9IT09LLCBjdXJyZW50LT5kb21haW4s IE5VTEwpOwo+ID4+Pj4+ICsgICAgZGVmYXVsdDoKPiA+Pj4+PiArICAgICAgICByZXR1cm4geHNt X2RlZmF1bHRfYWN0aW9uKFhTTV9QUklWLCBjdXJyZW50LT5kb21haW4sIE5VTEwpOwo+ID4+Pj4g Q29uc2lkZXJpbmcgdGhhdCB3ZSBzZWVtIHRvIGhhdmUgc2V0dGxlZCBvbiBzb21lIGV4Y2VwdGlv bnMgaGVyZQo+ID4+Pj4gZm9yIHRoZSBjaGFuZ2UgYWRkaW5nIFhTTSBjaGVjayB0byB0aGUgbGVn YWN5IHZlcnNpb24gb3AsIGRvIHlvdQo+ID4+Pj4gcmVhbGx5IHRoaW5rIGdvaW5nIHdpdGggbm8g ZXhjZXB0aW9uIGF0IGFsbCBoZXJlIGlzIHRoZSByaWdodCBhcHByb2FjaD8KPiA+Pj4+IEJlY2F1 c2UgaWYgd2UgZG8sIHRoYXQnbGwgcHJldmVudCBndWVzdHMgZ2V0dGluZyBmdWxseSBjb252ZXJ0 ZWQgb3Zlcgo+ID4+Pj4gdG8gdGhlIG5ldyBpbnRlcmZhY2UuIE9mIGNvdXJzZSwgd2UgY291bGQg YWxzbyBtYWtlIHRoaXMgY29udmVyc2lvbgo+ID4+Pj4gc3BlY2lmaWNhbGx5IGEgbm9uLWdvYWws IGFuZCBvbWl0IGUuZy4gWEVOX1ZFUlNJT05fVkVSU0lPTiBmcm9tCj4gPj4+PiB0aGlzIG5ldyBp bnRlcmZhY2UuCj4gPj4+IE5vIG5vLiBJIHRoaW5rIGNvbnZlc2lvbiBpcyB0aGUgcmlnaHQgbG9u Zy10ZXJtIGdvYWwuIAo+ID4+Pgo+ID4+PiBIb3dldmVyIHRoZSBuaWNlIHRoaW5nIGFib3V0IHRo aXMgaHlwZXJjYWxsIGlzIHRoYXQgaXQgY2FuIHJldHVybiAtRVBFUk0uCj4gPj4+Cj4gPj4+IE1h a2luZyBpdCBhbHdheXMgcmV0dXJuIGFuIHZhbHVlIGZvciBYRU5fVkVSU0lPTl92ZXJzaW9uLAo+ ID4+PiBYRU5fVkVSU0lPTl9wbGF0Zm9ybV9wYXJhbWV0ZXJzLCBYRU5fVkVSU0lPTl9nZXRfZmVh dHVyZXMgbWVhbnMgdGhhdAo+ID4+PiB0aGVyZSBhcmUgc29tZSBleGNlcHRpb25zIHRvIHRoaXMg ImNhbiByZXR1cm4gLUVQRVJNIiBhcyB0aGV5IHdpbGwKPiA+Pj4gYmUgZ3VhcmFudGVlZCBhbiBw b3N0aXZlIHJldHVybiB2YWx1ZS4gVGhleSBjYW4gaWdub3JlIHRoZSAtRVBFUk0KPiA+Pj4gY2Fz ZS4KPiA+Pj4KPiA+Pj4gQW5kIG1lYW5zIHRoYXQgZ3Vlc3QgY2FuIHN0aWxsIHRha2Ugc2hvcnRj dXRzLgo+ID4+Pgo+ID4+PiBJIGFncmVlIHdpdGggeW91IHRoYXQgZ3Vlc3RzIG5lZWQgdGhlc2Ug aHlwZXJjYWxscyBidXQgYXQgdGhlIHNhbWUKPiA+Pj4gdGltZSBJIGFtIG5vdCBzdXJlIHdoYXQg Y2FuIGJlIGRvbmUgc28gdGhleSBkb24ndCBmYWxsIGZsYXQgb24gdGhlaXIKPiA+Pj4gZmFjZXMg aWYgdGhleSBhcmUgcHJlc2VudGVkIHdpdGggLUVQRVJNLiBUaGUgTGludXggeGVuYnVzX2luaXQg Y2FuIGJlCj4gPj4+IG1vZGlmaWVkIHRvIGRlYWwgd2l0aCB0aGlzIHJldHVybmluZyAtRVBFUk0g d2hlcmUgaXQgbWFrZXMgc29tZSBhc3N1bXB0aW9ucy4KPiA+Pj4KPiA+Pj4gQnV0IGluIGEgbGlr ZWx5aG9vZCBpdCBpcyB0aGUgYmFkIGFzc3VtcHRpb24hCj4gPj4gSSdtIGFmcmFpZCBJIGNhbid0 IGNvbmNsdWRlIHdoYXQgeW91IG1lYW4gdG8gc2F5IHdpdGggYWxsIG9mIHRoZQo+ID4+IGFib3Zl Lgo+ID4gVGhhdCBJIGFtIHdhZmZsaW5nLgo+ID4KPiA+IEFuZHJldywgd2hhdCBpcyB5b3VyIG9w aW5pb24/Cj4gCj4gTm90aGluZyBnb29kIGNhbiBjb21lIGZyb20gZmFpbGluZyBhIFhFTl9WRVJT SU9OX3ZlcnNpb24gaHlwZXJjYWxsLiAKPiBUaGVyZSBhcmUgYSBudW1iZXIgZWFzeSB3YXlzIGZv ciBhIGd1ZXN0IHRvIGluZmVyIHN1Y2ggaW5mb3JtYXRpb24uCj4gCj4gWEVOX1ZFUlNJT05fcGxh dGZvcm1fcGFyYW1ldGVycyBpcyBvbmx5IHVzZWZ1bCBmb3IgMzJiaXQgUFYgZ3Vlc3RzLCBhbmQK PiB0aGUgdG9vbHN0YWNrLiAgR2l2ZW4gdGhhdCBpdCBpcyByZXR1cm5pbmcgYSBmaXhlZCBudW1i ZXIgaW4gdGhlIEFCSSwKPiBub3RoaW5nIGdvb2QgY2FuIGNvbWUgb2YgZmFpbGluZyB0aGlzIGVp dGhlci4KPiAKPiBnZXRfZmVhdHVyZXMgY2FuIGVmZmVjdGl2ZWx5IGJlIGZhaWxlZCBmb3IgcGVy bWlzc2lvbiByZWFzb25zIGJ5Cj4gcmV0dXJuaW5nIDAuICBBcyBzdWNoLCBleHBsaWNpdGx5IGZh aWxpbmcgd2l0aCAtRVBFUk0gaXMgc2ltaWxhcmx5Cj4gcG9pbnRsZXNzLgoKQWxscmlnaHQuIFNv IGhlcmUgaXQgaXM6CgpGcm9tIDBmODJjNWY0Y2QxNTM3YWI4NTU1ZjJiOTRiYjNmZTczOGRmNjk3 MzMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEtvbnJhZCBSemVzenV0ZWsgV2lsayA8 a29ucmFkLndpbGtAb3JhY2xlLmNvbT4KRGF0ZTogVHVlLCAyMiBNYXIgMjAxNiAxMjowMzoyMSAt MDQwMApTdWJqZWN0OiBbUEFUQ0hdIEhZUEVSQ0FMTF92ZXJzaW9uX29wLiBOZXcgaHlwZXJjYWxs IG1pcnJvcmluZyBYRU5WRVJfIGJ1dAogc2FuZS4KClRoaXMgaHlwZXJjYWxsIG1pcnJvcnMgdGhl IFhFTlZFUl8gaW4gdGhhdCBpdCBoYXMgc2ltaWxhciBmdW5jdGlvbmFsaXR5LgpIb3dldmVyIGl0 IGlzIGRlc2lnbmVkIGRpZmZlcmVudGx5OgogLSBObyBjb21wYXQgbGF5ZXIuIFRoZSBkYXRhIHN0 cnVjdHVyZXMgYXJlIHRoZSBzYW1lIHNpemUgb24gMzIKICAgYXMgb24gNjQtYml0LgogLSBUaGUg aHlwZXJjYWxsIGFjY2VwdHMgdGhyZWUgYXJndW1lbnRzIC0gdGhlIGNvbW1hbmQsIHBvaW50ZXIg dG8KICAgYW4gYnVmZmVyLCBhbmQgdGhlIGxlbmd0aCBvZiB0aGUgYnVmZmVyLgogLSBFYWNoIHN1 Yi1vcHMgY2FuIGJlICJwcm9iZWQiIGZvciBzaXplIGJ5IHJldHVybmluZyB0aGUgc2l6ZSBvZgog ICBidWZmZXIgdGhhdCB3aWxsIGJlIG5lZWRlZCAtIGlmIHRoZSBidWZmZXIgaXMgTlVMTC4KIC0g U3Vib3BzIGNhbiBjb21wbGV0ZSBldmVuIGlmIHRoZSBidWZmZXIgaXMgdG9vIHNtYWxsIC0gdHJ1 bmNhdGVkCiAgIGRhdGEgd2lsbCBiZSBmaWxsZWQgYW5kIGh5cGVyY2FsbCB3aWxsIHJldHVybiAt RU5PQlVGUy4KIC0gVkVSU0lPTl9jb21tYW5kbGluZSwgVkVSU0lPTl9jaGFuZ2VzZXQgYXJlIHBy aXZpbGVnZWQuCiAtIFRoZXJlIGlzIG5vIFhFTlZFUl9jb21waWxlX2luZm8gZXF1aXZhbGVudC4K IC0gVGhlIGh5cGVyY2FsbCBjYW4gcmV0dXJuIC1FUEVSTSBhbmQgdG9vbHN0YWNrL09TZXMgYXJl IGV4cGVjdGVkCiAgIHRvIGRlYWwgd2l0aC4gSG93ZXZlciB0aGVyZSBhcmUgdGhyZWUgc3Vib3Bz OiBYRU5fVkVSU0lPTl92ZXJzaW9uLAogICBYRU5fVkVSU0lPTl9wbGF0Zm9ybV9wYXJhbWV0ZXJz IGFuZCBYRU5fVkVSU0lPTl9nZXRfZmVhdHVyZXMKICAgdGhhdCB3aWxsIGFsd2F5cyByZXR1cm4g YW4gdmFsdWUgYXMgZ3Vlc3RzIGNhbm5vdCBzdXJ2aXZlIHdpdGhvdXQgdGhlbS4KCldoaWxlIHdl IGNvbWJpbmUgc29tZSBvZiB0aGUgY29tbW9uIGNvZGUgYmV0d2VlbiBYRU5WRVJfIGFuZCBWRVJT SU9OXwp0YWtlIHRoZSBsaWJlcnR5IG9mIG1vdmluZyBwYWVfZXh0ZW5kZWRfY3IzIGluIHg4NiBh cmVhLgoKU3VnZ2VzdGVkLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXgu Y29tPgpTaWduZWQtb2ZmLWJ5OiBLb25yYWQgUnplc3p1dGVrIFdpbGsgPGtvbnJhZC53aWxrQG9y YWNsZS5jb20+CkFja2VkLWJ5OiBEYW5pZWwgRGUgR3JhYWYgPGRnZGVncmFAdHljaG8ubnNhLmdv dj4gW1hTTSBiaXRzXQoKLS0tCkNjOiBEYW5pZWwgRGUgR3JhYWYgPGRnZGVncmFAdHljaG8ubnNh Lmdvdj4KQ2M6IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXguY29tPgpDYzogU3Rl ZmFubyBTdGFiZWxsaW5pIDxzdGVmYW5vLnN0YWJlbGxpbmlAZXUuY2l0cml4LmNvbT4KQ2M6IFdl aSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+CkNjOiBTdGVmYW5vIFN0YWJlbGxpbmkgPHN0ZWZh bm8uc3RhYmVsbGluaUBjaXRyaXguY29tPgpDYzogSnVsaWVuIEdyYWxsIDxqdWxpZW4uZ3JhbGxA YXJtLmNvbT4KQ2M6IEtlaXIgRnJhc2VyIDxrZWlyQHhlbi5vcmc+CkNjOiBKYW4gQmV1bGljaCA8 amJldWxpY2hAc3VzZS5jb20+CkNjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRy aXguY29tPgoKdjEtdjM6IFdhcyBub3QgcGFydCBvZiB0aGUgc2VyaWVzLgp2NDogTmV3IHBvc3Rp bmcuCnY1OiBSZW1vdmUgbWVtc2V0IGFuZCB1c2Uge30uIFR3ZWFrIGNvcHlfdG9fZ3Vlc3QgYW5k IGNhcGFiaWxpdGllc19pbmZvLAogICAgYWRkIEFTU0VSVChzeikgcGVyIEFuZHJldydzIHJldmll dy4gQWRkIGNhY2hlZD0xIGJhY2sgaW4uCiAgICBQZXIgSmFuLCBzL1ZFUlNJT05fT1AvVkVSU0lP Ti8sIHNxdWFzaCBzaXplIGNoZWNrIHdpdGggZG9fdmVyc2lvbl9vcCwKICAgIHVwZGF0ZSB0aGUg Y29tbWVudHMuIERyb3BwZWQgQW5kcmV3J3MgUmV2aWV3LWJ5LiBBdGUgbmV3bGluZXMuCiAgICBB ZGRlZCBpbml0Y2FsbCB0byBndWFyZCBhZ2FpbnN0IGdhcmJhZ2UgYmVpbmcgc2V0IGluIGNhY2hl ZCBkYXRhLgotLS0KLS0tCiB0b29scy9mbGFzay9wb2xpY3kvcG9saWN5L21vZHVsZXMveGVuL3hl bi50ZSB8ICAgNyArLQogeGVuL2FyY2gvYXJtL3RyYXBzLmMgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgIDEgKwogeGVuL2FyY2gveDg2L2h2bS9odm0uYyAgICAgICAgICAgICAgICAgICAgICAg fCAgIDEgKwogeGVuL2FyY2gveDg2L3g4Nl82NC9jb21wYXQvZW50cnkuUyAgICAgICAgICAgfCAg IDIgKwogeGVuL2FyY2gveDg2L3g4Nl82NC9lbnRyeS5TICAgICAgICAgICAgICAgICAgfCAgIDIg KwogeGVuL2NvbW1vbi9jb21wYXQva2VybmVsLmMgICAgICAgICAgICAgICAgICAgfCAgIDIgKwog eGVuL2NvbW1vbi9rZXJuZWwuYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyMjggKysrKysr KysrKysrKysrKysrKysrKy0tLS0tCiB4ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC1hcm0uaCAgICAg ICAgICAgICAgICB8ICAgMiArCiB4ZW4vaW5jbHVkZS9wdWJsaWMvdmVyc2lvbi5oICAgICAgICAg ICAgICAgICB8ICA3MCArKysrKysrLQogeGVuL2luY2x1ZGUvcHVibGljL3hlbi5oICAgICAgICAg ICAgICAgICAgICAgfCAgIDEgKwogeGVuL2luY2x1ZGUveGVuL2h5cGVyY2FsbC5oICAgICAgICAg ICAgICAgICAgfCAgIDQgKwogeGVuL2luY2x1ZGUveHNtL2R1bW15LmggICAgICAgICAgICAgICAg ICAgICAgfCAgMjEgKysrCiB4ZW4vaW5jbHVkZS94c20veHNtLmggICAgICAgICAgICAgICAgICAg ICAgICB8ICAgNiArCiB4ZW4veHNtL2R1bW15LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgMSArCiB4ZW4veHNtL2ZsYXNrL2hvb2tzLmMgICAgICAgICAgICAgICAgICAgICAgICB8 ICAzNSArKysrCiB4ZW4veHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycyAgICAgICAgICB8 ICAyMSArKy0KIDE2IGZpbGVzIGNoYW5nZWQsIDM2MSBpbnNlcnRpb25zKCspLCA0MyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS90b29scy9mbGFzay9wb2xpY3kvcG9saWN5L21vZHVsZXMveGVu L3hlbi50ZSBiL3Rvb2xzL2ZsYXNrL3BvbGljeS9wb2xpY3kvbW9kdWxlcy94ZW4veGVuLnRlCmlu ZGV4IDE4ZjQ5YjUuLmI1Mjg3OTcgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2ZsYXNrL3BvbGljeS9wb2xp Y3kvbW9kdWxlcy94ZW4veGVuLnRlCisrKyBiL3Rvb2xzL2ZsYXNrL3BvbGljeS9wb2xpY3kvbW9k dWxlcy94ZW4veGVuLnRlCkBAIC03NCwxMSArNzQsMTIgQEAgYWxsb3cgZG9tMF90IHhlbl90Onhl bjIgewogICAgIGdldF9zeW1ib2wKIH07CiAKLSMgQWxsb3cgZG9tMCB0byB1c2UgYWxsIFhFTlZF Ul8gc3Vib3BzIHRoYXQgaGF2ZSBjaGVja3MuCisjIEFsbG93IGRvbTAgdG8gdXNlIGFsbCBYRU5W RVJfIHN1Ym9wcyBhbmQgVkVSU0lPTiBzdWJvcHMgdGhhdCBoYXZlIGNoZWNrcy4KICMgTm90ZSB0 aGF0IGRvbTAgaXMgcGFydCBvZiBkb21haW5fdHlwZSBzbyB0aGlzIGhhcyBkdXBsaWNhdGVzLgog YWxsb3cgZG9tMF90IHhlbl90OnZlcnNpb24gewogICAgIHhlbl9leHRyYXZlcnNpb24geGVuX2Nv bXBpbGVfaW5mbyB4ZW5fY2FwYWJpbGl0aWVzCiAgICAgeGVuX2NoYW5nZXNldCB4ZW5fcGFnZXNp emUgeGVuX2d1ZXN0X2hhbmRsZSB4ZW5fY29tbWFuZGxpbmUKKyAgICBleHRyYXZlcnNpb24gY2Fw YWJpbGl0aWVzIGNoYW5nZXNldCBwYWdlc2l6ZSBndWVzdF9oYW5kbGUgY29tbWFuZGxpbmUKIH07 CiAKIGFsbG93IGRvbTBfdCB4ZW5fdDptbXUgbWVtb3J5bWFwOwpAQCAtMTQ1LDEwICsxNDYsMTIg QEAgaWYgKGd1ZXN0X3dyaXRlY29uc29sZSkgewogIyBwbXVfY3RybCBpcyBmb3IpCiBhbGxvdyBk b21haW5fdHlwZSB4ZW5fdDp4ZW4yIHBtdV91c2U7CiAKLSMgRm9yIG5vcm1hbCBndWVzdHMgYWxs IHBvc3NpYmxlIGV4Y2VwdCBYRU5WRVJfY29tbWFuZGxpbmUuCisjIEZvciBub3JtYWwgZ3Vlc3Rz IGFsbCBwb3NzaWJsZSBleGNlcHQgWEVOVkVSX2NvbW1hbmRsaW5lLCBWRVJTSU9OX2NoYW5nZXNl dCwKKyMgYW5kIFZFUlNJT05fY29tbWFuZGxpbmUKIGFsbG93IGRvbWFpbl90eXBlIHhlbl90OnZl cnNpb24gewogICAgIHhlbl9leHRyYXZlcnNpb24geGVuX2NvbXBpbGVfaW5mbyB4ZW5fY2FwYWJp bGl0aWVzCiAgICAgeGVuX2NoYW5nZXNldCAgeGVuX3BhZ2VzaXplIHhlbl9ndWVzdF9oYW5kbGUK KyAgICBleHRyYXZlcnNpb24gY2FwYWJpbGl0aWVzIHBhZ2VzaXplIGd1ZXN0X2hhbmRsZQogfTsK IAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3RyYXBz LmMgYi94ZW4vYXJjaC9hcm0vdHJhcHMuYwppbmRleCA4Mzc0NGU4Li4zMWQyMTE1IDEwMDY0NAot LS0gYS94ZW4vYXJjaC9hcm0vdHJhcHMuYworKysgYi94ZW4vYXJjaC9hcm0vdHJhcHMuYwpAQCAt MTIzNSw2ICsxMjM1LDcgQEAgc3RhdGljIGFybV9oeXBlcmNhbGxfdCBhcm1faHlwZXJjYWxsX3Rh YmxlW10gPSB7CiAgICAgSFlQRVJDQUxMKG11bHRpY2FsbCwgMiksCiAgICAgSFlQRVJDQUxMKHBs YXRmb3JtX29wLCAxKSwKICAgICBIWVBFUkNBTExfQVJNKHZjcHVfb3AsIDMpLAorICAgIEhZUEVS Q0FMTCh2ZXJzaW9uX29wLCAzKSwKIH07CiAKICNpZm5kZWYgTkRFQlVHCmRpZmYgLS1naXQgYS94 ZW4vYXJjaC94ODYvaHZtL2h2bS5jIGIveGVuL2FyY2gveDg2L2h2bS9odm0uYwppbmRleCA4MGQ1 OWZmLi5mMTZiNTkwIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCisrKyBiL3hl bi9hcmNoL3g4Ni9odm0vaHZtLmMKQEAgLTUzMjIsNiArNTMyMiw3IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgewogICAgIENPTVBBVF9DQUxMKHBsYXRmb3JtX29wKSwKICAgICBDT01QQVRfQ0FMTCht bXVleHRfb3ApLAogICAgIEhZUEVSQ0FMTCh4ZW5wbXVfb3ApLAorICAgIEhZUEVSQ0FMTCh2ZXJz aW9uX29wKSwKICAgICBIWVBFUkNBTEwoYXJjaF8xKQogfTsKIApkaWZmIC0tZ2l0IGEveGVuL2Fy Y2gveDg2L3g4Nl82NC9jb21wYXQvZW50cnkuUyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvY29tcGF0 L2VudHJ5LlMKaW5kZXggMzNlMmMxMi4uZmQyNWU4NCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2 L3g4Nl82NC9jb21wYXQvZW50cnkuUworKysgYi94ZW4vYXJjaC94ODYveDg2XzY0L2NvbXBhdC9l bnRyeS5TCkBAIC0zOTQsNiArMzk0LDcgQEAgRU5UUlkoY29tcGF0X2h5cGVyY2FsbF90YWJsZSkK ICAgICAgICAgLnF1YWQgZG9fdG1lbV9vcAogICAgICAgICAucXVhZCBkb19uaV9oeXBlcmNhbGwg ICAgICAgICAgIC8qIHJlc2VydmVkIGZvciBYZW5DbGllbnQgKi8KICAgICAgICAgLnF1YWQgZG9f eGVucG11X29wICAgICAgICAgICAgICAvKiA0MCAqLworICAgICAgICAucXVhZCBkb192ZXJzaW9u X29wCiAgICAgICAgIC5yZXB0IF9fSFlQRVJWSVNPUl9hcmNoXzAtKCguLWNvbXBhdF9oeXBlcmNh bGxfdGFibGUpLzgpCiAgICAgICAgIC5xdWFkIGNvbXBhdF9uaV9oeXBlcmNhbGwKICAgICAgICAg LmVuZHIKQEAgLTQ0NSw2ICs0NDYsNyBAQCBFTlRSWShjb21wYXRfaHlwZXJjYWxsX2FyZ3NfdGFi bGUpCiAgICAgICAgIC5ieXRlIDEgLyogZG9fdG1lbV9vcCAgICAgICAgICAgICAgICovCiAgICAg ICAgIC5ieXRlIDAgLyogcmVzZXJ2ZWQgZm9yIFhlbkNsaWVudCAgICovCiAgICAgICAgIC5ieXRl IDIgLyogZG9feGVucG11X29wICAgICAgICAgICAgICovICAvKiA0MCAqLworICAgICAgICAuYnl0 ZSAzIC8qIGRvX3ZlcnNpb25fb3AgICAgICAgICAgICAqLwogICAgICAgICAucmVwdCBfX0hZUEVS VklTT1JfYXJjaF8wLSguLWNvbXBhdF9oeXBlcmNhbGxfYXJnc190YWJsZSkKICAgICAgICAgLmJ5 dGUgMCAvKiBjb21wYXRfbmlfaHlwZXJjYWxsICAgICAgKi8KICAgICAgICAgLmVuZHIKZGlmZiAt LWdpdCBhL3hlbi9hcmNoL3g4Ni94ODZfNjQvZW50cnkuUyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQv ZW50cnkuUwppbmRleCAwN2VmMDk2Li5iMGU3MjU3IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYv eDg2XzY0L2VudHJ5LlMKKysrIGIveGVuL2FyY2gveDg2L3g4Nl82NC9lbnRyeS5TCkBAIC03MzAs NiArNzMwLDcgQEAgRU5UUlkoaHlwZXJjYWxsX3RhYmxlKQogICAgICAgICAucXVhZCBkb190bWVt X29wCiAgICAgICAgIC5xdWFkIGRvX25pX2h5cGVyY2FsbCAgICAgICAvKiByZXNlcnZlZCBmb3Ig WGVuQ2xpZW50ICovCiAgICAgICAgIC5xdWFkIGRvX3hlbnBtdV9vcCAgICAgICAgICAvKiA0MCAq LworICAgICAgICAucXVhZCBkb192ZXJzaW9uX29wCiAgICAgICAgIC5yZXB0IF9fSFlQRVJWSVNP Ul9hcmNoXzAtKCguLWh5cGVyY2FsbF90YWJsZSkvOCkKICAgICAgICAgLnF1YWQgZG9fbmlfaHlw ZXJjYWxsCiAgICAgICAgIC5lbmRyCkBAIC03ODEsNiArNzgyLDcgQEAgRU5UUlkoaHlwZXJjYWxs X2FyZ3NfdGFibGUpCiAgICAgICAgIC5ieXRlIDEgLyogZG9fdG1lbV9vcCAgICAgICAgICAgKi8K ICAgICAgICAgLmJ5dGUgMCAvKiByZXNlcnZlZCBmb3IgWGVuQ2xpZW50ICovCiAgICAgICAgIC5i eXRlIDIgLyogZG9feGVucG11X29wICAgICAgICAgKi8gIC8qIDQwICovCisgICAgICAgIC5ieXRl IDMgLyogZG9fdmVyc2lvbl9vcCAgICAgICAgKi8KICAgICAgICAgLnJlcHQgX19IWVBFUlZJU09S X2FyY2hfMC0oLi1oeXBlcmNhbGxfYXJnc190YWJsZSkKICAgICAgICAgLmJ5dGUgMCAvKiBkb19u aV9oeXBlcmNhbGwgICAgICAqLwogICAgICAgICAuZW5kcgpkaWZmIC0tZ2l0IGEveGVuL2NvbW1v bi9jb21wYXQva2VybmVsLmMgYi94ZW4vY29tbW9uL2NvbXBhdC9rZXJuZWwuYwppbmRleCBkZjkz ZmRkLi43YTdjYTUzIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL2NvbXBhdC9rZXJuZWwuYworKysg Yi94ZW4vY29tbW9uL2NvbXBhdC9rZXJuZWwuYwpAQCAtMzksNiArMzksOCBAQCBDSEVDS19UWVBF KGNhcGFiaWxpdGllc19pbmZvKTsKIAogQ0hFQ0tfVFlQRShkb21haW5faGFuZGxlKTsKIAorQ0hF Q0tfVFlQRSh2ZXJzaW9uX29wX3ZhbCk7CisKICNkZWZpbmUgeGVubm1pX2NhbGxiYWNrIGNvbXBh dF9ubWlfY2FsbGJhY2sKICNkZWZpbmUgeGVubm1pX2NhbGxiYWNrX3QgY29tcGF0X25taV9jYWxs YmFja190CiAKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24va2VybmVsLmMgYi94ZW4vY29tbW9uL2tl cm5lbC5jCmluZGV4IGE0YTNjMzYuLmQ2MTQwNjcgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24va2Vy bmVsLmMKKysrIGIveGVuL2NvbW1vbi9rZXJuZWwuYwpAQCAtMjIxLDYgKzIyMSw0NyBAQCB2b2lk IF9faW5pdCBkb19pbml0Y2FsbHModm9pZCkKIAogI2VuZGlmCiAKK3N0YXRpYyBpbnQgZ2V0X2Zl YXR1cmVzKHN0cnVjdCBkb21haW4gKmQsIHhlbl9mZWF0dXJlX2luZm9fdCAqZmkpCit7CisgICAg c3dpdGNoICggZmktPnN1Ym1hcF9pZHggKQorICAgIHsKKyAgICBjYXNlIDA6CisgICAgICAgIGZp LT5zdWJtYXAgPSAoMVUgPDwgWEVORkVBVF9tZW1vcnlfb3Bfdm5vZGVfc3VwcG9ydGVkKTsKKyAg ICAgICAgaWYgKCBwYWdpbmdfbW9kZV90cmFuc2xhdGUoZCkgKQorICAgICAgICAgICAgZmktPnN1 Ym1hcCB8PQorICAgICAgICAgICAgICAgICgxVSA8PCBYRU5GRUFUX3dyaXRhYmxlX3BhZ2VfdGFi bGVzKSB8CisgICAgICAgICAgICAgICAgKDFVIDw8IFhFTkZFQVRfYXV0b190cmFuc2xhdGVkX3Bo eXNtYXApOworICAgICAgICBpZiAoIGlzX2hhcmR3YXJlX2RvbWFpbihkKSApCisgICAgICAgICAg ICBmaS0+c3VibWFwIHw9IDFVIDw8IFhFTkZFQVRfZG9tMDsKKyNpZmRlZiBDT05GSUdfWDg2Cisg ICAgICAgIGlmICggVk1fQVNTSVNUKGQsIHBhZV9leHRlbmRlZF9jcjMpICkKKyAgICAgICAgICAg IGZpLT5zdWJtYXAgfD0gKDFVIDw8IFhFTkZFQVRfcGFlX3BnZGlyX2Fib3ZlXzRnYik7CisgICAg ICAgIHN3aXRjaCAoIGQtPmd1ZXN0X3R5cGUgKQorICAgICAgICB7CisgICAgICAgIGNhc2UgZ3Vl c3RfdHlwZV9wdjoKKyAgICAgICAgICAgIGZpLT5zdWJtYXAgfD0gKDFVIDw8IFhFTkZFQVRfbW11 X3B0X3VwZGF0ZV9wcmVzZXJ2ZV9hZCkgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAoMVUg PDwgWEVORkVBVF9oaWdobWVtX2Fzc2lzdCkgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAo MVUgPDwgWEVORkVBVF9nbnR0YWJfbWFwX2F2YWlsX2JpdHMpOworICAgICAgICAgICAgYnJlYWs7 CisgICAgICAgIGNhc2UgZ3Vlc3RfdHlwZV9wdmg6CisgICAgICAgICAgICBmaS0+c3VibWFwIHw9 ICgxVSA8PCBYRU5GRUFUX2h2bV9zYWZlX3B2Y2xvY2spIHwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgKDFVIDw8IFhFTkZFQVRfc3VwZXJ2aXNvcl9tb2RlX2tlcm5lbCkgfAorICAgICAgICAg ICAgICAgICAgICAgICAgICAoMVUgPDwgWEVORkVBVF9odm1fY2FsbGJhY2tfdmVjdG9yKTsKKyAg ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIGd1ZXN0X3R5cGVfaHZtOgorICAgICAgICAg ICAgZmktPnN1Ym1hcCB8PSAoMVUgPDwgWEVORkVBVF9odm1fc2FmZV9wdmNsb2NrKSB8CisgICAg ICAgICAgICAgICAgICAgICAgICAgICgxVSA8PCBYRU5GRUFUX2h2bV9jYWxsYmFja192ZWN0b3Ip IHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKDFVIDw8IFhFTkZFQVRfaHZtX3BpcnFzKTsK KyAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyNlbmRpZgorICAgICAgICBicmVhazsKKyAg ICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gLUVJTlZBTDsKKyAgICB9CisgICAgcmV0dXJuIDA7 Cit9CisKIC8qCiAgKiBTaW1wbGUgaHlwZXJjYWxscy4KICAqLwpAQCAtMjk4LDQ3ICszMzksMTQg QEAgRE8oeGVuX3ZlcnNpb24pKGludCBjbWQsIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkg YXJnKQogICAgIGNhc2UgWEVOVkVSX2dldF9mZWF0dXJlczoKICAgICB7CiAgICAgICAgIHhlbl9m ZWF0dXJlX2luZm9fdCBmaTsKLSAgICAgICAgc3RydWN0IGRvbWFpbiAqZCA9IGN1cnJlbnQtPmRv bWFpbjsKKyAgICAgICAgaW50IHJjOwogCiAgICAgICAgIGlmICggY29weV9mcm9tX2d1ZXN0KCZm aSwgYXJnLCAxKSApCiAgICAgICAgICAgICByZXR1cm4gLUVGQVVMVDsKIAotICAgICAgICBzd2l0 Y2ggKCBmaS5zdWJtYXBfaWR4ICkKLSAgICAgICAgewotICAgICAgICBjYXNlIDA6Ci0gICAgICAg ICAgICBmaS5zdWJtYXAgPSAoMVUgPDwgWEVORkVBVF9tZW1vcnlfb3Bfdm5vZGVfc3VwcG9ydGVk KTsKLSAgICAgICAgICAgIGlmICggVk1fQVNTSVNUKGQsIHBhZV9leHRlbmRlZF9jcjMpICkKLSAg ICAgICAgICAgICAgICBmaS5zdWJtYXAgfD0gKDFVIDw8IFhFTkZFQVRfcGFlX3BnZGlyX2Fib3Zl XzRnYik7Ci0gICAgICAgICAgICBpZiAoIHBhZ2luZ19tb2RlX3RyYW5zbGF0ZShkKSApCi0gICAg ICAgICAgICAgICAgZmkuc3VibWFwIHw9IAotICAgICAgICAgICAgICAgICAgICAoMVUgPDwgWEVO RkVBVF93cml0YWJsZV9wYWdlX3RhYmxlcykgfAotICAgICAgICAgICAgICAgICAgICAoMVUgPDwg WEVORkVBVF9hdXRvX3RyYW5zbGF0ZWRfcGh5c21hcCk7Ci0gICAgICAgICAgICBpZiAoIGlzX2hh cmR3YXJlX2RvbWFpbihkKSApCi0gICAgICAgICAgICAgICAgZmkuc3VibWFwIHw9IDFVIDw8IFhF TkZFQVRfZG9tMDsKLSNpZmRlZiBDT05GSUdfWDg2Ci0gICAgICAgICAgICBzd2l0Y2ggKCBkLT5n dWVzdF90eXBlICkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgIGNhc2UgZ3Vlc3RfdHlwZV9w djoKLSAgICAgICAgICAgICAgICBmaS5zdWJtYXAgfD0gKDFVIDw8IFhFTkZFQVRfbW11X3B0X3Vw ZGF0ZV9wcmVzZXJ2ZV9hZCkgfAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMVUgPDwg WEVORkVBVF9oaWdobWVtX2Fzc2lzdCkgfAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo MVUgPDwgWEVORkVBVF9nbnR0YWJfbWFwX2F2YWlsX2JpdHMpOwotICAgICAgICAgICAgICAgIGJy ZWFrOwotICAgICAgICAgICAgY2FzZSBndWVzdF90eXBlX3B2aDoKLSAgICAgICAgICAgICAgICBm aS5zdWJtYXAgfD0gKDFVIDw8IFhFTkZFQVRfaHZtX3NhZmVfcHZjbG9jaykgfAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoMVUgPDwgWEVORkVBVF9zdXBlcnZpc29yX21vZGVfa2VybmVs KSB8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxVSA8PCBYRU5GRUFUX2h2bV9jYWxs YmFja192ZWN0b3IpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBn dWVzdF90eXBlX2h2bToKLSAgICAgICAgICAgICAgICBmaS5zdWJtYXAgfD0gKDFVIDw8IFhFTkZF QVRfaHZtX3NhZmVfcHZjbG9jaykgfAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMVUg PDwgWEVORkVBVF9odm1fY2FsbGJhY2tfdmVjdG9yKSB8Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICgxVSA8PCBYRU5GRUFUX2h2bV9waXJxcyk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7 Ci0gICAgICAgICAgICB9Ci0jZW5kaWYKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZh dWx0OgotICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Ci0gICAgICAgIH0KKyAgICAgICAgcmMg PSBnZXRfZmVhdHVyZXMoY3VycmVudC0+ZG9tYWluLCAmZmkpOworICAgICAgICBpZiAoIHJjICkK KyAgICAgICAgICAgIHJldHVybiByYzsKIAogICAgICAgICBpZiAoIF9fY29weV90b19ndWVzdChh cmcsICZmaSwgMSkgKQogICAgICAgICAgICAgcmV0dXJuIC1FRkFVTFQ7CkBAIC0zODEsNiArMzg5 LDEzNyBAQCBETyh4ZW5fdmVyc2lvbikoaW50IGNtZCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2 b2lkKSBhcmcpCiAgICAgcmV0dXJuIC1FTk9TWVM7CiB9CiAKK3N0YXRpYyBjb25zdCBjaGFyICpj YXBhYmlsaXRpZXNfaW5mbyh1bnNpZ25lZCBpbnQgKmxlbikKK3sKKyAgICBzdGF0aWMgeGVuX2Nh cGFiaWxpdGllc19pbmZvX3QgX19yZWFkX21vc3RseSBjYWNoZWRfY2FwOworICAgIHN0YXRpYyB1 bnNpZ25lZCBpbnQgX19yZWFkX21vc3RseSBjYWNoZWRfY2FwX2xlbjsKKyAgICBzdGF0aWMgYm9v bF90IGNhY2hlZDsKKworICAgIGlmICggdW5saWtlbHkoIWNhY2hlZCkgKQorICAgIHsKKyAgICAg ICAgYXJjaF9nZXRfeGVuX2NhcHMoJmNhY2hlZF9jYXApOworICAgICAgICBjYWNoZWRfY2FwX2xl biA9IHN0cmxlbihjYWNoZWRfY2FwKSArIDE7CisgICAgICAgIGNhY2hlZCA9IDE7CisgICAgfQor CisgICAgKmxlbiA9IGNhY2hlZF9jYXBfbGVuOworICAgIHJldHVybiBjYWNoZWRfY2FwOworfQor CisvKgorICogU2ltaWxhciB0byBIWVBFUlZJU09SX3hlbl92ZXJzaW9uIGJ1dCB3aXRoIGEgc2Fu ZSBpbnRlcmZhY2UKKyAqIChoYXMgYSBsZW5ndGgsIG9uZSBjYW4gcHJvYmUgZm9yIHRoZSBsZW5n dGgpIGFuZCB3aXRoIG9uZSBsZXNzIHN1Yi1vcHM6CisgKiBtaXNzaW5nIFhFTlZFUl9jb21waWxl X2luZm8uCisgKi8KK0RPKHZlcnNpb25fb3ApKHVuc2lnbmVkIGludCBjbWQsIFhFTl9HVUVTVF9I QU5ETEVfUEFSQU0odm9pZCkgYXJnLAorICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGxlbikK K3sKKyAgICB1bmlvbiB7CisgICAgICAgIHhlbl92ZXJzaW9uX29wX3ZhbF90IHZhbDsKKyAgICAg ICAgeGVuX2ZlYXR1cmVfaW5mb190IGZpOworICAgIH0gdSA9IHt9OworICAgIHVuc2lnbmVkIGlu dCBzeiA9IDA7CisgICAgY29uc3Qgdm9pZCAqcHRyID0gTlVMTDsKKyAgICBpbnQgcmMgPSB4c21f dmVyc2lvbl9vcChYU01fT1RIRVIsIGNtZCk7CisKKyAgICAvKiBXZSBjYW4gc2FmZWx5IHJldHVy biAtRVBFUk0hICovCisgICAgaWYgKCByYyApCisgICAgICAgIHJldHVybiByYzsKKworICAgIC8q CisgICAgICogVGhlIEhZUEVSVklTT1JfeGVuX3ZlcnNpb24gZGlmZmVycyBpbiB0aGF0IHNvbWUg cmV0dXJuIHRoZSB2YWx1ZSwKKyAgICAgKiBhbmQgc29tZSBjb3B5IGl0IG9uIGJhY2sgb24gYXJn dW1lbnQuIFdlIGZvbGxvdyB0aGUgc2FtZSBydWxlIGZvciBhbGwKKyAgICAgKiBzdWItb3BzOiBy ZXR1cm4gMCBvbiBzdWNjZXNzLCBwb3NpdGl2ZSB2YWx1ZSBvZiBieXRlcyByZXR1cm5lZCwgYW5k CisgICAgICogYWx3YXlzIGNvcHkgdGhlIHJlc3VsdCBpbiBhcmcuIFllZXkgc2FuaXR5IQorICAg ICAqLworICAgIHN3aXRjaCAoIGNtZCApCisgICAgeworICAgIGNhc2UgWEVOX1ZFUlNJT05fdmVy c2lvbjoKKyAgICAgICAgc3ogPSBzaXplb2YoeGVuX3ZlcnNpb25fb3BfdmFsX3QpOworICAgICAg ICB1LnZhbCA9ICh4ZW5fbWFqb3JfdmVyc2lvbigpIDw8IDE2KSB8IHhlbl9taW5vcl92ZXJzaW9u KCk7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBYRU5fVkVSU0lPTl9leHRyYXZlcnNpb246 CisgICAgICAgIHN6ID0gc3RybGVuKHhlbl9leHRyYV92ZXJzaW9uKCkpICsgMTsKKyAgICAgICAg cHRyID0geGVuX2V4dHJhX3ZlcnNpb24oKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFhF Tl9WRVJTSU9OX2NhcGFiaWxpdGllczoKKyAgICAgICAgcHRyID0gY2FwYWJpbGl0aWVzX2luZm8o JnN6KTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFhFTl9WRVJTSU9OX2NoYW5nZXNldDoK KyAgICAgICAgc3ogPSBzdHJsZW4oeGVuX2NoYW5nZXNldCgpKSArIDE7CisgICAgICAgIHB0ciA9 IHhlbl9jaGFuZ2VzZXQoKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFhFTl9WRVJTSU9O X3BsYXRmb3JtX3BhcmFtZXRlcnM6CisgICAgICAgIHN6ID0gc2l6ZW9mKHhlbl92ZXJzaW9uX29w X3ZhbF90KTsKKyAgICAgICAgdS52YWwgPSBIWVBFUlZJU09SX1ZJUlRfU1RBUlQ7CisgICAgICAg IGJyZWFrOworCisgICAgY2FzZSBYRU5fVkVSU0lPTl9nZXRfZmVhdHVyZXM6CisgICAgICAgIHN6 ID0gc2l6ZW9mKHhlbl9mZWF0dXJlX2luZm9fdCk7CisKKyAgICAgICAgaWYgKCBndWVzdF9oYW5k bGVfaXNfbnVsbChhcmcpICkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGlmICggY29w eV9mcm9tX2d1ZXN0KCZ1LmZpLCBhcmcsIDEpICkKKyAgICAgICAgeworICAgICAgICAgICAgcmMg PSAtRUZBVUxUOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgcmMgPSBn ZXRfZmVhdHVyZXMoY3VycmVudC0+ZG9tYWluLCAmdS5maSk7CisgICAgICAgIGJyZWFrOworCisg ICAgY2FzZSBYRU5fVkVSU0lPTl9wYWdlc2l6ZToKKyAgICAgICAgc3ogPSBzaXplb2YoeGVuX3Zl cnNpb25fb3BfdmFsX3QpOworICAgICAgICB1LnZhbCA9IFBBR0VfU0laRTsKKyAgICAgICAgYnJl YWs7CisKKyAgICBjYXNlIFhFTl9WRVJTSU9OX2d1ZXN0X2hhbmRsZToKKyAgICAgICAgc3ogPSBB UlJBWV9TSVpFKGN1cnJlbnQtPmRvbWFpbi0+aGFuZGxlKTsKKyAgICAgICAgcHRyID0gY3VycmVu dC0+ZG9tYWluLT5oYW5kbGU7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBYRU5fVkVSU0lP Tl9jb21tYW5kbGluZToKKyAgICAgICAgc3ogPSBzdHJsZW4oc2F2ZWRfY21kbGluZSkgKyAxOwor ICAgICAgICBwdHIgPSBzYXZlZF9jbWRsaW5lOworICAgICAgICBicmVhazsKKworICAgIGRlZmF1 bHQ6CisgICAgICAgIHJjID0gLUVOT1NZUzsKKyAgICB9CisKKyAgICBpZiAoIHJjICkKKyAgICAg ICAgcmV0dXJuIHJjOworCisgICAgLyoKKyAgICAgKiBUaGlzIGh5cGVyY2FsbCBhbHNvIGFsbG93 cyB0aGUgY2xpZW50IHRvIHByb2JlLiBJZiBpdCBwcm92aWRlcworICAgICAqIGEgTlVMTCBhcmcg d2Ugd2lsbCByZXR1cm4gdGhlIHNpemUgb2YgdGhlIHNwYWNlIGl0IGhhcyB0bworICAgICAqIGFs bG9jYXRlIGZvciB0aGUgc3BlY2lmaWMgc3ViLW9wLgorICAgICAqLworICAgIEFTU0VSVChzeik7 CisgICAgaWYgKCBndWVzdF9oYW5kbGVfaXNfbnVsbChhcmcpICkKKyAgICAgICAgcmV0dXJuIHN6 OworCisgICAgaWYgKCAhcmMgKQorICAgIHsKKyAgICAgICAgdW5zaWduZWQgaW50IGJ5dGVzID0g bWluKHN6LCBsZW4pOworCisgICAgICAgIGlmICggY29weV90b19ndWVzdChhcmcsIHB0ciA/IDog JnUsIGJ5dGVzKSApCisgICAgICAgICAgICByYyA9IC1FRkFVTFQ7CisKKyAgICAgICAgLyoKKyAg ICAgICAgICogV2UgcmV0dXJuIGxlbiAodHJ1bmNhdGUpIHdvcnRoIG9mIGRhdGEgZXZlbiBpZiB3 ZSBmYWlsLgorICAgICAgICAgKi8KKyAgICAgICAgaWYgKCAhcmMgJiYgc3ogPiBsZW4gKQorICAg ICAgICAgICAgcmMgPSAtRU5PQlVGUzsKKyAgICB9CisKKyAgICByZXR1cm4gcmMgPT0gMCA/IHN6 IDogcmM7Cit9CisKIERPKG5taV9vcCkodW5zaWduZWQgaW50IGNtZCwgWEVOX0dVRVNUX0hBTkRM RV9QQVJBTSh2b2lkKSBhcmcpCiB7CiAgICAgc3RydWN0IHhlbm5taV9jYWxsYmFjayBjYjsKQEAg LTQxOCw2ICs1NTcsMjEgQEAgRE8obmlfaHlwZXJjYWxsKSh2b2lkKQogICAgIHJldHVybiAtRU5P U1lTOwogfQogCitzdGF0aWMgaW50IF9faW5pdCBrZXJuZWxfY2FjaGVfaW5pdCh2b2lkKQorewor ICAgIHVuc2lnbmVkIGludCBsZW47CisKKyAgICAvKgorICAgICAqIFByZS1hbGxvY2F0ZSB0aGUg Y2FjaGUgc28gd2UgZG8gbm90IGhhdmUgdG8gd29ycnkgYWJvdXQKKyAgICAgKiBzaW11bHRhbmVv dXMgaW52b2NhdGlvbnMgb24gc2FmZV9zdHJjYXQgYnkgZ3Vlc3RzIGFuZCB0aGUgY2FjaGUKKyAg ICAgKiBkYXRhIGJlY29taW5nIGdhcmJhZ2UuCisgICAgICovCisgICAgKHZvaWQpY2FwYWJpbGl0 aWVzX2luZm8oJmxlbik7CisKKyAgICByZXR1cm4gMDsKK30KK19faW5pdGNhbGwoa2VybmVsX2Nh Y2hlX2luaXQpOworCiAvKgogICogTG9jYWwgdmFyaWFibGVzOgogICogbW9kZTogQwpkaWZmIC0t Z2l0IGEveGVuL2luY2x1ZGUvcHVibGljL2FyY2gtYXJtLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMv YXJjaC1hcm0uaAppbmRleCA4NzBiYzNiLi41ZjkwNzE4IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVk ZS9wdWJsaWMvYXJjaC1hcm0uaAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC1hcm0uaApA QCAtMTI4LDYgKzEyOCw4IEBACiAgKiAgICAqIFZDUFVPUF9yZWdpc3Rlcl92Y3B1X2luZm8KICAq ICAgICogVkNQVU9QX3JlZ2lzdGVyX3J1bnN0YXRlX21lbW9yeV9hcmVhCiAgKgorICogIEhZUEVS VklTT1JfdmVyc2lvbl9vcAorICogICBBbGwgZ2VuZXJpYyBzdWItb3BlcmF0aW9ucwogICoKICAq IE90aGVyIG5vdGVzIG9uIHRoZSBBUk0gQUJJOgogICoKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRl L3B1YmxpYy92ZXJzaW9uLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMvdmVyc2lvbi5oCmluZGV4IDI0 YTU4MmYuLjZlMzI3YmIgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3B1YmxpYy92ZXJzaW9uLmgK KysrIGIveGVuL2luY2x1ZGUvcHVibGljL3ZlcnNpb24uaApAQCAtMzAsNyArMzAsMTQgQEAKIAog I2luY2x1ZGUgInhlbi5oIgogCi0vKiBOQi4gQWxsIG9wcyByZXR1cm4gemVybyBvbiBzdWNjZXNz LCBleGNlcHQgWEVOVkVSX3t2ZXJzaW9uLHBhZ2VzaXplfSAqLworLyoKKyAqIFRoZXJlIGFyZSB0 d28gaHlwZXJjYWxscyBtZW50aW9uZWQgaW4gaGVyZS4gVGhlIFhFTlZFUl8gYXJlIGZvcgorICog SFlQRVJDQUxMX3hlbl92ZXJzaW9uICgxNyksIHdoaWxlIFZFUlNJT05fIGFyZSBmb3IgdGhlCisg KiBIWVBFUkNBTExfdmVyc2lvbl9vcCAoNDEpLgorICoKKyAqIFRoZSBzdWJvcHMgYXJlIHZlcnkg c2ltaWxhciBleGNlcHQgdGhhdCB0aGUgbGF0ZXIgaHlwZXJjYWxsIGhhcyBhCisgKiBzYW5lIGlu dGVyZmFjZS4KKyAqLwogCiAvKiBhcmcgPT0gTlVMTDsgcmV0dXJucyBtYWpvcjptaW5vciAoMTY6 MTYpLiAqLwogI2RlZmluZSBYRU5WRVJfdmVyc2lvbiAgICAgIDAKQEAgLTg3LDYgKzk0LDY3IEBA IHR5cGVkZWYgc3RydWN0IHhlbl9mZWF0dXJlX2luZm8geGVuX2ZlYXR1cmVfaW5mb190OwogI2Rl ZmluZSBYRU5WRVJfY29tbWFuZGxpbmUgOQogdHlwZWRlZiBjaGFyIHhlbl9jb21tYW5kbGluZV90 WzEwMjRdOwogCisvKgorICogVGhlIEhZUEVSQ0FMTF92ZXJzaW9uX29wIGhhcyBhIHNldCBvZiBz dWItb3BzIHdoaWNoIG1pcnJvciB0aGUKKyAqIHN1Yi1vcHMgb2YgSFlQRVJDQUxMX3hlbl92ZXJz aW9uLiBIb3dldmVyIHRoaXMgaHlwZXJjYWxsIGRpZmZlcnMKKyAqIHJhZGljYWxseSBmcm9tIHRo ZSBmb3JtZXI6CisgKiAgLSBJdCByZXR1cm5zIHRoZSBhbW91bnQgb2YgYnl0ZXMgcmV0dXJuZWQu CisgKiAgLSBJdCB3aWxsIHJldHVybiAtWEVOX0VQRVJNIGlmIHRoZSBndWVzdCBpcyBub3QgcGVy bWl0dGVkCisgKiAgICAoQWxiZWl0IFhFTl9WRVJTSU9OX3ZlcnNpb24sIFhFTl9WRVJTSU9OX3Bs YXRmb3JtX3BhcmFtZXRlcnMsIGFuZAorICogICAgWEVOX1ZFUlNJT05fZ2V0X2ZlYXR1cmVzIHdp bGwgYWx3YXlzIHJldHVybiBhbiB2YWx1ZSBhcyBndWVzdCBjYW5ub3QKKyAqICAgIHN1cnZpdmUg d2l0aG91dCB0aGlzIGluZm9ybWF0aW9uKS4KKyAqICAtIEl0IHdpbGwgcmV0dXJuIHRoZSByZXF1 ZXN0ZWQgZGF0YSBpbiBhcmcuCisgKiAgLSBJdCByZXF1aXJlcyBhbiB0aGlyZCBhcmd1bWVudCAo bGVuKSBmb3IgdGhlIGxlbmd0aCBvZiB0aGUKKyAqICAgIGFyZy4gTmF0dXJhbGx5IHRoZSBhcmcg aGFzIHRvIGZpdCB0aGUgcmVxdWVzdGVkIGRhdGEgb3RoZXJ3aXNlCisgKiAgICAtWEVOX0VOT0JV RlMgaXMgcmV0dXJuZWQuCisgKgorICogSXQgYWxzbyBvZmZlcnMgYW4gbWVjaGFuaXNtIHRvIHBy b2JlIGZvciB0aGUgYW1vdW50IG9mIGJ5dGVzIGFuCisgKiBzdWItb3Agd2lsbCByZXF1aXJlLiBI YXZpbmcgdGhlIGFyZyBoYXZlIGFuIE5VTEwgaGFuZGxlIHdpbGwKKyAqIHJldHVybiB0aGUgbnVt YmVyIG9mIGJ5dGVzIHJlcXVlc3RlZCBmb3IgdGhlIG9wZXJhdGlvbi4gT3IgYW4KKyAqIG5lZ2F0 aXZlIHZhbHVlIGlmIGFuIGVycm9yIGlzIGVuY291bnRlcmVkLgorICovCisKK3R5cGVkZWYgdWlu dDY0X3QgeGVuX3ZlcnNpb25fb3BfdmFsX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5f dmVyc2lvbl9vcF92YWxfdCk7CisKKy8qCisgKiBhcmcgPT0geGVuX3ZlcnNpb25fb3BfdmFsX3Qu IEVuY29kZWQgYXMgbWFqb3I6bWlub3IgKDMxLi4xNjoxNS4uMCksIHdoaWxlCisgKiA2My4uMzIg YXJlIHplcm8uCisgKi8KKyNkZWZpbmUgWEVOX1ZFUlNJT05fdmVyc2lvbiAgICAgICAgICAgICAw CisKKy8qIGFyZyA9PSBjaGFyLiBDb250YWlucyBOVUwgdGVybWluYXRlZCB1dGYtOCBzdHJpbmcu ICovCisjZGVmaW5lIFhFTl9WRVJTSU9OX2V4dHJhdmVyc2lvbiAgICAgICAgMQorCisvKiBhcmcg PT0gY2hhci4gQ29udGFpbnMgTlVMIHRlcm1pbmF0ZWQgdXRmLTggc3RyaW5nLiAqLworI2RlZmlu ZSBYRU5fVkVSU0lPTl9jYXBhYmlsaXRpZXMgICAgICAgIDMKKworLyogYXJnID09IGNoYXIuIENv bnRhaW5zIE5VTCB0ZXJtaW5hdGVkIHV0Zi04IHN0cmluZy4gKi8KKyNkZWZpbmUgWEVOX1ZFUlNJ T05fY2hhbmdlc2V0ICAgICAgICAgICA0CisKKy8qIGFyZyA9PSB4ZW5fdmVyc2lvbl9vcF92YWxf dC4gKi8KKyNkZWZpbmUgWEVOX1ZFUlNJT05fcGxhdGZvcm1fcGFyYW1ldGVycyA1CisKKy8qCisg KiBhcmcgPSB4ZW5fZmVhdHVyZV9pbmZvX3QgLSBzaGFyZXMgdGhlIHNhbWUgc3RydWN0dXJlCisg KiBhcyB0aGUgWEVOVkVSX2dldF9mZWF0dXJlcy4KKyAqLworI2RlZmluZSBYRU5fVkVSU0lPTl9n ZXRfZmVhdHVyZXMgICAgICAgIDYKKworLyogYXJnID09IHhlbl92ZXJzaW9uX29wX3ZhbF90LiAq LworI2RlZmluZSBYRU5fVkVSU0lPTl9wYWdlc2l6ZSAgICAgICAgICAgIDcKKworLyoKKyAqIGFy ZyA9PSB2b2lkLgorICoKKyAqIFRoZSB0b29sc3RhY2sgZmlsbHMgaXQgb3V0IGZvciBndWVzdCBj b25zdW1wdGlvbi4gSXQgaXMgaW50ZW5kZWQgdG8gaG9sZAorICogdGhlIFVVSUQgb2YgdGhlIGd1 ZXN0LgorICovCisjZGVmaW5lIFhFTl9WRVJTSU9OX2d1ZXN0X2hhbmRsZSAgICAgICAgOAorCisv KiBhcmcgPSBjaGFyLiBDb250YWlucyBOVUwgdGVybWluYXRlZCB1dGYtOCBzdHJpbmcuICovCisj ZGVmaW5lIFhFTl9WRVJTSU9OX2NvbW1hbmRsaW5lICAgICAgICAgOQorCiAjZW5kaWYgLyogX19Y RU5fUFVCTElDX1ZFUlNJT05fSF9fICovCiAKIC8qCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9w dWJsaWMveGVuLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMveGVuLmgKaW5kZXggNjRiYTdhYi4uMWE5 OTkyOSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL3hlbi5oCisrKyBiL3hlbi9pbmNs dWRlL3B1YmxpYy94ZW4uaApAQCAtMTE1LDYgKzExNSw3IEBAIERFRklORV9YRU5fR1VFU1RfSEFO RExFKHhlbl91bG9uZ190KTsKICNkZWZpbmUgX19IWVBFUlZJU09SX3RtZW1fb3AgICAgICAgICAg ICAgIDM4CiAjZGVmaW5lIF9fSFlQRVJWSVNPUl94Y19yZXNlcnZlZF9vcCAgICAgICAzOSAvKiBy ZXNlcnZlZCBmb3IgWGVuQ2xpZW50ICovCiAjZGVmaW5lIF9fSFlQRVJWSVNPUl94ZW5wbXVfb3Ag ICAgICAgICAgICA0MAorI2RlZmluZSBfX0hZUEVSVklTT1JfdmVyc2lvbl9vcCAgICAgICAgICAg NDEgLyogc3VwZXJzZWRlcyB4ZW5fdmVyc2lvbiAoMTcpICovCiAKIC8qIEFyY2hpdGVjdHVyZS1z cGVjaWZpYyBoeXBlcmNhbGwgZGVmaW5pdGlvbnMuICovCiAjZGVmaW5lIF9fSFlQRVJWSVNPUl9h cmNoXzAgICAgICAgICAgICAgICA0OApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL2h5cGVy Y2FsbC5oIGIveGVuL2luY2x1ZGUveGVuL2h5cGVyY2FsbC5oCmluZGV4IDBjOGFlMGUuLmU4ZDJi ODEgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9oeXBlcmNhbGwuaAorKysgYi94ZW4vaW5j bHVkZS94ZW4vaHlwZXJjYWxsLmgKQEAgLTE0Nyw2ICsxNDcsMTAgQEAgZG9feGVub3Byb2Zfb3Ao aW50IG9wLCBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZyk7CiBleHRlcm4gbG9uZwog ZG9feGVucG11X29wKHVuc2lnbmVkIGludCBvcCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZW5f cG11X3BhcmFtc190KSBhcmcpOwogCitleHRlcm4gbG9uZworZG9fdmVyc2lvbl9vcCh1bnNpZ25l ZCBpbnQgY21kLAorICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgYXJnLCB1bnNpZ25l ZCBpbnQgbGVuKTsKKwogI2lmZGVmIENPTkZJR19DT01QQVQKIAogZXh0ZXJuIGludApkaWZmIC0t Z2l0IGEveGVuL2luY2x1ZGUveHNtL2R1bW15LmggYi94ZW4vaW5jbHVkZS94c20vZHVtbXkuaApp bmRleCBhYmJlMjgyLi5lNWRhZDM1IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94c20vZHVtbXku aAorKysgYi94ZW4vaW5jbHVkZS94c20vZHVtbXkuaApAQCAtNzUxLDMgKzc1MSwyNCBAQCBzdGF0 aWMgWFNNX0lOTElORSBpbnQgeHNtX3hlbl92ZXJzaW9uIChYU01fREVGQVVMVF9BUkcgdWludDMy X3Qgb3ApCiAgICAgICAgIHJldHVybiB4c21fZGVmYXVsdF9hY3Rpb24oWFNNX1BSSVYsIGN1cnJl bnQtPmRvbWFpbiwgTlVMTCk7CiAgICAgfQogfQorCitzdGF0aWMgWFNNX0lOTElORSBpbnQgeHNt X3ZlcnNpb25fb3AgKFhTTV9ERUZBVUxUX0FSRyB1aW50MzJfdCBvcCkKK3sKKyAgICBYU01fQVNT RVJUX0FDVElPTihYU01fT1RIRVIpOworICAgIHN3aXRjaCAoIG9wICkKKyAgICB7CisgICAgY2Fz ZSBYRU5fVkVSU0lPTl92ZXJzaW9uOgorICAgIGNhc2UgWEVOX1ZFUlNJT05fcGxhdGZvcm1fcGFy YW1ldGVyczoKKyAgICBjYXNlIFhFTl9WRVJTSU9OX2dldF9mZWF0dXJlczoKKyAgICAgICAgLyog VGhlc2UgTVVTVCBhbHdheXMgYmUgYWNjZXNzaWJsZSB0byBhbnkgZ3Vlc3QgYnkgZGVmYXVsdC4g Ki8KKyAgICAgICAgcmV0dXJuIDA7CisgICAgY2FzZSBYRU5fVkVSU0lPTl9leHRyYXZlcnNpb246 CisgICAgY2FzZSBYRU5fVkVSU0lPTl9jYXBhYmlsaXRpZXM6CisgICAgY2FzZSBYRU5fVkVSU0lP Tl9wYWdlc2l6ZToKKyAgICBjYXNlIFhFTl9WRVJTSU9OX2d1ZXN0X2hhbmRsZToKKyAgICAgICAg LyogVGhlc2UgY2FuIGJlIGFjY2Vzc2libGUgdG8gYSBndWVzdC4gKi8KKyAgICAgICAgcmV0dXJu IHhzbV9kZWZhdWx0X2FjdGlvbihYU01fSE9PSywgY3VycmVudC0+ZG9tYWluLCBOVUxMKTsKKyAg ICBkZWZhdWx0OgorICAgICAgICByZXR1cm4geHNtX2RlZmF1bHRfYWN0aW9uKFhTTV9QUklWLCBj dXJyZW50LT5kb21haW4sIE5VTEwpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRl L3hzbS94c20uaCBiL3hlbi9pbmNsdWRlL3hzbS94c20uaAppbmRleCA1ZWNiZWUwLi5hYzgwNDcy IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94c20veHNtLmgKKysrIGIveGVuL2luY2x1ZGUveHNt L3hzbS5oCkBAIC0xOTQsNiArMTk0LDcgQEAgc3RydWN0IHhzbV9vcGVyYXRpb25zIHsKICAgICBp bnQgKCpwbXVfb3ApIChzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgb3ApOwogI2VuZGlm CiAgICAgaW50ICgqeGVuX3ZlcnNpb24pICh1aW50MzJfdCBjbWQpOworICAgIGludCAoKnZlcnNp b25fb3ApICh1aW50MzJfdCBjbWQpOwogfTsKIAogI2lmZGVmIENPTkZJR19YU00KQEAgLTczNyw2 ICs3MzgsMTEgQEAgc3RhdGljIGlubGluZSBpbnQgeHNtX3hlbl92ZXJzaW9uICh4c21fZGVmYXVs dF90IGRlZiwgdWludDMyX3Qgb3ApCiAgICAgcmV0dXJuIHhzbV9vcHMtPnhlbl92ZXJzaW9uKG9w KTsKIH0KIAorc3RhdGljIGlubGluZSBpbnQgeHNtX3ZlcnNpb25fb3AgKHhzbV9kZWZhdWx0X3Qg ZGVmLCB1aW50MzJfdCBvcCkKK3sKKyAgICByZXR1cm4geHNtX29wcy0+dmVyc2lvbl9vcChvcCk7 Cit9CisKICNlbmRpZiAvKiBYU01fTk9fV1JBUFBFUlMgKi8KIAogI2lmZGVmIENPTkZJR19NVUxU SUJPT1QKZGlmZiAtLWdpdCBhL3hlbi94c20vZHVtbXkuYyBiL3hlbi94c20vZHVtbXkuYwppbmRl eCA5NzkxYWQ0Li43NzZkZDA5IDEwMDY0NAotLS0gYS94ZW4veHNtL2R1bW15LmMKKysrIGIveGVu L3hzbS9kdW1teS5jCkBAIC0xNjMsNCArMTYzLDUgQEAgdm9pZCB4c21fZml4dXBfb3BzIChzdHJ1 Y3QgeHNtX29wZXJhdGlvbnMgKm9wcykKICAgICBzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHBt dV9vcCk7CiAjZW5kaWYKICAgICBzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHhlbl92ZXJzaW9u KTsKKyAgICBzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHZlcnNpb25fb3ApOwogfQpkaWZmIC0t Z2l0IGEveGVuL3hzbS9mbGFzay9ob29rcy5jIGIveGVuL3hzbS9mbGFzay9ob29rcy5jCmluZGV4 IDIwNjljYjMuLjFlYWVjNTggMTAwNjQ0Ci0tLSBhL3hlbi94c20vZmxhc2svaG9va3MuYworKysg Yi94ZW4veHNtL2ZsYXNrL2hvb2tzLmMKQEAgLTE2NTgsNiArMTY1OCw0MCBAQCBzdGF0aWMgaW50 IGZsYXNrX3hlbl92ZXJzaW9uICh1aW50MzJfdCBvcCkKICAgICB9CiB9CiAKK3N0YXRpYyBpbnQg Zmxhc2tfdmVyc2lvbl9vcCAodWludDMyX3Qgb3ApCit7CisgICAgdTMyIGRzaWQgPSBkb21haW5f c2lkKGN1cnJlbnQtPmRvbWFpbik7CisKKyAgICBzd2l0Y2ggKCBvcCApCisgICAgeworICAgIGNh c2UgWEVOX1ZFUlNJT05fdmVyc2lvbjoKKyAgICBjYXNlIFhFTl9WRVJTSU9OX3BsYXRmb3JtX3Bh cmFtZXRlcnM6CisgICAgY2FzZSBYRU5fVkVSU0lPTl9nZXRfZmVhdHVyZXM6CisgICAgICAgIC8q IFRoZXNlIE1VU1QgYWx3YXlzIGJlIGFjY2Vzc2libGUgdG8gYW55IGd1ZXN0IGJ5IGRlZmF1bHQu ICovCisgICAgICAgIHJldHVybiAwOworICAgIGNhc2UgWEVOX1ZFUlNJT05fZXh0cmF2ZXJzaW9u OgorICAgICAgICByZXR1cm4gYXZjX2hhc19wZXJtKGRzaWQsIFNFQ0lOSVRTSURfWEVOLCBTRUND TEFTU19WRVJTSU9OLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZFUlNJT05fX0VYVFJB VkVSU0lPTiwgTlVMTCk7CisgICAgY2FzZSBYRU5fVkVSU0lPTl9jYXBhYmlsaXRpZXM6CisgICAg ICAgIHJldHVybiBhdmNfaGFzX3Blcm0oZHNpZCwgU0VDSU5JVFNJRF9YRU4sIFNFQ0NMQVNTX1ZF UlNJT04sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVkVSU0lPTl9fQ0FQQUJJTElUSUVT LCBOVUxMKTsKKyAgICBjYXNlIFhFTl9WRVJTSU9OX2NoYW5nZXNldDoKKyAgICAgICAgcmV0dXJu IGF2Y19oYXNfcGVybShkc2lkLCBTRUNJTklUU0lEX1hFTiwgU0VDQ0xBU1NfVkVSU0lPTiwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICBWRVJTSU9OX19DSEFOR0VTRVQsIE5VTEwpOworICAg IGNhc2UgWEVOX1ZFUlNJT05fcGFnZXNpemU6CisgICAgICAgIHJldHVybiBhdmNfaGFzX3Blcm0o ZHNpZCwgU0VDSU5JVFNJRF9YRU4sIFNFQ0NMQVNTX1ZFUlNJT04sCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgVkVSU0lPTl9fUEFHRVNJWkUsIE5VTEwpOworICAgIGNhc2UgWEVOX1ZFUlNJ T05fZ3Vlc3RfaGFuZGxlOgorICAgICAgICByZXR1cm4gYXZjX2hhc19wZXJtKGRzaWQsIFNFQ0lO SVRTSURfWEVOLCBTRUNDTEFTU19WRVJTSU9OLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg IFZFUlNJT05fX0dVRVNUX0hBTkRMRSwgTlVMTCk7CisgICAgY2FzZSBYRU5fVkVSU0lPTl9jb21t YW5kbGluZToKKyAgICAgICAgcmV0dXJuIGF2Y19oYXNfcGVybShkc2lkLCBTRUNJTklUU0lEX1hF TiwgU0VDQ0xBU1NfVkVSU0lPTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBWRVJTSU9O X19DT01NQU5ETElORSwgTlVMTCk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIC1FUEVS TTsKKyAgICB9Cit9CisKIGxvbmcgZG9fZmxhc2tfb3AoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4 c21fb3BfdCkgdV9mbGFza19vcCk7CiBpbnQgY29tcGF0X2ZsYXNrX29wKFhFTl9HVUVTVF9IQU5E TEVfUEFSQU0oeHNtX29wX3QpIHVfZmxhc2tfb3ApOwogCkBAIC0xNzk3LDYgKzE4MzEsNyBAQCBz dGF0aWMgc3RydWN0IHhzbV9vcGVyYXRpb25zIGZsYXNrX29wcyA9IHsKICAgICAucG11X29wID0g Zmxhc2tfcG11X29wLAogI2VuZGlmCiAgICAgLnhlbl92ZXJzaW9uID0gZmxhc2tfeGVuX3ZlcnNp b24sCisgICAgLnZlcnNpb25fb3AgPSBmbGFza192ZXJzaW9uX29wLAogfTsKIAogc3RhdGljIF9f aW5pdCB2b2lkIGZsYXNrX2luaXQodm9pZCkKZGlmZiAtLWdpdCBhL3hlbi94c20vZmxhc2svcG9s aWN5L2FjY2Vzc192ZWN0b3JzIGIveGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMK aW5kZXggYmFkY2YxYy4uNTY2MDBiYiAxMDA2NDQKLS0tIGEveGVuL3hzbS9mbGFzay9wb2xpY3kv YWNjZXNzX3ZlY3RvcnMKKysrIGIveGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMK QEAgLTQ5NiwxMiArNDk2LDE0IEBAIGNsYXNzIHNlY3VyaXR5CiAgICAgZGVsX29jb250ZXh0CiB9 CiAKLSMgQ2xhc3MgdmVyc2lvbiBpcyB1c2VkIHRvIGRlc2NyaWJlIHRoZSBYRU5WRVJfIGh5cGVy Y2FsbC4KKyMgQ2xhc3MgdmVyc2lvbiBpcyB1c2VkIHRvIGRlc2NyaWJlIHRoZSBYRU5WRVJfIGFu ZCBWRVJTSU9OIGh5cGVyY2FsbC4KICMgQWxtb3N0IGFsbCBzdWItb3BzIGFyZSBkZXNjcmliZWQg aGVyZSAtIGluIHRoZSBkZWZhdWx0IGNhc2UgYWxsIG9mIHRoZW0gc2hvdWxkCi0jIGJlIGFsbG93 ZWQgZXhjZXB0IHRoZSBYRU5WRVJfY29tbWFuZGxpbmUuCisjIGJlIGFsbG93ZWQgZXhjZXB0IHRo ZSBYRU5WRVJfY29tbWFuZGxpbmUsIFZFUlNJT05fY29tbWFuZGxpbmUsIGFuZAorIyBWRVJTSU9O X2NoYW5nZXNldC4KICMKICMgVGhlIG9uZXMgdGhhdCBhcmUgb21pdHRlZCBhcmUgWEVOVkVSX3Zl cnNpb24sIFhFTlZFUl9wbGF0Zm9ybV9wYXJhbWV0ZXJzLAotIyBhbmQgWEVOVkVSX2dldF9mZWF0 dXJlcyAgLSBhcyB0aGV5IE1VU1QgYWx3YXlzIGJlIHJldHVybmVkIHRvIGEgZ3Vlc3QuCisjIFhF TlZFUl9nZXRfZmVhdHVyZXMsIFhFTl9WRVJTSU9OX3ZlcnNpb24sIFhFTl9WRVJTSU9OX3BsYXRm b3JtX3BhcmFtZXRlcnMsCisjIGFuZCBYRU5fVkVSU0lPTl9nZXRfZmVhdHVyZXMgLSBhcyB0aGV5 IE1VU1QgYWx3YXlzIGJlIHJldHVybmVkIHRvIGEgZ3Vlc3QuCiAjCiBjbGFzcyB2ZXJzaW9uCiB7 CkBAIC01MTksNCArNTIxLDE3IEBAIGNsYXNzIHZlcnNpb24KICAgICB4ZW5fZ3Vlc3RfaGFuZGxl CiAjIFhlbiBjb21tYW5kIGxpbmUuCiAgICAgeGVuX2NvbW1hbmRsaW5lCisjIC0tLSBWRVJTSU9O IGh5cGVyY2FsbCAtLS0KKyMgRXh0cmEgaW5mb3JtYXRpb25zICgtdW5zdGFibGUpLgorICAgIGV4 dHJhdmVyc2lvbgorIyBTdWNoIGFzICJ4ZW4tMy4wLXg4Nl82NCB4ZW4tMy4wLXg4Nl8zMnAgaHZt LTMuMC14ODZfMzIgaHZtLTMuMC14ODZfMzJwIGh2bS0zLjAteDg2XzY0Ii4KKyAgICBjYXBhYmls aXRpZXMKKyMgU291cmNlIGNvZGUgY2hhbmdlc2V0LgorICAgIGNoYW5nZXNldAorIyBQYWdlIHNp emUgdGhlIGh5cGVydmlzb3IgdXNlcy4KKyAgICBwYWdlc2l6ZQorIyBBbiB2YWx1ZSB0aGF0IHRo ZSBjb250cm9sIHN0YWNrIGNhbiBjaG9vc2UuCisgICAgZ3Vlc3RfaGFuZGxlCisjIFhlbiBjb21t YW5kIGxpbmUuCisgICAgY29tbWFuZGxpbmUKIH0KLS0gCjIuNS4wCgoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApY ZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK