From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peter Zijlstra Subject: Re: PROPOSAL: Extend inline asm syntax with size spec Date: Wed, 31 Oct 2018 13:55:26 +0100 Message-ID: <20181031125526.GA13219@hirez.programming.kicks-ass.net> References: <20181008073128.GL29268@gate.crashing.org> <20181009145330.GT29268@gate.crashing.org> <20181010072240.GB103159@gmail.com> <20181010080324.GV29268@gate.crashing.org> <20181010081906.GA5533@zn.tnic> <20181010185432.GB29268@gate.crashing.org> <20181010191427.GF5533@zn.tnic> <20181013193335.GD31650@zn.tnic> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20181013193335.GD31650@zn.tnic> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: virtualization-bounces@lists.linux-foundation.org Errors-To: virtualization-bounces@lists.linux-foundation.org To: Borislav Petkov Cc: Kate Stewart , Christopher Li , virtualization@lists.linux-foundation.org, Masahiro Yamada , Nadav Amit , Jan Beulich , "H. Peter Anvin" , Sam Ravnborg , Ingo Molnar , x86@kernel.org, linux-sparse@vger.kernel.org, Ingo Molnar , linux-xtensa@linux-xtensa.org, Kees Cook , Segher Boessenkool , Chris Zankel , Michael Matz , Josh Poimboeuf , Alok Kataria , Juergen Gross , gcc@gcc.gnu.org, Richard Biener , Max Filippov , Greg Kroah-Hartman , linux-kernel@vger.kernel.org, Thomas List-Id: linux-sparse@vger.kernel.org T24gU2F0LCBPY3QgMTMsIDIwMTggYXQgMDk6MzM6MzVQTSArMDIwMCwgQm9yaXNsYXYgUGV0a292 IHdyb3RlOgo+IE9rLAo+IAo+IHdpdGggU2VnaGVyJ3MgaGVscCBJJ3ZlIGJlZW4gcGxheWluZyB3 aXRoIGhpcyBwYXRjaCBvbnRvcCBvZiBibGVlZGluZwo+IGVkZ2UgZ2NjIDkgYW5kIGhlcmUgYXJl IG15IG9ic2VydmF0aW9ucy4gUGxlYXNlIGRvdWJsZS1jaGVjayBtZSBmb3IKPiBib29ib29zIHNv IHRoYXQgdGhleSBjYW4gYmUgYWRkcmVzc2VkIHdoaWxlIHRoZXJlJ3MgdGltZS4KPiAKPiBTbyBo ZXJlJ3Mgd2hhdCBJIHNlZSBvbnRvcCBvZiA0LjE5LXJjNzoKPiAKPiBGaXJzdCBtYXJrZWQgdGhl IGFsdGVybmF0aXZlIGFzbSgpIGFzIGlubGluZSBhbmQgdW5kZWZmZWQgdGhlICJpbmxpbmUiCj4g a2V5d29yZC4gSSBuZWVkIHRvIGRvIHRoYXQgYmVjYXVzZSBvZiB0aGUgZnVua3kgZ2FtZXMgd2Ug ZG8gd2l0aAo+ICJpbmxpbmUiIHJlZGVmaW5pdGlvbnMgaW4gaW5jbHVkZS9saW51eC9jb21waWxl cl90eXBlcy5oLgo+IAo+IEFuZCBTZWdoZXIgaGludGVkIGF0IGVpdGhlciBkb2luZzoKPiAKPiBh c20gdm9sYXRpbGUgaW5saW5lKC4uLgo+IAo+IG9yCj4gCj4gYXNtIHZvbGF0aWxlIF9faW5saW5l X18oLi4uCj4gCj4gYnV0IGJvdGggImlubGluZSIgdmFyaWFudHMgYXJlIGRlZmluZWQgYXMgbWFj cm9zIGluIHRoYXQgZmlsZS4KPiAKPiBXaGljaCBtZWFucyB3ZSBlaXRoZXIgbmVlZCB0byAjdW5k ZWYgaW5saW5lIGJlZm9yZSB1c2luZyBpdCBpbiBhc20oKSBvcgo+IGNvbWUgdXAgd2l0aCBzb21l dGhpbmcgY2xldmVyZXIuCgojIGdpdCBncmVwIC1lICJcPF9faW5saW5lX19cPiIgfCB3YyAtbAo0 ODgKIyBnaXQgZ3JlcCAtZSAiXDxfX2lubGluZVw+IiB8IHdjIC1sCjU2CiMgZ2l0IGdyZXAgLWUg Ilw8aW5saW5lXD4iIHwgd2MgLWwKNjk1OTgKCkFuZCB3ZSBhbHJlYWR5IGhhdmUgc2NyaXB0cy9j aGVja3BhdGNoLnBsOgoKICAjIENoZWNrIGZvciBfX2lubGluZV9fIGFuZCBfX2lubGluZSwgcHJl ZmVyIGlubGluZQoKV2hpY2ggc3VnZ2VzdHMgd2UgZG86CgpnaXQgZ3JlcCAtbCAiXDxfX2lubGlu ZVwoXHxfX1wpXD4iIHwgd2hpbGUgcmVhZCBmaWxlCmRvCglzZWQgLWkgLWUgJ3MvXDxfX2lubGlu ZVwoXHxfX1wpXD4vaW5saW5lL2cnICRmaWxlCmRvbmUKCmFuZCBnZXQgaXQgb3ZlciB3aXRoLgoK CkFueXdheSwgd2l0aCB0aGUgYmVsb3cgcGF0Y2gsIEkgZ2V0OgoKICAgdGV4dCAgICBkYXRhICAg ICBic3MgICAgIGRlYyAgICAgaGV4IGZpbGVuYW1lCjE3Mzg1MTgzICAgICAgICA1MDY0NzgwIDE5 NTM4OTIgMjQ0MDM4NTUgICAgICAgIDE3NDVmOGYgZGVmY29uZmlnLWJ1aWxkL3ZtbGludXgKMTcz ODU2NzggICAgICAgIDUwNjQ3ODAgMTk1Mzg5MiAyNDQwNDM1MCAgICAgICAgMTc0NjE3ZSBkZWZj b25maWctYnVpbGQvdm1saW51eAoKV2hpY2ggc2hvd3Mgd2UgaW5saW5lIG1vcmUgKGxvb2sgZm9y IGFzbV92b2xhdGlsZSBmb3IgdGhlIGFjdHVhbApjaGFuZ2VzKS4KCgpTbyB5ZXMsIHRoaXMgc2Vl bXMgbGlrZSBzb21ldGhpbmcgd2UgY291bGQgd29yayB3aXRoLgoKLS0tCiBEb2N1bWVudGF0aW9u L3RyYWNlL3RyYWNlcG9pbnQtYW5hbHlzaXMucnN0ICAgICAgICB8ICAyICstCiBEb2N1bWVudGF0 aW9uL3RyYW5zbGF0aW9ucy9qYV9KUC9TdWJtaXR0aW5nUGF0Y2hlcyB8ICA0ICstLQogRG9jdW1l bnRhdGlvbi90cmFuc2xhdGlvbnMvemhfQ04vU3VibWl0dGluZ1BhdGNoZXMgfCAgNCArLS0KIGFy Y2gvYWxwaGEvaW5jbHVkZS9hc20vYXRvbWljLmggICAgICAgICAgICAgICAgICAgIHwgMTIgKysr LS0tLQogYXJjaC9hbHBoYS9pbmNsdWRlL2FzbS9iaXRvcHMuaCAgICAgICAgICAgICAgICAgICAg fCAgNiArKy0tCiBhcmNoL2FscGhhL2luY2x1ZGUvYXNtL2NvbXBpbGVyLmggICAgICAgICAgICAg ICAgICB8ICA0ICstLQogYXJjaC9hbHBoYS9pbmNsdWRlL2FzbS9kbWEuaCAgICAgICAgICAgICAg ICAgICAgICAgfCAyMiArKysrKystLS0tLS0KIGFyY2gvYWxwaGEvaW5jbHVkZS9hc20vZmxvcHB5 LmggICAgICAgICAgICAgICAgICAgIHwgIDQgKy0tCiBhcmNoL2FscGhhL2luY2x1ZGUvYXNtL2ly cS5oICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBhcmNoL2FscGhhL2luY2x1ZGUvYXNt L2xvY2FsLmggICAgICAgICAgICAgICAgICAgICB8ICA0ICstLQogYXJjaC9hbHBoYS9pbmNsdWRl L2FzbS9zbXAuaCAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogYXJjaC9hcm0vbWFjaC1p b3AzMngvaW5jbHVkZS9tYWNoL3VuY29tcHJlc3MuaCAgICAgfCAgMiArLQogYXJjaC9hcm0vbWFj aC1pb3AzM3gvaW5jbHVkZS9tYWNoL3VuY29tcHJlc3MuaCAgICAgfCAgMiArLQogYXJjaC9hcm0v bWFjaC1peHA0eHgvaW5jbHVkZS9tYWNoL3VuY29tcHJlc3MuaCAgICAgfCAgMiArLQogYXJjaC9p YTY0L2hwL2NvbW1vbi9zYmFfaW9tbXUuYyAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogYXJj aC9pYTY0L2hwL3NpbS9zaW1ldGguYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQog YXJjaC9pYTY0L2luY2x1ZGUvYXNtL2F0b21pYy5oICAgICAgICAgICAgICAgICAgICAgfCAgOCAr Ky0tLQogYXJjaC9pYTY0L2luY2x1ZGUvYXNtL2JpdG9wcy5oICAgICAgICAgICAgICAgICAgICAg fCAzNCArKysrKysrKystLS0tLS0tLS0KIGFyY2gvaWE2NC9pbmNsdWRlL2FzbS9kZWxheS5oICAg ICAgICAgICAgICAgICAgICAgIHwgMTQgKysrKy0tLS0KIGFyY2gvaWE2NC9pbmNsdWRlL2FzbS9p cnEuaCAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGFyY2gvaWE2NC9pbmNsdWRlL2Fz bS9wYWdlLmggICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGFyY2gvaWE2NC9pbmNsdWRl L2FzbS9zbi9sZWRzLmggICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGFyY2gvaWE2NC9pbmNs dWRlL2FzbS91YWNjZXNzLmggICAgICAgICAgICAgICAgICAgIHwgIDQgKy0tCiBhcmNoL2lhNjQv aW5jbHVkZS91YXBpL2FzbS9yc2UuaCAgICAgICAgICAgICAgICAgICB8IDEyICsrKy0tLS0KIGFy Y2gvaWE2NC9pbmNsdWRlL3VhcGkvYXNtL3N3YWIuaCAgICAgICAgICAgICAgICAgIHwgIDYgKyst LQogYXJjaC9pYTY0L29wcm9maWxlL2JhY2t0cmFjZS5jICAgICAgICAgICAgICAgICAgICAgfCAg NCArLS0KIGFyY2gvbTY4ay9pbmNsdWRlL2FzbS9ibGlua2VuLmggICAgICAgICAgICAgICAgICAg IHwgIDIgKy0KIGFyY2gvbTY4ay9pbmNsdWRlL2FzbS9jaGVja3N1bS5oICAgICAgICAgICAgICAg ICAgIHwgIDIgKy0KIGFyY2gvbTY4ay9pbmNsdWRlL2FzbS9kbWEuaCAgICAgICAgICAgICAgICAg ICAgICAgIHwgMzIgKysrKysrKystLS0tLS0tLS0KIGFyY2gvbTY4ay9pbmNsdWRlL2FzbS9mbG9w cHkuaCAgICAgICAgICAgICAgICAgICAgIHwgIDggKystLS0KIGFyY2gvbTY4ay9pbmNsdWRlL2Fz bS9uZXR0ZWwuaCAgICAgICAgICAgICAgICAgICAgIHwgIDggKystLS0KIGFyY2gvbTY4ay9tYWMv aW9wLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTQgKysrKy0tLS0KIGFyY2gv bWlwcy9pbmNsdWRlL2FzbS9hdG9taWMuaCAgICAgICAgICAgICAgICAgICAgIHwgMTYgKysrKy0t LS0tCiBhcmNoL21pcHMvaW5jbHVkZS9hc20vY2hlY2tzdW0uaCAgICAgICAgICAgICAgICAgICB8 ICAyICstCiBhcmNoL21pcHMvaW5jbHVkZS9hc20vZG1hLmggICAgICAgICAgICAgICAgICAgICAg ICB8IDIwICsrKysrLS0tLS0tCiBhcmNoL21pcHMvaW5jbHVkZS9hc20vamF6ei5oICAgICAgICAg ICAgICAgICAgICAgICB8ICAyICstCiBhcmNoL21pcHMvaW5jbHVkZS9hc20vbG9jYWwuaCAgICAg ICAgICAgICAgICAgICAgICB8ICA0ICstLQogYXJjaC9taXBzL2luY2x1ZGUvYXNtL3N0cmluZy5o ICAgICAgICAgICAgICAgICAgICAgfCAgOCArKy0tLQogYXJjaC9taXBzL2tlcm5lbC9iaW5mbXRf ZWxmbjMyLmMgICAgICAgICAgICAgICAgICAgfCAgMiArLQogYXJjaC9uZHMzMi9pbmNsdWRlL2Fz bS9zd2FiLmggICAgICAgICAgICAgICAgICAgICAgfCAgNCArLS0KIGFyY2gvcGFyaXNjL2luY2x1 ZGUvYXNtL2F0b21pYy5oICAgICAgICAgICAgICAgICAgIHwgMjAgKysrKystLS0tLS0KIGFyY2gv cGFyaXNjL2luY2x1ZGUvYXNtL2JpdG9wcy5oICAgICAgICAgICAgICAgICAgIHwgMTggKysrKyst LS0tLQogYXJjaC9wYXJpc2MvaW5jbHVkZS9hc20vY2hlY2tzdW0uaCAgICAgICAgICAgICAgICAg fCAgNCArLS0KIGFyY2gvcGFyaXNjL2luY2x1ZGUvYXNtL2NvbXBhdC5oICAgICAgICAgICAgICAg ICAgIHwgIDIgKy0KIGFyY2gvcGFyaXNjL2luY2x1ZGUvYXNtL2RlbGF5LmggICAgICAgICAgICAg ICAgICAgIHwgIDIgKy0KIGFyY2gvcGFyaXNjL2luY2x1ZGUvYXNtL2RtYS5oICAgICAgICAgICAg ICAgICAgICAgIHwgMjAgKysrKystLS0tLS0KIGFyY2gvcGFyaXNjL2luY2x1ZGUvYXNtL2lkZS5o ICAgICAgICAgICAgICAgICAgICAgIHwgIDggKystLS0KIGFyY2gvcGFyaXNjL2luY2x1ZGUvYXNt L2lycS5oICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGFyY2gvcGFyaXNjL2luY2x1ZGUv YXNtL3NwaW5sb2NrLmggICAgICAgICAgICAgICAgIHwgMTIgKysrLS0tLQogYXJjaC9wb3dlcnBj L2luY2x1ZGUvYXNtL2F0b21pYy5oICAgICAgICAgICAgICAgICAgfCA0MCArKysrKysrKysrKy0t LS0tLS0tLS0tCiBhcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vYml0b3BzLmggICAgICAgICAgICAg ICAgICB8IDI4ICsrKysrKystLS0tLS0tLQogYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2RtYS5o ICAgICAgICAgICAgICAgICAgICAgfCAyMCArKysrKy0tLS0tLQogYXJjaC9wb3dlcnBjL2luY2x1 ZGUvYXNtL2VkYWMuaCAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogYXJjaC9wb3dlcnBjL2lu Y2x1ZGUvYXNtL2lycS5oICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogYXJjaC9wb3dlcnBj L2luY2x1ZGUvYXNtL2xvY2FsLmggICAgICAgICAgICAgICAgICAgfCAxNCArKysrLS0tLQogYXJj aC9zaC9pbmNsdWRlL2FzbS9wZ3RhYmxlXzY0LmggICAgICAgICAgICAgICAgICAgfCAgMiArLQog YXJjaC9zaC9pbmNsdWRlL2FzbS9wcm9jZXNzb3JfMzIuaCAgICAgICAgICAgICAgICAgfCAgNCAr LS0KIGFyY2gvc2gvaW5jbHVkZS9jcHUtc2gzL2NwdS9kYWMuaCAgICAgICAgICAgICAgICAgIHwg IDYgKystLQogYXJjaC94ODYvaW5jbHVkZS9hc20vYWx0ZXJuYXRpdmUuaCAgICAgICAgICAgICAg ICAgfCAxNCArKysrLS0tLQogYXJjaC94ODYvdW0vYXNtL2NoZWNrc3VtLmggICAgICAgICAgICAg ICAgICAgICAgICAgfCAgNCArLS0KIGFyY2gveDg2L3VtL2FzbS9jaGVja3N1bV8zMi5oICAgICAg ICAgICAgICAgICAgICAgIHwgIDQgKy0tCiBhcmNoL3h0ZW5zYS9pbmNsdWRlL2FzbS9jaGVja3N1 bS5oICAgICAgICAgICAgICAgICB8IDE0ICsrKystLS0tCiBhcmNoL3h0ZW5zYS9pbmNsdWRlL2Fz bS9jbXB4Y2hnLmggICAgICAgICAgICAgICAgICB8ICA0ICstLQogYXJjaC94dGVuc2EvaW5jbHVk ZS9hc20vaXJxLmggICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogYmxvY2svcGFydGl0aW9u cy9hbWlnYS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogZHJpdmVycy9hdG0v aGUuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNiArKy0tCiBkcml2ZXJz L2F0bS9pZHQ3NzI1Mi5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA2ICsrLS0KIGRy aXZlcnMvZ3B1L2RybS9tZ2EvbWdhX2Rydi5oICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0K IGRyaXZlcnMvZ3B1L2RybS9tZ2EvbWdhX3N0YXRlLmMgICAgICAgICAgICAgICAgICAgIHwgMTQg KysrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9yMTI4L3IxMjhfZHJ2LmggICAgICAgICAgICAgICAg ICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9yMTI4L3IxMjhfc3RhdGUuYyAgICAgICAgICAg ICAgICAgIHwgMTQgKysrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS92aWEvdmlhX2lycS5jICAgICAg ICAgICAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS92aWEvdmlhX3ZlcmlmaWVy LmMgICAgICAgICAgICAgICAgIHwgMzAgKysrKysrKystLS0tLS0tLQogZHJpdmVycy9pc2RuL2hh cmR3YXJlL2VpY29uL3BsYXRmb3JtLmggICAgICAgICAgICAgfCAxNCArKysrLS0tLQogZHJpdmVy cy9pc2RuL2k0bC9pc2RuX25ldC5jICAgICAgICAgICAgICAgICAgICAgICAgfCAxNCArKysrLS0t LQogZHJpdmVycy9pc2RuL2k0bC9pc2RuX25ldC5oICAgICAgICAgICAgICAgICAgICAgICAgfCAg OCArKy0tLQogZHJpdmVycy9tZWRpYS9wY2kvaXZ0di9pdnR2LWlvY3RsLmMgICAgICAgICAgICAg ICAgfCAgMiArLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvc3VuL3N1bmdlbS5jICAgICAgICAgICAg ICAgICAgfCAgOCArKy0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvc3VuL3N1bmhtZS5jICAgICAg ICAgICAgICAgICAgfCAgNiArKy0tCiBkcml2ZXJzL25ldC9oYW1yYWRpby9iYXljb21fc2VyX2Zk eC5jICAgICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL25ldC93YW4vbGFwYmV0aGVyLmMgICAg ICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL25ldC93YW4vbjIuYyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICstLQogZHJpdmVycy9wYXJpc2MvbGVkLmMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArLS0KIGRyaXZlcnMvcGFyaXNjL3NiYV9p b21tdS5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvcGFycG9ydC9w YXJwb3J0X2dzYy5jICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvcGFycG9y dC9wYXJwb3J0X2dzYy5oICAgICAgICAgICAgICAgICAgICAgIHwgIDQgKy0tCiBkcml2ZXJzL3Bh cnBvcnQvcGFycG9ydF9wYy5jICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBkcml2ZXJz L3Njc2kvbHBmYy9scGZjX3Njc2kuYyAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBkcml2 ZXJzL3Njc2kvcGNtY2lhL3N5bTUzYzUwMF9jcy5jICAgICAgICAgICAgICAgICB8ICA0ICstLQog ZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2lubGluZS5oICAgICAgICAgICAgICAgICAgfCAgMiAr LQogZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX29zLmMgICAgICAgICAgICAgICAgICAgICAgfCAg NCArLS0KIGRyaXZlcnMvc3RhZ2luZy9ydGw4NzIzYnMvY29yZS9ydHdfcHdyY3RybC5jICAgICAg IHwgIDQgKy0tCiBkcml2ZXJzL3N0YWdpbmcvcnRsODcyM2JzL2NvcmUvcnR3X3dsYW5fdXRpbC5j ICAgICB8ICAyICstCiBkcml2ZXJzL3N0YWdpbmcvcnRsODcyM2JzL2luY2x1ZGUvZHJ2X3R5cGVz LmggICAgICB8ICA2ICsrLS0KIGRyaXZlcnMvc3RhZ2luZy9ydGw4NzIzYnMvaW5jbHVkZS9pZWVl ODAyMTEuaCAgICAgIHwgIDYgKystLQogZHJpdmVycy9zdGFnaW5nL3J0bDg3MjNicy9pbmNsdWRl L29zZGVwX3NlcnZpY2UuaCAgfCAxMCArKystLS0KIC4uLi9ydGw4NzIzYnMvaW5jbHVkZS9vc2Rl cF9zZXJ2aWNlX2xpbnV4LmggICAgICAgIHwgMTQgKysrKy0tLS0KIGRyaXZlcnMvc3RhZ2luZy9y dGw4NzIzYnMvaW5jbHVkZS9ydHdfbWxtZS5oICAgICAgIHwgMTQgKysrKy0tLS0KIGRyaXZlcnMv c3RhZ2luZy9ydGw4NzIzYnMvaW5jbHVkZS9ydHdfcmVjdi5oICAgICAgIHwgMTYgKysrKy0tLS0t CiBkcml2ZXJzL3N0YWdpbmcvcnRsODcyM2JzL2luY2x1ZGUvc3RhX2luZm8uaCAgICAgICB8ICAy ICstCiBkcml2ZXJzL3N0YWdpbmcvcnRsODcyM2JzL2luY2x1ZGUvd2lmaS5oICAgICAgICAgICB8 IDE0ICsrKystLS0tCiBkcml2ZXJzL3N0YWdpbmcvcnRsODcyM2JzL2luY2x1ZGUvd2xhbl9ic3Nk ZWYuaCAgICB8ICAyICstCiBkcml2ZXJzL3R0eS9hbWlzZXJpYWwuYyAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL3R0eS9zZXJpYWwvaXAyMnppbG9nLmMgICAgICAg ICAgICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL3R0eS9zZXJpYWwvc3Vuc2FiLmMgICAgICAg ICAgICAgICAgICAgICAgICB8ICA0ICstLQogZHJpdmVycy90dHkvc2VyaWFsL3N1bnppbG9nLmMg ICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogZHJpdmVycy92aWRlby9mYmRldi9jb3JlL2Zi Y29uLmMgICAgICAgICAgICAgICAgICAgfCAyMCArKysrKy0tLS0tLQogZHJpdmVycy92aWRlby9m YmRldi9mZmIuYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogZHJpdmVycy92aWRl by9mYmRldi9pbnRlbGZiL2ludGVsZmJkcnYuYyAgICAgICAgICAgfCAxMCArKystLS0KIGRyaXZl cnMvdmlkZW8vZmJkZXYvaW50ZWxmYi9pbnRlbGZiaHcuYyAgICAgICAgICAgIHwgIDIgKy0KIGRy aXZlcnMvdzEvbWFzdGVycy9tYXRyb3hfdzEuYyAgICAgICAgICAgICAgICAgICAgIHwgIDQgKy0t CiBmcy9jb2RhL2NvZGFfbGludXguaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA2 ICsrLS0KIGZzL2ZyZWV2eGZzL3Z4ZnNfaW5vZGUuYyAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgIDIgKy0KIGZzL25mc2QvbmZzZmguaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgIDQgKy0tCiBpbmNsdWRlL2FjcGkvcGxhdGZvcm0vYWNnY2MuaCAgICAgICAgICAgICAg ICAgICAgICB8ICAyICstCiBpbmNsdWRlL2FjcGkvcGxhdGZvcm0vYWNpbnRlbC5oICAgICAgICAg ICAgICAgICAgICB8ICAyICstCiBpbmNsdWRlL2FzbS1nZW5lcmljL2lkZV9pb3BzLmggICAgICAg ICAgICAgICAgICAgICB8ICA4ICsrLS0tCiBpbmNsdWRlL2xpbnV4L2F0YWxrLmggICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICA0ICstLQogaW5jbHVkZS9saW51eC9jZXBoL21lc3Nlbmdl ci5oICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogaW5jbHVkZS9saW51eC9jb21waWxlcl90 eXBlcy5oICAgICAgICAgICAgICAgICAgICAgfCAgNCArLS0KIGluY2x1ZGUvbGludXgvaGRsYy5o ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQgKy0tCiBpbmNsdWRlL2xpbnV4L2lu ZXRkZXZpY2UuaCAgICAgICAgICAgICAgICAgICAgICAgICB8ICA4ICsrLS0tCiBpbmNsdWRlL2xp bnV4L3BhcnBvcnQuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICstLQogaW5jbHVk ZS9saW51eC9wYXJwb3J0X3BjLmggICAgICAgICAgICAgICAgICAgICAgICAgfCAyMiArKysrKyst LS0tLS0KIGluY2x1ZGUvbmV0L2F4MjUuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgIDIgKy0KIGluY2x1ZGUvbmV0L2NoZWNrc3VtLmggICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgIDIgKy0KIGluY2x1ZGUvbmV0L2RuX25zcC5oICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgMTYgKysrKy0tLS0tCiBpbmNsdWRlL25ldC9pcC5oICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAyICstCiBpbmNsdWRlL25ldC9pcDZfY2hlY2tzdW0uaCAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBpbmNsdWRlL25ldC9pcHguaCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8IDEwICsrKy0tLQogaW5jbHVkZS9uZXQvbGxjX2NfZXYu aCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArLS0KIGluY2x1ZGUvbmV0L2xsY19j b25uLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQgKy0tCiBpbmNsdWRlL25ldC9s bGNfc19ldi5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBpbmNsdWRlL25l dC9uZXRyb20uaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA4ICsrLS0tCiBpbmNs dWRlL25ldC9zY20uaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE0ICsrKyst LS0tCiBpbmNsdWRlL25ldC91ZHBsaXRlLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAyICstCiBpbmNsdWRlL25ldC94MjUuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICA4ICsrLS0tCiBpbmNsdWRlL25ldC94ZnJtLmggICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IDE4ICsrKysrLS0tLS0KIGluY2x1ZGUvdWFwaS9saW51eC9hdG0uaCAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgIDQgKy0tCiBpbmNsdWRlL3VhcGkvbGludXgvYXRtc2FwLmgg ICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBpbmNsdWRlL3VhcGkvbGludXgvbWFwX3Rv XzdzZWdtZW50LmggICAgICAgICAgICAgICB8ICAyICstCiBpbmNsdWRlL3VhcGkvbGludXgvbmV0 ZmlsdGVyX2FycC9hcnBfdGFibGVzLmggICAgICB8ICAyICstCiBpbmNsdWRlL3VhcGkvbGludXgv bmV0ZmlsdGVyX2JyaWRnZS9lYnRhYmxlcy5oICAgICB8ICAyICstCiBpbmNsdWRlL3VhcGkvbGlu dXgvbmV0ZmlsdGVyX2lwdjQvaXBfdGFibGVzLmggICAgICB8ICAyICstCiBpbmNsdWRlL3VhcGkv bGludXgvbmV0ZmlsdGVyX2lwdjYvaXA2X3RhYmxlcy5oICAgICB8ICAyICstCiBpbmNsdWRlL3Zp ZGVvL25ld3BvcnQuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEyICsrKy0tLS0KIGxp Yi96c3RkL21lbS5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0K IG5ldC9hcHBsZXRhbGsvYXRhbGtfcHJvYy5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQg Ky0tCiBuZXQvYXBwbGV0YWxrL2RkcC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAyICstCiBuZXQvY29yZS9uZWlnaGJvdXIuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAyICstCiBuZXQvY29yZS9zY20uYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAyICstCiBuZXQvZGVjbmV0L2RuX25zcF9pbi5jICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAyICstCiBuZXQvZGVjbmV0L2RuX25zcF9vdXQuYyAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAyICstCiBuZXQvZGVjbmV0L2RuX3JvdXRlLmMgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAyICstCiBuZXQvZGVjbmV0L2RuX3RhYmxlLmMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICA0ICstLQogbmV0L2lwdjQvaWdtcC5jICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogbmV0L2lwdjYvYWZfaW5ldDYuYyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogbmV0L2lwdjYvaWNtcC5jICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArLS0KIG5ldC9pcHY2L3VkcC5jICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQgKy0tCiBuZXQvbGFwYi9sYXBiX2lm YWNlLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICstLQogbmV0L2xsYy9sbGNf aW5wdXQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogc2NyaXB0cy9j aGVja3BhdGNoLnBsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgOCArKy0tLQogc2Ny aXB0cy9nZW5rc3ltcy9rZXl3b3Jkcy5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArLS0K IHNjcmlwdHMva2VybmVsLWRvYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQg Ky0tCiBzb3VuZC9zcGFyYy9hbWQ3OTMwLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICA2ICsrLS0KIDE2NSBmaWxlcyBjaGFuZ2VkLCA1NDcgaW5zZXJ0aW9ucygrKSwgNTQ3IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vdHJhY2UvdHJhY2Vwb2ludC1hbmFs eXNpcy5yc3QgYi9Eb2N1bWVudGF0aW9uL3RyYWNlL3RyYWNlcG9pbnQtYW5hbHlzaXMucnN0Cmlu ZGV4IDcxNjMyNmI5ZjE1Mi4uZWRkNzM1YTliYTJkIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9u L3RyYWNlL3RyYWNlcG9pbnQtYW5hbHlzaXMucnN0CisrKyBiL0RvY3VtZW50YXRpb24vdHJhY2Uv dHJhY2Vwb2ludC1hbmFseXNpcy5yc3QKQEAgLTMxNSw3ICszMTUsNyBAQCBUbyBzZWUgd2hlcmUg d2l0aGluIHRoZSBmdW5jdGlvbiBwaXhtYW5GaWxsc3NlMiB0aGluZ3MgYXJlIGdvaW5nIHdyb25n OgogICAgIDAuMDAgOiAgICAgICAgIDM0ZWViOiAgICAgICAwZiAxOCAwOCAgICAgICAgICAgICAg ICBwcmVmZXRjaHQwICglZWF4KQogICAgICAgICAgOiAgICAgIH0KICAgICAgICAgIDoKLSAgICAg ICAgIDogICAgICBleHRlcm4gX19pbmxpbmUgdm9pZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp bmVfXywgX19hbHdheXNfaW5saW5lX18sIF8KKyAgICAgICAgIDogICAgICBleHRlcm4gaW5saW5l IHZvaWQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBf CiAgICAgICAgICA6ICAgICAgX21tX3N0b3JlX3NpMTI4IChfX20xMjhpICpfX1AsIF9fbTEyOGkg X19CKSA6ICAgICAgewogICAgICAgICAgOiAgICAgICAgKl9fUCA9IF9fQjsKICAgIDEyLjQwIDog ICAgICAgICAzNGVlZTogICAgICAgNjYgMGYgN2YgODAgNDAgZmYgZmYgICAgbW92ZHFhICV4bW0w LC0weGMwKCVlYXgpCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3RyYW5zbGF0aW9ucy9qYV9K UC9TdWJtaXR0aW5nUGF0Y2hlcyBiL0RvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL2phX0pQL1N1 Ym1pdHRpbmdQYXRjaGVzCmluZGV4IDAyMTM5NjU2NDYzZS4uMTg4ODQ2ZjExODRiIDEwMDY0NAot LS0gYS9Eb2N1bWVudGF0aW9uL3RyYW5zbGF0aW9ucy9qYV9KUC9TdWJtaXR0aW5nUGF0Y2hlcwor KysgYi9Eb2N1bWVudGF0aW9uL3RyYW5zbGF0aW9ucy9qYV9KUC9TdWJtaXR0aW5nUGF0Y2hlcwpA QCAtNjc2LDggKzY3Niw4IEBAIGdjYyDjgavjgYrjgYTjgabjga/jgIHjg57jgq/jg63jgajlkIzj gZjjgY/jgonjgYTou73jgYTjgafjgZnjgIIKIOOBhOOBj+OBpOOBi+OBrueJueWumuOBruOCseOD vOOCuSnjgoTjgIwgc3RhdGljIGlubGluZSDjgI3plqLmlbDjgpLkvb/jgYbjgZPjgajjgYzjgafj gY3jgarjgYTjgojjgYbjgaoKIOWgtOaJgCjjg57jgq/jg63jga7lvJXmlbDjga7mloflrZfliJfp gKPntZDjga7jgojjgYbjgaop44Gr44Gg44GR5L2/44KP44KM44KL44G544GN44Gn44GZ44CCCiAK LeOAjCBzdGF0aWMgaW5saW5lIOOAjeOBr+OAjCBzdGF0aWMgX19pbmxpbmVfXyDjgI3jgoTjgIwg ZXh0ZXJuIGlubGluZSDjgI3jgoQKLeOAjCBleHRlcm4gX19pbmxpbmVfXyDjgI3jgojjgorjgoLp ganliIfjgafjgZnjgIIKK+OAjCBzdGF0aWMgaW5saW5lIOOAjeOBr+OAjCBzdGF0aWMgaW5saW5l IOOAjeOChOOAjCBleHRlcm4gaW5saW5lIOOAjeOChAor44CMIGV4dGVybiBpbmxpbmUg44CN44KI 44KK44KC6YGp5YiH44Gn44GZ44CCCiAKIDQpIOioreioiOOBq+WHneOCiuOBmeOBjuOCi+OBqgog CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3RyYW5zbGF0aW9ucy96aF9DTi9TdWJtaXR0aW5n UGF0Y2hlcyBiL0RvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL3poX0NOL1N1Ym1pdHRpbmdQYXRj aGVzCmluZGV4IGU5MDk4ZGE4ZjFhNC4uNWMzOWI2YzQ4N2I1IDEwMDY0NAotLS0gYS9Eb2N1bWVu dGF0aW9uL3RyYW5zbGF0aW9ucy96aF9DTi9TdWJtaXR0aW5nUGF0Y2hlcworKysgYi9Eb2N1bWVu dGF0aW9uL3RyYW5zbGF0aW9ucy96aF9DTi9TdWJtaXR0aW5nUGF0Y2hlcwpAQCAtMzc3LDggKzM3 Nyw4IEBAIFN0YXRpYyBpbmxpbmUg5Ye95pWw55u45q+U5a6P5p2l6K+077yM5piv5aW95b6X5aSa 55qE6YCJ5oup44CCU3RhdGljIGlubGluZSDlh70KIAog5a6P5Y+q5ZyoIHN0YXRpYyBpbmxpbmUg 5Ye95pWw5LiN5piv5pyA5LyY55qE5pe25YCZW+WcqCBmYXN0IHBhdGhzIOmHjOacieW+iOWwkeea hOeLrOeri+eahAog5qGI5L6LXe+8jOaIluiAheS4jeWPr+iDveeUqCBzdGF0aWMgaW5saW5lIOWH veaVsOeahOaXtuWAmVvkvovlpoLlrZfnrKbkuLLliIbphY1d44CCCi3lupTor6XnlKggJ3N0YXRp YyBpbmxpbmUnIOiAjOS4jeaYryAnc3RhdGljIF9faW5saW5lX18nLCAnZXh0ZXJuIGlubGluZScg 5ZKMCi0nZXh0ZXJuIF9faW5saW5lX18nIOOAggor5bqU6K+l55SoICdzdGF0aWMgaW5saW5lJyDo gIzkuI3mmK8gJ3N0YXRpYyBpbmxpbmUnLCAnZXh0ZXJuIGlubGluZScg5ZKMCisnZXh0ZXJuIGlu bGluZScg44CCCiAKIDQpIOS4jeimgei/h+W6puiuvuiuoQogCmRpZmYgLS1naXQgYS9hcmNoL2Fs cGhhL2luY2x1ZGUvYXNtL2F0b21pYy5oIGIvYXJjaC9hbHBoYS9pbmNsdWRlL2FzbS9hdG9taWMu aAppbmRleCAxNTBhMWM1ZDZhMmMuLmY4ZDQ5NGJjZDcyYyAxMDA2NDQKLS0tIGEvYXJjaC9hbHBo YS9pbmNsdWRlL2FzbS9hdG9taWMuaAorKysgYi9hcmNoL2FscGhhL2luY2x1ZGUvYXNtL2F0b21p Yy5oCkBAIC00MCw3ICs0MCw3IEBACiAgKi8KIAogI2RlZmluZSBBVE9NSUNfT1Aob3AsIGFzbV9v cCkJCQkJCQlcCi1zdGF0aWMgX19pbmxpbmVfXyB2b2lkIGF0b21pY18jI29wKGludCBpLCBhdG9t aWNfdCAqIHYpCQkJXAorc3RhdGljIGlubGluZSB2b2lkIGF0b21pY18jI29wKGludCBpLCBhdG9t aWNfdCAqIHYpCQkJXAogewkJCQkJCQkJCVwKIAl1bnNpZ25lZCBsb25nIHRlbXA7CQkJCQkJXAog CV9fYXNtX18gX192b2xhdGlsZV9fKAkJCQkJCVwKQEAgLTkzLDcgKzkzLDcgQEAgc3RhdGljIGlu bGluZSBpbnQgYXRvbWljX2ZldGNoXyMjb3AjI19yZWxheGVkKGludCBpLCBhdG9taWNfdCAqdikJ XAogfQogCiAjZGVmaW5lIEFUT01JQzY0X09QKG9wLCBhc21fb3ApCQkJCQkJXAotc3RhdGljIF9f aW5saW5lX18gdm9pZCBhdG9taWM2NF8jI29wKGxvbmcgaSwgYXRvbWljNjRfdCAqIHYpCQlcCitz dGF0aWMgaW5saW5lIHZvaWQgYXRvbWljNjRfIyNvcChsb25nIGksIGF0b21pYzY0X3QgKiB2KQkJ XAogewkJCQkJCQkJCVwKIAl1bnNpZ25lZCBsb25nIHRlbXA7CQkJCQkJXAogCV9fYXNtX18gX192 b2xhdGlsZV9fKAkJCQkJCVwKQEAgLTEwOSw3ICsxMDksNyBAQCBzdGF0aWMgX19pbmxpbmVfXyB2 b2lkIGF0b21pYzY0XyMjb3AobG9uZyBpLCBhdG9taWM2NF90ICogdikJCVwKIH0JCQkJCQkJCQlc CiAKICNkZWZpbmUgQVRPTUlDNjRfT1BfUkVUVVJOKG9wLCBhc21fb3ApCQkJCQlcCi1zdGF0aWMg X19pbmxpbmVfXyBsb25nIGF0b21pYzY0XyMjb3AjI19yZXR1cm5fcmVsYXhlZChsb25nIGksIGF0 b21pYzY0X3QgKiB2KQlcCitzdGF0aWMgaW5saW5lIGxvbmcgYXRvbWljNjRfIyNvcCMjX3JldHVy bl9yZWxheGVkKGxvbmcgaSwgYXRvbWljNjRfdCAqIHYpCVwKIHsJCQkJCQkJCQlcCiAJbG9uZyB0 ZW1wLCByZXN1bHQ7CQkJCQkJXAogCV9fYXNtX18gX192b2xhdGlsZV9fKAkJCQkJCVwKQEAgLTEy OCw3ICsxMjgsNyBAQCBzdGF0aWMgX19pbmxpbmVfXyBsb25nIGF0b21pYzY0XyMjb3AjI19yZXR1 cm5fcmVsYXhlZChsb25nIGksIGF0b21pYzY0X3QgKiB2KQlcCiB9CiAKICNkZWZpbmUgQVRPTUlD NjRfRkVUQ0hfT1Aob3AsIGFzbV9vcCkJCQkJCVwKLXN0YXRpYyBfX2lubGluZV9fIGxvbmcgYXRv bWljNjRfZmV0Y2hfIyNvcCMjX3JlbGF4ZWQobG9uZyBpLCBhdG9taWM2NF90ICogdikJXAorc3Rh dGljIGlubGluZSBsb25nIGF0b21pYzY0X2ZldGNoXyMjb3AjI19yZWxheGVkKGxvbmcgaSwgYXRv bWljNjRfdCAqIHYpCVwKIHsJCQkJCQkJCQlcCiAJbG9uZyB0ZW1wLCByZXN1bHQ7CQkJCQkJXAog CV9fYXNtX18gX192b2xhdGlsZV9fKAkJCQkJCVwKQEAgLTIxNCw3ICsyMTQsNyBAQCBBVE9NSUNf T1BTKHhvciwgeG9yKQogICogQXRvbWljYWxseSBhZGRzIEBhIHRvIEB2LCBzbyBsb25nIGFzIGl0 IHdhcyBub3QgQHUuCiAgKiBSZXR1cm5zIHRoZSBvbGQgdmFsdWUgb2YgQHYuCiAgKi8KLXN0YXRp YyBfX2lubGluZV9fIGludCBhdG9taWNfZmV0Y2hfYWRkX3VubGVzcyhhdG9taWNfdCAqdiwgaW50 IGEsIGludCB1KQorc3RhdGljIGlubGluZSBpbnQgYXRvbWljX2ZldGNoX2FkZF91bmxlc3MoYXRv bWljX3QgKnYsIGludCBhLCBpbnQgdSkKIHsKIAlpbnQgYywgbmV3LCBvbGQ7CiAJc21wX21iKCk7 CkBAIC0yNDYsNyArMjQ2LDcgQEAgc3RhdGljIF9faW5saW5lX18gaW50IGF0b21pY19mZXRjaF9h ZGRfdW5sZXNzKGF0b21pY190ICp2LCBpbnQgYSwgaW50IHUpCiAgKiBBdG9taWNhbGx5IGFkZHMg QGEgdG8gQHYsIHNvIGxvbmcgYXMgaXQgd2FzIG5vdCBAdS4KICAqIFJldHVybnMgdGhlIG9sZCB2 YWx1ZSBvZiBAdi4KICAqLwotc3RhdGljIF9faW5saW5lX18gbG9uZyBhdG9taWM2NF9mZXRjaF9h ZGRfdW5sZXNzKGF0b21pYzY0X3QgKnYsIGxvbmcgYSwgbG9uZyB1KQorc3RhdGljIGlubGluZSBs b25nIGF0b21pYzY0X2ZldGNoX2FkZF91bmxlc3MoYXRvbWljNjRfdCAqdiwgbG9uZyBhLCBsb25n IHUpCiB7CiAJbG9uZyBjLCBuZXcsIG9sZDsKIAlzbXBfbWIoKTsKZGlmZiAtLWdpdCBhL2FyY2gv YWxwaGEvaW5jbHVkZS9hc20vYml0b3BzLmggYi9hcmNoL2FscGhhL2luY2x1ZGUvYXNtL2JpdG9w cy5oCmluZGV4IGNhNDNmNGQwYjkzNy4uNGQwOGJkODI0M2MwIDEwMDY0NAotLS0gYS9hcmNoL2Fs cGhhL2luY2x1ZGUvYXNtL2JpdG9wcy5oCisrKyBiL2FyY2gvYWxwaGEvaW5jbHVkZS9hc20vYml0 b3BzLmgKQEAgLTgyLDcgKzgyLDcgQEAgY2xlYXJfYml0X3VubG9jayh1bnNpZ25lZCBsb25nIG5y LCB2b2xhdGlsZSB2b2lkICogYWRkcikKIC8qCiAgKiBXQVJOSU5HOiBub24gYXRvbWljIHZlcnNp b24uCiAgKi8KLXN0YXRpYyBfX2lubGluZV9fIHZvaWQKK3N0YXRpYyBpbmxpbmUgdm9pZAogX19j bGVhcl9iaXQodW5zaWduZWQgbG9uZyBuciwgdm9sYXRpbGUgdm9pZCAqIGFkZHIpCiB7CiAJaW50 ICptID0gKChpbnQgKikgYWRkcikgKyAobnIgPj4gNSk7CkBAIC0xMTgsNyArMTE4LDcgQEAgY2hh bmdlX2JpdCh1bnNpZ25lZCBsb25nIG5yLCB2b2xhdGlsZSB2b2lkICogYWRkcikKIC8qCiAgKiBX QVJOSU5HOiBub24gYXRvbWljIHZlcnNpb24uCiAgKi8KLXN0YXRpYyBfX2lubGluZV9fIHZvaWQK K3N0YXRpYyBpbmxpbmUgdm9pZAogX19jaGFuZ2VfYml0KHVuc2lnbmVkIGxvbmcgbnIsIHZvbGF0 aWxlIHZvaWQgKiBhZGRyKQogewogCWludCAqbSA9ICgoaW50ICopIGFkZHIpICsgKG5yID4+IDUp OwpAQCAtMjcyLDcgKzI3Miw3IEBAIHRlc3RfYW5kX2NoYW5nZV9iaXQodW5zaWduZWQgbG9uZyBu ciwgdm9sYXRpbGUgdm9pZCAqIGFkZHIpCiAvKgogICogV0FSTklORzogbm9uIGF0b21pYyB2ZXJz aW9uLgogICovCi1zdGF0aWMgX19pbmxpbmVfXyBpbnQKK3N0YXRpYyBpbmxpbmUgaW50CiBfX3Rl c3RfYW5kX2NoYW5nZV9iaXQodW5zaWduZWQgbG9uZyBuciwgdm9sYXRpbGUgdm9pZCAqIGFkZHIp CiB7CiAJdW5zaWduZWQgbG9uZyBtYXNrID0gMSA8PCAobnIgJiAweDFmKTsKZGlmZiAtLWdpdCBh L2FyY2gvYWxwaGEvaW5jbHVkZS9hc20vY29tcGlsZXIuaCBiL2FyY2gvYWxwaGEvaW5jbHVkZS9h c20vY29tcGlsZXIuaAppbmRleCA1MTU5YmEyNTlkNjUuLjExMTc2ZGMxODJmOCAxMDA2NDQKLS0t IGEvYXJjaC9hbHBoYS9pbmNsdWRlL2FzbS9jb21waWxlci5oCisrKyBiL2FyY2gvYWxwaGEvaW5j bHVkZS9hc20vY29tcGlsZXIuaApAQCAtMTAsOCArMTAsOCBAQAogCiAjaW5jbHVkZSA8bGludXgv Y29tcGlsZXIuaD4KICN1bmRlZiBpbmxpbmUKLSN1bmRlZiBfX2lubGluZV9fCi0jdW5kZWYgX19p bmxpbmUKKyN1bmRlZiBpbmxpbmUKKyN1bmRlZiBpbmxpbmUKICN1bmRlZiBfX2Fsd2F5c19pbmxp bmUKICNkZWZpbmUgX19hbHdheXNfaW5saW5lCQlpbmxpbmUgX19hdHRyaWJ1dGVfXygoYWx3YXlz X2lubGluZSkpCiAKZGlmZiAtLWdpdCBhL2FyY2gvYWxwaGEvaW5jbHVkZS9hc20vZG1hLmggYi9h cmNoL2FscGhhL2luY2x1ZGUvYXNtL2RtYS5oCmluZGV4IDI4NjEwZWE3Nzg2ZC4uNzNiZjQxNTRi NmE1IDEwMDY0NAotLS0gYS9hcmNoL2FscGhhL2luY2x1ZGUvYXNtL2RtYS5oCisrKyBiL2FyY2gv YWxwaGEvaW5jbHVkZS9hc20vZG1hLmgKQEAgLTE5OCwyMCArMTk4LDIwIEBACiAKIGV4dGVybiBz cGlubG9ja190ICBkbWFfc3Bpbl9sb2NrOwogCi1zdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBs b25nIGNsYWltX2RtYV9sb2NrKHZvaWQpCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgY2xh aW1fZG1hX2xvY2sodm9pZCkKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCXNwaW5fbG9ja19p cnFzYXZlKCZkbWFfc3Bpbl9sb2NrLCBmbGFncyk7CiAJcmV0dXJuIGZsYWdzOwogfQogCi1zdGF0 aWMgX19pbmxpbmVfXyB2b2lkIHJlbGVhc2VfZG1hX2xvY2sodW5zaWduZWQgbG9uZyBmbGFncykK K3N0YXRpYyBpbmxpbmUgdm9pZCByZWxlYXNlX2RtYV9sb2NrKHVuc2lnbmVkIGxvbmcgZmxhZ3Mp CiB7CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZG1hX3NwaW5fbG9jaywgZmxhZ3MpOwogfQog CiAvKiBlbmFibGUvZGlzYWJsZSBhIHNwZWNpZmljIERNQSBjaGFubmVsICovCi1zdGF0aWMgX19p bmxpbmVfXyB2b2lkIGVuYWJsZV9kbWEodW5zaWduZWQgaW50IGRtYW5yKQorc3RhdGljIGlubGlu ZSB2b2lkIGVuYWJsZV9kbWEodW5zaWduZWQgaW50IGRtYW5yKQogewogCWlmIChkbWFucjw9MykK IAkJZG1hX291dGIoZG1hbnIsICBETUExX01BU0tfUkVHKTsKQEAgLTIxOSw3ICsyMTksNyBAQCBz dGF0aWMgX19pbmxpbmVfXyB2b2lkIGVuYWJsZV9kbWEodW5zaWduZWQgaW50IGRtYW5yKQogCQlk bWFfb3V0YihkbWFuciAmIDMsICBETUEyX01BU0tfUkVHKTsKIH0KIAotc3RhdGljIF9faW5saW5l X18gdm9pZCBkaXNhYmxlX2RtYSh1bnNpZ25lZCBpbnQgZG1hbnIpCitzdGF0aWMgaW5saW5lIHZv aWQgZGlzYWJsZV9kbWEodW5zaWduZWQgaW50IGRtYW5yKQogewogCWlmIChkbWFucjw9MykKIAkJ ZG1hX291dGIoZG1hbnIgfCA0LCAgRE1BMV9NQVNLX1JFRyk7CkBAIC0yMzQsNyArMjM0LDcgQEAg c3RhdGljIF9faW5saW5lX18gdm9pZCBkaXNhYmxlX2RtYSh1bnNpZ25lZCBpbnQgZG1hbnIpCiAg KiAtLS0gSW4gb3JkZXIgdG8gZG8gdGhhdCwgdGhlIERNQSByb3V0aW5lcyBiZWxvdyBzaG91bGQg LS0tCiAgKiAtLS0gb25seSBiZSB1c2VkIHdoaWxlIGludGVycnVwdHMgYXJlIGRpc2FibGVkISAt LS0KICAqLwotc3RhdGljIF9faW5saW5lX18gdm9pZCBjbGVhcl9kbWFfZmYodW5zaWduZWQgaW50 IGRtYW5yKQorc3RhdGljIGlubGluZSB2b2lkIGNsZWFyX2RtYV9mZih1bnNpZ25lZCBpbnQgZG1h bnIpCiB7CiAJaWYgKGRtYW5yPD0zKQogCQlkbWFfb3V0YigwLCAgRE1BMV9DTEVBUl9GRl9SRUcp OwpAQCAtMjQzLDcgKzI0Myw3IEBAIHN0YXRpYyBfX2lubGluZV9fIHZvaWQgY2xlYXJfZG1hX2Zm KHVuc2lnbmVkIGludCBkbWFucikKIH0KIAogLyogc2V0IG1vZGUgKGFib3ZlKSBmb3IgYSBzcGVj aWZpYyBETUEgY2hhbm5lbCAqLwotc3RhdGljIF9faW5saW5lX18gdm9pZCBzZXRfZG1hX21vZGUo dW5zaWduZWQgaW50IGRtYW5yLCBjaGFyIG1vZGUpCitzdGF0aWMgaW5saW5lIHZvaWQgc2V0X2Rt YV9tb2RlKHVuc2lnbmVkIGludCBkbWFuciwgY2hhciBtb2RlKQogewogCWlmIChkbWFucjw9MykK IAkJZG1hX291dGIobW9kZSB8IGRtYW5yLCAgRE1BMV9NT0RFX1JFRyk7CkBAIC0yNTIsNyArMjUy LDcgQEAgc3RhdGljIF9faW5saW5lX18gdm9pZCBzZXRfZG1hX21vZGUodW5zaWduZWQgaW50IGRt YW5yLCBjaGFyIG1vZGUpCiB9CiAKIC8qIHNldCBleHRlbmRlZCBtb2RlIGZvciBhIHNwZWNpZmlj IERNQSBjaGFubmVsICovCi1zdGF0aWMgX19pbmxpbmVfXyB2b2lkIHNldF9kbWFfZXh0X21vZGUo dW5zaWduZWQgaW50IGRtYW5yLCBjaGFyIGV4dF9tb2RlKQorc3RhdGljIGlubGluZSB2b2lkIHNl dF9kbWFfZXh0X21vZGUodW5zaWduZWQgaW50IGRtYW5yLCBjaGFyIGV4dF9tb2RlKQogewogCWlm IChkbWFucjw9MykKIAkJZG1hX291dGIoZXh0X21vZGUgfCBkbWFuciwgIERNQTFfRVhUX01PREVf UkVHKTsKQEAgLTI2NCw3ICsyNjQsNyBAQCBzdGF0aWMgX19pbmxpbmVfXyB2b2lkIHNldF9kbWFf ZXh0X21vZGUodW5zaWduZWQgaW50IGRtYW5yLCBjaGFyIGV4dF9tb2RlKQogICogVGhpcyBpcyB1 c2VkIGZvciBzdWNjZXNzaXZlIHRyYW5zZmVycyB3aGVuIHdlIGtub3cgdGhlIGNvbnRlbnRzIG9m CiAgKiB0aGUgbG93ZXIgMTYgYml0cyBvZiB0aGUgRE1BIGN1cnJlbnQgYWRkcmVzcyByZWdpc3Rl ci4KICAqLwotc3RhdGljIF9faW5saW5lX18gdm9pZCBzZXRfZG1hX3BhZ2UodW5zaWduZWQgaW50 IGRtYW5yLCB1bnNpZ25lZCBpbnQgcGFnZW5yKQorc3RhdGljIGlubGluZSB2b2lkIHNldF9kbWFf cGFnZSh1bnNpZ25lZCBpbnQgZG1hbnIsIHVuc2lnbmVkIGludCBwYWdlbnIpCiB7CiAJc3dpdGNo KGRtYW5yKSB7CiAJCWNhc2UgMDoKQEAgLTMwMiw3ICszMDIsNyBAQCBzdGF0aWMgX19pbmxpbmVf XyB2b2lkIHNldF9kbWFfcGFnZSh1bnNpZ25lZCBpbnQgZG1hbnIsIHVuc2lnbmVkIGludCBwYWdl bnIpCiAvKiBTZXQgdHJhbnNmZXIgYWRkcmVzcyAmIHBhZ2UgYml0cyBmb3Igc3BlY2lmaWMgRE1B IGNoYW5uZWwuCiAgKiBBc3N1bWVzIGRtYSBmbGlwZmxvcCBpcyBjbGVhci4KICAqLwotc3RhdGlj IF9faW5saW5lX18gdm9pZCBzZXRfZG1hX2FkZHIodW5zaWduZWQgaW50IGRtYW5yLCB1bnNpZ25l ZCBpbnQgYSkKK3N0YXRpYyBpbmxpbmUgdm9pZCBzZXRfZG1hX2FkZHIodW5zaWduZWQgaW50IGRt YW5yLCB1bnNpZ25lZCBpbnQgYSkKIHsKIAlpZiAoZG1hbnIgPD0gMykgIHsKIAkgICAgZG1hX291 dGIoIGEgJiAweGZmLCAoKGRtYW5yJjMpPDwxKSArIElPX0RNQTFfQkFTRSApOwpAQCAtMzIzLDcg KzMyMyw3IEBAIHN0YXRpYyBfX2lubGluZV9fIHZvaWQgc2V0X2RtYV9hZGRyKHVuc2lnbmVkIGlu dCBkbWFuciwgdW5zaWduZWQgaW50IGEpCiAgKiBBc3N1bWVzIGRtYSBmbGlwLWZsb3AgaXMgY2xl YXIuCiAgKiBOT1RFIDI6ICJjb3VudCIgcmVwcmVzZW50cyBfYnl0ZXNfIGFuZCBtdXN0IGJlIGV2 ZW4gZm9yIGNoYW5uZWxzIDUtNy4KICAqLwotc3RhdGljIF9faW5saW5lX18gdm9pZCBzZXRfZG1h X2NvdW50KHVuc2lnbmVkIGludCBkbWFuciwgdW5zaWduZWQgaW50IGNvdW50KQorc3RhdGljIGlu bGluZSB2b2lkIHNldF9kbWFfY291bnQodW5zaWduZWQgaW50IGRtYW5yLCB1bnNpZ25lZCBpbnQg Y291bnQpCiB7CiAgICAgICAgIGNvdW50LS07CiAJaWYgKGRtYW5yIDw9IDMpICB7CkBAIC0zNDQs NyArMzQ0LDcgQEAgc3RhdGljIF9faW5saW5lX18gdm9pZCBzZXRfZG1hX2NvdW50KHVuc2lnbmVk IGludCBkbWFuciwgdW5zaWduZWQgaW50IGNvdW50KQogICoKICAqIEFzc3VtZXMgRE1BIGZsaXAt ZmxvcCBpcyBjbGVhci4KICAqLwotc3RhdGljIF9faW5saW5lX18gaW50IGdldF9kbWFfcmVzaWR1 ZSh1bnNpZ25lZCBpbnQgZG1hbnIpCitzdGF0aWMgaW5saW5lIGludCBnZXRfZG1hX3Jlc2lkdWUo dW5zaWduZWQgaW50IGRtYW5yKQogewogCXVuc2lnbmVkIGludCBpb19wb3J0ID0gKGRtYW5yPD0z KT8gKChkbWFuciYzKTw8MSkgKyAxICsgSU9fRE1BMV9CQVNFCiAJCQkJCSA6ICgoZG1hbnImMyk8 PDIpICsgMiArIElPX0RNQTJfQkFTRTsKZGlmZiAtLWdpdCBhL2FyY2gvYWxwaGEvaW5jbHVkZS9h c20vZmxvcHB5LmggYi9hcmNoL2FscGhhL2luY2x1ZGUvYXNtL2Zsb3BweS5oCmluZGV4IDk0Mjky NDc1NmNmMi4uMzc5NDdjMmE4MzM2IDEwMDY0NAotLS0gYS9hcmNoL2FscGhhL2luY2x1ZGUvYXNt L2Zsb3BweS5oCisrKyBiL2FyY2gvYWxwaGEvaW5jbHVkZS9hc20vZmxvcHB5LmgKQEAgLTM0LDcg KzM0LDcgQEAKIAogI2RlZmluZSBmZF9kbWFfc2V0dXAoYWRkcixzaXplLG1vZGUsaW8pIGFscGhh X2ZkX2RtYV9zZXR1cChhZGRyLHNpemUsbW9kZSxpbykKIAotc3RhdGljIF9faW5saW5lX18gaW50 IAorc3RhdGljIGlubGluZSBpbnQgCiBhbHBoYV9mZF9kbWFfc2V0dXAoY2hhciAqYWRkciwgdW5z aWduZWQgbG9uZyBzaXplLCBpbnQgbW9kZSwgaW50IGlvKQogewogCXN0YXRpYyB1bnNpZ25lZCBs b25nIHByZXZfc2l6ZTsKQEAgLTcyLDcgKzcyLDcgQEAgYWxwaGFfZmRfZG1hX3NldHVwKGNoYXIg KmFkZHIsIHVuc2lnbmVkIGxvbmcgc2l6ZSwgaW50IG1vZGUsIGludCBpbykKIAogI2VuZGlmIC8q IENPTkZJR19QQ0kgKi8KIAotX19pbmxpbmVfXyB2b2lkIHZpcnR1YWxfZG1hX2luaXQodm9pZCkK K2lubGluZSB2b2lkIHZpcnR1YWxfZG1hX2luaXQodm9pZCkKIHsKIAkvKiBOb3RoaW5nIHRvIGRv IG9uIGFuIEFscGhhICovCiB9CmRpZmYgLS1naXQgYS9hcmNoL2FscGhhL2luY2x1ZGUvYXNtL2ly cS5oIGIvYXJjaC9hbHBoYS9pbmNsdWRlL2FzbS9pcnEuaAppbmRleCA0ZDE3Y2FjZDE0NjIuLmJm YWQ4NTk4ZTk3MiAxMDA2NDQKLS0tIGEvYXJjaC9hbHBoYS9pbmNsdWRlL2FzbS9pcnEuaAorKysg Yi9hcmNoL2FscGhhL2luY2x1ZGUvYXNtL2lycS5oCkBAIC03Nyw3ICs3Nyw3IEBACiAjIGRlZmlu ZSBOUl9JUlFTCTE2CiAjZW5kaWYKIAotc3RhdGljIF9faW5saW5lX18gaW50IGlycV9jYW5vbmlj YWxpemUoaW50IGlycSkKK3N0YXRpYyBpbmxpbmUgaW50IGlycV9jYW5vbmljYWxpemUoaW50IGly cSkKIHsKIAkvKgogCSAqIFhYWCBpcyB0aGlzIHRydWUgZm9yIGFsbCBBbHBoYSdzPyAgVGhlIG9s ZCBzZXJpYWwgZHJpdmVyCmRpZmYgLS1naXQgYS9hcmNoL2FscGhhL2luY2x1ZGUvYXNtL2xvY2Fs LmggYi9hcmNoL2FscGhhL2luY2x1ZGUvYXNtL2xvY2FsLmgKaW5kZXggZmFiMjZhMWM5M2Q1Li5i MTM2MTVlZTU0MzEgMTAwNjQ0Ci0tLSBhL2FyY2gvYWxwaGEvaW5jbHVkZS9hc20vbG9jYWwuaAor KysgYi9hcmNoL2FscGhhL2luY2x1ZGUvYXNtL2xvY2FsLmgKQEAgLTE4LDcgKzE4LDcgQEAgdHlw ZWRlZiBzdHJ1Y3QKICNkZWZpbmUgbG9jYWxfYWRkKGksbCkJYXRvbWljX2xvbmdfYWRkKChpKSwo JihsKS0+YSkpCiAjZGVmaW5lIGxvY2FsX3N1YihpLGwpCWF0b21pY19sb25nX3N1YigoaSksKCYo bCktPmEpKQogCi1zdGF0aWMgX19pbmxpbmVfXyBsb25nIGxvY2FsX2FkZF9yZXR1cm4obG9uZyBp LCBsb2NhbF90ICogbCkKK3N0YXRpYyBpbmxpbmUgbG9uZyBsb2NhbF9hZGRfcmV0dXJuKGxvbmcg aSwgbG9jYWxfdCAqIGwpCiB7CiAJbG9uZyB0ZW1wLCByZXN1bHQ7CiAJX19hc21fXyBfX3ZvbGF0 aWxlX18oCkBAIC0zNSw3ICszNSw3IEBAIHN0YXRpYyBfX2lubGluZV9fIGxvbmcgbG9jYWxfYWRk X3JldHVybihsb25nIGksIGxvY2FsX3QgKiBsKQogCXJldHVybiByZXN1bHQ7CiB9CiAKLXN0YXRp YyBfX2lubGluZV9fIGxvbmcgbG9jYWxfc3ViX3JldHVybihsb25nIGksIGxvY2FsX3QgKiBsKQor c3RhdGljIGlubGluZSBsb25nIGxvY2FsX3N1Yl9yZXR1cm4obG9uZyBpLCBsb2NhbF90ICogbCkK IHsKIAlsb25nIHRlbXAsIHJlc3VsdDsKIAlfX2FzbV9fIF9fdm9sYXRpbGVfXygKZGlmZiAtLWdp dCBhL2FyY2gvYWxwaGEvaW5jbHVkZS9hc20vc21wLmggYi9hcmNoL2FscGhhL2luY2x1ZGUvYXNt L3NtcC5oCmluZGV4IDIyNjRhZTcyNjczYi4uZjVlNDlhY2Y2MGE0IDEwMDY0NAotLS0gYS9hcmNo L2FscGhhL2luY2x1ZGUvYXNtL3NtcC5oCisrKyBiL2FyY2gvYWxwaGEvaW5jbHVkZS9hc20vc21w LmgKQEAgLTksNyArOSw3IEBACiAKIC8qIEhBQ0s6IENhYnJpbyBXSEFNSSByZXR1cm4gdmFsdWUg aXMgYm9ndXMgaWYgbW9yZSB0aGFuIDggYml0cyB1c2VkLi4gOi0oICovCiAKLXN0YXRpYyBfX2lu bGluZV9fIHVuc2lnbmVkIGNoYXIKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgY2hhcgogX19oYXJk X3NtcF9wcm9jZXNzb3JfaWQodm9pZCkKIHsKIAlyZWdpc3RlciB1bnNpZ25lZCBjaGFyIF9fcjAg X19hc21fXygiJDAiKTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtaW9wMzJ4L2luY2x1ZGUv bWFjaC91bmNvbXByZXNzLmggYi9hcmNoL2FybS9tYWNoLWlvcDMyeC9pbmNsdWRlL21hY2gvdW5j b21wcmVzcy5oCmluZGV4IGVkNGFjM2UyOGZhMS4uMjRkMWRkNGVhMjdmIDEwMDY0NAotLS0gYS9h cmNoL2FybS9tYWNoLWlvcDMyeC9pbmNsdWRlL21hY2gvdW5jb21wcmVzcy5oCisrKyBiL2FyY2gv YXJtL21hY2gtaW9wMzJ4L2luY2x1ZGUvbWFjaC91bmNvbXByZXNzLmgKQEAgLTIzLDcgKzIzLDcg QEAgc3RhdGljIGlubGluZSB2b2lkIGZsdXNoKHZvaWQpCiB7CiB9CiAKLXN0YXRpYyBfX2lubGlu ZV9fIHZvaWQgX19hcmNoX2RlY29tcF9zZXR1cCh1bnNpZ25lZCBsb25nIGFyY2hfaWQpCitzdGF0 aWMgaW5saW5lIHZvaWQgX19hcmNoX2RlY29tcF9zZXR1cCh1bnNpZ25lZCBsb25nIGFyY2hfaWQp CiB7CiAJaWYgKG1hY2hpbmVfaXNfaXE4MDMyMSgpKQogCQl1YXJ0X2Jhc2UgPSAodm9sYXRpbGUg dTggKilJUTgwMzIxX1VBUlQ7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWlvcDMzeC9pbmNs dWRlL21hY2gvdW5jb21wcmVzcy5oIGIvYXJjaC9hcm0vbWFjaC1pb3AzM3gvaW5jbHVkZS9tYWNo L3VuY29tcHJlc3MuaAppbmRleCA2MmI3MWNkZTFmNzkuLjlmYzVhMmFhZThkZSAxMDA2NDQKLS0t IGEvYXJjaC9hcm0vbWFjaC1pb3AzM3gvaW5jbHVkZS9tYWNoL3VuY29tcHJlc3MuaAorKysgYi9h cmNoL2FybS9tYWNoLWlvcDMzeC9pbmNsdWRlL21hY2gvdW5jb21wcmVzcy5oCkBAIC0yMyw3ICsy Myw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBmbHVzaCh2b2lkKQogewogfQogCi1zdGF0aWMgX19p bmxpbmVfXyB2b2lkIF9fYXJjaF9kZWNvbXBfc2V0dXAodW5zaWduZWQgbG9uZyBhcmNoX2lkKQor c3RhdGljIGlubGluZSB2b2lkIF9fYXJjaF9kZWNvbXBfc2V0dXAodW5zaWduZWQgbG9uZyBhcmNo X2lkKQogewogCWlmIChtYWNoaW5lX2lzX2lxODAzMzEoKSB8fCBtYWNoaW5lX2lzX2lxODAzMzIo KSkKIAkJdWFydF9iYXNlID0gKHZvbGF0aWxlIHUzMiAqKUlPUDMzWF9VQVJUMF9QSFlTOwpkaWZm IC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1peHA0eHgvaW5jbHVkZS9tYWNoL3VuY29tcHJlc3MuaCBi L2FyY2gvYXJtL21hY2gtaXhwNHh4L2luY2x1ZGUvbWFjaC91bmNvbXByZXNzLmgKaW5kZXggN2Iy NWMwMjI1ZTQ2Li5kOWU2OThmN2Q3ZTEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtaXhwNHh4 L2luY2x1ZGUvbWFjaC91bmNvbXByZXNzLmgKKysrIGIvYXJjaC9hcm0vbWFjaC1peHA0eHgvaW5j bHVkZS9tYWNoL3VuY29tcHJlc3MuaApAQCAtMzUsNyArMzUsNyBAQCBzdGF0aWMgdm9pZCBmbHVz aCh2b2lkKQogewogfQogCi1zdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fYXJjaF9kZWNvbXBfc2V0 dXAodW5zaWduZWQgbG9uZyBhcmNoX2lkKQorc3RhdGljIGlubGluZSB2b2lkIF9fYXJjaF9kZWNv bXBfc2V0dXAodW5zaWduZWQgbG9uZyBhcmNoX2lkKQogewogCS8qCiAJICogU29tZSBib2FyZHMg YXJlIHVzaW5nIFVBUlQyIGFzIGNvbnNvbGUKZGlmZiAtLWdpdCBhL2FyY2gvaWE2NC9ocC9jb21t b24vc2JhX2lvbW11LmMgYi9hcmNoL2lhNjQvaHAvY29tbW9uL3NiYV9pb21tdS5jCmluZGV4IDY3 MWNlMWUzZjZmMi4uZDU5N2Y4MTBiYjg0IDEwMDY0NAotLS0gYS9hcmNoL2lhNjQvaHAvY29tbW9u L3NiYV9pb21tdS5jCisrKyBiL2FyY2gvaWE2NC9ocC9jb21tb24vc2JhX2lvbW11LmMKQEAgLTEw Nyw3ICsxMDcsNyBAQCBleHRlcm4gaW50IHN3aW90bGJfbGF0ZV9pbml0X3dpdGhfZGVmYXVsdF9z aXplIChzaXplX3Qgc2l6ZSk7CiAjZXJyb3IgRlVMTF9WQUxJRF9QRElSIGFuZCBBU1NFUlRfUERJ Ul9TQU5JVFkgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZQogI2VuZGlmCiAKLSNkZWZpbmUgU0JBX0lO TElORQlfX2lubGluZV9fCisjZGVmaW5lIFNCQV9JTkxJTkUJaW5saW5lCiAvKiAjZGVmaW5lIFNC QV9JTkxJTkUgKi8KIAogI2lmZGVmIERFQlVHX1NCQV9JTklUCmRpZmYgLS1naXQgYS9hcmNoL2lh NjQvaHAvc2ltL3NpbWV0aC5jIGIvYXJjaC9pYTY0L2hwL3NpbS9zaW1ldGguYwppbmRleCBmMzll ZjJiNGVkNzIuLmUwNjIwMjgzZGZjNiAxMDA2NDQKLS0tIGEvYXJjaC9pYTY0L2hwL3NpbS9zaW1l dGguYworKysgYi9hcmNoL2lhNjQvaHAvc2ltL3NpbWV0aC5jCkBAIC0yNDYsNyArMjQ2LDcgQEAg c2ltZXRoX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIH0KIAogLyogY29waWVkIGZyb20g bGFwYmV0aGVyLmMgKi8KLXN0YXRpYyBfX2lubGluZV9fIGludCBkZXZfaXNfZXRoZGV2KHN0cnVj dCBuZXRfZGV2aWNlICpkZXYpCitzdGF0aWMgaW5saW5lIGludCBkZXZfaXNfZXRoZGV2KHN0cnVj dCBuZXRfZGV2aWNlICpkZXYpCiB7CiAgICAgICAgcmV0dXJuICggZGV2LT50eXBlID09IEFSUEhS RF9FVEhFUiAmJiBzdHJuY21wKGRldi0+bmFtZSwgImR1bW15IiwgNSkpOwogfQpkaWZmIC0tZ2l0 IGEvYXJjaC9pYTY0L2luY2x1ZGUvYXNtL2F0b21pYy5oIGIvYXJjaC9pYTY0L2luY2x1ZGUvYXNt L2F0b21pYy5oCmluZGV4IDIwNjUzMGQwNzUxYi4uOTQwOGZhOTZlMmRkIDEwMDY0NAotLS0gYS9h cmNoL2lhNjQvaW5jbHVkZS9hc20vYXRvbWljLmgKKysrIGIvYXJjaC9pYTY0L2luY2x1ZGUvYXNt L2F0b21pYy5oCkBAIC0yOSw3ICsyOSw3IEBACiAjZGVmaW5lIGF0b21pYzY0X3NldCh2LGkpCVdS SVRFX09OQ0UoKCh2KS0+Y291bnRlciksIChpKSkKIAogI2RlZmluZSBBVE9NSUNfT1Aob3AsIGNf b3ApCQkJCQkJXAotc3RhdGljIF9faW5saW5lX18gaW50CQkJCQkJCVwKK3N0YXRpYyBpbmxpbmUg aW50CQkJCQkJCVwKIGlhNjRfYXRvbWljXyMjb3AgKGludCBpLCBhdG9taWNfdCAqdikJCQkJCVwK IHsJCQkJCQkJCQlcCiAJX19zMzIgb2xkLCBuZXc7CQkJCQkJCVwKQEAgLTQ0LDcgKzQ0LDcgQEAg aWE2NF9hdG9taWNfIyNvcCAoaW50IGksIGF0b21pY190ICp2KQkJCQkJXAogfQogCiAjZGVmaW5l IEFUT01JQ19GRVRDSF9PUChvcCwgY19vcCkJCQkJCVwKLXN0YXRpYyBfX2lubGluZV9fIGludAkJ CQkJCQlcCitzdGF0aWMgaW5saW5lIGludAkJCQkJCQlcCiBpYTY0X2F0b21pY19mZXRjaF8jI29w IChpbnQgaSwgYXRvbWljX3QgKnYpCQkJCVwKIHsJCQkJCQkJCQlcCiAJX19zMzIgb2xkLCBuZXc7 CQkJCQkJCVwKQEAgLTEyNCw3ICsxMjQsNyBAQCBBVE9NSUNfRkVUQ0hfT1AoeG9yLCBeKQogI3Vu ZGVmIEFUT01JQ19PUAogCiAjZGVmaW5lIEFUT01JQzY0X09QKG9wLCBjX29wKQkJCQkJCVwKLXN0 YXRpYyBfX2lubGluZV9fIGxvbmcJCQkJCQkJXAorc3RhdGljIGlubGluZSBsb25nCQkJCQkJCVwK IGlhNjRfYXRvbWljNjRfIyNvcCAoX19zNjQgaSwgYXRvbWljNjRfdCAqdikJCQkJXAogewkJCQkJ CQkJCVwKIAlfX3M2NCBvbGQsIG5ldzsJCQkJCQkJXApAQCAtMTM5LDcgKzEzOSw3IEBAIGlhNjRf YXRvbWljNjRfIyNvcCAoX19zNjQgaSwgYXRvbWljNjRfdCAqdikJCQkJXAogfQogCiAjZGVmaW5l IEFUT01JQzY0X0ZFVENIX09QKG9wLCBjX29wKQkJCQkJXAotc3RhdGljIF9faW5saW5lX18gbG9u ZwkJCQkJCQlcCitzdGF0aWMgaW5saW5lIGxvbmcJCQkJCQkJXAogaWE2NF9hdG9taWM2NF9mZXRj aF8jI29wIChfX3M2NCBpLCBhdG9taWM2NF90ICp2KQkJCVwKIHsJCQkJCQkJCQlcCiAJX19zNjQg b2xkLCBuZXc7CQkJCQkJCVwKZGlmZiAtLWdpdCBhL2FyY2gvaWE2NC9pbmNsdWRlL2FzbS9iaXRv cHMuaCBiL2FyY2gvaWE2NC9pbmNsdWRlL2FzbS9iaXRvcHMuaAppbmRleCA1NmE3NzRiZjEzZmEu LmQzMjQ5ZDA4MWFiNiAxMDA2NDQKLS0tIGEvYXJjaC9pYTY0L2luY2x1ZGUvYXNtL2JpdG9wcy5o CisrKyBiL2FyY2gvaWE2NC9pbmNsdWRlL2FzbS9iaXRvcHMuaApAQCAtMzYsNyArMzYsNyBAQAog ICoKICAqIGJpdCAwIGlzIHRoZSBMU0Igb2YgYWRkcjsgYml0IDMyIGlzIHRoZSBMU0Igb2YgKGFk ZHIrMSkuCiAgKi8KLXN0YXRpYyBfX2lubGluZV9fIHZvaWQKK3N0YXRpYyBpbmxpbmUgdm9pZAog c2V0X2JpdCAoaW50IG5yLCB2b2xhdGlsZSB2b2lkICphZGRyKQogewogCV9fdTMyIGJpdCwgb2xk LCBuZXc7CkBAIC02MSw3ICs2MSw3IEBAIHNldF9iaXQgKGludCBuciwgdm9sYXRpbGUgdm9pZCAq YWRkcikKICAqIElmIGl0J3MgY2FsbGVkIG9uIHRoZSBzYW1lIHJlZ2lvbiBvZiBtZW1vcnkgc2lt dWx0YW5lb3VzbHksIHRoZSBlZmZlY3QKICAqIG1heSBiZSB0aGF0IG9ubHkgb25lIG9wZXJhdGlv biBzdWNjZWVkcy4KICAqLwotc3RhdGljIF9faW5saW5lX18gdm9pZAorc3RhdGljIGlubGluZSB2 b2lkCiBfX3NldF9iaXQgKGludCBuciwgdm9sYXRpbGUgdm9pZCAqYWRkcikKIHsKIAkqKChfX3Uz MiAqKSBhZGRyICsgKG5yID4+IDUpKSB8PSAoMSA8PCAobnIgJiAzMSkpOwpAQCAtNzcsNyArNzcs NyBAQCBfX3NldF9iaXQgKGludCBuciwgdm9sYXRpbGUgdm9pZCAqYWRkcikKICAqIHlvdSBzaG91 bGQgY2FsbCBzbXBfbWJfX2JlZm9yZV9hdG9taWMoKSBhbmQvb3Igc21wX21iX19hZnRlcl9hdG9t aWMoKQogICogaW4gb3JkZXIgdG8gZW5zdXJlIGNoYW5nZXMgYXJlIHZpc2libGUgb24gb3RoZXIg cHJvY2Vzc29ycy4KICAqLwotc3RhdGljIF9faW5saW5lX18gdm9pZAorc3RhdGljIGlubGluZSB2 b2lkCiBjbGVhcl9iaXQgKGludCBuciwgdm9sYXRpbGUgdm9pZCAqYWRkcikKIHsKIAlfX3UzMiBt YXNrLCBvbGQsIG5ldzsKQEAgLTEwMSw3ICsxMDEsNyBAQCBjbGVhcl9iaXQgKGludCBuciwgdm9s YXRpbGUgdm9pZCAqYWRkcikKICAqIGNsZWFyX2JpdF91bmxvY2soKSBpcyBhdG9taWMgYW5kIG1h eSBub3QgYmUgcmVvcmRlcmVkLiAgSXQgZG9lcwogICogY29udGFpbiBhIG1lbW9yeSBiYXJyaWVy IHN1aXRhYmxlIGZvciB1bmxvY2sgdHlwZSBvcGVyYXRpb25zLgogICovCi1zdGF0aWMgX19pbmxp bmVfXyB2b2lkCitzdGF0aWMgaW5saW5lIHZvaWQKIGNsZWFyX2JpdF91bmxvY2sgKGludCBuciwg dm9sYXRpbGUgdm9pZCAqYWRkcikKIHsKIAlfX3UzMiBtYXNrLCBvbGQsIG5ldzsKQEAgLTEyNSw3 ICsxMjUsNyBAQCBjbGVhcl9iaXRfdW5sb2NrIChpbnQgbnIsIHZvbGF0aWxlIHZvaWQgKmFkZHIp CiAgKiBTaW1pbGFybHkgdG8gY2xlYXJfYml0X3VubG9jaywgdGhlIGltcGxlbWVudGF0aW9uIHVz ZXMgYSBzdG9yZQogICogd2l0aCByZWxlYXNlIHNlbWFudGljcy4gU2VlIGFsc28gYXJjaF9zcGlu X3VubG9jaygpLgogICovCi1zdGF0aWMgX19pbmxpbmVfXyB2b2lkCitzdGF0aWMgaW5saW5lIHZv aWQKIF9fY2xlYXJfYml0X3VubG9jayhpbnQgbnIsIHZvaWQgKmFkZHIpCiB7CiAJX191MzIgKiBj b25zdCBtID0gKF9fdTMyICopIGFkZHIgKyAobnIgPj4gNSk7CkBAIC0xNDMsNyArMTQzLDcgQEAg X19jbGVhcl9iaXRfdW5sb2NrKGludCBuciwgdm9pZCAqYWRkcikKICAqIElmIGl0J3MgY2FsbGVk IG9uIHRoZSBzYW1lIHJlZ2lvbiBvZiBtZW1vcnkgc2ltdWx0YW5lb3VzbHksIHRoZSBlZmZlY3QK ICAqIG1heSBiZSB0aGF0IG9ubHkgb25lIG9wZXJhdGlvbiBzdWNjZWVkcy4KICAqLwotc3RhdGlj IF9faW5saW5lX18gdm9pZAorc3RhdGljIGlubGluZSB2b2lkCiBfX2NsZWFyX2JpdCAoaW50IG5y LCB2b2xhdGlsZSB2b2lkICphZGRyKQogewogCSooKF9fdTMyICopIGFkZHIgKyAobnIgPj4gNSkp ICY9IH4oMSA8PCAobnIgJiAzMSkpOwpAQCAtMTU4LDcgKzE1OCw3IEBAIF9fY2xlYXJfYml0IChp bnQgbnIsIHZvbGF0aWxlIHZvaWQgKmFkZHIpCiAgKiBOb3RlIHRoYXQgQG5yIG1heSBiZSBhbG1v c3QgYXJiaXRyYXJpbHkgbGFyZ2U7IHRoaXMgZnVuY3Rpb24gaXMgbm90CiAgKiByZXN0cmljdGVk IHRvIGFjdGluZyBvbiBhIHNpbmdsZS13b3JkIHF1YW50aXR5LgogICovCi1zdGF0aWMgX19pbmxp bmVfXyB2b2lkCitzdGF0aWMgaW5saW5lIHZvaWQKIGNoYW5nZV9iaXQgKGludCBuciwgdm9sYXRp bGUgdm9pZCAqYWRkcikKIHsKIAlfX3UzMiBiaXQsIG9sZCwgbmV3OwpAQCAtMTgzLDcgKzE4Myw3 IEBAIGNoYW5nZV9iaXQgKGludCBuciwgdm9sYXRpbGUgdm9pZCAqYWRkcikKICAqIElmIGl0J3Mg Y2FsbGVkIG9uIHRoZSBzYW1lIHJlZ2lvbiBvZiBtZW1vcnkgc2ltdWx0YW5lb3VzbHksIHRoZSBl ZmZlY3QKICAqIG1heSBiZSB0aGF0IG9ubHkgb25lIG9wZXJhdGlvbiBzdWNjZWVkcy4KICAqLwot c3RhdGljIF9faW5saW5lX18gdm9pZAorc3RhdGljIGlubGluZSB2b2lkCiBfX2NoYW5nZV9iaXQg KGludCBuciwgdm9sYXRpbGUgdm9pZCAqYWRkcikKIHsKIAkqKChfX3UzMiAqKSBhZGRyICsgKG5y ID4+IDUpKSBePSAoMSA8PCAobnIgJiAzMSkpOwpAQCAtMTk3LDcgKzE5Nyw3IEBAIF9fY2hhbmdl X2JpdCAoaW50IG5yLCB2b2xhdGlsZSB2b2lkICphZGRyKQogICogVGhpcyBvcGVyYXRpb24gaXMg YXRvbWljIGFuZCBjYW5ub3QgYmUgcmVvcmRlcmVkLiAgCiAgKiBJdCBhbHNvIGltcGxpZXMgdGhl IGFjcXVpc2l0aW9uIHNpZGUgb2YgdGhlIG1lbW9yeSBiYXJyaWVyLgogICovCi1zdGF0aWMgX19p bmxpbmVfXyBpbnQKK3N0YXRpYyBpbmxpbmUgaW50CiB0ZXN0X2FuZF9zZXRfYml0IChpbnQgbnIs IHZvbGF0aWxlIHZvaWQgKmFkZHIpCiB7CiAJX191MzIgYml0LCBvbGQsIG5ldzsKQEAgLTIzMiw3 ICsyMzIsNyBAQCB0ZXN0X2FuZF9zZXRfYml0IChpbnQgbnIsIHZvbGF0aWxlIHZvaWQgKmFkZHIp CiAgKiBJZiB0d28gZXhhbXBsZXMgb2YgdGhpcyBvcGVyYXRpb24gcmFjZSwgb25lIGNhbiBhcHBl YXIgdG8gc3VjY2VlZAogICogYnV0IGFjdHVhbGx5IGZhaWwuICBZb3UgbXVzdCBwcm90ZWN0IG11 bHRpcGxlIGFjY2Vzc2VzIHdpdGggYSBsb2NrLgogICovCi1zdGF0aWMgX19pbmxpbmVfXyBpbnQK K3N0YXRpYyBpbmxpbmUgaW50CiBfX3Rlc3RfYW5kX3NldF9iaXQgKGludCBuciwgdm9sYXRpbGUg dm9pZCAqYWRkcikKIHsKIAlfX3UzMiAqcCA9IChfX3UzMiAqKSBhZGRyICsgKG5yID4+IDUpOwpA QCAtMjUxLDcgKzI1MSw3IEBAIF9fdGVzdF9hbmRfc2V0X2JpdCAoaW50IG5yLCB2b2xhdGlsZSB2 b2lkICphZGRyKQogICogVGhpcyBvcGVyYXRpb24gaXMgYXRvbWljIGFuZCBjYW5ub3QgYmUgcmVv cmRlcmVkLiAgCiAgKiBJdCBhbHNvIGltcGxpZXMgdGhlIGFjcXVpc2l0aW9uIHNpZGUgb2YgdGhl IG1lbW9yeSBiYXJyaWVyLgogICovCi1zdGF0aWMgX19pbmxpbmVfXyBpbnQKK3N0YXRpYyBpbmxp bmUgaW50CiB0ZXN0X2FuZF9jbGVhcl9iaXQgKGludCBuciwgdm9sYXRpbGUgdm9pZCAqYWRkcikK IHsKIAlfX3UzMiBtYXNrLCBvbGQsIG5ldzsKQEAgLTI3Nyw3ICsyNzcsNyBAQCB0ZXN0X2FuZF9j bGVhcl9iaXQgKGludCBuciwgdm9sYXRpbGUgdm9pZCAqYWRkcikKICAqIElmIHR3byBleGFtcGxl cyBvZiB0aGlzIG9wZXJhdGlvbiByYWNlLCBvbmUgY2FuIGFwcGVhciB0byBzdWNjZWVkCiAgKiBi dXQgYWN0dWFsbHkgZmFpbC4gIFlvdSBtdXN0IHByb3RlY3QgbXVsdGlwbGUgYWNjZXNzZXMgd2l0 aCBhIGxvY2suCiAgKi8KLXN0YXRpYyBfX2lubGluZV9fIGludAorc3RhdGljIGlubGluZSBpbnQK IF9fdGVzdF9hbmRfY2xlYXJfYml0KGludCBuciwgdm9sYXRpbGUgdm9pZCAqIGFkZHIpCiB7CiAJ X191MzIgKnAgPSAoX191MzIgKikgYWRkciArIChuciA+PiA1KTsKQEAgLTI5Niw3ICsyOTYsNyBA QCBfX3Rlc3RfYW5kX2NsZWFyX2JpdChpbnQgbnIsIHZvbGF0aWxlIHZvaWQgKiBhZGRyKQogICog VGhpcyBvcGVyYXRpb24gaXMgYXRvbWljIGFuZCBjYW5ub3QgYmUgcmVvcmRlcmVkLiAgCiAgKiBJ dCBhbHNvIGltcGxpZXMgdGhlIGFjcXVpc2l0aW9uIHNpZGUgb2YgdGhlIG1lbW9yeSBiYXJyaWVy LgogICovCi1zdGF0aWMgX19pbmxpbmVfXyBpbnQKK3N0YXRpYyBpbmxpbmUgaW50CiB0ZXN0X2Fu ZF9jaGFuZ2VfYml0IChpbnQgbnIsIHZvbGF0aWxlIHZvaWQgKmFkZHIpCiB7CiAJX191MzIgYml0 LCBvbGQsIG5ldzsKQEAgLTMyMCw3ICszMjAsNyBAQCB0ZXN0X2FuZF9jaGFuZ2VfYml0IChpbnQg bnIsIHZvbGF0aWxlIHZvaWQgKmFkZHIpCiAgKgogICogVGhpcyBvcGVyYXRpb24gaXMgbm9uLWF0 b21pYyBhbmQgY2FuIGJlIHJlb3JkZXJlZC4KICAqLwotc3RhdGljIF9faW5saW5lX18gaW50Citz dGF0aWMgaW5saW5lIGludAogX190ZXN0X2FuZF9jaGFuZ2VfYml0IChpbnQgbnIsIHZvaWQgKmFk ZHIpCiB7CiAJX191MzIgb2xkLCBiaXQgPSAoMSA8PCAobnIgJiAzMSkpOwpAQCAtMzMxLDcgKzMz MSw3IEBAIF9fdGVzdF9hbmRfY2hhbmdlX2JpdCAoaW50IG5yLCB2b2lkICphZGRyKQogCXJldHVy biAob2xkICYgYml0KSAhPSAwOwogfQogCi1zdGF0aWMgX19pbmxpbmVfXyBpbnQKK3N0YXRpYyBp bmxpbmUgaW50CiB0ZXN0X2JpdCAoaW50IG5yLCBjb25zdCB2b2xhdGlsZSB2b2lkICphZGRyKQog ewogCXJldHVybiAxICYgKCgoY29uc3Qgdm9sYXRpbGUgX191MzIgKikgYWRkcilbbnIgPj4gNV0g Pj4gKG5yICYgMzEpKTsKQEAgLTM1OSw3ICszNTksNyBAQCBmZnogKHVuc2lnbmVkIGxvbmcgeCkK ICAqCiAgKiBVbmRlZmluZWQgaWYgbm8gYml0IGV4aXN0cywgc28gY29kZSBzaG91bGQgY2hlY2sg YWdhaW5zdCAwIGZpcnN0LgogICovCi1zdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nCitz dGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcKIF9fZmZzICh1bnNpZ25lZCBsb25nIHgpCiB7CiAJ dW5zaWduZWQgbG9uZyByZXN1bHQ7CkBAIC00MjcsNyArNDI3LDcgQEAgX19mbHMgKHVuc2lnbmVk IGxvbmcgeCkKICAqIGh3ZWlnaHROOiByZXR1cm5zIHRoZSBoYW1taW5nIHdlaWdodCAoaS5lLiB0 aGUgbnVtYmVyCiAgKiBvZiBiaXRzIHNldCkgb2YgYSBOLWJpdCB3b3JkCiAgKi8KLXN0YXRpYyBf X2lubGluZV9fIHVuc2lnbmVkIGxvbmcgX19hcmNoX2h3ZWlnaHQ2NCh1bnNpZ25lZCBsb25nIHgp CitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgX19hcmNoX2h3ZWlnaHQ2NCh1bnNpZ25lZCBs b25nIHgpCiB7CiAJdW5zaWduZWQgbG9uZyByZXN1bHQ7CiAJcmVzdWx0ID0gaWE2NF9wb3BjbnQo eCk7CmRpZmYgLS1naXQgYS9hcmNoL2lhNjQvaW5jbHVkZS9hc20vZGVsYXkuaCBiL2FyY2gvaWE2 NC9pbmNsdWRlL2FzbS9kZWxheS5oCmluZGV4IDAyMjdhYzU4NjEwNy4uOWY3ZTYwNDk2ZmViIDEw MDY0NAotLS0gYS9hcmNoL2lhNjQvaW5jbHVkZS9hc20vZGVsYXkuaAorKysgYi9hcmNoL2lhNjQv aW5jbHVkZS9hc20vZGVsYXkuaApAQCAtMjAsMTQgKzIwLDE0IEBACiAjaW5jbHVkZSA8YXNtL2lu dHJpbnNpY3MuaD4KICNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+CiAKLXN0YXRpYyBfX2lubGlu ZV9fIHZvaWQKK3N0YXRpYyBpbmxpbmUgdm9pZAogaWE2NF9zZXRfaXRtICh1bnNpZ25lZCBsb25n IHZhbCkKIHsKIAlpYTY0X3NldHJlZyhfSUE2NF9SRUdfQ1JfSVRNLCB2YWwpOwogCWlhNjRfc3Js el9kKCk7CiB9CiAKLXN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGxvbmcKK3N0YXRpYyBpbmxp bmUgdW5zaWduZWQgbG9uZwogaWE2NF9nZXRfaXRtICh2b2lkKQogewogCXVuc2lnbmVkIGxvbmcg cmVzdWx0OwpAQCAtMzcsMjcgKzM3LDI3IEBAIGlhNjRfZ2V0X2l0bSAodm9pZCkKIAlyZXR1cm4g cmVzdWx0OwogfQogCi1zdGF0aWMgX19pbmxpbmVfXyB2b2lkCitzdGF0aWMgaW5saW5lIHZvaWQK IGlhNjRfc2V0X2l0diAodW5zaWduZWQgbG9uZyB2YWwpCiB7CiAJaWE2NF9zZXRyZWcoX0lBNjRf UkVHX0NSX0lUViwgdmFsKTsKIAlpYTY0X3NybHpfZCgpOwogfQogCi1zdGF0aWMgX19pbmxpbmVf XyB1bnNpZ25lZCBsb25nCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcKIGlhNjRfZ2V0X2l0 diAodm9pZCkKIHsKIAlyZXR1cm4gaWE2NF9nZXRyZWcoX0lBNjRfUkVHX0NSX0lUVik7CiB9CiAK LXN0YXRpYyBfX2lubGluZV9fIHZvaWQKK3N0YXRpYyBpbmxpbmUgdm9pZAogaWE2NF9zZXRfaXRj ICh1bnNpZ25lZCBsb25nIHZhbCkKIHsKIAlpYTY0X3NldHJlZyhfSUE2NF9SRUdfQVJfSVRDLCB2 YWwpOwogCWlhNjRfc3Jsel9kKCk7CiB9CiAKLXN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGxv bmcKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZwogaWE2NF9nZXRfaXRjICh2b2lkKQogewog CXVuc2lnbmVkIGxvbmcgcmVzdWx0OwpAQCAtNzUsNyArNzUsNyBAQCBpYTY0X2dldF9pdGMgKHZv aWQpCiAKIGV4dGVybiB2b2lkIGlhNjRfZGVsYXlfbG9vcCAodW5zaWduZWQgbG9uZyBsb29wcyk7 CiAKLXN0YXRpYyBfX2lubGluZV9fIHZvaWQKK3N0YXRpYyBpbmxpbmUgdm9pZAogX19kZWxheSAo dW5zaWduZWQgbG9uZyBsb29wcykKIHsKIAlpZiAodW5saWtlbHkobG9vcHMgPCAxKSkKZGlmZiAt LWdpdCBhL2FyY2gvaWE2NC9pbmNsdWRlL2FzbS9pcnEuaCBiL2FyY2gvaWE2NC9pbmNsdWRlL2Fz bS9pcnEuaAppbmRleCA4Yjg0YTU1ZWQzOGEuLmVhYjhkZWZhMzBkZSAxMDA2NDQKLS0tIGEvYXJj aC9pYTY0L2luY2x1ZGUvYXNtL2lycS5oCisrKyBiL2FyY2gvaWE2NC9pbmNsdWRlL2FzbS9pcnEu aApAQCAtMTYsNyArMTYsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2NwdW1hc2suaD4KICNpbmNsdWRl IDxnZW5lcmF0ZWQvbnItaXJxcy5oPgogCi1zdGF0aWMgX19pbmxpbmVfXyBpbnQKK3N0YXRpYyBp bmxpbmUgaW50CiBpcnFfY2Fub25pY2FsaXplIChpbnQgaXJxKQogewogCS8qCmRpZmYgLS1naXQg YS9hcmNoL2lhNjQvaW5jbHVkZS9hc20vcGFnZS5oIGIvYXJjaC9pYTY0L2luY2x1ZGUvYXNtL3Bh Z2UuaAppbmRleCA1Nzk4YmQyYjQ2MmMuLjg1ODMxN2JlMTBjYiAxMDA2NDQKLS0tIGEvYXJjaC9p YTY0L2luY2x1ZGUvYXNtL3BhZ2UuaAorKysgYi9hcmNoL2lhNjQvaW5jbHVkZS9hc20vcGFnZS5o CkBAIC0xNTQsNyArMTU0LDcgQEAgdHlwZWRlZiB1bmlvbiBpYTY0X3ZhIHsKIGV4dGVybiB1bnNp Z25lZCBpbnQgaHBhZ2Vfc2hpZnQ7CiAjZW5kaWYKIAotc3RhdGljIF9faW5saW5lX18gaW50Citz dGF0aWMgaW5saW5lIGludAogZ2V0X29yZGVyICh1bnNpZ25lZCBsb25nIHNpemUpCiB7CiAJbG9u ZyBkb3VibGUgZCA9IHNpemUgLSAxOwpkaWZmIC0tZ2l0IGEvYXJjaC9pYTY0L2luY2x1ZGUvYXNt L3NuL2xlZHMuaCBiL2FyY2gvaWE2NC9pbmNsdWRlL2FzbS9zbi9sZWRzLmgKaW5kZXggNjZjZjhj NGQ5MmM5Li40OGFhYmU5NTUyM2YgMTAwNjQ0Ci0tLSBhL2FyY2gvaWE2NC9pbmNsdWRlL2FzbS9z bi9sZWRzLmgKKysrIGIvYXJjaC9pYTY0L2luY2x1ZGUvYXNtL3NuL2xlZHMuaApAQCAtMjIsNyAr MjIsNyBAQAogICogQmFzaWMgbWFjcm9zIGZvciBmbGFzaGluZyB0aGUgTEVEUyBvbiBhbiBTR0kg U04uCiAgKi8KIAotc3RhdGljIF9faW5saW5lX18gdm9pZAorc3RhdGljIGlubGluZSB2b2lkCiBz ZXRfbGVkX2JpdHModTggdmFsdWUsIHU4IG1hc2spCiB7CiAJcGRhLT5sZWRfc3RhdGUgPSAocGRh LT5sZWRfc3RhdGUgJiB+bWFzaykgfCAodmFsdWUgJiBtYXNrKTsKZGlmZiAtLWdpdCBhL2FyY2gv aWE2NC9pbmNsdWRlL2FzbS91YWNjZXNzLmggYi9hcmNoL2lhNjQvaW5jbHVkZS9hc20vdWFjY2Vz cy5oCmluZGV4IGE3NDUyNGYyZDYyNS4uMzg2YmZlMTU1MGMwIDEwMDY0NAotLS0gYS9hcmNoL2lh NjQvaW5jbHVkZS9hc20vdWFjY2Vzcy5oCisrKyBiL2FyY2gvaWE2NC9pbmNsdWRlL2FzbS91YWNj ZXNzLmgKQEAgLTI1OSw3ICsyNTksNyBAQCBleHRlcm4gdW5zaWduZWQgbG9uZyBfX3N0cm5sZW5f dXNlciAoY29uc3QgY2hhciBfX3VzZXIgKiwgbG9uZyk7CiB9KQogCiAjZGVmaW5lIEFSQ0hfSEFT X1RSQU5TTEFURV9NRU1fUFRSCTEKLXN0YXRpYyBfX2lubGluZV9fIHZvaWQgKgorc3RhdGljIGlu bGluZSB2b2lkICoKIHhsYXRlX2Rldl9tZW1fcHRyKHBoeXNfYWRkcl90IHApCiB7CiAJc3RydWN0 IHBhZ2UgKnBhZ2U7CkBAIC0yNzcsNyArMjc3LDcgQEAgeGxhdGVfZGV2X21lbV9wdHIocGh5c19h ZGRyX3QgcCkKIC8qCiAgKiBDb252ZXJ0IGEgdmlydHVhbCBjYWNoZWQga2VybmVsIG1lbW9yeSBw b2ludGVyIHRvIGFuIHVuY2FjaGVkIHBvaW50ZXIKICAqLwotc3RhdGljIF9faW5saW5lX18gdm9p ZCAqCitzdGF0aWMgaW5saW5lIHZvaWQgKgogeGxhdGVfZGV2X2ttZW1fcHRyKHZvaWQgKnApCiB7 CiAJc3RydWN0IHBhZ2UgKnBhZ2U7CmRpZmYgLS1naXQgYS9hcmNoL2lhNjQvaW5jbHVkZS91YXBp L2FzbS9yc2UuaCBiL2FyY2gvaWE2NC9pbmNsdWRlL3VhcGkvYXNtL3JzZS5oCmluZGV4IDZkMjYw YWY1NzFjNS4uNTVlNjZjYWUxMGUxIDEwMDY0NAotLS0gYS9hcmNoL2lhNjQvaW5jbHVkZS91YXBp L2FzbS9yc2UuaAorKysgYi9hcmNoL2lhNjQvaW5jbHVkZS91YXBpL2FzbS9yc2UuaApAQCAtOCwx MSArOCwxMSBAQAogICoKICAqIFJlZ2lzdGVyIHN0YWNrIGVuZ2luZSByZWxhdGVkIGhlbHBlciBm dW5jdGlvbnMuICBUaGlzIGZpbGUgbWF5IGJlCiAgKiB1c2VkIGluIGFwcGxpY2F0aW9ucywgc28g YmUgY2FyZWZ1bCBhYm91dCB0aGUgbmFtZS1zcGFjZSBhbmQgZ2l2ZQotICogc29tZSBjb25zaWRl cmF0aW9uIHRvIG5vbi1HTlUgQyBjb21waWxlcnMgKHRob3VnaCBfX2lubGluZV9fIGlzCisgKiBz b21lIGNvbnNpZGVyYXRpb24gdG8gbm9uLUdOVSBDIGNvbXBpbGVycyAodGhvdWdoIGlubGluZSBp cwogICogZmluZSkuCiAgKi8KIAotc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZworc3Rh dGljIGlubGluZSB1bnNpZ25lZCBsb25nCiBpYTY0X3JzZV9zbG90X251bSAodW5zaWduZWQgbG9u ZyAqYWRkcikKIHsKIAlyZXR1cm4gKCgodW5zaWduZWQgbG9uZykgYWRkcikgPj4gMykgJiAweDNm OwpAQCAtMjEsNyArMjEsNyBAQCBpYTY0X3JzZV9zbG90X251bSAodW5zaWduZWQgbG9uZyAqYWRk cikKIC8qCiAgKiBSZXR1cm4gVFJVRSBpZiBBRERSIGlzIHRoZSBhZGRyZXNzIG9mIGFuIFJOQVQg c2xvdC4KICAqLwotc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZworc3RhdGljIGlubGlu ZSB1bnNpZ25lZCBsb25nCiBpYTY0X3JzZV9pc19ybmF0X3Nsb3QgKHVuc2lnbmVkIGxvbmcgKmFk ZHIpCiB7CiAJcmV0dXJuIGlhNjRfcnNlX3Nsb3RfbnVtKGFkZHIpID09IDB4M2Y7CkBAIC0zMSw3 ICszMSw3IEBAIGlhNjRfcnNlX2lzX3JuYXRfc2xvdCAodW5zaWduZWQgbG9uZyAqYWRkcikKICAq IFJldHVybnMgdGhlIGFkZHJlc3Mgb2YgdGhlIFJOQVQgc2xvdCB0aGF0IGNvdmVycyB0aGUgc2xv dCBhdAogICogYWRkcmVzcyBTTE9UX0FERFIuCiAgKi8KLXN0YXRpYyBfX2lubGluZV9fIHVuc2ln bmVkIGxvbmcgKgorc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nICoKIGlhNjRfcnNlX3JuYXRf YWRkciAodW5zaWduZWQgbG9uZyAqc2xvdF9hZGRyKQogewogCXJldHVybiAodW5zaWduZWQgbG9u ZyAqKSAoKHVuc2lnbmVkIGxvbmcpIHNsb3RfYWRkciB8ICgweDNmIDw8IDMpKTsKQEAgLTQyLDcg KzQyLDcgQEAgaWE2NF9yc2Vfcm5hdF9hZGRyICh1bnNpZ25lZCBsb25nICpzbG90X2FkZHIpCiAg KiBlbmRpbmcgYXQgQlNQLiAgVGhpcyBpc24ndCBzaW1wbHkgKEJTUC1CU1BTVE9SRSkvOCBiZWNh dXNlIGV2ZXJ5IDY0dGggc2xvdCBzdG9yZXMKICAqIGFyLnJuYXQuCiAgKi8KLXN0YXRpYyBfX2lu bGluZV9fIHVuc2lnbmVkIGxvbmcKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZwogaWE2NF9y c2VfbnVtX3JlZ3MgKHVuc2lnbmVkIGxvbmcgKmJzcHN0b3JlLCB1bnNpZ25lZCBsb25nICpic3Ap CiB7CiAJdW5zaWduZWQgbG9uZyBzbG90cyA9IChic3AgLSBic3BzdG9yZSk7CkBAIC01NCw3ICs1 NCw3IEBAIGlhNjRfcnNlX251bV9yZWdzICh1bnNpZ25lZCBsb25nICpic3BzdG9yZSwgdW5zaWdu ZWQgbG9uZyAqYnNwKQogICogVGhlIGludmVyc2Ugb2YgdGhlIGFib3ZlOiBnaXZlbiBic3BzdG9y ZSBhbmQgdGhlIG51bWJlciBvZgogICogcmVnaXN0ZXJzLCBjYWxjdWxhdGUgYXIuYnNwLgogICov Ci1zdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nICoKK3N0YXRpYyBpbmxpbmUgdW5zaWdu ZWQgbG9uZyAqCiBpYTY0X3JzZV9za2lwX3JlZ3MgKHVuc2lnbmVkIGxvbmcgKmFkZHIsIGxvbmcg bnVtX3JlZ3MpCiB7CiAJbG9uZyBkZWx0YSA9IGlhNjRfcnNlX3Nsb3RfbnVtKGFkZHIpICsgbnVt X3JlZ3M7CmRpZmYgLS1naXQgYS9hcmNoL2lhNjQvaW5jbHVkZS91YXBpL2FzbS9zd2FiLmggYi9h cmNoL2lhNjQvaW5jbHVkZS91YXBpL2FzbS9zd2FiLmgKaW5kZXggNzlmM2ZlZjFhMDVlLi41YjVk ZjdhMDVmN2UgMTAwNjQ0Ci0tLSBhL2FyY2gvaWE2NC9pbmNsdWRlL3VhcGkvYXNtL3N3YWIuaAor KysgYi9hcmNoL2lhNjQvaW5jbHVkZS91YXBpL2FzbS9zd2FiLmgKQEAgLTExLDcgKzExLDcgQEAK ICNpbmNsdWRlIDxhc20vaW50cmluc2ljcy5oPgogI2luY2x1ZGUgPGxpbnV4L2NvbXBpbGVyLmg+ CiAKLXN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX2NvbnN0X18gX191NjQgX19hcmNoX3N3 YWI2NChfX3U2NCB4KQorc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9jb25zdF9fIF9fdTY0IF9f YXJjaF9zd2FiNjQoX191NjQgeCkKIHsKIAlfX3U2NCByZXN1bHQ7CiAKQEAgLTIwLDEzICsyMCwx MyBAQCBzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9jb25zdF9fIF9fdTY0IF9fYXJjaF9z d2FiNjQoX191NjQgeCkKIH0KICNkZWZpbmUgX19hcmNoX3N3YWI2NCBfX2FyY2hfc3dhYjY0CiAK LXN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX2NvbnN0X18gX191MzIgX19hcmNoX3N3YWIz MihfX3UzMiB4KQorc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9jb25zdF9fIF9fdTMyIF9fYXJj aF9zd2FiMzIoX191MzIgeCkKIHsKIAlyZXR1cm4gX19hcmNoX3N3YWI2NCh4KSA+PiAzMjsKIH0K ICNkZWZpbmUgX19hcmNoX3N3YWIzMiBfX2FyY2hfc3dhYjMyCiAKLXN0YXRpYyBfX2lubGluZV9f IF9fYXR0cmlidXRlX2NvbnN0X18gX191MTYgX19hcmNoX3N3YWIxNihfX3UxNiB4KQorc3RhdGlj IGlubGluZSBfX2F0dHJpYnV0ZV9jb25zdF9fIF9fdTE2IF9fYXJjaF9zd2FiMTYoX191MTYgeCkK IHsKIAlyZXR1cm4gX19hcmNoX3N3YWI2NCh4KSA+PiA0ODsKIH0KZGlmZiAtLWdpdCBhL2FyY2gv aWE2NC9vcHJvZmlsZS9iYWNrdHJhY2UuYyBiL2FyY2gvaWE2NC9vcHJvZmlsZS9iYWNrdHJhY2Uu YwppbmRleCA2YTIxOWE5NDYwNTAuLmM5YzgyODJmN2E3MyAxMDA2NDQKLS0tIGEvYXJjaC9pYTY0 L29wcm9maWxlL2JhY2t0cmFjZS5jCisrKyBiL2FyY2gvaWE2NC9vcHJvZmlsZS9iYWNrdHJhY2Uu YwpAQCAtMzIsNyArMzIsNyBAQCB0eXBlZGVmIHN0cnVjdAogfSBpYTY0X2JhY2t0cmFjZV90Owog CiAvKiBSZXR1cm5zIG5vbi16ZXJvIGlmIHRoZSBQQyBpcyBpbiB0aGUgSW50ZXJydXB0IFZlY3Rv ciBUYWJsZSAqLwotc3RhdGljIF9faW5saW5lX18gaW50IGluX2l2dF9jb2RlKHVuc2lnbmVkIGxv bmcgcGMpCitzdGF0aWMgaW5saW5lIGludCBpbl9pdnRfY29kZSh1bnNpZ25lZCBsb25nIHBjKQog ewogCWV4dGVybiBjaGFyIGlhNjRfaXZ0W107CiAJcmV0dXJuIChwYyA+PSAodV9sb25nKWlhNjRf aXZ0ICYmIHBjIDwgKHVfbG9uZylpYTY0X2l2dCszMjc2OCk7CkBAIC00MSw3ICs0MSw3IEBAIHN0 YXRpYyBfX2lubGluZV9fIGludCBpbl9pdnRfY29kZSh1bnNpZ25lZCBsb25nIHBjKQogLyoKICAq IFVud2luZCB0byBuZXh0IHN0YWNrIGZyYW1lLgogICovCi1zdGF0aWMgX19pbmxpbmVfXyBpbnQg bmV4dF9mcmFtZShpYTY0X2JhY2t0cmFjZV90ICpidCkKK3N0YXRpYyBpbmxpbmUgaW50IG5leHRf ZnJhbWUoaWE2NF9iYWNrdHJhY2VfdCAqYnQpCiB7CiAJLyoKIAkgKiBBdm9pZCB1bnNpZ2h0bHkg Y29uc29sZSBtZXNzYWdlIGZyb20gdW53X3Vud2luZCgpIHdoZW4gYXR0ZW1wdGluZwpkaWZmIC0t Z2l0IGEvYXJjaC9tNjhrL2luY2x1ZGUvYXNtL2JsaW5rZW4uaCBiL2FyY2gvbTY4ay9pbmNsdWRl L2FzbS9ibGlua2VuLmgKaW5kZXggMDYyNjU4MmE3ZGI0Li4yZTVlNzRkNzRmODIgMTAwNjQ0Ci0t LSBhL2FyY2gvbTY4ay9pbmNsdWRlL2FzbS9ibGlua2VuLmgKKysrIGIvYXJjaC9tNjhrL2luY2x1 ZGUvYXNtL2JsaW5rZW4uaApAQCAtMTksNyArMTksNyBAQAogCiBleHRlcm4gdW5zaWduZWQgY2hh ciBocDMwMF9sZWRzdGF0ZTsKIAotc3RhdGljIF9faW5saW5lX18gdm9pZCBibGlua2VuX2xlZHMo aW50IG9uLCBpbnQgb2ZmKQorc3RhdGljIGlubGluZSB2b2lkIGJsaW5rZW5fbGVkcyhpbnQgb24s IGludCBvZmYpCiB7CiAJaWYgKE1BQ0hfSVNfSFAzMDApCiAJewpkaWZmIC0tZ2l0IGEvYXJjaC9t NjhrL2luY2x1ZGUvYXNtL2NoZWNrc3VtLmggYi9hcmNoL202OGsvaW5jbHVkZS9hc20vY2hlY2tz dW0uaAppbmRleCBmOWI5NGU0Yjk0ZjkuLjM3MjQzMDdiZTRhMSAxMDA2NDQKLS0tIGEvYXJjaC9t NjhrL2luY2x1ZGUvYXNtL2NoZWNrc3VtLmgKKysrIGIvYXJjaC9tNjhrL2luY2x1ZGUvYXNtL2No ZWNrc3VtLmgKQEAgLTExNiw3ICsxMTYsNyBAQCBzdGF0aWMgaW5saW5lIF9fc3VtMTYgaXBfY29t cHV0ZV9jc3VtKGNvbnN0IHZvaWQgKmJ1ZmYsIGludCBsZW4pCiB9CiAKICNkZWZpbmUgX0hBVkVf QVJDSF9JUFY2X0NTVU0KLXN0YXRpYyBfX2lubGluZV9fIF9fc3VtMTYKK3N0YXRpYyBpbmxpbmUg X19zdW0xNgogY3N1bV9pcHY2X21hZ2ljKGNvbnN0IHN0cnVjdCBpbjZfYWRkciAqc2FkZHIsIGNv bnN0IHN0cnVjdCBpbjZfYWRkciAqZGFkZHIsCiAJCV9fdTMyIGxlbiwgX191OCBwcm90bywgX193 c3VtIHN1bSkKIHsKZGlmZiAtLWdpdCBhL2FyY2gvbTY4ay9pbmNsdWRlL2FzbS9kbWEuaCBiL2Fy Y2gvbTY4ay9pbmNsdWRlL2FzbS9kbWEuaAppbmRleCBhZTIwMjE5NjRlMzIuLmE0NTE3NzhmZTEx MiAxMDA2NDQKLS0tIGEvYXJjaC9tNjhrL2luY2x1ZGUvYXNtL2RtYS5oCisrKyBiL2FyY2gvbTY4 ay9pbmNsdWRlL2FzbS9kbWEuaApAQCAtMTIzLDcgKzEyMyw3IEBAIGV4dGVybiB1bnNpZ25lZCBp bnQgZG1hX2RldmljZV9hZGRyZXNzW01BWF9NNjhLX0RNQV9DSEFOTkVMU107CiAKICNpZiAhZGVm aW5lZChDT05GSUdfTTUyNzIpCiAvKiBlbmFibGUvZGlzYWJsZSBhIHNwZWNpZmljIERNQSBjaGFu bmVsICovCi1zdGF0aWMgX19pbmxpbmVfXyB2b2lkIGVuYWJsZV9kbWEodW5zaWduZWQgaW50IGRt YW5yKQorc3RhdGljIGlubGluZSB2b2lkIGVuYWJsZV9kbWEodW5zaWduZWQgaW50IGRtYW5yKQog ewogICB2b2xhdGlsZSB1bnNpZ25lZCBzaG9ydCAqZG1hd3A7CiAKQEAgLTEzNSw3ICsxMzUsNyBA QCBzdGF0aWMgX19pbmxpbmVfXyB2b2lkIGVuYWJsZV9kbWEodW5zaWduZWQgaW50IGRtYW5yKQog ICBkbWF3cFtNQ0ZETUFfRENSXSB8PSBNQ0ZETUFfRENSX0VFWFQ7CiB9CiAKLXN0YXRpYyBfX2lu bGluZV9fIHZvaWQgZGlzYWJsZV9kbWEodW5zaWduZWQgaW50IGRtYW5yKQorc3RhdGljIGlubGlu ZSB2b2lkIGRpc2FibGVfZG1hKHVuc2lnbmVkIGludCBkbWFucikKIHsKICAgdm9sYXRpbGUgdW5z aWduZWQgc2hvcnQgKmRtYXdwOwogICB2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICAqZG1hcGI7CkBA IC0xNjIsMTIgKzE2MiwxMiBAQCBzdGF0aWMgX19pbmxpbmVfXyB2b2lkIGRpc2FibGVfZG1hKHVu c2lnbmVkIGludCBkbWFucikKICAqCiAgKiBUaGlzIGlzIGEgTk9QIGZvciBDb2xkRmlyZS4gUHJv dmlkZSBhIHN0dWIgZm9yIGNvbXBhdGliaWxpdHkuCiAgKi8KLXN0YXRpYyBfX2lubGluZV9fIHZv aWQgY2xlYXJfZG1hX2ZmKHVuc2lnbmVkIGludCBkbWFucikKK3N0YXRpYyBpbmxpbmUgdm9pZCBj bGVhcl9kbWFfZmYodW5zaWduZWQgaW50IGRtYW5yKQogewogfQogCiAvKiBzZXQgbW9kZSAoYWJv dmUpIGZvciBhIHNwZWNpZmljIERNQSBjaGFubmVsICovCi1zdGF0aWMgX19pbmxpbmVfXyB2b2lk IHNldF9kbWFfbW9kZSh1bnNpZ25lZCBpbnQgZG1hbnIsIGNoYXIgbW9kZSkKK3N0YXRpYyBpbmxp bmUgdm9pZCBzZXRfZG1hX21vZGUodW5zaWduZWQgaW50IGRtYW5yLCBjaGFyIG1vZGUpCiB7CiAK ICAgdm9sYXRpbGUgdW5zaWduZWQgY2hhciAgKmRtYWJwOwpAQCAtMjEwLDcgKzIxMCw3IEBAIHN0 YXRpYyBfX2lubGluZV9fIHZvaWQgc2V0X2RtYV9tb2RlKHVuc2lnbmVkIGludCBkbWFuciwgY2hh ciBtb2RlKQogfQogCiAvKiBTZXQgdHJhbnNmZXIgYWRkcmVzcyBmb3Igc3BlY2lmaWMgRE1BIGNo YW5uZWwgKi8KLXN0YXRpYyBfX2lubGluZV9fIHZvaWQgc2V0X2RtYV9hZGRyKHVuc2lnbmVkIGlu dCBkbWFuciwgdW5zaWduZWQgaW50IGEpCitzdGF0aWMgaW5saW5lIHZvaWQgc2V0X2RtYV9hZGRy KHVuc2lnbmVkIGludCBkbWFuciwgdW5zaWduZWQgaW50IGEpCiB7CiAgIHZvbGF0aWxlIHVuc2ln bmVkIHNob3J0ICpkbWF3cDsKICAgdm9sYXRpbGUgdW5zaWduZWQgaW50ICAgKmRtYWxwOwpAQCAt MjQ3LDcgKzI0Nyw3IEBAIHN0YXRpYyBfX2lubGluZV9fIHZvaWQgc2V0X2RtYV9hZGRyKHVuc2ln bmVkIGludCBkbWFuciwgdW5zaWduZWQgaW50IGEpCiAgKiBTcGVjaWZpYyBmb3IgQ29sZGZpcmUg LSBzZXRzIGRldmljZSBhZGRyZXNzLgogICogU2hvdWxkIGJlIGNhbGxlZCBhZnRlciB0aGUgbW9k ZSBzZXQgY2FsbCwgYW5kIGJlZm9yZSBzZXQgRE1BIGFkZHJlc3MuCiAgKi8KLXN0YXRpYyBfX2lu bGluZV9fIHZvaWQgc2V0X2RtYV9kZXZpY2VfYWRkcih1bnNpZ25lZCBpbnQgZG1hbnIsIHVuc2ln bmVkIGludCBhKQorc3RhdGljIGlubGluZSB2b2lkIHNldF9kbWFfZGV2aWNlX2FkZHIodW5zaWdu ZWQgaW50IGRtYW5yLCB1bnNpZ25lZCBpbnQgYSkKIHsKICNpZmRlZiBETUFfREVCVUcKICAgcHJp bnRrKCJzZXRfZG1hX2RldmljZV9hZGRyKGRtYW5yPSVkLGE9JXgpXG4iLCBkbWFuciwgYSk7CkBA IC0yNTksNyArMjU5LDcgQEAgc3RhdGljIF9faW5saW5lX18gdm9pZCBzZXRfZG1hX2RldmljZV9h ZGRyKHVuc2lnbmVkIGludCBkbWFuciwgdW5zaWduZWQgaW50IGEpCiAvKgogICogTk9URSAyOiAi Y291bnQiIHJlcHJlc2VudHMgX2J5dGVzXy4KICAqLwotc3RhdGljIF9faW5saW5lX18gdm9pZCBz ZXRfZG1hX2NvdW50KHVuc2lnbmVkIGludCBkbWFuciwgdW5zaWduZWQgaW50IGNvdW50KQorc3Rh dGljIGlubGluZSB2b2lkIHNldF9kbWFfY291bnQodW5zaWduZWQgaW50IGRtYW5yLCB1bnNpZ25l ZCBpbnQgY291bnQpCiB7CiAgIHZvbGF0aWxlIHVuc2lnbmVkIHNob3J0ICpkbWF3cDsKIApAQCAt Mjc3LDcgKzI3Nyw3IEBAIHN0YXRpYyBfX2lubGluZV9fIHZvaWQgc2V0X2RtYV9jb3VudCh1bnNp Z25lZCBpbnQgZG1hbnIsIHVuc2lnbmVkIGludCBjb3VudCkKICAqIHN0aWxsIGluIHByb2dyZXNz IHdpbGwgcmV0dXJuIHVucHJlZGljdGFibGUgcmVzdWx0cy4KICAqIE90aGVyd2lzZSwgaXQgcmV0 dXJucyB0aGUgbnVtYmVyIG9mIF9ieXRlc18gbGVmdCB0byB0cmFuc2Zlci4KICAqLwotc3RhdGlj IF9faW5saW5lX18gaW50IGdldF9kbWFfcmVzaWR1ZSh1bnNpZ25lZCBpbnQgZG1hbnIpCitzdGF0 aWMgaW5saW5lIGludCBnZXRfZG1hX3Jlc2lkdWUodW5zaWduZWQgaW50IGRtYW5yKQogewogICB2 b2xhdGlsZSB1bnNpZ25lZCBzaG9ydCAqZG1hd3A7CiAgIHVuc2lnbmVkIHNob3J0IGNvdW50OwpA QCAtMzE2LDcgKzMxNiw3IEBAIHN0YXRpYyBfX2lubGluZV9fIGludCBnZXRfZG1hX3Jlc2lkdWUo dW5zaWduZWQgaW50IGRtYW5yKQogICovCiAKIC8qIGVuYWJsZS9kaXNhYmxlIGEgc3BlY2lmaWMg RE1BIGNoYW5uZWwgKi8KLXN0YXRpYyBfX2lubGluZV9fIHZvaWQgZW5hYmxlX2RtYSh1bnNpZ25l ZCBpbnQgZG1hbnIpCitzdGF0aWMgaW5saW5lIHZvaWQgZW5hYmxlX2RtYSh1bnNpZ25lZCBpbnQg ZG1hbnIpCiB7CiAgIHZvbGF0aWxlIHVuc2lnbmVkIGludCAgKmRtYWxwOwogCkBAIC0zMjgsNyAr MzI4LDcgQEAgc3RhdGljIF9faW5saW5lX18gdm9pZCBlbmFibGVfZG1hKHVuc2lnbmVkIGludCBk bWFucikKICAgZG1hbHBbTUNGRE1BX0RNUl0gfD0gTUNGRE1BX0RNUl9FTjsKIH0KIAotc3RhdGlj IF9faW5saW5lX18gdm9pZCBkaXNhYmxlX2RtYSh1bnNpZ25lZCBpbnQgZG1hbnIpCitzdGF0aWMg aW5saW5lIHZvaWQgZGlzYWJsZV9kbWEodW5zaWduZWQgaW50IGRtYW5yKQogewogICB2b2xhdGls ZSB1bnNpZ25lZCBpbnQgICAqZG1hbHA7CiAKQEAgLTM1MywxMiArMzUzLDEyIEBAIHN0YXRpYyBf X2lubGluZV9fIHZvaWQgZGlzYWJsZV9kbWEodW5zaWduZWQgaW50IGRtYW5yKQogICoKICAqIFRo aXMgaXMgYSBOT1AgZm9yIENvbGRGaXJlLiBQcm92aWRlIGEgc3R1YiBmb3IgY29tcGF0aWJpbGl0 eS4KICAqLwotc3RhdGljIF9faW5saW5lX18gdm9pZCBjbGVhcl9kbWFfZmYodW5zaWduZWQgaW50 IGRtYW5yKQorc3RhdGljIGlubGluZSB2b2lkIGNsZWFyX2RtYV9mZih1bnNpZ25lZCBpbnQgZG1h bnIpCiB7CiB9CiAKIC8qIHNldCBtb2RlIChhYm92ZSkgZm9yIGEgc3BlY2lmaWMgRE1BIGNoYW5u ZWwgKi8KLXN0YXRpYyBfX2lubGluZV9fIHZvaWQgc2V0X2RtYV9tb2RlKHVuc2lnbmVkIGludCBk bWFuciwgY2hhciBtb2RlKQorc3RhdGljIGlubGluZSB2b2lkIHNldF9kbWFfbW9kZSh1bnNpZ25l ZCBpbnQgZG1hbnIsIGNoYXIgbW9kZSkKIHsKIAogICB2b2xhdGlsZSB1bnNpZ25lZCBpbnQgICAq ZG1hbHA7CkBAIC0zOTYsNyArMzk2LDcgQEAgc3RhdGljIF9faW5saW5lX18gdm9pZCBzZXRfZG1h X21vZGUodW5zaWduZWQgaW50IGRtYW5yLCBjaGFyIG1vZGUpCiB9CiAKIC8qIFNldCB0cmFuc2Zl ciBhZGRyZXNzIGZvciBzcGVjaWZpYyBETUEgY2hhbm5lbCAqLwotc3RhdGljIF9faW5saW5lX18g dm9pZCBzZXRfZG1hX2FkZHIodW5zaWduZWQgaW50IGRtYW5yLCB1bnNpZ25lZCBpbnQgYSkKK3N0 YXRpYyBpbmxpbmUgdm9pZCBzZXRfZG1hX2FkZHIodW5zaWduZWQgaW50IGRtYW5yLCB1bnNpZ25l ZCBpbnQgYSkKIHsKICAgdm9sYXRpbGUgdW5zaWduZWQgaW50ICAgKmRtYWxwOwogCkBAIC00MzEs NyArNDMxLDcgQEAgc3RhdGljIF9faW5saW5lX18gdm9pZCBzZXRfZG1hX2FkZHIodW5zaWduZWQg aW50IGRtYW5yLCB1bnNpZ25lZCBpbnQgYSkKICAqIFNwZWNpZmljIGZvciBDb2xkZmlyZSAtIHNl dHMgZGV2aWNlIGFkZHJlc3MuCiAgKiBTaG91bGQgYmUgY2FsbGVkIGFmdGVyIHRoZSBtb2RlIHNl dCBjYWxsLCBhbmQgYmVmb3JlIHNldCBETUEgYWRkcmVzcy4KICAqLwotc3RhdGljIF9faW5saW5l X18gdm9pZCBzZXRfZG1hX2RldmljZV9hZGRyKHVuc2lnbmVkIGludCBkbWFuciwgdW5zaWduZWQg aW50IGEpCitzdGF0aWMgaW5saW5lIHZvaWQgc2V0X2RtYV9kZXZpY2VfYWRkcih1bnNpZ25lZCBp bnQgZG1hbnIsIHVuc2lnbmVkIGludCBhKQogewogI2lmZGVmIERNQV9ERUJVRwogICBwcmludGso InNldF9kbWFfZGV2aWNlX2FkZHIoZG1hbnI9JWQsYT0leClcbiIsIGRtYW5yLCBhKTsKQEAgLTQ0 NSw3ICs0NDUsNyBAQCBzdGF0aWMgX19pbmxpbmVfXyB2b2lkIHNldF9kbWFfZGV2aWNlX2FkZHIo dW5zaWduZWQgaW50IGRtYW5yLCB1bnNpZ25lZCBpbnQgYSkKICAqCiAgKiBOT1RFIDM6IFdoaWxl IGEgMzItYml0IHJlZ2lzdGVyLCAiY291bnQiIGlzIG9ubHkgYSBtYXhpbXVtIDI0LWJpdCB2YWx1 ZS4KICAqLwotc3RhdGljIF9faW5saW5lX18gdm9pZCBzZXRfZG1hX2NvdW50KHVuc2lnbmVkIGlu dCBkbWFuciwgdW5zaWduZWQgaW50IGNvdW50KQorc3RhdGljIGlubGluZSB2b2lkIHNldF9kbWFf Y291bnQodW5zaWduZWQgaW50IGRtYW5yLCB1bnNpZ25lZCBpbnQgY291bnQpCiB7CiAgIHZvbGF0 aWxlIHVuc2lnbmVkIGludCAqZG1hbHA7CiAKQEAgLTQ2Myw3ICs0NjMsNyBAQCBzdGF0aWMgX19p bmxpbmVfXyB2b2lkIHNldF9kbWFfY291bnQodW5zaWduZWQgaW50IGRtYW5yLCB1bnNpZ25lZCBp bnQgY291bnQpCiAgKiBzdGlsbCBpbiBwcm9ncmVzcyB3aWxsIHJldHVybiB1bnByZWRpY3RhYmxl IHJlc3VsdHMuCiAgKiBPdGhlcndpc2UsIGl0IHJldHVybnMgdGhlIG51bWJlciBvZiBfYnl0ZXNf IGxlZnQgdG8gdHJhbnNmZXIuCiAgKi8KLXN0YXRpYyBfX2lubGluZV9fIGludCBnZXRfZG1hX3Jl c2lkdWUodW5zaWduZWQgaW50IGRtYW5yKQorc3RhdGljIGlubGluZSBpbnQgZ2V0X2RtYV9yZXNp ZHVlKHVuc2lnbmVkIGludCBkbWFucikKIHsKICAgdm9sYXRpbGUgdW5zaWduZWQgaW50ICpkbWFs cDsKICAgdW5zaWduZWQgaW50IGNvdW50OwpkaWZmIC0tZ2l0IGEvYXJjaC9tNjhrL2luY2x1ZGUv YXNtL2Zsb3BweS5oIGIvYXJjaC9tNjhrL2luY2x1ZGUvYXNtL2Zsb3BweS5oCmluZGV4IGMzYjlh ZDY3MzJmYy4uN2E2NThhNWNhNzQ2IDEwMDY0NAotLS0gYS9hcmNoL202OGsvaW5jbHVkZS9hc20v ZmxvcHB5LmgKKysrIGIvYXJjaC9tNjhrL2luY2x1ZGUvYXNtL2Zsb3BweS5oCkBAIC01MCwyMCAr NTAsMjAgQEAgc3RhdGljIGludCBkb2luZ19wZG1hPTA7CiAKIGV4dGVybiBzcGlubG9ja190ICBk bWFfc3Bpbl9sb2NrOwogCi1zdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nIGNsYWltX2Rt YV9sb2NrKHZvaWQpCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgY2xhaW1fZG1hX2xvY2so dm9pZCkKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCXNwaW5fbG9ja19pcnFzYXZlKCZkbWFf c3Bpbl9sb2NrLCBmbGFncyk7CiAJcmV0dXJuIGZsYWdzOwogfQogCi1zdGF0aWMgX19pbmxpbmVf XyB2b2lkIHJlbGVhc2VfZG1hX2xvY2sodW5zaWduZWQgbG9uZyBmbGFncykKK3N0YXRpYyBpbmxp bmUgdm9pZCByZWxlYXNlX2RtYV9sb2NrKHVuc2lnbmVkIGxvbmcgZmxhZ3MpCiB7CiAJc3Bpbl91 bmxvY2tfaXJxcmVzdG9yZSgmZG1hX3NwaW5fbG9jaywgZmxhZ3MpOwogfQogCiAKLXN0YXRpYyBf X2lubGluZV9fIHVuc2lnbmVkIGNoYXIgZmRfaW5iKGludCBwb3J0KQorc3RhdGljIGlubGluZSB1 bnNpZ25lZCBjaGFyIGZkX2luYihpbnQgcG9ydCkKIHsKIAlpZihNQUNIX0lTX1E0MCkKIAkJcmV0 dXJuIGluYl9wKHBvcnQpOwpAQCAtNzIsNyArNzIsNyBAQCBzdGF0aWMgX19pbmxpbmVfXyB1bnNp Z25lZCBjaGFyIGZkX2luYihpbnQgcG9ydCkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIF9faW5s aW5lX18gdm9pZCBmZF9vdXRiKHVuc2lnbmVkIGNoYXIgdmFsdWUsIGludCBwb3J0KQorc3RhdGlj IGlubGluZSB2b2lkIGZkX291dGIodW5zaWduZWQgY2hhciB2YWx1ZSwgaW50IHBvcnQpCiB7CiAJ aWYoTUFDSF9JU19RNDApCiAJCW91dGJfcCh2YWx1ZSwgcG9ydCk7CmRpZmYgLS1naXQgYS9hcmNo L202OGsvaW5jbHVkZS9hc20vbmV0dGVsLmggYi9hcmNoL202OGsvaW5jbHVkZS9hc20vbmV0dGVs LmgKaW5kZXggNDU3MTZlYWQ3YjlkLi40MDM3Mzc3YzAwNDggMTAwNjQ0Ci0tLSBhL2FyY2gvbTY4 ay9pbmNsdWRlL2FzbS9uZXR0ZWwuaAorKysgYi9hcmNoL202OGsvaW5jbHVkZS9hc20vbmV0dGVs LmgKQEAgLTQ3LDE0ICs0NywxNCBAQCBleHRlcm4gdm9sYXRpbGUgdW5zaWduZWQgc2hvcnQgcHBk YXRhOwogICoJVGhlc2UgZnVuY3Rpb25zIGRlZmluZWQgdG8gZ2l2ZSBxdWFzaSBnZW5lcmljIGFj Y2VzcyB0byB0aGUKICAqCVBQSU8gYml0cyB1c2VkIGZvciBEVFIvRENELgogICovCi1zdGF0aWMg X19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgbWNmX2dldHBwZGF0YSh2b2lkKQorc3RhdGljIGlubGlu ZSB1bnNpZ25lZCBpbnQgbWNmX2dldHBwZGF0YSh2b2lkKQogewogCXZvbGF0aWxlIHVuc2lnbmVk IHNob3J0ICpwcDsKIAlwcCA9ICh2b2xhdGlsZSB1bnNpZ25lZCBzaG9ydCAqKSBNQ0ZTSU1fUEFE QVQ7CiAJcmV0dXJuKCh1bnNpZ25lZCBpbnQpICpwcCk7CiB9CiAKLXN0YXRpYyBfX2lubGluZV9f IHZvaWQgbWNmX3NldHBwZGF0YSh1bnNpZ25lZCBpbnQgbWFzaywgdW5zaWduZWQgaW50IGJpdHMp CitzdGF0aWMgaW5saW5lIHZvaWQgbWNmX3NldHBwZGF0YSh1bnNpZ25lZCBpbnQgbWFzaywgdW5z aWduZWQgaW50IGJpdHMpCiB7CiAJdm9sYXRpbGUgdW5zaWduZWQgc2hvcnQgKnBwOwogCXBwID0g KHZvbGF0aWxlIHVuc2lnbmVkIHNob3J0ICopIE1DRlNJTV9QQURBVDsKQEAgLTg2LDEyICs4Niwx MiBAQCBzdGF0aWMgX19pbmxpbmVfXyB2b2lkIG1jZl9zZXRwcGRhdGEodW5zaWduZWQgaW50IG1h c2ssIHVuc2lnbmVkIGludCBiaXRzKQogICoJVGhlc2UgZnVuY3Rpb25zIGRlZmluZWQgdG8gZ2l2 ZSBxdWFzaSBnZW5lcmljIGFjY2VzcyB0byB0aGUKICAqCVBQSU8gYml0cyB1c2VkIGZvciBEVFIv RENELgogICovCi1zdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgbWNmX2dldHBwZGF0YSh2 b2lkKQorc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgbWNmX2dldHBwZGF0YSh2b2lkKQogewog CXJldHVybiByZWFkdyhNQ0ZTSU1fUEJEQVQpOwogfQogCi1zdGF0aWMgX19pbmxpbmVfXyB2b2lk IG1jZl9zZXRwcGRhdGEodW5zaWduZWQgaW50IG1hc2ssIHVuc2lnbmVkIGludCBiaXRzKQorc3Rh dGljIGlubGluZSB2b2lkIG1jZl9zZXRwcGRhdGEodW5zaWduZWQgaW50IG1hc2ssIHVuc2lnbmVk IGludCBiaXRzKQogewogCXdyaXRldygocmVhZHcoTUNGU0lNX1BCREFUKSAmIH5tYXNrKSB8IGJp dHMsIE1DRlNJTV9QQkRBVCk7CiB9CmRpZmYgLS1naXQgYS9hcmNoL202OGsvbWFjL2lvcC5jIGIv YXJjaC9tNjhrL21hYy9pb3AuYwppbmRleCA5YmZhMTcwMTU3NjguLjI4OGIwNzUzMDgwMiAxMDA2 NDQKLS0tIGEvYXJjaC9tNjhrL21hYy9pb3AuYworKysgYi9hcmNoL202OGsvbWFjL2lvcC5jCkBA IC0xNjEsNDIgKzE2MSw0MiBAQCBpcnFyZXR1cm5fdCBpb3BfaXNtX2lycShpbnQsIHZvaWQgKik7 CiAgKiBQcml2YXRlIGFjY2VzcyBmdW5jdGlvbnMKICAqLwogCi1zdGF0aWMgX19pbmxpbmVfXyB2 b2lkIGlvcF9sb2FkYWRkcih2b2xhdGlsZSBzdHJ1Y3QgbWFjX2lvcCAqaW9wLCBfX3UxNiBhZGRy KQorc3RhdGljIGlubGluZSB2b2lkIGlvcF9sb2FkYWRkcih2b2xhdGlsZSBzdHJ1Y3QgbWFjX2lv cCAqaW9wLCBfX3UxNiBhZGRyKQogewogCWlvcC0+cmFtX2FkZHJfbG8gPSBhZGRyOwogCWlvcC0+ cmFtX2FkZHJfaGkgPSBhZGRyID4+IDg7CiB9CiAKLXN0YXRpYyBfX2lubGluZV9fIF9fdTggaW9w X3JlYWRiKHZvbGF0aWxlIHN0cnVjdCBtYWNfaW9wICppb3AsIF9fdTE2IGFkZHIpCitzdGF0aWMg aW5saW5lIF9fdTggaW9wX3JlYWRiKHZvbGF0aWxlIHN0cnVjdCBtYWNfaW9wICppb3AsIF9fdTE2 IGFkZHIpCiB7CiAJaW9wLT5yYW1fYWRkcl9sbyA9IGFkZHI7CiAJaW9wLT5yYW1fYWRkcl9oaSA9 IGFkZHIgPj4gODsKIAlyZXR1cm4gaW9wLT5yYW1fZGF0YTsKIH0KIAotc3RhdGljIF9faW5saW5l X18gdm9pZCBpb3Bfd3JpdGViKHZvbGF0aWxlIHN0cnVjdCBtYWNfaW9wICppb3AsIF9fdTE2IGFk ZHIsIF9fdTggZGF0YSkKK3N0YXRpYyBpbmxpbmUgdm9pZCBpb3Bfd3JpdGViKHZvbGF0aWxlIHN0 cnVjdCBtYWNfaW9wICppb3AsIF9fdTE2IGFkZHIsIF9fdTggZGF0YSkKIHsKIAlpb3AtPnJhbV9h ZGRyX2xvID0gYWRkcjsKIAlpb3AtPnJhbV9hZGRyX2hpID0gYWRkciA+PiA4OwogCWlvcC0+cmFt X2RhdGEgPSBkYXRhOwogfQogCi1zdGF0aWMgX19pbmxpbmVfXyB2b2lkIGlvcF9zdG9wKHZvbGF0 aWxlIHN0cnVjdCBtYWNfaW9wICppb3ApCitzdGF0aWMgaW5saW5lIHZvaWQgaW9wX3N0b3Aodm9s YXRpbGUgc3RydWN0IG1hY19pb3AgKmlvcCkKIHsKIAlpb3AtPnN0YXR1c19jdHJsICY9IH5JT1Bf UlVOOwogfQogCi1zdGF0aWMgX19pbmxpbmVfXyB2b2lkIGlvcF9zdGFydCh2b2xhdGlsZSBzdHJ1 Y3QgbWFjX2lvcCAqaW9wKQorc3RhdGljIGlubGluZSB2b2lkIGlvcF9zdGFydCh2b2xhdGlsZSBz dHJ1Y3QgbWFjX2lvcCAqaW9wKQogewogCWlvcC0+c3RhdHVzX2N0cmwgPSBJT1BfUlVOIHwgSU9Q X0FVVE9JTkM7CiB9CiAKLXN0YXRpYyBfX2lubGluZV9fIHZvaWQgaW9wX2J5cGFzcyh2b2xhdGls ZSBzdHJ1Y3QgbWFjX2lvcCAqaW9wKQorc3RhdGljIGlubGluZSB2b2lkIGlvcF9ieXBhc3Modm9s YXRpbGUgc3RydWN0IG1hY19pb3AgKmlvcCkKIHsKIAlpb3AtPnN0YXR1c19jdHJsIHw9IElPUF9C WVBBU1M7CiB9CiAKLXN0YXRpYyBfX2lubGluZV9fIHZvaWQgaW9wX2ludGVycnVwdCh2b2xhdGls ZSBzdHJ1Y3QgbWFjX2lvcCAqaW9wKQorc3RhdGljIGlubGluZSB2b2lkIGlvcF9pbnRlcnJ1cHQo dm9sYXRpbGUgc3RydWN0IG1hY19pb3AgKmlvcCkKIHsKIAlpb3AtPnN0YXR1c19jdHJsIHw9IElP UF9JUlE7CiB9CmRpZmYgLS1naXQgYS9hcmNoL21pcHMvaW5jbHVkZS9hc20vYXRvbWljLmggYi9h cmNoL21pcHMvaW5jbHVkZS9hc20vYXRvbWljLmgKaW5kZXggZDRlYTdhNWI2MGNmLi5jMTc5YzEy Y2Q3YzcgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9hdG9taWMuaAorKysgYi9h cmNoL21pcHMvaW5jbHVkZS9hc20vYXRvbWljLmgKQEAgLTUzLDcgKzUzLDcgQEAKICNkZWZpbmUg YXRvbWljX3NldCh2LCBpKQlXUklURV9PTkNFKCh2KS0+Y291bnRlciwgKGkpKQogCiAjZGVmaW5l IEFUT01JQ19PUChvcCwgY19vcCwgYXNtX29wKQkJCQkJICAgICAgXAotc3RhdGljIF9faW5saW5l X18gdm9pZCBhdG9taWNfIyNvcChpbnQgaSwgYXRvbWljX3QgKiB2KQkJCSAgICAgIFwKK3N0YXRp YyBpbmxpbmUgdm9pZCBhdG9taWNfIyNvcChpbnQgaSwgYXRvbWljX3QgKiB2KQkJCSAgICAgIFwK IHsJCQkJCQkJCQkgICAgICBcCiAJaWYgKGtlcm5lbF91c2VzX2xsc2MpIHsJCQkJCQkgICAgICBc CiAJCWludCB0ZW1wOwkJCQkJCSAgICAgIFwKQEAgLTc3LDcgKzc3LDcgQEAgc3RhdGljIF9faW5s aW5lX18gdm9pZCBhdG9taWNfIyNvcChpbnQgaSwgYXRvbWljX3QgKiB2KQkJCSAgICAgIFwKIH0K IAogI2RlZmluZSBBVE9NSUNfT1BfUkVUVVJOKG9wLCBjX29wLCBhc21fb3ApCQkJCSAgICAgIFwK LXN0YXRpYyBfX2lubGluZV9fIGludCBhdG9taWNfIyNvcCMjX3JldHVybl9yZWxheGVkKGludCBp LCBhdG9taWNfdCAqIHYpCSAgICAgIFwKK3N0YXRpYyBpbmxpbmUgaW50IGF0b21pY18jI29wIyNf cmV0dXJuX3JlbGF4ZWQoaW50IGksIGF0b21pY190ICogdikJICAgICAgXAogewkJCQkJCQkJCSAg ICAgIFwKIAlpbnQgcmVzdWx0OwkJCQkJCQkgICAgICBcCiAJCQkJCQkJCQkgICAgICBcCkBAIC0x MDksNyArMTA5LDcgQEAgc3RhdGljIF9faW5saW5lX18gaW50IGF0b21pY18jI29wIyNfcmV0dXJu X3JlbGF4ZWQoaW50IGksIGF0b21pY190ICogdikJICAgICAgXAogfQogCiAjZGVmaW5lIEFUT01J Q19GRVRDSF9PUChvcCwgY19vcCwgYXNtX29wKQkJCQkgICAgICBcCi1zdGF0aWMgX19pbmxpbmVf XyBpbnQgYXRvbWljX2ZldGNoXyMjb3AjI19yZWxheGVkKGludCBpLCBhdG9taWNfdCAqIHYpCSAg ICAgIFwKK3N0YXRpYyBpbmxpbmUgaW50IGF0b21pY19mZXRjaF8jI29wIyNfcmVsYXhlZChpbnQg aSwgYXRvbWljX3QgKiB2KQkgICAgICBcCiB7CQkJCQkJCQkJICAgICAgXAogCWludCByZXN1bHQ7 CQkJCQkJCSAgICAgIFwKIAkJCQkJCQkJCSAgICAgIFwKQEAgLTE3OCw3ICsxNzgsNyBAQCBBVE9N SUNfT1BTKHhvciwgXj0sIHhvcikKICAqIEF0b21pY2FsbHkgdGVzdCBAdiBhbmQgc3VidHJhY3Qg QGkgaWYgQHYgaXMgZ3JlYXRlciBvciBlcXVhbCB0aGFuIEBpLgogICogVGhlIGZ1bmN0aW9uIHJl dHVybnMgdGhlIG9sZCB2YWx1ZSBvZiBAdiBtaW51cyBAaS4KICAqLwotc3RhdGljIF9faW5saW5l X18gaW50IGF0b21pY19zdWJfaWZfcG9zaXRpdmUoaW50IGksIGF0b21pY190ICogdikKK3N0YXRp YyBpbmxpbmUgaW50IGF0b21pY19zdWJfaWZfcG9zaXRpdmUoaW50IGksIGF0b21pY190ICogdikK IHsKIAlpbnQgcmVzdWx0OwogCkBAIC0yNDYsNyArMjQ2LDcgQEAgc3RhdGljIF9faW5saW5lX18g aW50IGF0b21pY19zdWJfaWZfcG9zaXRpdmUoaW50IGksIGF0b21pY190ICogdikKICNkZWZpbmUg YXRvbWljNjRfc2V0KHYsIGkpCVdSSVRFX09OQ0UoKHYpLT5jb3VudGVyLCAoaSkpCiAKICNkZWZp bmUgQVRPTUlDNjRfT1Aob3AsIGNfb3AsIGFzbV9vcCkJCQkJCSAgICAgIFwKLXN0YXRpYyBfX2lu bGluZV9fIHZvaWQgYXRvbWljNjRfIyNvcChsb25nIGksIGF0b21pYzY0X3QgKiB2KQkJICAgICAg XAorc3RhdGljIGlubGluZSB2b2lkIGF0b21pYzY0XyMjb3AobG9uZyBpLCBhdG9taWM2NF90ICog dikJCSAgICAgIFwKIHsJCQkJCQkJCQkgICAgICBcCiAJaWYgKGtlcm5lbF91c2VzX2xsc2MpIHsJ CQkJCQkgICAgICBcCiAJCWxvbmcgdGVtcDsJCQkJCQkgICAgICBcCkBAIC0yNzAsNyArMjcwLDcg QEAgc3RhdGljIF9faW5saW5lX18gdm9pZCBhdG9taWM2NF8jI29wKGxvbmcgaSwgYXRvbWljNjRf dCAqIHYpCQkgICAgICBcCiB9CiAKICNkZWZpbmUgQVRPTUlDNjRfT1BfUkVUVVJOKG9wLCBjX29w LCBhc21fb3ApCQkJCSAgICAgIFwKLXN0YXRpYyBfX2lubGluZV9fIGxvbmcgYXRvbWljNjRfIyNv cCMjX3JldHVybl9yZWxheGVkKGxvbmcgaSwgYXRvbWljNjRfdCAqIHYpIFwKK3N0YXRpYyBpbmxp bmUgbG9uZyBhdG9taWM2NF8jI29wIyNfcmV0dXJuX3JlbGF4ZWQobG9uZyBpLCBhdG9taWM2NF90 ICogdikgXAogewkJCQkJCQkJCSAgICAgIFwKIAlsb25nIHJlc3VsdDsJCQkJCQkJICAgICAgXAog CQkJCQkJCQkJICAgICAgXApAQCAtMzAyLDcgKzMwMiw3IEBAIHN0YXRpYyBfX2lubGluZV9fIGxv bmcgYXRvbWljNjRfIyNvcCMjX3JldHVybl9yZWxheGVkKGxvbmcgaSwgYXRvbWljNjRfdCAqIHYp IFwKIH0KIAogI2RlZmluZSBBVE9NSUM2NF9GRVRDSF9PUChvcCwgY19vcCwgYXNtX29wKQkJCQkg ICAgICBcCi1zdGF0aWMgX19pbmxpbmVfXyBsb25nIGF0b21pYzY0X2ZldGNoXyMjb3AjI19yZWxh eGVkKGxvbmcgaSwgYXRvbWljNjRfdCAqIHYpICBcCitzdGF0aWMgaW5saW5lIGxvbmcgYXRvbWlj NjRfZmV0Y2hfIyNvcCMjX3JlbGF4ZWQobG9uZyBpLCBhdG9taWM2NF90ICogdikgIFwKIHsJCQkJ CQkJCQkgICAgICBcCiAJbG9uZyByZXN1bHQ7CQkJCQkJCSAgICAgIFwKIAkJCQkJCQkJCSAgICAg IFwKQEAgLTM3Miw3ICszNzIsNyBAQCBBVE9NSUM2NF9PUFMoeG9yLCBePSwgeG9yKQogICogQXRv bWljYWxseSB0ZXN0IEB2IGFuZCBzdWJ0cmFjdCBAaSBpZiBAdiBpcyBncmVhdGVyIG9yIGVxdWFs IHRoYW4gQGkuCiAgKiBUaGUgZnVuY3Rpb24gcmV0dXJucyB0aGUgb2xkIHZhbHVlIG9mIEB2IG1p bnVzIEBpLgogICovCi1zdGF0aWMgX19pbmxpbmVfXyBsb25nIGF0b21pYzY0X3N1Yl9pZl9wb3Np dGl2ZShsb25nIGksIGF0b21pYzY0X3QgKiB2KQorc3RhdGljIGlubGluZSBsb25nIGF0b21pYzY0 X3N1Yl9pZl9wb3NpdGl2ZShsb25nIGksIGF0b21pYzY0X3QgKiB2KQogewogCWxvbmcgcmVzdWx0 OwogCmRpZmYgLS1naXQgYS9hcmNoL21pcHMvaW5jbHVkZS9hc20vY2hlY2tzdW0uaCBiL2FyY2gv bWlwcy9pbmNsdWRlL2FzbS9jaGVja3N1bS5oCmluZGV4IGU4MTYxZTRkZmRlNy4uOTNmM2ZiYzZl OTE3IDEwMDY0NAotLS0gYS9hcmNoL21pcHMvaW5jbHVkZS9hc20vY2hlY2tzdW0uaAorKysgYi9h cmNoL21pcHMvaW5jbHVkZS9hc20vY2hlY2tzdW0uaApAQCAtMjE1LDcgKzIxNSw3IEBAIHN0YXRp YyBpbmxpbmUgX19zdW0xNiBpcF9jb21wdXRlX2NzdW0oY29uc3Qgdm9pZCAqYnVmZiwgaW50IGxl bikKIH0KIAogI2RlZmluZSBfSEFWRV9BUkNIX0lQVjZfQ1NVTQotc3RhdGljIF9faW5saW5lX18g X19zdW0xNiBjc3VtX2lwdjZfbWFnaWMoY29uc3Qgc3RydWN0IGluNl9hZGRyICpzYWRkciwKK3N0 YXRpYyBpbmxpbmUgX19zdW0xNiBjc3VtX2lwdjZfbWFnaWMoY29uc3Qgc3RydWN0IGluNl9hZGRy ICpzYWRkciwKIAkJCQkJICBjb25zdCBzdHJ1Y3QgaW42X2FkZHIgKmRhZGRyLAogCQkJCQkgIF9f dTMyIGxlbiwgX191OCBwcm90bywKIAkJCQkJICBfX3dzdW0gc3VtKQpkaWZmIC0tZ2l0IGEvYXJj aC9taXBzL2luY2x1ZGUvYXNtL2RtYS5oIGIvYXJjaC9taXBzL2luY2x1ZGUvYXNtL2RtYS5oCmlu ZGV4IGJlNzI2Yjk0MzUzMC4uODVjYzZiNWRmOGM5IDEwMDY0NAotLS0gYS9hcmNoL21pcHMvaW5j bHVkZS9hc20vZG1hLmgKKysrIGIvYXJjaC9taXBzL2luY2x1ZGUvYXNtL2RtYS5oCkBAIC0xNTcs MjAgKzE1NywyMCBAQAogCiBleHRlcm4gc3BpbmxvY2tfdCAgZG1hX3NwaW5fbG9jazsKIAotc3Rh dGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZyBjbGFpbV9kbWFfbG9jayh2b2lkKQorc3RhdGlj IGlubGluZSB1bnNpZ25lZCBsb25nIGNsYWltX2RtYV9sb2NrKHZvaWQpCiB7CiAJdW5zaWduZWQg bG9uZyBmbGFnczsKIAlzcGluX2xvY2tfaXJxc2F2ZSgmZG1hX3NwaW5fbG9jaywgZmxhZ3MpOwog CXJldHVybiBmbGFnczsKIH0KIAotc3RhdGljIF9faW5saW5lX18gdm9pZCByZWxlYXNlX2RtYV9s b2NrKHVuc2lnbmVkIGxvbmcgZmxhZ3MpCitzdGF0aWMgaW5saW5lIHZvaWQgcmVsZWFzZV9kbWFf bG9jayh1bnNpZ25lZCBsb25nIGZsYWdzKQogewogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRt YV9zcGluX2xvY2ssIGZsYWdzKTsKIH0KIAogLyogZW5hYmxlL2Rpc2FibGUgYSBzcGVjaWZpYyBE TUEgY2hhbm5lbCAqLwotc3RhdGljIF9faW5saW5lX18gdm9pZCBlbmFibGVfZG1hKHVuc2lnbmVk IGludCBkbWFucikKK3N0YXRpYyBpbmxpbmUgdm9pZCBlbmFibGVfZG1hKHVuc2lnbmVkIGludCBk bWFucikKIHsKIAlpZiAoZG1hbnI8PTMpCiAJCWRtYV9vdXRiKGRtYW5yLAkgRE1BMV9NQVNLX1JF Ryk7CkBAIC0xNzgsNyArMTc4LDcgQEAgc3RhdGljIF9faW5saW5lX18gdm9pZCBlbmFibGVfZG1h KHVuc2lnbmVkIGludCBkbWFucikKIAkJZG1hX291dGIoZG1hbnIgJiAzLCAgRE1BMl9NQVNLX1JF Ryk7CiB9CiAKLXN0YXRpYyBfX2lubGluZV9fIHZvaWQgZGlzYWJsZV9kbWEodW5zaWduZWQgaW50 IGRtYW5yKQorc3RhdGljIGlubGluZSB2b2lkIGRpc2FibGVfZG1hKHVuc2lnbmVkIGludCBkbWFu cikKIHsKIAlpZiAoZG1hbnI8PTMpCiAJCWRtYV9vdXRiKGRtYW5yIHwgNCwgIERNQTFfTUFTS19S RUcpOwpAQCAtMTkzLDcgKzE5Myw3IEBAIHN0YXRpYyBfX2lubGluZV9fIHZvaWQgZGlzYWJsZV9k bWEodW5zaWduZWQgaW50IGRtYW5yKQogICogLS0tIEluIG9yZGVyIHRvIGRvIHRoYXQsIHRoZSBE TUEgcm91dGluZXMgYmVsb3cgc2hvdWxkIC0tLQogICogLS0tIG9ubHkgYmUgdXNlZCB3aGlsZSBo b2xkaW5nIHRoZSBETUEgbG9jayAhIC0tLQogICovCi1zdGF0aWMgX19pbmxpbmVfXyB2b2lkIGNs ZWFyX2RtYV9mZih1bnNpZ25lZCBpbnQgZG1hbnIpCitzdGF0aWMgaW5saW5lIHZvaWQgY2xlYXJf ZG1hX2ZmKHVuc2lnbmVkIGludCBkbWFucikKIHsKIAlpZiAoZG1hbnI8PTMpCiAJCWRtYV9vdXRi KDAsICBETUExX0NMRUFSX0ZGX1JFRyk7CkBAIC0yMDIsNyArMjAyLDcgQEAgc3RhdGljIF9faW5s aW5lX18gdm9pZCBjbGVhcl9kbWFfZmYodW5zaWduZWQgaW50IGRtYW5yKQogfQogCiAvKiBzZXQg bW9kZSAoYWJvdmUpIGZvciBhIHNwZWNpZmljIERNQSBjaGFubmVsICovCi1zdGF0aWMgX19pbmxp bmVfXyB2b2lkIHNldF9kbWFfbW9kZSh1bnNpZ25lZCBpbnQgZG1hbnIsIGNoYXIgbW9kZSkKK3N0 YXRpYyBpbmxpbmUgdm9pZCBzZXRfZG1hX21vZGUodW5zaWduZWQgaW50IGRtYW5yLCBjaGFyIG1v ZGUpCiB7CiAJaWYgKGRtYW5yPD0zKQogCQlkbWFfb3V0Yihtb2RlIHwgZG1hbnIsCURNQTFfTU9E RV9SRUcpOwpAQCAtMjE1LDcgKzIxNSw3IEBAIHN0YXRpYyBfX2lubGluZV9fIHZvaWQgc2V0X2Rt YV9tb2RlKHVuc2lnbmVkIGludCBkbWFuciwgY2hhciBtb2RlKQogICogdGhlIGxvd2VyIDE2IGJp dHMgb2YgdGhlIERNQSBjdXJyZW50IGFkZHJlc3MgcmVnaXN0ZXIsIGJ1dCBhIDY0ayBib3VuZGFy eQogICogbWF5IGhhdmUgYmVlbiBjcm9zc2VkLgogICovCi1zdGF0aWMgX19pbmxpbmVfXyB2b2lk IHNldF9kbWFfcGFnZSh1bnNpZ25lZCBpbnQgZG1hbnIsIGNoYXIgcGFnZW5yKQorc3RhdGljIGlu bGluZSB2b2lkIHNldF9kbWFfcGFnZSh1bnNpZ25lZCBpbnQgZG1hbnIsIGNoYXIgcGFnZW5yKQog ewogCXN3aXRjaChkbWFucikgewogCQljYXNlIDA6CkBAIC0yNDYsNyArMjQ2LDcgQEAgc3RhdGlj IF9faW5saW5lX18gdm9pZCBzZXRfZG1hX3BhZ2UodW5zaWduZWQgaW50IGRtYW5yLCBjaGFyIHBh Z2VucikKIC8qIFNldCB0cmFuc2ZlciBhZGRyZXNzICYgcGFnZSBiaXRzIGZvciBzcGVjaWZpYyBE TUEgY2hhbm5lbC4KICAqIEFzc3VtZXMgZG1hIGZsaXBmbG9wIGlzIGNsZWFyLgogICovCi1zdGF0 aWMgX19pbmxpbmVfXyB2b2lkIHNldF9kbWFfYWRkcih1bnNpZ25lZCBpbnQgZG1hbnIsIHVuc2ln bmVkIGludCBhKQorc3RhdGljIGlubGluZSB2b2lkIHNldF9kbWFfYWRkcih1bnNpZ25lZCBpbnQg ZG1hbnIsIHVuc2lnbmVkIGludCBhKQogewogCXNldF9kbWFfcGFnZShkbWFuciwgYT4+MTYpOwog CWlmIChkbWFuciA8PSAzKQkgewpAQCAtMjY3LDcgKzI2Nyw3IEBAIHN0YXRpYyBfX2lubGluZV9f IHZvaWQgc2V0X2RtYV9hZGRyKHVuc2lnbmVkIGludCBkbWFuciwgdW5zaWduZWQgaW50IGEpCiAg KiBBc3N1bWVzIGRtYSBmbGlwLWZsb3AgaXMgY2xlYXIuCiAgKiBOT1RFIDI6ICJjb3VudCIgcmVw cmVzZW50cyBfYnl0ZXNfIGFuZCBtdXN0IGJlIGV2ZW4gZm9yIGNoYW5uZWxzIDUtNy4KICAqLwot c3RhdGljIF9faW5saW5lX18gdm9pZCBzZXRfZG1hX2NvdW50KHVuc2lnbmVkIGludCBkbWFuciwg dW5zaWduZWQgaW50IGNvdW50KQorc3RhdGljIGlubGluZSB2b2lkIHNldF9kbWFfY291bnQodW5z aWduZWQgaW50IGRtYW5yLCB1bnNpZ25lZCBpbnQgY291bnQpCiB7CiAJY291bnQtLTsKIAlpZiAo ZG1hbnIgPD0gMykJIHsKQEAgLTI4OCw3ICsyODgsNyBAQCBzdGF0aWMgX19pbmxpbmVfXyB2b2lk IHNldF9kbWFfY291bnQodW5zaWduZWQgaW50IGRtYW5yLCB1bnNpZ25lZCBpbnQgY291bnQpCiAg KgogICogQXNzdW1lcyBETUEgZmxpcC1mbG9wIGlzIGNsZWFyLgogICovCi1zdGF0aWMgX19pbmxp bmVfXyBpbnQgZ2V0X2RtYV9yZXNpZHVlKHVuc2lnbmVkIGludCBkbWFucikKK3N0YXRpYyBpbmxp bmUgaW50IGdldF9kbWFfcmVzaWR1ZSh1bnNpZ25lZCBpbnQgZG1hbnIpCiB7CiAJdW5zaWduZWQg aW50IGlvX3BvcnQgPSAoZG1hbnI8PTMpPyAoKGRtYW5yJjMpPDwxKSArIDEgKyBJT19ETUExX0JB U0UKIAkJCQkJIDogKChkbWFuciYzKTw8MikgKyAyICsgSU9fRE1BMl9CQVNFOwpkaWZmIC0tZ2l0 IGEvYXJjaC9taXBzL2luY2x1ZGUvYXNtL2phenouaCBiL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9q YXp6LmgKaW5kZXggYTYxOTcwZDAxYTgxLi45NDAxNzgwNTE5ZWIgMTAwNjQ0Ci0tLSBhL2FyY2gv bWlwcy9pbmNsdWRlL2FzbS9qYXp6LmgKKysrIGIvYXJjaC9taXBzL2luY2x1ZGUvYXNtL2phenou aApAQCAtNzIsNyArNzIsNyBAQAogCiAjaWZuZGVmIF9fQVNTRU1CTFlfXwogCi1zdGF0aWMgX19p bmxpbmVfXyB2b2lkIHBpY2Ffc2V0X2xlZCh1bnNpZ25lZCBpbnQgYml0cykKK3N0YXRpYyBpbmxp bmUgdm9pZCBwaWNhX3NldF9sZWQodW5zaWduZWQgaW50IGJpdHMpCiB7CiAJdm9sYXRpbGUgdW5z aWduZWQgaW50ICpsZWRfcmVnaXN0ZXIgPSAodW5zaWduZWQgaW50ICopIFBJQ0FfTEVEOwogCmRp ZmYgLS1naXQgYS9hcmNoL21pcHMvaW5jbHVkZS9hc20vbG9jYWwuaCBiL2FyY2gvbWlwcy9pbmNs dWRlL2FzbS9sb2NhbC5oCmluZGV4IGFjODI2NGVjYTFlOS4uMDU2YjRhNWUwMGY0IDEwMDY0NAot LS0gYS9hcmNoL21pcHMvaW5jbHVkZS9hc20vbG9jYWwuaAorKysgYi9hcmNoL21pcHMvaW5jbHVk ZS9hc20vbG9jYWwuaApAQCAtMjcsNyArMjcsNyBAQCB0eXBlZGVmIHN0cnVjdAogLyoKICAqIFNh bWUgYXMgYWJvdmUsIGJ1dCByZXR1cm4gdGhlIHJlc3VsdCB2YWx1ZQogICovCi1zdGF0aWMgX19p bmxpbmVfXyBsb25nIGxvY2FsX2FkZF9yZXR1cm4obG9uZyBpLCBsb2NhbF90ICogbCkKK3N0YXRp YyBpbmxpbmUgbG9uZyBsb2NhbF9hZGRfcmV0dXJuKGxvbmcgaSwgbG9jYWxfdCAqIGwpCiB7CiAJ dW5zaWduZWQgbG9uZyByZXN1bHQ7CiAKQEAgLTcyLDcgKzcyLDcgQEAgc3RhdGljIF9faW5saW5l X18gbG9uZyBsb2NhbF9hZGRfcmV0dXJuKGxvbmcgaSwgbG9jYWxfdCAqIGwpCiAJcmV0dXJuIHJl c3VsdDsKIH0KIAotc3RhdGljIF9faW5saW5lX18gbG9uZyBsb2NhbF9zdWJfcmV0dXJuKGxvbmcg aSwgbG9jYWxfdCAqIGwpCitzdGF0aWMgaW5saW5lIGxvbmcgbG9jYWxfc3ViX3JldHVybihsb25n IGksIGxvY2FsX3QgKiBsKQogewogCXVuc2lnbmVkIGxvbmcgcmVzdWx0OwogCmRpZmYgLS1naXQg YS9hcmNoL21pcHMvaW5jbHVkZS9hc20vc3RyaW5nLmggYi9hcmNoL21pcHMvaW5jbHVkZS9hc20v c3RyaW5nLmgKaW5kZXggMjkwMzBjYjM5OGVlLi44NzY0Y2JhMzBlNTAgMTAwNjQ0Ci0tLSBhL2Fy Y2gvbWlwcy9pbmNsdWRlL2FzbS9zdHJpbmcuaAorKysgYi9hcmNoL21pcHMvaW5jbHVkZS9hc20v c3RyaW5nLmgKQEAgLTIwLDcgKzIwLDcgQEAKICNpZm5kZWYgSU5fU1RSSU5HX0MKIAogI2RlZmlu ZSBfX0hBVkVfQVJDSF9TVFJDUFkKLXN0YXRpYyBfX2lubGluZV9fIGNoYXIgKnN0cmNweShjaGFy ICpfX2Rlc3QsIF9fY29uc3RfXyBjaGFyICpfX3NyYykKK3N0YXRpYyBpbmxpbmUgY2hhciAqc3Ry Y3B5KGNoYXIgKl9fZGVzdCwgX19jb25zdF9fIGNoYXIgKl9fc3JjKQogewogICBjaGFyICpfX3hk ZXN0ID0gX19kZXN0OwogCkBAIC00Miw3ICs0Miw3IEBAIHN0YXRpYyBfX2lubGluZV9fIGNoYXIg KnN0cmNweShjaGFyICpfX2Rlc3QsIF9fY29uc3RfXyBjaGFyICpfX3NyYykKIH0KIAogI2RlZmlu ZSBfX0hBVkVfQVJDSF9TVFJOQ1BZCi1zdGF0aWMgX19pbmxpbmVfXyBjaGFyICpzdHJuY3B5KGNo YXIgKl9fZGVzdCwgX19jb25zdF9fIGNoYXIgKl9fc3JjLCBzaXplX3QgX19uKQorc3RhdGljIGlu bGluZSBjaGFyICpzdHJuY3B5KGNoYXIgKl9fZGVzdCwgX19jb25zdF9fIGNoYXIgKl9fc3JjLCBz aXplX3QgX19uKQogewogICBjaGFyICpfX3hkZXN0ID0gX19kZXN0OwogCkBAIC03MCw3ICs3MCw3 IEBAIHN0YXRpYyBfX2lubGluZV9fIGNoYXIgKnN0cm5jcHkoY2hhciAqX19kZXN0LCBfX2NvbnN0 X18gY2hhciAqX19zcmMsIHNpemVfdCBfX24pCiB9CiAKICNkZWZpbmUgX19IQVZFX0FSQ0hfU1RS Q01QCi1zdGF0aWMgX19pbmxpbmVfXyBpbnQgc3RyY21wKF9fY29uc3RfXyBjaGFyICpfX2NzLCBf X2NvbnN0X18gY2hhciAqX19jdCkKK3N0YXRpYyBpbmxpbmUgaW50IHN0cmNtcChfX2NvbnN0X18g Y2hhciAqX19jcywgX19jb25zdF9fIGNoYXIgKl9fY3QpCiB7CiAgIGludCBfX3JlczsKIApAQCAt MTAwLDcgKzEwMCw3IEBAIHN0YXRpYyBfX2lubGluZV9fIGludCBzdHJjbXAoX19jb25zdF9fIGNo YXIgKl9fY3MsIF9fY29uc3RfXyBjaGFyICpfX2N0KQogI2VuZGlmIC8qICFkZWZpbmVkKElOX1NU UklOR19DKSAqLwogCiAjZGVmaW5lIF9fSEFWRV9BUkNIX1NUUk5DTVAKLXN0YXRpYyBfX2lubGlu ZV9fIGludAorc3RhdGljIGlubGluZSBpbnQKIHN0cm5jbXAoX19jb25zdF9fIGNoYXIgKl9fY3Ms IF9fY29uc3RfXyBjaGFyICpfX2N0LCBzaXplX3QgX19jb3VudCkKIHsKIAlpbnQgX19yZXM7CmRp ZmYgLS1naXQgYS9hcmNoL21pcHMva2VybmVsL2JpbmZtdF9lbGZuMzIuYyBiL2FyY2gvbWlwcy9r ZXJuZWwvYmluZm10X2VsZm4zMi5jCmluZGV4IDdhMTI3NjNkNTUzYS4uYzg0YjBkNzE4ZGQ0IDEw MDY0NAotLS0gYS9hcmNoL21pcHMva2VybmVsL2JpbmZtdF9lbGZuMzIuYworKysgYi9hcmNoL21p cHMva2VybmVsL2JpbmZtdF9lbGZuMzIuYwpAQCAtODIsNyArODIsNyBAQCBzdHJ1Y3QgZWxmX3By cHNpbmZvMzIKICNkZWZpbmUgaW5pdF9lbGZfYmluZm10IGluaXRfZWxmbjMyX2JpbmZtdAogCiAj ZGVmaW5lIGppZmZpZXNfdG9fdGltZXZhbCBqaWZmaWVzX3RvX29sZF90aW1ldmFsMzIKLXN0YXRp YyBfX2lubGluZV9fIHZvaWQKK3N0YXRpYyBpbmxpbmUgdm9pZAogamlmZmllc190b19vbGRfdGlt ZXZhbDMyKHVuc2lnbmVkIGxvbmcgamlmZmllcywgc3RydWN0IG9sZF90aW1ldmFsMzIgKnZhbHVl KQogewogCS8qCmRpZmYgLS1naXQgYS9hcmNoL25kczMyL2luY2x1ZGUvYXNtL3N3YWIuaCBiL2Fy Y2gvbmRzMzIvaW5jbHVkZS9hc20vc3dhYi5oCmluZGV4IGUwMWE3NTVhMzdkMi4uOGU4Nzk0OWU1 OWZkIDEwMDY0NAotLS0gYS9hcmNoL25kczMyL2luY2x1ZGUvYXNtL3N3YWIuaAorKysgYi9hcmNo L25kczMyL2luY2x1ZGUvYXNtL3N3YWIuaApAQCAtNyw3ICs3LDcgQEAKICNpbmNsdWRlIDxsaW51 eC90eXBlcy5oPgogI2luY2x1ZGUgPGxpbnV4L2NvbXBpbGVyLmg+CiAKLXN0YXRpYyBfX2lubGlu ZV9fIF9fYXR0cmlidXRlX2NvbnN0X18gX191MzIgX19fYXJjaF9fc3dhYjMyKF9fdTMyIHgpCitz dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX2NvbnN0X18gX191MzIgX19fYXJjaF9fc3dhYjMyKF9f dTMyIHgpCiB7CiAJX19hc21fXygid3NiaCAgICUwLCAlMFxuXHQiCS8qIHdvcmQgc3dhcCBieXRl IHdpdGhpbiBoYWxmd29yZCAqLwogCQkicm90cmkgICUwLCAlMCwgIzE2XG4iCkBAIC0xNiw3ICsx Niw3IEBAIHN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX2NvbnN0X18gX191MzIgX19fYXJj aF9fc3dhYjMyKF9fdTMyIHgpCiAJcmV0dXJuIHg7CiB9CiAKLXN0YXRpYyBfX2lubGluZV9fIF9f YXR0cmlidXRlX2NvbnN0X18gX191MTYgX19fYXJjaF9fc3dhYjE2KF9fdTE2IHgpCitzdGF0aWMg aW5saW5lIF9fYXR0cmlidXRlX2NvbnN0X18gX191MTYgX19fYXJjaF9fc3dhYjE2KF9fdTE2IHgp CiB7CiAJX19hc21fXygid3NiaCAgICUwLCAlMFxuIgkvKiB3b3JkIHN3YXAgYnl0ZSB3aXRoaW4g aGFsZndvcmQgKi8KIAkJOiI9ciIoeCkKZGlmZiAtLWdpdCBhL2FyY2gvcGFyaXNjL2luY2x1ZGUv YXNtL2F0b21pYy5oIGIvYXJjaC9wYXJpc2MvaW5jbHVkZS9hc20vYXRvbWljLmgKaW5kZXggMTE4 OTUzZDQxNzYzLi42MGVmYzE4OTZiNWUgMTAwNjQ0Ci0tLSBhL2FyY2gvcGFyaXNjL2luY2x1ZGUv YXNtL2F0b21pYy5oCisrKyBiL2FyY2gvcGFyaXNjL2luY2x1ZGUvYXNtL2F0b21pYy5oCkBAIC01 Niw3ICs1Niw3IEBAIGV4dGVybiBhcmNoX3NwaW5sb2NrX3QgX19hdG9taWNfaGFzaFtBVE9NSUNf SEFTSF9TSVpFXSBfX2xvY2tfYWxpZ25lZDsKICAqIGFyZSBhdG9taWMsIHNvIGEgcmVhZGVyIG5l dmVyIHNlZXMgaW5jb25zaXN0ZW50IHZhbHVlcy4KICAqLwogCi1zdGF0aWMgX19pbmxpbmVfXyB2 b2lkIGF0b21pY19zZXQoYXRvbWljX3QgKnYsIGludCBpKQorc3RhdGljIGlubGluZSB2b2lkIGF0 b21pY19zZXQoYXRvbWljX3QgKnYsIGludCBpKQogewogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJ X2F0b21pY19zcGluX2xvY2tfaXJxc2F2ZSh2LCBmbGFncyk7CkBAIC02OCw3ICs2OCw3IEBAIHN0 YXRpYyBfX2lubGluZV9fIHZvaWQgYXRvbWljX3NldChhdG9taWNfdCAqdiwgaW50IGkpCiAKICNk ZWZpbmUgYXRvbWljX3NldF9yZWxlYXNlKHYsIGkpCWF0b21pY19zZXQoKHYpLCAoaSkpCiAKLXN0 YXRpYyBfX2lubGluZV9fIGludCBhdG9taWNfcmVhZChjb25zdCBhdG9taWNfdCAqdikKK3N0YXRp YyBpbmxpbmUgaW50IGF0b21pY19yZWFkKGNvbnN0IGF0b21pY190ICp2KQogewogCXJldHVybiBS RUFEX09OQ0UoKHYpLT5jb3VudGVyKTsKIH0KQEAgLTc4LDcgKzc4LDcgQEAgc3RhdGljIF9faW5s aW5lX18gaW50IGF0b21pY19yZWFkKGNvbnN0IGF0b21pY190ICp2KQogI2RlZmluZSBhdG9taWNf eGNoZyh2LCBuZXcpICh4Y2hnKCYoKHYpLT5jb3VudGVyKSwgbmV3KSkKIAogI2RlZmluZSBBVE9N SUNfT1Aob3AsIGNfb3ApCQkJCQkJXAotc3RhdGljIF9faW5saW5lX18gdm9pZCBhdG9taWNfIyNv cChpbnQgaSwgYXRvbWljX3QgKnYpCQkJXAorc3RhdGljIGlubGluZSB2b2lkIGF0b21pY18jI29w KGludCBpLCBhdG9taWNfdCAqdikJCQlcCiB7CQkJCQkJCQkJXAogCXVuc2lnbmVkIGxvbmcgZmxh Z3M7CQkJCQkJXAogCQkJCQkJCQkJXApAQCAtODgsNyArODgsNyBAQCBzdGF0aWMgX19pbmxpbmVf XyB2b2lkIGF0b21pY18jI29wKGludCBpLCBhdG9taWNfdCAqdikJCQlcCiB9CQkJCQkJCQkJXAog CiAjZGVmaW5lIEFUT01JQ19PUF9SRVRVUk4ob3AsIGNfb3ApCQkJCQlcCi1zdGF0aWMgX19pbmxp bmVfXyBpbnQgYXRvbWljXyMjb3AjI19yZXR1cm4oaW50IGksIGF0b21pY190ICp2KQkJXAorc3Rh dGljIGlubGluZSBpbnQgYXRvbWljXyMjb3AjI19yZXR1cm4oaW50IGksIGF0b21pY190ICp2KQkJ XAogewkJCQkJCQkJCVwKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwkJCQkJCVwKIAlpbnQgcmV0OwkJ CQkJCQlcCkBAIC0xMDEsNyArMTAxLDcgQEAgc3RhdGljIF9faW5saW5lX18gaW50IGF0b21pY18j I29wIyNfcmV0dXJuKGludCBpLCBhdG9taWNfdCAqdikJCVwKIH0KIAogI2RlZmluZSBBVE9NSUNf RkVUQ0hfT1Aob3AsIGNfb3ApCQkJCQlcCi1zdGF0aWMgX19pbmxpbmVfXyBpbnQgYXRvbWljX2Zl dGNoXyMjb3AoaW50IGksIGF0b21pY190ICp2KQkJXAorc3RhdGljIGlubGluZSBpbnQgYXRvbWlj X2ZldGNoXyMjb3AoaW50IGksIGF0b21pY190ICp2KQkJXAogewkJCQkJCQkJCVwKIAl1bnNpZ25l ZCBsb25nIGZsYWdzOwkJCQkJCVwKIAlpbnQgcmV0OwkJCQkJCQlcCkBAIC0xNDMsNyArMTQzLDcg QEAgQVRPTUlDX09QUyh4b3IsIF49KQogI2RlZmluZSBBVE9NSUM2NF9JTklUKGkpIHsgKGkpIH0K IAogI2RlZmluZSBBVE9NSUM2NF9PUChvcCwgY19vcCkJCQkJCQlcCi1zdGF0aWMgX19pbmxpbmVf XyB2b2lkIGF0b21pYzY0XyMjb3AoczY0IGksIGF0b21pYzY0X3QgKnYpCQlcCitzdGF0aWMgaW5s aW5lIHZvaWQgYXRvbWljNjRfIyNvcChzNjQgaSwgYXRvbWljNjRfdCAqdikJCVwKIHsJCQkJCQkJ CQlcCiAJdW5zaWduZWQgbG9uZyBmbGFnczsJCQkJCQlcCiAJCQkJCQkJCQlcCkBAIC0xNTMsNyAr MTUzLDcgQEAgc3RhdGljIF9faW5saW5lX18gdm9pZCBhdG9taWM2NF8jI29wKHM2NCBpLCBhdG9t aWM2NF90ICp2KQkJXAogfQkJCQkJCQkJCVwKIAogI2RlZmluZSBBVE9NSUM2NF9PUF9SRVRVUk4o b3AsIGNfb3ApCQkJCQlcCi1zdGF0aWMgX19pbmxpbmVfXyBzNjQgYXRvbWljNjRfIyNvcCMjX3Jl dHVybihzNjQgaSwgYXRvbWljNjRfdCAqdikJXAorc3RhdGljIGlubGluZSBzNjQgYXRvbWljNjRf IyNvcCMjX3JldHVybihzNjQgaSwgYXRvbWljNjRfdCAqdikJXAogewkJCQkJCQkJCVwKIAl1bnNp Z25lZCBsb25nIGZsYWdzOwkJCQkJCVwKIAlzNjQgcmV0OwkJCQkJCQlcCkBAIC0xNjYsNyArMTY2 LDcgQEAgc3RhdGljIF9faW5saW5lX18gczY0IGF0b21pYzY0XyMjb3AjI19yZXR1cm4oczY0IGks IGF0b21pYzY0X3QgKnYpCVwKIH0KIAogI2RlZmluZSBBVE9NSUM2NF9GRVRDSF9PUChvcCwgY19v cCkJCQkJCVwKLXN0YXRpYyBfX2lubGluZV9fIHM2NCBhdG9taWM2NF9mZXRjaF8jI29wKHM2NCBp LCBhdG9taWM2NF90ICp2KQkJXAorc3RhdGljIGlubGluZSBzNjQgYXRvbWljNjRfZmV0Y2hfIyNv cChzNjQgaSwgYXRvbWljNjRfdCAqdikJCVwKIHsJCQkJCQkJCQlcCiAJdW5zaWduZWQgbG9uZyBm bGFnczsJCQkJCQlcCiAJczY0IHJldDsJCQkJCQkJXApAQCAtMjAxLDcgKzIwMSw3IEBAIEFUT01J QzY0X09QUyh4b3IsIF49KQogI3VuZGVmIEFUT01JQzY0X09QX1JFVFVSTgogI3VuZGVmIEFUT01J QzY0X09QCiAKLXN0YXRpYyBfX2lubGluZV9fIHZvaWQKK3N0YXRpYyBpbmxpbmUgdm9pZAogYXRv bWljNjRfc2V0KGF0b21pYzY0X3QgKnYsIHM2NCBpKQogewogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7 CkBAIC0yMTIsNyArMjEyLDcgQEAgYXRvbWljNjRfc2V0KGF0b21pYzY0X3QgKnYsIHM2NCBpKQog CV9hdG9taWNfc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSh2LCBmbGFncyk7CiB9CiAKLXN0YXRpYyBf X2lubGluZV9fIHM2NAorc3RhdGljIGlubGluZSBzNjQKIGF0b21pYzY0X3JlYWQoY29uc3QgYXRv bWljNjRfdCAqdikKIHsKIAlyZXR1cm4gUkVBRF9PTkNFKCh2KS0+Y291bnRlcik7CmRpZmYgLS1n aXQgYS9hcmNoL3BhcmlzYy9pbmNsdWRlL2FzbS9iaXRvcHMuaCBiL2FyY2gvcGFyaXNjL2luY2x1 ZGUvYXNtL2JpdG9wcy5oCmluZGV4IDUzMjUyZDRmOWE1Ny4uNThkNGRjM2M2ZGRmIDEwMDY0NAot LS0gYS9hcmNoL3BhcmlzYy9pbmNsdWRlL2FzbS9iaXRvcHMuaAorKysgYi9hcmNoL3BhcmlzYy9p bmNsdWRlL2FzbS9iaXRvcHMuaApAQCAtMzMsNyArMzMsNyBAQAogICoJX18qX2JpdCgpIGFyZSAi cmVsYXhlZCIgYW5kIGRvbid0IHVzZSBzcGlubG9jayBvciB2b2xhdGlsZS4KICAqLwogCi1zdGF0 aWMgX19pbmxpbmVfXyB2b2lkIHNldF9iaXQoaW50IG5yLCB2b2xhdGlsZSB1bnNpZ25lZCBsb25n ICogYWRkcikKK3N0YXRpYyBpbmxpbmUgdm9pZCBzZXRfYml0KGludCBuciwgdm9sYXRpbGUgdW5z aWduZWQgbG9uZyAqIGFkZHIpCiB7CiAJdW5zaWduZWQgbG9uZyBtYXNrID0gMVVMIDw8IENIT1Bf U0hJRlRDT1VOVChucik7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKQEAgLTQ0LDcgKzQ0LDcgQEAg c3RhdGljIF9faW5saW5lX18gdm9pZCBzZXRfYml0KGludCBuciwgdm9sYXRpbGUgdW5zaWduZWQg bG9uZyAqIGFkZHIpCiAJX2F0b21pY19zcGluX3VubG9ja19pcnFyZXN0b3JlKGFkZHIsIGZsYWdz KTsKIH0KIAotc3RhdGljIF9faW5saW5lX18gdm9pZCBjbGVhcl9iaXQoaW50IG5yLCB2b2xhdGls ZSB1bnNpZ25lZCBsb25nICogYWRkcikKK3N0YXRpYyBpbmxpbmUgdm9pZCBjbGVhcl9iaXQoaW50 IG5yLCB2b2xhdGlsZSB1bnNpZ25lZCBsb25nICogYWRkcikKIHsKIAl1bnNpZ25lZCBsb25nIG1h c2sgPSB+KDFVTCA8PCBDSE9QX1NISUZUQ09VTlQobnIpKTsKIAl1bnNpZ25lZCBsb25nIGZsYWdz OwpAQCAtNTUsNyArNTUsNyBAQCBzdGF0aWMgX19pbmxpbmVfXyB2b2lkIGNsZWFyX2JpdChpbnQg bnIsIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKiBhZGRyKQogCV9hdG9taWNfc3Bpbl91bmxvY2tf aXJxcmVzdG9yZShhZGRyLCBmbGFncyk7CiB9CiAKLXN0YXRpYyBfX2lubGluZV9fIHZvaWQgY2hh bmdlX2JpdChpbnQgbnIsIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKiBhZGRyKQorc3RhdGljIGlu bGluZSB2b2lkIGNoYW5nZV9iaXQoaW50IG5yLCB2b2xhdGlsZSB1bnNpZ25lZCBsb25nICogYWRk cikKIHsKIAl1bnNpZ25lZCBsb25nIG1hc2sgPSAxVUwgPDwgQ0hPUF9TSElGVENPVU5UKG5yKTsK IAl1bnNpZ25lZCBsb25nIGZsYWdzOwpAQCAtNjYsNyArNjYsNyBAQCBzdGF0aWMgX19pbmxpbmVf XyB2b2lkIGNoYW5nZV9iaXQoaW50IG5yLCB2b2xhdGlsZSB1bnNpZ25lZCBsb25nICogYWRkcikK IAlfYXRvbWljX3NwaW5fdW5sb2NrX2lycXJlc3RvcmUoYWRkciwgZmxhZ3MpOwogfQogCi1zdGF0 aWMgX19pbmxpbmVfXyBpbnQgdGVzdF9hbmRfc2V0X2JpdChpbnQgbnIsIHZvbGF0aWxlIHVuc2ln bmVkIGxvbmcgKiBhZGRyKQorc3RhdGljIGlubGluZSBpbnQgdGVzdF9hbmRfc2V0X2JpdChpbnQg bnIsIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKiBhZGRyKQogewogCXVuc2lnbmVkIGxvbmcgbWFz ayA9IDFVTCA8PCBDSE9QX1NISUZUQ09VTlQobnIpOwogCXVuc2lnbmVkIGxvbmcgb2xkOwpAQCAt ODQsNyArODQsNyBAQCBzdGF0aWMgX19pbmxpbmVfXyBpbnQgdGVzdF9hbmRfc2V0X2JpdChpbnQg bnIsIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKiBhZGRyKQogCXJldHVybiBzZXQ7CiB9CiAKLXN0 YXRpYyBfX2lubGluZV9fIGludCB0ZXN0X2FuZF9jbGVhcl9iaXQoaW50IG5yLCB2b2xhdGlsZSB1 bnNpZ25lZCBsb25nICogYWRkcikKK3N0YXRpYyBpbmxpbmUgaW50IHRlc3RfYW5kX2NsZWFyX2Jp dChpbnQgbnIsIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKiBhZGRyKQogewogCXVuc2lnbmVkIGxv bmcgbWFzayA9IDFVTCA8PCBDSE9QX1NISUZUQ09VTlQobnIpOwogCXVuc2lnbmVkIGxvbmcgb2xk OwpAQCAtMTAyLDcgKzEwMiw3IEBAIHN0YXRpYyBfX2lubGluZV9fIGludCB0ZXN0X2FuZF9jbGVh cl9iaXQoaW50IG5yLCB2b2xhdGlsZSB1bnNpZ25lZCBsb25nICogYWRkcikKIAlyZXR1cm4gc2V0 OwogfQogCi1zdGF0aWMgX19pbmxpbmVfXyBpbnQgdGVzdF9hbmRfY2hhbmdlX2JpdChpbnQgbnIs IHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKiBhZGRyKQorc3RhdGljIGlubGluZSBpbnQgdGVzdF9h bmRfY2hhbmdlX2JpdChpbnQgbnIsIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKiBhZGRyKQogewog CXVuc2lnbmVkIGxvbmcgbWFzayA9IDFVTCA8PCBDSE9QX1NISUZUQ09VTlQobnIpOwogCXVuc2ln bmVkIGxvbmcgb2xkYml0OwpAQCAtMTQwLDcgKzE0MCw3IEBAIHN0YXRpYyBfX2lubGluZV9fIGlu dCB0ZXN0X2FuZF9jaGFuZ2VfYml0KGludCBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqIGFk ZHIpCiAgKiBjeWNsZXMgZm9yIGVhY2ggbWlzcHJlZGljdGVkIGJyYW5jaC4KICAqLwogCi1zdGF0 aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nIF9fZmZzKHVuc2lnbmVkIGxvbmcgeCkKK3N0YXRp YyBpbmxpbmUgdW5zaWduZWQgbG9uZyBfX2Zmcyh1bnNpZ25lZCBsb25nIHgpCiB7CiAJdW5zaWdu ZWQgbG9uZyByZXQ7CiAKQEAgLTE3OCw3ICsxNzgsNyBAQCBzdGF0aWMgX19pbmxpbmVfXyB1bnNp Z25lZCBsb25nIF9fZmZzKHVuc2lnbmVkIGxvbmcgeCkKICAqIFRoaXMgaXMgZGVmaW5lZCB0aGUg c2FtZSB3YXkgYXMgdGhlIGxpYmMgYW5kIGNvbXBpbGVyIGJ1aWx0aW4KICAqIGZmcyByb3V0aW5l cywgdGhlcmVmb3JlIGRpZmZlcnMgaW4gc3Bpcml0IGZyb20gdGhlIGFib3ZlIGZmeiAobWFuIGZm cykuCiAgKi8KLXN0YXRpYyBfX2lubGluZV9fIGludCBmZnMoaW50IHgpCitzdGF0aWMgaW5saW5l IGludCBmZnMoaW50IHgpCiB7CiAJcmV0dXJuIHggPyAoX19mZnMoKHVuc2lnbmVkIGxvbmcpeCkg KyAxKSA6IDA7CiB9CkBAIC0xODgsNyArMTg4LDcgQEAgc3RhdGljIF9faW5saW5lX18gaW50IGZm cyhpbnQgeCkKICAqIGZscygwKSA9IDAsIGZscygxKSA9IDEsIGZscygweDgwMDAwMDAwKSA9IDMy LgogICovCiAKLXN0YXRpYyBfX2lubGluZV9fIGludCBmbHMoaW50IHgpCitzdGF0aWMgaW5saW5l IGludCBmbHMoaW50IHgpCiB7CiAJaW50IHJldDsKIAlpZiAoIXgpCmRpZmYgLS1naXQgYS9hcmNo L3BhcmlzYy9pbmNsdWRlL2FzbS9jaGVja3N1bS5oIGIvYXJjaC9wYXJpc2MvaW5jbHVkZS9hc20v Y2hlY2tzdW0uaAppbmRleCAzY2JmMWYxYzExODguLjJlNDQxYTU1YWRjOSAxMDA2NDQKLS0tIGEv YXJjaC9wYXJpc2MvaW5jbHVkZS9hc20vY2hlY2tzdW0uaAorKysgYi9hcmNoL3BhcmlzYy9pbmNs dWRlL2FzbS9jaGVja3N1bS5oCkBAIC0xMjEsNyArMTIxLDcgQEAgc3RhdGljIGlubGluZSBfX3N1 bTE2IGlwX2NvbXB1dGVfY3N1bShjb25zdCB2b2lkICpidWYsIGludCBsZW4pCiAKIAogI2RlZmlu ZSBfSEFWRV9BUkNIX0lQVjZfQ1NVTQotc3RhdGljIF9faW5saW5lX18gX19zdW0xNiBjc3VtX2lw djZfbWFnaWMoY29uc3Qgc3RydWN0IGluNl9hZGRyICpzYWRkciwKK3N0YXRpYyBpbmxpbmUgX19z dW0xNiBjc3VtX2lwdjZfbWFnaWMoY29uc3Qgc3RydWN0IGluNl9hZGRyICpzYWRkciwKIAkJCQkJ ICBjb25zdCBzdHJ1Y3QgaW42X2FkZHIgKmRhZGRyLAogCQkJCQkgIF9fdTMyIGxlbiwgX191OCBw cm90bywKIAkJCQkJICBfX3dzdW0gc3VtKQpAQCAtMTg5LDcgKzE4OSw3IEBAIHN0YXRpYyBfX2lu bGluZV9fIF9fc3VtMTYgY3N1bV9pcHY2X21hZ2ljKGNvbnN0IHN0cnVjdCBpbjZfYWRkciAqc2Fk ZHIsCiAgKglDb3B5IGFuZCBjaGVja3N1bSB0byB1c2VyCiAgKi8KICNkZWZpbmUgSEFWRV9DU1VN X0NPUFlfVVNFUgotc3RhdGljIF9faW5saW5lX18gX193c3VtIGNzdW1fYW5kX2NvcHlfdG9fdXNl cihjb25zdCB2b2lkICpzcmMsCitzdGF0aWMgaW5saW5lIF9fd3N1bSBjc3VtX2FuZF9jb3B5X3Rv X3VzZXIoY29uc3Qgdm9pZCAqc3JjLAogCQkJCQkJICAgICAgdm9pZCBfX3VzZXIgKmRzdCwKIAkJ CQkJCSAgICAgIGludCBsZW4sIF9fd3N1bSBzdW0sCiAJCQkJCQkgICAgICBpbnQgKmVycl9wdHIp CmRpZmYgLS1naXQgYS9hcmNoL3BhcmlzYy9pbmNsdWRlL2FzbS9jb21wYXQuaCBiL2FyY2gvcGFy aXNjL2luY2x1ZGUvYXNtL2NvbXBhdC5oCmluZGV4IGUwM2UzYzg0OWY0MC4uZTIyNjlhY2YzZDJi IDEwMDY0NAotLS0gYS9hcmNoL3BhcmlzYy9pbmNsdWRlL2FzbS9jb21wYXQuaAorKysgYi9hcmNo L3BhcmlzYy9pbmNsdWRlL2FzbS9jb21wYXQuaApAQCAtMTkwLDcgKzE5MCw3IEBAIHN0YXRpYyBp bmxpbmUgY29tcGF0X3VwdHJfdCBwdHJfdG9fY29tcGF0KHZvaWQgX191c2VyICp1cHRyKQogCXJl dHVybiAodTMyKSh1bnNpZ25lZCBsb25nKXVwdHI7CiB9CiAKLXN0YXRpYyBfX2lubGluZV9fIHZv aWQgX191c2VyICphcmNoX2NvbXBhdF9hbGxvY191c2VyX3NwYWNlKGxvbmcgbGVuKQorc3RhdGlj IGlubGluZSB2b2lkIF9fdXNlciAqYXJjaF9jb21wYXRfYWxsb2NfdXNlcl9zcGFjZShsb25nIGxl bikKIHsKIAlzdHJ1Y3QgcHRfcmVncyAqcmVncyA9ICZjdXJyZW50LT50aHJlYWQucmVnczsKIAly ZXR1cm4gKHZvaWQgX191c2VyICopcmVncy0+Z3JbMzBdOwpkaWZmIC0tZ2l0IGEvYXJjaC9wYXJp c2MvaW5jbHVkZS9hc20vZGVsYXkuaCBiL2FyY2gvcGFyaXNjL2luY2x1ZGUvYXNtL2RlbGF5LmgK aW5kZXggODQxYjUwNmI3MDJhLi5lOGYzNWQ2MDViYjIgMTAwNjQ0Ci0tLSBhL2FyY2gvcGFyaXNj L2luY2x1ZGUvYXNtL2RlbGF5LmgKKysrIGIvYXJjaC9wYXJpc2MvaW5jbHVkZS9hc20vZGVsYXku aApAQCAtMiw3ICsyLDcgQEAKICNpZm5kZWYgX0FTTV9QQVJJU0NfREVMQVlfSAogI2RlZmluZSBf QVNNX1BBUklTQ19ERUxBWV9ICiAKLXN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19kZWxheSh1bnNp Z25lZCBsb25nIGxvb3BzKSB7CitzdGF0aWMgaW5saW5lIHZvaWQgX19kZWxheSh1bnNpZ25lZCBs b25nIGxvb3BzKSB7CiAJYXNtIHZvbGF0aWxlKAogCSIJLmJhbGlnbmwJNjQsMHgzNDAwMDAzNFxu IgogCSIJYWRkaWIsVVYgLTEsJTAsLlxuIgpkaWZmIC0tZ2l0IGEvYXJjaC9wYXJpc2MvaW5jbHVk ZS9hc20vZG1hLmggYi9hcmNoL3BhcmlzYy9pbmNsdWRlL2FzbS9kbWEuaAppbmRleCBlZWE4MGVk MzRlNmQuLjU1MTcwY2ExOWFjOSAxMDA2NDQKLS0tIGEvYXJjaC9wYXJpc2MvaW5jbHVkZS9hc20v ZG1hLmgKKysrIGIvYXJjaC9wYXJpc2MvaW5jbHVkZS9hc20vZG1hLmgKQEAgLTcxLDEyICs3MSwx MiBAQAogI2RlZmluZSBETUEyX01BU0tfQUxMX1JFRyAgICAgICAweERFICAgIC8qIGFsbC1jaGFu bmVscyBtYXNrICh3KSAqLwogI2RlZmluZSBETUEyX0VYVF9NT0RFX1JFRwkoMHg0MDAgfCBETUEy X01PREVfUkVHKQogCi1zdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nIGNsYWltX2RtYV9s b2NrKHZvaWQpCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgY2xhaW1fZG1hX2xvY2sodm9p ZCkKIHsKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIF9faW5saW5lX18gdm9pZCByZWxlYXNlX2Rt YV9sb2NrKHVuc2lnbmVkIGxvbmcgZmxhZ3MpCitzdGF0aWMgaW5saW5lIHZvaWQgcmVsZWFzZV9k bWFfbG9jayh1bnNpZ25lZCBsb25nIGZsYWdzKQogewogfQogCkBAIC04OSw3ICs4OSw3IEBAIHN0 YXRpYyBfX2lubGluZV9fIHZvaWQgcmVsZWFzZV9kbWFfbG9jayh1bnNpZ25lZCBsb25nIGZsYWdz KQogICoKICAqIEFzc3VtZXMgRE1BIGZsaXAtZmxvcCBpcyBjbGVhci4KICAqLwotc3RhdGljIF9f aW5saW5lX18gaW50IGdldF9kbWFfcmVzaWR1ZSh1bnNpZ25lZCBpbnQgZG1hbnIpCitzdGF0aWMg aW5saW5lIGludCBnZXRfZG1hX3Jlc2lkdWUodW5zaWduZWQgaW50IGRtYW5yKQogewogCXVuc2ln bmVkIGludCBpb19wb3J0ID0gKGRtYW5yPD0zKT8gKChkbWFuciYzKTw8MSkgKyAxICsgSU9fRE1B MV9CQVNFCiAJCQkJCSA6ICgoZG1hbnImMyk8PDIpICsgMiArIElPX0RNQTJfQkFTRTsKQEAgLTEw NCw3ICsxMDQsNyBAQCBzdGF0aWMgX19pbmxpbmVfXyBpbnQgZ2V0X2RtYV9yZXNpZHVlKHVuc2ln bmVkIGludCBkbWFucikKIH0KIAogLyogZW5hYmxlL2Rpc2FibGUgYSBzcGVjaWZpYyBETUEgY2hh bm5lbCAqLwotc3RhdGljIF9faW5saW5lX18gdm9pZCBlbmFibGVfZG1hKHVuc2lnbmVkIGludCBk bWFucikKK3N0YXRpYyBpbmxpbmUgdm9pZCBlbmFibGVfZG1hKHVuc2lnbmVkIGludCBkbWFucikK IHsKICNpZmRlZiBDT05GSUdfU1VQRVJJTwogCWlmIChkbWFucjw9MykKQEAgLTExNCw3ICsxMTQs NyBAQCBzdGF0aWMgX19pbmxpbmVfXyB2b2lkIGVuYWJsZV9kbWEodW5zaWduZWQgaW50IGRtYW5y KQogI2VuZGlmCiB9CiAKLXN0YXRpYyBfX2lubGluZV9fIHZvaWQgZGlzYWJsZV9kbWEodW5zaWdu ZWQgaW50IGRtYW5yKQorc3RhdGljIGlubGluZSB2b2lkIGRpc2FibGVfZG1hKHVuc2lnbmVkIGlu dCBkbWFucikKIHsKICNpZmRlZiBDT05GSUdfU1VQRVJJTwogCWlmIChkbWFucjw9MykKQEAgLTEz NCwxMiArMTM0LDEyIEBAIHN0YXRpYyBfX2lubGluZV9fIHZvaWQgZGlzYWJsZV9kbWEodW5zaWdu ZWQgaW50IGRtYW5yKQogICogLS0tIEluIG9yZGVyIHRvIGRvIHRoYXQsIHRoZSBETUEgcm91dGlu ZXMgYmVsb3cgc2hvdWxkIC0tLQogICogLS0tIG9ubHkgYmUgdXNlZCB3aGlsZSBob2xkaW5nIHRo ZSBETUEgbG9jayAhIC0tLQogICovCi1zdGF0aWMgX19pbmxpbmVfXyB2b2lkIGNsZWFyX2RtYV9m Zih1bnNpZ25lZCBpbnQgZG1hbnIpCitzdGF0aWMgaW5saW5lIHZvaWQgY2xlYXJfZG1hX2ZmKHVu c2lnbmVkIGludCBkbWFucikKIHsKIH0KIAogLyogc2V0IG1vZGUgKGFib3ZlKSBmb3IgYSBzcGVj aWZpYyBETUEgY2hhbm5lbCAqLwotc3RhdGljIF9faW5saW5lX18gdm9pZCBzZXRfZG1hX21vZGUo dW5zaWduZWQgaW50IGRtYW5yLCBjaGFyIG1vZGUpCitzdGF0aWMgaW5saW5lIHZvaWQgc2V0X2Rt YV9tb2RlKHVuc2lnbmVkIGludCBkbWFuciwgY2hhciBtb2RlKQogewogfQogCkBAIC0xNDgsNyAr MTQ4LDcgQEAgc3RhdGljIF9faW5saW5lX18gdm9pZCBzZXRfZG1hX21vZGUodW5zaWduZWQgaW50 IGRtYW5yLCBjaGFyIG1vZGUpCiAgKiB0aGUgbG93ZXIgMTYgYml0cyBvZiB0aGUgRE1BIGN1cnJl bnQgYWRkcmVzcyByZWdpc3RlciwgYnV0IGEgNjRrIGJvdW5kYXJ5CiAgKiBtYXkgaGF2ZSBiZWVu IGNyb3NzZWQuCiAgKi8KLXN0YXRpYyBfX2lubGluZV9fIHZvaWQgc2V0X2RtYV9wYWdlKHVuc2ln bmVkIGludCBkbWFuciwgY2hhciBwYWdlbnIpCitzdGF0aWMgaW5saW5lIHZvaWQgc2V0X2RtYV9w YWdlKHVuc2lnbmVkIGludCBkbWFuciwgY2hhciBwYWdlbnIpCiB7CiB9CiAKQEAgLTE1Niw3ICsx NTYsNyBAQCBzdGF0aWMgX19pbmxpbmVfXyB2b2lkIHNldF9kbWFfcGFnZSh1bnNpZ25lZCBpbnQg ZG1hbnIsIGNoYXIgcGFnZW5yKQogLyogU2V0IHRyYW5zZmVyIGFkZHJlc3MgJiBwYWdlIGJpdHMg Zm9yIHNwZWNpZmljIERNQSBjaGFubmVsLgogICogQXNzdW1lcyBkbWEgZmxpcGZsb3AgaXMgY2xl YXIuCiAgKi8KLXN0YXRpYyBfX2lubGluZV9fIHZvaWQgc2V0X2RtYV9hZGRyKHVuc2lnbmVkIGlu dCBkbWFuciwgdW5zaWduZWQgaW50IGEpCitzdGF0aWMgaW5saW5lIHZvaWQgc2V0X2RtYV9hZGRy KHVuc2lnbmVkIGludCBkbWFuciwgdW5zaWduZWQgaW50IGEpCiB7CiB9CiAKQEAgLTE2OSw3ICsx NjksNyBAQCBzdGF0aWMgX19pbmxpbmVfXyB2b2lkIHNldF9kbWFfYWRkcih1bnNpZ25lZCBpbnQg ZG1hbnIsIHVuc2lnbmVkIGludCBhKQogICogQXNzdW1lcyBkbWEgZmxpcC1mbG9wIGlzIGNsZWFy LgogICogTk9URSAyOiAiY291bnQiIHJlcHJlc2VudHMgX2J5dGVzXyBhbmQgbXVzdCBiZSBldmVu IGZvciBjaGFubmVscyA1LTcuCiAgKi8KLXN0YXRpYyBfX2lubGluZV9fIHZvaWQgc2V0X2RtYV9j b3VudCh1bnNpZ25lZCBpbnQgZG1hbnIsIHVuc2lnbmVkIGludCBjb3VudCkKK3N0YXRpYyBpbmxp bmUgdm9pZCBzZXRfZG1hX2NvdW50KHVuc2lnbmVkIGludCBkbWFuciwgdW5zaWduZWQgaW50IGNv dW50KQogewogfQogCmRpZmYgLS1naXQgYS9hcmNoL3BhcmlzYy9pbmNsdWRlL2FzbS9pZGUuaCBi L2FyY2gvcGFyaXNjL2luY2x1ZGUvYXNtL2lkZS5oCmluZGV4IDM0Y2RhYzAxZWQzNS4uZWRkN2Zl MDNiOTBhIDEwMDY0NAotLS0gYS9hcmNoL3BhcmlzYy9pbmNsdWRlL2FzbS9pZGUuaAorKysgYi9h cmNoL3BhcmlzYy9pbmNsdWRlL2FzbS9pZGUuaApAQCAtMjEsNyArMjEsNyBAQAogI2RlZmluZSBf X2lkZV9vdXRzdwlvdXRzdwogI2RlZmluZSBfX2lkZV9vdXRzbAlvdXRzbAogCi1zdGF0aWMgX19p bmxpbmVfXyB2b2lkIF9faWRlX21tX2luc3codm9pZCBfX2lvbWVtICpwb3J0LCB2b2lkICphZGRy LCB1MzIgY291bnQpCitzdGF0aWMgaW5saW5lIHZvaWQgX19pZGVfbW1faW5zdyh2b2lkIF9faW9t ZW0gKnBvcnQsIHZvaWQgKmFkZHIsIHUzMiBjb3VudCkKIHsKIAl3aGlsZSAoY291bnQtLSkgewog CQkqKHUxNiAqKWFkZHIgPSBfX3Jhd19yZWFkdyhwb3J0KTsKQEAgLTI5LDcgKzI5LDcgQEAgc3Rh dGljIF9faW5saW5lX18gdm9pZCBfX2lkZV9tbV9pbnN3KHZvaWQgX19pb21lbSAqcG9ydCwgdm9p ZCAqYWRkciwgdTMyIGNvdW50KQogCX0KIH0KIAotc3RhdGljIF9faW5saW5lX18gdm9pZCBfX2lk ZV9tbV9pbnNsKHZvaWQgX19pb21lbSAqcG9ydCwgdm9pZCAqYWRkciwgdTMyIGNvdW50KQorc3Rh dGljIGlubGluZSB2b2lkIF9faWRlX21tX2luc2wodm9pZCBfX2lvbWVtICpwb3J0LCB2b2lkICph ZGRyLCB1MzIgY291bnQpCiB7CiAJd2hpbGUgKGNvdW50LS0pIHsKIAkJKih1MzIgKilhZGRyID0g X19yYXdfcmVhZGwocG9ydCk7CkBAIC0zNyw3ICszNyw3IEBAIHN0YXRpYyBfX2lubGluZV9fIHZv aWQgX19pZGVfbW1faW5zbCh2b2lkIF9faW9tZW0gKnBvcnQsIHZvaWQgKmFkZHIsIHUzMiBjb3Vu dCkKIAl9CiB9CiAKLXN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19pZGVfbW1fb3V0c3codm9pZCBf X2lvbWVtICpwb3J0LCB2b2lkICphZGRyLCB1MzIgY291bnQpCitzdGF0aWMgaW5saW5lIHZvaWQg X19pZGVfbW1fb3V0c3codm9pZCBfX2lvbWVtICpwb3J0LCB2b2lkICphZGRyLCB1MzIgY291bnQp CiB7CiAJd2hpbGUgKGNvdW50LS0pIHsKIAkJX19yYXdfd3JpdGV3KCoodTE2ICopYWRkciwgcG9y dCk7CkBAIC00NSw3ICs0NSw3IEBAIHN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19pZGVfbW1fb3V0 c3codm9pZCBfX2lvbWVtICpwb3J0LCB2b2lkICphZGRyLCB1MzIgY291bnQpCiAJfQogfQogCi1z dGF0aWMgX19pbmxpbmVfXyB2b2lkIF9faWRlX21tX291dHNsKHZvaWQgX19pb21lbSAqcG9ydCwg dm9pZCAqYWRkciwgdTMyIGNvdW50KQorc3RhdGljIGlubGluZSB2b2lkIF9faWRlX21tX291dHNs KHZvaWQgX19pb21lbSAqcG9ydCwgdm9pZCAqYWRkciwgdTMyIGNvdW50KQogewogCXdoaWxlIChj b3VudC0tKSB7CiAJCV9fcmF3X3dyaXRlbCgqKHUzMiAqKWFkZHIsIHBvcnQpOwpkaWZmIC0tZ2l0 IGEvYXJjaC9wYXJpc2MvaW5jbHVkZS9hc20vaXJxLmggYi9hcmNoL3BhcmlzYy9pbmNsdWRlL2Fz bS9pcnEuaAppbmRleCA5NTllNzljZDJjMTQuLmIxYzIzYTE2MzExNCAxMDA2NDQKLS0tIGEvYXJj aC9wYXJpc2MvaW5jbHVkZS9hc20vaXJxLmgKKysrIGIvYXJjaC9wYXJpc2MvaW5jbHVkZS9hc20v aXJxLmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2RlZmluZSBOUl9JUlFTCQkoQ1BVX0lSUV9NQVgg KyAxKQogCi1zdGF0aWMgX19pbmxpbmVfXyBpbnQgaXJxX2Nhbm9uaWNhbGl6ZShpbnQgaXJxKQor c3RhdGljIGlubGluZSBpbnQgaXJxX2Nhbm9uaWNhbGl6ZShpbnQgaXJxKQogewogCXJldHVybiAo aXJxID09IDIpID8gOSA6IGlycTsKIH0KZGlmZiAtLWdpdCBhL2FyY2gvcGFyaXNjL2luY2x1ZGUv YXNtL3NwaW5sb2NrLmggYi9hcmNoL3BhcmlzYy9pbmNsdWRlL2FzbS9zcGlubG9jay5oCmluZGV4 IDhhNjM1MTVmMDNiZi4uMGQ0NjIwYTFmODFiIDEwMDY0NAotLS0gYS9hcmNoL3BhcmlzYy9pbmNs dWRlL2FzbS9zcGlubG9jay5oCisrKyBiL2FyY2gvcGFyaXNjL2luY2x1ZGUvYXNtL3NwaW5sb2Nr LmgKQEAgLTY2LDcgKzY2LDcgQEAgc3RhdGljIGlubGluZSBpbnQgYXJjaF9zcGluX3RyeWxvY2so YXJjaF9zcGlubG9ja190ICp4KQogCiAvKiBOb3RlIHRoYXQgd2UgaGF2ZSB0byBlbnN1cmUgaW50 ZXJydXB0cyBhcmUgZGlzYWJsZWQgaW4gY2FzZSB3ZSdyZQogICogaW50ZXJydXB0ZWQgYnkgc29t ZSBvdGhlciBjb2RlIHRoYXQgd2FudHMgdG8gZ3JhYiB0aGUgc2FtZSByZWFkIGxvY2sgKi8KLXN0 YXRpYyAgX19pbmxpbmVfXyB2b2lkIGFyY2hfcmVhZF9sb2NrKGFyY2hfcndsb2NrX3QgKnJ3KQor c3RhdGljICBpbmxpbmUgdm9pZCBhcmNoX3JlYWRfbG9jayhhcmNoX3J3bG9ja190ICpydykKIHsK IAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKQEAgLTc4LDcg Kzc4LDcgQEAgc3RhdGljICBfX2lubGluZV9fIHZvaWQgYXJjaF9yZWFkX2xvY2soYXJjaF9yd2xv Y2tfdCAqcncpCiAKIC8qIE5vdGUgdGhhdCB3ZSBoYXZlIHRvIGVuc3VyZSBpbnRlcnJ1cHRzIGFy ZSBkaXNhYmxlZCBpbiBjYXNlIHdlJ3JlCiAgKiBpbnRlcnJ1cHRlZCBieSBzb21lIG90aGVyIGNv ZGUgdGhhdCB3YW50cyB0byBncmFiIHRoZSBzYW1lIHJlYWQgbG9jayAqLwotc3RhdGljICBfX2lu bGluZV9fIHZvaWQgYXJjaF9yZWFkX3VubG9jayhhcmNoX3J3bG9ja190ICpydykKK3N0YXRpYyAg aW5saW5lIHZvaWQgYXJjaF9yZWFkX3VubG9jayhhcmNoX3J3bG9ja190ICpydykKIHsKIAl1bnNp Z25lZCBsb25nIGZsYWdzOwogCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKQEAgLTkwLDcgKzkwLDcg QEAgc3RhdGljICBfX2lubGluZV9fIHZvaWQgYXJjaF9yZWFkX3VubG9jayhhcmNoX3J3bG9ja190 ICpydykKIAogLyogTm90ZSB0aGF0IHdlIGhhdmUgdG8gZW5zdXJlIGludGVycnVwdHMgYXJlIGRp c2FibGVkIGluIGNhc2Ugd2UncmUKICAqIGludGVycnVwdGVkIGJ5IHNvbWUgb3RoZXIgY29kZSB0 aGF0IHdhbnRzIHRvIGdyYWIgdGhlIHNhbWUgcmVhZCBsb2NrICovCi1zdGF0aWMgX19pbmxpbmVf XyBpbnQgYXJjaF9yZWFkX3RyeWxvY2soYXJjaF9yd2xvY2tfdCAqcncpCitzdGF0aWMgaW5saW5l IGludCBhcmNoX3JlYWRfdHJ5bG9jayhhcmNoX3J3bG9ja190ICpydykKIHsKIAl1bnNpZ25lZCBs b25nIGZsYWdzOwogIHJldHJ5OgpAQCAtMTE2LDcgKzExNiw3IEBAIHN0YXRpYyBfX2lubGluZV9f IGludCBhcmNoX3JlYWRfdHJ5bG9jayhhcmNoX3J3bG9ja190ICpydykKIAogLyogTm90ZSB0aGF0 IHdlIGhhdmUgdG8gZW5zdXJlIGludGVycnVwdHMgYXJlIGRpc2FibGVkIGluIGNhc2Ugd2UncmUK ICAqIGludGVycnVwdGVkIGJ5IHNvbWUgb3RoZXIgY29kZSB0aGF0IHdhbnRzIHRvIHJlYWRfdHJ5 bG9jaygpIHRoaXMgbG9jayAqLwotc3RhdGljIF9faW5saW5lX18gdm9pZCBhcmNoX3dyaXRlX2xv Y2soYXJjaF9yd2xvY2tfdCAqcncpCitzdGF0aWMgaW5saW5lIHZvaWQgYXJjaF93cml0ZV9sb2Nr KGFyY2hfcndsb2NrX3QgKnJ3KQogewogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiByZXRyeToKQEAg LTEzOCw3ICsxMzgsNyBAQCBzdGF0aWMgX19pbmxpbmVfXyB2b2lkIGFyY2hfd3JpdGVfbG9jayhh cmNoX3J3bG9ja190ICpydykKIAlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CiB9CiAKLXN0YXRp YyBfX2lubGluZV9fIHZvaWQgYXJjaF93cml0ZV91bmxvY2soYXJjaF9yd2xvY2tfdCAqcncpCitz dGF0aWMgaW5saW5lIHZvaWQgYXJjaF93cml0ZV91bmxvY2soYXJjaF9yd2xvY2tfdCAqcncpCiB7 CiAJcnctPmNvdW50ZXIgPSAwOwogCWFyY2hfc3Bpbl91bmxvY2soJnJ3LT5sb2NrKTsKQEAgLTE0 Niw3ICsxNDYsNyBAQCBzdGF0aWMgX19pbmxpbmVfXyB2b2lkIGFyY2hfd3JpdGVfdW5sb2NrKGFy Y2hfcndsb2NrX3QgKnJ3KQogCiAvKiBOb3RlIHRoYXQgd2UgaGF2ZSB0byBlbnN1cmUgaW50ZXJy dXB0cyBhcmUgZGlzYWJsZWQgaW4gY2FzZSB3ZSdyZQogICogaW50ZXJydXB0ZWQgYnkgc29tZSBv dGhlciBjb2RlIHRoYXQgd2FudHMgdG8gcmVhZF90cnlsb2NrKCkgdGhpcyBsb2NrICovCi1zdGF0 aWMgX19pbmxpbmVfXyBpbnQgYXJjaF93cml0ZV90cnlsb2NrKGFyY2hfcndsb2NrX3QgKnJ3KQor c3RhdGljIGlubGluZSBpbnQgYXJjaF93cml0ZV90cnlsb2NrKGFyY2hfcndsb2NrX3QgKnJ3KQog ewogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJaW50IHJlc3VsdCA9IDA7CmRpZmYgLS1naXQgYS9h cmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vYXRvbWljLmggYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9h c20vYXRvbWljLmgKaW5kZXggNTJlYWZhZjc0MDU0Li40ZTMzODA3Yzc1Y2YgMTAwNjQ0Ci0tLSBh L2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9hdG9taWMuaAorKysgYi9hcmNoL3Bvd2VycGMvaW5j bHVkZS9hc20vYXRvbWljLmgKQEAgLTI1LDcgKzI1LDcgQEAKICNkZWZpbmUgX19hdG9taWNfcmVs ZWFzZV9mZW5jZSgpCQkJCQlcCiAJX19hc21fXyBfX3ZvbGF0aWxlX18oUFBDX1JFTEVBU0VfQkFS UklFUiAiIiA6IDogOiAibWVtb3J5IikKIAotc3RhdGljIF9faW5saW5lX18gaW50IGF0b21pY19y ZWFkKGNvbnN0IGF0b21pY190ICp2KQorc3RhdGljIGlubGluZSBpbnQgYXRvbWljX3JlYWQoY29u c3QgYXRvbWljX3QgKnYpCiB7CiAJaW50IHQ7CiAKQEAgLTM0LDEzICszNCwxMyBAQCBzdGF0aWMg X19pbmxpbmVfXyBpbnQgYXRvbWljX3JlYWQoY29uc3QgYXRvbWljX3QgKnYpCiAJcmV0dXJuIHQ7 CiB9CiAKLXN0YXRpYyBfX2lubGluZV9fIHZvaWQgYXRvbWljX3NldChhdG9taWNfdCAqdiwgaW50 IGkpCitzdGF0aWMgaW5saW5lIHZvaWQgYXRvbWljX3NldChhdG9taWNfdCAqdiwgaW50IGkpCiB7 CiAJX19hc21fXyBfX3ZvbGF0aWxlX18oInN0dyVVMCVYMCAlMSwlMCIgOiAiPW0iKHYtPmNvdW50 ZXIpIDogInIiKGkpKTsKIH0KIAogI2RlZmluZSBBVE9NSUNfT1Aob3AsIGFzbV9vcCkJCQkJCQlc Ci1zdGF0aWMgX19pbmxpbmVfXyB2b2lkIGF0b21pY18jI29wKGludCBhLCBhdG9taWNfdCAqdikJ CQlcCitzdGF0aWMgaW5saW5lIHZvaWQgYXRvbWljXyMjb3AoaW50IGEsIGF0b21pY190ICp2KQkJ CVwKIHsJCQkJCQkJCQlcCiAJaW50IHQ7CQkJCQkJCQlcCiAJCQkJCQkJCQlcCkBAIC0xMjMsNyAr MTIzLDcgQEAgQVRPTUlDX09QUyh4b3IsIHhvcikKICN1bmRlZiBBVE9NSUNfT1BfUkVUVVJOX1JF TEFYRUQKICN1bmRlZiBBVE9NSUNfT1AKIAotc3RhdGljIF9faW5saW5lX18gdm9pZCBhdG9taWNf aW5jKGF0b21pY190ICp2KQorc3RhdGljIGlubGluZSB2b2lkIGF0b21pY19pbmMoYXRvbWljX3Qg KnYpCiB7CiAJaW50IHQ7CiAKQEAgLTEzOSw3ICsxMzksNyBAQCBzdGF0aWMgX19pbmxpbmVfXyB2 b2lkIGF0b21pY19pbmMoYXRvbWljX3QgKnYpCiB9CiAjZGVmaW5lIGF0b21pY19pbmMgYXRvbWlj X2luYwogCi1zdGF0aWMgX19pbmxpbmVfXyBpbnQgYXRvbWljX2luY19yZXR1cm5fcmVsYXhlZChh dG9taWNfdCAqdikKK3N0YXRpYyBpbmxpbmUgaW50IGF0b21pY19pbmNfcmV0dXJuX3JlbGF4ZWQo YXRvbWljX3QgKnYpCiB7CiAJaW50IHQ7CiAKQEAgLTE1Niw3ICsxNTYsNyBAQCBzdGF0aWMgX19p bmxpbmVfXyBpbnQgYXRvbWljX2luY19yZXR1cm5fcmVsYXhlZChhdG9taWNfdCAqdikKIAlyZXR1 cm4gdDsKIH0KIAotc3RhdGljIF9faW5saW5lX18gdm9pZCBhdG9taWNfZGVjKGF0b21pY190ICp2 KQorc3RhdGljIGlubGluZSB2b2lkIGF0b21pY19kZWMoYXRvbWljX3QgKnYpCiB7CiAJaW50IHQ7 CiAKQEAgLTE3Miw3ICsxNzIsNyBAQCBzdGF0aWMgX19pbmxpbmVfXyB2b2lkIGF0b21pY19kZWMo YXRvbWljX3QgKnYpCiB9CiAjZGVmaW5lIGF0b21pY19kZWMgYXRvbWljX2RlYwogCi1zdGF0aWMg X19pbmxpbmVfXyBpbnQgYXRvbWljX2RlY19yZXR1cm5fcmVsYXhlZChhdG9taWNfdCAqdikKK3N0 YXRpYyBpbmxpbmUgaW50IGF0b21pY19kZWNfcmV0dXJuX3JlbGF4ZWQoYXRvbWljX3QgKnYpCiB7 CiAJaW50IHQ7CiAKQEAgLTIxMCw3ICsyMTAsNyBAQCBzdGF0aWMgX19pbmxpbmVfXyBpbnQgYXRv bWljX2RlY19yZXR1cm5fcmVsYXhlZChhdG9taWNfdCAqdikKICAqIEF0b21pY2FsbHkgYWRkcyBA YSB0byBAdiwgc28gbG9uZyBhcyBpdCB3YXMgbm90IEB1LgogICogUmV0dXJucyB0aGUgb2xkIHZh bHVlIG9mIEB2LgogICovCi1zdGF0aWMgX19pbmxpbmVfXyBpbnQgYXRvbWljX2ZldGNoX2FkZF91 bmxlc3MoYXRvbWljX3QgKnYsIGludCBhLCBpbnQgdSkKK3N0YXRpYyBpbmxpbmUgaW50IGF0b21p Y19mZXRjaF9hZGRfdW5sZXNzKGF0b21pY190ICp2LCBpbnQgYSwgaW50IHUpCiB7CiAJaW50IHQ7 CiAKQEAgLTI0MSw3ICsyNDEsNyBAQCBzdGF0aWMgX19pbmxpbmVfXyBpbnQgYXRvbWljX2ZldGNo X2FkZF91bmxlc3MoYXRvbWljX3QgKnYsIGludCBhLCBpbnQgdSkKICAqIEF0b21pY2FsbHkgaW5j cmVtZW50cyBAdiBieSAxLCBzbyBsb25nIGFzIEB2IGlzIG5vbi16ZXJvLgogICogUmV0dXJucyBu b24temVybyBpZiBAdiB3YXMgbm9uLXplcm8sIGFuZCB6ZXJvIG90aGVyd2lzZS4KICAqLwotc3Rh dGljIF9faW5saW5lX18gaW50IGF0b21pY19pbmNfbm90X3plcm8oYXRvbWljX3QgKnYpCitzdGF0 aWMgaW5saW5lIGludCBhdG9taWNfaW5jX25vdF96ZXJvKGF0b21pY190ICp2KQogewogCWludCB0 MSwgdDI7CiAKQEAgLTI3MCw3ICsyNzAsNyBAQCBzdGF0aWMgX19pbmxpbmVfXyBpbnQgYXRvbWlj X2luY19ub3RfemVybyhhdG9taWNfdCAqdikKICAqIFRoZSBmdW5jdGlvbiByZXR1cm5zIHRoZSBv bGQgdmFsdWUgb2YgKnYgbWludXMgMSwgZXZlbiBpZgogICogdGhlIGF0b21pYyB2YXJpYWJsZSwg diwgd2FzIG5vdCBkZWNyZW1lbnRlZC4KICAqLwotc3RhdGljIF9faW5saW5lX18gaW50IGF0b21p Y19kZWNfaWZfcG9zaXRpdmUoYXRvbWljX3QgKnYpCitzdGF0aWMgaW5saW5lIGludCBhdG9taWNf ZGVjX2lmX3Bvc2l0aXZlKGF0b21pY190ICp2KQogewogCWludCB0OwogCkBAIC0yOTcsNyArMjk3 LDcgQEAgc3RhdGljIF9faW5saW5lX18gaW50IGF0b21pY19kZWNfaWZfcG9zaXRpdmUoYXRvbWlj X3QgKnYpCiAKICNkZWZpbmUgQVRPTUlDNjRfSU5JVChpKQl7IChpKSB9CiAKLXN0YXRpYyBfX2lu bGluZV9fIGxvbmcgYXRvbWljNjRfcmVhZChjb25zdCBhdG9taWM2NF90ICp2KQorc3RhdGljIGlu bGluZSBsb25nIGF0b21pYzY0X3JlYWQoY29uc3QgYXRvbWljNjRfdCAqdikKIHsKIAlsb25nIHQ7 CiAKQEAgLTMwNiwxMyArMzA2LDEzIEBAIHN0YXRpYyBfX2lubGluZV9fIGxvbmcgYXRvbWljNjRf cmVhZChjb25zdCBhdG9taWM2NF90ICp2KQogCXJldHVybiB0OwogfQogCi1zdGF0aWMgX19pbmxp bmVfXyB2b2lkIGF0b21pYzY0X3NldChhdG9taWM2NF90ICp2LCBsb25nIGkpCitzdGF0aWMgaW5s aW5lIHZvaWQgYXRvbWljNjRfc2V0KGF0b21pYzY0X3QgKnYsIGxvbmcgaSkKIHsKIAlfX2FzbV9f IF9fdm9sYXRpbGVfXygic3RkJVUwJVgwICUxLCUwIiA6ICI9bSIodi0+Y291bnRlcikgOiAiciIo aSkpOwogfQogCiAjZGVmaW5lIEFUT01JQzY0X09QKG9wLCBhc21fb3ApCQkJCQkJXAotc3RhdGlj IF9faW5saW5lX18gdm9pZCBhdG9taWM2NF8jI29wKGxvbmcgYSwgYXRvbWljNjRfdCAqdikJCVwK K3N0YXRpYyBpbmxpbmUgdm9pZCBhdG9taWM2NF8jI29wKGxvbmcgYSwgYXRvbWljNjRfdCAqdikJ CVwKIHsJCQkJCQkJCQlcCiAJbG9uZyB0OwkJCQkJCQkJXAogCQkJCQkJCQkJXApAQCAtMzk0LDcg KzM5NCw3IEBAIEFUT01JQzY0X09QUyh4b3IsIHhvcikKICN1bmRlZiBBVE9NSUM2NF9PUF9SRVRV Uk5fUkVMQVhFRAogI3VuZGVmIEFUT01JQzY0X09QCiAKLXN0YXRpYyBfX2lubGluZV9fIHZvaWQg YXRvbWljNjRfaW5jKGF0b21pYzY0X3QgKnYpCitzdGF0aWMgaW5saW5lIHZvaWQgYXRvbWljNjRf aW5jKGF0b21pYzY0X3QgKnYpCiB7CiAJbG9uZyB0OwogCkBAIC00MDksNyArNDA5LDcgQEAgc3Rh dGljIF9faW5saW5lX18gdm9pZCBhdG9taWM2NF9pbmMoYXRvbWljNjRfdCAqdikKIH0KICNkZWZp bmUgYXRvbWljNjRfaW5jIGF0b21pYzY0X2luYwogCi1zdGF0aWMgX19pbmxpbmVfXyBsb25nIGF0 b21pYzY0X2luY19yZXR1cm5fcmVsYXhlZChhdG9taWM2NF90ICp2KQorc3RhdGljIGlubGluZSBs b25nIGF0b21pYzY0X2luY19yZXR1cm5fcmVsYXhlZChhdG9taWM2NF90ICp2KQogewogCWxvbmcg dDsKIApAQCAtNDI1LDcgKzQyNSw3IEBAIHN0YXRpYyBfX2lubGluZV9fIGxvbmcgYXRvbWljNjRf aW5jX3JldHVybl9yZWxheGVkKGF0b21pYzY0X3QgKnYpCiAJcmV0dXJuIHQ7CiB9CiAKLXN0YXRp YyBfX2lubGluZV9fIHZvaWQgYXRvbWljNjRfZGVjKGF0b21pYzY0X3QgKnYpCitzdGF0aWMgaW5s aW5lIHZvaWQgYXRvbWljNjRfZGVjKGF0b21pYzY0X3QgKnYpCiB7CiAJbG9uZyB0OwogCkBAIC00 NDAsNyArNDQwLDcgQEAgc3RhdGljIF9faW5saW5lX18gdm9pZCBhdG9taWM2NF9kZWMoYXRvbWlj NjRfdCAqdikKIH0KICNkZWZpbmUgYXRvbWljNjRfZGVjIGF0b21pYzY0X2RlYwogCi1zdGF0aWMg X19pbmxpbmVfXyBsb25nIGF0b21pYzY0X2RlY19yZXR1cm5fcmVsYXhlZChhdG9taWM2NF90ICp2 KQorc3RhdGljIGlubGluZSBsb25nIGF0b21pYzY0X2RlY19yZXR1cm5fcmVsYXhlZChhdG9taWM2 NF90ICp2KQogewogCWxvbmcgdDsKIApAQCAtNDYzLDcgKzQ2Myw3IEBAIHN0YXRpYyBfX2lubGlu ZV9fIGxvbmcgYXRvbWljNjRfZGVjX3JldHVybl9yZWxheGVkKGF0b21pYzY0X3QgKnYpCiAgKiBB dG9taWNhbGx5IHRlc3QgKnYgYW5kIGRlY3JlbWVudCBpZiBpdCBpcyBncmVhdGVyIHRoYW4gMC4K ICAqIFRoZSBmdW5jdGlvbiByZXR1cm5zIHRoZSBvbGQgdmFsdWUgb2YgKnYgbWludXMgMS4KICAq Lwotc3RhdGljIF9faW5saW5lX18gbG9uZyBhdG9taWM2NF9kZWNfaWZfcG9zaXRpdmUoYXRvbWlj NjRfdCAqdikKK3N0YXRpYyBpbmxpbmUgbG9uZyBhdG9taWM2NF9kZWNfaWZfcG9zaXRpdmUoYXRv bWljNjRfdCAqdikKIHsKIAlsb25nIHQ7CiAKQEAgLTUwMiw3ICs1MDIsNyBAQCBzdGF0aWMgX19p bmxpbmVfXyBsb25nIGF0b21pYzY0X2RlY19pZl9wb3NpdGl2ZShhdG9taWM2NF90ICp2KQogICog QXRvbWljYWxseSBhZGRzIEBhIHRvIEB2LCBzbyBsb25nIGFzIGl0IHdhcyBub3QgQHUuCiAgKiBS ZXR1cm5zIHRoZSBvbGQgdmFsdWUgb2YgQHYuCiAgKi8KLXN0YXRpYyBfX2lubGluZV9fIGxvbmcg YXRvbWljNjRfZmV0Y2hfYWRkX3VubGVzcyhhdG9taWM2NF90ICp2LCBsb25nIGEsIGxvbmcgdSkK K3N0YXRpYyBpbmxpbmUgbG9uZyBhdG9taWM2NF9mZXRjaF9hZGRfdW5sZXNzKGF0b21pYzY0X3Qg KnYsIGxvbmcgYSwgbG9uZyB1KQogewogCWxvbmcgdDsKIApAQCAtNTMyLDcgKzUzMiw3IEBAIHN0 YXRpYyBfX2lubGluZV9fIGxvbmcgYXRvbWljNjRfZmV0Y2hfYWRkX3VubGVzcyhhdG9taWM2NF90 ICp2LCBsb25nIGEsIGxvbmcgdSkKICAqIEF0b21pY2FsbHkgaW5jcmVtZW50cyBAdiBieSAxLCBz byBsb25nIGFzIEB2IGlzIG5vbi16ZXJvLgogICogUmV0dXJucyBub24temVybyBpZiBAdiB3YXMg bm9uLXplcm8sIGFuZCB6ZXJvIG90aGVyd2lzZS4KICAqLwotc3RhdGljIF9faW5saW5lX18gaW50 IGF0b21pYzY0X2luY19ub3RfemVybyhhdG9taWM2NF90ICp2KQorc3RhdGljIGlubGluZSBpbnQg YXRvbWljNjRfaW5jX25vdF96ZXJvKGF0b21pYzY0X3QgKnYpCiB7CiAJbG9uZyB0MSwgdDI7CiAK ZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9iaXRvcHMuaCBiL2FyY2gvcG93 ZXJwYy9pbmNsdWRlL2FzbS9iaXRvcHMuaAppbmRleCBmZjcxNTY2ZGFkZWUuLjA4NThjOGRkZWE5 MiAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2JpdG9wcy5oCisrKyBiL2Fy Y2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9iaXRvcHMuaApAQCAtNjgsNyArNjgsNyBAQAogCiAvKiBN YWNybyBmb3IgZ2VuZXJhdGluZyB0aGUgKioqX2JpdHMoKSBmdW5jdGlvbnMgKi8KICNkZWZpbmUg REVGSU5FX0JJVE9QKGZuLCBvcCwgcHJlZml4KQkJXAotc3RhdGljIF9faW5saW5lX18gdm9pZCBm bih1bnNpZ25lZCBsb25nIG1hc2ssCVwKK3N0YXRpYyBpbmxpbmUgdm9pZCBmbih1bnNpZ25lZCBs b25nIG1hc2ssCVwKIAkJdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqX3ApCVwKIHsJCQkJCQlcCiAJ dW5zaWduZWQgbG9uZyBvbGQ7CQkJXApAQCAtOTAsMjIgKzkwLDIyIEBAIERFRklORV9CSVRPUChj bGVhcl9iaXRzLCBhbmRjLCAiIikKIERFRklORV9CSVRPUChjbGVhcl9iaXRzX3VubG9jaywgYW5k YywgUFBDX1JFTEVBU0VfQkFSUklFUikKIERFRklORV9CSVRPUChjaGFuZ2VfYml0cywgeG9yLCAi IikKIAotc3RhdGljIF9faW5saW5lX18gdm9pZCBzZXRfYml0KGludCBuciwgdm9sYXRpbGUgdW5z aWduZWQgbG9uZyAqYWRkcikKK3N0YXRpYyBpbmxpbmUgdm9pZCBzZXRfYml0KGludCBuciwgdm9s YXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKIHsKIAlzZXRfYml0cyhCSVRfTUFTSyhuciksIGFk ZHIgKyBCSVRfV09SRChucikpOwogfQogCi1zdGF0aWMgX19pbmxpbmVfXyB2b2lkIGNsZWFyX2Jp dChpbnQgbnIsIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKmFkZHIpCitzdGF0aWMgaW5saW5lIHZv aWQgY2xlYXJfYml0KGludCBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKIHsKIAlj bGVhcl9iaXRzKEJJVF9NQVNLKG5yKSwgYWRkciArIEJJVF9XT1JEKG5yKSk7CiB9CiAKLXN0YXRp YyBfX2lubGluZV9fIHZvaWQgY2xlYXJfYml0X3VubG9jayhpbnQgbnIsIHZvbGF0aWxlIHVuc2ln bmVkIGxvbmcgKmFkZHIpCitzdGF0aWMgaW5saW5lIHZvaWQgY2xlYXJfYml0X3VubG9jayhpbnQg bnIsIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKmFkZHIpCiB7CiAJY2xlYXJfYml0c191bmxvY2so QklUX01BU0sobnIpLCBhZGRyICsgQklUX1dPUkQobnIpKTsKIH0KIAotc3RhdGljIF9faW5saW5l X18gdm9pZCBjaGFuZ2VfYml0KGludCBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikK K3N0YXRpYyBpbmxpbmUgdm9pZCBjaGFuZ2VfYml0KGludCBuciwgdm9sYXRpbGUgdW5zaWduZWQg bG9uZyAqYWRkcikKIHsKIAljaGFuZ2VfYml0cyhCSVRfTUFTSyhuciksIGFkZHIgKyBCSVRfV09S RChucikpOwogfQpAQCAtMTEzLDcgKzExMyw3IEBAIHN0YXRpYyBfX2lubGluZV9fIHZvaWQgY2hh bmdlX2JpdChpbnQgbnIsIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKmFkZHIpCiAvKiBMaWtlIERF RklORV9CSVRPUCgpLCB3aXRoIGNoYW5nZXMgdG8gdGhlIGFyZ3VtZW50cyB0byAnb3AnIGFuZCB0 aGUgb3V0cHV0CiAgKiBvcGVyYW5kcy4gKi8KICNkZWZpbmUgREVGSU5FX1RFU1RPUChmbiwgb3As IHByZWZpeCwgcG9zdGZpeCwgZWgpCVwKLXN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGxvbmcg Zm4oCQkJXAorc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIGZuKAkJCVwKIAkJdW5zaWduZWQg bG9uZyBtYXNrLAkJCVwKIAkJdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqX3ApCQlcCiB7CQkJCQkJ CVwKQEAgLTE0MiwzMyArMTQyLDMzIEBAIERFRklORV9URVNUT1AodGVzdF9hbmRfY2xlYXJfYml0 cywgYW5kYywgUFBDX0FUT01JQ19FTlRSWV9CQVJSSUVSLAogREVGSU5FX1RFU1RPUCh0ZXN0X2Fu ZF9jaGFuZ2VfYml0cywgeG9yLCBQUENfQVRPTUlDX0VOVFJZX0JBUlJJRVIsCiAJICAgICAgUFBD X0FUT01JQ19FWElUX0JBUlJJRVIsIDApCiAKLXN0YXRpYyBfX2lubGluZV9fIGludCB0ZXN0X2Fu ZF9zZXRfYml0KHVuc2lnbmVkIGxvbmcgbnIsCitzdGF0aWMgaW5saW5lIGludCB0ZXN0X2FuZF9z ZXRfYml0KHVuc2lnbmVkIGxvbmcgbnIsCiAJCQkJICAgICAgIHZvbGF0aWxlIHVuc2lnbmVkIGxv bmcgKmFkZHIpCiB7CiAJcmV0dXJuIHRlc3RfYW5kX3NldF9iaXRzKEJJVF9NQVNLKG5yKSwgYWRk ciArIEJJVF9XT1JEKG5yKSkgIT0gMDsKIH0KIAotc3RhdGljIF9faW5saW5lX18gaW50IHRlc3Rf YW5kX3NldF9iaXRfbG9jayh1bnNpZ25lZCBsb25nIG5yLAorc3RhdGljIGlubGluZSBpbnQgdGVz dF9hbmRfc2V0X2JpdF9sb2NrKHVuc2lnbmVkIGxvbmcgbnIsCiAJCQkJICAgICAgIHZvbGF0aWxl IHVuc2lnbmVkIGxvbmcgKmFkZHIpCiB7CiAJcmV0dXJuIHRlc3RfYW5kX3NldF9iaXRzX2xvY2so QklUX01BU0sobnIpLAogCQkJCWFkZHIgKyBCSVRfV09SRChucikpICE9IDA7CiB9CiAKLXN0YXRp YyBfX2lubGluZV9fIGludCB0ZXN0X2FuZF9jbGVhcl9iaXQodW5zaWduZWQgbG9uZyBuciwKK3N0 YXRpYyBpbmxpbmUgaW50IHRlc3RfYW5kX2NsZWFyX2JpdCh1bnNpZ25lZCBsb25nIG5yLAogCQkJ CQkgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKIHsKIAlyZXR1cm4gdGVzdF9hbmRfY2xl YXJfYml0cyhCSVRfTUFTSyhuciksIGFkZHIgKyBCSVRfV09SRChucikpICE9IDA7CiB9CiAKLXN0 YXRpYyBfX2lubGluZV9fIGludCB0ZXN0X2FuZF9jaGFuZ2VfYml0KHVuc2lnbmVkIGxvbmcgbnIs CitzdGF0aWMgaW5saW5lIGludCB0ZXN0X2FuZF9jaGFuZ2VfYml0KHVuc2lnbmVkIGxvbmcgbnIs CiAJCQkJCSAgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKIHsKIAlyZXR1cm4gdGVzdF9h bmRfY2hhbmdlX2JpdHMoQklUX01BU0sobnIpLCBhZGRyICsgQklUX1dPUkQobnIpKSAhPSAwOwog fQogCiAjaWZkZWYgQ09ORklHX1BQQzY0Ci1zdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25n IGNsZWFyX2JpdF91bmxvY2tfcmV0dXJuX3dvcmQoaW50IG5yLAorc3RhdGljIGlubGluZSB1bnNp Z25lZCBsb25nIGNsZWFyX2JpdF91bmxvY2tfcmV0dXJuX3dvcmQoaW50IG5yLAogCQkJCQkJdm9s YXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKIHsKIAl1bnNpZ25lZCBsb25nIG9sZCwgdDsKQEAg LTE5Nyw3ICsxOTcsNyBAQCBzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nIGNsZWFyX2Jp dF91bmxvY2tfcmV0dXJuX3dvcmQoaW50IG5yLAogCiAjaW5jbHVkZSA8YXNtLWdlbmVyaWMvYml0 b3BzL25vbi1hdG9taWMuaD4KIAotc3RhdGljIF9faW5saW5lX18gdm9pZCBfX2NsZWFyX2JpdF91 bmxvY2soaW50IG5yLCB2b2xhdGlsZSB1bnNpZ25lZCBsb25nICphZGRyKQorc3RhdGljIGlubGlu ZSB2b2lkIF9fY2xlYXJfYml0X3VubG9jayhpbnQgbnIsIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcg KmFkZHIpCiB7CiAJX19hc21fXyBfX3ZvbGF0aWxlX18oUFBDX1JFTEVBU0VfQkFSUklFUiAiIiA6 OjogIm1lbW9yeSIpOwogCV9fY2xlYXJfYml0KG5yLCBhZGRyKTsKQEAgLTIxOSwxNCArMjE5LDE0 IEBAIHN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19jbGVhcl9iaXRfdW5sb2NrKGludCBuciwgdm9s YXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKICAqIGZsczogZmluZCBsYXN0IChtb3N0LXNpZ25p ZmljYW50KSBiaXQgc2V0LgogICogTm90ZSBmbHMoMCkgPSAwLCBmbHMoMSkgPSAxLCBmbHMoMHg4 MDAwMDAwMCkgPSAzMi4KICAqLwotc3RhdGljIF9faW5saW5lX18gaW50IGZscyh1bnNpZ25lZCBp bnQgeCkKK3N0YXRpYyBpbmxpbmUgaW50IGZscyh1bnNpZ25lZCBpbnQgeCkKIHsKIAlyZXR1cm4g MzIgLSBfX2J1aWx0aW5fY2x6KHgpOwogfQogCiAjaW5jbHVkZSA8YXNtLWdlbmVyaWMvYml0b3Bz L2J1aWx0aW4tX19mbHMuaD4KIAotc3RhdGljIF9faW5saW5lX18gaW50IGZsczY0KF9fdTY0IHgp CitzdGF0aWMgaW5saW5lIGludCBmbHM2NChfX3U2NCB4KQogewogCXJldHVybiA2NCAtIF9fYnVp bHRpbl9jbHpsbCh4KTsKIH0KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9k bWEuaCBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9kbWEuaAppbmRleCAxYjRmMDI1NDg2OGYu LmQ1YmU2OThiODMxYSAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2RtYS5o CisrKyBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9kbWEuaApAQCAtMTY2LDIwICsxNjYsMjAg QEAKIAogZXh0ZXJuIHNwaW5sb2NrX3QgZG1hX3NwaW5fbG9jazsKIAotc3RhdGljIF9faW5saW5l X18gdW5zaWduZWQgbG9uZyBjbGFpbV9kbWFfbG9jayh2b2lkKQorc3RhdGljIGlubGluZSB1bnNp Z25lZCBsb25nIGNsYWltX2RtYV9sb2NrKHZvaWQpCiB7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsK IAlzcGluX2xvY2tfaXJxc2F2ZSgmZG1hX3NwaW5fbG9jaywgZmxhZ3MpOwogCXJldHVybiBmbGFn czsKIH0KIAotc3RhdGljIF9faW5saW5lX18gdm9pZCByZWxlYXNlX2RtYV9sb2NrKHVuc2lnbmVk IGxvbmcgZmxhZ3MpCitzdGF0aWMgaW5saW5lIHZvaWQgcmVsZWFzZV9kbWFfbG9jayh1bnNpZ25l ZCBsb25nIGZsYWdzKQogewogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRtYV9zcGluX2xvY2ss IGZsYWdzKTsKIH0KIAogLyogZW5hYmxlL2Rpc2FibGUgYSBzcGVjaWZpYyBETUEgY2hhbm5lbCAq Lwotc3RhdGljIF9faW5saW5lX18gdm9pZCBlbmFibGVfZG1hKHVuc2lnbmVkIGludCBkbWFucikK K3N0YXRpYyBpbmxpbmUgdm9pZCBlbmFibGVfZG1hKHVuc2lnbmVkIGludCBkbWFucikKIHsKIAl1 bnNpZ25lZCBjaGFyIHVjRG1hQ21kID0gMHgwMDsKIApAQCAtMTk1LDcgKzE5NSw3IEBAIHN0YXRp YyBfX2lubGluZV9fIHZvaWQgZW5hYmxlX2RtYSh1bnNpZ25lZCBpbnQgZG1hbnIpCiAJfQogfQog Ci1zdGF0aWMgX19pbmxpbmVfXyB2b2lkIGRpc2FibGVfZG1hKHVuc2lnbmVkIGludCBkbWFucikK K3N0YXRpYyBpbmxpbmUgdm9pZCBkaXNhYmxlX2RtYSh1bnNpZ25lZCBpbnQgZG1hbnIpCiB7CiAJ aWYgKGRtYW5yIDw9IDMpCiAJCWRtYV9vdXRiKGRtYW5yIHwgNCwgRE1BMV9NQVNLX1JFRyk7CkBA IC0yMTAsNyArMjEwLDcgQEAgc3RhdGljIF9faW5saW5lX18gdm9pZCBkaXNhYmxlX2RtYSh1bnNp Z25lZCBpbnQgZG1hbnIpCiAgKiAtLS0gSW4gb3JkZXIgdG8gZG8gdGhhdCwgdGhlIERNQSByb3V0 aW5lcyBiZWxvdyBzaG91bGQgLS0tCiAgKiAtLS0gb25seSBiZSB1c2VkIHdoaWxlIGludGVycnVw dHMgYXJlIGRpc2FibGVkISAtLS0KICAqLwotc3RhdGljIF9faW5saW5lX18gdm9pZCBjbGVhcl9k bWFfZmYodW5zaWduZWQgaW50IGRtYW5yKQorc3RhdGljIGlubGluZSB2b2lkIGNsZWFyX2RtYV9m Zih1bnNpZ25lZCBpbnQgZG1hbnIpCiB7CiAJaWYgKGRtYW5yIDw9IDMpCiAJCWRtYV9vdXRiKDAs IERNQTFfQ0xFQVJfRkZfUkVHKTsKQEAgLTIxOSw3ICsyMTksNyBAQCBzdGF0aWMgX19pbmxpbmVf XyB2b2lkIGNsZWFyX2RtYV9mZih1bnNpZ25lZCBpbnQgZG1hbnIpCiB9CiAKIC8qIHNldCBtb2Rl IChhYm92ZSkgZm9yIGEgc3BlY2lmaWMgRE1BIGNoYW5uZWwgKi8KLXN0YXRpYyBfX2lubGluZV9f IHZvaWQgc2V0X2RtYV9tb2RlKHVuc2lnbmVkIGludCBkbWFuciwgY2hhciBtb2RlKQorc3RhdGlj IGlubGluZSB2b2lkIHNldF9kbWFfbW9kZSh1bnNpZ25lZCBpbnQgZG1hbnIsIGNoYXIgbW9kZSkK IHsKIAlpZiAoZG1hbnIgPD0gMykKIAkJZG1hX291dGIobW9kZSB8IGRtYW5yLCBETUExX01PREVf UkVHKTsKQEAgLTIzMiw3ICsyMzIsNyBAQCBzdGF0aWMgX19pbmxpbmVfXyB2b2lkIHNldF9kbWFf bW9kZSh1bnNpZ25lZCBpbnQgZG1hbnIsIGNoYXIgbW9kZSkKICAqIHRoZSBsb3dlciAxNiBiaXRz IG9mIHRoZSBETUEgY3VycmVudCBhZGRyZXNzIHJlZ2lzdGVyLCBidXQgYSA2NGsgYm91bmRhcnkK ICAqIG1heSBoYXZlIGJlZW4gY3Jvc3NlZC4KICAqLwotc3RhdGljIF9faW5saW5lX18gdm9pZCBz ZXRfZG1hX3BhZ2UodW5zaWduZWQgaW50IGRtYW5yLCBpbnQgcGFnZW5yKQorc3RhdGljIGlubGlu ZSB2b2lkIHNldF9kbWFfcGFnZSh1bnNpZ25lZCBpbnQgZG1hbnIsIGludCBwYWdlbnIpCiB7CiAJ c3dpdGNoIChkbWFucikgewogCWNhc2UgMDoKQEAgLTI2OSw3ICsyNjksNyBAQCBzdGF0aWMgX19p bmxpbmVfXyB2b2lkIHNldF9kbWFfcGFnZSh1bnNpZ25lZCBpbnQgZG1hbnIsIGludCBwYWdlbnIp CiAvKiBTZXQgdHJhbnNmZXIgYWRkcmVzcyAmIHBhZ2UgYml0cyBmb3Igc3BlY2lmaWMgRE1BIGNo YW5uZWwuCiAgKiBBc3N1bWVzIGRtYSBmbGlwZmxvcCBpcyBjbGVhci4KICAqLwotc3RhdGljIF9f aW5saW5lX18gdm9pZCBzZXRfZG1hX2FkZHIodW5zaWduZWQgaW50IGRtYW5yLCB1bnNpZ25lZCBp bnQgcGh5cykKK3N0YXRpYyBpbmxpbmUgdm9pZCBzZXRfZG1hX2FkZHIodW5zaWduZWQgaW50IGRt YW5yLCB1bnNpZ25lZCBpbnQgcGh5cykKIHsKIAlpZiAoZG1hbnIgPD0gMykgewogCQlkbWFfb3V0 YihwaHlzICYgMHhmZiwKQEAgLTI5NCw3ICsyOTQsNyBAQCBzdGF0aWMgX19pbmxpbmVfXyB2b2lk IHNldF9kbWFfYWRkcih1bnNpZ25lZCBpbnQgZG1hbnIsIHVuc2lnbmVkIGludCBwaHlzKQogICog QXNzdW1lcyBkbWEgZmxpcC1mbG9wIGlzIGNsZWFyLgogICogTk9URSAyOiAiY291bnQiIHJlcHJl c2VudHMgX2J5dGVzXyBhbmQgbXVzdCBiZSBldmVuIGZvciBjaGFubmVscyA1LTcuCiAgKi8KLXN0 YXRpYyBfX2lubGluZV9fIHZvaWQgc2V0X2RtYV9jb3VudCh1bnNpZ25lZCBpbnQgZG1hbnIsIHVu c2lnbmVkIGludCBjb3VudCkKK3N0YXRpYyBpbmxpbmUgdm9pZCBzZXRfZG1hX2NvdW50KHVuc2ln bmVkIGludCBkbWFuciwgdW5zaWduZWQgaW50IGNvdW50KQogewogCWNvdW50LS07CiAJaWYgKGRt YW5yIDw9IDMpIHsKQEAgLTMxOSw3ICszMTksNyBAQCBzdGF0aWMgX19pbmxpbmVfXyB2b2lkIHNl dF9kbWFfY291bnQodW5zaWduZWQgaW50IGRtYW5yLCB1bnNpZ25lZCBpbnQgY291bnQpCiAgKgog ICogQXNzdW1lcyBETUEgZmxpcC1mbG9wIGlzIGNsZWFyLgogICovCi1zdGF0aWMgX19pbmxpbmVf XyBpbnQgZ2V0X2RtYV9yZXNpZHVlKHVuc2lnbmVkIGludCBkbWFucikKK3N0YXRpYyBpbmxpbmUg aW50IGdldF9kbWFfcmVzaWR1ZSh1bnNpZ25lZCBpbnQgZG1hbnIpCiB7CiAJdW5zaWduZWQgaW50 IGlvX3BvcnQgPSAoZG1hbnIgPD0gMykKIAkgICAgPyAoKGRtYW5yICYgMykgPDwgMSkgKyAxICsg SU9fRE1BMV9CQVNFCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vZWRhYy5o IGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2VkYWMuaAppbmRleCA1NTcxZTIzZDI1M2UuLmYz MzFjN2Y4NTI1ZiAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2VkYWMuaAor KysgYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vZWRhYy5oCkBAIC0xNiw3ICsxNiw3IEBACiAg KiBFQ0Mgc2NydWJiaW5nLiAgSXQgcmVhZHMgbWVtb3J5IGFuZCB0aGVuIHdyaXRlcyBiYWNrIHRo ZSBvcmlnaW5hbAogICogdmFsdWUsIGFsbG93aW5nIHRoZSBoYXJkd2FyZSB0byBkZXRlY3QgYW5k IGNvcnJlY3QgbWVtb3J5IGVycm9ycy4KICAqLwotc3RhdGljIF9faW5saW5lX18gdm9pZCBlZGFj X2F0b21pY19zY3J1Yih2b2lkICp2YSwgdTMyIHNpemUpCitzdGF0aWMgaW5saW5lIHZvaWQgZWRh Y19hdG9taWNfc2NydWIodm9pZCAqdmEsIHUzMiBzaXplKQogewogCXVuc2lnbmVkIGludCAqdmly dF9hZGRyID0gdmE7CiAJdW5zaWduZWQgaW50IHRlbXA7CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2Vy cGMvaW5jbHVkZS9hc20vaXJxLmggYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vaXJxLmgKaW5k ZXggZWUzOWNlNTZiMmEyLi42NzZhN2U3YzY2ZTcgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9p bmNsdWRlL2FzbS9pcnEuaAorKysgYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vaXJxLmgKQEAg LTMxLDcgKzMxLDcgQEAgZXh0ZXJuIGF0b21pY190IHBwY19uX2xvc3RfaW50ZXJydXB0czsKIAog ZXh0ZXJuIGlycV9od19udW1iZXJfdCB2aXJxX3RvX2h3KHVuc2lnbmVkIGludCB2aXJxKTsKIAot c3RhdGljIF9faW5saW5lX18gaW50IGlycV9jYW5vbmljYWxpemUoaW50IGlycSkKK3N0YXRpYyBp bmxpbmUgaW50IGlycV9jYW5vbmljYWxpemUoaW50IGlycSkKIHsKIAlyZXR1cm4gaXJxOwogfQpk aWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2xvY2FsLmggYi9hcmNoL3Bvd2Vy cGMvaW5jbHVkZS9hc20vbG9jYWwuaAppbmRleCBmZGQwMDkzOTI3MGIuLjk1NzAyZTlkYzFkMCAx MDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2xvY2FsLmgKKysrIGIvYXJjaC9w b3dlcnBjL2luY2x1ZGUvYXNtL2xvY2FsLmgKQEAgLTE3LDE4ICsxNywxOCBAQCB0eXBlZGVmIHN0 cnVjdAogCiAjZGVmaW5lIExPQ0FMX0lOSVQoaSkJeyAoaSkgfQogCi1zdGF0aWMgX19pbmxpbmVf XyBsb25nIGxvY2FsX3JlYWQobG9jYWxfdCAqbCkKK3N0YXRpYyBpbmxpbmUgbG9uZyBsb2NhbF9y ZWFkKGxvY2FsX3QgKmwpCiB7CiAJcmV0dXJuIFJFQURfT05DRShsLT52KTsKIH0KIAotc3RhdGlj IF9faW5saW5lX18gdm9pZCBsb2NhbF9zZXQobG9jYWxfdCAqbCwgbG9uZyBpKQorc3RhdGljIGlu bGluZSB2b2lkIGxvY2FsX3NldChsb2NhbF90ICpsLCBsb25nIGkpCiB7CiAJV1JJVEVfT05DRShs LT52LCBpKTsKIH0KIAogI2RlZmluZSBMT0NBTF9PUChvcCwgY19vcCkJCQkJCQlcCi1zdGF0aWMg X19pbmxpbmVfXyB2b2lkIGxvY2FsXyMjb3AobG9uZyBpLCBsb2NhbF90ICpsKQkJCVwKK3N0YXRp YyBpbmxpbmUgdm9pZCBsb2NhbF8jI29wKGxvbmcgaSwgbG9jYWxfdCAqbCkJCQlcCiB7CQkJCQkJ CQkJXAogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CQkJCQkJXAogCQkJCQkJCQkJXApAQCAtMzgsNyAr MzgsNyBAQCBzdGF0aWMgX19pbmxpbmVfXyB2b2lkIGxvY2FsXyMjb3AobG9uZyBpLCBsb2NhbF90 ICpsKQkJCVwKIH0KIAogI2RlZmluZSBMT0NBTF9PUF9SRVRVUk4ob3AsIGNfb3ApCQkJCQlcCi1z dGF0aWMgX19pbmxpbmVfXyBsb25nIGxvY2FsXyMjb3AjI19yZXR1cm4obG9uZyBhLCBsb2NhbF90 ICpsKQkJXAorc3RhdGljIGlubGluZSBsb25nIGxvY2FsXyMjb3AjI19yZXR1cm4obG9uZyBhLCBs b2NhbF90ICpsKQkJXAogewkJCQkJCQkJCVwKIAlsb25nIHQ7CQkJCQkJCQlcCiAJdW5zaWduZWQg bG9uZyBmbGFnczsJCQkJCQlcCkBAIC03Niw3ICs3Niw3IEBAIExPQ0FMX09QUyhzdWIsIC09KQog I2RlZmluZSBsb2NhbF9zdWJfYW5kX3Rlc3QoYSwgbCkJKGxvY2FsX3N1Yl9yZXR1cm4oKGEpLCAo bCkpID09IDApCiAjZGVmaW5lIGxvY2FsX2RlY19hbmRfdGVzdChsKQkJKGxvY2FsX2RlY19yZXR1 cm4oKGwpKSA9PSAwKQogCi1zdGF0aWMgX19pbmxpbmVfXyBsb25nIGxvY2FsX2NtcHhjaGcobG9j YWxfdCAqbCwgbG9uZyBvLCBsb25nIG4pCitzdGF0aWMgaW5saW5lIGxvbmcgbG9jYWxfY21weGNo Zyhsb2NhbF90ICpsLCBsb25nIG8sIGxvbmcgbikKIHsKIAlsb25nIHQ7CiAJdW5zaWduZWQgbG9u ZyBmbGFnczsKQEAgLTkwLDcgKzkwLDcgQEAgc3RhdGljIF9faW5saW5lX18gbG9uZyBsb2NhbF9j bXB4Y2hnKGxvY2FsX3QgKmwsIGxvbmcgbywgbG9uZyBuKQogCXJldHVybiB0OwogfQogCi1zdGF0 aWMgX19pbmxpbmVfXyBsb25nIGxvY2FsX3hjaGcobG9jYWxfdCAqbCwgbG9uZyBuKQorc3RhdGlj IGlubGluZSBsb25nIGxvY2FsX3hjaGcobG9jYWxfdCAqbCwgbG9uZyBuKQogewogCWxvbmcgdDsK IAl1bnNpZ25lZCBsb25nIGZsYWdzOwpAQCAtMTEyLDcgKzExMiw3IEBAIHN0YXRpYyBfX2lubGlu ZV9fIGxvbmcgbG9jYWxfeGNoZyhsb2NhbF90ICpsLCBsb25nIG4pCiAgKiBBdG9taWNhbGx5IGFk ZHMgQGEgdG8gQGwsIHNvIGxvbmcgYXMgaXQgd2FzIG5vdCBAdS4KICAqIFJldHVybnMgbm9uLXpl cm8gaWYgQGwgd2FzIG5vdCBAdSwgYW5kIHplcm8gb3RoZXJ3aXNlLgogICovCi1zdGF0aWMgX19p bmxpbmVfXyBpbnQgbG9jYWxfYWRkX3VubGVzcyhsb2NhbF90ICpsLCBsb25nIGEsIGxvbmcgdSkK K3N0YXRpYyBpbmxpbmUgaW50IGxvY2FsX2FkZF91bmxlc3MobG9jYWxfdCAqbCwgbG9uZyBhLCBs b25nIHUpCiB7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAlpbnQgcmV0ID0gMDsKZGlmZiAtLWdp dCBhL2FyY2gvc2gvaW5jbHVkZS9hc20vcGd0YWJsZV82NC5oIGIvYXJjaC9zaC9pbmNsdWRlL2Fz bS9wZ3RhYmxlXzY0LmgKaW5kZXggMDc0MjQ5NjhkZjYyLi4xMmNhMGQ5YmRlYmIgMTAwNjQ0Ci0t LSBhL2FyY2gvc2gvaW5jbHVkZS9hc20vcGd0YWJsZV82NC5oCisrKyBiL2FyY2gvc2gvaW5jbHVk ZS9hc20vcGd0YWJsZV82NC5oCkBAIC0zMiw3ICszMiw3IEBACiAgKi8KICNkZWZpbmUgc2V0X3Bt ZChwbWRwdHIsIHBtZHZhbCkgKCoocG1kcHRyKSA9IHBtZHZhbCkKIAotc3RhdGljIF9faW5saW5l X18gdm9pZCBzZXRfcHRlKHB0ZV90ICpwdGVwdHIsIHB0ZV90IHB0ZXZhbCkKK3N0YXRpYyBpbmxp bmUgdm9pZCBzZXRfcHRlKHB0ZV90ICpwdGVwdHIsIHB0ZV90IHB0ZXZhbCkKIHsKIAl1bnNpZ25l ZCBsb25nIGxvbmcgeCA9ICgodW5zaWduZWQgbG9uZyBsb25nKSBwdGV2YWwucHRlX2xvdyk7CiAJ dW5zaWduZWQgbG9uZyBsb25nICp4cCA9ICh1bnNpZ25lZCBsb25nIGxvbmcgKikgcHRlcHRyOwpk aWZmIC0tZ2l0IGEvYXJjaC9zaC9pbmNsdWRlL2FzbS9wcm9jZXNzb3JfMzIuaCBiL2FyY2gvc2gv aW5jbHVkZS9hc20vcHJvY2Vzc29yXzMyLmgKaW5kZXggOTUxMDBkOGEwYjdiLi44N2FhOGNiMTZi NWEgMTAwNjQ0Ci0tLSBhL2FyY2gvc2gvaW5jbHVkZS9hc20vcHJvY2Vzc29yXzMyLmgKKysrIGIv YXJjaC9zaC9pbmNsdWRlL2FzbS9wcm9jZXNzb3JfMzIuaApAQCAtMTQxLDcgKzE0MSw3IEBAIGV4 dGVybiB2b2lkIHJlbGVhc2VfdGhyZWFkKHN0cnVjdCB0YXNrX3N0cnVjdCAqKTsKICAqIEZQVSBs YXp5IHN0YXRlIHNhdmUgaGFuZGxpbmcuCiAgKi8KIAotc3RhdGljIF9faW5saW5lX18gdm9pZCBk aXNhYmxlX2ZwdSh2b2lkKQorc3RhdGljIGlubGluZSB2b2lkIGRpc2FibGVfZnB1KHZvaWQpCiB7 CiAJdW5zaWduZWQgbG9uZyBfX2R1bW15OwogCkBAIC0xNTMsNyArMTUzLDcgQEAgc3RhdGljIF9f aW5saW5lX18gdm9pZCBkaXNhYmxlX2ZwdSh2b2lkKQogCQkJICAgICA6ICJyIiAoU1JfRkQpKTsK IH0KIAotc3RhdGljIF9faW5saW5lX18gdm9pZCBlbmFibGVfZnB1KHZvaWQpCitzdGF0aWMgaW5s aW5lIHZvaWQgZW5hYmxlX2ZwdSh2b2lkKQogewogCXVuc2lnbmVkIGxvbmcgX19kdW1teTsKIApk aWZmIC0tZ2l0IGEvYXJjaC9zaC9pbmNsdWRlL2NwdS1zaDMvY3B1L2RhYy5oIGIvYXJjaC9zaC9p bmNsdWRlL2NwdS1zaDMvY3B1L2RhYy5oCmluZGV4IGZkMDIzMzE2MDhhOC4uNjdhZTFhZTAzYzQ3 IDEwMDY0NAotLS0gYS9hcmNoL3NoL2luY2x1ZGUvY3B1LXNoMy9jcHUvZGFjLmgKKysrIGIvYXJj aC9zaC9pbmNsdWRlL2NwdS1zaDMvY3B1L2RhYy5oCkBAIC0xNSw3ICsxNSw3IEBACiAjZGVmaW5l IERBQ1JfREFFCTB4MjAKIAogCi1zdGF0aWMgX19pbmxpbmVfXyB2b2lkIHNoX2RhY19lbmFibGUo aW50IGNoYW5uZWwpCitzdGF0aWMgaW5saW5lIHZvaWQgc2hfZGFjX2VuYWJsZShpbnQgY2hhbm5l bCkKIHsKIAl1bnNpZ25lZCBjaGFyIHY7CiAJdiA9IF9fcmF3X3JlYWRiKERBQ1IpOwpAQCAtMjQs NyArMjQsNyBAQCBzdGF0aWMgX19pbmxpbmVfXyB2b2lkIHNoX2RhY19lbmFibGUoaW50IGNoYW5u ZWwpCiAJX19yYXdfd3JpdGViKHYsREFDUik7CiB9CiAKLXN0YXRpYyBfX2lubGluZV9fIHZvaWQg c2hfZGFjX2Rpc2FibGUoaW50IGNoYW5uZWwpCitzdGF0aWMgaW5saW5lIHZvaWQgc2hfZGFjX2Rp c2FibGUoaW50IGNoYW5uZWwpCiB7CiAJdW5zaWduZWQgY2hhciB2OwogCXYgPSBfX3Jhd19yZWFk YihEQUNSKTsKQEAgLTMzLDcgKzMzLDcgQEAgc3RhdGljIF9faW5saW5lX18gdm9pZCBzaF9kYWNf ZGlzYWJsZShpbnQgY2hhbm5lbCkKIAlfX3Jhd193cml0ZWIodixEQUNSKTsKIH0KIAotc3RhdGlj IF9faW5saW5lX18gdm9pZCBzaF9kYWNfb3V0cHV0KHU4IHZhbHVlLCBpbnQgY2hhbm5lbCkKK3N0 YXRpYyBpbmxpbmUgdm9pZCBzaF9kYWNfb3V0cHV0KHU4IHZhbHVlLCBpbnQgY2hhbm5lbCkKIHsK IAlpZihjaGFubmVsKSBfX3Jhd193cml0ZWIodmFsdWUsREFEUjEpOwogCWVsc2UgX19yYXdfd3Jp dGViKHZhbHVlLERBRFIwKTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2FsdGVy bmF0aXZlLmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hbHRlcm5hdGl2ZS5oCmluZGV4IGQ3ZmFh MTY2MjJkOC4uOGViMTYwYmIwOGViIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9h bHRlcm5hdGl2ZS5oCisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2FsdGVybmF0aXZlLmgKQEAg LTE1OSwxMCArMTU5LDEwIEBAIHN0YXRpYyBpbmxpbmUgaW50IGFsdGVybmF0aXZlc190ZXh0X3Jl c2VydmVkKHZvaWQgKnN0YXJ0LCB2b2lkICplbmQpCiAgKiB3aXRob3V0IHZvbGF0aWxlIGFuZCBt ZW1vcnkgY2xvYmJlci4KICAqLwogI2RlZmluZSBhbHRlcm5hdGl2ZShvbGRpbnN0ciwgbmV3aW5z dHIsIGZlYXR1cmUpCQkJXAotCWFzbSB2b2xhdGlsZSAoQUxURVJOQVRJVkUob2xkaW5zdHIsIG5l d2luc3RyLCBmZWF0dXJlKSA6IDogOiAibWVtb3J5IikKKwlhc21fdm9sYXRpbGUgKEFMVEVSTkFU SVZFKG9sZGluc3RyLCBuZXdpbnN0ciwgZmVhdHVyZSkgOiA6IDogIm1lbW9yeSIpCiAKICNkZWZp bmUgYWx0ZXJuYXRpdmVfMihvbGRpbnN0ciwgbmV3aW5zdHIxLCBmZWF0dXJlMSwgbmV3aW5zdHIy LCBmZWF0dXJlMikgXAotCWFzbSB2b2xhdGlsZShBTFRFUk5BVElWRV8yKG9sZGluc3RyLCBuZXdp bnN0cjEsIGZlYXR1cmUxLCBuZXdpbnN0cjIsIGZlYXR1cmUyKSA6OjogIm1lbW9yeSIpCisJYXNt X3ZvbGF0aWxlKEFMVEVSTkFUSVZFXzIob2xkaW5zdHIsIG5ld2luc3RyMSwgZmVhdHVyZTEsIG5l d2luc3RyMiwgZmVhdHVyZTIpIDo6OiAibWVtb3J5IikKIAogLyoKICAqIEFsdGVybmF0aXZlIGlu bGluZSBhc3NlbWJseSB3aXRoIGlucHV0LgpAQCAtMTc2LDcgKzE3Niw3IEBAIHN0YXRpYyBpbmxp bmUgaW50IGFsdGVybmF0aXZlc190ZXh0X3Jlc2VydmVkKHZvaWQgKnN0YXJ0LCB2b2lkICplbmQp CiAgKiBMZWF2aW5nIGFuIHVudXNlZCBhcmd1bWVudCAwIHRvIGtlZXAgQVBJIGNvbXBhdGliaWxp dHkuCiAgKi8KICNkZWZpbmUgYWx0ZXJuYXRpdmVfaW5wdXQob2xkaW5zdHIsIG5ld2luc3RyLCBm ZWF0dXJlLCBpbnB1dC4uLikJXAotCWFzbSB2b2xhdGlsZSAoQUxURVJOQVRJVkUob2xkaW5zdHIs IG5ld2luc3RyLCBmZWF0dXJlKQkJXAorCWFzbV92b2xhdGlsZSAoQUxURVJOQVRJVkUob2xkaW5z dHIsIG5ld2luc3RyLCBmZWF0dXJlKQkJXAogCQk6IDogImkiICgwKSwgIyMgaW5wdXQpCiAKIC8q CkBAIC0xODksMTggKzE4OSwxOCBAQCBzdGF0aWMgaW5saW5lIGludCBhbHRlcm5hdGl2ZXNfdGV4 dF9yZXNlcnZlZCh2b2lkICpzdGFydCwgdm9pZCAqZW5kKQogICovCiAjZGVmaW5lIGFsdGVybmF0 aXZlX2lucHV0XzIob2xkaW5zdHIsIG5ld2luc3RyMSwgZmVhdHVyZTEsIG5ld2luc3RyMiwJICAg ICBcCiAJCQkgICBmZWF0dXJlMiwgaW5wdXQuLi4pCQkJCSAgICAgXAotCWFzbSB2b2xhdGlsZShB TFRFUk5BVElWRV8yKG9sZGluc3RyLCBuZXdpbnN0cjEsIGZlYXR1cmUxLAkgICAgIFwKKwlhc21f dm9sYXRpbGUoQUxURVJOQVRJVkVfMihvbGRpbnN0ciwgbmV3aW5zdHIxLCBmZWF0dXJlMSwJICAg ICBcCiAJCW5ld2luc3RyMiwgZmVhdHVyZTIpCQkJCQkgICAgIFwKIAkJOiA6ICJpIiAoMCksICMj IGlucHV0KQogCiAvKiBMaWtlIGFsdGVybmF0aXZlX2lucHV0LCBidXQgd2l0aCBhIHNpbmdsZSBv dXRwdXQgYXJndW1lbnQgKi8KICNkZWZpbmUgYWx0ZXJuYXRpdmVfaW8ob2xkaW5zdHIsIG5ld2lu c3RyLCBmZWF0dXJlLCBvdXRwdXQsIGlucHV0Li4uKQlcCi0JYXNtIHZvbGF0aWxlIChBTFRFUk5B VElWRShvbGRpbnN0ciwgbmV3aW5zdHIsIGZlYXR1cmUpCQlcCisJYXNtX3ZvbGF0aWxlIChBTFRF Uk5BVElWRShvbGRpbnN0ciwgbmV3aW5zdHIsIGZlYXR1cmUpCQlcCiAJCTogb3V0cHV0IDogImki ICgwKSwgIyMgaW5wdXQpCiAKIC8qIExpa2UgYWx0ZXJuYXRpdmVfaW8sIGJ1dCBmb3IgcmVwbGFj aW5nIGEgZGlyZWN0IGNhbGwgd2l0aCBhbm90aGVyIG9uZS4gKi8KICNkZWZpbmUgYWx0ZXJuYXRp dmVfY2FsbChvbGRmdW5jLCBuZXdmdW5jLCBmZWF0dXJlLCBvdXRwdXQsIGlucHV0Li4uKQlcCi0J YXNtIHZvbGF0aWxlIChBTFRFUk5BVElWRSgiY2FsbCAlUFtvbGRdIiwgImNhbGwgJVBbbmV3XSIs IGZlYXR1cmUpIFwKKwlhc21fdm9sYXRpbGUgKEFMVEVSTkFUSVZFKCJjYWxsICVQW29sZF0iLCAi Y2FsbCAlUFtuZXddIiwgZmVhdHVyZSkgXAogCQk6IG91dHB1dCA6IFtvbGRdICJpIiAob2xkZnVu YyksIFtuZXddICJpIiAobmV3ZnVuYyksICMjIGlucHV0KQogCiAvKgpAQCAtMjExLDcgKzIxMSw3 IEBAIHN0YXRpYyBpbmxpbmUgaW50IGFsdGVybmF0aXZlc190ZXh0X3Jlc2VydmVkKHZvaWQgKnN0 YXJ0LCB2b2lkICplbmQpCiAgKi8KICNkZWZpbmUgYWx0ZXJuYXRpdmVfY2FsbF8yKG9sZGZ1bmMs IG5ld2Z1bmMxLCBmZWF0dXJlMSwgbmV3ZnVuYzIsIGZlYXR1cmUyLCAgIFwKIAkJCSAgIG91dHB1 dCwgaW5wdXQuLi4pCQkJCSAgICAgIFwKLQlhc20gdm9sYXRpbGUgKEFMVEVSTkFUSVZFXzIoImNh bGwgJVBbb2xkXSIsICJjYWxsICVQW25ldzFdIiwgZmVhdHVyZTEsXAorCWFzbV92b2xhdGlsZSAo QUxURVJOQVRJVkVfMigiY2FsbCAlUFtvbGRdIiwgImNhbGwgJVBbbmV3MV0iLCBmZWF0dXJlMSxc CiAJCSJjYWxsICVQW25ldzJdIiwgZmVhdHVyZTIpCQkJCSAgICAgIFwKIAkJOiBvdXRwdXQsIEFT TV9DQUxMX0NPTlNUUkFJTlQJCQkJICAgICAgXAogCQk6IFtvbGRdICJpIiAob2xkZnVuYyksIFtu ZXcxXSAiaSIgKG5ld2Z1bmMxKSwJCSAgICAgIFwKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3VtL2Fz bS9jaGVja3N1bS5oIGIvYXJjaC94ODYvdW0vYXNtL2NoZWNrc3VtLmgKaW5kZXggMmE1NmNhYzY0 Njg3Li44ZjFjN2YzMmQ0MjAgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3VtL2FzbS9jaGVja3N1bS5o CisrKyBiL2FyY2gveDg2L3VtL2FzbS9jaGVja3N1bS5oCkBAIC0yOCw3ICsyOCw3IEBAIGV4dGVy biBfX3dzdW0gY3N1bV9wYXJ0aWFsKGNvbnN0IHZvaWQgKmJ1ZmYsIGludCBsZW4sIF9fd3N1bSBz dW0pOwogICoJYWNjZXNzX29rKCkuCiAgKi8KIAotc3RhdGljIF9faW5saW5lX18KK3N0YXRpYyBp bmxpbmUKIF9fd3N1bSBjc3VtX3BhcnRpYWxfY29weV9ub2NoZWNrKGNvbnN0IHZvaWQgKnNyYywg dm9pZCAqZHN0LAogCQkJCSAgICAgICBpbnQgbGVuLCBfX3dzdW0gc3VtKQogewpAQCAtNDQsNyAr NDQsNyBAQCBfX3dzdW0gY3N1bV9wYXJ0aWFsX2NvcHlfbm9jaGVjayhjb25zdCB2b2lkICpzcmMs IHZvaWQgKmRzdCwKICAqIGJldHRlciA2NC1iaXQpIGJvdW5kYXJ5CiAgKi8KIAotc3RhdGljIF9f aW5saW5lX18KK3N0YXRpYyBpbmxpbmUKIF9fd3N1bSBjc3VtX3BhcnRpYWxfY29weV9mcm9tX3Vz ZXIoY29uc3Qgdm9pZCBfX3VzZXIgKnNyYywgdm9pZCAqZHN0LAogCQkJCQkgaW50IGxlbiwgX193 c3VtIHN1bSwgaW50ICplcnJfcHRyKQogewpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvdW0vYXNtL2No ZWNrc3VtXzMyLmggYi9hcmNoL3g4Ni91bS9hc20vY2hlY2tzdW1fMzIuaAppbmRleCA4M2E3NWY4 YTEyMzMuLjgzNjRhZjMwOWI4NSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvdW0vYXNtL2NoZWNrc3Vt XzMyLmgKKysrIGIvYXJjaC94ODYvdW0vYXNtL2NoZWNrc3VtXzMyLmgKQEAgLTExLDcgKzExLDcg QEAgc3RhdGljIGlubGluZSBfX3N1bTE2IGlwX2NvbXB1dGVfY3N1bShjb25zdCB2b2lkICpidWZm LCBpbnQgbGVuKQogfQogCiAjZGVmaW5lIF9IQVZFX0FSQ0hfSVBWNl9DU1VNCi1zdGF0aWMgX19p bmxpbmVfXyBfX3N1bTE2IGNzdW1faXB2Nl9tYWdpYyhjb25zdCBzdHJ1Y3QgaW42X2FkZHIgKnNh ZGRyLAorc3RhdGljIGlubGluZSBfX3N1bTE2IGNzdW1faXB2Nl9tYWdpYyhjb25zdCBzdHJ1Y3Qg aW42X2FkZHIgKnNhZGRyLAogCQkJCQkgIGNvbnN0IHN0cnVjdCBpbjZfYWRkciAqZGFkZHIsCiAJ CQkJCSAgX191MzIgbGVuLCBfX3U4IHByb3RvLAogCQkJCQkgIF9fd3N1bSBzdW0pCkBAIC0zOSw3 ICszOSw3IEBAIHN0YXRpYyBfX2lubGluZV9fIF9fc3VtMTYgY3N1bV9pcHY2X21hZ2ljKGNvbnN0 IHN0cnVjdCBpbjZfYWRkciAqc2FkZHIsCiAgKglDb3B5IGFuZCBjaGVja3N1bSB0byB1c2VyCiAg Ki8KICNkZWZpbmUgSEFWRV9DU1VNX0NPUFlfVVNFUgotc3RhdGljIF9faW5saW5lX18gX193c3Vt IGNzdW1fYW5kX2NvcHlfdG9fdXNlcihjb25zdCB2b2lkICpzcmMsCitzdGF0aWMgaW5saW5lIF9f d3N1bSBjc3VtX2FuZF9jb3B5X3RvX3VzZXIoY29uc3Qgdm9pZCAqc3JjLAogCQkJCQkJICAgICB2 b2lkIF9fdXNlciAqZHN0LAogCQkJCQkJICAgICBpbnQgbGVuLCBfX3dzdW0gc3VtLCBpbnQgKmVy cl9wdHIpCiB7CmRpZmYgLS1naXQgYS9hcmNoL3h0ZW5zYS9pbmNsdWRlL2FzbS9jaGVja3N1bS5o IGIvYXJjaC94dGVuc2EvaW5jbHVkZS9hc20vY2hlY2tzdW0uaAppbmRleCAzYWU3NGQ3ZTA3NGIu LjRlZWIzNmQyMDgyYyAxMDA2NDQKLS0tIGEvYXJjaC94dGVuc2EvaW5jbHVkZS9hc20vY2hlY2tz dW0uaAorKysgYi9hcmNoL3h0ZW5zYS9pbmNsdWRlL2FzbS9jaGVja3N1bS5oCkBAIC02Niw3ICs2 Niw3IEBAIF9fd3N1bSBjc3VtX3BhcnRpYWxfY29weV9mcm9tX3VzZXIoY29uc3Qgdm9pZCBfX3Vz ZXIgKnNyYywgdm9pZCAqZHN0LAogICoJRm9sZCBhIHBhcnRpYWwgY2hlY2tzdW0KICAqLwogCi1z dGF0aWMgX19pbmxpbmVfXyBfX3N1bTE2IGNzdW1fZm9sZChfX3dzdW0gc3VtKQorc3RhdGljIGlu bGluZSBfX3N1bTE2IGNzdW1fZm9sZChfX3dzdW0gc3VtKQogewogCXVuc2lnbmVkIGludCBfX2R1 bW15OwogCV9fYXNtX18oImV4dHVpCSUxLCAlMCwgMTYsIDE2XG5cdCIKQEAgLTg3LDcgKzg3LDcg QEAgc3RhdGljIF9faW5saW5lX18gX19zdW0xNiBjc3VtX2ZvbGQoX193c3VtIHN1bSkKICAqCVRo aXMgaXMgYSB2ZXJzaW9uIG9mIGlwX2NvbXB1dGVfY3N1bSgpIG9wdGltaXplZCBmb3IgSVAgaGVh ZGVycywKICAqCXdoaWNoIGFsd2F5cyBjaGVja3N1bSBvbiA0IG9jdGV0IGJvdW5kYXJpZXMuCiAg Ki8KLXN0YXRpYyBfX2lubGluZV9fIF9fc3VtMTYgaXBfZmFzdF9jc3VtKGNvbnN0IHZvaWQgKmlw aCwgdW5zaWduZWQgaW50IGlobCkKK3N0YXRpYyBpbmxpbmUgX19zdW0xNiBpcF9mYXN0X2NzdW0o Y29uc3Qgdm9pZCAqaXBoLCB1bnNpZ25lZCBpbnQgaWhsKQogewogCXVuc2lnbmVkIGludCBzdW0s IHRtcCwgZW5kYWRkcjsKIApAQCAtMTIyLDcgKzEyMiw3IEBAIHN0YXRpYyBfX2lubGluZV9fIF9f c3VtMTYgaXBfZmFzdF9jc3VtKGNvbnN0IHZvaWQgKmlwaCwgdW5zaWduZWQgaW50IGlobCkKIAly ZXR1cm4JY3N1bV9mb2xkKHN1bSk7CiB9CiAKLXN0YXRpYyBfX2lubGluZV9fIF9fd3N1bSBjc3Vt X3RjcHVkcF9ub2ZvbGQoX19iZTMyIHNhZGRyLCBfX2JlMzIgZGFkZHIsCitzdGF0aWMgaW5saW5l IF9fd3N1bSBjc3VtX3RjcHVkcF9ub2ZvbGQoX19iZTMyIHNhZGRyLCBfX2JlMzIgZGFkZHIsCiAJ CQkJCSAgICBfX3UzMiBsZW4sIF9fdTggcHJvdG8sCiAJCQkJCSAgICBfX3dzdW0gc3VtKQogewpA QCAtMTU1LDcgKzE1NSw3IEBAIHN0YXRpYyBfX2lubGluZV9fIF9fd3N1bSBjc3VtX3RjcHVkcF9u b2ZvbGQoX19iZTMyIHNhZGRyLCBfX2JlMzIgZGFkZHIsCiAgKiBjb21wdXRlcyB0aGUgY2hlY2tz dW0gb2YgdGhlIFRDUC9VRFAgcHNldWRvLWhlYWRlcgogICogcmV0dXJucyBhIDE2LWJpdCBjaGVj a3N1bSwgYWxyZWFkeSBjb21wbGVtZW50ZWQKICAqLwotc3RhdGljIF9faW5saW5lX18gX19zdW0x NiBjc3VtX3RjcHVkcF9tYWdpYyhfX2JlMzIgc2FkZHIsIF9fYmUzMiBkYWRkciwKK3N0YXRpYyBp bmxpbmUgX19zdW0xNiBjc3VtX3RjcHVkcF9tYWdpYyhfX2JlMzIgc2FkZHIsIF9fYmUzMiBkYWRk ciwKIAkJCQkJICAgIF9fdTMyIGxlbiwgX191OCBwcm90bywKIAkJCQkJICAgIF9fd3N1bSBzdW0p CiB7CkBAIC0xNjcsMTMgKzE2NywxMyBAQCBzdGF0aWMgX19pbmxpbmVfXyBfX3N1bTE2IGNzdW1f dGNwdWRwX21hZ2ljKF9fYmUzMiBzYWRkciwgX19iZTMyIGRhZGRyLAogICogaW4gaWNtcC5jCiAg Ki8KIAotc3RhdGljIF9faW5saW5lX18gX19zdW0xNiBpcF9jb21wdXRlX2NzdW0oY29uc3Qgdm9p ZCAqYnVmZiwgaW50IGxlbikKK3N0YXRpYyBpbmxpbmUgX19zdW0xNiBpcF9jb21wdXRlX2NzdW0o Y29uc3Qgdm9pZCAqYnVmZiwgaW50IGxlbikKIHsKIAlyZXR1cm4gY3N1bV9mb2xkIChjc3VtX3Bh cnRpYWwoYnVmZiwgbGVuLCAwKSk7CiB9CiAKICNkZWZpbmUgX0hBVkVfQVJDSF9JUFY2X0NTVU0K LXN0YXRpYyBfX2lubGluZV9fIF9fc3VtMTYgY3N1bV9pcHY2X21hZ2ljKGNvbnN0IHN0cnVjdCBp bjZfYWRkciAqc2FkZHIsCitzdGF0aWMgaW5saW5lIF9fc3VtMTYgY3N1bV9pcHY2X21hZ2ljKGNv bnN0IHN0cnVjdCBpbjZfYWRkciAqc2FkZHIsCiAJCQkJCSAgY29uc3Qgc3RydWN0IGluNl9hZGRy ICpkYWRkciwKIAkJCQkJICBfX3UzMiBsZW4sIF9fdTggcHJvdG8sCiAJCQkJCSAgX193c3VtIHN1 bSkKQEAgLTIzOSw3ICsyMzksNyBAQCBzdGF0aWMgX19pbmxpbmVfXyBfX3N1bTE2IGNzdW1faXB2 Nl9tYWdpYyhjb25zdCBzdHJ1Y3QgaW42X2FkZHIgKnNhZGRyLAogICoJQ29weSBhbmQgY2hlY2tz dW0gdG8gdXNlcgogICovCiAjZGVmaW5lIEhBVkVfQ1NVTV9DT1BZX1VTRVIKLXN0YXRpYyBfX2lu bGluZV9fIF9fd3N1bSBjc3VtX2FuZF9jb3B5X3RvX3VzZXIoY29uc3Qgdm9pZCAqc3JjLAorc3Rh dGljIGlubGluZSBfX3dzdW0gY3N1bV9hbmRfY29weV90b191c2VyKGNvbnN0IHZvaWQgKnNyYywK IAkJCQkJICAgICAgIHZvaWQgX191c2VyICpkc3QsIGludCBsZW4sCiAJCQkJCSAgICAgICBfX3dz dW0gc3VtLCBpbnQgKmVycl9wdHIpCiB7CmRpZmYgLS1naXQgYS9hcmNoL3h0ZW5zYS9pbmNsdWRl L2FzbS9jbXB4Y2hnLmggYi9hcmNoL3h0ZW5zYS9pbmNsdWRlL2FzbS9jbXB4Y2hnLmgKaW5kZXgg MjAxZTkwMDllZmQ4Li4xNWQ2MmMxNmRlN2EgMTAwNjQ0Ci0tLSBhL2FyY2gveHRlbnNhL2luY2x1 ZGUvYXNtL2NtcHhjaGcuaAorKysgYi9hcmNoL3h0ZW5zYS9pbmNsdWRlL2FzbS9jbXB4Y2hnLmgK QEAgLTUyLDcgKzUyLDcgQEAgX19jbXB4Y2hnX3UzMih2b2xhdGlsZSBpbnQgKnAsIGludCBvbGQs IGludCBuZXcpCiAKIGV4dGVybiB2b2lkIF9fY21weGNoZ19jYWxsZWRfd2l0aF9iYWRfcG9pbnRl cih2b2lkKTsKIAotc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZworc3RhdGljIGlubGlu ZSB1bnNpZ25lZCBsb25nCiBfX2NtcHhjaGcodm9sYXRpbGUgdm9pZCAqcHRyLCB1bnNpZ25lZCBs b25nIG9sZCwgdW5zaWduZWQgbG9uZyBuZXcsIGludCBzaXplKQogewogCXN3aXRjaCAoc2l6ZSkg ewpAQCAtMTQ2LDcgKzE0Niw3IEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyB4Y2hnX3Uz Mih2b2xhdGlsZSBpbnQgKiBtLCB1bnNpZ25lZCBsb25nIHZhbCkKIAogZXh0ZXJuIHZvaWQgX194 Y2hnX2NhbGxlZF93aXRoX2JhZF9wb2ludGVyKHZvaWQpOwogCi1zdGF0aWMgX19pbmxpbmVfXyB1 bnNpZ25lZCBsb25nCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcKIF9feGNoZyh1bnNpZ25l ZCBsb25nIHgsIHZvbGF0aWxlIHZvaWQgKiBwdHIsIGludCBzaXplKQogewogCXN3aXRjaCAoc2l6 ZSkgewpkaWZmIC0tZ2l0IGEvYXJjaC94dGVuc2EvaW5jbHVkZS9hc20vaXJxLmggYi9hcmNoL3h0 ZW5zYS9pbmNsdWRlL2FzbS9pcnEuaAppbmRleCA2YzZlZDIzZTBjNzkuLmFlNTNlNTk5MjU1ZiAx MDA2NDQKLS0tIGEvYXJjaC94dGVuc2EvaW5jbHVkZS9hc20vaXJxLmgKKysrIGIvYXJjaC94dGVu c2EvaW5jbHVkZS9hc20vaXJxLmgKQEAgLTIzLDcgKzIzLDcgQEAKICNkZWZpbmUgTlJfSVJRUyAo WFRFTlNBX05SX0lSUVMgKyBQTEFURk9STV9OUl9JUlFTICsgMSkKICNkZWZpbmUgWFRFTlNBX1BJ Q19MSU5VWF9JUlEoaHdpcnEpICgoaHdpcnEpICsgMSkKIAotc3RhdGljIF9faW5saW5lX18gaW50 IGlycV9jYW5vbmljYWxpemUoaW50IGlycSkKK3N0YXRpYyBpbmxpbmUgaW50IGlycV9jYW5vbmlj YWxpemUoaW50IGlycSkKIHsKIAlyZXR1cm4gKGlycSk7CiB9CmRpZmYgLS1naXQgYS9ibG9jay9w YXJ0aXRpb25zL2FtaWdhLmMgYi9ibG9jay9wYXJ0aXRpb25zL2FtaWdhLmMKaW5kZXggNTYwOTM2 NjE3ZDljLi43NDM0YjBhMGY4NmMgMTAwNjQ0Ci0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvYW1pZ2Eu YworKysgYi9ibG9jay9wYXJ0aXRpb25zL2FtaWdhLmMKQEAgLTE2LDcgKzE2LDcgQEAKICNpbmNs dWRlICJjaGVjay5oIgogI2luY2x1ZGUgImFtaWdhLmgiCiAKLXN0YXRpYyBfX2lubGluZV9fIHUz Mgorc3RhdGljIGlubGluZSB1MzIKIGNoZWNrc3VtX2Jsb2NrKF9fYmUzMiAqbSwgaW50IHNpemUp CiB7CiAJdTMyIHN1bSA9IDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2F0bS9oZS5jIGIvZHJpdmVy cy9hdG0vaGUuYwppbmRleCAyOWYxMDJkY2ZlYzQuLmFiYjY0MTVmOTU2NSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9hdG0vaGUuYworKysgYi9kcml2ZXJzL2F0bS9oZS5jCkBAIC0xNzgsNyArMTc4LDcg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhdG1kZXZfb3BzIGhlX29wcyA9CiAKIC8qIHNlY3Rpb24g Mi4xMiBjb25uZWN0aW9uIG1lbW9yeSBhY2Nlc3MgKi8KIAotc3RhdGljIF9faW5saW5lX18gdm9p ZAorc3RhdGljIGlubGluZSB2b2lkCiBoZV93cml0ZWxfaW50ZXJuYWwoc3RydWN0IGhlX2RldiAq aGVfZGV2LCB1bnNpZ25lZCB2YWwsIHVuc2lnbmVkIGFkZHIsCiAJCQkJCQkJCXVuc2lnbmVkIGZs YWdzKQogewpAQCAtMzI0LDcgKzMyNCw3IEBAIGhlX3JlYWRsX2ludGVybmFsKHN0cnVjdCBoZV9k ZXYgKmhlX2RldiwgdW5zaWduZWQgYWRkciwgdW5zaWduZWQgZmxhZ3MpCiAjZGVmaW5lIGhlX3dy aXRlbF9yc3I3KGRldiwgdmFsLCBjaWQpIFwKIAkJaGVfd3JpdGVsX3JjbShkZXYsIHZhbCwgMHgw MDAwMCB8IChjaWQgPDwgMykgfCA3KQogCi1zdGF0aWMgX19pbmxpbmVfXyBzdHJ1Y3QgYXRtX3Zj YyoKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGF0bV92Y2MqCiBfX2ZpbmRfdmNjKHN0cnVjdCBoZV9k ZXYgKmhlX2RldiwgdW5zaWduZWQgY2lkKQogewogCXN0cnVjdCBobGlzdF9oZWFkICpoZWFkOwpA QCAtMjA1MCw3ICsyMDUwLDcgQEAgaGVfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqZGV2X2lk KQogCiB9CiAKLXN0YXRpYyBfX2lubGluZV9fIHZvaWQKK3N0YXRpYyBpbmxpbmUgdm9pZAogX19l bnF1ZXVlX3RwZChzdHJ1Y3QgaGVfZGV2ICpoZV9kZXYsIHN0cnVjdCBoZV90cGQgKnRwZCwgdW5z aWduZWQgY2lkKQogewogCXN0cnVjdCBoZV90cGRycSAqbmV3X3RhaWw7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2F0bS9pZHQ3NzI1Mi5jIGIvZHJpdmVycy9hdG0vaWR0NzcyNTIuYwppbmRleCA2ZTcz NzE0MmNlYWEuLjIyNmE2NWEwM2I3MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9hdG0vaWR0NzcyNTIu YworKysgYi9kcml2ZXJzL2F0bS9pZHQ3NzI1Mi5jCkBAIC0xNzgzLDEzICsxNzgzLDEzIEBAIHNl dF90Y3Qoc3RydWN0IGlkdDc3MjUyX2RldiAqY2FyZCwgc3RydWN0IHZjX21hcCAqdmMpCiAvKiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKLXN0YXRpYyBfX2lu bGluZV9fIGludAorc3RhdGljIGlubGluZSBpbnQKIGlkdDc3MjUyX2ZicV9sZXZlbChzdHJ1Y3Qg aWR0NzcyNTJfZGV2ICpjYXJkLCBpbnQgcXVldWUpCiB7CiAJcmV0dXJuIChyZWFkbChTQVJfUkVH X1NUQVQpID4+ICgxNiArIChxdWV1ZSA8PCAyKSkpICYgMHgwZjsKIH0KIAotc3RhdGljIF9faW5s aW5lX18gaW50CitzdGF0aWMgaW5saW5lIGludAogaWR0NzcyNTJfZmJxX2Z1bGwoc3RydWN0IGlk dDc3MjUyX2RldiAqY2FyZCwgaW50IHF1ZXVlKQogewogCXJldHVybiAocmVhZGwoU0FSX1JFR19T VEFUKSA+PiAoMTYgKyAocXVldWUgPDwgMikpKSA9PSAweDBmOwpAQCAtMjAxNiw3ICsyMDE2LDcg QEAgaWR0NzcyNTJfc2VuZF9vYW0oc3RydWN0IGF0bV92Y2MgKnZjYywgdm9pZCAqY2VsbCwgaW50 IGZsYWdzKQogCXJldHVybiBpZHQ3NzI1Ml9zZW5kX3NrYih2Y2MsIHNrYiwgMSk7CiB9CiAKLXN0 YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGludAorc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQK IGlkdDc3MjUyX2Zscyh1bnNpZ25lZCBpbnQgeCkKIHsKIAlpbnQgciA9IDE7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vbWdhL21nYV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9tZ2EvbWdh X2Rydi5oCmluZGV4IGE0NWJiMjIyNzVhNy4uYTRiYjRlYWQ2NzdmIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vbWdhL21nYV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbWdhL21nYV9k cnYuaApAQCAtNjYxLDcgKzY2MSw3IEBAIGRvIHsJCQkJCQkJCQlcCiAKIC8qIFNpbXBsZSBpZGxl IHRlc3QuCiAgKi8KLXN0YXRpYyBfX2lubGluZV9fIGludCBtZ2FfaXNfaWRsZShkcm1fbWdhX3By aXZhdGVfdCAqZGV2X3ByaXYpCitzdGF0aWMgaW5saW5lIGludCBtZ2FfaXNfaWRsZShkcm1fbWdh X3ByaXZhdGVfdCAqZGV2X3ByaXYpCiB7CiAJdTMyIHN0YXR1cyA9IE1HQV9SRUFEKE1HQV9TVEFU VVMpICYgTUdBX0VOR0lORV9JRExFX01BU0s7CiAJcmV0dXJuIChzdGF0dXMgPT0gTUdBX0VORFBS RE1BU1RTKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZ2EvbWdhX3N0YXRlLmMgYi9k cml2ZXJzL2dwdS9kcm0vbWdhL21nYV9zdGF0ZS5jCmluZGV4IGU1ZjZiNzM1ZjU3NS4uNjdmMjYx YzU5MTExIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWdhL21nYV9zdGF0ZS5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9tZ2EvbWdhX3N0YXRlLmMKQEAgLTY1LDcgKzY1LDcgQEAgc3RhdGlj IHZvaWQgbWdhX2VtaXRfY2xpcF9yZWN0KGRybV9tZ2FfcHJpdmF0ZV90ICpkZXZfcHJpdiwKIAlB RFZBTkNFX0RNQSgpOwogfQogCi1zdGF0aWMgX19pbmxpbmVfXyB2b2lkIG1nYV9nMjAwX2VtaXRf Y29udGV4dChkcm1fbWdhX3ByaXZhdGVfdCAqZGV2X3ByaXYpCitzdGF0aWMgaW5saW5lIHZvaWQg bWdhX2cyMDBfZW1pdF9jb250ZXh0KGRybV9tZ2FfcHJpdmF0ZV90ICpkZXZfcHJpdikKIHsKIAlk cm1fbWdhX3NhcmVhX3QgKnNhcmVhX3ByaXYgPSBkZXZfcHJpdi0+c2FyZWFfcHJpdjsKIAlkcm1f bWdhX2NvbnRleHRfcmVnc190ICpjdHggPSAmc2FyZWFfcHJpdi0+Y29udGV4dF9zdGF0ZTsKQEAg LTg4LDcgKzg4LDcgQEAgc3RhdGljIF9faW5saW5lX18gdm9pZCBtZ2FfZzIwMF9lbWl0X2NvbnRl eHQoZHJtX21nYV9wcml2YXRlX3QgKmRldl9wcml2KQogCUFEVkFOQ0VfRE1BKCk7CiB9CiAKLXN0 YXRpYyBfX2lubGluZV9fIHZvaWQgbWdhX2c0MDBfZW1pdF9jb250ZXh0KGRybV9tZ2FfcHJpdmF0 ZV90ICpkZXZfcHJpdikKK3N0YXRpYyBpbmxpbmUgdm9pZCBtZ2FfZzQwMF9lbWl0X2NvbnRleHQo ZHJtX21nYV9wcml2YXRlX3QgKmRldl9wcml2KQogewogCWRybV9tZ2Ffc2FyZWFfdCAqc2FyZWFf cHJpdiA9IGRldl9wcml2LT5zYXJlYV9wcml2OwogCWRybV9tZ2FfY29udGV4dF9yZWdzX3QgKmN0 eCA9ICZzYXJlYV9wcml2LT5jb250ZXh0X3N0YXRlOwpAQCAtMTE1LDcgKzExNSw3IEBAIHN0YXRp YyBfX2lubGluZV9fIHZvaWQgbWdhX2c0MDBfZW1pdF9jb250ZXh0KGRybV9tZ2FfcHJpdmF0ZV90 ICpkZXZfcHJpdikKIAlBRFZBTkNFX0RNQSgpOwogfQogCi1zdGF0aWMgX19pbmxpbmVfXyB2b2lk IG1nYV9nMjAwX2VtaXRfdGV4MChkcm1fbWdhX3ByaXZhdGVfdCAqZGV2X3ByaXYpCitzdGF0aWMg aW5saW5lIHZvaWQgbWdhX2cyMDBfZW1pdF90ZXgwKGRybV9tZ2FfcHJpdmF0ZV90ICpkZXZfcHJp dikKIHsKIAlkcm1fbWdhX3NhcmVhX3QgKnNhcmVhX3ByaXYgPSBkZXZfcHJpdi0+c2FyZWFfcHJp djsKIAlkcm1fbWdhX3RleHR1cmVfcmVnc190ICp0ZXggPSAmc2FyZWFfcHJpdi0+dGV4X3N0YXRl WzBdOwpAQCAtMTQzLDcgKzE0Myw3IEBAIHN0YXRpYyBfX2lubGluZV9fIHZvaWQgbWdhX2cyMDBf ZW1pdF90ZXgwKGRybV9tZ2FfcHJpdmF0ZV90ICpkZXZfcHJpdikKIAlBRFZBTkNFX0RNQSgpOwog fQogCi1zdGF0aWMgX19pbmxpbmVfXyB2b2lkIG1nYV9nNDAwX2VtaXRfdGV4MChkcm1fbWdhX3By aXZhdGVfdCAqZGV2X3ByaXYpCitzdGF0aWMgaW5saW5lIHZvaWQgbWdhX2c0MDBfZW1pdF90ZXgw KGRybV9tZ2FfcHJpdmF0ZV90ICpkZXZfcHJpdikKIHsKIAlkcm1fbWdhX3NhcmVhX3QgKnNhcmVh X3ByaXYgPSBkZXZfcHJpdi0+c2FyZWFfcHJpdjsKIAlkcm1fbWdhX3RleHR1cmVfcmVnc190ICp0 ZXggPSAmc2FyZWFfcHJpdi0+dGV4X3N0YXRlWzBdOwpAQCAtMTgzLDcgKzE4Myw3IEBAIHN0YXRp YyBfX2lubGluZV9fIHZvaWQgbWdhX2c0MDBfZW1pdF90ZXgwKGRybV9tZ2FfcHJpdmF0ZV90ICpk ZXZfcHJpdikKIAlBRFZBTkNFX0RNQSgpOwogfQogCi1zdGF0aWMgX19pbmxpbmVfXyB2b2lkIG1n YV9nNDAwX2VtaXRfdGV4MShkcm1fbWdhX3ByaXZhdGVfdCAqZGV2X3ByaXYpCitzdGF0aWMgaW5s aW5lIHZvaWQgbWdhX2c0MDBfZW1pdF90ZXgxKGRybV9tZ2FfcHJpdmF0ZV90ICpkZXZfcHJpdikK IHsKIAlkcm1fbWdhX3NhcmVhX3QgKnNhcmVhX3ByaXYgPSBkZXZfcHJpdi0+c2FyZWFfcHJpdjsK IAlkcm1fbWdhX3RleHR1cmVfcmVnc190ICp0ZXggPSAmc2FyZWFfcHJpdi0+dGV4X3N0YXRlWzFd OwpAQCAtMjIyLDcgKzIyMiw3IEBAIHN0YXRpYyBfX2lubGluZV9fIHZvaWQgbWdhX2c0MDBfZW1p dF90ZXgxKGRybV9tZ2FfcHJpdmF0ZV90ICpkZXZfcHJpdikKIAlBRFZBTkNFX0RNQSgpOwogfQog Ci1zdGF0aWMgX19pbmxpbmVfXyB2b2lkIG1nYV9nMjAwX2VtaXRfcGlwZShkcm1fbWdhX3ByaXZh dGVfdCAqZGV2X3ByaXYpCitzdGF0aWMgaW5saW5lIHZvaWQgbWdhX2cyMDBfZW1pdF9waXBlKGRy bV9tZ2FfcHJpdmF0ZV90ICpkZXZfcHJpdikKIHsKIAlkcm1fbWdhX3NhcmVhX3QgKnNhcmVhX3By aXYgPSBkZXZfcHJpdi0+c2FyZWFfcHJpdjsKIAl1bnNpZ25lZCBpbnQgcGlwZSA9IHNhcmVhX3By aXYtPndhcnBfcGlwZTsKQEAgLTI0OSw3ICsyNDksNyBAQCBzdGF0aWMgX19pbmxpbmVfXyB2b2lk IG1nYV9nMjAwX2VtaXRfcGlwZShkcm1fbWdhX3ByaXZhdGVfdCAqZGV2X3ByaXYpCiAJQURWQU5D RV9ETUEoKTsKIH0KIAotc3RhdGljIF9faW5saW5lX18gdm9pZCBtZ2FfZzQwMF9lbWl0X3BpcGUo ZHJtX21nYV9wcml2YXRlX3QgKmRldl9wcml2KQorc3RhdGljIGlubGluZSB2b2lkIG1nYV9nNDAw X2VtaXRfcGlwZShkcm1fbWdhX3ByaXZhdGVfdCAqZGV2X3ByaXYpCiB7CiAJZHJtX21nYV9zYXJl YV90ICpzYXJlYV9wcml2ID0gZGV2X3ByaXYtPnNhcmVhX3ByaXY7CiAJdW5zaWduZWQgaW50IHBp cGUgPSBzYXJlYV9wcml2LT53YXJwX3BpcGU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v cjEyOC9yMTI4X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL3IxMjgvcjEyOF9kcnYuaAppbmRleCAy ZGU0MGQyNzYxMTYuLmFlMzJhNjdkZWMxNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ix MjgvcjEyOF9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vcjEyOC9yMTI4X2Rydi5oCkBAIC00 MTcsNyArNDE3LDcgQEAgZG8gewkJCQkJCQkJCVwKICNkZWZpbmUgQ0NFX1BBQ0tFVDMocGt0LCBu KQkJKFIxMjhfQ0NFX1BBQ0tFVDMgfAkJXAogCQkJCQkgKHBrdCkgfCAoKG4pIDw8IDE2KSkKIAot c3RhdGljIF9faW5saW5lX18gdm9pZCByMTI4X3VwZGF0ZV9yaW5nX3NuYXBzaG90KGRybV9yMTI4 X3ByaXZhdGVfdCAqZGV2X3ByaXYpCitzdGF0aWMgaW5saW5lIHZvaWQgcjEyOF91cGRhdGVfcmlu Z19zbmFwc2hvdChkcm1fcjEyOF9wcml2YXRlX3QgKmRldl9wcml2KQogewogCWRybV9yMTI4X3Jp bmdfYnVmZmVyX3QgKnJpbmcgPSAmZGV2X3ByaXYtPnJpbmc7CiAJcmluZy0+c3BhY2UgPSAoR0VU X1JJTkdfSEVBRChkZXZfcHJpdikgLSByaW5nLT50YWlsKSAqIHNpemVvZih1MzIpOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL3IxMjgvcjEyOF9zdGF0ZS5jIGIvZHJpdmVycy9ncHUvZHJt L3IxMjgvcjEyOF9zdGF0ZS5jCmluZGV4IGI5YmZhODA2ZDM0Ni4uMzZhNjY0MmY0ODVkIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcjEyOC9yMTI4X3N0YXRlLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL3IxMjgvcjEyOF9zdGF0ZS5jCkBAIC03OSw3ICs3OSw3IEBAIHN0YXRpYyB2b2lkIHIx MjhfZW1pdF9jbGlwX3JlY3RzKGRybV9yMTI4X3ByaXZhdGVfdCAqZGV2X3ByaXYsCiAJQURWQU5D RV9SSU5HKCk7CiB9CiAKLXN0YXRpYyBfX2lubGluZV9fIHZvaWQgcjEyOF9lbWl0X2NvcmUoZHJt X3IxMjhfcHJpdmF0ZV90ICpkZXZfcHJpdikKK3N0YXRpYyBpbmxpbmUgdm9pZCByMTI4X2VtaXRf Y29yZShkcm1fcjEyOF9wcml2YXRlX3QgKmRldl9wcml2KQogewogCWRybV9yMTI4X3NhcmVhX3Qg KnNhcmVhX3ByaXYgPSBkZXZfcHJpdi0+c2FyZWFfcHJpdjsKIAlkcm1fcjEyOF9jb250ZXh0X3Jl Z3NfdCAqY3R4ID0gJnNhcmVhX3ByaXYtPmNvbnRleHRfc3RhdGU7CkBAIC05NCw3ICs5NCw3IEBA IHN0YXRpYyBfX2lubGluZV9fIHZvaWQgcjEyOF9lbWl0X2NvcmUoZHJtX3IxMjhfcHJpdmF0ZV90 ICpkZXZfcHJpdikKIAlBRFZBTkNFX1JJTkcoKTsKIH0KIAotc3RhdGljIF9faW5saW5lX18gdm9p ZCByMTI4X2VtaXRfY29udGV4dChkcm1fcjEyOF9wcml2YXRlX3QgKmRldl9wcml2KQorc3RhdGlj IGlubGluZSB2b2lkIHIxMjhfZW1pdF9jb250ZXh0KGRybV9yMTI4X3ByaXZhdGVfdCAqZGV2X3By aXYpCiB7CiAJZHJtX3IxMjhfc2FyZWFfdCAqc2FyZWFfcHJpdiA9IGRldl9wcml2LT5zYXJlYV9w cml2OwogCWRybV9yMTI4X2NvbnRleHRfcmVnc190ICpjdHggPSAmc2FyZWFfcHJpdi0+Y29udGV4 dF9zdGF0ZTsKQEAgLTEyMCw3ICsxMjAsNyBAQCBzdGF0aWMgX19pbmxpbmVfXyB2b2lkIHIxMjhf ZW1pdF9jb250ZXh0KGRybV9yMTI4X3ByaXZhdGVfdCAqZGV2X3ByaXYpCiAJQURWQU5DRV9SSU5H KCk7CiB9CiAKLXN0YXRpYyBfX2lubGluZV9fIHZvaWQgcjEyOF9lbWl0X3NldHVwKGRybV9yMTI4 X3ByaXZhdGVfdCAqZGV2X3ByaXYpCitzdGF0aWMgaW5saW5lIHZvaWQgcjEyOF9lbWl0X3NldHVw KGRybV9yMTI4X3ByaXZhdGVfdCAqZGV2X3ByaXYpCiB7CiAJZHJtX3IxMjhfc2FyZWFfdCAqc2Fy ZWFfcHJpdiA9IGRldl9wcml2LT5zYXJlYV9wcml2OwogCWRybV9yMTI4X2NvbnRleHRfcmVnc190 ICpjdHggPSAmc2FyZWFfcHJpdi0+Y29udGV4dF9zdGF0ZTsKQEAgLTEzNiw3ICsxMzYsNyBAQCBz dGF0aWMgX19pbmxpbmVfXyB2b2lkIHIxMjhfZW1pdF9zZXR1cChkcm1fcjEyOF9wcml2YXRlX3Qg KmRldl9wcml2KQogCUFEVkFOQ0VfUklORygpOwogfQogCi1zdGF0aWMgX19pbmxpbmVfXyB2b2lk IHIxMjhfZW1pdF9tYXNrcyhkcm1fcjEyOF9wcml2YXRlX3QgKmRldl9wcml2KQorc3RhdGljIGlu bGluZSB2b2lkIHIxMjhfZW1pdF9tYXNrcyhkcm1fcjEyOF9wcml2YXRlX3QgKmRldl9wcml2KQog ewogCWRybV9yMTI4X3NhcmVhX3QgKnNhcmVhX3ByaXYgPSBkZXZfcHJpdi0+c2FyZWFfcHJpdjsK IAlkcm1fcjEyOF9jb250ZXh0X3JlZ3NfdCAqY3R4ID0gJnNhcmVhX3ByaXYtPmNvbnRleHRfc3Rh dGU7CkBAIC0xNTUsNyArMTU1LDcgQEAgc3RhdGljIF9faW5saW5lX18gdm9pZCByMTI4X2VtaXRf bWFza3MoZHJtX3IxMjhfcHJpdmF0ZV90ICpkZXZfcHJpdikKIAlBRFZBTkNFX1JJTkcoKTsKIH0K IAotc3RhdGljIF9faW5saW5lX18gdm9pZCByMTI4X2VtaXRfd2luZG93KGRybV9yMTI4X3ByaXZh dGVfdCAqZGV2X3ByaXYpCitzdGF0aWMgaW5saW5lIHZvaWQgcjEyOF9lbWl0X3dpbmRvdyhkcm1f cjEyOF9wcml2YXRlX3QgKmRldl9wcml2KQogewogCWRybV9yMTI4X3NhcmVhX3QgKnNhcmVhX3By aXYgPSBkZXZfcHJpdi0+c2FyZWFfcHJpdjsKIAlkcm1fcjEyOF9jb250ZXh0X3JlZ3NfdCAqY3R4 ID0gJnNhcmVhX3ByaXYtPmNvbnRleHRfc3RhdGU7CkBAIC0xNzAsNyArMTcwLDcgQEAgc3RhdGlj IF9faW5saW5lX18gdm9pZCByMTI4X2VtaXRfd2luZG93KGRybV9yMTI4X3ByaXZhdGVfdCAqZGV2 X3ByaXYpCiAJQURWQU5DRV9SSU5HKCk7CiB9CiAKLXN0YXRpYyBfX2lubGluZV9fIHZvaWQgcjEy OF9lbWl0X3RleDAoZHJtX3IxMjhfcHJpdmF0ZV90ICpkZXZfcHJpdikKK3N0YXRpYyBpbmxpbmUg dm9pZCByMTI4X2VtaXRfdGV4MChkcm1fcjEyOF9wcml2YXRlX3QgKmRldl9wcml2KQogewogCWRy bV9yMTI4X3NhcmVhX3QgKnNhcmVhX3ByaXYgPSBkZXZfcHJpdi0+c2FyZWFfcHJpdjsKIAlkcm1f cjEyOF9jb250ZXh0X3JlZ3NfdCAqY3R4ID0gJnNhcmVhX3ByaXYtPmNvbnRleHRfc3RhdGU7CkBA IC0xOTYsNyArMTk2LDcgQEAgc3RhdGljIF9faW5saW5lX18gdm9pZCByMTI4X2VtaXRfdGV4MChk cm1fcjEyOF9wcml2YXRlX3QgKmRldl9wcml2KQogCUFEVkFOQ0VfUklORygpOwogfQogCi1zdGF0 aWMgX19pbmxpbmVfXyB2b2lkIHIxMjhfZW1pdF90ZXgxKGRybV9yMTI4X3ByaXZhdGVfdCAqZGV2 X3ByaXYpCitzdGF0aWMgaW5saW5lIHZvaWQgcjEyOF9lbWl0X3RleDEoZHJtX3IxMjhfcHJpdmF0 ZV90ICpkZXZfcHJpdikKIHsKIAlkcm1fcjEyOF9zYXJlYV90ICpzYXJlYV9wcml2ID0gZGV2X3By aXYtPnNhcmVhX3ByaXY7CiAJZHJtX3IxMjhfdGV4dHVyZV9yZWdzX3QgKnRleCA9ICZzYXJlYV9w cml2LT50ZXhfc3RhdGVbMV07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV9p cnEuYyBiL2RyaXZlcnMvZ3B1L2RybS92aWEvdmlhX2lycS5jCmluZGV4IGM5NjgzMGNjYzBlYy4u MDJmMmEzMDllYThkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV9pcnEuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV9pcnEuYwpAQCAtMTUyLDcgKzE1Miw3IEBAIGly cXJldHVybl90IHZpYV9kcml2ZXJfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqYXJnKQogCQly ZXR1cm4gSVJRX05PTkU7CiB9CiAKLXN0YXRpYyBfX2lubGluZV9fIHZvaWQgdmlhZHJ2X2Fja25v d2xlZGdlX2lycXMoZHJtX3ZpYV9wcml2YXRlX3QgKmRldl9wcml2KQorc3RhdGljIGlubGluZSB2 b2lkIHZpYWRydl9hY2tub3dsZWRnZV9pcnFzKGRybV92aWFfcHJpdmF0ZV90ICpkZXZfcHJpdikK IHsKIAl1MzIgc3RhdHVzOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV92 ZXJpZmllci5jIGIvZHJpdmVycy9ncHUvZHJtL3ZpYS92aWFfdmVyaWZpZXIuYwppbmRleCBmYjI2 MDk0MzRkZjcuLjQwMGZlMTFiMTI4ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZpYS92 aWFfdmVyaWZpZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV92ZXJpZmllci5jCkBA IC0yMzUsNyArMjM1LDcgQEAgc3RhdGljIGhhemFyZF90IHRhYmxlMVsyNTZdOwogc3RhdGljIGhh emFyZF90IHRhYmxlMlsyNTZdOwogc3RhdGljIGhhemFyZF90IHRhYmxlM1syNTZdOwogCi1zdGF0 aWMgX19pbmxpbmVfXyBpbnQKK3N0YXRpYyBpbmxpbmUgaW50CiBlYXRfd29yZHMoY29uc3QgdWlu dDMyX3QgKipidWYsIGNvbnN0IHVpbnQzMl90ICpidWZfZW5kLCB1bnNpZ25lZCBudW1fd29yZHMp CiB7CiAJaWYgKChidWZfZW5kIC0gKmJ1ZikgPj0gbnVtX3dvcmRzKSB7CkBAIC0yNTAsNyArMjUw LDcgQEAgZWF0X3dvcmRzKGNvbnN0IHVpbnQzMl90ICoqYnVmLCBjb25zdCB1aW50MzJfdCAqYnVm X2VuZCwgdW5zaWduZWQgbnVtX3dvcmRzKQogICogUGFydGlhbGx5IHN0b2xlbiBmcm9tIGRybV9t ZW1vcnkuaAogICovCiAKLXN0YXRpYyBfX2lubGluZV9fIGRybV9sb2NhbF9tYXBfdCAqdmlhX2Ry bV9sb29rdXBfYWdwX21hcChkcm1fdmlhX3N0YXRlX3QgKnNlcSwKK3N0YXRpYyBpbmxpbmUgZHJt X2xvY2FsX21hcF90ICp2aWFfZHJtX2xvb2t1cF9hZ3BfbWFwKGRybV92aWFfc3RhdGVfdCAqc2Vx LAogCQkJCQkJICAgIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LAogCQkJCQkJICAgIHVuc2lnbmVkIGxv bmcgc2l6ZSwKIAkJCQkJCSAgICBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQpAQCAtMjg3LDcgKzI4 Nyw3IEBAIHN0YXRpYyBfX2lubGluZV9fIGRybV9sb2NhbF9tYXBfdCAqdmlhX2RybV9sb29rdXBf YWdwX21hcChkcm1fdmlhX3N0YXRlX3QgKnNlcSwKICAqIHZlcnkgbGl0dGxlIENQVSB0aW1lLgog ICovCiAKLXN0YXRpYyBfX2lubGluZV9fIGludCBmaW5pc2hfY3VycmVudF9zZXF1ZW5jZShkcm1f dmlhX3N0YXRlX3QgKiBjdXJfc2VxKQorc3RhdGljIGlubGluZSBpbnQgZmluaXNoX2N1cnJlbnRf c2VxdWVuY2UoZHJtX3ZpYV9zdGF0ZV90ICogY3VyX3NlcSkKIHsKIAlzd2l0Y2ggKGN1cl9zZXEt PnVuZmluaXNoZWQpIHsKIAljYXNlIHpfYWRkcmVzczoKQEAgLTM0NCw3ICszNDQsNyBAQCBzdGF0 aWMgX19pbmxpbmVfXyBpbnQgZmluaXNoX2N1cnJlbnRfc2VxdWVuY2UoZHJtX3ZpYV9zdGF0ZV90 ICogY3VyX3NlcSkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIF9faW5saW5lX18gaW50CitzdGF0 aWMgaW5saW5lIGludAogaW52ZXN0aWdhdGVfaGF6YXJkKHVpbnQzMl90IGNtZCwgaGF6YXJkX3Qg aHosIGRybV92aWFfc3RhdGVfdCAqY3VyX3NlcSkKIHsKIAlyZWdpc3RlciB1aW50MzJfdCB0bXAs ICp0bXBfYWRkcjsKQEAgLTUxNyw3ICs1MTcsNyBAQCBpbnZlc3RpZ2F0ZV9oYXphcmQodWludDMy X3QgY21kLCBoYXphcmRfdCBoeiwgZHJtX3ZpYV9zdGF0ZV90ICpjdXJfc2VxKQogCXJldHVybiAy OwogfQogCi1zdGF0aWMgX19pbmxpbmVfXyBpbnQKK3N0YXRpYyBpbmxpbmUgaW50CiB2aWFfY2hl Y2tfcHJpbV9saXN0KHVpbnQzMl90IGNvbnN0ICoqYnVmZmVyLCBjb25zdCB1aW50MzJfdCAqIGJ1 Zl9lbmQsCiAJCSAgICBkcm1fdmlhX3N0YXRlX3QgKmN1cl9zZXEpCiB7CkBAIC02MjEsNyArNjIx LDcgQEAgdmlhX2NoZWNrX3ByaW1fbGlzdCh1aW50MzJfdCBjb25zdCAqKmJ1ZmZlciwgY29uc3Qg dWludDMyX3QgKiBidWZfZW5kLAogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBfX2lubGluZV9f IHZlcmlmaWVyX3N0YXRlX3QKK3N0YXRpYyBpbmxpbmUgdmVyaWZpZXJfc3RhdGVfdAogdmlhX2No ZWNrX2hlYWRlcjIodWludDMyX3QgY29uc3QgKipidWZmZXIsIGNvbnN0IHVpbnQzMl90ICpidWZf ZW5kLAogCQkgIGRybV92aWFfc3RhdGVfdCAqaGNfc3RhdGUpCiB7CkBAIC03MTMsNyArNzEzLDcg QEAgdmlhX2NoZWNrX2hlYWRlcjIodWludDMyX3QgY29uc3QgKipidWZmZXIsIGNvbnN0IHVpbnQz Ml90ICpidWZfZW5kLAogCXJldHVybiBzdGF0ZV9jb21tYW5kOwogfQogCi1zdGF0aWMgX19pbmxp bmVfXyB2ZXJpZmllcl9zdGF0ZV90CitzdGF0aWMgaW5saW5lIHZlcmlmaWVyX3N0YXRlX3QKIHZp YV9wYXJzZV9oZWFkZXIyKGRybV92aWFfcHJpdmF0ZV90ICpkZXZfcHJpdiwgdWludDMyX3QgY29u c3QgKipidWZmZXIsCiAJCSAgY29uc3QgdWludDMyX3QgKmJ1Zl9lbmQsIGludCAqZmlyZV9jb3Vu dCkKIHsKQEAgLTc2Miw3ICs3NjIsNyBAQCB2aWFfcGFyc2VfaGVhZGVyMihkcm1fdmlhX3ByaXZh dGVfdCAqZGV2X3ByaXYsIHVpbnQzMl90IGNvbnN0ICoqYnVmZmVyLAogCXJldHVybiBzdGF0ZV9j b21tYW5kOwogfQogCi1zdGF0aWMgX19pbmxpbmVfXyBpbnQgdmVyaWZ5X21taW9fYWRkcmVzcyh1 aW50MzJfdCBhZGRyZXNzKQorc3RhdGljIGlubGluZSBpbnQgdmVyaWZ5X21taW9fYWRkcmVzcyh1 aW50MzJfdCBhZGRyZXNzKQogewogCWlmICgoYWRkcmVzcyA+IDB4M0ZGKSAmJiAoYWRkcmVzcyA8 IDB4QzAwKSkgewogCQlEUk1fRVJST1IoIkludmFsaWQgVklERU8gRE1BIGNvbW1hbmQuICIKQEAg LTc4MCw3ICs3ODAsNyBAQCBzdGF0aWMgX19pbmxpbmVfXyBpbnQgdmVyaWZ5X21taW9fYWRkcmVz cyh1aW50MzJfdCBhZGRyZXNzKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgX19pbmxpbmVfXyBp bnQKK3N0YXRpYyBpbmxpbmUgaW50CiB2ZXJpZnlfdmlkZW9fdGFpbCh1aW50MzJfdCBjb25zdCAq KmJ1ZmZlciwgY29uc3QgdWludDMyX3QgKiBidWZfZW5kLAogCQkgIHVpbnQzMl90IGR3b3JkcykK IHsKQEAgLTgwMCw3ICs4MDAsNyBAQCB2ZXJpZnlfdmlkZW9fdGFpbCh1aW50MzJfdCBjb25zdCAq KmJ1ZmZlciwgY29uc3QgdWludDMyX3QgKiBidWZfZW5kLAogCXJldHVybiAwOwogfQogCi1zdGF0 aWMgX19pbmxpbmVfXyB2ZXJpZmllcl9zdGF0ZV90CitzdGF0aWMgaW5saW5lIHZlcmlmaWVyX3N0 YXRlX3QKIHZpYV9jaGVja19oZWFkZXIxKHVpbnQzMl90IGNvbnN0ICoqYnVmZmVyLCBjb25zdCB1 aW50MzJfdCAqIGJ1Zl9lbmQpCiB7CiAJdWludDMyX3QgY21kOwpAQCAtODMyLDcgKzgzMiw3IEBA IHZpYV9jaGVja19oZWFkZXIxKHVpbnQzMl90IGNvbnN0ICoqYnVmZmVyLCBjb25zdCB1aW50MzJf dCAqIGJ1Zl9lbmQpCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIF9faW5saW5lX18gdmVyaWZp ZXJfc3RhdGVfdAorc3RhdGljIGlubGluZSB2ZXJpZmllcl9zdGF0ZV90CiB2aWFfcGFyc2VfaGVh ZGVyMShkcm1fdmlhX3ByaXZhdGVfdCAqZGV2X3ByaXYsIHVpbnQzMl90IGNvbnN0ICoqYnVmZmVy LAogCQkgIGNvbnN0IHVpbnQzMl90ICpidWZfZW5kKQogewpAQCAtODUwLDcgKzg1MCw3IEBAIHZp YV9wYXJzZV9oZWFkZXIxKGRybV92aWFfcHJpdmF0ZV90ICpkZXZfcHJpdiwgdWludDMyX3QgY29u c3QgKipidWZmZXIsCiAJcmV0dXJuIHN0YXRlX2NvbW1hbmQ7CiB9CiAKLXN0YXRpYyBfX2lubGlu ZV9fIHZlcmlmaWVyX3N0YXRlX3QKK3N0YXRpYyBpbmxpbmUgdmVyaWZpZXJfc3RhdGVfdAogdmlh X2NoZWNrX3ZoZWFkZXI1KHVpbnQzMl90IGNvbnN0ICoqYnVmZmVyLCBjb25zdCB1aW50MzJfdCAq YnVmX2VuZCkKIHsKIAl1aW50MzJfdCBkYXRhOwpAQCAtODgzLDcgKzg4Myw3IEBAIHZpYV9jaGVj a192aGVhZGVyNSh1aW50MzJfdCBjb25zdCAqKmJ1ZmZlciwgY29uc3QgdWludDMyX3QgKmJ1Zl9l bmQpCiAKIH0KIAotc3RhdGljIF9faW5saW5lX18gdmVyaWZpZXJfc3RhdGVfdAorc3RhdGljIGlu bGluZSB2ZXJpZmllcl9zdGF0ZV90CiB2aWFfcGFyc2VfdmhlYWRlcjUoZHJtX3ZpYV9wcml2YXRl X3QgKmRldl9wcml2LCB1aW50MzJfdCBjb25zdCAqKmJ1ZmZlciwKIAkJICAgY29uc3QgdWludDMy X3QgKmJ1Zl9lbmQpCiB7CkBAIC05MDEsNyArOTAxLDcgQEAgdmlhX3BhcnNlX3ZoZWFkZXI1KGRy bV92aWFfcHJpdmF0ZV90ICpkZXZfcHJpdiwgdWludDMyX3QgY29uc3QgKipidWZmZXIsCiAJcmV0 dXJuIHN0YXRlX2NvbW1hbmQ7CiB9CiAKLXN0YXRpYyBfX2lubGluZV9fIHZlcmlmaWVyX3N0YXRl X3QKK3N0YXRpYyBpbmxpbmUgdmVyaWZpZXJfc3RhdGVfdAogdmlhX2NoZWNrX3ZoZWFkZXI2KHVp bnQzMl90IGNvbnN0ICoqYnVmZmVyLCBjb25zdCB1aW50MzJfdCAqIGJ1Zl9lbmQpCiB7CiAJdWlu dDMyX3QgZGF0YTsKQEAgLTkzOCw3ICs5MzgsNyBAQCB2aWFfY2hlY2tfdmhlYWRlcjYodWludDMy X3QgY29uc3QgKipidWZmZXIsIGNvbnN0IHVpbnQzMl90ICogYnVmX2VuZCkKIAlyZXR1cm4gc3Rh dGVfY29tbWFuZDsKIH0KIAotc3RhdGljIF9faW5saW5lX18gdmVyaWZpZXJfc3RhdGVfdAorc3Rh dGljIGlubGluZSB2ZXJpZmllcl9zdGF0ZV90CiB2aWFfcGFyc2VfdmhlYWRlcjYoZHJtX3ZpYV9w cml2YXRlX3QgKmRldl9wcml2LCB1aW50MzJfdCBjb25zdCAqKmJ1ZmZlciwKIAkJICAgY29uc3Qg dWludDMyX3QgKmJ1Zl9lbmQpCiB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lzZG4vaGFyZHdhcmUv ZWljb24vcGxhdGZvcm0uaCBiL2RyaXZlcnMvaXNkbi9oYXJkd2FyZS9laWNvbi9wbGF0Zm9ybS5o CmluZGV4IDYyZTIwNzNjMzY5MC4uZWE4NjFjOTA0Y2QyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lz ZG4vaGFyZHdhcmUvZWljb24vcGxhdGZvcm0uaAorKysgYi9kcml2ZXJzL2lzZG4vaGFyZHdhcmUv ZWljb24vcGxhdGZvcm0uaApAQCAtMTU5LDcgKzE1OSw3IEBAIHZvaWQgZGl2YV94ZGlfZGlkZF9y ZW1vdmVfYWRhcHRlcihpbnQgY2FyZCk7CiAvKgogKiogbWVtb3J5IGFsbG9jYXRpb24KICovCi1z dGF0aWMgX19pbmxpbmVfXyB2b2lkICpkaXZhX29zX21hbGxvYyh1bnNpZ25lZCBsb25nIGZsYWdz LCB1bnNpZ25lZCBsb25nIHNpemUpCitzdGF0aWMgaW5saW5lIHZvaWQgKmRpdmFfb3NfbWFsbG9j KHVuc2lnbmVkIGxvbmcgZmxhZ3MsIHVuc2lnbmVkIGxvbmcgc2l6ZSkKIHsKIAl2b2lkICpyZXQg PSBOVUxMOwogCkBAIC0xNjgsNyArMTY4LDcgQEAgc3RhdGljIF9faW5saW5lX18gdm9pZCAqZGl2 YV9vc19tYWxsb2ModW5zaWduZWQgbG9uZyBmbGFncywgdW5zaWduZWQgbG9uZyBzaXplKQogCX0K IAlyZXR1cm4gKHJldCk7CiB9Ci1zdGF0aWMgX19pbmxpbmVfXyB2b2lkIGRpdmFfb3NfZnJlZSh1 bnNpZ25lZCBsb25nIGZsYWdzLCB2b2lkICpwdHIpCitzdGF0aWMgaW5saW5lIHZvaWQgZGl2YV9v c19mcmVlKHVuc2lnbmVkIGxvbmcgZmxhZ3MsIHZvaWQgKnB0cikKIHsKIAl2ZnJlZShwdHIpOwog fQpAQCAtMTg1LDExICsxODUsMTEgQEAgdm9pZCBkaXZhX29zX2ZyZWVfbWVzc2FnZV9idWZmZXIo ZGl2YV9vc19tZXNzYWdlX2J1ZmZlcl9zICpkbWIpOwogLyoKICoqIG1TZWNvbmRzIHdhaXRpbmcK ICovCi1zdGF0aWMgX19pbmxpbmVfXyB2b2lkIGRpdmFfb3Nfc2xlZXAoZHdvcmQgbVNlYykKK3N0 YXRpYyBpbmxpbmUgdm9pZCBkaXZhX29zX3NsZWVwKGR3b3JkIG1TZWMpCiB7CiAJbXNsZWVwKG1T ZWMpOwogfQotc3RhdGljIF9faW5saW5lX18gdm9pZCBkaXZhX29zX3dhaXQoZHdvcmQgbVNlYykK K3N0YXRpYyBpbmxpbmUgdm9pZCBkaXZhX29zX3dhaXQoZHdvcmQgbVNlYykKIHsKIAltZGVsYXko bVNlYyk7CiB9CkBAIC0yMzMsMTIgKzIzMywxMiBAQCB2b2lkIGRpdmFfb3NfcmVtb3ZlX2lycSh2 b2lkICpjb250ZXh0LCBieXRlIGlycSk7CiAqLwogdHlwZWRlZiBsb25nIGRpdmFfb3Nfc3Bpbl9s b2NrX21hZ2ljX3Q7CiB0eXBlZGVmIHNwaW5sb2NrX3QgZGl2YV9vc19zcGluX2xvY2tfdDsKLXN0 YXRpYyBfX2lubGluZV9fIGludCBkaXZhX29zX2luaXRpYWxpemVfc3Bpbl9sb2NrKHNwaW5sb2Nr X3QgKmxvY2ssIHZvaWQgKnVudXNlZCkgeyBcCitzdGF0aWMgaW5saW5lIGludCBkaXZhX29zX2lu aXRpYWxpemVfc3Bpbl9sb2NrKHNwaW5sb2NrX3QgKmxvY2ssIHZvaWQgKnVudXNlZCkgeyBcCiAJ c3Bpbl9sb2NrX2luaXQobG9jayk7IHJldHVybiAoMCk7IH0KLXN0YXRpYyBfX2lubGluZV9fIHZv aWQgZGl2YV9vc19lbnRlcl9zcGluX2xvY2soZGl2YV9vc19zcGluX2xvY2tfdCAqYSwgXAorc3Rh dGljIGlubGluZSB2b2lkIGRpdmFfb3NfZW50ZXJfc3Bpbl9sb2NrKGRpdmFfb3Nfc3Bpbl9sb2Nr X3QgKmEsIFwKIAkJCQkJICAgICAgIGRpdmFfb3Nfc3Bpbl9sb2NrX21hZ2ljX3QgKm9sZF9pcnFs LCBcCiAJCQkJCSAgICAgICB2b2lkICpkYmcpIHsgc3Bpbl9sb2NrX2JoKGEpOyB9Ci1zdGF0aWMg X19pbmxpbmVfXyB2b2lkIGRpdmFfb3NfbGVhdmVfc3Bpbl9sb2NrKGRpdmFfb3Nfc3Bpbl9sb2Nr X3QgKmEsIFwKK3N0YXRpYyBpbmxpbmUgdm9pZCBkaXZhX29zX2xlYXZlX3NwaW5fbG9jayhkaXZh X29zX3NwaW5fbG9ja190ICphLCBcCiAJCQkJCSAgICAgICBkaXZhX29zX3NwaW5fbG9ja19tYWdp Y190ICpvbGRfaXJxbCwgXAogCQkJCQkgICAgICAgdm9pZCAqZGJnKSB7IHNwaW5fdW5sb2NrX2Jo KGEpOyB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaXNkbi9pNGwvaXNkbl9uZXQuYyBiL2RyaXZl cnMvaXNkbi9pNGwvaXNkbl9uZXQuYwppbmRleCBjMTM4ZjY2ZjI2NTkuLjA5ZDRjYjEzNjM4MiAx MDA2NDQKLS0tIGEvZHJpdmVycy9pc2RuL2k0bC9pc2RuX25ldC5jCisrKyBiL2RyaXZlcnMvaXNk bi9pNGwvaXNkbl9uZXQuYwpAQCAtNzAsNyArNzAsNyBAQAogICogRmluZCBvdXQgaWYgdGhlIG5l dGRldmljZSBoYXMgYmVlbiBpZnVwLWVkIHlldC4KICAqIEZvciBzbGF2ZXMsIGxvb2sgYXQgdGhl IGNvcnJlc3BvbmRpbmcgbWFzdGVyLgogICovCi1zdGF0aWMgX19pbmxpbmVfXyBpbnQgaXNkbl9u ZXRfZGV2aWNlX3N0YXJ0ZWQoaXNkbl9uZXRfZGV2ICpuKQorc3RhdGljIGlubGluZSBpbnQgaXNk bl9uZXRfZGV2aWNlX3N0YXJ0ZWQoaXNkbl9uZXRfZGV2ICpuKQogewogCWlzZG5fbmV0X2xvY2Fs ICpscCA9IG4tPmxvY2FsOwogCXN0cnVjdCBuZXRfZGV2aWNlICpkZXY7CkBAIC04Niw3ICs4Niw3 IEBAIHN0YXRpYyBfX2lubGluZV9fIGludCBpc2RuX25ldF9kZXZpY2Vfc3RhcnRlZChpc2RuX25l dF9kZXYgKm4pCiAgKiB3YWtlIHVwIHRoZSBuZXR3b3JrIC0+IG5ldF9kZXZpY2UgcXVldWUuCiAg KiBGb3Igc2xhdmVzLCB3YWtlIHRoZSBjb3JyZXNwb25kaW5nIG1hc3RlciBpbnRlcmZhY2UuCiAg Ki8KLXN0YXRpYyBfX2lubGluZV9fIHZvaWQgaXNkbl9uZXRfZGV2aWNlX3dha2VfcXVldWUoaXNk bl9uZXRfbG9jYWwgKmxwKQorc3RhdGljIGlubGluZSB2b2lkIGlzZG5fbmV0X2RldmljZV93YWtl X3F1ZXVlKGlzZG5fbmV0X2xvY2FsICpscCkKIHsKIAlpZiAobHAtPm1hc3RlcikKIAkJbmV0aWZf d2FrZV9xdWV1ZShscC0+bWFzdGVyKTsKQEAgLTk4LDcgKzk4LDcgQEAgc3RhdGljIF9faW5saW5l X18gdm9pZCBpc2RuX25ldF9kZXZpY2Vfd2FrZV9xdWV1ZShpc2RuX25ldF9sb2NhbCAqbHApCiAg KiBzdG9wIHRoZSBuZXR3b3JrIC0+IG5ldF9kZXZpY2UgcXVldWUuCiAgKiBGb3Igc2xhdmVzLCBz dG9wIHRoZSBjb3JyZXNwb25kaW5nIG1hc3RlciBpbnRlcmZhY2UuCiAgKi8KLXN0YXRpYyBfX2lu bGluZV9fIHZvaWQgaXNkbl9uZXRfZGV2aWNlX3N0b3BfcXVldWUoaXNkbl9uZXRfbG9jYWwgKmxw KQorc3RhdGljIGlubGluZSB2b2lkIGlzZG5fbmV0X2RldmljZV9zdG9wX3F1ZXVlKGlzZG5fbmV0 X2xvY2FsICpscCkKIHsKIAlpZiAobHAtPm1hc3RlcikKIAkJbmV0aWZfc3RvcF9xdWV1ZShscC0+ bWFzdGVyKTsKQEAgLTExMSw3ICsxMTEsNyBAQCBzdGF0aWMgX19pbmxpbmVfXyB2b2lkIGlzZG5f bmV0X2RldmljZV9zdG9wX3F1ZXVlKGlzZG5fbmV0X2xvY2FsICpscCkKICAqIG1hc3RlciBvciBz bGF2ZSkgaXMgYnVzeS4gSXQncyBidXN5IGlmZiBhbGwgKG1hc3RlciBhbmQgc2xhdmUpCiAgKiBx dWV1ZXMgYXJlIGJ1c3kKICAqLwotc3RhdGljIF9faW5saW5lX18gaW50IGlzZG5fbmV0X2Rldmlj ZV9idXN5KGlzZG5fbmV0X2xvY2FsICpscCkKK3N0YXRpYyBpbmxpbmUgaW50IGlzZG5fbmV0X2Rl dmljZV9idXN5KGlzZG5fbmV0X2xvY2FsICpscCkKIHsKIAlpc2RuX25ldF9sb2NhbCAqbmxwOwog CWlzZG5fbmV0X2RldiAqbmQ7CkBAIC0xMzgsMTQgKzEzOCwxNCBAQCBzdGF0aWMgX19pbmxpbmVf XyBpbnQgaXNkbl9uZXRfZGV2aWNlX2J1c3koaXNkbl9uZXRfbG9jYWwgKmxwKQogCXJldHVybiAx OwogfQogCi1zdGF0aWMgX19pbmxpbmVfXyB2b2lkIGlzZG5fbmV0X2luY19mcmFtZV9jbnQoaXNk bl9uZXRfbG9jYWwgKmxwKQorc3RhdGljIGlubGluZSB2b2lkIGlzZG5fbmV0X2luY19mcmFtZV9j bnQoaXNkbl9uZXRfbG9jYWwgKmxwKQogewogCWF0b21pY19pbmMoJmxwLT5mcmFtZV9jbnQpOwog CWlmIChpc2RuX25ldF9kZXZpY2VfYnVzeShscCkpCiAJCWlzZG5fbmV0X2RldmljZV9zdG9wX3F1 ZXVlKGxwKTsKIH0KIAotc3RhdGljIF9faW5saW5lX18gdm9pZCBpc2RuX25ldF9kZWNfZnJhbWVf Y250KGlzZG5fbmV0X2xvY2FsICpscCkKK3N0YXRpYyBpbmxpbmUgdm9pZCBpc2RuX25ldF9kZWNf ZnJhbWVfY250KGlzZG5fbmV0X2xvY2FsICpscCkKIHsKIAlhdG9taWNfZGVjKCZscC0+ZnJhbWVf Y250KTsKIApAQCAtMTU4LDcgKzE1OCw3IEBAIHN0YXRpYyBfX2lubGluZV9fIHZvaWQgaXNkbl9u ZXRfZGVjX2ZyYW1lX2NudChpc2RuX25ldF9sb2NhbCAqbHApCiAJfQogfQogCi1zdGF0aWMgX19p bmxpbmVfXyB2b2lkIGlzZG5fbmV0X3plcm9fZnJhbWVfY250KGlzZG5fbmV0X2xvY2FsICpscCkK K3N0YXRpYyBpbmxpbmUgdm9pZCBpc2RuX25ldF96ZXJvX2ZyYW1lX2NudChpc2RuX25ldF9sb2Nh bCAqbHApCiB7CiAJYXRvbWljX3NldCgmbHAtPmZyYW1lX2NudCwgMCk7CiB9CmRpZmYgLS1naXQg YS9kcml2ZXJzL2lzZG4vaTRsL2lzZG5fbmV0LmggYi9kcml2ZXJzL2lzZG4vaTRsL2lzZG5fbmV0 LmgKaW5kZXggY2NhNmQ2OGRhMTcxLi41ZmRmZjhhMGFjOGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv aXNkbi9pNGwvaXNkbl9uZXQuaAorKysgYi9kcml2ZXJzL2lzZG4vaTRsL2lzZG5fbmV0LmgKQEAg LTY0LDcgKzY0LDcgQEAgZXh0ZXJuIHZvaWQgaXNkbl9uZXRfd3JpdGVfc3VwZXIoaXNkbl9uZXRf bG9jYWwgKmxwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTsKIC8qCiAgKiBpcyB0aGlzIHBhcnRpY3Vs YXIgY2hhbm5lbCBidXN5PwogICovCi1zdGF0aWMgX19pbmxpbmVfXyBpbnQgaXNkbl9uZXRfbHBf YnVzeShpc2RuX25ldF9sb2NhbCAqbHApCitzdGF0aWMgaW5saW5lIGludCBpc2RuX25ldF9scF9i dXN5KGlzZG5fbmV0X2xvY2FsICpscCkKIHsKIAlpZiAoYXRvbWljX3JlYWQoJmxwLT5mcmFtZV9j bnQpIDwgSVNETl9ORVRfTUFYX1FVRVVFX0xFTkdUSCkKIAkJcmV0dXJuIDA7CkBAIC03Niw3ICs3 Niw3IEBAIHN0YXRpYyBfX2lubGluZV9fIGludCBpc2RuX25ldF9scF9idXN5KGlzZG5fbmV0X2xv Y2FsICpscCkKICAqIEZvciB0aGUgZ2l2ZW4gbmV0IGRldmljZSwgdGhpcyB3aWxsIGdldCBhIG5v bi1idXN5IGNoYW5uZWwgb3V0IG9mIHRoZQogICogY29ycmVzcG9uZGluZyBidW5kbGUuIFRoZSBy ZXR1cm5lZCBjaGFubmVsIGlzIGxvY2tlZC4KICAqLwotc3RhdGljIF9faW5saW5lX18gaXNkbl9u ZXRfbG9jYWwgKmlzZG5fbmV0X2dldF9sb2NrZWRfbHAoaXNkbl9uZXRfZGV2ICpuZCkKK3N0YXRp YyBpbmxpbmUgaXNkbl9uZXRfbG9jYWwgKmlzZG5fbmV0X2dldF9sb2NrZWRfbHAoaXNkbl9uZXRf ZGV2ICpuZCkKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCWlzZG5fbmV0X2xvY2FsICpscDsK QEAgLTEwNCw3ICsxMDQsNyBAQCBzdGF0aWMgX19pbmxpbmVfXyBpc2RuX25ldF9sb2NhbCAqaXNk bl9uZXRfZ2V0X2xvY2tlZF9scChpc2RuX25ldF9kZXYgKm5kKQogLyoKICAqIGFkZCBhIGNoYW5u ZWwgdG8gYSBidW5kbGUKICAqLwotc3RhdGljIF9faW5saW5lX18gdm9pZCBpc2RuX25ldF9hZGRf dG9fYnVuZGxlKGlzZG5fbmV0X2RldiAqbmQsIGlzZG5fbmV0X2xvY2FsICpubHApCitzdGF0aWMg aW5saW5lIHZvaWQgaXNkbl9uZXRfYWRkX3RvX2J1bmRsZShpc2RuX25ldF9kZXYgKm5kLCBpc2Ru X25ldF9sb2NhbCAqbmxwKQogewogCWlzZG5fbmV0X2xvY2FsICpscDsKIAl1bnNpZ25lZCBsb25n IGZsYWdzOwpAQCAtMTI1LDcgKzEyNSw3IEBAIHN0YXRpYyBfX2lubGluZV9fIHZvaWQgaXNkbl9u ZXRfYWRkX3RvX2J1bmRsZShpc2RuX25ldF9kZXYgKm5kLCBpc2RuX25ldF9sb2NhbCAqCiAvKgog ICogcmVtb3ZlIGEgY2hhbm5lbCBmcm9tIHRoZSBidW5kbGUgaXQgYmVsb25ncyB0bwogICovCi1z dGF0aWMgX19pbmxpbmVfXyB2b2lkIGlzZG5fbmV0X3JtX2Zyb21fYnVuZGxlKGlzZG5fbmV0X2xv Y2FsICpscCkKK3N0YXRpYyBpbmxpbmUgdm9pZCBpc2RuX25ldF9ybV9mcm9tX2J1bmRsZShpc2Ru X25ldF9sb2NhbCAqbHApCiB7CiAJaXNkbl9uZXRfbG9jYWwgKm1hc3Rlcl9scCA9IGxwOwogCXVu c2lnbmVkIGxvbmcgZmxhZ3M7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BjaS9pdnR2L2l2 dHYtaW9jdGwuYyBiL2RyaXZlcnMvbWVkaWEvcGNpL2l2dHYvaXZ0di1pb2N0bC5jCmluZGV4IDRj ZGM2ZDJiZTg1ZC4uZTRlOGIzODM4N2VjIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3BjaS9p dnR2L2l2dHYtaW9jdGwuYworKysgYi9kcml2ZXJzL21lZGlhL3BjaS9pdnR2L2l2dHYtaW9jdGwu YwpAQCAtMTYyMiw3ICsxNjIyLDcgQEAgc3RhdGljIGludCBpdnR2X3RyeV9kZWNvZGVyX2NtZChz dHJ1Y3QgZmlsZSAqZmlsZSwgdm9pZCAqZmgsIHN0cnVjdCB2NGwyX2RlY29kZXIKIH0KIAogI2lm ZGVmIENPTkZJR19WSURFT19JVlRWX0RFUFJFQ0FURURfSU9DVExTCi1zdGF0aWMgX19pbmxpbmVf XyB2b2lkIHdhcm5fZGVwcmVjYXRlZF9pb2N0bChjb25zdCBjaGFyICpuYW1lKQorc3RhdGljIGlu bGluZSB2b2lkIHdhcm5fZGVwcmVjYXRlZF9pb2N0bChjb25zdCBjaGFyICpuYW1lKQogewogCXBy X3dhcm5fb25jZSgid2FybmluZzogdGhlICVzIGlvY3RsIGlzIGRlcHJlY2F0ZWQuIERvbid0IHVz ZSBpdCwgYXMgaXQgd2lsbCBiZSByZW1vdmVkIHNvb25cbiIsCiAJCSAgICAgbmFtZSk7CmRpZmYg LS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdW4vc3VuZ2VtLmMgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9zdW4vc3VuZ2VtLmMKaW5kZXggYjkyMjFmYzE2NzRkLi40ZGE3YTNhYzNjODcgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N1bi9zdW5nZW0uYworKysgYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9zdW4vc3VuZ2VtLmMKQEAgLTY0MCw3ICs2NDAsNyBAQCBzdGF0aWMgaW50 IGdlbV9hYm5vcm1hbF9pcnEoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IGdlbSAqZ3As IHUzMiBnZW1fc3RhdAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgX19pbmxpbmVfXyB2b2lkIGdl bV90eChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgZ2VtICpncCwgdTMyIGdlbV9zdGF0 dXMpCitzdGF0aWMgaW5saW5lIHZvaWQgZ2VtX3R4KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0 cnVjdCBnZW0gKmdwLCB1MzIgZ2VtX3N0YXR1cykKIHsKIAlpbnQgZW50cnksIGxpbWl0OwogCkBA IC03MTAsNyArNzEwLDcgQEAgc3RhdGljIF9faW5saW5lX18gdm9pZCBnZW1fdHgoc3RydWN0IG5l dF9kZXZpY2UgKmRldiwgc3RydWN0IGdlbSAqZ3AsIHUzMiBnZW1fc3QKIAl9CiB9CiAKLXN0YXRp YyBfX2lubGluZV9fIHZvaWQgZ2VtX3Bvc3RfcnhkcyhzdHJ1Y3QgZ2VtICpncCwgaW50IGxpbWl0 KQorc3RhdGljIGlubGluZSB2b2lkIGdlbV9wb3N0X3J4ZHMoc3RydWN0IGdlbSAqZ3AsIGludCBs aW1pdCkKIHsKIAlpbnQgY2x1c3Rlcl9zdGFydCwgY3VyciwgY291bnQsIGtpY2s7CiAKQEAgLTc0 Miw3ICs3NDIsNyBAQCBzdGF0aWMgX19pbmxpbmVfXyB2b2lkIGdlbV9wb3N0X3J4ZHMoc3RydWN0 IGdlbSAqZ3AsIGludCBsaW1pdCkKIAogI2RlZmluZSBBTElHTkVEX1JYX1NLQl9BRERSKGFkZHIp IFwKICAgICAgICAgKCgoKHVuc2lnbmVkIGxvbmcpKGFkZHIpICsgKDY0VUwgLSAxVUwpKSAmIH4o NjRVTCAtIDFVTCkpIC0gKHVuc2lnbmVkIGxvbmcpKGFkZHIpKQotc3RhdGljIF9faW5saW5lX18g c3RydWN0IHNrX2J1ZmYgKmdlbV9hbGxvY19za2Ioc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50 IHNpemUsCitzdGF0aWMgaW5saW5lIHN0cnVjdCBza19idWZmICpnZW1fYWxsb2Nfc2tiKHN0cnVj dCBuZXRfZGV2aWNlICpkZXYsIGludCBzaXplLAogCQkJCQkJZ2ZwX3QgZ2ZwX2ZsYWdzKQogewog CXN0cnVjdCBza19idWZmICpza2IgPSBhbGxvY19za2Ioc2l6ZSArIDY0LCBnZnBfZmxhZ3MpOwpA QCAtOTg4LDcgKzk4OCw3IEBAIHN0YXRpYyB2b2lkIGdlbV90eF90aW1lb3V0KHN0cnVjdCBuZXRf ZGV2aWNlICpkZXYpCiAJZ2VtX3NjaGVkdWxlX3Jlc2V0KGdwKTsKIH0KIAotc3RhdGljIF9faW5s aW5lX18gaW50IGdlbV9pbnRtZShpbnQgZW50cnkpCitzdGF0aWMgaW5saW5lIGludCBnZW1faW50 bWUoaW50IGVudHJ5KQogewogCS8qIEFsZ29yaXRobTogSVJRIGV2ZXJ5IDEvMiBvZiBkZXNjcmlw dG9ycy4gKi8KIAlpZiAoIShlbnRyeSAmICgoVFhfUklOR19TSVpFPj4xKS0xKSkpCmRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdW4vc3VuaG1lLmMgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9zdW4vc3VuaG1lLmMKaW5kZXggMDZkYTJmNTlmY2JmLi4xYjdjOTVkMTdlNDYgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N1bi9zdW5obWUuYworKysgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9zdW4vc3VuaG1lLmMKQEAgLTEwOCw3ICsxMDgsNyBAQCBzdHJ1Y3QgaG1lX3R4 X2xvZ2VudCB7CiAjZGVmaW5lIFRYX0xPR19MRU4JMTI4CiBzdGF0aWMgc3RydWN0IGhtZV90eF9s b2dlbnQgdHhfbG9nW1RYX0xPR19MRU5dOwogc3RhdGljIGludCB0eGxvZ19jdXJfZW50cnk7Ci1z dGF0aWMgX19pbmxpbmVfXyB2b2lkIHR4X2FkZF9sb2coc3RydWN0IGhhcHB5X21lYWwgKmhwLCB1 bnNpZ25lZCBpbnQgYSwgdW5zaWduZWQgaW50IHMpCitzdGF0aWMgaW5saW5lIHZvaWQgdHhfYWRk X2xvZyhzdHJ1Y3QgaGFwcHlfbWVhbCAqaHAsIHVuc2lnbmVkIGludCBhLCB1bnNpZ25lZCBpbnQg cykKIHsKIAlzdHJ1Y3QgaG1lX3R4X2xvZ2VudCAqdGxwOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7 CkBAIC0xMjMsNyArMTIzLDcgQEAgc3RhdGljIF9faW5saW5lX18gdm9pZCB0eF9hZGRfbG9nKHN0 cnVjdCBoYXBweV9tZWFsICpocCwgdW5zaWduZWQgaW50IGEsIHVuc2lnbmUKIAl0eGxvZ19jdXJf ZW50cnkgPSAodHhsb2dfY3VyX2VudHJ5ICsgMSkgJiAoVFhfTE9HX0xFTiAtIDEpOwogCWxvY2Fs X2lycV9yZXN0b3JlKGZsYWdzKTsKIH0KLXN0YXRpYyBfX2lubGluZV9fIHZvaWQgdHhfZHVtcF9s b2codm9pZCkKK3N0YXRpYyBpbmxpbmUgdm9pZCB0eF9kdW1wX2xvZyh2b2lkKQogewogCWludCBp LCB0aGlzOwogCkBAIC0xMzYsNyArMTM2LDcgQEAgc3RhdGljIF9faW5saW5lX18gdm9pZCB0eF9k dW1wX2xvZyh2b2lkKQogCQl0aGlzID0gKHRoaXMgKyAxKSAmIChUWF9MT0dfTEVOIC0gMSk7CiAJ fQogfQotc3RhdGljIF9faW5saW5lX18gdm9pZCB0eF9kdW1wX3Jpbmcoc3RydWN0IGhhcHB5X21l YWwgKmhwKQorc3RhdGljIGlubGluZSB2b2lkIHR4X2R1bXBfcmluZyhzdHJ1Y3QgaGFwcHlfbWVh bCAqaHApCiB7CiAJc3RydWN0IGhtZWFsX2luaXRfYmxvY2sgKmhiID0gaHAtPmhhcHB5X2Jsb2Nr OwogCXN0cnVjdCBoYXBweV9tZWFsX3R4ZCAqdHAgPSAmaGItPmhhcHB5X21lYWxfdHhkWzBdOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaGFtcmFkaW8vYmF5Y29tX3Nlcl9mZHguYyBiL2RyaXZl cnMvbmV0L2hhbXJhZGlvL2JheWNvbV9zZXJfZmR4LmMKaW5kZXggMTkwZjY2Yzg4NDc5Li5iZDkx ZmI1NzE5MjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2hhbXJhZGlvL2JheWNvbV9zZXJfZmR4 LmMKKysrIGIvZHJpdmVycy9uZXQvaGFtcmFkaW8vYmF5Y29tX3Nlcl9mZHguYwpAQCAtMjI5LDcg KzIyOSw3IEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGh3ZWlnaHQ4KHVuc2lnbmVkIGlu dCB3KQogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAotc3RhdGljIF9faW5saW5lX18gdm9pZCBzZXIx Ml9yeChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgYmF5Y29tX3N0YXRlICpiYywgc3Ry dWN0IHRpbWVzcGVjNjQgKnRzLCB1bnNpZ25lZCBjaGFyIGN1cnMpCitzdGF0aWMgaW5saW5lIHZv aWQgc2VyMTJfcngoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IGJheWNvbV9zdGF0ZSAq YmMsIHN0cnVjdCB0aW1lc3BlYzY0ICp0cywgdW5zaWduZWQgY2hhciBjdXJzKQogewogCWludCB0 aW1lZGlmZjsKIAlpbnQgYmR1czggPSBiYy0+YmF1ZF91cyA+PiAzOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvd2FuL2xhcGJldGhlci5jIGIvZHJpdmVycy9uZXQvd2FuL2xhcGJldGhlci5jCmlu ZGV4IDBlM2Y4ZWQ4NDY2MC4uODQxNDVlYzgyYTM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93 YW4vbGFwYmV0aGVyLmMKKysrIGIvZHJpdmVycy9uZXQvd2FuL2xhcGJldGhlci5jCkBAIC03Niw3 ICs3Niw3IEBAIHN0YXRpYyBzdHJ1Y3QgbGFwYmV0aGRldiAqbGFwYmV0aF9nZXRfeDI1X2Rldihz dHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCXJldHVybiBOVUxMOwogfQogCi1zdGF0aWMgX19pbmxp bmVfXyBpbnQgZGV2X2lzX2V0aGRldihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQorc3RhdGljIGlu bGluZSBpbnQgZGV2X2lzX2V0aGRldihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogewogCXJldHVy biBkZXYtPnR5cGUgPT0gQVJQSFJEX0VUSEVSICYmIHN0cm5jbXAoZGV2LT5uYW1lLCAiZHVtbXki LCA1KTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dhbi9uMi5jIGIvZHJpdmVycy9uZXQv d2FuL24yLmMKaW5kZXggYzhmNDUxN2RiM2EwLi40NWVhOGRhNzlmYTUgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvbmV0L3dhbi9uMi5jCisrKyBiL2RyaXZlcnMvbmV0L3dhbi9uMi5jCkBAIC0xNDgsMTMg KzE0OCwxMyBAQCBzdGF0aWMgY2FyZF90ICoqbmV3X2NhcmQgPSAmZmlyc3RfY2FyZDsKIAkJCQkJ ICYoY2FyZCktPnBvcnRzW3BvcnRdIDogTlVMTCkKIAogCi1zdGF0aWMgX19pbmxpbmVfXyB1OCBz Y2FfZ2V0X3BhZ2UoY2FyZF90ICpjYXJkKQorc3RhdGljIGlubGluZSB1OCBzY2FfZ2V0X3BhZ2Uo Y2FyZF90ICpjYXJkKQogewogCXJldHVybiBpbmIoY2FyZC0+aW8gKyBOMl9QU1IpICYgUFNSX1BB R0VCSVRTOwogfQogCiAKLXN0YXRpYyBfX2lubGluZV9fIHZvaWQgb3BlbndpbihjYXJkX3QgKmNh cmQsIHU4IHBhZ2UpCitzdGF0aWMgaW5saW5lIHZvaWQgb3BlbndpbihjYXJkX3QgKmNhcmQsIHU4 IHBhZ2UpCiB7CiAJdTggcHNyID0gaW5iKGNhcmQtPmlvICsgTjJfUFNSKTsKIAlvdXRiKChwc3Ig JiB+UFNSX1BBR0VCSVRTKSB8IHBhZ2UsIGNhcmQtPmlvICsgTjJfUFNSKTsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvcGFyaXNjL2xlZC5jIGIvZHJpdmVycy9wYXJpc2MvbGVkLmMKaW5kZXggMGM2ZThi NDRiNGVkLi42NWJhYTg2ZGJhZTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGFyaXNjL2xlZC5jCisr KyBiL2RyaXZlcnMvcGFyaXNjL2xlZC5jCkBAIC0zNDksNyArMzQ5LDcgQEAgc3RhdGljIHZvaWQg bGVkX0xDRF9kcml2ZXIodW5zaWduZWQgY2hhciBsZWRzKQogICAgKiogKGFuYWxvZyB0byBkZXZf Z2V0X2luZm8oKSBmcm9tIG5ldC9jb3JlL2Rldi5jKQogICAgKiogICAKICAqLwotc3RhdGljIF9f aW5saW5lX18gaW50IGxlZF9nZXRfbmV0X2FjdGl2aXR5KHZvaWQpCitzdGF0aWMgaW5saW5lIGlu dCBsZWRfZ2V0X25ldF9hY3Rpdml0eSh2b2lkKQogeyAKICNpZm5kZWYgQ09ORklHX05FVAogCXJl dHVybiAwOwpAQCAtNDAxLDcgKzQwMSw3IEBAIHN0YXRpYyBfX2lubGluZV9fIGludCBsZWRfZ2V0 X25ldF9hY3Rpdml0eSh2b2lkKQogICAgKiogY2FsY3VsYXRlIGlmIHRoZXJlIHdhcyBkaXNrLWlv IGluIHRoZSBzeXN0ZW0KICAgICoqICAgCiAgKi8KLXN0YXRpYyBfX2lubGluZV9fIGludCBsZWRf Z2V0X2Rpc2tpb19hY3Rpdml0eSh2b2lkKQorc3RhdGljIGlubGluZSBpbnQgbGVkX2dldF9kaXNr aW9fYWN0aXZpdHkodm9pZCkKIHsJCiAJc3RhdGljIHVuc2lnbmVkIGxvbmcgbGFzdF9wZ3BnaW4s IGxhc3RfcGdwZ291dDsKIAl1bnNpZ25lZCBsb25nIGV2ZW50c1tOUl9WTV9FVkVOVF9JVEVNU107 CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BhcmlzYy9zYmFfaW9tbXUuYyBiL2RyaXZlcnMvcGFyaXNj L3NiYV9pb21tdS5jCmluZGV4IDExZGUwZWNjZjk2OC4uYTdhNzlhZWJhZTE3IDEwMDY0NAotLS0g YS9kcml2ZXJzL3BhcmlzYy9zYmFfaW9tbXUuYworKysgYi9kcml2ZXJzL3BhcmlzYy9zYmFfaW9t bXUuYwpAQCAtODksNyArODksNyBAQAogI2RlZmluZSBEQkdfUkVTKHguLi4pCiAjZW5kaWYKIAot I2RlZmluZSBTQkFfSU5MSU5FCV9faW5saW5lX18KKyNkZWZpbmUgU0JBX0lOTElORQlpbmxpbmUK IAogI2RlZmluZSBERUZBVUxUX0RNQV9ISU5UX1JFRwkwCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMv cGFycG9ydC9wYXJwb3J0X2dzYy5jIGIvZHJpdmVycy9wYXJwb3J0L3BhcnBvcnRfZ3NjLmMKaW5k ZXggMTkwYzBhN2ExYzUyLi4yMGRhYjQ2M2U0MGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGFycG9y dC9wYXJwb3J0X2dzYy5jCisrKyBiL2RyaXZlcnMvcGFycG9ydC9wYXJwb3J0X2dzYy5jCkBAIC03 Niw3ICs3Niw3IEBAIHN0YXRpYyBpbnQgY2xlYXJfZXBwX3RpbWVvdXQoc3RydWN0IHBhcnBvcnQg KnBiKQogICogQWNjZXNzIGZ1bmN0aW9ucy4KICAqCiAgKiBNb3N0IG9mIHRoZXNlIGFyZW4ndCBz dGF0aWMgYmVjYXVzZSB0aGV5IG1heSBiZSB1c2VkIGJ5IHRoZQotICogcGFycG9ydF94eHhfeXl5 IG1hY3Jvcy4gIGV4dGVybiBfX2lubGluZV9fIHZlcnNpb25zIG9mIHNldmVyYWwKKyAqIHBhcnBv cnRfeHh4X3l5eSBtYWNyb3MuICBleHRlcm4gaW5saW5lIHZlcnNpb25zIG9mIHNldmVyYWwKICAq IG9mIHRoZXNlIGFyZSBpbiBwYXJwb3J0X2dzYy5oLgogICovCiAKZGlmZiAtLWdpdCBhL2RyaXZl cnMvcGFycG9ydC9wYXJwb3J0X2dzYy5oIGIvZHJpdmVycy9wYXJwb3J0L3BhcnBvcnRfZ3NjLmgK aW5kZXggODEyMjE0NzY4ZDI3Li4yMWEzZjk2ODA2ZjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGFy cG9ydC9wYXJwb3J0X2dzYy5oCisrKyBiL2RyaXZlcnMvcGFycG9ydC9wYXJwb3J0X2dzYy5oCkBA IC00MSwxMyArNDEsMTMgQEAKICNkZWZpbmUgcGFycG9ydF9yZWFkYglnc2NfcmVhZGIKICNkZWZp bmUgcGFycG9ydF93cml0ZWIJZ3NjX3dyaXRlYgogI2Vsc2UKLXN0YXRpYyBfX2lubGluZV9fIHVu c2lnbmVkIGNoYXIgcGFycG9ydF9yZWFkYiggdW5zaWduZWQgbG9uZyBwb3J0ICkKK3N0YXRpYyBp bmxpbmUgdW5zaWduZWQgY2hhciBwYXJwb3J0X3JlYWRiKCB1bnNpZ25lZCBsb25nIHBvcnQgKQog ewogICAgIHVkZWxheShERUxBWV9USU1FKTsKICAgICByZXR1cm4gZ3NjX3JlYWRiKHBvcnQpOwog fQogCi1zdGF0aWMgX19pbmxpbmVfXyB2b2lkIHBhcnBvcnRfd3JpdGViKCB1bnNpZ25lZCBjaGFy IHZhbHVlLCB1bnNpZ25lZCBsb25nIHBvcnQgKQorc3RhdGljIGlubGluZSB2b2lkIHBhcnBvcnRf d3JpdGViKCB1bnNpZ25lZCBjaGFyIHZhbHVlLCB1bnNpZ25lZCBsb25nIHBvcnQgKQogewogICAg IGdzY193cml0ZWIodmFsdWUscG9ydCk7CiAgICAgdWRlbGF5KERFTEFZX1RJTUUpOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9wYXJwb3J0L3BhcnBvcnRfcGMuYyBiL2RyaXZlcnMvcGFycG9ydC9wYXJw b3J0X3BjLmMKaW5kZXggMzgwOTE2YmZmOWUwLi5jNWQzYTEwNTNkZmYgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvcGFycG9ydC9wYXJwb3J0X3BjLmMKKysrIGIvZHJpdmVycy9wYXJwb3J0L3BhcnBvcnRf cGMuYwpAQCAtMjI1LDcgKzIyNSw3IEBAIHN0YXRpYyBpbnQgY2xlYXJfZXBwX3RpbWVvdXQoc3Ry dWN0IHBhcnBvcnQgKnBiKQogICogQWNjZXNzIGZ1bmN0aW9ucy4KICAqCiAgKiBNb3N0IG9mIHRo ZXNlIGFyZW4ndCBzdGF0aWMgYmVjYXVzZSB0aGV5IG1heSBiZSB1c2VkIGJ5IHRoZQotICogcGFy cG9ydF94eHhfeXl5IG1hY3Jvcy4gIGV4dGVybiBfX2lubGluZV9fIHZlcnNpb25zIG9mIHNldmVy YWwKKyAqIHBhcnBvcnRfeHh4X3l5eSBtYWNyb3MuICBleHRlcm4gaW5saW5lIHZlcnNpb25zIG9m IHNldmVyYWwKICAqIG9mIHRoZXNlIGFyZSBpbiBwYXJwb3J0X3BjLmguCiAgKi8KIApkaWZmIC0t Z2l0IGEvZHJpdmVycy9zY3NpL2xwZmMvbHBmY19zY3NpLmMgYi9kcml2ZXJzL3Njc2kvbHBmYy9s cGZjX3Njc2kuYwppbmRleCA1Yzc4NThlNzM1YzkuLmMyNzg3ODNhZDU5YiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9zY3NpL2xwZmMvbHBmY19zY3NpLmMKKysrIGIvZHJpdmVycy9zY3NpL2xwZmMvbHBm Y19zY3NpLmMKQEAgLTQ0ODEsNyArNDQ4MSw3IEBAIGxwZmNfaW5mbyhzdHJ1Y3QgU2NzaV9Ib3N0 ICpob3N0KQogICogVGhpcyByb3V0aW5lIG1vZGlmaWVzIGZjcF9wb2xsX3RpbWVyICBmaWVsZCBv ZiBAcGhiYSBieSBjZmdfcG9sbF90bW8uCiAgKiBUaGUgZGVmYXVsdCB2YWx1ZSBvZiBjZmdfcG9s bF90bW8gaXMgMTAgbWlsbGlzZWNvbmRzLgogICoqLwotc3RhdGljIF9faW5saW5lX18gdm9pZCBs cGZjX3BvbGxfcmVhcm1fdGltZXIoc3RydWN0IGxwZmNfaGJhICogcGhiYSkKK3N0YXRpYyBpbmxp bmUgdm9pZCBscGZjX3BvbGxfcmVhcm1fdGltZXIoc3RydWN0IGxwZmNfaGJhICogcGhiYSkKIHsK IAl1bnNpZ25lZCBsb25nICBwb2xsX3Rtb19leHBpcmVzID0KIAkJKGppZmZpZXMgKyBtc2Vjc190 b19qaWZmaWVzKHBoYmEtPmNmZ19wb2xsX3RtbykpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3Np L3BjbWNpYS9zeW01M2M1MDBfY3MuYyBiL2RyaXZlcnMvc2NzaS9wY21jaWEvc3ltNTNjNTAwX2Nz LmMKaW5kZXggMjAwMTFjOGFmYmI1Li4yOTk5NjNmOGQwYWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv c2NzaS9wY21jaWEvc3ltNTNjNTAwX2NzLmMKKysrIGIvZHJpdmVycy9zY3NpL3BjbWNpYS9zeW01 M2M1MDBfY3MuYwpAQCAtMjQxLDcgKzI0MSw3IEBAIFNZTTUzQzUwMF9pbnRfaG9zdF9yZXNldChp bnQgaW9fcG9ydCkKIAljaGlwX2luaXQoaW9fcG9ydCk7CiB9CiAKLXN0YXRpYyBfX2lubGluZV9f IGludAorc3RhdGljIGlubGluZSBpbnQKIFNZTTUzQzUwMF9waW9fcmVhZChpbnQgZmFzdF9waW8s IGludCBiYXNlLCB1bnNpZ25lZCBjaGFyICpyZXF1ZXN0LCB1bnNpZ25lZCBpbnQgcmVxbGVuKQog ewogCWludCBpOwpAQCAtMjk2LDcgKzI5Niw3IEBAIFNZTTUzQzUwMF9waW9fcmVhZChpbnQgZmFz dF9waW8sIGludCBiYXNlLCB1bnNpZ25lZCBjaGFyICpyZXF1ZXN0LCB1bnNpZ25lZCBpbnQKIAly ZXR1cm4gMDsKIH0KIAotc3RhdGljIF9faW5saW5lX18gaW50CitzdGF0aWMgaW5saW5lIGludAog U1lNNTNDNTAwX3Bpb193cml0ZShpbnQgZmFzdF9waW8sIGludCBiYXNlLCB1bnNpZ25lZCBjaGFy ICpyZXF1ZXN0LCB1bnNpZ25lZCBpbnQgcmVxbGVuKQogewogCWludCBpID0gMDsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9pbmxpbmUuaCBiL2RyaXZlcnMvc2NzaS9xbGEy eHh4L3FsYV9pbmxpbmUuaAppbmRleCA0MzUxNzM2YjI0MjYuLmQ2ZGIyYWQ4YmY1NyAxMDA2NDQK LS0tIGEvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2lubGluZS5oCisrKyBiL2RyaXZlcnMvc2Nz aS9xbGEyeHh4L3FsYV9pbmxpbmUuaApAQCAtMzksNyArMzksNyBAQCBxbGEyNHh4X2NhbGNfaW9j YnMoc2NzaV9xbGFfaG9zdF90ICp2aGEsIHVpbnQxNl90IGRzZHMpCiAgKiBSZXR1cm5zOgogICog ICAgICByZWdpc3RlciB2YWx1ZS4KICAqLwotc3RhdGljIF9faW5saW5lX18gdWludDE2X3QKK3N0 YXRpYyBpbmxpbmUgdWludDE2X3QKIHFsYTJ4MDBfZGVib3VuY2VfcmVnaXN0ZXIodm9sYXRpbGUg dWludDE2X3QgX19pb21lbSAqYWRkcikKIHsKIAl2b2xhdGlsZSB1aW50MTZfdCBmaXJzdDsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9vcy5jIGIvZHJpdmVycy9zY3NpL3Fs YTJ4eHgvcWxhX29zLmMKaW5kZXggNDJiOGYwZDNlNTgwLi5mNDhmMGI4ZDBiNjkgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9vcy5jCisrKyBiL2RyaXZlcnMvc2NzaS9xbGEy eHh4L3FsYV9vcy5jCkBAIC0zNDQsNyArMzQ0LDcgQEAgc3RydWN0IHNjc2lfdHJhbnNwb3J0X3Rl bXBsYXRlICpxbGEyeHh4X3RyYW5zcG9ydF92cG9ydF90ZW1wbGF0ZSA9IE5VTEw7CiAgKiBUaW1l ciByb3V0aW5lcwogICovCiAKLV9faW5saW5lX18gdm9pZAoraW5saW5lIHZvaWQKIHFsYTJ4MDBf c3RhcnRfdGltZXIoc2NzaV9xbGFfaG9zdF90ICp2aGEsIHVuc2lnbmVkIGxvbmcgaW50ZXJ2YWwp CiB7CiAJdGltZXJfc2V0dXAoJnZoYS0+dGltZXIsIHFsYTJ4MDBfdGltZXIsIDApOwpAQCAtMzY2 LDcgKzM2Niw3IEBAIHFsYTJ4MDBfcmVzdGFydF90aW1lcihzY3NpX3FsYV9ob3N0X3QgKnZoYSwg dW5zaWduZWQgbG9uZyBpbnRlcnZhbCkKIAltb2RfdGltZXIoJnZoYS0+dGltZXIsIGppZmZpZXMg KyBpbnRlcnZhbCAqIEhaKTsKIH0KIAotc3RhdGljIF9faW5saW5lX18gdm9pZAorc3RhdGljIGlu bGluZSB2b2lkCiBxbGEyeDAwX3N0b3BfdGltZXIoc2NzaV9xbGFfaG9zdF90ICp2aGEpCiB7CiAJ ZGVsX3RpbWVyX3N5bmMoJnZoYS0+dGltZXIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5n L3J0bDg3MjNicy9jb3JlL3J0d19wd3JjdHJsLmMgYi9kcml2ZXJzL3N0YWdpbmcvcnRsODcyM2Jz L2NvcmUvcnR3X3B3cmN0cmwuYwppbmRleCAxMTBiYmUzNDBiNzguLjk2OWI5M2FkYzIxNCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5nL3J0bDg3MjNicy9jb3JlL3J0d19wd3JjdHJsLmMKKysr IGIvZHJpdmVycy9zdGFnaW5nL3J0bDg3MjNicy9jb3JlL3J0d19wd3JjdHJsLmMKQEAgLTgzMSwx MiArODMxLDEyIEBAIHN0YXRpYyB2b2lkIHB3cl9ycHdtX3RpbWVvdXRfaGFuZGxlcihzdHJ1Y3Qg dGltZXJfbGlzdCAqdCkKIAlfc2V0X3dvcmtpdGVtKCZwd3Jwcml2LT5ycHdtdGltZW91dHdpKTsK IH0KIAotc3RhdGljIF9faW5saW5lIHZvaWQgcmVnaXN0ZXJfdGFza19hbGl2ZShzdHJ1Y3QgcHdy Y3RybF9wcml2ICpwd3JjdHJsLCB1MzIgdGFnKQorc3RhdGljIGlubGluZSB2b2lkIHJlZ2lzdGVy X3Rhc2tfYWxpdmUoc3RydWN0IHB3cmN0cmxfcHJpdiAqcHdyY3RybCwgdTMyIHRhZykKIHsKIAlw d3JjdHJsLT5hbGl2ZXMgfD0gdGFnOwogfQogCi1zdGF0aWMgX19pbmxpbmUgdm9pZCB1bnJlZ2lz dGVyX3Rhc2tfYWxpdmUoc3RydWN0IHB3cmN0cmxfcHJpdiAqcHdyY3RybCwgdTMyIHRhZykKK3N0 YXRpYyBpbmxpbmUgdm9pZCB1bnJlZ2lzdGVyX3Rhc2tfYWxpdmUoc3RydWN0IHB3cmN0cmxfcHJp diAqcHdyY3RybCwgdTMyIHRhZykKIHsKIAlwd3JjdHJsLT5hbGl2ZXMgJj0gfnRhZzsKIH0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy9ydGw4NzIzYnMvY29yZS9ydHdfd2xhbl91dGlsLmMg Yi9kcml2ZXJzL3N0YWdpbmcvcnRsODcyM2JzL2NvcmUvcnR3X3dsYW5fdXRpbC5jCmluZGV4IDJj NjVhZjMxOWE2MC4uZGUwNDc2ZjFmMjNiIDEwMDY0NAotLS0gYS9kcml2ZXJzL3N0YWdpbmcvcnRs ODcyM2JzL2NvcmUvcnR3X3dsYW5fdXRpbC5jCisrKyBiL2RyaXZlcnMvc3RhZ2luZy9ydGw4NzIz YnMvY29yZS9ydHdfd2xhbl91dGlsLmMKQEAgLTQ1Niw3ICs0NTYsNyBAQCB2b2lkIHNldF9jaGFu bmVsX2J3bW9kZShzdHJ1Y3QgYWRhcHRlciAqcGFkYXB0ZXIsIHVuc2lnbmVkIGNoYXIgY2hhbm5l bCwgdW5zaWduZQogCW11dGV4X3VubG9jaygmKGFkYXB0ZXJfdG9fZHZvYmoocGFkYXB0ZXIpLT5z ZXRjaF9tdXRleCkpOwogfQogCi1fX2lubGluZSB1OCAqZ2V0X215X2Jzc2lkKHN0cnVjdCB3bGFu X2Jzc2lkX2V4ICpwbmV0d29yaykKK2lubGluZSB1OCAqZ2V0X215X2Jzc2lkKHN0cnVjdCB3bGFu X2Jzc2lkX2V4ICpwbmV0d29yaykKIHsKIAlyZXR1cm4gcG5ldHdvcmstPk1hY0FkZHJlc3M7CiB9 CmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvcnRsODcyM2JzL2luY2x1ZGUvZHJ2X3R5cGVz LmggYi9kcml2ZXJzL3N0YWdpbmcvcnRsODcyM2JzL2luY2x1ZGUvZHJ2X3R5cGVzLmgKaW5kZXgg YzU3ZjI5MGY2MDVhLi45YTU2ZmM2YzJkMWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy9y dGw4NzIzYnMvaW5jbHVkZS9kcnZfdHlwZXMuaAorKysgYi9kcml2ZXJzL3N0YWdpbmcvcnRsODcy M2JzL2luY2x1ZGUvZHJ2X3R5cGVzLmgKQEAgLTQ4NSw3ICs0ODUsNyBAQCBzdHJ1Y3QgZHZvYmpf cHJpdgogI2RlZmluZSBkdm9ial90b19wd3JjdGwoZHZvYmopICgmKGR2b2JqLT5wd3JjdGxfcHJp dikpCiAjZGVmaW5lIHB3cmN0bF90b19kdm9iaihwd3JjdGwpIGNvbnRhaW5lcl9vZihwd3JjdGws IHN0cnVjdCBkdm9ial9wcml2LCBwd3JjdGxfcHJpdikKIAotX19pbmxpbmUgc3RhdGljIHN0cnVj dCBkZXZpY2UgKmR2b2JqX3RvX2RldihzdHJ1Y3QgZHZvYmpfcHJpdiAqZHZvYmopCitpbmxpbmUg c3RhdGljIHN0cnVjdCBkZXZpY2UgKmR2b2JqX3RvX2RldihzdHJ1Y3QgZHZvYmpfcHJpdiAqZHZv YmopCiB7CiAJLyogdG9kbzogZ2V0IGludGVyZmFjZSB0eXBlIGZyb20gZHZvYmogYW5kIHRoZSBy ZXR1cm4gdGhlIGRldiBhY2NvcmRpbmdseSAqLwogI2lmZGVmIFJUV19EVk9CSl9DSElQX0hXX1RZ UEUKQEAgLTY0MywxNCArNjQzLDE0IEBAIHN0cnVjdCBhZGFwdGVyIHsKIAogLyogZGVmaW5lIFJU V19ESVNBQkxFX0ZVTkMocGFkYXB0ZXIsIGZ1bmMpIChhdG9taWNfYWRkKCZhZGFwdGVyX3RvX2R2 b2JqKHBhZGFwdGVyKS0+ZGlzYWJsZV9mdW5jLCAoZnVuYykpKSAqLwogLyogZGVmaW5lIFJUV19F TkFCTEVfRlVOQyhwYWRhcHRlciwgZnVuYykgKGF0b21pY19zdWIoJmFkYXB0ZXJfdG9fZHZvYmoo cGFkYXB0ZXIpLT5kaXNhYmxlX2Z1bmMsIChmdW5jKSkpICovCi1fX2lubGluZSBzdGF0aWMgdm9p ZCBSVFdfRElTQUJMRV9GVU5DKHN0cnVjdCBhZGFwdGVyICpwYWRhcHRlciwgaW50IGZ1bmNfYml0 KQoraW5saW5lIHN0YXRpYyB2b2lkIFJUV19ESVNBQkxFX0ZVTkMoc3RydWN0IGFkYXB0ZXIgKnBh ZGFwdGVyLCBpbnQgZnVuY19iaXQpCiB7CiAJaW50CWRmID0gYXRvbWljX3JlYWQoJmFkYXB0ZXJf dG9fZHZvYmoocGFkYXB0ZXIpLT5kaXNhYmxlX2Z1bmMpOwogCWRmIHw9IGZ1bmNfYml0OwogCWF0 b21pY19zZXQoJmFkYXB0ZXJfdG9fZHZvYmoocGFkYXB0ZXIpLT5kaXNhYmxlX2Z1bmMsIGRmKTsK IH0KIAotX19pbmxpbmUgc3RhdGljIHZvaWQgUlRXX0VOQUJMRV9GVU5DKHN0cnVjdCBhZGFwdGVy ICpwYWRhcHRlciwgaW50IGZ1bmNfYml0KQoraW5saW5lIHN0YXRpYyB2b2lkIFJUV19FTkFCTEVf RlVOQyhzdHJ1Y3QgYWRhcHRlciAqcGFkYXB0ZXIsIGludCBmdW5jX2JpdCkKIHsKIAlpbnQJZGYg PSBhdG9taWNfcmVhZCgmYWRhcHRlcl90b19kdm9iaihwYWRhcHRlciktPmRpc2FibGVfZnVuYyk7 CiAJZGYgJj0gfihmdW5jX2JpdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvcnRsODcy M2JzL2luY2x1ZGUvaWVlZTgwMjExLmggYi9kcml2ZXJzL3N0YWdpbmcvcnRsODcyM2JzL2luY2x1 ZGUvaWVlZTgwMjExLmgKaW5kZXggYmNjOGRmYThlNjcyLi5iOTViYTgxMDM2ZjQgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvc3RhZ2luZy9ydGw4NzIzYnMvaW5jbHVkZS9pZWVlODAyMTEuaAorKysgYi9k cml2ZXJzL3N0YWdpbmcvcnRsODcyM2JzL2luY2x1ZGUvaWVlZTgwMjExLmgKQEAgLTg1MCwxOCAr ODUwLDE4IEBAIGVudW0gaWVlZTgwMjExX3N0YXRlIHsKICNkZWZpbmUgSVBfRk1UICIlcEk0Igog I2RlZmluZSBJUF9BUkcoeCkgKHgpCiAKLWV4dGVybiBfX2lubGluZSBpbnQgaXNfbXVsdGljYXN0 X21hY19hZGRyKGNvbnN0IHU4ICphZGRyKQorZXh0ZXJuIGlubGluZSBpbnQgaXNfbXVsdGljYXN0 X21hY19hZGRyKGNvbnN0IHU4ICphZGRyKQogewogICAgICAgICByZXR1cm4gKChhZGRyWzBdICE9 IDB4ZmYpICYmICgweDAxICYgYWRkclswXSkpOwogfQogCi1leHRlcm4gX19pbmxpbmUgaW50IGlz X2Jyb2FkY2FzdF9tYWNfYWRkcihjb25zdCB1OCAqYWRkcikKK2V4dGVybiBpbmxpbmUgaW50IGlz X2Jyb2FkY2FzdF9tYWNfYWRkcihjb25zdCB1OCAqYWRkcikKIHsKIAlyZXR1cm4gKChhZGRyWzBd ID09IDB4ZmYpICYmIChhZGRyWzFdID09IDB4ZmYpICYmIChhZGRyWzJdID09IDB4ZmYpICYmICAg XAogCQkoYWRkclszXSA9PSAweGZmKSAmJiAoYWRkcls0XSA9PSAweGZmKSAmJiAoYWRkcls1XSA9 PSAweGZmKSk7CiB9CiAKLWV4dGVybiBfX2lubGluZSBpbnQgaXNfemVyb19tYWNfYWRkcihjb25z dCB1OCAqYWRkcikKK2V4dGVybiBpbmxpbmUgaW50IGlzX3plcm9fbWFjX2FkZHIoY29uc3QgdTgg KmFkZHIpCiB7CiAJcmV0dXJuICgoYWRkclswXSA9PSAweDAwKSAmJiAoYWRkclsxXSA9PSAweDAw KSAmJiAoYWRkclsyXSA9PSAweDAwKSAmJiAgIFwKIAkJKGFkZHJbM10gPT0gMHgwMCkgJiYgKGFk ZHJbNF0gPT0gMHgwMCkgJiYgKGFkZHJbNV0gPT0gMHgwMCkpOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9zdGFnaW5nL3J0bDg3MjNicy9pbmNsdWRlL29zZGVwX3NlcnZpY2UuaCBiL2RyaXZlcnMvc3Rh Z2luZy9ydGw4NzIzYnMvaW5jbHVkZS9vc2RlcF9zZXJ2aWNlLmgKaW5kZXggNzZkNjE5NTg1MDQ2 Li4zYTJlYjNjYmMwZTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy9ydGw4NzIzYnMvaW5j bHVkZS9vc2RlcF9zZXJ2aWNlLmgKKysrIGIvZHJpdmVycy9zdGFnaW5nL3J0bDg3MjNicy9pbmNs dWRlL29zZGVwX3NlcnZpY2UuaApAQCAtMTEwLDEyICsxMTAsMTIgQEAgaW50IF9ydHdfbmV0aWZf cngoX25pY19oZGwgbmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYik7CiAKIGV4dGVybiB2b2lkIF9y dHdfaW5pdF9xdWV1ZShzdHJ1Y3QgX19xdWV1ZQkqcHF1ZXVlKTsKIAotc3RhdGljIF9faW5saW5l IHZvaWQgdGhyZWFkX2VudGVyKGNoYXIgKm5hbWUpCitzdGF0aWMgaW5saW5lIHZvaWQgdGhyZWFk X2VudGVyKGNoYXIgKm5hbWUpCiB7CiAJYWxsb3dfc2lnbmFsKFNJR1RFUk0pOwogfQogCi1fX2lu bGluZSBzdGF0aWMgdm9pZCBmbHVzaF9zaWduYWxzX3RocmVhZCh2b2lkKQoraW5saW5lIHN0YXRp YyB2b2lkIGZsdXNoX3NpZ25hbHNfdGhyZWFkKHZvaWQpCiB7CiAJaWYgKHNpZ25hbF9wZW5kaW5n IChjdXJyZW50KSkKIAl7CkBAIC0xMjUsNyArMTI1LDcgQEAgX19pbmxpbmUgc3RhdGljIHZvaWQg Zmx1c2hfc2lnbmFsc190aHJlYWQodm9pZCkKIAogI2RlZmluZSBydHdfd2Fybl9vbihjb25kaXRp b24pIFdBUk5fT04oY29uZGl0aW9uKQogCi1fX2lubGluZSBzdGF0aWMgaW50IHJ0d19idWdfY2hl Y2sodm9pZCAqcGFyZzEsIHZvaWQgKnBhcmcyLCB2b2lkICpwYXJnMywgdm9pZCAqcGFyZzQpCitp bmxpbmUgc3RhdGljIGludCBydHdfYnVnX2NoZWNrKHZvaWQgKnBhcmcxLCB2b2lkICpwYXJnMiwg dm9pZCAqcGFyZzMsIHZvaWQgKnBhcmc0KQogewogCWludCByZXQgPSB0cnVlOwogCkBAIC0xMzYs NyArMTM2LDcgQEAgX19pbmxpbmUgc3RhdGljIGludCBydHdfYnVnX2NoZWNrKHZvaWQgKnBhcmcx LCB2b2lkICpwYXJnMiwgdm9pZCAqcGFyZzMsIHZvaWQgKnAKICNkZWZpbmUgX1JORChzeiwgcikg KCgoKHN6KSsoKHIpLTEpKS8ocikpKihyKSkKICNkZWZpbmUgUk5ENCh4KQkoKCh4ID4+IDIpICsg KCgoeCAmIDMpID09IDApID8gIDA6IDEpKSA8PCAyKQogCi1fX2lubGluZSBzdGF0aWMgdTMyIF9S TkQ0KHUzMiBzeikKK2lubGluZSBzdGF0aWMgdTMyIF9STkQ0KHUzMiBzeikKIHsKIAogCXUzMiB2 YWw7CkBAIC0xNDcsNyArMTQ3LDcgQEAgX19pbmxpbmUgc3RhdGljIHUzMiBfUk5ENCh1MzIgc3op CiAKIH0KIAotX19pbmxpbmUgc3RhdGljIHUzMiBfUk5EOCh1MzIgc3opCitpbmxpbmUgc3RhdGlj IHUzMiBfUk5EOCh1MzIgc3opCiB7CiAKIAl1MzIgdmFsOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9z dGFnaW5nL3J0bDg3MjNicy9pbmNsdWRlL29zZGVwX3NlcnZpY2VfbGludXguaCBiL2RyaXZlcnMv c3RhZ2luZy9ydGw4NzIzYnMvaW5jbHVkZS9vc2RlcF9zZXJ2aWNlX2xpbnV4LmgKaW5kZXggNThk MWUxMDE5MjQxLi5kNWNhODRiMzI2ZWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy9ydGw4 NzIzYnMvaW5jbHVkZS9vc2RlcF9zZXJ2aWNlX2xpbnV4LmgKKysrIGIvZHJpdmVycy9zdGFnaW5n L3J0bDg3MjNicy9pbmNsdWRlL29zZGVwX3NlcnZpY2VfbGludXguaApAQCAtNjYsMTIgKzY2LDEy IEBACiAKIAl0eXBlZGVmIHN0cnVjdCB3b3JrX3N0cnVjdCBfd29ya2l0ZW07CiAKLV9faW5saW5l IHN0YXRpYyBzdHJ1Y3QgbGlzdF9oZWFkICpnZXRfbmV4dChzdHJ1Y3QgbGlzdF9oZWFkCSpsaXN0 KQoraW5saW5lIHN0YXRpYyBzdHJ1Y3QgbGlzdF9oZWFkICpnZXRfbmV4dChzdHJ1Y3QgbGlzdF9o ZWFkCSpsaXN0KQogewogCXJldHVybiBsaXN0LT5uZXh0OwogfQogCi1fX2lubGluZSBzdGF0aWMg c3RydWN0IGxpc3RfaGVhZAkqZ2V0X2xpc3RfaGVhZChzdHJ1Y3QgX19xdWV1ZQkqcXVldWUpCitp bmxpbmUgc3RhdGljIHN0cnVjdCBsaXN0X2hlYWQJKmdldF9saXN0X2hlYWQoc3RydWN0IF9fcXVl dWUJKnF1ZXVlKQogewogCXJldHVybiAoJihxdWV1ZS0+cXVldWUpKTsKIH0KQEAgLTgwLDI4ICs4 MCwyOCBAQCBfX2lubGluZSBzdGF0aWMgc3RydWN0IGxpc3RfaGVhZAkqZ2V0X2xpc3RfaGVhZChz dHJ1Y3QgX19xdWV1ZQkqcXVldWUpCiAjZGVmaW5lIExJU1RfQ09OVEFJTk9SKHB0ciwgdHlwZSwg bWVtYmVyKSBcCiAJY29udGFpbmVyX29mKHB0ciwgdHlwZSwgbWVtYmVyKQogCi1fX2lubGluZSBz dGF0aWMgdm9pZCBfc2V0X3RpbWVyKF90aW1lciAqcHRpbWVyLCB1MzIgZGVsYXlfdGltZSkKK2lu bGluZSBzdGF0aWMgdm9pZCBfc2V0X3RpbWVyKF90aW1lciAqcHRpbWVyLCB1MzIgZGVsYXlfdGlt ZSkKIHsKIAltb2RfdGltZXIocHRpbWVyICwgKGppZmZpZXMrKGRlbGF5X3RpbWUqSFovMTAwMCkp KTsKIH0KIAotX19pbmxpbmUgc3RhdGljIHZvaWQgX2NhbmNlbF90aW1lcihfdGltZXIgKnB0aW1l ciwgdTggKmJjYW5jZWxsZWQpCitpbmxpbmUgc3RhdGljIHZvaWQgX2NhbmNlbF90aW1lcihfdGlt ZXIgKnB0aW1lciwgdTggKmJjYW5jZWxsZWQpCiB7CiAJZGVsX3RpbWVyX3N5bmMocHRpbWVyKTsK IAkqYmNhbmNlbGxlZCA9ICB0cnVlOy8qIHRydWUgPT0gMTsgZmFsc2UgPT0gMCAqLwogfQogCi1f X2lubGluZSBzdGF0aWMgdm9pZCBfaW5pdF93b3JraXRlbShfd29ya2l0ZW0gKnB3b3JrLCB2b2lk ICpwZnVuYywgdm9pZCAqY250eCkKK2lubGluZSBzdGF0aWMgdm9pZCBfaW5pdF93b3JraXRlbShf d29ya2l0ZW0gKnB3b3JrLCB2b2lkICpwZnVuYywgdm9pZCAqY250eCkKIHsKIAlJTklUX1dPUkso cHdvcmssIHBmdW5jKTsKIH0KIAotX19pbmxpbmUgc3RhdGljIHZvaWQgX3NldF93b3JraXRlbShf d29ya2l0ZW0gKnB3b3JrKQoraW5saW5lIHN0YXRpYyB2b2lkIF9zZXRfd29ya2l0ZW0oX3dvcmtp dGVtICpwd29yaykKIHsKIAlzY2hlZHVsZV93b3JrKHB3b3JrKTsKIH0KIAotX19pbmxpbmUgc3Rh dGljIHZvaWQgX2NhbmNlbF93b3JraXRlbV9zeW5jKF93b3JraXRlbSAqcHdvcmspCitpbmxpbmUg c3RhdGljIHZvaWQgX2NhbmNlbF93b3JraXRlbV9zeW5jKF93b3JraXRlbSAqcHdvcmspCiB7CiAJ Y2FuY2VsX3dvcmtfc3luYyhwd29yayk7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcv cnRsODcyM2JzL2luY2x1ZGUvcnR3X21sbWUuaCBiL2RyaXZlcnMvc3RhZ2luZy9ydGw4NzIzYnMv aW5jbHVkZS9ydHdfbWxtZS5oCmluZGV4IDFlYTllYTBlOGQyZS4uODA4ODJhMDViNmZiIDEwMDY0 NAotLS0gYS9kcml2ZXJzL3N0YWdpbmcvcnRsODcyM2JzL2luY2x1ZGUvcnR3X21sbWUuaAorKysg Yi9kcml2ZXJzL3N0YWdpbmcvcnRsODcyM2JzL2luY2x1ZGUvcnR3X21sbWUuaApAQCAtNTI1LDEz ICs1MjUsMTMgQEAgZXh0ZXJuIHNpbnQgcnR3X3NlbGVjdF9hbmRfam9pbl9mcm9tX3NjYW5uZWRf cXVldWUoc3RydWN0IG1sbWVfcHJpdiAqcG1sbWVwcml2KTsKIGV4dGVybiBzaW50IHJ0d19zZXRf a2V5KHN0cnVjdCBhZGFwdGVyICphZGFwdGVyLCBzdHJ1Y3Qgc2VjdXJpdHlfcHJpdiAqcHNlY3Vy aXR5cHJpdiwgc2ludCBrZXlpZCwgdTggc2V0X3R4LCBib29sIGVucXVldWUpOwogZXh0ZXJuIHNp bnQgcnR3X3NldF9hdXRoKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyLCBzdHJ1Y3Qgc2VjdXJpdHlf cHJpdiAqcHNlY3VyaXR5cHJpdik7CiAKLV9faW5saW5lIHN0YXRpYyB1OCAqZ2V0X2Jzc2lkKHN0 cnVjdCBtbG1lX3ByaXYgKnBtbG1lcHJpdikKK2lubGluZSBzdGF0aWMgdTggKmdldF9ic3NpZChz dHJ1Y3QgbWxtZV9wcml2ICpwbWxtZXByaXYpCiB7CS8qIGlmIHN0YV9tb2RlOnBtbG1lcHJpdi0+ Y3VyX25ldHdvcmsubmV0d29yay5NYWNBZGRyZXNzID0+IGJzc2lkICovCiAJLyogIGlmIGFkaG9j X21vZGU6cG1sbWVwcml2LT5jdXJfbmV0d29yay5uZXR3b3JrLk1hY0FkZHJlc3MgPT4gaWJzcyBt YWMgYWRkcmVzcyAqLwogCXJldHVybiBwbWxtZXByaXYtPmN1cl9uZXR3b3JrLm5ldHdvcmsuTWFj QWRkcmVzczsKIH0KIAotX19pbmxpbmUgc3RhdGljIHNpbnQgY2hlY2tfZndzdGF0ZShzdHJ1Y3Qg bWxtZV9wcml2ICpwbWxtZXByaXYsIHNpbnQgc3RhdGUpCitpbmxpbmUgc3RhdGljIHNpbnQgY2hl Y2tfZndzdGF0ZShzdHJ1Y3QgbWxtZV9wcml2ICpwbWxtZXByaXYsIHNpbnQgc3RhdGUpCiB7CiAJ aWYgKHBtbG1lcHJpdi0+Zndfc3RhdGUgJiBzdGF0ZSkKIAkJcmV0dXJuIHRydWU7CkBAIC01Mzks NyArNTM5LDcgQEAgX19pbmxpbmUgc3RhdGljIHNpbnQgY2hlY2tfZndzdGF0ZShzdHJ1Y3QgbWxt ZV9wcml2ICpwbWxtZXByaXYsIHNpbnQgc3RhdGUpCiAJcmV0dXJuIGZhbHNlOwogfQogCi1fX2lu bGluZSBzdGF0aWMgc2ludCBnZXRfZndzdGF0ZShzdHJ1Y3QgbWxtZV9wcml2ICpwbWxtZXByaXYp CitpbmxpbmUgc3RhdGljIHNpbnQgZ2V0X2Z3c3RhdGUoc3RydWN0IG1sbWVfcHJpdiAqcG1sbWVw cml2KQogewogCXJldHVybiBwbWxtZXByaXYtPmZ3X3N0YXRlOwogfQpAQCAtNTUxLDcgKzU1MSw3 IEBAIF9faW5saW5lIHN0YXRpYyBzaW50IGdldF9md3N0YXRlKHN0cnVjdCBtbG1lX3ByaXYgKnBt bG1lcHJpdikKICAqICMjIyBOT1RFOiMjIyMgKCEhISEpCiAgKiBNVVNUIFRBS0UgQ0FSRSBUSEFU IEJFRk9SRSBDQUxMSU5HIFRISVMgRlVOQywgWU9VIFNIT1VMRCBIQVZFIExPQ0tFRCBwbWxtZXBy aXYtPmxvY2sKICAqLwotX19pbmxpbmUgc3RhdGljIHZvaWQgc2V0X2Z3c3RhdGUoc3RydWN0IG1s bWVfcHJpdiAqcG1sbWVwcml2LCBzaW50IHN0YXRlKQoraW5saW5lIHN0YXRpYyB2b2lkIHNldF9m d3N0YXRlKHN0cnVjdCBtbG1lX3ByaXYgKnBtbG1lcHJpdiwgc2ludCBzdGF0ZSkKIHsKIAlwbWxt ZXByaXYtPmZ3X3N0YXRlIHw9IHN0YXRlOwogCS8qIEZPUiBIVyBpbnRlZ3JhdGlvbiAqLwpAQCAt NTYwLDcgKzU2MCw3IEBAIF9faW5saW5lIHN0YXRpYyB2b2lkIHNldF9md3N0YXRlKHN0cnVjdCBt bG1lX3ByaXYgKnBtbG1lcHJpdiwgc2ludCBzdGF0ZSkKIAl9CiB9CiAKLV9faW5saW5lIHN0YXRp YyB2b2lkIF9jbHJfZndzdGF0ZV8oc3RydWN0IG1sbWVfcHJpdiAqcG1sbWVwcml2LCBzaW50IHN0 YXRlKQoraW5saW5lIHN0YXRpYyB2b2lkIF9jbHJfZndzdGF0ZV8oc3RydWN0IG1sbWVfcHJpdiAq cG1sbWVwcml2LCBzaW50IHN0YXRlKQogewogCXBtbG1lcHJpdi0+Zndfc3RhdGUgJj0gfnN0YXRl OwogCS8qIEZPUiBIVyBpbnRlZ3JhdGlvbiAqLwpAQCAtNTczLDcgKzU3Myw3IEBAIF9faW5saW5l IHN0YXRpYyB2b2lkIF9jbHJfZndzdGF0ZV8oc3RydWN0IG1sbWVfcHJpdiAqcG1sbWVwcml2LCBz aW50IHN0YXRlKQogICogTm8gTGltaXQgb24gdGhlIGNhbGxpbmcgY29udGV4dCwKICAqIHRoZXJl Zm9yZSBzZXQgaXQgdG8gYmUgdGhlIGNyaXRpY2FsIHNlY3Rpb24uLi4KICAqLwotX19pbmxpbmUg c3RhdGljIHZvaWQgY2xyX2Z3c3RhdGUoc3RydWN0IG1sbWVfcHJpdiAqcG1sbWVwcml2LCBzaW50 IHN0YXRlKQoraW5saW5lIHN0YXRpYyB2b2lkIGNscl9md3N0YXRlKHN0cnVjdCBtbG1lX3ByaXYg KnBtbG1lcHJpdiwgc2ludCBzdGF0ZSkKIHsKIAlzcGluX2xvY2tfYmgoJnBtbG1lcHJpdi0+bG9j ayk7CiAJaWYgKGNoZWNrX2Z3c3RhdGUocG1sbWVwcml2LCBzdGF0ZSkgPT0gdHJ1ZSkKQEAgLTU4 MSw3ICs1ODEsNyBAQCBfX2lubGluZSBzdGF0aWMgdm9pZCBjbHJfZndzdGF0ZShzdHJ1Y3QgbWxt ZV9wcml2ICpwbWxtZXByaXYsIHNpbnQgc3RhdGUpCiAJc3Bpbl91bmxvY2tfYmgoJnBtbG1lcHJp di0+bG9jayk7CiB9CiAKLV9faW5saW5lIHN0YXRpYyB2b2lkIHNldF9zY2FubmVkX25ldHdvcmtf dmFsKHN0cnVjdCBtbG1lX3ByaXYgKnBtbG1lcHJpdiwgc2ludCB2YWwpCitpbmxpbmUgc3RhdGlj IHZvaWQgc2V0X3NjYW5uZWRfbmV0d29ya192YWwoc3RydWN0IG1sbWVfcHJpdiAqcG1sbWVwcml2 LCBzaW50IHZhbCkKIHsKIAlzcGluX2xvY2tfYmgoJnBtbG1lcHJpdi0+bG9jayk7CiAJcG1sbWVw cml2LT5udW1fb2Zfc2Nhbm5lZCA9IHZhbDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy9y dGw4NzIzYnMvaW5jbHVkZS9ydHdfcmVjdi5oIGIvZHJpdmVycy9zdGFnaW5nL3J0bDg3MjNicy9p bmNsdWRlL3J0d19yZWN2LmgKaW5kZXggMWY1M2MxYzdiMGRhLi5jYTE0NTMyZGYwOWYgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy9ydGw4NzIzYnMvaW5jbHVkZS9ydHdfcmVjdi5oCisrKyBi L2RyaXZlcnMvc3RhZ2luZy9ydGw4NzIzYnMvaW5jbHVkZS9ydHdfcmVjdi5oCkBAIC00MDUsNyAr NDA1LDcgQEAgc3RydWN0IHJlY3ZfYnVmICpydHdfZGVxdWV1ZV9yZWN2YnVmIChzdHJ1Y3QgX19x dWV1ZSAqcXVldWUpOwogCiB2b2lkIHJ0d19yZW9yZGVyaW5nX2N0cmxfdGltZW91dF9oYW5kbGVy KHN0cnVjdCB0aW1lcl9saXN0ICp0KTsKIAotX19pbmxpbmUgc3RhdGljIHU4ICpnZXRfcnhtZW0o dW5pb24gcmVjdl9mcmFtZSAqcHJlY3ZmcmFtZSkKK2lubGluZSBzdGF0aWMgdTggKmdldF9yeG1l bSh1bmlvbiByZWN2X2ZyYW1lICpwcmVjdmZyYW1lKQogewogCS8qIGFsd2F5cyByZXR1cm4gcnhf aGVhZC4uLiAqLwogCWlmIChwcmVjdmZyYW1lID09IE5VTEwpCkBAIC00MTQsNyArNDE0LDcgQEAg X19pbmxpbmUgc3RhdGljIHU4ICpnZXRfcnhtZW0odW5pb24gcmVjdl9mcmFtZSAqcHJlY3ZmcmFt ZSkKIAlyZXR1cm4gcHJlY3ZmcmFtZS0+dS5oZHIucnhfaGVhZDsKIH0KIAotX19pbmxpbmUgc3Rh dGljIHU4ICpnZXRfcmVjdmZyYW1lX2RhdGEodW5pb24gcmVjdl9mcmFtZSAqcHJlY3ZmcmFtZSkK K2lubGluZSBzdGF0aWMgdTggKmdldF9yZWN2ZnJhbWVfZGF0YSh1bmlvbiByZWN2X2ZyYW1lICpw cmVjdmZyYW1lKQogewogCiAJLyogYWx3YXN5IHJldHVybiByeF9kYXRhICovCkBAIC00MjUsNyAr NDI1LDcgQEAgX19pbmxpbmUgc3RhdGljIHU4ICpnZXRfcmVjdmZyYW1lX2RhdGEodW5pb24gcmVj dl9mcmFtZSAqcHJlY3ZmcmFtZSkKIAogfQogCi1fX2lubGluZSBzdGF0aWMgdTggKnJlY3ZmcmFt ZV9wdWxsKHVuaW9uIHJlY3ZfZnJhbWUgKnByZWN2ZnJhbWUsIHNpbnQgc3opCitpbmxpbmUgc3Rh dGljIHU4ICpyZWN2ZnJhbWVfcHVsbCh1bmlvbiByZWN2X2ZyYW1lICpwcmVjdmZyYW1lLCBzaW50 IHN6KQogewogCS8qICByeF9kYXRhICs9IHN6OyBtb3ZlIHJ4X2RhdGEgc3ogYnl0ZXMgIGhlcmVh ZnRlciAqLwogCkBAIC00NTAsNyArNDUwLDcgQEAgX19pbmxpbmUgc3RhdGljIHU4ICpyZWN2ZnJh bWVfcHVsbCh1bmlvbiByZWN2X2ZyYW1lICpwcmVjdmZyYW1lLCBzaW50IHN6KQogCiB9CiAKLV9f aW5saW5lIHN0YXRpYyB1OCAqcmVjdmZyYW1lX3B1dCh1bmlvbiByZWN2X2ZyYW1lICpwcmVjdmZy YW1lLCBzaW50IHN6KQoraW5saW5lIHN0YXRpYyB1OCAqcmVjdmZyYW1lX3B1dCh1bmlvbiByZWN2 X2ZyYW1lICpwcmVjdmZyYW1lLCBzaW50IHN6KQogewogCS8qICByeF90YWkgKz0gc3o7IG1vdmUg cnhfdGFpbCBzeiBieXRlcyAgaGVyZWFmdGVyICovCiAKQEAgLTQ3OSw3ICs0NzksNyBAQCBfX2lu bGluZSBzdGF0aWMgdTggKnJlY3ZmcmFtZV9wdXQodW5pb24gcmVjdl9mcmFtZSAqcHJlY3ZmcmFt ZSwgc2ludCBzeikKIAogCiAKLV9faW5saW5lIHN0YXRpYyB1OCAqcmVjdmZyYW1lX3B1bGxfdGFp bCh1bmlvbiByZWN2X2ZyYW1lICpwcmVjdmZyYW1lLCBzaW50IHN6KQoraW5saW5lIHN0YXRpYyB1 OCAqcmVjdmZyYW1lX3B1bGxfdGFpbCh1bmlvbiByZWN2X2ZyYW1lICpwcmVjdmZyYW1lLCBzaW50 IHN6KQogewogCS8qICBybXYgZGF0YSBmcm9tIHJ4X3RhaWwgKGJ5IHlpdHNlbikgKi8KIApAQCAt NTAzLDcgKzUwMyw3IEBAIF9faW5saW5lIHN0YXRpYyB1OCAqcmVjdmZyYW1lX3B1bGxfdGFpbCh1 bmlvbiByZWN2X2ZyYW1lICpwcmVjdmZyYW1lLCBzaW50IHN6KQogCiB9CiAKLV9faW5saW5lIHN0 YXRpYyB1bmlvbiByZWN2X2ZyYW1lICpyeG1lbV90b19yZWN2ZnJhbWUodTggKnJ4bWVtKQoraW5s aW5lIHN0YXRpYyB1bmlvbiByZWN2X2ZyYW1lICpyeG1lbV90b19yZWN2ZnJhbWUodTggKnJ4bWVt KQogewogCS8qIGR1ZSB0byB0aGUgZGVzaWduIG9mIDIwNDggYnl0ZXMgYWxpZ25tZW50IG9mIHJl Y3ZfZnJhbWUsIHdlIGNhbiByZWZlcmVuY2UgdGhlIHVuaW9uIHJlY3ZfZnJhbWUgKi8KIAkvKiBm cm9tIGFueSBnaXZlbiBtZW1iZXIgb2YgcmVjdl9mcmFtZS4gKi8KQEAgLTUxMywxMyArNTEzLDEz IEBAIF9faW5saW5lIHN0YXRpYyB1bmlvbiByZWN2X2ZyYW1lICpyeG1lbV90b19yZWN2ZnJhbWUo dTggKnJ4bWVtKQogCiB9CiAKLV9faW5saW5lIHN0YXRpYyBzaW50IGdldF9yZWN2ZnJhbWVfbGVu KHVuaW9uIHJlY3ZfZnJhbWUgKnByZWN2ZnJhbWUpCitpbmxpbmUgc3RhdGljIHNpbnQgZ2V0X3Jl Y3ZmcmFtZV9sZW4odW5pb24gcmVjdl9mcmFtZSAqcHJlY3ZmcmFtZSkKIHsKIAlyZXR1cm4gcHJl Y3ZmcmFtZS0+dS5oZHIubGVuOwogfQogCiAKLV9faW5saW5lIHN0YXRpYyBzMzIgdHJhbnNsYXRl X3BlcmNlbnRhZ2VfdG9fZGJtKHUzMiBTaWduYWxTdHJlbmd0aEluZGV4KQoraW5saW5lIHN0YXRp YyBzMzIgdHJhbnNsYXRlX3BlcmNlbnRhZ2VfdG9fZGJtKHUzMiBTaWduYWxTdHJlbmd0aEluZGV4 KQogewogCXMzMglTaWduYWxQb3dlcjsgLyogIGluIGRCbS4gKi8KIApkaWZmIC0tZ2l0IGEvZHJp dmVycy9zdGFnaW5nL3J0bDg3MjNicy9pbmNsdWRlL3N0YV9pbmZvLmggYi9kcml2ZXJzL3N0YWdp bmcvcnRsODcyM2JzL2luY2x1ZGUvc3RhX2luZm8uaAppbmRleCBiOWRmNDJkMDY3N2UuLmE0ODE3 ZWE5ZTRhMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5nL3J0bDg3MjNicy9pbmNsdWRlL3N0 YV9pbmZvLmgKKysrIGIvZHJpdmVycy9zdGFnaW5nL3J0bDg3MjNicy9pbmNsdWRlL3N0YV9pbmZv LmgKQEAgLTM0OCw3ICszNDgsNyBAQCBzdHJ1Y3QJc3RhX3ByaXYgewogfTsKIAogCi1fX2lubGlu ZSBzdGF0aWMgdTMyIHdpZmlfbWFjX2hhc2godTggKm1hYykKK2lubGluZSBzdGF0aWMgdTMyIHdp ZmlfbWFjX2hhc2godTggKm1hYykKIHsKICAgICAgICAgdTMyIHg7CiAKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvc3RhZ2luZy9ydGw4NzIzYnMvaW5jbHVkZS93aWZpLmggYi9kcml2ZXJzL3N0YWdpbmcv cnRsODcyM2JzL2luY2x1ZGUvd2lmaS5oCmluZGV4IDU1OWJmMjYwNmZiNy4uNzRkNWNmNDQyMzU0 IDEwMDY0NAotLS0gYS9kcml2ZXJzL3N0YWdpbmcvcnRsODcyM2JzL2luY2x1ZGUvd2lmaS5oCisr KyBiL2RyaXZlcnMvc3RhZ2luZy9ydGw4NzIzYnMvaW5jbHVkZS93aWZpLmgKQEAgLTM0Nyw3ICsz NDcsNyBAQCBlbnVtIFdJRklfUkVHX0RPTUFJTiB7CiAJKGFkZHJbNF0gPT0gMHhmZikgJiYgKGFk ZHJbNV0gPT0gMHhmZikpICA/IHRydWUgOiBmYWxzZSBcCiApCiAKLV9faW5saW5lIHN0YXRpYyBp bnQgSVNfTUNBU1QodW5zaWduZWQgY2hhciAqZGEpCitpbmxpbmUgc3RhdGljIGludCBJU19NQ0FT VCh1bnNpZ25lZCBjaGFyICpkYSkKIHsKIAlpZiAoKCpkYSkgJiAweDAxKQogCQlyZXR1cm4gdHJ1 ZTsKQEAgLTM1NSwyMCArMzU1LDIwIEBAIF9faW5saW5lIHN0YXRpYyBpbnQgSVNfTUNBU1QodW5z aWduZWQgY2hhciAqZGEpCiAJCXJldHVybiBmYWxzZTsKIH0KIAotX19pbmxpbmUgc3RhdGljIHVu c2lnbmVkIGNoYXIgKiBnZXRfcmEodW5zaWduZWQgY2hhciAqcGZyYW1lKQoraW5saW5lIHN0YXRp YyB1bnNpZ25lZCBjaGFyICogZ2V0X3JhKHVuc2lnbmVkIGNoYXIgKnBmcmFtZSkKIHsKIAl1bnNp Z25lZCBjaGFyICpyYTsKIAlyYSA9IEdldEFkZHIxUHRyKHBmcmFtZSk7CiAJcmV0dXJuIHJhOwog fQotX19pbmxpbmUgc3RhdGljIHVuc2lnbmVkIGNoYXIgKiBnZXRfdGEodW5zaWduZWQgY2hhciAq cGZyYW1lKQoraW5saW5lIHN0YXRpYyB1bnNpZ25lZCBjaGFyICogZ2V0X3RhKHVuc2lnbmVkIGNo YXIgKnBmcmFtZSkKIHsKIAl1bnNpZ25lZCBjaGFyICp0YTsKIAl0YSA9IEdldEFkZHIyUHRyKHBm cmFtZSk7CiAJcmV0dXJuIHRhOwogfQogCi1fX2lubGluZSBzdGF0aWMgdW5zaWduZWQgY2hhciAq IGdldF9kYSh1bnNpZ25lZCBjaGFyICpwZnJhbWUpCitpbmxpbmUgc3RhdGljIHVuc2lnbmVkIGNo YXIgKiBnZXRfZGEodW5zaWduZWQgY2hhciAqcGZyYW1lKQogewogCXVuc2lnbmVkIGNoYXIgKmRh OwogCXVuc2lnbmVkIGludAl0b19mcl9kcwk9IChHZXRUb0RzKHBmcmFtZSkgPDwgMSkgfCBHZXRG ckRzKHBmcmFtZSk7CkBAIC0zOTIsNyArMzkyLDcgQEAgX19pbmxpbmUgc3RhdGljIHVuc2lnbmVk IGNoYXIgKiBnZXRfZGEodW5zaWduZWQgY2hhciAqcGZyYW1lKQogfQogCiAKLV9faW5saW5lIHN0 YXRpYyB1bnNpZ25lZCBjaGFyICogZ2V0X3NhKHVuc2lnbmVkIGNoYXIgKnBmcmFtZSkKK2lubGlu ZSBzdGF0aWMgdW5zaWduZWQgY2hhciAqIGdldF9zYSh1bnNpZ25lZCBjaGFyICpwZnJhbWUpCiB7 CiAJdW5zaWduZWQgY2hhciAqc2E7CiAJdW5zaWduZWQgaW50CXRvX2ZyX2RzCT0gKEdldFRvRHMo cGZyYW1lKSA8PCAxKSB8IEdldEZyRHMocGZyYW1lKTsKQEAgLTQxNSw3ICs0MTUsNyBAQCBfX2lu bGluZSBzdGF0aWMgdW5zaWduZWQgY2hhciAqIGdldF9zYSh1bnNpZ25lZCBjaGFyICpwZnJhbWUp CiAJcmV0dXJuIHNhOwogfQogCi1fX2lubGluZSBzdGF0aWMgdW5zaWduZWQgY2hhciAqIGdldF9o ZHJfYnNzaWQodW5zaWduZWQgY2hhciAqcGZyYW1lKQoraW5saW5lIHN0YXRpYyB1bnNpZ25lZCBj aGFyICogZ2V0X2hkcl9ic3NpZCh1bnNpZ25lZCBjaGFyICpwZnJhbWUpCiB7CiAJdW5zaWduZWQg Y2hhciAqc2EgPSBOVUxMOwogCXVuc2lnbmVkIGludAl0b19mcl9kcwk9IChHZXRUb0RzKHBmcmFt ZSkgPDwgMSkgfCBHZXRGckRzKHBmcmFtZSk7CkBAIC00MzksNyArNDM5LDcgQEAgX19pbmxpbmUg c3RhdGljIHVuc2lnbmVkIGNoYXIgKiBnZXRfaGRyX2Jzc2lkKHVuc2lnbmVkIGNoYXIgKnBmcmFt ZSkKIH0KIAogCi1fX2lubGluZSBzdGF0aWMgaW50IElzRnJhbWVUeXBlQ3RybCh1bnNpZ25lZCBj aGFyICpwZnJhbWUpCitpbmxpbmUgc3RhdGljIGludCBJc0ZyYW1lVHlwZUN0cmwodW5zaWduZWQg Y2hhciAqcGZyYW1lKQogewogCWlmIChXSUZJX0NUUkxfVFlQRSA9PSBHZXRGcmFtZVR5cGUocGZy YW1lKSkKIAkJcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvcnRsODcy M2JzL2luY2x1ZGUvd2xhbl9ic3NkZWYuaCBiL2RyaXZlcnMvc3RhZ2luZy9ydGw4NzIzYnMvaW5j bHVkZS93bGFuX2Jzc2RlZi5oCmluZGV4IGJkYjE0YTg0ZTVhNS4uOTRjYjMyNDhiYzcxIDEwMDY0 NAotLS0gYS9kcml2ZXJzL3N0YWdpbmcvcnRsODcyM2JzL2luY2x1ZGUvd2xhbl9ic3NkZWYuaAor KysgYi9kcml2ZXJzL3N0YWdpbmcvcnRsODcyM2JzL2luY2x1ZGUvd2xhbl9ic3NkZWYuaApAQCAt MjIzLDcgKzIyMyw3IEBAIHN0cnVjdCB3bGFuX2Jzc2lkX2V4IHsKIAl1OCAgSUVzW01BWF9JRV9T Wl07CS8qIHRpbWVzdGFtcCwgYmVhY29uIGludGVydmFsLCBhbmQgY2FwYWJpbGl0eSBpbmZvcm1h dGlvbikgKi8KIH0gX19wYWNrZWQ7CiAKLV9faW5saW5lICBzdGF0aWMgdWludCBnZXRfd2xhbl9i c3NpZF9leF9zeihzdHJ1Y3Qgd2xhbl9ic3NpZF9leCAqYnNzKQoraW5saW5lICBzdGF0aWMgdWlu dCBnZXRfd2xhbl9ic3NpZF9leF9zeihzdHJ1Y3Qgd2xhbl9ic3NpZF9leCAqYnNzKQogewogCXJl dHVybiAoc2l6ZW9mKHN0cnVjdCB3bGFuX2Jzc2lkX2V4KSAtIE1BWF9JRV9TWiArIGJzcy0+SUVM ZW5ndGgpOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy90dHkvYW1pc2VyaWFsLmMgYi9kcml2ZXJz L3R0eS9hbWlzZXJpYWwuYwppbmRleCAzNGRlYWQ2MTQxNDkuLmMxYmQ5Yjc0ZjRkNSAxMDA2NDQK LS0tIGEvZHJpdmVycy90dHkvYW1pc2VyaWFsLmMKKysrIGIvZHJpdmVycy90dHkvYW1pc2VyaWFs LmMKQEAgLTE3MSw3ICsxNzEsNyBAQCBzdGF0aWMgaW5saW5lIGludCBzZXJpYWxfcGFyYW5vaWFf Y2hlY2soc3RydWN0IHNlcmlhbF9zdGF0ZSAqaW5mbywKICNkZWZpbmUgU0VSX0NUUyAgICAgKDE8 PDQpCiAjZGVmaW5lIFNFUl9EU1IgICAgICgxPDwzKQogCi1zdGF0aWMgX19pbmxpbmVfXyB2b2lk IHJ0c2R0cl9jdHJsKGludCBiaXRzKQorc3RhdGljIGlubGluZSB2b2lkIHJ0c2R0cl9jdHJsKGlu dCBiaXRzKQogewogICAgIGNpYWIucHJhID0gKChiaXRzICYgKFNFUl9SVFMgfCBTRVJfRFRSKSkg XiAoU0VSX1JUUyB8IFNFUl9EVFIpKSB8IChjaWFiLnByYSAmIH4oU0VSX1JUUyB8IFNFUl9EVFIp KTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdHR5L3NlcmlhbC9pcDIyemlsb2cuYyBiL2RyaXZl cnMvdHR5L3NlcmlhbC9pcDIyemlsb2cuYwppbmRleCA4YzgxMDczM2RmM2QuLjhjY2Y4YjdlZThi YiAxMDA2NDQKLS0tIGEvZHJpdmVycy90dHkvc2VyaWFsL2lwMjJ6aWxvZy5jCisrKyBiL2RyaXZl cnMvdHR5L3NlcmlhbC9pcDIyemlsb2cuYwpAQCAtNDkwLDcgKzQ5MCw3IEBAIHN0YXRpYyBpcnFy ZXR1cm5fdCBpcDIyemlsb2dfaW50ZXJydXB0KGludCBpcnEsIHZvaWQgKmRldl9pZCkKIC8qIEEg Y29udmVuaWVudCB3YXkgdG8gcXVpY2tseSBnZXQgUjAgc3RhdHVzLiAgVGhlIGNhbGxlciBtdXN0 IF9ub3RfIGhvbGQgdGhlCiAgKiBwb3J0IGxvY2ssIGl0IGlzIGFjcXVpcmVkIGhlcmUuCiAgKi8K LXN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGNoYXIgaXAyMnppbG9nX3JlYWRfY2hhbm5lbF9z dGF0dXMoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgY2hh ciBpcDIyemlsb2dfcmVhZF9jaGFubmVsX3N0YXR1cyhzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQog ewogCXN0cnVjdCB6aWxvZ19jaGFubmVsICpjaGFubmVsOwogCXVuc2lnbmVkIGNoYXIgc3RhdHVz OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy90dHkvc2VyaWFsL3N1bnNhYi5jIGIvZHJpdmVycy90dHkv c2VyaWFsL3N1bnNhYi5jCmluZGV4IDcyMTMxYjVlMTMyZS4uZWM2Mjg0M2EzOWY0IDEwMDY0NAot LS0gYS9kcml2ZXJzL3R0eS9zZXJpYWwvc3Vuc2FiLmMKKysrIGIvZHJpdmVycy90dHkvc2VyaWFs L3N1bnNhYi5jCkBAIC05Miw3ICs5Miw3IEBAIHN0YXRpYyBjaGFyICpzYWI4MjUzMl92ZXJzaW9u WzE2XSA9IHsKICNkZWZpbmUgU0FCODI1MzJfUkVDVl9GSUZPX1NJWkUJMzIgICAgICAvKiBTdGFu ZGFyZCBhc3luYyBmaWZvIHNpemVzICovCiAjZGVmaW5lIFNBQjgyNTMyX1hNSVRfRklGT19TSVpF CTMyCiAKLXN0YXRpYyBfX2lubGluZV9fIHZvaWQgc3Vuc2FiX3RlY193YWl0KHN0cnVjdCB1YXJ0 X3N1bnNhYl9wb3J0ICp1cCkKK3N0YXRpYyBpbmxpbmUgdm9pZCBzdW5zYWJfdGVjX3dhaXQoc3Ry dWN0IHVhcnRfc3Vuc2FiX3BvcnQgKnVwKQogewogCWludCB0aW1lb3V0ID0gdXAtPnRlY190aW1l b3V0OwogCkBAIC0xMDAsNyArMTAwLDcgQEAgc3RhdGljIF9faW5saW5lX18gdm9pZCBzdW5zYWJf dGVjX3dhaXQoc3RydWN0IHVhcnRfc3Vuc2FiX3BvcnQgKnVwKQogCQl1ZGVsYXkoMSk7CiB9CiAK LXN0YXRpYyBfX2lubGluZV9fIHZvaWQgc3Vuc2FiX2NlY193YWl0KHN0cnVjdCB1YXJ0X3N1bnNh Yl9wb3J0ICp1cCkKK3N0YXRpYyBpbmxpbmUgdm9pZCBzdW5zYWJfY2VjX3dhaXQoc3RydWN0IHVh cnRfc3Vuc2FiX3BvcnQgKnVwKQogewogCWludCB0aW1lb3V0ID0gdXAtPmNlY190aW1lb3V0Owog CmRpZmYgLS1naXQgYS9kcml2ZXJzL3R0eS9zZXJpYWwvc3Vuemlsb2cuYyBiL2RyaXZlcnMvdHR5 L3NlcmlhbC9zdW56aWxvZy5jCmluZGV4IGJjN2FmOGIwOGE3Mi4uNWM3ZjE2NDhmNTRkIDEwMDY0 NAotLS0gYS9kcml2ZXJzL3R0eS9zZXJpYWwvc3Vuemlsb2cuYworKysgYi9kcml2ZXJzL3R0eS9z ZXJpYWwvc3Vuemlsb2cuYwpAQCAtNTkwLDcgKzU5MCw3IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBz dW56aWxvZ19pbnRlcnJ1cHQoaW50IGlycSwgdm9pZCAqZGV2X2lkKQogLyogQSBjb252ZW5pZW50 IHdheSB0byBxdWlja2x5IGdldCBSMCBzdGF0dXMuICBUaGUgY2FsbGVyIG11c3QgX25vdF8gaG9s ZCB0aGUKICAqIHBvcnQgbG9jaywgaXQgaXMgYWNxdWlyZWQgaGVyZS4KICAqLwotc3RhdGljIF9f aW5saW5lX18gdW5zaWduZWQgY2hhciBzdW56aWxvZ19yZWFkX2NoYW5uZWxfc3RhdHVzKHN0cnVj dCB1YXJ0X3BvcnQgKnBvcnQpCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGNoYXIgc3Vuemlsb2df cmVhZF9jaGFubmVsX3N0YXR1cyhzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQogewogCXN0cnVjdCB6 aWxvZ19jaGFubmVsIF9faW9tZW0gKmNoYW5uZWw7CiAJdW5zaWduZWQgY2hhciBzdGF0dXM7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2NvcmUvZmJjb24uYyBiL2RyaXZlcnMvdmlk ZW8vZmJkZXYvY29yZS9mYmNvbi5jCmluZGV4IDc1ZWJiYmYwYTFmYi4uNTdmNzRiZjc3MzFmIDEw MDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2NvcmUvZmJjb24uYworKysgYi9kcml2ZXJz L3ZpZGVvL2ZiZGV2L2NvcmUvZmJjb24uYwpAQCAtMTgxLDEwICsxODEsMTAgQEAgc3RhdGljIHZv aWQgZmJjb25fc2V0X3BhbGV0dGUoc3RydWN0IHZjX2RhdGEgKnZjLCBjb25zdCB1bnNpZ25lZCBj aGFyICp0YWJsZSk7CiAvKgogICogIEludGVybmFsIHJvdXRpbmVzCiAgKi8KLXN0YXRpYyBfX2lu bGluZV9fIHZvaWQgeXdyYXBfdXAoc3RydWN0IHZjX2RhdGEgKnZjLCBpbnQgY291bnQpOwotc3Rh dGljIF9faW5saW5lX18gdm9pZCB5d3JhcF9kb3duKHN0cnVjdCB2Y19kYXRhICp2YywgaW50IGNv dW50KTsKLXN0YXRpYyBfX2lubGluZV9fIHZvaWQgeXBhbl91cChzdHJ1Y3QgdmNfZGF0YSAqdmMs IGludCBjb3VudCk7Ci1zdGF0aWMgX19pbmxpbmVfXyB2b2lkIHlwYW5fZG93bihzdHJ1Y3QgdmNf ZGF0YSAqdmMsIGludCBjb3VudCk7CitzdGF0aWMgaW5saW5lIHZvaWQgeXdyYXBfdXAoc3RydWN0 IHZjX2RhdGEgKnZjLCBpbnQgY291bnQpOworc3RhdGljIGlubGluZSB2b2lkIHl3cmFwX2Rvd24o c3RydWN0IHZjX2RhdGEgKnZjLCBpbnQgY291bnQpOworc3RhdGljIGlubGluZSB2b2lkIHlwYW5f dXAoc3RydWN0IHZjX2RhdGEgKnZjLCBpbnQgY291bnQpOworc3RhdGljIGlubGluZSB2b2lkIHlw YW5fZG93bihzdHJ1Y3QgdmNfZGF0YSAqdmMsIGludCBjb3VudCk7CiBzdGF0aWMgdm9pZCBmYmNv bl9ibW92ZV9yZWMoc3RydWN0IHZjX2RhdGEgKnZjLCBzdHJ1Y3QgZGlzcGxheSAqcCwgaW50IHN5 LCBpbnQgc3gsCiAJCQkgICAgaW50IGR5LCBpbnQgZHgsIGludCBoZWlnaHQsIGludCB3aWR0aCwg dV9pbnQgeV9icmVhayk7CiBzdGF0aWMgdm9pZCBmYmNvbl9zZXRfZGlzcChzdHJ1Y3QgZmJfaW5m byAqaW5mbywgc3RydWN0IGZiX3Zhcl9zY3JlZW5pbmZvICp2YXIsCkBAIC0xNDQyLDcgKzE0NDIs NyBAQCBzdGF0aWMgdm9pZCBmYmNvbl9zZXRfZGlzcChzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgc3Ry dWN0IGZiX3Zhcl9zY3JlZW5pbmZvICp2YXIsCiAJfQogfQogCi1zdGF0aWMgX19pbmxpbmVfXyB2 b2lkIHl3cmFwX3VwKHN0cnVjdCB2Y19kYXRhICp2YywgaW50IGNvdW50KQorc3RhdGljIGlubGlu ZSB2b2lkIHl3cmFwX3VwKHN0cnVjdCB2Y19kYXRhICp2YywgaW50IGNvdW50KQogewogCXN0cnVj dCBmYl9pbmZvICppbmZvID0gcmVnaXN0ZXJlZF9mYltjb24yZmJfbWFwW3ZjLT52Y19udW1dXTsK IAlzdHJ1Y3QgZmJjb25fb3BzICpvcHMgPSBpbmZvLT5mYmNvbl9wYXI7CkBAIC0xNDYxLDcgKzE0 NjEsNyBAQCBzdGF0aWMgX19pbmxpbmVfXyB2b2lkIHl3cmFwX3VwKHN0cnVjdCB2Y19kYXRhICp2 YywgaW50IGNvdW50KQogCXNjcm9sbGJhY2tfY3VycmVudCA9IDA7CiB9CiAKLXN0YXRpYyBfX2lu bGluZV9fIHZvaWQgeXdyYXBfZG93bihzdHJ1Y3QgdmNfZGF0YSAqdmMsIGludCBjb3VudCkKK3N0 YXRpYyBpbmxpbmUgdm9pZCB5d3JhcF9kb3duKHN0cnVjdCB2Y19kYXRhICp2YywgaW50IGNvdW50 KQogewogCXN0cnVjdCBmYl9pbmZvICppbmZvID0gcmVnaXN0ZXJlZF9mYltjb24yZmJfbWFwW3Zj LT52Y19udW1dXTsKIAlzdHJ1Y3QgZmJjb25fb3BzICpvcHMgPSBpbmZvLT5mYmNvbl9wYXI7CkBA IC0xNDgwLDcgKzE0ODAsNyBAQCBzdGF0aWMgX19pbmxpbmVfXyB2b2lkIHl3cmFwX2Rvd24oc3Ry dWN0IHZjX2RhdGEgKnZjLCBpbnQgY291bnQpCiAJc2Nyb2xsYmFja19jdXJyZW50ID0gMDsKIH0K IAotc3RhdGljIF9faW5saW5lX18gdm9pZCB5cGFuX3VwKHN0cnVjdCB2Y19kYXRhICp2YywgaW50 IGNvdW50KQorc3RhdGljIGlubGluZSB2b2lkIHlwYW5fdXAoc3RydWN0IHZjX2RhdGEgKnZjLCBp bnQgY291bnQpCiB7CiAJc3RydWN0IGZiX2luZm8gKmluZm8gPSByZWdpc3RlcmVkX2ZiW2NvbjJm Yl9tYXBbdmMtPnZjX251bV1dOwogCXN0cnVjdCBkaXNwbGF5ICpwID0gJmZiX2Rpc3BsYXlbdmMt PnZjX251bV07CkBAIC0xNTA0LDcgKzE1MDQsNyBAQCBzdGF0aWMgX19pbmxpbmVfXyB2b2lkIHlw YW5fdXAoc3RydWN0IHZjX2RhdGEgKnZjLCBpbnQgY291bnQpCiAJc2Nyb2xsYmFja19jdXJyZW50 ID0gMDsKIH0KIAotc3RhdGljIF9faW5saW5lX18gdm9pZCB5cGFuX3VwX3JlZHJhdyhzdHJ1Y3Qg dmNfZGF0YSAqdmMsIGludCB0LCBpbnQgY291bnQpCitzdGF0aWMgaW5saW5lIHZvaWQgeXBhbl91 cF9yZWRyYXcoc3RydWN0IHZjX2RhdGEgKnZjLCBpbnQgdCwgaW50IGNvdW50KQogewogCXN0cnVj dCBmYl9pbmZvICppbmZvID0gcmVnaXN0ZXJlZF9mYltjb24yZmJfbWFwW3ZjLT52Y19udW1dXTsK IAlzdHJ1Y3QgZmJjb25fb3BzICpvcHMgPSBpbmZvLT5mYmNvbl9wYXI7CkBAIC0xNTI4LDcgKzE1 MjgsNyBAQCBzdGF0aWMgX19pbmxpbmVfXyB2b2lkIHlwYW5fdXBfcmVkcmF3KHN0cnVjdCB2Y19k YXRhICp2YywgaW50IHQsIGludCBjb3VudCkKIAlzY3JvbGxiYWNrX2N1cnJlbnQgPSAwOwogfQog Ci1zdGF0aWMgX19pbmxpbmVfXyB2b2lkIHlwYW5fZG93bihzdHJ1Y3QgdmNfZGF0YSAqdmMsIGlu dCBjb3VudCkKK3N0YXRpYyBpbmxpbmUgdm9pZCB5cGFuX2Rvd24oc3RydWN0IHZjX2RhdGEgKnZj LCBpbnQgY291bnQpCiB7CiAJc3RydWN0IGZiX2luZm8gKmluZm8gPSByZWdpc3RlcmVkX2ZiW2Nv bjJmYl9tYXBbdmMtPnZjX251bV1dOwogCXN0cnVjdCBkaXNwbGF5ICpwID0gJmZiX2Rpc3BsYXlb dmMtPnZjX251bV07CkBAIC0xNTUyLDcgKzE1NTIsNyBAQCBzdGF0aWMgX19pbmxpbmVfXyB2b2lk IHlwYW5fZG93bihzdHJ1Y3QgdmNfZGF0YSAqdmMsIGludCBjb3VudCkKIAlzY3JvbGxiYWNrX2N1 cnJlbnQgPSAwOwogfQogCi1zdGF0aWMgX19pbmxpbmVfXyB2b2lkIHlwYW5fZG93bl9yZWRyYXco c3RydWN0IHZjX2RhdGEgKnZjLCBpbnQgdCwgaW50IGNvdW50KQorc3RhdGljIGlubGluZSB2b2lk IHlwYW5fZG93bl9yZWRyYXcoc3RydWN0IHZjX2RhdGEgKnZjLCBpbnQgdCwgaW50IGNvdW50KQog ewogCXN0cnVjdCBmYl9pbmZvICppbmZvID0gcmVnaXN0ZXJlZF9mYltjb24yZmJfbWFwW3ZjLT52 Y19udW1dXTsKIAlzdHJ1Y3QgZmJjb25fb3BzICpvcHMgPSBpbmZvLT5mYmNvbl9wYXI7CmRpZmYg LS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2ZmYi5jIGIvZHJpdmVycy92aWRlby9mYmRldi9m ZmIuYwppbmRleCA2YjE5MTU4NzJhZjEuLmQ4NjkxMTcwN2U1NCAxMDA2NDQKLS0tIGEvZHJpdmVy cy92aWRlby9mYmRldi9mZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2ZmYi5jCkBAIC00 MTEsNyArNDExLDcgQEAgc3RhdGljIGludCBmZmJfc3luYyhzdHJ1Y3QgZmJfaW5mbyAqcCkKIAly ZXR1cm4gMDsKIH0KIAotc3RhdGljIF9faW5saW5lX18gdm9pZCBmZmJfcm9wKHN0cnVjdCBmZmJf cGFyICpwYXIsIHUzMiByb3ApCitzdGF0aWMgaW5saW5lIHZvaWQgZmZiX3JvcChzdHJ1Y3QgZmZi X3BhciAqcGFyLCB1MzIgcm9wKQogewogCWlmIChwYXItPnJvcF9jYWNoZSAhPSByb3ApIHsKIAkJ RkZCRmlmbyhwYXIsIDEpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi9pbnRlbGZi L2ludGVsZmJkcnYuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvaW50ZWxmYi9pbnRlbGZiZHJ2LmMK aW5kZXggZDc0NjNhMmE1ZDgzLi5kZTFlZTBmNTQwNmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlk ZW8vZmJkZXYvaW50ZWxmYi9pbnRlbGZiZHJ2LmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9p bnRlbGZiL2ludGVsZmJkcnYuYwpAQCAtMjcwLDcgKzI3MCw3IEBAIE1PRFVMRV9QQVJNX0RFU0Mo bW9kZSwKICNkZWZpbmUgT1BUX0lOVFZBTChvcHQsIG5hbWUpIHNpbXBsZV9zdHJ0b3VsKG9wdCAr IHN0cmxlbihuYW1lKSArIDEsIE5VTEwsIDApCiAjZGVmaW5lIE9QVF9TVFJWQUwob3B0LCBuYW1l KSAob3B0ICsgc3RybGVuKG5hbWUpKQogCi1zdGF0aWMgX19pbmxpbmVfXyBjaGFyICogZ2V0X29w dF9zdHJpbmcoY29uc3QgY2hhciAqdGhpc19vcHQsIGNvbnN0IGNoYXIgKm5hbWUpCitzdGF0aWMg aW5saW5lIGNoYXIgKiBnZXRfb3B0X3N0cmluZyhjb25zdCBjaGFyICp0aGlzX29wdCwgY29uc3Qg Y2hhciAqbmFtZSkKIHsKIAljb25zdCBjaGFyICpwOwogCWludCBpOwpAQCAtMjg4LDcgKzI4OCw3 IEBAIHN0YXRpYyBfX2lubGluZV9fIGNoYXIgKiBnZXRfb3B0X3N0cmluZyhjb25zdCBjaGFyICp0 aGlzX29wdCwgY29uc3QgY2hhciAqbmFtZSkKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgX19p bmxpbmVfXyBpbnQgZ2V0X29wdF9pbnQoY29uc3QgY2hhciAqdGhpc19vcHQsIGNvbnN0IGNoYXIg Km5hbWUsCitzdGF0aWMgaW5saW5lIGludCBnZXRfb3B0X2ludChjb25zdCBjaGFyICp0aGlzX29w dCwgY29uc3QgY2hhciAqbmFtZSwKIAkJCQkgIGludCAqcmV0KQogewogCWlmICghcmV0KQpAQCAt MzAxLDcgKzMwMSw3IEBAIHN0YXRpYyBfX2lubGluZV9fIGludCBnZXRfb3B0X2ludChjb25zdCBj aGFyICp0aGlzX29wdCwgY29uc3QgY2hhciAqbmFtZSwKIAlyZXR1cm4gMTsKIH0KIAotc3RhdGlj IF9faW5saW5lX18gaW50IGdldF9vcHRfYm9vbChjb25zdCBjaGFyICp0aGlzX29wdCwgY29uc3Qg Y2hhciAqbmFtZSwKK3N0YXRpYyBpbmxpbmUgaW50IGdldF9vcHRfYm9vbChjb25zdCBjaGFyICp0 aGlzX29wdCwgY29uc3QgY2hhciAqbmFtZSwKIAkJCQkgICBib29sICpyZXQpCiB7CiAJaWYgKCFy ZXQpCkBAIC05MDcsNyArOTA3LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxmYl9wY2lfdW5yZWdpc3Rl cihzdHJ1Y3QgcGNpX2RldiAqcGRldikKICAqICAgICAgICAgICAgICAgICAgICAgICBoZWxwZXIg ZnVuY3Rpb25zICAgICAgICAgICAgICAgICAgICAgICoKICAqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKLV9faW5saW5lX18g aW50IGludGVsZmJfdmFyX3RvX2RlcHRoKGNvbnN0IHN0cnVjdCBmYl92YXJfc2NyZWVuaW5mbyAq dmFyKQoraW5saW5lIGludCBpbnRlbGZiX3Zhcl90b19kZXB0aChjb25zdCBzdHJ1Y3QgZmJfdmFy X3NjcmVlbmluZm8gKnZhcikKIHsKIAlEQkdfTVNHKCJpbnRlbGZiX3Zhcl90b19kZXB0aDogYnBw OiAlZCwgZ3JlZW4ubGVuZ3RoIGlzICVkXG4iLAogCQl2YXItPmJpdHNfcGVyX3BpeGVsLCB2YXIt PmdyZWVuLmxlbmd0aCk7CkBAIC05MjMsNyArOTIzLDcgQEAgX19pbmxpbmVfXyBpbnQgaW50ZWxm Yl92YXJfdG9fZGVwdGgoY29uc3Qgc3RydWN0IGZiX3Zhcl9zY3JlZW5pbmZvICp2YXIpCiB9CiAK IAotc3RhdGljIF9faW5saW5lX18gaW50IHZhcl90b19yZWZyZXNoKGNvbnN0IHN0cnVjdCBmYl92 YXJfc2NyZWVuaW5mbyAqdmFyKQorc3RhdGljIGlubGluZSBpbnQgdmFyX3RvX3JlZnJlc2goY29u c3Qgc3RydWN0IGZiX3Zhcl9zY3JlZW5pbmZvICp2YXIpCiB7CiAJaW50IHh0b3QgPSB2YXItPnhy ZXMgKyB2YXItPmxlZnRfbWFyZ2luICsgdmFyLT5yaWdodF9tYXJnaW4gKwogCQkgICB2YXItPmhz eW5jX2xlbjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvaW50ZWxmYi9pbnRlbGZi aHcuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvaW50ZWxmYi9pbnRlbGZiaHcuYwppbmRleCA1N2Fm Zjc0NTBiY2UuLmJiZDI1ODMzMGYyMSAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9p bnRlbGZiL2ludGVsZmJody5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvaW50ZWxmYi9pbnRl bGZiaHcuYwpAQCAtMTAyNSw3ICsxMDI1LDcgQEAgc3RhdGljIGludCBjYWxjX3BsbF9wYXJhbXMo aW50IGluZGV4LCBpbnQgY2xvY2ssIHUzMiAqcmV0bTEsIHUzMiAqcmV0bTIsCiAJcmV0dXJuIDA7 CiB9CiAKLXN0YXRpYyBfX2lubGluZV9fIGludCBjaGVja19vdmVyZmxvdyh1MzIgdmFsdWUsIHUz MiBsaW1pdCwKK3N0YXRpYyBpbmxpbmUgaW50IGNoZWNrX292ZXJmbG93KHUzMiB2YWx1ZSwgdTMy IGxpbWl0LAogCQkJCSAgICAgY29uc3QgY2hhciAqZGVzY3JpcHRpb24pCiB7CiAJaWYgKHZhbHVl ID4gbGltaXQpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdzEvbWFzdGVycy9tYXRyb3hfdzEuYyBi L2RyaXZlcnMvdzEvbWFzdGVycy9tYXRyb3hfdzEuYwppbmRleCBkODNkN2M5OWQ4MWQuLjhiZGVl MjYxNzcwZiAxMDA2NDQKLS0tIGEvZHJpdmVycy93MS9tYXN0ZXJzL21hdHJveF93MS5jCisrKyBi L2RyaXZlcnMvdzEvbWFzdGVycy9tYXRyb3hfdzEuYwpAQCAtNzgsNyArNzgsNyBAQCBzdHJ1Y3Qg bWF0cm94X2RldmljZQogICoKICAqIFBvcnQgbWFwcGluZy4KICAqLwotc3RhdGljIF9faW5saW5l X18gdTggbWF0cm94X3cxX3JlYWRfcmVnKHN0cnVjdCBtYXRyb3hfZGV2aWNlICpkZXYsIHU4IHJl ZykKK3N0YXRpYyBpbmxpbmUgdTggbWF0cm94X3cxX3JlYWRfcmVnKHN0cnVjdCBtYXRyb3hfZGV2 aWNlICpkZXYsIHU4IHJlZykKIHsKIAl1OCByZXQ7CiAKQEAgLTg5LDcgKzg5LDcgQEAgc3RhdGlj IF9faW5saW5lX18gdTggbWF0cm94X3cxX3JlYWRfcmVnKHN0cnVjdCBtYXRyb3hfZGV2aWNlICpk ZXYsIHU4IHJlZykKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgX19pbmxpbmVfXyB2b2lkIG1h dHJveF93MV93cml0ZV9yZWcoc3RydWN0IG1hdHJveF9kZXZpY2UgKmRldiwgdTggcmVnLCB1OCB2 YWwpCitzdGF0aWMgaW5saW5lIHZvaWQgbWF0cm94X3cxX3dyaXRlX3JlZyhzdHJ1Y3QgbWF0cm94 X2RldmljZSAqZGV2LCB1OCByZWcsIHU4IHZhbCkKIHsKIAl3cml0ZWIocmVnLCBkZXYtPnBvcnRf aW5kZXgpOwogCXdyaXRlYih2YWwsIGRldi0+cG9ydF9kYXRhKTsKZGlmZiAtLWdpdCBhL2ZzL2Nv ZGEvY29kYV9saW51eC5oIGIvZnMvY29kYS9jb2RhX2xpbnV4LmgKaW5kZXggMTI2MTU1Y2FkZmE5 Li41ZjMyNGJiMGJkMTMgMTAwNjQ0Ci0tLSBhL2ZzL2NvZGEvY29kYV9saW51eC5oCisrKyBiL2Zz L2NvZGEvY29kYV9saW51eC5oCkBAIC04MiwxOCArODIsMTggQEAgc3RhdGljIGlubGluZSBzdHJ1 Y3QgY29kYV9pbm9kZV9pbmZvICpJVE9DKHN0cnVjdCBpbm9kZSAqaW5vZGUpCiAJcmV0dXJuIGNv bnRhaW5lcl9vZihpbm9kZSwgc3RydWN0IGNvZGFfaW5vZGVfaW5mbywgdmZzX2lub2RlKTsKIH0K IAotc3RhdGljIF9faW5saW5lX18gc3RydWN0IENvZGFGaWQgKmNvZGFfaTJmKHN0cnVjdCBpbm9k ZSAqaW5vZGUpCitzdGF0aWMgaW5saW5lIHN0cnVjdCBDb2RhRmlkICpjb2RhX2kyZihzdHJ1Y3Qg aW5vZGUgKmlub2RlKQogewogCXJldHVybiAmKElUT0MoaW5vZGUpLT5jX2ZpZCk7CiB9CiAKLXN0 YXRpYyBfX2lubGluZV9fIGNoYXIgKmNvZGFfaTJzKHN0cnVjdCBpbm9kZSAqaW5vZGUpCitzdGF0 aWMgaW5saW5lIGNoYXIgKmNvZGFfaTJzKHN0cnVjdCBpbm9kZSAqaW5vZGUpCiB7CiAJcmV0dXJu IGNvZGFfZjJzKCYoSVRPQyhpbm9kZSktPmNfZmlkKSk7CiB9CiAKIC8qIHRoaXMgd2lsbCBub3Qg emFwIHRoZSBpbm9kZSBhd2F5ICovCi1zdGF0aWMgX19pbmxpbmVfXyB2b2lkIGNvZGFfZmxhZ19p bm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgZmxhZykKK3N0YXRpYyBpbmxpbmUgdm9pZCBj b2RhX2ZsYWdfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSwgaW50IGZsYWcpCiB7CiAJc3RydWN0 IGNvZGFfaW5vZGVfaW5mbyAqY2lpID0gSVRPQyhpbm9kZSk7CiAKZGlmZiAtLWdpdCBhL2ZzL2Zy ZWV2eGZzL3Z4ZnNfaW5vZGUuYyBiL2ZzL2ZyZWV2eGZzL3Z4ZnNfaW5vZGUuYwppbmRleCAxZjQx YjI1ZWYzOGIuLmEwYjMyOTM0YjFlNCAxMDA2NDQKLS0tIGEvZnMvZnJlZXZ4ZnMvdnhmc19pbm9k ZS5jCisrKyBiL2ZzL2ZyZWV2eGZzL3Z4ZnNfaW5vZGUuYwpAQCAtNzQsNyArNzQsNyBAQCB2eGZz X2R1bXBpKHN0cnVjdCB2eGZzX2lub2RlX2luZm8gKnZpcCwgaW5vX3QgaW5vKQogICogIHZ4ZnNf dHJhbnNtb2QgcmV0dXJucyBhIExpbnV4IG1vZGVfdCBmb3IgYSBnaXZlbgogICogIFZ4RlMgaW5v ZGUgc3RydWN0dXJlLgogICovCi1zdGF0aWMgX19pbmxpbmVfXyB1bW9kZV90CitzdGF0aWMgaW5s aW5lIHVtb2RlX3QKIHZ4ZnNfdHJhbnNtb2Qoc3RydWN0IHZ4ZnNfaW5vZGVfaW5mbyAqdmlwKQog ewogCXVtb2RlX3QJCQlyZXQgPSB2aXAtPnZpaV9tb2RlICYgflZYRlNfVFlQRV9NQVNLOwpkaWZm IC0tZ2l0IGEvZnMvbmZzZC9uZnNmaC5oIGIvZnMvbmZzZC9uZnNmaC5oCmluZGV4IDc1NWUyNTZh OTEwMy4uZjM5OWY0YTE2ZmM5IDEwMDY0NAotLS0gYS9mcy9uZnNkL25mc2ZoLmgKKysrIGIvZnMv bmZzZC9uZnNmaC5oCkBAIC0xNjYsNyArMTY2LDcgQEAgX19iZTMyCWZoX2NvbXBvc2Uoc3RydWN0 IHN2Y19maCAqLCBzdHJ1Y3Qgc3ZjX2V4cG9ydCAqLCBzdHJ1Y3QgZGVudHJ5ICosIHN0cnVjdAog X19iZTMyCWZoX3VwZGF0ZShzdHJ1Y3Qgc3ZjX2ZoICopOwogdm9pZAlmaF9wdXQoc3RydWN0IHN2 Y19maCAqKTsKIAotc3RhdGljIF9faW5saW5lX18gc3RydWN0IHN2Y19maCAqCitzdGF0aWMgaW5s aW5lIHN0cnVjdCBzdmNfZmggKgogZmhfY29weShzdHJ1Y3Qgc3ZjX2ZoICpkc3QsIHN0cnVjdCBz dmNfZmggKnNyYykKIHsKIAlXQVJOX09OKHNyYy0+ZmhfZGVudHJ5IHx8IHNyYy0+ZmhfbG9ja2Vk KTsKQEAgLTE4Miw3ICsxODIsNyBAQCBmaF9jb3B5X3NoYWxsb3coc3RydWN0IGtuZnNkX2ZoICpk c3QsIHN0cnVjdCBrbmZzZF9maCAqc3JjKQogCW1lbWNweSgmZHN0LT5maF9iYXNlLCAmc3JjLT5m aF9iYXNlLCBzcmMtPmZoX3NpemUpOwogfQogCi1zdGF0aWMgX19pbmxpbmVfXyBzdHJ1Y3Qgc3Zj X2ZoICoKK3N0YXRpYyBpbmxpbmUgc3RydWN0IHN2Y19maCAqCiBmaF9pbml0KHN0cnVjdCBzdmNf ZmggKmZocCwgaW50IG1heHNpemUpCiB7CiAJbWVtc2V0KGZocCwgMCwgc2l6ZW9mKCpmaHApKTsK ZGlmZiAtLWdpdCBhL2luY2x1ZGUvYWNwaS9wbGF0Zm9ybS9hY2djYy5oIGIvaW5jbHVkZS9hY3Bp L3BsYXRmb3JtL2FjZ2NjLmgKaW5kZXggMDg1ZGI5NWEzZGFlLi4zMmFiYWE2MWVmOTYgMTAwNjQ0 Ci0tLSBhL2luY2x1ZGUvYWNwaS9wbGF0Zm9ybS9hY2djYy5oCisrKyBiL2luY2x1ZGUvYWNwaS9w bGF0Zm9ybS9hY2djYy5oCkBAIC0yNiw3ICsyNiw3IEBAIHR5cGVkZWYgX19idWlsdGluX3ZhX2xp c3QgdmFfbGlzdDsKICNlbmRpZgogI2VuZGlmCiAKLSNkZWZpbmUgQUNQSV9JTkxJTkUgICAgICAg ICAgICAgX19pbmxpbmVfXworI2RlZmluZSBBQ1BJX0lOTElORSAgICAgICAgICAgICBpbmxpbmUK IAogLyogRnVuY3Rpb24gbmFtZSBpcyB1c2VkIGZvciBkZWJ1ZyBvdXRwdXQuIE5vbi1BTlNJLCBj b21waWxlci1kZXBlbmRlbnQgKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hY3BpL3BsYXRmb3Jt L2FjaW50ZWwuaCBiL2luY2x1ZGUvYWNwaS9wbGF0Zm9ybS9hY2ludGVsLmgKaW5kZXggNjI2MjY1 ODMzYTU0Li5mYzAxM2VmZTYwNmQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYWNwaS9wbGF0Zm9ybS9h Y2ludGVsLmgKKysrIGIvaW5jbHVkZS9hY3BpL3BsYXRmb3JtL2FjaW50ZWwuaApAQCAtMjIsNyAr MjIsNyBAQAogCiAjZGVmaW5lIENPTVBJTEVSX0RFUEVOREVOVF9JTlQ2NCAgICBfX2ludDY0CiAj ZGVmaW5lIENPTVBJTEVSX0RFUEVOREVOVF9VSU5UNjQgICB1bnNpZ25lZCBfX2ludDY0Ci0jZGVm aW5lIEFDUElfSU5MSU5FICAgICAgICAgICAgICAgICBfX2lubGluZQorI2RlZmluZSBBQ1BJX0lO TElORSAgICAgICAgICAgICAgICAgaW5saW5lCiAKIC8qCiAgKiBDYWxsaW5nIGNvbnZlbnRpb25z OgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tZ2VuZXJpYy9pZGVfaW9wcy5oIGIvaW5jbHVkZS9h c20tZ2VuZXJpYy9pZGVfaW9wcy5oCmluZGV4IDgxZGZhM2VlNWUwNi4uYzcwMjg2NzRhMDNkIDEw MDY0NAotLS0gYS9pbmNsdWRlL2FzbS1nZW5lcmljL2lkZV9pb3BzLmgKKysrIGIvaW5jbHVkZS9h c20tZ2VuZXJpYy9pZGVfaW9wcy5oCkBAIC02LDcgKzYsNyBAQAogI2RlZmluZSBfX2lkZV9vdXRz dwlvdXRzdwogI2RlZmluZSBfX2lkZV9vdXRzbAlvdXRzbAogCi1zdGF0aWMgX19pbmxpbmVfXyB2 b2lkIF9faWRlX21tX2luc3codm9pZCBfX2lvbWVtICpwb3J0LCB2b2lkICphZGRyLCB1MzIgY291 bnQpCitzdGF0aWMgaW5saW5lIHZvaWQgX19pZGVfbW1faW5zdyh2b2lkIF9faW9tZW0gKnBvcnQs IHZvaWQgKmFkZHIsIHUzMiBjb3VudCkKIHsKIAl3aGlsZSAoY291bnQtLSkgewogCQkqKHUxNiAq KWFkZHIgPSByZWFkdyhwb3J0KTsKQEAgLTE0LDcgKzE0LDcgQEAgc3RhdGljIF9faW5saW5lX18g dm9pZCBfX2lkZV9tbV9pbnN3KHZvaWQgX19pb21lbSAqcG9ydCwgdm9pZCAqYWRkciwgdTMyIGNv dW50KQogCX0KIH0KIAotc3RhdGljIF9faW5saW5lX18gdm9pZCBfX2lkZV9tbV9pbnNsKHZvaWQg X19pb21lbSAqcG9ydCwgdm9pZCAqYWRkciwgdTMyIGNvdW50KQorc3RhdGljIGlubGluZSB2b2lk IF9faWRlX21tX2luc2wodm9pZCBfX2lvbWVtICpwb3J0LCB2b2lkICphZGRyLCB1MzIgY291bnQp CiB7CiAJd2hpbGUgKGNvdW50LS0pIHsKIAkJKih1MzIgKilhZGRyID0gcmVhZGwocG9ydCk7CkBA IC0yMiw3ICsyMiw3IEBAIHN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19pZGVfbW1faW5zbCh2b2lk IF9faW9tZW0gKnBvcnQsIHZvaWQgKmFkZHIsIHUzMiBjb3VudCkKIAl9CiB9CiAKLXN0YXRpYyBf X2lubGluZV9fIHZvaWQgX19pZGVfbW1fb3V0c3codm9pZCBfX2lvbWVtICpwb3J0LCB2b2lkICph ZGRyLCB1MzIgY291bnQpCitzdGF0aWMgaW5saW5lIHZvaWQgX19pZGVfbW1fb3V0c3codm9pZCBf X2lvbWVtICpwb3J0LCB2b2lkICphZGRyLCB1MzIgY291bnQpCiB7CiAJd2hpbGUgKGNvdW50LS0p IHsKIAkJd3JpdGV3KCoodTE2ICopYWRkciwgcG9ydCk7CkBAIC0zMCw3ICszMCw3IEBAIHN0YXRp YyBfX2lubGluZV9fIHZvaWQgX19pZGVfbW1fb3V0c3codm9pZCBfX2lvbWVtICpwb3J0LCB2b2lk ICphZGRyLCB1MzIgY291bnQpCiAJfQogfQogCi1zdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9faWRl X21tX291dHNsKHZvaWQgX19pb21lbSAqIHBvcnQsIHZvaWQgKmFkZHIsIHUzMiBjb3VudCkKK3N0 YXRpYyBpbmxpbmUgdm9pZCBfX2lkZV9tbV9vdXRzbCh2b2lkIF9faW9tZW0gKiBwb3J0LCB2b2lk ICphZGRyLCB1MzIgY291bnQpCiB7CiAJd2hpbGUgKGNvdW50LS0pIHsKIAkJd3JpdGVsKCoodTMy ICopYWRkciwgcG9ydCk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2F0YWxrLmggYi9pbmNs dWRlL2xpbnV4L2F0YWxrLmgKaW5kZXggMjNmODA1NTYyZjRlLi4yNTdjOTg2ZjdmNDAgMTAwNjQ0 Ci0tLSBhL2luY2x1ZGUvbGludXgvYXRhbGsuaAorKysgYi9pbmNsdWRlL2xpbnV4L2F0YWxrLmgK QEAgLTYwLDcgKzYwLDcgQEAgc3RydWN0IGRkcGVoZHIgewogCS8qIEFuZCBuZXRhdGFsayBhcHBz IGV4cGVjdCB0byBzdGljayB0aGUgdHlwZSBpbiB0aGVtc2VsdmVzICovCiB9OwogCi1zdGF0aWMg X19pbmxpbmVfXyBzdHJ1Y3QgZGRwZWhkciAqZGRwX2hkcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQor c3RhdGljIGlubGluZSBzdHJ1Y3QgZGRwZWhkciAqZGRwX2hkcihzdHJ1Y3Qgc2tfYnVmZiAqc2ti KQogewogCXJldHVybiAoc3RydWN0IGRkcGVoZHIgKilza2JfdHJhbnNwb3J0X2hlYWRlcihza2Ip OwogfQpAQCAtODgsNyArODgsNyBAQCBzdHJ1Y3QgZWxhcGFhcnAgewogCV9fdTgJcGFfZHN0X25v ZGU7CiB9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsKIAotc3RhdGljIF9faW5saW5lX18gc3Ry dWN0IGVsYXBhYXJwICphYXJwX2hkcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQorc3RhdGljIGlubGlu ZSBzdHJ1Y3QgZWxhcGFhcnAgKmFhcnBfaGRyKHN0cnVjdCBza19idWZmICpza2IpCiB7CiAJcmV0 dXJuIChzdHJ1Y3QgZWxhcGFhcnAgKilza2JfdHJhbnNwb3J0X2hlYWRlcihza2IpOwogfQpkaWZm IC0tZ2l0IGEvaW5jbHVkZS9saW51eC9jZXBoL21lc3Nlbmdlci5oIGIvaW5jbHVkZS9saW51eC9j ZXBoL21lc3Nlbmdlci5oCmluZGV4IGZjMmI0NDkxZWUwYS4uNjM1ODNkYjI4OGU1IDEwMDY0NAot LS0gYS9pbmNsdWRlL2xpbnV4L2NlcGgvbWVzc2VuZ2VyLmgKKysrIGIvaW5jbHVkZS9saW51eC9j ZXBoL21lc3Nlbmdlci5oCkBAIC04Miw3ICs4Miw3IEBAIGVudW0gY2VwaF9tc2dfZGF0YV90eXBl IHsKIAlDRVBIX01TR19EQVRBX0JWRUNTLAkvKiBkYXRhIHNvdXJjZS9kZXN0aW5hdGlvbiBpcyBh IGJpb192ZWMgYXJyYXkgKi8KIH07CiAKLXN0YXRpYyBfX2lubGluZV9fIGJvb2wgY2VwaF9tc2df ZGF0YV90eXBlX3ZhbGlkKGVudW0gY2VwaF9tc2dfZGF0YV90eXBlIHR5cGUpCitzdGF0aWMgaW5s aW5lIGJvb2wgY2VwaF9tc2dfZGF0YV90eXBlX3ZhbGlkKGVudW0gY2VwaF9tc2dfZGF0YV90eXBl IHR5cGUpCiB7CiAJc3dpdGNoICh0eXBlKSB7CiAJY2FzZSBDRVBIX01TR19EQVRBX05PTkU6CmRp ZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2NvbXBpbGVyX3R5cGVzLmggYi9pbmNsdWRlL2xpbnV4 L2NvbXBpbGVyX3R5cGVzLmgKaW5kZXggZGIxOTJiZWNmZWM0Li44Y2MyODJiNzM4NmIgMTAwNjQ0 Ci0tLSBhL2luY2x1ZGUvbGludXgvY29tcGlsZXJfdHlwZXMuaAorKysgYi9pbmNsdWRlL2xpbnV4 L2NvbXBpbGVyX3R5cGVzLmgKQEAgLTI0OCw2ICsyNDgsOCBAQCBzdHJ1Y3QgZnRyYWNlX2xpa2Vs eV9kYXRhIHsKICMgZGVmaW5lIF9fZ251X2lubGluZQogI2VuZGlmCiAKKyNkZWZpbmUgYXNtX3Zv bGF0aWxlKHN0bXQuLi4pIGFzbSB2b2xhdGlsZSBfX2lubGluZV9fKHN0bXQpCisKIC8qCiAgKiBG b3JjZSBhbHdheXMtaW5saW5lIGlmIHRoZSB1c2VyIHJlcXVlc3RzIGl0IHNvIHZpYSB0aGUgLmNv bmZpZy4KICAqIEdDQyBkb2VzIG5vdCB3YXJuIGFib3V0IHVudXNlZCBzdGF0aWMgaW5saW5lIGZ1 bmN0aW9ucyBmb3IKQEAgLTI2OCw4ICsyNzAsNiBAQCBzdHJ1Y3QgZnRyYWNlX2xpa2VseV9kYXRh IHsKICNkZWZpbmUgaW5saW5lIGlubGluZQlfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBub3RyYWNl IF9fZ251X2lubGluZQogI2VuZGlmCiAKLSNkZWZpbmUgX19pbmxpbmVfXyBpbmxpbmUKLSNkZWZp bmUgX19pbmxpbmUgaW5saW5lCiAjZGVmaW5lIG5vaW5saW5lCV9fYXR0cmlidXRlX18oKG5vaW5s aW5lKSkKIAogI2lmbmRlZiBfX2Fsd2F5c19pbmxpbmUKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGlu dXgvaGRsYy5oIGIvaW5jbHVkZS9saW51eC9oZGxjLmgKaW5kZXggOTc1ODVkOTY3OWYzLi5jOWU1 OGM4ODk1NDggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvaGRsYy5oCisrKyBiL2luY2x1ZGUv bGludXgvaGRsYy5oCkBAIC03NCw3ICs3NCw3IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGhkbGNf ZGV2aWNlKiBkZXZfdG9faGRsYyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCXJldHVybiBuZXRk ZXZfcHJpdihkZXYpOwogfQogCi1zdGF0aWMgX19pbmxpbmVfXyB2b2lkIGRlYnVnX2ZyYW1lKGNv bnN0IHN0cnVjdCBza19idWZmICpza2IpCitzdGF0aWMgaW5saW5lIHZvaWQgZGVidWdfZnJhbWUo Y29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYikKIHsKIAlpbnQgaTsKIApAQCAtMTAxLDcgKzEwMSw3 IEBAIGludCBhdHRhY2hfaGRsY19wcm90b2NvbChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1 Y3QgaGRsY19wcm90byAqcHJvdG8sCiAvKiBNYXkgYmUgdXNlZCBieSBoYXJkd2FyZSBkcml2ZXIg dG8gZ2FpbiBjb250cm9sIG92ZXIgSERMQyBkZXZpY2UgKi8KIGludCBkZXRhY2hfaGRsY19wcm90 b2NvbChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KTsKIAotc3RhdGljIF9faW5saW5lX18gX19iZTE2 IGhkbGNfdHlwZV90cmFucyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAorc3RhdGljIGlubGluZSBfX2Jl MTYgaGRsY190eXBlX3RyYW5zKHN0cnVjdCBza19idWZmICpza2IsCiAJCQkJCSBzdHJ1Y3QgbmV0 X2RldmljZSAqZGV2KQogewogCWhkbGNfZGV2aWNlICpoZGxjID0gZGV2X3RvX2hkbGMoZGV2KTsK ZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvaW5ldGRldmljZS5oIGIvaW5jbHVkZS9saW51eC9p bmV0ZGV2aWNlLmgKaW5kZXggYzc1OWQxY2JjZWRkLi43NmM5NzE1NGRjODEgMTAwNjQ0Ci0tLSBh L2luY2x1ZGUvbGludXgvaW5ldGRldmljZS5oCisrKyBiL2luY2x1ZGUvbGludXgvaW5ldGRldmlj ZS5oCkBAIC0xODQsNyArMTg0LDcgQEAgX19iZTMyIGluZXRfY29uZmlybV9hZGRyKHN0cnVjdCBu ZXQgKm5ldCwgc3RydWN0IGluX2RldmljZSAqaW5fZGV2LCBfX2JlMzIgZHN0LAogc3RydWN0IGlu X2lmYWRkciAqaW5ldF9pZmFfYnlwcmVmaXgoc3RydWN0IGluX2RldmljZSAqaW5fZGV2LCBfX2Jl MzIgcHJlZml4LAogCQkJCSAgICBfX2JlMzIgbWFzayk7CiBzdHJ1Y3QgaW5faWZhZGRyICppbmV0 X2xvb2t1cF9pZmFkZHJfcmN1KHN0cnVjdCBuZXQgKm5ldCwgX19iZTMyIGFkZHIpOwotc3RhdGlj IF9faW5saW5lX18gYm9vbCBpbmV0X2lmYV9tYXRjaChfX2JlMzIgYWRkciwgc3RydWN0IGluX2lm YWRkciAqaWZhKQorc3RhdGljIGlubGluZSBib29sIGluZXRfaWZhX21hdGNoKF9fYmUzMiBhZGRy LCBzdHJ1Y3QgaW5faWZhZGRyICppZmEpCiB7CiAJcmV0dXJuICEoKGFkZHJeaWZhLT5pZmFfYWRk cmVzcykmaWZhLT5pZmFfbWFzayk7CiB9CkBAIC0xOTMsNyArMTkzLDcgQEAgc3RhdGljIF9faW5s aW5lX18gYm9vbCBpbmV0X2lmYV9tYXRjaChfX2JlMzIgYWRkciwgc3RydWN0IGluX2lmYWRkciAq aWZhKQogICoJQ2hlY2sgaWYgYSBtYXNrIGlzIGFjY2VwdGFibGUuCiAgKi8KICAKLXN0YXRpYyBf X2lubGluZV9fIGJvb2wgYmFkX21hc2soX19iZTMyIG1hc2ssIF9fYmUzMiBhZGRyKQorc3RhdGlj IGlubGluZSBib29sIGJhZF9tYXNrKF9fYmUzMiBtYXNrLCBfX2JlMzIgYWRkcikKIHsKIAlfX3Uz MiBobWFzazsKIAlpZiAoYWRkciAmIChtYXNrID0gfm1hc2spKQpAQCAtMjU1LDE0ICsyNTUsMTQg QEAgc3RhdGljIGlubGluZSB2b2lkIGluX2Rldl9wdXQoc3RydWN0IGluX2RldmljZSAqaWRldikK IAogI2VuZGlmIC8qIF9fS0VSTkVMX18gKi8KIAotc3RhdGljIF9faW5saW5lX18gX19iZTMyIGlu ZXRfbWFrZV9tYXNrKGludCBsb2dtYXNrKQorc3RhdGljIGlubGluZSBfX2JlMzIgaW5ldF9tYWtl X21hc2soaW50IGxvZ21hc2spCiB7CiAJaWYgKGxvZ21hc2spCiAJCXJldHVybiBodG9ubCh+KCgx VTw8KDMyLWxvZ21hc2spKS0xKSk7CiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBfX2lubGluZV9f IGludCBpbmV0X21hc2tfbGVuKF9fYmUzMiBtYXNrKQorc3RhdGljIGlubGluZSBpbnQgaW5ldF9t YXNrX2xlbihfX2JlMzIgbWFzaykKIHsKIAlfX3UzMiBobWFzayA9IG50b2hsKG1hc2spOwogCWlm ICghaG1hc2spCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3BhcnBvcnQuaCBiL2luY2x1ZGUv bGludXgvcGFycG9ydC5oCmluZGV4IDM5NzYwN2EwYzBlYi4uYTI4ZGMzZTIyMDc0IDEwMDY0NAot LS0gYS9pbmNsdWRlL2xpbnV4L3BhcnBvcnQuaAorKysgYi9pbmNsdWRlL2xpbnV4L3BhcnBvcnQu aApAQCAtMzg1LDcgKzM4NSw3IEBAIGV4dGVybiB2b2lkIHBhcnBvcnRfcmVsZWFzZShzdHJ1Y3Qg cGFyZGV2aWNlICpkZXYpOwogICogdGltZXNsaWNlIGlzIGhhbGYgYSBzZWNvbmQsIGJ1dCBpdCBj YW4gYmUgYWRqdXN0ZWQgdmlhIHRoZSAvcHJvYwogICogaW50ZXJmYWNlLgogICoqLwotc3RhdGlj IF9faW5saW5lX18gaW50IHBhcnBvcnRfeWllbGQoc3RydWN0IHBhcmRldmljZSAqZGV2KQorc3Rh dGljIGlubGluZSBpbnQgcGFycG9ydF95aWVsZChzdHJ1Y3QgcGFyZGV2aWNlICpkZXYpCiB7CiAJ dW5zaWduZWQgbG9uZyBpbnQgdGltZXNsaXAgPSAoamlmZmllcyAtIGRldi0+dGltZSk7CiAJaWYg KChkZXYtPnBvcnQtPndhaXRoZWFkID09IE5VTEwpIHx8ICh0aW1lc2xpcCA8IGRldi0+dGltZXNs aWNlKSkKQEAgLTQwMyw3ICs0MDMsNyBAQCBzdGF0aWMgX19pbmxpbmVfXyBpbnQgcGFycG9ydF95 aWVsZChzdHJ1Y3QgcGFyZGV2aWNlICpkZXYpCiAgKiBwYXJwb3J0X2NsYWltX29yX2Jsb2NrKCks IGFuZCB0aGUgcmV0dXJuIHZhbHVlIGlzIHRoZSBzYW1lIGFzIGZvcgogICogcGFycG9ydF9jbGFp bV9vcl9ibG9jaygpLgogICoqLwotc3RhdGljIF9faW5saW5lX18gaW50IHBhcnBvcnRfeWllbGRf YmxvY2tpbmcoc3RydWN0IHBhcmRldmljZSAqZGV2KQorc3RhdGljIGlubGluZSBpbnQgcGFycG9y dF95aWVsZF9ibG9ja2luZyhzdHJ1Y3QgcGFyZGV2aWNlICpkZXYpCiB7CiAJdW5zaWduZWQgbG9u ZyBpbnQgdGltZXNsaXAgPSAoamlmZmllcyAtIGRldi0+dGltZSk7CiAJaWYgKChkZXYtPnBvcnQt PndhaXRoZWFkID09IE5VTEwpIHx8ICh0aW1lc2xpcCA8IGRldi0+dGltZXNsaWNlKSkKZGlmZiAt LWdpdCBhL2luY2x1ZGUvbGludXgvcGFycG9ydF9wYy5oIGIvaW5jbHVkZS9saW51eC9wYXJwb3J0 X3BjLmgKaW5kZXggM2Q2ZmM1NzZkNmExLi5lYTM2OGMzNWE1ZTcgMTAwNjQ0Ci0tLSBhL2luY2x1 ZGUvbGludXgvcGFycG9ydF9wYy5oCisrKyBiL2luY2x1ZGUvbGludXgvcGFycG9ydF9wYy5oCkBA IC02MCw3ICs2MCw3IEBAIHN0cnVjdCBwYXJwb3J0X3BjX3ZpYV9kYXRhCiAJdTggdmlhY2ZnX3Bh cnBvcnRfYmFzZTsKIH07CiAKLXN0YXRpYyBfX2lubGluZV9fIHZvaWQgcGFycG9ydF9wY193cml0 ZV9kYXRhKHN0cnVjdCBwYXJwb3J0ICpwLCB1bnNpZ25lZCBjaGFyIGQpCitzdGF0aWMgaW5saW5l IHZvaWQgcGFycG9ydF9wY193cml0ZV9kYXRhKHN0cnVjdCBwYXJwb3J0ICpwLCB1bnNpZ25lZCBj aGFyIGQpCiB7CiAjaWZkZWYgREVCVUdfUEFSUE9SVAogCXByaW50ayAoS0VSTl9ERUJVRyAicGFy cG9ydF9wY193cml0ZV9kYXRhKCVwLDB4JTAyeClcbiIsIHAsIGQpOwpAQCAtNjgsNyArNjgsNyBA QCBzdGF0aWMgX19pbmxpbmVfXyB2b2lkIHBhcnBvcnRfcGNfd3JpdGVfZGF0YShzdHJ1Y3QgcGFy cG9ydCAqcCwgdW5zaWduZWQgY2hhciBkKQogCW91dGIoZCwgREFUQShwKSk7CiB9CiAKLXN0YXRp YyBfX2lubGluZV9fIHVuc2lnbmVkIGNoYXIgcGFycG9ydF9wY19yZWFkX2RhdGEoc3RydWN0IHBh cnBvcnQgKnApCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGNoYXIgcGFycG9ydF9wY19yZWFkX2Rh dGEoc3RydWN0IHBhcnBvcnQgKnApCiB7CiAJdW5zaWduZWQgY2hhciB2YWwgPSBpbmIgKERBVEEg KHApKTsKICNpZmRlZiBERUJVR19QQVJQT1JUCkBAIC0xMjUsNyArMTI1LDcgQEAgc3RhdGljIGlu bGluZSB2b2lkIGR1bXBfcGFycG9ydF9zdGF0ZSAoY2hhciAqc3RyLCBzdHJ1Y3QgcGFycG9ydCAq cCkKIAogLyogX19wYXJwb3J0X3BjX2Zyb2JfY29udHJvbCBkaWZmZXJzIGZyb20gcGFycG9ydF9w Y19mcm9iX2NvbnRyb2wgaW4gdGhhdAogICogaXQgZG9lc24ndCBkbyBhbnkgZXh0cmEgbWFza2lu Zy4gKi8KLXN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGNoYXIgX19wYXJwb3J0X3BjX2Zyb2Jf Y29udHJvbCAoc3RydWN0IHBhcnBvcnQgKnAsCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGNoYXIg X19wYXJwb3J0X3BjX2Zyb2JfY29udHJvbCAoc3RydWN0IHBhcnBvcnQgKnAsCiAJCQkJCQkJICAg dW5zaWduZWQgY2hhciBtYXNrLAogCQkJCQkJCSAgIHVuc2lnbmVkIGNoYXIgdmFsKQogewpAQCAt MTQzLDE3ICsxNDMsMTcgQEAgc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgY2hhciBfX3BhcnBv cnRfcGNfZnJvYl9jb250cm9sIChzdHJ1Y3QgcGFycG9ydCAqcCwKIAlyZXR1cm4gY3RyOwogfQog Ci1zdGF0aWMgX19pbmxpbmVfXyB2b2lkIHBhcnBvcnRfcGNfZGF0YV9yZXZlcnNlIChzdHJ1Y3Qg cGFycG9ydCAqcCkKK3N0YXRpYyBpbmxpbmUgdm9pZCBwYXJwb3J0X3BjX2RhdGFfcmV2ZXJzZSAo c3RydWN0IHBhcnBvcnQgKnApCiB7CiAJX19wYXJwb3J0X3BjX2Zyb2JfY29udHJvbCAocCwgMHgy MCwgMHgyMCk7CiB9CiAKLXN0YXRpYyBfX2lubGluZV9fIHZvaWQgcGFycG9ydF9wY19kYXRhX2Zv cndhcmQgKHN0cnVjdCBwYXJwb3J0ICpwKQorc3RhdGljIGlubGluZSB2b2lkIHBhcnBvcnRfcGNf ZGF0YV9mb3J3YXJkIChzdHJ1Y3QgcGFycG9ydCAqcCkKIHsKIAlfX3BhcnBvcnRfcGNfZnJvYl9j b250cm9sIChwLCAweDIwLCAweDAwKTsKIH0KIAotc3RhdGljIF9faW5saW5lX18gdm9pZCBwYXJw b3J0X3BjX3dyaXRlX2NvbnRyb2wgKHN0cnVjdCBwYXJwb3J0ICpwLAorc3RhdGljIGlubGluZSB2 b2lkIHBhcnBvcnRfcGNfd3JpdGVfY29udHJvbCAoc3RydWN0IHBhcnBvcnQgKnAsCiAJCQkJCQkg dW5zaWduZWQgY2hhciBkKQogewogCWNvbnN0IHVuc2lnbmVkIGNoYXIgd20gPSAoUEFSUE9SVF9D T05UUk9MX1NUUk9CRSB8CkBAIC0xNzEsNyArMTcxLDcgQEAgc3RhdGljIF9faW5saW5lX18gdm9p ZCBwYXJwb3J0X3BjX3dyaXRlX2NvbnRyb2wgKHN0cnVjdCBwYXJwb3J0ICpwLAogCV9fcGFycG9y dF9wY19mcm9iX2NvbnRyb2wgKHAsIHdtLCBkICYgd20pOwogfQogCi1zdGF0aWMgX19pbmxpbmVf XyB1bnNpZ25lZCBjaGFyIHBhcnBvcnRfcGNfcmVhZF9jb250cm9sKHN0cnVjdCBwYXJwb3J0ICpw KQorc3RhdGljIGlubGluZSB1bnNpZ25lZCBjaGFyIHBhcnBvcnRfcGNfcmVhZF9jb250cm9sKHN0 cnVjdCBwYXJwb3J0ICpwKQogewogCWNvbnN0IHVuc2lnbmVkIGNoYXIgcm0gPSAoUEFSUE9SVF9D T05UUk9MX1NUUk9CRSB8CiAJCQkJICBQQVJQT1JUX0NPTlRST0xfQVVUT0ZEIHwKQEAgLTE4MSw3 ICsxODEsNyBAQCBzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBjaGFyIHBhcnBvcnRfcGNfcmVh ZF9jb250cm9sKHN0cnVjdCBwYXJwb3J0ICpwKQogCXJldHVybiBwcml2LT5jdHIgJiBybTsgLyog VXNlIHNvZnQgY29weSAqLwogfQogCi1zdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBjaGFyIHBh cnBvcnRfcGNfZnJvYl9jb250cm9sIChzdHJ1Y3QgcGFycG9ydCAqcCwKK3N0YXRpYyBpbmxpbmUg dW5zaWduZWQgY2hhciBwYXJwb3J0X3BjX2Zyb2JfY29udHJvbCAoc3RydWN0IHBhcnBvcnQgKnAs CiAJCQkJCQkJIHVuc2lnbmVkIGNoYXIgbWFzaywKIAkJCQkJCQkgdW5zaWduZWQgY2hhciB2YWwp CiB7CkBAIC0yMDgsMTggKzIwOCwxOCBAQCBzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBjaGFy IHBhcnBvcnRfcGNfZnJvYl9jb250cm9sIChzdHJ1Y3QgcGFycG9ydCAqcCwKIAlyZXR1cm4gX19w YXJwb3J0X3BjX2Zyb2JfY29udHJvbCAocCwgbWFzaywgdmFsKTsKIH0KIAotc3RhdGljIF9faW5s aW5lX18gdW5zaWduZWQgY2hhciBwYXJwb3J0X3BjX3JlYWRfc3RhdHVzKHN0cnVjdCBwYXJwb3J0 ICpwKQorc3RhdGljIGlubGluZSB1bnNpZ25lZCBjaGFyIHBhcnBvcnRfcGNfcmVhZF9zdGF0dXMo c3RydWN0IHBhcnBvcnQgKnApCiB7CiAJcmV0dXJuIGluYihTVEFUVVMocCkpOwogfQogCiAKLXN0 YXRpYyBfX2lubGluZV9fIHZvaWQgcGFycG9ydF9wY19kaXNhYmxlX2lycShzdHJ1Y3QgcGFycG9y dCAqcCkKK3N0YXRpYyBpbmxpbmUgdm9pZCBwYXJwb3J0X3BjX2Rpc2FibGVfaXJxKHN0cnVjdCBw YXJwb3J0ICpwKQogewogCV9fcGFycG9ydF9wY19mcm9iX2NvbnRyb2wgKHAsIDB4MTAsIDB4MDAp OwogfQogCi1zdGF0aWMgX19pbmxpbmVfXyB2b2lkIHBhcnBvcnRfcGNfZW5hYmxlX2lycShzdHJ1 Y3QgcGFycG9ydCAqcCkKK3N0YXRpYyBpbmxpbmUgdm9pZCBwYXJwb3J0X3BjX2VuYWJsZV9pcnEo c3RydWN0IHBhcnBvcnQgKnApCiB7CiAJX19wYXJwb3J0X3BjX2Zyb2JfY29udHJvbCAocCwgMHgx MCwgMHgxMCk7CiB9CmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9heDI1LmggYi9pbmNsdWRlL25l dC9heDI1LmgKaW5kZXggM2Y5YWVhODA4N2UzLi5jZDBiZWM3YTZkNGQgMTAwNjQ0Ci0tLSBhL2lu Y2x1ZGUvbmV0L2F4MjUuaAorKysgYi9pbmNsdWRlL25ldC9heDI1LmgKQEAgLTI3MCw3ICsyNzAs NyBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBheDI1X2NiICpza190b19heDI1KGNvbnN0IHN0cnVj dCBzb2NrICpzaykKICNkZWZpbmUgYXgyNV9jYl9ob2xkKF9fYXgyNSkgXAogCXJlZmNvdW50X2lu YygmKChfX2F4MjUpLT5yZWZjb3VudCkpCiAKLXN0YXRpYyBfX2lubGluZV9fIHZvaWQgYXgyNV9j Yl9wdXQoYXgyNV9jYiAqYXgyNSkKK3N0YXRpYyBpbmxpbmUgdm9pZCBheDI1X2NiX3B1dChheDI1 X2NiICpheDI1KQogewogCWlmIChyZWZjb3VudF9kZWNfYW5kX3Rlc3QoJmF4MjUtPnJlZmNvdW50 KSkgewogCQlrZnJlZShheDI1LT5kaWdpcGVhdCk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9j aGVja3N1bS5oIGIvaW5jbHVkZS9uZXQvY2hlY2tzdW0uaAppbmRleCBhZWYyYjJiYjY2MDMuLmUw MzkxNGFiOTE5NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvY2hlY2tzdW0uaAorKysgYi9pbmNs dWRlL25ldC9jaGVja3N1bS5oCkBAIC00MSw3ICs0MSw3IEBAIF9fd3N1bSBjc3VtX2FuZF9jb3B5 X2Zyb21fdXNlciAoY29uc3Qgdm9pZCBfX3VzZXIgKnNyYywgdm9pZCAqZHN0LAogI2VuZGlmCiAK ICNpZm5kZWYgSEFWRV9DU1VNX0NPUFlfVVNFUgotc3RhdGljIF9faW5saW5lX18gX193c3VtIGNz dW1fYW5kX2NvcHlfdG9fdXNlcgorc3RhdGljIGlubGluZSBfX3dzdW0gY3N1bV9hbmRfY29weV90 b191c2VyCiAoY29uc3Qgdm9pZCAqc3JjLCB2b2lkIF9fdXNlciAqZHN0LCBpbnQgbGVuLCBfX3dz dW0gc3VtLCBpbnQgKmVycl9wdHIpCiB7CiAJc3VtID0gY3N1bV9wYXJ0aWFsKHNyYywgbGVuLCBz dW0pOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvZG5fbnNwLmggYi9pbmNsdWRlL25ldC9kbl9u c3AuaAppbmRleCA0MTNhMTVlNTMzOWMuLjc3MWQzOTQzYThmOSAxMDA2NDQKLS0tIGEvaW5jbHVk ZS9uZXQvZG5fbnNwLmgKKysrIGIvaW5jbHVkZS9uZXQvZG5fbnNwLmgKQEAgLTE0NCw3ICsxNDQs NyBAQCBzdHJ1Y3QgIHNyY29ial9mbXQgewogICogbnVtYmVycyB1c2VkIGluIE5TUC4gU2ltaWxh ciBpbiBvcGVyYXRpb24gdG8gdGhlIGZ1bmN0aW9ucwogICogb2YgdGhlIHNhbWUgbmFtZSBpbiBU Q1AuCiAgKi8KLXN0YXRpYyBfX2lubGluZV9fIGludCBkbl9iZWZvcmUoX191MTYgc2VxMSwgX191 MTYgc2VxMikKK3N0YXRpYyBpbmxpbmUgaW50IGRuX2JlZm9yZShfX3UxNiBzZXExLCBfX3UxNiBz ZXEyKQogewogICAgICAgICBzZXExICY9IDB4MGZmZjsKICAgICAgICAgc2VxMiAmPSAweDBmZmY7 CkBAIC0xNTMsNyArMTUzLDcgQEAgc3RhdGljIF9faW5saW5lX18gaW50IGRuX2JlZm9yZShfX3Ux NiBzZXExLCBfX3UxNiBzZXEyKQogfQogCiAKLXN0YXRpYyBfX2lubGluZV9fIGludCBkbl9hZnRl cihfX3UxNiBzZXExLCBfX3UxNiBzZXEyKQorc3RhdGljIGlubGluZSBpbnQgZG5fYWZ0ZXIoX191 MTYgc2VxMSwgX191MTYgc2VxMikKIHsKICAgICAgICAgc2VxMSAmPSAweDBmZmY7CiAgICAgICAg IHNlcTIgJj0gMHgwZmZmOwpAQCAtMTYxLDIzICsxNjEsMjMgQEAgc3RhdGljIF9faW5saW5lX18g aW50IGRuX2FmdGVyKF9fdTE2IHNlcTEsIF9fdTE2IHNlcTIpCiAgICAgICAgIHJldHVybiAoaW50 KSgoc2VxMiAtIHNlcTEpICYgMHgwZmZmKSA+IDIwNDg7CiB9CiAKLXN0YXRpYyBfX2lubGluZV9f IGludCBkbl9lcXVhbChfX3UxNiBzZXExLCBfX3UxNiBzZXEyKQorc3RhdGljIGlubGluZSBpbnQg ZG5fZXF1YWwoX191MTYgc2VxMSwgX191MTYgc2VxMikKIHsKICAgICAgICAgcmV0dXJuICgoc2Vx MSBeIHNlcTIpICYgMHgwZmZmKSA9PSAwOwogfQogCi1zdGF0aWMgX19pbmxpbmVfXyBpbnQgZG5f YmVmb3JlX29yX2VxdWFsKF9fdTE2IHNlcTEsIF9fdTE2IHNlcTIpCitzdGF0aWMgaW5saW5lIGlu dCBkbl9iZWZvcmVfb3JfZXF1YWwoX191MTYgc2VxMSwgX191MTYgc2VxMikKIHsKIAlyZXR1cm4g KGRuX2JlZm9yZShzZXExLCBzZXEyKSB8fCBkbl9lcXVhbChzZXExLCBzZXEyKSk7CiB9CiAKLXN0 YXRpYyBfX2lubGluZV9fIHZvaWQgc2VxX2FkZChfX3UxNiAqc2VxLCBfX3UxNiBvZmYpCitzdGF0 aWMgaW5saW5lIHZvaWQgc2VxX2FkZChfX3UxNiAqc2VxLCBfX3UxNiBvZmYpCiB7CiAgICAgICAg ICgqc2VxKSArPSBvZmY7CiAgICAgICAgICgqc2VxKSAmPSAweDBmZmY7CiB9CiAKLXN0YXRpYyBf X2lubGluZV9fIGludCBzZXFfbmV4dChfX3UxNiBzZXExLCBfX3UxNiBzZXEyKQorc3RhdGljIGlu bGluZSBpbnQgc2VxX25leHQoX191MTYgc2VxMSwgX191MTYgc2VxMikKIHsKIAlyZXR1cm4gZG5f ZXF1YWwoc2VxMSArIDEsIHNlcTIpOwogfQpAQCAtMTg1LDcgKzE4NSw3IEBAIHN0YXRpYyBfX2lu bGluZV9fIGludCBzZXFfbmV4dChfX3UxNiBzZXExLCBfX3UxNiBzZXEyKQogLyoKICAqIENhbiB3 ZSBkZWxheSB0aGUgYWNrID8KICAqLwotc3RhdGljIF9faW5saW5lX18gaW50IHNlbmRhY2soX191 MTYgc2VxKQorc3RhdGljIGlubGluZSBpbnQgc2VuZGFjayhfX3UxNiBzZXEpCiB7CiAgICAgICAg IHJldHVybiAoaW50KSgoc2VxICYgMHgxMDAwKSA/IDAgOiAxKTsKIH0KQEAgLTE5Myw3ICsxOTMs NyBAQCBzdGF0aWMgX19pbmxpbmVfXyBpbnQgc2VuZGFjayhfX3UxNiBzZXEpCiAvKgogICogSXMg c29ja2V0IGNvbmdlc3RlZCA/CiAgKi8KLXN0YXRpYyBfX2lubGluZV9fIGludCBkbl9jb25nZXN0 ZWQoc3RydWN0IHNvY2sgKnNrKQorc3RhdGljIGlubGluZSBpbnQgZG5fY29uZ2VzdGVkKHN0cnVj dCBzb2NrICpzaykKIHsKICAgICAgICAgcmV0dXJuIGF0b21pY19yZWFkKCZzay0+c2tfcm1lbV9h bGxvYykgPiAoc2stPnNrX3JjdmJ1ZiA+PiAxKTsKIH0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0 L2lwLmggYi9pbmNsdWRlL25ldC9pcC5oCmluZGV4IGU0NGIxYTQ0ZjY3YS4uMGU5Y2Y0YTc3OGY5 IDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9pcC5oCisrKyBiL2luY2x1ZGUvbmV0L2lwLmgKQEAg LTU0Nyw3ICs1NDcsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaXBfaXBncmVfbWNfbWFwKF9fYmUz MiBuYWRkciwgY29uc3QgdW5zaWduZWQgY2hhciAqYnJvYWRjYXN0LAogI2luY2x1ZGUgPGxpbnV4 L2lwdjYuaD4KICNlbmRpZgogCi1zdGF0aWMgX19pbmxpbmVfXyB2b2lkIGluZXRfcmVzZXRfc2Fk ZHIoc3RydWN0IHNvY2sgKnNrKQorc3RhdGljIGlubGluZSB2b2lkIGluZXRfcmVzZXRfc2FkZHIo c3RydWN0IHNvY2sgKnNrKQogewogCWluZXRfc2soc2spLT5pbmV0X3Jjdl9zYWRkciA9IGluZXRf c2soc2spLT5pbmV0X3NhZGRyID0gMDsKICNpZiBJU19FTkFCTEVEKENPTkZJR19JUFY2KQpkaWZm IC0tZ2l0IGEvaW5jbHVkZS9uZXQvaXA2X2NoZWNrc3VtLmggYi9pbmNsdWRlL25ldC9pcDZfY2hl Y2tzdW0uaAppbmRleCBjY2E4NDA1ODRjODguLjI3NTY3NDc3ZGNjNiAxMDA2NDQKLS0tIGEvaW5j bHVkZS9uZXQvaXA2X2NoZWNrc3VtLmgKKysrIGIvaW5jbHVkZS9uZXQvaXA2X2NoZWNrc3VtLmgK QEAgLTU1LDcgKzU1LDcgQEAgc3RhdGljIGlubGluZSBfX3dzdW0gaXA2X2dyb19jb21wdXRlX3Bz ZXVkbyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgcHJvdG8pCiAJCQkJCSAgICBza2JfZ3JvX2xl bihza2IpLCBwcm90bywgMCkpOwogfQogCi1zdGF0aWMgX19pbmxpbmVfXyBfX3N1bTE2IHRjcF92 Nl9jaGVjayhpbnQgbGVuLAorc3RhdGljIGlubGluZSBfX3N1bTE2IHRjcF92Nl9jaGVjayhpbnQg bGVuLAogCQkJCSAgIGNvbnN0IHN0cnVjdCBpbjZfYWRkciAqc2FkZHIsCiAJCQkJICAgY29uc3Qg c3RydWN0IGluNl9hZGRyICpkYWRkciwKIAkJCQkgICBfX3dzdW0gYmFzZSkKZGlmZiAtLWdpdCBh L2luY2x1ZGUvbmV0L2lweC5oIGIvaW5jbHVkZS9uZXQvaXB4LmgKaW5kZXggYmFmMDkwMzkwOTk4 Li5jZjg5ZWY5MmE1ZjcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2lweC5oCisrKyBiL2luY2x1 ZGUvbmV0L2lweC5oCkBAIC00Nyw3ICs0Nyw3IEBAIHN0cnVjdCBpcHhoZHIgewogLyogRnJvbSBh Zl9pcHguYyAqLwogZXh0ZXJuIGludCBzeXNjdGxfaXB4X3Bwcm9wX2Jyb2FkY2FzdGluZzsKIAot c3RhdGljIF9faW5saW5lX18gc3RydWN0IGlweGhkciAqaXB4X2hkcihzdHJ1Y3Qgc2tfYnVmZiAq c2tiKQorc3RhdGljIGlubGluZSBzdHJ1Y3QgaXB4aGRyICppcHhfaGRyKHN0cnVjdCBza19idWZm ICpza2IpCiB7CiAJcmV0dXJuIChzdHJ1Y3QgaXB4aGRyICopc2tiX3RyYW5zcG9ydF9oZWFkZXIo c2tiKTsKIH0KQEAgLTEzOSw3ICsxMzksNyBAQCB2b2lkIGlweF9wcm9jX2V4aXQodm9pZCk7CiBj b25zdCBjaGFyICppcHhfZnJhbWVfbmFtZShfX2JlMTYpOwogY29uc3QgY2hhciAqaXB4X2Rldmlj ZV9uYW1lKHN0cnVjdCBpcHhfaW50ZXJmYWNlICppbnRyZmMpOwogCi1zdGF0aWMgX19pbmxpbmVf XyB2b2lkIGlweGl0Zl9ob2xkKHN0cnVjdCBpcHhfaW50ZXJmYWNlICppbnRyZmMpCitzdGF0aWMg aW5saW5lIHZvaWQgaXB4aXRmX2hvbGQoc3RydWN0IGlweF9pbnRlcmZhY2UgKmludHJmYykKIHsK IAlyZWZjb3VudF9pbmMoJmludHJmYy0+cmVmY250KTsKIH0KQEAgLTE1NywxOCArMTU3LDE4IEBA IGludCBpcHhydHJfcm91dGVfc2tiKHN0cnVjdCBza19idWZmICpza2IpOwogc3RydWN0IGlweF9y b3V0ZSAqaXB4cnRyX2xvb2t1cChfX2JlMzIgbmV0KTsKIGludCBpcHhydHJfaW9jdGwodW5zaWdu ZWQgaW50IGNtZCwgdm9pZCBfX3VzZXIgKmFyZyk7CiAKLXN0YXRpYyBfX2lubGluZV9fIHZvaWQg aXB4aXRmX3B1dChzdHJ1Y3QgaXB4X2ludGVyZmFjZSAqaW50cmZjKQorc3RhdGljIGlubGluZSB2 b2lkIGlweGl0Zl9wdXQoc3RydWN0IGlweF9pbnRlcmZhY2UgKmludHJmYykKIHsKIAlpZiAocmVm Y291bnRfZGVjX2FuZF90ZXN0KCZpbnRyZmMtPnJlZmNudCkpCiAJCWlweGl0Zl9kb3duKGludHJm Yyk7CiB9CiAKLXN0YXRpYyBfX2lubGluZV9fIHZvaWQgaXB4cnRyX2hvbGQoc3RydWN0IGlweF9y b3V0ZSAqcnQpCitzdGF0aWMgaW5saW5lIHZvaWQgaXB4cnRyX2hvbGQoc3RydWN0IGlweF9yb3V0 ZSAqcnQpCiB7CiAJICAgICAgICByZWZjb3VudF9pbmMoJnJ0LT5yZWZjbnQpOwogfQogCi1zdGF0 aWMgX19pbmxpbmVfXyB2b2lkIGlweHJ0cl9wdXQoc3RydWN0IGlweF9yb3V0ZSAqcnQpCitzdGF0 aWMgaW5saW5lIHZvaWQgaXB4cnRyX3B1dChzdHJ1Y3QgaXB4X3JvdXRlICpydCkKIHsKIAkgICAg ICAgIGlmIChyZWZjb3VudF9kZWNfYW5kX3Rlc3QoJnJ0LT5yZWZjbnQpKQogCQkJICAgICAgICAg ICAgICAgIGtmcmVlKHJ0KTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2xsY19jX2V2LmggYi9p bmNsdWRlL25ldC9sbGNfY19ldi5oCmluZGV4IDM5NDhjZjExMWRkMC4uMjY2Mjc1YTk0NWI0IDEw MDY0NAotLS0gYS9pbmNsdWRlL25ldC9sbGNfY19ldi5oCisrKyBiL2luY2x1ZGUvbmV0L2xsY19j X2V2LmgKQEAgLTEyMCw3ICsxMjAsNyBAQCBzdHJ1Y3QgbGxjX2Nvbm5fc3RhdGVfZXYgewogCXU4 IGNmbV9wcmltOwogfTsKIAotc3RhdGljIF9faW5saW5lX18gc3RydWN0IGxsY19jb25uX3N0YXRl X2V2ICpsbGNfY29ubl9ldihzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQorc3RhdGljIGlubGluZSBzdHJ1 Y3QgbGxjX2Nvbm5fc3RhdGVfZXYgKmxsY19jb25uX2V2KHN0cnVjdCBza19idWZmICpza2IpCiB7 CiAJcmV0dXJuIChzdHJ1Y3QgbGxjX2Nvbm5fc3RhdGVfZXYgKilza2ItPmNiOwogfQpAQCAtMjE2 LDcgKzIxNiw3IEBAIGludCBsbGNfY29ubl9ldl9xbGZ5X3NldF9zdGF0dXNfcmVmdXNlKHN0cnVj dCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYik7CiBpbnQgbGxjX2Nvbm5fZXZfcWxmeV9z ZXRfc3RhdHVzX2NvbmZsaWN0KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYik7 CiBpbnQgbGxjX2Nvbm5fZXZfcWxmeV9zZXRfc3RhdHVzX3JzdF9kb25lKHN0cnVjdCBzb2NrICpz aywgc3RydWN0IHNrX2J1ZmYgKnNrYik7CiAKLXN0YXRpYyBfX2lubGluZV9fIGludCBsbGNfY29u bl9zcGFjZShzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpCitzdGF0aWMgaW5s aW5lIGludCBsbGNfY29ubl9zcGFjZShzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpz a2IpCiB7CiAJcmV0dXJuIGF0b21pY19yZWFkKCZzay0+c2tfcm1lbV9hbGxvYykgKyBza2ItPnRy dWVzaXplIDwKIAkgICAgICAgKHVuc2lnbmVkIGludClzay0+c2tfcmN2YnVmOwpkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9uZXQvbGxjX2Nvbm4uaCBiL2luY2x1ZGUvbmV0L2xsY19jb25uLmgKaW5kZXgg ZGY1MjhhNjIzNTQ4Li4yNzg4MGQxYmZkOTkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2xsY19j b25uLmgKKysrIGIvaW5jbHVkZS9uZXQvbGxjX2Nvbm4uaApAQCAtODUsMTIgKzg1LDEyIEBAIHN0 YXRpYyBpbmxpbmUgc3RydWN0IGxsY19zb2NrICpsbGNfc2soY29uc3Qgc3RydWN0IHNvY2sgKnNr KQogCXJldHVybiAoc3RydWN0IGxsY19zb2NrICopc2s7CiB9CiAKLXN0YXRpYyBfX2lubGluZV9f IHZvaWQgbGxjX3NldF9iYWNrbG9nX3R5cGUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgY2hhciB0eXBl KQorc3RhdGljIGlubGluZSB2b2lkIGxsY19zZXRfYmFja2xvZ190eXBlKHN0cnVjdCBza19idWZm ICpza2IsIGNoYXIgdHlwZSkKIHsKIAlza2ItPmNiW3NpemVvZihza2ItPmNiKSAtIDFdID0gdHlw ZTsKIH0KIAotc3RhdGljIF9faW5saW5lX18gY2hhciBsbGNfYmFja2xvZ190eXBlKHN0cnVjdCBz a19idWZmICpza2IpCitzdGF0aWMgaW5saW5lIGNoYXIgbGxjX2JhY2tsb2dfdHlwZShzdHJ1Y3Qg c2tfYnVmZiAqc2tiKQogewogCXJldHVybiBza2ItPmNiW3NpemVvZihza2ItPmNiKSAtIDFdOwog fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvbGxjX3NfZXYuaCBiL2luY2x1ZGUvbmV0L2xsY19z X2V2LmgKaW5kZXggODRkYjNhNTllZDI4Li4wMDQzOWQzZTlmNWQgMTAwNjQ0Ci0tLSBhL2luY2x1 ZGUvbmV0L2xsY19zX2V2LmgKKysrIGIvaW5jbHVkZS9uZXQvbGxjX3NfZXYuaApAQCAtNDQsNyAr NDQsNyBAQCBzdHJ1Y3QgbGxjX3NhcF9zdGF0ZV9ldiB7CiAJc3RydWN0IGxsY19hZGRyIGRhZGRy OwogfTsKIAotc3RhdGljIF9faW5saW5lX18gc3RydWN0IGxsY19zYXBfc3RhdGVfZXYgKmxsY19z YXBfZXYoc3RydWN0IHNrX2J1ZmYgKnNrYikKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGxsY19zYXBf c3RhdGVfZXYgKmxsY19zYXBfZXYoc3RydWN0IHNrX2J1ZmYgKnNrYikKIHsKIAlyZXR1cm4gKHN0 cnVjdCBsbGNfc2FwX3N0YXRlX2V2ICopc2tiLT5jYjsKIH0KZGlmZiAtLWdpdCBhL2luY2x1ZGUv bmV0L25ldHJvbS5oIGIvaW5jbHVkZS9uZXQvbmV0cm9tLmgKaW5kZXggNWEwNzE0ZmY1MDBmLi4x NzQxYjdjYzg5NjIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L25ldHJvbS5oCisrKyBiL2luY2x1 ZGUvbmV0L25ldHJvbS5oCkBAIC0xMjMsNyArMTIzLDcgQEAgc3RydWN0IG5yX25vZGUgewogI2Rl ZmluZSBucl9ub2RlX2hvbGQoX19ucl9ub2RlKSBcCiAJcmVmY291bnRfaW5jKCYoKF9fbnJfbm9k ZSktPnJlZmNvdW50KSkKIAotc3RhdGljIF9faW5saW5lX18gdm9pZCBucl9ub2RlX3B1dChzdHJ1 Y3QgbnJfbm9kZSAqbnJfbm9kZSkKK3N0YXRpYyBpbmxpbmUgdm9pZCBucl9ub2RlX3B1dChzdHJ1 Y3QgbnJfbm9kZSAqbnJfbm9kZSkKIHsKIAlpZiAocmVmY291bnRfZGVjX2FuZF90ZXN0KCZucl9u b2RlLT5yZWZjb3VudCkpIHsKIAkJa2ZyZWUobnJfbm9kZSk7CkBAIC0xMzMsNyArMTMzLDcgQEAg c3RhdGljIF9faW5saW5lX18gdm9pZCBucl9ub2RlX3B1dChzdHJ1Y3QgbnJfbm9kZSAqbnJfbm9k ZSkKICNkZWZpbmUgbnJfbmVpZ2hfaG9sZChfX25yX25laWdoKSBcCiAJcmVmY291bnRfaW5jKCYo KF9fbnJfbmVpZ2gpLT5yZWZjb3VudCkpCiAKLXN0YXRpYyBfX2lubGluZV9fIHZvaWQgbnJfbmVp Z2hfcHV0KHN0cnVjdCBucl9uZWlnaCAqbnJfbmVpZ2gpCitzdGF0aWMgaW5saW5lIHZvaWQgbnJf bmVpZ2hfcHV0KHN0cnVjdCBucl9uZWlnaCAqbnJfbmVpZ2gpCiB7CiAJaWYgKHJlZmNvdW50X2Rl Y19hbmRfdGVzdCgmbnJfbmVpZ2gtPnJlZmNvdW50KSkgewogCQlpZiAobnJfbmVpZ2gtPmF4MjUp CkBAIC0xNDUsMTMgKzE0NSwxMyBAQCBzdGF0aWMgX19pbmxpbmVfXyB2b2lkIG5yX25laWdoX3B1 dChzdHJ1Y3QgbnJfbmVpZ2ggKm5yX25laWdoKQogCiAvKiBucl9ub2RlX2xvY2sgYW5kIG5yX25v ZGVfdW5sb2NrIGFsc28gaG9sZC9wdXQgdGhlIG5vZGUncyByZWZjb3VudGVyLgogICovCi1zdGF0 aWMgX19pbmxpbmVfXyB2b2lkIG5yX25vZGVfbG9jayhzdHJ1Y3QgbnJfbm9kZSAqbnJfbm9kZSkK K3N0YXRpYyBpbmxpbmUgdm9pZCBucl9ub2RlX2xvY2soc3RydWN0IG5yX25vZGUgKm5yX25vZGUp CiB7CiAJbnJfbm9kZV9ob2xkKG5yX25vZGUpOwogCXNwaW5fbG9ja19iaCgmbnJfbm9kZS0+bm9k ZV9sb2NrKTsKIH0KIAotc3RhdGljIF9faW5saW5lX18gdm9pZCBucl9ub2RlX3VubG9jayhzdHJ1 Y3QgbnJfbm9kZSAqbnJfbm9kZSkKK3N0YXRpYyBpbmxpbmUgdm9pZCBucl9ub2RlX3VubG9jayhz dHJ1Y3QgbnJfbm9kZSAqbnJfbm9kZSkKIHsKIAlzcGluX3VubG9ja19iaCgmbnJfbm9kZS0+bm9k ZV9sb2NrKTsKIAlucl9ub2RlX3B1dChucl9ub2RlKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0 L3NjbS5oIGIvaW5jbHVkZS9uZXQvc2NtLmgKaW5kZXggMWNlMzY1ZjRjMjU2Li5iNzdiZTYzMmI0 NDAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L3NjbS5oCisrKyBiL2luY2x1ZGUvbmV0L3NjbS5o CkBAIC00NCwxNiArNDQsMTYgQEAgdm9pZCBfX3NjbV9kZXN0cm95KHN0cnVjdCBzY21fY29va2ll ICpzY20pOwogc3RydWN0IHNjbV9mcF9saXN0ICpzY21fZnBfZHVwKHN0cnVjdCBzY21fZnBfbGlz dCAqZnBsKTsKIAogI2lmZGVmIENPTkZJR19TRUNVUklUWV9ORVRXT1JLCi1zdGF0aWMgX19pbmxp bmVfXyB2b2lkIHVuaXhfZ2V0X3BlZXJzZWNfZGdyYW0oc3RydWN0IHNvY2tldCAqc29jaywgc3Ry dWN0IHNjbV9jb29raWUgKnNjbSkKK3N0YXRpYyBpbmxpbmUgdm9pZCB1bml4X2dldF9wZWVyc2Vj X2RncmFtKHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBzY21fY29va2llICpzY20pCiB7CiAJ c2VjdXJpdHlfc29ja2V0X2dldHBlZXJzZWNfZGdyYW0oc29jaywgTlVMTCwgJnNjbS0+c2VjaWQp OwogfQogI2Vsc2UKLXN0YXRpYyBfX2lubGluZV9fIHZvaWQgdW5peF9nZXRfcGVlcnNlY19kZ3Jh bShzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qgc2NtX2Nvb2tpZSAqc2NtKQorc3RhdGljIGlu bGluZSB2b2lkIHVuaXhfZ2V0X3BlZXJzZWNfZGdyYW0oc3RydWN0IHNvY2tldCAqc29jaywgc3Ry dWN0IHNjbV9jb29raWUgKnNjbSkKIHsgfQogI2VuZGlmIC8qIENPTkZJR19TRUNVUklUWV9ORVRX T1JLICovCiAKLXN0YXRpYyBfX2lubGluZV9fIHZvaWQgc2NtX3NldF9jcmVkKHN0cnVjdCBzY21f Y29va2llICpzY20sCitzdGF0aWMgaW5saW5lIHZvaWQgc2NtX3NldF9jcmVkKHN0cnVjdCBzY21f Y29va2llICpzY20sCiAJCQkJICAgIHN0cnVjdCBwaWQgKnBpZCwga3VpZF90IHVpZCwga2dpZF90 IGdpZCkKIHsKIAlzY20tPnBpZCAgPSBnZXRfcGlkKHBpZCk7CkBAIC02MiwyMCArNjIsMjAgQEAg c3RhdGljIF9faW5saW5lX18gdm9pZCBzY21fc2V0X2NyZWQoc3RydWN0IHNjbV9jb29raWUgKnNj bSwKIAlzY20tPmNyZWRzLmdpZCA9IGdpZDsKIH0KIAotc3RhdGljIF9faW5saW5lX18gdm9pZCBz Y21fZGVzdHJveV9jcmVkKHN0cnVjdCBzY21fY29va2llICpzY20pCitzdGF0aWMgaW5saW5lIHZv aWQgc2NtX2Rlc3Ryb3lfY3JlZChzdHJ1Y3Qgc2NtX2Nvb2tpZSAqc2NtKQogewogCXB1dF9waWQo c2NtLT5waWQpOwogCXNjbS0+cGlkICA9IE5VTEw7CiB9CiAKLXN0YXRpYyBfX2lubGluZV9fIHZv aWQgc2NtX2Rlc3Ryb3koc3RydWN0IHNjbV9jb29raWUgKnNjbSkKK3N0YXRpYyBpbmxpbmUgdm9p ZCBzY21fZGVzdHJveShzdHJ1Y3Qgc2NtX2Nvb2tpZSAqc2NtKQogewogCXNjbV9kZXN0cm95X2Ny ZWQoc2NtKTsKIAlpZiAoc2NtLT5mcCkKIAkJX19zY21fZGVzdHJveShzY20pOwogfQogCi1zdGF0 aWMgX19pbmxpbmVfXyBpbnQgc2NtX3NlbmQoc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IG1z Z2hkciAqbXNnLAorc3RhdGljIGlubGluZSBpbnQgc2NtX3NlbmQoc3RydWN0IHNvY2tldCAqc29j aywgc3RydWN0IG1zZ2hkciAqbXNnLAogCQkJICAgICAgIHN0cnVjdCBzY21fY29va2llICpzY20s IGJvb2wgZm9yY2VjcmVkcykKIHsKIAltZW1zZXQoc2NtLCAwLCBzaXplb2YoKnNjbSkpOwpAQCAt MTEwLDcgKzExMCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzY21fcGFzc2VjKHN0cnVjdCBzb2Nr ZXQgKnNvY2ssIHN0cnVjdCBtc2doZHIgKm1zZywgc3RydWN0IHNjCiB7IH0KICNlbmRpZiAvKiBD T05GSUdfU0VDVVJJVFlfTkVUV09SSyAqLwogCi1zdGF0aWMgX19pbmxpbmVfXyB2b2lkIHNjbV9y ZWN2KHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBtc2doZHIgKm1zZywKK3N0YXRpYyBpbmxp bmUgdm9pZCBzY21fcmVjdihzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3QgbXNnaGRyICptc2cs CiAJCQkJc3RydWN0IHNjbV9jb29raWUgKnNjbSwgaW50IGZsYWdzKQogewogCWlmICghbXNnLT5t c2dfY29udHJvbCkgewpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvdWRwbGl0ZS5oIGIvaW5jbHVk ZS9uZXQvdWRwbGl0ZS5oCmluZGV4IDkxODVlNDViOTk3Zi4uNzQ3ODU5YTNhMDBmIDEwMDY0NAot LS0gYS9pbmNsdWRlL25ldC91ZHBsaXRlLmgKKysrIGIvaW5jbHVkZS9uZXQvdWRwbGl0ZS5oCkBA IC0xNyw3ICsxNyw3IEBAIGV4dGVybiBzdHJ1Y3QgdWRwX3RhYmxlCQl1ZHBsaXRlX3RhYmxlOwog LyoKICAqCUNoZWNrc3VtIGNvbXB1dGF0aW9uIGlzIGFsbCBpbiBzb2Z0d2FyZSwgaGVuY2Ugc2lt cGxlciBnZXRmcmFnLgogICovCi1zdGF0aWMgX19pbmxpbmVfXyBpbnQgdWRwbGl0ZV9nZXRmcmFn KHZvaWQgKmZyb20sIGNoYXIgKnRvLCBpbnQgIG9mZnNldCwKK3N0YXRpYyBpbmxpbmUgaW50IHVk cGxpdGVfZ2V0ZnJhZyh2b2lkICpmcm9tLCBjaGFyICp0bywgaW50ICBvZmZzZXQsCiAJCQkJICAg ICAgaW50IGxlbiwgaW50IG9kZCwgc3RydWN0IHNrX2J1ZmYgKnNrYikKIHsKIAlzdHJ1Y3QgbXNn aGRyICptc2cgPSBmcm9tOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQveDI1LmggYi9pbmNsdWRl L25ldC94MjUuaAppbmRleCBlZDFhY2MzMDQ0YWMuLjRjYjUzMzQ3OWQ2MSAxMDA2NDQKLS0tIGEv aW5jbHVkZS9uZXQveDI1LmgKKysrIGIvaW5jbHVkZS9uZXQveDI1LmgKQEAgLTI0MiwxMiArMjQy LDEyIEBAIHN0cnVjdCB4MjVfbmVpZ2ggKngyNV9nZXRfbmVpZ2goc3RydWN0IG5ldF9kZXZpY2Ug Kik7CiB2b2lkIHgyNV9saW5rX2ZyZWUodm9pZCk7CiAKIC8qIHgyNV9uZWlnaC5jICovCi1zdGF0 aWMgX19pbmxpbmVfXyB2b2lkIHgyNV9uZWlnaF9ob2xkKHN0cnVjdCB4MjVfbmVpZ2ggKm5iKQor c3RhdGljIGlubGluZSB2b2lkIHgyNV9uZWlnaF9ob2xkKHN0cnVjdCB4MjVfbmVpZ2ggKm5iKQog ewogCXJlZmNvdW50X2luYygmbmItPnJlZmNudCk7CiB9CiAKLXN0YXRpYyBfX2lubGluZV9fIHZv aWQgeDI1X25laWdoX3B1dChzdHJ1Y3QgeDI1X25laWdoICpuYikKK3N0YXRpYyBpbmxpbmUgdm9p ZCB4MjVfbmVpZ2hfcHV0KHN0cnVjdCB4MjVfbmVpZ2ggKm5iKQogewogCWlmIChyZWZjb3VudF9k ZWNfYW5kX3Rlc3QoJm5iLT5yZWZjbnQpKQogCQlrZnJlZShuYik7CkBAIC0yNjUsMTIgKzI2NSwx MiBAQCB2b2lkIHgyNV9yb3V0ZV9kZXZpY2VfZG93bihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KTsK IGludCB4MjVfcm91dGVfaW9jdGwodW5zaWduZWQgaW50LCB2b2lkIF9fdXNlciAqKTsKIHZvaWQg eDI1X3JvdXRlX2ZyZWUodm9pZCk7CiAKLXN0YXRpYyBfX2lubGluZV9fIHZvaWQgeDI1X3JvdXRl X2hvbGQoc3RydWN0IHgyNV9yb3V0ZSAqcnQpCitzdGF0aWMgaW5saW5lIHZvaWQgeDI1X3JvdXRl X2hvbGQoc3RydWN0IHgyNV9yb3V0ZSAqcnQpCiB7CiAJcmVmY291bnRfaW5jKCZydC0+cmVmY250 KTsKIH0KIAotc3RhdGljIF9faW5saW5lX18gdm9pZCB4MjVfcm91dGVfcHV0KHN0cnVjdCB4MjVf cm91dGUgKnJ0KQorc3RhdGljIGlubGluZSB2b2lkIHgyNV9yb3V0ZV9wdXQoc3RydWN0IHgyNV9y b3V0ZSAqcnQpCiB7CiAJaWYgKHJlZmNvdW50X2RlY19hbmRfdGVzdCgmcnQtPnJlZmNudCkpCiAJ CWtmcmVlKHJ0KTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3hmcm0uaCBiL2luY2x1ZGUvbmV0 L3hmcm0uaAppbmRleCAwZWIzOTBjMjA1YWYuLjJmMDNmZDk2ZGNlOSAxMDA2NDQKLS0tIGEvaW5j bHVkZS9uZXQveGZybS5oCisrKyBiL2luY2x1ZGUvbmV0L3hmcm0uaApAQCAtOTAzLDcgKzkwMyw3 IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBhZGRyNF9tYXRjaChfX2JlMzIgYTEsIF9fYmUzMiBhMiwg dTggcHJlZml4bGVuKQogCXJldHVybiAhKChhMSBeIGEyKSAmIGh0b25sKH4wVUwgPDwgKDMyIC0g cHJlZml4bGVuKSkpOwogfQogCi1zdGF0aWMgX19pbmxpbmVfXworc3RhdGljIGlubGluZQogX19i ZTE2IHhmcm1fZmxvd2lfc3BvcnQoY29uc3Qgc3RydWN0IGZsb3dpICpmbCwgY29uc3QgdW5pb24g Zmxvd2lfdWxpICp1bGkpCiB7CiAJX19iZTE2IHBvcnQ7CkBAIC05MzAsNyArOTMwLDcgQEAgX19i ZTE2IHhmcm1fZmxvd2lfc3BvcnQoY29uc3Qgc3RydWN0IGZsb3dpICpmbCwgY29uc3QgdW5pb24g Zmxvd2lfdWxpICp1bGkpCiAJcmV0dXJuIHBvcnQ7CiB9CiAKLXN0YXRpYyBfX2lubGluZV9fCitz dGF0aWMgaW5saW5lCiBfX2JlMTYgeGZybV9mbG93aV9kcG9ydChjb25zdCBzdHJ1Y3QgZmxvd2kg KmZsLCBjb25zdCB1bmlvbiBmbG93aV91bGkgKnVsaSkKIHsKIAlfX2JlMTYgcG9ydDsKQEAgLTEz MjUsNyArMTMyNSw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IHhmcm02X3BvbGljeV9jaGVja19yZXZl cnNlKHN0cnVjdCBzb2NrICpzaywgaW50IGRpciwKIH0KICNlbmRpZgogCi1zdGF0aWMgX19pbmxp bmVfXworc3RhdGljIGlubGluZQogeGZybV9hZGRyZXNzX3QgKnhmcm1fZmxvd2lfZGFkZHIoY29u c3Qgc3RydWN0IGZsb3dpICpmbCwgdW5zaWduZWQgc2hvcnQgZmFtaWx5KQogewogCXN3aXRjaCAo ZmFtaWx5KXsKQEAgLTEzMzcsNyArMTMzNyw3IEBAIHhmcm1fYWRkcmVzc190ICp4ZnJtX2Zsb3dp X2RhZGRyKGNvbnN0IHN0cnVjdCBmbG93aSAqZmwsIHVuc2lnbmVkIHNob3J0IGZhbWlseSkKIAly ZXR1cm4gTlVMTDsKIH0KIAotc3RhdGljIF9faW5saW5lX18KK3N0YXRpYyBpbmxpbmUKIHhmcm1f YWRkcmVzc190ICp4ZnJtX2Zsb3dpX3NhZGRyKGNvbnN0IHN0cnVjdCBmbG93aSAqZmwsIHVuc2ln bmVkIHNob3J0IGZhbWlseSkKIHsKIAlzd2l0Y2ggKGZhbWlseSl7CkBAIC0xMzQ5LDcgKzEzNDks NyBAQCB4ZnJtX2FkZHJlc3NfdCAqeGZybV9mbG93aV9zYWRkcihjb25zdCBzdHJ1Y3QgZmxvd2kg KmZsLCB1bnNpZ25lZCBzaG9ydCBmYW1pbHkpCiAJcmV0dXJuIE5VTEw7CiB9CiAKLXN0YXRpYyBf X2lubGluZV9fCitzdGF0aWMgaW5saW5lCiB2b2lkIHhmcm1fZmxvd2lfYWRkcl9nZXQoY29uc3Qg c3RydWN0IGZsb3dpICpmbCwKIAkJCSB4ZnJtX2FkZHJlc3NfdCAqc2FkZHIsIHhmcm1fYWRkcmVz c190ICpkYWRkciwKIAkJCSB1bnNpZ25lZCBzaG9ydCBmYW1pbHkpCkBAIC0xMzY2LDcgKzEzNjYs NyBAQCB2b2lkIHhmcm1fZmxvd2lfYWRkcl9nZXQoY29uc3Qgc3RydWN0IGZsb3dpICpmbCwKIAl9 CiB9CiAKLXN0YXRpYyBfX2lubGluZV9fIGludAorc3RhdGljIGlubGluZSBpbnQKIF9feGZybTRf c3RhdGVfYWRkcl9jaGVjayhjb25zdCBzdHJ1Y3QgeGZybV9zdGF0ZSAqeCwKIAkJCSBjb25zdCB4 ZnJtX2FkZHJlc3NfdCAqZGFkZHIsIGNvbnN0IHhmcm1fYWRkcmVzc190ICpzYWRkcikKIHsKQEAg LTEzNzYsNyArMTM3Niw3IEBAIF9feGZybTRfc3RhdGVfYWRkcl9jaGVjayhjb25zdCBzdHJ1Y3Qg eGZybV9zdGF0ZSAqeCwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIF9faW5saW5lX18gaW50Citz dGF0aWMgaW5saW5lIGludAogX194ZnJtNl9zdGF0ZV9hZGRyX2NoZWNrKGNvbnN0IHN0cnVjdCB4 ZnJtX3N0YXRlICp4LAogCQkJIGNvbnN0IHhmcm1fYWRkcmVzc190ICpkYWRkciwgY29uc3QgeGZy bV9hZGRyZXNzX3QgKnNhZGRyKQogewpAQCAtMTM4OCw3ICsxMzg4LDcgQEAgX194ZnJtNl9zdGF0 ZV9hZGRyX2NoZWNrKGNvbnN0IHN0cnVjdCB4ZnJtX3N0YXRlICp4LAogCXJldHVybiAwOwogfQog Ci1zdGF0aWMgX19pbmxpbmVfXyBpbnQKK3N0YXRpYyBpbmxpbmUgaW50CiB4ZnJtX3N0YXRlX2Fk ZHJfY2hlY2soY29uc3Qgc3RydWN0IHhmcm1fc3RhdGUgKngsCiAJCSAgICAgIGNvbnN0IHhmcm1f YWRkcmVzc190ICpkYWRkciwgY29uc3QgeGZybV9hZGRyZXNzX3QgKnNhZGRyLAogCQkgICAgICB1 bnNpZ25lZCBzaG9ydCBmYW1pbHkpCkBAIC0xNDAyLDcgKzE0MDIsNyBAQCB4ZnJtX3N0YXRlX2Fk ZHJfY2hlY2soY29uc3Qgc3RydWN0IHhmcm1fc3RhdGUgKngsCiAJcmV0dXJuIDA7CiB9CiAKLXN0 YXRpYyBfX2lubGluZV9fIGludAorc3RhdGljIGlubGluZSBpbnQKIHhmcm1fc3RhdGVfYWRkcl9m bG93X2NoZWNrKGNvbnN0IHN0cnVjdCB4ZnJtX3N0YXRlICp4LCBjb25zdCBzdHJ1Y3QgZmxvd2kg KmZsLAogCQkJICAgdW5zaWduZWQgc2hvcnQgZmFtaWx5KQogewpkaWZmIC0tZ2l0IGEvaW5jbHVk ZS91YXBpL2xpbnV4L2F0bS5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L2F0bS5oCmluZGV4IDk1ZWJk Y2Y0ZmU4OC4uYTg5YzY1MjlkMGUwIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvYXRt LmgKKysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L2F0bS5oCkBAIC0yMTUsMTMgKzIxNSwxMyBAQCBz dHJ1Y3Qgc29ja2FkZHJfYXRtc3ZjIHsKIH07CiAKIAotc3RhdGljIF9faW5saW5lX18gaW50IGF0 bXN2Y19hZGRyX2luX3VzZShzdHJ1Y3Qgc29ja2FkZHJfYXRtc3ZjIGFkZHIpCitzdGF0aWMgaW5s aW5lIGludCBhdG1zdmNfYWRkcl9pbl91c2Uoc3RydWN0IHNvY2thZGRyX2F0bXN2YyBhZGRyKQog ewogCXJldHVybiAqYWRkci5zYXNfYWRkci5wcnYgfHwgKmFkZHIuc2FzX2FkZHIucHViOwogfQog CiAKLXN0YXRpYyBfX2lubGluZV9fIGludCBhdG1wdmNfYWRkcl9pbl91c2Uoc3RydWN0IHNvY2th ZGRyX2F0bXB2YyBhZGRyKQorc3RhdGljIGlubGluZSBpbnQgYXRtcHZjX2FkZHJfaW5fdXNlKHN0 cnVjdCBzb2NrYWRkcl9hdG1wdmMgYWRkcikKIHsKIAlyZXR1cm4gYWRkci5zYXBfYWRkci5pdGYg fHwgYWRkci5zYXBfYWRkci52cGkgfHwgYWRkci5zYXBfYWRkci52Y2k7CiB9CmRpZmYgLS1naXQg YS9pbmNsdWRlL3VhcGkvbGludXgvYXRtc2FwLmggYi9pbmNsdWRlL3VhcGkvbGludXgvYXRtc2Fw LmgKaW5kZXggZmMwNTI0ODFlYWUwLi45N2YzNjk5ZWFkMGIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUv dWFwaS9saW51eC9hdG1zYXAuaAorKysgYi9pbmNsdWRlL3VhcGkvbGludXgvYXRtc2FwLmgKQEAg LTE1NSw3ICsxNTUsNyBAQCBzdHJ1Y3QgYXRtX3NhcCB7CiB9OwogCiAKLXN0YXRpYyBfX2lubGlu ZV9fIGludCBibGxpX2luX3VzZShzdHJ1Y3QgYXRtX2JsbGkgYmxsaSkKK3N0YXRpYyBpbmxpbmUg aW50IGJsbGlfaW5fdXNlKHN0cnVjdCBhdG1fYmxsaSBibGxpKQogewogCXJldHVybiBibGxpLmwy X3Byb3RvIHx8IGJsbGkubDNfcHJvdG87CiB9CmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGlu dXgvbWFwX3RvXzdzZWdtZW50LmggYi9pbmNsdWRlL3VhcGkvbGludXgvbWFwX3RvXzdzZWdtZW50 LmgKaW5kZXggZjllZDE4MTM0YjgzLi4xNmM4OWFkYWIyMjUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUv dWFwaS9saW51eC9tYXBfdG9fN3NlZ21lbnQuaAorKysgYi9pbmNsdWRlL3VhcGkvbGludXgvbWFw X3RvXzdzZWdtZW50LmgKQEAgLTc2LDcgKzc2LDcgQEAgc3RydWN0IHNlZzdfY29udmVyc2lvbl9t YXAgewogCXVuc2lnbmVkIGNoYXIJdGFibGVbMTI4XTsKIH07CiAKLXN0YXRpYyBfX2lubGluZV9f IGludCBtYXBfdG9fc2VnNyhzdHJ1Y3Qgc2VnN19jb252ZXJzaW9uX21hcCAqbWFwLCBpbnQgYykK K3N0YXRpYyBpbmxpbmUgaW50IG1hcF90b19zZWc3KHN0cnVjdCBzZWc3X2NvbnZlcnNpb25fbWFw ICptYXAsIGludCBjKQogewogCXJldHVybiBjID49IDAgJiYgYyA8IHNpemVvZihtYXAtPnRhYmxl KSA/IG1hcC0+dGFibGVbY10gOiAtRUlOVkFMOwogfQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBp L2xpbnV4L25ldGZpbHRlcl9hcnAvYXJwX3RhYmxlcy5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L25l dGZpbHRlcl9hcnAvYXJwX3RhYmxlcy5oCmluZGV4IGEyYTA5MjdkOWJkNi4uNGQ3MzNiYmFhMTgz IDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvbmV0ZmlsdGVyX2FycC9hcnBfdGFibGVz LmgKKysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L25ldGZpbHRlcl9hcnAvYXJwX3RhYmxlcy5oCkBA IC0xOTcsNyArMTk3LDcgQEAgc3RydWN0IGFycHRfZ2V0X2VudHJpZXMgewogfTsKIAogLyogSGVs cGVyIGZ1bmN0aW9ucyAqLwotc3RhdGljIF9faW5saW5lX18gc3RydWN0IHh0X2VudHJ5X3Rhcmdl dCAqYXJwdF9nZXRfdGFyZ2V0KHN0cnVjdCBhcnB0X2VudHJ5ICplKQorc3RhdGljIGlubGluZSBz dHJ1Y3QgeHRfZW50cnlfdGFyZ2V0ICphcnB0X2dldF90YXJnZXQoc3RydWN0IGFycHRfZW50cnkg KmUpCiB7CiAJcmV0dXJuICh2b2lkICopZSArIGUtPnRhcmdldF9vZmZzZXQ7CiB9CmRpZmYgLS1n aXQgYS9pbmNsdWRlL3VhcGkvbGludXgvbmV0ZmlsdGVyX2JyaWRnZS9lYnRhYmxlcy5oIGIvaW5j bHVkZS91YXBpL2xpbnV4L25ldGZpbHRlcl9icmlkZ2UvZWJ0YWJsZXMuaAppbmRleCAzYjg2YzE0 ZWE0OWQuLjBjNWJmOTVhOGQ0NCAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L25ldGZp bHRlcl9icmlkZ2UvZWJ0YWJsZXMuaAorKysgYi9pbmNsdWRlL3VhcGkvbGludXgvbmV0ZmlsdGVy X2JyaWRnZS9lYnRhYmxlcy5oCkBAIC0xOTEsNyArMTkxLDcgQEAgc3RydWN0IGVidF9lbnRyeSB7 CiAJdW5zaWduZWQgY2hhciBlbGVtc1swXSBfX2F0dHJpYnV0ZV9fICgoYWxpZ25lZCAoX19hbGln bm9mX18oc3RydWN0IGVidF9yZXBsYWNlKSkpKTsKIH07CiAKLXN0YXRpYyBfX2lubGluZV9fIHN0 cnVjdCBlYnRfZW50cnlfdGFyZ2V0ICoKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGVidF9lbnRyeV90 YXJnZXQgKgogZWJ0X2dldF90YXJnZXQoc3RydWN0IGVidF9lbnRyeSAqZSkKIHsKIAlyZXR1cm4g KHZvaWQgKillICsgZS0+dGFyZ2V0X29mZnNldDsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9s aW51eC9uZXRmaWx0ZXJfaXB2NC9pcF90YWJsZXMuaCBiL2luY2x1ZGUvdWFwaS9saW51eC9uZXRm aWx0ZXJfaXB2NC9pcF90YWJsZXMuaAppbmRleCA2YWFlYjE0YmZjZTEuLjA2Yzc5MDBlMzZjNCAx MDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L25ldGZpbHRlcl9pcHY0L2lwX3RhYmxlcy5o CisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC9uZXRmaWx0ZXJfaXB2NC9pcF90YWJsZXMuaApAQCAt MjE5LDcgKzIxOSw3IEBAIHN0cnVjdCBpcHRfZ2V0X2VudHJpZXMgewogfTsKIAogLyogSGVscGVy IGZ1bmN0aW9ucyAqLwotc3RhdGljIF9faW5saW5lX18gc3RydWN0IHh0X2VudHJ5X3RhcmdldCAq CitzdGF0aWMgaW5saW5lIHN0cnVjdCB4dF9lbnRyeV90YXJnZXQgKgogaXB0X2dldF90YXJnZXQo c3RydWN0IGlwdF9lbnRyeSAqZSkKIHsKIAlyZXR1cm4gKHZvaWQgKillICsgZS0+dGFyZ2V0X29m ZnNldDsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9uZXRmaWx0ZXJfaXB2Ni9pcDZf dGFibGVzLmggYi9pbmNsdWRlL3VhcGkvbGludXgvbmV0ZmlsdGVyX2lwdjYvaXA2X3RhYmxlcy5o CmluZGV4IDAzMWQwYTQzYmVkMi4uZjg0NDY0YWFiNjViIDEwMDY0NAotLS0gYS9pbmNsdWRlL3Vh cGkvbGludXgvbmV0ZmlsdGVyX2lwdjYvaXA2X3RhYmxlcy5oCisrKyBiL2luY2x1ZGUvdWFwaS9s aW51eC9uZXRmaWx0ZXJfaXB2Ni9pcDZfdGFibGVzLmgKQEAgLTI1OSw3ICsyNTksNyBAQCBzdHJ1 Y3QgaXA2dF9nZXRfZW50cmllcyB7CiB9OwogCiAvKiBIZWxwZXIgZnVuY3Rpb25zICovCi1zdGF0 aWMgX19pbmxpbmVfXyBzdHJ1Y3QgeHRfZW50cnlfdGFyZ2V0ICoKK3N0YXRpYyBpbmxpbmUgc3Ry dWN0IHh0X2VudHJ5X3RhcmdldCAqCiBpcDZ0X2dldF90YXJnZXQoc3RydWN0IGlwNnRfZW50cnkg KmUpCiB7CiAJcmV0dXJuICh2b2lkICopZSArIGUtPnRhcmdldF9vZmZzZXQ7CmRpZmYgLS1naXQg YS9pbmNsdWRlL3ZpZGVvL25ld3BvcnQuaCBiL2luY2x1ZGUvdmlkZW8vbmV3cG9ydC5oCmluZGV4 IGJjYmIzZDFiNmJmOS4uMTA4YmM1NTRjNGI4IDEwMDY0NAotLS0gYS9pbmNsdWRlL3ZpZGVvL25l d3BvcnQuaAorKysgYi9pbmNsdWRlL3ZpZGVvL25ld3BvcnQuaApAQCAtNDI2LDcgKzQyNiw3IEBA IHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgc2hvcnQgbmV3cG9ydF92YzJfZ2V0KHN0cnVjdCBuZXdw b3J0X3JlZ3MgKnJlZ3MsCiAjZGVmaW5lIE5DTUFQX1JFR0FERFJfUlJFRyAgIDB4MDAwMDAwNjAK ICNkZWZpbmUgTkNNQVBfUFJPVE9DT0wgICAgICAgKDB4MDAwMDgwMDAgfCAweDAwMDQwMDAwIHwg MHgwMDgwMDAwMCkKIAotc3RhdGljIF9faW5saW5lX18gdm9pZCBuZXdwb3J0X2NtYXBfc2V0YWRk cihzdHJ1Y3QgbmV3cG9ydF9yZWdzICpyZWdzLAorc3RhdGljIGlubGluZSB2b2lkIG5ld3BvcnRf Y21hcF9zZXRhZGRyKHN0cnVjdCBuZXdwb3J0X3JlZ3MgKnJlZ3MsCiAJCQkJCXVuc2lnbmVkIHNo b3J0IGFkZHIpCiB7CiAJcmVncy0+c2V0LmRjYm1vZGUgPSAoTlBPUlRfRE1PREVfQUNNQUxMIHwg TkNNQVBfUFJPVE9DT0wgfApAQCAtNDM3LDcgKzQzNyw3IEBAIHN0YXRpYyBfX2lubGluZV9fIHZv aWQgbmV3cG9ydF9jbWFwX3NldGFkZHIoc3RydWN0IG5ld3BvcnRfcmVncyAqcmVncywKIAkJCSAg IE5DTUFQX1JFR0FERFJfUEJVRiB8IE5QT1JUX0RNT0RFX1czKTsKIH0KIAotc3RhdGljIF9faW5s aW5lX18gdm9pZCBuZXdwb3J0X2NtYXBfc2V0cmdiKHN0cnVjdCBuZXdwb3J0X3JlZ3MgKnJlZ3Ms CitzdGF0aWMgaW5saW5lIHZvaWQgbmV3cG9ydF9jbWFwX3NldHJnYihzdHJ1Y3QgbmV3cG9ydF9y ZWdzICpyZWdzLAogCQkJCSAgICAgICB1bnNpZ25lZCBjaGFyIHJlZCwKIAkJCQkgICAgICAgdW5z aWduZWQgY2hhciBncmVlbiwKIAkJCQkgICAgICAgdW5zaWduZWQgY2hhciBibHVlKQpAQCAtNDUw LDcgKzQ1MCw3IEBAIHN0YXRpYyBfX2lubGluZV9fIHZvaWQgbmV3cG9ydF9jbWFwX3NldHJnYihz dHJ1Y3QgbmV3cG9ydF9yZWdzICpyZWdzLAogCiAvKiBNaXNjZWxsYW5lb3VzIE5FV1BPUlQgcm91 dGluZXMuICovCiAjZGVmaW5lIEJVU1lfVElNRU9VVCAxMDAwMDAKLXN0YXRpYyBfX2lubGluZV9f IGludCBuZXdwb3J0X3dhaXQoc3RydWN0IG5ld3BvcnRfcmVncyAqcmVncykKK3N0YXRpYyBpbmxp bmUgaW50IG5ld3BvcnRfd2FpdChzdHJ1Y3QgbmV3cG9ydF9yZWdzICpyZWdzKQogewogCWludCB0 ID0gQlVTWV9USU1FT1VUOwogCkBAIC00NjAsNyArNDYwLDcgQEAgc3RhdGljIF9faW5saW5lX18g aW50IG5ld3BvcnRfd2FpdChzdHJ1Y3QgbmV3cG9ydF9yZWdzICpyZWdzKQogCXJldHVybiAhdDsK IH0KIAotc3RhdGljIF9faW5saW5lX18gaW50IG5ld3BvcnRfYmZ3YWl0KHN0cnVjdCBuZXdwb3J0 X3JlZ3MgKnJlZ3MpCitzdGF0aWMgaW5saW5lIGludCBuZXdwb3J0X2Jmd2FpdChzdHJ1Y3QgbmV3 cG9ydF9yZWdzICpyZWdzKQogewogCWludCB0ID0gQlVTWV9USU1FT1VUOwogCkBAIC01NDcsNyAr NTQ3LDcgQEAgc3RhdGljIF9faW5saW5lX18gaW50IG5ld3BvcnRfYmZ3YWl0KHN0cnVjdCBuZXdw b3J0X3JlZ3MgKnJlZ3MpCiAjZGVmaW5lIFdBWVNMT1dfRENCX1hNQVA5X1BST1RPQ09MIERDQl9D WUNMRVMgKDEyLCAxMiwgMCkKICNkZWZpbmUgUl9EQ0JfWE1BUDlfUFJPVE9DT0wgICAgICAgRENC X0NZQ0xFUyAoMiwgMSwgMykKIAotc3RhdGljIF9faW5saW5lX18gdm9pZAorc3RhdGljIGlubGlu ZSB2b2lkCiB4bWFwOUZJRk9XYWl0IChzdHJ1Y3QgbmV3cG9ydF9yZWdzICpyZXgpCiB7CiAgICAg ICAgIHJleC0+c2V0LmRjYm1vZGUgPSBEQ0JfWE1BUDAgfCBYTTlfQ1JTX0ZJRk9fQVZBSUwgfApA QCAtNTU4LDcgKzU1OCw3IEBAIHhtYXA5RklGT1dhaXQgKHN0cnVjdCBuZXdwb3J0X3JlZ3MgKnJl eCkKIAkJOwogfQogCi1zdGF0aWMgX19pbmxpbmVfXyB2b2lkCitzdGF0aWMgaW5saW5lIHZvaWQK IHhtYXA5U2V0TW9kZVJlZyAoc3RydWN0IG5ld3BvcnRfcmVncyAqcmV4LCB1bnNpZ25lZCBpbnQg bW9kZXJlZywgdW5zaWduZWQgaW50IGRhdGEyNCwgaW50IGNmcmVxKQogewogICAgICAgICBpZiAo Y2ZyZXEgPiAxMTkpCmRpZmYgLS1naXQgYS9saWIvenN0ZC9tZW0uaCBiL2xpYi96c3RkL21lbS5o CmluZGV4IDNhMGYzNGM4NzA2Yy4uNzM5ODM3YTU5YWQ2IDEwMDY0NAotLS0gYS9saWIvenN0ZC9t ZW0uaAorKysgYi9saWIvenN0ZC9tZW0uaApAQCAtMjcsNyArMjcsNyBAQAogLyotKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKiAgQ29tcGlsZXIgc3BlY2lmaWNzCiAq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0jZGVmaW5lIFpTVERf U1RBVElDIHN0YXRpYyBfX2lubGluZSBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKQorI2RlZmluZSBa U1REX1NUQVRJQyBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKHVudXNlZCkpCiAKIC8qLSoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqCiAqICBCYXNpYyBUeXBlcwpkaWZmIC0tZ2l0IGEvbmV0L2FwcGxldGFsay9hdGFsa19wcm9j LmMgYi9uZXQvYXBwbGV0YWxrL2F0YWxrX3Byb2MuYwppbmRleCA4MDA2Mjk1ZjhiZDcuLjZiYzdj ODBhNDRkZSAxMDA2NDQKLS0tIGEvbmV0L2FwcGxldGFsay9hdGFsa19wcm9jLmMKKysrIGIvbmV0 L2FwcGxldGFsay9hdGFsa19wcm9jLmMKQEAgLTE3LDcgKzE3LDcgQEAKICNpbmNsdWRlIDxsaW51 eC9leHBvcnQuaD4KIAogCi1zdGF0aWMgX19pbmxpbmVfXyBzdHJ1Y3QgYXRhbGtfaWZhY2UgKmF0 YWxrX2dldF9pbnRlcmZhY2VfaWR4KGxvZmZfdCBwb3MpCitzdGF0aWMgaW5saW5lIHN0cnVjdCBh dGFsa19pZmFjZSAqYXRhbGtfZ2V0X2ludGVyZmFjZV9pZHgobG9mZl90IHBvcykKIHsKIAlzdHJ1 Y3QgYXRhbGtfaWZhY2UgKmk7CiAKQEAgLTc4LDcgKzc4LDcgQEAgc3RhdGljIGludCBhdGFsa19z ZXFfaW50ZXJmYWNlX3Nob3coc3RydWN0IHNlcV9maWxlICpzZXEsIHZvaWQgKnYpCiAJcmV0dXJu IDA7CiB9CiAKLXN0YXRpYyBfX2lubGluZV9fIHN0cnVjdCBhdGFsa19yb3V0ZSAqYXRhbGtfZ2V0 X3JvdXRlX2lkeChsb2ZmX3QgcG9zKQorc3RhdGljIGlubGluZSBzdHJ1Y3QgYXRhbGtfcm91dGUg KmF0YWxrX2dldF9yb3V0ZV9pZHgobG9mZl90IHBvcykKIHsKIAlzdHJ1Y3QgYXRhbGtfcm91dGUg KnI7CiAKZGlmZiAtLWdpdCBhL25ldC9hcHBsZXRhbGsvZGRwLmMgYi9uZXQvYXBwbGV0YWxrL2Rk cC5jCmluZGV4IDliNmJjNWFiZTk0Ni4uODIyYmY0NWFkYjczIDEwMDY0NAotLS0gYS9uZXQvYXBw bGV0YWxrL2RkcC5jCisrKyBiL25ldC9hcHBsZXRhbGsvZGRwLmMKQEAgLTEyNzcsNyArMTI3Nyw3 IEBAIHN0YXRpYyBpbnQgYXRhbGtfZ2V0bmFtZShzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qg c29ja2FkZHIgKnVhZGRyLAogfQogCiAjaWYgSVNfRU5BQkxFRChDT05GSUdfSVBERFApCi1zdGF0 aWMgX19pbmxpbmVfXyBpbnQgaXNfaXBfb3Zlcl9kZHAoc3RydWN0IHNrX2J1ZmYgKnNrYikKK3N0 YXRpYyBpbmxpbmUgaW50IGlzX2lwX292ZXJfZGRwKHN0cnVjdCBza19idWZmICpza2IpCiB7CiAJ cmV0dXJuIHNrYi0+ZGF0YVsxMl0gPT0gMjI7CiB9CmRpZmYgLS1naXQgYS9uZXQvY29yZS9uZWln aGJvdXIuYyBiL25ldC9jb3JlL25laWdoYm91ci5jCmluZGV4IDkxNTkyZmNlZWFhZC4uOGQyZmQx MTRmNmUyIDEwMDY0NAotLS0gYS9uZXQvY29yZS9uZWlnaGJvdXIuYworKysgYi9uZXQvY29yZS9u ZWlnaGJvdXIuYwpAQCAtODY1LDcgKzg2NSw3IEBAIHN0YXRpYyB2b2lkIG5laWdoX3BlcmlvZGlj X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCXdyaXRlX3VubG9ja19iaCgmdGJsLT5s b2NrKTsKIH0KIAotc3RhdGljIF9faW5saW5lX18gaW50IG5laWdoX21heF9wcm9iZXMoc3RydWN0 IG5laWdoYm91ciAqbikKK3N0YXRpYyBpbmxpbmUgaW50IG5laWdoX21heF9wcm9iZXMoc3RydWN0 IG5laWdoYm91ciAqbikKIHsKIAlzdHJ1Y3QgbmVpZ2hfcGFybXMgKnAgPSBuLT5wYXJtczsKIAly ZXR1cm4gTkVJR0hfVkFSKHAsIFVDQVNUX1BST0JFUykgKyBORUlHSF9WQVIocCwgQVBQX1BST0JF UykgKwpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvc2NtLmMgYi9uZXQvY29yZS9zY20uYwppbmRleCBi MWZmOGE0NDE3NDguLmQ1MDhhMjdmODU1MiAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvc2NtLmMKKysr IGIvbmV0L2NvcmUvc2NtLmMKQEAgLTQ1LDcgKzQ1LDcgQEAKICAqCXNldHUoZylpZC4KICAqLwog Ci1zdGF0aWMgX19pbmxpbmVfXyBpbnQgc2NtX2NoZWNrX2NyZWRzKHN0cnVjdCB1Y3JlZCAqY3Jl ZHMpCitzdGF0aWMgaW5saW5lIGludCBzY21fY2hlY2tfY3JlZHMoc3RydWN0IHVjcmVkICpjcmVk cykKIHsKIAljb25zdCBzdHJ1Y3QgY3JlZCAqY3JlZCA9IGN1cnJlbnRfY3JlZCgpOwogCWt1aWRf dCB1aWQgPSBtYWtlX2t1aWQoY3JlZC0+dXNlcl9ucywgY3JlZHMtPnVpZCk7CmRpZmYgLS1naXQg YS9uZXQvZGVjbmV0L2RuX25zcF9pbi5jIGIvbmV0L2RlY25ldC9kbl9uc3BfaW4uYwppbmRleCAy ZmI1ZTA1NWJhMjUuLjUwOGJiN2EzNDFhYSAxMDA2NDQKLS0tIGEvbmV0L2RlY25ldC9kbl9uc3Bf aW4uYworKysgYi9uZXQvZGVjbmV0L2RuX25zcF9pbi5jCkBAIC01ODMsNyArNTgzLDcgQEAgc3Rh dGljIHZvaWQgZG5fbnNwX2xpbmtzZXJ2aWNlKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1 ZmYgKnNrYikKICAqIGJoX2xvY2tfc29jaygpIChpdHMgYWxyZWFkeSBoZWxkIHdoZW4gdGhpcyBp cyBjYWxsZWQpIHdoaWNoCiAgKiBhbHNvIGFsbG93cyBkYXRhIGFuZCBvdGhlciBkYXRhIHRvIGJl IHF1ZXVlZCB0byBhIHNvY2tldC4KICAqLwotc3RhdGljIF9faW5saW5lX18gaW50IGRuX3F1ZXVl X3NrYihzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IsIGludCBzaWcsIHN0cnVj dCBza19idWZmX2hlYWQgKnF1ZXVlKQorc3RhdGljIGlubGluZSBpbnQgZG5fcXVldWVfc2tiKHN0 cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IHNpZywgc3RydWN0IHNrX2J1 ZmZfaGVhZCAqcXVldWUpCiB7CiAJaW50IGVycjsKIApkaWZmIC0tZ2l0IGEvbmV0L2RlY25ldC9k bl9uc3Bfb3V0LmMgYi9uZXQvZGVjbmV0L2RuX25zcF9vdXQuYwppbmRleCBhMTc3OWRlNmJkOWMu LjJlZDMwNmNlOTAxMCAxMDA2NDQKLS0tIGEvbmV0L2RlY25ldC9kbl9uc3Bfb3V0LmMKKysrIGIv bmV0L2RlY25ldC9kbl9uc3Bfb3V0LmMKQEAgLTUyOSw3ICs1MjksNyBAQCB2b2lkIGRuX3NlbmRf Y29ubl9jb25mKHN0cnVjdCBzb2NrICpzaywgZ2ZwX3QgZ2ZwKQogfQogCiAKLXN0YXRpYyBfX2lu bGluZV9fIHZvaWQgZG5fbnNwX2RvX2Rpc2Moc3RydWN0IHNvY2sgKnNrLCB1bnNpZ25lZCBjaGFy IG1zZ2ZsZywKK3N0YXRpYyBpbmxpbmUgdm9pZCBkbl9uc3BfZG9fZGlzYyhzdHJ1Y3Qgc29jayAq c2ssIHVuc2lnbmVkIGNoYXIgbXNnZmxnLAogCQkJdW5zaWduZWQgc2hvcnQgcmVhc29uLCBnZnBf dCBnZnAsCiAJCQlzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QsCiAJCQlpbnQgZGRsLCB1bnNpZ25lZCBj aGFyICpkZCwgX19sZTE2IHJlbSwgX19sZTE2IGxvYykKZGlmZiAtLWdpdCBhL25ldC9kZWNuZXQv ZG5fcm91dGUuYyBiL25ldC9kZWNuZXQvZG5fcm91dGUuYwppbmRleCAxYzAwMmMwZmI3MTIuLjZi N2M2MTU0NGQ3NiAxMDA2NDQKLS0tIGEvbmV0L2RlY25ldC9kbl9yb3V0ZS5jCisrKyBiL25ldC9k ZWNuZXQvZG5fcm91dGUuYwpAQCAtMTc0LDcgKzE3NCw3IEBAIHN0YXRpYyB2b2lkIGRuX2RzdF9p ZmRvd24oc3RydWN0IGRzdF9lbnRyeSAqZHN0LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQg aG93CiAJfQogfQogCi1zdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgZG5faGFzaChfX2xl MTYgc3JjLCBfX2xlMTYgZHN0KQorc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgZG5faGFzaChf X2xlMTYgc3JjLCBfX2xlMTYgZHN0KQogewogCV9fdTE2IHRtcCA9IChfX3UxNiBfX2ZvcmNlKShz cmMgXiBkc3QpOwogCXRtcCBePSAodG1wID4+IDMpOwpkaWZmIC0tZ2l0IGEvbmV0L2RlY25ldC9k bl90YWJsZS5jIGIvbmV0L2RlY25ldC9kbl90YWJsZS5jCmluZGV4IGYwNzEwYjVkMDM3ZC4uOTBi NTE0NGMyMGJmIDEwMDY0NAotLS0gYS9uZXQvZGVjbmV0L2RuX3RhYmxlLmMKKysrIGIvbmV0L2Rl Y25ldC9kbl90YWJsZS5jCkBAIC00MDUsNyArNDA1LDcgQEAgc3RhdGljIHZvaWQgZG5fcnRtc2df ZmliKGludCBldmVudCwgc3RydWN0IGRuX2ZpYl9ub2RlICpmLCBpbnQgeiwgdTMyIHRiX2lkLAog CQlydG5sX3NldF9za19lcnIoJmluaXRfbmV0LCBSVE5MR1JQX0RFQ25ldF9ST1VURSwgZXJyKTsK IH0KIAotc3RhdGljIF9faW5saW5lX18gaW50IGRuX2hhc2hfZHVtcF9idWNrZXQoc3RydWN0IHNr X2J1ZmYgKnNrYiwKK3N0YXRpYyBpbmxpbmUgaW50IGRuX2hhc2hfZHVtcF9idWNrZXQoc3RydWN0 IHNrX2J1ZmYgKnNrYiwKIAkJCQlzdHJ1Y3QgbmV0bGlua19jYWxsYmFjayAqY2IsCiAJCQkJc3Ry dWN0IGRuX2ZpYl90YWJsZSAqdGIsCiAJCQkJc3RydWN0IGRuX3pvbmUgKmR6LApAQCAtNDM0LDcg KzQzNCw3IEBAIHN0YXRpYyBfX2lubGluZV9fIGludCBkbl9oYXNoX2R1bXBfYnVja2V0KHN0cnVj dCBza19idWZmICpza2IsCiAJcmV0dXJuIHNrYi0+bGVuOwogfQogCi1zdGF0aWMgX19pbmxpbmVf XyBpbnQgZG5faGFzaF9kdW1wX3pvbmUoc3RydWN0IHNrX2J1ZmYgKnNrYiwKK3N0YXRpYyBpbmxp bmUgaW50IGRuX2hhc2hfZHVtcF96b25lKHN0cnVjdCBza19idWZmICpza2IsCiAJCQkJc3RydWN0 IG5ldGxpbmtfY2FsbGJhY2sgKmNiLAogCQkJCXN0cnVjdCBkbl9maWJfdGFibGUgKnRiLAogCQkJ CXN0cnVjdCBkbl96b25lICpkeikKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2lnbXAuYyBiL25ldC9p cHY0L2lnbXAuYwppbmRleCA0ZGEzOTQ0NmRhMmQuLjE3N2UxZjljNmJjZSAxMDA2NDQKLS0tIGEv bmV0L2lwdjQvaWdtcC5jCisrKyBiL25ldC9pcHY0L2lnbXAuYwpAQCAtMTgsNyArMTgsNyBAQAog ICoKICAqCUZpeGVzOgogICoKLSAqCQlBbGFuIENveAk6CUFkZGVkIGxvdHMgb2YgX19pbmxpbmVf XyB0byBvcHRpbWlzZQorICoJCUFsYW4gQ294CToJQWRkZWQgbG90cyBvZiBpbmxpbmUgdG8gb3B0 aW1pc2UKICAqCQkJCQl0aGUgbWVtb3J5IHVzYWdlIG9mIGFsbCB0aGUgdGlueSBsaXR0bGUKICAq CQkJCQlmdW5jdGlvbnMuCiAgKgkJQWxhbiBDb3gJOglEdW1wZWQgdGhlIGhlYWRlciBidWlsZGlu ZyBleHBlcmltZW50LgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvYWZfaW5ldDYuYyBiL25ldC9pcHY2 L2FmX2luZXQ2LmMKaW5kZXggOWE0MjYxZTUwMjcyLi4zNTg5NmU5ODk3YzEgMTAwNjQ0Ci0tLSBh L25ldC9pcHY2L2FmX2luZXQ2LmMKKysrIGIvbmV0L2lwdjYvYWZfaW5ldDYuYwpAQCAtMTAwLDcg KzEwMCw3IEBAIGJvb2wgaXB2Nl9tb2RfZW5hYmxlZCh2b2lkKQogfQogRVhQT1JUX1NZTUJPTF9H UEwoaXB2Nl9tb2RfZW5hYmxlZCk7CiAKLXN0YXRpYyBfX2lubGluZV9fIHN0cnVjdCBpcHY2X3Bp bmZvICppbmV0Nl9za19nZW5lcmljKHN0cnVjdCBzb2NrICpzaykKK3N0YXRpYyBpbmxpbmUgc3Ry dWN0IGlwdjZfcGluZm8gKmluZXQ2X3NrX2dlbmVyaWMoc3RydWN0IHNvY2sgKnNrKQogewogCWNv bnN0IGludCBvZmZzZXQgPSBzay0+c2tfcHJvdC0+b2JqX3NpemUgLSBzaXplb2Yoc3RydWN0IGlw djZfcGluZm8pOwogCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pY21wLmMgYi9uZXQvaXB2Ni9pY21w LmMKaW5kZXggYzljNTNhZGU1NWMzLi40ODhhMDRlMTg4YzAgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2 L2ljbXAuYworKysgYi9uZXQvaXB2Ni9pY21wLmMKQEAgLTExMSw3ICsxMTEsNyBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IGluZXQ2X3Byb3RvY29sIGljbXB2Nl9wcm90b2NvbCA9IHsKIH07CiAKIC8q IENhbGxlZCB3aXRoIEJIIGRpc2FibGVkICovCi1zdGF0aWMgX19pbmxpbmVfXyBzdHJ1Y3Qgc29j ayAqaWNtcHY2X3htaXRfbG9jayhzdHJ1Y3QgbmV0ICpuZXQpCitzdGF0aWMgaW5saW5lIHN0cnVj dCBzb2NrICppY21wdjZfeG1pdF9sb2NrKHN0cnVjdCBuZXQgKm5ldCkKIHsKIAlzdHJ1Y3Qgc29j ayAqc2s7CiAKQEAgLTEyNiw3ICsxMjYsNyBAQCBzdGF0aWMgX19pbmxpbmVfXyBzdHJ1Y3Qgc29j ayAqaWNtcHY2X3htaXRfbG9jayhzdHJ1Y3QgbmV0ICpuZXQpCiAJcmV0dXJuIHNrOwogfQogCi1z dGF0aWMgX19pbmxpbmVfXyB2b2lkIGljbXB2Nl94bWl0X3VubG9jayhzdHJ1Y3Qgc29jayAqc2sp CitzdGF0aWMgaW5saW5lIHZvaWQgaWNtcHY2X3htaXRfdW5sb2NrKHN0cnVjdCBzb2NrICpzaykK IHsKIAlzcGluX3VubG9jaygmc2stPnNrX2xvY2suc2xvY2spOwogfQpkaWZmIC0tZ2l0IGEvbmV0 L2lwdjYvdWRwLmMgYi9uZXQvaXB2Ni91ZHAuYwppbmRleCAyOGM0YWE1MDc4ZmMuLmM1MTY1NjUy OTI5YSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvdWRwLmMKKysrIGIvbmV0L2lwdjYvdWRwLmMKQEAg LTU0MSw3ICs1NDEsNyBAQCBzdGF0aWMgaW50IF9fdWRwdjZfcXVldWVfcmN2X3NrYihzdHJ1Y3Qg c29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBf X2lubGluZV9fIHZvaWQgdWRwdjZfZXJyKHN0cnVjdCBza19idWZmICpza2IsCitzdGF0aWMgaW5s aW5lIHZvaWQgdWRwdjZfZXJyKHN0cnVjdCBza19idWZmICpza2IsCiAJCQkJIHN0cnVjdCBpbmV0 Nl9za2JfcGFybSAqb3B0LCB1OCB0eXBlLAogCQkJCSB1OCBjb2RlLCBpbnQgb2Zmc2V0LCBfX2Jl MzIgaW5mbykKIHsKQEAgLTk0Nyw3ICs5NDcsNyBAQCBzdGF0aWMgdm9pZCB1ZHBfdjZfZWFybHlf ZGVtdXgoc3RydWN0IHNrX2J1ZmYgKnNrYikKIAl9CiB9CiAKLXN0YXRpYyBfX2lubGluZV9fIGlu dCB1ZHB2Nl9yY3Yoc3RydWN0IHNrX2J1ZmYgKnNrYikKK3N0YXRpYyBpbmxpbmUgaW50IHVkcHY2 X3JjdihzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogewogCXJldHVybiBfX3VkcDZfbGliX3Jjdihza2Is ICZ1ZHBfdGFibGUsIElQUFJPVE9fVURQKTsKIH0KZGlmZiAtLWdpdCBhL25ldC9sYXBiL2xhcGJf aWZhY2UuYyBiL25ldC9sYXBiL2xhcGJfaWZhY2UuYwppbmRleCBkYjZlMGFmZTNhMjAuLmI3OTcx MzhmZWM4YyAxMDA2NDQKLS0tIGEvbmV0L2xhcGIvbGFwYl9pZmFjZS5jCisrKyBiL25ldC9sYXBi L2xhcGJfaWZhY2UuYwpAQCAtNTIsMTIgKzUyLDEyIEBAIHN0YXRpYyB2b2lkIGxhcGJfZnJlZV9j YihzdHJ1Y3QgbGFwYl9jYiAqbGFwYikKIAlrZnJlZShsYXBiKTsKIH0KIAotc3RhdGljIF9faW5s aW5lX18gdm9pZCBsYXBiX2hvbGQoc3RydWN0IGxhcGJfY2IgKmxhcGIpCitzdGF0aWMgaW5saW5l IHZvaWQgbGFwYl9ob2xkKHN0cnVjdCBsYXBiX2NiICpsYXBiKQogewogCXJlZmNvdW50X2luYygm bGFwYi0+cmVmY250KTsKIH0KIAotc3RhdGljIF9faW5saW5lX18gdm9pZCBsYXBiX3B1dChzdHJ1 Y3QgbGFwYl9jYiAqbGFwYikKK3N0YXRpYyBpbmxpbmUgdm9pZCBsYXBiX3B1dChzdHJ1Y3QgbGFw Yl9jYiAqbGFwYikKIHsKIAlpZiAocmVmY291bnRfZGVjX2FuZF90ZXN0KCZsYXBiLT5yZWZjbnQp KQogCQlsYXBiX2ZyZWVfY2IobGFwYik7CmRpZmYgLS1naXQgYS9uZXQvbGxjL2xsY19pbnB1dC5j IGIvbmV0L2xsYy9sbGNfaW5wdXQuYwppbmRleCA4MmNiOTNmNjZiOWIuLjZkNDY3YzhiMWQ3MCAx MDA2NDQKLS0tIGEvbmV0L2xsYy9sbGNfaW5wdXQuYworKysgYi9uZXQvbGxjL2xsY19pbnB1dC5j CkBAIC03Miw3ICs3Miw3IEBAIHZvaWQgbGxjX3NldF9zdGF0aW9uX2hhbmRsZXIodm9pZCAoKmhh bmRsZXIpKHN0cnVjdCBza19idWZmICpza2IpKQogICoKICAqCVRoaXMgZnVuY3Rpb24gcmV0dXJu cyB3aGljaCBMTEMgY29tcG9uZW50IG11c3QgaGFuZGxlIHRoaXMgUERVLgogICovCi1zdGF0aWMg X19pbmxpbmVfXyBpbnQgbGxjX3BkdV90eXBlKHN0cnVjdCBza19idWZmICpza2IpCitzdGF0aWMg aW5saW5lIGludCBsbGNfcGR1X3R5cGUoc3RydWN0IHNrX2J1ZmYgKnNrYikKIHsKIAlpbnQgdHlw ZSA9IExMQ19ERVNUX0NPTk47IC8qIEktUERVIG9yIFMtUERVIHR5cGUgKi8KIAlzdHJ1Y3QgbGxj X3BkdV9zbiAqcGR1ID0gbGxjX3BkdV9zbl9oZHIoc2tiKTsKZGlmZiAtLWdpdCBhL3NjcmlwdHMv Y2hlY2twYXRjaC5wbCBiL3NjcmlwdHMvY2hlY2twYXRjaC5wbAppbmRleCAxNjFiMDIyNGQ2YWUu LjBjYmU4ZGU2NjJhNiAxMDA3NTUKLS0tIGEvc2NyaXB0cy9jaGVja3BhdGNoLnBsCisrKyBiL3Nj cmlwdHMvY2hlY2twYXRjaC5wbApAQCAtMzg5LDcgKzM4OSw3IEBAIG91ciAkQXR0cmlidXRlCT0g cXJ7CiAJCQlfX3dlYWsKIAkJICB9eDsKIG91ciAkTW9kaWZpZXI7Ci1vdXIgJElubGluZQk9IHFy e2lubGluZXxfX2Fsd2F5c19pbmxpbmV8bm9pbmxpbmV8X19pbmxpbmV8X19pbmxpbmVfX307Citv dXIgJElubGluZQk9IHFye2lubGluZXxfX2Fsd2F5c19pbmxpbmV8bm9pbmxpbmV8aW5saW5lfGlu bGluZX07CiBvdXIgJE1lbWJlcgk9IHFyey0+JElkZW50fFwuJElkZW50fFxbW15dXSpcXX07CiBv dXIgJEx2YWwJPSBxcnskSWRlbnQoPzokTWVtYmVyKSp9OwogCkBAIC01NzgyLDEzICs1NzgyLDEz IEBAIHN1YiBwcm9jZXNzIHsKIAkJCSAgICAgICJpbmxpbmUga2V5d29yZCBzaG91bGQgc2l0IGJl dHdlZW4gc3RvcmFnZSBjbGFzcyBhbmQgdHlwZVxuIiAuICRoZXJlY3Vycik7CiAJCX0KIAotIyBD aGVjayBmb3IgX19pbmxpbmVfXyBhbmQgX19pbmxpbmUsIHByZWZlciBpbmxpbmUKKyMgQ2hlY2sg Zm9yIGlubGluZSBhbmQgaW5saW5lLCBwcmVmZXIgaW5saW5lCiAJCWlmICgkcmVhbGZpbGUgIX4g bUBcYmluY2x1ZGUvdWFwaS9AICYmCi0JCSAgICAkbGluZSA9fiAvXGIoX19pbmxpbmVfX3xfX2lu bGluZSlcYi8pIHsKKwkJICAgICRsaW5lID1+IC9cYihpbmxpbmV8aW5saW5lKVxiLykgewogCQkJ aWYgKFdBUk4oIklOTElORSIsCiAJCQkJICJwbGFpbiBpbmxpbmUgaXMgcHJlZmVycmVkIG92ZXIg JDFcbiIgLiAkaGVyZWN1cnIpICYmCiAJCQkgICAgJGZpeCkgewotCQkJCSRmaXhlZFskZml4bGlu ZW5yXSA9fiBzL1xiKF9faW5saW5lX198X19pbmxpbmUpXGIvaW5saW5lLzsKKwkJCQkkZml4ZWRb JGZpeGxpbmVucl0gPX4gcy9cYihpbmxpbmV8aW5saW5lKVxiL2lubGluZS87CiAKIAkJCX0KIAkJ fQpkaWZmIC0tZ2l0IGEvc2NyaXB0cy9nZW5rc3ltcy9rZXl3b3Jkcy5jIGIvc2NyaXB0cy9nZW5r c3ltcy9rZXl3b3Jkcy5jCmluZGV4IDlmNDBiY2QxN2QwNy4uZjhjYjgxMWNkOTdkIDEwMDY0NAot LS0gYS9zY3JpcHRzL2dlbmtzeW1zL2tleXdvcmRzLmMKKysrIGIvc2NyaXB0cy9nZW5rc3ltcy9r ZXl3b3Jkcy5jCkBAIC0xNCw4ICsxNCw4IEBAIHN0YXRpYyBzdHJ1Y3QgcmVzd29yZCB7CiAJeyAi X19jb25zdCIsIENPTlNUX0tFWVcgfSwKIAl7ICJfX2NvbnN0X18iLCBDT05TVF9LRVlXIH0sCiAJ eyAiX19leHRlbnNpb25fXyIsIEVYVEVOU0lPTl9LRVlXIH0sCi0JeyAiX19pbmxpbmUiLCBJTkxJ TkVfS0VZVyB9LAotCXsgIl9faW5saW5lX18iLCBJTkxJTkVfS0VZVyB9LAorCXsgImlubGluZSIs IElOTElORV9LRVlXIH0sCisJeyAiaW5saW5lIiwgSU5MSU5FX0tFWVcgfSwKIAl7ICJfX3NpZ25l ZCIsIFNJR05FRF9LRVlXIH0sCiAJeyAiX19zaWduZWRfXyIsIFNJR05FRF9LRVlXIH0sCiAJeyAi X190eXBlb2YiLCBUWVBFT0ZfS0VZVyB9LApkaWZmIC0tZ2l0IGEvc2NyaXB0cy9rZXJuZWwtZG9j IGIvc2NyaXB0cy9rZXJuZWwtZG9jCmluZGV4IDhmMGY1MDhhNzhlOS4uOWNhZWQ2NjQwYjU4IDEw MDc1NQotLS0gYS9zY3JpcHRzL2tlcm5lbC1kb2MKKysrIGIvc2NyaXB0cy9rZXJuZWwtZG9jCkBA IC0xNTY5LDggKzE1NjksOCBAQCBzdWIgZHVtcF9mdW5jdGlvbigkJCkgewogICAgICRwcm90b3R5 cGUgPX4gcy9eZXh0ZXJuICsvLzsKICAgICAkcHJvdG90eXBlID1+IHMvXmFzbWxpbmthZ2UgKy8v OwogICAgICRwcm90b3R5cGUgPX4gcy9eaW5saW5lICsvLzsKLSAgICAkcHJvdG90eXBlID1+IHMv Xl9faW5saW5lX18gKy8vOwotICAgICRwcm90b3R5cGUgPX4gcy9eX19pbmxpbmUgKy8vOworICAg ICRwcm90b3R5cGUgPX4gcy9eaW5saW5lICsvLzsKKyAgICAkcHJvdG90eXBlID1+IHMvXmlubGlu ZSArLy87CiAgICAgJHByb3RvdHlwZSA9fiBzL15fX2Fsd2F5c19pbmxpbmUgKy8vOwogICAgICRw cm90b3R5cGUgPX4gcy9ebm9pbmxpbmUgKy8vOwogICAgICRwcm90b3R5cGUgPX4gcy9fX2luaXQg Ky8vOwpkaWZmIC0tZ2l0IGEvc291bmQvc3BhcmMvYW1kNzkzMC5jIGIvc291bmQvc3BhcmMvYW1k NzkzMC5jCmluZGV4IDU2ZjE3NDEwZmNlYS4uM2QxZTYwM2ZkY2ZlIDEwMDY0NAotLS0gYS9zb3Vu ZC9zcGFyYy9hbWQ3OTMwLmMKKysrIGIvc291bmQvc3BhcmMvYW1kNzkzMC5jCkBAIC0zNDQsNyAr MzQ0LDcgQEAgc3RydWN0IHNuZF9hbWQ3OTMwIHsKIHN0YXRpYyBzdHJ1Y3Qgc25kX2FtZDc5MzAg KmFtZDc5MzBfbGlzdDsKIAogLyogSWRsZSB0aGUgQU1ENzkzMCBjaGlwLiAgVGhlIGFtZC0+bG9j ayBpcyBub3QgaGVsZC4gICovCi1zdGF0aWMgX19pbmxpbmVfXyB2b2lkIGFtZDc5MzBfaWRsZShz dHJ1Y3Qgc25kX2FtZDc5MzAgKmFtZCkKK3N0YXRpYyBpbmxpbmUgdm9pZCBhbWQ3OTMwX2lkbGUo c3RydWN0IHNuZF9hbWQ3OTMwICphbWQpCiB7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIApAQCAt MzU1LDcgKzM1NSw3IEBAIHN0YXRpYyBfX2lubGluZV9fIHZvaWQgYW1kNzkzMF9pZGxlKHN0cnVj dCBzbmRfYW1kNzkzMCAqYW1kKQogfQogCiAvKiBFbmFibGUgY2hpcCBpbnRlcnJ1cHRzLiAgVGhl IGFtZC0+bG9jayBpcyBub3QgaGVsZC4gICovCi1zdGF0aWMgX19pbmxpbmVfXyB2b2lkIGFtZDc5 MzBfZW5hYmxlX2ludHMoc3RydWN0IHNuZF9hbWQ3OTMwICphbWQpCitzdGF0aWMgaW5saW5lIHZv aWQgYW1kNzkzMF9lbmFibGVfaW50cyhzdHJ1Y3Qgc25kX2FtZDc5MzAgKmFtZCkKIHsKIAl1bnNp Z25lZCBsb25nIGZsYWdzOwogCkBAIC0zNjYsNyArMzY2LDcgQEAgc3RhdGljIF9faW5saW5lX18g dm9pZCBhbWQ3OTMwX2VuYWJsZV9pbnRzKHN0cnVjdCBzbmRfYW1kNzkzMCAqYW1kKQogfQogCiAv KiBEaXNhYmxlIGNoaXAgaW50ZXJydXB0cy4gIFRoZSBhbWQtPmxvY2sgaXMgbm90IGhlbGQuICAq Lwotc3RhdGljIF9faW5saW5lX18gdm9pZCBhbWQ3OTMwX2Rpc2FibGVfaW50cyhzdHJ1Y3Qgc25k X2FtZDc5MzAgKmFtZCkKK3N0YXRpYyBpbmxpbmUgdm9pZCBhbWQ3OTMwX2Rpc2FibGVfaW50cyhz dHJ1Y3Qgc25kX2FtZDc5MzAgKmFtZCkKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClZpcnR1YWxpemF0aW9u IG1haWxpbmcgbGlzdApWaXJ0dWFsaXphdGlvbkBsaXN0cy5saW51eC1mb3VuZGF0aW9uLm9yZwpo dHRwczovL2xpc3RzLmxpbnV4Zm91bmRhdGlvbi5vcmcvbWFpbG1hbi9saXN0aW5mby92aXJ0dWFs aXphdGlvbg==